[PATCH v5 7/7] arm64: dts: qcom: nord: Add MPAM MSC nodes for the L2 caches

From: Yin Li

Date: Mon Nov 09 2026 - 05:12:58 EST


Add an MPAM MSC device node for each L2 cache. Each MSC is nested
directly under its L2 cache node so that the cache node is the MSC's
parent device and its CPU affinity is derived from that cache.

The L2 cache nodes are placed directly under the root node rather than
under their CPU nodes, to allow the MSC register region to be mapped:
CPU nodes do not provide an MMIO address space, so an MSC nested under
a CPU-parented cache node cannot be mapped.

Co-developed-by: Huang Yiwei <huang.yiwei@xxxxxxxxxxxxxxxx>
Signed-off-by: Huang Yiwei <huang.yiwei@xxxxxxxxxxxxxxxx>
Signed-off-by: Yin Li <yin.li@xxxxxxxxxxxxxxxx>
---
arch/arm64/boot/dts/qcom/nord.dtsi | 72 ++++++++++++++++++++++++++++----------
1 file changed, 54 insertions(+), 18 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/nord.dtsi b/arch/arm64/boot/dts/qcom/nord.dtsi
index fdbe290350dd..285c6a3e5cb7 100644
--- a/arch/arm64/boot/dts/qcom/nord.dtsi
+++ b/arch/arm64/boot/dts/qcom/nord.dtsi
@@ -23,12 +23,6 @@ cpu0: cpu@0 {
power-domain-names = "psci", "perf";
next-level-cache = <&l2_0>;
#cooling-cells = <2>;
-
- l2_0: l2-cache {
- compatible = "cache";
- cache-level = <2>;
- cache-unified;
- };
};

cpu1: cpu@100 {
@@ -95,12 +89,6 @@ cpu6: cpu@10000 {
enable-method = "psci";
next-level-cache = <&l2_10000>;
#cooling-cells = <2>;
-
- l2_10000: l2-cache {
- compatible = "cache";
- cache-level = <2>;
- cache-unified;
- };
};

cpu7: cpu@10100 {
@@ -167,12 +155,6 @@ cpu12: cpu@20000 {
power-domain-names = "psci", "perf";
next-level-cache = <&l2_20000>;
#cooling-cells = <2>;
-
- l2_20000: l2-cache {
- compatible = "cache";
- cache-level = <2>;
- cache-unified;
- };
};

cpu13: cpu@20100 {
@@ -907,6 +889,60 @@ dump_mem: mem-dump-region {
};
};

+ l2_0: cache@19870000 {
+ compatible = "qcom,nord-l2-cache", "cache";
+ cache-level = <2>;
+ cache-unified;
+ cache-size = <0xc00000>;
+ reg = <0x0 0x19870000 0x0 0x2000>;
+ ranges = <0x0 0x0 0x19870000 0x2000>;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ msc@0 {
+ compatible = "arm,mpam-msc";
+ reg = <0x0 0x2000>;
+ arm,not-ready-us = <1>;
+ };
+ };
+
+ l2_10000: cache@1a870000 {
+ compatible = "qcom,nord-l2-cache", "cache";
+ cache-level = <2>;
+ cache-unified;
+ cache-size = <0xc00000>;
+ reg = <0x0 0x1a870000 0x0 0x2000>;
+ ranges = <0x0 0x0 0x1a870000 0x2000>;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ msc@0 {
+ compatible = "arm,mpam-msc";
+ reg = <0x0 0x2000>;
+ arm,not-ready-us = <1>;
+ };
+ };
+
+ l2_20000: cache@1b870000 {
+ compatible = "qcom,nord-l2-cache", "cache";
+ cache-level = <2>;
+ cache-unified;
+ cache-size = <0xc00000>;
+ reg = <0x0 0x1b870000 0x0 0x2000>;
+ ranges = <0x0 0x0 0x1b870000 0x2000>;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ msc@0 {
+ compatible = "arm,mpam-msc";
+ reg = <0x0 0x2000>;
+ arm,not-ready-us = <1>;
+ };
+ };
+
soc: soc@0 {
compatible = "simple-bus";
#address-cells = <2>;

--
2.34.1