blob: b6acdaa184f1896e09af9562cf3d6f054a608508 [file] [log] [blame]
Leo Yanb3a97372024-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 Yandefcfb22024-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 Yanb3a97372024-04-14 08:27:39 +010032#include "tc-common.dtsi"
33#if TARGET_FLAVOUR_FVP
34#include "tc-fvp.dtsi"
35#endif /* TARGET_FLAVOUR_FVP */
36#include "tc-base.dtsi"
Leo Yandefcfb22024-04-24 09:53:21 +010037
38/ {
Leo Yanf9565b22024-04-14 22:09:34 +010039 cpus {
40#if TARGET_FLAVOUR_FPGA
41 cpu-map {
42 cluster0 {
43 core8 {
44 cpu = <&CPU8>;
45 };
46 core9 {
47 cpu = <&CPU9>;
48 };
49 core10 {
50 cpu = <&CPU10>;
51 };
52 core11 {
53 cpu = <&CPU11>;
54 };
55 core12 {
56 cpu = <&CPU12>;
57 };
58 core13 {
59 cpu = <&CPU13>;
60 };
61 };
62 };
63#endif
64
65 CPU2:cpu@200 {
66 clocks = <&scmi_dvfs 0>;
67 capacity-dmips-mhz = <LIT_CAPACITY>;
68 };
69
70 CPU3:cpu@300 {
71 clocks = <&scmi_dvfs 0>;
72 capacity-dmips-mhz = <LIT_CAPACITY>;
73 };
74
75 CPU6:cpu@600 {
76 clocks = <&scmi_dvfs 1>;
77 capacity-dmips-mhz = <MID_CAPACITY>;
78 };
79
80 CPU7:cpu@700 {
81 clocks = <&scmi_dvfs 1>;
82 capacity-dmips-mhz = <MID_CAPACITY>;
83 };
84
85#if TARGET_FLAVOUR_FPGA
86 CPU8:cpu@800 {
87 device_type = "cpu";
88 compatible = "arm,armv8";
89 reg = <0x800>;
90 enable-method = "psci";
91 clocks = <&scmi_dvfs 1>;
92 capacity-dmips-mhz = <MID_CAPACITY>;
93 amu = <&amu>;
94 supports-mpmm;
95 };
96
97 CPU9:cpu@900 {
98 device_type = "cpu";
99 compatible = "arm,armv8";
100 reg = <0x900>;
101 enable-method = "psci";
102 clocks = <&scmi_dvfs 2>;
103 capacity-dmips-mhz = <BIG2_CAPACITY>;
104 amu = <&amu>;
105 supports-mpmm;
106 };
107
108 CPU10:cpu@A00 {
109 device_type = "cpu";
110 compatible = "arm,armv8";
111 reg = <0xA00>;
112 enable-method = "psci";
113 clocks = <&scmi_dvfs 2>;
114 capacity-dmips-mhz = <BIG2_CAPACITY>;
115 amu = <&amu>;
116 supports-mpmm;
117 };
118
119 CPU11:cpu@B00 {
120 device_type = "cpu";
121 compatible = "arm,armv8";
122 reg = <0xB00>;
123 enable-method = "psci";
124 clocks = <&scmi_dvfs 2>;
125 capacity-dmips-mhz = <BIG2_CAPACITY>;
126 amu = <&amu>;
127 supports-mpmm;
128 };
129
130 CPU12:cpu@C00 {
131 device_type = "cpu";
132 compatible = "arm,armv8";
133 reg = <0xC00>;
134 enable-method = "psci";
135 clocks = <&scmi_dvfs 3>;
136 capacity-dmips-mhz = <BIG_CAPACITY>;
137 amu = <&amu>;
138 supports-mpmm;
139 };
140
141 CPU13:cpu@D00 {
142 device_type = "cpu";
143 compatible = "arm,armv8";
144 reg = <0xD00>;
145 enable-method = "psci";
146 clocks = <&scmi_dvfs 3>;
147 capacity-dmips-mhz = <BIG_CAPACITY>;
148 amu = <&amu>;
149 supports-mpmm;
150 };
151#endif
152 };
153
154#if TARGET_FLAVOUR_FPGA
155 ete8 {
156 compatible = "arm,embedded-trace-extension";
157 cpu = <&CPU8>;
158 };
159
160 ete9 {
161 compatible = "arm,embedded-trace-extension";
162 cpu = <&CPU9>;
163 };
164
165 ete10 {
166 compatible = "arm,embedded-trace-extension";
167 cpu = <&CPU10>;
168 };
169
170 ete11 {
171 compatible = "arm,embedded-trace-extension";
172 cpu = <&CPU11>;
173 };
174
175 ete12 {
176 compatible = "arm,embedded-trace-extension";
177 cpu = <&CPU12>;
178 };
179
180 ete13 {
181 compatible = "arm,embedded-trace-extension";
182 cpu = <&CPU13>;
183 };
184#endif /* TARGET_FLAVOUR_FPGA */
185
186 cpu-pmu {
187#if TARGET_FLAVOUR_FPGA
188 interrupt-affinity = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>,
189 <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>,
190 <&CPU8>, <&CPU9>, <&CPU10>, <&CPU11>,
191 <&CPU12>, <&CPU13>;
192#else
193 interrupt-affinity = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>,
194 <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>;
195#endif
196 };
197
Leo Yandefcfb22024-04-24 09:53:21 +0100198 cmn-pmu {
199 compatible = "arm,ci-700";
200 reg = <0x0 0x50000000 0x0 0x10000000>;
201 interrupts = <GIC_SPI 460 IRQ_TYPE_LEVEL_HIGH>;
202 };
Leo Yanf9565b22024-04-14 22:09:34 +0100203
204 dp0: display@DPU_ADDR {
205#if TC_SCMI_PD_CTRL_EN
206 power-domains = <&scmi_devpd (PLAT_MAX_CPUS_PER_CLUSTER + 2)>;
207#endif
208 };
Leo Yandefcfb22024-04-24 09:53:21 +0100209};