From d60de334e015e08e7cdf96b4ad1d3f7dc8bbbb48 Mon Sep 17 00:00:00 2001 From: Jayachandran C Date: Tue, 3 Jul 2012 19:04:02 +0200 Subject: [PATCH] --- yaml --- r: 312112 b: refs/heads/master c: b876c1a0bcfe68a5eaf03f325cb2a09822bf11f2 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/mips/netlogic/xlp/setup.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index a516ada8aca8..d776937b5e94 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 249e2a38fbd28ffaadba112290742ada16946900 +refs/heads/master: b876c1a0bcfe68a5eaf03f325cb2a09822bf11f2 diff --git a/trunk/arch/mips/netlogic/xlp/setup.c b/trunk/arch/mips/netlogic/xlp/setup.c index acb677a1227c..b3df7c2aad1e 100644 --- a/trunk/arch/mips/netlogic/xlp/setup.c +++ b/trunk/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 }