From: rmilecki Date: Sat, 16 May 2015 17:14:25 +0000 (+0000) Subject: bcm53xx: try to fix network on Asus RT-AC87U X-Git-Url: https://git.archive.openwrt.org/?a=commitdiff_plain;h=4442884c30b31f571d28512c32eaebe69c230c25;p=openwrt.git bcm53xx: try to fix network on Asus RT-AC87U 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 git-svn-id: svn://svn.openwrt.org/openwrt/trunk@45692 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- diff --git a/target/linux/bcm53xx/base-files/etc/board.d/02_network b/target/linux/bcm53xx/base-files/etc/board.d/02_network index 4263615e83..ad004d792c 100755 --- a/target/linux/bcm53xx/base-files/etc/board.d/02_network +++ b/target/linux/bcm53xx/base-files/etc/board.d/02_network @@ -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 index 1e37b49364..0000000000 --- a/target/linux/bcm53xx/patches-3.18/710-b53-add-hacky-CPU-port-fix-for-Netgear-R8000.patch +++ /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?= -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 ---- - 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 - #include - #include -+#include - - #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 index 0000000000..14de694dd0 --- /dev/null +++ b/target/linux/bcm53xx/patches-3.18/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch @@ -0,0 +1,40 @@ +From 4abdde3ad6bc0b3b157c4bf6ec0bf139d11d07e8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +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 +--- + 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 + #include + #include ++#include + + #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 +