From e6944a3490abca9626bbef1bdee1c9361e5212b7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Fri, 30 Oct 2015 12:55:37 +0000 Subject: [PATCH] bcm53xx: add workaround for Netgear R8000 network MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit According to the info from NVRAM we should use port 8 for the CPU (and interface eth2). Unfortunately it doesn't work right now, so lets switch to the port 5. Signed-off-by: Rafał Miłecki Forwardport of r46586 from 15.05 SVN-Revision: 47281 --- .../bcm53xx/base-files/etc/board.d/02_network | 17 +++++++++++++++++ ...CPU-port-fixes-for-devices-not-using-p.patch | 9 ++++++++- ...CPU-port-fixes-for-devices-not-using-p.patch | 9 ++++++++- 3 files changed, 33 insertions(+), 2 deletions(-) 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 ad004d792c29..a164251c6a85 100755 --- a/target/linux/bcm53xx/base-files/etc/board.d/02_network +++ b/target/linux/bcm53xx/base-files/etc/board.d/02_network @@ -20,10 +20,27 @@ netgear,r8000) ;; esac +# Workaround for devices using eth2 +case "$board" in +netgear,r8000) + ifname=eth0 + ;; +esac + ucidef_set_interface_loopback ucidef_set_interfaces_lan_wan "$ifname.1" "$ifname.2" ucidef_add_switch "switch0" "1" "1" +# Workaround for devices using CPU port 8 (connected to eth2) +case "$board" in +netgear,r8000) + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 5t" + ucidef_add_switch_vlan "switch0" "2" "4 5t" + board_config_flush + exit 0 + ;; +esac + # NVRAM entries may contain unsorted ports, e.g. Netgear R6250 uses # vlan1ports=3 2 1 0 5* # vlan2ports=4 5u diff --git a/target/linux/bcm53xx/patches-4.1/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch b/target/linux/bcm53xx/patches-4.1/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch index 6015c4aacae9..dfc422ee3ef4 100644 --- a/target/linux/bcm53xx/patches-4.1/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch +++ b/target/linux/bcm53xx/patches-4.1/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch @@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki #include "b53_regs.h" #include "b53_priv.h" -@@ -1313,6 +1314,11 @@ static int b53_switch_init(struct b53_de +@@ -1313,6 +1314,18 @@ static int b53_switch_init(struct b53_de sw_dev->cpu_port = 5; } @@ -29,6 +29,13 @@ Signed-off-by: Rafał Miłecki + sw_dev->cpu_port = 7; + else if (of_machine_is_compatible("netgear,r8000")) + sw_dev->cpu_port = 8; ++ ++ /* ++ * 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")) ++ sw_dev->cpu_port = 5; + /* cpu port is always last */ sw_dev->ports = sw_dev->cpu_port + 1; diff --git a/target/linux/bcm53xx/patches-4.3/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch b/target/linux/bcm53xx/patches-4.3/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch index 6015c4aacae9..dfc422ee3ef4 100644 --- a/target/linux/bcm53xx/patches-4.3/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch +++ b/target/linux/bcm53xx/patches-4.3/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch @@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki #include "b53_regs.h" #include "b53_priv.h" -@@ -1313,6 +1314,11 @@ static int b53_switch_init(struct b53_de +@@ -1313,6 +1314,18 @@ static int b53_switch_init(struct b53_de sw_dev->cpu_port = 5; } @@ -29,6 +29,13 @@ Signed-off-by: Rafał Miłecki + sw_dev->cpu_port = 7; + else if (of_machine_is_compatible("netgear,r8000")) + sw_dev->cpu_port = 8; ++ ++ /* ++ * 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")) ++ sw_dev->cpu_port = 5; + /* cpu port is always last */ sw_dev->ports = sw_dev->cpu_port + 1; -- 2.30.2