X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=OvmfPkg%2FAcpiPlatformDxe%2FAcpiPlatform.c;h=61166c65c33cd2c366b4b8d11df95f522bff5a43;hb=61a044c6c15f5806a30ff23409ba5287d9d07163;hp=11f0ca8594025069556e78000ef07b3ec8df6670;hpb=2d1fe95066fb11e30f9028d70349669c24f6c289;p=mirror_edk2.git diff --git a/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.c b/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.c index 11f0ca8594..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,34 +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 - ); - if (EFI_ERROR (Status)) { - return EFI_ABORTED; - } if (XenDetected ()) { Status = InstallXenTables (AcpiTable); } else { - Status = InstallAllQemuLinkedTables (AcpiTable); + Status = InstallQemuFwCfgTables (AcpiTable); } if (EFI_ERROR (Status)) { - Status = FindAcpiTablesInFv (AcpiTable); + Status = InstallOvmfFvTables (AcpiTable); } return Status;