linux-mips
[Top] [All Lists]

[PATCH 0/3] MIPS: BCM63XX: add SMP support

To: linux-mips@linux-mips.org
Subject: [PATCH 0/3] MIPS: BCM63XX: add SMP support
From: Jonas Gorski <jogo@openwrt.org>
Date: Mon, 3 Jun 2013 17:39:32 +0200
Cc: Ralf Baechle <ralf@linux-mips.org>, John Crispin <blogic@openwrt.org>, Maxime Bizon <mbizon@freebox.fr>, Florian Fainelli <florian@openwrt.org>, Kevin Cernekee <cernekee@gmail.com>
List-archive: <http://www.linux-mips.org/archives/linux-mips/>
List-help: <mailto:ecartis@linux-mips.org?Subject=help>
List-id: linux-mips <linux-mips.eddie.linux-mips.org>
List-owner: <mailto:ralf@linux-mips.org>
List-post: <mailto:linux-mips@linux-mips.org>
List-software: Ecartis version 1.0.0
List-subscribe: <mailto:ecartis@linux-mips.org?subject=subscribe%20linux-mips>
List-unsubscribe: <mailto:ecartis@linux-mips.org?subject=unsubscribe%20linux-mips>
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
Most newer BCM63XX SoCs after BCM6358 use a BMIPS4350 CPU with SMP
support. This patchset allows BCM6368 and BCM6362 to boot a SMP kernel
(both tested, as well as (not yet upstreamed) BCM63268).

BCM6328 is skipped because the only SMP versions will be rejected by
current code (they are BCM6329, which is treated as a totally
unsupported chip).

BCM6358 is intentionally skipped because it shares a single TLB for
both cores/threads, which requires implementing locking for TLB accesses,
and ain't nobody got time for that.

The internal interrupt controller supports routing IRQs to both CPUs,
and support will be added in a later patchset. For now all hardware
interrupts will go to CPU0.

Totally unscientific OpenSSL benchmarking shows a nice ~90% speed
increase when enabling the second core.

No idea about the FIXME in 1/3, never had a problem with it so I left it
in place as to have it documented.

Jonas Gorski (1):
  MIPS: BCM63XX: select BMIPS4350 and default to 2 CPUs for supported
    SoCs

Kevin Cernekee (2):
  MIPS: BCM63XX: Add SMP support to prom.c
  MIPS: BCM63XX: Handle SW IRQs 0-1

 arch/mips/Kconfig        |    2 ++
 arch/mips/bcm63xx/irq.c  |    4 ++++
 arch/mips/bcm63xx/prom.c |   33 +++++++++++++++++++++++++++++++++
 3 files changed, 39 insertions(+)

-- 
1.7.10.4


<Prev in Thread] Current Thread [Next in Thread>