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 Don't flush random ASIDs. Instead always as...



details:   https://anonhg.NetBSD.org/src/rev/e85100b6cdf4
branches:  trunk
changeset: 333329:e85100b6cdf4
user:      skrll <skrll%NetBSD.org@localhost>
date:      Wed Oct 29 16:22:31 2014 +0000

description:
Don't flush random ASIDs. Instead always assume KERNEL_PID, i.e. 0.
All other TLB flushes are done via

        pmap_tlb_invalidate_addr -> tlb_invalidate_addr

OK matt@

diffstat:

 sys/arch/arm/arm/cpufunc_asm_arm11.S |  11 +++++++----
 sys/arch/arm/arm/cpufunc_asm_armv7.S |   5 +----
 sys/arch/arm/arm/cpufunc_asm_pj4b.S  |   3 ++-
 3 files changed, 10 insertions(+), 9 deletions(-)

diffs (71 lines):

diff -r 32bb872e71cb -r e85100b6cdf4 sys/arch/arm/arm/cpufunc_asm_arm11.S
--- a/sys/arch/arm/arm/cpufunc_asm_arm11.S      Wed Oct 29 16:14:45 2014 +0000
+++ b/sys/arch/arm/arm/cpufunc_asm_arm11.S      Wed Oct 29 16:22:31 2014 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: cpufunc_asm_arm11.S,v 1.16 2014/10/29 16:14:45 skrll Exp $     */
+/*     $NetBSD: cpufunc_asm_arm11.S,v 1.17 2014/10/29 16:22:31 skrll Exp $     */
 
 /*
  * Copyright (c) 2002, 2005 ARM Limited
@@ -97,7 +97,8 @@
 
 ENTRY(arm11_tlb_flushI_SE)
 #ifdef ARM_MMU_EXTENDED
-       orr     r0, r0, r1              /* insert ASID into MVA */
+       bic     r0, r0, #0xff
+       bic     r0, r0, #0xf00          /* Always KERNEL_PID, i.e. 0 */
 #endif
        mcr     p15, 0, r0, c8, c5, 1   /* flush I tlb single entry */
 #if PAGE_SIZE == 2 * L2_S_SIZE
@@ -119,7 +120,8 @@
 
 ENTRY(arm11_tlb_flushD_SE)
 #ifdef ARM_MMU_EXTENDED
-       orr     r0, r0, r1              /* insert ASID into MVA */
+       bic     r0, r0, #0xff
+       bic     r0, r0, #0xf00          /* Always KERNEL_PID, i.e. 0 */
 #endif
        mcr     p15, 0, r0, c8, c6, 1   /* flush D tlb single entry */
 #if PAGE_SIZE == 2 * L2_S_SIZE
@@ -140,7 +142,8 @@
 
 ENTRY(arm11_tlb_flushID_SE)
 #ifdef ARM_MMU_EXTENDED
-       orr     r0, r0, r1              /* insert ASID into MVA */
+       bic     r0, r0, #0xff
+       bic     r0, r0, #0xf00          /* Always KERNEL_PID, i.e. 0 */
 #endif
        mcr     p15, 0, r0, c8, c7, 1   /* flush I+D tlb single entry */
 #if PAGE_SIZE == 2 * L2_S_SIZE
diff -r 32bb872e71cb -r e85100b6cdf4 sys/arch/arm/arm/cpufunc_asm_armv7.S
--- a/sys/arch/arm/arm/cpufunc_asm_armv7.S      Wed Oct 29 16:14:45 2014 +0000
+++ b/sys/arch/arm/arm/cpufunc_asm_armv7.S      Wed Oct 29 16:22:31 2014 +0000
@@ -78,10 +78,7 @@
 STRONG_ALIAS(armv7_tlb_flushD_SE, armv7_tlb_flushID_SE)
 STRONG_ALIAS(armv7_tlb_flushI_SE, armv7_tlb_flushID_SE)
 ENTRY(armv7_tlb_flushID_SE)
-       bfc     r0, #0, #12             @ clear ASID
-#ifdef ARM_MMU_EXTENDED
-       bfi     r0, r1, #0, #8          @ insert ASID into MVA
-#endif
+       bfc     r0, #0, #12             @ Always KERNEL_PID, i.e. 0
 #ifdef MULTIPROCESSOR
        mcr     p15, 0, r0, c8, c3, 1   @ flush I+D tlb single entry
 #if PAGE_SIZE == 2*L2_S_SIZE
diff -r 32bb872e71cb -r e85100b6cdf4 sys/arch/arm/arm/cpufunc_asm_pj4b.S
--- a/sys/arch/arm/arm/cpufunc_asm_pj4b.S       Wed Oct 29 16:14:45 2014 +0000
+++ b/sys/arch/arm/arm/cpufunc_asm_pj4b.S       Wed Oct 29 16:22:31 2014 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: cpufunc_asm_pj4b.S,v 1.4 2014/03/30 01:15:03 matt Exp $ */
+/*     $NetBSD: cpufunc_asm_pj4b.S,v 1.5 2014/10/29 16:22:31 skrll Exp $ */
 
 /*******************************************************************************
 Copyright (C) Marvell International Ltd. and its affiliates
@@ -78,6 +78,7 @@
 END(pj4b_tlb_flushID)
 
 ENTRY(pj4b_tlb_flushID_SE)
+       bfc     r0, #0, #12             @ always KERNEL_PID (i.e. 0)
        mcr     p15, 0, r0, c8, c7, 1   @flush I+D tlb single entry
 #if PAGE_SIZE == 2 * L2_S_SIZE
        add     r0, r0, L2_S_SIZE



Home | Main Index | Thread Index | Old Index