[U-Boot] [RFC] ARM: Start using fdt_high for relocation

Tom Rini trini at ti.com
Fri Dec 6 18:18:13 CET 2013


On Fri, Dec 06, 2013 at 05:59:37PM +0100, Albert ARIBAUD wrote:
> Hi Tom,
> 
> On Fri, 6 Dec 2013 10:48:50 -0500, Tom Rini <trini at ti.com> wrote:
> 
> > Hey all,
> > 
> > I've been thinking.  We've had a thread on i.MX platforms about fdt
> > being overwritten and needing to be moved to another address.  And I've
> > also had an internal problem about fdt being overwritten.  So, how about
> > as a rule of thumb we start setting fdt_high (in configs) to
> > memory-start + 512MiB, as that's the lowmem limit we should always have
> > available.  This will fix the problem of BSS overwriting the DT, which
> > is the problem we won't catch in normal bootm/bootz usage.  Thoughts?
> 
> Not sure I'm getting the issue clear, and I would like to avoid (me and
> others) having to switch back and forth between threads. Can you sketch
> the failure scenario in a couple of lines?

Sure.  Lets take am335x_evm builds (so Beaglebone Black/White, etc).
If you start enabling all of the tracing options in the kernel (function
tracing, graphs, etc), you get an uncompressed kernel and BSS that will
use up the first ~16MiB of DDR.  We default to placing the DT at about
15MiB into memory.  So the kernel runs, clears BSS and eats the DT.
System now hangs, and depending on debug options set you may or may not
see anything at all from the kernel.  U-Boot couldn't detect this
failure because we don't know how big the kernel BSS is, only how big
the zImage is (and where it is) and how big the fdt is and where it is.
No overlaps, go ahead and run.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20131206/8437870f/attachment.pgp>


More information about the U-Boot mailing list