mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-30 00:54:06 +02:00
OvmfPkg/AcpiPlatformDxe: Use Xen PVH RSDP if it exist
If the firmware have been started via the Xen PVH entry point, a RSDP pointer would have been provided. Use it. Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1689 Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Message-Id: <20190813113119.14804-16-anthony.perard@citrix.com>
This commit is contained in:
parent
3afa2ed53f
commit
2a4a6242b7
@ -36,10 +36,27 @@ GetXenAcpiRsdp (
|
|||||||
EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER *RsdpStructurePtr;
|
EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER *RsdpStructurePtr;
|
||||||
UINT8 *XenAcpiPtr;
|
UINT8 *XenAcpiPtr;
|
||||||
UINT8 Sum;
|
UINT8 Sum;
|
||||||
|
EFI_XEN_INFO *XenInfo;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Detect the RSDP structure
|
// Detect the RSDP structure
|
||||||
//
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// First look for PVH one
|
||||||
|
//
|
||||||
|
XenInfo = XenGetInfoHOB ();
|
||||||
|
ASSERT (XenInfo != NULL);
|
||||||
|
if (XenInfo->RsdpPvh != NULL) {
|
||||||
|
DEBUG ((DEBUG_INFO, "%a: Use ACPI RSDP table at 0x%p\n",
|
||||||
|
gEfiCallerBaseName, XenInfo->RsdpPvh));
|
||||||
|
*RsdpPtr = XenInfo->RsdpPvh;
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Otherwise, look for the HVM one
|
||||||
|
//
|
||||||
for (XenAcpiPtr = (UINT8*)(UINTN) XEN_ACPI_PHYSICAL_ADDRESS;
|
for (XenAcpiPtr = (UINT8*)(UINTN) XEN_ACPI_PHYSICAL_ADDRESS;
|
||||||
XenAcpiPtr < (UINT8*)(UINTN) XEN_BIOS_PHYSICAL_END;
|
XenAcpiPtr < (UINT8*)(UINTN) XEN_BIOS_PHYSICAL_END;
|
||||||
XenAcpiPtr += 0x10) {
|
XenAcpiPtr += 0x10) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user