aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSubrata Banik <subratabanik@google.com>2022-06-16 20:25:08 +0530
committerFelix Held <felix-coreboot@felixheld.de>2022-06-22 12:52:14 +0000
commit957609d00c50492226e3f0c9cb6327ae6d25baf6 (patch)
tree0aa2e3e59765539a765f12a9673f54a046b84dd4
parentceaf9d116949da68aa9c2ed658d28b8b7f34212b (diff)
soc/intel/mp_init: Skip before_post_cpus_init if !USE_COREBOOT_MP_INIT
This patch ensures all APs finish the task and continue before_post_cpus_init() if coreboot decides to perform multiprocessor initialization using native coreboot drivers instead of using FSP MP PPI implementation. BUG=b:233199592 TEST=Build and boot google/kano to ChromeOS. Signed-off-by: Subrata Banik <subratabanik@google.com> Change-Id: I3b76974ab19323201bf1dca9af423481a40f65c9 Reviewed-on: https://review.coreboot.org/c/coreboot/+/65173 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/soc/intel/common/block/cpu/mp_init.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/soc/intel/common/block/cpu/mp_init.c b/src/soc/intel/common/block/cpu/mp_init.c
index 7788a7973d..9aa30dddbc 100644
--- a/src/soc/intel/common/block/cpu/mp_init.c
+++ b/src/soc/intel/common/block/cpu/mp_init.c
@@ -183,6 +183,16 @@ static void wrapper_init_core_prmrr(void *unused)
void before_post_cpus_init(void)
{
+ /*
+ * Ensure all APs finish the task and continue if coreboot decides to
+ * perform multiprocessor initialization using native coreboot drivers
+ * instead using FSP MP PPI implementation.
+ *
+ * Ignore if USE_COREBOOT_MP_INIT is not enabled.
+ */
+ if (!CONFIG(USE_COREBOOT_MP_INIT))
+ return;
+
if (mp_run_on_all_cpus(&wrapper_init_core_prmrr, NULL) != CB_SUCCESS)
printk(BIOS_ERR, "core PRMRR sync failure\n");