]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c
OvmfPkg: AcpiPlatformDxe: enable PCI IO and MMIO while fetching QEMU tables
[mirror_edk2.git] / OvmfPkg / AcpiPlatformDxe / QemuFwCfgAcpi.c
index d75394c0f8a887aafe5687cd0634700c07e882a5..faaff3757cdb69bf76fb35b7c301acf4f5a8acd2 100644 (file)
@@ -552,7 +552,7 @@ Process2ndPassCmdAddPointer (
 **/\r
 EFI_STATUS\r
 EFIAPI\r
-InstallAllQemuLinkedTables (\r
+InstallQemuFwCfgTables (\r
   IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiProtocol\r
   )\r
 {\r
@@ -561,6 +561,8 @@ InstallAllQemuLinkedTables (
   UINTN                    FwCfgSize;\r
   QEMU_LOADER_ENTRY        *LoaderStart;\r
   CONST QEMU_LOADER_ENTRY  *LoaderEntry, *LoaderEnd;\r
+  ORIGINAL_ATTRIBUTES      *OriginalPciAttributes;\r
+  UINTN                    OriginalPciAttributesCount;\r
   ORDERED_COLLECTION       *Tracker;\r
   UINTN                    *InstalledKey;\r
   INT32                    Installed;\r
@@ -580,8 +582,10 @@ InstallAllQemuLinkedTables (
   if (LoaderStart == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
+  EnablePciDecoding (&OriginalPciAttributes, &OriginalPciAttributesCount);\r
   QemuFwCfgSelectItem (FwCfgItem);\r
   QemuFwCfgReadBytes (FwCfgSize, LoaderStart);\r
+  RestorePciDecoding (OriginalPciAttributes, OriginalPciAttributesCount);\r
   LoaderEnd = LoaderStart + FwCfgSize / sizeof *LoaderEntry;\r
 \r
   Tracker = OrderedCollectionInit (BlobCompare, BlobKeyCompare);\r
@@ -683,41 +687,3 @@ FreeLoader:
 \r
   return Status;\r
 }\r
-\r
-\r
-/**\r
-  Entrypoint of QEMU fw-cfg Acpi Platform driver.\r
-\r
-  @param  ImageHandle\r
-  @param  SystemTable\r
-\r
-  @return EFI_SUCCESS\r
-  @return EFI_LOAD_ERROR\r
-  @return EFI_OUT_OF_RESOURCES\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-QemuFwCfgAcpiPlatformEntryPoint (\r
-  IN EFI_HANDLE         ImageHandle,\r
-  IN EFI_SYSTEM_TABLE   *SystemTable\r
-  )\r
-{\r
-  EFI_STATUS                         Status;\r
-  EFI_ACPI_TABLE_PROTOCOL            *AcpiTable;\r
-\r
-  //\r
-  // Find the AcpiTable protocol\r
-  //\r
-  Status = gBS->LocateProtocol (\r
-                  &gEfiAcpiTableProtocolGuid,\r
-                  NULL,\r
-                  (VOID**)&AcpiTable\r
-                  );\r
-  if (EFI_ERROR (Status)) {\r
-    return EFI_ABORTED;\r
-  }\r
-\r
-  Status = InstallAllQemuLinkedTables (AcpiTable);\r
-  return Status;\r
-}\r