summaryrefslogtreecommitdiff
path: root/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2017-02-09 17:32:40 +0100
committerLaszlo Ersek <lersek@redhat.com>2017-02-21 13:10:42 +0100
commitdf73df138d9d53f7f7570f4fe97a6cde941a2656 (patch)
tree44476421f4a08c953cd16e5175b9fce511ba9394 /OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
parent9965cbd424f22b35e7743c2f59ab3ee1db15142a (diff)
OvmfPkg/AcpiPlatformDxe: replay QEMU_LOADER_WRITE_POINTER commands at S3
Ultimately, each QEMU_LOADER_WRITE_POINTER command creates a guest memory reference in some QEMU device. When the virtual machine is reset, the device willfully forgets the guest address, since the guest memory is wholly invalidated during platform reset. ... Unless the reset is part of S3 resume. Then the guest memory is preserved intact, and the firmware must reprogram those devices with the original guest memory allocation addresses. This patch accumulates the fw_cfg select, skip and write operations of ProcessCmdWritePointer() in a validated / condensed form, and turns them into an ACPI S3 Boot Script fragment at the very end of InstallQemuFwCfgTables(). Cc: Jordan Justen <jordan.l.justen@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=359 Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Diffstat (limited to 'OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf')
-rw-r--r--OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf2
1 files changed, 2 insertions, 0 deletions
diff --git a/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf b/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
index 654d3a0390..bb5f14e0fc 100644
--- a/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
+++ b/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
@@ -33,6 +33,7 @@
Xen.c
EntryPoint.c
PciDecoding.c
+ BootScript.c
[Packages]
MdePkg/MdePkg.dec
@@ -59,6 +60,7 @@
[Protocols]
gEfiAcpiTableProtocolGuid # PROTOCOL ALWAYS_CONSUMED
gEfiPciIoProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
+ gEfiS3SaveStateProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
[Guids]
gEfiXenInfoGuid