[PATCH] ARM: Fix relocation if image end past uncompressed kernel end
From: tony@atomide.com (Tony Lindgren)
Date: 2011-04-26 08:57:00
Also in:
linux-omap
From: tony@atomide.com (Tony Lindgren)
Date: 2011-04-26 08:57:00
Also in:
linux-omap
* Nicolas Pitre [off-list ref] [110422 17:08]:
On Thu, 21 Apr 2011, Tony Lindgren wrote:quoted
* Nicolas Pitre [off-list ref] [110421 20:20]:quoted
I found the bugger. The problem was a bad stack alignment... as this patch won't solve the n900 booting problem with zImage. With LZMA I'm still also getting "LZMA data is corrupt".Hmmm...... Is it possible you have bad RAM? In compressed/head.S, locate this code:
This is happening on all n900 boards AFAIK.
#ifdef CONFIG_AUTO_ZRELADDR
@ determine final kernel image address
mov r4, pc
and r4, r4, #0xf8000000
add r4, r4, #TEXT_OFFSET
#else
ldr r4, =zreladdr
#endif
Right after that, simply override r4 with a physical address towards the
end of the RAM, say 8MB before end of RAM (unless your decompressed
kernel is larger than that). That won't make a booting system, but at
least you will be able to test the decompressor when loaded at various
locations in memory without involving the relocation loop.OK thanks, I'll take a look. I guess it could also be a cache flush issue or borderline memory timings set in the bootloader. Regards, Tony