]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Library/ArmLib/AArch64/ArmLibSupport.S
ArmPkg/ArmMmuLib AARCH64: get rid of needless TLB invalidation
[mirror_edk2.git] / ArmPkg / Library / ArmLib / AArch64 / ArmLibSupport.S
index b7173e00b039f9c5b59262f8f75dbaa3d9b9dca0..175fb58206b6652a24211bac859845fd9116a672 100644 (file)
@@ -124,15 +124,15 @@ ASM_FUNC(ArmSetMAIR)
 //  IN VOID  *MVA                    // X1\r
 //  );\r
 ASM_FUNC(ArmUpdateTranslationTableEntry)\r
 //  IN VOID  *MVA                    // X1\r
 //  );\r
 ASM_FUNC(ArmUpdateTranslationTableEntry)\r
-   dc      civac, x0             // Clean and invalidate data line\r
-   dsb     sy\r
+   dsb     nshst\r
+   lsr     x1, x1, #12\r
    EL1_OR_EL2_OR_EL3(x0)\r
 1: tlbi    vaae1, x1             // TLB Invalidate VA , EL1\r
    b       4f\r
 2: tlbi    vae2, x1              // TLB Invalidate VA , EL2\r
    b       4f\r
 3: tlbi    vae3, x1              // TLB Invalidate VA , EL3\r
    EL1_OR_EL2_OR_EL3(x0)\r
 1: tlbi    vaae1, x1             // TLB Invalidate VA , EL1\r
    b       4f\r
 2: tlbi    vae2, x1              // TLB Invalidate VA , EL2\r
    b       4f\r
 3: tlbi    vae3, x1              // TLB Invalidate VA , EL3\r
-4: dsb     sy\r
+4: dsb     nsh\r
    isb\r
    ret\r
 \r
    isb\r
    ret\r
 \r