RE: [PATCH 0/7] net: stmmac: enable EHL SGMII

From: Ong, Boon Leong
Date: Thu Apr 25 2019 - 10:39:13 EST


>-----Original Message-----
>From: Andrew Lunn [mailto:andrew@xxxxxxx]
>Sent: Thursday, April 25, 2019 8:38 PM
>To: Voon, Weifeng <weifeng.voon@xxxxxxxxx>
>Cc: David S. Miller <davem@xxxxxxxxxxxxx>; netdev@xxxxxxxxxxxxxxx; linux-
>kernel@xxxxxxxxxxxxxxx; Ong, Boon Leong <boon.leong.ong@xxxxxxxxx>;
>Kweh, Hock Leong <hock.leong.kweh@xxxxxxxxx>; Florian Fainelli
><f.fainelli@xxxxxxxxx>; Maxime Coquelin <mcoquelin.stm32@xxxxxxxxx>;
>Giuseppe Cavallaro <peppe.cavallaro@xxxxxx>; Jose Abreu
><joabreu@xxxxxxxxxxxx>
>Subject: Re: [PATCH 0/7] net: stmmac: enable EHL SGMII
>
>On Thu, Apr 25, 2019 at 07:27:51AM +0000, Voon, Weifeng wrote:
>> > > This patch-set is to enable Ethernet controller (DW Ethernet QoS and
>> > > DW Ethernet PCS) with SGMII interface in Elkhart Lake.
>> >
>> > Can the hardware also do 1000BaseX?
>>
>> Yes, it is able to do 1000BaseX.
>
>I Voon
>
>That means you should not really hard code it to SGMII. Somebody is
>going to connect an SFP or an Ethernet switch and want to use
>1000BaseX.

Hi Andrew,

The Ethernet controller consists of two ways to connect to external PHY,
RGMII and SGMII. The selection is done through soft strap.
The patch-series is to enable SGMII interface. The DW xPCS IP is
configured to operate in 1000BASE-X mode. The xPCS IP is external
connected through internal PHY interface which presents externally
as SGMII interface. To help illustrate the connection:-

<-----------------GBE Controller----------------->|<--External PHY chip-->

+----------+ +----+ +---+ +-----------------+
| EQoS | <-GMII->|xPCS|<--> | L1 | <-- SGMII --> | External GbE |
| MAC | | | |PHY| | PHY Chip |
+----------+ +----+ +---+ +-----------------+

In future, we will submit the changes for the RGMII connection that
bypasses DW xPCS.

Hope this help clarifies matter.

>At minimum, please add support for phy-mode in the device tree.
>
>Also, when the adjust_link callback passed to phy_connect() is called,
>you can look at the interface type to know if you need to configure it
>to SGMII or 1000BaseX. A copper PHY in an SFP module generally wants
>SGMII, but an optical module wants 1000BaseX. But to properly support
>SPFs the driver needs to swap to phylink, rather than phylib.
>
> Andrew