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");