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