[PATCH] Makefile: pass external DTB provided by make variable EXT_DTB to binman

al.kochet at gmail.com al.kochet at gmail.com
Wed Sep 18 11:03:59 CEST 2024


From: Alexander Kochetkov <al.kochet at gmail.com>

Yocto build is using EXT_DTB to repack U-boot during signed
FIT kernel creation. First, it takes the DTB from U-boot, than
it creates signed FIT kernel image and places kernel key into
the DTB. After that it executes:
    make EXT_DTB=/path/to/dtb/with/kernel/key

Signed-off-by: Alexander Kochetkov <al.kochet at gmail.com>
---
 Makefile | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 1c754ceb595..21b47cb2b59 100644
--- a/Makefile
+++ b/Makefile
@@ -1367,7 +1367,16 @@ u-boot.ldr:	u-boot
 # ---------------------------------------------------------------------------
 # Use 'make BINMAN_DEBUG=1' to enable debugging
 # Use 'make BINMAN_VERBOSE=3' to set vebosity level
+
+ifneq ($(EXT_DTB),)
+of_list := $(basename $(notdir $(EXT_DTB)))
+of_list_dir := $(dir $(EXT_DTB))
+default_dt := $(of_list)
+else
+of_list := $(CONFIG_OF_LIST)
+of_list_dir := $(dt_dir)
 default_dt := $(if $(DEVICE_TREE),$(DEVICE_TREE),$(CONFIG_DEFAULT_DEVICE_TREE))
+endif
 
 quiet_cmd_binman = BINMAN  $@
 cmd_binman = $(srctree)/tools/binman/binman $(if $(BINMAN_DEBUG),-D) \
@@ -1377,7 +1386,7 @@ cmd_binman = $(srctree)/tools/binman/binman $(if $(BINMAN_DEBUG),-D) \
 		build -u -d u-boot.dtb -O . -m \
 		--allow-missing $(if $(BINMAN_ALLOW_MISSING),--ignore-missing) \
 		-I . -I $(srctree) -I $(srctree)/board/$(BOARDDIR) \
-		-I $(dt_dir) -a of-list=$(CONFIG_OF_LIST) \
+		-I $(of_list_dir) -a of-list=$(of_list) \
 		$(foreach f,$(BINMAN_INDIRS),-I $(f)) \
 		-a atf-bl31-path=${BL31} \
 		-a tee-os-path=${TEE} \
-- 
2.17.1



More information about the U-Boot mailing list