]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - arch/mips/kernel/bmips_vec.S
MIPS: BMIPS: Fix PRID_IMP_BMIPS5000 masking for BMIPS5200
[mirror_ubuntu-bionic-kernel.git] / arch / mips / kernel / bmips_vec.S
index 86495072a922f31e0214cad3b6ac71c10aaf5fa8..d9495f3f3fad345521aa5968731cd1f51e65020c 100644 (file)
@@ -93,7 +93,8 @@ NESTED(bmips_reset_nmi_vec, PT_SIZE, sp)
 #if defined(CONFIG_CPU_BMIPS5000)
        mfc0    k0, CP0_PRID
        li      k1, PRID_IMP_BMIPS5000
-       andi    k0, 0xff00
+       /* mask with PRID_IMP_BMIPS5000 to cover both variants */
+       andi    k0, PRID_IMP_BMIPS5000
        bne     k0, k1, 1f
 
        /* if we're not on core 0, this must be the SMP boot signal */
@@ -166,10 +167,12 @@ bmips_smp_entry:
 2:
 #endif /* CONFIG_CPU_BMIPS4350 || CONFIG_CPU_BMIPS4380 */
 #if defined(CONFIG_CPU_BMIPS5000)
-       /* set exception vector base */
+       /* mask with PRID_IMP_BMIPS5000 to cover both variants */
        li      k1, PRID_IMP_BMIPS5000
+       andi    k0, PRID_IMP_BMIPS5000
        bne     k0, k1, 3f
 
+       /* set exception vector base */
        la      k0, ebase
        lw      k0, 0(k0)
        mtc0    k0, $15, 1
@@ -263,6 +266,8 @@ LEAF(bmips_enable_xks01)
 #endif /* CONFIG_CPU_BMIPS4380 */
 #if defined(CONFIG_CPU_BMIPS5000)
        li      t1, PRID_IMP_BMIPS5000
+       /* mask with PRID_IMP_BMIPS5000 to cover both variants */
+       andi    t2, PRID_IMP_BMIPS5000
        bne     t2, t1, 2f
 
        mfc0    t0, $22, 5