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

From: Alexander Kochetkov al.kochet@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@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} \

Hi,
On Wed, 18 Sept 2024 at 11:04, al.kochet@gmail.com wrote:
From: Alexander Kochetkov al.kochet@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
U-Boot (please fix both)
s/than/then/
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@gmail.com
Makefile | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)
Reviewed-by: Simon Glass sjg@chromium.org
How do you handle a FIT with multiple configurations?
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
Regards, Simon
participants (2)
-
al.kochet@gmail.com
-
Simon Glass