diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2014-04-23 21:53:50 +0000 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2014-04-23 21:53:50 +0000 |
commit | d89aa2c3d69c564d49df0348059af9e041b3ad03 (patch) | |
tree | 01b9b8544c2495e4f731b6f2e7683467c6ac7c79 /target/linux/bcm53xx/patches-3.14/040-ARM-BCM5301X-initial-support-for-the-BCM5301X-BCM470.patch | |
parent | 4a7a0d25368488db2a28f6fbe7c2c9cf8cb33006 (diff) | |
download | master-31e0f0ae-d89aa2c3d69c564d49df0348059af9e041b3ad03.tar.gz master-31e0f0ae-d89aa2c3d69c564d49df0348059af9e041b3ad03.tar.bz2 master-31e0f0ae-d89aa2c3d69c564d49df0348059af9e041b3ad03.zip |
bcm53xx: add initial support for kernel 3.14
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 40564
Diffstat (limited to 'target/linux/bcm53xx/patches-3.14/040-ARM-BCM5301X-initial-support-for-the-BCM5301X-BCM470.patch')
-rw-r--r-- | target/linux/bcm53xx/patches-3.14/040-ARM-BCM5301X-initial-support-for-the-BCM5301X-BCM470.patch | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/target/linux/bcm53xx/patches-3.14/040-ARM-BCM5301X-initial-support-for-the-BCM5301X-BCM470.patch b/target/linux/bcm53xx/patches-3.14/040-ARM-BCM5301X-initial-support-for-the-BCM5301X-BCM470.patch new file mode 100644 index 0000000000..c12d8df0b7 --- /dev/null +++ b/target/linux/bcm53xx/patches-3.14/040-ARM-BCM5301X-initial-support-for-the-BCM5301X-BCM470.patch @@ -0,0 +1,148 @@ +From 5b293ebe757213993ae93b6cbbf5e1d09b75ac2f Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens <hauke@hauke-m.de> +Date: Tue, 4 Feb 2014 00:01:43 +0100 +Subject: [PATCH 1/3] 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> +--- + Documentation/devicetree/bindings/arm/bcm4708.txt | 8 ++++++ + MAINTAINERS | 8 ++++++ + arch/arm/configs/multi_v7_defconfig | 1 + + arch/arm/mach-bcm/Kconfig | 26 +++++++++++++++++++ + arch/arm/mach-bcm/Makefile | 1 + + arch/arm/mach-bcm/bcm_5301x.c | 28 +++++++++++++++++++++ + 6 files changed, 72 insertions(+) + create mode 100644 Documentation/devicetree/bindings/arm/bcm4708.txt + create mode 100644 arch/arm/mach-bcm/bcm_5301x.c + +--- /dev/null ++++ b/Documentation/devicetree/bindings/arm/bcm4708.txt +@@ -0,0 +1,8 @@ ++Broadcom BCM4708 device tree bindings ++------------------------------------------- ++ ++Boards with the BCM4708 SoC shall have the following properties: ++ ++Required root node property: ++ ++compatible = "brcm,bcm4708"; +--- a/MAINTAINERS ++++ b/MAINTAINERS +@@ -1883,6 +1883,14 @@ F: arch/arm/boot/dts/bcm2835* + F: arch/arm/configs/bcm2835_defconfig + F: drivers/*/*bcm2835* + ++BROADCOM BCM5301X ARM ARCHICTURE ++M: Hauke Mehrtens <hauke@hauke-m.de> ++L: linux-arm-kernel@lists.infradead.org ++S: Maintained ++F: arch/arm/mach-bcm/bcm_5301x.c ++F: arch/arm/boot/dts/bcm5301x.dtsi ++F: arch/arm/boot/dts/bcm470* ++ + BROADCOM TG3 GIGABIT ETHERNET DRIVER + M: Nithin Nayak Sujir <nsujir@broadcom.com> + M: Michael Chan <mchan@broadcom.com> +--- a/arch/arm/configs/multi_v7_defconfig ++++ b/arch/arm/configs/multi_v7_defconfig +@@ -11,6 +11,7 @@ CONFIG_ARCH_MVEBU=y + CONFIG_MACH_ARMADA_370=y + CONFIG_MACH_ARMADA_XP=y + CONFIG_ARCH_BCM=y ++CONFIG_ARCH_BCM_5301X=y + CONFIG_ARCH_BCM_MOBILE=y + CONFIG_ARCH_BERLIN=y + CONFIG_MACH_BERLIN_BG2=y +--- a/arch/arm/mach-bcm/Kconfig ++++ b/arch/arm/mach-bcm/Kconfig +@@ -32,6 +32,32 @@ config ARCH_BCM_MOBILE + BCM11130, BCM11140, BCM11351, BCM28145 and + BCM28155 variants. + ++config ARCH_BCM_5301X ++ bool "Broadcom BCM470X / BCM5301X ARM SoC" if ARCH_MULTI_V7 ++ depends on MMU ++ select ARM_GIC ++ select CACHE_L2X0 ++ select HAVE_ARM_SCU if SMP ++ select HAVE_ARM_TWD if SMP ++ select HAVE_SMP ++ select COMMON_CLK ++ select GENERIC_CLOCKEVENTS ++ select ARM_GLOBAL_TIMER ++ select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK ++ select MIGHT_HAVE_PCI ++ help ++ Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores. ++ ++ This is a network SoC line mostly used in home routers and ++ wifi access points, it's internal name is Northstar. ++ This inclused the following SoC: BCM53010, BCM53011, BCM53012, ++ BCM53014, BCM53015, BCM53016, BCM53017, BCM53018, BCM4707, ++ BCM4708 and BCM4709. ++ ++ Do not confuse this with the BCM4760 which is a totally ++ different SoC or with the older BCM47XX and BCM53XX based ++ network SoC using a MIPS CPU, they are supported by arch/mips/bcm47xx ++ + endmenu + + endif +--- a/arch/arm/mach-bcm/Makefile ++++ b/arch/arm/mach-bcm/Makefile +@@ -13,3 +13,4 @@ + obj-$(CONFIG_ARCH_BCM_MOBILE) := board_bcm281xx.o bcm_kona_smc.o bcm_kona_smc_asm.o kona.o + plus_sec := $(call as-instr,.arch_extension sec,+sec) + AFLAGS_bcm_kona_smc_asm.o :=-Wa,-march=armv7-a$(plus_sec) ++obj-$(CONFIG_ARCH_BCM_5301X) += bcm_5301x.o +--- /dev/null ++++ b/arch/arm/mach-bcm/bcm_5301x.c +@@ -0,0 +1,28 @@ ++/* ++ * Broadcom BCM470X / BCM5301X ARM platform code. ++ * ++ * Copyright 2013 Hauke Mehrtens <hauke@hauke-m.de> ++ * ++ * Licensed under the GNU/GPL. See COPYING for details. ++ */ ++#include <linux/of_platform.h> ++#include <asm/hardware/cache-l2x0.h> ++ ++#include <asm/mach/arch.h> ++ ++ ++static void __init bcm5301x_dt_init(void) ++{ ++ l2x0_of_init(0, ~0UL); ++ of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); ++} ++ ++static const char __initconst *bcm5301x_dt_compat[] = { ++ "brcm,bcm4708", ++ NULL, ++}; ++ ++DT_MACHINE_START(BCM5301X, "BCM5301X") ++ .init_machine = bcm5301x_dt_init, ++ .dt_compat = bcm5301x_dt_compat, ++MACHINE_END |