Author: rmilecki
Date: 2015-10-30 13:55:37 +0100 (Fri, 30 Oct 2015)
New Revision: 47281

Modified:
   trunk/target/linux/bcm53xx/base-files/etc/board.d/02_network
   
trunk/target/linux/bcm53xx/patches-4.1/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch
   
trunk/target/linux/bcm53xx/patches-4.3/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch
Log:
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?\197?\130 Mi?\197?\130ecki <[email protected]>

Forwardport of r46586 from 15.05

Modified: trunk/target/linux/bcm53xx/base-files/etc/board.d/02_network
===================================================================
--- trunk/target/linux/bcm53xx/base-files/etc/board.d/02_network        
2015-10-29 15:16:06 UTC (rev 47280)
+++ trunk/target/linux/bcm53xx/base-files/etc/board.d/02_network        
2015-10-30 12:55:37 UTC (rev 47281)
@@ -20,10 +20,27 @@
        ;;
 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

Modified: 
trunk/target/linux/bcm53xx/patches-4.1/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch
===================================================================
--- 
trunk/target/linux/bcm53xx/patches-4.1/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch
       2015-10-29 15:16:06 UTC (rev 47280)
+++ 
trunk/target/linux/bcm53xx/patches-4.1/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch
       2015-10-30 12:55:37 UTC (rev 47281)
@@ -21,7 +21,7 @@
  
  #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;
        }
  
@@ -30,6 +30,13 @@
 +      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;
        dev->enabled_ports |= BIT(sw_dev->cpu_port);

Modified: 
trunk/target/linux/bcm53xx/patches-4.3/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch
===================================================================
--- 
trunk/target/linux/bcm53xx/patches-4.3/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch
       2015-10-29 15:16:06 UTC (rev 47280)
+++ 
trunk/target/linux/bcm53xx/patches-4.3/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch
       2015-10-30 12:55:37 UTC (rev 47281)
@@ -21,7 +21,7 @@
  
  #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;
        }
  
@@ -30,6 +30,13 @@
 +      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;
        dev->enabled_ports |= BIT(sw_dev->cpu_port);
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to