]> git.proxmox.com Git - mirror_edk2.git/commitdiff
UefiCpuPkg: PiSmmCpuDxeSmm: Remove Framework compatibility
authorMichael Kinney <michael.d.kinney@intel.com>
Thu, 5 Nov 2015 00:01:45 +0000 (00:01 +0000)
committermdkinney <mdkinney@Edk2>
Thu, 5 Nov 2015 00:01:45 +0000 (00:01 +0000)
The PiSmmCpuDxeSmm module is using PcdFrameworkCompatibilitySupport to
provide compatibility with the SMM support in the IntelFrameworkPkg.
This change removes the Framework compatibility and requires all SMM
modules that provide SMI handlers to follow the PI Specification.

Cc: Jeff Fan <jeff.fan@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18726 6f19259b-4bc3-4df7-8a09-765794883524

UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf

index c351875262b495728b795e96883a671fa9b83518..de681c0a30698ac0c300d072768533a7d68a32b4 100644 (file)
@@ -76,13 +76,6 @@ EFI_SMM_CPU_PROTOCOL  mSmmCpu  = {
 \r
 EFI_CPU_INTERRUPT_HANDLER   mExternalVectorTable[EXCEPTION_VECTOR_NUMBER];\r
 \r
-///\r
-/// SMM CPU Save State Protocol instance\r
-///\r
-EFI_SMM_CPU_SAVE_STATE_PROTOCOL  mSmmCpuSaveState = {\r
-  NULL\r
-};\r
-\r
 //\r
 // SMM stack information\r
 //\r
@@ -530,18 +523,13 @@ SmmRestoreCpu (
   }\r
 \r
   //\r
-  // Do below CPU things for native platform only\r
+  // Skip initialization if mAcpiCpuData is not valid\r
   //\r
-  if (!FeaturePcdGet(PcdFrameworkCompatibilitySupport)) {\r
+  if (mAcpiCpuData.NumberOfCpus > 0) {\r
     //\r
-    // Skip initialization if mAcpiCpuData is not valid\r
+    // First time microcode load and restore MTRRs\r
     //\r
-    if (mAcpiCpuData.NumberOfCpus > 0) {\r
-      //\r
-      // First time microcode load and restore MTRRs\r
-      //\r
-      EarlyInitializeCpu ();\r
-    }\r
+    EarlyInitializeCpu ();\r
   }\r
 \r
   //\r
@@ -550,18 +538,13 @@ SmmRestoreCpu (
   SmmRelocateBases ();\r
 \r
   //\r
-  // Do below CPU things for native platform only\r
+  // Skip initialization if mAcpiCpuData is not valid\r
   //\r
-  if (!FeaturePcdGet(PcdFrameworkCompatibilitySupport)) {\r
+  if (mAcpiCpuData.NumberOfCpus > 0) {\r
     //\r
-    // Skip initialization if mAcpiCpuData is not valid\r
+    // Restore MSRs for BSP and all APs\r
     //\r
-    if (mAcpiCpuData.NumberOfCpus > 0) {\r
-      //\r
-      // Restore MSRs for BSP and all APs\r
-      //\r
-      InitializeCpu ();\r
-    }\r
+    InitializeCpu ();\r
   }\r
 \r
   //\r
@@ -686,13 +669,6 @@ SmmReadyToLockEventNotify (
   //\r
   mAcpiCpuData.NumberOfCpus = 0;\r
 \r
-  //\r
-  // If FrameworkCompatibilitySspport is enabled, then do not copy CPU S3 Data into SMRAM\r
-  //\r
-  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {\r
-    goto Done;\r
-  }\r
-\r
   //\r
   // If PcdCpuS3DataAddress was never set, then do not copy CPU S3 Data into SMRAM\r
   //\r
@@ -1009,7 +985,6 @@ PiCpuSmmEntry (
 \r
   mSmmCpuPrivateData.SmmCoreEntryContext.CpuSaveStateSize = gSmmCpuPrivate->CpuSaveStateSize;\r
   mSmmCpuPrivateData.SmmCoreEntryContext.CpuSaveState     = gSmmCpuPrivate->CpuSaveState;\r
-  mSmmCpuSaveState.CpuSaveState = (EFI_SMM_CPU_STATE **)gSmmCpuPrivate->CpuSaveState;\r
 \r
   //\r
   // Allocate buffer for pointers to array in CPU_HOT_PLUG_DATA.\r
@@ -1150,25 +1125,6 @@ PiCpuSmmEntry (
   Status = InitializeSmmCpuServices (mSmmCpuHandle);\r
   ASSERT_EFI_ERROR (Status);\r
 \r
-  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {\r
-    //\r
-    // Install Framework SMM Save State Protocol into UEFI protocol database for backward compatibility\r
-    //\r
-    Status = SystemTable->BootServices->InstallMultipleProtocolInterfaces (\r
-                                          &gSmmCpuPrivate->SmmCpuHandle,\r
-                                          &gEfiSmmCpuSaveStateProtocolGuid,\r
-                                          &mSmmCpuSaveState,\r
-                                          NULL\r
-                                          );\r
-    ASSERT_EFI_ERROR (Status);\r
-    //\r
-    // The SmmStartupThisAp service in Framework SMST should always be non-null.\r
-    // Update SmmStartupThisAp pointer in PI SMST here so that PI/Framework SMM thunk\r
-    // can have it ready when constructing Framework SMST.\r
-    //\r
-    gSmst->SmmStartupThisAp = SmmStartupThisAp;\r
-  }\r
-\r
   //\r
   // register SMM Ready To Lock Protocol notification\r
   //\r
index 162bdadf0bce3d494300c2d881db039c3a7cc6b2..cfbf2ca6dae38ea89d4645bb25e473026367cb92 100644 (file)
@@ -21,7 +21,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Protocol/SmmConfiguration.h>\r
 #include <Protocol/SmmCpu.h>\r
 #include <Protocol/SmmAccess2.h>\r
-#include <Protocol/SmmCpuSaveState.h>\r
 #include <Protocol/SmmReadyToLock.h>\r
 #include <Protocol/SmmCpuService.h>\r
 \r
index f559947ee42029851a93dcdc3171e0b8b6dd45d5..a293a88e9914930ddbe6e2e8cdf3e35469aacd4f 100644 (file)
@@ -89,7 +89,6 @@
   MdePkg/MdePkg.dec\r
   MdeModulePkg/MdeModulePkg.dec\r
   UefiCpuPkg/UefiCpuPkg.dec\r
-  IntelFrameworkPkg/IntelFrameworkPkg.dec\r
 \r
 [LibraryClasses]\r
   UefiDriverEntryPoint\r
   gEfiSmmCpuProtocolGuid                   ## PRODUCES\r
   gEfiSmmReadyToLockProtocolGuid           ## NOTIFY\r
   gEfiSmmCpuServiceProtocolGuid            ## PRODUCES\r
-  gEfiSmmCpuSaveStateProtocolGuid          ## SOMETIMES_PRODUCES\r
 \r
 [Guids]\r
   gEfiAcpiVariableGuid                     ## SOMETIMES_CONSUMES ## HOB # it is used for S3 boot.\r
   gEfiAcpi10TableGuid                      ## SOMETIMES_CONSUMES ## SystemTable\r
 \r
 [FeaturePcd]\r
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport  ## CONSUMES\r
   gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmDebug                         ## CONSUMES\r
   gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmBlockStartupThisAp            ## CONSUMES\r
   gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmEnableBspElection             ## CONSUMES\r