summaryrefslogtreecommitdiff
path: root/src/cpu/x86/lapic
diff options
context:
space:
mode:
authorarch import user (historical) <svn@openbios.org>2005-07-06 17:15:30 +0000
committerarch import user (historical) <svn@openbios.org>2005-07-06 17:15:30 +0000
commitef03afa405b049a172146aab93cfb81fb21f3945 (patch)
tree3b59033be66edd60c2cc6c66d6875153dc052a72 /src/cpu/x86/lapic
parent014c3e185fe8e1455e56efeb496715a67ce292bb (diff)
Revision: linuxbios@linuxbios.org--devel/freebios--devel--2.0--patch-34
Creator: Yinghai Lu <yhlu@tyan.com> AMD D0/E0 Opteron new mem mapping support, AMD E Opteron mem hole support,AMD K8 Four Ranks DIMM support git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1950 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/cpu/x86/lapic')
-rw-r--r--src/cpu/x86/lapic/lapic_cpu_init.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/cpu/x86/lapic/lapic_cpu_init.c b/src/cpu/x86/lapic/lapic_cpu_init.c
index 20615e61c8..7c40f6a3c0 100644
--- a/src/cpu/x86/lapic/lapic_cpu_init.c
+++ b/src/cpu/x86/lapic/lapic_cpu_init.c
@@ -11,6 +11,7 @@
#if CONFIG_SMP == 1
+
/* This is a lot more paranoid now, since Linux can NOT handle
* being told there is a CPU when none exists. So any errors
* will return 0, meaning no CPU.
@@ -229,12 +230,16 @@ int start_cpu(device_t cpu)
void secondary_cpu_init(void)
{
atomic_inc(&active_cpus);
-#if CONFIG_MAX_CPUS>2
+#if SERIAL_CPU_INIT == 1
+ #if CONFIG_MAX_CPUS>2
spin_lock(&start_cpu_lock);
+ #endif
#endif
cpu_initialize();
-#if CONFIG_MAX_CPUS>2
+#if SERIAL_CPU_INIT == 1
+ #if CONFIG_MAX_CPUS>2
spin_unlock(&start_cpu_lock);
+ #endif
#endif
atomic_dec(&active_cpus);
stop_this_cpu();
@@ -260,8 +265,10 @@ static void initialize_other_cpus(struct bus *cpu_bus)
printk_err("CPU %u would not start!\n",
cpu->path.u.apic.apic_id);
}
-#if CONFIG_MAX_CPUS>2
+#if SERIAL_CPU_INIT == 1
+ #if CONFIG_MAX_CPUS>2
udelay(10);
+ #endif
#endif
}