From mboxrd@z Thu Jan 1 00:00:00 1970 From: Allen Martin Date: Fri, 19 Oct 2012 22:49:05 -0700 Subject: [U-Boot] [PATCH V2 2/5] ARM: enhance u-boot.lds to detect over-sized SPL In-Reply-To: <1350602759-22605-2-git-send-email-swarren@wwwdotorg.org> References: <1350602759-22605-1-git-send-email-swarren@wwwdotorg.org> <1350602759-22605-2-git-send-email-swarren@wwwdotorg.org> Message-ID: <20121020054905.GC25104@badger> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Thu, Oct 18, 2012 at 04:25:56PM -0700, Stephen Warren wrote: > From: Stephen Warren > > Add an ASSERT() to u-boot.lds to detect an SPL that doesn't fit within > SPL_TEXT_BASE..SPL_MAX_SIZE. > > Different .lds files implement this check in two possible ways: > 1) An ASSERT() like this > 2) Defining a MEMORY region of size SPL_MAX_SIZE, and re-directing all > linker output into that region. Since u-boot.lds is used for both > SPL and main U-Boot, this would entail only sometimes defining a > MEMORY region, and only sometimes performing that redirection, and > hence option (1) was deemed much simpler, and hence implemented. > > Note that this causes build failures at least for NVIDIA Tegra Seaboard > and Ventana. However, these are legitimate; the SPL doesn't fit within > the required space, and this does cause runtime issues. > Acked-by: Allen Martin > Signed-off-by: Stephen Warren > --- > v2: New patch; replaced checks in Makefile. > --- > arch/arm/cpu/u-boot.lds | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds > index 9153c3d..ec2a273 100644 > --- a/arch/arm/cpu/u-boot.lds > +++ b/arch/arm/cpu/u-boot.lds > @@ -92,3 +92,7 @@ SECTIONS > /DISCARD/ : { *(.interp*) } > /DISCARD/ : { *(.gnu*) } > } > + > +#if defined(CONFIG_SPL_TEXT_BASE) && defined(CONFIG_SPL_MAX_SIZE) > +ASSERT(__bss_end__ < (CONFIG_SPL_TEXT_BASE + CONFIG_SPL_MAX_SIZE), "SPL image too big"); > +#endif > -- > 1.7.0.4 > -- nvpublic