MIPS: Loongson64: Correct TLB type for Loongson-3 Classic
authorJiaxun Yang <jiaxun.yang@flygoat.com>
Thu, 30 Apr 2020 16:48:02 +0000 (00:48 +0800)
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>
Sat, 2 May 2020 10:05:43 +0000 (12:05 +0200)
Huacai just informed me that some early Loongson-3A2000 had wrong
TLB type in Config0 register. That means we have to correct it via
PRID.

It looks like I shoudn't drop MIPS_CPU_FTLB flag in PRID case for
Loongson-3 Classic.

Fixes: da1bd29742b1 ("MIPS: Loongson64: Probe CPU features via CPUCFG")
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reported-by: Huacai Chen <chenhc@lemote.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
arch/mips/kernel/cpu-probe.c

index 1736c17..ca2e6f1 100644 (file)
@@ -1999,8 +1999,11 @@ static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu)
                 * Loongson-3 Classic did not implement MIPS standard TLBINV
                 * but implemented TLBINVF and EHINV. As currently we're only
                 * using these two features, enable MIPS_CPU_TLBINV as well.
+                *
+                * Also some early Loongson-3A2000 had wrong TLB type in Config
+                * register, we correct it here.
                 */
-               c->options |= MIPS_CPU_TLBINV | MIPS_CPU_LDPTE;
+               c->options |= MIPS_CPU_FTLB | MIPS_CPU_TLBINV | MIPS_CPU_LDPTE;
                c->writecombine = _CACHE_UNCACHED_ACCELERATED;
                c->ases |= (MIPS_ASE_LOONGSON_MMI | MIPS_ASE_LOONGSON_CAM |
                        MIPS_ASE_LOONGSON_EXT | MIPS_ASE_LOONGSON_EXT2);