Skip to contentSkip to conversation

ARM/arm64: dts: renesas: Add/complete L2 cache-controller nodes

PATCH New Geert Uytterhoeven 5 participants 16 messages Feb 15, 2016 – Feb 17, 2016

Subsystems (2)
lore
Share & tools
lore

Geert Uytterhoeven

author maintainer
#0 lore raw

v3 cover ARM/arm64: dts: renesas: Add/complete L2 cache-controller nodes

Hi Simon, Magnus,

This patch series adds the missing L2 cache-controller nodes to the DTSes for various Renesas ARM-based SoCs, or completes the existing nodes, and links the CPU nodes to them.

For R-Mobile APE6 (r8a73a4), the L2 cache-controllers are also linked to the respective (already existing) SYSC Power Domains. Fortunately these Power Domains were never powered down, as they are parents of the Power Domains containing CPU cores. This may change in the future.

For R-Car Gen2 and Gen3 (r8a779x), this serves as a preparatory step for adding SYSC Power Domain support later.

Changes compared to v2:
- Dropped "arm,data-latency" and "arm,tag-latency" properties, as they may not be valid when using virtualization,
- Dropped already applied parts of "[PATCH v2 6/6] arm64: renesas:
r8a7795: Add L2 cache-controller nodes",
- Changed one-line summary prefix to match current arm-soc practices.

This series is against renesas-devel-20160215-v4.5-rc4.
It has been tested on r8a73a4/ape6evm, r8a7791/koelsch, r8a7794/alt, and r8a7795/salvator-x.

For your convenience, I've also pushed this series to
git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git#topic/l2-cache-v3

Thanks for applying!

Geert Uytterhoeven (7):
ARM: dts: r8a73a4: Add L2 cache-controller nodes
ARM: dts: r8a7790: Add L2 cache-controller nodes
ARM: dts: r8a7791: Add L2 cache-controller node
ARM: dts: r8a7793: Add L2 cache-controller node
ARM: dts: r8a7794: Add L2 cache-controller node
arm64: dts: r8a7795: Add missing properties to CA57 L2 cache node
arm64: dts: r8a7795: Add CA53 L2 cache-controller node

 arch/arm/boot/dts/r8a73a4.dtsi           | 17 +++++++++++++++++
 arch/arm/boot/dts/r8a7790.dtsi           | 20 ++++++++++++++++++++
 arch/arm/boot/dts/r8a7791.dtsi           |  8 ++++++++
 arch/arm/boot/dts/r8a7793.dtsi           |  7 +++++++
 arch/arm/boot/dts/r8a7794.dtsi           |  8 ++++++++
 arch/arm64/boot/dts/renesas/r8a7795.dtsi |  8 ++++++++
 6 files changed, 68 insertions(+)
Signature · 12 lines
1.9.1

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds
author maintainer
#1 lore raw

PATCH v3 1/7 ARM: dts: r8a73a4: Add L2 cache-controller nodes

Add device nodes for the L2 caches, and link the CPU node to its L2 cache node.

The L2 cache for the Cortex-A15 CPU cores is 1 MiB large (organized as 64 KiB x 16 ways), and located in PM domain A3SM.

The L2 cache for the Cortex-A7 CPU cores is 512 KiB large (organized as 64 KiB x 8 ways), and located in PM domain A3KM.

---
v3:
- Drop "arm,data-latency" and "arm,tag-latency" properties, as they may not be valid when using virtualization,
- Change one-line summary prefix to match current arm-soc practices,

v2:
- New.

---
 arch/arm/boot/dts/r8a73a4.dtsi | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
arch/arm/boot/dts/r8a73a4.dtsi +17 -0
index 138414a7d1703781..6583a1dfca1f64c6 100644
@@ -29,6 +29,7 @@
 			reg = <0>;
 			clock-frequency = <1500000000>;
 			power-domains = <&pd_a2sl>;
+			next-level-cache = <&L2_CA15>;
 		};
 	};
 
@@ -45,6 +46,22 @@
 			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
 	};
 
+	L2_CA15: cache-controller at 0 {
+		compatible = "cache";
+		clocks = <&cpg_clocks R8A73A4_CLK_Z>;
+		power-domains = <&pd_a3sm>;
+		cache-unified;
+		cache-level = <2>;
+	};
+
+	L2_CA7: cache-controller at 1 {
+		compatible = "cache";
+		clocks = <&cpg_clocks R8A73A4_CLK_Z2>;
+		power-domains = <&pd_a3km>;
+		cache-unified;
+		cache-level = <2>;
+	};
+
 	dbsc1: memory-controller at e6790000 {
 		compatible = "renesas,dbsc-r8a73a4";
 		reg = <0 0xe6790000 0 0x10000>;
Signature · 1 line
1.9.1
author maintainer
#2 lore raw

PATCH v3 2/7 ARM: dts: r8a7790: Add L2 cache-controller nodes

In reply to Geert Uytterhoeven

Add device nodes for the L2 caches, and link the CPU nodes to them.

The L2 cache for the Cortex-A15 CPU cores is 2 MiB large (organized as 128 KiB x 16 ways).

The L2 cache for the Cortex-A7 CPU cores is 512 KiB large (organized as 64 KiB x 8 ways).

---
v3:
- Drop "arm,data-latency" and "arm,tag-latency" properties, as they may not be valid when using virtualization,
- Change one-line summary prefix to match current arm-soc practices,

v2:
- Drop (incorrect) optional cache-{size,sets,{block,line}-size} properties, as this information is auto-detected,
- Integrate linking CPUs to L2 caches into this patch,
- Extracted from series "[PATCH/RFC 00/15] ARM: shmobile: R-Car: Add SYSC PM Domain DT Support".

---
 arch/arm/boot/dts/r8a7790.dtsi | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
arch/arm/boot/dts/r8a7790.dtsi +20 -0
index 76ddf5c6cca79c3c..e40aa6585831c520 100644
@@ -52,6 +52,7 @@
 			voltage-tolerance = <1>; /* 1% */
 			clocks = <&cpg_clocks R8A7790_CLK_Z>;
 			clock-latency = <300000>; /* 300 us */
+			next-level-cache = <&L2_CA15>;
 
 			/* kHz - uV - OPPs unknown yet */
 			operating-points = <1400000 1000000>,
@@ -67,6 +68,7 @@
 			compatible = "arm,cortex-a15";
 			reg = <1>;
 			clock-frequency = <1300000000>;
+			next-level-cache = <&L2_CA15>;
 		};
 
 		cpu2: cpu at 2 {
@@ -74,6 +76,7 @@
 			compatible = "arm,cortex-a15";
 			reg = <2>;
 			clock-frequency = <1300000000>;
+			next-level-cache = <&L2_CA15>;
 		};
 
 		cpu3: cpu at 3 {
@@ -81,6 +84,7 @@
 			compatible = "arm,cortex-a15";
 			reg = <3>;
 			clock-frequency = <1300000000>;
+			next-level-cache = <&L2_CA15>;
 		};
 
 		cpu4: cpu at 4 {
@@ -88,6 +92,7 @@
 			compatible = "arm,cortex-a7";
 			reg = <0x100>;
 			clock-frequency = <780000000>;
+			next-level-cache = <&L2_CA7>;
 		};
 
 		cpu5: cpu at 5 {
@@ -95,6 +100,7 @@
 			compatible = "arm,cortex-a7";
 			reg = <0x101>;
 			clock-frequency = <780000000>;
+			next-level-cache = <&L2_CA7>;
 		};
 
 		cpu6: cpu at 6 {
@@ -102,6 +108,7 @@
 			compatible = "arm,cortex-a7";
 			reg = <0x102>;
 			clock-frequency = <780000000>;
+			next-level-cache = <&L2_CA7>;
 		};
 
 		cpu7: cpu at 7 {
@@ -109,9 +116,22 @@
 			compatible = "arm,cortex-a7";
 			reg = <0x103>;
 			clock-frequency = <780000000>;
+			next-level-cache = <&L2_CA7>;
 		};
 	};
 
+	L2_CA15: cache-controller at 0 {
+		compatible = "cache";
+		cache-unified;
+		cache-level = <2>;
+	};
+
+	L2_CA7: cache-controller at 1 {
+		compatible = "cache";
+		cache-unified;
+		cache-level = <2>;
+	};
+
 	gic: interrupt-controller at f1001000 {
 		compatible = "arm,gic-400";
 		#interrupt-cells = <3>;
Signature · 1 line
1.9.1
author maintainer
#3 lore raw

PATCH v3 3/7 ARM: dts: r8a7791: Add L2 cache-controller node

In reply to Geert Uytterhoeven

Add a device node for the L2 cache, and link the CPU nodes to it.

The L2 cache for the Cortex-A15 CPU cores is 1 MiB large (organized as 64 KiB x 16 ways).

---
v3:
- Drop "arm,data-latency" and "arm,tag-latency" properties, as they may not be valid when using virtualization,
- Change one-line summary prefix to match current arm-soc practices,

v2:
- Drop (incorrect) optional cache-{size,sets,{block,line}-size} properties, as this information is auto-detected,
- Integrate linking CPUs to L2 cache into this patch,
- Extracted from series "[PATCH/RFC 00/15] ARM: shmobile: R-Car: Add SYSC PM Domain DT Support".

---
 arch/arm/boot/dts/r8a7791.dtsi | 8 ++++++++
 1 file changed, 8 insertions(+)
arch/arm/boot/dts/r8a7791.dtsi +8 -0
index 8910236e64bf93ed..a65910ed5884edfd 100644
@@ -51,6 +51,7 @@
 			voltage-tolerance = <1>; /* 1% */
 			clocks = <&cpg_clocks R8A7791_CLK_Z>;
 			clock-latency = <300000>; /* 300 us */
+			next-level-cache = <&L2_CA15>;
 
 			/* kHz - uV - OPPs unknown yet */
 			operating-points = <1500000 1000000>,
@@ -66,9 +67,16 @@
 			compatible = "arm,cortex-a15";
 			reg = <1>;
 			clock-frequency = <1500000000>;
+			next-level-cache = <&L2_CA15>;
 		};
 	};
 
+	L2_CA15: cache-controller at 0 {
+		compatible = "cache";
+		cache-unified;
+		cache-level = <2>;
+	};
+
 	gic: interrupt-controller at f1001000 {
 		compatible = "arm,gic-400";
 		#interrupt-cells = <3>;
Signature · 1 line
1.9.1
author maintainer
#4 lore raw

PATCH v3 4/7 ARM: dts: r8a7793: Add L2 cache-controller node

In reply to Geert Uytterhoeven

Add a device node for the L2 cache, and link the CPU node to it.

The L2 cache for the Cortex-A15 CPU cores is 1 MiB large (organized as 64 KiB x 16 ways).

---
v3:
- Drop "arm,data-latency" and "arm,tag-latency" properties, as they may not be valid when using virtualization,
- Change one-line summary prefix to match current arm-soc practices,

v2:
- Drop (incorrect) optional cache-{size,sets,{block,line}-size} properties, as this information is auto-detected,
- Integrate linking CPU to L2 cache into this patch,
- Extracted from series "[PATCH/RFC 00/15] ARM: shmobile: R-Car: Add SYSC PM Domain DT Support".

---
 arch/arm/boot/dts/r8a7793.dtsi | 7 +++++++
 1 file changed, 7 insertions(+)
arch/arm/boot/dts/r8a7793.dtsi +7 -0
index 45dba1c79a43c287..9a30f650aa515b80 100644
@@ -51,9 +51,16 @@
 					   < 937500 1000000>,
 					   < 750000 1000000>,
 					   < 375000 1000000>;
+			next-level-cache = <&L2_CA15>;
 		};
 	};
 
+	L2_CA15: cache-controller at 0 {
+		compatible = "cache";
+		cache-unified;
+		cache-level = <2>;
+	};
+
 	gic: interrupt-controller at f1001000 {
 		compatible = "arm,gic-400";
 		#interrupt-cells = <3>;
Signature · 1 line
1.9.1
author maintainer
#5 lore raw

PATCH v3 5/7 ARM: dts: r8a7794: Add L2 cache-controller node

In reply to Geert Uytterhoeven

Add a device node for the L2 cache, and link the CPU nodes to it.

The L2 cache for the Cortex-A7 CPU cores is 512 KiB large (organized as 64 KiB x 8 ways).

---
v3:
- Change one-line summary prefix to match current arm-soc practices,

v2:
- Drop (incorrect) optional cache-{size,sets,{block,line}-size} properties, as this information is auto-detected,
- Integrate linking CPUs to L2 cache into this patch,
- Extracted from series "[PATCH/RFC 00/15] ARM: shmobile: R-Car: Add SYSC PM Domain DT Support".

---
 arch/arm/boot/dts/r8a7794.dtsi | 8 ++++++++
 1 file changed, 8 insertions(+)
arch/arm/boot/dts/r8a7794.dtsi +8 -0
index df0861e84a4b81eb..21a02df3609b24aa 100644
@@ -40,6 +40,7 @@
 			compatible = "arm,cortex-a7";
 			reg = <0>;
 			clock-frequency = <1000000000>;
+			next-level-cache = <&L2_CA7>;
 		};
 
 		cpu1: cpu at 1 {
@@ -47,9 +48,16 @@
 			compatible = "arm,cortex-a7";
 			reg = <1>;
 			clock-frequency = <1000000000>;
+			next-level-cache = <&L2_CA7>;
 		};
 	};
 
+	L2_CA7: cache-controller at 1 {
+		compatible = "cache";
+		cache-unified;
+		cache-level = <2>;
+	};
+
 	gic: interrupt-controller at f1001000 {
 		compatible = "arm,gic-400";
 		#interrupt-cells = <3>;
Signature · 1 line
1.9.1
author maintainer
#6 lore raw

PATCH v3 6/7 arm64: dts: r8a7795: Add missing properties to CA57 L2 cache node

In reply to Geert Uytterhoeven

Add the missing "cache-unified" and "cache-level" properties to the Cortex-A57 cache-controller node.

---
v3:
- Remaining part of "[PATCH v2 6/6] arm64: renesas: r8a7795: Add L2 cache-controller nodes", after dropping the "arm,data-latency" and "arm,tag-latency" properties.

---
 arch/arm64/boot/dts/renesas/r8a7795.dtsi | 2 ++
 1 file changed, 2 insertions(+)
arch/arm64/boot/dts/renesas/r8a7795.dtsi +2 -0
index b5e46e4ff72ad003..c07f4e83b988ba42 100644
@@ -68,6 +68,8 @@
 
 	L2_CA57: cache-controller at 0 {
 		compatible = "cache";
+		cache-unified;
+		cache-level = <2>;
 	};
 
 	extal_clk: extal {
Signature · 1 line
1.9.1
#7 lore raw

PATCH v3 6/7 arm64: dts: r8a7795: Add missing properties to CA57 L2 cache node

Quoted 18 lines · Geert Uytterhoeven

Add the missing "cache-unified" and "cache-level" properties to the Cortex-A57 cache-controller node.

---
v3:
- Remaining part of "[PATCH v2 6/6] arm64: renesas: r8a7795: Add L2 cache-controller nodes", after dropping the "arm,data-latency" and "arm,tag-latency" properties.

---
  arch/arm64/boot/dts/renesas/r8a7795.dtsi | 2 ++
  1 file changed, 2 insertions(+)
arch/arm64/boot/dts/renesas/r8a7795.dtsi +0 -0
index b5e46e4ff72ad003..c07f4e83b988ba42 100644

arch/arm64/boot/dts/renesas/r8a7795.dtsi line 72

Quoted 5 lines
arch/arm64/boot/dts/renesas/r8a7795.dtsi +2 -0
@@ -68,6 +68,8 @@
 
  	L2_CA57: cache-controller at 0 {
  		compatible = "cache";
+		cache-unified;
+		cache-level = <2>;

As this is completely unused on ARMv8 I don't think that we want to have these unused entries in the DT.

Sudeep: What do you think?

Best regards

Dirk

#8 lore raw

PATCH v3 6/7 arm64: dts: r8a7795: Add missing properties to CA57 L2 cache node

Quoted 30 lines · Dirk Behme
Quoted 19 lines · Geert Uytterhoeven

Add the missing "cache-unified" and "cache-level" properties to the Cortex-A57 cache-controller node.

---
v3:
- Remaining part of "[PATCH v2 6/6] arm64: renesas: r8a7795: Add L2 cache-controller nodes", after dropping the "arm,data-latency" and "arm,tag-latency" properties.

---
  arch/arm64/boot/dts/renesas/r8a7795.dtsi | 2 ++
  1 file changed, 2 insertions(+)
arch/arm64/boot/dts/renesas/r8a7795.dtsi +0 -0
index b5e46e4ff72ad003..c07f4e83b988ba42 100644

arch/arm64/boot/dts/renesas/r8a7795.dtsi line 72

Quoted 5 lines
arch/arm64/boot/dts/renesas/r8a7795.dtsi +2 -0
@@ -68,6 +68,8 @@
 
      L2_CA57: cache-controller at 0 {
          compatible = "cache";
+        cache-unified;
+        cache-level = <2>;

As this is completely unused on ARMv8 I don't think that we want to have these unused entries in the DT.

Quoted 2 lines

Sudeep: What do you think?

I am fine with that, I don't see any issue having them as they are static values and highly unlikely to change and hence no threat to backward compatibility.

The main concern I had with latency values is that it's currently not used anywhere but if we decide to use say in secure software, having the untested/early values in DT might cause compatibility issues in future as they were added much before the actual understanding of it's usage. So I prefer to defer them until then.

Signature · 2 lines
Regards,
Sudeep
#9 lore raw

PATCH v3 6/7 arm64: dts: r8a7795: Add missing properties to CA57 L2 cache node

Quoted 40 lines · Sudeep Holla
Quoted 30 lines · Dirk Behme
Quoted 19 lines · Geert Uytterhoeven

Add the missing "cache-unified" and "cache-level" properties to the Cortex-A57 cache-controller node.

---
v3:
- Remaining part of "[PATCH v2 6/6] arm64: renesas: r8a7795: Add L2 cache-controller nodes", after dropping the "arm,data-latency" and "arm,tag-latency" properties.

---
  arch/arm64/boot/dts/renesas/r8a7795.dtsi | 2 ++
  1 file changed, 2 insertions(+)
arch/arm64/boot/dts/renesas/r8a7795.dtsi +0 -0
index b5e46e4ff72ad003..c07f4e83b988ba42 100644

arch/arm64/boot/dts/renesas/r8a7795.dtsi line 72

Quoted 5 lines
arch/arm64/boot/dts/renesas/r8a7795.dtsi +2 -0
@@ -68,6 +68,8 @@
 
      L2_CA57: cache-controller at 0 {
          compatible = "cache";
+        cache-unified;
+        cache-level = <2>;

As this is completely unused on ARMv8 I don't think that we want to have these unused entries in the DT.

Quoted 2 lines

Sudeep: What do you think?

I am fine with that, I don't see any issue having them as they are static values and highly unlikely to change and hence no threat to backward compatibility.

Quoted 5 lines

The main concern I had with latency values is that it's currently not used anywhere but if we decide to use say in secure software, having the untested/early values in DT might cause compatibility issues in future as they were added much before the actual understanding of it's usage. So I prefer to defer them until then.

Fine with me, thanks! :)

With this clarification:

Thanks again and best regards

Dirk

author maintainer
#10 lore raw

PATCH v3 7/7 arm64: dts: r8a7795: Add CA53 L2 cache-controller node

In reply to Geert Uytterhoeven

Add a device node for the Cortex-A53 L2 cache-controller.

The L2 cache for the Cortex-A53 CPU cores is 512 KiB large (organized as 32 KiB x 16 ways).

---
v3:
- Remaining part of "[PATCH v2 6/6] arm64: renesas: r8a7795: Add L2 cache-controller nodes".

---
 arch/arm64/boot/dts/renesas/r8a7795.dtsi | 6 ++++++
 1 file changed, 6 insertions(+)
arch/arm64/boot/dts/renesas/r8a7795.dtsi +6 -0
index c07f4e83b988ba42..c572527afec3403a 100644
@@ -72,6 +72,12 @@
 		cache-level = <2>;
 	};
 
+	L2_CA53: cache-controller at 1 {
+		compatible = "cache";
+		cache-unified;
+		cache-level = <2>;
+	};
+
 	extal_clk: extal {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
Signature · 1 line
1.9.1
#11 lore raw

PATCH v3 7/7 arm64: dts: r8a7795: Add CA53 L2 cache-controller node

Quoted 19 lines · Geert Uytterhoeven

Add a device node for the Cortex-A53 L2 cache-controller.

The L2 cache for the Cortex-A53 CPU cores is 512 KiB large (organized as 32 KiB x 16 ways).

---
v3:
- Remaining part of "[PATCH v2 6/6] arm64: renesas: r8a7795: Add L2 cache-controller nodes".

---
  arch/arm64/boot/dts/renesas/r8a7795.dtsi | 6 ++++++
  1 file changed, 6 insertions(+)
arch/arm64/boot/dts/renesas/r8a7795.dtsi +0 -0
index c07f4e83b988ba42..c572527afec3403a 100644

arch/arm64/boot/dts/renesas/r8a7795.dtsi line 80

Quoted 9 lines
arch/arm64/boot/dts/renesas/r8a7795.dtsi +6 -0
@@ -72,6 +72,12 @@
  		cache-level = <2>;
  	};
 
+	L2_CA53: cache-controller at 1 {
+		compatible = "cache";
+		cache-unified;
+		cache-level = <2>;
+	};
+

As we don't have any CA53 in the device tree yet, and it was rejected to add it, I'd think that we don't want these unused entries at the moment.

I'd propose to add the CA53 entries, first. And then add their L2 cache entries.

Based on the outcome of the discussion for the CA57 we have to see if we want to add the unused cache-unified and cache-level, then, too.

Best regards

Dirk

#12 lore raw

PATCH v3 7/7 arm64: dts: r8a7795: Add CA53 L2 cache-controller node

Hi Dirk,

Quoted 24 lines · Dirk Behme
Quoted 23 lines · Geert Uytterhoeven

Add a device node for the Cortex-A53 L2 cache-controller.

The L2 cache for the Cortex-A53 CPU cores is 512 KiB large (organized as 32 KiB x 16 ways).

---
v3:
- Remaining part of "[PATCH v2 6/6] arm64: renesas: r8a7795: Add L2 cache-controller nodes".

---
  arch/arm64/boot/dts/renesas/r8a7795.dtsi | 6 ++++++
  1 file changed, 6 insertions(+)
arch/arm64/boot/dts/renesas/r8a7795.dtsi +0 -0
index c07f4e83b988ba42..c572527afec3403a 100644
@@ -72,6 +72,12 @@
                cache-level = <2>;
        };
 
Quoted 9 lines

arch/arm64/boot/dts/renesas/r8a7795.dtsi line 80

Quoted 6 lines
arch/arm64/boot/dts/renesas/r8a7795.dtsi +6 -0
+       L2_CA53: cache-controller at 1 {
+               compatible = "cache";
+               cache-unified;
+               cache-level = <2>;
+       };
+

As we don't have any CA53 in the device tree yet, and it was rejected to add it, I'd think that we don't want these unused entries at the moment.

This is a preparatory step for adding the SYSC PM Domains.

Quoted 5 lines

I'd propose to add the CA53 entries, first. And then add their L2 cache entries.

Based on the outcome of the discussion for the CA57 we have to see if we want to add the unused cache-unified and cache-level, then, too.

These are specified by ePAPR, as I said before.
Remember, DT describes the hardware, not what Linux (or any other OS) is using.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

#13 lore raw

PATCH v3 7/7 arm64: dts: r8a7795: Add CA53 L2 cache-controller node

Hi Geert,

Quoted 37 lines · Geert Uytterhoeven

Hi Dirk,

Quoted 24 lines · Dirk Behme
Quoted 23 lines · Geert Uytterhoeven

Add a device node for the Cortex-A53 L2 cache-controller.

The L2 cache for the Cortex-A53 CPU cores is 512 KiB large (organized as 32 KiB x 16 ways).

---
v3:
- Remaining part of "[PATCH v2 6/6] arm64: renesas: r8a7795: Add L2 cache-controller nodes".

---
   arch/arm64/boot/dts/renesas/r8a7795.dtsi | 6 ++++++
   1 file changed, 6 insertions(+)
arch/arm64/boot/dts/renesas/r8a7795.dtsi +0 -0
index c07f4e83b988ba42..c572527afec3403a 100644
@@ -72,6 +72,12 @@
                 cache-level = <2>;
         };
 
Quoted 9 lines

arch/arm64/boot/dts/renesas/r8a7795.dtsi line 80

Quoted 6 lines
arch/arm64/boot/dts/renesas/r8a7795.dtsi +6 -0
+       L2_CA53: cache-controller at 1 {
+               compatible = "cache";
+               cache-unified;
+               cache-level = <2>;
+       };
+

As we don't have any CA53 in the device tree yet, and it was rejected to add it, I'd think that we don't want these unused entries at the moment.

Quoted 1 line

This is a preparatory step for adding the SYSC PM Domains.

Yes. But what do you want to control if it's not enabled at all?

To my understanding, as long as we don't enable the CA53 cores, we don't enable their L2 caches, too. And then we don't have to PM control them?

Quoted 9 lines
Quoted 5 lines

I'd propose to add the CA53 entries, first. And then add their L2 cache entries.

Based on the outcome of the discussion for the CA57 we have to see if we want to add the unused cache-unified and cache-level, then, too.

These are specified by ePAPR, as I said before.
Remember, DT describes the hardware, not what Linux (or any other OS) is using.

Yes, this is understood :)

Your argument is the Spec/ePAPR, my point of view is the practical implementation. I'd think both are valid. Therefore let's see what Sudeep thinks ;)

Best regards

Dirk

#14 lore raw

PATCH v3 7/7 arm64: dts: r8a7795: Add CA53 L2 cache-controller node

In reply to Geert Uytterhoeven
Quoted 3 lines · Geert Uytterhoeven

Hi Dirk,

On Tue, Feb 16, 2016 at 7:44 AM, Dirk Behme <[email protected]> wrote:

[...]

Quoted 9 lines
Quoted 3 lines

As we don't have any CA53 in the device tree yet, and it was rejected to add it, I'd think that we don't want these unused entries at the moment.

This is a preparatory step for adding the SYSC PM Domains.

Quoted 3 lines

I'd propose to add the CA53 entries, first. And then add their L2 cache entries.

Quoted 7 lines
Quoted 2 lines

Based on the outcome of the discussion for the CA57 we have to see if we want to add the unused cache-unified and cache-level, then, too.

These are specified by ePAPR, as I said before.
Remember, DT describes the hardware, not what Linux (or any other OS) is using.

I completely agree and I mentioned the same in the other email.

Signature · 2 lines
Regards,
Sudeep
#15 lore raw

v3 cover ARM/arm64: dts: renesas: Add/complete L2 cache-controller nodes

In reply to Geert Uytterhoeven
Quoted 30 lines · Geert Uytterhoeven

Hi Simon, Magnus,

This patch series adds the missing L2 cache-controller nodes to the DTSes for various Renesas ARM-based SoCs, or completes the existing nodes, and links the CPU nodes to them.

For R-Mobile APE6 (r8a73a4), the L2 cache-controllers are also linked to the respective (already existing) SYSC Power Domains. Fortunately these Power Domains were never powered down, as they are parents of the Power Domains containing CPU cores. This may change in the future.

For R-Car Gen2 and Gen3 (r8a779x), this serves as a preparatory step for adding SYSC Power Domain support later.

Changes compared to v2:
- Dropped "arm,data-latency" and "arm,tag-latency" properties, as they may not be valid when using virtualization,
- Dropped already applied parts of "[PATCH v2 6/6] arm64: renesas:
r8a7795: Add L2 cache-controller nodes",
- Changed one-line summary prefix to match current arm-soc practices.

This series is against renesas-devel-20160215-v4.5-rc4.
It has been tested on r8a73a4/ape6evm, r8a7791/koelsch, r8a7794/alt, and r8a7795/salvator-x.

For your convenience, I've also pushed this series to
git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git#topic/l2-cache-v3

Thanks for applying!

Quoted 8 lines

Geert Uytterhoeven (7):
ARM: dts: r8a73a4: Add L2 cache-controller nodes
ARM: dts: r8a7790: Add L2 cache-controller nodes
ARM: dts: r8a7791: Add L2 cache-controller node
ARM: dts: r8a7793: Add L2 cache-controller node
ARM: dts: r8a7794: Add L2 cache-controller node
arm64: dts: r8a7795: Add missing properties to CA57 L2 cache node
arm64: dts: r8a7795: Add CA53 L2 cache-controller node

Thanks, I have queued these up for v4.6.