mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
MIPS: Netlogic: Fix TLB size of boot CPU.
Starting other threads in the core will change the number of TLB entries of a CPU. Re-calculate current_cpu_data.tlbsize on the boot cpu after enabling and waking up other threads. The secondary CPUs do not need this logic because the threads are enabled on the secondary cores at wakeup and before cpu_probe. Signed-off-by: Jayachandran C <jayachandranc@netlogicmicro.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/3751/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
249e2a38fb
commit
b876c1a0bc
@ -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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user