* [PATCH v2 1/5] arm64: dts: r8a7796: Add Cortex-A57 CPU cores
2017-03-07 18:03 [PATCH v2 0/5] arm64: dts: r8a7796: Add Secondary CPU Cores Geert Uytterhoeven
@ 2017-03-07 18:03 ` Geert Uytterhoeven
2017-03-07 18:03 ` [PATCH v2 2/5] arm64: dts: r8a7796: Add Cortex-A57 PMU node Geert Uytterhoeven
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Geert Uytterhoeven @ 2017-03-07 18:03 UTC (permalink / raw)
To: linux-arm-kernel
From: Takeshi Kihara <takeshi.kihara.df@renesas.com>
This patch adds Cortex-A57 CPU cores to R8A7796 SoC for a total of
2 x Cortex-A57.
Signed-off-by: Takeshi Kihara <takeshi.kihara.df@renesas.com>
[geert: Rebased]
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v2:
- No changes.
---
arch/arm64/boot/dts/renesas/r8a7796.dtsi | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
index 27f7dd9bd988d3b0..d2a2110fc7fc3d23 100644
--- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
@@ -37,7 +37,6 @@
#address-cells = <1>;
#size-cells = <0>;
- /* 1 core only at this point */
a57_0: cpu at 0 {
compatible = "arm,cortex-a57", "arm,armv8";
reg = <0x0>;
@@ -47,6 +46,15 @@
enable-method = "psci";
};
+ a57_1: cpu at 1 {
+ compatible = "arm,cortex-a57","arm,armv8";
+ reg = <0x1>;
+ device_type = "cpu";
+ power-domains = <&sysc R8A7796_PD_CA57_CPU1>;
+ next-level-cache = <&L2_CA57>;
+ enable-method = "psci";
+ };
+
L2_CA57: cache-controller-0 {
compatible = "cache";
power-domains = <&sysc R8A7796_PD_CA57_SCU>;
@@ -100,7 +108,7 @@
<0x0 0xf1040000 0 0x20000>,
<0x0 0xf1060000 0 0x20000>;
interrupts = <GIC_PPI 9
- (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
+ (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
clocks = <&cpg CPG_MOD 408>;
clock-names = "clk";
power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
@@ -109,13 +117,13 @@
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13
- (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+ (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14
- (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+ (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11
- (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+ (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10
- (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
+ (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
};
wdt0: watchdog at e6020000 {
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH v2 2/5] arm64: dts: r8a7796: Add Cortex-A57 PMU node
2017-03-07 18:03 [PATCH v2 0/5] arm64: dts: r8a7796: Add Secondary CPU Cores Geert Uytterhoeven
2017-03-07 18:03 ` [PATCH v2 1/5] arm64: dts: r8a7796: Add Cortex-A57 CPU cores Geert Uytterhoeven
@ 2017-03-07 18:03 ` Geert Uytterhoeven
2017-03-07 18:03 ` [PATCH v2 3/5] arm64: dts: r8a7796: Add CA53 L2 cache-controller node Geert Uytterhoeven
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Geert Uytterhoeven @ 2017-03-07 18:03 UTC (permalink / raw)
To: linux-arm-kernel
From: Takeshi Kihara <takeshi.kihara.df@renesas.com>
Enable the performance monitor unit for the Cortex-A57 cores on the
R8A7796 SoC.
Signed-off-by: Takeshi Kihara <takeshi.kihara.df@renesas.com>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v2:
- New.
---
arch/arm64/boot/dts/renesas/r8a7796.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
index d2a2110fc7fc3d23..454e1292f9108b34 100644
--- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
@@ -252,6 +252,14 @@
reg = <0 0xe6060000 0 0x50c>;
};
+ pmu_a57 {
+ compatible = "arm,cortex-a57-pmu";
+ interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-affinity = <&a57_0>,
+ <&a57_1>;
+ };
+
cpg: clock-controller at e6150000 {
compatible = "renesas,r8a7796-cpg-mssr";
reg = <0 0xe6150000 0 0x1000>;
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH v2 3/5] arm64: dts: r8a7796: Add CA53 L2 cache-controller node
2017-03-07 18:03 [PATCH v2 0/5] arm64: dts: r8a7796: Add Secondary CPU Cores Geert Uytterhoeven
2017-03-07 18:03 ` [PATCH v2 1/5] arm64: dts: r8a7796: Add Cortex-A57 CPU cores Geert Uytterhoeven
2017-03-07 18:03 ` [PATCH v2 2/5] arm64: dts: r8a7796: Add Cortex-A57 PMU node Geert Uytterhoeven
@ 2017-03-07 18:03 ` Geert Uytterhoeven
2017-03-07 18:03 ` [PATCH v2 4/5] arm64: dts: r8a7796: Add Cortex-A53 CPU cores Geert Uytterhoeven
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Geert Uytterhoeven @ 2017-03-07 18:03 UTC (permalink / raw)
To: linux-arm-kernel
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).
Extracted from a patch by Takeshi Kihara in the BSP.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v2:
- Drop unit address and reg property for integrated cache-controller.
---
arch/arm64/boot/dts/renesas/r8a7796.dtsi | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
index 454e1292f9108b34..b951f5ffe9e0faa0 100644
--- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
@@ -61,6 +61,13 @@
cache-unified;
cache-level = <2>;
};
+
+ L2_CA53: cache-controller-1 {
+ compatible = "cache";
+ power-domains = <&sysc R8A7796_PD_CA53_SCU>;
+ cache-unified;
+ cache-level = <2>;
+ };
};
extal_clk: extal {
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH v2 4/5] arm64: dts: r8a7796: Add Cortex-A53 CPU cores
2017-03-07 18:03 [PATCH v2 0/5] arm64: dts: r8a7796: Add Secondary CPU Cores Geert Uytterhoeven
` (2 preceding siblings ...)
2017-03-07 18:03 ` [PATCH v2 3/5] arm64: dts: r8a7796: Add CA53 L2 cache-controller node Geert Uytterhoeven
@ 2017-03-07 18:03 ` Geert Uytterhoeven
2017-03-07 18:03 ` [PATCH v2 5/5] arm64: dts: r8a7796: Add Cortex-A53 PMU node Geert Uytterhoeven
2017-03-10 9:28 ` [PATCH v2 0/5] arm64: dts: r8a7796: Add Secondary CPU Cores Simon Horman
5 siblings, 0 replies; 7+ messages in thread
From: Geert Uytterhoeven @ 2017-03-07 18:03 UTC (permalink / raw)
To: linux-arm-kernel
This patch adds Cortex-A53 CPU cores of R8A7796 SoC, and sets a total of
6 cores (2 x Cortex-A57 + 4 x Cortex-A53).
Based on a patch by Takeshi Kihara in the BSP.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v2:
- No changes.
---
arch/arm64/boot/dts/renesas/r8a7796.dtsi | 46 ++++++++++++++++++++++++++++----
1 file changed, 41 insertions(+), 5 deletions(-)
diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
index b951f5ffe9e0faa0..b32a180009dd10cc 100644
--- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
@@ -55,6 +55,42 @@
enable-method = "psci";
};
+ a53_0: cpu at 100 {
+ compatible = "arm,cortex-a53", "arm,armv8";
+ reg = <0x100>;
+ device_type = "cpu";
+ power-domains = <&sysc R8A7796_PD_CA53_CPU0>;
+ next-level-cache = <&L2_CA53>;
+ enable-method = "psci";
+ };
+
+ a53_1: cpu at 101 {
+ compatible = "arm,cortex-a53","arm,armv8";
+ reg = <0x101>;
+ device_type = "cpu";
+ power-domains = <&sysc R8A7796_PD_CA53_CPU1>;
+ next-level-cache = <&L2_CA53>;
+ enable-method = "psci";
+ };
+
+ a53_2: cpu at 102 {
+ compatible = "arm,cortex-a53","arm,armv8";
+ reg = <0x102>;
+ device_type = "cpu";
+ power-domains = <&sysc R8A7796_PD_CA53_CPU2>;
+ next-level-cache = <&L2_CA53>;
+ enable-method = "psci";
+ };
+
+ a53_3: cpu at 103 {
+ compatible = "arm,cortex-a53","arm,armv8";
+ reg = <0x103>;
+ device_type = "cpu";
+ power-domains = <&sysc R8A7796_PD_CA53_CPU3>;
+ next-level-cache = <&L2_CA53>;
+ enable-method = "psci";
+ };
+
L2_CA57: cache-controller-0 {
compatible = "cache";
power-domains = <&sysc R8A7796_PD_CA57_SCU>;
@@ -115,7 +151,7 @@
<0x0 0xf1040000 0 0x20000>,
<0x0 0xf1060000 0 0x20000>;
interrupts = <GIC_PPI 9
- (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
+ (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
clocks = <&cpg CPG_MOD 408>;
clock-names = "clk";
power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
@@ -124,13 +160,13 @@
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13
- (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
+ (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14
- (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
+ (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11
- (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
+ (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10
- (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+ (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>;
};
wdt0: watchdog at e6020000 {
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH v2 5/5] arm64: dts: r8a7796: Add Cortex-A53 PMU node
2017-03-07 18:03 [PATCH v2 0/5] arm64: dts: r8a7796: Add Secondary CPU Cores Geert Uytterhoeven
` (3 preceding siblings ...)
2017-03-07 18:03 ` [PATCH v2 4/5] arm64: dts: r8a7796: Add Cortex-A53 CPU cores Geert Uytterhoeven
@ 2017-03-07 18:03 ` Geert Uytterhoeven
2017-03-10 9:28 ` [PATCH v2 0/5] arm64: dts: r8a7796: Add Secondary CPU Cores Simon Horman
5 siblings, 0 replies; 7+ messages in thread
From: Geert Uytterhoeven @ 2017-03-07 18:03 UTC (permalink / raw)
To: linux-arm-kernel
Enable the performance monitor unit for the Cortex-A53 cores on the
R8A7796 SoC.
Extracted from a patch by Takeshi Kihara in the BSP.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v2:
- New.
---
arch/arm64/boot/dts/renesas/r8a7796.dtsi | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
index b32a180009dd10cc..a90abf14dc4e7c79 100644
--- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
@@ -303,6 +303,18 @@
<&a57_1>;
};
+ pmu_a53 {
+ compatible = "arm,cortex-a53-pmu";
+ interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-affinity = <&a53_0>,
+ <&a53_1>,
+ <&a53_2>,
+ <&a53_3>;
+ };
+
cpg: clock-controller at e6150000 {
compatible = "renesas,r8a7796-cpg-mssr";
reg = <0 0xe6150000 0 0x1000>;
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH v2 0/5] arm64: dts: r8a7796: Add Secondary CPU Cores
2017-03-07 18:03 [PATCH v2 0/5] arm64: dts: r8a7796: Add Secondary CPU Cores Geert Uytterhoeven
` (4 preceding siblings ...)
2017-03-07 18:03 ` [PATCH v2 5/5] arm64: dts: r8a7796: Add Cortex-A53 PMU node Geert Uytterhoeven
@ 2017-03-10 9:28 ` Simon Horman
5 siblings, 0 replies; 7+ messages in thread
From: Simon Horman @ 2017-03-10 9:28 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Mar 07, 2017 at 07:03:21PM +0100, Geert Uytterhoeven wrote:
> Hi Simon, Magnus,
>
> This patch series adds the second Cortex-A57 CPU core, the Cortex-A57
> PMU, and the Cortex-A53 L2 cache-controller, CPU, and PMU nodes on the
> Renesas R-Car M3-W SoC to its DTS file.
>
> Note that these patches add hardware description; actual enabling of the
> CPU depends on the PSCI firmware.
>
> With the current firmware version (v2.16.0), only the CA57 CPU cores are
> enabled, hence the last patch does not introduce undeterministic
> scheduling behavior due to migration between big and LITTLE cores.
>
> Changes compared to v1:
> - Add Cortex-A57 and Cortex-A53 PMU nodes,
> - Drop unit address and reg property for integrated cache-controller.
>
> Tested on r8a7796/salvator-x, with CPU hot(un)plug and system suspend.
>
> Thanks for applying!
Thanks.
This is appears to be in keeping with the discussion between Magnus,
yourself, myself and others in Brussels last month. Accordingly I have
queued-up these changes.
^ permalink raw reply [flat|nested] 7+ messages in thread