xref: /rk3399_ARM-atf/fdts/morello-fvp.dts (revision eb46520c5cd8f03815ba9fc168467558f63024fe)
1e1cbcf96SManoj Kumar/*
2*4f7330dcSsahil * Copyright (c) 2020-2023, Arm Limited. All rights reserved.
3e1cbcf96SManoj Kumar *
4e1cbcf96SManoj Kumar * SPDX-License-Identifier: BSD-3-Clause
5e1cbcf96SManoj Kumar */
6e1cbcf96SManoj Kumar
7e1cbcf96SManoj Kumar/dts-v1/;
8e1cbcf96SManoj Kumar#include "morello.dtsi"
9e1cbcf96SManoj Kumar
10e1cbcf96SManoj Kumar/ {
1130df8904SAndre Przywara	model = "Arm Morello Fixed Virtual Platform";
12e1cbcf96SManoj Kumar
13e1cbcf96SManoj Kumar	chosen {
14fcb0ea19SNikos Nikoleris		stdout-path = "serial0:115200n8";
15e1cbcf96SManoj Kumar	};
16e1cbcf96SManoj Kumar
17e1cbcf96SManoj Kumar	reserved-memory {
18e1cbcf96SManoj Kumar		#address-cells = <2>;
19e1cbcf96SManoj Kumar		#size-cells = <2>;
20e1cbcf96SManoj Kumar		ranges;
21e1cbcf96SManoj Kumar
22e1cbcf96SManoj Kumar		secure-firmware@ff000000 {
23e1cbcf96SManoj Kumar			reg = <0 0xff000000 0 0x01000000>;
24e1cbcf96SManoj Kumar			no-map;
25e1cbcf96SManoj Kumar		};
26e1cbcf96SManoj Kumar	};
27e1cbcf96SManoj Kumar
28*4f7330dcSsahil	/*
29*4f7330dcSsahil	 * The timings below are just to demonstrate working cpuidle.
30*4f7330dcSsahil	 * These values may be inaccurate.
31*4f7330dcSsahil	 */
32*4f7330dcSsahil	idle-states {
33*4f7330dcSsahil		entry-method = "psci";
34*4f7330dcSsahil
35*4f7330dcSsahil		cluster_sleep: cluster-sleep {
36*4f7330dcSsahil			compatible = "arm,idle-state";
37*4f7330dcSsahil			arm,psci-suspend-param = <0x40000022>;
38*4f7330dcSsahil			local-timer-stop;
39*4f7330dcSsahil			entry-latency-us = <500>;
40*4f7330dcSsahil			exit-latency-us = <1000>;
41*4f7330dcSsahil			min-residency-us = <2500>;
42*4f7330dcSsahil		};
43*4f7330dcSsahil
44*4f7330dcSsahil		cpu_sleep: cpu-sleep {
45*4f7330dcSsahil			compatible = "arm,idle-state";
46*4f7330dcSsahil			arm,psci-suspend-param = <0x40000002>;
47*4f7330dcSsahil			local-timer-stop;
48*4f7330dcSsahil			entry-latency-us = <150>;
49*4f7330dcSsahil			exit-latency-us = <300>;
50*4f7330dcSsahil			min-residency-us = <200>;
51*4f7330dcSsahil		};
52*4f7330dcSsahil	};
53*4f7330dcSsahil
54e1cbcf96SManoj Kumar	cpus {
55e1cbcf96SManoj Kumar		#address-cells = <2>;
56e1cbcf96SManoj Kumar		#size-cells = <0>;
57387a9065SAnurag Koul
58387a9065SAnurag Koul		cpu-map {
59387a9065SAnurag Koul			cluster0 {
60387a9065SAnurag Koul				core0 {
61387a9065SAnurag Koul					cpu = <&CPU0>;
62387a9065SAnurag Koul				};
63387a9065SAnurag Koul				core1 {
64387a9065SAnurag Koul					cpu = <&CPU1>;
65387a9065SAnurag Koul				};
66387a9065SAnurag Koul			};
67387a9065SAnurag Koul			cluster1 {
68387a9065SAnurag Koul				core0 {
69387a9065SAnurag Koul					cpu = <&CPU2>;
70387a9065SAnurag Koul				};
71387a9065SAnurag Koul				core1 {
72387a9065SAnurag Koul					cpu = <&CPU3>;
73387a9065SAnurag Koul				};
74387a9065SAnurag Koul			};
75387a9065SAnurag Koul		};
76387a9065SAnurag Koul		CPU0: cpu0@0 {
77e1cbcf96SManoj Kumar			compatible = "arm,armv8";
78e1cbcf96SManoj Kumar			reg = <0x0 0x0>;
79e1cbcf96SManoj Kumar			device_type = "cpu";
80e1cbcf96SManoj Kumar			enable-method = "psci";
81e1cbcf96SManoj Kumar			clocks = <&scmi_dvfs 0>;
82*4f7330dcSsahil			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
83e1cbcf96SManoj Kumar		};
84387a9065SAnurag Koul		CPU1: cpu1@100 {
85e1cbcf96SManoj Kumar			compatible = "arm,armv8";
86e1cbcf96SManoj Kumar			reg = <0x0 0x100>;
87e1cbcf96SManoj Kumar			device_type = "cpu";
88e1cbcf96SManoj Kumar			enable-method = "psci";
89e1cbcf96SManoj Kumar			clocks = <&scmi_dvfs 0>;
90*4f7330dcSsahil			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
91e1cbcf96SManoj Kumar		};
92387a9065SAnurag Koul		CPU2: cpu2@10000 {
93e1cbcf96SManoj Kumar			compatible = "arm,armv8";
94e1cbcf96SManoj Kumar			reg = <0x0 0x10000>;
95e1cbcf96SManoj Kumar			device_type = "cpu";
96e1cbcf96SManoj Kumar			enable-method = "psci";
97387a9065SAnurag Koul			clocks = <&scmi_dvfs 1>;
98*4f7330dcSsahil			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
99e1cbcf96SManoj Kumar		};
100387a9065SAnurag Koul		CPU3: cpu3@10100 {
101e1cbcf96SManoj Kumar			compatible = "arm,armv8";
102e1cbcf96SManoj Kumar			reg = <0x0 0x10100>;
103e1cbcf96SManoj Kumar			device_type = "cpu";
104e1cbcf96SManoj Kumar			enable-method = "psci";
105387a9065SAnurag Koul			clocks = <&scmi_dvfs 1>;
106*4f7330dcSsahil			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
107e1cbcf96SManoj Kumar		};
108e1cbcf96SManoj Kumar	};
109e1cbcf96SManoj Kumar
110e1cbcf96SManoj Kumar	/* The first bank of memory, memory map is actually provided by UEFI. */
111e1cbcf96SManoj Kumar	memory@80000000 {
112e1cbcf96SManoj Kumar		device_type = "memory";
113e1cbcf96SManoj Kumar		/* [0x80000000-0xffffffff] */
114e1cbcf96SManoj Kumar		reg = <0x00000000 0x80000000 0x0 0x80000000>;
115e1cbcf96SManoj Kumar	};
116e1cbcf96SManoj Kumar
117e1cbcf96SManoj Kumar	memory@8080000000 {
118e1cbcf96SManoj Kumar		device_type = "memory";
119e1cbcf96SManoj Kumar		/* [0x8080000000-0x83ffffffff] */
120e1cbcf96SManoj Kumar		reg = <0x00000080 0x80000000 0x1 0x80000000>;
121e1cbcf96SManoj Kumar	};
122e1cbcf96SManoj Kumar
123e1cbcf96SManoj Kumar	virtio_block@1c170000 {
124e1cbcf96SManoj Kumar		compatible = "virtio,mmio";
125e1cbcf96SManoj Kumar		reg = <0x0 0x1c170000 0x0 0x200>;
126e1cbcf96SManoj Kumar		interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
127e1cbcf96SManoj Kumar	};
128e1cbcf96SManoj Kumar
129de7091a1SJessica Clarke	virtio_net@1c180000 {
130de7091a1SJessica Clarke		compatible = "virtio,mmio";
131de7091a1SJessica Clarke		reg = <0x0 0x1c180000 0x0 0x200>;
132de7091a1SJessica Clarke		interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
133de7091a1SJessica Clarke	};
134de7091a1SJessica Clarke
135390181a4SJagadeesh Ujja	virtio_rng@1c190000 {
1365c336e06SJessica Clarke		compatible = "virtio,mmio";
137390181a4SJagadeesh Ujja		reg = <0x0 0x1c190000 0x0 0x200>;
138390181a4SJagadeesh Ujja		interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
139390181a4SJagadeesh Ujja	};
140390181a4SJagadeesh Ujja
1414bf98b27Ssah01	virtio_p9@1c1a0000 {
1424bf98b27Ssah01		compatible = "virtio,mmio";
1434bf98b27Ssah01		reg = <0x0 0x1c1a0000 0x0 0x200>;
1444bf98b27Ssah01		interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
1454bf98b27Ssah01	};
1464bf98b27Ssah01
147e1cbcf96SManoj Kumar	ethernet@1d100000 {
148e1cbcf96SManoj Kumar		compatible = "smsc,lan91c111";
149e1cbcf96SManoj Kumar		reg = <0x0 0x1d100000 0x0 0x10000>;
150e1cbcf96SManoj Kumar		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
151e1cbcf96SManoj Kumar	};
152e1cbcf96SManoj Kumar
153e1cbcf96SManoj Kumar	kmi@1c150000 {
154e1cbcf96SManoj Kumar		compatible = "arm,pl050", "arm,primecell";
155e1cbcf96SManoj Kumar		reg = <0x0 0x1c150000 0x0 0x1000>;
156e1cbcf96SManoj Kumar		interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
157e1cbcf96SManoj Kumar		clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
158e1cbcf96SManoj Kumar		clock-names = "KMIREFCLK", "apb_pclk";
159e1cbcf96SManoj Kumar	};
160e1cbcf96SManoj Kumar
161e1cbcf96SManoj Kumar	kmi@1c160000 {
162e1cbcf96SManoj Kumar		compatible = "arm,pl050", "arm,primecell";
163e1cbcf96SManoj Kumar		reg = <0x0 0x1c160000 0x0 0x1000>;
164e1cbcf96SManoj Kumar		interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
165e1cbcf96SManoj Kumar		clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
166e1cbcf96SManoj Kumar		clock-names = "KMIREFCLK", "apb_pclk";
167e1cbcf96SManoj Kumar	};
168e1cbcf96SManoj Kumar
169e1cbcf96SManoj Kumar	firmware {
170e1cbcf96SManoj Kumar		scmi {
171e1cbcf96SManoj Kumar			compatible = "arm,scmi";
172e1cbcf96SManoj Kumar			mbox-names = "tx", "rx";
1738aeb1fcfSAndre Przywara			mboxes = <&mailbox 1 0>, <&mailbox 1 1>;
1748aeb1fcfSAndre Przywara			shmem = <&cpu_scp_hpri0>, <&cpu_scp_hpri1>;
175e1cbcf96SManoj Kumar			#address-cells = <1>;
176e1cbcf96SManoj Kumar			#size-cells = <0>;
177e1cbcf96SManoj Kumar
178e1cbcf96SManoj Kumar			scmi_dvfs: protocol@13 {
179e1cbcf96SManoj Kumar				reg = <0x13>;
180e1cbcf96SManoj Kumar				#clock-cells = <1>;
181e1cbcf96SManoj Kumar			};
182e1cbcf96SManoj Kumar		};
183e1cbcf96SManoj Kumar	};
184e1cbcf96SManoj Kumar
185e1cbcf96SManoj Kumar	bp_clock24mhz: clock24mhz {
186e1cbcf96SManoj Kumar		compatible = "fixed-clock";
187e1cbcf96SManoj Kumar		#clock-cells = <0>;
188e1cbcf96SManoj Kumar		clock-frequency = <24000000>;
189e1cbcf96SManoj Kumar		clock-output-names = "bp:clock24mhz";
190e1cbcf96SManoj Kumar	};
191e1cbcf96SManoj Kumar};
192e1cbcf96SManoj Kumar
193e1cbcf96SManoj Kumar&gic {
194e1cbcf96SManoj Kumar	reg = <0x0 0x30000000 0 0x10000>,	/* GICD */
195e1cbcf96SManoj Kumar	      <0x0 0x300c0000 0 0x80000>;	/* GICR */
196e1cbcf96SManoj Kumar	interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
197e1cbcf96SManoj Kumar};
198