On 26 June 2015 at 23:52, Laszlo Ersek <ler...@redhat.com> wrote:
> Jeff,
>
> On 06/25/15 11:22, Ard Biesheuvel wrote:
>> The AcpiS3->S3Save() call needs to occur before the end-of-DXE event
>> is signalled. The end-of-DXE event needs to be signalled prior to
>> invoking any UEFI drivers, applications, or connecting consoles.
>>
>> This means the call to S3Save() that occurs in BdsLibBootViaBootOption()
>> violates the ordering constraints, and should be removed. Since it is
>> the responsibility of the platform BDS to signal the end-of-DXE event,
>> it should also perform the AcpiS3->S3Save() call at an appropriate time.
>>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>> Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
>> ---
>>  IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c        | 10 
>> ----------
>>  .../Library/GenericBdsLib/GenericBdsLib.inf                    |  1 -
>>  IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h |  1 -
>>  3 files changed, 12 deletions(-)
>>
>> diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c 
>> b/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c
>> index e02a71015edc..4b7eca7bbd34 100644
>> --- a/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c
>> +++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c
>> @@ -2233,7 +2233,6 @@ BdsLibBootViaBootOption (
>>    EFI_DEVICE_PATH_PROTOCOL  *FilePath;
>>    EFI_LOADED_IMAGE_PROTOCOL *ImageInfo;
>>    EFI_DEVICE_PATH_PROTOCOL  *WorkingDevicePath;
>> -  EFI_ACPI_S3_SAVE_PROTOCOL *AcpiS3Save;
>>    LIST_ENTRY                TempBootLists;
>>    EFI_BOOT_LOGO_PROTOCOL    *BootLogo;
>>
>> @@ -2241,15 +2240,6 @@ BdsLibBootViaBootOption (
>>    *ExitData     = NULL;
>>
>>    //
>> -  // Notes: this code can be remove after the s3 script table
>> -  // hook on the event EVT_SIGNAL_READY_TO_BOOT or
>> -  // EVT_SIGNAL_LEGACY_BOOT
>> -  //
>> -  Status = gBS->LocateProtocol (&gEfiAcpiS3SaveProtocolGuid, NULL, (VOID 
>> **) &AcpiS3Save);
>> -  if (!EFI_ERROR (Status)) {
>> -    AcpiS3Save->S3Save (AcpiS3Save, NULL);
>> -  }
>> -  //
>>    // If it's Device Path that starts with a hard drive path, append it with 
>> the front part to compose a
>>    // full device path
>>    //
>> diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf 
>> b/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
>> index 5381e331ff8c..5a138a9169b3 100644
>> --- a/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
>> +++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
>> @@ -119,7 +119,6 @@ [Protocols]
>>    gEfiLegacyBiosProtocolGuid                    ## SOMETIMES_CONSUMES
>>    gEfiCpuArchProtocolGuid                       ## CONSUMES
>>    gEfiDevicePathProtocolGuid                    ## CONSUMES
>> -  gEfiAcpiS3SaveProtocolGuid                    ## SOMETIMES_CONSUMES
>>    gEfiGraphicsOutputProtocolGuid                ## SOMETIMES_CONSUMES
>>    gEfiUgaDrawProtocolGuid |gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport ## 
>> SOMETIMES_CONSUMES
>>    gEfiOEMBadgingProtocolGuid                    ## SOMETIMES_CONSUMES
>> diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h 
>> b/IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h
>> index c32579bfc577..7201d8a33527 100644
>> --- a/IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h
>> +++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h
>> @@ -33,7 +33,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER 
>> EXPRESS OR IMPLIED.
>>  #include <Protocol/SimpleNetwork.h>
>>  #include <Protocol/FirmwareVolume2.h>
>>  #include <Protocol/PciIo.h>
>> -#include <Protocol/AcpiS3Save.h>
>>  #include <Protocol/OEMBadging.h>
>>  #include <Protocol/GraphicsOutput.h>
>>  #include <Protocol/UgaDraw.h>
>>
>
> please do not commit this patch. As discussed earlier, it would break
> OVMF's S3.
>
> I'm working on a series, and I'll include this patch from Ard in it
> (with the Reviewed-by tags that it has collected), in the right position.
>

I agree. There is no urgency to get this patch merged, as far as I am
concerned, so I am totally fine with waiting for Laszlo to repost it
once OVMF is ready for it.

Thanks,
Ard.

------------------------------------------------------------------------------
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

Reply via email to