**/\r
EFI_STATUS\r
EFIAPI\r
-InstallAllQemuLinkedTables (\r
+InstallQemuFwCfgTables (\r
IN EFI_ACPI_TABLE_PROTOCOL *AcpiProtocol\r
)\r
{\r
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
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
\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