Module Name: src Committed By: matt Date: Mon Jul 11 16:09:27 UTC 2016
Modified Files: src/sys/arch/arm/arm32: arm32_tlb.c Log Message: Adapt to common pmap changes. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/arm32/arm32_tlb.c 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/arm32/arm32_tlb.c diff -u src/sys/arch/arm/arm32/arm32_tlb.c:1.9 src/sys/arch/arm/arm32/arm32_tlb.c:1.10 --- src/sys/arch/arm/arm32/arm32_tlb.c:1.9 Thu Mar 26 08:45:05 2015 +++ src/sys/arch/arm/arm32/arm32_tlb.c Mon Jul 11 16:09:27 2016 @@ -30,7 +30,7 @@ #include "opt_multiprocessor.h" #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: arm32_tlb.c,v 1.9 2015/03/26 08:45:05 hsuenaga Exp $"); +__KERNEL_RCSID(1, "$NetBSD: arm32_tlb.c,v 1.10 2016/07/11 16:09:27 matt Exp $"); #include <sys/param.h> #include <sys/types.h> @@ -77,6 +77,7 @@ tlb_invalidate_all(void) armreg_iciallu_write(0); } } + arm_dsb(); arm_isb(); } @@ -99,6 +100,7 @@ tlb_invalidate_asids(tlb_asid_t lo, tlb_ armreg_tlbiasid_write(lo); #endif } + arm_dsb(); arm_isb(); if (__predict_false(vivt_icache_p)) { #ifdef MULTIPROCESSOR @@ -130,7 +132,6 @@ tlb_invalidate_addr(vaddr_t va, tlb_asid #endif //armreg_tlbiall_write(asid); } - arm_dsb(); arm_isb(); } @@ -143,7 +144,7 @@ tlb_update_addr(vaddr_t va, tlb_asid_t a #if !defined(MULTIPROCESSOR) && defined(CPU_CORTEXA5) static u_int -tlb_cortex_a5_record_asids(u_long *mapp) +tlb_cortex_a5_record_asids(u_long *mapp, tlb_asid_t asid_max) { u_int nasids = 0; for (size_t va_index = 0; va_index < 63; va_index++) { @@ -175,7 +176,7 @@ tlb_cortex_a5_record_asids(u_long *mapp) #if !defined(MULTIPROCESSOR) && defined(CPU_CORTEXA7) static u_int -tlb_cortex_a7_record_asids(u_long *mapp) +tlb_cortex_a7_record_asids(u_long *mapp, tlb_asid_t asid_max) { u_int nasids = 0; for (size_t va_index = 0; va_index < 128; va_index++) { @@ -207,16 +208,16 @@ tlb_cortex_a7_record_asids(u_long *mapp) #endif u_int -tlb_record_asids(u_long *mapp) +tlb_record_asids(u_long *mapp, tlb_asid_t asid_max) { #ifndef MULTIPROCESSOR #ifdef CPU_CORTEXA5 if (CPU_ID_CORTEX_A5_P(curcpu()->ci_arm_cpuid)) - return tlb_cortex_a5_record_asids(mapp); + return tlb_cortex_a5_record_asids(mapp, asid_max); #endif #ifdef CPU_CORTEXA7 if (CPU_ID_CORTEX_A7_P(curcpu()->ci_arm_cpuid)) - return tlb_cortex_a7_record_asids(mapp); + return tlb_cortex_a7_record_asids(mapp, asid_max); #endif #endif /* MULTIPROCESSOR */ #ifdef DIAGNOSTIC