The upcoming DXE image protection feature expects the EFI_CPU_ARCH_PROTOCOL method SetMemoryAttributes() to deal with invocations that only modify permission attributes, but leave the cacheability attributes alone. This requires some groundwork to be performed in the MMU code for ARM.
Patch #1 is Jiewen's patch to retire EFI_MEMORY_WP, which is no longer used as a permission attribute. Patch #2 updates EfiAttributeToArmAttribute () so it can deal with unspecified caching modes. Patch #3 makes ARM deal with EFI_CPU_ARCH_PROTOCOL.SetMemoryAttributes() calls that do not specify memory attributes. On ARM, we don't have code that manages the permission bits in the page tables, so this does little more than ignore such attributes. Patch #4 implements the handling for AARCH64 to manage the permissions bits without touching or caring about the memory type attributes. Ard Biesheuvel (3): ArmPkg/CpuDxe: translate invalid memory types in EfiAttributeToArmAttribute ArmPkg/CpuDxe: ARM: ignore page table updates that only change permissions ArmPkg/ArmMmuLib: AARCH64: add support for modifying only permissions Jiewen Yao (1): ArmPkg/CpuDxe: Correct EFI_MEMORY_RO usage ArmPkg/Drivers/CpuDxe/AArch64/Mmu.c | 7 +- ArmPkg/Drivers/CpuDxe/Arm/Mmu.c | 24 ++++--- ArmPkg/Drivers/CpuDxe/CpuMmuCommon.c | 5 +- ArmPkg/Library/ArmMmuLib/AArch64/ArmMmuLibCore.c | 76 +++++++++++++++----- 4 files changed, 77 insertions(+), 35 deletions(-) -- 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel