
On Mon, Sep 26, 2005 at 09:24:39AM -0400, Jerry Van Baren wrote:
It looks like this is a very simple loader. It writes to SRAM _only_ and then jumps to that program (JTAG loaders typically allow you to write to flash, manipulate registers, and jump anywhere, single step, etc.). Theoretically you could load u-boot this way, but nobody has volunteered that they have done it so you would likely be blazing a new path.
No, it is an ordinary (and supported by Atmel) way to bootstrap an AT91RM9200 boards having only a simple COM-port cable :)
My advice would be to write a simple "burn flash" routine (it can be done in a couple dozen lines of assembly - don't get elaborate) ORGed at the start of SRAM and prepend it to the u-boot image. Your USB loader
Atmel have such a simple utility called RomBoot. It acts as a simple first-stage bootloader, and allows to set up SDRAM and PLLs, load U-Boot from DataFlash or (by X-Modem) from DBGU UART and passing control to it.
(I'm guessing the target side looks like a simple usb-UART) would load the burner utility and the u-boot image as a single lump and jump to the burner utility. The burner utility would program the u-boot image from SRAM into flash. Reset the board and you are off & running.
If your first attempt doesn't work, you are in the "burn & learn" cycle. This can be successful if your image is close to working and you have a fair amount of experience, or it can be an infinite time suck. If the latter is the case, a JTAG debugger is invaluable.
I'm using a simple jumper on the board for turning DataFlash chip into reset state while booting. This allows to boot from DBGU serial port when DataFlash contains a valid but non-working image.