Re: Lynx 10G SerDes Driver on my kernel

Vladimir Oltean
2025-12-05T12:44:35Z

On Fri, Dec 05, 2025 at 12:38:17PM +0100, Tanjeff Moos wrote:
> > As mentioned earlier, lynx-10g is in our upstreaming queue, but it may
> > take a while to reach it. You can get the driver with the RCW override
> > support from Linux Factory, though.
> I'm still unsure how to get it. Probably I'm completely off track...
>
> I tried flexbuild (https://github.com/nxp/flexbuild) to get sources, but
> didn't find the patches.
>
> I also tried
> repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-walnascar -m imx-6.12.34-2.1.0.xml
> to get the Yocto repo (LF is yocto-based, right?). The "IMX" looks suspicious,
> since we are talking about qoriq, but I didn't find LF for qoriq.
>
> The repo https://github.com/nxp-qoriq/linux.git has a branch net/phy which was
> merged with commit 0229b2500383. So I will try to "extract" this branch with
> "git format-patch" so I can apply its commits to my OpenWRT-Repo.
>
> BTW, I'm still working on getting my board running again after I upgraded to
> kernel 6.12.34 (by merging the corresponding OpenWRT commit).

To my knowledge, LF is just the kernel component. It is a common
development process between i.MX and Layerscape. You don't need the user
space BSP distribution (Yocto, Flexbuild, whatever).

The nxp-qoriq/linux has tags indicating LF releases. The latest is
lf-6.12.49-2.2.0, which is what you should be looking at. You can first
try to run this kernel directly, and then see using "git log" what you
need to pick up from:
- drivers/net/pcs/pcs-lynx.c
- drivers/net/ethernet/freescale/fman/
- drivers/phy/freescale/phy-fsl-lynx-10g.c
- drivers/soc/fsl/guts.c
- include/linux/phy/phy-fsl-lynx.h
- Documentation/devicetree/bindings/phy/fsl,lynx-10g.yaml

The truth is I don't have something ready-made to give you either, and
some assembly will be required. The Linux Factory changes were made in
chronological order, and it took me some time to disentangle the base
SerDes patches from the backplane link training work (which require
their own clause 72/73 API which I also had to introduce), and the
resulting linearized changes are in my personal net-phy-upstreaming
branch. If you want to take a look there, you can, but you are On Your
Own in terms of figuring out what you need and integrating these changes
into OpenWrt sadly.