38 lines
1.5 KiB
Diff
38 lines
1.5 KiB
Diff
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)
|