* [PATCH 0/3] arm64: dts: tegra: CPU and cache node updates
@ 2026-01-21 10:45 Sumit Gupta
2026-01-21 10:45 ` [PATCH 1/3] arm64: dts: tegra234: Fix CPU compatible string to cortex-a78ae Sumit Gupta
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Sumit Gupta @ 2026-01-21 10:45 UTC (permalink / raw)
To: treding, jonathanh, robh, krzk+dt, conor+dt, devicetree,
linux-tegra, linux-kernel
Cc: bbasu, sumitg
- Fixes for Tegra234/264 device tree CPU compatible string.
- Populate CPU and L2 cache nodes for Tegra264.
Sumit Gupta (3):
arm64: dts: tegra234: Fix CPU compatible string to cortex-a78ae
arm64: dts: tegra264: Fix CPU1 node unit-address
arm64: dts: tegra264: Populate CPU and L2 cache nodes
arch/arm64/boot/dts/nvidia/tegra234.dtsi | 24 +-
arch/arm64/boot/dts/nvidia/tegra264.dtsi | 323 ++++++++++++++++++++++-
2 files changed, 334 insertions(+), 13 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/3] arm64: dts: tegra234: Fix CPU compatible string to cortex-a78ae
2026-01-21 10:45 [PATCH 0/3] arm64: dts: tegra: CPU and cache node updates Sumit Gupta
@ 2026-01-21 10:45 ` Sumit Gupta
2026-01-21 10:45 ` [PATCH 2/3] arm64: dts: tegra264: Fix CPU1 node unit-address Sumit Gupta
2026-01-21 10:45 ` [PATCH 3/3] arm64: dts: tegra264: Populate CPU and L2 cache nodes Sumit Gupta
2 siblings, 0 replies; 4+ messages in thread
From: Sumit Gupta @ 2026-01-21 10:45 UTC (permalink / raw)
To: treding, jonathanh, robh, krzk+dt, conor+dt, devicetree,
linux-tegra, linux-kernel
Cc: bbasu, sumitg
The Tegra234 SoC uses Cortex-A78AE cores, not Cortex-A78. Update the
compatible string for all CPU nodes to match the actual hardware.
Tegra234 hardware reports:
# head /proc/cpuinfo | egrep 'implementer|part'
CPU implementer : 0x41
CPU part : 0xd42
Which maps to (from arch/arm64/include/asm/cputype.h):
#define ARM_CPU_IMP_ARM 0x41
#define ARM_CPU_PART_CORTEX_A78AE 0xD42
Fixes: a12cf5c339b08 ("arm64: tegra: Describe Tegra234 CPU hierarchy")
Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
---
arch/arm64/boot/dts/nvidia/tegra234.dtsi | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/arch/arm64/boot/dts/nvidia/tegra234.dtsi b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
index 850c473235e3..13ec999e52ef 100644
--- a/arch/arm64/boot/dts/nvidia/tegra234.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
@@ -5339,7 +5339,7 @@ cpus {
#size-cells = <0>;
cpu0_0: cpu@0 {
- compatible = "arm,cortex-a78";
+ compatible = "arm,cortex-a78ae";
device_type = "cpu";
reg = <0x00000>;
@@ -5358,7 +5358,7 @@ cpu0_0: cpu@0 {
};
cpu0_1: cpu@100 {
- compatible = "arm,cortex-a78";
+ compatible = "arm,cortex-a78ae";
device_type = "cpu";
reg = <0x00100>;
@@ -5377,7 +5377,7 @@ cpu0_1: cpu@100 {
};
cpu0_2: cpu@200 {
- compatible = "arm,cortex-a78";
+ compatible = "arm,cortex-a78ae";
device_type = "cpu";
reg = <0x00200>;
@@ -5396,7 +5396,7 @@ cpu0_2: cpu@200 {
};
cpu0_3: cpu@300 {
- compatible = "arm,cortex-a78";
+ compatible = "arm,cortex-a78ae";
device_type = "cpu";
reg = <0x00300>;
@@ -5415,7 +5415,7 @@ cpu0_3: cpu@300 {
};
cpu1_0: cpu@10000 {
- compatible = "arm,cortex-a78";
+ compatible = "arm,cortex-a78ae";
device_type = "cpu";
reg = <0x10000>;
@@ -5434,7 +5434,7 @@ cpu1_0: cpu@10000 {
};
cpu1_1: cpu@10100 {
- compatible = "arm,cortex-a78";
+ compatible = "arm,cortex-a78ae";
device_type = "cpu";
reg = <0x10100>;
@@ -5453,7 +5453,7 @@ cpu1_1: cpu@10100 {
};
cpu1_2: cpu@10200 {
- compatible = "arm,cortex-a78";
+ compatible = "arm,cortex-a78ae";
device_type = "cpu";
reg = <0x10200>;
@@ -5472,7 +5472,7 @@ cpu1_2: cpu@10200 {
};
cpu1_3: cpu@10300 {
- compatible = "arm,cortex-a78";
+ compatible = "arm,cortex-a78ae";
device_type = "cpu";
reg = <0x10300>;
@@ -5491,7 +5491,7 @@ cpu1_3: cpu@10300 {
};
cpu2_0: cpu@20000 {
- compatible = "arm,cortex-a78";
+ compatible = "arm,cortex-a78ae";
device_type = "cpu";
reg = <0x20000>;
@@ -5510,7 +5510,7 @@ cpu2_0: cpu@20000 {
};
cpu2_1: cpu@20100 {
- compatible = "arm,cortex-a78";
+ compatible = "arm,cortex-a78ae";
device_type = "cpu";
reg = <0x20100>;
@@ -5529,7 +5529,7 @@ cpu2_1: cpu@20100 {
};
cpu2_2: cpu@20200 {
- compatible = "arm,cortex-a78";
+ compatible = "arm,cortex-a78ae";
device_type = "cpu";
reg = <0x20200>;
@@ -5548,7 +5548,7 @@ cpu2_2: cpu@20200 {
};
cpu2_3: cpu@20300 {
- compatible = "arm,cortex-a78";
+ compatible = "arm,cortex-a78ae";
device_type = "cpu";
reg = <0x20300>;
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/3] arm64: dts: tegra264: Fix CPU1 node unit-address
2026-01-21 10:45 [PATCH 0/3] arm64: dts: tegra: CPU and cache node updates Sumit Gupta
2026-01-21 10:45 ` [PATCH 1/3] arm64: dts: tegra234: Fix CPU compatible string to cortex-a78ae Sumit Gupta
@ 2026-01-21 10:45 ` Sumit Gupta
2026-01-21 10:45 ` [PATCH 3/3] arm64: dts: tegra264: Populate CPU and L2 cache nodes Sumit Gupta
2 siblings, 0 replies; 4+ messages in thread
From: Sumit Gupta @ 2026-01-21 10:45 UTC (permalink / raw)
To: treding, jonathanh, robh, krzk+dt, conor+dt, devicetree,
linux-tegra, linux-kernel
Cc: bbasu, sumitg
Fix the unit-address of cpu1 node to match its reg property value.
Fixes: f6d1890e5f4d ("arm64: tegra: Add device tree for Tegra264")
Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
---
arch/arm64/boot/dts/nvidia/tegra264.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/nvidia/tegra264.dtsi b/arch/arm64/boot/dts/nvidia/tegra264.dtsi
index 7644a41d5f72..fa00e95f87a3 100644
--- a/arch/arm64/boot/dts/nvidia/tegra264.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra264.dtsi
@@ -3788,7 +3788,7 @@ cpu0: cpu@0 {
d-cache-sets = <256>;
};
- cpu1: cpu@1 {
+ cpu1: cpu@10000 {
compatible = "arm,neoverse-v3ae";
device_type = "cpu";
reg = <0x10000>;
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 3/3] arm64: dts: tegra264: Populate CPU and L2 cache nodes
2026-01-21 10:45 [PATCH 0/3] arm64: dts: tegra: CPU and cache node updates Sumit Gupta
2026-01-21 10:45 ` [PATCH 1/3] arm64: dts: tegra234: Fix CPU compatible string to cortex-a78ae Sumit Gupta
2026-01-21 10:45 ` [PATCH 2/3] arm64: dts: tegra264: Fix CPU1 node unit-address Sumit Gupta
@ 2026-01-21 10:45 ` Sumit Gupta
2 siblings, 0 replies; 4+ messages in thread
From: Sumit Gupta @ 2026-01-21 10:45 UTC (permalink / raw)
To: treding, jonathanh, robh, krzk+dt, conor+dt, devicetree,
linux-tegra, linux-kernel
Cc: bbasu, sumitg
Add the remaining 12 CPU nodes and all 14 L2 cache nodes for the
Tegra264 CPU Complex, which comprises up to 14 ARM Neoverse V3AE
CPUs. Each CPU has its own private 1MB L2 cache.
Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
---
arch/arm64/boot/dts/nvidia/tegra264.dtsi | 321 +++++++++++++++++++++++
1 file changed, 321 insertions(+)
diff --git a/arch/arm64/boot/dts/nvidia/tegra264.dtsi b/arch/arm64/boot/dts/nvidia/tegra264.dtsi
index fa00e95f87a3..24cc2c51a272 100644
--- a/arch/arm64/boot/dts/nvidia/tegra264.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra264.dtsi
@@ -3786,6 +3786,7 @@ cpu0: cpu@0 {
d-cache-size = <65536>;
d-cache-line-size = <64>;
d-cache-sets = <256>;
+ next-level-cache = <&l2c0>;
};
cpu1: cpu@10000 {
@@ -3801,7 +3802,327 @@ cpu1: cpu@10000 {
d-cache-size = <65536>;
d-cache-line-size = <64>;
d-cache-sets = <256>;
+ next-level-cache = <&l2c1>;
};
+
+ cpu2: cpu@20000 {
+ compatible = "arm,neoverse-v3ae";
+ device_type = "cpu";
+ reg = <0x20000>;
+
+ enable-method = "psci";
+
+ i-cache-size = <65536>;
+ i-cache-line-size = <64>;
+ i-cache-sets = <256>;
+ d-cache-size = <65536>;
+ d-cache-line-size = <64>;
+ d-cache-sets = <256>;
+ next-level-cache = <&l2c2>;
+ };
+
+ cpu3: cpu@30000 {
+ compatible = "arm,neoverse-v3ae";
+ device_type = "cpu";
+ reg = <0x30000>;
+
+ enable-method = "psci";
+
+ i-cache-size = <65536>;
+ i-cache-line-size = <64>;
+ i-cache-sets = <256>;
+ d-cache-size = <65536>;
+ d-cache-line-size = <64>;
+ d-cache-sets = <256>;
+ next-level-cache = <&l2c3>;
+ };
+
+ cpu4: cpu@40000 {
+ compatible = "arm,neoverse-v3ae";
+ device_type = "cpu";
+ reg = <0x40000>;
+
+ enable-method = "psci";
+
+ i-cache-size = <65536>;
+ i-cache-line-size = <64>;
+ i-cache-sets = <256>;
+ d-cache-size = <65536>;
+ d-cache-line-size = <64>;
+ d-cache-sets = <256>;
+ next-level-cache = <&l2c4>;
+ };
+
+ cpu5: cpu@50000 {
+ compatible = "arm,neoverse-v3ae";
+ device_type = "cpu";
+ reg = <0x50000>;
+
+ enable-method = "psci";
+
+ i-cache-size = <65536>;
+ i-cache-line-size = <64>;
+ i-cache-sets = <256>;
+ d-cache-size = <65536>;
+ d-cache-line-size = <64>;
+ d-cache-sets = <256>;
+ next-level-cache = <&l2c5>;
+ };
+
+ cpu6: cpu@60000 {
+ compatible = "arm,neoverse-v3ae";
+ device_type = "cpu";
+ reg = <0x60000>;
+
+ enable-method = "psci";
+
+ i-cache-size = <65536>;
+ i-cache-line-size = <64>;
+ i-cache-sets = <256>;
+ d-cache-size = <65536>;
+ d-cache-line-size = <64>;
+ d-cache-sets = <256>;
+ next-level-cache = <&l2c6>;
+ };
+
+ cpu7: cpu@70000 {
+ compatible = "arm,neoverse-v3ae";
+ device_type = "cpu";
+ reg = <0x70000>;
+
+ enable-method = "psci";
+
+ i-cache-size = <65536>;
+ i-cache-line-size = <64>;
+ i-cache-sets = <256>;
+ d-cache-size = <65536>;
+ d-cache-line-size = <64>;
+ d-cache-sets = <256>;
+ next-level-cache = <&l2c7>;
+ };
+
+ cpu8: cpu@80000 {
+ compatible = "arm,neoverse-v3ae";
+ device_type = "cpu";
+ reg = <0x80000>;
+
+ enable-method = "psci";
+
+ i-cache-size = <65536>;
+ i-cache-line-size = <64>;
+ i-cache-sets = <256>;
+ d-cache-size = <65536>;
+ d-cache-line-size = <64>;
+ d-cache-sets = <256>;
+ next-level-cache = <&l2c8>;
+ };
+
+ cpu9: cpu@90000 {
+ compatible = "arm,neoverse-v3ae";
+ device_type = "cpu";
+ reg = <0x90000>;
+
+ enable-method = "psci";
+
+ i-cache-size = <65536>;
+ i-cache-line-size = <64>;
+ i-cache-sets = <256>;
+ d-cache-size = <65536>;
+ d-cache-line-size = <64>;
+ d-cache-sets = <256>;
+ next-level-cache = <&l2c9>;
+ };
+
+ cpu10: cpu@a0000 {
+ compatible = "arm,neoverse-v3ae";
+ device_type = "cpu";
+ reg = <0xa0000>;
+
+ enable-method = "psci";
+
+ i-cache-size = <65536>;
+ i-cache-line-size = <64>;
+ i-cache-sets = <256>;
+ d-cache-size = <65536>;
+ d-cache-line-size = <64>;
+ d-cache-sets = <256>;
+ next-level-cache = <&l2c10>;
+ };
+
+ cpu11: cpu@b0000 {
+ compatible = "arm,neoverse-v3ae";
+ device_type = "cpu";
+ reg = <0xb0000>;
+
+ enable-method = "psci";
+
+ i-cache-size = <65536>;
+ i-cache-line-size = <64>;
+ i-cache-sets = <256>;
+ d-cache-size = <65536>;
+ d-cache-line-size = <64>;
+ d-cache-sets = <256>;
+ next-level-cache = <&l2c11>;
+ };
+
+ cpu12: cpu@c0000 {
+ compatible = "arm,neoverse-v3ae";
+ device_type = "cpu";
+ reg = <0xc0000>;
+
+ enable-method = "psci";
+
+ i-cache-size = <65536>;
+ i-cache-line-size = <64>;
+ i-cache-sets = <256>;
+ d-cache-size = <65536>;
+ d-cache-line-size = <64>;
+ d-cache-sets = <256>;
+ next-level-cache = <&l2c12>;
+ };
+
+ cpu13: cpu@d0000 {
+ compatible = "arm,neoverse-v3ae";
+ device_type = "cpu";
+ reg = <0xd0000>;
+
+ enable-method = "psci";
+
+ i-cache-size = <65536>;
+ i-cache-line-size = <64>;
+ i-cache-sets = <256>;
+ d-cache-size = <65536>;
+ d-cache-line-size = <64>;
+ d-cache-sets = <256>;
+ next-level-cache = <&l2c13>;
+ };
+
+ l2c0: l2-cache-0 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-size = <1048576>;
+ cache-line-size = <64>;
+ cache-sets = <2048>;
+ cache-unified;
+ };
+
+ l2c1: l2-cache-1 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-size = <1048576>;
+ cache-line-size = <64>;
+ cache-sets = <2048>;
+ cache-unified;
+ };
+
+ l2c2: l2-cache-2 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-size = <1048576>;
+ cache-line-size = <64>;
+ cache-sets = <2048>;
+ cache-unified;
+ };
+
+ l2c3: l2-cache-3 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-size = <1048576>;
+ cache-line-size = <64>;
+ cache-sets = <2048>;
+ cache-unified;
+ };
+
+ l2c4: l2-cache-4 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-size = <1048576>;
+ cache-line-size = <64>;
+ cache-sets = <2048>;
+ cache-unified;
+ };
+
+ l2c5: l2-cache-5 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-size = <1048576>;
+ cache-line-size = <64>;
+ cache-sets = <2048>;
+ cache-unified;
+ };
+
+ l2c6: l2-cache-6 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-size = <1048576>;
+ cache-line-size = <64>;
+ cache-sets = <2048>;
+ cache-unified;
+ };
+
+ l2c7: l2-cache-7 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-size = <1048576>;
+ cache-line-size = <64>;
+ cache-sets = <2048>;
+ cache-unified;
+ };
+
+ l2c8: l2-cache-8 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-size = <1048576>;
+ cache-line-size = <64>;
+ cache-sets = <2048>;
+ cache-unified;
+ };
+
+ l2c9: l2-cache-9 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-size = <1048576>;
+ cache-line-size = <64>;
+ cache-sets = <2048>;
+ cache-unified;
+ };
+
+ l2c10: l2-cache-10 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-size = <1048576>;
+ cache-line-size = <64>;
+ cache-sets = <2048>;
+ cache-unified;
+ };
+
+ l2c11: l2-cache-11 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-size = <1048576>;
+ cache-line-size = <64>;
+ cache-sets = <2048>;
+ cache-unified;
+ };
+
+ l2c12: l2-cache-12 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-size = <1048576>;
+ cache-line-size = <64>;
+ cache-sets = <2048>;
+ cache-unified;
+ };
+
+ l2c13: l2-cache-13 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-size = <1048576>;
+ cache-line-size = <64>;
+ cache-sets = <2048>;
+ cache-unified;
+ };
+
};
bpmp: bpmp {
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-01-21 10:46 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-21 10:45 [PATCH 0/3] arm64: dts: tegra: CPU and cache node updates Sumit Gupta
2026-01-21 10:45 ` [PATCH 1/3] arm64: dts: tegra234: Fix CPU compatible string to cortex-a78ae Sumit Gupta
2026-01-21 10:45 ` [PATCH 2/3] arm64: dts: tegra264: Fix CPU1 node unit-address Sumit Gupta
2026-01-21 10:45 ` [PATCH 3/3] arm64: dts: tegra264: Populate CPU and L2 cache nodes Sumit Gupta
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox