bcm53xx: add basic support for Netgear R7900
authorRafał Miłecki <zajec5@gmail.com>
Sat, 9 Apr 2016 09:59:21 +0000 (09:59 +0000)
committerRafał Miłecki <zajec5@gmail.com>
Sat, 9 Apr 2016 09:59:21 +0000 (09:59 +0000)
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 49122

target/linux/bcm53xx/base-files/etc/board.d/02_network
target/linux/bcm53xx/base-files/lib/upgrade/platform.sh
target/linux/bcm53xx/image/Makefile
target/linux/bcm53xx/patches-4.4/301-ARM-BCM5301X-Add-DT-for-Netgear-R7900.patch [new file with mode: 0644]
target/linux/bcm53xx/patches-4.4/306-ARM-BCM5301X-Add-DT-for-Netgear-R8500.patch
target/linux/bcm53xx/patches-4.4/331-ARM-BCM5301X-Specify-RAM-on-devices-by-including-HIG.patch
target/linux/bcm53xx/patches-4.4/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch

index f879e01..ea49f82 100755 (executable)
@@ -12,9 +12,8 @@ case "$board" in
 asus,rt-ac87u)
        ifname=eth1
        ;;
+netgear,r7900)
 netgear,r8000)
-       ifname=eth2
-       ;;
 netgear,r8500)
        ifname=eth2
        ;;
@@ -23,16 +22,11 @@ netgear,r8500)
        ;;
 esac
 
-# Workaround for devices using eth2
+# Workaround for devices using eth2 connected to (CPU) switch port 8
 case "$board" in
+netgear,r7900)
 netgear,r8000)
        ifname=eth0
-       ;;
-esac
-
-# Workaround for devices using CPU port 8 (connected to eth2)
-case "$board" in
-netgear,r8000)
        ucidef_add_switch "switch0" \
                "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5t@$ifname"
        board_config_flush
index 20d9e29..51ad041 100644 (file)
@@ -28,6 +28,7 @@ platform_expected_image() {
                "netgear,r6250v1")      echo "chk U12H245T00_NETGEAR"; return;;
                "netgear,r6300v2")      echo "chk U12H240T00_NETGEAR"; return;;
                "netgear,r7000")        echo "chk U12H270T00_NETGEAR"; return;;
+               "netgear,r7900")        echo "chk U12H315T30_NETGEAR"; return;;
                "netgear,r8000")        echo "chk U12H315T00_NETGEAR"; return;;
                "netgear,r8500")        echo "chk U12H334T00_NETGEAR"; return;;
        esac
index f6f0f5b..41281f9 100644 (file)
@@ -177,6 +177,7 @@ $(eval $(call AsusDevice,rt-n18u,RT-N18U))
 $(eval $(call DLinkDevice,dir-885l,wrgac42_dlink.2015_dir885l))
 $(eval $(call LinksysDevice,ea6300-v1))
 $(eval $(call NetgearDevice,r7000,U12H270T00_NETGEAR))
+$(eval $(call NetgearDevice,r7900,U12H315T30_NETGEAR))
 # $(eval $(call NetgearDevice,r8500,U12H334T00_NETGEAR))
 
 $(eval $(call BuildImage))
diff --git a/target/linux/bcm53xx/patches-4.4/301-ARM-BCM5301X-Add-DT-for-Netgear-R7900.patch b/target/linux/bcm53xx/patches-4.4/301-ARM-BCM5301X-Add-DT-for-Netgear-R7900.patch
new file mode 100644 (file)
index 0000000..c67d562
--- /dev/null
@@ -0,0 +1,63 @@
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
+Subject: [PATCH] ARM: BCM5301X: Add DT for Netgear R7900
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+---
+
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -75,6 +75,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+       bcm4709-asus-rt-ac87u.dtb \
+       bcm4709-buffalo-wxr-1900dhp.dtb \
+       bcm4709-netgear-r7000.dtb \
++      bcm4709-netgear-r7900.dtb \
+       bcm4709-netgear-r8000.dtb \
+       bcm47094-dlink-dir-885l.dtb \
+       bcm94708.dtb \
+--- /dev/null
++++ b/arch/arm/boot/dts/bcm4709-netgear-r7900.dts
+@@ -0,0 +1,41 @@
++/*
++ * Broadcom BCM470X / BCM5301X ARM platform code.
++ * DTS for Netgear R7900
++ *
++ * Copyright (C) 2016 Rafał Miłecki <zajec5@gmail.com>
++ *
++ * Licensed under the GNU/GPL. See COPYING for details.
++ */
++
++/dts-v1/;
++
++#include "bcm4708.dtsi"
++#include "bcm5301x-nand-cs0-bch8.dtsi"
++
++/ {
++      compatible = "netgear,r7900", "brcm,bcm4709", "brcm,bcm4708";
++      model = "Netgear R7900";
++
++      chosen {
++              bootargs = "console=ttyS0,115200";
++      };
++
++      memory {
++              reg = <0x00000000 0x08000000>;
++      };
++
++      axi@18000000 {
++              usb3@23000 {
++                      reg = <0x00023000 0x1000>;
++
++                      #address-cells = <1>;
++                      #size-cells = <1>;
++
++                      vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
++              };
++      };
++};
++
++&uart0 {
++      status = "okay";
++};
index be58470..98a670c 100644 (file)
@@ -13,8 +13,8 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 
 --- a/arch/arm/boot/dts/Makefile
 +++ b/arch/arm/boot/dts/Makefile
-@@ -78,6 +78,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
-       bcm4709-netgear-r7000.dtb \
+@@ -79,6 +79,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+       bcm4709-netgear-r7900.dtb \
        bcm4709-netgear-r8000.dtb \
        bcm47094-dlink-dir-885l.dtb \
 +      bcm47094-netgear-r8500.dtb \
index fef817f..b388318 100644 (file)
@@ -195,3 +195,15 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
        };
  
        leds {
+--- a/arch/arm/boot/dts/bcm4709-netgear-r7900.dts
++++ b/arch/arm/boot/dts/bcm4709-netgear-r7900.dts
+@@ -21,7 +21,8 @@
+       };
+       memory {
+-              reg = <0x00000000 0x08000000>;
++              reg = <0x00000000 0x08000000
++                     0x88000000 0x08000000>;
+       };
+       axi@18000000 {
index 6e8681c..68fa647 100644 (file)
@@ -21,12 +21,14 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
  
  #include "b53_regs.h"
  #include "b53_priv.h"
-@@ -1370,6 +1371,20 @@ static int b53_switch_init(struct b53_de
+@@ -1370,6 +1371,23 @@ static int b53_switch_init(struct b53_de
                        sw_dev->cpu_port = 5;
        }
  
 +      if (of_machine_is_compatible("asus,rt-ac87u"))
 +              sw_dev->cpu_port = 7;
++      else if (of_machine_is_compatible("netgear,r7900"))
++              sw_dev->cpu_port = 8;
 +      else if (of_machine_is_compatible("netgear,r8000"))
 +              sw_dev->cpu_port = 8;
 +      else if (of_machine_is_compatible("netgear,r8500"))
@@ -36,7 +38,8 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 +       * Workaround for devices using port 8 (connected to the 3rd iface).
 +       * For some reason it doesn't work (no packets on eth2).
 +       */
-+      if (of_machine_is_compatible("netgear,r8000"))
++      if (of_machine_is_compatible("netgear,r7900") ||
++          of_machine_is_compatible("netgear,r8000"))
 +              sw_dev->cpu_port = 5;
 +
        /* cpu port is always last */