[U-Boot] Debugging why my kernel won't start

Rogan Dawes rogan at dawes.za.net
Wed Aug 18 16:42:00 CEST 2010


On 2010/08/18 12:54 PM, Wolfgang Denk wrote:
> Dear Rogan Dawes,
> 
> In message <4C6BAC5A.6060206 at dawes.za.net> you wrote:
>>
>> Thanks for the suggestion. It did make a slight difference in the boot
>> logs. bootcmd uses the default (in flash) location for the ramdisk,
> 
> Actually it's a pretty significant difference, as for the first time
> you actually see the kernel trying to access the ramdisk.

Good point! :-)

>>> RAMDISK: Compressed image found at block 0
>>> invalid compressed format (err=1)
>>
>> So it seems that the ramdisk is getting corrupted somehow. And yet, it
>> is fine using the vendor u-boot. It must be something that I am doing wrong.
> 
> Try copying the raw ramdisk image (i. e. without the U-Boot header) to
> RAM, and try that one, i. e. something like
> 
> 	=> cp.b ff9a0040 01600000 ...size...
> 	...
> 	=> bootm ff820000 1600000

Unfortunately, U-boot is expecting the second parameter to point to a
uImage-wrapped ramdisk, not just raw bytes:

DNS323B1> cp.b ff9a0040 1600000 4ff718
DNS323B1> bootm ff820000 1600000
## Booting kernel from Legacy Image at ff820000 ...
   Image Name:   Linux-2.6.12.6-arm1
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1490204 Bytes = 1.4 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
Wrong Ramdisk Image Format
Ramdisk image is corrupt or invalid
DNS323B1>

Why does it make a difference if it is in RAM vs in flash? I have 8MB of
flash located at ff800000, so that reaches all the way to 0xffffffff.
Surely that should be Ok? Besides, U-boot is supposed to copy the data
in the image to the specified destination address, isn't it?

Rogan


More information about the U-Boot mailing list