blob: 288b40f023caf7f4679e8d8443ef10bf5ac15c55 [file] [log] [blame]
Leo Yanb4d71342024-04-14 08:27:39 +01001/*
2 * Copyright (c) 2020-2024, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6/dts-v1/;
7
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9#include <dt-bindings/interrupt-controller/irq.h>
10#include <platform_def.h>
11
Leo Yan4d4a1972024-04-24 09:53:21 +010012#if TARGET_FLAVOUR_FVP
13#define LIT_CAPACITY 406
14#define MID_CAPACITY 912
15#else /* TARGET_FLAVOUR_FPGA */
16#define LIT_CAPACITY 280
17#define MID_CAPACITY 775
18/* this is an area optimized configuration of the big core */
19#define BIG2_CAPACITY 930
20#endif /* TARGET_FLAVOUR_FPGA */
21#define BIG_CAPACITY 1024
22
23#define INT_MBOX_RX 317
24#define MHU_TX_ADDR 45000000 /* hex */
25#define MHU_RX_ADDR 45010000 /* hex */
26#define MPAM_ADDR 0x1 0x00010000 /* 0x1_0001_0000 */
27#define UARTCLK_FREQ 5000000
28
29#define DPU_ADDR 2cc00000
30#define DPU_IRQ 69
31
Leo Yanb4d71342024-04-14 08:27:39 +010032#include "tc-common.dtsi"
33#if TARGET_FLAVOUR_FVP
34#include "tc-fvp.dtsi"
Leo Yan815f5502024-04-24 09:57:28 +010035#else
36#include "tc-fpga.dtsi"
Leo Yanb4d71342024-04-14 08:27:39 +010037#endif /* TARGET_FLAVOUR_FVP */
38#include "tc-base.dtsi"
Leo Yan4d4a1972024-04-24 09:53:21 +010039
40/ {
Leo Yan6705ff02024-04-14 22:09:34 +010041 cpus {
42#if TARGET_FLAVOUR_FPGA
43 cpu-map {
44 cluster0 {
45 core8 {
46 cpu = <&CPU8>;
47 };
48 core9 {
49 cpu = <&CPU9>;
50 };
51 core10 {
52 cpu = <&CPU10>;
53 };
54 core11 {
55 cpu = <&CPU11>;
56 };
57 core12 {
58 cpu = <&CPU12>;
59 };
60 core13 {
61 cpu = <&CPU13>;
62 };
63 };
64 };
65#endif
66
67 CPU2:cpu@200 {
68 clocks = <&scmi_dvfs 0>;
69 capacity-dmips-mhz = <LIT_CAPACITY>;
70 };
71
72 CPU3:cpu@300 {
73 clocks = <&scmi_dvfs 0>;
74 capacity-dmips-mhz = <LIT_CAPACITY>;
75 };
76
77 CPU6:cpu@600 {
78 clocks = <&scmi_dvfs 1>;
79 capacity-dmips-mhz = <MID_CAPACITY>;
80 };
81
82 CPU7:cpu@700 {
83 clocks = <&scmi_dvfs 1>;
84 capacity-dmips-mhz = <MID_CAPACITY>;
85 };
86
87#if TARGET_FLAVOUR_FPGA
88 CPU8:cpu@800 {
89 device_type = "cpu";
90 compatible = "arm,armv8";
91 reg = <0x800>;
92 enable-method = "psci";
93 clocks = <&scmi_dvfs 1>;
94 capacity-dmips-mhz = <MID_CAPACITY>;
95 amu = <&amu>;
96 supports-mpmm;
97 };
98
99 CPU9:cpu@900 {
100 device_type = "cpu";
101 compatible = "arm,armv8";
102 reg = <0x900>;
103 enable-method = "psci";
104 clocks = <&scmi_dvfs 2>;
105 capacity-dmips-mhz = <BIG2_CAPACITY>;
106 amu = <&amu>;
107 supports-mpmm;
108 };
109
110 CPU10:cpu@A00 {
111 device_type = "cpu";
112 compatible = "arm,armv8";
113 reg = <0xA00>;
114 enable-method = "psci";
115 clocks = <&scmi_dvfs 2>;
116 capacity-dmips-mhz = <BIG2_CAPACITY>;
117 amu = <&amu>;
118 supports-mpmm;
119 };
120
121 CPU11:cpu@B00 {
122 device_type = "cpu";
123 compatible = "arm,armv8";
124 reg = <0xB00>;
125 enable-method = "psci";
126 clocks = <&scmi_dvfs 2>;
127 capacity-dmips-mhz = <BIG2_CAPACITY>;
128 amu = <&amu>;
129 supports-mpmm;
130 };
131
132 CPU12:cpu@C00 {
133 device_type = "cpu";
134 compatible = "arm,armv8";
135 reg = <0xC00>;
136 enable-method = "psci";
137 clocks = <&scmi_dvfs 3>;
138 capacity-dmips-mhz = <BIG_CAPACITY>;
139 amu = <&amu>;
140 supports-mpmm;
141 };
142
143 CPU13:cpu@D00 {
144 device_type = "cpu";
145 compatible = "arm,armv8";
146 reg = <0xD00>;
147 enable-method = "psci";
148 clocks = <&scmi_dvfs 3>;
149 capacity-dmips-mhz = <BIG_CAPACITY>;
150 amu = <&amu>;
151 supports-mpmm;
152 };
153#endif
154 };
155
156#if TARGET_FLAVOUR_FPGA
157 ete8 {
158 compatible = "arm,embedded-trace-extension";
159 cpu = <&CPU8>;
160 };
161
162 ete9 {
163 compatible = "arm,embedded-trace-extension";
164 cpu = <&CPU9>;
165 };
166
167 ete10 {
168 compatible = "arm,embedded-trace-extension";
169 cpu = <&CPU10>;
170 };
171
172 ete11 {
173 compatible = "arm,embedded-trace-extension";
174 cpu = <&CPU11>;
175 };
176
177 ete12 {
178 compatible = "arm,embedded-trace-extension";
179 cpu = <&CPU12>;
180 };
181
182 ete13 {
183 compatible = "arm,embedded-trace-extension";
184 cpu = <&CPU13>;
185 };
186#endif /* TARGET_FLAVOUR_FPGA */
187
188 cpu-pmu {
189#if TARGET_FLAVOUR_FPGA
190 interrupt-affinity = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>,
191 <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>,
192 <&CPU8>, <&CPU9>, <&CPU10>, <&CPU11>,
193 <&CPU12>, <&CPU13>;
194#else
195 interrupt-affinity = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>,
196 <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>;
197#endif
198 };
199
Leo Yan4d4a1972024-04-24 09:53:21 +0100200 cmn-pmu {
201 compatible = "arm,ci-700";
202 reg = <0x0 0x50000000 0x0 0x10000000>;
203 interrupts = <GIC_SPI 460 IRQ_TYPE_LEVEL_HIGH>;
204 };
Leo Yan6705ff02024-04-14 22:09:34 +0100205
Boyan Karatotevd1f55502024-04-19 12:00:49 +0100206 mbox_db_rx: mhu@MHU_RX_ADDR {
207 arm,mhuv2-protocols = <0 1>;
208 };
209
210 mbox_db_tx: mhu@MHU_TX_ADDR {
211 arm,mhuv2-protocols = <0 1>;
212 };
213
Leo Yan6705ff02024-04-14 22:09:34 +0100214 dp0: display@DPU_ADDR {
215#if TC_SCMI_PD_CTRL_EN
216 power-domains = <&scmi_devpd (PLAT_MAX_CPUS_PER_CLUSTER + 2)>;
217#endif
218 };
Leo Yan4d4a1972024-04-24 09:53:21 +0100219};