mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-29 08:34:07 +02:00
UefiCpuPkg/DxeMpLib: Place APs to suitable state on Legacy OS boot
Currently, DxeMpLib only places APs into specified c-state in Exit Boot Service callback function for UEFI OS boot. We need to put APs into specified c-state for legacy OS boot also. https://bugzilla.tianocore.org/show_bug.cgi?id=210 Cc: Laszlo Ersek <lersek@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Feng Tian <feng.tian@intel.com> Cc: Jiewen Yao <jiewen.yao@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
86af2eb8b4
commit
8677a56af6
@ -58,6 +58,7 @@
|
|||||||
|
|
||||||
[Guids]
|
[Guids]
|
||||||
gEfiEventExitBootServicesGuid ## CONSUMES ## Event
|
gEfiEventExitBootServicesGuid ## CONSUMES ## Event
|
||||||
|
gEfiEventLegacyBootGuid ## CONSUMES ## Event
|
||||||
|
|
||||||
[Pcd]
|
[Pcd]
|
||||||
gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber ## CONSUMES
|
gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber ## CONSUMES
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
CPU_MP_DATA *mCpuMpData = NULL;
|
CPU_MP_DATA *mCpuMpData = NULL;
|
||||||
EFI_EVENT mCheckAllApsEvent = NULL;
|
EFI_EVENT mCheckAllApsEvent = NULL;
|
||||||
EFI_EVENT mMpInitExitBootServicesEvent = NULL;
|
EFI_EVENT mMpInitExitBootServicesEvent = NULL;
|
||||||
|
EFI_EVENT mLegacyBootEvent = NULL;
|
||||||
volatile BOOLEAN mStopCheckAllApsStatus = TRUE;
|
volatile BOOLEAN mStopCheckAllApsStatus = TRUE;
|
||||||
VOID *mReservedApLoopFunc = NULL;
|
VOID *mReservedApLoopFunc = NULL;
|
||||||
|
|
||||||
@ -340,6 +341,7 @@ InitMpGlobalData (
|
|||||||
AP_CHECK_INTERVAL
|
AP_CHECK_INTERVAL
|
||||||
);
|
);
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
Status = gBS->CreateEvent (
|
Status = gBS->CreateEvent (
|
||||||
EVT_SIGNAL_EXIT_BOOT_SERVICES,
|
EVT_SIGNAL_EXIT_BOOT_SERVICES,
|
||||||
TPL_CALLBACK,
|
TPL_CALLBACK,
|
||||||
@ -348,6 +350,16 @@ InitMpGlobalData (
|
|||||||
&mMpInitExitBootServicesEvent
|
&mMpInitExitBootServicesEvent
|
||||||
);
|
);
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
|
Status = gBS->CreateEventEx (
|
||||||
|
EVT_NOTIFY_SIGNAL,
|
||||||
|
TPL_CALLBACK,
|
||||||
|
MpInitChangeApLoopCallback,
|
||||||
|
NULL,
|
||||||
|
&gEfiEventLegacyBootGuid,
|
||||||
|
&mLegacyBootEvent
|
||||||
|
);
|
||||||
|
ASSERT_EFI_ERROR (Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user