projects
/
coreboot.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e089f00
)
serialize cpus for >2
author
Yinghai Lu
<yinghailu@gmail.com>
Mon, 3 Jan 2005 20:54:43 +0000
(20:54 +0000)
committer
Yinghai Lu
<yinghailu@gmail.com>
Mon, 3 Jan 2005 20:54:43 +0000
(20:54 +0000)
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1837
2b7e53f0
-3cfb-0310-b3e9-
8179ed1497e1
src/cpu/x86/lapic/lapic_cpu_init.c
patch
|
blob
|
history
diff --git
a/src/cpu/x86/lapic/lapic_cpu_init.c
b/src/cpu/x86/lapic/lapic_cpu_init.c
index b477d1f0cc16b1a14ef2b115042446998a646815..20615e61c82eab8cdc0d3b5c0fc9477ed1bd9bb1 100644
(file)
--- a/
src/cpu/x86/lapic/lapic_cpu_init.c
+++ b/
src/cpu/x86/lapic/lapic_cpu_init.c
@@
-229,7
+229,13
@@
int start_cpu(device_t cpu)
void secondary_cpu_init(void)
{
atomic_inc(&active_cpus);
+#if CONFIG_MAX_CPUS>2
+ spin_lock(&start_cpu_lock);
+#endif
cpu_initialize();
+#if CONFIG_MAX_CPUS>2
+ spin_unlock(&start_cpu_lock);
+#endif
atomic_dec(&active_cpus);
stop_this_cpu();
}
@@
-254,6
+260,9
@@
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
+ udelay(10);
+#endif
}
/* Now loop until the other cpus have finished initializing */