summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/io/mlxcx/mlxcx_reg.h
diff options
context:
space:
mode:
authorJohn Levon <john.levon@joyent.com>2020-05-26 13:57:13 +0000
committerJohn Levon <john.levon@joyent.com>2020-05-26 13:57:13 +0000
commit5b2acc0949194447bba6e45a0fa44d0b5f42f208 (patch)
tree7ea9eb87bc68fee386dd39035ce715e87a0e673c /usr/src/uts/common/io/mlxcx/mlxcx_reg.h
parent8ca018083101bf1cb175869679bc123187fb1bab (diff)
parent2a1277d3064386cd5c4e372301007aa330bf1d5e (diff)
downloadillumos-joyent-gcc9.tar.gz
mergegcc9
Diffstat (limited to 'usr/src/uts/common/io/mlxcx/mlxcx_reg.h')
-rw-r--r--usr/src/uts/common/io/mlxcx/mlxcx_reg.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/usr/src/uts/common/io/mlxcx/mlxcx_reg.h b/usr/src/uts/common/io/mlxcx/mlxcx_reg.h
index 6d09abea5c..abd717842d 100644
--- a/usr/src/uts/common/io/mlxcx/mlxcx_reg.h
+++ b/usr/src/uts/common/io/mlxcx/mlxcx_reg.h
@@ -2464,6 +2464,59 @@ typedef struct {
} mlxcx_reg_ppcnt_t;
typedef enum {
+ MLXCX_PPLM_FEC_CAP_AUTO = 0,
+ MLXCX_PPLM_FEC_CAP_NONE = (1 << 0),
+ MLXCX_PPLM_FEC_CAP_FIRECODE = (1 << 1),
+ MLXCX_PPLM_FEC_CAP_RS = (1 << 2),
+} mlxcx_pplm_fec_caps_t;
+
+typedef enum {
+ MLXCX_PPLM_FEC_ACTIVE_NONE = (1 << 0),
+ MLXCX_PPLM_FEC_ACTIVE_FIRECODE = (1 << 1),
+ MLXCX_PPLM_FEC_ACTIVE_RS528 = (1 << 2),
+ MLXCX_PPLM_FEC_ACTIVE_RS271 = (1 << 3),
+ MLXCX_PPLM_FEC_ACTIVE_RS544 = (1 << 7),
+ MLXCX_PPLM_FEC_ACTIVE_RS272 = (1 << 9),
+} mlxcx_pplm_fec_active_t;
+
+/* CSTYLED */
+#define MLXCX_PPLM_CAP_56G (bitdef_t){ 16, 0x000f0000 }
+/* CSTYLED */
+#define MLXCX_PPLM_CAP_100G (bitdef_t){ 12, 0x0000f000 }
+/* CSTYLED */
+#define MLXCX_PPLM_CAP_50G (bitdef_t){ 8, 0x00000f00 }
+/* CSTYLED */
+#define MLXCX_PPLM_CAP_25G (bitdef_t){ 4, 0x000000f0 }
+/* CSTYLED */
+#define MLXCX_PPLM_CAP_10_40G (bitdef_t){ 0, 0x0000000f }
+
+typedef struct {
+ uint8_t mlrd_pplm_rsvd;
+ uint8_t mlrd_pplm_local_port;
+ uint8_t mlrd_pplm_rsvd1[11];
+ uint24be_t mlrd_pplm_fec_mode_active;
+ bits32_t mlrd_pplm_fec_override_cap;
+ bits32_t mlrd_pplm_fec_override_admin;
+ uint16be_t mlrd_pplm_fec_override_cap_400g_8x;
+ uint16be_t mlrd_pplm_fec_override_cap_200g_4x;
+ uint16be_t mlrd_pplm_fec_override_cap_100g_2x;
+ uint16be_t mlrd_pplm_fec_override_cap_50g_1x;
+ uint16be_t mlrd_pplm_fec_override_admin_400g_8x;
+ uint16be_t mlrd_pplm_fec_override_admin_200g_4x;
+ uint16be_t mlrd_pplm_fec_override_admin_100g_2x;
+ uint16be_t mlrd_pplm_fec_override_admin_50g_1x;
+ uint8_t mlrd_pplm_rsvd2[8];
+ uint16be_t mlrd_pplm_fec_override_cap_hdr;
+ uint16be_t mlrd_pplm_fec_override_cap_edr;
+ uint16be_t mlrd_pplm_fec_override_cap_fdr;
+ uint16be_t mlrd_pplm_fec_override_cap_fdr10;
+ uint16be_t mlrd_pplm_fec_override_admin_hdr;
+ uint16be_t mlrd_pplm_fec_override_admin_edr;
+ uint16be_t mlrd_pplm_fec_override_admin_fdr;
+ uint16be_t mlrd_pplm_fec_override_admin_fdr10;
+} mlxcx_reg_pplm_t;
+
+typedef enum {
MLXCX_REG_PMTU = 0x5003,
MLXCX_REG_PTYS = 0x5004,
MLXCX_REG_PAOS = 0x5006,
@@ -2472,6 +2525,7 @@ typedef enum {
MLXCX_REG_MLCR = 0x902B,
MLXCX_REG_MCIA = 0x9014,
MLXCX_REG_PPCNT = 0x5008,
+ MLXCX_REG_PPLM = 0x5023,
} mlxcx_register_id_t;
typedef union {
@@ -2482,6 +2536,7 @@ typedef union {
mlxcx_reg_pmaos_t mlrd_pmaos;
mlxcx_reg_mcia_t mlrd_mcia;
mlxcx_reg_ppcnt_t mlrd_ppcnt;
+ mlxcx_reg_pplm_t mlrd_pplm;
} mlxcx_register_data_t;
typedef enum {