aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-bcm
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2014-02-03 18:01:43 -0500
committerMatt Porter <mporter@linaro.org>2014-03-06 00:36:02 -0500
commit5b293ebe757213993ae93b6cbbf5e1d09b75ac2f (patch)
tree62c4d034ce98e7fb11957693885307260a009fa0 /arch/arm/mach-bcm
parentc43bad6f7646f5f1ef27363afafcad4e264f31ab (diff)
ARM: BCM5301X: initial support for the BCM5301X/BCM470X SoCs with ARM CPU
This patch adds support for the BCM5301X/BCM470X SoCs with an ARM CPUs. Currently just booting to a shell is working and nothing else, no Ethernet, wifi, flash, ... I have some pending patches to make Ethernet work for this device. Mostly device tree support for bcma is missing. This SoC is used in small office and home router with Broadcom SoCs it's internal name is Northstar. This code should support the BCM4707, BCM4708, BCM4709, BCM53010, BCM53011 and BCM53012 SoC. It uses one or two ARM Cortex A9 Cores, some highlights are 2 PCIe 2.0 controllers, 4 Gigabit Ethernet MACs and a USB 3.0 host controller. This SoC uses a dual core CPU, but this is currently not implemented. More information about this SoC can be found here: http://www.anandtech.com/show/5925/broadcom-announces-bcm4708x-and-bcm5301x-socs-for-80211ac-routers Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Acked-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Christian Daudt <bcm@fixthebug.org> Signed-off-by: Matt Porter <mporter@linaro.org>
Diffstat (limited to 'arch/arm/mach-bcm')
-rw-r--r--arch/arm/mach-bcm/Kconfig26
-rw-r--r--arch/arm/mach-bcm/Makefile1
-rw-r--r--arch/arm/mach-bcm/bcm_5301x.c28
3 files changed, 55 insertions, 0 deletions
diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
index 8dd5fbf2d0ed..f2a2fb9909a1 100644
--- a/arch/arm/mach-bcm/Kconfig
+++ b/arch/arm/mach-bcm/Kconfig
@@ -31,6 +31,32 @@ config ARCH_BCM_MOBILE
31 BCM11130, BCM11140, BCM11351, BCM28145 and 31 BCM11130, BCM11140, BCM11351, BCM28145 and
32 BCM28155 variants. 32 BCM28155 variants.
33 33
34config ARCH_BCM_5301X
35 bool "Broadcom BCM470X / BCM5301X ARM SoC" if ARCH_MULTI_V7
36 depends on MMU
37 select ARM_GIC
38 select CACHE_L2X0
39 select HAVE_ARM_SCU if SMP
40 select HAVE_ARM_TWD if SMP
41 select HAVE_SMP
42 select COMMON_CLK
43 select GENERIC_CLOCKEVENTS
44 select ARM_GLOBAL_TIMER
45 select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
46 select MIGHT_HAVE_PCI
47 help
48 Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores.
49
50 This is a network SoC line mostly used in home routers and
51 wifi access points, it's internal name is Northstar.
52 This inclused the following SoC: BCM53010, BCM53011, BCM53012,
53 BCM53014, BCM53015, BCM53016, BCM53017, BCM53018, BCM4707,
54 BCM4708 and BCM4709.
55
56 Do not confuse this with the BCM4760 which is a totally
57 different SoC or with the older BCM47XX and BCM53XX based
58 network SoC using a MIPS CPU, they are supported by arch/mips/bcm47xx
59
34endmenu 60endmenu
35 61
36endif 62endif
diff --git a/arch/arm/mach-bcm/Makefile b/arch/arm/mach-bcm/Makefile
index c2ccd5a0f772..01649132c9f2 100644
--- a/arch/arm/mach-bcm/Makefile
+++ b/arch/arm/mach-bcm/Makefile
@@ -13,3 +13,4 @@
13obj-$(CONFIG_ARCH_BCM_MOBILE) := board_bcm281xx.o bcm_kona_smc.o bcm_kona_smc_asm.o kona.o 13obj-$(CONFIG_ARCH_BCM_MOBILE) := board_bcm281xx.o bcm_kona_smc.o bcm_kona_smc_asm.o kona.o
14plus_sec := $(call as-instr,.arch_extension sec,+sec) 14plus_sec := $(call as-instr,.arch_extension sec,+sec)
15AFLAGS_bcm_kona_smc_asm.o :=-Wa,-march=armv7-a$(plus_sec) 15AFLAGS_bcm_kona_smc_asm.o :=-Wa,-march=armv7-a$(plus_sec)
16obj-$(CONFIG_ARCH_BCM_5301X) += bcm_5301x.o
diff --git a/arch/arm/mach-bcm/bcm_5301x.c b/arch/arm/mach-bcm/bcm_5301x.c
new file mode 100644
index 000000000000..ef9740a20883
--- /dev/null
+++ b/arch/arm/mach-bcm/bcm_5301x.c
@@ -0,0 +1,28 @@
1/*
2 * Broadcom BCM470X / BCM5301X ARM platform code.
3 *
4 * Copyright 2013 Hauke Mehrtens <hauke@hauke-m.de>
5 *
6 * Licensed under the GNU/GPL. See COPYING for details.
7 */
8#include <linux/of_platform.h>
9#include <asm/hardware/cache-l2x0.h>
10
11#include <asm/mach/arch.h>
12
13
14static void __init bcm5301x_dt_init(void)
15{
16 l2x0_of_init(0, ~0UL);
17 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
18}
19
20static const char __initconst *bcm5301x_dt_compat[] = {
21 "brcm,bcm4708",
22 NULL,
23};
24
25DT_MACHINE_START(BCM5301X, "BCM5301X")
26 .init_machine = bcm5301x_dt_init,
27 .dt_compat = bcm5301x_dt_compat,
28MACHINE_END