Thread (49 messages) 49 messages, 5 authors, 2011-04-29
STALE5538d

[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

* 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help