At this point, nothing in the OVMF build calls EFI_ACPI_S3_SAVE_PROTOCOL member functions; simplify the code by dropping this protocol interface.
Cc: Jordan Justen <jordan.l.jus...@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <ler...@redhat.com> --- OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf | 4 +- OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.h | 28 +------- OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c | 71 ++------------------ 3 files changed, 6 insertions(+), 97 deletions(-) diff --git a/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf b/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf index e657bbe..a503327 100644 --- a/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf +++ b/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf @@ -1,5 +1,5 @@ ## @file -# Component description file for AcpiS3Save module. +# AcpiS3Save module installs EndOfDxe callback to prepare S3 boot data. # # This is an implementation of the ACPI S3 Save protocol. # Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR> @@ -61,14 +61,12 @@ [Guids] gEfiEndOfDxeEventGroupGuid ## CONSUMES ## Event [Protocols] - gEfiAcpiS3SaveProtocolGuid # PROTOCOL ALWAYS_PRODUCED gEfiLockBoxProtocolGuid # PROTOCOL ALWAYS_PRODUCED gEfiLegacyBiosProtocolGuid # PROTOCOL ALWAYS_CONSUMED gEfiLegacyRegion2ProtocolGuid # PROTOCOL SOMETIMES_CONSUMED gFrameworkEfiMpServiceProtocolGuid # PROTOCOL SOMETIMES_CONSUMED [FeaturePcd] - gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformCsmSupport ## CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode [Pcd] diff --git a/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.h b/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.h index 65974a3..6d8a9bb 100644 --- a/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.h +++ b/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.h @@ -19,41 +19,15 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #define _ACPI_S3_SAVE_H_ /** - Gets the buffer of legacy memory below 1 MB - This function is to get the buffer in legacy memory below 1MB that is required during S3 resume. - - @param This A pointer to the EFI_ACPI_S3_SAVE_PROTOCOL instance. - @param Size The returned size of legacy memory below 1 MB. - - @retval EFI_SUCCESS Size is successfully returned. - @retval EFI_INVALID_PARAMETER The pointer Size is NULL. - -**/ -EFI_STATUS -EFIAPI -LegacyGetS3MemorySize ( - IN EFI_ACPI_S3_SAVE_PROTOCOL * This, - OUT UINTN * Size - ); - -/** Prepares all information that is needed in the S3 resume boot path. Allocate the resources or prepare informations and save in ACPI variable set for S3 resume boot path - @param This A pointer to the EFI_ACPI_S3_SAVE_PROTOCOL instance. - @param LegacyMemoryAddress The base address of legacy memory. - - @retval EFI_NOT_FOUND Some necessary information cannot be found. @retval EFI_SUCCESS All information was saved successfully. - @retval EFI_OUT_OF_RESOURCES Resources were insufficient to save all the information. - @retval EFI_INVALID_PARAMETER The memory range is not located below 1 MB. - **/ EFI_STATUS EFIAPI S3Ready ( - IN EFI_ACPI_S3_SAVE_PROTOCOL *This, - IN VOID *LegacyMemoryAddress + VOID ); #endif diff --git a/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c b/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c index 8372db8..659acae 100644 --- a/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c +++ b/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c @@ -30,19 +30,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #include <Guid/AcpiS3Context.h> #include <Guid/Acpi.h> #include <Guid/EventGroup.h> -#include <Protocol/AcpiS3Save.h> #include <Protocol/LockBox.h> #include <IndustryStandard/Acpi.h> #include "AcpiS3Save.h" -UINTN mLegacyRegionSize; - -EFI_ACPI_S3_SAVE_PROTOCOL mS3Save = { - LegacyGetS3MemorySize, - S3Ready, -}; - EFI_GUID mAcpiS3IdtrProfileGuid = { 0xdea652b0, 0xd587, 0x4c54, { 0xb5, 0xb4, 0xc6, 0x82, 0xe7, 0xa0, 0xaa, 0x3d } }; @@ -385,52 +377,16 @@ S3CreateIdentityMappingPageTables ( } /** - Gets the buffer of legacy memory below 1 MB - This function is to get the buffer in legacy memory below 1MB that is required during S3 resume. - - @param This A pointer to the EFI_ACPI_S3_SAVE_PROTOCOL instance. - @param Size The returned size of legacy memory below 1 MB. - - @retval EFI_SUCCESS Size is successfully returned. - @retval EFI_INVALID_PARAMETER The pointer Size is NULL. - -**/ -EFI_STATUS -EFIAPI -LegacyGetS3MemorySize ( - IN EFI_ACPI_S3_SAVE_PROTOCOL *This, - OUT UINTN *Size - ) -{ - ASSERT (FALSE); - - if (Size == NULL) { - return EFI_INVALID_PARAMETER; - } - - *Size = mLegacyRegionSize; - return EFI_SUCCESS; -} - -/** Prepares all information that is needed in the S3 resume boot path. Allocate the resources or prepare informations and save in ACPI variable set for S3 resume boot path - @param This A pointer to the EFI_ACPI_S3_SAVE_PROTOCOL instance. - @param LegacyMemoryAddress The base address of legacy memory. - - @retval EFI_NOT_FOUND Some necessary information cannot be found. @retval EFI_SUCCESS All information was saved successfully. - @retval EFI_OUT_OF_RESOURCES Resources were insufficient to save all the information. - @retval EFI_INVALID_PARAMETER The memory range is not located below 1 MB. - **/ EFI_STATUS EFIAPI S3Ready ( - IN EFI_ACPI_S3_SAVE_PROTOCOL *This, - IN VOID *LegacyMemoryAddress + VOID ) { EFI_STATUS Status; @@ -442,17 +398,12 @@ S3Ready ( DEBUG ((EFI_D_INFO, "S3Ready!\n")); - // - // Platform may invoke AcpiS3Save->S3Save() before ExitPmAuth, because we need save S3 information there, while BDS ReadyToBoot may invoke it again. - // So if 2nd S3Save() is triggered later, we need ignore it. - // + ASSERT (!AlreadyEntered); if (AlreadyEntered) { return EFI_SUCCESS; } AlreadyEntered = TRUE; - ASSERT (LegacyMemoryAddress == NULL); - AcpiS3Context = AllocateMemoryBelow4G (EfiReservedMemoryType, sizeof(*AcpiS3Context)); ASSERT (AcpiS3Context != NULL); AcpiS3ContextBuffer = (EFI_PHYSICAL_ADDRESS)(UINTN)AcpiS3Context; @@ -539,13 +490,9 @@ OnEndOfDxe ( EFI_STATUS Status; // - // Our S3Ready() function ignores both of its parameters, and always - // succeeds. + // Our S3Ready() function always succeeds. // - Status = S3Ready ( - NULL, // This - NULL // LegacyMemoryAddress - ); + Status = S3Ready (); ASSERT_EFI_ERROR (Status); // @@ -583,18 +530,8 @@ InstallAcpiS3Save ( return EFI_LOAD_ERROR; } - if (!FeaturePcdGet(PcdPlatformCsmSupport)) { - // - // More memory for no CSM tip, because GDT need relocation - // - mLegacyRegionSize = 0x250; - } else { - mLegacyRegionSize = 0x100; - } - Status = gBS->InstallMultipleProtocolInterfaces ( &ImageHandle, - &gEfiAcpiS3SaveProtocolGuid, &mS3Save, &gEfiLockBoxProtocolGuid, NULL, NULL ); -- 1.8.3.1 ------------------------------------------------------------------------------ Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical & virtual servers, alerts via email & sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel