This series makes the prerequisite modifications to the ARM version of the CpuDxe driver so we can enable PE/COFF image and NX memory protection for ARM platforms, including ArmVirtPkg (#4)
Patch #1 refactors CpuSetMemoryAttributes() so it no longer splits section mappings into page mappings unnecessarily. Patch #2 removes some unnecessary cache/TLB maintenance, which becomes very costly when CpuSetMemoryAttributes() is used in anger as is the case with memory protections enabled. Patch #3 wires up the EFI_MEMORY_RO/EFI_MEMORY_XP attributes, which were ignored before. Patch #4 enables the protection features for ArmVirtPkg platforms when built for 32-bit ARM. Changes since v2: - minor code tweaks for style and correctness - add R-b's from Leif to #1 and #2 Changes since v1: - trigger full TLB flush when UpdatePageEntries() results in a section split - Make cache maintenance of the remapped regions conditional on whether the memory type changed. This prevents an inadvertent cache clean/invalidate by VA of the entire RAM area when the NX attribute is applied to it. - remove DEBUG_INFO attribute from SetMemoryAttributes DEBUG output - add Laszlo's R-b to #4 Ard Biesheuvel (4): ArmPkg/CpuDxe ARM: avoid splitting page table sections unnecessarily ArmPkg/CpuDxe ARM: avoid unnecessary cache/TLB maintenance ArmPkg/CpuDxe ARM: honour RO/XP attributes in SetMemoryAttributes() ArmVirtPkg: enable PE/COFF image and memory protection for ARM platforms ArmPkg/Drivers/CpuDxe/Arm/Mmu.c | 277 +++++++++++--------- ArmVirtPkg/ArmVirt.dsc.inc | 9 +- 2 files changed, 161 insertions(+), 125 deletions(-) -- 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel