On 08/09/14 04:08, Laszlo Ersek wrote: > This series strives to implement a client for QEMU's ACPI loader fw_cfg > interface as completely as I can imagine at this point. The only > shortcut it takes is that it equates the FSeg allocation hint with the > affected blob containing the RSD PTR table at the beginning, which > Michael (CC'd) has suggested before. > > Some UEFI-specific notes for Michael that may not be obvious > immediately: > > - All blobs are allocated in EfiACPIMemoryNVS type memory. In theory, > most tables could be allocated in EfiACPIReclaimMemory too (which the > OS can release and reuse after it enables ACPI) except eg. the FACS, > but the fw_cfg interface doesn't allow distinguishing these two, hence > OVMF follows what SeaBIOS does: allocates tables in memory that is > permanently reserved from the OS. > > - All tables are allocated under 4GB. The Zone member of the Allocate > command is ignored (beyond the RSD PTR determination above). > > - The RSD PTR is not allocated at a particularly low address; under UEFI > the RSD PTR is detected by checking for one of two special GUIDs in > the EFI Configuration Table. The actual GUID found corresponds to the > version number of the RSD PTR. > > - All blobs are allocated in areas that are whole multiples of pages. > Alignment requests greater than a page are not supported. (At the > moment edk2 has no memory allocation interface that supports *all* of: > alignment specification, memory type, and max address.) > > The series depends on OrderedCollectionLib, which I had posted as: > [edk2] [PATCH v3 0/3] MdePkg: ordered collections, AppPkg: unit tester > <http://thread.gmane.org/gmane.comp.bios.tianocore.devel/8269> > <https://github.com/lersek/edk2/commits/rbtree_v3> > > Tested as follows: > - Fedora 20 guest, checked tables in dmesg, S3 suspend/resume works, > ACPI shutdown (virtual power button) works; > - RHEL-7, ditto; > - Windows Server 2008 R2 with QXL driver, S3 suspend/resume works (bound > to ACPI power button). > > Public branch: <https://github.com/lersek/edk2/commits/acpi_full> > > Thanks > Laszlo > > Laszlo Ersek (4): > OvmfPkg: resolve OrderedCollectionLib with base red-black tree > instance > OvmfPkg: AcpiPlatformDxe: actualize QemuLoader.h comments > OvmfPkg: AcpiPlatformDxe: remove current ACPI table loader > OvmfPkg: AcpiPlatformDxe: implement QEMU's full ACPI table loader > interface > > OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf | 3 + > OvmfPkg/AcpiPlatformDxe/AcpiPlatform.h | 2 +- > OvmfPkg/AcpiPlatformDxe/QemuLoader.h | 6 +- > OvmfPkg/AcpiPlatformDxe/AcpiPlatform.c | 2 +- > OvmfPkg/AcpiPlatformDxe/Qemu.c | 593 > +++++++++++++++++----------- > OvmfPkg/OvmfPkgIa32.dsc | 1 + > OvmfPkg/OvmfPkgIa32X64.dsc | 1 + > OvmfPkg/OvmfPkgX64.dsc | 1 + > 8 files changed, 362 insertions(+), 247 deletions(-) >
Ping. Thanks, Laszlo ------------------------------------------------------------------------------ _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
