An i.MX6dl-based board with NXP kernel 4.14.98 receives data packages over eth0. In one of some hundred cases the interface stops after some time (twenty minutes to several hours) with no obvious reason. The system log says
[ 1450.764118] fec 2188000.ethernet eth0: Graceful transmit stop did not complete! [ 1450.771484] fec 2188000.ethernet eth0: Link is Down
No suspend or powerdown was issued. Nor is there some known event different from the cases where the interface stays up. In this state, ifconfig reports
eth0 Link encap:Ethernet HWaddr 00:30:D6:25:76:A2 inet addr:192.168.0.5 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::230:d6ff:fe25:76a2/64 Scope:Link UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:6844776 errors:5 dropped:0 overruns:4 frame:1 TX packets:33 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:441617696 (421.1 MiB) TX bytes:5570 (5.4 KiB)
The overruns seem to be unrelated. When I try to restart:
# ifconfig eth0 down # ifconfig eth0 up ifconfig: SIOCSIFFLAGS: Connection timed out
while the dmesg report fec 2188000.ethernet eth0: could not attach to PHY. The PHY is a Micrel KSZ9031.
Could a blocking PHY generate the Graceful transmit stop did not complete message?
What could try to find the cause of the problem?
Hi Philipp
for that issue one can adjust KSZ9031 integrated delays (RGMII Clock Pad Skew registers),
also if issue occurs only on some boards, try to resolder chip as this may happen due to poor
soldering.
Best regards
igor
Thank you!
I should add that this is a 100 Mbit connection. Could it still be an RGMII clock issue?
Soldering looks good under the microscope, but I did not yet try to resolder.