On Thu, Apr 30, 2020 at 04:41:05PM -0700, Saeed Mahameed wrote:
> From: Meir Lichtinger <me...@mellanox.com>
> 
> Define 100G, 200G and 400G link modes using 100Gbps per lane
> 
> Signed-off-by: Meir Lichtinger <me...@mellanox.com>
> CC: Andrew Lunn <and...@lunn.ch>
> Reviewed-by: Aya Levin <a...@mellanox.com>
> Signed-off-by: Saeed Mahameed <sae...@mellanox.com>
> ---
>  drivers/net/phy/phy-core.c   | 17 ++++++++++++++++-
>  include/uapi/linux/ethtool.h | 15 +++++++++++++++
>  net/ethtool/common.c         | 15 +++++++++++++++
>  net/ethtool/linkmodes.c      | 16 ++++++++++++++++
>  4 files changed, 62 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c
> index 66b8c61ca74c..a71fc8b18973 100644
> --- a/drivers/net/phy/phy-core.c
> +++ b/drivers/net/phy/phy-core.c
> @@ -8,7 +8,7 @@
>  
>  const char *phy_speed_to_str(int speed)
>  {
> -     BUILD_BUG_ON_MSG(__ETHTOOL_LINK_MODE_MASK_NBITS != 75,
> +     BUILD_BUG_ON_MSG(__ETHTOOL_LINK_MODE_MASK_NBITS != 90,
>               "Enum ethtool_link_mode_bit_indices and phylib are out of sync. 
> "
>               "If a speed or mode has been added please update 
> phy_speed_to_str "
>               "and the PHY settings array.\n");
> @@ -78,12 +78,22 @@ static const struct phy_setting settings[] = {
>       PHY_SETTING( 400000, FULL, 400000baseLR8_ER8_FR8_Full   ),
>       PHY_SETTING( 400000, FULL, 400000baseDR8_Full           ),
>       PHY_SETTING( 400000, FULL, 400000baseSR8_Full           ),
> +     PHY_SETTING( 400000, FULL, 400000baseCR4_Full           ),
> +     PHY_SETTING( 400000, FULL, 400000baseKR4_Full           ),
> +     PHY_SETTING( 400000, FULL, 400000baseLR4_ER4_FR4_Full   ),

Hi Mier, Saeed.

Could you explain this last one? Seems unlikely this is a 12 pair link
mode. So i assume it is four pair which can do LR4, ER4 or FR4? Can
you connect a 400000baseLR4 to a 400000baseER4 with a 10Km cable and
it work? How do you know you have connected a 400000baseLR4 to a
400000baseER4 with a 40Km and it is not expected to work, when looking
at ethtool? I assume the EEPROM contents tell you if the module is
LR4, ER4, or FR4?

     Andrew

Reply via email to