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 <ler...@redhat.com> --- OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf | 3 ++- OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c | 14 ++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf b/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf index 4cc0713..a288b95 100644 --- a/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf +++ b/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf @@ -59,7 +59,7 @@ [Guids] gEfiEndOfDxeEventGroupGuid ## CONSUMES ## Event [Protocols] - gEfiLockBoxProtocolGuid # PROTOCOL ALWAYS_PRODUCED + gEfiLockBoxProtocolGuid # PROTOCOL SOMETIMES_PRODUCED gEfiLegacyBiosProtocolGuid # PROTOCOL ALWAYS_CONSUMED gEfiLegacyRegion2ProtocolGuid # PROTOCOL SOMETIMES_CONSUMED gFrameworkEfiMpServiceProtocolGuid # PROTOCOL SOMETIMES_CONSUMED @@ -71,6 +71,7 @@ [Pcd] gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdS3AcpiReservedMemorySize ## CONSUMES gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdS3BootScriptStackSize ## CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable + gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire ## CONSUMES [Depex] gEfiVariableArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid diff --git a/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c b/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c index f20560f..e3ff234 100644 --- a/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c +++ b/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c @@ -538,12 +538,14 @@ InstallEndOfDxeCallback ( return EFI_LOAD_ERROR; } - Status = gBS->InstallMultipleProtocolInterfaces ( - &ImageHandle, - &gEfiLockBoxProtocolGuid, NULL, - NULL - ); - ASSERT_EFI_ERROR (Status); + if (!FeaturePcdGet (PcdSmmSmramRequire)) { + Status = gBS->InstallMultipleProtocolInterfaces ( + &ImageHandle, + &gEfiLockBoxProtocolGuid, NULL, + NULL + ); + ASSERT_EFI_ERROR (Status); + } Status = gBS->CreateEventEx ( EVT_NOTIFY_SIGNAL, -- 1.8.3.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel