xref: /rk3399_ARM-atf/fdts/fvp-base-psci-common.dtsi (revision a9bb1f1731554d738cdee183a2fec911d94010d1)
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 *
10bef44f60SAlexeiFedorov * Copyright (c) 2017-2025, ARM Limited and Contributors. All rights reserved.
11589aaba4SAndre Przywara */
12589aaba4SAndre Przywara
132716bd33SAndre Przywara#include "rtsm_ve-motherboard.dtsi"
142716bd33SAndre Przywara
15589aaba4SAndre Przywara/ {
16589aaba4SAndre Przywara	model = "FVP Base";
17589aaba4SAndre Przywara	compatible = "arm,fvp-base", "arm,vexpress";
18589aaba4SAndre Przywara	interrupt-parent = <&gic>;
19589aaba4SAndre Przywara	#address-cells = <2>;
20589aaba4SAndre Przywara	#size-cells = <2>;
21589aaba4SAndre Przywara
228c30a0c7SDebbie Martin	chosen {
238c30a0c7SDebbie Martin		stdout-path = "serial0:115200n8";
248c30a0c7SDebbie Martin		bootargs = "console=ttyAMA0 earlycon=pl011,0x1c090000 root=/dev/vda ip=on";
258c30a0c7SDebbie Martin	};
26589aaba4SAndre Przywara
27589aaba4SAndre Przywara	aliases {
28589aaba4SAndre Przywara		serial0 = &v2m_serial0;
29589aaba4SAndre Przywara		serial1 = &v2m_serial1;
30589aaba4SAndre Przywara		serial2 = &v2m_serial2;
31589aaba4SAndre Przywara		serial3 = &v2m_serial3;
32589aaba4SAndre Przywara	};
33589aaba4SAndre Przywara
34589aaba4SAndre Przywara	psci {
35589aaba4SAndre Przywara		compatible = "arm,psci-1.0", "arm,psci-0.2";
36589aaba4SAndre Przywara		method = "smc";
37589aaba4SAndre Przywara		max-pwr-lvl = <2>;
38589aaba4SAndre Przywara	};
39589aaba4SAndre Przywara
40589aaba4SAndre Przywara	cpus {
41589aaba4SAndre Przywara		#address-cells = <2>;
42589aaba4SAndre Przywara		#size-cells = <0>;
43589aaba4SAndre Przywara
44589aaba4SAndre Przywara		CPU_MAP
45589aaba4SAndre Przywara
46589aaba4SAndre Przywara		idle-states {
470e3d8807SAndre Przywara			entry-method = "psci";
48589aaba4SAndre Przywara
49589aaba4SAndre Przywara			CPU_SLEEP_0: cpu-sleep-0 {
50589aaba4SAndre Przywara				compatible = "arm,idle-state";
51589aaba4SAndre Przywara				local-timer-stop;
52589aaba4SAndre Przywara				arm,psci-suspend-param = <0x0010000>;
53589aaba4SAndre Przywara				entry-latency-us = <40>;
54589aaba4SAndre Przywara				exit-latency-us = <100>;
55589aaba4SAndre Przywara				min-residency-us = <150>;
56589aaba4SAndre Przywara			};
57589aaba4SAndre Przywara
58589aaba4SAndre Przywara			CLUSTER_SLEEP_0: cluster-sleep-0 {
59589aaba4SAndre Przywara				compatible = "arm,idle-state";
60589aaba4SAndre Przywara				local-timer-stop;
61589aaba4SAndre Przywara				arm,psci-suspend-param = <0x1010000>;
62589aaba4SAndre Przywara				entry-latency-us = <500>;
63589aaba4SAndre Przywara				exit-latency-us = <1000>;
64589aaba4SAndre Przywara				min-residency-us = <2500>;
65589aaba4SAndre Przywara			};
66589aaba4SAndre Przywara		};
67589aaba4SAndre Przywara
68589aaba4SAndre Przywara		CPUS
69589aaba4SAndre Przywara
70589aaba4SAndre Przywara		L2_0: l2-cache0 {
71589aaba4SAndre Przywara			compatible = "cache";
72589aaba4SAndre Przywara		};
73589aaba4SAndre Przywara	};
74589aaba4SAndre Przywara
75589aaba4SAndre Przywara	memory@80000000 {
76589aaba4SAndre Przywara		device_type = "memory";
77589aaba4SAndre Przywara#if (ENABLE_RME == 1)
78589aaba4SAndre Przywara		reg = <0x00000000 0x80000000 0 0x7C000000>,
79589aaba4SAndre Przywara		      <0x00000008 0x80000000 0 0x80000000>;
80589aaba4SAndre Przywara#else
81589aaba4SAndre Przywara		reg = <0x00000000 0x80000000 0 0x7F000000>,
82589aaba4SAndre Przywara		      <0x00000008 0x80000000 0 0x80000000>;
83589aaba4SAndre Przywara#endif
84589aaba4SAndre Przywara	};
85589aaba4SAndre Przywara
862716bd33SAndre Przywara	reserved-memory {
872716bd33SAndre Przywara		#address-cells = <2>;
882716bd33SAndre Przywara		#size-cells = <2>;
892716bd33SAndre Przywara		ranges;
902716bd33SAndre Przywara
912716bd33SAndre Przywara		/* Chipselect 2,00000000 is physically at 0x18000000 */
922716bd33SAndre Przywara		vram: vram@18000000 {
932716bd33SAndre Przywara			/* 8 MB of designated video RAM */
942716bd33SAndre Przywara			compatible = "shared-dma-pool";
952716bd33SAndre Przywara			reg = <0x00000000 0x18000000 0 0x00800000>;
962716bd33SAndre Przywara			no-map;
972716bd33SAndre Przywara		};
982716bd33SAndre Przywara	};
992716bd33SAndre Przywara
100589aaba4SAndre Przywara	timer {
101589aaba4SAndre Przywara		compatible = "arm,armv8-timer";
102589aaba4SAndre Przywara		clock-frequency = <100000000>;
103589aaba4SAndre Przywara	};
104589aaba4SAndre Przywara
105589aaba4SAndre Przywara	timer@2a810000 {
106589aaba4SAndre Przywara			compatible = "arm,armv7-timer-mem";
107589aaba4SAndre Przywara			reg = <0x0 0x2a810000 0x0 0x10000>;
108589aaba4SAndre Przywara			clock-frequency = <100000000>;
1093fd12bb8SAndre Przywara			#address-cells = <1>;
1103fd12bb8SAndre Przywara			#size-cells = <1>;
1113fd12bb8SAndre Przywara			ranges = <0x0 0x0 0x2a810000 0x100000>;
1123fd12bb8SAndre Przywara
113589aaba4SAndre Przywara			frame@2a830000 {
114589aaba4SAndre Przywara				frame-number = <1>;
115*270d5c5cSBoyan Karatotev				interrupt-parent = <&gic>;
1163fd12bb8SAndre Przywara				reg = <0x20000 0x10000>;
117589aaba4SAndre Przywara			};
118589aaba4SAndre Przywara	};
119589aaba4SAndre Przywara
120589aaba4SAndre Przywara	pmu {
121589aaba4SAndre Przywara		compatible = "arm,armv8-pmuv3";
122589aaba4SAndre Przywara	};
123589aaba4SAndre Przywara
1242716bd33SAndre Przywara	panel {
1252716bd33SAndre Przywara		compatible = "arm,rtsm-display";
1262716bd33SAndre Przywara		port {
1272716bd33SAndre Przywara			panel_in: endpoint {
1282716bd33SAndre Przywara				remote-endpoint = <&clcd_pads>;
1292716bd33SAndre Przywara			};
1302716bd33SAndre Przywara		};
1312716bd33SAndre Przywara	};
132589aaba4SAndre Przywara
1332716bd33SAndre Przywara	bus@8000000 {
134589aaba4SAndre Przywara		#interrupt-cells = <1>;
135589aaba4SAndre Przywara		interrupt-map-mask = <0 0 63>;
136589aaba4SAndre Przywara	};
137bef44f60SAlexeiFedorov
138bef44f60SAlexeiFedorov#if (ENABLE_RME == 1)
139bef44f60SAlexeiFedorov	pci: pci@40000000 {
140bef44f60SAlexeiFedorov		#address-cells = <3>;
141bef44f60SAlexeiFedorov		#size-cells = <2>;
142bef44f60SAlexeiFedorov		#interrupt-cells = <1>;
143bef44f60SAlexeiFedorov		compatible = "pci-host-ecam-generic";
144bef44f60SAlexeiFedorov		device_type = "pci";
145bef44f60SAlexeiFedorov		reg = <0x0 0x40000000 0x0 0x10000000>;
146bef44f60SAlexeiFedorov		ranges = <0x2000000 0x0 0x50000000 0x0 0x50000000 0x0 0x10000000>,
1472e55a3d7SAlexeiFedorov			/* First 3GB of 256GB PCIe memory region 2 */
1482e55a3d7SAlexeiFedorov			 <0x2000000 0x40 0x00000000 0x40 0x00000000 0x0 0xc0000000>;
149bef44f60SAlexeiFedorov		interrupt-map-mask = <0x0 0x0 0x0 0x7>;
150bef44f60SAlexeiFedorov		iommu-map = <0x0 &smmu 0x0 0x10000>;
151bef44f60SAlexeiFedorov		dma-coherent;
152bef44f60SAlexeiFedorov	};
153bef44f60SAlexeiFedorov
154bef44f60SAlexeiFedorov	smmu: iommu@2b400000 {
155bef44f60SAlexeiFedorov		compatible = "arm,smmu-v3";
156bef44f60SAlexeiFedorov		reg = <0x0 0x2b400000 0x0 0x100000>;
157bef44f60SAlexeiFedorov		interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
158bef44f60SAlexeiFedorov		dma-coherent;
159bef44f60SAlexeiFedorov		#iommu-cells = <1>;
160bef44f60SAlexeiFedorov	};
161bef44f60SAlexeiFedorov#endif /* ENABLE_RME */
162589aaba4SAndre Przywara};
163