diff --git a/src/arch/arm/isa.cc b/src/arch/arm/isa.cc index 9ace2367f4..cfef0ab071 100644 --- a/src/arch/arm/isa.cc +++ b/src/arch/arm/isa.cc @@ -1711,9 +1711,8 @@ ISA::setMiscReg(int misc_reg, RegVal val) tlbiOp.broadcast(tc); return; } - // AArch64 TLB Invalidate All, EL2, Inner Shareable + // AArch64 TLB Invalidate All, EL2 case MISCREG_TLBI_ALLE2: - case MISCREG_TLBI_ALLE2IS: { assert64(); scr = readMiscReg(MISCREG_SCR); @@ -1722,6 +1721,16 @@ ISA::setMiscReg(int misc_reg, RegVal val) tlbiOp(tc); return; } + // AArch64 TLB Invalidate All, EL2, Inner Shareable + case MISCREG_TLBI_ALLE2IS: + { + assert64(); + scr = readMiscReg(MISCREG_SCR); + + TLBIALL tlbiOp(EL2, haveSecurity && !scr.ns); + tlbiOp.broadcast(tc); + return; + } // AArch64 TLB Invalidate All, EL1 case MISCREG_TLBI_ALLE1: case MISCREG_TLBI_VMALLS12E1: