As indicated in the bug tracker[1], failsafe mode is broken on at least some devices using the mt7620 switch (and possibly mt7621). The thread explicitly mentions the Xiaomi MiWifi, and the Nexx WT3020, and an unspecified device using the mt7621 switch; I can confirm the issue on a Netgear EX2700 (mt7620). This applies to both Chaos Calmer and trunk!
The problem is that failsafe mode uses eth0, but VLANs are enabled by the switch driver: # swconfig dev mt7620 show Global attributes: enable_vlan: 1 Port 0: pvid: 0 link: port:0 link:down Port 1: pvid: 0 link: port:1 link:down Port 2: pvid: 0 link: port:2 link:down Port 3: pvid: 0 link: port:3 link:down Port 4: pvid: 0 link: port:4 link:up speed:100baseT full-duplex Port 5: pvid: 0 link: port:5 link:down Port 6: pvid: 0 link: port:6 link:up speed:1000baseT full-duplex Port 7: pvid: 0 link: port:7 link:down In the patch adding support for the Netgear EX2700 (which has only one LAN port - switch port 4), I've omitted the "mediatek,portmap" property in the device tree, but the same happens if specifying either "llllw" or "wllll", obviously. I'd submit a patch, but I'd like to some input on this matter first. I'm proposing the following changes: 1. Patch /lib/preinit/07_set_preinit_iface_ramips, to disable VLANs on the switch (the bug tracker contains an example). 2. Patch the mt7530 switch driver to disable VLANs if no mediatek,portmap property was specified, similar to the attached patch (I'll submit a proper patch if this is accepted). The second approach works perfectly on my EX2700, plus it allows for a simpler entry in /etc/board.d/02_network (`ucidef_set_interface_lan "eth0"`). The first approach also fixes failsafe on devices that DO have more than one ethernet port (i.e. those that make use of the "mediatek,portmap" property). Any thoughts on this? Regards, Joseph [1] https://dev.openwrt.org/ticket/18768 --- --- a/drivers/net/ethernet/mediatek/mt7530.c 2016-02-11 23:26:38.407412647 +0100 +++ a/drivers/net/ethernet/mediatek/mt7530.c 2016-02-11 23:21:59.911481188 +0100 @@ -760,7 +760,6 @@ mt7530->base = base; mt7530->bus = bus; - mt7530->global_vlan_enable = vlan; swdev = &mt7530->swdev; if (bus) { @@ -789,8 +788,13 @@ map = mt7530_find_mapping(dev->of_node); - if (map) + if (map) { + mt7530->global_vlan_enable = vlan; mt7530_apply_mapping(mt7530, map); + } else { + mt7530->global_vlan_enable = 0; + dev_info(dev, "mediatek,portmap not specified - disabling VLAN\n") + } mt7530_apply_config(swdev); /* magic vodoo */ _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel