From 51676b14e8cfd5bbabf487f659f11704f17f6d0f Mon Sep 17 00:00:00 2001 From: Sven Schnelle Date: Sun, 29 Jul 2012 19:18:03 +0200 Subject: Revert "Use broadcast SIPI to startup siblings" This reverts commit 042c1461fb777e583e5de48edf9326e47ee5595f. It turned out that sending IPIs via broadcast doesn't work on Sandybridge. We tried to come up with a solution, but didn't found any so far. So revert the code for now until we have a working solution. Change-Id: I7dd1cba5a4c1e4b0af366b20e8263b1f6f4b9714 Signed-off-by: Sven Schnelle Reviewed-on: http://review.coreboot.org/1381 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich --- src/include/cpu/cpu.h | 6 ++---- src/include/cpu/x86/lapic.h | 15 +++++++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) (limited to 'src/include/cpu') diff --git a/src/include/cpu/cpu.h b/src/include/cpu/cpu.h index 9765dfd482..c2113c1aa5 100644 --- a/src/include/cpu/cpu.h +++ b/src/include/cpu/cpu.h @@ -4,12 +4,10 @@ #include #if !defined(__ROMCC__) -void cpu_initialize(struct bus *cpu_bus, int index); +void cpu_initialize(void); struct bus; void initialize_cpus(struct bus *cpu_bus); -void secondary_cpu_init(int index); - -extern unsigned int cpucount; +void secondary_cpu_init(void); #if !CONFIG_WAIT_BEFORE_CPUS_INIT #define cpus_ready_for_init() do {} while(0) diff --git a/src/include/cpu/x86/lapic.h b/src/include/cpu/x86/lapic.h index 5c48025c8f..078f2a7c62 100644 --- a/src/include/cpu/x86/lapic.h +++ b/src/include/cpu/x86/lapic.h @@ -52,13 +52,20 @@ static inline __attribute__((always_inline)) unsigned long lapicid(void) } #ifndef __ROMCC__ +#if CONFIG_AP_IN_SIPI_WAIT != 1 +/* If we need to go back to sipi wait, we use the long non-inlined version of + * this function in lapic_cpu_init.c + */ static inline __attribute__((always_inline)) void stop_this_cpu(void) { - /* Called by an AP when it is ready to halt and wait for a new task */ - for(;;) { - hlt(); - } + /* Called by an AP when it is ready to halt and wait for a new task */ + for(;;) { + hlt(); + } } +#else +void stop_this_cpu(void); +#endif #if !defined(__PRE_RAM__) -- cgit v1.2.3