[PATCH v4 09/13] binman: Support packaging U-Boot for scenarios like OF_BOARD or OF_PRIOR_STAGE
Bin Meng
bmeng.cn at gmail.com
Mon May 10 08:58:33 CEST 2021
For scenarios like OF_BOARD or OF_PRIOR_STAGE, no device tree blob is
provided in the U-Boot build phase hence the binman node information
is not available. In order to support such use case, a new Kconfig
option BINMAN_STANDALONE_FDT is introduced, to tell the build system
that a device tree blob containing binman node is explicitly required
when using binman to package U-Boot.
Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
---
Changes in v4:
- update the makefile dependency on u-boot.img instead of u-boot.bin
Changes in v3:
- rename the Kconfig option name to BINMAN_STANDALONE_FDT
- make BINMAN_STANDALONE_FDT default y for OF_BOARD as well
- reword the Kconfig option help message a little bit
Changes in v2:
- new patch: "binman: Support packaging U-Boot for scenarios like OF_PRIOR_STAGE"
Makefile | 3 ++-
dts/Kconfig | 18 ++++++++++++++++++
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 3d88559b67..1dbf0b0b8c 100644
--- a/Makefile
+++ b/Makefile
@@ -918,6 +918,7 @@ endif
endif
INPUTS-$(CONFIG_TPL) += tpl/u-boot-tpl.bin
INPUTS-$(CONFIG_OF_SEPARATE) += u-boot.dtb
+INPUTS-$(CONFIG_BINMAN_STANDALONE_FDT) += u-boot.dtb
ifeq ($(CONFIG_SPL_FRAMEWORK),y)
INPUTS-$(CONFIG_OF_SEPARATE) += u-boot-dtb.img
endif
@@ -1392,7 +1393,7 @@ u-boot-lzma.img: u-boot.bin.lzma FORCE
u-boot-dtb.img u-boot.img u-boot.kwb u-boot.pbl u-boot-ivt.img: \
$(if $(CONFIG_SPL_LOAD_FIT),u-boot-nodtb.bin \
- $(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_OF_HOSTFILE),dts/dt.dtb) \
+ $(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_OF_HOSTFILE)$(CONFIG_BINMAN_STANDALONE_FDT),dts/dt.dtb) \
,$(UBOOT_BIN)) FORCE
$(call if_changed,mkimage)
$(BOARD_SIZE_CHECK)
diff --git a/dts/Kconfig b/dts/Kconfig
index 99ce75e1a2..dabe0080c1 100644
--- a/dts/Kconfig
+++ b/dts/Kconfig
@@ -19,6 +19,24 @@ config BINMAN
bool
select DTOC
+config BINMAN_STANDALONE_FDT
+ bool
+ depends on BINMAN
+ default y if OF_BOARD || OF_PRIOR_STAGE
+ help
+ This option tells U-Boot build system that a standalone device tree
+ source is explicitly required when using binman to package U-Boot.
+
+ This is not necessary in a common scenario where a device tree source
+ that contains the binman node is provided in the arch/<arch>/dts
+ directory for a specific board. Such device tree sources are built for
+ OF_SEPARATE or OF_EMBED. However for a scenario like the board device
+ tree blob is not provided in the U-Boot build tree, but fed to U-Boot
+ in the runtime, e.g.: in the OF_PRIOR_STAGE case that it is passed by
+ a prior stage bootloader. For such scenario, a standalone device tree
+ blob containing binman node to describe how to package U-Boot should
+ be provided explicitly.
+
menu "Device Tree Control"
depends on SUPPORT_OF_CONTROL
--
2.25.1
More information about the U-Boot
mailing list