On Tue, Jan 22, 2019 at 4:09 PM Tom Rini <tr...@konsulko.com> wrote: > > Make use of "IMAGE_MAX_SIZE" and "IMAGE_TEXT_BASE" rather than > CONFIG_SPL_MAX_SIZE and CONFIG_SPL_TEXT_BASE. This lets us re-use the > same script for both SPL and TPL. Add logic to scripts/Makefile.spl to > pass in the right value when preprocessing the script.
Anytime we can re-use, I am happy. :-) > > Cc: Stefano Babic <sba...@denx.de> > Cc: Fabio Estevam <fabio.este...@nxp.com> > Cc: Jagan Teki <ja...@openedev.com> > Cc: Maxime Ripard <maxime.rip...@bootlin.com> > Cc: Andreas Bießmann <andr...@biessmann.org> > Cc: Philipp Tomsich <philipp.toms...@theobroma-systems.com> > Cc: Michal Simek <mon...@monstr.eu> > Cc: Daniel Schwierzeck <daniel.schwierz...@gmail.com> > Cc: York Sun <york....@nxp.com> > Cc: Bin Meng <bmeng...@gmail.com> > Cc: Heiko Schocher <h...@denx.de> > Cc: Adam Ford <aford...@gmail.com> Tested-by: Adam Ford <aford...@gmail.com> #da850evm & omap3_logic_somlv > Signed-off-by: Tom Rini <tr...@konsulko.com> > --- > arch/arm/cpu/arm1136/u-boot-spl.lds | 4 ++-- > arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds | 2 +- > arch/arm/cpu/arm926ejs/orion5x/u-boot-spl.lds | 4 ++-- > arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds | 4 ++-- > arch/arm/cpu/armv7/sunxi/u-boot-spl.lds | 4 ++-- > arch/arm/cpu/armv8/u-boot-spl.lds | 4 ++-- > arch/arm/cpu/u-boot-spl.lds | 4 ++-- > arch/arm/mach-at91/arm926ejs/u-boot-spl.lds | 8 ++++---- > arch/arm/mach-at91/armv7/u-boot-spl.lds | 4 ++-- > arch/arm/mach-omap2/u-boot-spl.lds | 4 ++-- > arch/arm/mach-rockchip/Kconfig | 6 ------ > arch/arm/mach-rockchip/rk3288/u-boot-tpl.lds | 9 --------- > arch/arm/mach-rockchip/rk3368/u-boot-tpl.lds | 12 ------------ > arch/arm/mach-zynq/u-boot-spl.lds | 4 ++-- > arch/mips/cpu/u-boot-spl.lds | 4 ++-- > arch/powerpc/cpu/mpc85xx/u-boot-spl.lds | 6 +----- > arch/x86/cpu/u-boot-spl.lds | 2 +- > board/Barix/ipam390/u-boot-spl-ipam390.lds | 2 +- > board/davinci/da8xxevm/u-boot-spl-da850evm.lds | 2 +- > board/samsung/common/exynos-uboot-spl.lds | 2 +- > common/spl/Kconfig | 2 ++ > scripts/Makefile.spl | 9 +++++++++ > 22 files changed, 41 insertions(+), 61 deletions(-) > delete mode 100644 arch/arm/mach-rockchip/rk3288/u-boot-tpl.lds > delete mode 100644 arch/arm/mach-rockchip/rk3368/u-boot-tpl.lds > > diff --git a/arch/arm/cpu/arm1136/u-boot-spl.lds > b/arch/arm/cpu/arm1136/u-boot-spl.lds > index 881275adef51..f83988fd7e6a 100644 > --- a/arch/arm/cpu/arm1136/u-boot-spl.lds > +++ b/arch/arm/cpu/arm1136/u-boot-spl.lds > @@ -8,8 +8,8 @@ > * Aneesh V <ane...@ti.com> > */ > > -MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE,\ > - LENGTH = CONFIG_SPL_MAX_SIZE } > +MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE,\ > + LENGTH = IMAGE_MAX_SIZE } > MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \ > LENGTH = CONFIG_SPL_BSS_MAX_SIZE } > > diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds > b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds > index ffc70ce86bfd..7e20448f8108 100644 > --- a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds > +++ b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds > @@ -15,7 +15,7 @@ OUTPUT_ARCH(arm) > ENTRY(_start) > SECTIONS > { > - . = CONFIG_SPL_TEXT_BASE; > + . = IMAGE_TEXT_BASE; > > . = ALIGN(4); > .text : > diff --git a/arch/arm/cpu/arm926ejs/orion5x/u-boot-spl.lds > b/arch/arm/cpu/arm926ejs/orion5x/u-boot-spl.lds > index fbdb1d7e77a4..a537fe02954b 100644 > --- a/arch/arm/cpu/arm926ejs/orion5x/u-boot-spl.lds > +++ b/arch/arm/cpu/arm926ejs/orion5x/u-boot-spl.lds > @@ -16,8 +16,8 @@ > * Texas Instruments, <www.ti.com> > * Aneesh V <ane...@ti.com> > */ > -MEMORY { .nor : ORIGIN = CONFIG_SPL_TEXT_BASE,\ > - LENGTH = CONFIG_SPL_MAX_SIZE } > +MEMORY { .nor : ORIGIN = IMAGE_TEXT_BASE,\ > + LENGTH = IMAGE_MAX_SIZE } > MEMORY { .bss : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \ > LENGTH = CONFIG_SPL_BSS_MAX_SIZE } > > diff --git a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds > b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds > index 569704c317e9..0964a9742e4c 100644 > --- a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds > +++ b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds > @@ -12,8 +12,8 @@ > * Gary Jennejohn, DENX Software Engineering, <ga...@denx.de> > */ > > -MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE,\ > - LENGTH = CONFIG_SPL_MAX_SIZE } > +MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE,\ > + LENGTH = IMAGE_MAX_SIZE } > > OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") > OUTPUT_ARCH(arm) > diff --git a/arch/arm/cpu/armv7/sunxi/u-boot-spl.lds > b/arch/arm/cpu/armv7/sunxi/u-boot-spl.lds > index 5d7f3f578bef..942c29fc959d 100644 > --- a/arch/arm/cpu/armv7/sunxi/u-boot-spl.lds > +++ b/arch/arm/cpu/armv7/sunxi/u-boot-spl.lds > @@ -13,8 +13,8 @@ > * Texas Instruments, <www.ti.com> > * Aneesh V <ane...@ti.com> > */ > -MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE,\ > - LENGTH = CONFIG_SPL_MAX_SIZE } > +MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE,\ > + LENGTH = IMAGE_MAX_SIZE } > MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \ > LENGTH = CONFIG_SPL_BSS_MAX_SIZE } > > diff --git a/arch/arm/cpu/armv8/u-boot-spl.lds > b/arch/arm/cpu/armv8/u-boot-spl.lds > index 4e48da56be89..ccbf359bd11d 100644 > --- a/arch/arm/cpu/armv8/u-boot-spl.lds > +++ b/arch/arm/cpu/armv8/u-boot-spl.lds > @@ -11,8 +11,8 @@ > * Aneesh V <ane...@ti.com> > */ > > -MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE, > - LENGTH = CONFIG_SPL_MAX_SIZE } > +MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE, > + LENGTH = IMAGE_MAX_SIZE } > MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR, > LENGTH = CONFIG_SPL_BSS_MAX_SIZE } > > diff --git a/arch/arm/cpu/u-boot-spl.lds b/arch/arm/cpu/u-boot-spl.lds > index 9d1333176b54..a2aa93a7357d 100644 > --- a/arch/arm/cpu/u-boot-spl.lds > +++ b/arch/arm/cpu/u-boot-spl.lds > @@ -78,8 +78,8 @@ SECTIONS > .ARM.exidx : { *(.ARM.exidx*) } > } > > -#if defined(CONFIG_SPL_MAX_SIZE) > -ASSERT(__image_copy_end - __image_copy_start < (CONFIG_SPL_MAX_SIZE), \ > +#if defined(IMAGE_MAX_SIZE) > +ASSERT(__image_copy_end - __image_copy_start < (IMAGE_MAX_SIZE), \ > "SPL image too big"); > #endif > > diff --git a/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds > b/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds > index b714e93b3b21..f18b17dc931c 100644 > --- a/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds > +++ b/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds > @@ -4,8 +4,8 @@ > * Bo Shen <voice.s...@atmel.com> > */ > > -MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE, \ > - LENGTH = CONFIG_SPL_MAX_SIZE } > +MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE, \ > + LENGTH = IMAGE_MAX_SIZE } > MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \ > LENGTH = CONFIG_SPL_BSS_MAX_SIZE } > > @@ -49,8 +49,8 @@ SECTIONS > } >.sdram > } > > -#if defined(CONFIG_SPL_MAX_SIZE) > -ASSERT(__image_copy_end - __start < (CONFIG_SPL_MAX_SIZE), \ > +#if defined(IMAGE_MAX_SIZE) > +ASSERT(__image_copy_end - __start < (IMAGE_MAX_SIZE), \ > "SPL image too big"); > #endif > > diff --git a/arch/arm/mach-at91/armv7/u-boot-spl.lds > b/arch/arm/mach-at91/armv7/u-boot-spl.lds > index 22237cffc92f..950ea55d7c4e 100644 > --- a/arch/arm/mach-at91/armv7/u-boot-spl.lds > +++ b/arch/arm/mach-at91/armv7/u-boot-spl.lds > @@ -11,8 +11,8 @@ > * Bo Shen <voice.s...@atmel.com> > */ > > -MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE, \ > - LENGTH = CONFIG_SPL_MAX_SIZE } > +MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE, \ > + LENGTH = IMAGE_MAX_SIZE } > MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \ > LENGTH = CONFIG_SPL_BSS_MAX_SIZE } > > diff --git a/arch/arm/mach-omap2/u-boot-spl.lds > b/arch/arm/mach-omap2/u-boot-spl.lds > index a1289f6a7440..88d81f9b98d6 100644 > --- a/arch/arm/mach-omap2/u-boot-spl.lds > +++ b/arch/arm/mach-omap2/u-boot-spl.lds > @@ -8,8 +8,8 @@ > * Aneesh V <ane...@ti.com> > */ > > -MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE,\ > - LENGTH = CONFIG_SPL_MAX_SIZE } > +MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE,\ > + LENGTH = IMAGE_MAX_SIZE } > MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \ > LENGTH = CONFIG_SPL_BSS_MAX_SIZE } > > diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig > index b0082416b0c6..8e9d88c3f9fa 100644 > --- a/arch/arm/mach-rockchip/Kconfig > +++ b/arch/arm/mach-rockchip/Kconfig > @@ -75,9 +75,6 @@ config ROCKCHIP_RK3288 > > if ROCKCHIP_RK3288 > > -config TPL_LDSCRIPT > - default "arch/arm/mach-rockchip/rk3288/u-boot-tpl.lds" > - > config TPL_TEXT_BASE > default 0xff704000 > > @@ -120,9 +117,6 @@ config ROCKCHIP_RK3368 > > if ROCKCHIP_RK3368 > > -config TPL_LDSCRIPT > - default "arch/arm/mach-rockchip/rk3368/u-boot-tpl.lds" > - > config TPL_TEXT_BASE > default 0xff8c1000 > > diff --git a/arch/arm/mach-rockchip/rk3288/u-boot-tpl.lds > b/arch/arm/mach-rockchip/rk3288/u-boot-tpl.lds > deleted file mode 100644 > index 2e559890ab78..000000000000 > --- a/arch/arm/mach-rockchip/rk3288/u-boot-tpl.lds > +++ /dev/null > @@ -1,9 +0,0 @@ > -/* SPDX-License-Identifier: GPL-2.0+ */ > -/* > - * Copyright (C) 2018 Jagan Teki <ja...@amarulasolutions.com> > - */ > - > -#undef CONFIG_SPL_TEXT_BASE > -#define CONFIG_SPL_TEXT_BASE CONFIG_TPL_TEXT_BASE > - > -#include "../../cpu/u-boot-spl.lds" > diff --git a/arch/arm/mach-rockchip/rk3368/u-boot-tpl.lds > b/arch/arm/mach-rockchip/rk3368/u-boot-tpl.lds > deleted file mode 100644 > index 7ba35b6c94db..000000000000 > --- a/arch/arm/mach-rockchip/rk3368/u-boot-tpl.lds > +++ /dev/null > @@ -1,12 +0,0 @@ > -/* SPDX-License-Identifier: GPL-2.0+ */ > -/* > - * (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH > - */ > - > -#undef CONFIG_SPL_TEXT_BASE > -#define CONFIG_SPL_TEXT_BASE CONFIG_TPL_TEXT_BASE > - > -#undef CONFIG_SPL_MAX_SIZE > -#define CONFIG_SPL_MAX_SIZE CONFIG_TPL_MAX_SIZE > - > -#include "../../cpu/armv8/u-boot-spl.lds" > diff --git a/arch/arm/mach-zynq/u-boot-spl.lds > b/arch/arm/mach-zynq/u-boot-spl.lds > index 080c6bf06d06..106d2e390ba8 100644 > --- a/arch/arm/mach-zynq/u-boot-spl.lds > +++ b/arch/arm/mach-zynq/u-boot-spl.lds > @@ -7,8 +7,8 @@ > * Gary Jennejohn, DENX Software Engineering, <ga...@denx.de> > */ > > -MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE,\ > - LENGTH = CONFIG_SPL_MAX_SIZE } > +MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE,\ > + LENGTH = IMAGE_MAX_SIZE } > MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \ > LENGTH = CONFIG_SPL_BSS_MAX_SIZE } > > diff --git a/arch/mips/cpu/u-boot-spl.lds b/arch/mips/cpu/u-boot-spl.lds > index be194d314b64..d08d6222c4ab 100644 > --- a/arch/mips/cpu/u-boot-spl.lds > +++ b/arch/mips/cpu/u-boot-spl.lds > @@ -1,7 +1,7 @@ > /* SPDX-License-Identifier: GPL-2.0+ */ > > -MEMORY { .spl_mem : ORIGIN = CONFIG_SPL_TEXT_BASE, \ > - LENGTH = CONFIG_SPL_MAX_SIZE } > +MEMORY { .spl_mem : ORIGIN = IMAGE_TEXT_BASE, \ > + LENGTH = IMAGE_MAX_SIZE } > MEMORY { .bss_mem : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \ > LENGTH = CONFIG_SPL_BSS_MAX_SIZE } > > diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds > b/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds > index bd0eeb104260..27a5fe6306a3 100644 > --- a/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds > +++ b/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds > @@ -18,11 +18,7 @@ PHDRS > #endif > SECTIONS > { > -#ifdef CONFIG_TPL_BUILD > - . = CONFIG_TPL_TEXT_BASE; > -#else > - . = CONFIG_SPL_TEXT_BASE; > -#endif > + . = IMAGE_TEXT_BASE; > .text : { > *(.text*) > } > diff --git a/arch/x86/cpu/u-boot-spl.lds b/arch/x86/cpu/u-boot-spl.lds > index 574d992aaa98..4e656dc4e5a7 100644 > --- a/arch/x86/cpu/u-boot-spl.lds > +++ b/arch/x86/cpu/u-boot-spl.lds > @@ -15,7 +15,7 @@ SECTIONS > /DISCARD/ : { *(.u_boot_list_2_cmd_*) } > #endif > > - . = CONFIG_SPL_TEXT_BASE; /* Location of bootcode in flash */ > + . = IMAGE_TEXT_BASE; /* Location of bootcode in flash */ > __text_start = .; > .text : { *(.text*); } > > diff --git a/board/Barix/ipam390/u-boot-spl-ipam390.lds > b/board/Barix/ipam390/u-boot-spl-ipam390.lds > index cf13e0a41cd3..06ed3fa89f81 100644 > --- a/board/Barix/ipam390/u-boot-spl-ipam390.lds > +++ b/board/Barix/ipam390/u-boot-spl-ipam390.lds > @@ -7,7 +7,7 @@ > * Guennadi Liakhovetki, DENX Software Engineering, <l...@denx.de> > */ > > -MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE,\ > +MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE,\ > LENGTH = CONFIG_SPL_MAX_FOOTPRINT } > > OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") > diff --git a/board/davinci/da8xxevm/u-boot-spl-da850evm.lds > b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds > index f5462f88b1eb..7b5fab7756cb 100644 > --- a/board/davinci/da8xxevm/u-boot-spl-da850evm.lds > +++ b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds > @@ -7,7 +7,7 @@ > * Guennadi Liakhovetki, DENX Software Engineering, <l...@denx.de> > */ > > -MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE,\ > +MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE,\ > LENGTH = CONFIG_SPL_MAX_FOOTPRINT } > > OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") > diff --git a/board/samsung/common/exynos-uboot-spl.lds > b/board/samsung/common/exynos-uboot-spl.lds > index 0d4be426b69b..5b32f7feb817 100644 > --- a/board/samsung/common/exynos-uboot-spl.lds > +++ b/board/samsung/common/exynos-uboot-spl.lds > @@ -8,7 +8,7 @@ > * Based on arch/arm/cpu/armv7/omap-common/u-boot-spl.lds > */ > > -MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE, \ > +MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE, \ > LENGTH = CONFIG_SPL_MAX_FOOTPRINT } > > OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") > diff --git a/common/spl/Kconfig b/common/spl/Kconfig > index d175bb6cffe8..6a9b4d571e21 100644 > --- a/common/spl/Kconfig > +++ b/common/spl/Kconfig > @@ -911,6 +911,8 @@ config TPL_BOARD_INIT > config TPL_LDSCRIPT > string "Linker script for the TPL stage" > depends on TPL > + default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64 > + default "arch/$(ARCH)/cpu/u-boot-spl.lds" > help > The TPL stage will usually require a different linker-script > (as it runs from a different memory region) than the regular > diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl > index ca671eb7f5cc..af41f68840b6 100644 > --- a/scripts/Makefile.spl > +++ b/scripts/Makefile.spl > @@ -147,6 +147,15 @@ LDPPFLAGS += \ > $(shell $(LD) --version | \ > sed -ne 's/GNU ld version > \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/-DLD_MAJOR=\1 -DLD_MINOR=\2/p') > > +# Turn various CONFIG symbols into IMAGE symbols for easy reuse of > +# the scripts between SPL and TPL. > +ifneq ($(CONFIG_$(SPL_TPL_)MAX_SIZE),) > +LDPPFLAGS += -DIMAGE_MAX_SIZE=$(CONFIG_$(SPL_TPL_)MAX_SIZE) > +endif > +ifneq ($(CONFIG_$(SPL_TPL_)TEXT_BASE),) > +LDPPFLAGS += -DIMAGE_TEXT_BASE=$(CONFIG_$(SPL_TPL_)TEXT_BASE) > +endif > + > MKIMAGEOUTPUT ?= /dev/null > > quiet_cmd_mkimage = MKIMAGE $@ > -- > 2.7.4 > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot