[PATCH] ARM: Fix relocation if image end past uncompressed kernel end
tony at atomide.com
Tue Apr 26 04:57:00 EDT 2011
* Nicolas Pitre <nicolas.pitre at linaro.org> [110422 17:08]:
> 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".
> Is it possible you have bad RAM? In compressed/head.S, locate this
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
> ldr r4, =zreladdr
> 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.
More information about the linux-arm-kernel