//\r
SMM_S3_RESUME_STATE *mSmmS3ResumeState = NULL;\r
\r
+BOOLEAN mAcpiS3Enable = TRUE;\r
+\r
/**\r
Get MSR spin lock by MSR index.\r
\r
VOID\r
)\r
{\r
+ if (!mAcpiS3Enable) {\r
+ return;\r
+ }\r
+\r
//\r
// Restore SMM Configuration in S3 boot path.\r
//\r
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
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
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
gUefiCpuPkgTokenSpaceGuid.PcdCpuHotPlugDataAddress ## SOMETIMES_PRODUCES\r
gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmCodeAccessCheckEnable ## CONSUMES\r
gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmSyncMode ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable ## CONSUMES\r
\r
[Depex]\r
gEfiMpServiceProtocolGuid\r