18fc53e26SVincenzo Frascino// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) 28fc53e26SVincenzo Frascino/* 38fc53e26SVincenzo Frascino * Copyright (c) 2020-2024, Arm Limited. All rights reserved. 48fc53e26SVincenzo Frascino */ 58fc53e26SVincenzo Frascino 68fc53e26SVincenzo Frascino#include <dt-bindings/interrupt-controller/arm-gic.h> 78fc53e26SVincenzo Frascino 88fc53e26SVincenzo Frascino/ { 98fc53e26SVincenzo Frascino interrupt-parent = <&gic>; 108fc53e26SVincenzo Frascino 118fc53e26SVincenzo Frascino #address-cells = <2>; 128fc53e26SVincenzo Frascino #size-cells = <2>; 138fc53e26SVincenzo Frascino 148fc53e26SVincenzo Frascino soc_refclk50mhz: clock-50000000 { 158fc53e26SVincenzo Frascino compatible = "fixed-clock"; 168fc53e26SVincenzo Frascino #clock-cells = <0>; 178fc53e26SVincenzo Frascino clock-frequency = <50000000>; 188fc53e26SVincenzo Frascino clock-output-names = "apb_pclk"; 198fc53e26SVincenzo Frascino }; 208fc53e26SVincenzo Frascino 218fc53e26SVincenzo Frascino soc_refclk85mhz: clock-85000000 { 228fc53e26SVincenzo Frascino compatible = "fixed-clock"; 238fc53e26SVincenzo Frascino #clock-cells = <0>; 248fc53e26SVincenzo Frascino clock-frequency = <85000000>; 258fc53e26SVincenzo Frascino clock-output-names = "iofpga:aclk"; 268fc53e26SVincenzo Frascino }; 278fc53e26SVincenzo Frascino 288fc53e26SVincenzo Frascino cpus { 298fc53e26SVincenzo Frascino #address-cells = <2>; 308fc53e26SVincenzo Frascino #size-cells = <0>; 318fc53e26SVincenzo Frascino 328fc53e26SVincenzo Frascino cpu0: cpu@0 { 338fc53e26SVincenzo Frascino compatible = "arm,rainier"; 348fc53e26SVincenzo Frascino reg = <0x0 0x0>; 358fc53e26SVincenzo Frascino device_type = "cpu"; 368fc53e26SVincenzo Frascino enable-method = "psci"; 378fc53e26SVincenzo Frascino /* 4 ways set associative */ 388fc53e26SVincenzo Frascino i-cache-size = <0x10000>; 398fc53e26SVincenzo Frascino i-cache-line-size = <64>; 408fc53e26SVincenzo Frascino i-cache-sets = <512>; 418fc53e26SVincenzo Frascino d-cache-size = <0x10000>; 428fc53e26SVincenzo Frascino d-cache-line-size = <64>; 438fc53e26SVincenzo Frascino d-cache-sets = <512>; 448fc53e26SVincenzo Frascino next-level-cache = <&l2_0>; 458fc53e26SVincenzo Frascino clocks = <&scmi_dvfs 0>; 468fc53e26SVincenzo Frascino 47*0c562281SRob Herring (Arm) l2_0: l2-cache { 488fc53e26SVincenzo Frascino compatible = "cache"; 498fc53e26SVincenzo Frascino cache-level = <2>; 508fc53e26SVincenzo Frascino /* 8 ways set associative */ 518fc53e26SVincenzo Frascino cache-size = <0x100000>; 528fc53e26SVincenzo Frascino cache-line-size = <64>; 538fc53e26SVincenzo Frascino cache-sets = <2048>; 548fc53e26SVincenzo Frascino cache-unified; 558fc53e26SVincenzo Frascino next-level-cache = <&l3_0>; 568fc53e26SVincenzo Frascino }; 578fc53e26SVincenzo Frascino }; 588fc53e26SVincenzo Frascino 598fc53e26SVincenzo Frascino cpu1: cpu@100 { 608fc53e26SVincenzo Frascino compatible = "arm,rainier"; 618fc53e26SVincenzo Frascino reg = <0x0 0x100>; 628fc53e26SVincenzo Frascino device_type = "cpu"; 638fc53e26SVincenzo Frascino enable-method = "psci"; 648fc53e26SVincenzo Frascino /* 4 ways set associative */ 658fc53e26SVincenzo Frascino i-cache-size = <0x10000>; 668fc53e26SVincenzo Frascino i-cache-line-size = <64>; 678fc53e26SVincenzo Frascino i-cache-sets = <512>; 688fc53e26SVincenzo Frascino d-cache-size = <0x10000>; 698fc53e26SVincenzo Frascino d-cache-line-size = <64>; 708fc53e26SVincenzo Frascino d-cache-sets = <512>; 718fc53e26SVincenzo Frascino next-level-cache = <&l2_1>; 728fc53e26SVincenzo Frascino clocks = <&scmi_dvfs 0>; 738fc53e26SVincenzo Frascino 74*0c562281SRob Herring (Arm) l2_1: l2-cache { 758fc53e26SVincenzo Frascino compatible = "cache"; 768fc53e26SVincenzo Frascino cache-level = <2>; 778fc53e26SVincenzo Frascino /* 8 ways set associative */ 788fc53e26SVincenzo Frascino cache-size = <0x100000>; 798fc53e26SVincenzo Frascino cache-line-size = <64>; 808fc53e26SVincenzo Frascino cache-sets = <2048>; 818fc53e26SVincenzo Frascino cache-unified; 828fc53e26SVincenzo Frascino next-level-cache = <&l3_0>; 838fc53e26SVincenzo Frascino }; 848fc53e26SVincenzo Frascino }; 858fc53e26SVincenzo Frascino 868fc53e26SVincenzo Frascino cpu2: cpu@10000 { 878fc53e26SVincenzo Frascino compatible = "arm,rainier"; 888fc53e26SVincenzo Frascino reg = <0x0 0x10000>; 898fc53e26SVincenzo Frascino device_type = "cpu"; 908fc53e26SVincenzo Frascino enable-method = "psci"; 918fc53e26SVincenzo Frascino /* 4 ways set associative */ 928fc53e26SVincenzo Frascino i-cache-size = <0x10000>; 938fc53e26SVincenzo Frascino i-cache-line-size = <64>; 948fc53e26SVincenzo Frascino i-cache-sets = <512>; 958fc53e26SVincenzo Frascino d-cache-size = <0x10000>; 968fc53e26SVincenzo Frascino d-cache-line-size = <64>; 978fc53e26SVincenzo Frascino d-cache-sets = <512>; 988fc53e26SVincenzo Frascino next-level-cache = <&l2_2>; 998fc53e26SVincenzo Frascino clocks = <&scmi_dvfs 1>; 1008fc53e26SVincenzo Frascino 101*0c562281SRob Herring (Arm) l2_2: l2-cache { 1028fc53e26SVincenzo Frascino compatible = "cache"; 1038fc53e26SVincenzo Frascino cache-level = <2>; 1048fc53e26SVincenzo Frascino /* 8 ways set associative */ 1058fc53e26SVincenzo Frascino cache-size = <0x100000>; 1068fc53e26SVincenzo Frascino cache-line-size = <64>; 1078fc53e26SVincenzo Frascino cache-sets = <2048>; 1088fc53e26SVincenzo Frascino cache-unified; 1098fc53e26SVincenzo Frascino next-level-cache = <&l3_0>; 1108fc53e26SVincenzo Frascino }; 1118fc53e26SVincenzo Frascino }; 1128fc53e26SVincenzo Frascino 1138fc53e26SVincenzo Frascino cpu3: cpu@10100 { 1148fc53e26SVincenzo Frascino compatible = "arm,rainier"; 1158fc53e26SVincenzo Frascino reg = <0x0 0x10100>; 1168fc53e26SVincenzo Frascino device_type = "cpu"; 1178fc53e26SVincenzo Frascino enable-method = "psci"; 1188fc53e26SVincenzo Frascino /* 4 ways set associative */ 1198fc53e26SVincenzo Frascino i-cache-size = <0x10000>; 1208fc53e26SVincenzo Frascino i-cache-line-size = <64>; 1218fc53e26SVincenzo Frascino i-cache-sets = <512>; 1228fc53e26SVincenzo Frascino d-cache-size = <0x10000>; 1238fc53e26SVincenzo Frascino d-cache-line-size = <64>; 1248fc53e26SVincenzo Frascino d-cache-sets = <512>; 1258fc53e26SVincenzo Frascino next-level-cache = <&l2_3>; 1268fc53e26SVincenzo Frascino clocks = <&scmi_dvfs 1>; 1278fc53e26SVincenzo Frascino 128*0c562281SRob Herring (Arm) l2_3: l2-cache { 1298fc53e26SVincenzo Frascino compatible = "cache"; 1308fc53e26SVincenzo Frascino cache-level = <2>; 1318fc53e26SVincenzo Frascino /* 8 ways set associative */ 1328fc53e26SVincenzo Frascino cache-size = <0x100000>; 1338fc53e26SVincenzo Frascino cache-line-size = <64>; 1348fc53e26SVincenzo Frascino cache-sets = <2048>; 1358fc53e26SVincenzo Frascino cache-unified; 1368fc53e26SVincenzo Frascino next-level-cache = <&l3_0>; 1378fc53e26SVincenzo Frascino }; 1388fc53e26SVincenzo Frascino }; 139*0c562281SRob Herring (Arm) 140*0c562281SRob Herring (Arm) l3_0: l3-cache { 141*0c562281SRob Herring (Arm) compatible = "cache"; 142*0c562281SRob Herring (Arm) cache-level = <3>; 143*0c562281SRob Herring (Arm) cache-size = <0x100000>; 144*0c562281SRob Herring (Arm) cache-unified; 145*0c562281SRob Herring (Arm) }; 1468fc53e26SVincenzo Frascino }; 1478fc53e26SVincenzo Frascino 1488fc53e26SVincenzo Frascino firmware { 1498fc53e26SVincenzo Frascino interrupt-parent = <&gic>; 1508fc53e26SVincenzo Frascino 1518fc53e26SVincenzo Frascino scmi { 1528fc53e26SVincenzo Frascino compatible = "arm,scmi"; 1538fc53e26SVincenzo Frascino mbox-names = "tx", "rx"; 1548fc53e26SVincenzo Frascino mboxes = <&mailbox 1 0>, <&mailbox 1 1>; 1558fc53e26SVincenzo Frascino shmem = <&cpu_scp_hpri0>, <&cpu_scp_hpri1>; 1568fc53e26SVincenzo Frascino #address-cells = <1>; 1578fc53e26SVincenzo Frascino #size-cells = <0>; 1588fc53e26SVincenzo Frascino 1598fc53e26SVincenzo Frascino scmi_dvfs: protocol@13 { 1608fc53e26SVincenzo Frascino reg = <0x13>; 1618fc53e26SVincenzo Frascino #clock-cells = <1>; 1628fc53e26SVincenzo Frascino }; 1638fc53e26SVincenzo Frascino 1648fc53e26SVincenzo Frascino scmi_clk: protocol@14 { 1658fc53e26SVincenzo Frascino reg = <0x14>; 1668fc53e26SVincenzo Frascino #clock-cells = <1>; 1678fc53e26SVincenzo Frascino }; 1688fc53e26SVincenzo Frascino }; 1698fc53e26SVincenzo Frascino }; 1708fc53e26SVincenzo Frascino 1718fc53e26SVincenzo Frascino /* The first bank of memory, memory map is actually provided by UEFI. */ 1728fc53e26SVincenzo Frascino memory@80000000 { 1738fc53e26SVincenzo Frascino device_type = "memory"; 1748fc53e26SVincenzo Frascino /* [0x80000000-0xffffffff] */ 1758fc53e26SVincenzo Frascino reg = <0x00000000 0x80000000 0x0 0x7f000000>; 1768fc53e26SVincenzo Frascino }; 1778fc53e26SVincenzo Frascino 1788fc53e26SVincenzo Frascino memory@8080000000 { 1798fc53e26SVincenzo Frascino device_type = "memory"; 1808fc53e26SVincenzo Frascino /* [0x8080000000-0x83f7ffffff] */ 1818fc53e26SVincenzo Frascino reg = <0x00000080 0x80000000 0x3 0x78000000>; 1828fc53e26SVincenzo Frascino }; 1838fc53e26SVincenzo Frascino 1848fc53e26SVincenzo Frascino pmu { 1858fc53e26SVincenzo Frascino compatible = "arm,rainier-pmu"; 1868fc53e26SVincenzo Frascino interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; 1878fc53e26SVincenzo Frascino }; 1888fc53e26SVincenzo Frascino 1898fc53e26SVincenzo Frascino psci { 1908fc53e26SVincenzo Frascino compatible = "arm,psci-0.2"; 1918fc53e26SVincenzo Frascino method = "smc"; 1928fc53e26SVincenzo Frascino }; 1938fc53e26SVincenzo Frascino 1948fc53e26SVincenzo Frascino reserved-memory { 1958fc53e26SVincenzo Frascino #address-cells = <2>; 1968fc53e26SVincenzo Frascino #size-cells = <2>; 1978fc53e26SVincenzo Frascino ranges; 1988fc53e26SVincenzo Frascino 1998fc53e26SVincenzo Frascino secure-firmware@ff000000 { 2008fc53e26SVincenzo Frascino reg = <0x0 0xff000000 0x0 0x01000000>; 2018fc53e26SVincenzo Frascino no-map; 2028fc53e26SVincenzo Frascino }; 2038fc53e26SVincenzo Frascino }; 2048fc53e26SVincenzo Frascino 2058fc53e26SVincenzo Frascino spe-pmu { 2068fc53e26SVincenzo Frascino compatible = "arm,statistical-profiling-extension-v1"; 2078fc53e26SVincenzo Frascino interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_HIGH>; 2088fc53e26SVincenzo Frascino }; 2098fc53e26SVincenzo Frascino 2108fc53e26SVincenzo Frascino soc: soc { 2118fc53e26SVincenzo Frascino compatible = "simple-bus"; 2128fc53e26SVincenzo Frascino #address-cells = <2>; 2138fc53e26SVincenzo Frascino #size-cells = <2>; 2148fc53e26SVincenzo Frascino interrupt-parent = <&gic>; 2158fc53e26SVincenzo Frascino ranges; 2168fc53e26SVincenzo Frascino 2178fc53e26SVincenzo Frascino uart0: serial@2a400000 { 2188fc53e26SVincenzo Frascino compatible = "arm,pl011", "arm,primecell"; 2198fc53e26SVincenzo Frascino reg = <0x0 0x2a400000 0x0 0x1000>; 2208fc53e26SVincenzo Frascino interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 2218fc53e26SVincenzo Frascino clocks = <&soc_refclk50mhz>, <&soc_refclk50mhz>; 2228fc53e26SVincenzo Frascino clock-names = "uartclk", "apb_pclk"; 2238fc53e26SVincenzo Frascino 2248fc53e26SVincenzo Frascino status = "disabled"; 2258fc53e26SVincenzo Frascino }; 2268fc53e26SVincenzo Frascino 2278fc53e26SVincenzo Frascino gic: interrupt-controller@30000000 { 2288fc53e26SVincenzo Frascino compatible = "arm,gic-v3"; 2298fc53e26SVincenzo Frascino reg = <0x0 0x30000000 0x0 0x10000>, /* GICD */ 2308fc53e26SVincenzo Frascino <0x0 0x300c0000 0x0 0x80000>; /* GICR */ 2318fc53e26SVincenzo Frascino 2328fc53e26SVincenzo Frascino interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 2338fc53e26SVincenzo Frascino 2348fc53e26SVincenzo Frascino #interrupt-cells = <3>; 2358fc53e26SVincenzo Frascino interrupt-controller; 2368fc53e26SVincenzo Frascino 2378fc53e26SVincenzo Frascino #address-cells = <2>; 2388fc53e26SVincenzo Frascino #size-cells = <2>; 2398fc53e26SVincenzo Frascino ranges; 2408fc53e26SVincenzo Frascino 2418fc53e26SVincenzo Frascino its1: msi-controller@30040000 { 2428fc53e26SVincenzo Frascino compatible = "arm,gic-v3-its"; 2438fc53e26SVincenzo Frascino reg = <0x0 0x30040000 0x0 0x20000>; 2448fc53e26SVincenzo Frascino 2458fc53e26SVincenzo Frascino msi-controller; 2468fc53e26SVincenzo Frascino #msi-cells = <1>; 2478fc53e26SVincenzo Frascino }; 2488fc53e26SVincenzo Frascino 2498fc53e26SVincenzo Frascino its2: msi-controller@30060000 { 2508fc53e26SVincenzo Frascino compatible = "arm,gic-v3-its"; 2518fc53e26SVincenzo Frascino reg = <0x0 0x30060000 0x0 0x20000>; 2528fc53e26SVincenzo Frascino 2538fc53e26SVincenzo Frascino msi-controller; 2548fc53e26SVincenzo Frascino #msi-cells = <1>; 2558fc53e26SVincenzo Frascino }; 2568fc53e26SVincenzo Frascino 2578fc53e26SVincenzo Frascino its_ccix: msi-controller@30080000 { 2588fc53e26SVincenzo Frascino compatible = "arm,gic-v3-its"; 2598fc53e26SVincenzo Frascino reg = <0x0 0x30080000 0x0 0x20000>; 2608fc53e26SVincenzo Frascino 2618fc53e26SVincenzo Frascino msi-controller; 2628fc53e26SVincenzo Frascino #msi-cells = <1>; 2638fc53e26SVincenzo Frascino }; 2648fc53e26SVincenzo Frascino 2658fc53e26SVincenzo Frascino its_pcie: msi-controller@300a0000 { 2668fc53e26SVincenzo Frascino compatible = "arm,gic-v3-its"; 2678fc53e26SVincenzo Frascino reg = <0x0 0x300a0000 0x0 0x20000>; 2688fc53e26SVincenzo Frascino 2698fc53e26SVincenzo Frascino msi-controller; 2708fc53e26SVincenzo Frascino #msi-cells = <1>; 2718fc53e26SVincenzo Frascino }; 2728fc53e26SVincenzo Frascino }; 2738fc53e26SVincenzo Frascino 2748fc53e26SVincenzo Frascino smmu_dp: iommu@2ce00000 { 2758fc53e26SVincenzo Frascino compatible = "arm,smmu-v3"; 2768fc53e26SVincenzo Frascino reg = <0x0 0x2ce00000 0x0 0x40000>; 2778fc53e26SVincenzo Frascino 2788fc53e26SVincenzo Frascino interrupts = <GIC_SPI 76 IRQ_TYPE_EDGE_RISING>, 2798fc53e26SVincenzo Frascino <GIC_SPI 80 IRQ_TYPE_EDGE_RISING>, 2808fc53e26SVincenzo Frascino <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>; 2818fc53e26SVincenzo Frascino interrupt-names = "eventq", "gerror", "cmdq-sync"; 2828fc53e26SVincenzo Frascino #iommu-cells = <1>; 2838fc53e26SVincenzo Frascino }; 2848fc53e26SVincenzo Frascino 2858fc53e26SVincenzo Frascino mailbox: mhu@45000000 { 2868fc53e26SVincenzo Frascino compatible = "arm,mhu-doorbell", "arm,primecell"; 2878fc53e26SVincenzo Frascino reg = <0x0 0x45000000 0x0 0x1000>; 2888fc53e26SVincenzo Frascino 2898fc53e26SVincenzo Frascino interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>, 2908fc53e26SVincenzo Frascino <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>; 2918fc53e26SVincenzo Frascino #mbox-cells = <2>; 2928fc53e26SVincenzo Frascino clocks = <&soc_refclk50mhz>; 2938fc53e26SVincenzo Frascino clock-names = "apb_pclk"; 2948fc53e26SVincenzo Frascino }; 2958fc53e26SVincenzo Frascino 2968fc53e26SVincenzo Frascino sram: sram@6000000 { 2978fc53e26SVincenzo Frascino compatible = "mmio-sram"; 2988fc53e26SVincenzo Frascino reg = <0x0 0x06000000 0x0 0x8000>; 2998fc53e26SVincenzo Frascino ranges = <0 0x0 0x06000000 0x8000>; 3008fc53e26SVincenzo Frascino 3018fc53e26SVincenzo Frascino #address-cells = <1>; 3028fc53e26SVincenzo Frascino #size-cells = <1>; 3038fc53e26SVincenzo Frascino 3048fc53e26SVincenzo Frascino cpu_scp_hpri0: scp-sram@0 { 3058fc53e26SVincenzo Frascino compatible = "arm,scmi-shmem"; 3068fc53e26SVincenzo Frascino reg = <0x0 0x80>; 3078fc53e26SVincenzo Frascino }; 3088fc53e26SVincenzo Frascino 3098fc53e26SVincenzo Frascino cpu_scp_hpri1: scp-sram@80 { 3108fc53e26SVincenzo Frascino compatible = "arm,scmi-shmem"; 3118fc53e26SVincenzo Frascino reg = <0x80 0x80>; 3128fc53e26SVincenzo Frascino }; 3138fc53e26SVincenzo Frascino }; 3148fc53e26SVincenzo Frascino }; 3158fc53e26SVincenzo Frascino 3168fc53e26SVincenzo Frascino timer { 3178fc53e26SVincenzo Frascino compatible = "arm,armv8-timer"; 3188fc53e26SVincenzo Frascino interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 3198fc53e26SVincenzo Frascino <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 3208fc53e26SVincenzo Frascino <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 3218fc53e26SVincenzo Frascino <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 3228fc53e26SVincenzo Frascino }; 3238fc53e26SVincenzo Frascino}; 324