Custom LS1046A SGMII issue

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Custom LS1046A SGMII issue

1,034 Views
Robbo76
Contributor I

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

Labels (1)
0 Kudos
2 Replies

685 Views
bpe
NXP Employee
NXP Employee

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!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

685 Views
Robbo76
Contributor I

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

0 Kudos