Lynx 10G SerDes Driver on my kernel

Tanjeff Moos Tanjeff.Moos at westermo.com
Thu Feb 5 08:47:12 PST 2026


Hello Vladimir,

I wish you a great year 2026!

Meanwhile I ported some of your code and I got my networking partially 
running. Details follow, but first I have a question.


== Question ==

The lynx-10g driver disables the managed lanes in lynx_10g_init(), and 
they are never enabled afterwards. Probably I didn't port the associated 
code, but can't find where it is.

I modified lynx_10g_init() to leave the lane enabled, which solves the 
problem, but this is a dirty hack.

Question: How is the lane supposed to be enabled?


== Status of my work ==

In case you are interested I provide some details here.

I ported only part of your code (tag lf-6.12.49-2.2.0), mainly the 
lynx-10g driver plus some changes you did in pcs-lynx.c, phy-core.c, 
guts.c, the dpaa drivers plus their associated header files. I 
deliberately omitted code dealing with c72 autonegotiation (for 
backplane), as I don't need it. I'm still working with kernel 6.6.119 
plus OpenWRT patches and cannot easily upgrade.

So far, I have a 2.5 GbE PHY and can run the following modes:
- 100M : SGMII
- 1G:    SGMII
- 2.5G:  2500BaseX

Switching forth and back the modes works seamlessly (with my dirty hack 
to power on the lane!). But I didn't test RCW rewriting as it is not 
needed in this scenario.

Kind regards so far, Tanjeff





More information about the linux-phy mailing list