[U-Boot] [PATCH] ARM: Fix __bss_start and __bss_end in linker scripts

Benoît Thébaudeau benoit.thebaudeau at advansee.com
Fri Apr 5 19:32:54 CEST 2013


Hi Tom,

On Friday, April 5, 2013 6:00:30 PM, Tom Rini wrote:
> On Fri, Apr 05, 2013 at 03:56:46PM +0200, Beno??t Th??baudeau wrote:
> > Hi Albert,
> > 
> > On Friday, April 5, 2013 8:00:43 AM, Albert ARIBAUD wrote:
> > > Hi Beno??t,
> [snip]
> > > IIUC, this future patch would increase the limit for SPL run-time size,
> > > as the constant against which the ASS tests __bss_end for would
> > > necessarily be greater than it is now. Correct? If so, this future
> > > patch should not break any target, as it would loosen the constraint,
> > > not tighten it.
> > 
> > Yes, it would either be the same or relaxed a bit, depending on the chosen
> > option:
> >  - Define CONFIG_SPL_BSS_MAX_SIZE and test against CONFIG_SPL_MAX_SIZE +
> >    CONFIG_SPL_BSS_MAX_SIZE, the sum remaining the same as or being larger
> >    than
> >    currently, depending on the new values for CONFIG_SPL_MAX_SIZE and
> >    CONFIG_SPL_BSS_MAX_SIZE.
> >  - Define a new config meaning text + data + rodata + bss (e.g.
> >    CONFIG_SPL_MAX_RAM_SIZE or CONFIG_SPL_MAX_MEM_FOOTPRINT), and just
> >    replace
> >    CONFIG_SPL_MAX_SIZE with it for the users of arch/arm/cpu/u-boot*.lds,
> >    taking
> >    care that this was the only meaning those users were giving to
> >    CONFIG_SPL_MAX_SIZE.
> > 
> > The first option would probably be preferable, using the same value for
> > CONFIG_SPL_MAX_SIZE, and a non-zero value for CONFIG_SPL_BSS_MAX_SIZE.
> 
> I think the problem is that Tegra really needs the second case as their
> constraint is "must fit below next part of payload".  We can assume the
> users of that linker script today care about footprint and update their
> define I believe.  da850evm and the rest of the davinci platforms would
> also be a case to convert to this, but the omap*/am3* platforms would
> not.

Yes, then let's have an assert in arch/arm/cpu/u-boot*.lds with a different
config name (as in option 2 above) just for Tegra, and another assert for
CONFIG_SPL_MAX_SIZE against __bss_start.

And all users of CONFIG_SPL_MAX_SIZE should be checked to make sure that there
is not another special case somewhere.

Best regards,
Benoît


More information about the U-Boot mailing list