This series enables the non-exec DXE stack feature for AARCH64. It involves
some refactoring of ArmLib so we can reuse the bulk of the page table
manipulation code (patch #1). Then, it is simply a matter of calling the
newly introduced ArmSetMemoryRegionNoExec () [patch #2] on the stack region
right after it has been allocated (patch #3).

Patch #4 enables the feature for ArmVirtQemu if building for AARCH64.

Ard Biesheuvel (4):
  ArmPkg/AArch64Mmu: move page table traversal code to separate function
  ArmPkg/AArch64Mmu: add functions to set/clear RO and XN bits on
    regions
  MdeModulePkg/DxeIplPeim: implement non-exec stack for ARM/AARCH64
  ArmVirtPkg/ArmVirtQemu: enable non-exec DXE stack for AARCH64

 ArmPkg/Include/Library/ArmLib.h                |  24 ++++
 ArmPkg/Library/ArmLib/AArch64/AArch64Mmu.c     | 133 +++++++++++++++++---
 ArmPkg/Library/ArmLib/ArmV7/ArmV7Mmu.c         |  36 ++++++
 ArmVirtPkg/ArmVirtQemu.dsc                     |   3 +
 MdeModulePkg/Core/DxeIplPeim/Arm/DxeLoadFunc.c |   7 ++
 MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf        |   8 ++
 6 files changed, 192 insertions(+), 19 deletions(-)

-- 
1.9.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to