|
@@ -108,16 +108,18 @@ ENTRY(cpu_v7_switch_mm)
|
|
|
#ifdef CONFIG_ARM_ERRATA_430973
|
|
|
mcr p15, 0, r2, c7, c5, 6 @ flush BTAC/BTB
|
|
|
#endif
|
|
|
- mrc p15, 0, r2, c2, c0, 1 @ load TTB 1
|
|
|
- mcr p15, 0, r2, c2, c0, 0 @ into TTB 0
|
|
|
+#ifdef CONFIG_ARM_ERRATA_754322
|
|
|
+ dsb
|
|
|
+#endif
|
|
|
+ mcr p15, 0, r2, c13, c0, 1 @ set reserved context ID
|
|
|
+ isb
|
|
|
+1: mcr p15, 0, r0, c2, c0, 0 @ set TTB 0
|
|
|
isb
|
|
|
#ifdef CONFIG_ARM_ERRATA_754322
|
|
|
dsb
|
|
|
#endif
|
|
|
mcr p15, 0, r1, c13, c0, 1 @ set context ID
|
|
|
isb
|
|
|
- mcr p15, 0, r0, c2, c0, 0 @ set TTB 0
|
|
|
- isb
|
|
|
#endif
|
|
|
mov pc, lr
|
|
|
ENDPROC(cpu_v7_switch_mm)
|