Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b876c1a0 authored by Jayachandran C's avatar Jayachandran C Committed by Ralf Baechle
Browse files

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: default avatarJayachandran C <jayachandranc@netlogicmicro.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/3751/


Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 249e2a38
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -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
}