Skip to content

Commit c48cd2e

Browse files
committed
Merge tag 'juno-updates-6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/dt
Armv8 Juno/FVP updates for v6.16 Few updates to the Arm FVP(Fixed Virtual Platform) device tree, enhancing support for system tracing, power management, and firmware coexistence: 1. ETE and TRBE support Adds CoreSight ETE and TRBE nodes for the FVP Rev C model. These are disabled by default as they need to be enabled explicitly via model parameters. 2. CPU idle states and system timer for idle broadcast Introduces CPU idle state definitions but disabled by default due to potential performance impact on the model. Also adds a system-level broadcast timer for use when CPUs enter deep idle states where local timers stop. 3. Firmware memory reservation Reserves 64MB at the end of the first DRAM bank to prevent conflicts with FF-A firmware or similar configurations that rely on this region. 4. Drop the unnecessary clock-frequency property in the timer nodes The boot/secure firmware must configure the timer clock frequency and the non-secure OS must be able to read the same. The clock-frequency is generally used when the firmware is broken which is not the case on most of the fast models and Juno platform. As noted above some of the changes are disabled by default where applicable to ensure backward compatibility and avoid unintended performance impact on platforms using default model parameters. * tag 'juno-updates-6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux: arm64: dts: fvp: Add ETE and TRBE nodes for Rev C model arm64: dts: arm: Drop the clock-frequency property from timer nodes arm64: dts: fvp: Reserve 64MB for the FF-A firmware in memory map arm64: dts: fvp: Add CPU idle states for Rev C model arm64: dts: fvp: Add system timer for broadcast during CPU idle Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Arnd Bergmann <[email protected]>
2 parents b5125e6 + 6332351 commit c48cd2e

File tree

5 files changed

+100
-5
lines changed

5 files changed

+100
-5
lines changed

arch/arm64/boot/dts/arm/corstone1000.dtsi

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,6 @@
109109
reg = <0x1a220000 0x1000>;
110110
#address-cells = <1>;
111111
#size-cells = <1>;
112-
clock-frequency = <50000000>;
113112
ranges;
114113

115114
frame@1a230000 {

arch/arm64/boot/dts/arm/foundation-v8.dtsi

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@
7777
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
7878
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
7979
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
80-
clock-frequency = <100000000>;
8180
};
8281

8382
pmu {

arch/arm64/boot/dts/arm/fvp-base-revc.dts

Lines changed: 100 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,30 @@
4444
#address-cells = <2>;
4545
#size-cells = <0>;
4646

47+
idle-states {
48+
entry-method = "psci";
49+
50+
CPU_SLEEP_0: cpu-sleep-0 {
51+
compatible = "arm,idle-state";
52+
local-timer-stop;
53+
arm,psci-suspend-param = <0x0010000>;
54+
entry-latency-us = <40>;
55+
exit-latency-us = <100>;
56+
min-residency-us = <150>;
57+
status = "disabled";
58+
};
59+
60+
CLUSTER_SLEEP_0: cluster-sleep-0 {
61+
compatible = "arm,idle-state";
62+
local-timer-stop;
63+
arm,psci-suspend-param = <0x1010000>;
64+
entry-latency-us = <500>;
65+
exit-latency-us = <1000>;
66+
min-residency-us = <2500>;
67+
status = "disabled";
68+
};
69+
};
70+
4771
cpu0: cpu@0 {
4872
device_type = "cpu";
4973
compatible = "arm,armv8";
@@ -56,6 +80,7 @@
5680
d-cache-line-size = <64>;
5781
d-cache-sets = <256>;
5882
next-level-cache = <&C0_L2>;
83+
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
5984
};
6085
cpu1: cpu@100 {
6186
device_type = "cpu";
@@ -69,6 +94,7 @@
6994
d-cache-line-size = <64>;
7095
d-cache-sets = <256>;
7196
next-level-cache = <&C0_L2>;
97+
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
7298
};
7399
cpu2: cpu@200 {
74100
device_type = "cpu";
@@ -82,6 +108,7 @@
82108
d-cache-line-size = <64>;
83109
d-cache-sets = <256>;
84110
next-level-cache = <&C0_L2>;
111+
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
85112
};
86113
cpu3: cpu@300 {
87114
device_type = "cpu";
@@ -95,6 +122,7 @@
95122
d-cache-line-size = <64>;
96123
d-cache-sets = <256>;
97124
next-level-cache = <&C0_L2>;
125+
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
98126
};
99127
cpu4: cpu@10000 {
100128
device_type = "cpu";
@@ -108,6 +136,7 @@
108136
d-cache-line-size = <64>;
109137
d-cache-sets = <256>;
110138
next-level-cache = <&C1_L2>;
139+
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
111140
};
112141
cpu5: cpu@10100 {
113142
device_type = "cpu";
@@ -121,6 +150,7 @@
121150
d-cache-line-size = <64>;
122151
d-cache-sets = <256>;
123152
next-level-cache = <&C1_L2>;
153+
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
124154
};
125155
cpu6: cpu@10200 {
126156
device_type = "cpu";
@@ -134,6 +164,7 @@
134164
d-cache-line-size = <64>;
135165
d-cache-sets = <256>;
136166
next-level-cache = <&C1_L2>;
167+
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
137168
};
138169
cpu7: cpu@10300 {
139170
device_type = "cpu";
@@ -147,6 +178,7 @@
147178
d-cache-line-size = <64>;
148179
d-cache-sets = <256>;
149180
next-level-cache = <&C1_L2>;
181+
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
150182
};
151183
C0_L2: l2-cache0 {
152184
compatible = "cache";
@@ -169,7 +201,7 @@
169201

170202
memory@80000000 {
171203
device_type = "memory";
172-
reg = <0x00000000 0x80000000 0 0x80000000>,
204+
reg = <0x00000000 0x80000000 0 0x7c000000>,
173205
<0x00000008 0x80000000 0 0x80000000>;
174206
};
175207

@@ -217,6 +249,19 @@
217249
<GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
218250
};
219251

252+
timer@2a810000 {
253+
compatible = "arm,armv7-timer-mem";
254+
reg = <0x0 0x2a810000 0x0 0x10000>;
255+
ranges = <0 0x0 0x2a820000 0x20000>;
256+
#address-cells = <1>;
257+
#size-cells = <1>;
258+
frame@2a830000 {
259+
frame-number = <1>;
260+
interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
261+
reg = <0x10000 0x10000>;
262+
};
263+
};
264+
220265
pmu {
221266
compatible = "arm,armv8-pmuv3";
222267
interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
@@ -227,6 +272,60 @@
227272
interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_HIGH>;
228273
};
229274

275+
ete-0 {
276+
compatible = "arm,embedded-trace-extension";
277+
cpu = <&cpu0>;
278+
status = "disabled";
279+
};
280+
281+
ete-1 {
282+
compatible = "arm,embedded-trace-extension";
283+
cpu = <&cpu1>;
284+
status = "disabled";
285+
};
286+
287+
ete-2 {
288+
compatible = "arm,embedded-trace-extension";
289+
cpu = <&cpu2>;
290+
status = "disabled";
291+
};
292+
293+
ete-3 {
294+
compatible = "arm,embedded-trace-extension";
295+
cpu = <&cpu3>;
296+
status = "disabled";
297+
};
298+
299+
ete-4 {
300+
compatible = "arm,embedded-trace-extension";
301+
cpu = <&cpu4>;
302+
status = "disabled";
303+
};
304+
305+
ete-5 {
306+
compatible = "arm,embedded-trace-extension";
307+
cpu = <&cpu5>;
308+
status = "disabled";
309+
};
310+
311+
ete-6 {
312+
compatible = "arm,embedded-trace-extension";
313+
cpu = <&cpu6>;
314+
status = "disabled";
315+
};
316+
317+
ete-7 {
318+
compatible = "arm,embedded-trace-extension";
319+
cpu = <&cpu7>;
320+
status = "disabled";
321+
};
322+
323+
trbe {
324+
compatible = "arm,trace-buffer-extension";
325+
interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_LOW>;
326+
status = "disabled";
327+
};
328+
230329
pci: pci@40000000 {
231330
#address-cells = <0x3>;
232331
#size-cells = <0x2>;

arch/arm64/boot/dts/arm/juno-base.dtsi

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
memtimer: timer@2a810000 {
1111
compatible = "arm,armv7-timer-mem";
1212
reg = <0x0 0x2a810000 0x0 0x10000>;
13-
clock-frequency = <50000000>;
1413
#address-cells = <1>;
1514
#size-cells = <1>;
1615
ranges = <0 0x0 0x2a820000 0x20000>;

arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,6 @@
116116
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
117117
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
118118
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
119-
clock-frequency = <100000000>;
120119
};
121120

122121
pmu {

0 commit comments

Comments
 (0)