diff options
Diffstat (limited to 'arch/mips/netlogic/xlp/setup.c')
| -rw-r--r-- | arch/mips/netlogic/xlp/setup.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/mips/netlogic/xlp/setup.c b/arch/mips/netlogic/xlp/setup.c index acb677a1227..b3df7c2aad1 100644 --- a/arch/mips/netlogic/xlp/setup.c +++ b/arch/mips/netlogic/xlp/setup.c @@ -82,8 +82,10 @@ void __init prom_free_prom_memory(void)  void xlp_mmu_init(void)  { +	/* enable extended TLB and Large Fixed TLB */  	write_c0_config6(read_c0_config6() | 0x24); -	current_cpu_data.tlbsize = ((read_c0_config6() >> 16) & 0xffff) + 1; + +	/* set page mask of Fixed TLB in config7 */  	write_c0_config7(PM_DEFAULT_MASK >>  		(13 + (ffz(PM_DEFAULT_MASK >> 13) / 2)));  } @@ -100,6 +102,10 @@ void __init prom_init(void)  	nlm_common_ebase = read_c0_ebase() & (~((1 << 12) - 1));  #ifdef CONFIG_SMP  	nlm_wakeup_secondary_cpus(0xffffffff); + +	/* update TLB size after waking up threads */ +	current_cpu_data.tlbsize = ((read_c0_config6() >> 16) & 0xffff) + 1; +  	register_smp_ops(&nlm_smp_ops);  #endif  }  |