diff options
author | Sven Schnelle <svens@stackframe.org> | 2012-07-29 19:18:03 +0200 |
---|---|---|
committer | Ronald G. Minnich <rminnich@gmail.com> | 2012-07-31 06:46:02 +0200 |
commit | 51676b14e8cfd5bbabf487f659f11704f17f6d0f (patch) | |
tree | f75a6c5ba610385e2edb69a83223b98732ef0d09 /src/include/cpu | |
parent | a2701c60052df5544930a8dce8f01768834fdf28 (diff) | |
download | coreboot-51676b14e8cfd5bbabf487f659f11704f17f6d0f.tar.xz |
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 <svens@stackframe.org>
Reviewed-on: http://review.coreboot.org/1381
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src/include/cpu')
-rw-r--r-- | src/include/cpu/cpu.h | 6 | ||||
-rw-r--r-- | src/include/cpu/x86/lapic.h | 15 |
2 files changed, 13 insertions, 8 deletions
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 <arch/cpu.h> #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__) |