Requirements for FDT load address on ARM
nicolas.pitre at linaro.org
Wed Jul 24 17:27:38 EDT 2013
On Wed, 24 Jul 2013, Ian Campbell wrote:
> On Wed, 2013-07-24 at 11:24 -0400, Nicolas Pitre wrote:
> > On Wed, 24 Jul 2013, Ian Campbell wrote:
> > > [apologies if this is a repeat, I don't see it in the archives and at
> > > least one CC'd recipient (Julien) didn't receive it either. Beasties in
> > > our email server I expect...]
> > >
> > > Are there any requirements about where the FDT may be loaded by the
> > > bootloader?
> > It must be located where it is unlikely to be overwritten by the zImage
> > decompressor relocating itself. Same goes for the initrd.
> Right. That's a bit hard to determine programmaticaly from a bootloader
> though :-(
Well... The kernel has to be loaded in the first 128MB of RAM for the
automatic RAM location to work. So you simply have to load the ftd and
initrd sequentially above the 128MB mark. The kernel cannot grow above
16MB in size or we lose the ability to link modules without far calls,
or 32MB for the kernel itself after wich the kernel itself doesn't link.
This means the decompressor will never relocate anything above the 128MB
mark in any case.
In practice this limit can even be lowered to 64MB.
More information about the linux-arm-kernel