X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=OvmfPkg%2FAcpiPlatformDxe%2FAcpiPlatform.c;h=61166c65c33cd2c366b4b8d11df95f522bff5a43;hb=5ef3b66fec13f8f2d4f02322a84d6b8a1c31e771;hp=331cdc40505930124e032b11e8676bb859b431d2;hpb=53596a72cd96f84c7ca83254246f3520a49861b1;p=mirror_edk2.git diff --git a/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.c b/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.c index 331cdc4050..61166c65c3 100644 --- a/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.c +++ b/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.c @@ -130,14 +130,20 @@ LocateFvInstanceWithTables ( /** - Find ACPI tables in an FV and parses them. This function is useful for QEMU and KVM. + Find ACPI tables in an FV and install them. + + This is now a fall-back path. Normally, we will search for tables provided + by the VMM first. + + If that fails, we use this function to load the ACPI tables from an FV. The + sources for the FV based tables is located under OvmfPkg/AcpiTables. @param AcpiTable Protocol instance pointer **/ EFI_STATUS EFIAPI -FindAcpiTablesInFv ( +InstallOvmfFvTables ( IN EFI_ACPI_TABLE_PROTOCOL *AcpiTable ) { @@ -222,7 +228,7 @@ FindAcpiTablesInFv ( } /** - Entrypoint of Acpi Platform driver. + Effective entrypoint of Acpi Platform driver. @param ImageHandle @param SystemTable @@ -234,32 +240,20 @@ FindAcpiTablesInFv ( **/ EFI_STATUS EFIAPI -AcpiPlatformEntryPoint ( - IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable +InstallAcpiTables ( + IN EFI_ACPI_TABLE_PROTOCOL *AcpiTable ) { EFI_STATUS Status; - EFI_ACPI_TABLE_PROTOCOL *AcpiTable; - - // - // Find the AcpiTable protocol - // - Status = gBS->LocateProtocol ( - &gEfiAcpiTableProtocolGuid, - NULL, - (VOID**)&AcpiTable - ); - ASSERT_EFI_ERROR (Status); if (XenDetected ()) { Status = InstallXenTables (AcpiTable); } else { - Status = InstallAllQemuLinkedTables (AcpiTable); + Status = InstallQemuFwCfgTables (AcpiTable); } if (EFI_ERROR (Status)) { - Status = FindAcpiTablesInFv (AcpiTable); + Status = InstallOvmfFvTables (AcpiTable); } return Status;