Skip to content

Commit 6c48508

Browse files
Shalom Toledodavem330
authored andcommitted
mlxsw: spectrum: Add Spectrum-2 ASIC support for new port types and speeds
Add Spectrum-2 ASIC support for the following new port types and speeds: * 50Gbps 1-lane * 100Gbps 2-lanes * 200Gbps 4-lanes Signed-off-by: Shalom Toledo <shalomt@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent d3eaf10 commit 6c48508

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

drivers/net/ethernet/mellanox/mlxsw/spectrum.c

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2685,6 +2685,18 @@ mlxsw_sp2_mask_ethtool_50gaui_2_laui_2_50gbase_cr2_kr2[] = {
26852685
#define MLXSW_SP2_MASK_ETHTOOL_50GAUI_2_LAUI_2_50GBASE_CR2_KR2_LEN \
26862686
ARRAY_SIZE(mlxsw_sp2_mask_ethtool_50gaui_2_laui_2_50gbase_cr2_kr2)
26872687

2688+
static const enum ethtool_link_mode_bit_indices
2689+
mlxsw_sp2_mask_ethtool_50gaui_1_laui_1_50gbase_cr_kr[] = {
2690+
ETHTOOL_LINK_MODE_50000baseKR_Full_BIT,
2691+
ETHTOOL_LINK_MODE_50000baseSR_Full_BIT,
2692+
ETHTOOL_LINK_MODE_50000baseCR_Full_BIT,
2693+
ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT,
2694+
ETHTOOL_LINK_MODE_50000baseDR_Full_BIT,
2695+
};
2696+
2697+
#define MLXSW_SP2_MASK_ETHTOOL_50GAUI_1_LAUI_1_50GBASE_CR_KR_LEN \
2698+
ARRAY_SIZE(mlxsw_sp2_mask_ethtool_50gaui_1_laui_1_50gbase_cr_kr)
2699+
26882700
static const enum ethtool_link_mode_bit_indices
26892701
mlxsw_sp2_mask_ethtool_caui_4_100gbase_cr4_kr4[] = {
26902702
ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT,
@@ -2696,6 +2708,30 @@ mlxsw_sp2_mask_ethtool_caui_4_100gbase_cr4_kr4[] = {
26962708
#define MLXSW_SP2_MASK_ETHTOOL_CAUI_4_100GBASE_CR4_KR4_LEN \
26972709
ARRAY_SIZE(mlxsw_sp2_mask_ethtool_caui_4_100gbase_cr4_kr4)
26982710

2711+
static const enum ethtool_link_mode_bit_indices
2712+
mlxsw_sp2_mask_ethtool_100gaui_2_100gbase_cr2_kr2[] = {
2713+
ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT,
2714+
ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT,
2715+
ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT,
2716+
ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT,
2717+
ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT,
2718+
};
2719+
2720+
#define MLXSW_SP2_MASK_ETHTOOL_100GAUI_2_100GBASE_CR2_KR2_LEN \
2721+
ARRAY_SIZE(mlxsw_sp2_mask_ethtool_100gaui_2_100gbase_cr2_kr2)
2722+
2723+
static const enum ethtool_link_mode_bit_indices
2724+
mlxsw_sp2_mask_ethtool_200gaui_4_200gbase_cr4_kr4[] = {
2725+
ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT,
2726+
ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT,
2727+
ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT,
2728+
ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT,
2729+
ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT,
2730+
};
2731+
2732+
#define MLXSW_SP2_MASK_ETHTOOL_200GAUI_4_200GBASE_CR4_KR4_LEN \
2733+
ARRAY_SIZE(mlxsw_sp2_mask_ethtool_200gaui_4_200gbase_cr4_kr4)
2734+
26992735
struct mlxsw_sp2_port_link_mode {
27002736
const enum ethtool_link_mode_bit_indices *mask_ethtool;
27012737
int m_ethtool_len;
@@ -2752,12 +2788,30 @@ static const struct mlxsw_sp2_port_link_mode mlxsw_sp2_port_link_mode[] = {
27522788
.m_ethtool_len = MLXSW_SP2_MASK_ETHTOOL_50GAUI_2_LAUI_2_50GBASE_CR2_KR2_LEN,
27532789
.speed = SPEED_50000,
27542790
},
2791+
{
2792+
.mask = MLXSW_REG_PTYS_EXT_ETH_SPEED_50GAUI_1_LAUI_1_50GBASE_CR_KR,
2793+
.mask_ethtool = mlxsw_sp2_mask_ethtool_50gaui_1_laui_1_50gbase_cr_kr,
2794+
.m_ethtool_len = MLXSW_SP2_MASK_ETHTOOL_50GAUI_1_LAUI_1_50GBASE_CR_KR_LEN,
2795+
.speed = SPEED_50000,
2796+
},
27552797
{
27562798
.mask = MLXSW_REG_PTYS_EXT_ETH_SPEED_CAUI_4_100GBASE_CR4_KR4,
27572799
.mask_ethtool = mlxsw_sp2_mask_ethtool_caui_4_100gbase_cr4_kr4,
27582800
.m_ethtool_len = MLXSW_SP2_MASK_ETHTOOL_CAUI_4_100GBASE_CR4_KR4_LEN,
27592801
.speed = SPEED_100000,
27602802
},
2803+
{
2804+
.mask = MLXSW_REG_PTYS_EXT_ETH_SPEED_100GAUI_2_100GBASE_CR2_KR2,
2805+
.mask_ethtool = mlxsw_sp2_mask_ethtool_100gaui_2_100gbase_cr2_kr2,
2806+
.m_ethtool_len = MLXSW_SP2_MASK_ETHTOOL_100GAUI_2_100GBASE_CR2_KR2_LEN,
2807+
.speed = SPEED_100000,
2808+
},
2809+
{
2810+
.mask = MLXSW_REG_PTYS_EXT_ETH_SPEED_200GAUI_4_200GBASE_CR4_KR4,
2811+
.mask_ethtool = mlxsw_sp2_mask_ethtool_200gaui_4_200gbase_cr4_kr4,
2812+
.m_ethtool_len = MLXSW_SP2_MASK_ETHTOOL_200GAUI_4_200GBASE_CR4_KR4_LEN,
2813+
.speed = SPEED_200000,
2814+
},
27612815
};
27622816

27632817
#define MLXSW_SP2_PORT_LINK_MODE_LEN ARRAY_SIZE(mlxsw_sp2_port_link_mode)

0 commit comments

Comments
 (0)