HI all:
We have a custcom board which b4860 using dtsec3 and dtsec4 connect to lx2160 without phy. We diable SGMII AN in dtsec_configure_serdes function and force phy speed at 1000M in fm_eth_open function. Also config the serdes2 to 0x4.However,the if_status reg show that the link speed is 100M.And lx2160 link is not up. We have another board which bsc9132 connect lx2160 without phy work ok. So we think lx2160 config is ok.
My question as fllowing:
1. How to debug this problem? Is there any reg to check?
2. Is b4860 dtsec module using TBI phy?
Thank you for the reply.
We have just confirm that 2160 software set the interface to 1000BASEX not SGMII. Because they have some problem in sgmii.
The dts of 2160 :
mac@15 {
linkt_type = "MAC_LNIK_TYPE_FIXED";
enet_if = "1000BASEX";
}n
We grep b4860 net driver code int linux kernel and find out thers is no "1000BASEX" option in our linux kernel. The code suggest that
it support mii, gmii, sgmii, tbi, rmii, rgmii,rgmii-id,rgmii-rxid,rgmii-txid,rtbi,xgmii. Would you kindly help us fingure out whether b4860 is support 1000basex or not . If support, how to modify the dts. Thanks.
Checking with my counterparts.
For the IP-
"HW-wise T-series DPAA and Layerscape DPAA SGMII PCS are almost identical for SGMII. The B4 version doesn’t have the later addition to support 1000Base-KX, but that doesn’t affect the support for 1000Base-X or SGMII."
For the SW-
"If it’s SGMII then the standard is the same. AN must be disabled on both sides.
The SGMII config in MC is quite clean while on the B4 it might require some changes in Linux.
By default we assume that a phy is used, in our older SDKs.
Reading carefully, I see that we are in the Clause 37 case. In linux on B4860, the config of the BASEX mode does not work by default.
It is even possible that the the u-boot will patch the dts and overwrite any settings that are set there for BASEX.
Also some changes I think might be required on the Linux side as well."
yipingwang:
Thank you for the reply. I list my unstanstand as fllow.Would you kindly confim it is right or not . Thanks. There are two ways to fix this problem:
1. lx2160 config dpmac to 1000basex mode and disable AN function. b4860 modify uboot and kenrel to support 1000basex and also disable AN function .
2.lx2160 config dpmac to sgmii mode and disable AN fucntion. b4860 just config memac to sgmiii and disable AN function.But our lx2160 software developer says that lx2160 only support 1000basex in dpmac. Is it connect or not?
The B-series appears to be similar to the T-series.
Meaning the MAC is mEMAC+SGMII PCS, not dTSEC+TBI.
In the SoC manual you will find the MDIO register space for the SGMII PCS.
Assuming the PHYless connection is SGMII and not RGMII, I would check MDIO_SGMII_IF_MODE.
SGMII_DUPLEX=0b0 for full duplex
SGMII_SPEED=0b10 for Gigabit
USE_SGMII_AN=0 to NOT use auto-negotiation
SGMII_EN=0 for fixed speed, rate-adaptation logic not used.