|
@@ -99,7 +99,9 @@ static void cmp_init_secondary(void)
|
|
|
|
|
|
c->core = (read_c0_ebase() >> 1) & 0x1ff;
|
|
|
#if defined(CONFIG_MIPS_MT_SMP) || defined(CONFIG_MIPS_MT_SMTC)
|
|
|
- c->vpe_id = (read_c0_tcbind() >> TCBIND_CURVPE_SHIFT) & TCBIND_CURVPE;
|
|
|
+ if (cpu_has_mipsmt)
|
|
|
+ c->vpe_id = (read_c0_tcbind() >> TCBIND_CURVPE_SHIFT) &
|
|
|
+ TCBIND_CURVPE;
|
|
|
#endif
|
|
|
#ifdef CONFIG_MIPS_MT_SMTC
|
|
|
c->tc_id = (read_c0_tcbind() & TCBIND_CURTC) >> TCBIND_CURTC_SHIFT;
|
|
@@ -177,9 +179,16 @@ void __init cmp_smp_setup(void)
|
|
|
}
|
|
|
|
|
|
if (cpu_has_mipsmt) {
|
|
|
- unsigned int nvpe, mvpconf0 = read_c0_mvpconf0();
|
|
|
+ unsigned int nvpe = 1;
|
|
|
+#ifdef CONFIG_MIPS_MT_SMP
|
|
|
+ unsigned int mvpconf0 = read_c0_mvpconf0();
|
|
|
+
|
|
|
+ nvpe = ((mvpconf0 & MVPCONF0_PVPE) >> MVPCONF0_PVPE_SHIFT) + 1;
|
|
|
+#elif defined(CONFIG_MIPS_MT_SMTC)
|
|
|
+ unsigned int mvpconf0 = read_c0_mvpconf0();
|
|
|
|
|
|
nvpe = ((mvpconf0 & MVPCONF0_PTC) >> MVPCONF0_PTC_SHIFT) + 1;
|
|
|
+#endif
|
|
|
smp_num_siblings = nvpe;
|
|
|
}
|
|
|
pr_info("Detected %i available secondary CPU(s)\n", ncpu);
|