[PATCH v6 01/11] Makefile: add SPL_REMAKE_ELF_LDSCRIPT feature
michael.srba at seznam.cz
michael.srba at seznam.cz
Fri May 8 02:33:23 CEST 2026
From: Michael Srba <Michael.Srba at seznam.cz>
Some platforms (e.g. at least Qualcomm) use the ELF format in creative
ways, including in the bootrom. Make SPL_REMAKE_ELF use a linker script
specified in SPL_REMAKE_ELF_LDSCRIPT (with the previously hardcoded path
as the default).
Signed-off-by: Michael Srba <Michael.Srba at seznam.cz>
---
Makefile | 9 +++++++--
common/spl/Kconfig | 12 ++++++++++++
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 49d9740327e..8fe722f6c0d 100644
--- a/Makefile
+++ b/Makefile
@@ -2008,12 +2008,17 @@ u-boot.elf: u-boot.bin u-boot-elf.lds FORCE
quiet_cmd_u-boot-spl-elf ?= LD $@
cmd_u-boot-spl-elf ?= $(LD) spl/u-boot-spl-elf.o -o $@ \
$(if $(CONFIG_SYS_BIG_ENDIAN),-EB,-EL) \
- -T u-boot-elf.lds --defsym=$(CONFIG_PLATFORM_ELFENTRY)=$(CONFIG_SPL_TEXT_BASE) \
+ -T spl/u-boot-spl-elf.lds --defsym=$(CONFIG_PLATFORM_ELFENTRY)=$(CONFIG_SPL_TEXT_BASE) \
-Ttext=$(CONFIG_SPL_TEXT_BASE)
-spl/u-boot-spl.elf: spl/u-boot-spl.bin u-boot-elf.lds
+spl/u-boot-spl.elf: spl/u-boot-spl.bin spl/u-boot-spl-elf.lds
$(Q)$(OBJCOPY) -I binary $(PLATFORM_ELFFLAGS) $< spl/u-boot-spl-elf.o
$(call if_changed,u-boot-spl-elf)
+SPL_REMAKE_ELF_LDSCRIPT := $(addprefix $(srctree)/,$(CONFIG_SPL_REMAKE_ELF_LDSCRIPT:"%"=%))
+
+spl/u-boot-spl-elf.lds: $(SPL_REMAKE_ELF_LDSCRIPT) prepare FORCE
+ $(call if_changed_dep,cpp_lds)
+
u-boot-elf.lds: arch/u-boot-elf.lds prepare FORCE
$(call if_changed_dep,cpp_lds)
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index 5fa94098e49..5c7b094e6b6 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -238,6 +238,18 @@ config SPL_HANDOFF
proper. Also SPL can receive information from TPL in the same place
if that is enabled.
+config SPL_REMAKE_ELF_LDSCRIPT
+ string "Linker script for SPL ELF"
+ depends on SPL_REMAKE_ELF
+ default "arch/u-boot-elf.lds"
+ help
+ This allows specifying a linker script that will be used to re-wrap
+ the SPL binary into an ELF.
+
+ Some platforms (e.g. at least Qualcomm) use the ELF format in creative
+ ways, including in the bootrom. For such platforms, you can change
+ the default linker script to a platform-specific one.
+
config SPL_LDSCRIPT
string "Linker script for the SPL stage"
default "arch/arm/cpu/arm926ejs/sunxi/u-boot-spl.lds" if MACH_SUNIV
--
2.53.0
More information about the U-Boot
mailing list