linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: psci: keystone: remove keystone_smp_ops code if psci is supported
@ 2015-07-01 12:13 Vitaly Andrianov
  2015-07-01 12:13 ` [PATCH] keystone: dts: add psci command definition Vitaly Andrianov
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Vitaly Andrianov @ 2015-07-01 12:13 UTC (permalink / raw)
  To: linux-arm-kernel

If we enable psci support we don't need keystone_smp_ops anymore.

Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
---
 arch/arm/mach-keystone/Makefile   | 2 ++
 arch/arm/mach-keystone/keystone.c | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/arch/arm/mach-keystone/Makefile b/arch/arm/mach-keystone/Makefile
index 25d9239..5cc5ca4 100644
--- a/arch/arm/mach-keystone/Makefile
+++ b/arch/arm/mach-keystone/Makefile
@@ -3,7 +3,9 @@ obj-y					:= keystone.o smc.o
 plus_sec := $(call as-instr,.arch_extension sec,+sec)
 AFLAGS_smc.o				:=-Wa,-march=armv7-a$(plus_sec)
 
+ifneq ($(CONFIG_ARM_PSCI),y)
 obj-$(CONFIG_SMP)			+= platsmp.o
+endif
 
 # PM domain driver for Keystone SOCs
 obj-$(CONFIG_ARCH_KEYSTONE)		+= pm_domain.o
diff --git a/arch/arm/mach-keystone/keystone.c b/arch/arm/mach-keystone/keystone.c
index e2880105..9cc489c 100644
--- a/arch/arm/mach-keystone/keystone.c
+++ b/arch/arm/mach-keystone/keystone.c
@@ -105,7 +105,9 @@ DT_MACHINE_START(KEYSTONE, "Keystone")
 #if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)
 	.dma_zone_size	= SZ_2G,
 #endif
+#ifndef CONFIG_ARM_PSCI
 	.smp		= smp_ops(keystone_smp_ops),
+#endif
 	.init_machine	= keystone_init,
 	.dt_compat	= keystone_match,
 	.pv_fixup	= keystone_pv_fixup,
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH] keystone: dts: add psci command definition
  2015-07-01 12:13 [PATCH] ARM: psci: keystone: remove keystone_smp_ops code if psci is supported Vitaly Andrianov
@ 2015-07-01 12:13 ` Vitaly Andrianov
  2015-07-01 12:41   ` Mark Rutland
  2015-07-01 12:39 ` [PATCH] ARM: psci: keystone: remove keystone_smp_ops code if psci is supported Mark Rutland
  2015-07-01 14:12 ` Russell King - ARM Linux
  2 siblings, 1 reply; 7+ messages in thread
From: Vitaly Andrianov @ 2015-07-01 12:13 UTC (permalink / raw)
  To: linux-arm-kernel

This commit adds definition for cpu_on, cpu_off and cpu_suspend commands.
These definitions must match the corresponding PSCI definitions in
boot monitor.

Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
---
 arch/arm/boot/dts/keystone.dtsi | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/arch/arm/boot/dts/keystone.dtsi b/arch/arm/boot/dts/keystone.dtsi
index c06542b..ab60fca 100644
--- a/arch/arm/boot/dts/keystone.dtsi
+++ b/arch/arm/boot/dts/keystone.dtsi
@@ -58,6 +58,14 @@
 			     <GIC_SPI 23 IRQ_TYPE_EDGE_RISING>;
 	};
 
+	psci {
+		compatible	= "arm,psci";
+		method		= "smc";
+		cpu_suspend	= <0x84000001>;
+		cpu_off		= <0x84000002>;
+		cpu_on		= <0x84000003>;
+	};
+
 	soc {
 		#address-cells = <1>;
 		#size-cells = <1>;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH] ARM: psci: keystone: remove keystone_smp_ops code if psci is supported
  2015-07-01 12:13 [PATCH] ARM: psci: keystone: remove keystone_smp_ops code if psci is supported Vitaly Andrianov
  2015-07-01 12:13 ` [PATCH] keystone: dts: add psci command definition Vitaly Andrianov
@ 2015-07-01 12:39 ` Mark Rutland
  2015-07-01 14:12 ` Russell King - ARM Linux
  2 siblings, 0 replies; 7+ messages in thread
From: Mark Rutland @ 2015-07-01 12:39 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Jul 01, 2015 at 01:13:03PM +0100, Vitaly Andrianov wrote:
> If we enable psci support we don't need keystone_smp_ops anymore.

You need them for existing users.

> 
> Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
> ---
>  arch/arm/mach-keystone/Makefile   | 2 ++
>  arch/arm/mach-keystone/keystone.c | 2 ++
>  2 files changed, 4 insertions(+)
> 
> diff --git a/arch/arm/mach-keystone/Makefile b/arch/arm/mach-keystone/Makefile
> index 25d9239..5cc5ca4 100644
> --- a/arch/arm/mach-keystone/Makefile
> +++ b/arch/arm/mach-keystone/Makefile
> @@ -3,7 +3,9 @@ obj-y					:= keystone.o smc.o
>  plus_sec := $(call as-instr,.arch_extension sec,+sec)
>  AFLAGS_smc.o				:=-Wa,-march=armv7-a$(plus_sec)
>  
> +ifneq ($(CONFIG_ARM_PSCI),y)
>  obj-$(CONFIG_SMP)			+= platsmp.o
> +endif
>  
>  # PM domain driver for Keystone SOCs
>  obj-$(CONFIG_ARCH_KEYSTONE)		+= pm_domain.o
> diff --git a/arch/arm/mach-keystone/keystone.c b/arch/arm/mach-keystone/keystone.c
> index e2880105..9cc489c 100644
> --- a/arch/arm/mach-keystone/keystone.c
> +++ b/arch/arm/mach-keystone/keystone.c
> @@ -105,7 +105,9 @@ DT_MACHINE_START(KEYSTONE, "Keystone")
>  #if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)
>  	.dma_zone_size	= SZ_2G,
>  #endif
> +#ifndef CONFIG_ARM_PSCI
>  	.smp		= smp_ops(keystone_smp_ops),
> +#endif

This will prevent building a kernel that supports PSCI and your legacy
SMP bringup.

I don't think this is necessary, given the code in setup_arch and the
absence of mdesc->smp_init for keystone. A single kernel can support
both, and it should support both.

Thanks,
Mark.

>  	.init_machine	= keystone_init,
>  	.dt_compat	= keystone_match,
>  	.pv_fixup	= keystone_pv_fixup,
> -- 
> 1.9.1
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] keystone: dts: add psci command definition
  2015-07-01 12:13 ` [PATCH] keystone: dts: add psci command definition Vitaly Andrianov
@ 2015-07-01 12:41   ` Mark Rutland
  2015-07-01 13:05     ` Vitaly Andrianov
  0 siblings, 1 reply; 7+ messages in thread
From: Mark Rutland @ 2015-07-01 12:41 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Jul 01, 2015 at 01:13:04PM +0100, Vitaly Andrianov wrote:
> This commit adds definition for cpu_on, cpu_off and cpu_suspend commands.
> These definitions must match the corresponding PSCI definitions in
> boot monitor.
> 
> Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
> ---
>  arch/arm/boot/dts/keystone.dtsi | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/keystone.dtsi b/arch/arm/boot/dts/keystone.dtsi
> index c06542b..ab60fca 100644
> --- a/arch/arm/boot/dts/keystone.dtsi
> +++ b/arch/arm/boot/dts/keystone.dtsi
> @@ -58,6 +58,14 @@
>  			     <GIC_SPI 23 IRQ_TYPE_EDGE_RISING>;
>  	};
>  
> +	psci {
> +		compatible	= "arm,psci";
> +		method		= "smc";
> +		cpu_suspend	= <0x84000001>;
> +		cpu_off		= <0x84000002>;
> +		cpu_on		= <0x84000003>;
> +	};

It would be nice to have this injected automatically by the bootlaoder
when PSCI is present, as that way users of existing systems can upgrade
their DTB and still have things boot.

Thanks,
Mark.

> +
>  	soc {
>  		#address-cells = <1>;
>  		#size-cells = <1>;
> -- 
> 1.9.1
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] keystone: dts: add psci command definition
  2015-07-01 12:41   ` Mark Rutland
@ 2015-07-01 13:05     ` Vitaly Andrianov
  2015-07-01 15:03       ` santosh shilimkar
  0 siblings, 1 reply; 7+ messages in thread
From: Vitaly Andrianov @ 2015-07-01 13:05 UTC (permalink / raw)
  To: linux-arm-kernel



On 07/01/2015 08:41 AM, Mark Rutland wrote:
> On Wed, Jul 01, 2015 at 01:13:04PM +0100, Vitaly Andrianov wrote:
>> This commit adds definition for cpu_on, cpu_off and cpu_suspend commands.
>> These definitions must match the corresponding PSCI definitions in
>> boot monitor.
>>
>> Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
>> ---
>>   arch/arm/boot/dts/keystone.dtsi | 8 ++++++++
>>   1 file changed, 8 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/keystone.dtsi b/arch/arm/boot/dts/keystone.dtsi
>> index c06542b..ab60fca 100644
>> --- a/arch/arm/boot/dts/keystone.dtsi
>> +++ b/arch/arm/boot/dts/keystone.dtsi
>> @@ -58,6 +58,14 @@
>>   			     <GIC_SPI 23 IRQ_TYPE_EDGE_RISING>;
>>   	};
>>
>> +	psci {
>> +		compatible	= "arm,psci";
>> +		method		= "smc";
>> +		cpu_suspend	= <0x84000001>;
>> +		cpu_off		= <0x84000002>;
>> +		cpu_on		= <0x84000003>;
>> +	};
>
> It would be nice to have this injected automatically by the bootlaoder
> when PSCI is present, as that way users of existing systems can upgrade
> their DTB and still have things boot.
>
> Thanks,
> Mark.
>

So, KS2 kernel doesn't need that commit and has to wait this from 
u-boot? Actually PSCI support is a part of KS2 boot-monitor. U-boot is 
just responsible to load and start it, but doesn't know whether PSCI is 
supported.

In any case you are right. The DTS also doesn't know whether boot- 
monitor supports PSCI. It is better to make u-boot to fix up the dts.
Let's forget about this patch. I'll work on dts fix-up in u-boot.

Thanks,
Vitaly

>> +
>>   	soc {
>>   		#address-cells = <1>;
>>   		#size-cells = <1>;
>> --
>> 1.9.1
>>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] ARM: psci: keystone: remove keystone_smp_ops code if psci is supported
  2015-07-01 12:13 [PATCH] ARM: psci: keystone: remove keystone_smp_ops code if psci is supported Vitaly Andrianov
  2015-07-01 12:13 ` [PATCH] keystone: dts: add psci command definition Vitaly Andrianov
  2015-07-01 12:39 ` [PATCH] ARM: psci: keystone: remove keystone_smp_ops code if psci is supported Mark Rutland
@ 2015-07-01 14:12 ` Russell King - ARM Linux
  2 siblings, 0 replies; 7+ messages in thread
From: Russell King - ARM Linux @ 2015-07-01 14:12 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Jul 01, 2015 at 08:13:03AM -0400, Vitaly Andrianov wrote:
> If we enable psci support we don't need keystone_smp_ops anymore.
> 
> Signed-off-by: Vitaly Andrianov <vitalya@ti.com>

However, this is not necessary.  If you look at arch/arm/kernel/setup.c,
it contains this:

        psci_init();
#ifdef CONFIG_SMP
        if (is_smp()) {
                if (!mdesc->smp_init || !mdesc->smp_init()) {
                        if (psci_smp_available())
                                smp_set_ops(&psci_smp_ops);
                        else if (mdesc->smp)
                                smp_set_ops(mdesc->smp);
                }
                smp_init_cpus();
                smp_build_mpidr_hash();
        }
#endif

So, the platforms' SMP ops won't be used even if they're provided
when PSCI is available.

-- 
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] keystone: dts: add psci command definition
  2015-07-01 13:05     ` Vitaly Andrianov
@ 2015-07-01 15:03       ` santosh shilimkar
  0 siblings, 0 replies; 7+ messages in thread
From: santosh shilimkar @ 2015-07-01 15:03 UTC (permalink / raw)
  To: linux-arm-kernel

On 7/1/2015 6:05 AM, Vitaly Andrianov wrote:
>
>
> On 07/01/2015 08:41 AM, Mark Rutland wrote:
>> On Wed, Jul 01, 2015 at 01:13:04PM +0100, Vitaly Andrianov wrote:
>>> This commit adds definition for cpu_on, cpu_off and cpu_suspend
>>> commands.
>>> These definitions must match the corresponding PSCI definitions in
>>> boot monitor.
>>>
>>> Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
>>> ---
>>>   arch/arm/boot/dts/keystone.dtsi | 8 ++++++++
>>>   1 file changed, 8 insertions(+)
>>>
>>> diff --git a/arch/arm/boot/dts/keystone.dtsi
>>> b/arch/arm/boot/dts/keystone.dtsi
>>> index c06542b..ab60fca 100644
>>> --- a/arch/arm/boot/dts/keystone.dtsi
>>> +++ b/arch/arm/boot/dts/keystone.dtsi
>>> @@ -58,6 +58,14 @@
>>>                    <GIC_SPI 23 IRQ_TYPE_EDGE_RISING>;
>>>       };
>>>
>>> +    psci {
>>> +        compatible    = "arm,psci";
>>> +        method        = "smc";
>>> +        cpu_suspend    = <0x84000001>;
>>> +        cpu_off        = <0x84000002>;
>>> +        cpu_on        = <0x84000003>;
>>> +    };
>>
>> It would be nice to have this injected automatically by the bootlaoder
>> when PSCI is present, as that way users of existing systems can upgrade
>> their DTB and still have things boot.
>>
>> Thanks,
>> Mark.
>>
>
> So, KS2 kernel doesn't need that commit and has to wait this from
> u-boot? Actually PSCI support is a part of KS2 boot-monitor. U-boot is
> just responsible to load and start it, but doesn't know whether PSCI is
> supported.
>
> In any case you are right. The DTS also doesn't know whether boot-
> monitor supports PSCI. It is better to make u-boot to fix up the dts.
> Let's forget about this patch. I'll work on dts fix-up in u-boot.
>
Good. We can't break existing users as already pointed out earlier.
Thanks Vitaly for following it up.

Regards,
Santosh

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-07-01 15:03 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-01 12:13 [PATCH] ARM: psci: keystone: remove keystone_smp_ops code if psci is supported Vitaly Andrianov
2015-07-01 12:13 ` [PATCH] keystone: dts: add psci command definition Vitaly Andrianov
2015-07-01 12:41   ` Mark Rutland
2015-07-01 13:05     ` Vitaly Andrianov
2015-07-01 15:03       ` santosh shilimkar
2015-07-01 12:39 ` [PATCH] ARM: psci: keystone: remove keystone_smp_ops code if psci is supported Mark Rutland
2015-07-01 14:12 ` Russell King - ARM Linux

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).