|
@@ -284,6 +284,15 @@ static inline int __cpu_has_fpu(void)
|
|
|
return ((cpu_get_fpu_id() & 0xff00) != FPIR_IMP_NONE);
|
|
|
}
|
|
|
|
|
|
+static inline void cpu_probe_vmbits(struct cpuinfo_mips *c)
|
|
|
+{
|
|
|
+#ifdef __NEED_VMBITS_PROBE
|
|
|
+ write_c0_entryhi(0x3ffffffffffff000ULL);
|
|
|
+ back_to_back_c0_hazard();
|
|
|
+ c->vmbits = fls64(read_c0_entryhi() & 0x3ffffffffffff000ULL);
|
|
|
+#endif
|
|
|
+}
|
|
|
+
|
|
|
#define R4K_OPTS (MIPS_CPU_TLB | MIPS_CPU_4KEX | MIPS_CPU_4K_CACHE \
|
|
|
| MIPS_CPU_COUNTER)
|
|
|
|
|
@@ -969,6 +978,8 @@ __cpuinit void cpu_probe(void)
|
|
|
c->srsets = ((read_c0_srsctl() >> 26) & 0x0f) + 1;
|
|
|
else
|
|
|
c->srsets = 1;
|
|
|
+
|
|
|
+ cpu_probe_vmbits(c);
|
|
|
}
|
|
|
|
|
|
__cpuinit void cpu_report(void)
|