diff --git a/ArmPkg/Drivers/CpuDxe/AArch64/Mmu.c b/ArmPkg/Drivers/CpuDxe/AArch64/Mmu.c index 8997b7f61f..8bb33046e7 100644 --- a/ArmPkg/Drivers/CpuDxe/AArch64/Mmu.c +++ b/ArmPkg/Drivers/CpuDxe/AArch64/Mmu.c @@ -305,7 +305,7 @@ EfiAttributeToArmAttribute ( // Determine protection attributes if ((EfiAttributes & EFI_MEMORY_RO) != 0) { - ArmAttributes |= TT_AP_RO_RO; + ArmAttributes |= TT_AP_NO_RO; } // Process eXecute Never attribute diff --git a/ArmPkg/Library/ArmMmuLib/AArch64/ArmMmuLibCore.c b/ArmPkg/Library/ArmMmuLib/AArch64/ArmMmuLibCore.c index 89da40fd8e..4a0513392a 100644 --- a/ArmPkg/Library/ArmMmuLib/AArch64/ArmMmuLibCore.c +++ b/ArmPkg/Library/ArmMmuLib/AArch64/ArmMmuLibCore.c @@ -393,7 +393,7 @@ GcdAttributeToPageAttribute ( } if ((GcdAttributes & EFI_MEMORY_RO) != 0) { - PageAttributes |= TT_AP_RO_RO; + PageAttributes |= TT_AP_NO_RO; } return PageAttributes | TT_AF; @@ -492,7 +492,7 @@ ArmSetMemoryRegionReadOnly ( return SetMemoryRegionAttribute ( BaseAddress, Length, - TT_AP_RO_RO, + TT_AP_NO_RO, ~TT_ADDRESS_MASK_BLOCK_ENTRY ); } @@ -506,7 +506,7 @@ ArmClearMemoryRegionReadOnly ( return SetMemoryRegionAttribute ( BaseAddress, Length, - TT_AP_RW_RW, + TT_AP_NO_RW, ~(TT_ADDRESS_MASK_BLOCK_ENTRY | TT_AP_MASK) ); }