mirror of
https://github.com/torvalds/linux.git
synced 2024-12-27 13:22:23 +00:00
9a5a110eb9
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>
36 lines
1.1 KiB
Makefile
36 lines
1.1 KiB
Makefile
#
|
|
# Copyright (C) 2012-2014 Broadcom Corporation
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU General Public License as
|
|
# published by the Free Software Foundation version 2.
|
|
#
|
|
# This program is distributed "as is" WITHOUT ANY WARRANTY of any
|
|
# kind, whether express or implied; without even the implied warranty
|
|
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
|
|
# BCM281XX
|
|
obj-$(CONFIG_ARCH_BCM_281XX) += board_bcm281xx.o
|
|
|
|
# BCM21664
|
|
obj-$(CONFIG_ARCH_BCM_21664) += board_bcm21664.o
|
|
|
|
# BCM281XX and BCM21664 SMP support
|
|
obj-$(CONFIG_ARCH_BCM_MOBILE_SMP) += kona_smp.o
|
|
|
|
# BCM281XX and BCM21664 L2 cache control
|
|
obj-$(CONFIG_ARCH_BCM_MOBILE_L2_CACHE) += kona_l2_cache.o
|
|
|
|
# Support for secure monitor traps
|
|
obj-$(CONFIG_ARCH_BCM_MOBILE_SMC) += bcm_kona_smc.o
|
|
ifeq ($(call as-instr,.arch_extension sec,as_has_sec),as_has_sec)
|
|
CFLAGS_bcm_kona_smc.o += -Wa,-march=armv7-a+sec -DREQUIRES_SEC
|
|
endif
|
|
|
|
# BCM2835
|
|
obj-$(CONFIG_ARCH_BCM2835) += board_bcm2835.o
|
|
|
|
# BCM5301X
|
|
obj-$(CONFIG_ARCH_BCM_5301X) += bcm_5301x.o
|