bcm53xx: try to fix network on Asus RT-AC87U
authorrmilecki <rmilecki@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 16 May 2015 17:14:25 +0000 (17:14 +0000)
committerrmilecki <rmilecki@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 16 May 2015 17:14:25 +0000 (17:14 +0000)
This device seems to have switch port 7 connected to the CPU:
vlan1ports=1 2 3 5 7*
vlan2ports=0 7u
it should be handled by eth1 and NVRAM seems to confirm that (no
et0macaddr entry, existing et1macaddr & et1phyaddr entries).

One of the remaining ports (4/8?) may be connected to the Quantenna SoC.
Original firmware boot log contains following messages:
(0x00,0x5d)Port 5 States Override: 0xfb
(0x00,0x5f)Port 7 States Override: 0xfb
(0x00,0x0e)Port 8 States Override: 0x0a
(why does it force port 5 state?!)

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@45692 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/bcm53xx/base-files/etc/board.d/02_network
target/linux/bcm53xx/patches-3.18/710-b53-add-hacky-CPU-port-fix-for-Netgear-R8000.patch [deleted file]
target/linux/bcm53xx/patches-3.18/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch [new file with mode: 0644]

index 4263615..ad004d7 100755 (executable)
@@ -9,6 +9,9 @@ board_config_update
 
 board=$(cat /proc/device-tree/compatible | tr '\0' '\t' | cut -f 1)
 case "$board" in
+asus,rt-ac87u)
+       ifname=eth1
+       ;;
 netgear,r8000)
        ifname=eth2
        ;;
@@ -32,6 +35,10 @@ if echo "$vlan1ports" | egrep -q "^1 2 3 4 5" && \
    echo "$vlan2ports" | egrep -q "^0 5"; then
        ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 5t"
        ucidef_add_switch_vlan "switch0" "2" "0 5t"
+elif echo "$vlan1ports" | egrep -q "^1 2 3 5 7" && \
+     echo "$vlan2ports" | egrep -q "^0 7"; then
+       ucidef_add_switch_vlan "switch0" "1" "1 2 3 5 7t"
+       ucidef_add_switch_vlan "switch0" "2" "0 7t"
 elif echo "$vlan1ports" | egrep -q "^0 1 2 3 5 7 8" && \
      echo "$vlan2ports" | egrep -q "^4 8"; then
        ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 5 7 8t"
diff --git a/target/linux/bcm53xx/patches-3.18/710-b53-add-hacky-CPU-port-fix-for-Netgear-R8000.patch b/target/linux/bcm53xx/patches-3.18/710-b53-add-hacky-CPU-port-fix-for-Netgear-R8000.patch
deleted file mode 100644 (file)
index 1e37b49..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-From ec2ae8fc837772afd7a89f98c8a1ec71e2ab322b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
-Date: Wed, 13 May 2015 14:13:28 +0200
-Subject: [PATCH] b53: add hacky CPU port fix for Netgear R8000
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
----
- drivers/net/phy/b53/b53_common.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/net/phy/b53/b53_common.c b/drivers/net/phy/b53/b53_common.c
-index 2b05d5d..ba16107 100644
---- a/drivers/net/phy/b53/b53_common.c
-+++ b/drivers/net/phy/b53/b53_common.c
-@@ -25,6 +25,7 @@
- #include <linux/module.h>
- #include <linux/switch.h>
- #include <linux/platform_data/b53.h>
-+#include <linux/of.h>
- #include "b53_regs.h"
- #include "b53_priv.h"
-@@ -1313,6 +1314,9 @@ static int b53_switch_init(struct b53_device *dev)
-                       sw_dev->cpu_port = 5;
-       }
-+      if (of_machine_is_compatible("netgear,r8000"))
-+              sw_dev->cpu_port = 8;
-+
-       /* cpu port is always last */
-       sw_dev->ports = sw_dev->cpu_port + 1;
-       dev->enabled_ports |= BIT(sw_dev->cpu_port);
--- 
-1.8.4.5
-
diff --git a/target/linux/bcm53xx/patches-3.18/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch b/target/linux/bcm53xx/patches-3.18/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch
new file mode 100644 (file)
index 0000000..14de694
--- /dev/null
@@ -0,0 +1,40 @@
+From 4abdde3ad6bc0b3b157c4bf6ec0bf139d11d07e8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
+Date: Wed, 13 May 2015 14:13:28 +0200
+Subject: [PATCH] b53: add hacky CPU port fixes for devices not using port 5
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+---
+ drivers/net/phy/b53/b53_common.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/drivers/net/phy/b53/b53_common.c b/drivers/net/phy/b53/b53_common.c
+index 2b05d5d..fd3b39c 100644
+--- a/drivers/net/phy/b53/b53_common.c
++++ b/drivers/net/phy/b53/b53_common.c
+@@ -25,6 +25,7 @@
+ #include <linux/module.h>
+ #include <linux/switch.h>
+ #include <linux/platform_data/b53.h>
++#include <linux/of.h>
+ #include "b53_regs.h"
+ #include "b53_priv.h"
+@@ -1313,6 +1314,11 @@ static int b53_switch_init(struct b53_device *dev)
+                       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,r8000"))
++              sw_dev->cpu_port = 8;
++
+       /* cpu port is always last */
+       sw_dev->ports = sw_dev->cpu_port + 1;
+       dev->enabled_ports |= BIT(sw_dev->cpu_port);
+-- 
+1.8.4.5
+