diff options
Diffstat (limited to 'target/linux/bcm53xx/patches-3.10/0008-bcm53xx-initial-support-for-the-BCM5301-BCM470X-SoC-.patch')
-rw-r--r-- | target/linux/bcm53xx/patches-3.10/0008-bcm53xx-initial-support-for-the-BCM5301-BCM470X-SoC-.patch | 308 |
1 files changed, 0 insertions, 308 deletions
diff --git a/target/linux/bcm53xx/patches-3.10/0008-bcm53xx-initial-support-for-the-BCM5301-BCM470X-SoC-.patch b/target/linux/bcm53xx/patches-3.10/0008-bcm53xx-initial-support-for-the-BCM5301-BCM470X-SoC-.patch deleted file mode 100644 index a94220b060..0000000000 --- a/target/linux/bcm53xx/patches-3.10/0008-bcm53xx-initial-support-for-the-BCM5301-BCM470X-SoC-.patch +++ /dev/null @@ -1,308 +0,0 @@ -From 6c55b7f2fe06eb01f4ca6dad35d54c6e2ecbff25 Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens <hauke@hauke-m.de> -Date: Sat, 29 Jun 2013 22:06:43 +0200 -Subject: [PATCH 08/17] bcm53xx: initial support for the BCM5301/BCM470X SoC - with ARM CPU - -This patch adds support for the BCM5301/BCM470X SoCs with an ARM CPU. -Currently just booting to a shell is working and nothing else, no -Ethernet, wifi, flash, ... - -Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> ---- - arch/arm/Kconfig | 2 + - arch/arm/Kconfig.debug | 5 ++ - arch/arm/Makefile | 1 + - arch/arm/boot/dts/Makefile | 1 + - arch/arm/boot/dts/bcm5301-netgear-r6250.dts | 20 +++++++ - arch/arm/boot/dts/bcm5301.dtsi | 83 +++++++++++++++++++++++++++ - arch/arm/include/debug/bcm53xx.S | 19 ++++++ - arch/arm/mach-bcm53xx/Kconfig | 15 +++++ - arch/arm/mach-bcm53xx/Makefile | 1 + - arch/arm/mach-bcm53xx/bcm53xx.c | 69 ++++++++++++++++++++++ - 10 files changed, 216 insertions(+) - create mode 100644 arch/arm/boot/dts/bcm5301-netgear-r6250.dts - create mode 100644 arch/arm/boot/dts/bcm5301.dtsi - create mode 100644 arch/arm/include/debug/bcm53xx.S - create mode 100644 arch/arm/mach-bcm53xx/Kconfig - create mode 100644 arch/arm/mach-bcm53xx/Makefile - create mode 100644 arch/arm/mach-bcm53xx/bcm53xx.c - ---- a/arch/arm/Kconfig -+++ b/arch/arm/Kconfig -@@ -922,6 +922,8 @@ source "arch/arm/mach-bcm/Kconfig" - - source "arch/arm/mach-bcm2835/Kconfig" - -+source "arch/arm/mach-bcm53xx/Kconfig" -+ - source "arch/arm/mach-clps711x/Kconfig" - - source "arch/arm/mach-cns3xxx/Kconfig" ---- a/arch/arm/Kconfig.debug -+++ b/arch/arm/Kconfig.debug -@@ -93,6 +93,10 @@ choice - bool "Kernel low-level debugging on BCM2835 PL011 UART" - depends on ARCH_BCM2835 - -+ config DEBUG_BCM53XX -+ bool "Kernel low-level debugging on BCM53XX UART1" -+ depends on ARCH_BCM53XX -+ - config DEBUG_CLPS711X_UART1 - bool "Kernel low-level debugging messages via UART1" - depends on ARCH_CLPS711X -@@ -620,6 +624,7 @@ endchoice - config DEBUG_LL_INCLUDE - string - default "debug/bcm2835.S" if DEBUG_BCM2835 -+ default "debug/bcm53xx.S" if DEBUG_BCM53XX - default "debug/cns3xxx.S" if DEBUG_CNS3XXX - default "debug/exynos.S" if DEBUG_EXYNOS_UART - default "debug/highbank.S" if DEBUG_HIGHBANK_UART ---- a/arch/arm/Makefile -+++ b/arch/arm/Makefile -@@ -145,6 +145,7 @@ textofs-$(CONFIG_ARCH_MSM8960) := 0x0020 - machine-$(CONFIG_ARCH_AT91) += at91 - machine-$(CONFIG_ARCH_BCM) += bcm - machine-$(CONFIG_ARCH_BCM2835) += bcm2835 -+machine-$(CONFIG_ARCH_BCM53XX) += bcm53xx - machine-$(CONFIG_ARCH_CLPS711X) += clps711x - machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx - machine-$(CONFIG_ARCH_DAVINCI) += davinci ---- a/arch/arm/boot/dts/Makefile -+++ b/arch/arm/boot/dts/Makefile -@@ -209,6 +209,7 @@ dtb-$(CONFIG_ARCH_VT8500) += vt8500-bv07 - wm8650-mid.dtb \ - wm8850-w70v2.dtb - dtb-$(CONFIG_ARCH_ZYNQ) += zynq-zc702.dtb -+dtb-$(CONFIG_ARCH_BCM53XX) += bcm5301-netgear-r6250.dtb - - targets += dtbs - targets += $(dtb-y) ---- /dev/null -+++ b/arch/arm/boot/dts/bcm5301-netgear-r6250.dts -@@ -0,0 +1,20 @@ -+/* -+ * Broadcom BCM47XX / BCM53XX arm platform code. -+ * -+ * Copyright 2013 Hauke Mehrtens <hauke@hauke-m.de> -+ * -+ * Licensed under the GNU/GPL. See COPYING for details. -+ */ -+ -+/dts-v1/; -+ -+/include/ "bcm5301.dtsi" -+ -+/ { -+ model = "Netgear R6250 V1 (BCM4708)"; -+ compatible = "netgear,r6250v1", "brcm,bcm5301"; -+ -+ memory { -+ reg = <0x00000000 0x08000000>; -+ }; -+}; ---- /dev/null -+++ b/arch/arm/boot/dts/bcm5301.dtsi -@@ -0,0 +1,83 @@ -+/* -+ * Broadcom BCM47XX / BCM53XX ARM platform code. -+ * -+ * Copyright 2013 Hauke Mehrtens <hauke@hauke-m.de> -+ * -+ * Licensed under the GNU/GPL. See COPYING for details. -+ */ -+ -+/include/ "skeleton.dtsi" -+ -+/ { -+ compatible = "brcm,bcm5301"; -+ model = "BCM5301/BCM4707/BCM4708/BCM4709 SoC"; -+ interrupt-parent = <&gic>; -+ -+ chosen { -+ bootargs = "console=ttyS0,115200 earlyprintk debug vmalloc=64M"; -+ }; -+ -+ cpus { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ cpu@0 { -+ device_type = "cpu"; -+ compatible = "arm,cortex-a9"; -+ reg = <0>; -+ }; -+ cpu@1 { -+ device_type = "cpu"; -+ compatible = "arm,cortex-a9"; -+ reg = <1>; -+ }; -+ }; -+ -+ clocks { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ clk_periph: periph { -+ compatible = "fixed-clock"; -+ #clock-cells = <0>; -+ clock-frequency = <400000000>; -+ }; -+ }; -+ -+ uart@18000300 { -+ compatible = "ns16550"; -+ reg = <0x18000300 0x100>; -+ interrupts = <0 85 4>; -+ clock-frequency = <100000000>; -+ }; -+ -+ uart@18000400 { -+ compatible = "ns16550"; -+ reg = <0x18000400 0x100>; -+ interrupts = <0 85 4>; -+ clock-frequency = <100000000>; -+ }; -+ -+ gic: interrupt-controller@19021000 { -+ compatible = "arm,cortex-a9-gic"; -+ #interrupt-cells = <3>; -+ #address-cells = <0>; -+ interrupt-controller; -+ reg = <0x19021000 0x1000>, -+ <0x19020100 0x100>; -+ }; -+ -+ timer@19020200 { -+ compatible = "arm,cortex-a9-global-timer"; -+ reg = <0x19020200 0x100>; -+ interrupts = <1 11 0xf04>; -+ clocks = <&clk_periph>; -+ #clock-cells = <0>; -+ }; -+ -+ local-timer@19020200 { -+ compatible = "arm,cortex-a9-twd-timer"; -+ reg = <0x19020600 0x100>; -+ interrupts = <1 13 0xf04>; -+ }; -+}; ---- /dev/null -+++ b/arch/arm/include/debug/bcm53xx.S -@@ -0,0 +1,19 @@ -+/* -+ * Macros used for EARLY_PRINTK, in low-level UART debug console -+ * -+ * Copyright 2013 Hauke Mehrtens <hauke@hauke-m.de> -+ * -+ * Licensed under the GNU/GPL. See COPYING for details. -+ */ -+ -+#define BCM53XX_UART1_PHYS 0x18000300 -+#define BCM53XX_UART1_VIRT 0xf1000300 -+#define BCM53XX_UART1_SH 0 -+ -+ .macro addruart, rp, rv, tmp -+ ldr \rp, =BCM53XX_UART1_PHYS @ MMU off, Physical -+ ldr \rv, =BCM53XX_UART1_VIRT @ MMU on, Virtual -+ .endm -+ -+#define UART_SHIFT BCM53XX_UART1_SH -+#include <asm/hardware/debug-8250.S> ---- /dev/null -+++ b/arch/arm/mach-bcm53xx/Kconfig -@@ -0,0 +1,16 @@ -+config ARCH_BCM53XX -+ bool "Broadcom BCM47XX / BCM53XX ARM SoC" -+ select CPU_V7 -+ select ARM_GIC -+ select HAVE_ARM_SCU if SMP -+ select HAVE_ARM_TWD if LOCAL_TIMERS -+ select HAVE_SMP -+ select HAVE_CLK -+ select LOCAL_TIMERS if SMP -+ select GENERIC_TIME -+ select GENERIC_CLOCKEVENTS_BUILD -+ select GENERIC_CLOCKEVENTS -+ select ARM_GLOBAL_TIMER -+ select MIGHT_HAVE_PCI -+ help -+ Support for Broadcom BCM47XX and BCM53XX SoCs with ARM CPU cores. ---- /dev/null -+++ b/arch/arm/mach-bcm53xx/Makefile -@@ -0,0 +1 @@ -+obj-y += bcm53xx.o ---- /dev/null -+++ b/arch/arm/mach-bcm53xx/bcm53xx.c -@@ -0,0 +1,69 @@ -+/* -+ * Broadcom BCM47XX / BCM53XX ARM platform code. -+ * -+ * Copyright 2013 Hauke Mehrtens <hauke@hauke-m.de> -+ * -+ * Licensed under the GNU/GPL. See COPYING for details. -+ */ -+#include <linux/of_address.h> -+#include <linux/of_platform.h> -+#include <linux/irqchip.h> -+#include <linux/clocksource.h> -+#include <linux/clk-provider.h> -+ -+#include <asm/mach/arch.h> -+#include <asm/mach/map.h> -+#include <asm/smp_scu.h> -+#include <asm/signal.h> -+ -+static int bcm53xx_abort_handler(unsigned long addr, unsigned int fsr, -+ struct pt_regs *regs) -+{ -+ /* -+ * These happen for no good reason -+ * possibly left over from CFE -+ */ -+ pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n", -+ addr, fsr); -+ -+ /* Returning non-zero causes fault display and panic */ -+ return 0; -+} -+ -+static void bcm53xx_aborts_enable(void) -+{ -+ /* Install our hook */ -+ hook_fault_code(16 + 6, bcm53xx_abort_handler, SIGBUS, 0, -+ "imprecise external abort"); -+} -+ -+static void __init bcm53xx_timer_init(void) -+{ -+ of_clk_init(NULL); -+ clocksource_of_init(); -+} -+ -+void __init bcm53xx_map_io(void) -+{ -+ debug_ll_io_init(); -+ bcm53xx_aborts_enable(); -+} -+ -+static void __init bcm53xx_dt_init(void) -+{ -+ of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); -+} -+ -+static const char const *bcm53xx_dt_compat[] = { -+ "brcm,bcm5301", -+ "netgear,r6250v1", -+ NULL, -+}; -+ -+DT_MACHINE_START(BCM53XX, "BCM53XX") -+ .init_machine = bcm53xx_dt_init, -+ .map_io = bcm53xx_map_io, -+ .init_irq = irqchip_init, -+ .init_time = bcm53xx_timer_init, -+ .dt_compat = bcm53xx_dt_compat, -+MACHINE_END |