From d068622c37bc474bf4ecd915dd9624c0c5f9cc91 Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Sun, 9 Oct 2016 13:29:07 -0500 Subject: [PATCH] arm: Update Raspberry Pi 1/2 fdts from FreeBSD --- src/data/dts/arch/arm/bcm2835.dtsi | 13 ++++++-- src/data/dts/arch/arm/bcm2836.dtsi | 48 ++++++++++++++++++++++++------ src/data/dts/arch/arm/rpi.dts | 3 ++ src/data/dts/arch/arm/rpi2.dts | 39 +++++++++++++++++------- 4 files changed, 81 insertions(+), 22 deletions(-) diff --git a/src/data/dts/arch/arm/bcm2835.dtsi b/src/data/dts/arch/arm/bcm2835.dtsi index 6ff1944b1c..51f2d590d2 100644 --- a/src/data/dts/arch/arm/bcm2835.dtsi +++ b/src/data/dts/arch/arm/bcm2835.dtsi @@ -144,7 +144,7 @@ #gpio-cells = <2>; interrupt-controller; - #interrupt-cells = <1>; + #interrupt-cells = <2>; pinctrl-names = "default"; pinctrl-0 = <&pins_reserved>; @@ -396,6 +396,14 @@ }; }; + rng { + compatible = "broadcom,bcm2835-rng", + "broadcom,bcm2708-rng"; + reg = <0x104000 0x20>; + interrupts = <69>; + interrupt-parent = <&intc>; + }; + bsc0 { #address-cells = <1>; #size-cells = <0>; @@ -474,11 +482,12 @@ reg-shift = <2>; }; - vchiq { + vchiq: vchiq { compatible = "broadcom,bcm2835-vchiq"; reg = <0xB800 0x50>; interrupts = <2>; interrupt-parent = <&intc>; + cache-line-size = <32>; }; usb { diff --git a/src/data/dts/arch/arm/bcm2836.dtsi b/src/data/dts/arch/arm/bcm2836.dtsi index 7fdaecfa49..d7774372d4 100644 --- a/src/data/dts/arch/arm/bcm2836.dtsi +++ b/src/data/dts/arch/arm/bcm2836.dtsi @@ -32,8 +32,8 @@ timer { compatible = "arm,armv7-timer"; clock-frequency = <19200000>; - interrupts = <72 73 75 74>; - interrupt-parent = <&intc>; + interrupts = <0 1 3 2>; + interrupt-parent = <&local_intc>; }; SOC: axi { @@ -41,12 +41,23 @@ #address-cells = <1>; #size-cells = <1>; reg = <0x3f000000 0x01000000>; - ranges = <0 0x3f000000 0x01000000>; + ranges = <0 0x3f000000 0x01000000>, + <0x40000000 0x40000000 0x00001000>; + + local_intc: local_intc { + compatible = "brcm,bcm2836-l1-intc"; + reg = <0x40000000 0x100>; + interrupt-controller; + #interrupt-cells = <1>; + interrupt-parent = <&local_intc>; + }; intc: interrupt-controller { compatible = "broadcom,bcm2835-armctrl-ic", "broadcom,bcm2708-armctrl-ic"; reg = <0xB200 0x200>; + interrupt-parent = <&local_intc>; + interrupts = <8>; interrupt-controller; #interrupt-cells = <1>; @@ -101,6 +112,12 @@ */ }; + watchdog0 { + compatible = "broadcom,bcm2835-wdt", + "broadcom,bcm2708-wdt"; + reg = <0x10001c 0x0c>; /* 0x1c, 0x20, 0x24 */ + }; + gpio: gpio { compatible = "broadcom,bcm2835-gpio", "broadcom,bcm2708-gpio"; @@ -120,16 +137,16 @@ #gpio-cells = <2>; interrupt-controller; - #interrupt-cells = <1>; + #interrupt-cells = <2>; pinctrl-names = "default"; pinctrl-0 = <&pins_reserved>; - /* Pins that can short 3.3V to GND in output mode: 46-47 + /* Pins that can short 3.3V to GND in output mode: 46 * Pins used by VideoCore: 48-53 */ - broadcom,read-only = <46>, <47>, <48>, <49>, <50>, - <51>, <52>, <53>; + broadcom,read-only = <46>, <48>, <49>, <50>, + <51>, <52>, <53>; /* BSC0 */ pins_bsc0_a: bsc0_a { @@ -372,7 +389,17 @@ }; }; + rng { + compatible = "broadcom,bcm2835-rng", + "broadcom,bcm2708-rng"; + reg = <0x104000 0x20>; + interrupts = <69>; + interrupt-parent = <&intc>; + }; + bsc0 { + #address-cells = <1>; + #size-cells = <0>; compatible = "broadcom,bcm2835-bsc", "broadcom,bcm2708-bsc"; reg = <0x205000 0x20>; @@ -381,6 +408,8 @@ }; bsc1 { + #address-cells = <1>; + #size-cells = <0>; compatible = "broadcom,bcm2835-bsc", "broadcom,bcm2708-bsc"; reg = <0x804000 0x20>; @@ -431,7 +460,7 @@ interrupts = <70>; interrupt-parent = <&intc>; - clock-frequency = <2500000000>; /* Set by VideoCore */ + clock-frequency = <250000000>; /* Set by VideoCore */ }; uart0: uart0 { @@ -446,11 +475,12 @@ reg-shift = <2>; }; - vchiq { + vchiq: vchiq { compatible = "broadcom,bcm2835-vchiq"; reg = <0xB800 0x50>; interrupts = <2>; interrupt-parent = <&intc>; + cache-line-size = <32>; }; usb { diff --git a/src/data/dts/arch/arm/rpi.dts b/src/data/dts/arch/arm/rpi.dts index 08d9d24bb4..548f888b2b 100644 --- a/src/data/dts/arch/arm/rpi.dts +++ b/src/data/dts/arch/arm/rpi.dts @@ -389,4 +389,7 @@ stdout = "uart0"; }; + __overrides__ { + cache_line_size = <&vchiq>, "cache-line-size:0"; + }; }; diff --git a/src/data/dts/arch/arm/rpi2.dts b/src/data/dts/arch/arm/rpi2.dts index 59974f148b..951bca3b47 100644 --- a/src/data/dts/arch/arm/rpi2.dts +++ b/src/data/dts/arch/arm/rpi2.dts @@ -43,6 +43,24 @@ reg = <0xf00>; /* CPU ID=0xf00 */ clock-frequency = <800000000>; /* 800MHz */ }; + cpu@1 { + compatible = "arm,cortex-a7"; + device_type = "cpu"; + reg = <0xf01>; /* CPU ID=0xf01 */ + clock-frequency = <800000000>; /* 800MHz */ + }; + cpu@2 { + compatible = "arm,cortex-a7"; + device_type = "cpu"; + reg = <0xf02>; /* CPU ID=0xf02 */ + clock-frequency = <800000000>; /* 800MHz */ + }; + cpu@3 { + compatible = "arm,cortex-a7"; + device_type = "cpu"; + reg = <0xf03>; /* CPU ID=0xf03 */ + clock-frequency = <800000000>; /* 800MHz */ + }; }; memory { @@ -322,18 +340,14 @@ leds { compatible = "gpio-leds"; - ok { - label = "ok"; - gpios = <&gpio 16 1>; + pwr { + label = "pwr"; + gpios = <&gpio 35 0>; + }; - /* Don't change this - it configures - * how the led driver determines if - * the led is on or off when it loads. - */ - default-state = "keep"; - - /* This is the real default state. */ - linux,default-trigger = "default-on"; + act { + label = "act"; + gpios = <&gpio 47 0>; }; }; @@ -386,4 +400,7 @@ stdout = "uart0"; }; + __overrides__ { + cache_line_size = <&vchiq>, "cache-line-size:0"; + }; };