diff options
Diffstat (limited to 'target/linux/brcm63xx/patches-3.10/056-MIPS-BMIPS-Fix-thinko-to-release-slave-TP-from-reset.patch')
-rw-r--r-- | target/linux/brcm63xx/patches-3.10/056-MIPS-BMIPS-Fix-thinko-to-release-slave-TP-from-reset.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/target/linux/brcm63xx/patches-3.10/056-MIPS-BMIPS-Fix-thinko-to-release-slave-TP-from-reset.patch b/target/linux/brcm63xx/patches-3.10/056-MIPS-BMIPS-Fix-thinko-to-release-slave-TP-from-reset.patch new file mode 100644 index 0000000..5865829 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.10/056-MIPS-BMIPS-Fix-thinko-to-release-slave-TP-from-reset.patch @@ -0,0 +1,37 @@ +From 976f39b139cdd06a88a5aadd8202b0c30cac9cda Mon Sep 17 00:00:00 2001 +From: Florian Fainelli <florian@openwrt.org> +Date: Wed, 17 Jul 2013 17:56:31 +0000 +Subject: [PATCH] MIPS: BMIPS: Fix thinko to release slave TP from reset + +Commit 4df715aa ["MIPS: BMIPS: support booting from physical CPU other +than 0"] introduced a thinko which will prevents slave CPUs from being +released from reset on systems where we boot from TP0. The problem is +that we are checking whether the slave CPU logical CPU map is 0, which +is never true for systems booting from TP0, so we do not release the +slave TP from reset and we are just stuck. Fix this by properly checking +that the CPU we intend to boot really is the physical slave CPU (logical +and physical value being 1). + +Signed-off-by: Florian Fainelli <florian@openwrt.org> +Cc: linux-mips@linux-mips.org +Cc: blogic@openwrt.org +Cc: jogo@openwrt.org +Cc: cernekee@gmail.com +Cc: Florian Fainelli <florian@openwrt.org> +Patchwork: https://patchwork.linux-mips.org/patch/5598/ +Signed-off-by: Ralf Baechle <ralf@linux-mips.org> +--- + arch/mips/kernel/smp-bmips.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/mips/kernel/smp-bmips.c ++++ b/arch/mips/kernel/smp-bmips.c +@@ -173,7 +173,7 @@ static void bmips_boot_secondary(int cpu + else { + #if defined(CONFIG_CPU_BMIPS4350) || defined(CONFIG_CPU_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); + #elif defined(CONFIG_CPU_BMIPS5000) + if (cpu & 0x01) |