Module Name: src
Committed By: skrll
Date: Wed Oct 29 16:22:32 UTC 2014
Modified Files:
src/sys/arch/arm/arm: cpufunc_asm_arm11.S cpufunc_asm_armv7.S
cpufunc_asm_pj4b.S
Log Message:
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@
To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/arm/cpufunc_asm_arm11.S
cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/arm/cpufunc_asm_armv7.S
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/arm/cpufunc_asm_pj4b.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_arm11.S
diff -u src/sys/arch/arm/arm/cpufunc_asm_arm11.S:1.16 src/sys/arch/arm/arm/cpufunc_asm_arm11.S:1.17
--- src/sys/arch/arm/arm/cpufunc_asm_arm11.S:1.16 Wed Oct 29 16:14:45 2014
+++ src/sys/arch/arm/arm/cpufunc_asm_arm11.S Wed Oct 29 16:22:31 2014
@@ -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 @@ END(arm11_tlb_flushI)
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 @@ END(arm11_tlb_flushD)
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 @@ END(arm11_tlb_flushID)
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
Index: src/sys/arch/arm/arm/cpufunc_asm_armv7.S
diff -u src/sys/arch/arm/arm/cpufunc_asm_armv7.S:1.18 src/sys/arch/arm/arm/cpufunc_asm_armv7.S:1.19
--- src/sys/arch/arm/arm/cpufunc_asm_armv7.S:1.18 Thu Jul 31 06:26:06 2014
+++ src/sys/arch/arm/arm/cpufunc_asm_armv7.S Wed Oct 29 16:22:31 2014
@@ -78,10 +78,7 @@ END(armv7_tlb_flushID_ASID)
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
Index: src/sys/arch/arm/arm/cpufunc_asm_pj4b.S
diff -u src/sys/arch/arm/arm/cpufunc_asm_pj4b.S:1.4 src/sys/arch/arm/arm/cpufunc_asm_pj4b.S:1.5
--- src/sys/arch/arm/arm/cpufunc_asm_pj4b.S:1.4 Sun Mar 30 01:15:03 2014
+++ src/sys/arch/arm/arm/cpufunc_asm_pj4b.S Wed Oct 29 16:22:31 2014
@@ -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 @@ ENTRY(pj4b_tlb_flushID)
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