Forums » Software Development »
RGMII pad skew on KSZ9031
Added by Shane Avery almost 6 years ago
We've got a custom board which is based on CriticalLink's baseboard. The PHY is the 9031. Try as we might to maintain the integrity of the RGMII signals on the PCB it seems the only way to get Gigabit working is to tweak the pad skew registers. Only the RX path is affected. We haven't done any exhaustive tests but skewing the RX clock as mush as possible definitely makes everything work. We can change the pad skews in the dts file from Altera/Intel's golden reference and then compile that into a dtb and that seems to work for Linux. For u-boot we have to change registers via the mdio or mii commands. So for firmware development I can work around it but the problem is my software nerds are working in VxWorks and don't know how to tweak the PHY.
So couple of questions:
1. Has anybody seen anything like this that was the result of something obvious and dumb on my part? Like something in the preloader? It would be great if we could fix it there. Then u-boot, Linux, VxWorks are all functional and happy.
2. If there really is nothing easy that can be done, can CriticalLink add skew to the u-boot? I've seen it for the 9021. Why no love for the 9031?
3. Has anybody seen this and tackled it in a way I'm not seeing? Maybe someone can throw out a suggestion on how they solved/worked around.
I will admit that Gigabit isn't critical to the application but if we are hooked up to a switch the PHY will try to go Gigabit. I guess we could search ebay for some switches from 1995. We could also force the PHY into 100Mbit but then we are right back to my problem that the software guys don't know how to tweak PHY registers.
Replies (2)
RE: RGMII pad skew on KSZ9031 - Added by Michael Williamson almost 6 years ago
Are you using uBoot to boot VxWorks?
I don't think there is enough space in the preloader to include the MDIO driver code and configure the RGMII, but I haven't ever tried that.
Updating the uBoot code should be pretty simple to adjust the skews if you need support doing that.
We have had a couple of custom board designs that require messing with the PHY skew. Typically, we just write "scripts" in uBoot to tweak the PHY if we need it. Those can be saved to the environment or read directly off an MMC OS partition if you need to load them on startup. This allows us to avoid messing with the uBoot code as well as the OS, so long as you don't reset the PHY. Sounds like you are able to do this. Is that not an option because you are not using uBoot for VxWorks? Or is VxWorks hammering the PHY reset on startup?
-Mike
RE: RGMII pad skew on KSZ9031 - Added by Shane Avery almost 6 years ago
Thanks for the reply Mike. I'll talk to the software team and see if VxWorks resets the PHY. If not, then we will try the script route. If it does, we'll talk more later.