In Kernel 4.x, there was a DTS option to configure the RMII to use an external clock:
&phy_sel {
rmii-clock-ext;
};
In Kernel 5.10, that has been deprecated, and replaced by phy-gmii-sel:
The rmii-clock-ext does not seem to be an option in the phy-gmii-sel driver.
How can we be certain that the external clock is enabled? My understanding is that the internal clock has too much jitter.
On 50% of our boot ups, we noticed that we have an extremely slow connection speed on eth0. If we perform an ifconfig eth0 down; ifconfig eth0 up sequence, the connection recovers and is fast again.
We used ethtool and wire shark to discover that when the connection is slow, we had many CRC errors. When we restart the link, then the CRC errors go away, and the speed is fine.
Related Posts: