1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * ARM Ltd. 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * ARMv8 Foundation model DTS 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun/dts-v1/; 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun/memreserve/ 0x80000000 0x00010000; 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun/ { 15*4882a593Smuzhiyun model = "Foundation-v8A"; 16*4882a593Smuzhiyun compatible = "arm,foundation-aarch64", "arm,vexpress"; 17*4882a593Smuzhiyun interrupt-parent = <&gic>; 18*4882a593Smuzhiyun #address-cells = <2>; 19*4882a593Smuzhiyun #size-cells = <2>; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun chosen { }; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun aliases { 24*4882a593Smuzhiyun serial0 = &v2m_serial0; 25*4882a593Smuzhiyun serial1 = &v2m_serial1; 26*4882a593Smuzhiyun serial2 = &v2m_serial2; 27*4882a593Smuzhiyun serial3 = &v2m_serial3; 28*4882a593Smuzhiyun }; 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun cpus { 31*4882a593Smuzhiyun #address-cells = <2>; 32*4882a593Smuzhiyun #size-cells = <0>; 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun cpu0: cpu@0 { 35*4882a593Smuzhiyun device_type = "cpu"; 36*4882a593Smuzhiyun compatible = "arm,armv8"; 37*4882a593Smuzhiyun reg = <0x0 0x0>; 38*4882a593Smuzhiyun next-level-cache = <&L2_0>; 39*4882a593Smuzhiyun }; 40*4882a593Smuzhiyun cpu1: cpu@1 { 41*4882a593Smuzhiyun device_type = "cpu"; 42*4882a593Smuzhiyun compatible = "arm,armv8"; 43*4882a593Smuzhiyun reg = <0x0 0x1>; 44*4882a593Smuzhiyun next-level-cache = <&L2_0>; 45*4882a593Smuzhiyun }; 46*4882a593Smuzhiyun cpu2: cpu@2 { 47*4882a593Smuzhiyun device_type = "cpu"; 48*4882a593Smuzhiyun compatible = "arm,armv8"; 49*4882a593Smuzhiyun reg = <0x0 0x2>; 50*4882a593Smuzhiyun next-level-cache = <&L2_0>; 51*4882a593Smuzhiyun }; 52*4882a593Smuzhiyun cpu3: cpu@3 { 53*4882a593Smuzhiyun device_type = "cpu"; 54*4882a593Smuzhiyun compatible = "arm,armv8"; 55*4882a593Smuzhiyun reg = <0x0 0x3>; 56*4882a593Smuzhiyun next-level-cache = <&L2_0>; 57*4882a593Smuzhiyun }; 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun L2_0: l2-cache0 { 60*4882a593Smuzhiyun compatible = "cache"; 61*4882a593Smuzhiyun }; 62*4882a593Smuzhiyun }; 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun memory@80000000 { 65*4882a593Smuzhiyun device_type = "memory"; 66*4882a593Smuzhiyun reg = <0x00000000 0x80000000 0 0x80000000>, 67*4882a593Smuzhiyun <0x00000008 0x80000000 0 0x80000000>; 68*4882a593Smuzhiyun }; 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun timer { 71*4882a593Smuzhiyun compatible = "arm,armv8-timer"; 72*4882a593Smuzhiyun interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 73*4882a593Smuzhiyun <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 74*4882a593Smuzhiyun <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 75*4882a593Smuzhiyun <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 76*4882a593Smuzhiyun clock-frequency = <100000000>; 77*4882a593Smuzhiyun }; 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun pmu { 80*4882a593Smuzhiyun compatible = "arm,armv8-pmuv3"; 81*4882a593Smuzhiyun interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, 82*4882a593Smuzhiyun <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, 83*4882a593Smuzhiyun <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, 84*4882a593Smuzhiyun <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 85*4882a593Smuzhiyun }; 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun watchdog@2a440000 { 88*4882a593Smuzhiyun compatible = "arm,sbsa-gwdt"; 89*4882a593Smuzhiyun reg = <0x0 0x2a440000 0 0x1000>, 90*4882a593Smuzhiyun <0x0 0x2a450000 0 0x1000>; 91*4882a593Smuzhiyun interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 92*4882a593Smuzhiyun timeout-sec = <30>; 93*4882a593Smuzhiyun }; 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun v2m_clk24mhz: clk24mhz { 96*4882a593Smuzhiyun compatible = "fixed-clock"; 97*4882a593Smuzhiyun #clock-cells = <0>; 98*4882a593Smuzhiyun clock-frequency = <24000000>; 99*4882a593Smuzhiyun clock-output-names = "v2m:clk24mhz"; 100*4882a593Smuzhiyun }; 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun v2m_refclk1mhz: refclk1mhz { 103*4882a593Smuzhiyun compatible = "fixed-clock"; 104*4882a593Smuzhiyun #clock-cells = <0>; 105*4882a593Smuzhiyun clock-frequency = <1000000>; 106*4882a593Smuzhiyun clock-output-names = "v2m:refclk1mhz"; 107*4882a593Smuzhiyun }; 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun v2m_refclk32khz: refclk32khz { 110*4882a593Smuzhiyun compatible = "fixed-clock"; 111*4882a593Smuzhiyun #clock-cells = <0>; 112*4882a593Smuzhiyun clock-frequency = <32768>; 113*4882a593Smuzhiyun clock-output-names = "v2m:refclk32khz"; 114*4882a593Smuzhiyun }; 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun bus@8000000 { 117*4882a593Smuzhiyun compatible = "arm,vexpress,v2m-p1", "simple-bus"; 118*4882a593Smuzhiyun arm,v2m-memory-map = "rs1"; 119*4882a593Smuzhiyun #address-cells = <2>; /* SMB chipselect number and offset */ 120*4882a593Smuzhiyun #size-cells = <1>; 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun ranges = <0 0 0 0x08000000 0x04000000>, 123*4882a593Smuzhiyun <1 0 0 0x14000000 0x04000000>, 124*4882a593Smuzhiyun <2 0 0 0x18000000 0x04000000>, 125*4882a593Smuzhiyun <3 0 0 0x1c000000 0x04000000>, 126*4882a593Smuzhiyun <4 0 0 0x0c000000 0x04000000>, 127*4882a593Smuzhiyun <5 0 0 0x10000000 0x04000000>; 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun #interrupt-cells = <1>; 130*4882a593Smuzhiyun interrupt-map-mask = <0 0 63>; 131*4882a593Smuzhiyun interrupt-map = <0 0 0 &gic 0 GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 132*4882a593Smuzhiyun <0 0 1 &gic 0 GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, 133*4882a593Smuzhiyun <0 0 2 &gic 0 GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, 134*4882a593Smuzhiyun <0 0 3 &gic 0 GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, 135*4882a593Smuzhiyun <0 0 4 &gic 0 GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, 136*4882a593Smuzhiyun <0 0 5 &gic 0 GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, 137*4882a593Smuzhiyun <0 0 6 &gic 0 GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 138*4882a593Smuzhiyun <0 0 7 &gic 0 GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 139*4882a593Smuzhiyun <0 0 8 &gic 0 GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 140*4882a593Smuzhiyun <0 0 9 &gic 0 GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 141*4882a593Smuzhiyun <0 0 10 &gic 0 GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, 142*4882a593Smuzhiyun <0 0 11 &gic 0 GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 143*4882a593Smuzhiyun <0 0 12 &gic 0 GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 144*4882a593Smuzhiyun <0 0 13 &gic 0 GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, 145*4882a593Smuzhiyun <0 0 14 &gic 0 GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, 146*4882a593Smuzhiyun <0 0 15 &gic 0 GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 147*4882a593Smuzhiyun <0 0 16 &gic 0 GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 148*4882a593Smuzhiyun <0 0 17 &gic 0 GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>, 149*4882a593Smuzhiyun <0 0 18 &gic 0 GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 150*4882a593Smuzhiyun <0 0 19 &gic 0 GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 151*4882a593Smuzhiyun <0 0 20 &gic 0 GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>, 152*4882a593Smuzhiyun <0 0 21 &gic 0 GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>, 153*4882a593Smuzhiyun <0 0 22 &gic 0 GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>, 154*4882a593Smuzhiyun <0 0 23 &gic 0 GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>, 155*4882a593Smuzhiyun <0 0 24 &gic 0 GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>, 156*4882a593Smuzhiyun <0 0 25 &gic 0 GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>, 157*4882a593Smuzhiyun <0 0 26 &gic 0 GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>, 158*4882a593Smuzhiyun <0 0 27 &gic 0 GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>, 159*4882a593Smuzhiyun <0 0 28 &gic 0 GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>, 160*4882a593Smuzhiyun <0 0 29 &gic 0 GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, 161*4882a593Smuzhiyun <0 0 30 &gic 0 GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>, 162*4882a593Smuzhiyun <0 0 31 &gic 0 GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>, 163*4882a593Smuzhiyun <0 0 32 &gic 0 GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, 164*4882a593Smuzhiyun <0 0 33 &gic 0 GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>, 165*4882a593Smuzhiyun <0 0 34 &gic 0 GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>, 166*4882a593Smuzhiyun <0 0 35 &gic 0 GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>, 167*4882a593Smuzhiyun <0 0 36 &gic 0 GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>, 168*4882a593Smuzhiyun <0 0 37 &gic 0 GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>, 169*4882a593Smuzhiyun <0 0 38 &gic 0 GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>, 170*4882a593Smuzhiyun <0 0 39 &gic 0 GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, 171*4882a593Smuzhiyun <0 0 40 &gic 0 GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 172*4882a593Smuzhiyun <0 0 41 &gic 0 GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, 173*4882a593Smuzhiyun <0 0 42 &gic 0 GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 174*4882a593Smuzhiyun 175*4882a593Smuzhiyun ethernet@202000000 { 176*4882a593Smuzhiyun compatible = "smsc,lan91c111"; 177*4882a593Smuzhiyun reg = <2 0x02000000 0x10000>; 178*4882a593Smuzhiyun interrupts = <15>; 179*4882a593Smuzhiyun }; 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun iofpga-bus@300000000 { 182*4882a593Smuzhiyun compatible = "simple-bus"; 183*4882a593Smuzhiyun #address-cells = <1>; 184*4882a593Smuzhiyun #size-cells = <1>; 185*4882a593Smuzhiyun ranges = <0 3 0 0x200000>; 186*4882a593Smuzhiyun 187*4882a593Smuzhiyun v2m_sysreg: sysreg@10000 { 188*4882a593Smuzhiyun compatible = "arm,vexpress-sysreg"; 189*4882a593Smuzhiyun reg = <0x010000 0x1000>; 190*4882a593Smuzhiyun }; 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun v2m_serial0: serial@90000 { 193*4882a593Smuzhiyun compatible = "arm,pl011", "arm,primecell"; 194*4882a593Smuzhiyun reg = <0x090000 0x1000>; 195*4882a593Smuzhiyun interrupts = <5>; 196*4882a593Smuzhiyun clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 197*4882a593Smuzhiyun clock-names = "uartclk", "apb_pclk"; 198*4882a593Smuzhiyun }; 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun v2m_serial1: serial@a0000 { 201*4882a593Smuzhiyun compatible = "arm,pl011", "arm,primecell"; 202*4882a593Smuzhiyun reg = <0x0a0000 0x1000>; 203*4882a593Smuzhiyun interrupts = <6>; 204*4882a593Smuzhiyun clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 205*4882a593Smuzhiyun clock-names = "uartclk", "apb_pclk"; 206*4882a593Smuzhiyun }; 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun v2m_serial2: serial@b0000 { 209*4882a593Smuzhiyun compatible = "arm,pl011", "arm,primecell"; 210*4882a593Smuzhiyun reg = <0x0b0000 0x1000>; 211*4882a593Smuzhiyun interrupts = <7>; 212*4882a593Smuzhiyun clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 213*4882a593Smuzhiyun clock-names = "uartclk", "apb_pclk"; 214*4882a593Smuzhiyun }; 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun v2m_serial3: serial@c0000 { 217*4882a593Smuzhiyun compatible = "arm,pl011", "arm,primecell"; 218*4882a593Smuzhiyun reg = <0x0c0000 0x1000>; 219*4882a593Smuzhiyun interrupts = <8>; 220*4882a593Smuzhiyun clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 221*4882a593Smuzhiyun clock-names = "uartclk", "apb_pclk"; 222*4882a593Smuzhiyun }; 223*4882a593Smuzhiyun 224*4882a593Smuzhiyun virtio-block@130000 { 225*4882a593Smuzhiyun compatible = "virtio,mmio"; 226*4882a593Smuzhiyun reg = <0x130000 0x200>; 227*4882a593Smuzhiyun interrupts = <42>; 228*4882a593Smuzhiyun }; 229*4882a593Smuzhiyun }; 230*4882a593Smuzhiyun }; 231*4882a593Smuzhiyun}; 232