Revision: 18038
          http://sourceforge.net/p/edk2/code/18038
Author:   jljusten
Date:     2015-07-26 08:02:29 +0000 (Sun, 26 Jul 2015)
Log Message:
-----------
OvmfPkg: AcpiS3SaveDxe: drop EFI_ACPI_S3_SAVE_PROTOCOL

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 <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <[email protected]>
Reviewed-by: Jordan Justen <[email protected]>

Modified Paths:
--------------
    trunk/edk2/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c
    trunk/edk2/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf

Removed Paths:
-------------
    trunk/edk2/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.h

Modified: trunk/edk2/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c
===================================================================
--- trunk/edk2/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c       2015-07-26 08:02:24 UTC 
(rev 18037)
+++ trunk/edk2/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c       2015-07-26 08:02:29 UTC 
(rev 18038)
@@ -1,7 +1,10 @@
 /** @file
-  This is an implementation of the ACPI S3 Save protocol.  This is defined in
-  S3 boot path specification 0.9.
+  This is a replacement for the ACPI S3 Save protocol.
 
+  The ACPI S3 Save protocol used to be defined in the S3 boot path
+  specification 0.9. Instead, the same functionality is now hooked to the
+  End-of-Dxe event.
+
 Copyright (c) 2014-2015, Red Hat, Inc.<BR>
 Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
 
@@ -30,19 +33,9 @@
 #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 +378,17 @@
 }
 
 /**
-  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.
-
 **/
+STATIC
 EFI_STATUS
 EFIAPI
 S3Ready (
-  IN EFI_ACPI_S3_SAVE_PROTOCOL    *This,
-  IN VOID                         *LegacyMemoryAddress
+  VOID
   )
 {
   EFI_STATUS                                    Status;
@@ -442,17 +400,12 @@
 
   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 +492,9 @@
   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);
 
   //
@@ -559,8 +508,9 @@
 /**
   The Driver Entry Point.
   
-  The function is the driver Entry point which will produce AcpiS3SaveProtocol.
-  
+  The function is the driver Entry point that will register the End-of-Dxe
+  callback.
+
   @param ImageHandle   A handle for the image that is initializing this driver
   @param SystemTable   A pointer to the EFI system table
 
@@ -571,7 +521,7 @@
 **/
 EFI_STATUS
 EFIAPI
-InstallAcpiS3Save (
+InstallEndOfDxeCallback (
   IN EFI_HANDLE           ImageHandle,
   IN EFI_SYSTEM_TABLE     *SystemTable
   )
@@ -583,18 +533,8 @@
     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
                   );

Deleted: trunk/edk2/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.h
===================================================================
--- trunk/edk2/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.h       2015-07-26 08:02:24 UTC 
(rev 18037)
+++ trunk/edk2/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.h       2015-07-26 08:02:29 UTC 
(rev 18038)
@@ -1,59 +0,0 @@
-/** @file
-  This is an implementation of the ACPI S3 Save protocol.  This is defined in 
-  S3 boot path specification 0.9.
-
-Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
-
-This program and the accompanying materials
-are licensed and made available under the terms and conditions
-of the BSD License which accompanies this distribution.  The
-full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#ifndef _ACPI_S3_SAVE_H_
-#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   
-  );
-#endif

Modified: trunk/edk2/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
===================================================================
--- trunk/edk2/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf  2015-07-26 08:02:24 UTC 
(rev 18037)
+++ trunk/edk2/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf  2015-07-26 08:02:29 UTC 
(rev 18038)
@@ -1,7 +1,6 @@
 ## @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>
 #
 # This program and the accompanying materials are
@@ -21,7 +20,7 @@
   MODULE_TYPE                    = DXE_DRIVER
   VERSION_STRING                 = 1.0
 
-  ENTRY_POINT                    = InstallAcpiS3Save
+  ENTRY_POINT                    = InstallEndOfDxeCallback
 
 #
 # The following information is for reference only and not required by the 
build tools.
@@ -30,7 +29,6 @@
 #
 
 [Sources]
-  AcpiS3Save.h
   AcpiS3Save.c
 
 [Packages]
@@ -61,14 +59,12 @@
   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]


------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to