summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Tretter <m.tretter@pengutronix.de>2019-09-13 15:14:46 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2019-09-16 09:06:45 +0200
commit27112f5b5541d736a560dbc9f059d879d4b354a3 (patch)
tree6d8423c28fb3e163aa99d87c660a4ba98bbbabdf
parent4d6ff095684d180221fd924e8ba13fcc77c8366a (diff)
downloadbarebox-27112f5b5541d736a560dbc9f059d879d4b354a3.tar.gz
barebox-27112f5b5541d736a560dbc9f059d879d4b354a3.tar.xz
dtc: optionally add add __symbols__ to build-in devicetree
The devicetree overlay driver requires the __symbols__ node to resolve phandles to the base devicetree. If Barebox has to apply the overlay to the live devicetree, the build-in devicetree must be built with the __symbols__ node. It is configurable, because adding __symbols__ significantly increases the size of the devicetree binary. When configuring Barebox, a developer should be able to enable or disable devicetree overlay support and as this only affects the build-in devicetree, which is linked to the image anyway, use a Kconfig item for configuring the __symbols__. Signed-off-by: Michael Tretter <m.tretter@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/of/Kconfig16
-rw-r--r--scripts/Makefile.lib4
2 files changed, 20 insertions, 0 deletions
diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig
index 1bb6639c5a..7436fc2de1 100644
--- a/drivers/of/Kconfig
+++ b/drivers/of/Kconfig
@@ -59,3 +59,19 @@ config OF_OVERLAY
not patch the live devicetree, but applies the overlays as fixup to
the devicetree. Furthermore, overlays cannot be removed after they
have been applied.
+
+config OF_OVERLAY_LIVE
+ depends on OF_OVERLAY
+ bool "Support devicetree overlays on live devicetree"
+ help
+ This option allows to use devicetree overlays with the live
+ devicetree. It is not required to apply overlays to any other
+ devicetree.
+
+ This builds the build-in devicetree with __symbols__, which
+ significantly increases the size of the dtb file.
+
+ Enable this option only if you actually need the live devicetree
+ while applying in the devicetree overlay. This is usually the case if
+ applying the overlay has other side effects than changing the
+ devicetree.
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index c4d307ae30..ad0484de3a 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -292,6 +292,10 @@ DTC_FLAGS += -Wno-unit_address_vs_reg \
-Wno-unique_unit_address \
-Wno-pci_device_reg
+ifeq ($(CONFIG_OF_OVERLAY_LIVE), y)
+DTC_FLAGS += -@
+endif
+
# Generate an assembly file to wrap the output of the device tree compiler
quiet_cmd_dt_S_dtb = DTB $@
cmd_dt_S_dtb = $(srctree)/scripts/gen-dtb-s $(subst -,_,$(*F)) $< $(CONFIG_IMD) > $@