Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/arm/arm Add MULTIPROCESSOR tlb flushes to armv7_tlb...
details: https://anonhg.NetBSD.org/src/rev/bb6e21bfe15a
branches: trunk
changeset: 338244:bb6e21bfe15a
user: skrll <skrll%NetBSD.org@localhost>
date: Sat May 16 07:22:37 2015 +0000
description:
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
diffstat:
sys/arch/arm/arm/cpufunc_asm_armv7.S | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diffs (19 lines):
diff -r ea7d55d89b07 -r bb6e21bfe15a sys/arch/arm/arm/cpufunc_asm_armv7.S
--- a/sys/arch/arm/arm/cpufunc_asm_armv7.S Sat May 16 02:33:12 2015 +0000
+++ b/sys/arch/arm/arm/cpufunc_asm_armv7.S Sat May 16 07:22:37 2015 +0000
@@ -108,8 +108,15 @@
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
Home |
Main Index |
Thread Index |
Old Index