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

Albert ARIBAUD albert.u.boot at aribaud.net
Mon Apr 8 22:05:08 CEST 2013


Hi Tom,

On Mon, 8 Apr 2013 15:56:12 -0400, Tom Rini <trini at ti.com> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On 04/08/2013 03:03 PM, Albert ARIBAUD wrote:
> > Hi Tom,
> > 
> > On Fri, 5 Apr 2013 16:23:30 -0400, Tom Rini <trini at ti.com> wrote:
> > 
> >> On Fri, Apr 05, 2013 at 10:04:02PM +0200, Albert ARIBAUD wrote:
> >> 
> >>> The two general ideas of my proposal are:
> >>> 
> >>> 1) to separate testing the image (text,data,rodata,lists) size
> >>> on the one hand and the image BSS size on the other hand, and
> >>> 
> >>> 2) to consider that if a target defines an image max size and a
> >>> BSS max size, then the image max size does not include the BSS
> >>> size ; and if it defined an image max size but no BSS max size,
> >>> then the image max size includes the BSS.
> >>> 
> >>> The first idea allows boards with disjoint image and BSS to
> >>> still check eahc part's size, a thing not feasible with the
> >>> current code; the second idea allows fewer changes, but if one
> >>> wants CONFIG_SPL_MAX_SIZE to have a strict meaning, we can drop
> >>> idea #2 and still keep idea #1.
> >> 
> >> Make it so, thanks!
> > 
> > Just a quick heads up: in the little time I could spare this
> > week-end, I analyzed the SPL image vs BSS max sizes issue, and the
> > following appeared:
> > 
> > 
> > 1. File arch/arm/cpu/u-boot.lds has an ASSERT() regarding SPL even 
> > though it is never used for building SPL (tested by replacing the 
> > ASSERT() condition by 0 and building all of ARM).
> > 
> > 2. Several boards use arch/arm/cpu/u-boot-spl.lds, which has an
> > ASSERT() wrongly comparing image+BSS size to image-only
> > CONFIG_SPL_MAX_SIZE. Fixing the linker file will fix all tegra
> > boards as well as the exynos origen and smdkv310.
> > 
> > Note: the tegra-common.h config file states a non-existent .lds
> > file for SPL.
> 
> I was wondering about #1 and the tegra bit too, but thought there must
> be magic I'm missing.

The tegra ones got me triple-checking, but yes, the config-specified lds
file is ignored and the build defaults to the generic ARM lds file.

> > 3. Boards cam_enc_4xx, da850evm, smdk5250 and snow all define
> > maximum SPL size to include image and BSS. These must be split
> > arbitrarily; I have chosen values that fit sizes from current build
> > results.
> 
> In all of the first two, it's limit on overall size
> (text/data/rodata/bss).

Not sure I understand you there. Anyway the patches are out, so best is
you comment directly on the changes.

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list