1/* 2 * ARM Ltd. Juno Platform 3 * 4 * Copyright (c) 2013-2014 ARM Ltd. 5 * 6 * This file is licensed under a dual GPLv2 or BSD license. 7 */ 8 9/dts-v1/; 10 11#include <dt-bindings/interrupt-controller/arm-gic.h> 12#include "juno-base.dtsi" 13 14/ { 15 model = "ARM Juno development board (r0)"; 16 compatible = "arm,juno", "arm,vexpress"; 17 interrupt-parent = <&gic>; 18 #address-cells = <2>; 19 #size-cells = <2>; 20 21 aliases { 22 serial0 = &soc_uart0; 23 }; 24 25 chosen { 26 stdout-path = "serial0:115200n8"; 27 }; 28 29 psci { 30 compatible = "arm,psci-0.2"; 31 method = "smc"; 32 }; 33 34 cpus { 35 #address-cells = <2>; 36 #size-cells = <0>; 37 38 cpu-map { 39 cluster0 { 40 core0 { 41 cpu = <&A57_0>; 42 }; 43 core1 { 44 cpu = <&A57_1>; 45 }; 46 }; 47 48 cluster1 { 49 core0 { 50 cpu = <&A53_0>; 51 }; 52 core1 { 53 cpu = <&A53_1>; 54 }; 55 core2 { 56 cpu = <&A53_2>; 57 }; 58 core3 { 59 cpu = <&A53_3>; 60 }; 61 }; 62 }; 63 64 idle-states { 65 entry-method = "arm,psci"; 66 67 CPU_SLEEP_0: cpu-sleep-0 { 68 compatible = "arm,idle-state"; 69 arm,psci-suspend-param = <0x0010000>; 70 local-timer-stop; 71 entry-latency-us = <300>; 72 exit-latency-us = <1200>; 73 min-residency-us = <2000>; 74 }; 75 76 CLUSTER_SLEEP_0: cluster-sleep-0 { 77 compatible = "arm,idle-state"; 78 arm,psci-suspend-param = <0x1010000>; 79 local-timer-stop; 80 entry-latency-us = <400>; 81 exit-latency-us = <1200>; 82 min-residency-us = <2500>; 83 }; 84 }; 85 86 A57_0: cpu@0 { 87 compatible = "arm,cortex-a57","arm,armv8"; 88 reg = <0x0 0x0>; 89 device_type = "cpu"; 90 enable-method = "psci"; 91 i-cache-size = <0xc000>; 92 i-cache-line-size = <64>; 93 i-cache-sets = <256>; 94 d-cache-size = <0x8000>; 95 d-cache-line-size = <64>; 96 d-cache-sets = <256>; 97 next-level-cache = <&A57_L2>; 98 clocks = <&scpi_dvfs 0>; 99 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 100 sched-energy-costs = <&CPU_COST_A57 &CLUSTER_COST_A57>; 101 capacity-dmips-mhz = <1024>; 102 }; 103 104 A57_1: cpu@1 { 105 compatible = "arm,cortex-a57","arm,armv8"; 106 reg = <0x0 0x1>; 107 device_type = "cpu"; 108 enable-method = "psci"; 109 i-cache-size = <0xc000>; 110 i-cache-line-size = <64>; 111 i-cache-sets = <256>; 112 d-cache-size = <0x8000>; 113 d-cache-line-size = <64>; 114 d-cache-sets = <256>; 115 next-level-cache = <&A57_L2>; 116 clocks = <&scpi_dvfs 0>; 117 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 118 sched-energy-costs = <&CPU_COST_A57 &CLUSTER_COST_A57>; 119 capacity-dmips-mhz = <1024>; 120 }; 121 122 A53_0: cpu@100 { 123 compatible = "arm,cortex-a53","arm,armv8"; 124 reg = <0x0 0x100>; 125 device_type = "cpu"; 126 enable-method = "psci"; 127 i-cache-size = <0x8000>; 128 i-cache-line-size = <64>; 129 i-cache-sets = <256>; 130 d-cache-size = <0x8000>; 131 d-cache-line-size = <64>; 132 d-cache-sets = <128>; 133 next-level-cache = <&A53_L2>; 134 clocks = <&scpi_dvfs 1>; 135 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 136 sched-energy-costs = <&CPU_COST_A53 &CLUSTER_COST_A53>; 137 capacity-dmips-mhz = <578>; 138 }; 139 140 A53_1: cpu@101 { 141 compatible = "arm,cortex-a53","arm,armv8"; 142 reg = <0x0 0x101>; 143 device_type = "cpu"; 144 enable-method = "psci"; 145 i-cache-size = <0x8000>; 146 i-cache-line-size = <64>; 147 i-cache-sets = <256>; 148 d-cache-size = <0x8000>; 149 d-cache-line-size = <64>; 150 d-cache-sets = <128>; 151 next-level-cache = <&A53_L2>; 152 clocks = <&scpi_dvfs 1>; 153 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 154 sched-energy-costs = <&CPU_COST_A53 &CLUSTER_COST_A53>; 155 capacity-dmips-mhz = <578>; 156 }; 157 158 A53_2: cpu@102 { 159 compatible = "arm,cortex-a53","arm,armv8"; 160 reg = <0x0 0x102>; 161 device_type = "cpu"; 162 enable-method = "psci"; 163 i-cache-size = <0x8000>; 164 i-cache-line-size = <64>; 165 i-cache-sets = <256>; 166 d-cache-size = <0x8000>; 167 d-cache-line-size = <64>; 168 d-cache-sets = <128>; 169 next-level-cache = <&A53_L2>; 170 clocks = <&scpi_dvfs 1>; 171 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 172 sched-energy-costs = <&CPU_COST_A53 &CLUSTER_COST_A53>; 173 capacity-dmips-mhz = <578>; 174 }; 175 176 A53_3: cpu@103 { 177 compatible = "arm,cortex-a53","arm,armv8"; 178 reg = <0x0 0x103>; 179 device_type = "cpu"; 180 enable-method = "psci"; 181 i-cache-size = <0x8000>; 182 i-cache-line-size = <64>; 183 i-cache-sets = <256>; 184 d-cache-size = <0x8000>; 185 d-cache-line-size = <64>; 186 d-cache-sets = <128>; 187 next-level-cache = <&A53_L2>; 188 clocks = <&scpi_dvfs 1>; 189 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 190 sched-energy-costs = <&CPU_COST_A53 &CLUSTER_COST_A53>; 191 capacity-dmips-mhz = <578>; 192 }; 193 194 A57_L2: l2-cache0 { 195 compatible = "cache"; 196 cache-size = <0x200000>; 197 cache-line-size = <64>; 198 cache-sets = <2048>; 199 }; 200 201 A53_L2: l2-cache1 { 202 compatible = "cache"; 203 cache-size = <0x100000>; 204 cache-line-size = <64>; 205 cache-sets = <1024>; 206 }; 207 /include/ "juno-sched-energy.dtsi" 208 }; 209 210 pmu_a57 { 211 compatible = "arm,cortex-a57-pmu"; 212 interrupts = <GIC_SPI 02 IRQ_TYPE_LEVEL_HIGH>, 213 <GIC_SPI 06 IRQ_TYPE_LEVEL_HIGH>; 214 interrupt-affinity = <&A57_0>, 215 <&A57_1>; 216 }; 217 218 pmu_a53 { 219 compatible = "arm,cortex-a53-pmu"; 220 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 221 <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>, 222 <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>, 223 <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 224 interrupt-affinity = <&A53_0>, 225 <&A53_1>, 226 <&A53_2>, 227 <&A53_3>; 228 }; 229}; 230 231&etm0 { 232 cpu = <&A57_0>; 233}; 234 235&etm1 { 236 cpu = <&A57_1>; 237}; 238 239&etm2 { 240 cpu = <&A53_0>; 241}; 242 243&etm3 { 244 cpu = <&A53_1>; 245}; 246 247&etm4 { 248 cpu = <&A53_2>; 249}; 250 251&etm5 { 252 cpu = <&A53_3>; 253}; 254 255&etf0_out_port { 256 remote-endpoint = <&replicator_in_port0>; 257}; 258 259&replicator_in_port0 { 260 remote-endpoint = <&etf0_out_port>; 261}; 262 263&stm_out_port { 264 remote-endpoint = <&main_funnel_in_port2>; 265}; 266 267&main_funnel { 268 ports { 269 port@3 { 270 reg = <2>; 271 main_funnel_in_port2: endpoint { 272 slave-mode; 273 remote-endpoint = <&stm_out_port>; 274 }; 275 }; 276 }; 277}; 278 279&cpu_debug0 { 280 cpu = <&A57_0>; 281}; 282 283&cpu_debug1 { 284 cpu = <&A57_1>; 285}; 286 287&cpu_debug2 { 288 cpu = <&A53_0>; 289}; 290 291&cpu_debug3 { 292 cpu = <&A53_1>; 293}; 294 295&cpu_debug4 { 296 cpu = <&A53_2>; 297}; 298 299&cpu_debug5 { 300 cpu = <&A53_3>; 301}; 302