Module Name: src
Committed By: skrll
Date: Sat May 16 07:22:37 UTC 2015
Modified Files:
src/sys/arch/arm/arm: cpufunc_asm_armv7.S
Log Message:
Add MULTIPROCESSOR tlb flushes to armv7_tlb_flushID. Also, invalidate the
branch predictor.
This function is only used by db_write_bytes and kobj_machdep
To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 src/sys/arch/arm/arm/cpufunc_asm_armv7.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/arm/cpufunc_asm_armv7.S
diff -u src/sys/arch/arm/arm/cpufunc_asm_armv7.S:1.21 src/sys/arch/arm/arm/cpufunc_asm_armv7.S:1.22
--- src/sys/arch/arm/arm/cpufunc_asm_armv7.S:1.21 Sun Nov 9 09:21:57 2014
+++ src/sys/arch/arm/arm/cpufunc_asm_armv7.S Sat May 16 07:22:37 2015
@@ -108,8 +108,15 @@ END(armv7_tlb_flushD)
STRONG_ALIAS(armv7_tlb_flushI, armv7_tlb_flushID)
ENTRY(armv7_tlb_flushID)
+ dsb
mov r0, #0
+#ifdef MULTIPROCESSOR
+ mcr p15, 0, r0, c8, c3, 0 @ flush entire I+D tlb, IS
+ mcr p15, 0, r0, c7, c1, 6 @ branch predictor invalidate, IS
+#else
mcr p15, 0, r0, c8, c7, 0 @ flush entire I+D tlb
+ mcr p15, 0, r0, c7, c5, 6 @ branch predictor invalidate
+#endif
dsb @ data synchronization barrier
isb
bx lr