[U-Boot] u-boot USB question

Andreas Bießmann
2013-05-17T05:45:17Z

Hi Lance, Bo,

On 17.05.13 03:22, Bo Shen wrote:
> Hi Lance,
>
> On 5/17/2013 06:32, Lance Beck wrote:
>> We are using u-boot on an AT91SAM9G20 platform with NAND Flash and
>> running Linux. Is there a means to update the kernel and root fs
>> image by reading them from a USB memory device and writing the new
>> images to flash? I have built the fw_printenv tool thinking I might
>> be able to use this to somehow trigger that action.
>
> Yes. Please take the following example (using the mainline
> u-boot-2013.04) for updating related image from USB disk.
>
> 1. connect usb to board and power up
> U-boot> usb start
> (Re)start USB...
> USB: scanning bus for devices... 2 USB Device(s) found
> scanning bus for storage devices... 1 Storage Device(s) found
> U-boot> fatls usb 0
> ...
> 2396352 uImage
> ...
> U-boot> fatload usb 0 0x20000000 uImage
> U-boot> nand erase 0x200000 0x600000
> U-boot> nand write 0x20000000 0x200000 <uImage_size>

just a pointer ...
All these load commands (fat, ubi, ...) set an env named filesize. Just
write

U-boot> nand write 0x20000000 0x200000 $filesize

There is another magic env that can be used here. One can define
CONFIG_LOADADDR (or was it CONFIG_SYS_LOADADDR ... there was a
discussion to consolidate this) to have env 'loadaddr' set. With that
you can use $loadaddr instead of 0x20000000 in the example above.

Best regards

Andreas Bie?mann