UefiCpuPkg/CpuMpPei: Implementation of PeiStartupAllAPs ()
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Fan <jeff.fan@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18008 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -133,6 +133,8 @@ ApCFunction (
|
||||
)
|
||||
{
|
||||
PEI_CPU_MP_DATA *PeiCpuMpData;
|
||||
UINTN ProcessorNumber;
|
||||
EFI_AP_PROCEDURE Procedure;
|
||||
UINTN BistData;
|
||||
|
||||
PeiCpuMpData = ExchangeInfo->PeiCpuMpData;
|
||||
@@ -148,6 +150,18 @@ ApCFunction (
|
||||
//
|
||||
MtrrSetAllMtrrs (&PeiCpuMpData->MtrrTable);
|
||||
MicrocodeDetect ();
|
||||
} else {
|
||||
//
|
||||
// Execute AP function if AP is not disabled
|
||||
//
|
||||
GetProcessorNumber (PeiCpuMpData, &ProcessorNumber);
|
||||
if ((PeiCpuMpData->CpuData[ProcessorNumber].State != CpuStateDisabled) &&
|
||||
(PeiCpuMpData->ApFunction != 0)) {
|
||||
PeiCpuMpData->CpuData[ProcessorNumber].State = CpuStateBusy;
|
||||
Procedure = (EFI_AP_PROCEDURE)(UINTN)PeiCpuMpData->ApFunction;
|
||||
Procedure ((VOID *)(UINTN)PeiCpuMpData->ApFunctionArgument);
|
||||
PeiCpuMpData->CpuData[ProcessorNumber].State = CpuStateIdle;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
|
Reference in New Issue
Block a user