diff options
author | Simon Glass <sjg@chromium.org> | 2021-12-16 20:59:38 -0700 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-12-23 11:19:41 -0500 |
commit | b7d8e85b4c4eb2c5e6f5596772e4fafb0eb6e095 (patch) | |
tree | 0940378e026de82f7eae898f5d950d2b02027a0d | |
parent | 24f073d4009e4a35091c676aff83c03dac5c1a6b (diff) | |
download | u-boot-b7d8e85b4c4eb2c5e6f5596772e4fafb0eb6e095.tar.gz u-boot-b7d8e85b4c4eb2c5e6f5596772e4fafb0eb6e095.tar.bz2 u-boot-b7d8e85b4c4eb2c5e6f5596772e4fafb0eb6e095.zip |
fdt: Avoid emitting an device tree when not needed
U-Boot always needs some sort of a device tree in the build. Some boards
never actually use this, at least in production systems, since a prior
firmware stage sets one up and passes it to U-Boot. At present the only
mechanism to do that is with custom function (OF_BOARD), but future work
will include a standard way of doing this ('standard passage').
It can be confusing to see a device tree emitted from the U-Boot build in
this situation. Add an option to drop it.
Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | dts/Kconfig | 10 |
2 files changed, 14 insertions, 2 deletions
@@ -944,7 +944,9 @@ INPUTS-$(CONFIG_SPL_FRAMEWORK) += u-boot.img endif endif INPUTS-$(CONFIG_TPL) += tpl/u-boot-tpl.bin -INPUTS-$(CONFIG_OF_SEPARATE) += u-boot.dtb + +# Allow omitting the .dtb output if it is not normally used +INPUTS-$(CONFIG_OF_SEPARATE) += $(if $(CONFIG_OF_OMIT_DTB),dts/dt.dtb,u-boot.dtb) ifeq ($(CONFIG_SPL_FRAMEWORK),y) INPUTS-$(CONFIG_OF_SEPARATE) += u-boot-dtb.img endif @@ -1187,7 +1189,7 @@ u-boot.bin: u-boot-fit-dtb.bin FORCE u-boot-dtb.bin: u-boot-nodtb.bin dts/dt.dtb FORCE $(call if_changed,cat) -else ifeq ($(CONFIG_OF_SEPARATE),y) +else ifeq ($(CONFIG_OF_SEPARATE).$(CONFIG_OF_OMIT_DTB),y.) u-boot-dtb.bin: u-boot-nodtb.bin dts/dt.dtb FORCE $(call if_changed,cat) diff --git a/dts/Kconfig b/dts/Kconfig index e57ce84b98..fb7df533f9 100644 --- a/dts/Kconfig +++ b/dts/Kconfig @@ -129,6 +129,16 @@ config OF_HAS_PRIOR_STAGE Note: This option must be set in Kconfig and cannot be enabled or disabled in the board's defconfig file. +config OF_OMIT_DTB + bool "Omit the device tree output when building" + default y if OF_HAS_PRIOR_STAGE && !BINMAN + help + As a special case, avoid writing a device tree file u-boot.dtb when + building. Also don't include that file in u-boot.bin + + This is used for boards which normally provide a devicetree via a + runtime mechanism (such as OF_BOARD), to avoid confusion. + config DEFAULT_DEVICE_TREE string "Default Device Tree for DT control" depends on OF_CONTROL |