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: Rafał Miłecki <zajec5@gmail.com> Forwardport of r46586 from 15.05 SVN-Revision: 47281
This commit is contained in:
parent
baa359f8e4
commit
e6944a3490
3 changed files with 33 additions and 2 deletions
|
@ -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
|
||||
|
|
|
@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
|||
|
||||
#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 <zajec5@gmail.com>
|
|||
+ 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;
|
||||
|
|
|
@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
|||
|
||||
#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 <zajec5@gmail.com>
|
|||
+ 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;
|
||||
|
|
Loading…
Reference in a new issue