diff options
Diffstat (limited to 'arch/xtensa/mm/mmu.c')
| -rw-r--r-- | arch/xtensa/mm/mmu.c | 14 | 
1 files changed, 9 insertions, 5 deletions
diff --git a/arch/xtensa/mm/mmu.c b/arch/xtensa/mm/mmu.c index 0f77f9d3bb8..a1077570e38 100644 --- a/arch/xtensa/mm/mmu.c +++ b/arch/xtensa/mm/mmu.c @@ -24,15 +24,19 @@ void __init paging_init(void)   */  void __init init_mmu(void)  { -	/* Writing zeros to the <t>TLBCFG special registers ensure -	 * that valid values exist in the register.  For existing -	 * PGSZID<w> fields, zero selects the first element of the -	 * page-size array.  For nonexistent PGSZID<w> fields, zero is -	 * the best value to write.  Also, when changing PGSZID<w> +#if !(XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY) +	/* +	 * Writing zeros to the instruction and data TLBCFG special +	 * registers ensure that valid values exist in the register. +	 * +	 * For existing PGSZID<w> fields, zero selects the first element +	 * of the page-size array.  For nonexistent PGSZID<w> fields, +	 * zero is the best value to write.  Also, when changing PGSZID<w>  	 * fields, the corresponding TLB must be flushed.  	 */  	set_itlbcfg_register(0);  	set_dtlbcfg_register(0); +#endif  	flush_tlb_all();  	/* Set rasid register to a known value. */  |