aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-bcm/Kconfig
diff options
context:
space:
mode:
authorAlex Elder <elder@linaro.org>2014-06-30 18:15:37 -0400
committerMatt Porter <mporter@linaro.org>2014-07-28 09:42:24 -0400
commit9a5a110eb9ba137840cacb06cead746a6a238b09 (patch)
tree876556b77e083f89d1d9bae7e00b3e30a52c49b0 /arch/arm/mach-bcm/Kconfig
parent9a3c4145af32125c5ee39c0272662b47307a8323 (diff)
ARM: add SMP support for Broadcom mobile SoCs
This patch adds SMP support for BCM281XX and BCM21664 family SoCs. This feature is controlled with a distinct config option such that an SMP-enabled multi-v7 binary can be configured to run these SoCs in uniprocessor mode. Since this SMP functionality is used for multiple Broadcom mobile chip families the config option is called ARCH_BCM_MOBILE_SMP (for lack of a better name). On SoCs of this type, the secondary core is not held in reset on power-on. Instead it loops in a ROM-based holding pen. To release it, one must write into a special register a jump address whose low-order bits have been replaced with a secondary core's id, then trigger an event with SEV. On receipt of an event, the ROM code will examine the register's contents, and if the low-order bits match its cpu id, it will clear them and write the value back to the register just prior to jumping to the address specified. The location of the special register is defined in the device tree using a "secondary-boot-reg" property in a node whose "enable-method" matches. Derived from code originally provided by Ray Jui <rjui@broadcom.com> Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: Matt Porter <mporter@linaro.org>
Diffstat (limited to 'arch/arm/mach-bcm/Kconfig')
-rw-r--r--arch/arm/mach-bcm/Kconfig18
1 files changed, 15 insertions, 3 deletions
diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
index 41c839167e87..6bafa2dbaece 100644
--- a/arch/arm/mach-bcm/Kconfig
+++ b/arch/arm/mach-bcm/Kconfig
@@ -9,7 +9,6 @@ config ARCH_BCM_MOBILE
9 bool "Broadcom Mobile SoC Support" if ARCH_MULTI_V7 9 bool "Broadcom Mobile SoC Support" if ARCH_MULTI_V7
10 select ARCH_REQUIRE_GPIOLIB 10 select ARCH_REQUIRE_GPIOLIB
11 select ARM_ERRATA_754322 11 select ARM_ERRATA_754322
12 select ARM_ERRATA_764369 if SMP
13 select ARM_ERRATA_775420 12 select ARM_ERRATA_775420
14 select ARM_GIC 13 select ARM_GIC
15 select GPIO_BCM_KONA 14 select GPIO_BCM_KONA
@@ -26,16 +25,18 @@ menu "Broadcom Mobile SoC Selection"
26config ARCH_BCM_281XX 25config ARCH_BCM_281XX
27 bool "Broadcom BCM281XX SoC family" 26 bool "Broadcom BCM281XX SoC family"
28 default y 27 default y
28 select HAVE_SMP
29 help 29 help
30 Enable support for the the BCM281XX family, which includes 30 Enable support for the BCM281XX family, which includes
31 BCM11130, BCM11140, BCM11351, BCM28145 and BCM28155 31 BCM11130, BCM11140, BCM11351, BCM28145 and BCM28155
32 variants. 32 variants.
33 33
34config ARCH_BCM_21664 34config ARCH_BCM_21664
35 bool "Broadcom BCM21664 SoC family" 35 bool "Broadcom BCM21664 SoC family"
36 default y 36 default y
37 select HAVE_SMP
37 help 38 help
38 Enable support for the the BCM21664 family, which includes 39 Enable support for the BCM21664 family, which includes
39 BCM21663 and BCM21664 variants. 40 BCM21663 and BCM21664 variants.
40 41
41config ARCH_BCM_MOBILE_L2_CACHE 42config ARCH_BCM_MOBILE_L2_CACHE
@@ -49,6 +50,17 @@ config ARCH_BCM_MOBILE_SMC
49 bool 50 bool
50 depends on ARCH_BCM_281XX || ARCH_BCM_21664 51 depends on ARCH_BCM_281XX || ARCH_BCM_21664
51 52
53config ARCH_BCM_MOBILE_SMP
54 bool "Broadcom mobile SoC SMP support"
55 depends on (ARCH_BCM_281XX || ARCH_BCM_21664) && SMP
56 default y
57 select HAVE_ARM_SCU
58 select ARM_ERRATA_764369
59 help
60 SMP support for the BCM281XX and BCM21664 SoC families.
61 Provided as an option so SMP support for SoCs of this type
62 can be disabled for an SMP-enabled kernel.
63
52endmenu 64endmenu
53 65
54endif 66endif