[edk2] [PATCH v3 0/4] ArmPkg, ArmVirtpkg ARM: enable strict memory protection

Ard Biesheuvel posted 4 patches 7 years, 8 months ago
Failed in applying to current master (apply log)
ArmPkg/Drivers/CpuDxe/Arm/Mmu.c | 277 +++++++++++---------
ArmVirtPkg/ArmVirt.dsc.inc      |   9 +-
2 files changed, 161 insertions(+), 125 deletions(-)
[edk2] [PATCH v3 0/4] ArmPkg, ArmVirtpkg ARM: enable strict memory protection
Posted by Ard Biesheuvel 7 years, 8 months ago
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