Can I switch SerDes protocol at runtime?

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

Can I switch SerDes protocol at runtime?

Jump to solution
1,583 Views
tmoos
Contributor III

I'm trying to reconfigure the SerDes lane protocol at runtime, and I've almost got it working. Loopback (XGLP) works, i.e. the MAC sees the packets that I transmit, but it cannot send the packets over the SGMII/XFI line to the Ethernet PHY.

Is it at all possible to change SerDes protocol at runtime? Even a No would be helpful as I could then close the case.

The user stadium_aquino had the same problem.

There have been a couple of related posts in this forum, but none of them have been answered by NXP yet:

Labels (1)
Tags (3)
0 Kudos
1 Solution
1,363 Views
tmoos
Contributor III

Summary for the future reader:

  • I got a message from NXP saying that it is possible.
  • Two other NXP employees told me that it is impossible (see above).
  • The LS1046A manual indicates that switching from XFI to SGMII might be possible (see note in LS1046ARM.pdf, "LS1046A Reference Manual ", Rev. 3, register SGMIIACR1, bit SGPCS_EN). Meanwhile I think that this note got there by accident (copy-paste?) and is not valid.
  • An NXP employee gave me a howto describing the procedure for LS1043A (but not LS1046A). The same employee now says that the procedure is not possible, not even on LS1034A. I wonder how the howto came into live.
  • We spent several weeks trying to make the switch possible, but didn't succeed.

My conclusion is: No, protocol switching at runtime is not possible. We need to change the RCW for protocol switching.

View solution in original post

0 Kudos
8 Replies
1,115 Views
dsouthwi
Contributor III

This is officially supported and documented for MC firmwares on the NXP public MC-binary github repo - there you can find the required MC firmwares for the ls1088a, ls2080a, ls2088a, and lx216xa families. Here is the official support document stating these runtime switches are possible via the kernel driver dpmac_set_protocol() method for 10G-1G switching, as  well as 25G-10G. You may need to use a newer BSP that has the appropriate methods added to phylink.c, pcs-lynx.c, phy-fsl-lynx-28g.c dpaa(2)-mac.c, phy-core.c, etc.

It seems there is some confusion on the support of this, as it is relatively new for these platforms. Good luck!

https://github.com/nxp-qoriq/qoriq-mc-binary/blob/mc_release_10.37.0/CHANGELOG.md

0 Kudos
1,098 Views
mcbridematt
Contributor III

As far as I can tell, support for runtime speed/protocol switching only works with the LX2160A which has the newer (Lynx28G) Serdes PHY.

It _might_ be possible to do this on the older Layerscape and QorIQ SoCs but it's not 100% certain yet. It may also depend on your board being able to do the required configuration changes at runtime (like changing the SerDes PLL reference clock speed).

This recent kernel thread provides some details: https://patchwork.kernel.org/project/linux-phy/cover/20230413160607.4128315-1-sean.anderson@seco.com...

It would be nice if runtime switching was possible to support use cases like using both 1G and 10G SFPs in the same slot.

0 Kudos
1,106 Views
tmoos
Contributor III
I'm using the LS1046A which is not mentioned in the changelog. It seems that only the DPAA2 has the MC, but LS1046A has DPAA (version 1).
0 Kudos
1,364 Views
tmoos
Contributor III

Summary for the future reader:

  • I got a message from NXP saying that it is possible.
  • Two other NXP employees told me that it is impossible (see above).
  • The LS1046A manual indicates that switching from XFI to SGMII might be possible (see note in LS1046ARM.pdf, "LS1046A Reference Manual ", Rev. 3, register SGMIIACR1, bit SGPCS_EN). Meanwhile I think that this note got there by accident (copy-paste?) and is not valid.
  • An NXP employee gave me a howto describing the procedure for LS1043A (but not LS1046A). The same employee now says that the procedure is not possible, not even on LS1034A. I wonder how the howto came into live.
  • We spent several weeks trying to make the switch possible, but didn't succeed.

My conclusion is: No, protocol switching at runtime is not possible. We need to change the RCW for protocol switching.

0 Kudos
1,512 Views
LFGP
NXP TechSupport
NXP TechSupport

 to reconfigure the SerDes lane protocol at strict runtime it is not possible, because that configuration must be write in the RCW and you can't rewrite the RCW at runtime.

the section 31.8.4 is intended for Soft Reset

0 Kudos
1,508 Views
yipingwang
NXP TechSupport
NXP TechSupport

No, it is not possible to switch SerDes protocol at runtime.

0 Kudos
1,493 Views
tmoos
Contributor III

Well, so I got different answers by now. I have some other experts involved, let's see what they say.

Nevertheless, thank you for caring!

0 Kudos
1,527 Views
tmoos
Contributor III

Meanwhile I got an email from NXP, via a distributor. It says:

It is possible to  switch Serdes protocol at runtime but it is important to follow the correct procedure as described in LS1046a reference manual section 31.8.4 Soft Reset and Reconfiguring Procedures. Please confirm that the correct procedure is followed or let us know if anything in the reference manual is unclear.

So the answer to my question is: Yes, it is possible (although I don't know yet how).

0 Kudos