[U-Boot] [PATCH v2] ARM: at91: lds: add test for SPL binary size and bss size

Add test for the SPL binary size and the bss section size. This will throw an error at build time if the SPL sections do not fit in the designated RAM area, thus avoiding oversizing the SPL.
Based on original work by Wenyou Yang.
Signed-off-by: Eugen Hristev eugen.hristev@microchip.com ---
This patch is a rework of the initial series: [PATCH 0/4] at91: SPL size check for at91 boards
It should work fine for all the boards now, so keeping SPL enabled for all the affected boards.
Thanks to Ben Whitten for testing and solution
Changes in v2: - replaced wrong variable __image_copy_start with __start
arch/arm/mach-at91/arm926ejs/u-boot-spl.lds | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds b/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds index eca78f8..b714e93 100644 --- a/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds +++ b/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds @@ -48,3 +48,13 @@ SECTIONS __bss_end = .; } >.sdram } + +#if defined(CONFIG_SPL_MAX_SIZE) +ASSERT(__image_copy_end - __start < (CONFIG_SPL_MAX_SIZE), \ + "SPL image too big"); +#endif + +#if defined(CONFIG_SPL_BSS_MAX_SIZE) +ASSERT(__bss_end - __bss_start < (CONFIG_SPL_BSS_MAX_SIZE), \ + "SPL image BSS too big"); +#endif

On Wed, Nov 28, 2018 at 09:33:43AM +0000, Eugen.Hristev@microchip.com wrote:
Add test for the SPL binary size and the bss section size. This will throw an error at build time if the SPL sections do not fit in the designated RAM area, thus avoiding oversizing the SPL.
Based on original work by Wenyou Yang.
Signed-off-by: Eugen Hristev eugen.hristev@microchip.com
Applied to u-boot/master, thanks!
participants (2)
-
Eugen.Hristev@microchip.com
-
Tom Rini