
Hi,
Beagleplay has a buggy Ethernet PHY implementation for the Gigabit PHY in the sense that it is non responsive over MDIO immediately after power-up/reset.
We need to either try multiple times or wait sufficiently long enough (couple of 10s of ms?) before the PHY begins to respond correctly.
One theory is that the PHY is configured to operate on MDIO address 0 which it treats as a special broadcast address.
Datasheet states: "PHYAD (config pins) sets the PHY address for the device. The RTL8211F(I)/RTL8211FD(I) supports PHY addresses from 0x01 to 0x07. Note 1: An MDIO command with PHY address=0 is a broadcast from the MAC; each PHY device should respond."
This issue is not seen with the other PHY (different make) on the board which is configured for address 0x1.
As a woraround we try to probe the PHY multiple times instead of giving up on the first attempt.
cheers, -roger
Roger Quadros (2): net: ti: am65-cpsw-nuss: Workaround for buggy PHY/Board net: phy: Change "PHY not found" message to debug()
drivers/net/phy/phy.c | 2 +- drivers/net/ti/am65-cpsw-nuss.c | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-)
base-commit: a169438411f9277cc689c14078151aa1d1caae3c