[fedora-arm] F19: uImage load addresses with unified kernel

Nicolas Pitre nico at fluxnic.net
Wed Mar 27 15:26:23 UTC 2013


On Wed, 27 Mar 2013, Jon Masters wrote:

> Prior to Brendan sending that mail last night, we had an internal RH
> meeting wherein this topic came up (and precipitated the email). I
> explained already in that and will repeat here that the ARM kernel is
> already relocatable. It has only two major requirements right now:
> 
> 0). That it be loaded into actual RAM somewhere. Most boards direct map
> physical RAM at 0. Some do it at 2GB or higher. Others have aliasing
> where you see physical RAM in two ranges and other weirdness. The reason
> we have these different load addresses today is that the hardware
> platforms are not all consistent around physical map.
> 
> 1). That it be loaded at sufficient alignment (low-order bits 0x8000 due
> to the exception vectors). Maybe that one even can/could/is handled by
> the uncompressor. I dunno if that limitation is relaxed somewhere.

The decompressor code takes care of that already.  If you compile your 
kernel with CONFIG_AUTO_ZRELADDR=y then all you need is to load the 
zImage within the first 128MB of physical RAM.

> I mentioned already that I favor ignoring the uImage header and just
> loading the kernel where we know it needs to be.

But U-Boot will fight against you nevertheless.  Irrespective of where 
in RAM you ask it to load a uImage, it will still relocate it according 
to the address provided in its header before executing the kernel.

> I agree that the easiest way to do that is to drop uImage loading and 
> do zImage.


Nicolas


More information about the arm mailing list