mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-25 22:54:51 +02:00
UefiCpuPkg/PiSmmCpuDxeSmm: Cleanup SMM_CPU_SYNC_MODE
Use MM_CPU_SYNC_MODE instead of SMM_CPU_SYNC_MODE. Cleanup the duplicate definition. Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Rahul Kumar <rahul1.kumar@intel.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Star Zeng <star.zeng@intel.com> Cc: Dun Tan <dun.tan@intel.com> Cc: Hongbin1 Zhang <hongbin1.zhang@intel.com> Cc: Wei6 Xu <wei6.xu@intel.com> Cc: Yuanhao Xie <yuanhao.xie@intel.com>
This commit is contained in:
parent
1816c78f43
commit
ae0d54cd43
@ -431,7 +431,7 @@ SmmCpuRendezvous (
|
|||||||
goto ON_EXIT;
|
goto ON_EXIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((mSmmMpSyncData->EffectiveSyncMode != SmmCpuSyncModeTradition) && !SmmCpuFeaturesNeedConfigureMtrrs ()) {
|
if ((mSmmMpSyncData->EffectiveSyncMode != MmCpuSyncModeTradition) && !SmmCpuFeaturesNeedConfigureMtrrs ()) {
|
||||||
//
|
//
|
||||||
// There are some APs outside SMM, Wait for all avaiable APs to arrive.
|
// There are some APs outside SMM, Wait for all avaiable APs to arrive.
|
||||||
//
|
//
|
||||||
|
@ -20,7 +20,7 @@ UINTN mSmmMpSyncDataSize;
|
|||||||
SMM_CPU_SEMAPHORES mSmmCpuSemaphores;
|
SMM_CPU_SEMAPHORES mSmmCpuSemaphores;
|
||||||
UINTN mSemaphoreSize;
|
UINTN mSemaphoreSize;
|
||||||
SPIN_LOCK *mPFLock = NULL;
|
SPIN_LOCK *mPFLock = NULL;
|
||||||
SMM_CPU_SYNC_MODE mCpuSmmSyncMode;
|
MM_CPU_SYNC_MODE mCpuSmmSyncMode;
|
||||||
BOOLEAN mMachineCheckSupported = FALSE;
|
BOOLEAN mMachineCheckSupported = FALSE;
|
||||||
MM_COMPLETION mSmmStartupThisApToken;
|
MM_COMPLETION mSmmStartupThisApToken;
|
||||||
|
|
||||||
@ -454,8 +454,8 @@ ResetTokens (
|
|||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
BSPHandler (
|
BSPHandler (
|
||||||
IN UINTN CpuIndex,
|
IN UINTN CpuIndex,
|
||||||
IN SMM_CPU_SYNC_MODE SyncMode
|
IN MM_CPU_SYNC_MODE SyncMode
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINTN CpuCount;
|
UINTN CpuCount;
|
||||||
@ -504,7 +504,7 @@ BSPHandler (
|
|||||||
//
|
//
|
||||||
// If Traditional Sync Mode or need to configure MTRRs: gather all available APs.
|
// If Traditional Sync Mode or need to configure MTRRs: gather all available APs.
|
||||||
//
|
//
|
||||||
if ((SyncMode == SmmCpuSyncModeTradition) || SmmCpuFeaturesNeedConfigureMtrrs ()) {
|
if ((SyncMode == MmCpuSyncModeTradition) || SmmCpuFeaturesNeedConfigureMtrrs ()) {
|
||||||
//
|
//
|
||||||
// Wait for APs to arrive
|
// Wait for APs to arrive
|
||||||
//
|
//
|
||||||
@ -594,7 +594,7 @@ BSPHandler (
|
|||||||
// make those APs to exit SMI synchronously. APs which arrive later will be excluded and
|
// make those APs to exit SMI synchronously. APs which arrive later will be excluded and
|
||||||
// will run through freely.
|
// will run through freely.
|
||||||
//
|
//
|
||||||
if ((SyncMode != SmmCpuSyncModeTradition) && !SmmCpuFeaturesNeedConfigureMtrrs ()) {
|
if ((SyncMode != MmCpuSyncModeTradition) && !SmmCpuFeaturesNeedConfigureMtrrs ()) {
|
||||||
//
|
//
|
||||||
// Lock door for late coming CPU checkin and retrieve the Arrived number of APs
|
// Lock door for late coming CPU checkin and retrieve the Arrived number of APs
|
||||||
//
|
//
|
||||||
@ -722,9 +722,9 @@ BSPHandler (
|
|||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
APHandler (
|
APHandler (
|
||||||
IN UINTN CpuIndex,
|
IN UINTN CpuIndex,
|
||||||
IN BOOLEAN ValidSmi,
|
IN BOOLEAN ValidSmi,
|
||||||
IN SMM_CPU_SYNC_MODE SyncMode
|
IN MM_CPU_SYNC_MODE SyncMode
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINT64 Timer;
|
UINT64 Timer;
|
||||||
@ -801,7 +801,7 @@ APHandler (
|
|||||||
//
|
//
|
||||||
*(mSmmMpSyncData->CpuData[CpuIndex].Present) = TRUE;
|
*(mSmmMpSyncData->CpuData[CpuIndex].Present) = TRUE;
|
||||||
|
|
||||||
if ((SyncMode == SmmCpuSyncModeTradition) || SmmCpuFeaturesNeedConfigureMtrrs ()) {
|
if ((SyncMode == MmCpuSyncModeTradition) || SmmCpuFeaturesNeedConfigureMtrrs ()) {
|
||||||
//
|
//
|
||||||
// Notify BSP of arrival at this point
|
// Notify BSP of arrival at this point
|
||||||
//
|
//
|
||||||
@ -1131,7 +1131,7 @@ InternalSmmStartupThisAp (
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!(*(mSmmMpSyncData->CpuData[CpuIndex].Present))) {
|
if (!(*(mSmmMpSyncData->CpuData[CpuIndex].Present))) {
|
||||||
if (mSmmMpSyncData->EffectiveSyncMode == SmmCpuSyncModeTradition) {
|
if (mSmmMpSyncData->EffectiveSyncMode == MmCpuSyncModeTradition) {
|
||||||
DEBUG ((DEBUG_ERROR, "!mSmmMpSyncData->CpuData[%d].Present\n", CpuIndex));
|
DEBUG ((DEBUG_ERROR, "!mSmmMpSyncData->CpuData[%d].Present\n", CpuIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1947,7 +1947,7 @@ InitializeMpServiceData (
|
|||||||
|
|
||||||
RelaxedMode = FALSE;
|
RelaxedMode = FALSE;
|
||||||
GetSmmCpuSyncConfigData (&RelaxedMode, NULL, NULL);
|
GetSmmCpuSyncConfigData (&RelaxedMode, NULL, NULL);
|
||||||
mCpuSmmSyncMode = RelaxedMode ? SmmCpuSyncModeRelaxedAp : SmmCpuSyncModeTradition;
|
mCpuSmmSyncMode = RelaxedMode ? MmCpuSyncModeRelaxedAp : MmCpuSyncModeTradition;
|
||||||
InitializeMpSyncData ();
|
InitializeMpSyncData ();
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -401,28 +401,22 @@ typedef struct {
|
|||||||
EFI_STATUS *Status;
|
EFI_STATUS *Status;
|
||||||
} SMM_CPU_DATA_BLOCK;
|
} SMM_CPU_DATA_BLOCK;
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
SmmCpuSyncModeTradition,
|
|
||||||
SmmCpuSyncModeRelaxedAp,
|
|
||||||
SmmCpuSyncModeMax
|
|
||||||
} SMM_CPU_SYNC_MODE;
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
//
|
//
|
||||||
// Pointer to an array. The array should be located immediately after this structure
|
// Pointer to an array. The array should be located immediately after this structure
|
||||||
// so that UC cache-ability can be set together.
|
// so that UC cache-ability can be set together.
|
||||||
//
|
//
|
||||||
SMM_CPU_DATA_BLOCK *CpuData;
|
SMM_CPU_DATA_BLOCK *CpuData;
|
||||||
volatile UINT32 BspIndex;
|
volatile UINT32 BspIndex;
|
||||||
volatile BOOLEAN *InsideSmm;
|
volatile BOOLEAN *InsideSmm;
|
||||||
volatile BOOLEAN *AllCpusInSync;
|
volatile BOOLEAN *AllCpusInSync;
|
||||||
volatile SMM_CPU_SYNC_MODE EffectiveSyncMode;
|
volatile MM_CPU_SYNC_MODE EffectiveSyncMode;
|
||||||
volatile BOOLEAN SwitchBsp;
|
volatile BOOLEAN SwitchBsp;
|
||||||
volatile BOOLEAN *CandidateBsp;
|
volatile BOOLEAN *CandidateBsp;
|
||||||
volatile BOOLEAN AllApArrivedWithException;
|
volatile BOOLEAN AllApArrivedWithException;
|
||||||
EFI_AP_PROCEDURE StartupProcedure;
|
EFI_AP_PROCEDURE StartupProcedure;
|
||||||
VOID *StartupProcArgs;
|
VOID *StartupProcArgs;
|
||||||
SMM_CPU_SYNC_CONTEXT *SyncContext;
|
SMM_CPU_SYNC_CONTEXT *SyncContext;
|
||||||
} SMM_DISPATCHER_MP_SYNC_DATA;
|
} SMM_DISPATCHER_MP_SYNC_DATA;
|
||||||
|
|
||||||
#define SMM_PSD_OFFSET 0xfb00
|
#define SMM_PSD_OFFSET 0xfb00
|
||||||
|
@ -193,7 +193,7 @@ GetSmmCpuSyncConfigData (
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (RelaxedMode != NULL) {
|
if (RelaxedMode != NULL) {
|
||||||
*RelaxedMode = (BOOLEAN)(PcdGet8 (PcdCpuSmmSyncMode) == SmmCpuSyncModeRelaxedAp);
|
*RelaxedMode = (BOOLEAN)(PcdGet8 (PcdCpuSmmSyncMode) == MmCpuSyncModeRelaxedAp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SyncTimeout != NULL) {
|
if (SyncTimeout != NULL) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user