[edk2-devel] [PATCH 12/43] OvmfPkg/AcpiPlatformDxe: remove the "AcpiPlatformDxe.inf" driver

Laszlo Ersek lersek at redhat.com
Wed May 26 20:14:15 UTC 2021


The "OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf" module is no longer
referenced in any platform DSC file; remove it.

That orphans the "AcpiPlatform.c", "Qemu.c" and "Xen.c" files in the
"OvmfPkg/AcpiPlatformDxe/" directory; remove them.

That in turn removes the only definitions of the InstallAcpiTable(),
QemuDetected(), QemuInstallAcpiTable(), InstallXenTables() functions in
the "OvmfPkg/AcpiPlatformDxe/" directory, so remove their declarations
from "AcpiPlatform.h".

Remove "OvmfPkg/AcpiPlatformDxe/Xen.c" from the "OvmfPkg: Xen-related
modules" section of "Maintainers.txt", as well.

Cc: Andrew Fish <afish at apple.com>
Cc: Ard Biesheuvel <ardb+tianocore at kernel.org>
Cc: Jordan Justen <jordan.l.justen at intel.com>
Cc: Leif Lindholm <leif at nuviainc.com>
Cc: Michael D Kinney <michael.d.kinney at intel.com>
Cc: Philippe Mathieu-Daudé <philmd at redhat.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2122
Signed-off-by: Laszlo Ersek <lersek at redhat.com>
---
 OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf |  69 ---
 Maintainers.txt                             |   1 -
 OvmfPkg/AcpiPlatformDxe/AcpiPlatform.h      |  29 --
 OvmfPkg/AcpiPlatformDxe/AcpiPlatform.c      | 267 ----------
 OvmfPkg/AcpiPlatformDxe/Qemu.c              | 512 --------------------
 OvmfPkg/AcpiPlatformDxe/Xen.c               | 315 ------------
 6 files changed, 1193 deletions(-)

diff --git a/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf b/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
deleted file mode 100644
index 77607298cbea..000000000000
--- a/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
+++ /dev/null
@@ -1,69 +0,0 @@
-## @file
-#  OVMF ACPI Platform Driver
-#
-#  Copyright (c) 2008 - 2019, Intel Corporation. All rights reserved.<BR>
-#  SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-##
-
-[Defines]
-  INF_VERSION                    = 0x00010005
-  BASE_NAME                      = AcpiPlatform
-  FILE_GUID                      = 49970331-E3FA-4637-9ABC-3B7868676970
-  MODULE_TYPE                    = DXE_DRIVER
-  VERSION_STRING                 = 1.0
-  ENTRY_POINT                    = AcpiPlatformEntryPoint
-
-#
-# The following information is for reference only and not required by the build tools.
-#
-#  VALID_ARCHITECTURES           = IA32 X64 EBC
-#
-
-[Sources]
-  AcpiPlatform.c
-  AcpiPlatform.h
-  BootScript.c
-  EntryPoint.c
-  PciDecoding.c
-  Qemu.c
-  QemuFwCfgAcpi.c
-  Xen.c
-
-[Packages]
-  MdeModulePkg/MdeModulePkg.dec
-  MdePkg/MdePkg.dec
-  OvmfPkg/OvmfPkg.dec
-  UefiCpuPkg/UefiCpuPkg.dec
-
-[LibraryClasses]
-  BaseLib
-  BaseMemoryLib
-  DebugLib
-  DxeServicesTableLib
-  MemoryAllocationLib
-  OrderedCollectionLib
-  PcdLib
-  QemuFwCfgLib
-  QemuFwCfgS3Lib
-  UefiBootServicesTableLib
-  UefiDriverEntryPoint
-  XenPlatformLib
-
-[Protocols]
-  gEfiAcpiTableProtocolGuid                     # PROTOCOL ALWAYS_CONSUMED
-  gEfiFirmwareVolume2ProtocolGuid               # PROTOCOL SOMETIMES_CONSUMED
-  gEfiPciIoProtocolGuid                         # PROTOCOL SOMETIMES_CONSUMED
-
-[Guids]
-  gRootBridgesConnectedEventGroupGuid
-
-[Pcd]
-  gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiTableStorageFile
-  gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration
-  gUefiCpuPkgTokenSpaceGuid.PcdCpuLocalApicBaseAddress
-  gUefiOvmfPkgTokenSpaceGuid.Pcd8259LegacyModeEdgeLevel
-  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAddress
-
-[Depex]
-  gEfiAcpiTableProtocolGuid
diff --git a/Maintainers.txt b/Maintainers.txt
index 50c87d1ac29a..82008a0046c6 100644
--- a/Maintainers.txt
+++ b/Maintainers.txt
@@ -481,13 +481,12 @@ F: OvmfPkg/Library/Tcg2PhysicalPresenceLib*/
 F: OvmfPkg/PlatformPei/ClearCache.c
 F: OvmfPkg/Tcg/
 R: Marc-André Lureau <marcandre.lureau at redhat.com>
 R: Stefan Berger <stefanb at linux.ibm.com>
 
 OvmfPkg: Xen-related modules
-F: OvmfPkg/AcpiPlatformDxe/Xen.c
 F: OvmfPkg/Include/Guid/XenBusRootDevice.h
 F: OvmfPkg/Include/Guid/XenInfo.h
 F: OvmfPkg/Include/IndustryStandard/Xen/
 F: OvmfPkg/Include/Library/XenHypercallLib.h
 F: OvmfPkg/Include/Library/XenIoMmioLib.h
 F: OvmfPkg/Include/Library/XenPlatformLib.h
diff --git a/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.h b/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.h
index d98b79baab40..bd4c26f07fcd 100644
--- a/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.h
+++ b/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.h
@@ -16,41 +16,12 @@ typedef struct {
   EFI_PCI_IO_PROTOCOL *PciIo;
   UINT64              PciAttributes;
 } ORIGINAL_ATTRIBUTES;
 
 typedef struct S3_CONTEXT S3_CONTEXT;
 
-EFI_STATUS
-EFIAPI
-InstallAcpiTable (
-  IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiProtocol,
-  IN   VOID                          *AcpiTableBuffer,
-  IN   UINTN                         AcpiTableBufferSize,
-  OUT  UINTN                         *TableKey
-  );
-
-BOOLEAN
-QemuDetected (
-  VOID
-  );
-
-EFI_STATUS
-EFIAPI
-QemuInstallAcpiTable (
-  IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiProtocol,
-  IN   VOID                          *AcpiTableBuffer,
-  IN   UINTN                         AcpiTableBufferSize,
-  OUT  UINTN                         *TableKey
-  );
-
-EFI_STATUS
-EFIAPI
-InstallXenTables (
-  IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiProtocol
-  );
-
 EFI_STATUS
 EFIAPI
 InstallQemuFwCfgTables (
   IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiProtocol
   );
 
diff --git a/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.c b/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.c
deleted file mode 100644
index efbbfab89d2b..000000000000
--- a/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.c
+++ /dev/null
@@ -1,267 +0,0 @@
-/** @file
-  OVMF ACPI Platform Driver
-
-  Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.<BR>
-  SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include <Library/DebugLib.h>                 // ASSERT_EFI_ERROR()
-#include <Library/UefiBootServicesTableLib.h> // gBS
-#include <Library/XenPlatformLib.h>           // XenDetected()
-#include <Protocol/FirmwareVolume2.h>         // gEfiFirmwareVolume2Protocol...
-
-#include "AcpiPlatform.h"
-
-EFI_STATUS
-EFIAPI
-InstallAcpiTable (
-  IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiProtocol,
-  IN   VOID                          *AcpiTableBuffer,
-  IN   UINTN                         AcpiTableBufferSize,
-  OUT  UINTN                         *TableKey
-  )
-{
-  return AcpiProtocol->InstallAcpiTable (
-                         AcpiProtocol,
-                         AcpiTableBuffer,
-                         AcpiTableBufferSize,
-                         TableKey
-                         );
-}
-
-
-/**
-  Locate the first instance of a protocol.  If the protocol requested is an
-  FV protocol, then it will return the first FV that contains the ACPI table
-  storage file.
-
-  @param  Instance      Return pointer to the first instance of the protocol
-
-  @return EFI_SUCCESS           The function completed successfully.
-  @return EFI_NOT_FOUND         The protocol could not be located.
-  @return EFI_OUT_OF_RESOURCES  There are not enough resources to find the protocol.
-
-**/
-EFI_STATUS
-LocateFvInstanceWithTables (
-  OUT EFI_FIRMWARE_VOLUME2_PROTOCOL **Instance
-  )
-{
-  EFI_STATUS                    Status;
-  EFI_HANDLE                    *HandleBuffer;
-  UINTN                         NumberOfHandles;
-  EFI_FV_FILETYPE               FileType;
-  UINT32                        FvStatus;
-  EFI_FV_FILE_ATTRIBUTES        Attributes;
-  UINTN                         Size;
-  UINTN                         Index;
-  EFI_FIRMWARE_VOLUME2_PROTOCOL *FvInstance;
-
-  FvStatus = 0;
-
-  //
-  // Locate protocol.
-  //
-  Status = gBS->LocateHandleBuffer (
-                   ByProtocol,
-                   &gEfiFirmwareVolume2ProtocolGuid,
-                   NULL,
-                   &NumberOfHandles,
-                   &HandleBuffer
-                   );
-  if (EFI_ERROR (Status)) {
-    //
-    // Defined errors at this time are not found and out of resources.
-    //
-    return Status;
-  }
-
-  //
-  // Looking for FV with ACPI storage file
-  //
-  for (Index = 0; Index < NumberOfHandles; Index++) {
-    //
-    // Get the protocol on this handle
-    // This should not fail because of LocateHandleBuffer
-    //
-    Status = gBS->HandleProtocol (
-                     HandleBuffer[Index],
-                     &gEfiFirmwareVolume2ProtocolGuid,
-                     (VOID**) &FvInstance
-                     );
-    ASSERT_EFI_ERROR (Status);
-
-    //
-    // See if it has the ACPI storage file
-    //
-    Status = FvInstance->ReadFile (
-                           FvInstance,
-                           (EFI_GUID*)PcdGetPtr (PcdAcpiTableStorageFile),
-                           NULL,
-                           &Size,
-                           &FileType,
-                           &Attributes,
-                           &FvStatus
-                           );
-
-    //
-    // If we found it, then we are done
-    //
-    if (Status == EFI_SUCCESS) {
-      *Instance = FvInstance;
-      break;
-    }
-  }
-
-  //
-  // Our exit status is determined by the success of the previous operations
-  // If the protocol was found, Instance already points to it.
-  //
-
-  //
-  // Free any allocated buffers
-  //
-  gBS->FreePool (HandleBuffer);
-
-  return Status;
-}
-
-
-/**
-  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
-InstallOvmfFvTables (
-  IN  EFI_ACPI_TABLE_PROTOCOL     *AcpiTable
-  )
-{
-  EFI_STATUS                           Status;
-  EFI_FIRMWARE_VOLUME2_PROTOCOL        *FwVol;
-  INTN                                 Instance;
-  EFI_ACPI_COMMON_HEADER               *CurrentTable;
-  UINTN                                TableHandle;
-  UINT32                               FvStatus;
-  UINTN                                TableSize;
-  UINTN                                Size;
-  EFI_ACPI_TABLE_INSTALL_ACPI_TABLE    TableInstallFunction;
-
-  Instance     = 0;
-  CurrentTable = NULL;
-  TableHandle  = 0;
-
-  if (QemuDetected ()) {
-    TableInstallFunction = QemuInstallAcpiTable;
-  } else {
-    TableInstallFunction = InstallAcpiTable;
-  }
-
-  //
-  // set FwVol (and use an ASSERT() below) to suppress incorrect
-  // compiler/analyzer warnings
-  //
-  FwVol = NULL;
-  //
-  // Locate the firmware volume protocol
-  //
-  Status = LocateFvInstanceWithTables (&FwVol);
-  if (EFI_ERROR (Status)) {
-    return EFI_ABORTED;
-  }
-  ASSERT (FwVol != NULL);
-
-  //
-  // Read tables from the storage file.
-  //
-  while (Status == EFI_SUCCESS) {
-
-    Status = FwVol->ReadSection (
-                      FwVol,
-                      (EFI_GUID*)PcdGetPtr (PcdAcpiTableStorageFile),
-                      EFI_SECTION_RAW,
-                      Instance,
-                      (VOID**) &CurrentTable,
-                      &Size,
-                      &FvStatus
-                      );
-    if (!EFI_ERROR (Status)) {
-      //
-      // Add the table
-      //
-      TableHandle = 0;
-
-      TableSize = ((EFI_ACPI_DESCRIPTION_HEADER *) CurrentTable)->Length;
-      ASSERT (Size >= TableSize);
-
-      //
-      // Install ACPI table
-      //
-      Status = TableInstallFunction (
-                 AcpiTable,
-                 CurrentTable,
-                 TableSize,
-                 &TableHandle
-                 );
-
-      //
-      // Free memory allocated by ReadSection
-      //
-      gBS->FreePool (CurrentTable);
-
-      if (EFI_ERROR (Status)) {
-        return EFI_ABORTED;
-      }
-
-      //
-      // Increment the instance
-      //
-      Instance++;
-      CurrentTable = NULL;
-    }
-  }
-
-  return EFI_SUCCESS;
-}
-
-/**
-  Effective entrypoint of Acpi Platform driver.
-
-  @param  ImageHandle
-  @param  SystemTable
-
-  @return EFI_SUCCESS
-  @return EFI_LOAD_ERROR
-  @return EFI_OUT_OF_RESOURCES
-
-**/
-EFI_STATUS
-EFIAPI
-InstallAcpiTables (
-  IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiTable
-  )
-{
-  EFI_STATUS                         Status;
-
-  if (XenDetected ()) {
-    Status = InstallXenTables (AcpiTable);
-  } else {
-    Status = InstallQemuFwCfgTables (AcpiTable);
-  }
-
-  if (EFI_ERROR (Status)) {
-    Status = InstallOvmfFvTables (AcpiTable);
-  }
-
-  return Status;
-}
-
diff --git a/OvmfPkg/AcpiPlatformDxe/Qemu.c b/OvmfPkg/AcpiPlatformDxe/Qemu.c
deleted file mode 100644
index bdcc46b7186a..000000000000
--- a/OvmfPkg/AcpiPlatformDxe/Qemu.c
+++ /dev/null
@@ -1,512 +0,0 @@
-/** @file
-  OVMF ACPI QEMU support
-
-  Copyright (c) 2008 - 2014, Intel Corporation. All rights reserved.<BR>
-
-  Copyright (C) 2012-2014, Red Hat, Inc.
-
-  SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include <IndustryStandard/Acpi.h>        // EFI_ACPI_1_0_IO_APIC_STRUCTURE
-#include <Library/BaseMemoryLib.h>        // CopyMem()
-#include <Library/DebugLib.h>             // DEBUG()
-#include <Library/DxeServicesTableLib.h>  // gDS
-#include <Library/MemoryAllocationLib.h>  // AllocatePool()
-#include <Library/PcdLib.h>               // PcdGet16()
-#include <Library/QemuFwCfgLib.h>         // QemuFwCfgIsAvailable()
-
-#include "AcpiPlatform.h"
-
-BOOLEAN
-QemuDetected (
-  VOID
-  )
-{
-  if (!QemuFwCfgIsAvailable ()) {
-    return FALSE;
-  }
-
-  return TRUE;
-}
-
-
-STATIC
-UINTN
-CountBits16 (
-  UINT16 Mask
-  )
-{
-  //
-  // For all N >= 1, N bits are enough to represent the number of bits set
-  // among N bits. It's true for N == 1. When adding a new bit (N := N+1),
-  // the maximum number of possibly set bits increases by one, while the
-  // representable maximum doubles.
-  //
-  Mask = ((Mask & 0xAAAA) >> 1) + (Mask & 0x5555);
-  Mask = ((Mask & 0xCCCC) >> 2) + (Mask & 0x3333);
-  Mask = ((Mask & 0xF0F0) >> 4) + (Mask & 0x0F0F);
-  Mask = ((Mask & 0xFF00) >> 8) + (Mask & 0x00FF);
-
-  return Mask;
-}
-
-
-STATIC
-EFI_STATUS
-EFIAPI
-QemuInstallAcpiMadtTable (
-  IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiProtocol,
-  IN   VOID                          *AcpiTableBuffer,
-  IN   UINTN                         AcpiTableBufferSize,
-  OUT  UINTN                         *TableKey
-  )
-{
-  UINTN                                               CpuCount;
-  UINTN                                               PciLinkIsoCount;
-  UINTN                                               NewBufferSize;
-  EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER *Madt;
-  EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC_STRUCTURE         *LocalApic;
-  EFI_ACPI_1_0_IO_APIC_STRUCTURE                      *IoApic;
-  EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE    *Iso;
-  EFI_ACPI_1_0_LOCAL_APIC_NMI_STRUCTURE               *LocalApicNmi;
-  VOID                                                *Ptr;
-  UINTN                                               Loop;
-  EFI_STATUS                                          Status;
-
-  ASSERT (AcpiTableBufferSize >= sizeof (EFI_ACPI_DESCRIPTION_HEADER));
-
-  QemuFwCfgSelectItem (QemuFwCfgItemSmpCpuCount);
-  CpuCount = QemuFwCfgRead16 ();
-  ASSERT (CpuCount >= 1);
-
-  //
-  // Set Level-tiggered, Active High for these identity mapped IRQs. The bitset
-  // corresponds to the union of all possible interrupt assignments for the LNKA,
-  // LNKB, LNKC, LNKD PCI interrupt lines. See the DSDT.
-  //
-  PciLinkIsoCount = CountBits16 (PcdGet16 (Pcd8259LegacyModeEdgeLevel));
-
-  NewBufferSize = 1                     * sizeof (*Madt) +
-                  CpuCount              * sizeof (*LocalApic) +
-                  1                     * sizeof (*IoApic) +
-                  (1 + PciLinkIsoCount) * sizeof (*Iso) +
-                  1                     * sizeof (*LocalApicNmi);
-
-  Madt = AllocatePool (NewBufferSize);
-  if (Madt == NULL) {
-    return EFI_OUT_OF_RESOURCES;
-  }
-
-  CopyMem (&(Madt->Header), AcpiTableBuffer, sizeof (EFI_ACPI_DESCRIPTION_HEADER));
-  Madt->Header.Length    = (UINT32) NewBufferSize;
-  Madt->LocalApicAddress = PcdGet32 (PcdCpuLocalApicBaseAddress);
-  Madt->Flags            = EFI_ACPI_1_0_PCAT_COMPAT;
-  Ptr = Madt + 1;
-
-  LocalApic = Ptr;
-  for (Loop = 0; Loop < CpuCount; ++Loop) {
-    LocalApic->Type            = EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC;
-    LocalApic->Length          = sizeof (*LocalApic);
-    LocalApic->AcpiProcessorId = (UINT8) Loop;
-    LocalApic->ApicId          = (UINT8) Loop;
-    LocalApic->Flags           = 1; // enabled
-    ++LocalApic;
-  }
-  Ptr = LocalApic;
-
-  IoApic = Ptr;
-  IoApic->Type             = EFI_ACPI_1_0_IO_APIC;
-  IoApic->Length           = sizeof (*IoApic);
-  IoApic->IoApicId         = (UINT8) CpuCount;
-  IoApic->Reserved         = EFI_ACPI_RESERVED_BYTE;
-  IoApic->IoApicAddress    = 0xFEC00000;
-  IoApic->SystemVectorBase = 0x00000000;
-  Ptr = IoApic + 1;
-
-  //
-  // IRQ0 (8254 Timer) => IRQ2 (PIC) Interrupt Source Override Structure
-  //
-  Iso = Ptr;
-  Iso->Type                        = EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE;
-  Iso->Length                      = sizeof (*Iso);
-  Iso->Bus                         = 0x00; // ISA
-  Iso->Source                      = 0x00; // IRQ0
-  Iso->GlobalSystemInterruptVector = 0x00000002;
-  Iso->Flags                       = 0x0000; // Conforms to specs of the bus
-  ++Iso;
-
-  //
-  // Set Level-triggered, Active High for all possible PCI link targets.
-  //
-  for (Loop = 0; Loop < 16; ++Loop) {
-    if ((PcdGet16 (Pcd8259LegacyModeEdgeLevel) & (1 << Loop)) == 0) {
-      continue;
-    }
-    Iso->Type                        = EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE;
-    Iso->Length                      = sizeof (*Iso);
-    Iso->Bus                         = 0x00; // ISA
-    Iso->Source                      = (UINT8) Loop;
-    Iso->GlobalSystemInterruptVector = (UINT32) Loop;
-    Iso->Flags                       = 0x000D; // Level-triggered, Active High
-    ++Iso;
-  }
-  ASSERT (
-    (UINTN) (Iso - (EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE *)Ptr) ==
-      1 + PciLinkIsoCount
-    );
-  Ptr = Iso;
-
-  LocalApicNmi = Ptr;
-  LocalApicNmi->Type            = EFI_ACPI_1_0_LOCAL_APIC_NMI;
-  LocalApicNmi->Length          = sizeof (*LocalApicNmi);
-  LocalApicNmi->AcpiProcessorId = 0xFF; // applies to all processors
-  //
-  // polarity and trigger mode of the APIC I/O input signals conform to the
-  // specifications of the bus
-  //
-  LocalApicNmi->Flags           = 0x0000;
-  //
-  // Local APIC interrupt input LINTn to which NMI is connected.
-  //
-  LocalApicNmi->LocalApicInti   = 0x01;
-  Ptr = LocalApicNmi + 1;
-
-  ASSERT ((UINTN) ((UINT8 *)Ptr - (UINT8 *)Madt) == NewBufferSize);
-  Status = InstallAcpiTable (AcpiProtocol, Madt, NewBufferSize, TableKey);
-
-  FreePool (Madt);
-
-  return Status;
-}
-
-
-#pragma pack(1)
-
-typedef struct {
-  UINT64 Base;
-  UINT64 End;
-  UINT64 Length;
-} PCI_WINDOW;
-
-typedef struct {
-  PCI_WINDOW PciWindow32;
-  PCI_WINDOW PciWindow64;
-} FIRMWARE_DATA;
-
-typedef struct {
-  UINT8 BytePrefix;
-  UINT8 ByteValue;
-} AML_BYTE;
-
-typedef struct {
-  UINT8    NameOp;
-  UINT8    RootChar;
-  UINT8    NameChar[4];
-  UINT8    PackageOp;
-  UINT8    PkgLength;
-  UINT8    NumElements;
-  AML_BYTE Pm1aCntSlpTyp;
-  AML_BYTE Pm1bCntSlpTyp;
-  AML_BYTE Reserved[2];
-} SYSTEM_STATE_PACKAGE;
-
-#pragma pack()
-
-
-STATIC
-EFI_STATUS
-EFIAPI
-PopulateFwData(
-  OUT  FIRMWARE_DATA *FwData
-  )
-{
-  EFI_STATUS                      Status;
-  UINTN                           NumDesc;
-  EFI_GCD_MEMORY_SPACE_DESCRIPTOR *AllDesc;
-
-  Status = gDS->GetMemorySpaceMap (&NumDesc, &AllDesc);
-  if (Status == EFI_SUCCESS) {
-    UINT64 NonMmio32MaxExclTop;
-    UINT64 Mmio32MinBase;
-    UINT64 Mmio32MaxExclTop;
-    UINTN CurDesc;
-
-    Status = EFI_UNSUPPORTED;
-
-    NonMmio32MaxExclTop = 0;
-    Mmio32MinBase = BASE_4GB;
-    Mmio32MaxExclTop = 0;
-
-    for (CurDesc = 0; CurDesc < NumDesc; ++CurDesc) {
-      CONST EFI_GCD_MEMORY_SPACE_DESCRIPTOR *Desc;
-      UINT64 ExclTop;
-
-      Desc = &AllDesc[CurDesc];
-      ExclTop = Desc->BaseAddress + Desc->Length;
-
-      if (ExclTop <= (UINT64) PcdGet32 (PcdOvmfFdBaseAddress)) {
-        switch (Desc->GcdMemoryType) {
-          case EfiGcdMemoryTypeNonExistent:
-            break;
-
-          case EfiGcdMemoryTypeReserved:
-          case EfiGcdMemoryTypeSystemMemory:
-            if (NonMmio32MaxExclTop < ExclTop) {
-              NonMmio32MaxExclTop = ExclTop;
-            }
-            break;
-
-          case EfiGcdMemoryTypeMemoryMappedIo:
-            if (Mmio32MinBase > Desc->BaseAddress) {
-              Mmio32MinBase = Desc->BaseAddress;
-            }
-            if (Mmio32MaxExclTop < ExclTop) {
-              Mmio32MaxExclTop = ExclTop;
-            }
-            break;
-
-          default:
-            ASSERT(0);
-        }
-      }
-    }
-
-    if (Mmio32MinBase < NonMmio32MaxExclTop) {
-      Mmio32MinBase = NonMmio32MaxExclTop;
-    }
-
-    if (Mmio32MinBase < Mmio32MaxExclTop) {
-      FwData->PciWindow32.Base   = Mmio32MinBase;
-      FwData->PciWindow32.End    = Mmio32MaxExclTop - 1;
-      FwData->PciWindow32.Length = Mmio32MaxExclTop - Mmio32MinBase;
-
-      FwData->PciWindow64.Base   = 0;
-      FwData->PciWindow64.End    = 0;
-      FwData->PciWindow64.Length = 0;
-
-      Status = EFI_SUCCESS;
-    }
-
-    FreePool (AllDesc);
-  }
-
-  DEBUG ((
-    DEBUG_INFO,
-    "ACPI PciWindow32: Base=0x%08lx End=0x%08lx Length=0x%08lx\n",
-    FwData->PciWindow32.Base,
-    FwData->PciWindow32.End,
-    FwData->PciWindow32.Length
-    ));
-  DEBUG ((
-    DEBUG_INFO,
-    "ACPI PciWindow64: Base=0x%08lx End=0x%08lx Length=0x%08lx\n",
-    FwData->PciWindow64.Base,
-    FwData->PciWindow64.End,
-    FwData->PciWindow64.Length
-    ));
-
-  return Status;
-}
-
-
-STATIC
-VOID
-EFIAPI
-GetSuspendStates (
-  UINTN                *SuspendToRamSize,
-  SYSTEM_STATE_PACKAGE *SuspendToRam,
-  UINTN                *SuspendToDiskSize,
-  SYSTEM_STATE_PACKAGE *SuspendToDisk
-  )
-{
-  STATIC CONST SYSTEM_STATE_PACKAGE Template = {
-    0x08,                   // NameOp
-    '\\',                   // RootChar
-    { '_', 'S', 'x', '_' }, // NameChar[4]
-    0x12,                   // PackageOp
-    0x0A,                   // PkgLength
-    0x04,                   // NumElements
-    { 0x0A, 0x00 },         // Pm1aCntSlpTyp
-    { 0x0A, 0x00 },         // Pm1bCntSlpTyp -- we don't support it
-    {                       // Reserved[2]
-      { 0x0A, 0x00 },
-      { 0x0A, 0x00 }
-    }
-  };
-  RETURN_STATUS                     Status;
-  FIRMWARE_CONFIG_ITEM              FwCfgItem;
-  UINTN                             FwCfgSize;
-  UINT8                             SystemStates[6];
-
-  //
-  // configure defaults
-  //
-  *SuspendToRamSize = sizeof Template;
-  CopyMem (SuspendToRam, &Template, sizeof Template);
-  SuspendToRam->NameChar[2]             = '3'; // S3
-  SuspendToRam->Pm1aCntSlpTyp.ByteValue = 1;   // PIIX4: STR
-
-  *SuspendToDiskSize = sizeof Template;
-  CopyMem (SuspendToDisk, &Template, sizeof Template);
-  SuspendToDisk->NameChar[2]             = '4'; // S4
-  SuspendToDisk->Pm1aCntSlpTyp.ByteValue = 2;   // PIIX4: POSCL
-
-  //
-  // check for overrides
-  //
-  Status = QemuFwCfgFindFile ("etc/system-states", &FwCfgItem, &FwCfgSize);
-  if (Status != RETURN_SUCCESS || FwCfgSize != sizeof SystemStates) {
-    DEBUG ((DEBUG_INFO, "ACPI using S3/S4 defaults\n"));
-    return;
-  }
-  QemuFwCfgSelectItem (FwCfgItem);
-  QemuFwCfgReadBytes (sizeof SystemStates, SystemStates);
-
-  //
-  // Each byte corresponds to a system state. In each byte, the MSB tells us
-  // whether the given state is enabled. If so, the three LSBs specify the
-  // value to be written to the PM control register's SUS_TYP bits.
-  //
-  if (SystemStates[3] & BIT7) {
-    SuspendToRam->Pm1aCntSlpTyp.ByteValue =
-        SystemStates[3] & (BIT2 | BIT1 | BIT0);
-    DEBUG ((DEBUG_INFO, "ACPI S3 value: %d\n",
-            SuspendToRam->Pm1aCntSlpTyp.ByteValue));
-  } else {
-    *SuspendToRamSize = 0;
-    DEBUG ((DEBUG_INFO, "ACPI S3 disabled\n"));
-  }
-
-  if (SystemStates[4] & BIT7) {
-    SuspendToDisk->Pm1aCntSlpTyp.ByteValue =
-        SystemStates[4] & (BIT2 | BIT1 | BIT0);
-    DEBUG ((DEBUG_INFO, "ACPI S4 value: %d\n",
-            SuspendToDisk->Pm1aCntSlpTyp.ByteValue));
-  } else {
-    *SuspendToDiskSize = 0;
-    DEBUG ((DEBUG_INFO, "ACPI S4 disabled\n"));
-  }
-}
-
-
-STATIC
-EFI_STATUS
-EFIAPI
-QemuInstallAcpiSsdtTable (
-  IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiProtocol,
-  IN   VOID                          *AcpiTableBuffer,
-  IN   UINTN                         AcpiTableBufferSize,
-  OUT  UINTN                         *TableKey
-  )
-{
-  EFI_STATUS    Status;
-  FIRMWARE_DATA *FwData;
-
-  Status = EFI_OUT_OF_RESOURCES;
-
-  FwData = AllocateReservedPool (sizeof (*FwData));
-  if (FwData != NULL) {
-    UINTN                SuspendToRamSize;
-    SYSTEM_STATE_PACKAGE SuspendToRam;
-    UINTN                SuspendToDiskSize;
-    SYSTEM_STATE_PACKAGE SuspendToDisk;
-    UINTN                SsdtSize;
-    UINT8                *Ssdt;
-
-    GetSuspendStates (&SuspendToRamSize,  &SuspendToRam,
-                      &SuspendToDiskSize, &SuspendToDisk);
-    SsdtSize = AcpiTableBufferSize + 17 + SuspendToRamSize + SuspendToDiskSize;
-    Ssdt = AllocatePool (SsdtSize);
-
-    if (Ssdt != NULL) {
-      Status = PopulateFwData (FwData);
-
-      if (Status == EFI_SUCCESS) {
-        UINT8 *SsdtPtr;
-
-        SsdtPtr = Ssdt;
-
-        CopyMem (SsdtPtr, AcpiTableBuffer, AcpiTableBufferSize);
-        SsdtPtr += AcpiTableBufferSize;
-
-        //
-        // build "OperationRegion(FWDT, SystemMemory, 0x12345678, 0x87654321)"
-        //
-        *(SsdtPtr++) = 0x5B; // ExtOpPrefix
-        *(SsdtPtr++) = 0x80; // OpRegionOp
-        *(SsdtPtr++) = 'F';
-        *(SsdtPtr++) = 'W';
-        *(SsdtPtr++) = 'D';
-        *(SsdtPtr++) = 'T';
-        *(SsdtPtr++) = 0x00; // SystemMemory
-        *(SsdtPtr++) = 0x0C; // DWordPrefix
-
-        //
-        // no virtual addressing yet, take the four least significant bytes
-        //
-        CopyMem(SsdtPtr, &FwData, 4);
-        SsdtPtr += 4;
-
-        *(SsdtPtr++) = 0x0C; // DWordPrefix
-
-        *(UINT32*) SsdtPtr = sizeof (*FwData);
-        SsdtPtr += 4;
-
-        //
-        // add suspend system states
-        //
-        CopyMem (SsdtPtr, &SuspendToRam, SuspendToRamSize);
-        SsdtPtr += SuspendToRamSize;
-        CopyMem (SsdtPtr, &SuspendToDisk, SuspendToDiskSize);
-        SsdtPtr += SuspendToDiskSize;
-
-        ASSERT((UINTN) (SsdtPtr - Ssdt) == SsdtSize);
-        ((EFI_ACPI_DESCRIPTION_HEADER *) Ssdt)->Length = (UINT32) SsdtSize;
-        Status = InstallAcpiTable (AcpiProtocol, Ssdt, SsdtSize, TableKey);
-      }
-
-      FreePool(Ssdt);
-    }
-
-    if (Status != EFI_SUCCESS) {
-      FreePool(FwData);
-    }
-  }
-
-  return Status;
-}
-
-
-EFI_STATUS
-EFIAPI
-QemuInstallAcpiTable (
-  IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiProtocol,
-  IN   VOID                          *AcpiTableBuffer,
-  IN   UINTN                         AcpiTableBufferSize,
-  OUT  UINTN                         *TableKey
-  )
-{
-  EFI_ACPI_DESCRIPTION_HEADER        *Hdr;
-  EFI_ACPI_TABLE_INSTALL_ACPI_TABLE  TableInstallFunction;
-
-  Hdr = (EFI_ACPI_DESCRIPTION_HEADER*) AcpiTableBuffer;
-  switch (Hdr->Signature) {
-  case EFI_ACPI_1_0_APIC_SIGNATURE:
-    TableInstallFunction = QemuInstallAcpiMadtTable;
-    break;
-  case EFI_ACPI_1_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE:
-    TableInstallFunction = QemuInstallAcpiSsdtTable;
-    break;
-  default:
-    TableInstallFunction = InstallAcpiTable;
-  }
-
-  return TableInstallFunction (
-           AcpiProtocol,
-           AcpiTableBuffer,
-           AcpiTableBufferSize,
-           TableKey
-           );
-}
diff --git a/OvmfPkg/AcpiPlatformDxe/Xen.c b/OvmfPkg/AcpiPlatformDxe/Xen.c
deleted file mode 100644
index be2c5d695846..000000000000
--- a/OvmfPkg/AcpiPlatformDxe/Xen.c
+++ /dev/null
@@ -1,315 +0,0 @@
-/** @file
-  OVMF ACPI Xen support
-
-  Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.<BR>
-  Copyright (c) 2012, Bei Guan <gbtju85 at gmail.com>
-
-  SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include <Library/BaseLib.h>        // CpuDeadLoop()
-#include <Library/DebugLib.h>       // DEBUG()
-#include <Library/XenPlatformLib.h> // XenGetInfoHOB()
-
-#include "AcpiPlatform.h"
-
-#define XEN_ACPI_PHYSICAL_ADDRESS         0x000EA020
-#define XEN_BIOS_PHYSICAL_END             0x000FFFFF
-
-EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER  *XenAcpiRsdpStructurePtr = NULL;
-
-/**
-  Get the address of Xen ACPI Root System Description Pointer (RSDP)
-  structure.
-
-  @param  RsdpStructurePtr   Return pointer to RSDP structure
-
-  @return EFI_SUCCESS        Find Xen RSDP structure successfully.
-  @return EFI_NOT_FOUND      Don't find Xen RSDP structure.
-  @return EFI_ABORTED        Find Xen RSDP structure, but it's not integrated.
-
-**/
-EFI_STATUS
-EFIAPI
-GetXenAcpiRsdp (
-  OUT   EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER   **RsdpPtr
-  )
-{
-  EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER   *RsdpStructurePtr;
-  UINT8                                          *XenAcpiPtr;
-  UINT8                                          Sum;
-  EFI_XEN_INFO                                   *XenInfo;
-
-  //
-  // Detect the RSDP structure
-  //
-
-  //
-  // First look for PVH one
-  //
-  XenInfo = XenGetInfoHOB ();
-  ASSERT (XenInfo != NULL);
-  if (XenInfo->RsdpPvh != NULL) {
-    DEBUG ((DEBUG_INFO, "%a: Use ACPI RSDP table at 0x%p\n",
-      gEfiCallerBaseName, XenInfo->RsdpPvh));
-    *RsdpPtr = XenInfo->RsdpPvh;
-    return EFI_SUCCESS;
-  }
-
-  //
-  // Otherwise, look for the HVM one
-  //
-  for (XenAcpiPtr = (UINT8*)(UINTN) XEN_ACPI_PHYSICAL_ADDRESS;
-       XenAcpiPtr < (UINT8*)(UINTN) XEN_BIOS_PHYSICAL_END;
-       XenAcpiPtr += 0x10) {
-
-    RsdpStructurePtr = (EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER *)
-                         (UINTN) XenAcpiPtr;
-
-    if (!AsciiStrnCmp ((CHAR8 *) &RsdpStructurePtr->Signature, "RSD PTR ", 8)) {
-      //
-      // RSDP ACPI 1.0 checksum for 1.0/2.0/3.0 table.
-      // This is only the first 20 bytes of the structure
-      //
-      Sum = CalculateSum8 (
-              (CONST UINT8 *)RsdpStructurePtr,
-              sizeof (EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER)
-              );
-      if (Sum != 0) {
-        return EFI_ABORTED;
-      }
-
-      if (RsdpStructurePtr->Revision >= 2) {
-        //
-        // RSDP ACPI 2.0/3.0 checksum, this is the entire table
-        //
-        Sum = CalculateSum8 (
-                (CONST UINT8 *)RsdpStructurePtr,
-                sizeof (EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER)
-                );
-        if (Sum != 0) {
-          return EFI_ABORTED;
-        }
-      }
-      *RsdpPtr = RsdpStructurePtr;
-      return EFI_SUCCESS;
-    }
-  }
-
-  return EFI_NOT_FOUND;
-}
-
-/**
-  Get Xen Acpi tables from the RSDP structure. And installs Xen ACPI tables
-  into the RSDT/XSDT using InstallAcpiTable. Some signature of the installed
-  ACPI tables are: FACP, APIC, HPET, WAET, SSDT, FACS, DSDT.
-
-  @param  AcpiProtocol           Protocol instance pointer.
-
-  @return EFI_SUCCESS            The table was successfully inserted.
-  @return EFI_INVALID_PARAMETER  Either AcpiTableBuffer is NULL, TableHandle is
-                                 NULL, or AcpiTableBufferSize and the size
-                                 field embedded in the ACPI table pointed to
-                                 by AcpiTableBuffer are not in sync.
-  @return EFI_OUT_OF_RESOURCES   Insufficient resources exist to complete the request.
-
-**/
-EFI_STATUS
-EFIAPI
-InstallXenTables (
-  IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiProtocol
-  )
-{
-  EFI_STATUS                                       Status;
-  UINTN                                            TableHandle;
-
-  EFI_ACPI_DESCRIPTION_HEADER                      *Rsdt;
-  EFI_ACPI_DESCRIPTION_HEADER                      *Xsdt;
-  VOID                                             *CurrentTableEntry;
-  UINTN                                            CurrentTablePointer;
-  EFI_ACPI_DESCRIPTION_HEADER                      *CurrentTable;
-  UINTN                                            Index;
-  UINTN                                            NumberOfTableEntries;
-  EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE        *Fadt2Table;
-  EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE        *Fadt1Table;
-  EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE     *Facs2Table;
-  EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE     *Facs1Table;
-  EFI_ACPI_DESCRIPTION_HEADER                      *DsdtTable;
-
-  Fadt2Table  = NULL;
-  Fadt1Table  = NULL;
-  Facs2Table  = NULL;
-  Facs1Table  = NULL;
-  DsdtTable   = NULL;
-  TableHandle = 0;
-  NumberOfTableEntries = 0;
-
-  //
-  // Try to find Xen ACPI tables
-  //
-  Status = GetXenAcpiRsdp (&XenAcpiRsdpStructurePtr);
-  if (EFI_ERROR (Status)) {
-    return Status;
-  }
-
-  //
-  // If XSDT table is find, just install its tables.
-  // Otherwise, try to find and install the RSDT tables.
-  //
-  if (XenAcpiRsdpStructurePtr->XsdtAddress) {
-    //
-    // Retrieve the addresses of XSDT and
-    // calculate the number of its table entries.
-    //
-    Xsdt = (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN)
-             XenAcpiRsdpStructurePtr->XsdtAddress;
-    NumberOfTableEntries = (Xsdt->Length -
-                             sizeof (EFI_ACPI_DESCRIPTION_HEADER)) /
-                             sizeof (UINT64);
-
-    //
-    // Install ACPI tables found in XSDT.
-    //
-    for (Index = 0; Index < NumberOfTableEntries; Index++) {
-      //
-      // Get the table entry from XSDT
-      //
-      CurrentTableEntry = (VOID *) ((UINT8 *) Xsdt +
-                            sizeof (EFI_ACPI_DESCRIPTION_HEADER) +
-                            Index * sizeof (UINT64));
-      CurrentTablePointer = (UINTN) *(UINT64 *)CurrentTableEntry;
-      CurrentTable = (EFI_ACPI_DESCRIPTION_HEADER *) CurrentTablePointer;
-
-      //
-      // Install the XSDT tables
-      //
-      Status = InstallAcpiTable (
-                 AcpiProtocol,
-                 CurrentTable,
-                 CurrentTable->Length,
-                 &TableHandle
-                 );
-
-      if (EFI_ERROR (Status)) {
-        return Status;
-      }
-
-      //
-      // Get the FACS and DSDT table address from the table FADT
-      //
-      if (!AsciiStrnCmp ((CHAR8 *) &CurrentTable->Signature, "FACP", 4)) {
-        Fadt2Table = (EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *)
-                       (UINTN) CurrentTablePointer;
-        Facs2Table = (EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *)
-                       (UINTN) Fadt2Table->FirmwareCtrl;
-        DsdtTable  = (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN) Fadt2Table->Dsdt;
-      }
-    }
-  }
-  else if (XenAcpiRsdpStructurePtr->RsdtAddress) {
-    //
-    // Retrieve the addresses of RSDT and
-    // calculate the number of its table entries.
-    //
-    Rsdt = (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN)
-             XenAcpiRsdpStructurePtr->RsdtAddress;
-    NumberOfTableEntries = (Rsdt->Length -
-                             sizeof (EFI_ACPI_DESCRIPTION_HEADER)) /
-                             sizeof (UINT32);
-
-    //
-    // Install ACPI tables found in XSDT.
-    //
-    for (Index = 0; Index < NumberOfTableEntries; Index++) {
-      //
-      // Get the table entry from RSDT
-      //
-      CurrentTableEntry = (UINT32 *) ((UINT8 *) Rsdt +
-                            sizeof (EFI_ACPI_DESCRIPTION_HEADER) +
-                            Index * sizeof (UINT32));
-      CurrentTablePointer = *(UINT32 *)CurrentTableEntry;
-      CurrentTable = (EFI_ACPI_DESCRIPTION_HEADER *) CurrentTablePointer;
-
-      //
-      // Install the RSDT tables
-      //
-      Status = InstallAcpiTable (
-                 AcpiProtocol,
-                 CurrentTable,
-                 CurrentTable->Length,
-                 &TableHandle
-                 );
-
-      if (EFI_ERROR (Status)) {
-        return Status;
-      }
-
-      //
-      // Get the FACS and DSDT table address from the table FADT
-      //
-      if (!AsciiStrnCmp ((CHAR8 *) &CurrentTable->Signature, "FACP", 4)) {
-        Fadt1Table = (EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE *)
-                       (UINTN) CurrentTablePointer;
-        Facs1Table = (EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *)
-                       (UINTN) Fadt1Table->FirmwareCtrl;
-        DsdtTable  = (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN) Fadt1Table->Dsdt;
-      }
-    }
-  }
-
-  //
-  // Install the FACS table.
-  //
-  if (Fadt2Table) {
-    //
-    // FACS 2.0
-    //
-    Status = InstallAcpiTable (
-               AcpiProtocol,
-               Facs2Table,
-               Facs2Table->Length,
-               &TableHandle
-               );
-    if (EFI_ERROR (Status)) {
-      return Status;
-    }
-  }
-  else if (Fadt1Table) {
-    //
-    // FACS 1.0
-    //
-    Status = InstallAcpiTable (
-               AcpiProtocol,
-               Facs1Table,
-               Facs1Table->Length,
-               &TableHandle
-               );
-    if (EFI_ERROR (Status)) {
-      return Status;
-    }
-  }
-
-  //
-  // Install DSDT table. If we reached this point without finding the DSDT,
-  // then we're out of sync with the hypervisor, and cannot continue.
-  //
-  if (DsdtTable == NULL) {
-    DEBUG ((DEBUG_ERROR, "%a: no DSDT found\n", __FUNCTION__));
-    ASSERT (FALSE);
-    CpuDeadLoop ();
-  }
-
-  Status = InstallAcpiTable (
-             AcpiProtocol,
-             DsdtTable,
-             DsdtTable->Length,
-             &TableHandle
-             );
-  if (EFI_ERROR (Status)) {
-    return Status;
-  }
-
-  return EFI_SUCCESS;
-}
-
-- 
2.19.1.3.g30247aa5d201




-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#75681): https://edk2.groups.io/g/devel/message/75681
Mute This Topic: https://groups.io/mt/83110518/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list