Last active
May 15, 2025 09:03
-
-
Save orangecms/b8146e5dc35662cc4caddd2e4d5a90c8 to your computer and use it in GitHub Desktop.
diffing device trees between projects
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff '--color=auto' -x Makefile -rush OS/linux/arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b.dts firmware/u-boot/arch/arm/dts/bcm2711-rpi-4-b.dts | |
--- OS/linux/arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b.dts 2025-05-03 13:33:57.953289410 +0200 | |
+++ firmware/u-boot/arch/arm/dts/bcm2711-rpi-4-b.dts 2023-02-21 20:44:21.319965771 +0100 | |
@@ -1,2 +1,262 @@ | |
// SPDX-License-Identifier: GPL-2.0 | |
-#include "arm/broadcom/bcm2711-rpi-4-b.dts" | |
+/dts-v1/; | |
+#include "bcm2711.dtsi" | |
+#include "bcm2711-rpi.dtsi" | |
+#include "bcm283x-rpi-usb-peripheral.dtsi" | |
+ | |
+/ { | |
+ compatible = "raspberrypi,4-model-b", "brcm,bcm2711"; | |
+ model = "Raspberry Pi 4 Model B"; | |
+ | |
+ chosen { | |
+ /* 8250 auxiliary UART instead of pl011 */ | |
+ stdout-path = "serial1:115200n8"; | |
+ }; | |
+ | |
+ leds { | |
+ led-act { | |
+ gpios = <&gpio 42 GPIO_ACTIVE_HIGH>; | |
+ }; | |
+ | |
+ led-pwr { | |
+ label = "PWR"; | |
+ gpios = <&expgpio 2 GPIO_ACTIVE_LOW>; | |
+ default-state = "keep"; | |
+ linux,default-trigger = "default-on"; | |
+ }; | |
+ }; | |
+ | |
+ wifi_pwrseq: wifi-pwrseq { | |
+ compatible = "mmc-pwrseq-simple"; | |
+ reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; | |
+ }; | |
+ | |
+ sd_io_1v8_reg: sd_io_1v8_reg { | |
+ compatible = "regulator-gpio"; | |
+ regulator-name = "vdd-sd-io"; | |
+ regulator-min-microvolt = <1800000>; | |
+ regulator-max-microvolt = <3300000>; | |
+ regulator-boot-on; | |
+ regulator-always-on; | |
+ regulator-settling-time-us = <5000>; | |
+ gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>; | |
+ states = <1800000 0x1>, | |
+ <3300000 0x0>; | |
+ status = "okay"; | |
+ }; | |
+ | |
+ sd_vcc_reg: sd_vcc_reg { | |
+ compatible = "regulator-fixed"; | |
+ regulator-name = "vcc-sd"; | |
+ regulator-min-microvolt = <3300000>; | |
+ regulator-max-microvolt = <3300000>; | |
+ regulator-boot-on; | |
+ enable-active-high; | |
+ gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>; | |
+ }; | |
+}; | |
+ | |
+&ddc0 { | |
+ status = "okay"; | |
+}; | |
+ | |
+&ddc1 { | |
+ status = "okay"; | |
+}; | |
+ | |
+&expgpio { | |
+ gpio-line-names = "BT_ON", | |
+ "WL_ON", | |
+ "PWR_LED_OFF", | |
+ "GLOBAL_RESET", | |
+ "VDD_SD_IO_SEL", | |
+ "CAM_GPIO", | |
+ "SD_PWR_ON", | |
+ ""; | |
+}; | |
+ | |
+&gpio { | |
+ /* | |
+ * Parts taken from rpi_SCH_4b_4p0_reduced.pdf and | |
+ * the official GPU firmware DT blob. | |
+ * | |
+ * Legend: | |
+ * "FOO" = GPIO line named "FOO" on the schematic | |
+ * "FOO_N" = GPIO line named "FOO" on schematic, active low | |
+ */ | |
+ gpio-line-names = "ID_SDA", | |
+ "ID_SCL", | |
+ "SDA1", | |
+ "SCL1", | |
+ "GPIO_GCLK", | |
+ "GPIO5", | |
+ "GPIO6", | |
+ "SPI_CE1_N", | |
+ "SPI_CE0_N", | |
+ "SPI_MISO", | |
+ "SPI_MOSI", | |
+ "SPI_SCLK", | |
+ "GPIO12", | |
+ "GPIO13", | |
+ /* Serial port */ | |
+ "TXD1", | |
+ "RXD1", | |
+ "GPIO16", | |
+ "GPIO17", | |
+ "GPIO18", | |
+ "GPIO19", | |
+ "GPIO20", | |
+ "GPIO21", | |
+ "GPIO22", | |
+ "GPIO23", | |
+ "GPIO24", | |
+ "GPIO25", | |
+ "GPIO26", | |
+ "GPIO27", | |
+ "RGMII_MDIO", | |
+ "RGMIO_MDC", | |
+ /* Used by BT module */ | |
+ "CTS0", | |
+ "RTS0", | |
+ "TXD0", | |
+ "RXD0", | |
+ /* Used by Wifi */ | |
+ "SD1_CLK", | |
+ "SD1_CMD", | |
+ "SD1_DATA0", | |
+ "SD1_DATA1", | |
+ "SD1_DATA2", | |
+ "SD1_DATA3", | |
+ /* Shared with SPI flash */ | |
+ "PWM0_MISO", | |
+ "PWM1_MOSI", | |
+ "STATUS_LED_G_CLK", | |
+ "SPIFLASH_CE_N", | |
+ "SDA0", | |
+ "SCL0", | |
+ "RGMII_RXCLK", | |
+ "RGMII_RXCTL", | |
+ "RGMII_RXD0", | |
+ "RGMII_RXD1", | |
+ "RGMII_RXD2", | |
+ "RGMII_RXD3", | |
+ "RGMII_TXCLK", | |
+ "RGMII_TXCTL", | |
+ "RGMII_TXD0", | |
+ "RGMII_TXD1", | |
+ "RGMII_TXD2", | |
+ "RGMII_TXD3"; | |
+}; | |
+ | |
+&hdmi0 { | |
+ status = "okay"; | |
+}; | |
+ | |
+&hdmi1 { | |
+ status = "okay"; | |
+}; | |
+ | |
+&pixelvalve0 { | |
+ status = "okay"; | |
+}; | |
+ | |
+&pixelvalve1 { | |
+ status = "okay"; | |
+}; | |
+ | |
+&pixelvalve2 { | |
+ status = "okay"; | |
+}; | |
+ | |
+&pixelvalve4 { | |
+ status = "okay"; | |
+}; | |
+ | |
+&pwm1 { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>; | |
+ status = "okay"; | |
+}; | |
+ | |
+/* SDHCI is used to control the SDIO for wireless */ | |
+&sdhci { | |
+ #address-cells = <1>; | |
+ #size-cells = <0>; | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&emmc_gpio34>; | |
+ bus-width = <4>; | |
+ non-removable; | |
+ mmc-pwrseq = <&wifi_pwrseq>; | |
+ status = "okay"; | |
+ | |
+ brcmf: wifi@1 { | |
+ reg = <1>; | |
+ compatible = "brcm,bcm4329-fmac"; | |
+ }; | |
+}; | |
+ | |
+/* EMMC2 is used to drive the SD card */ | |
+&emmc2 { | |
+ vqmmc-supply = <&sd_io_1v8_reg>; | |
+ vmmc-supply = <&sd_vcc_reg>; | |
+ broken-cd; | |
+ status = "okay"; | |
+}; | |
+ | |
+&genet { | |
+ phy-handle = <&phy1>; | |
+ phy-mode = "rgmii-rxid"; | |
+ status = "okay"; | |
+}; | |
+ | |
+&genet_mdio { | |
+ phy1: ethernet-phy@1 { | |
+ /* No PHY interrupt */ | |
+ reg = <0x1>; | |
+ }; | |
+}; | |
+ | |
+&pcie0 { | |
+ pci@0,0 { | |
+ device_type = "pci"; | |
+ #address-cells = <3>; | |
+ #size-cells = <2>; | |
+ ranges; | |
+ | |
+ reg = <0 0 0 0 0>; | |
+ | |
+ usb@0,0 { | |
+ reg = <0 0 0 0 0>; | |
+ resets = <&reset RASPBERRYPI_FIRMWARE_RESET_ID_USB>; | |
+ }; | |
+ }; | |
+}; | |
+ | |
+/* uart0 communicates with the BT module */ | |
+&uart0 { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>; | |
+ uart-has-rtscts; | |
+ status = "okay"; | |
+ | |
+ bluetooth { | |
+ compatible = "brcm,bcm43438-bt"; | |
+ max-speed = <2000000>; | |
+ shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>; | |
+ }; | |
+}; | |
+ | |
+/* uart1 is mapped to the pin header */ | |
+&uart1 { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&uart1_gpio14>; | |
+ status = "okay"; | |
+}; | |
+ | |
+&vc4 { | |
+ status = "okay"; | |
+}; | |
+ | |
+&vec { | |
+ status = "disabled"; | |
+}; | |
diff '--color=auto' -x Makefile -rush OS/linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts firmware/u-boot/arch/arm/dts/bcm2837-rpi-3-a-plus.dts | |
--- OS/linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts 2025-05-03 13:33:57.953289410 +0200 | |
+++ firmware/u-boot/arch/arm/dts/bcm2837-rpi-3-a-plus.dts 2023-02-21 20:44:21.319965771 +0100 | |
@@ -1,2 +1,180 @@ | |
// SPDX-License-Identifier: GPL-2.0 | |
-#include "arm/broadcom/bcm2837-rpi-3-a-plus.dts" | |
+/dts-v1/; | |
+#include "bcm2837.dtsi" | |
+#include "bcm2836-rpi.dtsi" | |
+#include "bcm283x-rpi-usb-host.dtsi" | |
+ | |
+/ { | |
+ compatible = "raspberrypi,3-model-a-plus", "brcm,bcm2837"; | |
+ model = "Raspberry Pi 3 Model A+"; | |
+ | |
+ chosen { | |
+ /* 8250 auxiliary UART instead of pl011 */ | |
+ stdout-path = "serial1:115200n8"; | |
+ }; | |
+ | |
+ memory@0 { | |
+ device_type = "memory"; | |
+ reg = <0 0x20000000>; | |
+ }; | |
+ | |
+ leds { | |
+ led-act { | |
+ gpios = <&gpio 29 GPIO_ACTIVE_HIGH>; | |
+ }; | |
+ | |
+ led-pwr { | |
+ label = "PWR"; | |
+ gpios = <&expgpio 2 GPIO_ACTIVE_LOW>; | |
+ default-state = "keep"; | |
+ linux,default-trigger = "default-on"; | |
+ }; | |
+ }; | |
+}; | |
+ | |
+&firmware { | |
+ expgpio: gpio { | |
+ compatible = "raspberrypi,firmware-gpio"; | |
+ gpio-controller; | |
+ #gpio-cells = <2>; | |
+ gpio-line-names = "", | |
+ "BT_WL_ON", | |
+ "STATUS_LED_R", | |
+ "", | |
+ "", | |
+ "CAM_GPIO0", | |
+ "CAM_GPIO1", | |
+ ""; | |
+ status = "okay"; | |
+ }; | |
+}; | |
+ | |
+&gpio { | |
+ /* | |
+ * This is mostly based on the official GPU firmware DT blob. | |
+ * | |
+ * Legend: | |
+ * "NC" = not connected (no rail from the SoC) | |
+ * "FOO" = GPIO line named "FOO" on the schematic | |
+ * "FOO_N" = GPIO line named "FOO" on schematic, active low | |
+ */ | |
+ gpio-line-names = "ID_SDA", | |
+ "ID_SCL", | |
+ "SDA1", | |
+ "SCL1", | |
+ "GPIO_GCLK", | |
+ "GPIO5", | |
+ "GPIO6", | |
+ "SPI_CE1_N", | |
+ "SPI_CE0_N", | |
+ "SPI_MISO", | |
+ "SPI_MOSI", | |
+ "SPI_SCLK", | |
+ "GPIO12", | |
+ "GPIO13", | |
+ /* Serial port */ | |
+ "TXD1", | |
+ "RXD1", | |
+ "GPIO16", | |
+ "GPIO17", | |
+ "GPIO18", | |
+ "GPIO19", | |
+ "GPIO20", | |
+ "GPIO21", | |
+ "GPIO22", | |
+ "GPIO23", | |
+ "GPIO24", | |
+ "GPIO25", | |
+ "GPIO26", | |
+ "GPIO27", | |
+ "HDMI_HPD_N", | |
+ "STATUS_LED_G", | |
+ /* Used by BT module */ | |
+ "CTS0", | |
+ "RTS0", | |
+ "TXD0", | |
+ "RXD0", | |
+ /* Used by Wifi */ | |
+ "SD1_CLK", | |
+ "SD1_CMD", | |
+ "SD1_DATA0", | |
+ "SD1_DATA1", | |
+ "SD1_DATA2", | |
+ "SD1_DATA3", | |
+ "PWM0_OUT", | |
+ "PWM1_OUT", | |
+ "", /* GPIO42 */ | |
+ "WIFI_CLK", | |
+ "SDA0", | |
+ "SCL0", | |
+ "SMPS_SCL", | |
+ "SMPS_SDA", | |
+ /* Used by SD Card */ | |
+ "SD_CLK_R", | |
+ "SD_CMD_R", | |
+ "SD_DATA0_R", | |
+ "SD_DATA1_R", | |
+ "SD_DATA2_R", | |
+ "SD_DATA3_R"; | |
+}; | |
+ | |
+&hdmi { | |
+ hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>; | |
+ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; | |
+ status = "okay"; | |
+}; | |
+ | |
+&pwm { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>; | |
+ status = "okay"; | |
+}; | |
+ | |
+/* | |
+ * SDHCI is used to control the SDIO for wireless | |
+ * | |
+ * WL_REG_ON and BT_REG_ON of the CYW43455 Wifi/BT module are driven | |
+ * by a single GPIO. We can't give GPIO control to one of the drivers, | |
+ * otherwise the other part would get unexpectedly disturbed. | |
+ */ | |
+&sdhci { | |
+ #address-cells = <1>; | |
+ #size-cells = <0>; | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&emmc_gpio34>; | |
+ status = "okay"; | |
+ bus-width = <4>; | |
+ non-removable; | |
+ | |
+ brcmf: wifi@1 { | |
+ reg = <1>; | |
+ compatible = "brcm,bcm4329-fmac"; | |
+ }; | |
+}; | |
+ | |
+/* SDHOST is used to drive the SD card */ | |
+&sdhost { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&sdhost_gpio48>; | |
+ status = "okay"; | |
+ bus-width = <4>; | |
+}; | |
+ | |
+/* uart0 communicates with the BT module */ | |
+&uart0 { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>; | |
+ status = "okay"; | |
+ | |
+ bluetooth { | |
+ compatible = "brcm,bcm43438-bt"; | |
+ max-speed = <2000000>; | |
+ }; | |
+}; | |
+ | |
+/* uart1 is mapped to the pin header */ | |
+&uart1 { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&uart1_gpio14>; | |
+ status = "okay"; | |
+}; | |
diff '--color=auto' -x Makefile -rush OS/linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts firmware/u-boot/arch/arm/dts/bcm2837-rpi-3-b.dts | |
--- OS/linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts 2025-05-03 13:33:57.953289410 +0200 | |
+++ firmware/u-boot/arch/arm/dts/bcm2837-rpi-3-b.dts 2023-02-21 20:44:21.319965771 +0100 | |
@@ -1,2 +1,176 @@ | |
// SPDX-License-Identifier: GPL-2.0 | |
-#include "arm/broadcom/bcm2837-rpi-3-b.dts" | |
+/dts-v1/; | |
+#include "bcm2837.dtsi" | |
+#include "bcm2836-rpi.dtsi" | |
+#include "bcm283x-rpi-smsc9514.dtsi" | |
+#include "bcm283x-rpi-usb-host.dtsi" | |
+ | |
+/ { | |
+ compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; | |
+ model = "Raspberry Pi 3 Model B"; | |
+ | |
+ chosen { | |
+ /* 8250 auxiliary UART instead of pl011 */ | |
+ stdout-path = "serial1:115200n8"; | |
+ }; | |
+ | |
+ memory@0 { | |
+ device_type = "memory"; | |
+ reg = <0 0x40000000>; | |
+ }; | |
+ | |
+ leds { | |
+ led-act { | |
+ gpios = <&expgpio 2 GPIO_ACTIVE_HIGH>; | |
+ }; | |
+ }; | |
+ | |
+ wifi_pwrseq: wifi-pwrseq { | |
+ compatible = "mmc-pwrseq-simple"; | |
+ reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; | |
+ }; | |
+}; | |
+ | |
+&firmware { | |
+ expgpio: gpio { | |
+ compatible = "raspberrypi,firmware-gpio"; | |
+ gpio-controller; | |
+ #gpio-cells = <2>; | |
+ gpio-line-names = "BT_ON", | |
+ "WL_ON", | |
+ "STATUS_LED", | |
+ "LAN_RUN", | |
+ "HDMI_HPD_N", | |
+ "CAM_GPIO0", | |
+ "CAM_GPIO1", | |
+ "PWR_LOW_N"; | |
+ status = "okay"; | |
+ }; | |
+}; | |
+ | |
+&gpio { | |
+ /* | |
+ * Taken from rpi_SCH_3b_1p2_reduced.pdf and | |
+ * the official GPU firmware DT blob. | |
+ * | |
+ * Legend: | |
+ * "NC" = not connected (no rail from the SoC) | |
+ * "FOO" = GPIO line named "FOO" on the schematic | |
+ * "FOO_N" = GPIO line named "FOO" on schematic, active low | |
+ */ | |
+ gpio-line-names = "ID_SDA", | |
+ "ID_SCL", | |
+ "SDA1", | |
+ "SCL1", | |
+ "GPIO_GCLK", | |
+ "GPIO5", | |
+ "GPIO6", | |
+ "SPI_CE1_N", | |
+ "SPI_CE0_N", | |
+ "SPI_MISO", | |
+ "SPI_MOSI", | |
+ "SPI_SCLK", | |
+ "GPIO12", | |
+ "GPIO13", | |
+ /* Serial port */ | |
+ "TXD1", | |
+ "RXD1", | |
+ "GPIO16", | |
+ "GPIO17", | |
+ "GPIO18", | |
+ "GPIO19", | |
+ "GPIO20", | |
+ "GPIO21", | |
+ "GPIO22", | |
+ "GPIO23", | |
+ "GPIO24", | |
+ "GPIO25", | |
+ "GPIO26", | |
+ "GPIO27", | |
+ "", /* GPIO 28 */ | |
+ "LAN_RUN_BOOT", | |
+ /* Used by BT module */ | |
+ "CTS0", | |
+ "RTS0", | |
+ "TXD0", | |
+ "RXD0", | |
+ /* Used by Wifi */ | |
+ "SD1_CLK", | |
+ "SD1_CMD", | |
+ "SD1_DATA0", | |
+ "SD1_DATA1", | |
+ "SD1_DATA2", | |
+ "SD1_DATA3", | |
+ "PWM0_OUT", | |
+ "PWM1_OUT", | |
+ "ETHCLK", | |
+ "WIFI_CLK", | |
+ "SDA0", | |
+ "SCL0", | |
+ "SMPS_SCL", | |
+ "SMPS_SDA", | |
+ /* Used by SD Card */ | |
+ "SD_CLK_R", | |
+ "SD_CMD_R", | |
+ "SD_DATA0_R", | |
+ "SD_DATA1_R", | |
+ "SD_DATA2_R", | |
+ "SD_DATA3_R"; | |
+}; | |
+ | |
+&pwm { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>; | |
+ status = "okay"; | |
+}; | |
+ | |
+&hdmi { | |
+ hpd-gpios = <&expgpio 4 GPIO_ACTIVE_LOW>; | |
+ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; | |
+ status = "okay"; | |
+}; | |
+ | |
+/* uart0 communicates with the BT module */ | |
+&uart0 { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>; | |
+ status = "okay"; | |
+ | |
+ bluetooth { | |
+ compatible = "brcm,bcm43438-bt"; | |
+ max-speed = <2000000>; | |
+ shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>; | |
+ }; | |
+}; | |
+ | |
+/* uart1 is mapped to the pin header */ | |
+&uart1 { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&uart1_gpio14>; | |
+ status = "okay"; | |
+}; | |
+ | |
+/* SDHCI is used to control the SDIO for wireless */ | |
+&sdhci { | |
+ #address-cells = <1>; | |
+ #size-cells = <0>; | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&emmc_gpio34>; | |
+ status = "okay"; | |
+ bus-width = <4>; | |
+ non-removable; | |
+ mmc-pwrseq = <&wifi_pwrseq>; | |
+ | |
+ brcmf: wifi@1 { | |
+ reg = <1>; | |
+ compatible = "brcm,bcm4329-fmac"; | |
+ }; | |
+}; | |
+ | |
+/* SDHOST is used to drive the SD card */ | |
+&sdhost { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&sdhost_gpio48>; | |
+ status = "okay"; | |
+ bus-width = <4>; | |
+}; | |
diff '--color=auto' -x Makefile -rush OS/linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts firmware/u-boot/arch/arm/dts/bcm2837-rpi-3-b-plus.dts | |
--- OS/linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts 2025-05-03 13:33:57.953289410 +0200 | |
+++ firmware/u-boot/arch/arm/dts/bcm2837-rpi-3-b-plus.dts 2023-02-21 20:44:21.319965771 +0100 | |
@@ -1,2 +1,183 @@ | |
// SPDX-License-Identifier: GPL-2.0 | |
-#include "arm/broadcom/bcm2837-rpi-3-b-plus.dts" | |
+/dts-v1/; | |
+#include "bcm2837.dtsi" | |
+#include "bcm2836-rpi.dtsi" | |
+#include "bcm283x-rpi-lan7515.dtsi" | |
+#include "bcm283x-rpi-usb-host.dtsi" | |
+ | |
+/ { | |
+ compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837"; | |
+ model = "Raspberry Pi 3 Model B+"; | |
+ | |
+ chosen { | |
+ /* 8250 auxiliary UART instead of pl011 */ | |
+ stdout-path = "serial1:115200n8"; | |
+ }; | |
+ | |
+ memory@0 { | |
+ device_type = "memory"; | |
+ reg = <0 0x40000000>; | |
+ }; | |
+ | |
+ leds { | |
+ led-act { | |
+ gpios = <&gpio 29 GPIO_ACTIVE_HIGH>; | |
+ }; | |
+ | |
+ led-pwr { | |
+ label = "PWR"; | |
+ gpios = <&expgpio 2 GPIO_ACTIVE_LOW>; | |
+ default-state = "keep"; | |
+ linux,default-trigger = "default-on"; | |
+ }; | |
+ }; | |
+ | |
+ wifi_pwrseq: wifi-pwrseq { | |
+ compatible = "mmc-pwrseq-simple"; | |
+ reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; | |
+ }; | |
+}; | |
+ | |
+&firmware { | |
+ expgpio: gpio { | |
+ compatible = "raspberrypi,firmware-gpio"; | |
+ gpio-controller; | |
+ #gpio-cells = <2>; | |
+ gpio-line-names = "BT_ON", | |
+ "WL_ON", | |
+ "STATUS_LED_R", | |
+ "LAN_RUN", | |
+ "", | |
+ "CAM_GPIO0", | |
+ "CAM_GPIO1", | |
+ ""; | |
+ status = "okay"; | |
+ }; | |
+}; | |
+ | |
+&gpio { | |
+ /* | |
+ * Taken from rpi_SCH_3bplus_1p0_reduced.pdf and | |
+ * the official GPU firmware DT blob. | |
+ * | |
+ * Legend: | |
+ * "NC" = not connected (no rail from the SoC) | |
+ * "FOO" = GPIO line named "FOO" on the schematic | |
+ * "FOO_N" = GPIO line named "FOO" on schematic, active low | |
+ */ | |
+ gpio-line-names = "ID_SDA", | |
+ "ID_SCL", | |
+ "SDA1", | |
+ "SCL1", | |
+ "GPIO_GCLK", | |
+ "GPIO5", | |
+ "GPIO6", | |
+ "SPI_CE1_N", | |
+ "SPI_CE0_N", | |
+ "SPI_MISO", | |
+ "SPI_MOSI", | |
+ "SPI_SCLK", | |
+ "GPIO12", | |
+ "GPIO13", | |
+ /* Serial port */ | |
+ "TXD1", | |
+ "RXD1", | |
+ "GPIO16", | |
+ "GPIO17", | |
+ "GPIO18", | |
+ "GPIO19", | |
+ "GPIO20", | |
+ "GPIO21", | |
+ "GPIO22", | |
+ "GPIO23", | |
+ "GPIO24", | |
+ "GPIO25", | |
+ "GPIO26", | |
+ "GPIO27", | |
+ "HDMI_HPD_N", | |
+ "STATUS_LED_G", | |
+ /* Used by BT module */ | |
+ "CTS0", | |
+ "RTS0", | |
+ "TXD0", | |
+ "RXD0", | |
+ /* Used by Wifi */ | |
+ "SD1_CLK", | |
+ "SD1_CMD", | |
+ "SD1_DATA0", | |
+ "SD1_DATA1", | |
+ "SD1_DATA2", | |
+ "SD1_DATA3", | |
+ "PWM0_OUT", | |
+ "PWM1_OUT", | |
+ "ETHCLK", | |
+ "WIFI_CLK", | |
+ "SDA0", | |
+ "SCL0", | |
+ "SMPS_SCL", | |
+ "SMPS_SDA", | |
+ /* Used by SD Card */ | |
+ "SD_CLK_R", | |
+ "SD_CMD_R", | |
+ "SD_DATA0_R", | |
+ "SD_DATA1_R", | |
+ "SD_DATA2_R", | |
+ "SD_DATA3_R"; | |
+}; | |
+ | |
+&hdmi { | |
+ hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>; | |
+ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; | |
+ status = "okay"; | |
+}; | |
+ | |
+&pwm { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>; | |
+ status = "okay"; | |
+}; | |
+ | |
+/* SDHCI is used to control the SDIO for wireless */ | |
+&sdhci { | |
+ #address-cells = <1>; | |
+ #size-cells = <0>; | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&emmc_gpio34>; | |
+ status = "okay"; | |
+ bus-width = <4>; | |
+ non-removable; | |
+ mmc-pwrseq = <&wifi_pwrseq>; | |
+ | |
+ brcmf: wifi@1 { | |
+ reg = <1>; | |
+ compatible = "brcm,bcm4329-fmac"; | |
+ }; | |
+}; | |
+ | |
+/* SDHOST is used to drive the SD card */ | |
+&sdhost { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&sdhost_gpio48>; | |
+ status = "okay"; | |
+ bus-width = <4>; | |
+}; | |
+ | |
+/* uart0 communicates with the BT module */ | |
+&uart0 { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>; | |
+ status = "okay"; | |
+ | |
+ bluetooth { | |
+ compatible = "brcm,bcm43438-bt"; | |
+ max-speed = <2000000>; | |
+ shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>; | |
+ }; | |
+}; | |
+ | |
+/* uart1 is mapped to the pin header */ | |
+&uart1 { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&uart1_gpio14>; | |
+ status = "okay"; | |
+}; | |
diff '--color=auto' -x Makefile -rush OS/linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts firmware/u-boot/arch/arm/dts/bcm2837-rpi-cm3-io3.dts | |
--- OS/linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts 2025-05-03 13:33:57.953289410 +0200 | |
+++ firmware/u-boot/arch/arm/dts/bcm2837-rpi-cm3-io3.dts 2023-02-21 20:44:21.319965771 +0100 | |
@@ -1,2 +1,96 @@ | |
// SPDX-License-Identifier: GPL-2.0 | |
-#include "arm/broadcom/bcm2837-rpi-cm3-io3.dts" | |
+/dts-v1/; | |
+#include "bcm2837-rpi-cm3.dtsi" | |
+#include "bcm283x-rpi-usb-host.dtsi" | |
+ | |
+/ { | |
+ compatible = "raspberrypi,3-compute-module", "brcm,bcm2837"; | |
+ model = "Raspberry Pi Compute Module 3 IO board V3.0"; | |
+}; | |
+ | |
+&gpio { | |
+ /* | |
+ * This is based on the official GPU firmware DT blob. | |
+ * | |
+ * Legend: | |
+ * "NC" = not connected (no rail from the SoC) | |
+ * "FOO" = GPIO line named "FOO" on the schematic | |
+ * "FOO_N" = GPIO line named "FOO" on schematic, active low | |
+ */ | |
+ gpio-line-names = "GPIO0", | |
+ "GPIO1", | |
+ "GPIO2", | |
+ "GPIO3", | |
+ "GPIO4", | |
+ "GPIO5", | |
+ "GPIO6", | |
+ "GPIO7", | |
+ "GPIO8", | |
+ "GPIO9", | |
+ "GPIO10", | |
+ "GPIO11", | |
+ "GPIO12", | |
+ "GPIO13", | |
+ "GPIO14", | |
+ "GPIO15", | |
+ "GPIO16", | |
+ "GPIO17", | |
+ "GPIO18", | |
+ "GPIO19", | |
+ "GPIO20", | |
+ "GPIO21", | |
+ "GPIO22", | |
+ "GPIO23", | |
+ "GPIO24", | |
+ "GPIO25", | |
+ "GPIO26", | |
+ "GPIO27", | |
+ "GPIO28", | |
+ "GPIO29", | |
+ "GPIO30", | |
+ "GPIO31", | |
+ "GPIO32", | |
+ "GPIO33", | |
+ "GPIO34", | |
+ "GPIO35", | |
+ "GPIO36", | |
+ "GPIO37", | |
+ "GPIO38", | |
+ "GPIO39", | |
+ "GPIO40", | |
+ "GPIO41", | |
+ "GPIO42", | |
+ "GPIO43", | |
+ "GPIO44", | |
+ "GPIO45", | |
+ "GPIO46", | |
+ "GPIO47", | |
+ /* Used by eMMC */ | |
+ "SD_CLK_R", | |
+ "SD_CMD_R", | |
+ "SD_DATA0_R", | |
+ "SD_DATA1_R", | |
+ "SD_DATA2_R", | |
+ "SD_DATA3_R"; | |
+ | |
+ pinctrl-0 = <&gpioout &alt0>; | |
+}; | |
+ | |
+&hdmi { | |
+ hpd-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; | |
+ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; | |
+ status = "okay"; | |
+}; | |
+ | |
+&sdhost { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&sdhost_gpio48>; | |
+ bus-width = <4>; | |
+ status = "okay"; | |
+}; | |
+ | |
+&uart0 { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&uart0_gpio14>; | |
+ status = "okay"; | |
+}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/bcm2711-rpi-400.dts linux/arch/arm64/boot/dts/broadcom/bcm2711-rpi-400.dts | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/bcm2711-rpi-400.dts 2025-05-13 01:59:04.855259228 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/bcm2711-rpi-400.dts 2025-05-03 13:33:57.953289410 +0200 | |
@@ -1,2 +1,2 @@ | |
// SPDX-License-Identifier: GPL-2.0 | |
-#include "arm/bcm2711-rpi-400.dts" | |
+#include "arm/broadcom/bcm2711-rpi-400.dts" | |
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b.dts linux/arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b.dts | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b.dts 2025-05-13 01:59:04.855259228 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b.dts 2025-05-03 13:33:57.953289410 +0200 | |
@@ -1,2 +1,2 @@ | |
// SPDX-License-Identifier: GPL-2.0 | |
-#include "arm/bcm2711-rpi-4-b.dts" | |
+#include "arm/broadcom/bcm2711-rpi-4-b.dts" | |
Only in linux/arch/arm64/boot/dts/broadcom/: bcm2711-rpi-cm4-io.dts | |
Only in linux/arch/arm64/boot/dts/broadcom/: bcm2712-d-rpi-5-b.dts | |
Only in linux/arch/arm64/boot/dts/broadcom/: bcm2712.dtsi | |
Only in linux/arch/arm64/boot/dts/broadcom/: bcm2712-rpi-5-b.dts | |
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts 2025-05-13 01:59:04.855259228 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts 2025-05-03 13:33:57.953289410 +0200 | |
@@ -1,2 +1,2 @@ | |
// SPDX-License-Identifier: GPL-2.0 | |
-#include "arm/bcm2837-rpi-3-a-plus.dts" | |
+#include "arm/broadcom/bcm2837-rpi-3-a-plus.dts" | |
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts 2025-05-13 01:59:04.855259228 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts 2025-05-03 13:33:57.953289410 +0200 | |
@@ -1,2 +1,2 @@ | |
// SPDX-License-Identifier: GPL-2.0 | |
-#include "arm/bcm2837-rpi-3-b.dts" | |
+#include "arm/broadcom/bcm2837-rpi-3-b.dts" | |
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts 2025-05-13 01:59:04.855259228 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts 2025-05-03 13:33:57.953289410 +0200 | |
@@ -1,2 +1,2 @@ | |
// SPDX-License-Identifier: GPL-2.0 | |
-#include "arm/bcm2837-rpi-3-b-plus.dts" | |
+#include "arm/broadcom/bcm2837-rpi-3-b-plus.dts" | |
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts 2025-05-13 01:59:04.855259228 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts 2025-05-03 13:33:57.953289410 +0200 | |
@@ -1,2 +1,2 @@ | |
// SPDX-License-Identifier: GPL-2.0 | |
-#include "arm/bcm2837-rpi-cm3-io3.dts" | |
+#include "arm/broadcom/bcm2837-rpi-cm3-io3.dts" | |
Only in linux/arch/arm64/boot/dts/broadcom/: bcm2837-rpi-zero-2-w.dts | |
Only in NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/: bcm4908 | |
Only in linux/arch/arm64/boot/dts/broadcom/: bcmbca | |
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/Makefile linux/arch/arm64/boot/dts/broadcom/Makefile | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/Makefile 2025-05-13 01:59:04.855259228 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/Makefile 2025-05-03 13:33:57.953289410 +0200 | |
@@ -1,11 +1,19 @@ | |
# SPDX-License-Identifier: GPL-2.0 | |
+ | |
+# Enables support for device-tree overlays | |
+DTC_FLAGS := -@ | |
+ | |
dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-400.dtb \ | |
bcm2711-rpi-4-b.dtb \ | |
+ bcm2711-rpi-cm4-io.dtb \ | |
+ bcm2712-rpi-5-b.dtb \ | |
+ bcm2712-d-rpi-5-b.dtb \ | |
bcm2837-rpi-3-a-plus.dtb \ | |
bcm2837-rpi-3-b.dtb \ | |
bcm2837-rpi-3-b-plus.dtb \ | |
- bcm2837-rpi-cm3-io3.dtb | |
+ bcm2837-rpi-cm3-io3.dtb \ | |
+ bcm2837-rpi-zero-2-w.dtb | |
-subdir-y += bcm4908 | |
+subdir-y += bcmbca | |
subdir-y += northstar2 | |
subdir-y += stingray | |
Files NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/northstar2/Makefile and linux/arch/arm64/boot/dts/broadcom/northstar2/Makefile are identical | |
Files NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/northstar2/ns2-clock.dtsi and linux/arch/arm64/boot/dts/broadcom/northstar2/ns2-clock.dtsi are identical | |
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi linux/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi 2025-05-13 01:59:04.856259223 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi 2025-05-03 13:33:57.954289401 +0200 | |
@@ -79,6 +79,8 @@ | |
CLUSTER0_L2: l2-cache@0 { | |
compatible = "cache"; | |
+ cache-level = <2>; | |
+ cache-unified; | |
}; | |
}; | |
@@ -100,7 +102,7 @@ | |
}; | |
pmu { | |
- compatible = "arm,armv8-pmuv3"; | |
+ compatible = "arm,cortex-a57-pmu"; | |
interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, | |
<GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>, | |
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>, | |
@@ -132,7 +134,6 @@ | |
brcm,pcie-ob; | |
brcm,pcie-ob-oarr-size; | |
brcm,pcie-ob-axi-offset = <0x00000000>; | |
- brcm,pcie-ob-window-size = <256>; | |
status = "disabled"; | |
@@ -163,7 +164,6 @@ | |
brcm,pcie-ob; | |
brcm,pcie-ob-oarr-size; | |
brcm,pcie-ob-axi-offset = <0x30000000>; | |
- brcm,pcie-ob-window-size = <256>; | |
status = "disabled"; | |
@@ -276,7 +276,7 @@ | |
mboxes = <&pdc3 0>; | |
}; | |
- dma0: dma@61360000 { | |
+ dma0: dma-controller@61360000 { | |
compatible = "arm,pl330", "arm,primecell"; | |
reg = <0x61360000 0x1000>; | |
interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>, | |
@@ -289,13 +289,11 @@ | |
<GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>, | |
<GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>; | |
#dma-cells = <1>; | |
- #dma-channels = <8>; | |
- #dma-requests = <32>; | |
clocks = <&iprocslow>; | |
clock-names = "apb_pclk"; | |
}; | |
- smmu: mmu@64000000 { | |
+ smmu: iommu@64000000 { | |
compatible = "arm,mmu-500"; | |
reg = <0x64000000 0x40000>; | |
#global-interrupts = <2>; | |
@@ -586,6 +584,7 @@ | |
#gpio-cells = <2>; | |
gpio-controller; | |
interrupt-controller; | |
+ #interrupt-cells = <2>; | |
interrupts = <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>; | |
}; | |
@@ -644,7 +643,7 @@ | |
reg = <0x66180000 0x1000>; | |
interrupts = <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>; | |
clocks = <&iprocslow>, <&iprocslow>; | |
- clock-names = "spiclk", "apb_pclk"; | |
+ clock-names = "sspclk", "apb_pclk"; | |
#address-cells = <1>; | |
#size-cells = <0>; | |
status = "disabled"; | |
@@ -655,7 +654,7 @@ | |
reg = <0x66190000 0x1000>; | |
interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>; | |
clocks = <&iprocslow>, <&iprocslow>; | |
- clock-names = "spiclk", "apb_pclk"; | |
+ clock-names = "sspclk", "apb_pclk"; | |
#address-cells = <1>; | |
#size-cells = <0>; | |
status = "disabled"; | |
@@ -687,7 +686,7 @@ | |
}; | |
}; | |
- sata: ahci@663f2000 { | |
+ sata: sata@663f2000 { | |
compatible = "brcm,iproc-ahci", "generic-ahci"; | |
reg = <0x663f2000 0x1000>; | |
dma-coherent; | |
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts linux/arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts 2025-05-13 01:59:04.856259223 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts 2025-05-03 13:33:57.954289401 +0200 | |
@@ -50,9 +50,9 @@ | |
bootargs = "earlycon=uart8250,mmio32,0x66130000"; | |
}; | |
- memory { | |
+ memory@80000000 { | |
device_type = "memory"; | |
- reg = <0x000000000 0x80000000 0x00000000 0x40000000>; | |
+ reg = <0x00000000 0x80000000 0x00000000 0x40000000>; | |
}; | |
}; | |
@@ -111,9 +111,8 @@ | |
compatible = "silabs,si3226x"; | |
reg = <0>; | |
spi-max-frequency = <5000000>; | |
- spi-cpha = <1>; | |
- spi-cpol = <1>; | |
- pl022,hierarchy = <0>; | |
+ spi-cpha; | |
+ spi-cpol; | |
pl022,interface = <0>; | |
pl022,slave-tx-disable = <0>; | |
pl022,com-mode = <0>; | |
@@ -135,11 +134,9 @@ | |
at25,byte-len = <0x8000>; | |
at25,addr-mode = <2>; | |
at25,page-size = <64>; | |
- spi-cpha = <1>; | |
- spi-cpol = <1>; | |
- pl022,hierarchy = <0>; | |
+ spi-cpha; | |
+ spi-cpol; | |
pl022,interface = <0>; | |
- pl022,slave-tx-disable = <0>; | |
pl022,com-mode = <0>; | |
pl022,rx-level-trig = <1>; | |
pl022,tx-level-trig = <1>; | |
@@ -202,8 +199,7 @@ | |
}; | |
&qspi { | |
- bspi-sel = <0>; | |
- flash: m25p80@0 { | |
+ flash: flash@0 { | |
#address-cells = <1>; | |
#size-cells = <1>; | |
compatible = "m25p80"; | |
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts linux/arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts 2025-05-13 01:59:04.856259223 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts 2025-05-03 13:33:57.954289401 +0200 | |
@@ -47,9 +47,9 @@ | |
bootargs = "earlycon=uart8250,mmio32,0x66130000"; | |
}; | |
- memory { | |
+ memory@80000000 { | |
device_type = "memory"; | |
- reg = <0x000000000 0x80000000 0x00000001 0x00000000>; | |
+ reg = <0x00000000 0x80000000 0x00000001 0x00000000>; | |
}; | |
}; | |
@@ -114,7 +114,7 @@ | |
reg = <0x04000000 0x06400000>; /* 100MB */ | |
}; | |
- partition@a400000{ | |
+ partition@a400000 { | |
label = "ncustfs"; | |
reg = <0x0a400000 0x35c00000>; /* 860MB */ | |
}; | |
@@ -146,12 +146,11 @@ | |
}; | |
&qspi { | |
- flash: m25p80@0 { | |
+ flash: flash@0 { | |
#address-cells = <1>; | |
#size-cells = <1>; | |
compatible = "m25p80"; | |
spi-max-frequency = <62500000>; | |
- m25p,default-addr-width = <3>; | |
reg = <0x0 0x0>; | |
partition@0 { | |
Files NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi and linux/arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi are identical | |
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/bcm958742k.dts linux/arch/arm64/boot/dts/broadcom/stingray/bcm958742k.dts | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/bcm958742k.dts 2025-05-13 01:59:04.856259223 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/stingray/bcm958742k.dts 2025-05-03 13:33:57.954289401 +0200 | |
@@ -61,7 +61,7 @@ | |
cs-gpios = <&gpio_hsls 34 0>; | |
status = "okay"; | |
- spi-flash@0 { | |
+ flash@0 { | |
compatible = "jedec,spi-nor"; | |
reg = <0>; | |
spi-max-frequency = <20000000>; | |
@@ -76,7 +76,7 @@ | |
cs-gpios = <&gpio_hsls 96 0>; | |
status = "okay"; | |
- spi-flash@0 { | |
+ flash@0 { | |
compatible = "jedec,spi-nor"; | |
reg = <0>; | |
spi-max-frequency = <20000000>; | |
Files NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/bcm958742t.dts and linux/arch/arm64/boot/dts/broadcom/stingray/bcm958742t.dts are identical | |
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/bcm958802a802x.dts linux/arch/arm64/boot/dts/broadcom/stingray/bcm958802a802x.dts | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/bcm958802a802x.dts 2025-05-13 01:59:04.856259223 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/stingray/bcm958802a802x.dts 2025-05-03 13:33:57.954289401 +0200 | |
@@ -1,4 +1,4 @@ | |
-// SPDX-License-Identifier: (GPL-2.0 or BSD-3-Clause) | |
+// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) | |
/* | |
*Copyright(c) 2018 Broadcom | |
*/ | |
Files NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/Makefile and linux/arch/arm64/boot/dts/broadcom/stingray/Makefile are identical | |
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/stingray-board-base.dtsi linux/arch/arm64/boot/dts/broadcom/stingray/stingray-board-base.dtsi | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/stingray-board-base.dtsi 2025-05-13 01:59:04.856259223 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/stingray/stingray-board-base.dtsi 2025-05-03 13:33:57.954289401 +0200 | |
@@ -1,4 +1,4 @@ | |
-// SPDX-License-Identifier: (GPL-2.0 or BSD-3-Clause) | |
+// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) | |
/* | |
* Copyright(c) 2016-2018 Broadcom | |
*/ | |
Files NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/stingray-clock.dtsi and linux/arch/arm64/boot/dts/broadcom/stingray/stingray-clock.dtsi are identical | |
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi linux/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi 2025-05-13 01:59:04.856259223 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi 2025-05-03 13:33:57.954289401 +0200 | |
@@ -108,18 +108,26 @@ | |
CLUSTER0_L2: l2-cache@0 { | |
compatible = "cache"; | |
+ cache-level = <2>; | |
+ cache-unified; | |
}; | |
CLUSTER1_L2: l2-cache@100 { | |
compatible = "cache"; | |
+ cache-level = <2>; | |
+ cache-unified; | |
}; | |
CLUSTER2_L2: l2-cache@200 { | |
compatible = "cache"; | |
+ cache-level = <2>; | |
+ cache-unified; | |
}; | |
CLUSTER3_L2: l2-cache@300 { | |
compatible = "cache"; | |
+ cache-level = <2>; | |
+ cache-unified; | |
}; | |
}; | |
@@ -134,7 +142,7 @@ | |
}; | |
pmu { | |
- compatible = "arm,armv8-pmuv3"; | |
+ compatible = "arm,cortex-a72-pmu"; | |
interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; | |
}; | |
@@ -174,7 +182,7 @@ | |
<0x02e00000 0x600000>; /* GICR */ | |
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; | |
- gic_its: gic-its@63c20000 { | |
+ gic_its: msi-controller@63c20000 { | |
compatible = "arm,gic-v3-its"; | |
msi-controller; | |
#msi-cells = <1>; | |
@@ -182,7 +190,7 @@ | |
}; | |
}; | |
- smmu: mmu@3000000 { | |
+ smmu: iommu@3000000 { | |
compatible = "arm,mmu-500"; | |
reg = <0x03000000 0x80000>; | |
#global-interrupts = <1>; | |
@@ -442,6 +450,7 @@ | |
#gpio-cells = <2>; | |
gpio-controller; | |
interrupt-controller; | |
+ #interrupt-cells = <2>; | |
interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>; | |
gpio-ranges = <&pinmux 0 0 16>, | |
<&pinmux 16 71 2>, | |
@@ -471,7 +480,6 @@ | |
}; | |
uart0: serial@100000 { | |
- device_type = "serial"; | |
compatible = "snps,dw-apb-uart"; | |
reg = <0x00100000 0x1000>; | |
reg-shift = <2>; | |
@@ -482,7 +490,6 @@ | |
}; | |
uart1: serial@110000 { | |
- device_type = "serial"; | |
compatible = "snps,dw-apb-uart"; | |
reg = <0x00110000 0x1000>; | |
reg-shift = <2>; | |
@@ -493,7 +500,6 @@ | |
}; | |
uart2: serial@120000 { | |
- device_type = "serial"; | |
compatible = "snps,dw-apb-uart"; | |
reg = <0x00120000 0x1000>; | |
reg-shift = <2>; | |
@@ -504,7 +510,6 @@ | |
}; | |
uart3: serial@130000 { | |
- device_type = "serial"; | |
compatible = "snps,dw-apb-uart"; | |
reg = <0x00130000 0x1000>; | |
reg-shift = <2>; | |
@@ -519,7 +524,7 @@ | |
reg = <0x00180000 0x1000>; | |
interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; | |
clocks = <&hsls_div2_clk>, <&hsls_div2_clk>; | |
- clock-names = "spiclk", "apb_pclk"; | |
+ clock-names = "sspclk", "apb_pclk"; | |
num-cs = <1>; | |
#address-cells = <1>; | |
#size-cells = <0>; | |
@@ -531,7 +536,7 @@ | |
reg = <0x00190000 0x1000>; | |
interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; | |
clocks = <&hsls_div2_clk>, <&hsls_div2_clk>; | |
- clock-names = "spiclk", "apb_pclk"; | |
+ clock-names = "sspclk", "apb_pclk"; | |
num-cs = <1>; | |
#address-cells = <1>; | |
#size-cells = <0>; | |
@@ -543,7 +548,7 @@ | |
reg = <0x00220000 0x28>; | |
}; | |
- dma0: dma@310000 { | |
+ dma0: dma-controller@310000 { | |
compatible = "arm,pl330", "arm,primecell"; | |
reg = <0x00310000 0x1000>; | |
interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>, | |
@@ -556,20 +561,18 @@ | |
<GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>, | |
<GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>; | |
#dma-cells = <1>; | |
- #dma-channels = <8>; | |
- #dma-requests = <32>; | |
clocks = <&hsls_div2_clk>; | |
clock-names = "apb_pclk"; | |
iommus = <&smmu 0x6000 0x0000>; | |
}; | |
- enet: ethernet@340000{ | |
+ enet: ethernet@340000 { | |
compatible = "brcm,amac"; | |
reg = <0x00340000 0x1000>; | |
reg-names = "amac_base"; | |
dma-coherent; | |
interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>; | |
- status= "disabled"; | |
+ status = "disabled"; | |
}; | |
nand: nand@360000 { | |
Files NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/stingray-fs4.dtsi and linux/arch/arm64/boot/dts/broadcom/stingray/stingray-fs4.dtsi are identical | |
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/stingray-pcie.dtsi linux/arch/arm64/boot/dts/broadcom/stingray/stingray-pcie.dtsi | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/stingray-pcie.dtsi 2025-05-13 01:59:04.856259223 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/stingray/stingray-pcie.dtsi 2025-05-03 13:33:57.954289401 +0200 | |
@@ -1,4 +1,4 @@ | |
-// SPDX-License-Identifier: (GPL-2.0 or BSD-3-Clause) | |
+// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) | |
/* | |
*Copyright(c) 2018 Broadcom | |
*/ | |
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/stingray-pinctrl.dtsi linux/arch/arm64/boot/dts/broadcom/stingray/stingray-pinctrl.dtsi | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/stingray-pinctrl.dtsi 2025-05-13 01:59:04.856259223 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/stingray/stingray-pinctrl.dtsi 2025-05-03 13:33:57.954289401 +0200 | |
@@ -44,7 +44,7 @@ | |
compatible = "pinctrl-single"; | |
reg = <0x0014029c 0x26c>; | |
#address-cells = <1>; | |
- #size-cells = <1>; | |
+ #size-cells = <0>; | |
pinctrl-single,register-width = <32>; | |
pinctrl-single,function-mask = <0xf>; | |
pinctrl-single,gpio-range = < | |
@@ -56,14 +56,14 @@ | |
}; | |
/* pinctrl functions */ | |
- tsio_pins: pinmux_gpio_14 { | |
+ tsio_pins: gpio-14-pins { | |
pinctrl-single,pins = < | |
0x038 MODE_NITRO /* tsio_0 */ | |
0x03c MODE_NITRO /* tsio_1 */ | |
>; | |
}; | |
- nor_pins: pinmux_pnor_adv_n { | |
+ nor_pins: pnor-adv-n-pins { | |
pinctrl-single,pins = < | |
0x0ac MODE_PNOR /* nand_ce1_n */ | |
0x0b0 MODE_PNOR /* nand_ce0_n */ | |
@@ -119,7 +119,7 @@ | |
>; | |
}; | |
- nand_pins: pinmux_nand_ce1_n { | |
+ nand_pins: nand-ce1-n-pins { | |
pinctrl-single,pins = < | |
0x0ac MODE_NAND /* nand_ce1_n */ | |
0x0b0 MODE_NAND /* nand_ce0_n */ | |
@@ -148,59 +148,59 @@ | |
>; | |
}; | |
- pwm0_pins: pinmux_pwm_0 { | |
+ pwm0_pins: pwm-0-pins { | |
pinctrl-single,pins = < | |
0x10c MODE_NITRO | |
>; | |
}; | |
- pwm1_pins: pinmux_pwm_1 { | |
+ pwm1_pins: pwm-1-pins { | |
pinctrl-single,pins = < | |
0x110 MODE_NITRO | |
>; | |
}; | |
- pwm2_pins: pinmux_pwm_2 { | |
+ pwm2_pins: pwm-2-pins { | |
pinctrl-single,pins = < | |
0x114 MODE_NITRO | |
>; | |
}; | |
- pwm3_pins: pinmux_pwm_3 { | |
+ pwm3_pins: pwm-3-pins { | |
pinctrl-single,pins = < | |
0x118 MODE_NITRO | |
>; | |
}; | |
- dbu_rxd_pins: pinmux_uart1_sin_nitro { | |
+ dbu_rxd_pins: uart1-sin-nitro-pins { | |
pinctrl-single,pins = < | |
0x11c MODE_NITRO /* dbu_rxd */ | |
0x120 MODE_NITRO /* dbu_txd */ | |
>; | |
}; | |
- uart1_pins: pinmux_uart1_sin_nand { | |
+ uart1_pins: uart1-sin-nand-pins { | |
pinctrl-single,pins = < | |
0x11c MODE_NAND /* uart1_sin */ | |
0x120 MODE_NAND /* uart1_out */ | |
>; | |
}; | |
- uart2_pins: pinmux_uart2_sin { | |
+ uart2_pins: uart2-sin-pins { | |
pinctrl-single,pins = < | |
0x124 MODE_NITRO /* uart2_sin */ | |
0x128 MODE_NITRO /* uart2_out */ | |
>; | |
}; | |
- uart3_pins: pinmux_uart3_sin { | |
+ uart3_pins: uart3-sin-pins { | |
pinctrl-single,pins = < | |
0x12c MODE_NITRO /* uart3_sin */ | |
0x130 MODE_NITRO /* uart3_out */ | |
>; | |
}; | |
- i2s_pins: pinmux_i2s_bitclk { | |
+ i2s_pins: i2s-bitclk-pins { | |
pinctrl-single,pins = < | |
0x134 MODE_NITRO /* i2s_bitclk */ | |
0x138 MODE_NITRO /* i2s_sdout */ | |
@@ -211,7 +211,7 @@ | |
>; | |
}; | |
- qspi_pins: pinumx_qspi_hold_n { | |
+ qspi_pins: qspi-hold-n-pins { | |
pinctrl-single,pins = < | |
0x14c MODE_NAND /* qspi_hold_n */ | |
0x150 MODE_NAND /* qspi_wp_n */ | |
@@ -222,28 +222,28 @@ | |
>; | |
}; | |
- mdio_pins: pinumx_ext_mdio { | |
+ mdio_pins: ext-mdio-pins { | |
pinctrl-single,pins = < | |
0x164 MODE_NITRO /* ext_mdio */ | |
0x168 MODE_NITRO /* ext_mdc */ | |
>; | |
}; | |
- i2c0_pins: pinmux_i2c0_sda { | |
+ i2c0_pins: i2c0-sda-pins { | |
pinctrl-single,pins = < | |
0x16c MODE_NITRO /* i2c0_sda */ | |
0x170 MODE_NITRO /* i2c0_scl */ | |
>; | |
}; | |
- i2c1_pins: pinmux_i2c1_sda { | |
+ i2c1_pins: i2c1-sda-pins { | |
pinctrl-single,pins = < | |
0x174 MODE_NITRO /* i2c1_sda */ | |
0x178 MODE_NITRO /* i2c1_scl */ | |
>; | |
}; | |
- sdio0_pins: pinmux_sdio0_cd_l { | |
+ sdio0_pins: sdio0-cd-l-pins { | |
pinctrl-single,pins = < | |
0x17c MODE_NITRO /* sdio0_cd_l */ | |
0x180 MODE_NITRO /* sdio0_clk_sdcard */ | |
@@ -262,7 +262,7 @@ | |
>; | |
}; | |
- sdio1_pins: pinmux_sdio1_cd_l { | |
+ sdio1_pins: sdio1-cd-l-pins { | |
pinctrl-single,pins = < | |
0x1b4 MODE_NITRO /* sdio1_cd_l */ | |
0x1b8 MODE_NITRO /* sdio1_clk_sdcard */ | |
@@ -281,7 +281,7 @@ | |
>; | |
}; | |
- spi0_pins: pinmux_spi0_sck_nand { | |
+ spi0_pins: spi0-sck-nand-pins { | |
pinctrl-single,pins = < | |
0x1ec MODE_NITRO /* spi0_sck */ | |
0x1f0 MODE_NITRO /* spi0_rxd */ | |
@@ -290,7 +290,7 @@ | |
>; | |
}; | |
- spi1_pins: pinmux_spi1_sck_nand { | |
+ spi1_pins: spi1-sck-nand-pins { | |
pinctrl-single,pins = < | |
0x1fc MODE_NITRO /* spi1_sck */ | |
0x200 MODE_NITRO /* spi1_rxd */ | |
@@ -299,14 +299,14 @@ | |
>; | |
}; | |
- nuart_pins: pinmux_uart0_sin_nitro { | |
+ nuart_pins: uart0-sin-nitro-pins { | |
pinctrl-single,pins = < | |
0x20c MODE_NITRO /* nuart_rxd */ | |
0x210 MODE_NITRO /* nuart_txd */ | |
>; | |
}; | |
- uart0_pins: pinumux_uart0_sin_nand { | |
+ uart0_pins: uart0-sin-nand-pins { | |
pinctrl-single,pins = < | |
0x20c MODE_NAND /* uart0_sin */ | |
0x210 MODE_NAND /* uart0_out */ | |
@@ -319,7 +319,7 @@ | |
>; | |
}; | |
- drdu2_pins: pinmux_drdu2_overcurrent { | |
+ drdu2_pins: drdu2-overcurrent-pins { | |
pinctrl-single,pins = < | |
0x22c MODE_NITRO /* drdu2_overcurrent */ | |
0x230 MODE_NITRO /* drdu2_vbus_ppc */ | |
@@ -328,7 +328,7 @@ | |
>; | |
}; | |
- drdu3_pins: pinmux_drdu3_overcurrent { | |
+ drdu3_pins: drdu3-overcurrent-pins { | |
pinctrl-single,pins = < | |
0x23c MODE_NITRO /* drdu3_overcurrent */ | |
0x240 MODE_NITRO /* drdu3_vbus_ppc */ | |
@@ -337,7 +337,7 @@ | |
>; | |
}; | |
- usb3h_pins: pinmux_usb3h_overcurrent { | |
+ usb3h_pins: usb3h-overcurrent-pins { | |
pinctrl-single,pins = < | |
0x24c MODE_NITRO /* usb3h_overcurrent */ | |
0x250 MODE_NITRO /* usb3h_vbus_ppc */ | |
diff '--color=auto' -rush NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/stingray-usb.dtsi linux/arch/arm64/boot/dts/broadcom/stingray/stingray-usb.dtsi | |
--- NetBSD/src/sys/external/gpl2/dts/dist/arch/arm64/boot/dts/broadcom/stingray/stingray-usb.dtsi 2025-05-13 01:59:04.856259223 +0200 | |
+++ linux/arch/arm64/boot/dts/broadcom/stingray/stingray-usb.dtsi 2025-05-03 13:33:57.954289401 +0200 | |
@@ -1,4 +1,4 @@ | |
-// SPDX-License-Identifier: (GPL-2.0 or BSD-3-Clause) | |
+// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) | |
/* | |
*Copyright(c) 2018 Broadcom | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Device Tree Comparison
We look at differences in device trees between projects to see if they could have a common source.
NOTE: Operating systems (Linux, BSDs, Plan 9...) and firmware (coreboot, U-Boot, ...) differ in terms of design. While general purpose OSes start at the soft platform level (architecture + device tree / UEFI+ACPI), firmware starts at the hardware platform level. I.e., some concerns are ignored by OSes.
Also note that different structures are used for the device trees, hence the filtering in
diff
/grep
below: U-Boot uses a flat directory structure, whereas Linux has subdirectories, and NetBSD takes a copy from Linux with adjustments for its own drivers and other internals.NetBSD vs Linux
diff -rush {NetBSD/src/sys/external/gpl2/dts/dist,linux}/arch/arm64/boot/dts/broadcom/
commits used:
Linux:
95d3481af6dc90fd7175a7643fd108cdcb808ce5
NetBSD:
62fefc6bff3da4906f6d5463e6a12e76d00a7a7c
Linux vs U-Boot
diff -x Makefile -rush OS/linux/arch/arm64/boot/dts/broadcom/ firmware/u-boot/arch/arm/dts/ | grep -v Only
commits used:
Linux:
95d3481af6dc90fd7175a7643fd108cdcb808ce5
U-Boot:
4d3b5c679bc9d5c6cbbeedcc1e4a186f1cc35541