mirror of https://github.com/acidanthera/audk.git
UefiCpuPkg/MpInitLib: Update AP information when BSP switched
When BSP switched, we need to update some AP information. For example, ApStartupSignalBuffer and ApTopOfStack. Cc: Feng Tian <feng.tian@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Fan <jeff.fan@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com>
This commit is contained in:
parent
845c5be1fd
commit
b3775af277
|
@ -549,6 +549,8 @@ ApWakeupFunction (
|
||||||
GetProcessorNumber (CpuMpData, &ProcessorNumber);
|
GetProcessorNumber (CpuMpData, &ProcessorNumber);
|
||||||
CpuMpData->CpuData[ProcessorNumber].ApFunction = 0;
|
CpuMpData->CpuData[ProcessorNumber].ApFunction = 0;
|
||||||
CpuMpData->CpuData[ProcessorNumber].ApFunctionArgument = 0;
|
CpuMpData->CpuData[ProcessorNumber].ApFunctionArgument = 0;
|
||||||
|
ApStartupSignalBuffer = CpuMpData->CpuData[ProcessorNumber].StartupApSignal;
|
||||||
|
CpuInfoInHob[ProcessorNumber].ApTopOfStack = CpuInfoInHob[CpuMpData->NewBspNumber].ApTopOfStack;
|
||||||
} else {
|
} else {
|
||||||
//
|
//
|
||||||
// Re-get the CPU APICID and Initial APICID
|
// Re-get the CPU APICID and Initial APICID
|
||||||
|
@ -1420,6 +1422,7 @@ SwitchBSPWorker (
|
||||||
CpuMpData->BSPInfo.State = CPU_SWITCH_STATE_IDLE;
|
CpuMpData->BSPInfo.State = CPU_SWITCH_STATE_IDLE;
|
||||||
CpuMpData->APInfo.State = CPU_SWITCH_STATE_IDLE;
|
CpuMpData->APInfo.State = CPU_SWITCH_STATE_IDLE;
|
||||||
CpuMpData->SwitchBspFlag = TRUE;
|
CpuMpData->SwitchBspFlag = TRUE;
|
||||||
|
CpuMpData->NewBspNumber = ProcessorNumber;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Clear the BSP bit of MSR_IA32_APIC_BASE
|
// Clear the BSP bit of MSR_IA32_APIC_BASE
|
||||||
|
|
|
@ -216,6 +216,7 @@ struct _CPU_MP_DATA {
|
||||||
AP_INIT_STATE InitFlag;
|
AP_INIT_STATE InitFlag;
|
||||||
BOOLEAN X2ApicEnable;
|
BOOLEAN X2ApicEnable;
|
||||||
BOOLEAN SwitchBspFlag;
|
BOOLEAN SwitchBspFlag;
|
||||||
|
UINTN NewBspNumber;
|
||||||
CPU_EXCHANGE_ROLE_INFO BSPInfo;
|
CPU_EXCHANGE_ROLE_INFO BSPInfo;
|
||||||
CPU_EXCHANGE_ROLE_INFO APInfo;
|
CPU_EXCHANGE_ROLE_INFO APInfo;
|
||||||
MTRR_SETTINGS MtrrTable;
|
MTRR_SETTINGS MtrrTable;
|
||||||
|
|
Loading…
Reference in New Issue