mirror of https://github.com/acidanthera/audk.git
UefiCpuPkg/MpLib.c: Set AP state after X2APIC mode enabled
After X2APIC mode is enabled, APs need to be set tp IDLE state, otherwise APs cannot be waken up by MP PPI services. https://bugzilla.tianocore.org/show_bug.cgi?id=505 Cc: Feng Tian <feng.tian@intel.com> Cc: Michael 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
9d64a9fd9e
commit
59a119f0fc
|
@ -434,6 +434,8 @@ CollectProcessorCount (
|
||||||
IN CPU_MP_DATA *CpuMpData
|
IN CPU_MP_DATA *CpuMpData
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
UINTN Index;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Send 1st broadcast IPI to APs to wakeup APs
|
// Send 1st broadcast IPI to APs to wakeup APs
|
||||||
//
|
//
|
||||||
|
@ -465,6 +467,12 @@ CollectProcessorCount (
|
||||||
// Enable x2APIC on BSP
|
// Enable x2APIC on BSP
|
||||||
//
|
//
|
||||||
SetApicMode (LOCAL_APIC_MODE_X2APIC);
|
SetApicMode (LOCAL_APIC_MODE_X2APIC);
|
||||||
|
//
|
||||||
|
// Set BSP/Aps state to IDLE
|
||||||
|
//
|
||||||
|
for (Index = 0; Index < CpuMpData->CpuCount; Index++) {
|
||||||
|
SetApState (&CpuMpData->CpuData[Index], CpuStateIdle);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
DEBUG ((DEBUG_INFO, "APIC MODE is %d\n", GetApicMode ()));
|
DEBUG ((DEBUG_INFO, "APIC MODE is %d\n", GetApicMode ()));
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in New Issue