On AARCH64, there is no requirement to support OSes that can only access
ACPI tables in low memory (i.e., below 4 GB), and there are reasons to
prefer allocations higher up. First of all, so DMA capable devices may
only be able to access 32-bit addressable memory. Additionally, keeping
memory reservations close together makes it easier for the OS to map
system RAM efficiently (with as few levels of translation as possible)

So introduce a PCD that inhibits the generation of ACPI tables that require
them to be allocated in memory below 4 GB, and wire it up to the allocation
of performance data memory as well. Finally, set the PCD for ArmVirtQemu.

Ard Biesheuvel (3):
  MdeModulePkg: AcpiTableDxe: make 4 GB table allocation limit optional
  IntelFrameworkModulePkg: BdsDxe: only allocate below 4 GB on ACPI 1.0
  ArmVirtPkg/ArmVirtQemu: limit ACPI support to v5.0 and higher

 ArmVirtPkg/ArmVirtQemu.dsc                                   |   3 +
 IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf          |   1 +
 IntelFrameworkModulePkg/Universal/BdsDxe/BdsEntry.c          |  11 +-
 MdeModulePkg/MdeModulePkg.dec                                |  11 +
 MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf    |   2 +
 MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c | 448 
++++++++++++--------
 6 files changed, 289 insertions(+), 187 deletions(-)

-- 
2.5.0

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to