Hello!
We have a custom LS1046A design where we use SERDES config 0x3333 and 0x5A59. This means we get two 1G SGMII MACs at DTSEC9 and DTSEC10. On both of these interfaces we have another SOC with a SGMII. There is no PHY between.
What would be the minimal changes to the U-Boot (or Linux/DTB) LSDK 18.09 code (using LS1046ARDB as ref) to get this up and running?
The basic test has been ping but there is no change in any statistical counter on either side. It is hard to technically measure on the SGMII to understand who does wrong, but the other side is an old design so we guess it to be correct as of know. We assume we are missing some change in U-Boot code.
As far as I can understand if you do not have an external phy you do not need to init any phy. The internal phy does not seem to have any code?
Since you do not do any
fm_info_set_phy_address
or
fm_info_set_mdio
for interfaces without external PHY the "init_phy" function will stop early since there is no "fm_eth->bus" value (zero).
I assume that is how it is supposed to be but I'm panicing since I cant see anything to change? Any tips/hints?
Thanks
BR
Robert
First of all, if you have another MAC (not PHY) on the other end
of the SerDes link, you should use 1000Base-KX mode, not SGMII.
The on-chip PCS in SGMII mode expects PHY autonegotiation response
rather than 1000Base-X peer response and will not complete.
Your options are:
1. Use 1000Base-KX mode. Initialization recommendations can be found in
LS1046ARM, Section 31.8.1.3. This is the preferred option.
2. Suppress autonegotiation over SGMII.
in u-Boot, SerDes initialization is done in dtsec_configure_serdes()
defined in drivers/net/fm/eth.c. Note, this code is apart from external
PHY initialization code.
Have a great day,
Platon
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Thanks bpe!
First, as far as I know the 1000Base-KX mode is for backplanes (12 inches+ wires). This is a compact design with short wires and we see all good SerDes signals so I would rule out any electrical issues.
Secondly, it now works :smileywink:
We run with 1000Base-X now. But the interesting thing is that it does not matter if I do AN or not. Contrary SGMII does not work, also regardless of AN settings.
So to sum up I'm happy even though I do not understand it. We will never need to negotiate this link. If it stays up and at 1G we will be happy :smileyhappy:
Thanks
BR
Robert