audk/ArmVirtPkg
Ard Biesheuvel ca6d61b226 ArmVirtPkg: ArmVirtQemu: expose only 64-bit entry point for v3.0+ SMBIOS
The legacy 32-bit SMBIOS entry point has little use on AARCH64 systems,
since many such systems have no 32-bit addressable physical RAM, and so
OSes that implement SMBIOS will have to be able to deal with the 64-bit
entry point anyway.

Given that the OS will map main memory in 1 GB chunks if it can, and that
punching a page sized hole (e.g., for SMBIOS data) into it will result in
the whole 1 GB chunk being mapped using 2 MB and 4 KB blocks instead, it
is important to group memory reservations from the OS as much as we can,
and allocating below 4 GB for no good reason interferes with that.

This is especially important under virtualization, considering that each
*level* of lookup at stage 1 (the guest virtual page table) will result in
a full page table walk at stage 2 (the guest PA to host PA mapping).

So expose only the 64-bit entry point when the SMBIOS tables adhere to
version 3.0 or later.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
2016-02-18 12:00:10 +01:00
..
HighMemDxe ArmVirtPkg: HighMemDxe: add memory space for the high memory nodes 2015-12-04 16:17:17 +00:00
Include Renamed ArmPlatformPkg/ArmVirtualizationPkg into ArmVirtPkg 2015-05-29 13:50:43 +00:00
Library ArmVirtPkg: introduce new ArmQemuRelocatablePlatformLib 2016-02-05 17:10:16 +01:00
PciHostBridgeDxe Renamed ArmPlatformPkg/ArmVirtualizationPkg into ArmVirtPkg 2015-05-29 13:50:43 +00:00
PrePi ArmVirtPkg/PrePiRelocatable: add ARM support 2015-12-17 17:11:16 +00:00
VirtFdtDxe ArmVirtPkg: VirtFdtDxe: detect fw-cfg DMA interface from the DTB 2015-09-24 21:40:36 +00:00
ArmVirt.dsc.inc ArmVirtPkg RVCT: build DXE_RUNTIME_DRIVER modules with 4 KB alignment 2015-12-14 07:56:19 +00:00
ArmVirtPkg.dec ArmVirtPkg: VirtFdtDxe: detect fw-cfg DMA interface from the DTB 2015-09-24 21:40:36 +00:00
ArmVirtQemu.dsc ArmVirtPkg: ArmVirtQemu: expose only 64-bit entry point for v3.0+ SMBIOS 2016-02-18 12:00:10 +01:00
ArmVirtQemu.fdf ArmVirtPkg: HighMemDxe: add memory space for the high memory nodes 2015-12-04 16:17:17 +00:00
ArmVirtQemuKernel.dsc ArmVirtPkg: implement ArmVirtQemuKernel 2016-02-05 17:10:17 +01:00
ArmVirtQemuKernel.fdf ArmVirtPkg: implement ArmVirtQemuKernel 2016-02-05 17:10:17 +01:00
ArmVirtXen.dsc ArmVirtPkg/ArmVirtXen: add ARM support 2015-12-17 17:11:33 +00:00
ArmVirtXen.fdf ArmVirtPkg/ArmVirtXen: add ARM support 2015-12-17 17:11:33 +00:00
Contributions.txt ArmVirtPkg: add "Contributions.txt" and "License.txt" 2015-06-08 22:00:36 +00:00
License.txt ArmVirtPkg: add "Contributions.txt" and "License.txt" 2015-06-08 22:00:36 +00:00