diff mbox

ARM: dts: r8a7794: add SMP support

Message ID 27171008.uuY7altQup@wasted.cogentembedded.com (mailing list archive)
State Superseded
Delegated to: Simon Horman
Headers show

Commit Message

Sergei Shtylyov June 21, 2016, 10:03 p.m. UTC
Add the device tree node for the Advanced Power Management Unit (APMU).
Use the "enable-method" prop to  point out that the APMU should be used
for the SMP support.

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

---
This patch is against the 'renesas-devel-20160621-v4.7-rc4' tag of Simon
Horman's 'renesas.git' repo.  It depends on Magnus'/Geert's SMP patchset...

SMP/PM basically works but you can't offline CPU0 (system hangs)...

 arch/arm/boot/dts/r8a7794.dtsi |    7 +++++++
 1 file changed, 7 insertions(+)

Comments

Geert Uytterhoeven June 22, 2016, 7:20 a.m. UTC | #1
Hi Sergei,

On Wed, Jun 22, 2016 at 12:03 AM, Sergei Shtylyov
<sergei.shtylyov@cogentembedded.com> wrote:
> Add the device tree node for the Advanced Power Management Unit (APMU).
> Use the "enable-method" prop to  point out that the APMU should be used
> for the SMP support.
>
> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>

> SMP/PM basically works but you can't offline CPU0 (system hangs)...

On #renesas-soc you said it hangs on SILK only, and succeeds on Porter,
with a WARNING in the clk core (which one?) during suspend?

Thanks!

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@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
Sergei Shtylyov June 22, 2016, 10:08 a.m. UTC | #2
On 6/22/2016 10:20 AM, Geert Uytterhoeven wrote:

>> Add the device tree node for the Advanced Power Management Unit (APMU).
>> Use the "enable-method" prop to  point out that the APMU should be used
>> for the SMP support.
>>
>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
>
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
>
>> SMP/PM basically works but you can't offline CPU0 (system hangs)...
>
> On #renesas-soc you said it hangs on SILK only, and succeeds on Porter,
> with a WARNING in the clk core (which one?) during suspend?

    Porter is based on R8A7791 (WARNING seemed to be caused by the CAN 
driver). :-)

> Thanks!
>
> Gr{oetje,eeting}s,
>
>                         Geert

MBR, Sergei
Geert Uytterhoeven June 22, 2016, 10:20 a.m. UTC | #3
Hi Sergei,

On Wed, Jun 22, 2016 at 12:08 PM, Sergei Shtylyov
<sergei.shtylyov@cogentembedded.com> wrote:
> On 6/22/2016 10:20 AM, Geert Uytterhoeven wrote:
>
>>> Add the device tree node for the Advanced Power Management Unit (APMU).
>>> Use the "enable-method" prop to  point out that the APMU should be used
>>> for the SMP support.
>>>
>>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
>>
>>
>> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
>>
>>> SMP/PM basically works but you can't offline CPU0 (system hangs)...
>>
>>
>> On #renesas-soc you said it hangs on SILK only, and succeeds on Porter,
>> with a WARNING in the clk core (which one?) during suspend?
>
>    Porter is based on R8A7791 (WARNING seemed to be caused by the CAN
> driver). :-)

Oh right, mixing up boards.

Will try on (remote) ALT when I find some time...

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@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
Geert Uytterhoeven June 23, 2016, 8:11 a.m. UTC | #4
Hi Sergei,

On Wed, Jun 22, 2016 at 12:20 PM, Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
> On Wed, Jun 22, 2016 at 12:08 PM, Sergei Shtylyov
> <sergei.shtylyov@cogentembedded.com> wrote:
>> On 6/22/2016 10:20 AM, Geert Uytterhoeven wrote:
>>
>>>> Add the device tree node for the Advanced Power Management Unit (APMU).
>>>> Use the "enable-method" prop to  point out that the APMU should be used
>>>> for the SMP support.
>>>>
>>>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
>>>
>>>
>>> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
>>>
>>>> SMP/PM basically works but you can't offline CPU0 (system hangs)...
>>>
>>>
>>> On #renesas-soc you said it hangs on SILK only, and succeeds on Porter,
>>> with a WARNING in the clk core (which one?) during suspend?
>>
>>    Porter is based on R8A7791 (WARNING seemed to be caused by the CAN
>> driver). :-)
>
> Oh right, mixing up boards.
>
> Will try on (remote) ALT when I find some time...

The second CPU boots (irrespective of MD21 setting), but the kernel
starts spewing:

    clocksource: Switched to clocksource arch_sys_counter
    WARNING: Underflow in clocksource 'arch_sys_counter' observed,
time update ignored.
             Please report this, consider using a different
clocksource, if possible.
             Your kernel is probably still fine.
    WARNING: Underflow in clocksource 'arch_sys_counter' observed,
time update ignored.
             Please report this, consider using a different
clocksource, if possible.
             Your kernel is probably still fine.

Seems like the secondary CPU also needs CNTVOFF initialization,
which is done in the BSP in arch/arm/mach-shmobile/headsmp.S.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@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
diff mbox

Patch

Index: renesas/arch/arm/boot/dts/r8a7794.dtsi
===================================================================
--- renesas.orig/arch/arm/boot/dts/r8a7794.dtsi
+++ renesas/arch/arm/boot/dts/r8a7794.dtsi
@@ -37,6 +37,7 @@ 
 	cpus {
 		#address-cells = <1>;
 		#size-cells = <0>;
+		enable-method = "renesas,apmu";
 
 		cpu0: cpu@0 {
 			device_type = "cpu";
@@ -65,6 +66,12 @@ 
 		};
 	};
 
+	apmu@e6151000 {
+		compatible = "renesas,r8a7794-apmu", "renesas,apmu";
+		reg = <0 0xe6151000 0 0x188>;
+		cpus = <&cpu0 &cpu1>;
+	};
+
 	gic: interrupt-controller@f1001000 {
 		compatible = "arm,gic-400";
 		#interrupt-cells = <3>;