Subject: Re: phylink and an unusual PHY/SFP setup

From: "Michael Walle" <[email-masked]>
Date: Thu, 28 May 2026 11:24:37 +0200

Hi Andrew,

On Wed May 27, 2026 at 3:35 PM CEST, Andrew Lunn wrote:
> On Wed, May 27, 2026 at 10:19:18AM +0200, Michael Walle wrote:
>> Hi,
>> 
>> I have a board with a rather unusual network link setup:
>> 
>>  MAC/PCS (fman) <-SerDes-> PHY (M88E1112) <-SerDes-> SFP
>> 
>> or even
>> 
>>  MAC/PCS (fman) <-SerDes-> PHY (M88E1112) <-SerDes-> Copper SFP with PHY
>
> Such setups do exist already, but with a different PHY. The Marvel 10G
> PHY is sometimes placed in the middle like this. And there are other
> PHYs.
>
> Take a look at
>
> commit 35d1a5464b476aa98b7b76ce41bb4de748cebfc2
> Author: Maxime Chevallier <[email-masked]>
> Date:   Thu Jan 8 09:00:35 2026 +0100
>
>     net: phy: marvell10g: Support SFP through phy_port
>     
>     Convert the Marvell10G driver to use the generic SFP handling, through a
>     dedicated .attach_port() handler to populate the port's supported
>     interfaces.
>     
>     As the 88x3310 supports multiple MDI, the .attach_port() logic handles
>     both SFP attach with 10GBaseR support, and support for the "regular"
>     port that usually is a BaseT port.
>
> Also, marvell-88x2222.c.
>
> 	Andrew

Thanks for the pointer. It looks like this can be used to support
both the Base-T port and the SerDes port of this PHY.

But I'm still trying to wrap my head around the SerDes links and
it's configuration. Basically, phylink tries to match both ends of
the link and will configure the PCS and the PHY accordingly. But in
my case, the link between the MAC/PCS and the PHY is always SGMII
(at least that's what the Marvell datasheet says). The line side of
the PHY is then either Base-T if using the copper port or 1000Base-X,
100Base-FX or SGMII on the fiber port.

If I add these modes to the possible_interfaces property, the PCS
might be configured wrong, that is, in 1000Base-X mode for example.
But it really should only be ever in SGMII mode.

-michael