RE: [PATCH net-next v2 4/4] net: mvpp2: 2500baseX support
From: Stefan Chulski
Date: Wed Jan 03 2018 - 11:12:04 EST
> -----Original Message-----
> From: Andrew Lunn [mailto:andrew@xxxxxxx]
> Sent: Wednesday, January 03, 2018 5:53 PM
> To: Antoine Tenart <antoine.tenart@xxxxxxxxxxxxxxxxxx>
> Cc: davem@xxxxxxxxxxxxx; kishon@xxxxxx; gregory.clement@free-
> electrons.com; linux@xxxxxxxxxxxxxxx; mw@xxxxxxxxxxxx; Stefan Chulski
> <stefanc@xxxxxxxxxxx>; Yan Markman <ymarkman@xxxxxxxxxxx>;
> thomas.petazzoni@xxxxxxxxxxxxxxxxxx; miquel.raynal@xxxxxxxxxxxxxxxxxx;
> Nadav Haklai <nadavh@xxxxxxxxxxx>; netdev@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH net-next v2 4/4] net: mvpp2: 2500baseX support
>
> On Wed, Jan 03, 2018 at 04:32:27PM +0100, Antoine Tenart wrote:
> > Hi Andrew,
> >
> > On Wed, Jan 03, 2018 at 04:20:36PM +0100, Andrew Lunn wrote:
> > > > @@ -4612,6 +4616,9 @@ static int mvpp22_comphy_init(struct
> mvpp2_port *port)
> > > > case PHY_INTERFACE_MODE_1000BASEX:
> > > > mode = PHY_MODE_SGMII;
> > > > break;
> > > > + case PHY_INTERFACE_MODE_2500BASEX:
> > > > + mode = PHY_MODE_2500SGMII;
> > > > + break;
> > >
> > > I think this is the source of confusion with linux/phy.h and
> > > linux/phy/phy.h.
> > >
> > > What would PHY_INTERFACE_MODE_2500SGMII use?
> > >
> > > Where is this all getting confused? Should the caller to
> > > mvpp22_comphy_init() actually be passing
> PHY_INTERFACE_MODE_2500SGMII?
> > > What is the MAC actually doing at this point? 2500BASEX or 2500SGMII?
> >
> > PHY_INTERFACE_MODE_2500BASEX is the PHY mode whereas
> > PHY_MODE_2500SGMII is the mode used by the common PHY driver (i.e. the
> > one configuring the serdes lanes).
>
> > There's no PHY_INTERFACE_MODE_2500SGMII mode.
>
> Hi Antoine
>
> At the moment there is no PHY_INTERFACE_MODE_2500SGMII. However,
> there are some devices which can do 2.5G SGMII. So it will appear sometime.
> This piece of code then looks even stranger.
>
> > Sure, I can add a comment to state this function is a translation
> > between the net PHY mode and the generic PHY mode (it's a n-to-1
> > translation).
>
> I think from an API design point of view, passing PHY_MODE_2500BASEX to
> comphy makes more sense. That is what the MAC wants to do. How the
> comphy achieves that should be internal to the comphy.
>
> Andrew
COMPHY driver configure SERDES lanes to high speed SGMII(2500SGMII) mode and doesn't
care about mode used by physical layer(2500BASEX in this case).
There are possibility that MAC SERDES lane is routed on a backplane to another SERDES.
I think we should use SGMII naming.
Stefan.