diff mbox

ARM: formalize an IPI for CPU wake-ups

Message ID CANqRtoQ9BCPhQPi38vK__61G2yAY=g9s17NG3LhSnrxdOYnkDg@mail.gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Magnus Damm Aug. 8, 2012, 6:52 a.m. UTC
On Tue, Jul 31, 2012 at 3:19 AM, Stephen Boyd <sboyd@codeaurora.org> wrote:
> On 07/10/12 23:34, Kukjin Kim wrote:
>> Stephen Boyd wrote:
>>> Great. Kukjin Kim, can exynos use SGI0? It looks like exynos is the only
>>> one left to move to SGI0.
>>>
>> Yeah, EXYNOS can use SGI0 instead of SGI1 :)
>>
>>
>
> Russell, can we apply something like this?
>
> diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
> index 36c3984..090e32b 100644
> --- a/arch/arm/mach-exynos/platsmp.c
> +++ b/arch/arm/mach-exynos/platsmp.c
> @@ -139,7 +139,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
>
>                 __raw_writel(virt_to_phys(exynos4_secondary_startup),
>                         CPU1_BOOT_REG);
> -               gic_raise_softirq(cpumask_of(cpu), 1);
> +               gic_raise_softirq(cpumask_of(cpu), 0);
>
>                 if (pen_release == -1)
>                         break;
>
>
> I see we have another user of SGI1. Magnus/Rafael, can we move
> smp-emev2.c to use SGI0 instead of SGI1?

So I finally managed to try this out on my KZM9D board. The SMP bring
up code continues to work as expected, so it seems that SGI0 can be
used instead of SGI1 on EMEV2. Let's just say that the boot protocol
implemented by the mask ROM is rather poorly documented. Anyway, to
test I used the following patch on top of linux git 42a579a.

So if/where needed, please add my:

Acked-by: Magnus Damm <damm@opensource.se>

Thanks,

/ magnus

Comments

Stephen Boyd Aug. 13, 2012, 10:09 p.m. UTC | #1
On 08/07/12 23:52, Magnus Damm wrote:
> So I finally managed to try this out on my KZM9D board. The SMP bring
> up code continues to work as expected, so it seems that SGI0 can be
> used instead of SGI1 on EMEV2. Let's just say that the boot protocol
> implemented by the mask ROM is rather poorly documented. Anyway, to
> test I used the following patch on top of linux git 42a579a.
>
> --- 0001/arch/arm/mach-shmobile/smp-emev2.c
> +++ work/arch/arm/mach-shmobile/smp-emev2.c	2012-08-08 15:42:54.000000000 +0900
> @@ -82,7 +82,7 @@ int __cpuinit emev2_boot_secondary(unsig
>  	/* Tell ROM loader about our vector (in headsmp.S) */
>  	emev2_set_boot_vector(__pa(shmobile_secondary_vector));
>
> -	gic_raise_softirq(cpumask_of(cpu), 1);
> +	gic_raise_softirq(cpumask_of(cpu), 0);
>  	return 0;
>  }
>
> So if/where needed, please add my:
>
> Acked-by: Magnus Damm <damm@opensource.se>
>

Thanks Magnus, would you be able to merge this through the shmobile
tree? Otherwise I can put it in the patch tracker.
Stephen Boyd Aug. 22, 2012, 7:05 p.m. UTC | #2
On 08/13/12 15:09, Stephen Boyd wrote:
> On 08/07/12 23:52, Magnus Damm wrote:
>> So I finally managed to try this out on my KZM9D board. The SMP bring
>> up code continues to work as expected, so it seems that SGI0 can be
>> used instead of SGI1 on EMEV2. Let's just say that the boot protocol
>> implemented by the mask ROM is rather poorly documented. Anyway, to
>> test I used the following patch on top of linux git 42a579a.
>>
>> --- 0001/arch/arm/mach-shmobile/smp-emev2.c
>> +++ work/arch/arm/mach-shmobile/smp-emev2.c	2012-08-08 15:42:54.000000000 +0900
>> @@ -82,7 +82,7 @@ int __cpuinit emev2_boot_secondary(unsig
>>  	/* Tell ROM loader about our vector (in headsmp.S) */
>>  	emev2_set_boot_vector(__pa(shmobile_secondary_vector));
>>
>> -	gic_raise_softirq(cpumask_of(cpu), 1);
>> +	gic_raise_softirq(cpumask_of(cpu), 0);
>>  	return 0;
>>  }
>>
>> So if/where needed, please add my:
>>
>> Acked-by: Magnus Damm <damm@opensource.se>
>>
> Thanks Magnus, would you be able to merge this through the shmobile
> tree? Otherwise I can put it in the patch tracker.
>

Ok, I've put it in the patch tracker.
Magnus Damm Aug. 22, 2012, 9:23 p.m. UTC | #3
On Thu, Aug 23, 2012 at 4:05 AM, Stephen Boyd <sboyd@codeaurora.org> wrote:
> On 08/13/12 15:09, Stephen Boyd wrote:
>> On 08/07/12 23:52, Magnus Damm wrote:
>>> So I finally managed to try this out on my KZM9D board. The SMP bring
>>> up code continues to work as expected, so it seems that SGI0 can be
>>> used instead of SGI1 on EMEV2. Let's just say that the boot protocol
>>> implemented by the mask ROM is rather poorly documented. Anyway, to
>>> test I used the following patch on top of linux git 42a579a.
>>>
>>> --- 0001/arch/arm/mach-shmobile/smp-emev2.c
>>> +++ work/arch/arm/mach-shmobile/smp-emev2.c  2012-08-08 15:42:54.000000000 +0900
>>> @@ -82,7 +82,7 @@ int __cpuinit emev2_boot_secondary(unsig
>>>      /* Tell ROM loader about our vector (in headsmp.S) */
>>>      emev2_set_boot_vector(__pa(shmobile_secondary_vector));
>>>
>>> -    gic_raise_softirq(cpumask_of(cpu), 1);
>>> +    gic_raise_softirq(cpumask_of(cpu), 0);
>>>      return 0;
>>>  }
>>>
>>> So if/where needed, please add my:
>>>
>>> Acked-by: Magnus Damm <damm@opensource.se>
>>>
>> Thanks Magnus, would you be able to merge this through the shmobile
>> tree? Otherwise I can put it in the patch tracker.
>>
>
> Ok, I've put it in the patch tracker.

Oh, thanks a lot! We're currently in the middle of rearranging our
kernel repository handling so things move a bit slower than usual...

Thanks for your help!

/ magnus
diff mbox

Patch

--- 0001/arch/arm/mach-shmobile/smp-emev2.c
+++ work/arch/arm/mach-shmobile/smp-emev2.c	2012-08-08 15:42:54.000000000 +0900
@@ -82,7 +82,7 @@  int __cpuinit emev2_boot_secondary(unsig
 	/* Tell ROM loader about our vector (in headsmp.S) */
 	emev2_set_boot_vector(__pa(shmobile_secondary_vector));

-	gic_raise_softirq(cpumask_of(cpu), 1);
+	gic_raise_softirq(cpumask_of(cpu), 0);
 	return 0;
 }