aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/x86/cpu.c3
-rw-r--r--src/cpu/x86/mp_init.c19
2 files changed, 19 insertions, 3 deletions
diff --git a/src/arch/x86/cpu.c b/src/arch/x86/cpu.c
index cfcfdbd5d2..142f2b1400 100644
--- a/src/arch/x86/cpu.c
+++ b/src/arch/x86/cpu.c
@@ -309,6 +309,5 @@ void arch_bootstate_coreboot_exit(void)
return;
/* APs are waiting for work. Last thing to do is park them. */
- if (mp_park_aps())
- printk(BIOS_ERR, "Parking APs failed.\n");
+ mp_park_aps();
}
diff --git a/src/cpu/x86/mp_init.c b/src/cpu/x86/mp_init.c
index 409caa5a83..f99abaf245 100644
--- a/src/cpu/x86/mp_init.c
+++ b/src/cpu/x86/mp_init.c
@@ -962,7 +962,24 @@ int mp_run_on_all_cpus(void (*func)(void), long expire_us)
int mp_park_aps(void)
{
- return mp_run_on_aps(park_this_cpu, 10 * USECS_PER_MSEC);
+ struct stopwatch sw;
+ int ret;
+ long duration_msecs;
+
+ stopwatch_init(&sw);
+
+ ret = mp_run_on_aps(park_this_cpu, 250 * USECS_PER_MSEC);
+
+ duration_msecs = stopwatch_duration_msecs(&sw);
+
+ if (!ret)
+ printk(BIOS_DEBUG, "%s done after %ld msecs.\n", __func__,
+ duration_msecs);
+ else
+ printk(BIOS_ERR, "%s failed after %ld msecs.\n", __func__,
+ duration_msecs);
+
+ return ret;
}
static struct mp_flight_record mp_steps[] = {