Specifications

Question:
I am using U-Boot with a Linux kernel version Y (Y < 2.4.5-pre5), but the last message I see is
Uncompressing Kernel Image ... OK
Then the system hangs.
Answer:
Most probably you pass bad parameters to the Linux kernel.
There are several possible reasons:
Bad device tree; for example, check that the memory map set up by the boot loader (like
mapping of IMMR, PCI addresses etc.) is consistent with what is encoded in your device tree
specification.
Here some possible reasons for older Linux kernel versions:
Linux:
arch/ppc:
arch/ppc: Bad definition of the bd_info structure
You must make sure that your machine specific header file (for instance
include/asm-ppc/tqm8xx.h) includes the same definition of the Board Information structure as
we define in include/ppcboot.h, and make sure that your definition of IMAP_ADDR uses the
same value as your U-Boot configuration in CFG_IMMR.
Bad clock information
Before kernel version 2.4.5-pre5 (BitKeeper Patch 1.1.1.6, 22MAY2001) the kernel expected
the clock information in MHz, but recent kernels expect it in Hz instead. U-Boot passes the
clock information in Hz by default. To switch to the old behaviour, you can set the
environment variable "clocks_in_mhz" in U-Boot:
=> setenv clocks_in_mhz 1
=> saveenv
For recent kernel the "clocks_in_mhz" variable must not be set. If it is present in your environment, you
can delete it as follows:
=> setenv clocks_in_mhz
=> saveenv
A common error is to try "setenv clocks_in_mhz 0" or to some other value - this will not work,
as the value of the variable is not important at all. It is the existence of the variable that will be checked.
Inconsistent memory map
Some boards may need corrct mappings for some special hardware devices like BCSR (Board
Control and Status Registers) etc. Verify that the mappings expected by Linux match those
created by U-Boot.
14.2.22. How can I implement automatic software
updates?
Question:
How I can use U-Boot to make it easy for my end users to upgrade the firmware of the device?
14.2.22. How can I implement automatic software updates? 173