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 <[email protected]> --- Makefile | 16 ++++++++++------ images/Makefile | 2 +- pbl/Kconfig | 9 +++++++++ 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index aa12b385c779512fe20d33792f4968fed2eec29a..d1e6e3e418e4875b0fdee2e156acecdbbd5e3c9a 100644 --- a/Makefile +++ b/Makefile @@ -831,7 +831,11 @@ export KBUILD_BINARY ?= barebox.bin # Also any assignments in arch/$(SRCARCH)/Makefile take precedence over # the default value. +ifeq ($(CONFIG_PBL_IMAGE_ELF),y) +export BAREBOX_PROPER ?= vmbarebox +else export BAREBOX_PROPER ?= barebox.bin +endif barebox-flash-images: $(KBUILD_IMAGE) @echo $^ > $@ @@ -854,7 +858,7 @@ endif all: $(symlink-y) ifeq ($(CONFIG_PBL_IMAGE)-$(CONFIG_PBL_IMAGE_NO_PIGGY),y-) -all: barebox.elf +all: vmbarebox endif .SECONDEXPANSION: @@ -1099,12 +1103,12 @@ barebox.fit: images/barebox-$(CONFIG_ARCH_LINUX_NAME).fit barebox.srec: barebox $(OBJCOPY) -O srec $< $@ -OBJCOPYFLAGS_barebox.elf = --strip-debug --strip-unneeded \ - --remove-section=.comment \ - --remove-section=.note* \ - --remove-section=.gnu.hash +OBJCOPYFLAGS_vmbarebox = --strip-debug --strip-unneeded \ + --remove-section=.comment \ + --remove-section=.note* \ + --remove-section=.gnu.hash -barebox.elf: barebox FORCE +vmbarebox: barebox FORCE $(call if_changed,objcopy) quiet_cmd_barebox_proper__ = CC $@ diff --git a/images/Makefile b/images/Makefile index ebbf57b463558724c97a6b4ca65c33f80dad253b..dd1be18eeef1a4ef42d3b9dc4b9c4f5d22c10d1a 100644 --- a/images/Makefile +++ b/images/Makefile @@ -231,7 +231,7 @@ ifneq ($(pblx-y)$(pblx-),) $(error pblx- has been removed. Please use pblb- instead.) endif -targets += $(image-y) pbl.lds barebox.x barebox.z piggy.o sha_sum.o barebox.sha.bin barebox.sum +targets += $(image-y) pbl.lds barebox.x barebox.z barebox.elf.z piggy.o sha_sum.o barebox.sha.bin barebox.sum targets += $(patsubst %,%.pblb,$(pblb-y)) targets += $(patsubst %,%.pbl,$(pblb-y)) targets += $(patsubst %,%.s,$(pblb-y)) diff --git a/pbl/Kconfig b/pbl/Kconfig index cab9325d16e8625bcca10125b3281062abffedbc..63f29cd6135926c48b355b80fc7a123b90098c20 100644 --- a/pbl/Kconfig +++ b/pbl/Kconfig @@ -21,6 +21,15 @@ config PBL_IMAGE_NO_PIGGY want to use the piggy mechanism to load barebox proper. It's so far only intended for sandbox. +config PBL_IMAGE_ELF + bool + depends on PBL_IMAGE + select ELF + help + If yes, link ELF image into the PBL, otherwise a raw binary + is linked into the PBL. This must match the loader code in the + PBL. + config PBL_MULTI_IMAGES bool select PBL_IMAGE -- 2.47.3
