From 3357ac73807d83eb212632ee7c2e032a20a49c56 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 26 May 2021 22:14:23 +0200 Subject: OvmfPkg/XenAcpiPlatformDxe: remove delayed ACPI table installation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Because "PcdPciDisableBusEnumeration" is always TRUE in the OvmfXen platform, we can remove the delayed ACPI table installation from XenAcpiPlatformDxe. A number of dependencies become useless this way; remove them too. (Note that, conversely, in the QemuFwCfgAcpiPlatformDxe driver, we *cannot* assume that "PcdPciDisableBusEnumeration" is always FALSE, regardless of Xen: in the ArmVirtQemu platform, the PCD may carry either FALSE or TRUE, dependent on whether or not the QEMU "virt" machine configuration includes a PCIe host controller, respectively.) Cc: Anthony Perard Cc: Ard Biesheuvel Cc: Jordan Justen Cc: Julien Grall Cc: Philippe Mathieu-Daudé Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2122 Signed-off-by: Laszlo Ersek Message-Id: <20210526201446.12554-21-lersek@redhat.com> Reviewed-by: Ard Biesheuvel Reviewed-by: Philippe Mathieu-Daudé --- OvmfPkg/XenAcpiPlatformDxe/EntryPoint.c | 56 +---------------------- OvmfPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf | 8 ---- 2 files changed, 2 insertions(+), 62 deletions(-) diff --git a/OvmfPkg/XenAcpiPlatformDxe/EntryPoint.c b/OvmfPkg/XenAcpiPlatformDxe/EntryPoint.c index b6d0835fe3..1a23790a3b 100644 --- a/OvmfPkg/XenAcpiPlatformDxe/EntryPoint.c +++ b/OvmfPkg/XenAcpiPlatformDxe/EntryPoint.c @@ -7,9 +7,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent **/ -#include // gRootBridgesConnectedEve... -#include // DEBUG() -#include // PcdGetBool() +#include // ASSERT_EFI_ERROR() #include // gBS #include // EFI_ACPI_TABLE_PROTOCOL @@ -34,27 +32,6 @@ FindAcpiTableProtocol ( } -STATIC -VOID -EFIAPI -OnRootBridgesConnected ( - IN EFI_EVENT Event, - IN VOID *Context - ) -{ - EFI_STATUS Status; - - DEBUG ((DEBUG_INFO, - "%a: root bridges have been connected, installing ACPI tables\n", - __FUNCTION__)); - Status = InstallAcpiTables (FindAcpiTableProtocol ()); - if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_ERROR, "%a: InstallAcpiTables: %r\n", __FUNCTION__, Status)); - } - gBS->CloseEvent (Event); -} - - EFI_STATUS EFIAPI AcpiPlatformEntryPoint ( @@ -62,34 +39,5 @@ AcpiPlatformEntryPoint ( IN EFI_SYSTEM_TABLE *SystemTable ) { - EFI_STATUS Status; - EFI_EVENT RootBridgesConnected; - - // - // If the platform doesn't support PCI, or PCI enumeration has been disabled, - // install the tables at once, and let the entry point's return code reflect - // the full functionality. - // - if (PcdGetBool (PcdPciDisableBusEnumeration)) { - DEBUG ((DEBUG_INFO, "%a: PCI or its enumeration disabled, installing " - "ACPI tables\n", __FUNCTION__)); - return InstallAcpiTables (FindAcpiTableProtocol ()); - } - - // - // Otherwise, delay installing the ACPI tables until root bridges are - // connected. The entry point's return status will only reflect the callback - // setup. (Note that we're a DXE_DRIVER; our entry point function is invoked - // strictly before BDS is entered and can connect the root bridges.) - // - Status = gBS->CreateEventEx (EVT_NOTIFY_SIGNAL, TPL_CALLBACK, - OnRootBridgesConnected, NULL /* Context */, - &gRootBridgesConnectedEventGroupGuid, &RootBridgesConnected); - if (!EFI_ERROR (Status)) { - DEBUG ((DEBUG_INFO, - "%a: waiting for root bridges to be connected, registered callback\n", - __FUNCTION__)); - } - - return Status; + return InstallAcpiTables (FindAcpiTableProtocol ()); } diff --git a/OvmfPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf b/OvmfPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf index db9b6e093d..d3a6353a50 100644 --- a/OvmfPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf +++ b/OvmfPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf @@ -28,14 +28,12 @@ Xen.c [Packages] - MdeModulePkg/MdeModulePkg.dec MdePkg/MdePkg.dec OvmfPkg/OvmfPkg.dec [LibraryClasses] BaseLib DebugLib - PcdLib UefiBootServicesTableLib UefiDriverEntryPoint XenPlatformLib @@ -43,11 +41,5 @@ [Protocols] gEfiAcpiTableProtocolGuid # PROTOCOL ALWAYS_CONSUMED -[Guids] - gRootBridgesConnectedEventGroupGuid - -[Pcd] - gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration - [Depex] gEfiAcpiTableProtocolGuid -- cgit v1.2.3