Module Name: src Committed By: skrll Date: Sat May 16 07:22:37 UTC 2015
Modified Files: src/sys/arch/arm/arm: cpufunc_asm_armv7.S Log Message: 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 To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/sys/arch/arm/arm/cpufunc_asm_armv7.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_armv7.S diff -u src/sys/arch/arm/arm/cpufunc_asm_armv7.S:1.21 src/sys/arch/arm/arm/cpufunc_asm_armv7.S:1.22 --- src/sys/arch/arm/arm/cpufunc_asm_armv7.S:1.21 Sun Nov 9 09:21:57 2014 +++ src/sys/arch/arm/arm/cpufunc_asm_armv7.S Sat May 16 07:22:37 2015 @@ -108,8 +108,15 @@ END(armv7_tlb_flushD) 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