> Indeed, > > barebox@LS1021A-IOT Board:/ miitool -v > > mdio0-phy00: 2d24000.mdio@xxxxxxxxxx: no link > > product info: Generic PHY (vendor 00:00:00, model 0 rev 0) > > basic mode: autonegotiation enabled > > basic status: no link > > capabilities: > > advertising: > > mdio0-phy01: 2d24000.mdio@xxxxxxxxxx: negotiated 100baseTx-FD, link > ok > > product info: Generic PHY (vendor 00:13:74, model 7 rev 4) > > basic mode: autonegotiation enabled > > basic status: autonegotiation complete, link ok > > capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD > > advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD > > link partner: 1000baseT-FD 1000baseT-HD 100baseTx-FD 100baseTx-HD > > 10baseT-FD 10baseT-HD flow-control > > mdio0-phy03: 2d24000.mdio@xxxxxxxxxx: negotiated 100baseTx-FD, link > ok > > product info: Generic PHY (vendor 00:13:74, model 7 rev 4) > > basic mode: autonegotiation enabled > > basic status: autonegotiation complete, link ok > > capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD > > advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD > > link partner: 1000baseT-FD 1000baseT-HD 100baseTx-FD 100baseTx-HD > > 10baseT-FD 10baseT-HD flow-control > > I have no idea what goes wrong here. > > Some things to dig further: > > A phy is registered in phy_register_device(). The call to register_device() in > that function will end up in mdio_bus_match(). You could add some > debugging there to see which phy ids are matched against each other. > > An idea is that the at803x driver is not yet registered by the time > phy_device_connect() is called, but I don't see how this could happen. Ok. I have registered the mdio driver from the Ethernet device probe function with platform_driver_register (like the ls1046a). Now the Atheros driver isregistered first prior to probing the mdiobus. I got a crash but I shall figure out. Thanks.