public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Tom Rini <trini@konsulko.com>
To: michael.srba@seznam.cz
Cc: u-boot@lists.denx.de, Sumit Garg <sumit.garg@kernel.org>,
	u-boot-qcom@groups.io,
	Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	Simon Glass <sjg@chromium.org>,
	Sughosh Ganu <sughosh.ganu@arm.com>,
	Anshul Dalal <anshuld@ti.com>, Peng Fan <peng.fan@nxp.com>,
	Mattijs Korpershoek <mkorpershoek@kernel.org>,
	Quentin Schulz <quentin.schulz@cherry.de>,
	Heinrich Schuchardt <xypron.glpk@gmx.de>,
	Andrew Davis <afd@ti.com>, Hrushikesh Salunke <h-salunke@ti.com>,
	Dario Binacchi <dario.binacchi@amarulasolutions.com>,
	Ye Li <ye.li@nxp.com>, Andre Przywara <andre.przywara@arm.com>,
	Alif Zakuan Yuslaimi <alif.zakuan.yuslaimi@altera.com>,
	Leo Yu-Chi Liang <ycliang@andestech.com>,
	Andrew Goodbody <andrew.goodbody@linaro.org>,
	Dhruva Gole <d-gole@ti.com>,
	Kaustabh Chakraborty <kauschluss@disroot.org>,
	Jerome Forissier <jerome.forissier@arm.com>,
	Heiko Schocher <hs@nabladev.com>,
	Marek Vasut <marek.vasut+renesas@mailbox.org>,
	Lukasz Majewski <lukma@denx.de>,
	Mateusz Kulikowski <mateusz.kulikowski@gmail.com>,
	Dinesh Maniyam <dinesh.maniyam@altera.com>,
	Neil Armstrong <neil.armstrong@linaro.org>,
	Patrice Chotard <patrice.chotard@foss.st.com>,
	Patrick Delaunay <patrick.delaunay@foss.st.com>,
	Michal Simek <michal.simek@amd.com>, Yao Zi <me@ziyao.cc>,
	Peter Korsgaard <peter@korsgaard.com>,
	Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com>,
	Casey Connolly <casey.connolly@linaro.org>,
	Tingting Meng <tingting.meng@altera.com>,
	Tien Fong Chee <tien.fong.chee@altera.com>,
	Alice Guo <alice.guo@nxp.com>, George Chan <gchan9527@gmail.com>,
	Balaji Selvanathan <balaji.selvanathan@oss.qualcomm.com>,
	Alexey Charkov <alchark@gmail.com>,
	Ronald Wahl <ronald.wahl@legrand.com>
Subject: Re: [PATCH v2 01/10] Makefile: add SPL_REMAKE_ELF_LDSCRIPT feature
Date: Mon, 13 Apr 2026 11:12:40 -0600	[thread overview]
Message-ID: <20260413171240.GY41863@bill-the-cat> (raw)
In-Reply-To: <20260411-qcom_spl-v2-1-9609557cf562@seznam.cz>

[-- Attachment #1: Type: text/plain, Size: 3879 bytes --]

On Sat, Apr 11, 2026 at 02:00:06AM +0200, michael.srba@seznam.cz wrote:

> From: Michael Srba <Michael.Srba@seznam.cz>
> 
> On some platforms (at least Qualcomm), the bootrom expects an ELF file.
> Since the contents of the ELF file are platform specific, add a config
> option that allows specifying a linker script to use to produce the
> ELF file.
> 
> Signed-off-by: Michael Srba <Michael.Srba@seznam.cz>
> ---
>  Makefile           | 28 ++++++++++++++++++++++++++++
>  common/spl/Kconfig |  9 +++++++++
>  2 files changed, 37 insertions(+)
> 
> diff --git a/Makefile b/Makefile
> index 8af18668b0f..754ca4d67e2 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1232,6 +1232,9 @@ INPUTS-$(CONFIG_SPL) += $(CONFIG_SPL_TARGET:"%"=%)
>  endif
>  INPUTS-$(CONFIG_REMAKE_ELF) += u-boot.elf
>  INPUTS-$(CONFIG_SPL_REMAKE_ELF) += spl/u-boot-spl.elf
> +ifneq ($(CONFIG_SPL_REMAKE_ELF_LDSCRIPT),)
> +INPUTS-y += spl/u-boot-spl.elf
> +endif
>  INPUTS-$(CONFIG_EFI_APP) += u-boot-app.efi
>  INPUTS-$(CONFIG_EFI_STUB) += u-boot-payload.efi
>  
> @@ -2001,6 +2004,8 @@ u-boot.elf: u-boot.bin u-boot-elf.lds FORCE
>  	$(Q)$(OBJCOPY) -I binary $(PLATFORM_ELFFLAGS) $< u-boot-elf.o
>  	$(call if_changed,u-boot-elf)
>  
> +ifeq ($(CONFIG_SPL_REMAKE_ELF_LDSCRIPT),)
> +
>  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) \
> @@ -2010,10 +2015,33 @@ spl/u-boot-spl.elf: spl/u-boot-spl.bin u-boot-elf.lds
>  	$(Q)$(OBJCOPY) -I binary $(PLATFORM_ELFFLAGS) $< spl/u-boot-spl-elf.o
>  	$(call if_changed,u-boot-spl-elf)
>  
> +endif
> +
>  u-boot-elf.lds: arch/u-boot-elf.lds prepare FORCE
>  	$(call if_changed_dep,cpp_lds)
>  
>  PHONY += prepare0
> +
> +ifeq ($(CONFIG_SPL),y)
> +ifneq ($(CONFIG_SPL_REMAKE_ELF_LDSCRIPT),)
> +
> +SPL_REMAKE_ELF_LDSCRIPT := $(addprefix $(srctree)/,$(CONFIG_SPL_REMAKE_ELF_LDSCRIPT:"%"=%))
> +
> +spl/u-boot-spl-elf.lds: $(SPL_REMAKE_ELF_LDSCRIPT) FORCE
> +	$(call if_changed_dep,cpp_lds)
> +
> +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 spl/u-boot-spl-elf.lds --defsym=$(CONFIG_PLATFORM_ELFENTRY)=$(CONFIG_SPL_TEXT_BASE) \
> +	-Ttext=$(CONFIG_SPL_TEXT_BASE) -z max-page-size=0x1000
> +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)
> +
> +endif
> +endif
> +
>  # MediaTek's ARM-based u-boot needs a header to contains its load address
>  # which is parsed by the BootROM.
>  # If the SPL build is enabled, the header will be added to the spl binary,
> diff --git a/common/spl/Kconfig b/common/spl/Kconfig
> index d1a85f50209..f8981cb4fe5 100644
> --- a/common/spl/Kconfig
> +++ b/common/spl/Kconfig
> @@ -247,6 +247,15 @@ 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 to run with u-boot-spl.bin as input"
> +	depends on !SPL_REMAKE_ELF
> +	help
> +	  This allows specifying a linker script that will act on u-boot-spl.bin.
> +	  Some platforms (e.g Qualcomm) use the ELF format in creative ways,
> +	  including in the bootrom. Unlike SPL_REMAKE_ELF which uses a standard
> +	  linker script, this allows specifying a platorm-specific one.

This is starting to get a little odd. I think we need a pre-requisite
series to cleanup the remake elf logic, so that:
- The lds used is configured in Kconfig (and the default is the current
  one everyone else uses).
  - If we can have different ones for full U-Boot, or SPL
- The Makefile has a broken out the logic for doing the relink itself.

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  parent reply	other threads:[~2026-04-13 21:13 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-11  0:00 [PATCH v2 00/10] Add SPL support for Qualcomm platforms, starting with sdm845 michael.srba
2026-04-11  0:00 ` [PATCH v2 01/10] Makefile: add SPL_REMAKE_ELF_LDSCRIPT feature michael.srba
2026-04-11 15:39   ` Simon Glass
2026-04-13 17:12   ` Tom Rini [this message]
2026-04-11  0:00 ` [PATCH v2 02/10] of_live: support in SPL michael.srba
2026-04-11 15:39   ` Simon Glass
2026-04-11  0:00 ` [PATCH v2 03/10] drivers: allow clk_stub and spmi " michael.srba
2026-04-11 15:39   ` Simon Glass
2026-04-13 17:13   ` Tom Rini
2026-04-11  0:00 ` [PATCH v2 04/10] mach-snapdragon: boot0.h: split out msm8916_boot0.h michael.srba
2026-04-11 15:39   ` Simon Glass
2026-04-11  0:00 ` [PATCH v2 05/10] mach-snapdragon: add u-boot-spl-elf-sdm845.lds michael.srba
2026-04-11 15:40   ` Simon Glass
2026-04-11  0:00 ` [PATCH v2 06/10] mach-snapdragon: Kconfig: changes / additions to support SPL michael.srba
2026-04-11 15:40   ` Simon Glass
2026-04-13 17:17   ` Tom Rini
2026-04-18  1:01     ` Michael Srba
2026-04-20 18:05       ` Tom Rini
2026-04-11  0:00 ` [PATCH v2 07/10] mach-snapdragon: boot0.h: add sdm845_spl_boot0.h michael.srba
2026-04-11 15:40   ` Simon Glass
2026-04-16 19:15     ` Michael Srba
2026-04-16 21:09       ` Simon Glass
2026-04-11  0:00 ` [PATCH v2 08/10] mach-snapdragon: add board-spl.c and split out common code michael.srba
2026-04-11 20:30   ` Simon Glass
2026-04-11  0:00 ` [PATCH v2 09/10] qualcomm: add defconfig, env and docs for SPL on sdm845 michael.srba
2026-04-11 20:30   ` Simon Glass
2026-04-13 17:21   ` Tom Rini
2026-04-11  0:00 ` [PATCH v2 10/10] dts: add u-boot specific sdm845 .dtsi a .dtsi for shift-axolotl michael.srba
2026-04-11 15:40   ` Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260413171240.GY41863@bill-the-cat \
    --to=trini@konsulko.com \
    --cc=afd@ti.com \
    --cc=alchark@gmail.com \
    --cc=alice.guo@nxp.com \
    --cc=alif.zakuan.yuslaimi@altera.com \
    --cc=andre.przywara@arm.com \
    --cc=andrew.goodbody@linaro.org \
    --cc=anshuld@ti.com \
    --cc=balaji.selvanathan@oss.qualcomm.com \
    --cc=casey.connolly@linaro.org \
    --cc=d-gole@ti.com \
    --cc=dario.binacchi@amarulasolutions.com \
    --cc=dinesh.maniyam@altera.com \
    --cc=gchan9527@gmail.com \
    --cc=h-salunke@ti.com \
    --cc=hs@nabladev.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=jerome.forissier@arm.com \
    --cc=kauschluss@disroot.org \
    --cc=lukma@denx.de \
    --cc=marek.vasut+renesas@mailbox.org \
    --cc=mateusz.kulikowski@gmail.com \
    --cc=me@ziyao.cc \
    --cc=michael.srba@seznam.cz \
    --cc=michal.simek@amd.com \
    --cc=mkorpershoek@kernel.org \
    --cc=neil.armstrong@linaro.org \
    --cc=patrice.chotard@foss.st.com \
    --cc=patrick.delaunay@foss.st.com \
    --cc=peng.fan@nxp.com \
    --cc=peter@korsgaard.com \
    --cc=quentin.schulz@cherry.de \
    --cc=rayagonda.kokatanur@broadcom.com \
    --cc=ronald.wahl@legrand.com \
    --cc=sjg@chromium.org \
    --cc=sughosh.ganu@arm.com \
    --cc=sumit.garg@kernel.org \
    --cc=tien.fong.chee@altera.com \
    --cc=tingting.meng@altera.com \
    --cc=u-boot-qcom@groups.io \
    --cc=u-boot@lists.denx.de \
    --cc=xypron.glpk@gmx.de \
    --cc=ycliang@andestech.com \
    --cc=ye.li@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox