[PATCH] ARM: Fix relocation if image end past uncompressed kernel end
Nicolas Pitre
nicolas.pitre at linaro.org
Fri Apr 22 10:12:01 EDT 2011
On Thu, 21 Apr 2011, Tony Lindgren wrote:
> * Nicolas Pitre <nicolas.pitre at linaro.org> [110421 20:20]:
> > 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:
#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.
Nicolas
More information about the linux-arm-kernel
mailing list