[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] Question



Hi John,

John McGrath wrote:
> I was very interested to see that 4 minutes to download the image was 
> considered slow. This means that my setup must be very far from optimal! 
> Let me describe it:
> 
> I download the bitstream (>1Mb) with a parallel III cable attached in 
> JTAG / boundry scan mode to the FPGA board. This takes 10 seconds.
> I re-use this same cable to connected to xmd.
> I then use xmd (via the debugger interface) to download the image. It 
> achieves about 1.5Kbytes / sec, which is terribly slow!

I haven't tried using the hardware debugger (are you talking about MDM?) 
to download images.  I would have expected it to be a lot faster than 
that though!

> Are you using the same cable to download the bistream and the image like 
> me? I would have imagined the parallel cable would be faster. I am not 
> using the JTAG UART, but accessing the SRAM via XMD which connects to 
> the hardware debug module. (would the SW debug option be better?)

No, this is over a regular serial port, conencted between the microblaze 
board and the host PC.

There's an option to use an opb_uartlite peripheral as the debug 
interface to microblaze - you still connect to it via xmd.

Take a look at an mbvanilla system.mhs and system.mss.  mbvanilla has 
two uartlite instances, one at 56KBPs for the linux console 
(consule_uart), and a second at 115KBPs for debug access(debug_uart). 
This is for downloading kernel images etc (if you don't have flash or 
ethernet).

Does your board have a standard 9 pin serial socket?

In system.mss, debug_uart is specified as the debug peripheral.

> I had toyed with the idea of adding a separate perhiperhal to the OPB 
> bus - or simply a temporary disconnection of the SRAM from the OPB and 
> onto another SRAM controller interface just to download the image, which 
> was directly connected to a parallel interface. This should be able to 
> download at about 200kbytes/sec - but does require some soldering!!!!

It might end up a bit quicker than a serial download, but it's not 
strictly necessary.

> Finally, I am still a little unclear on the memory controler: here is my 
> understanding:

> The default mbvanilla.h is as follows:
> /* Memory controller */
> #ifndef MICROBLAZE_MEMCON_BASE_ADDR
> #define MICROBLAZE_MEMCON_BASE_ADDR 0xFFFF0000

> /* Start and size of external RAM */
> #define ERAM_ADDR 0x80000000
> If I wanted to put data into the SRAM, would I write to the location 
> 0x80000000 or via the controller 0xFFFF0000?

You write to the RAM address - 0x80000000.

> Should I make the base address of the controller the same as that of the 
> SRAM, or is it irrelevent if I dont have flash?

Just ignore the controller address 0xffff0000, it's the address mapping 
of the controller core itself (not the RAM it manages).

> my proposed change would be:

[snip]

Not necessary - just make sure you map the actual RAM address range to 
0x80000000 in your system.mhs

Cheers,

John
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/