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>
This commit is contained in:
Subrata Banik 2022-06-16 20:25:08 +05:30 committed by Felix Held
parent ceaf9d1169
commit 957609d00c
1 changed files with 10 additions and 0 deletions

View File

@ -183,6 +183,16 @@ static void wrapper_init_core_prmrr(void *unused)
void before_post_cpus_init(void) 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) if (mp_run_on_all_cpus(&wrapper_init_core_prmrr, NULL) != CB_SUCCESS)
printk(BIOS_ERR, "core PRMRR sync failure\n"); printk(BIOS_ERR, "core PRMRR sync failure\n");