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