[U-Boot-Users] Verifying checksum problems.

Could anybody throw some light on the following problem?
We are using a MPC5200 based system and we have encountered this issue. We have 64MB of ram starting at 0.
We load our kernel at 1 MB. We load our associated ram-disk at 2MB. This ram-disk is currently 6.2MB compressed. When our ram-disk was smaller, around 5.8 MB everything worked without problems. However since the increase in the size of the ram-disk we have encountered the following error. After the kernel and ram disk are loaded to their respective locations and we use "bootm 100000 200000" , this is what happens.
The checksum is verified for the kernel and it is decompressed and everything is fine. It however fails in the ram-disk checksum verification. We get a checksum error.
However if we move the ramdisk load address to an area above 8MB everthing works fine. If we load it at 7MB we see the same error.
Since our earlier ram-disk at 5.8 MB worked we surmise that something is corrupting the area between 7.8MB and 8MB. Following the sequence of operations it seems the only thing that can do this is the decompression of the kernel.
Is by any chance this area being used or is there some other explanation?
As I said earlier if the ram-disk is loaded at 8MB or above everything is currently okay.
Thanks
Sadanand
I'm attaching our console output, it's a tad large but .......
=> run net_nfs Using FEC ETHERNET device TFTP from server 10.1.1.123; our IP address is 10.1.1.132 Filename 'uImage.132'. Load address: 0x100000 Loading: ################################################################# ################################################################# ####### done Bytes transferred = 699277 (aab8d hex) Using FEC ETHERNET device TFTP from server 10.1.1.123; our IP address is 10.1.1.132 Filename 'uRamdisk.132'. Load address: 0x200000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ######################################### done Bytes transferred = 6530033 (63a3f1 hex) ## Booting image at 00100000 ... Image Name: Linux-2.4.25-CARDKN_1.0.0 Created: 2005-02-28 18:22:14 UTC Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 699213 Bytes = 682.8 kB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK ## Loading RAMDisk Image at 00200000 ... Image Name: AMPRF_0.0.2 Created: 2005-02-28 19:54:03 UTC Image Type: PowerPC Linux RAMDisk Image (gzip compressed) Data Size: 6529969 Bytes = 6.2 MB Load Address: 00000000 Entry Point: 00000000 ú Verifying Checksum ... Bad Data CRC
U-Boot 1.1.1 (Feb 22 2005 - 17:48:12) [CARD,1.0.2]
CPU: MPC5200 (JTAG ID 0001101d) at 396 MHz Bus 132 MHz, IPB 66 MHz, PCI 33 MHz Board: MicroSys PM520 I2C: ready DRAM: 64 MB FLASH: 16 MB In: serial Out: serial Err: serial Net: FEC ETHERNET

In message OFC0BE6659.AF54EF2D-ON85256FB6.006C6C07-85256FB6.006DD828@optovia.com you wrote:
We load our kernel at 1 MB. We load our associated ram-disk at 2MB. This ram-disk is currently 6.2MB compressed.
Why are you doing this? Did you check how big your _uncompressed_ images will be? Did you try to try to figure out what happens when U-Boot actually uncompresses the kernel image?
However since the increase in the size of the ram-disk we have encountered the following error. After the kernel and ram disk are loaded to their respective locations and we use "bootm 100000 200000" , this is what happens.
And this doesn't ring a bell to you? Did you try out higher load addresses, like 0x200000 for the kernel and 0x400000 for the ramdisk image?
The checksum is verified for the kernel and it is decompressed and everything is fine. It however fails in the ram-disk checksum verification. We get a checksum error.
However if we move the ramdisk load address to an area above 8MB everthing > works fine. If we load it at 7MB we see the same error.
Well - what are you complaining about then? Isn't it obvious that the Linux kernel, when being uncompressed, overwrites your ramdisk image which was loaded at a too low address?
Since our earlier ram-disk at 5.8 MB worked we surmise that something is corrupting the area between 7.8MB and 8MB. Following the sequence of
I don't think so.
Is by any chance this area being used or is there some other explanation?
Yes: it's a user error - using a too low load address.
As I said earlier if the ram-disk is loaded at 8MB or above everything is currently okay.
I bet it's also OK if you load it at 3 or 4 MB.
Best regards,
Wolfgang Denk
participants (2)
-
warrier@optovia.com
-
Wolfgang Denk