xref: /rk3399_ARM-atf/fdts/fvp-base-psci-common.dtsi (revision d7c455d8cca85de4a520da33db6523c9c8a7ee38)
12716bd33SAndre Przywara// SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause
2589aaba4SAndre Przywara/*
32716bd33SAndre Przywara * ARM Ltd. Fast Models
4589aaba4SAndre Przywara *
52716bd33SAndre Przywara * Architecture Envelope Model (AEM) ARMv8-A
62716bd33SAndre Przywara * ARMAEMv8AMPCT
72716bd33SAndre Przywara *
82716bd33SAndre Przywara * RTSM_VE_AEMv8A.lisa
92716bd33SAndre Przywara *
102716bd33SAndre Przywara * Copyright (c) 2017-2021, ARM Limited and Contributors. All rights reserved.
11589aaba4SAndre Przywara */
12589aaba4SAndre Przywara
13589aaba4SAndre Przywara#include <dt-bindings/interrupt-controller/arm-gic.h>
14589aaba4SAndre Przywara#include <services/sdei_flags.h>
15589aaba4SAndre Przywara
16589aaba4SAndre Przywara#define LEVEL	0
17589aaba4SAndre Przywara#define EDGE	2
18589aaba4SAndre Przywara#define SDEI_NORMAL	0x70
19589aaba4SAndre Przywara#define HIGHEST_SEC	0
20589aaba4SAndre Przywara
212716bd33SAndre Przywara#include "rtsm_ve-motherboard.dtsi"
222716bd33SAndre Przywara
23589aaba4SAndre Przywara/ {
24589aaba4SAndre Przywara	model = "FVP Base";
25589aaba4SAndre Przywara	compatible = "arm,fvp-base", "arm,vexpress";
26589aaba4SAndre Przywara	interrupt-parent = <&gic>;
27589aaba4SAndre Przywara	#address-cells = <2>;
28589aaba4SAndre Przywara	#size-cells = <2>;
29589aaba4SAndre Przywara
30589aaba4SAndre Przywara#if (ENABLE_RME == 1)
31346cfe2bSAlexeiFedorov	chosen { bootargs = "console=ttyAMA0 earlycon=pl011,0x1c090000 root=/dev/vda ip=on";};
32589aaba4SAndre Przywara#else
33589aaba4SAndre Przywara	chosen {};
34589aaba4SAndre Przywara#endif
35589aaba4SAndre Przywara
36589aaba4SAndre Przywara	aliases {
37589aaba4SAndre Przywara		serial0 = &v2m_serial0;
38589aaba4SAndre Przywara		serial1 = &v2m_serial1;
39589aaba4SAndre Przywara		serial2 = &v2m_serial2;
40589aaba4SAndre Przywara		serial3 = &v2m_serial3;
41589aaba4SAndre Przywara	};
42589aaba4SAndre Przywara
43589aaba4SAndre Przywara	psci {
44589aaba4SAndre Przywara		compatible = "arm,psci-1.0", "arm,psci-0.2";
45589aaba4SAndre Przywara		method = "smc";
46589aaba4SAndre Przywara		max-pwr-lvl = <2>;
47589aaba4SAndre Przywara	};
48589aaba4SAndre Przywara
49589aaba4SAndre Przywara#if SDEI_IN_FCONF || SEC_INT_DESC_IN_FCONF
50589aaba4SAndre Przywara	firmware {
51589aaba4SAndre Przywara#if SDEI_IN_FCONF
52589aaba4SAndre Przywara		sdei {
53589aaba4SAndre Przywara			compatible = "arm,sdei-1.0";
54589aaba4SAndre Przywara			method = "smc";
55589aaba4SAndre Przywara			private_event_count = <3>;
56589aaba4SAndre Przywara			shared_event_count = <3>;
57589aaba4SAndre Przywara			/*
58589aaba4SAndre Przywara			 * Each event descriptor has typically 3 fields:
59589aaba4SAndre Przywara			 * 1. Event number
60589aaba4SAndre Przywara			 * 2. Interrupt number the event is bound to or
61589aaba4SAndre Przywara			 *    if event is dynamic, specified as SDEI_DYN_IRQ
62589aaba4SAndre Przywara			 * 3. Bit map of event flags
63589aaba4SAndre Przywara			 */
64589aaba4SAndre Przywara			private_events =	<1000 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>,
65589aaba4SAndre Przywara						<1001 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>,
66589aaba4SAndre Przywara						<1002 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>;
67589aaba4SAndre Przywara			shared_events =		<2000 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>,
68589aaba4SAndre Przywara						<2001 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>,
69589aaba4SAndre Przywara						<2002 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>;
70589aaba4SAndre Przywara		};
71589aaba4SAndre Przywara#endif /* SDEI_IN_FCONF */
72589aaba4SAndre Przywara
73589aaba4SAndre Przywara#if SEC_INT_DESC_IN_FCONF
74589aaba4SAndre Przywara		sec_interrupts {
75589aaba4SAndre Przywara			compatible = "arm,secure_interrupt_desc";
76589aaba4SAndre Przywara			/* Number of G0 and G1 secure interrupts defined by the platform */
77589aaba4SAndre Przywara			g0_intr_cnt = <2>;
78589aaba4SAndre Przywara			g1s_intr_cnt = <9>;
79589aaba4SAndre Przywara			/*
80589aaba4SAndre Przywara			 * Define a list of Group 1 Secure and Group 0 interrupts as per GICv3
81589aaba4SAndre Przywara			 * terminology. Each interrupt property descriptor has 3 fields:
82589aaba4SAndre Przywara			 * 1. Interrupt number
83589aaba4SAndre Przywara			 * 2. Interrupt priority
84589aaba4SAndre Przywara			 * 3. Type of interrupt (Edge or Level configured)
85589aaba4SAndre Przywara			 */
86589aaba4SAndre Przywara			g0_intr_desc =	< 8 SDEI_NORMAL EDGE>,
87589aaba4SAndre Przywara					<14 HIGHEST_SEC EDGE>;
88589aaba4SAndre Przywara
89589aaba4SAndre Przywara			g1s_intr_desc =	< 9 HIGHEST_SEC EDGE>,
90589aaba4SAndre Przywara					<10 HIGHEST_SEC EDGE>,
91589aaba4SAndre Przywara					<11 HIGHEST_SEC EDGE>,
92589aaba4SAndre Przywara					<12 HIGHEST_SEC EDGE>,
93589aaba4SAndre Przywara					<13 HIGHEST_SEC EDGE>,
94589aaba4SAndre Przywara					<15 HIGHEST_SEC EDGE>,
95589aaba4SAndre Przywara					<29 HIGHEST_SEC LEVEL>,
96589aaba4SAndre Przywara					<56 HIGHEST_SEC LEVEL>,
97589aaba4SAndre Przywara					<57 HIGHEST_SEC LEVEL>;
98589aaba4SAndre Przywara		};
99589aaba4SAndre Przywara#endif /* SEC_INT_DESC_IN_FCONF */
100589aaba4SAndre Przywara	};
101589aaba4SAndre Przywara#endif /* SDEI_IN_FCONF || SEC_INT_DESC_IN_FCONF */
102589aaba4SAndre Przywara
103589aaba4SAndre Przywara	cpus {
104589aaba4SAndre Przywara		#address-cells = <2>;
105589aaba4SAndre Przywara		#size-cells = <0>;
106589aaba4SAndre Przywara
107589aaba4SAndre Przywara		CPU_MAP
108589aaba4SAndre Przywara
109589aaba4SAndre Przywara		idle-states {
1100e3d8807SAndre Przywara			entry-method = "psci";
111589aaba4SAndre Przywara
112589aaba4SAndre Przywara			CPU_SLEEP_0: cpu-sleep-0 {
113589aaba4SAndre Przywara				compatible = "arm,idle-state";
114589aaba4SAndre Przywara				local-timer-stop;
115589aaba4SAndre Przywara				arm,psci-suspend-param = <0x0010000>;
116589aaba4SAndre Przywara				entry-latency-us = <40>;
117589aaba4SAndre Przywara				exit-latency-us = <100>;
118589aaba4SAndre Przywara				min-residency-us = <150>;
119589aaba4SAndre Przywara			};
120589aaba4SAndre Przywara
121589aaba4SAndre Przywara			CLUSTER_SLEEP_0: cluster-sleep-0 {
122589aaba4SAndre Przywara				compatible = "arm,idle-state";
123589aaba4SAndre Przywara				local-timer-stop;
124589aaba4SAndre Przywara				arm,psci-suspend-param = <0x1010000>;
125589aaba4SAndre Przywara				entry-latency-us = <500>;
126589aaba4SAndre Przywara				exit-latency-us = <1000>;
127589aaba4SAndre Przywara				min-residency-us = <2500>;
128589aaba4SAndre Przywara			};
129589aaba4SAndre Przywara		};
130589aaba4SAndre Przywara
131589aaba4SAndre Przywara		CPUS
132589aaba4SAndre Przywara
133589aaba4SAndre Przywara		L2_0: l2-cache0 {
134589aaba4SAndre Przywara			compatible = "cache";
135589aaba4SAndre Przywara		};
136589aaba4SAndre Przywara	};
137589aaba4SAndre Przywara
138589aaba4SAndre Przywara	memory@80000000 {
139589aaba4SAndre Przywara		device_type = "memory";
140589aaba4SAndre Przywara#if (ENABLE_RME == 1)
141589aaba4SAndre Przywara		reg = <0x00000000 0x80000000 0 0x7C000000>,
142589aaba4SAndre Przywara		      <0x00000008 0x80000000 0 0x80000000>;
143589aaba4SAndre Przywara#else
144589aaba4SAndre Przywara		reg = <0x00000000 0x80000000 0 0x7F000000>,
145589aaba4SAndre Przywara		      <0x00000008 0x80000000 0 0x80000000>;
146589aaba4SAndre Przywara#endif
147589aaba4SAndre Przywara	};
148589aaba4SAndre Przywara
1492716bd33SAndre Przywara	reserved-memory {
1502716bd33SAndre Przywara		#address-cells = <2>;
1512716bd33SAndre Przywara		#size-cells = <2>;
1522716bd33SAndre Przywara		ranges;
1532716bd33SAndre Przywara
1542716bd33SAndre Przywara		/* Chipselect 2,00000000 is physically at 0x18000000 */
1552716bd33SAndre Przywara		vram: vram@18000000 {
1562716bd33SAndre Przywara			/* 8 MB of designated video RAM */
1572716bd33SAndre Przywara			compatible = "shared-dma-pool";
1582716bd33SAndre Przywara			reg = <0x00000000 0x18000000 0 0x00800000>;
1592716bd33SAndre Przywara			no-map;
1602716bd33SAndre Przywara		};
1612716bd33SAndre Przywara	};
1622716bd33SAndre Przywara
163589aaba4SAndre Przywara	timer {
164589aaba4SAndre Przywara		compatible = "arm,armv8-timer";
1652716bd33SAndre Przywara		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1662716bd33SAndre Przywara			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1672716bd33SAndre Przywara			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1682716bd33SAndre Przywara			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
169589aaba4SAndre Przywara		clock-frequency = <100000000>;
170589aaba4SAndre Przywara	};
171589aaba4SAndre Przywara
172589aaba4SAndre Przywara	timer@2a810000 {
173589aaba4SAndre Przywara			compatible = "arm,armv7-timer-mem";
174589aaba4SAndre Przywara			reg = <0x0 0x2a810000 0x0 0x10000>;
175589aaba4SAndre Przywara			clock-frequency = <100000000>;
1763fd12bb8SAndre Przywara			#address-cells = <1>;
1773fd12bb8SAndre Przywara			#size-cells = <1>;
1783fd12bb8SAndre Przywara			ranges = <0x0 0x0 0x2a810000 0x100000>;
1793fd12bb8SAndre Przywara
180589aaba4SAndre Przywara			frame@2a830000 {
181589aaba4SAndre Przywara				frame-number = <1>;
1823fd12bb8SAndre Przywara				interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
1833fd12bb8SAndre Przywara				reg = <0x20000 0x10000>;
184589aaba4SAndre Przywara			};
185589aaba4SAndre Przywara	};
186589aaba4SAndre Przywara
187589aaba4SAndre Przywara	pmu {
188589aaba4SAndre Przywara		compatible = "arm,armv8-pmuv3";
189*d7c455d8SAlexeiFedorov		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
190589aaba4SAndre Przywara	};
191589aaba4SAndre Przywara
1922716bd33SAndre Przywara	panel {
1932716bd33SAndre Przywara		compatible = "arm,rtsm-display";
1942716bd33SAndre Przywara		port {
1952716bd33SAndre Przywara			panel_in: endpoint {
1962716bd33SAndre Przywara				remote-endpoint = <&clcd_pads>;
1972716bd33SAndre Przywara			};
1982716bd33SAndre Przywara		};
1992716bd33SAndre Przywara	};
200589aaba4SAndre Przywara
2012716bd33SAndre Przywara	bus@8000000 {
202589aaba4SAndre Przywara		#interrupt-cells = <1>;
203589aaba4SAndre Przywara		interrupt-map-mask = <0 0 63>;
204589aaba4SAndre Przywara		interrupt-map = <0 0  0 &gic 0 GIC_SPI  0 IRQ_TYPE_LEVEL_HIGH>,
205589aaba4SAndre Przywara				<0 0  1 &gic 0 GIC_SPI  1 IRQ_TYPE_LEVEL_HIGH>,
206589aaba4SAndre Przywara				<0 0  2 &gic 0 GIC_SPI  2 IRQ_TYPE_LEVEL_HIGH>,
207589aaba4SAndre Przywara				<0 0  3 &gic 0 GIC_SPI  3 IRQ_TYPE_LEVEL_HIGH>,
208589aaba4SAndre Przywara				<0 0  4 &gic 0 GIC_SPI  4 IRQ_TYPE_LEVEL_HIGH>,
209589aaba4SAndre Przywara				<0 0  5 &gic 0 GIC_SPI  5 IRQ_TYPE_LEVEL_HIGH>,
210589aaba4SAndre Przywara				<0 0  6 &gic 0 GIC_SPI  6 IRQ_TYPE_LEVEL_HIGH>,
211589aaba4SAndre Przywara				<0 0  7 &gic 0 GIC_SPI  7 IRQ_TYPE_LEVEL_HIGH>,
212589aaba4SAndre Przywara				<0 0  8 &gic 0 GIC_SPI  8 IRQ_TYPE_LEVEL_HIGH>,
213589aaba4SAndre Przywara				<0 0  9 &gic 0 GIC_SPI  9 IRQ_TYPE_LEVEL_HIGH>,
214589aaba4SAndre Przywara				<0 0 10 &gic 0 GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
215589aaba4SAndre Przywara				<0 0 11 &gic 0 GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
216589aaba4SAndre Przywara				<0 0 12 &gic 0 GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
217589aaba4SAndre Przywara				<0 0 13 &gic 0 GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
218589aaba4SAndre Przywara				<0 0 14 &gic 0 GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
219589aaba4SAndre Przywara				<0 0 15 &gic 0 GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
220589aaba4SAndre Przywara				<0 0 16 &gic 0 GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
221589aaba4SAndre Przywara				<0 0 17 &gic 0 GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
222589aaba4SAndre Przywara				<0 0 18 &gic 0 GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
223589aaba4SAndre Przywara				<0 0 19 &gic 0 GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
224589aaba4SAndre Przywara				<0 0 20 &gic 0 GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
225589aaba4SAndre Przywara				<0 0 21 &gic 0 GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
226589aaba4SAndre Przywara				<0 0 22 &gic 0 GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
227589aaba4SAndre Przywara				<0 0 23 &gic 0 GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
228589aaba4SAndre Przywara				<0 0 24 &gic 0 GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
229589aaba4SAndre Przywara				<0 0 25 &gic 0 GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
230589aaba4SAndre Przywara				<0 0 26 &gic 0 GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
231589aaba4SAndre Przywara				<0 0 27 &gic 0 GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
232589aaba4SAndre Przywara				<0 0 28 &gic 0 GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
233589aaba4SAndre Przywara				<0 0 29 &gic 0 GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
234589aaba4SAndre Przywara				<0 0 30 &gic 0 GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
235589aaba4SAndre Przywara				<0 0 31 &gic 0 GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
236589aaba4SAndre Przywara				<0 0 32 &gic 0 GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
237589aaba4SAndre Przywara				<0 0 33 &gic 0 GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
238589aaba4SAndre Przywara				<0 0 34 &gic 0 GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
239589aaba4SAndre Przywara				<0 0 35 &gic 0 GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
240589aaba4SAndre Przywara				<0 0 36 &gic 0 GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
241589aaba4SAndre Przywara				<0 0 37 &gic 0 GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
242589aaba4SAndre Przywara				<0 0 38 &gic 0 GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
243589aaba4SAndre Przywara				<0 0 39 &gic 0 GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
244589aaba4SAndre Przywara				<0 0 40 &gic 0 GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
245589aaba4SAndre Przywara				<0 0 41 &gic 0 GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
246589aaba4SAndre Przywara				<0 0 42 &gic 0 GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
247589aaba4SAndre Przywara	};
248589aaba4SAndre Przywara};
249