aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm53xx/patches-3.14/040-ARM-BCM5301X-initial-support-for-the-BCM5301X-BCM470.patch
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@openwrt.org>2014-04-23 21:53:50 +0000
committerHauke Mehrtens <hauke@openwrt.org>2014-04-23 21:53:50 +0000
commit311a83d87982163a818607b64a3f9e225cb3e13d (patch)
tree3c2ded9a111b062b5b06d632a7052bbe1ca4efb7 /target/linux/bcm53xx/patches-3.14/040-ARM-BCM5301X-initial-support-for-the-BCM5301X-BCM470.patch
parent83cb143edddc0f12479dd1fb07b2a456c5b6f219 (diff)
downloadmaster-187ad058-311a83d87982163a818607b64a3f9e225cb3e13d.tar.gz
master-187ad058-311a83d87982163a818607b64a3f9e225cb3e13d.tar.bz2
master-187ad058-311a83d87982163a818607b64a3f9e225cb3e13d.zip
bcm53xx: add initial support for kernel 3.14
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40564 3c298f89-4303-0410-b956-a3cf2f4a3e73
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.patch148
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