]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c
BeagleBoardPkg: add missing ArmMmuLib resolution
[mirror_edk2.git] / UefiCpuPkg / PiSmmCpuDxeSmm / PiSmmCpuDxeSmm.c
index 0858d8f4d7cec6951d0402ea867c42566a1bd1be..dbe63ee9d2a0ea93ec689ec449b832313d70f431 100644 (file)
@@ -96,6 +96,11 @@ UINTN mNumberOfCpus = 1;
 //\r
 BOOLEAN mSmmReadyToLock = FALSE;\r
 \r
+//\r
+// S3 boot flag\r
+//\r
+BOOLEAN mSmmS3Flag = FALSE;\r
+\r
 //\r
 // Global used to cache PCD for SMM Code Access Check enable\r
 //\r
@@ -350,6 +355,13 @@ SmmInitHandler (
         &mCpuHotPlugData\r
         );\r
 \r
+      if (!mSmmS3Flag) {\r
+        //\r
+        // Check XD and BTS features on each processor on normal boot\r
+        //\r
+        CheckFeatureSupported ();\r
+      }\r
+\r
       if (mIsBsp) {\r
         //\r
         // BSP rebase is already done above.\r
@@ -485,6 +497,8 @@ SmmRestoreCpu (
 \r
   DEBUG ((EFI_D_INFO, "SmmRestoreCpu()\n"));\r
 \r
+  mSmmS3Flag = TRUE;\r
+\r
   InitializeSpinLock (mMemoryMappedLock);\r
 \r
   //\r
@@ -1184,11 +1198,6 @@ PiCpuSmmEntry (
     }\r
   }\r
 \r
-  //\r
-  // Check XD and BTS features\r
-  //\r
-  CheckProcessorFeature ();\r
-\r
   //\r
   // Initialize SMM Profile feature\r
   //\r