'tlb alle1' was used to invalidate the TLBs in EL1. Expect this instruction can only
be invoked from EL2.
The correct instruction to invalidate TLBs in EL1 is 'tlbi vmalle1' - it invalidates
the TLBs of the current VMID.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14509
6f19259b-4bc3-4df7-8a09-
765794883524
3: mrs x0, sctlr_el3 // Read System control register EL3\r
4: orr x0, x0, #CTRL_M_BIT // Set MMU enable bit\r
EL1_OR_EL2_OR_EL3(x1)\r
-1: tlbi alle1\r
+1: tlbi vmalle1\r
isb\r
msr sctlr_el1, x0 // Write back\r
b 4f\r
4: bic x0, x0, #CTRL_M_BIT // Clear MMU enable bit\r
EL1_OR_EL2_OR_EL3(x1)\r
1: msr sctlr_el1, x0 // Write back\r
- tlbi alle1\r
+ tlbi vmalle1\r
b 4f\r
2: msr sctlr_el2, x0 // Write back\r
tlbi alle2\r
\r
ASM_PFX(ArmInvalidateInstructionAndDataTlb):\r
EL1_OR_EL2_OR_EL3(x0)\r
-1: tlbi alle1\r
+1: tlbi vmalle1\r
b 4f\r
2: tlbi alle2\r
b 4f\r
\r
ASM_PFX(ArmInvalidateTlb):\r
EL1_OR_EL2_OR_EL3(x0)\r
-1: tlbi alle1\r
+1: tlbi vmalle1\r
b 4f\r
2: tlbi alle2\r
b 4f\r