Specifications

Answer:
This depends mainly on how you intend to distribute your software updates, and which physical
interfaces are present (or usable for this purpose) on your device. Typically you will either distribute
the software over the network, or you can use soMe type of storage device like USB mass storage
device (memory stick etc.), SD cards etc.
U-Boot already supports such a feature on several boards. You will probably have to adapt the code
and/or the actual behaviour to your specific hardware and/or requirements. Please see here for a
starting point:
Network:
When auto-update support over TFTP is enabled, U-Boot will test in the initialization sequence if a
specific image file is present on the TFTP server. If this is the case, the image will be downloaded
and, if it is considered ok, installed into flash. For details, please read doc/README.update and/or
see commits 4bae9090 and e83cc063.
USB:
Several boards implement this feature, all in a slightly different way; see board/trab/auto_update.c,
board/mcc200/auto_update.c and board/esd/common/auto_update.c.
With this feature enabled, U-Boot will check during the init sequence if a USB mass storage device is
plugged in, if this contains a readable file system, and check if this contains one or more known image
files. Additionally it is possible to check if the image versions on the USB device are more recent than
those already stored in flash. If all programmed criteria match, and if the images can be read without
error, the content of the on-board storage (flash, NAND, etc.) gets automatically updated. Adaption
for other storage devices (like SD card etc.) should be trivial to implement.
14.3. Linux
14.3.1. Linux crashes randomly
Question:
On my board, Linux crashes randomly or has random exceptions (especially floating point exceptions
if it is a Power Architecture® processor). Why?
Answer:
Quite likely your SDRAM initialization is bad. See UBootCrashAfterRelocation for more
information.
On a Power Architecture®, the instructions beginning with 0xFF are floating point instructions. When
your memory subsystem fails, the Power Architecture® is reading bad values (0xFF) and thus
executing illegal floating point instructions.
14.3.2. Linux crashes when uncompressing the
kernel
Question:
When I try to boot Linux, it crashes during uncompressing the kernel image:
=> bootm 100000
## Booting image at 00100000 ...
14.3.2. Linux crashes when uncompressing the kernel 174