[PATCH] ARM: formalize an IPI for CPU wake-ups
From: magnus.damm@gmail.com (Magnus Damm)
Date: 2012-08-08 06:52:12
On Tue, Jul 31, 2012 at 3:19 AM, Stephen Boyd [off-list ref] wrote:
quoted hunk ↗ jump to hunk
On 07/10/12 23:34, Kukjin Kim wrote:quoted
Stephen Boyd wrote:quoted
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 <redacted> Thanks, / magnus