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