* Tony Lindgren <tony@xxxxxxxxxxx> [100806 09:55]: > * Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx> [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+kernel@xxxxxxxxxxxxxxxx> > > > 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 <tony@xxxxxxxxxxx> 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 <tony@xxxxxxxxxxx> 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);