Subject: Re: CONFIG_PROVE_LOCKING broken on 83xx (and all of powerpc?)

From: Timur Tabi <[email-masked]>
Date: Thu, 9 Sep 2010 15:13:17 -0500

Ira W. Snyder wrote:
> That easily overruns the location where U-Boot puts the FDT. Is this a
> U-Boot bug, meaning I should post this information on the U-Boot
> mailing list?

Possibly.

I am under the impression that the memory in the boot block that contains
the FDT is marked as "reserved" in the device tree, so that the kernel
doesn't overwrite it.  However, that obviously isn't helpful if we haven't
parsed the device tree yet.

What concerns me is this in U-Boot:

/*
 * For booting Linux, the board info and command line data
 * have to be in the first 16 MB of memory, since this is
 * the maximum mapped by the Linux kernel during initialization.
 */
#define CONFIG_SYS_BOOTMAPSZ	(16 << 20)	/* Initial Memory map for Linux*/

If the 16MB mapping limit is true, then does this mean that the Linux's BSS
is larger than the memory that is mapped?  If so, that means that Linux
can't even access all of its BSS at this point.  Somehow, I doubt that.

Can you try increasing the size of CONFIG_SYS_BOOTMAPSZ?  Combined with my
always-relocate-fdt, I think this will force the FDT to be placed higher in
memory.

-- 
Timur Tabi
Linux kernel developer at Freescale