]> git.proxmox.com Git - mirror_edk2.git/commitdiff
UefiCpuPkg/PiSmmCpuDxeSmm: Consume PcdAcpiS3Enable to control the code
authorStar Zeng <star.zeng@intel.com>
Wed, 20 Jul 2016 02:24:58 +0000 (10:24 +0800)
committerMichael Kinney <michael.d.kinney@intel.com>
Thu, 1 Sep 2016 15:18:59 +0000 (08:18 -0700)
if PcdAcpiS3Enable is disabled, then skip S3 related logic.

Cc: Jeff Fan <jeff.fan@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf

index f26149d27a2784dac2ff8e2d0f512287affd7bff..6a798ef899ad3c737a52c757464ceaf4ae14cab1 100644 (file)
@@ -75,6 +75,8 @@ BOOLEAN                      mSmmS3Flag = FALSE;
 //\r
 SMM_S3_RESUME_STATE          *mSmmS3ResumeState = NULL;\r
 \r
+BOOLEAN                      mAcpiS3Enable = TRUE;\r
+\r
 /**\r
   Get MSR spin lock by MSR index.\r
 \r
@@ -548,6 +550,10 @@ RestoreSmmConfigurationInS3 (
   VOID\r
   )\r
 {\r
+  if (!mAcpiS3Enable) {\r
+    return;\r
+  }\r
+\r
   //\r
   // Restore SMM Configuration in S3 boot path.\r
   //\r
@@ -726,6 +732,10 @@ InitSmmS3ResumeState (
   EFI_SMRAM_DESCRIPTOR       *SmramDescriptor;\r
   SMM_S3_RESUME_STATE        *SmmS3ResumeState;\r
 \r
+  if (!mAcpiS3Enable) {\r
+    return;\r
+  }\r
+\r
   GuidHob = GetFirstGuidHob (&gEfiAcpiVariableGuid);\r
   if (GuidHob != NULL) {\r
     SmramDescriptor = (EFI_SMRAM_DESCRIPTOR *) GET_GUID_HOB_DATA (GuidHob);\r
@@ -817,6 +827,10 @@ GetAcpiCpuData (
   IA32_DESCRIPTOR            *Gdtr;\r
   IA32_DESCRIPTOR            *Idtr;\r
 \r
+  if (!mAcpiS3Enable) {\r
+    return;\r
+  }\r
+\r
   //\r
   // Prevent use of mAcpiCpuData by initialize NumberOfCpus to 0\r
   //\r
@@ -883,3 +897,15 @@ GetAcpiCpuData (
   CopyMem (mIdtForAp, (VOID *)Idtr->Base, Idtr->Limit + 1);\r
   CopyMem (mMachineCheckHandlerForAp, (VOID *)(UINTN)mAcpiCpuData.ApMachineCheckHandlerBase, mAcpiCpuData.ApMachineCheckHandlerSize);\r
 }\r
+\r
+/**\r
+  Get ACPI S3 enable flag.\r
+\r
+**/\r
+VOID\r
+GetAcpiS3EnableFlag (\r
+  VOID\r
+  )\r
+{\r
+  mAcpiS3Enable = PcdGetBool (PcdAcpiS3Enable);\r
+}\r
index d00afc8ce67e43051253ca35de2c1b0956ea1223..852b5c742688c92fc9218f1dc0f2c02dbe247f0b 100644 (file)
@@ -910,6 +910,7 @@ PiCpuSmmEntry (
   //\r
   InitSmmProfile (Cr3);\r
 \r
+  GetAcpiS3EnableFlag ();\r
   InitSmmS3ResumeState (Cr3);\r
 \r
   DEBUG ((EFI_D_INFO, "SMM CPU Module exit from SMRAM with EFI_SUCCESS\n"));\r
index 97309d1fe77adbe0de661a4bd30318a2b3671618..9b119c8412c529a08844025787acaf5bd58e8564 100644 (file)
@@ -816,4 +816,13 @@ RestoreSmmConfigurationInS3 (
   VOID\r
   );\r
 \r
+/**\r
+  Get ACPI S3 enable flag.\r
+\r
+**/\r
+VOID\r
+GetAcpiS3EnableFlag (\r
+  VOID\r
+  );\r
+\r
 #endif\r
index d7e6e0745a3048c70cedbd956c7624bde1d6e08f..5d598d609cbef1e524963f43c7807af6c23fc8de 100644 (file)
   gUefiCpuPkgTokenSpaceGuid.PcdCpuHotPlugDataAddress               ## SOMETIMES_PRODUCES\r
   gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmCodeAccessCheckEnable         ## CONSUMES\r
   gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmSyncMode                      ## CONSUMES\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable                   ## CONSUMES\r
 \r
 [Depex]\r
   gEfiMpServiceProtocolGuid\r