BigW Consortium Gitlab

Commit b62dde9c by rmilecki

bcm53xx: add workaround for Netgear R8000 network

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: 's avatarRafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@46586 3c298f89-4303-0410-b956-a3cf2f4a3e73
parent 2349395b
...@@ -20,10 +20,27 @@ netgear,r8000) ...@@ -20,10 +20,27 @@ netgear,r8000)
;; ;;
esac esac
# Workaround for devices using eth2
case "$board" in
netgear,r8000)
ifname=eth0
;;
esac
ucidef_set_interface_loopback ucidef_set_interface_loopback
ucidef_set_interfaces_lan_wan "$ifname.1" "$ifname.2" ucidef_set_interfaces_lan_wan "$ifname.1" "$ifname.2"
ucidef_add_switch "switch0" "1" "1" 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 # NVRAM entries may contain unsorted ports, e.g. Netgear R6250 uses
# vlan1ports=3 2 1 0 5* # vlan1ports=3 2 1 0 5*
# vlan2ports=4 5u # vlan2ports=4 5u
......
...@@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> ...@@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
#include "b53_regs.h" #include "b53_regs.h"
#include "b53_priv.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; sw_dev->cpu_port = 5;
} }
...@@ -30,6 +30,13 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> ...@@ -30,6 +30,13 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+ else if (of_machine_is_compatible("netgear,r8000")) + else if (of_machine_is_compatible("netgear,r8000"))
+ sw_dev->cpu_port = 8; + 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 */ /* cpu port is always last */
sw_dev->ports = sw_dev->cpu_port + 1; sw_dev->ports = sw_dev->cpu_port + 1;
dev->enabled_ports |= BIT(sw_dev->cpu_port); dev->enabled_ports |= BIT(sw_dev->cpu_port);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment