On Tue, 28 Oct 2008, Nate Case wrote: > Some SGMII PHYs don't auto-negotiate correctly with the TBI+SerDes > interface on the mpc85xx processors. Check for the "sgmii-aneg-disable" > device tree flag and skip enabling auto-negotiation on the TBI > side if present. Full duplex 1000 Mbit/s will be assumed for the > SGMII link to the PHY (note that this does not affect the link speed > on the external side of the external PHY).
Note that there is a race in the tbi/serdes setup code. The writes to the TBI/SerDes with gfar_local_mdio_write() use the same MDIO bus registers as phylib uses to talk to the real phy or phys. There is no locking for gfar_local_mdio vs phylib so they can (and will) clobber each other. It doesn't usually happen, due to luck and general phylib slowness. But I've got some patches in 2.6.28 that speed up phylib and might makes this happen more often... But more relevant to your serdes problem, I also have a patch that prevents restarting serdes auto-negotiation if the serdes link is already up. My SGMII PHY will auto-negotiate, but it takes about 3 seconds. Avoiding an unnecessary 3 second auto-negotiation when the gianfar device is opened lets me cut my power-on to DHCP completion time in half. I wonder if this would also fix your problem, without needing to add the extra workaround? _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev