* Tony Lindgren <t...@atomide.com> [100806 09:55]:
> * Kevin Hilman <khil...@deeprootsystems.com> [100806 01:48]:
> > 
> > > Also with omap_4430sdp_defconfig, I see these compile errors
> > > arch/arm/kernel/entry-armv.S: Assembler messages:
> > > arch/arm/kernel/entry-armv.S:48: Error: bad instruction `test_for_ipi 
> > > r0,r6,r5,lr'
> > > arch/arm/kernel/entry-armv.S:48: Error: bad instruction `test_for_ipi 
> > > r0,r6,r5,lr'
> > > make[1]: *** [arch/arm/kernel/entry-armv.o] Error 1
> > > make: *** [arch/arm/kernel] Error 2
> > >
> > > Doing a git log on entry-armv.S shows me a top commit which might
> > > be an issue if conflicts are'nt resolved well.
> > >
> > > commit 7b70c4275f28702b76b273c8534c38f8313812e9
> > > Merge: ceb0885... a20df56...
> > > Author: Russell King <rmk+ker...@arm.linux.org.uk>
> > > Date:   Sat Jul 31 14:20:16 2010 +0100
> > >
> > >     Merge branch 'devel-stable' into devel
> > >
> > >     Conflicts:
> > >         arch/arm/kernel/entry-armv.S
> > >         arch/arm/kernel/setup.c
> > >         arch/arm/mm/init.c
> > >
> > > Maybe this is an issue in Tony's for-next as well. Haven't tested
> > > it though.
> > 
> > Yeah, I'm guessing this an issue in for-next, and probably l-o master
> > too.
> 
> Noticed that with omap3_defconfig with CONFIG_SMP enabled. Does the
> following work for you?

Here's a related patch that allows CONFIG_SMP to compile with
omap3_defconfig. Booting still won't work before some arm generic
code is changed.

Regards,

Tony
>From f931fb147f2a3cf4c4b7646e5f270c241ab4aad1 Mon Sep 17 00:00:00 2001
From: Tony Lindgren <t...@atomide.com>
Date: Thu, 5 Aug 2010 13:28:42 +0300
Subject: [PATCH] omap: Fix sev instruction usage for multi-omap

Otherwise we get the following error with omap3_defconfig and CONFIG_SMP:

Error: selected processor does not support `sev'

Signed-off-by: Tony Lindgren <t...@atomide.com>

diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 63b2d88..88d3a1e 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -25,6 +25,7 @@ obj-$(CONFIG_LOCAL_TIMERS)            += timer-mpu.o
 obj-$(CONFIG_HOTPLUG_CPU)              += omap-hotplug.o
 obj-$(CONFIG_ARCH_OMAP4)               += omap44xx-smc.o omap4-common.o
 
+AFLAGS_omap-headsmp.o                  :=-Wa,-march=armv7-a
 AFLAGS_omap44xx-smc.o                  :=-Wa,-march=armv7-a
 
 # Functions loaded to SRAM
diff --git a/arch/arm/mach-omap2/omap-smp.c b/arch/arm/mach-omap2/omap-smp.c
index af3c20c..9e9f70e 100644
--- a/arch/arm/mach-omap2/omap-smp.c
+++ b/arch/arm/mach-omap2/omap-smp.c
@@ -102,8 +102,7 @@ static void __init wakeup_secondary(void)
         * Send a 'sev' to wake the secondary core from WFE.
         * Drain the outstanding writes to memory
         */
-       dsb();
-       set_event();
+       dsb_sev();
        mb();
 }
 
diff --git a/arch/arm/plat-omap/include/plat/smp.h 
b/arch/arm/plat-omap/include/plat/smp.h
index 6a3ff65..5177a9c 100644
--- a/arch/arm/plat-omap/include/plat/smp.h
+++ b/arch/arm/plat-omap/include/plat/smp.h
@@ -19,13 +19,6 @@
 
 #include <asm/hardware/gic.h>
 
-/*
- * set_event() is used to wake up secondary core from wfe using sev. ROM
- * code puts the second core into wfe(standby).
- *
- */
-#define set_event()    __asm__ __volatile__ ("sev" : : : "memory")
-
 /* Needed for secondary core boot */
 extern void omap_secondary_startup(void);
 extern u32 omap_modify_auxcoreboot0(u32 set_mask, u32 clear_mask);

Reply via email to