Hi MT7621 owners,
As you know, having owned an mt7621 router there is an annoying bug that plagues us all.
the netdev timeout issue! - this issue is related to the way the flow control is forced on the mt7530 switch and because its connected to the mt7621, there is a weird bug that triggers miss timing causing the mt7621 cpu to fall over and crash.
I've played around with several of my mt7621 routers and noticed all of them will have this issue when the flow control is forced for RX/TX - by default this mode is forced on all of the ports. If you don't have a switch that can be told to switch it off, then you pretty much going to have this issue.
From the router shell, confirm feature no longer there:
To confirm flow control is not there anymore.
ethtool -a eth0
Pause parameters for eth0:
Cannot get device pause settings: Not supported
My repo i've done a disable patch for 21.02-snapshot and master (snapshot) branch:
disable flow control initial patch - gitlab
disable flow control soc mt7621 only improvement - gitlab
Also added IPV6 HW flow offload support (routing only) - 21.02 and master (snapshot) branch:
enable ipv6 hw offload - gitlab - now in master (snapshot)
I've precompiled for all of the supported mt7621 devices and uploaded to google drive:
Download firmware image - MT7621
I've included some useful tools in the 21.02 image:
- Iperf3 - test the network bandwidth
- speedtest - test you internet speed
- tcpdump - nano and uboot-envtools
- ethtool - to see the port status
REMEMBER this is for testing purposes and won't be held responsible for bricked devices!
I've tested on - Xiaomi MI4 AG Gigabit model and Unielec u7621-01 model
You will notice the ports connecting and disconnecting several times due to the other end trying to force FC for RX/TX. It will settle and stay on the port speed and no flow control.
Once there is enough feedback, then we can improve on the patch and then get it pushed upstream to the official openwrt repo.
PLEASE feedback any issues and suggestions?
Also if you have a better idea for the patches then please, do a pull request on my repo.
Thanks