]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c
UefiCpuPkg/PiSmmCpuDxeSmm: Consume PcdAcpiS3Enable to control the code
[mirror_edk2.git] / UefiCpuPkg / PiSmmCpuDxeSmm / CpuS3.c
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