audk/ArmVirtPkg
Ard Biesheuvel ec54ce1f1a ArmVirtPkg/ArmVirtQemu: Avoid early ID map on ThunderX
The early ID map used by ArmVirtQemu uses ASID scoped non-global
mappings, as this allows us to switch to the permanent ID map seamlessly
without the need for explicit TLB maintenance.

However, this triggers a known erratum on ThunderX, which does not
tolerate non-global mappings that are executable at EL1, as this appears
to result in I-cache corruption. (Linux disables the KPTI based Meltdown
mitigation on ThunderX for the same reason)

So work around this, by detecting the CPU implementor and part number,
and proceeding without the early ID map if a ThunderX CPU is detected.

Note that this requires the C code to be built with strict alignment
again, as we may end up executing it with the MMU and caches off.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: dann frazier <dann.frazier@canonical.com>
2023-01-10 17:37:39 +00:00
..
CloudHvAcpiPlatformDxe ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
CloudHvPlatformHasAcpiDtDxe ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Include ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
KvmtoolCfgMgrDxe ArmVirtPkg: Fix KVM Guest Firmware 2022-08-02 17:07:08 +00:00
KvmtoolPlatformDxe ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Library ArmVirtPkg/ArmVirtQemu: Avoid early ID map on ThunderX 2023-01-10 17:37:39 +00:00
MemoryInitPei ArmVirtPkg/ArmVirtQemu: use first 128 MiB as permanent PEI memory 2022-10-26 17:28:39 +00:00
PlatformCI ArmVirtPkg: Add reference to new build instructions 2022-12-16 22:17:18 +00:00
PlatformHasAcpiDtDxe ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PrePi ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
XenAcpiPlatformDxe ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
XenPlatformHasAcpiDtDxe ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
XenioFdtDxe ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArmVirt.dsc.inc ArmVirtPkg: make EFI_LOADER_DATA non-executable 2022-10-26 17:28:39 +00:00
ArmVirtCloudHv.dsc CloudHv/arm: switch PeiMemLib to its own 2022-09-06 16:55:33 +00:00
ArmVirtCloudHv.fdf ArmVirtPkg: remove EbcDxe from all platforms 2022-10-24 14:30:33 +00:00
ArmVirtKvmTool.dsc ArmVirtPkg: Kvmtool: Add RNG support using Arm TRNG interface 2022-11-06 16:32:28 +00:00
ArmVirtKvmTool.fdf ArmVirtPkg: Kvmtool: Add RNG support using Arm TRNG interface 2022-11-06 16:32:28 +00:00
ArmVirtPkg.ci.yaml ArmPkg, ArmVirtPkg: put SpellCheck in AuditOnly mode 2022-09-10 08:23:27 +00:00
ArmVirtPkg.dec ArmVirtPkg/QemuVirtMemInfoLib: use HOB not PCD to record the memory size 2022-10-26 17:28:39 +00:00
ArmVirtQemu.dsc ArmVirtPkg/ArmVirtQemu: Avoid early ID map on ThunderX 2023-01-10 17:37:39 +00:00
ArmVirtQemu.fdf ArmVirtPkg/ArmVirtQemu: omit PCD PEIM unless TPM support is enabled 2022-10-26 17:28:39 +00:00
ArmVirtQemuFvMain.fdf.inc ArmVirtPkg/ArmVirtQemu: migrate to OVMF's VirtNorFlashDxe 2022-10-27 16:52:01 +00:00
ArmVirtQemuKernel.dsc ArmVirtPkg/ArmVirtQemu: migrate to OVMF's VirtNorFlashDxe 2022-10-27 16:52:01 +00:00
ArmVirtQemuKernel.fdf ArmVirtPkg: add FDF rule for self-relocating PrePi 2020-06-12 22:17:46 +00:00
ArmVirtRules.fdf.inc ArmVirtPkg: add FDF rule for self-relocating PrePi 2020-06-12 22:17:46 +00:00
ArmVirtXen.dsc ArmVirtPkg/FdtClintDxe: Move FdtClientDxe to EmbeddedPkg 2021-10-14 06:25:52 +00:00
ArmVirtXen.fdf ArmVirtPkg: remove EbcDxe from all platforms 2022-10-24 14:30:33 +00:00
VarStore.fdf.inc ArmVirtPkg: Replace BSD License with BSD+Patent License 2019-04-09 09:10:21 -07:00