This patchset aims at unifying the different BMIPS support code to allow building a kernel that runs on multiple BCM63XX SoCs which might have different BMIPS flavours on them, regardless of SMP support enabled in the kernel. The first few patches clean up BMIPS itself and prepare it for multi-cpu support, while the latter add support to BCM63XX for running a SMP kernel with support for all SoCs, even those that do not have a SMP capable CPU. This patchset is runtime tested on BCM6348, BCM6328 and BCM6368, to verify that it actually does what it claims it does. Lacking hardware, it is only build tested for BMIPS4380 and BMIPS5000. Changes V1 -> V2: * dropped the compilation fix (a different fix was already comitted) * rebased on the cpu-type cleanup patches * used the cpu-type cleanup effects to remove the macros and replace them with normal switch-cases. * Let BCM47XX_SSB also select BMIPS32_3300 Jonas Gorski (13): MIPS: BCM63XX: disable SMP also on BCM3368 MIPS: allow asm/cpu.h to be included from assembly MIPS: BMIPS: change compile time checks to runtime checks MIPS: BMIPS: merge CPU options into one option MIPS: BMIPS: select CPU_SUPPORTS_HIGHMEM MIPS: BMIPS: select CPU_HAS_PREFETCH MIPS: BMIPS: extend BMIPS3300 to include BMIPS32 MIPS: BMIPS: add a smp ops registration helper MIPS: BCM63XX: always register bmips smp ops MIPS: BCM63XX: let the individual SoCs select the appropriate CPUs MIPS: BCM47XX: select BMIPS CPUs for BCM47XX_SSB MIPS: cpu-type: guard BMIPS variants with SYS_HAS_CPU_BMIPS* MIPS: BCM63XX: drop SYS_HAS_CPU_MIPS32R1 arch/mips/Kconfig | 84 +++++------ arch/mips/bcm47xx/Kconfig | 1 + arch/mips/bcm63xx/Kconfig | 8 + arch/mips/bcm63xx/prom.c | 14 +- arch/mips/include/asm/bmips.h | 29 +++- arch/mips/include/asm/cpu-type.h | 13 +- arch/mips/include/asm/cpu.h | 3 + arch/mips/kernel/bmips_vec.S | 55 +++++-- arch/mips/kernel/smp-bmips.c | 312 ++++++++++++++++++++++++--------------- 9 files changed, 329 insertions(+), 190 deletions(-) -- 1.8.5.1