]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg: AcpiS3SaveDxe: don't fake LockBox protocol if SMM_REQUIRE
authorLaszlo Ersek <lersek@redhat.com>
Mon, 30 Nov 2015 18:42:01 +0000 (18:42 +0000)
committerlersek <lersek@Edk2>
Mon, 30 Nov 2015 18:42:01 +0000 (18:42 +0000)
In SVN r15306 (git commit d4ba06df), "OvmfPkg: S3 Resume: fake LockBox
protocol for BootScriptExecutorDxe", we installed a fake LockBox protocol
in OVMF's AcpiS3SaveDxe clone. While our other AcpiS3SaveDxe
customizations remain valid (or harmless), said change is invalid when
OVMF is built with -D SMM_REQUIRE and includes the real protocol provider,
"MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf".

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19045 6f19259b-4bc3-4df7-8a09-765794883524

OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c
OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf

index f20560f8fe1f0623321dfc425914acc9f3985ebf..e3ff23410145329087d950533226961a08ddd7ac 100644 (file)
@@ -538,12 +538,14 @@ InstallEndOfDxeCallback (
     return EFI_LOAD_ERROR;\r
   }\r
 \r
-  Status = gBS->InstallMultipleProtocolInterfaces (\r
-                  &ImageHandle,\r
-                  &gEfiLockBoxProtocolGuid, NULL,\r
-                  NULL\r
-                  );\r
-  ASSERT_EFI_ERROR (Status);\r
+  if (!FeaturePcdGet (PcdSmmSmramRequire)) {\r
+    Status = gBS->InstallMultipleProtocolInterfaces (\r
+                    &ImageHandle,\r
+                    &gEfiLockBoxProtocolGuid, NULL,\r
+                    NULL\r
+                    );\r
+    ASSERT_EFI_ERROR (Status);\r
+  }\r
 \r
   Status = gBS->CreateEventEx (\r
                   EVT_NOTIFY_SIGNAL,\r
index 4cc0713d1a4b032a5214b44be769b744d5938e05..a288b954b7918964ddc054bcc104e49404647635 100644 (file)
@@ -59,7 +59,7 @@
   gEfiEndOfDxeEventGroupGuid                    ## CONSUMES  ## Event\r
 \r
 [Protocols]\r
-  gEfiLockBoxProtocolGuid                       # PROTOCOL ALWAYS_PRODUCED\r
+  gEfiLockBoxProtocolGuid                       # PROTOCOL SOMETIMES_PRODUCED\r
   gEfiLegacyBiosProtocolGuid                    # PROTOCOL ALWAYS_CONSUMED\r
   gEfiLegacyRegion2ProtocolGuid                 # PROTOCOL SOMETIMES_CONSUMED\r
   gFrameworkEfiMpServiceProtocolGuid            # PROTOCOL SOMETIMES_CONSUMED\r
@@ -71,6 +71,7 @@
   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdS3AcpiReservedMemorySize    ## CONSUMES\r
   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdS3BootScriptStackSize       ## CONSUMES\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable\r
+  gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire                            ## CONSUMES\r
 \r
 [Depex]\r
   gEfiVariableArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid\r