> > The usual setting here is 'rgmmii-id', which means something needs to > > insert a 2ns delay on the clock lines. This is not always true, a very > > small number of boards use extra long clock likes on the PCB to add > > the needed 2ns delay. > > > > Now, if 'rgmii' does work, it means something else is broken > > somewhere. I will let you find out what. > > The 'rgmii' does function correctly, but it does not necessarily mean that a > time delay is required at the board level. The EPHY can also compensate for > the time skew. Basic definitions for phy-mode: rgmii: Indicates the board provides the delays, normally via extra long clock lines. rgmii-id: The board does not provide the delay, the software need to arrange that either the MAC or the PHY adds the delays. We then have the values passed between the MAC and the PHY driver: PHY_INTERFACE_MODE_RGMII: The PHY should not add delays PHY_INTERFACE_MODE_RGMII_ID: The PHY should add delays. A typical MAC/PHY combination, phy-mode is passed to the PHY, and the PHY adds the delays, if needed. This is why i said there are probably two bugs: 1) phy-mode rgmii should probably be rgmii-id 2) The PHY is adding delays when it should not be, because it is being passed PHY_INTERFACE_MODE_RGMII not PHY_INTERFACE_MODE_RGMII_ID. Andrew