[PATCH] ARM: formalize an IPI for CPU wake-ups
Magnus Damm
magnus.damm at gmail.com
Wed Aug 8 02:52:12 EDT 2012
On Tue, Jul 31, 2012 at 3:19 AM, Stephen Boyd <sboyd at 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.
--- 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 at opensource.se>
Thanks,
/ magnus
More information about the linux-arm-kernel
mailing list