diff mbox

ARM: EXYNOS4: Fix secondary CPU boot after wake-up

Message ID 1306746781-21511-1-git-send-email-inderpal.s@samsung.com
State Superseded
Headers show

Commit Message

Inderpal Singh May 30, 2011, 9:13 a.m. UTC
1. After wake-up, the system-wide flags register loses its value.
   Hence, write the address of secondary startup function to
   successfully boot the secondary CPU.

2. Fix to remove the "Unknown IPI message 0x1" message when
   secondary CPU boots.

Signed-off-by: Inderpal Singh <inderpal.s@samsung.com>
---
 arch/arm/mach-exynos4/platsmp.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

Comments

Russell King - ARM Linux May 30, 2011, 9:54 p.m. UTC | #1
On Mon, May 30, 2011 at 03:08:17PM +0530, Santosh Shilimkar wrote:
> When do you plan to fix the SGI usage as discussed
> in above thread. I thought SGI1 usage was ok for OMAP,
> realview/versatile and MSM.

I'd like the use of the arbitary SGI1 to fade away, to be replaced with
something a little saner (eg, SGI0 being the first SGI).  That just
means you'll end up with a warning about SGI0 instead.  Let's just
ignore them for the time being (but please change to SGI0 anyway.)
Santosh Shilimkar May 31, 2011, 5 a.m. UTC | #2
On 5/31/2011 3:24 AM, Russell King - ARM Linux wrote:
> On Mon, May 30, 2011 at 03:08:17PM +0530, Santosh Shilimkar wrote:
>> When do you plan to fix the SGI usage as discussed
>> in above thread. I thought SGI1 usage was ok for OMAP,
>> realview/versatile and MSM.
>
> I'd like the use of the arbitary SGI1 to fade away, to be replaced with
> something a little saner (eg, SGI0 being the first SGI).  That just
> means you'll end up with a warning about SGI0 instead.  Let's just
> ignore them for the time being (but please change to SGI0 anyway.)

I mean SGIO. SGI1 was typo. Ignoring that warning isn't good idea.
Platforms which do aggressive CPU offline/online, will keep
getting this noise and hence need to be fixed.

How about my patch which was marking this as a wakeup
IPI instead of unknown one. Ofcourse with wakeup SGI
being used will be SGI0 instead of current SGI1.

If you are ok with it I can send an RFC patch ?

Regards
Santosh
diff mbox

Patch

diff --git a/arch/arm/mach-exynos4/platsmp.c b/arch/arm/mach-exynos4/platsmp.c
index 6d35878..11234c7 100644
--- a/arch/arm/mach-exynos4/platsmp.c
+++ b/arch/arm/mach-exynos4/platsmp.c
@@ -100,11 +100,17 @@  int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
 	write_pen_release(cpu);
 
 	/*
+	 * After wake-up, the system-wide flags register loses its value.
+	 * Hence, write the address of secondary startup function again.
+	 */ 
+	 __raw_writel(BSYM(virt_to_phys(exynos4_secondary_startup)), S5P_VA_SYSRAM);
+
+	/*
 	 * Send the secondary CPU a soft interrupt, thereby causing
 	 * the boot monitor to read the system wide flags register,
 	 * and branch to the address found there.
 	 */
-	smp_cross_call(cpumask_of(cpu), 1);
+	smp_send_reschedule(cpu);
 
 	timeout = jiffies + (1 * HZ);
 	while (time_before(jiffies, timeout)) {