Hi Community,
We are using 2 T4240 SoC based custom boards. We are trying to connect the 2 macs over sgmii connection.
We connected SGMII pins TX of one MAC to RX of other mac and visa versa.
And we configured both macs as fixed-link as below, no mdio configuration.
fm1mac2: ethernet@e2000 {
phy-connection-type = "sgmii";
fixed-link = <2 1 1000 0 0>;
};
After connect them we gave ip address to both interface and sent packets with ping. But there is no frame reception form any side. We looked with ethtool and both interfaces are up.
Any help will be appreciated.
After disabling Auto negotiation for SGMII it worked.
Thank you very much for your help.
When you add a "fixed-link" property, you instruct Linux not to initialize the PHY. It does not affect SerDes initialization in any way.
In SGMII mode, T4240 SerDes module expects the other side of the SGMII link to act as a PHY in terms of autonegotiation. If the other end is actually a peer MAC, the local end does not receive what it expects during autoneg type SGMII and may fail to bring the link up. Note that ethtool does not reflect the status of the SGMII link because it is a link between a local MAC and a local PHY. It only reads the status of the link to the far end which in the case of a "fixed-link" is set statically to "link up". The bottom line is, you need to modify the driver to disable autonegotiation over SGMII. See T4240RM, Section 18.6.1.1 for details.
Hope this helps
Platon