Looks good. Thanks!

Reviewed-by: Jordan Justen <[email protected]>

On 2015-11-30 12:51:35, Laszlo Ersek wrote:
> At the moment, the "UefiCpuPkg/Universal/Acpi/S3Resume2Pei" module doesn't
> support S3 resume if the platform has SMM enabled and the PEI phase is
> built for X64. We document this in the README, but it is not conspicuous
> enough.
> 
> Replace the "fine print" in the README with a runtime check in
> PlatformPei.
> 
> Cc: Jordan Justen <[email protected]>
> Suggested-by: Jordan Justen <[email protected]>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Laszlo Ersek <[email protected]>
> ---
>  OvmfPkg/PlatformPei/PlatformPei.inf |  1 +
>  OvmfPkg/PlatformPei/Platform.c      | 23 ++++++++++++++++++++
>  OvmfPkg/README                      |  5 -----
>  3 files changed, 24 insertions(+), 5 deletions(-)
> 
> diff --git a/OvmfPkg/PlatformPei/PlatformPei.inf 
> b/OvmfPkg/PlatformPei/PlatformPei.inf
> index ee044a2..cec19ee 100644
> --- a/OvmfPkg/PlatformPei/PlatformPei.inf
> +++ b/OvmfPkg/PlatformPei/PlatformPei.inf
> @@ -47,6 +47,7 @@ [Guids]
>    gEfiXenInfoGuid
>  
>  [LibraryClasses]
> +  BaseLib
>    DebugLib
>    HobLib
>    IoLib
> diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c
> index 8252dc9..657fa68 100644
> --- a/OvmfPkg/PlatformPei/Platform.c
> +++ b/OvmfPkg/PlatformPei/Platform.c
> @@ -22,6 +22,7 @@
>  //
>  // The Library classes this module consumes
>  //
> +#include <Library/BaseLib.h>
>  #include <Library/DebugLib.h>
>  #include <Library/HobLib.h>
>  #include <Library/IoLib.h>
> @@ -461,6 +462,27 @@ DebugDumpCmos (
>  }
>  
>  
> +VOID
> +S3Verification (
> +  VOID
> +  )
> +{
> +#if defined (MDE_CPU_X64)
> +  if (FeaturePcdGet (PcdSmmSmramRequire) && mS3Supported) {
> +    DEBUG ((EFI_D_ERROR,
> +      "%a: S3Resume2Pei doesn't support X64 PEI + SMM yet.\n", 
> __FUNCTION__));
> +    DEBUG ((EFI_D_ERROR,
> +      "%a: Please disable S3 on the QEMU command line (see the README),\n",
> +      __FUNCTION__));
> +    DEBUG ((EFI_D_ERROR,
> +      "%a: or build OVMF with \"OvmfPkgIa32X64.dsc\".\n", __FUNCTION__));
> +    ASSERT (FALSE);
> +    CpuDeadLoop ();
> +  }
> +#endif
> +}
> +
> +
>  /**
>    Perform Platform PEI initialization.
>  
> @@ -488,6 +510,7 @@ InitializePlatform (
>      mS3Supported = TRUE;
>    }
>  
> +  S3Verification ();
>    BootModeInitialization ();
>    AddressWidthInitialization ();
>  
> diff --git a/OvmfPkg/README b/OvmfPkg/README
> index 0f70fa7..e6137dd 100644
> --- a/OvmfPkg/README
> +++ b/OvmfPkg/README
> @@ -170,11 +170,6 @@ can be used on Windows.
>  
>    -global ICH9-LPC.disable_s3=1 \
>  
> -Dependent on the development status of the
> -"UefiCpuPkg/Universal/Acpi/S3Resume2Pei" module, S3 resume may not work in
> -OvmfPkg/OvmfPkgX64.dsc builds. In such cases, OvmfPkg/OvmfPkgIa32X64.dsc is
> -recommended for running X64 guests.
> -
>  === Network Support ===
>  
>  OVMF provides a UEFI network stack by default. Its lowest level driver is the
> -- 
> 1.8.3.1
> 
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to