Revert "drivers/intel/fsp2_0: Allow `mp_startup_all_cpus()` to run serially"
This reverts commit 6af980a2ae
.
BUG=b:199246420
Change-Id: Iddb7aa6d52b563485a496798f2fe31ed64b4f4a8
Signed-off-by: Ronak Kanabar <ronak.kanabar@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/61498
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maulik V Vaghela <maulik.v.vaghela@intel.com>
This commit is contained in:
parent
a4b821a9af
commit
40ca79714a
|
@ -94,23 +94,10 @@ efi_return_status_t mp_startup_all_cpus(efi_ap_procedure procedure,
|
|||
/* Run on BSP */
|
||||
procedure(argument);
|
||||
|
||||
/*
|
||||
* Run on APs Serially
|
||||
*
|
||||
* FIXME: As per MP service specification, EDK2 is allowed to specify the mode
|
||||
* in which a 'func' routine should be executed on APs (i.e. execute serially
|
||||
* or concurrently).
|
||||
*
|
||||
* MP service API `StartupAllCPUs` doesn't specify such requirement.
|
||||
* Hence, running the `CpuCacheInfoCollectCoreAndCacheData`
|
||||
* (UefiCpuPkg/Library/CpuCacheInfoLib/CpuCacheInfoLib.c#194)
|
||||
* simultaneously on APs results in a coherency issue (hang while executing `func`)
|
||||
* due to lack of acquiring a spin lock while accessing common data structure in
|
||||
* multiprocessor environment.
|
||||
*/
|
||||
if (mp_run_on_all_aps((void *)procedure, argument, timeout_usec, false) !=
|
||||
CB_SUCCESS) {
|
||||
printk(BIOS_DEBUG, "%s: Exit with Failure\n", __func__);
|
||||
/* Run on APs */
|
||||
if (mp_run_on_aps((void *)procedure, argument,
|
||||
MP_RUN_ON_ALL_CPUS, timeout_usec) != CB_SUCCESS) {
|
||||
printk(BIOS_ERR, "%s: Exit with Failure\n", __func__);
|
||||
return FSP_NOT_STARTED;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue