[PATCH 4/6] ARM: mxc: don't allow to compile together i.MX51 and i.MX53

Russell King - ARM Linux linux at arm.linux.org.uk
Sun May 8 11:05:30 EDT 2011


On Sun, May 08, 2011 at 11:00:30AM -0400, Nicolas Pitre wrote:
> On Sun, 8 May 2011, Russell King - ARM Linux wrote:
> 
> > On Wed, May 04, 2011 at 10:48:40AM -0500, Matt Sealey wrote:
> > > CONFIG_ARM_PATCH_PHYS_VIRT
> > > 
> > > These two config options, with absolutely no bootloader changes, will
> > > basically mask off some address (instruction pointer?) at the time of
> > > the check and therefore derive a perfectly good PHYS_OFFSET at runtime
> > > and make sure it is in use... within some limits (first 128MB, assumes
> > > that start of memory is at some particular alignment)?
> > 
> > The V:P fixup will only handle bits 31-24, or 31-16 if the
> > ARM_PATCH_PHYS_VIRT_16BIT option is selected (for MSM).  If the offset
> > doesn't wholy fit into these, then the fixup function will complain and
> > your kernel won't boot.  So, it'll go down to 64K alignment.
> > 
> > It does rely on the kernel being placed correctly in memory.  So if the
> > start of the kernel text is built to be 32K above PAGE_OFFSET, then the
> > kernel will assume that physical memory starts 32K below where the
> > 'Image' ended up in physical memory.  If you place the kernel in physical
> > memory 16MB above the start, then it'll assume that physical memory starts
> > 16MB above where it actually did.
> 
> If CONFIG_AUTO_ZRELADDR is set, then zImage will automatically place the 
> kernel Image correctly in memory, assuming that zImage is itself loaded 
> within the first 128MB of memory.

I was only covering the requirements of the Image, rather than zImage which
you covered in a subsequent message.

> > There is one thing to watch out for though - if you did place it 16MB
> > above, but still tell the kernel via ATAGs that the physical memory
> > starts where it really does, then I'd expect things to explode as
> > the kernel direct mapped memory would likely extend below PAGE_OFFSET.
> 
> Yeah... We should probably add a warning and truncate the beginning of 
> the memory bank in that case.  This would also prevent memory from being 
> wrongly declared below PHYS_OFFSET even without the P2V feature enabled.

We don't encouter the situation today, so lets leave it until we actually
have a problem.  There's no point bloating the kernel with such checks if
they're never going to fire.



More information about the linux-arm-kernel mailing list