
In message 00f401c6b638$e54a6680$c9010165@ClareHuang you wrote:
I use the current code from u-boot.git.
Thanks.
But the result is the same :
:-(
## Checking Image at 10000000 ... Image Name: 2.6.15 Image Type: ARM Linux Kernel Image (bzip2 compressed) Data Size: 1159790 Bytes = 1.1 MB Load Address: 10c08000
-------------------^^^^^^^^
pc : [<1108fc88>] lr : [<000841a9>]
-------^^^^^^^^^^^^
What's your memory map?
Where exactly is your TEXT_BASE, and where is stack and the malloc arena?
The PC at the time of the crash was 0x1108fc88, so TEXT_BASE is somewhat lower. You wrote that you have CFG_MALLOC_LEN defined to be somewhat greater than 4224*1024 = 4.125 MB. The malloc arena is located below TEXT_BASE, so at least the area starting at
0x1108fc88 - 4224*1024 = 0x10c6fc88
is in use by U-Boot.
You uncompress the image to 0x10c08000 ==> BINGO! The areas overlap. When decompression starts, you start overwriting U-Boot data.
Try a lower image address.
Best regards,
Wolfgang Denk