From 3b1eac5c04edc78cf1818df1496eb5f03b129e3a Mon Sep 17 00:00:00 2001 From: Jonathan Zhang Date: Mon, 10 Oct 2022 15:35:41 -0700 Subject: [PATCH] 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 Reviewed-on: https://review.coreboot.org/c/coreboot/+/68262 Reviewed-by: Christian Walter Tested-by: build bot (Jenkins) --- src/cpu/x86/mp_init.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/cpu/x86/mp_init.c b/src/cpu/x86/mp_init.c index df74d24ba3..dd9dedabd0 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;