summaryrefslogtreecommitdiffstats
path: root/src/cpu/x86/mp_init.c
diff options
context:
space:
mode:
authorJonathan Zhang <jonzhang@meta.com>2022-10-10 15:35:41 -0700
committerFelix Held <felix-coreboot@felixheld.de>2022-10-27 14:15:11 +0000
commit3b1eac5c04edc78cf1818df1496eb5f03b129e3a (patch)
tree46ff0d63b486a12f175937c9c5d1f30031c6e869 /src/cpu/x86/mp_init.c
parentb9a9dcd8d667ef40277f92c9f0dbe6bfa385f64a (diff)
downloadcoreboot-3b1eac5c04edc78cf1818df1496eb5f03b129e3a.tar.gz
coreboot-3b1eac5c04edc78cf1818df1496eb5f03b129e3a.tar.bz2
coreboot-3b1eac5c04edc78cf1818df1496eb5f03b129e3a.zip
cpu/x86/mp_init: adjust timeout for final SIPI
Adjust timeout for final SIPI to satisfy some to-be-launched server processors. Add a spew print to display how long it takes for the APs to be ready. This is intended to facilitate only troubleshooting and trend analysis. Change-Id: Id958f18bdcb34d76df8aa443161123252524328e Signed-off-by: Jonathan Zhang <jonzhang@meta.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/68262 Reviewed-by: Christian Walter <christian.walter@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/cpu/x86/mp_init.c')
-rw-r--r--src/cpu/x86/mp_init.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/cpu/x86/mp_init.c b/src/cpu/x86/mp_init.c
index df74d24ba3e9..dd9dedabd086 100644
--- a/src/cpu/x86/mp_init.c
+++ b/src/cpu/x86/mp_init.c
@@ -151,6 +151,7 @@ static enum cb_err wait_for_aps(atomic_t *val, int target, int total_delay,
}
/* APs ready before timeout */
+ printk(BIOS_SPEW, "APs are ready after %dus\n", delayed);
return CB_SUCCESS;
}
@@ -468,7 +469,7 @@ static enum cb_err start_aps(struct bus *cpu_bus, int ap_count, atomic_t *num_ap
if (send_sipi_to_aps(ap_count, num_aps, sipi_vector) != CB_SUCCESS)
return CB_ERR;
- /* Wait for CPUs to check in up to 200 us. */
+ /* Wait for CPUs to check in. */
wait_for_aps(num_aps, ap_count, 200 /* us */, 15 /* us */);
}
@@ -477,7 +478,7 @@ static enum cb_err start_aps(struct bus *cpu_bus, int ap_count, atomic_t *num_ap
return CB_ERR;
/* Wait for CPUs to check in. */
- if (wait_for_aps(num_aps, ap_count, 100000 /* 100 ms */, 50 /* us */) != CB_SUCCESS) {
+ if (wait_for_aps(num_aps, ap_count, 400000 /* 400 ms */, 50 /* us */) != CB_SUCCESS) {
printk(BIOS_ERR, "Not all APs checked in: %d/%d.\n",
atomic_read(num_aps), ap_count);
return CB_ERR;