On 19/07/2017 23:34, Florian Fainelli wrote: > How about you start reading the RGMII specification so we can at least, > if nothing else agree on the terminology? It's public: > > http://web.archive.org/web/20160303171328/http://www.hp.com/rnd/pdfs/RGMIIv2_0_final_hp.pdf
Thanks for linking the spec. Having no EE training, I am ill-equipped to interpret the timings table. As you pointed out, the spec states that the "Data to Clock input Skew (at Receiver)" must be within [ 1.0, 2.6 ] ns. I understand that 2 ns is 1/4 of a 125 MHz period, but it's not clear to me why the above interval is centered at 1.8 instead of 2.0 ns. Also, the AR8035 PHY offers 4 possible TX clock delays: { 0.25, 1.3, 2.4, 3.4 } according to their doc. The two extremes are outside the interval, when would they be useful? In case the transmitter adds "bad" skew? Why doesn't the PHY support 1.8/2.0? Is it perhaps unable to, because of PLL limitations? It's also not clear to me if wire length has any influence on the required skew. I would say "no". I think signal propagation time has nothing to do with clock skew (as long as both wires are roughly the same length). > Some Ethernet controllers let you change it, some don't, if nb8800 > allows it, it's good for testing in that it packs more frames per > quantum of time. If not, do you have at least a FCS error counter? I'll have a closer look, and test with iPerf3. Or is there a better benchmark? I will look for an inter-packet gap knob and FCS error counter. > I completely understand what you want to solve but I suspect you will > have to do it in a way where you either accept that you may not be fully > compliant with the now clarified "phy-mode" description, in order not to > break other people's set up that were already non-compliant (can't blame > them, they did not know back then), or you will have to use additional > MAC properties to override the delay settings on the MAC or PHY side. I think I need to give up the notion of "fixing" the at803x driver. Some boards rely on the fact that RX clock delay is enabled by default, like am335x-evm using "rgmii-txid" instead of "rgmii-id". My board needs to enable both internal delays, so I don't need the PHY patch. I will only fix the MAC driver and the DTS. Regards.