[PATCH 09/19] PBL: allow to link ELF image into PBL
Ahmad Fatoum
a.fatoum at pengutronix.de
Mon Jan 5 04:11:54 PST 2026
Hello Sascha,
On 1/5/26 12:26 PM, Sascha Hauer wrote:
> Some architectures want to link the barebox proper ELF image into the
> PBL. Allow that and provide a Kconfig option to select the ELF image.
>
> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> ---
> images/Makefile | 18 ++++++++++++++++--
> images/piggy.S | 4 ++++
> pbl/Kconfig | 8 ++++++++
> 3 files changed, 28 insertions(+), 2 deletions(-)
>
> diff --git a/images/Makefile b/images/Makefile
> index 448479ee8cf355a771ce63314ce64a631544f488..8d4fd1504ab64d4f4d1cc19f2b36cff9939964e3 100644
> --- a/images/Makefile
> +++ b/images/Makefile
> @@ -138,7 +138,13 @@ $(obj)/%.itb: $(obj)/%.its FORCE
> $(obj)/%.fit: $(obj)/$$(FILE_$$(@F)) $(dtstree)/dtbs-list FORCE
> $(call if_changed,fit)
>
> -$(obj)/piggy.o: $(obj)/barebox.z FORCE
> +ifeq ($(CONFIG_PBL_IMAGE_ELF),)
> +PIGGY_IMAGE := $(obj)/barebox.z
> +else
> +PIGGY_IMAGE := $(obj)/barebox.elf.z
> +endif
Heh, in my attempt, I had an elfcompress host tool that compressed every
segment separately and then the PBL decompressed every segment on its
own directly to the load address.
Having things laid out properly from the get go is certainly neater.
Why not call it barebox.z still though and change BAREBOX_PROPER to be
vmbarebox? This would
> +
> +$(obj)/piggy.o: ${PIGGY_IMAGE} FORCE
>
> $(obj)/sha_sum.o: $(obj)/barebox.sha.bin FORCE
>
> @@ -154,6 +160,14 @@ $(obj)/barebox.sum: $(obj)/barebox.z FORCE
> $(obj)/barebox.z: $(obj)/../$(BAREBOX_PROPER) FORCE
> $(call if_changed,$(suffix_y))
>
> +# barebox.elf.z - compressed barebox ELF binary
> +# ----------------------------------------------------------------
> +# Prevent the %.elf pattern rule from building ../barebox.elf
> +$(obj)/../barebox.elf: ;
> +
> +$(obj)/barebox.elf.z: $(obj)/../barebox.elf FORCE
> + $(call if_changed,$(suffix_y))
As you noticed youtself, barebox.elf is not a good name, because it's
generated outside this makefile, but still has an %.elf: rule.
How about vmbarebox instead?
> +config PBL_IMAGE_ELF
> + bool
should select ELF.
Cheers,
Ahmad
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list