From a335402bec6511c11ab54c943287e7be7fb1672d Mon Sep 17 00:00:00 2001 From: Yinghai Lu Date: Mon, 3 Jan 2005 20:54:43 +0000 Subject: serialize cpus for >2 git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1837 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/cpu/x86/lapic/lapic_cpu_init.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/cpu/x86/lapic/lapic_cpu_init.c') diff --git a/src/cpu/x86/lapic/lapic_cpu_init.c b/src/cpu/x86/lapic/lapic_cpu_init.c index b477d1f0cc..20615e61c8 100644 --- 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 */ -- cgit v1.2.3