25#ifndef LIBSWITCHTEC_MRPC_H
26#define LIBSWITCHTEC_MRPC_H
28#define MRPC_MAX_DATA_LEN 1024
31 MRPC_DIAG_PMC_START = 0x0,
43 MRPC_PORTPARTP2P = 0xC,
44 MRPC_DIAG_TLP_INJECT = 0xD,
46 MRPC_DIAG_PORT_EYE = 0xF,
47 MRPC_DIAG_POT_VHIST = 0x10,
48 MRPC_DIAG_PORT_LTSSM_LOG = 0x11,
49 MRPC_DIAG_PORT_TLP_ANL = 0x12,
50 MRPC_DIAG_PORT_LN_ADPT = 0x13,
51 MRPC_SRDS_PCIE_PEAK = 0x14,
52 MRPC_SRDS_EQ_CTRL = 0x15,
53 MRPC_SRDS_LN_TUNING_MODE = 0x16,
54 MRPC_NT_MCG_CAPABLE_CONFIG = 0x17,
60 MRPC_MULTI_CFG = 0x1D,
65 MRPC_INT_LOOPBACK = 0x22,
66 MRPC_RESERVED2 = 0x24,
67 MRPC_ROUTE_TO_SELF = 0x25,
70 MRPC_EVENTS_QUERY = 0x28,
73 MRPC_PART_INFO = 0x2B,
74 MRPC_PCIE_GEN_1_2_DUMP = 0x2C,
75 MRPC_PCIE_GEN_1_2_TUNE = 0x2D,
76 MRPC_EYE_OBSERVE = 0x2F,
77 MRPC_RCVR_OBJ_DUMP = 0x30,
78 MRPC_RESERVED3 = 0x31,
79 MRPC_PORT_EQ_STATUS = 0x32,
80 MRPC_PORT_EQ_CTRL = 0x33,
81 MRPC_GAS_WRITE = 0x34,
82 MRPC_MRPC_ERR_INJ = 0x35,
83 MRPC_DEV_INFO_GET = 0x36,
84 MRPC_MRPC_PERM_TABLE_GET = 0x37,
85 MRPC_CROSS_HAIR = 0x38,
86 MRPC_RECV_DETECT_STATUS = 0x39,
87 MRPC_EXT_RCVR_OBJ_DUMP = 0x3A,
88 MRPC_LOG_DEF_GET = 0x3B,
89 MRPC_SECURITY_CONFIG_GET_EXT = 0x3C,
90 MRPC_ORDERED_SET_ANALYZER = 0x3D,
93 MRPC_GET_PAX_ID = 0x81,
94 MRPC_TOPO_INFO_DUMP = 0x82,
95 MRPC_GFMS_DB_DUMP = 0x83,
96 MRPC_GFMS_BIND_UNBIND = 0x84,
97 MRPC_DEVICE_MANAGE_CMD = 0x85,
98 MRPC_PORT_CONFIG = 0x88,
99 MRPC_GFMS_EVENT = 0x89,
100 MRPC_PORT_CONTROL = 0x8D,
101 MRPC_EP_RESOURCE_ACCESS = 0x8E,
102 MRPC_EP_TUNNEL_CFG = 0x8F,
103 MRPC_NVME_ADMIN_PASSTHRU = 0x91,
105 MRPC_I2C_TWI_PING = 0x100,
106 MRPC_SECURITY_CONFIG_GET = 0x101,
107 MRPC_SECURITY_CONFIG_SET = 0x102,
108 MRPC_KMSK_ENTRY_SET = 0x103,
109 MRPC_SECURE_STATE_SET = 0x104,
110 MRPC_ACT_IMG_IDX_GET = 0x105,
111 MRPC_ACT_IMG_IDX_SET = 0x106,
113 MRPC_MAILBOX_GET = 0x108,
114 MRPC_SN_VER_GET = 0x109,
115 MRPC_DBG_UNLOCK = 0x10A,
116 MRPC_BOOTUP_RESUME = 0x10B,
117 MRPC_SECURITY_CONFIG_GET_GEN5 = 0x111,
118 MRPC_SECURITY_CONFIG_SET_GEN5 = 0x112,
119 MRPC_KMSK_ENTRY_SET_GEN5 = 0x113,
120 MRPC_SECURE_STATE_SET_GEN5 = 0x114,
121 MRPC_ACT_IMG_IDX_GET_GEN5 = 0x115,
122 MRPC_ACT_IMG_IDX_SET_GEN5 = 0x116,
123 MRPC_FW_TX_GEN5 = 0x117,
124 MRPC_MAILBOX_GET_GEN5 = 0x118,
125 MRPC_SN_VER_GET_GEN5 = 0x119,
126 MRPC_DBG_UNLOCK_GEN5 = 0x11A,
127 MRPC_BOOTUP_RESUME_GEN5 = 0x11B,
128 MRPC_SECURITY_CONFIG_GET_GEN6 = 0x121,
129 MRPC_FW_TX_GEN6 = 0x122,
130 MRPC_MAILBOX_GET_GEN6 = 0x123,
131 MRPC_SN_VER_GET_GEN6 = 0x124,
132 MRPC_DBG_UNLOCK_GEN6 = 0x125,
133 MRPC_SECURE_CONFIG_GET_GEN6 = 0x126,
134 MRPC_DEVICE_CONFIG = 0x127,
135 MRPC_DOK_CONFIG = 0x128,
136 MRPC_SECURE_STATE_SET_GEN6 = 0x129,
137 MRPC_GEN5_EYE_CAPTURE = 0x142,
138 MRPC_FTDC_LOG_DUMP = 0x147,
140 MRPC_FW_IMG_GET = 0x14F,
146 MRPC_BG_STAT_IDLE = 0,
147 MRPC_BG_STAT_INPROGRESS = 1,
148 MRPC_BG_STAT_DONE = 2,
149 MRPC_BG_STAT_OFFSET = 3,
150 MRPC_BG_STAT_ERROR = 0xFF,
154 MRPC_FWDNLD_GET_STATUS = 0,
155 MRPC_FWDNLD_DOWNLOAD = 1,
156 MRPC_FWDNLD_TOGGLE = 2,
157 MRPC_FWDNLD_BOOT_RO = 4,
158 MRPC_FWDNLD_SET_RDNDNT = 5,
160 MRPC_VGPIO_GET_DIR = 0,
161 MRPC_VGPIO_GET_POL = 1,
162 MRPC_VGPIO_GET_VAL = 2,
163 MRPC_VGPIO_SET_VAL = 3,
164 MRPC_VGPIO_EN_INT = 4,
165 MRPC_VGPIO_DIS_INT = 5,
166 MRPC_VPGIO_GET_PIN_STS = 7,
168 MRPC_PMON_SETUP_EV_COUNTER = 0,
169 MRPC_PMON_GET_BW_COUNTER = 1,
170 MRPC_PMON_GET_EV_COUNTER = 2,
171 MRPC_PMON_GET_EV_COUNTER_SETUP = 3,
172 MRPC_PMON_SETUP_LAT_COUNTER = 4,
173 MRPC_PMON_GET_LAT_COUNTER_SETUP = 5,
174 MRPC_PMON_GET_LAT_COUNTER = 6,
175 MRPC_PMON_RULE_ERROR_TLP = 8,
176 MRPC_PMON_RULE_TLP_MATCH = 9,
177 MRPC_PMON_RULE_TLP_TO_USP = 10,
178 MRPC_PMON_RULE_TLP_TO_DSP = 11,
179 MRPC_PMON_SET_BW_COUNTER = 12,
181 MRPC_STACKBIF_GET = 0,
182 MRPC_STACKBIF_SET = 1,
184 MRPC_FWLOGRD_RAM = 0,
185 MRPC_FWLOGRD_FLASH = 1,
186 MRPC_FWLOGRD_MEMLOG = 2,
187 MRPC_FWLOGRD_REGS = 3,
188 MRPC_FWLOGRD_SYS_STACK = 4,
189 MRPC_FWLOGRD_THRD_STACK = 5,
190 MRPC_FWLOGRD_THRD = 6,
191 MRPC_FWLOGRD_INVAL = 7,
192 MRPC_FWLOGRD_NVHDR = 10,
193 MRPC_FWLOGRD_RAM_GEN5 = 11,
194 MRPC_FWLOGRD_FLASH_GEN5 = 12,
195 MRPC_FWLOGRD_RAM_WITH_FLAG = 13,
196 MRPC_FWLOGRD_FLASH_WITH_FLAG = 14,
198 MRPC_LOG_DEF_APP = 0,
199 MRPC_LOG_DEF_MAILBOX = 1,
201 MRPC_DIETEMP_SET_CLOCK = 0,
202 MRPC_DIETEMP_SET_MEAS = 1,
203 MRPC_DIETEMP_GET = 2,
204 MRPC_DIETEMP_STOP = 3,
205 MRPC_DIETEMP_GET_GEN4 = 2,
206 MRPC_DIETEMP_GET_GEN5 = 4,
208 MRPC_MULTI_CFG_SUPPORTED = 0,
209 MRPC_MULTI_CFG_COUNT = 1,
210 MRPC_MULTI_CFG_ACTIVE = 2,
211 MRPC_MULTI_CFG_START_ADDR = 3,
212 MRPC_MULTI_CFG_LENGTH = 4,
215 MRPC_PORT_UNBIND = 1,
218 MRPC_PART_INFO_GET_ALL_INFO = 0,
219 MRPC_PART_INFO_GET_METADATA = 1,
220 MRPC_PART_INFO_GET_SEEPROM = 2,
221 MRPC_PART_INFO_GET_ALL_INFO_GEN5 = 4,
222 MRPC_PART_INFO_GET_METADATA_GEN5 = 5,
223 MRPC_PART_INFO_GET_ALL_INFO_GEN6 = 8,
224 MRPC_PART_INFO_GET_METADATA_GEN6 = 9,
225 MRPC_PART_INFO_GET_SEEPROM_GEN6 = 10,
226 MRPC_PART_INFO_GET_SMS_FMC_VERSION_GEN6 = 12,
229 MRPC_GFMS_UNBIND = 2,
231 MRPC_PORT_CONFIG_SET = 0,
232 MRPC_PORT_CONFIG_GET = 1,
234 MRPC_TOPO_INFO_DUMP_START = 1,
235 MRPC_TOPO_INFO_DUMP_STATUS_GET = 2,
236 MRPC_TOPO_INFO_DUMP_DATA_GET = 3,
237 MRPC_TOPO_INFO_DUMP_FINISH = 4,
238 MRPC_TOPO_INFO_DUMP_DATA_GET_GEN5 = 5,
240 MRPC_GFMS_DB_DUMP_FABRIC = 0,
241 MRPC_GFMS_DB_DUMP_PAX_ALL,
242 MRPC_GFMS_DB_DUMP_PAX,
243 MRPC_GFMS_DB_DUMP_HVD,
244 MRPC_GFMS_DB_DUMP_FAB_PORT,
245 MRPC_GFMS_DB_DUMP_EP_PORT,
246 MRPC_GFMS_DB_DUMP_HVD_DETAIL,
249 MRPC_FW_TX_FLASH = 3,
250 MRPC_FW_TX_TOGGLE = 4,
252 MRPC_DBG_UNLOCK_PKEY = 0,
253 MRPC_DBG_UNLOCK_DATA = 1,
254 MRPC_DBG_UNLOCK_UPDATE = 2,
256 MRPC_GEN6_DBG_UNLOCK_PKEY = 0,
257 MRPC_GEN6_DBG_UNLOCK_SIG = 1,
258 MRPC_GEN6_DBG_UNLOCK_STATIC = 2,
259 MRPC_GEN6_DBG_SEC_VER_UPDATE = 3,
260 MRPC_GEN6_DBG_UNLOCK_STATIC_DISABLE = 4,
261 MRPC_GEN6_DBG_UNLOCK_TOKEN_GET = 5,
262 MRPC_GEN6_DBG_UNLOCK_STATUS_GET = 6,
264 MRPC_KMSK_ENTRY_SET_PKEY = 0,
265 MRPC_KMSK_ENTRY_SET_SIG = 1,
266 MRPC_KMSK_ENTRY_SET_KMSK = 2,
268 MRPC_EP_TUNNEL_ENABLE = 0,
269 MRPC_EP_TUNNEL_DISABLE = 1,
270 MRPC_EP_TUNNEL_STATUS = 2,
272 MRPC_NVME_ADMIN_PASSTHRU_START = 1,
273 MRPC_NVME_ADMIN_PASSTHRU_DATA = 2,
274 MRPC_NVME_ADMIN_PASSTHRU_END = 3,
276 MRPC_PORT_EQ_LOCAL_TX_COEFF_DUMP = 0,
277 MRPC_PORT_EQ_FAR_END_TX_COEFF_DUMP = 1,
278 MRPC_PORT_EQ_FAR_END_TX_EQ_TABLE_DUMP = 2,
279 MRPC_PORT_EQ_LOCAL_TX_FSLF_DUMP = 3,
280 MRPC_PORT_EQ_FAR_END_TX_FSLF_DUMP = 4,
282 MRPC_GEN5_PORT_EQ_LOCAL_TX_COEFF_DUMP = 9,
283 MRPC_GEN5_PORT_EQ_FAR_END_TX_COEFF_DUMP = 10,
284 MRPC_GEN5_PORT_EQ_LOCAL_TX_FSLF_DUMP = 11,
285 MRPC_GEN5_PORT_EQ_FAR_END_TX_FSLF_DUMP = 12,
286 MRPC_GEN5_PORT_EQ_FAR_END_TX_EQ_TABLE_DUMP = 15,
288 MRPC_GEN6_PORT_EQ_LOCAL_TX_COEFF_DUMP = 17,
289 MRPC_GEN6_PORT_EQ_FAR_END_TX_COEFF_DUMP = 18,
290 MRPC_GEN6_PORT_EQ_LOCAL_TX_FSLF_DUMP = 19,
291 MRPC_GEN6_PORT_EQ_FAR_END_TX_FSLF_DUMP = 20,
293 MRPC_EXT_RCVR_OBJ_DUMP_RCVR_EXT = 0,
294 MRPC_EXT_RCVR_OBJ_DUMP_RCVR_EXT_PREV = 1,
295 MRPC_EXT_RCVR_OBJ_DUMP_PREV = 2,
296 MRPC_EXT_RCVR_OBJ_DUMP_LOCAL_TX_COEFF_PREV = 3,
297 MRPC_EXT_RCVR_OBJ_DUMP_FAR_END_TX_COEFF_PREV = 4,
298 MRPC_EXT_RCVR_OBJ_DUMP_EQ_TX_TABLE_PREV = 5,
299 MRPC_EXT_RCVR_OBJ_DUMP_LOCAL_TX_FSLF_PREV = 6,
300 MRPC_EXT_RCVR_OBJ_DUMP_FAR_END_TX_FSLF_PREV = 7,
302 MRPC_REFCLK_S_DISABLE = 0,
303 MRPC_REFCLK_S_ENABLE = 1,
304 MRPC_REFCLK_S_STATUS = 2,
306 MRPC_REFCLK_S_DISABLE_GEN6 = 3,
307 MRPC_REFCLK_S_ENABLE_GEN6 = 4,
308 MRPC_REFCLK_S_STATUS_GEN6 = 5,
310 MRPC_LOOPBACK_GET_INT_LOOPBACK = 2,
311 MRPC_LOOPBACK_SET_INT_LOOPBACK = 3,
312 MRPC_LOOPBACK_SET_LTSSM_LOOPBACK = 4,
313 MRPC_LOOPBACK_GET_LTSSM_LOOPBACK = 5,
315 MRPC_PAT_GEN_GET_GEN = 5,
316 MRPC_PAT_GEN_SET_GEN = 6,
317 MRPC_PAT_GEN_GET_MON = 7,
318 MRPC_PAT_GEN_SET_MON = 8,
319 MRPC_PAT_GEN_INJ_ERR = 9,
320 MRPC_PAT_GEN_SET_GEN_GEN5 = 10,
321 MRPC_PAT_GEN_GET_GEN_GEN6 = 11,
322 MRPC_PAT_GEN_SET_GEN_GEN6 = 12,
323 MRPC_PAT_GEN_SET_MON_GEN6 = 13,
324 MRPC_PAT_GEN_GET_MON_GEN6 = 14,
326 MRPC_EYE_OBSERVE_START = 0,
327 MRPC_EYE_OBSERVE_FETCH = 1,
328 MRPC_EYE_OBSERVE_CANCEL = 2,
329 MRPC_EYE_OBSERVE_SET_DATA_MODE = 3,
330 MRPC_EYE_OBSERVE_GET_DATA_MODE = 4,
332 MRPC_EYE_CAP_RUN_GEN5 = 0,
333 MRPC_EYE_CAP_STATUS_GEN5 = 1,
334 MRPC_EYE_CAP_READ_GEN5 = 2,
336 MRPC_EYE_CAP_RUN_GEN6 = 3,
337 MRPC_EYE_CAP_READ_GEN6 = 4,
339 MRPC_CROSS_HAIR_ENABLE = 0,
340 MRPC_CROSS_HAIR_DISABLE = 1,
341 MRPC_CROSS_HAIR_GET = 2,
343 MRPC_LTMON_CLEAR_LOG = 10,
344 MRPC_LTMON_GET_STATUS_GEN4 = 13,
345 MRPC_LTMON_FREEZE = 14,
346 MRPC_LTMON_LOG_DUMP_GEN4 = 15,
347 MRPC_LTMON_GET_STATUS_GEN5 = 20,
348 MRPC_LTMON_LOG_DUMP_GEN5 = 21,
350 MRPC_ERR_INJ_DLLP = 0,
351 MRPC_ERR_INJ_DLLP_CRC = 1,
352 MRPC_ERR_INJ_TLP_LCRC = 2,
353 MRPC_ERR_INJ_TLP_SEQ = 3,
354 MRPC_ERR_INJ_ACK_NACK = 4,
355 MRPC_ERR_INJ_CTO = 5,
357 MRPC_OSA_TYPE_TRIG_CONFIG = 0,
358 MRPC_OSA_PAT_TRIG_CONFIG = 1,
359 MRPC_OSA_MISC_TRIG_CONFIG = 2,
360 MRPC_OSA_CAPTURE_CTRL = 3,
361 MRPC_OSA_CONFIG_DMP = 4,
362 MRPC_OSA_ANALYZER_OP = 5,
363 MRPC_OSA_STATUS_QUERY = 6,
364 MRPC_OSA_DATA_READ = 7,
365 MRPC_OSA_REL_ACCESS_PERM = 8,
366 MRPC_OSA_TYPE_TRIG_CONFIG_GEN6 = 9,
367 MRPC_OSA_CAPTURE_CTRL_GEN6 = 10,
368 MRPC_OSA_CONFIG_DMP_GEN6 = 11,
369 MRPC_OSA_STATUS_QUERY_GEN6 = 12,
371 MRPC_GET_SECURE_OTP = 0,
372 MRPC_GET_SECURE_STATUS = 1,
373 MRPC_GET_SECURE_BOOT_STATUS_PINSTRAP = 2,