On Thu, 8 Apr 2021 10:24:22 +0200 Stefan Roese <s...@denx.de> wrote: > Hi Stefan, > Hi Marek, > > On 25.03.21 13:59, Stefan Chulski wrote: > >> Could you please ask internally at Marvell? > >> We are trying to get to the bottom of this because we are stuck in > >> development of code for Amethyst. We need to get 2500base-x to work, we > >> need to know whether it does or does not support AN, or maybe does but > >> only for some devices. Otherwise it may happen that some SFPs won't link > >> with our hardware. > >> > >> Thank you. > >> > >> Marek > > > > To avoid confusions, I suggest we take this issue directly with Marvell > > SoHo switch FAE. I'm willing to start another thread to discuss this(I > > will check who can assist you). > > > > Regarding to this patch series. Let's drop PHY_INTERFACE_MODE_SGMII_2500, > > from PHY_INTERFACE enum and we would handle SGMII mode in 2.5G speed > > differently in PPv2 driver. > > I'm just now getting back to this patch. > > JFYI: PHY_INTERFACE_MODE_SGMII_2500 is used in NXP ethernet drivers as > well: > > $ git grep PHY_INTERFACE_MODE_SGMII_2500 > board/freescale/ls1012aqds/eth.c: > PHY_INTERFACE_MODE_SGMII_2500); > board/freescale/ls1012aqds/eth.c: > PHY_INTERFACE_MODE_SGMII_2500); > board/freescale/ls1012ardb/eth.c: > PHY_INTERFACE_MODE_SGMII_2500); > board/freescale/ls1012ardb/eth.c: > PHY_INTERFACE_MODE_SGMII_2500); > board/freescale/ls1043aqds/eth.c: > PHY_INTERFACE_MODE_SGMII_2500) { > board/freescale/ls1043aqds/eth.c: case > PHY_INTERFACE_MODE_SGMII_2500: > board/freescale/ls1043aqds/eth.c: } else if > (interface == PHY_INTERFACE_MODE_SGMII_2500) { > board/freescale/ls1046aqds/eth.c: } else if > (fm_info_get_enet_if(port) == PHY_INTERFACE_MODE_SGMII_2500) { > board/freescale/t102xrdb/eth_t102xrdb.c: case > PHY_INTERFACE_MODE_SGMII_2500: > board/freescale/t102xrdb/eth_t102xrdb.c: if > (((fm_info_get_enet_if(port) == PHY_INTERFACE_MODE_SGMII_2500) || > drivers/net/fm/eth.c: PHY_INTERFACE_MODE_SGMII_2500) ? > true : false; > drivers/net/fm/eth.c: fm_eth->enet_if == > PHY_INTERFACE_MODE_SGMII_2500) > drivers/net/fm/eth.c: (fm_eth->enet_if == > PHY_INTERFACE_MODE_SGMII_2500) || > drivers/net/fm/eth.c: if (fm_eth->enet_if == > PHY_INTERFACE_MODE_SGMII_2500) > drivers/net/fm/eth.c: case PHY_INTERFACE_MODE_SGMII_2500: > drivers/net/fm/ls1043.c: return > PHY_INTERFACE_MODE_SGMII_2500; > drivers/net/fm/ls1043.c: return > PHY_INTERFACE_MODE_SGMII_2500; > drivers/net/fm/ls1046.c: return > PHY_INTERFACE_MODE_SGMII_2500; > drivers/net/fm/memac.c: case PHY_INTERFACE_MODE_SGMII_2500: > drivers/net/fm/t1024.c: return > PHY_INTERFACE_MODE_SGMII_2500; > drivers/net/fsl_enetc.c: if (priv->if_type == > PHY_INTERFACE_MODE_SGMII_2500) > drivers/net/fsl_enetc.c: case PHY_INTERFACE_MODE_SGMII_2500: > drivers/net/mscc_eswitch/felix_switch.c: phy->interface == > PHY_INTERFACE_MODE_SGMII_2500) > drivers/net/mscc_eswitch/felix_switch.c: case > PHY_INTERFACE_MODE_SGMII_2500: > ... > > Stefan, you suggest to drop this define from PHY_INTERFACE enum which > we can't easily do with other drivers (like NXP) also referencing this > macro. > > How to continue then?
I think NXP also uses this macro incorrectly, they should instead use 2500BASEX. SGMII_2500 does not exist in Linux. We can look at the corresponding NXP driver in Linux (if it exists) to see if the corresponging mode is 2500BASEX. Marek