diff options
| author | Hans Petter Selasky <hselasky@FreeBSD.org> | 2019-05-08 10:54:54 +0000 |
|---|---|---|
| committer | Hans Petter Selasky <hselasky@FreeBSD.org> | 2019-05-08 10:54:54 +0000 |
| commit | ac87880ac14ba8185416498bbef0ab01e84efed6 (patch) | |
| tree | ed34025a3d55122f216333e831b481ff887d659a /sys/dev/mlx5/port.h | |
| parent | 6d1dc6524ef2f145c9f449b5970d8f7569417bc2 (diff) | |
Notes
Diffstat (limited to 'sys/dev/mlx5/port.h')
| -rw-r--r-- | sys/dev/mlx5/port.h | 84 |
1 files changed, 80 insertions, 4 deletions
diff --git a/sys/dev/mlx5/port.h b/sys/dev/mlx5/port.h index 1007bb471bd58..1eea3f744ee6c 100644 --- a/sys/dev/mlx5/port.h +++ b/sys/dev/mlx5/port.h @@ -58,7 +58,7 @@ enum mlx5_an_status { #define MLX5_I2C_ADDR_HIGH 0x51 #define MLX5_EEPROM_PAGE_LENGTH 256 -enum mlx5e_link_mode { +enum mlx5e_link_speed { MLX5E_1000BASE_CX_SGMII = 0, MLX5E_1000BASE_KX = 1, MLX5E_10GBASE_CX4 = 2, @@ -70,9 +70,9 @@ enum mlx5e_link_mode { MLX5E_56GBASE_R4 = 8, MLX5E_10GBASE_CR = 12, MLX5E_10GBASE_SR = 13, - MLX5E_10GBASE_ER = 14, + MLX5E_10GBASE_ER_LR = 14, MLX5E_40GBASE_SR4 = 15, - MLX5E_40GBASE_LR4 = 16, + MLX5E_40GBASE_LR4_ER4 = 16, MLX5E_50GBASE_SR2 = 18, MLX5E_100GBASE_CR4 = 20, MLX5E_100GBASE_SR4 = 21, @@ -86,6 +86,78 @@ enum mlx5e_link_mode { MLX5E_25GBASE_SR = 29, MLX5E_50GBASE_CR2 = 30, MLX5E_50GBASE_KR2 = 31, + MLX5E_LINK_SPEEDS_NUMBER, +}; + +enum mlx5e_ext_link_speed { + MLX5E_SGMII_100M = 0, + MLX5E_1000BASE_X_SGMII = 1, + MLX5E_5GBASE_R = 3, + MLX5E_10GBASE_XFI_XAUI_1 = 4, + MLX5E_40GBASE_XLAUI_4_XLPPI_4 = 5, + MLX5E_25GAUI_1_25GBASE_CR_KR = 6, + MLX5E_50GAUI_2_LAUI_2_50GBASE_CR2_KR2 = 7, + MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR = 8, + MLX5E_CAUI_4_100GBASE_CR4_KR4 = 9, + MLX5E_100GAUI_2_100GBASE_CR2_KR2 = 10, + MLX5E_200GAUI_4_200GBASE_CR4_KR4 = 12, + MLX5E_400GAUI_8 = 15, + MLX5E_EXT_LINK_SPEEDS_NUMBER, +}; + +enum mlx5e_link_mode { + MLX5E_ACC, + MLX5E_AOC, + MLX5E_AUI, + MLX5E_AUI_AC, + MLX5E_AUI2, + MLX5E_AUI2_AC, + MLX5E_AUI4, + MLX5E_AUI4_AC, + MLX5E_CAUI2, + MLX5E_CAUI2_AC, + MLX5E_CAUI4, + MLX5E_CAUI4_AC, + MLX5E_CP, + MLX5E_CP2, + MLX5E_CR, + MLX5E_CR_S, + MLX5E_CR1, + MLX5E_CR2, + MLX5E_CR4, + MLX5E_CR_PAM4, + MLX5E_CR4_PAM4, + MLX5E_CX4, + MLX5E_CX, + MLX5E_CX_SGMII, + MLX5E_DR, + MLX5E_DR4, + MLX5E_ER, + MLX5E_ER4, + MLX5E_FR, + MLX5E_FR4, + MLX5E_KR, + MLX5E_KR1, + MLX5E_KR_PAM4, + MLX5E_KR_S, + MLX5E_KR2, + MLX5E_KR2_PAM4, + MLX5E_KR4, + MLX5E_KR4_PAM4, + MLX5E_KX, + MLX5E_KX4, + MLX5E_LR, + MLX5E_LR2, + MLX5E_LR4, + MLX5E_LX, + MLX5E_R, + MLX5E_SGMII, + MLX5E_SR, + MLX5E_SR2, + MLX5E_SR4, + MLX5E_SX, + MLX5E_T, + MLX5E_TX, MLX5E_LINK_MODES_NUMBER, }; @@ -113,6 +185,10 @@ enum mlx5_qpts_trust_state { #define PORT_MODULE_EVENT_MODULE_STATUS_MASK 0xF #define PORT_MODULE_EVENT_ERROR_TYPE_MASK 0xF +#define MLX5_GET_ETH_PROTO(reg, out, ext, field) \ + ((ext) ? MLX5_GET(reg, out, ext_##field) : \ + MLX5_GET(reg, out, field)) + int mlx5_set_port_caps(struct mlx5_core_dev *dev, u8 port_num, u32 caps); int mlx5_query_port_ptys(struct mlx5_core_dev *dev, u32 *ptys, int ptys_size, int proto_mask, u8 local_port); @@ -127,7 +203,7 @@ int mlx5_query_port_proto_admin(struct mlx5_core_dev *dev, int mlx5_query_port_eth_proto_oper(struct mlx5_core_dev *dev, u32 *proto_oper, u8 local_port); int mlx5_set_port_proto(struct mlx5_core_dev *dev, u32 proto_admin, - int proto_mask); + int proto_mask, bool ext); int mlx5_set_port_status(struct mlx5_core_dev *dev, enum mlx5_port_status status); int mlx5_query_port_status(struct mlx5_core_dev *dev, u8 *status); |
