Hello Jonas, 2013/6/29 Jonas Gorski <jogo@xxxxxxxxxxx>: > 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. > > Jonas Gorski (10): > MIPS: bmips: fix compilation for BMIPS5000 > MIPS: allow asm/cpu.h to be included from assembly > MIPS: bmips: add macros for testing the current bmips CPU > MIPS: bmips: change compile time checks to runtime checks > MIPS: bmips: merge CPU options into one option > MIPS: BCM63XX: let the individual SoCs select the appropriate CPUs > MIPS: bmips: add a helper function for registering smp ops > MIPS: BCM63XX: always register bmips smp ops > MIPS: BCM63XX: change the guard to a BMIPS4350 check > MIPS: BCM63XX: disable SMP also on BCM3368 After fixing the typo on BMIPS4350 vs BMIPS4380 and fixing the following (which I will submit just in a few minutes) @@ -187,7 +187,7 @@ static void bmips_boot_secondary(int cpu, struct task_struct } else { if (cpu_is_bmips4350() || cpu_is_bmips4380()) { /* Reset slave TP1 if booting from TP0 */ - if (cpu_logical_map(cpu) == 0) + if (cpu_logical_map(cpu) == 1) set_c0_brcm_cmt_ctrl(0x01); } else if (cpu_is_bmips5000()) { if (cpu & 0x01) it works just nicely on BMIPS4380. I plan on doing some testing on BMIPS5000 later this week. Thanks! -- Florian