[PATCH 05/13] kbuild: restrict dtbs target to enabled DTs by default
Ahmad Fatoum
a.fatoum at pengutronix.de
Sun Jan 12 00:34:24 PST 2025
Our existing dtbs target is fairly primitive and builds just all device
trees in the architecture folder without regard to whether they are even
wired in the Makefile or not.
Now that we have a list of all device trees in the form of dtbs-list,
let's rework the dtbs target to make use of it. The old behavior of
building all device trees can still be achieved by enabling
CONFIG_OF_ALL_DTBS.
In order to have dtbs-list updated always, it's also added to the
dependencies of the images target. That way, a FIT image target that
will be added in a later commit can reliably depend on that file to be
available.
Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
Makefile | 22 +++++++++++++++++-----
drivers/of/Kconfig | 11 +++++++++++
2 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/Makefile b/Makefile
index 82f90373cbbd..75e994e5ac1a 100644
--- a/Makefile
+++ b/Makefile
@@ -1114,10 +1114,22 @@ endif
ifneq ($(dtstree),)
-PHONY += dtbs
-all_dtbs += $(patsubst $(srctree)/%.dts,$(objtree)/%.dtb,$(wildcard $(srctree)/$(dtstree)/*.dts))
-targets += $(all_dtbs)
-dtbs: $(all_dtbs)
+%.dtb: dtbs_prepare
+ $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
+
+%.dtbo: dtbs_prepare
+ $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
+
+PHONY += dtbs dtbs_prepare
+dtbs: dtbs_prepare
+ $(Q)$(MAKE) $(build)=$(dtstree) need-dtbslist=1
+
+dtbs_prepare: include/config/kernel.release scripts_dtc
+
+ifdef CONFIG_OFDEVICE
+images: dtbs
+images/%: dtbs
+endif
endif
@@ -1322,7 +1334,7 @@ help:
@echo ''
@$(if $(dtstree), \
echo ' Devicetree:'; \
- echo ' * dtbs - Build device tree blobs for all boards'; \
+ echo ' * dtbs - Build device tree blobs for enabled boards'; \
echo '')
@$(if $(boards), \
$(foreach b, $(boards), \
diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig
index 6c9aedf355b4..ebc8842f5e38 100644
--- a/drivers/of/Kconfig
+++ b/drivers/of/Kconfig
@@ -3,6 +3,17 @@ config OFTREE
select DTC
bool
+config OF_ALL_DTBS
+ bool "Build all Device Tree Blobs"
+ depends on OFTREE && COMPILE_TEST
+ select DTC
+ help
+ This option builds all possible Device Tree Blobs (DTBs) for the
+ current architecture.
+
+ If unsure, say N here, but this option is safe to enable.
+
+
config OFTREE_MEM_GENERIC
depends on OFTREE
depends on PPC || ARM || EFI_PAYLOAD || OPENRISC || SANDBOX || RISCV || KVX
--
2.39.5
More information about the barebox
mailing list