From patchwork Mon May 30 09:13:01 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Inderpal Singh X-Patchwork-Id: 1666 Return-Path: Delivered-To: unknown Received: from imap.gmail.com (74.125.159.109) by localhost6.localdomain6 with IMAP4-SSL; 08 Jun 2011 14:54:09 -0000 Delivered-To: patches@linaro.org Received: by 10.52.110.9 with SMTP id hw9cs227811vdb; Mon, 30 May 2011 02:14:57 -0700 (PDT) Received: by 10.231.142.103 with SMTP id p39mr5669080ibu.178.1306746896941; Mon, 30 May 2011 02:14:56 -0700 (PDT) Received: from mail-pw0-f50.google.com (mail-pw0-f50.google.com [209.85.160.50]) by mx.google.com with ESMTPS id r12si12418134iba.55.2011.05.30.02.14.55 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 30 May 2011 02:14:55 -0700 (PDT) Received-SPF: neutral (google.com: 209.85.160.50 is neither permitted nor denied by best guess record for domain of inderpal.singh@linaro.org) client-ip=209.85.160.50; Authentication-Results: mx.google.com; spf=neutral (google.com: 209.85.160.50 is neither permitted nor denied by best guess record for domain of inderpal.singh@linaro.org) smtp.mail=inderpal.singh@linaro.org Received: by pwi3 with SMTP id 3so1809526pwi.37 for ; Mon, 30 May 2011 02:14:55 -0700 (PDT) Received: by 10.142.230.6 with SMTP id c6mr741154wfh.415.1306746895044; Mon, 30 May 2011 02:14:55 -0700 (PDT) Received: from localhost.localdomain ([115.113.119.130]) by mx.google.com with ESMTPS id k20sm1684779wfh.20.2011.05.30.02.14.50 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 30 May 2011 02:14:54 -0700 (PDT) From: Inderpal Singh To: linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: kgene.kim@samsung.com, samsung@lists.linaro.org, patches@linaro.org, Inderpal Singh Subject: [PATCH] ARM: EXYNOS4: Fix secondary CPU boot after wake-up Date: Mon, 30 May 2011 14:43:01 +0530 Message-Id: <1306746781-21511-1-git-send-email-inderpal.s@samsung.com> X-Mailer: git-send-email 1.7.1 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 --- arch/arm/mach-exynos4/platsmp.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) 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)) {