]> git.proxmox.com Git - mirror_edk2.git/commit
OvmfPkg/OvmfXen: set PcdAcpiS3Enable at initialization
authorLin, Gary (HPS OE-Linux) <gary.lin@hpe.com>
Tue, 31 Aug 2021 01:31:12 +0000 (09:31 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Tue, 31 Aug 2021 11:07:16 +0000 (11:07 +0000)
commitcb0d24637dfdd869618b9635dfb8e3b0746393a6
tree4e046f263fc96880f58818ff7caafe5826368211
parentcae735f61328d64e2e8991036707b9e78c0f5f63
OvmfPkg/OvmfXen: set PcdAcpiS3Enable at initialization

There are several functions in OvmfPkg/Library using
QemuFwCfgS3Enabled() to detect the S3 support status. However, in
MdeModulePkg, PcdAcpiS3Enable is used to check S3 support. Since
InitializeXenPlatform() didn't set PcdAcpiS3Enable as
InitializePlatform() did, this made the inconsistency between
drivers/functions.

For example, S3SaveStateDxe checked PcdAcpiS3Enable and skipped
S3BootScript because the default value is FALSE. On the other hand,
PlatformBootManagerBeforeConsole() from OvmfPkg/Library called
QemuFwCfgS3Enabled() and found it returned TRUE, so it invoked
SaveS3BootScript(). However, S3SaveStateDxe skipped S3BootScript, so
SaveS3BootScript() asserted due to EFI_NOT_FOUND.

This issue mainly affects "HVM Direct Kernel Boot". When used,
"fw_cfg" is enabled in QEMU and QemuFwCfgS3Enabled() returns true in
that case.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3573
Signed-off-by: Gary Lin <gary.lin@hpe.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>
Tested-by: Jim Fehlig <jfehlig@suse.com>
OvmfPkg/XenPlatformPei/Platform.c
OvmfPkg/XenPlatformPei/XenPlatformPei.inf