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