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

Reply via email to