summaryrefslogtreecommitdiff
path: root/src/soc/intel/common/block
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/common/block')
-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");