[PATCH 2/2] arm: dts: Enable device-tree overlay support for RPi devices

From: Aurelien Jarno
Date: Sun Apr 10 2022 - 19:00:48 EST


Add the '-@' DTC option for the Raspberry Pi devices. This option
populates the '__symbols__' node that contains all the necessary symbols
for supporting device-tree overlays (for instance from the firmware or
the bootloader) on these devices.

The Rasbperry Pi devices are well known for their GPIO header, that
allow various "HATs" or other modules do be connected and this enables
users to create out-of-tree device-tree overlays for these modules.

Please note that this change does increase the size of the resulting DTB
by ~40%. For example, with v5.17 increase in size is as follows:

bcm2711-rpi-400.dtb 26481 -> 36830 bytes
bcm2711-rpi-4-b.dtb 26537 -> 36886 bytes
bcm2711-rpi-cm4-io.dtb 26426 -> 36945 bytes
bcm2835-rpi-a.dtb 12641 -> 17852 bytes
bcm2835-rpi-a-plus.dtb 12765 -> 17976 bytes
bcm2835-rpi-b.dtb 12763 -> 17998 bytes
bcm2835-rpi-b-plus.dtb 12979 -> 18263 bytes
bcm2835-rpi-b-rev2.dtb 12847 -> 18131 bytes
bcm2835-rpi-cm1-io1.dtb 12839 -> 18113 bytes
bcm2835-rpi-zero.dtb 12681 -> 17924 bytes
bcm2835-rpi-zero-w.dtb 13135 -> 18430 bytes
bcm2836-rpi-2-b.dtb 13687 -> 19255 bytes
bcm2837-rpi-3-a-plus.dtb 14133 -> 19740 bytes
bcm2837-rpi-3-b.dtb 14310 -> 20006 bytes
bcm2837-rpi-3-b-plus.dtb 14670 -> 20474 bytes
bcm2837-rpi-cm3-io3.dtb 13680 -> 19266 bytes

Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx>
---
arch/arm/boot/dts/Makefile | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 7c16f8a2b738..85644149de44 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -81,6 +81,24 @@ dtb-$(CONFIG_SOC_SAMA7G5) += \
at91-sama7g5ek.dtb
dtb-$(CONFIG_ARCH_AXXIA) += \
axm5516-amarillo.dtb
+# Enables support for device-tree overlays
+DTC_FLAGS_bcm2835-rpi-b := -@
+DTC_FLAGS_bcm2835-rpi-a := -@
+DTC_FLAGS_bcm2835-rpi-b-rev2 := -@
+DTC_FLAGS_bcm2835-rpi-b-plus := -@
+DTC_FLAGS_bcm2835-rpi-a-plus := -@
+DTC_FLAGS_bcm2835-rpi-cm1-io1 := -@
+DTC_FLAGS_bcm2836-rpi-2-b := -@
+DTC_FLAGS_bcm2837-rpi-3-a-plus := -@
+DTC_FLAGS_bcm2837-rpi-3-b := -@
+DTC_FLAGS_bcm2837-rpi-3-b-plus := -@
+DTC_FLAGS_bcm2837-rpi-cm3-io3 := -@
+DTC_FLAGS_bcm2837-rpi-zero-2-w := -@
+DTC_FLAGS_bcm2711-rpi-400 := -@
+DTC_FLAGS_bcm2711-rpi-4-b := -@
+DTC_FLAGS_bcm2711-rpi-cm4-io := -@
+DTC_FLAGS_bcm2835-rpi-zero := -@
+DTC_FLAGS_bcm2835-rpi-zero-w := -@
dtb-$(CONFIG_ARCH_BCM2835) += \
bcm2835-rpi-b.dtb \
bcm2835-rpi-a.dtb \
--
2.34.1