aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx/patches-3.10/058-MIPS-BMIPS-fix-slave-CPU-booting-when-physical-CPU-i.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm63xx/patches-3.10/058-MIPS-BMIPS-fix-slave-CPU-booting-when-physical-CPU-i.patch')
-rw-r--r--target/linux/brcm63xx/patches-3.10/058-MIPS-BMIPS-fix-slave-CPU-booting-when-physical-CPU-i.patch58
1 files changed, 0 insertions, 58 deletions
diff --git a/target/linux/brcm63xx/patches-3.10/058-MIPS-BMIPS-fix-slave-CPU-booting-when-physical-CPU-i.patch b/target/linux/brcm63xx/patches-3.10/058-MIPS-BMIPS-fix-slave-CPU-booting-when-physical-CPU-i.patch
deleted file mode 100644
index 3df6e870c2..0000000000
--- a/target/linux/brcm63xx/patches-3.10/058-MIPS-BMIPS-fix-slave-CPU-booting-when-physical-CPU-i.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From ff5fadaff39180dc0b652753b5614a564711be29 Mon Sep 17 00:00:00 2001
-From: Florian Fainelli <florian@openwrt.org>
-Date: Wed, 24 Jul 2013 17:12:11 +0100
-Subject: [PATCH] MIPS: BMIPS: fix slave CPU booting when physical CPU is not 0
-
-The current BMIPS SMP code assumes that the slave CPU is physical and
-logical CPU 1, but on some systems such as BCM3368, the slave CPU is
-physical CPU0. Fix the code to read the physical CPU (thread ID) we are
-running this code on, and adjust the relocation vector address based on
-it. This allows bringing up the second CPU on BCM3368 for instance.
-
-Signed-off-by: Florian Fainelli <florian@openwrt.org>
-Cc: linux-mips@linux-mips.org
-Cc: cernekee@gmail.com
-Cc: jogo@openwrt.org
-Cc: blogic@openwrt.org
-Patchwork: https://patchwork.linux-mips.org/patch/5621/
-Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
----
- arch/mips/kernel/bmips_vec.S | 6 +++++-
- arch/mips/kernel/smp-bmips.c | 10 ++++++++--
- 2 files changed, 13 insertions(+), 3 deletions(-)
-
---- a/arch/mips/kernel/bmips_vec.S
-+++ b/arch/mips/kernel/bmips_vec.S
-@@ -56,7 +56,11 @@ LEAF(bmips_smp_movevec)
- /* set up CPU1 CBR; move BASE to 0xa000_0000 */
- li k0, 0xff400000
- mtc0 k0, $22, 6
-- li k1, CKSEG1 | BMIPS_RELO_VECTOR_CONTROL_1
-+ /* set up relocation vector address based on thread ID */
-+ mfc0 k1, $22, 3
-+ srl k1, 16
-+ andi k1, 0x8000
-+ or k1, CKSEG1 | BMIPS_RELO_VECTOR_CONTROL_0
- or k0, k1
- li k1, 0xa0080000
- sw k1, 0(k0)
---- a/arch/mips/kernel/smp-bmips.c
-+++ b/arch/mips/kernel/smp-bmips.c
-@@ -196,9 +196,15 @@ static void bmips_init_secondary(void)
- #if defined(CONFIG_CPU_BMIPS4350) || defined(CONFIG_CPU_BMIPS4380)
- void __iomem *cbr = BMIPS_GET_CBR();
- unsigned long old_vec;
-+ unsigned long relo_vector;
-+ int boot_cpu;
-
-- old_vec = __raw_readl(cbr + BMIPS_RELO_VECTOR_CONTROL_1);
-- __raw_writel(old_vec & ~0x20000000, cbr + BMIPS_RELO_VECTOR_CONTROL_1);
-+ boot_cpu = !!(read_c0_brcm_cmt_local() & (1 << 31));
-+ relo_vector = boot_cpu ? BMIPS_RELO_VECTOR_CONTROL_0 :
-+ BMIPS_RELO_VECTOR_CONTROL_1;
-+
-+ old_vec = __raw_readl(cbr + relo_vector);
-+ __raw_writel(old_vec & ~0x20000000, cbr + relo_vector);
-
- clear_c0_cause(smp_processor_id() ? C_SW1 : C_SW0);
- #elif defined(CONFIG_CPU_BMIPS5000)