> > + > > +/* Currently 1000FD is not working. Below is a bit of guess work > > + * from reading MMD3/MMD7 of the AR8033 */ static int > > +phy_fixup(struct phy_device *phydev) { > > + unsigned short val; > > + int advertise = SUPPORTED_1000baseT_Full | > > +SUPPORTED_1000baseT_Half; > > + > > + phydev->advertising &= ~advertise; > > + > > + /* Ar8031 phy SmartEEE feature cause link status generates glitch, > > + * which cause ethernet link down/up issue, so disable SmartEEE > > + */ > > + phy_write(phydev, 0xd, 0x3); > > + phy_write(phydev, 0xe, 0x805d); > > + phy_write(phydev, 0xd, 0x4003); > > + val = phy_read(phydev, 0xe); > > + val &= ~(0x1 << 8); > > + phy_write(phydev, 0xe, val); > > + > > + /* Use XTAL */ > > + phy_write(phydev, 0xd, 0x7); > > + phy_write(phydev, 0xe, 0x8016); > > + phy_write(phydev, 0xd, 0x4007); > > + val = phy_read(phydev, 0xe); > > + val &= 0xffe3; > > + phy_write(phydev, 0xe, val); > > + > > + return 0; > > +} > > We have a phy driver for the AR8033. Can you use it instead of putting this > into board code? Hello I have enabled the at803x driver to support the AR8031. However, only the generic PHY driver config_init get called. phy_driver_register: 00000000 register generic for: Generic PHY, 0xffffffff phy_driver_register: bbe15d54 register specific for: Atheros 8035 ethernet, 0x4dd072 phy_driver_register: bbe15d54 register specific for: Atheros 8030 ethernet, 0x4dd076 phy_driver_register: bbe15d54 register specific for: Atheros 8031 ethernet, 0x4dd074 call phy_init_hw call config_init for: Generic PHY, 0xffffffff I do not understand how to connect the AR802x phy driver to the device. Do I need to add something to the device tree? barebox@LS1021A-IOT Board:/ md -w -s /dev/mdio0-phy03 00000000: 1000 796d 004d d074