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


Reply via email to