diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c b/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c index db36a0ad3c..50059e4241 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c @@ -355,6 +355,13 @@ SmmInitHandler ( &mCpuHotPlugData ); + if (!mSmmS3Flag) { + // + // Check XD and BTS features on each processor on normal boot + // + CheckFeatureSupported (NULL); + } + if (mIsBsp) { // // BSP rebase is already done above. @@ -1191,11 +1198,6 @@ PiCpuSmmEntry ( } } - // - // Check XD and BTS features - // - CheckProcessorFeature (); - // // Initialize SMM Profile feature // diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c index f9cea55d9d..d315194dfc 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c @@ -32,7 +32,7 @@ UINTN mMsrDsAreaSize = SMM_PROFILE_DTS_SIZE; // // The flag indicates if execute-disable is supported by processor. // -BOOLEAN mXdSupported = FALSE; +BOOLEAN mXdSupported = TRUE; // // The flag indicates if execute-disable is enabled on processor. @@ -42,7 +42,7 @@ BOOLEAN mXdEnabled = FALSE; // // The flag indicates if BTS is supported by processor. // -BOOLEAN mBtsSupported = FALSE; +BOOLEAN mBtsSupported = TRUE; // // The flag indicates if SMM profile starts to record data.