1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /**************************************************************************** 3 * Driver for Solarflare network controllers and boards 4 * Copyright 2009-2018 Solarflare Communications Inc. 5 * Copyright 2019-2020 Xilinx Inc. 6 */ 7 8 9 #ifndef MCDI_PCOL_H 10 #define MCDI_PCOL_H 11 12 /* Values to be written into FMCR_CZ_RESET_STATE_REG to control boot. */ 13 /* Power-on reset state */ 14 #define MC_FW_STATE_POR (1) 15 /* If this is set in MC_RESET_STATE_REG then it should be 16 * possible to jump into IMEM without loading code from flash. */ 17 #define MC_FW_WARM_BOOT_OK (2) 18 /* The MC main image has started to boot. */ 19 #define MC_FW_STATE_BOOTING (4) 20 /* The Scheduler has started. */ 21 #define MC_FW_STATE_SCHED (8) 22 /* If this is set in MC_RESET_STATE_REG then it should be 23 * possible to jump into IMEM without loading code from flash. 24 * Unlike a warm boot, assume DMEM has been reloaded, so that 25 * the MC persistent data must be reinitialised. */ 26 #define MC_FW_TEPID_BOOT_OK (16) 27 /* We have entered the main firmware via recovery mode. This 28 * means that MC persistent data must be reinitialised, but that 29 * we shouldn't touch PCIe config. */ 30 #define MC_FW_RECOVERY_MODE_PCIE_INIT_OK (32) 31 /* BIST state has been initialized */ 32 #define MC_FW_BIST_INIT_OK (128) 33 34 /* Siena MC shared memmory offsets */ 35 /* The 'doorbell' addresses are hard-wired to alert the MC when written */ 36 #define MC_SMEM_P0_DOORBELL_OFST 0x000 37 #define MC_SMEM_P1_DOORBELL_OFST 0x004 38 /* The rest of these are firmware-defined */ 39 #define MC_SMEM_P0_PDU_OFST 0x008 40 #define MC_SMEM_P1_PDU_OFST 0x108 41 #define MC_SMEM_PDU_LEN 0x100 42 #define MC_SMEM_P0_PTP_TIME_OFST 0x7f0 43 #define MC_SMEM_P0_STATUS_OFST 0x7f8 44 #define MC_SMEM_P1_STATUS_OFST 0x7fc 45 46 /* Values to be written to the per-port status dword in shared 47 * memory on reboot and assert */ 48 #define MC_STATUS_DWORD_REBOOT (0xb007b007) 49 #define MC_STATUS_DWORD_ASSERT (0xdeaddead) 50 51 /* Check whether an mcfw version (in host order) belongs to a bootloader */ 52 #define MC_FW_VERSION_IS_BOOTLOADER(_v) (((_v) >> 16) == 0xb007) 53 54 /* The current version of the MCDI protocol. 55 * 56 * Note that the ROM burnt into the card only talks V0, so at the very 57 * least every driver must support version 0 and MCDI_PCOL_VERSION 58 */ 59 #define MCDI_PCOL_VERSION 2 60 61 /* Unused commands: 0x23, 0x27, 0x30, 0x31 */ 62 63 /* MCDI version 1 64 * 65 * Each MCDI request starts with an MCDI_HEADER, which is a 32bit 66 * structure, filled in by the client. 67 * 68 * 0 7 8 16 20 22 23 24 31 69 * | CODE | R | LEN | SEQ | Rsvd | E | R | XFLAGS | 70 * | | | 71 * | | \--- Response 72 * | \------- Error 73 * \------------------------------ Resync (always set) 74 * 75 * The client writes its request into MC shared memory, and rings the 76 * doorbell. Each request is completed either by the MC writing 77 * back into shared memory, or by writing out an event. 78 * 79 * All MCDI commands support completion by shared memory response. Each 80 * request may also contain additional data (accounted for by HEADER.LEN), 81 * and some responses may also contain additional data (again, accounted 82 * for by HEADER.LEN). 83 * 84 * Some MCDI commands support completion by event, in which any associated 85 * response data is included in the event. 86 * 87 * The protocol requires one response to be delivered for every request; a 88 * request should not be sent unless the response for the previous request 89 * has been received (either by polling shared memory, or by receiving 90 * an event). 91 */ 92 93 /** Request/Response structure */ 94 #define MCDI_HEADER_OFST 0 95 #define MCDI_HEADER_CODE_LBN 0 96 #define MCDI_HEADER_CODE_WIDTH 7 97 #define MCDI_HEADER_RESYNC_LBN 7 98 #define MCDI_HEADER_RESYNC_WIDTH 1 99 #define MCDI_HEADER_DATALEN_LBN 8 100 #define MCDI_HEADER_DATALEN_WIDTH 8 101 #define MCDI_HEADER_SEQ_LBN 16 102 #define MCDI_HEADER_SEQ_WIDTH 4 103 #define MCDI_HEADER_RSVD_LBN 20 104 #define MCDI_HEADER_RSVD_WIDTH 1 105 #define MCDI_HEADER_NOT_EPOCH_LBN 21 106 #define MCDI_HEADER_NOT_EPOCH_WIDTH 1 107 #define MCDI_HEADER_ERROR_LBN 22 108 #define MCDI_HEADER_ERROR_WIDTH 1 109 #define MCDI_HEADER_RESPONSE_LBN 23 110 #define MCDI_HEADER_RESPONSE_WIDTH 1 111 #define MCDI_HEADER_XFLAGS_LBN 24 112 #define MCDI_HEADER_XFLAGS_WIDTH 8 113 /* Request response using event */ 114 #define MCDI_HEADER_XFLAGS_EVREQ 0x01 115 /* Request (and signal) early doorbell return */ 116 #define MCDI_HEADER_XFLAGS_DBRET 0x02 117 118 /* Maximum number of payload bytes */ 119 #define MCDI_CTL_SDU_LEN_MAX_V1 0xfc 120 #define MCDI_CTL_SDU_LEN_MAX_V2 0x400 121 122 #define MCDI_CTL_SDU_LEN_MAX MCDI_CTL_SDU_LEN_MAX_V2 123 124 125 /* The MC can generate events for two reasons: 126 * - To advance a shared memory request if XFLAGS_EVREQ was set 127 * - As a notification (link state, i2c event), controlled 128 * via MC_CMD_LOG_CTRL 129 * 130 * Both events share a common structure: 131 * 132 * 0 32 33 36 44 52 60 133 * | Data | Cont | Level | Src | Code | Rsvd | 134 * | 135 * \ There is another event pending in this notification 136 * 137 * If Code==CMDDONE, then the fields are further interpreted as: 138 * 139 * - LEVEL==INFO Command succeeded 140 * - LEVEL==ERR Command failed 141 * 142 * 0 8 16 24 32 143 * | Seq | Datalen | Errno | Rsvd | 144 * 145 * These fields are taken directly out of the standard MCDI header, i.e., 146 * LEVEL==ERR, Datalen == 0 => Reboot 147 * 148 * Events can be squirted out of the UART (using LOG_CTRL) without a 149 * MCDI header. An event can be distinguished from a MCDI response by 150 * examining the first byte which is 0xc0. This corresponds to the 151 * non-existent MCDI command MC_CMD_DEBUG_LOG. 152 * 153 * 0 7 8 154 * | command | Resync | = 0xc0 155 * 156 * Since the event is written in big-endian byte order, this works 157 * providing bits 56-63 of the event are 0xc0. 158 * 159 * 56 60 63 160 * | Rsvd | Code | = 0xc0 161 * 162 * Which means for convenience the event code is 0xc for all MC 163 * generated events. 164 */ 165 #define FSE_AZ_EV_CODE_MCDI_EVRESPONSE 0xc 166 167 168 169 #define MC_CMD_ERR_CODE_OFST 0 170 #define MC_CMD_ERR_PROXY_PENDING_HANDLE_OFST 4 171 172 /* We define 8 "escape" commands to allow 173 for command number space extension */ 174 175 #define MC_CMD_CMD_SPACE_ESCAPE_0 0x78 176 #define MC_CMD_CMD_SPACE_ESCAPE_1 0x79 177 #define MC_CMD_CMD_SPACE_ESCAPE_2 0x7A 178 #define MC_CMD_CMD_SPACE_ESCAPE_3 0x7B 179 #define MC_CMD_CMD_SPACE_ESCAPE_4 0x7C 180 #define MC_CMD_CMD_SPACE_ESCAPE_5 0x7D 181 #define MC_CMD_CMD_SPACE_ESCAPE_6 0x7E 182 #define MC_CMD_CMD_SPACE_ESCAPE_7 0x7F 183 184 /* Vectors in the boot ROM */ 185 /* Point to the copycode entry point. */ 186 #define SIENA_MC_BOOTROM_COPYCODE_VEC (0x800 - 3 * 0x4) 187 #define HUNT_MC_BOOTROM_COPYCODE_VEC (0x8000 - 3 * 0x4) 188 #define MEDFORD_MC_BOOTROM_COPYCODE_VEC (0x10000 - 3 * 0x4) 189 /* Points to the recovery mode entry point. Misnamed but kept for compatibility. */ 190 #define SIENA_MC_BOOTROM_NOFLASH_VEC (0x800 - 2 * 0x4) 191 #define HUNT_MC_BOOTROM_NOFLASH_VEC (0x8000 - 2 * 0x4) 192 #define MEDFORD_MC_BOOTROM_NOFLASH_VEC (0x10000 - 2 * 0x4) 193 /* Points to the recovery mode entry point. Same as above, but the right name. */ 194 #define SIENA_MC_BOOTROM_RECOVERY_VEC (0x800 - 2 * 0x4) 195 #define HUNT_MC_BOOTROM_RECOVERY_VEC (0x8000 - 2 * 0x4) 196 #define MEDFORD_MC_BOOTROM_RECOVERY_VEC (0x10000 - 2 * 0x4) 197 198 /* Points to noflash mode entry point. */ 199 #define MEDFORD_MC_BOOTROM_REAL_NOFLASH_VEC (0x10000 - 4 * 0x4) 200 201 /* The command set exported by the boot ROM (MCDI v0) */ 202 #define MC_CMD_GET_VERSION_V0_SUPPORTED_FUNCS { \ 203 (1 << MC_CMD_READ32) | \ 204 (1 << MC_CMD_WRITE32) | \ 205 (1 << MC_CMD_COPYCODE) | \ 206 (1 << MC_CMD_GET_VERSION), \ 207 0, 0, 0 } 208 209 #define MC_CMD_SENSOR_INFO_OUT_OFFSET_OFST(_x) \ 210 (MC_CMD_SENSOR_ENTRY_OFST + (_x)) 211 212 #define MC_CMD_DBI_WRITE_IN_ADDRESS_OFST(n) \ 213 (MC_CMD_DBI_WRITE_IN_DBIWROP_OFST + \ 214 MC_CMD_DBIWROP_TYPEDEF_ADDRESS_OFST + \ 215 (n) * MC_CMD_DBIWROP_TYPEDEF_LEN) 216 217 #define MC_CMD_DBI_WRITE_IN_BYTE_MASK_OFST(n) \ 218 (MC_CMD_DBI_WRITE_IN_DBIWROP_OFST + \ 219 MC_CMD_DBIWROP_TYPEDEF_BYTE_MASK_OFST + \ 220 (n) * MC_CMD_DBIWROP_TYPEDEF_LEN) 221 222 #define MC_CMD_DBI_WRITE_IN_VALUE_OFST(n) \ 223 (MC_CMD_DBI_WRITE_IN_DBIWROP_OFST + \ 224 MC_CMD_DBIWROP_TYPEDEF_VALUE_OFST + \ 225 (n) * MC_CMD_DBIWROP_TYPEDEF_LEN) 226 227 /* This may be ORed with an EVB_PORT_ID_xxx constant to pass a non-default 228 * stack ID (which must be in the range 1-255) along with an EVB port ID. 229 */ 230 #define EVB_STACK_ID(n) (((n) & 0xff) << 16) 231 232 233 /* Version 2 adds an optional argument to error returns: the errno value 234 * may be followed by the (0-based) number of the first argument that 235 * could not be processed. 236 */ 237 #define MC_CMD_ERR_ARG_OFST 4 238 239 /* MC_CMD_ERR enum: Public MCDI error codes. Error codes that correspond to 240 * POSIX errnos should use the same numeric values that linux does. Error codes 241 * specific to Solarflare firmware should use values in the range 0x1000 - 242 * 0x10ff. The range 0x2000 - 0x20ff is reserved for private error codes (see 243 * MC_CMD_ERR_PRIV below). 244 */ 245 /* enum: Operation not permitted. */ 246 #define MC_CMD_ERR_EPERM 0x1 247 /* enum: Non-existent command target */ 248 #define MC_CMD_ERR_ENOENT 0x2 249 /* enum: assert() has killed the MC */ 250 #define MC_CMD_ERR_EINTR 0x4 251 /* enum: I/O failure */ 252 #define MC_CMD_ERR_EIO 0x5 253 /* enum: Already exists */ 254 #define MC_CMD_ERR_EEXIST 0x6 255 /* enum: Try again */ 256 #define MC_CMD_ERR_EAGAIN 0xb 257 /* enum: Out of memory */ 258 #define MC_CMD_ERR_ENOMEM 0xc 259 /* enum: Caller does not hold required locks */ 260 #define MC_CMD_ERR_EACCES 0xd 261 /* enum: Resource is currently unavailable (e.g. lock contention) */ 262 #define MC_CMD_ERR_EBUSY 0x10 263 /* enum: No such device */ 264 #define MC_CMD_ERR_ENODEV 0x13 265 /* enum: Invalid argument to target */ 266 #define MC_CMD_ERR_EINVAL 0x16 267 /* enum: No space */ 268 #define MC_CMD_ERR_ENOSPC 0x1c 269 /* enum: Read-only */ 270 #define MC_CMD_ERR_EROFS 0x1e 271 /* enum: Broken pipe */ 272 #define MC_CMD_ERR_EPIPE 0x20 273 /* enum: Out of range */ 274 #define MC_CMD_ERR_ERANGE 0x22 275 /* enum: Non-recursive resource is already acquired */ 276 #define MC_CMD_ERR_EDEADLK 0x23 277 /* enum: Operation not implemented */ 278 #define MC_CMD_ERR_ENOSYS 0x26 279 /* enum: Operation timed out */ 280 #define MC_CMD_ERR_ETIME 0x3e 281 /* enum: Link has been severed */ 282 #define MC_CMD_ERR_ENOLINK 0x43 283 /* enum: Protocol error */ 284 #define MC_CMD_ERR_EPROTO 0x47 285 /* enum: Bad message */ 286 #define MC_CMD_ERR_EBADMSG 0x4a 287 /* enum: Operation not supported */ 288 #define MC_CMD_ERR_ENOTSUP 0x5f 289 /* enum: Address not available */ 290 #define MC_CMD_ERR_EADDRNOTAVAIL 0x63 291 /* enum: Not connected */ 292 #define MC_CMD_ERR_ENOTCONN 0x6b 293 /* enum: Operation already in progress */ 294 #define MC_CMD_ERR_EALREADY 0x72 295 /* enum: Stale handle. The handle references a resource that no longer exists. 296 */ 297 #define MC_CMD_ERR_ESTALE 0x74 298 /* enum: Resource allocation failed. */ 299 #define MC_CMD_ERR_ALLOC_FAIL 0x1000 300 /* enum: V-adaptor not found. */ 301 #define MC_CMD_ERR_NO_VADAPTOR 0x1001 302 /* enum: EVB port not found. */ 303 #define MC_CMD_ERR_NO_EVB_PORT 0x1002 304 /* enum: V-switch not found. */ 305 #define MC_CMD_ERR_NO_VSWITCH 0x1003 306 /* enum: Too many VLAN tags. */ 307 #define MC_CMD_ERR_VLAN_LIMIT 0x1004 308 /* enum: Bad PCI function number. */ 309 #define MC_CMD_ERR_BAD_PCI_FUNC 0x1005 310 /* enum: Invalid VLAN mode. */ 311 #define MC_CMD_ERR_BAD_VLAN_MODE 0x1006 312 /* enum: Invalid v-switch type. */ 313 #define MC_CMD_ERR_BAD_VSWITCH_TYPE 0x1007 314 /* enum: Invalid v-port type. */ 315 #define MC_CMD_ERR_BAD_VPORT_TYPE 0x1008 316 /* enum: MAC address exists. */ 317 #define MC_CMD_ERR_MAC_EXIST 0x1009 318 /* enum: Slave core not present */ 319 #define MC_CMD_ERR_SLAVE_NOT_PRESENT 0x100a 320 /* enum: The datapath is disabled. */ 321 #define MC_CMD_ERR_DATAPATH_DISABLED 0x100b 322 /* enum: The requesting client is not a function */ 323 #define MC_CMD_ERR_CLIENT_NOT_FN 0x100c 324 /* enum: The requested operation might require the command to be passed between 325 * MCs, and the transport doesn't support that. Should only ever been seen over 326 * the UART. 327 */ 328 #define MC_CMD_ERR_TRANSPORT_NOPROXY 0x100d 329 /* enum: VLAN tag(s) exists */ 330 #define MC_CMD_ERR_VLAN_EXIST 0x100e 331 /* enum: No MAC address assigned to an EVB port */ 332 #define MC_CMD_ERR_NO_MAC_ADDR 0x100f 333 /* enum: Notifies the driver that the request has been relayed to an admin 334 * function for authorization. The driver should wait for a PROXY_RESPONSE 335 * event and then resend its request. This error code is followed by a 32-bit 336 * handle that helps matching it with the respective PROXY_RESPONSE event. 337 */ 338 #define MC_CMD_ERR_PROXY_PENDING 0x1010 339 /* enum: The request cannot be passed for authorization because another request 340 * from the same function is currently being authorized. The drvier should try 341 * again later. 342 */ 343 #define MC_CMD_ERR_PROXY_INPROGRESS 0x1011 344 /* enum: Returned by MC_CMD_PROXY_COMPLETE if the caller is not the function 345 * that has enabled proxying or BLOCK_INDEX points to a function that doesn't 346 * await an authorization. 347 */ 348 #define MC_CMD_ERR_PROXY_UNEXPECTED 0x1012 349 /* enum: This code is currently only used internally in FW. Its meaning is that 350 * an operation failed due to lack of SR-IOV privilege. Normally it is 351 * translated to EPERM by send_cmd_err(), but it may also be used to trigger 352 * some special mechanism for handling such case, e.g. to relay the failed 353 * request to a designated admin function for authorization. 354 */ 355 #define MC_CMD_ERR_NO_PRIVILEGE 0x1013 356 /* enum: Workaround 26807 could not be turned on/off because some functions 357 * have already installed filters. See the comment at 358 * MC_CMD_WORKAROUND_BUG26807. May also returned for other operations such as 359 * sub-variant switching. 360 */ 361 #define MC_CMD_ERR_FILTERS_PRESENT 0x1014 362 /* enum: The clock whose frequency you've attempted to set doesn't exist on 363 * this NIC 364 */ 365 #define MC_CMD_ERR_NO_CLOCK 0x1015 366 /* enum: Returned by MC_CMD_TESTASSERT if the action that should have caused an 367 * assertion failed to do so. 368 */ 369 #define MC_CMD_ERR_UNREACHABLE 0x1016 370 /* enum: This command needs to be processed in the background but there were no 371 * resources to do so. Send it again after a command has completed. 372 */ 373 #define MC_CMD_ERR_QUEUE_FULL 0x1017 374 /* enum: The operation could not be completed because the PCIe link has gone 375 * away. This error code is never expected to be returned over the TLP 376 * transport. 377 */ 378 #define MC_CMD_ERR_NO_PCIE 0x1018 379 /* enum: The operation could not be completed because the datapath has gone 380 * away. This is distinct from MC_CMD_ERR_DATAPATH_DISABLED in that the 381 * datapath absence may be temporary 382 */ 383 #define MC_CMD_ERR_NO_DATAPATH 0x1019 384 /* enum: The operation could not complete because some VIs are allocated */ 385 #define MC_CMD_ERR_VIS_PRESENT 0x101a 386 /* enum: The operation could not complete because some PIO buffers are 387 * allocated 388 */ 389 #define MC_CMD_ERR_PIOBUFS_PRESENT 0x101b 390 391 /* PCIE_INTERFACE enum: From EF100 onwards, SFC products can have multiple PCIe 392 * interfaces. There is a need to refer to interfaces explicitly from drivers 393 * (for example, a management driver on one interface administering a function 394 * on another interface). This enumeration provides stable identifiers to all 395 * interfaces present on a product. Product documentation will specify which 396 * interfaces exist and their associated identifier. In general, drivers, 397 * should not assign special meanings to specific values. Instead, behaviour 398 * should be determined by NIC configuration, which will identify interfaces 399 * where appropriate. 400 */ 401 /* enum: Primary host interfaces. Typically (i.e. for all known SFC products) 402 * the interface exposed on the edge connector (or form factor equivalent). 403 */ 404 #define PCIE_INTERFACE_HOST_PRIMARY 0x0 405 /* enum: Riverhead and keystone products have a second PCIe interface to which 406 * an on-NIC ARM module is expected to be connected. 407 */ 408 #define PCIE_INTERFACE_NIC_EMBEDDED 0x1 409 /* enum: The PCIe logical interface 0. It is an alias for HOST_PRIMARY. */ 410 #define PCIE_INTERFACE_PCIE_HOST_INTF_0 0x0 411 /* enum: The PCIe logical interface 1. */ 412 #define PCIE_INTERFACE_PCIE_HOST_INTF_1 0x2 413 /* enum: The PCIe logical interface 2. */ 414 #define PCIE_INTERFACE_PCIE_HOST_INTF_2 0x3 415 /* enum: The PCIe logical interface 3. */ 416 #define PCIE_INTERFACE_PCIE_HOST_INTF_3 0x4 417 /* enum: For MCDI commands issued over a PCIe interface, this value is 418 * translated into the interface over which the command was issued. Not 419 * meaningful for other MCDI transports. 420 */ 421 #define PCIE_INTERFACE_CALLER 0xffffffff 422 423 /* MC_CLIENT_ID_SPECIFIER enum */ 424 /* enum: Equivalent to the caller's client ID */ 425 #define MC_CMD_CLIENT_ID_SELF 0xffffffff 426 427 /* MAE_FIELD_SUPPORT_STATUS enum */ 428 /* enum: The NIC does not support this field. The driver must ensure that any 429 * mask associated with this field in a match rule is zeroed. The NIC may 430 * either reject requests with an invalid mask for such a field, or may assume 431 * that the mask is zero. (This category only exists to describe behaviour for 432 * fields that a newer driver might know about but that older firmware does 433 * not. It is recommended that firmware report MAE_FIELD_FIELD_MATCH_NEVER for 434 * all match fields defined at the time of its compilation. If a driver see a 435 * field support status value that it does not recognise, it must treat that 436 * field as thought the field was reported as MAE_FIELD_SUPPORTED_MATCH_NEVER, 437 * and must never set a non-zero mask value for this field. 438 */ 439 #define MAE_FIELD_UNSUPPORTED 0x0 440 /* enum: The NIC supports this field, but cannot use it in a match rule. The 441 * driver must ensure that any mask for such a field in a match rule is zeroed. 442 * The NIC will reject requests with an invalid mask for such a field. 443 */ 444 #define MAE_FIELD_SUPPORTED_MATCH_NEVER 0x1 445 /* enum: The NIC supports this field, and must use it in all match rules. The 446 * driver must ensure that any mask for such a field is all ones. The NIC will 447 * reject requests with an invalid mask for such a field. 448 */ 449 #define MAE_FIELD_SUPPORTED_MATCH_ALWAYS 0x2 450 /* enum: The NIC supports this field, and may optionally use it in match rules. 451 * The driver must ensure that any mask for such a field is either all zeroes 452 * or all ones. The NIC will reject requests with an invalid mask for such a 453 * field. 454 */ 455 #define MAE_FIELD_SUPPORTED_MATCH_OPTIONAL 0x3 456 /* enum: The NIC supports this field, and may optionally use it in match rules. 457 * The driver must ensure that any mask for such a field is either all zeroes 458 * or a consecutive set of ones following by all zeroes (starting from MSB). 459 * The NIC will reject requests with an invalid mask for such a field. 460 */ 461 #define MAE_FIELD_SUPPORTED_MATCH_PREFIX 0x4 462 /* enum: The NIC supports this field, and may optionally use it in match rules. 463 * The driver may provide an arbitrary mask for such a field. 464 */ 465 #define MAE_FIELD_SUPPORTED_MATCH_MASK 0x5 466 467 /* MAE_CT_VNI_MODE enum: Controls the layout of the VNI input to the conntrack 468 * lookup. (Values are not arbitrary - constrained by table access ABI.) 469 */ 470 /* enum: The VNI input to the conntrack lookup will be zero. */ 471 #define MAE_CT_VNI_MODE_ZERO 0x0 472 /* enum: The VNI input to the conntrack lookup will be the VNI (VXLAN/Geneve) 473 * or VSID (NVGRE) field from the packet. 474 */ 475 #define MAE_CT_VNI_MODE_VNI 0x1 476 /* enum: The VNI input to the conntrack lookup will be the VLAN ID from the 477 * outermost VLAN tag (in bottom 12 bits; top 12 bits zero). 478 */ 479 #define MAE_CT_VNI_MODE_1VLAN 0x2 480 /* enum: The VNI input to the conntrack lookup will be the VLAN IDs from both 481 * VLAN tags (outermost in bottom 12 bits, innermost in top 12 bits). 482 */ 483 #define MAE_CT_VNI_MODE_2VLAN 0x3 484 485 /* MAE_FIELD enum: NB: this enum shares namespace with the support status enum. 486 */ 487 /* enum: Source mport upon entering the MAE. */ 488 #define MAE_FIELD_INGRESS_PORT 0x0 489 #define MAE_FIELD_MARK 0x1 /* enum */ 490 /* enum: Table ID used in action rule. Initially zero, can be changed in action 491 * rule response. 492 */ 493 #define MAE_FIELD_RECIRC_ID 0x2 494 #define MAE_FIELD_IS_IP_FRAG 0x3 /* enum */ 495 #define MAE_FIELD_DO_CT 0x4 /* enum */ 496 #define MAE_FIELD_CT_HIT 0x5 /* enum */ 497 /* enum: Undefined unless CT_HIT=1. */ 498 #define MAE_FIELD_CT_MARK 0x6 499 /* enum: Undefined unless DO_CT=1. */ 500 #define MAE_FIELD_CT_DOMAIN 0x7 501 /* enum: Undefined unless CT_HIT=1. */ 502 #define MAE_FIELD_CT_PRIVATE_FLAGS 0x8 503 /* enum: 1 if the packet ingressed the NIC from one of the MACs, else 0. */ 504 #define MAE_FIELD_IS_FROM_NETWORK 0x9 505 /* enum: 1 if the packet has 1 or more VLAN tags, else 0. */ 506 #define MAE_FIELD_HAS_OVLAN 0xa 507 /* enum: 1 if the packet has 2 or more VLAN tags, else 0. */ 508 #define MAE_FIELD_HAS_IVLAN 0xb 509 /* enum: 1 if the outer packet has 1 or more VLAN tags, else 0; only present 510 * when encap 511 */ 512 #define MAE_FIELD_ENC_HAS_OVLAN 0xc 513 /* enum: 1 if the outer packet has 2 or more VLAN tags, else 0; only present 514 * when encap 515 */ 516 #define MAE_FIELD_ENC_HAS_IVLAN 0xd 517 /* enum: Packet is IP fragment */ 518 #define MAE_FIELD_ENC_IP_FRAG 0xe 519 #define MAE_FIELD_ETHER_TYPE 0x21 /* enum */ 520 #define MAE_FIELD_VLAN0_TCI 0x22 /* enum */ 521 #define MAE_FIELD_VLAN0_PROTO 0x23 /* enum */ 522 #define MAE_FIELD_VLAN1_TCI 0x24 /* enum */ 523 #define MAE_FIELD_VLAN1_PROTO 0x25 /* enum */ 524 /* enum: Inner when encap */ 525 #define MAE_FIELD_ETH_SADDR 0x28 526 /* enum: Inner when encap */ 527 #define MAE_FIELD_ETH_DADDR 0x29 528 /* enum: Inner when encap. NB: IPv4 and IPv6 fields are mutually exclusive. */ 529 #define MAE_FIELD_SRC_IP4 0x2a 530 /* enum: Inner when encap */ 531 #define MAE_FIELD_SRC_IP6 0x2b 532 /* enum: Inner when encap */ 533 #define MAE_FIELD_DST_IP4 0x2c 534 /* enum: Inner when encap */ 535 #define MAE_FIELD_DST_IP6 0x2d 536 /* enum: Inner when encap */ 537 #define MAE_FIELD_IP_PROTO 0x2e 538 /* enum: Inner when encap */ 539 #define MAE_FIELD_IP_TOS 0x2f 540 /* enum: Inner when encap */ 541 #define MAE_FIELD_IP_TTL 0x30 542 /* enum: Inner when encap TODO: how this is defined? The raw flags + 543 * frag_offset from the packet, or some derived value more amenable to ternary 544 * matching? TODO: there was a proposal for driver-allocation fields. The 545 * driver would provide some instruction for how to extract given field values, 546 * and would be given a field id in return. It could then use that field id in 547 * its matches. This feels like it would be extremely hard to implement in 548 * hardware, but I mention it for completeness. 549 */ 550 #define MAE_FIELD_IP_FLAGS 0x31 551 /* enum: Ports (UDP, TCP) Inner when encap */ 552 #define MAE_FIELD_L4_SPORT 0x32 553 /* enum: Ports (UDP, TCP) Inner when encap */ 554 #define MAE_FIELD_L4_DPORT 0x33 555 /* enum: Inner when encap */ 556 #define MAE_FIELD_TCP_FLAGS 0x34 557 /* enum: TCP packet with any of SYN, FIN or RST flag set */ 558 #define MAE_FIELD_TCP_SYN_FIN_RST 0x35 559 /* enum: Packet is IP fragment with fragment offset 0 */ 560 #define MAE_FIELD_IP_FIRST_FRAG 0x36 561 /* enum: The type of encapsulated used for this packet. Value as per 562 * ENCAP_TYPE_*. 563 */ 564 #define MAE_FIELD_ENCAP_TYPE 0x3f 565 /* enum: The ID of the outer rule that marked this packet as encapsulated. 566 * Useful for implicitly matching on outer fields. 567 */ 568 #define MAE_FIELD_OUTER_RULE_ID 0x40 569 /* enum: Outer; only present when encap */ 570 #define MAE_FIELD_ENC_ETHER_TYPE 0x41 571 /* enum: Outer; only present when encap */ 572 #define MAE_FIELD_ENC_VLAN0_TCI 0x42 573 /* enum: Outer; only present when encap */ 574 #define MAE_FIELD_ENC_VLAN0_PROTO 0x43 575 /* enum: Outer; only present when encap */ 576 #define MAE_FIELD_ENC_VLAN1_TCI 0x44 577 /* enum: Outer; only present when encap */ 578 #define MAE_FIELD_ENC_VLAN1_PROTO 0x45 579 /* enum: Outer; only present when encap */ 580 #define MAE_FIELD_ENC_ETH_SADDR 0x48 581 /* enum: Outer; only present when encap */ 582 #define MAE_FIELD_ENC_ETH_DADDR 0x49 583 /* enum: Outer; only present when encap */ 584 #define MAE_FIELD_ENC_SRC_IP4 0x4a 585 /* enum: Outer; only present when encap */ 586 #define MAE_FIELD_ENC_SRC_IP6 0x4b 587 /* enum: Outer; only present when encap */ 588 #define MAE_FIELD_ENC_DST_IP4 0x4c 589 /* enum: Outer; only present when encap */ 590 #define MAE_FIELD_ENC_DST_IP6 0x4d 591 /* enum: Outer; only present when encap */ 592 #define MAE_FIELD_ENC_IP_PROTO 0x4e 593 /* enum: Outer; only present when encap */ 594 #define MAE_FIELD_ENC_IP_TOS 0x4f 595 /* enum: Outer; only present when encap */ 596 #define MAE_FIELD_ENC_IP_TTL 0x50 597 /* enum: Outer; only present when encap */ 598 #define MAE_FIELD_ENC_IP_FLAGS 0x51 599 /* enum: Outer; only present when encap */ 600 #define MAE_FIELD_ENC_L4_SPORT 0x52 601 /* enum: Outer; only present when encap */ 602 #define MAE_FIELD_ENC_L4_DPORT 0x53 603 /* enum: VNI (when VXLAN or GENEVE) VSID (when NVGRE) Bottom 24 bits of Key 604 * (when L2GRE) Outer; only present when encap 605 */ 606 #define MAE_FIELD_ENC_VNET_ID 0x54 607 608 /* MAE_MCDI_ENCAP_TYPE enum: Encapsulation type. Defines how the payload will 609 * be parsed to an inner frame. Other values are reserved. Unknown values 610 * should be treated same as NONE. (Values are not arbitrary - constrained by 611 * table access ABI.) 612 */ 613 #define MAE_MCDI_ENCAP_TYPE_NONE 0x0 /* enum */ 614 /* enum: Don't assume enum aligns with support bitmask... */ 615 #define MAE_MCDI_ENCAP_TYPE_VXLAN 0x1 616 #define MAE_MCDI_ENCAP_TYPE_NVGRE 0x2 /* enum */ 617 #define MAE_MCDI_ENCAP_TYPE_GENEVE 0x3 /* enum */ 618 #define MAE_MCDI_ENCAP_TYPE_L2GRE 0x4 /* enum */ 619 620 /* MAE_MPORT_END enum: Selects which end of the logical link identified by an 621 * MPORT_SELECTOR is targeted by an operation. 622 */ 623 /* enum: Selects the port on the MAE virtual switch */ 624 #define MAE_MPORT_END_MAE 0x1 625 /* enum: Selects the virtual NIC plugged into the MAE switch */ 626 #define MAE_MPORT_END_VNIC 0x2 627 628 /* MAE_COUNTER_TYPE enum: The datapath maintains several sets of counters, each 629 * being associated with a different table. Note that the same counter ID may 630 * be allocated by different counter blocks, so e.g. AR counter 42 is different 631 * from CT counter 42. Generation counts are also type-specific. This value is 632 * also present in the header of streaming counter packets, in the IDENTIFIER 633 * field (see packetiser packet format definitions). Also note that LACP 634 * counter IDs are not allocated individually, instead the counter IDs are 635 * directly tied to the LACP balance table indices. These in turn are allocated 636 * in large contiguous blocks as a LAG config. Calling MAE_COUNTER_ALLOC/FREE 637 * with an LACP counter type will return EPERM. 638 */ 639 /* enum: Action Rule counters - can be referenced in AR response. */ 640 #define MAE_COUNTER_TYPE_AR 0x0 641 /* enum: Conntrack counters - can be referenced in CT response. */ 642 #define MAE_COUNTER_TYPE_CT 0x1 643 /* enum: Outer Rule counters - can be referenced in OR response. */ 644 #define MAE_COUNTER_TYPE_OR 0x2 645 /* enum: LACP counters - linked to LACP balance table entries. */ 646 #define MAE_COUNTER_TYPE_LACP 0x3 647 648 /* MAE_COUNTER_ID enum: ID of allocated counter or counter list. */ 649 /* enum: A counter ID that is guaranteed never to represent a real counter or 650 * counter list. 651 */ 652 #define MAE_COUNTER_ID_NULL 0xffffffff 653 654 /* TABLE_ID enum: Unique IDs for tables. The 32-bit ID values have been 655 * structured with bits [31:24] reserved (0), [23:16] indicating which major 656 * block the tables belongs to (0=VNIC TX, none currently; 1=MAE; 2=VNIC RX), 657 * [15:8] a unique ID within the block, and [7:0] reserved for future 658 * variations of the same table. (All of the tables currently defined within 659 * the streaming engines are listed here, but this does not imply that they are 660 * all supported - MC_CMD_TABLE_LIST returns the list of actually supported 661 * tables.) The DPU offload engines' enumerators follow a deliberate pattern: 662 * 0x01010000 + is_dpu_net * 0x10000 + is_wr_or_tx * 0x8000 + is_lite_pipe * 663 * 0x1000 + oe_engine_type * 0x100 + oe_instance_within_pipe * 0x10 664 */ 665 /* enum: Outer_Rule_Table in the MAE - refer to SF-123102-TC. */ 666 #define TABLE_ID_OUTER_RULE_TABLE 0x10000 667 /* enum: Outer_Rule_No_CT_Table in the MAE - refer to SF-123102-TC. */ 668 #define TABLE_ID_OUTER_RULE_NO_CT_TABLE 0x10100 669 /* enum: Mgmt_Filter_Table in the MAE - refer to SF-123102-TC. */ 670 #define TABLE_ID_MGMT_FILTER_TABLE 0x10200 671 /* enum: Conntrack_Table in the MAE - refer to SF-123102-TC. */ 672 #define TABLE_ID_CONNTRACK_TABLE 0x10300 673 /* enum: Action_Rule_Table in the MAE - refer to SF-123102-TC. */ 674 #define TABLE_ID_ACTION_RULE_TABLE 0x10400 675 /* enum: Mgroup_Default_Action_Set_Table in the MAE - refer to SF-123102-TC. */ 676 #define TABLE_ID_MGROUP_DEFAULT_ACTION_SET_TABLE 0x10500 677 /* enum: Encap_Hdr_Part1_Table in the MAE - refer to SF-123102-TC. */ 678 #define TABLE_ID_ENCAP_HDR_PART1_TABLE 0x10600 679 /* enum: Encap_Hdr_Part2_Table in the MAE - refer to SF-123102-TC. */ 680 #define TABLE_ID_ENCAP_HDR_PART2_TABLE 0x10700 681 /* enum: Replace_Src_MAC_Table in the MAE - refer to SF-123102-TC. */ 682 #define TABLE_ID_REPLACE_SRC_MAC_TABLE 0x10800 683 /* enum: Replace_Dst_MAC_Table in the MAE - refer to SF-123102-TC. */ 684 #define TABLE_ID_REPLACE_DST_MAC_TABLE 0x10900 685 /* enum: Dst_Mport_VC_Table in the MAE - refer to SF-123102-TC. */ 686 #define TABLE_ID_DST_MPORT_VC_TABLE 0x10a00 687 /* enum: LACP_LAG_Config_Table in the MAE - refer to SF-123102-TC. */ 688 #define TABLE_ID_LACP_LAG_CONFIG_TABLE 0x10b00 689 /* enum: LACP_Balance_Table in the MAE - refer to SF-123102-TC. */ 690 #define TABLE_ID_LACP_BALANCE_TABLE 0x10c00 691 /* enum: Dst_Mport_Host_Chan_Table in the MAE - refer to SF-123102-TC. */ 692 #define TABLE_ID_DST_MPORT_HOST_CHAN_TABLE 0x10d00 693 /* enum: VNIC_Rx_Encap_Table in VNIC Rx - refer to SF-123102-TC. */ 694 #define TABLE_ID_VNIC_RX_ENCAP_TABLE 0x20000 695 /* enum: Steering_Table in VNIC Rx - refer to SF-123102-TC. */ 696 #define TABLE_ID_STEERING_TABLE 0x20100 697 /* enum: RSS_Context_Table in VNIC Rx - refer to SF-123102-TC. */ 698 #define TABLE_ID_RSS_CONTEXT_TABLE 0x20200 699 /* enum: Indirection_Table in VNIC Rx - refer to SF-123102-TC. */ 700 #define TABLE_ID_INDIRECTION_TABLE 0x20300 701 /* enum: DPU.host read pipe first CRC offload engine profiles - refer to 702 * XN-200147-AN. 703 */ 704 #define TABLE_ID_DPU_HOST_RD_CRC0_OE_PROFILE 0x1010000 705 /* enum: DPU.host read pipe second CRC offload engine profiles - refer to 706 * XN-200147-AN. 707 */ 708 #define TABLE_ID_DPU_HOST_RD_CRC1_OE_PROFILE 0x1010010 709 /* enum: DPU.host write pipe first CRC offload engine profiles - refer to 710 * XN-200147-AN. 711 */ 712 #define TABLE_ID_DPU_HOST_WR_CRC0_OE_PROFILE 0x1018000 713 /* enum: DPU.host write pipe second CRC offload engine profiles - refer to 714 * XN-200147-AN. 715 */ 716 #define TABLE_ID_DPU_HOST_WR_CRC1_OE_PROFILE 0x1018010 717 /* enum: DPU.net 'full' receive pipe CRC offload engine profiles - refer to 718 * XN-200147-AN. 719 */ 720 #define TABLE_ID_DPU_NET_RX_CRC0_OE_PROFILE 0x1020000 721 /* enum: DPU.net 'full' receive pipe first checksum offload engine profiles - 722 * refer to XN-200147-AN. 723 */ 724 #define TABLE_ID_DPU_NET_RX_CSUM0_OE_PROFILE 0x1020100 725 /* enum: DPU.net 'full' receive pipe second checksum offload engine profiles - 726 * refer to XN-200147-AN. 727 */ 728 #define TABLE_ID_DPU_NET_RX_CSUM1_OE_PROFILE 0x1020110 729 /* enum: DPU.net 'full' receive pipe AES-GCM offload engine profiles - refer to 730 * XN-200147-AN. 731 */ 732 #define TABLE_ID_DPU_NET_RX_AES_GCM0_OE_PROFILE 0x1020200 733 /* enum: DPU.net 'lite' receive pipe CRC offload engine profiles - refer to 734 * XN-200147-AN. 735 */ 736 #define TABLE_ID_DPU_NET_RXLITE_CRC0_OE_PROFILE 0x1021000 737 /* enum: DPU.net 'lite' receive pipe checksum offload engine profiles - refer 738 * to XN-200147-AN. 739 */ 740 #define TABLE_ID_DPU_NET_RXLITE_CSUM0_OE_PROFILE 0x1021100 741 /* enum: DPU.net 'full' transmit pipe CRC offload engine profiles - refer to 742 * XN-200147-AN. 743 */ 744 #define TABLE_ID_DPU_NET_TX_CRC0_OE_PROFILE 0x1028000 745 /* enum: DPU.net 'full' transmit pipe first checksum offload engine profiles - 746 * refer to XN-200147-AN. 747 */ 748 #define TABLE_ID_DPU_NET_TX_CSUM0_OE_PROFILE 0x1028100 749 /* enum: DPU.net 'full' transmit pipe second checksum offload engine profiles - 750 * refer to XN-200147-AN. 751 */ 752 #define TABLE_ID_DPU_NET_TX_CSUM1_OE_PROFILE 0x1028110 753 /* enum: DPU.net 'full' transmit pipe AES-GCM offload engine profiles - refer 754 * to XN-200147-AN. 755 */ 756 #define TABLE_ID_DPU_NET_TX_AES_GCM0_OE_PROFILE 0x1028200 757 /* enum: DPU.net 'lite' transmit pipe CRC offload engine profiles - refer to 758 * XN-200147-AN. 759 */ 760 #define TABLE_ID_DPU_NET_TXLITE_CRC0_OE_PROFILE 0x1029000 761 /* enum: DPU.net 'lite' transmit pipe checksum offload engine profiles - refer 762 * to XN-200147-AN. 763 */ 764 #define TABLE_ID_DPU_NET_TXLITE_CSUM0_OE_PROFILE 0x1029100 765 766 /* TABLE_FIELD_ID enum: Unique IDs for fields. Related concepts have been 767 * loosely grouped together into blocks with gaps for expansion, but the values 768 * are arbitrary. Field IDs are not specific to particular tables, and in some 769 * cases this sharing means that they are not used with the exact names of the 770 * corresponding table definitions in SF-123102-TC; however, the mapping should 771 * still be clear. The intent is that a list of fields, with their associated 772 * bit widths and semantics version code, unambiguously defines the semantics 773 * of the fields in a key or response. (Again, this list includes all of the 774 * fields currently defined within the streaming engines, but only a subset may 775 * actually be used by the supported list of tables.) 776 */ 777 /* enum: May appear multiple times within a key or response, and indicates that 778 * the field is unused and should be set to 0 (or masked out if permitted by 779 * the MASK_VALUE for this field). 780 */ 781 #define TABLE_FIELD_ID_UNUSED 0x0 782 /* enum: Source m-port (a full m-port label). */ 783 #define TABLE_FIELD_ID_SRC_MPORT 0x1 784 /* enum: Destination m-port (a full m-port label). */ 785 #define TABLE_FIELD_ID_DST_MPORT 0x2 786 /* enum: Source m-group ID. */ 787 #define TABLE_FIELD_ID_SRC_MGROUP_ID 0x3 788 /* enum: Physical network port ID (or m-port ID; same thing, for physical 789 * network ports). 790 */ 791 #define TABLE_FIELD_ID_NETWORK_PORT_ID 0x4 792 /* enum: True if packet arrived via network port, false if it arrived via host. 793 */ 794 #define TABLE_FIELD_ID_IS_FROM_NETWORK 0x5 795 /* enum: Full virtual channel from capsule header. */ 796 #define TABLE_FIELD_ID_CH_VC 0x6 797 /* enum: Low bits of virtual channel from capsule header. */ 798 #define TABLE_FIELD_ID_CH_VC_LOW 0x7 799 /* enum: User mark value in metadata and packet prefix. */ 800 #define TABLE_FIELD_ID_USER_MARK 0x8 801 /* enum: User flag value in metadata and packet prefix. */ 802 #define TABLE_FIELD_ID_USER_FLAG 0x9 803 /* enum: Counter ID associated with a response. All-bits-1 is a null value to 804 * suppress counting. 805 */ 806 #define TABLE_FIELD_ID_COUNTER_ID 0xa 807 /* enum: Discriminator which may be set by plugins in some lookup keys; this 808 * allows plugins to make a reinterpretation of packet fields in these keys 809 * without clashing with the normal interpretation. 810 */ 811 #define TABLE_FIELD_ID_DISCRIM 0xb 812 /* enum: Destination MAC address. The mapping from bytes in a frame to the 813 * 48-bit value for this field is in network order, i.e. a MAC address of 814 * AA:BB:CC:DD:EE:FF becomes a 48-bit value of 0xAABBCCDDEEFF. 815 */ 816 #define TABLE_FIELD_ID_DST_MAC 0x14 817 /* enum: Source MAC address (see notes for DST_MAC). */ 818 #define TABLE_FIELD_ID_SRC_MAC 0x15 819 /* enum: Outer VLAN tag TPID, compressed to an enumeration. */ 820 #define TABLE_FIELD_ID_OVLAN_TPID_COMPRESSED 0x16 821 /* enum: Full outer VLAN tag TCI (16 bits). */ 822 #define TABLE_FIELD_ID_OVLAN 0x17 823 /* enum: Outer VLAN ID (least significant 12 bits of full 16-bit TCI) only. */ 824 #define TABLE_FIELD_ID_OVLAN_VID 0x18 825 /* enum: Inner VLAN tag TPID, compressed to an enumeration. */ 826 #define TABLE_FIELD_ID_IVLAN_TPID_COMPRESSED 0x19 827 /* enum: Full inner VLAN tag TCI (16 bits). */ 828 #define TABLE_FIELD_ID_IVLAN 0x1a 829 /* enum: Inner VLAN ID (least significant 12 bits of full 16-bit TCI) only. */ 830 #define TABLE_FIELD_ID_IVLAN_VID 0x1b 831 /* enum: Ethertype. */ 832 #define TABLE_FIELD_ID_ETHER_TYPE 0x1c 833 /* enum: Source IP address, either IPv4 or IPv6. The mapping from bytes in a 834 * frame to the 128-bit value for this field is in network order, with IPv4 835 * addresses assumed to have 12 bytes of trailing zeroes. i.e. the IPv6 address 836 * [2345::6789:ABCD] is 0x2345000000000000000000006789ABCD; the IPv4 address 837 * 192.168.1.2 is 0xC0A80102000000000000000000000000. 838 */ 839 #define TABLE_FIELD_ID_SRC_IP 0x1d 840 /* enum: Destination IP address (see notes for SRC_IP). */ 841 #define TABLE_FIELD_ID_DST_IP 0x1e 842 /* enum: IPv4 Type-of-Service or IPv6 Traffic Class field. */ 843 #define TABLE_FIELD_ID_IP_TOS 0x1f 844 /* enum: IP Protocol. */ 845 #define TABLE_FIELD_ID_IP_PROTO 0x20 846 /* enum: Layer 4 source port. */ 847 #define TABLE_FIELD_ID_SRC_PORT 0x21 848 /* enum: Layer 4 destination port. */ 849 #define TABLE_FIELD_ID_DST_PORT 0x22 850 /* enum: TCP flags. */ 851 #define TABLE_FIELD_ID_TCP_FLAGS 0x23 852 /* enum: Virtual Network Identifier (VXLAN) or Virtual Session ID (NVGRE). */ 853 #define TABLE_FIELD_ID_VNI 0x24 854 /* enum: True if packet has any tunnel encapsulation header. */ 855 #define TABLE_FIELD_ID_HAS_ENCAP 0x32 856 /* enum: True if encap header has an outer VLAN tag. */ 857 #define TABLE_FIELD_ID_HAS_ENC_OVLAN 0x33 858 /* enum: True if encap header has an inner VLAN tag. */ 859 #define TABLE_FIELD_ID_HAS_ENC_IVLAN 0x34 860 /* enum: True if encap header is some sort of IP. */ 861 #define TABLE_FIELD_ID_HAS_ENC_IP 0x35 862 /* enum: True if encap header is specifically IPv4. */ 863 #define TABLE_FIELD_ID_HAS_ENC_IP4 0x36 864 /* enum: True if encap header is UDP. */ 865 #define TABLE_FIELD_ID_HAS_ENC_UDP 0x37 866 /* enum: True if only/inner frame has an outer VLAN tag. */ 867 #define TABLE_FIELD_ID_HAS_OVLAN 0x38 868 /* enum: True if only/inner frame has an inner VLAN tag. */ 869 #define TABLE_FIELD_ID_HAS_IVLAN 0x39 870 /* enum: True if only/inner frame is some sort of IP. */ 871 #define TABLE_FIELD_ID_HAS_IP 0x3a 872 /* enum: True if only/inner frame has a recognised L4 IP protocol (TCP or UDP). 873 */ 874 #define TABLE_FIELD_ID_HAS_L4 0x3b 875 /* enum: True if only/inner frame is an IP fragment. */ 876 #define TABLE_FIELD_ID_IP_FRAG 0x3c 877 /* enum: True if only/inner frame is the first IP fragment (fragment offset 0). 878 */ 879 #define TABLE_FIELD_ID_IP_FIRST_FRAG 0x3d 880 /* enum: True if only/inner frame has an IP Time-To-Live of <= 1. (Note: the 881 * implementation calls this "ip_ttl_is_one" but does in fact match packets 882 * with TTL=0 - which we shouldn't be seeing! - as well.) 883 */ 884 #define TABLE_FIELD_ID_IP_TTL_LE_ONE 0x3e 885 /* enum: True if only/inner frame has any of TCP SYN, FIN or RST flags set. */ 886 #define TABLE_FIELD_ID_TCP_INTERESTING_FLAGS 0x3f 887 /* enum: Plugin channel selection. */ 888 #define TABLE_FIELD_ID_RDP_PL_CHAN 0x50 889 /* enum: Enable update of CH_ROUTE_RDP_C_PL route bit. */ 890 #define TABLE_FIELD_ID_RDP_C_PL_EN 0x51 891 /* enum: New value of CH_ROUTE_RDP_C_PL route bit. */ 892 #define TABLE_FIELD_ID_RDP_C_PL 0x52 893 /* enum: Enable update of CH_ROUTE_RDP_D_PL route bit. */ 894 #define TABLE_FIELD_ID_RDP_D_PL_EN 0x53 895 /* enum: New value of CH_ROUTE_RDP_D_PL route bit. */ 896 #define TABLE_FIELD_ID_RDP_D_PL 0x54 897 /* enum: Enable update of CH_ROUTE_RDP_OUT_HOST_CHAN route bit. */ 898 #define TABLE_FIELD_ID_RDP_OUT_HOST_CHAN_EN 0x55 899 /* enum: New value of CH_ROUTE_RDP_OUT_HOST_CHAN route bit. */ 900 #define TABLE_FIELD_ID_RDP_OUT_HOST_CHAN 0x56 901 /* enum: Recirculation ID for lookup sequences with two action rule lookups. */ 902 #define TABLE_FIELD_ID_RECIRC_ID 0x64 903 /* enum: Domain ID passed to conntrack and action rule lookups. */ 904 #define TABLE_FIELD_ID_DOMAIN 0x65 905 /* enum: Construction mode for encap_tunnel_id - see MAE_CT_VNI_MODE enum. */ 906 #define TABLE_FIELD_ID_CT_VNI_MODE 0x66 907 /* enum: True to inhibit conntrack lookup if TCP SYN, FIN or RST flag is set. 908 */ 909 #define TABLE_FIELD_ID_CT_TCP_FLAGS_INHIBIT 0x67 910 /* enum: True to do conntrack lookups for IPv4 TCP packets. */ 911 #define TABLE_FIELD_ID_DO_CT_IP4_TCP 0x68 912 /* enum: True to do conntrack lookups for IPv4 UDP packets. */ 913 #define TABLE_FIELD_ID_DO_CT_IP4_UDP 0x69 914 /* enum: True to do conntrack lookups for IPv6 TCP packets. */ 915 #define TABLE_FIELD_ID_DO_CT_IP6_TCP 0x6a 916 /* enum: True to do conntrack lookups for IPv6 UDP packets. */ 917 #define TABLE_FIELD_ID_DO_CT_IP6_UDP 0x6b 918 /* enum: Outer rule identifier. */ 919 #define TABLE_FIELD_ID_OUTER_RULE_ID 0x6c 920 /* enum: Encapsulation type - see MAE_MCDI_ENCAP_TYPE enum. */ 921 #define TABLE_FIELD_ID_ENCAP_TYPE 0x6d 922 /* enum: Encap tunnel ID for conntrack lookups from VNI, VLAN tag(s), or 0, 923 * depending on CT_VNI_MODE. 924 */ 925 #define TABLE_FIELD_ID_ENCAP_TUNNEL_ID 0x78 926 /* enum: A conntrack entry identifier, passed to plugins. */ 927 #define TABLE_FIELD_ID_CT_ENTRY_ID 0x79 928 /* enum: Either source or destination NAT replacement port. */ 929 #define TABLE_FIELD_ID_NAT_PORT 0x7a 930 /* enum: Either source or destination NAT replacement IPv4 address. Note that 931 * this is specifically an IPv4 address (IPv6 is not supported for NAT), with 932 * byte mapped to a 32-bit value in network order, i.e. the IPv4 address 933 * 192.168.1.2 is the value 0xC0A80102. 934 */ 935 #define TABLE_FIELD_ID_NAT_IP 0x7b 936 /* enum: NAT direction: 0=>source, 1=>destination. */ 937 #define TABLE_FIELD_ID_NAT_DIR 0x7c 938 /* enum: Conntrack mark value, passed to action rule lookup. Note that this is 939 * not related to the "user mark" in the metadata / packet prefix. 940 */ 941 #define TABLE_FIELD_ID_CT_MARK 0x7d 942 /* enum: Private flags for conntrack, passed to action rule lookup. */ 943 #define TABLE_FIELD_ID_CT_PRIV_FLAGS 0x7e 944 /* enum: True if the conntrack lookup resulted in a hit. */ 945 #define TABLE_FIELD_ID_CT_HIT 0x7f 946 /* enum: True to suppress delivery when source and destination m-ports match. 947 */ 948 #define TABLE_FIELD_ID_SUPPRESS_SELF_DELIVERY 0x8c 949 /* enum: True to perform tunnel decapsulation. */ 950 #define TABLE_FIELD_ID_DO_DECAP 0x8d 951 /* enum: True to copy outer frame DSCP to inner on decap. */ 952 #define TABLE_FIELD_ID_DECAP_DSCP_COPY 0x8e 953 /* enum: True to map outer frame ECN to inner on decap, by RFC 6040 rules. */ 954 #define TABLE_FIELD_ID_DECAP_ECN_RFC6040 0x8f 955 /* enum: True to replace DSCP field. */ 956 #define TABLE_FIELD_ID_DO_REPLACE_DSCP 0x90 957 /* enum: True to replace ECN field. */ 958 #define TABLE_FIELD_ID_DO_REPLACE_ECN 0x91 959 /* enum: True to decrement IP Time-To-Live. */ 960 #define TABLE_FIELD_ID_DO_DECR_IP_TTL 0x92 961 /* enum: True to replace source MAC address. */ 962 #define TABLE_FIELD_ID_DO_SRC_MAC 0x93 963 /* enum: True to replace destination MAC address. */ 964 #define TABLE_FIELD_ID_DO_DST_MAC 0x94 965 /* enum: Number of VLAN tags to pop. Valid values are 0, 1, or 2. */ 966 #define TABLE_FIELD_ID_DO_VLAN_POP 0x95 967 /* enum: Number of VLANs tags to push. Valid values are 0, 1, or 2. */ 968 #define TABLE_FIELD_ID_DO_VLAN_PUSH 0x96 969 /* enum: True to count this packet. */ 970 #define TABLE_FIELD_ID_DO_COUNT 0x97 971 /* enum: True to perform tunnel encapsulation. */ 972 #define TABLE_FIELD_ID_DO_ENCAP 0x98 973 /* enum: True to copy inner frame DSCP to outer on encap. */ 974 #define TABLE_FIELD_ID_ENCAP_DSCP_COPY 0x99 975 /* enum: True to copy inner frame ECN to outer on encap. */ 976 #define TABLE_FIELD_ID_ENCAP_ECN_COPY 0x9a 977 /* enum: True to deliver the packet (otherwise it is dropped). */ 978 #define TABLE_FIELD_ID_DO_DELIVER 0x9b 979 /* enum: True to set the user flag in the metadata. */ 980 #define TABLE_FIELD_ID_DO_FLAG 0x9c 981 /* enum: True to update the user mark in the metadata. */ 982 #define TABLE_FIELD_ID_DO_MARK 0x9d 983 /* enum: True to override the capsule virtual channel for network deliveries. 984 */ 985 #define TABLE_FIELD_ID_DO_SET_NET_CHAN 0x9e 986 /* enum: True to override the reported source m-port for host deliveries. */ 987 #define TABLE_FIELD_ID_DO_SET_SRC_MPORT 0x9f 988 /* enum: Encap header ID for DO_ENCAP, indexing Encap_Hdr_Part1/2_Table. */ 989 #define TABLE_FIELD_ID_ENCAP_HDR_ID 0xaa 990 /* enum: New DSCP value for DO_REPLACE_DSCP. */ 991 #define TABLE_FIELD_ID_DSCP_VALUE 0xab 992 /* enum: If DO_REPLACE_ECN is set, the new value for the ECN field. If 993 * DO_REPLACE_ECN is not set, ECN_CONTROL[0] and ECN_CONTROL[1] are set to 994 * request remapping of ECT0 and ECT1 ECN codepoints respectively to CE. 995 */ 996 #define TABLE_FIELD_ID_ECN_CONTROL 0xac 997 /* enum: Source MAC ID for DO_SRC_MAC, indexing Replace_Src_MAC_Table. */ 998 #define TABLE_FIELD_ID_SRC_MAC_ID 0xad 999 /* enum: Destination MAC ID for DO_DST_MAC, indexing Replace_Dst_MAC_Table. */ 1000 #define TABLE_FIELD_ID_DST_MAC_ID 0xae 1001 /* enum: Parameter for either DO_SET_NET_CHAN (only bottom 6 bits used in this 1002 * case) or DO_SET_SRC_MPORT. 1003 */ 1004 #define TABLE_FIELD_ID_REPORTED_SRC_MPORT_OR_NET_CHAN 0xaf 1005 /* enum: 64-byte chunk of added encapsulation header. */ 1006 #define TABLE_FIELD_ID_CHUNK64 0xb4 1007 /* enum: 32-byte chunk of added encapsulation header. */ 1008 #define TABLE_FIELD_ID_CHUNK32 0xb5 1009 /* enum: 16-byte chunk of added encapsulation header. */ 1010 #define TABLE_FIELD_ID_CHUNK16 0xb6 1011 /* enum: 8-byte chunk of added encapsulation header. */ 1012 #define TABLE_FIELD_ID_CHUNK8 0xb7 1013 /* enum: 4-byte chunk of added encapsulation header. */ 1014 #define TABLE_FIELD_ID_CHUNK4 0xb8 1015 /* enum: 2-byte chunk of added encapsulation header. */ 1016 #define TABLE_FIELD_ID_CHUNK2 0xb9 1017 /* enum: Added encapsulation header length in words. */ 1018 #define TABLE_FIELD_ID_HDR_LEN_W 0xba 1019 /* enum: Static value for layer 2/3 LACP hash of the encapsulation header. */ 1020 #define TABLE_FIELD_ID_ENC_LACP_HASH_L23 0xbb 1021 /* enum: Static value for layer 4 LACP hash of the encapsulation header. */ 1022 #define TABLE_FIELD_ID_ENC_LACP_HASH_L4 0xbc 1023 /* enum: True to use the static ENC_LACP_HASH values for the encap header 1024 * instead of the calculated values for the inner frame when delivering a newly 1025 * encapsulated packet to a LAG m-port. 1026 */ 1027 #define TABLE_FIELD_ID_USE_ENC_LACP_HASHES 0xbd 1028 /* enum: True to trigger conntrack from first action rule lookup (AR=>CT=>AR 1029 * sequence). 1030 */ 1031 #define TABLE_FIELD_ID_DO_CT 0xc8 1032 /* enum: True to perform NAT using parameters from conntrack lookup response. 1033 */ 1034 #define TABLE_FIELD_ID_DO_NAT 0xc9 1035 /* enum: True to trigger recirculated action rule lookup (AR=>AR sequence). */ 1036 #define TABLE_FIELD_ID_DO_RECIRC 0xca 1037 /* enum: Next action set payload ID for replay. The null value is all-1-bits. 1038 */ 1039 #define TABLE_FIELD_ID_NEXT_ACTION_SET_PAYLOAD 0xcb 1040 /* enum: Next action set row ID for replay. The null value is all-1-bits. */ 1041 #define TABLE_FIELD_ID_NEXT_ACTION_SET_ROW 0xcc 1042 /* enum: Action set payload ID for additional delivery to management CPU. The 1043 * null value is all-1-bits. 1044 */ 1045 #define TABLE_FIELD_ID_MC_ACTION_SET_PAYLOAD 0xcd 1046 /* enum: Action set row ID for additional delivery to management CPU. The null 1047 * value is all-1-bits. 1048 */ 1049 #define TABLE_FIELD_ID_MC_ACTION_SET_ROW 0xce 1050 /* enum: True to include layer 4 in LACP hash on delivery to a LAG m-port. */ 1051 #define TABLE_FIELD_ID_LACP_INC_L4 0xdc 1052 /* enum: True to request that LACP is performed by a plugin. */ 1053 #define TABLE_FIELD_ID_LACP_PLUGIN 0xdd 1054 /* enum: LACP_Balance_Table base address divided by 64. */ 1055 #define TABLE_FIELD_ID_BAL_TBL_BASE_DIV64 0xde 1056 /* enum: Length of balance table region: 0=>64, 1=>128, 2=>256. */ 1057 #define TABLE_FIELD_ID_BAL_TBL_LEN_ID 0xdf 1058 /* enum: LACP LAG ID (i.e. the low 3 bits of LACP LAG mport ID), indexing 1059 * LACP_LAG_Config_Table. Refer to SF-123102-TC. 1060 */ 1061 #define TABLE_FIELD_ID_LACP_LAG_ID 0xe0 1062 /* enum: Address in LACP_Balance_Table. The balance table is partitioned 1063 * between LAGs according to the settings in LACP_LAG_Config_Table and then 1064 * indexed by the LACP hash, providing the mapping to destination mports. Refer 1065 * to SF-123102-TC. 1066 */ 1067 #define TABLE_FIELD_ID_BAL_TBL_ADDR 0xe1 1068 /* enum: UDP port to match for UDP-based encapsulations; required to be 0 for 1069 * other encapsulation types. 1070 */ 1071 #define TABLE_FIELD_ID_UDP_PORT 0xe6 1072 /* enum: True to perform RSS based on outer fields rather than inner fields. */ 1073 #define TABLE_FIELD_ID_RSS_ON_OUTER 0xe7 1074 /* enum: True to perform steering table lookup on outer fields rather than 1075 * inner fields. 1076 */ 1077 #define TABLE_FIELD_ID_STEER_ON_OUTER 0xe8 1078 /* enum: Destination queue ID for host delivery. */ 1079 #define TABLE_FIELD_ID_DST_QID 0xf0 1080 /* enum: True to drop this packet. */ 1081 #define TABLE_FIELD_ID_DROP 0xf1 1082 /* enum: True to strip outer VLAN tag from this packet. */ 1083 #define TABLE_FIELD_ID_VLAN_STRIP 0xf2 1084 /* enum: True to override the user mark field with the supplied USER_MARK, or 1085 * false to bitwise-OR the USER_MARK into it. 1086 */ 1087 #define TABLE_FIELD_ID_MARK_OVERRIDE 0xf3 1088 /* enum: True to override the user flag field with the supplied USER_FLAG, or 1089 * false to bitwise-OR the USER_FLAG into it. 1090 */ 1091 #define TABLE_FIELD_ID_FLAG_OVERRIDE 0xf4 1092 /* enum: RSS context ID, indexing the RSS_Context_Table. */ 1093 #define TABLE_FIELD_ID_RSS_CTX_ID 0xfa 1094 /* enum: True to enable RSS. */ 1095 #define TABLE_FIELD_ID_RSS_EN 0xfb 1096 /* enum: Toeplitz hash key. */ 1097 #define TABLE_FIELD_ID_KEY 0xfc 1098 /* enum: Key mode for IPv4 TCP packets - see TABLE_RSS_KEY_MODE enum. */ 1099 #define TABLE_FIELD_ID_TCP_V4_KEY_MODE 0xfd 1100 /* enum: Key mode for IPv6 TCP packets - see TABLE_RSS_KEY_MODE enum. */ 1101 #define TABLE_FIELD_ID_TCP_V6_KEY_MODE 0xfe 1102 /* enum: Key mode for IPv4 UDP packets - see TABLE_RSS_KEY_MODE enum. */ 1103 #define TABLE_FIELD_ID_UDP_V4_KEY_MODE 0xff 1104 /* enum: Key mode for IPv6 UDP packets - see TABLE_RSS_KEY_MODE enum. */ 1105 #define TABLE_FIELD_ID_UDP_V6_KEY_MODE 0x100 1106 /* enum: Key mode for other IPv4 packets - see TABLE_RSS_KEY_MODE enum. */ 1107 #define TABLE_FIELD_ID_OTHER_V4_KEY_MODE 0x101 1108 /* enum: Key mode for other IPv6 packets - see TABLE_RSS_KEY_MODE enum. */ 1109 #define TABLE_FIELD_ID_OTHER_V6_KEY_MODE 0x102 1110 /* enum: Spreading mode - 0=>indirection; 1=>even. */ 1111 #define TABLE_FIELD_ID_SPREAD_MODE 0x103 1112 /* enum: For indirection spreading mode, the base address of a region within 1113 * the Indirection_Table. For even spreading mode, the number of queues to 1114 * spread across (only values 1-255 are valid for this mode). 1115 */ 1116 #define TABLE_FIELD_ID_INDIR_TBL_BASE 0x104 1117 /* enum: For indirection spreading mode, identifies the length of a region 1118 * within the Indirection_Table, where length = 32 << len_id. Must be set to 0 1119 * for even spreading mode. 1120 */ 1121 #define TABLE_FIELD_ID_INDIR_TBL_LEN_ID 0x105 1122 /* enum: An offset to be applied to the base destination queue ID. */ 1123 #define TABLE_FIELD_ID_INDIR_OFFSET 0x106 1124 /* enum: DPU offload engine profile ID to address. */ 1125 #define TABLE_FIELD_ID_OE_PROFILE 0x3e8 1126 /* enum: Width of the CRC to calculate - see CRC_VARIANT enum. */ 1127 #define TABLE_FIELD_ID_CRC_VARIANT 0x3f2 1128 /* enum: If set, reflect the bits of each input byte, bit 7 is LSB, bit 0 is 1129 * MSB. If clear, bit 7 is MSB, bit 0 is LSB. 1130 */ 1131 #define TABLE_FIELD_ID_CRC_REFIN 0x3f3 1132 /* enum: If set, reflect the bits of each output byte, bit 7 is LSB, bit 0 is 1133 * MSB. If clear, bit 7 is MSB, bit 0 is LSB. 1134 */ 1135 #define TABLE_FIELD_ID_CRC_REFOUT 0x3f4 1136 /* enum: If set, invert every bit of the output value. */ 1137 #define TABLE_FIELD_ID_CRC_INVOUT 0x3f5 1138 /* enum: The CRC polynomial to use for checksumming, in normal form. */ 1139 #define TABLE_FIELD_ID_CRC_POLY 0x3f6 1140 /* enum: Operation for the checksum engine to perform - see DPU_CSUM_OP enum. 1141 */ 1142 #define TABLE_FIELD_ID_CSUM_OP 0x410 1143 /* enum: Byte offset of checksum relative to region_start (for VALIDATE_* 1144 * operations only). 1145 */ 1146 #define TABLE_FIELD_ID_CSUM_OFFSET 0x411 1147 /* enum: Indicates there is additional data on OPR bus that needs to be 1148 * incorporated into the payload checksum. 1149 */ 1150 #define TABLE_FIELD_ID_CSUM_OPR_ADDITIONAL_DATA 0x412 1151 /* enum: Log2 data size of additional data on OPR bus. */ 1152 #define TABLE_FIELD_ID_CSUM_OPR_DATA_SIZE_LOG2 0x413 1153 /* enum: 4 byte offset of where to find the additional data on the OPR bus. */ 1154 #define TABLE_FIELD_ID_CSUM_OPR_4B_OFF 0x414 1155 /* enum: Operation type for the AES-GCM core - see GCM_OP_CODE enum. */ 1156 #define TABLE_FIELD_ID_GCM_OP_CODE 0x41a 1157 /* enum: Key length - AES_KEY_LEN enum. */ 1158 #define TABLE_FIELD_ID_GCM_KEY_LEN 0x41b 1159 /* enum: OPR 4 byte offset for ICV or GHASH output (only in BULK_* mode) or 1160 * IPSEC descrypt output. 1161 */ 1162 #define TABLE_FIELD_ID_GCM_OPR_4B_OFFSET 0x41c 1163 /* enum: If OP_CODE is BULK_*, indicates Emit GHASH (Fragment mode). Else, 1164 * indicates IPSEC-ESN mode. 1165 */ 1166 #define TABLE_FIELD_ID_GCM_EMIT_GHASH_ISESN 0x41d 1167 /* enum: Replay Protection Enable. */ 1168 #define TABLE_FIELD_ID_GCM_REPLAY_PROTECT_EN 0x41e 1169 /* enum: IPSEC Encrypt ESP trailer NEXT_HEADER byte. */ 1170 #define TABLE_FIELD_ID_GCM_NEXT_HDR 0x41f 1171 /* enum: Replay Window Size. */ 1172 #define TABLE_FIELD_ID_GCM_REPLAY_WIN_SIZE 0x420 1173 1174 /* MCDI_EVENT structuredef: The structure of an MCDI_EVENT on Siena/EF10/EF100 1175 * platforms 1176 */ 1177 #define MCDI_EVENT_LEN 8 1178 #define MCDI_EVENT_CONT_LBN 32 1179 #define MCDI_EVENT_CONT_WIDTH 1 1180 #define MCDI_EVENT_LEVEL_LBN 33 1181 #define MCDI_EVENT_LEVEL_WIDTH 3 1182 /* enum: Info. */ 1183 #define MCDI_EVENT_LEVEL_INFO 0x0 1184 /* enum: Warning. */ 1185 #define MCDI_EVENT_LEVEL_WARN 0x1 1186 /* enum: Error. */ 1187 #define MCDI_EVENT_LEVEL_ERR 0x2 1188 /* enum: Fatal. */ 1189 #define MCDI_EVENT_LEVEL_FATAL 0x3 1190 #define MCDI_EVENT_DATA_OFST 0 1191 #define MCDI_EVENT_DATA_LEN 4 1192 #define MCDI_EVENT_CMDDONE_SEQ_OFST 0 1193 #define MCDI_EVENT_CMDDONE_SEQ_LBN 0 1194 #define MCDI_EVENT_CMDDONE_SEQ_WIDTH 8 1195 #define MCDI_EVENT_CMDDONE_DATALEN_OFST 0 1196 #define MCDI_EVENT_CMDDONE_DATALEN_LBN 8 1197 #define MCDI_EVENT_CMDDONE_DATALEN_WIDTH 8 1198 #define MCDI_EVENT_CMDDONE_ERRNO_OFST 0 1199 #define MCDI_EVENT_CMDDONE_ERRNO_LBN 16 1200 #define MCDI_EVENT_CMDDONE_ERRNO_WIDTH 8 1201 #define MCDI_EVENT_LINKCHANGE_LP_CAP_OFST 0 1202 #define MCDI_EVENT_LINKCHANGE_LP_CAP_LBN 0 1203 #define MCDI_EVENT_LINKCHANGE_LP_CAP_WIDTH 16 1204 #define MCDI_EVENT_LINKCHANGE_SPEED_OFST 0 1205 #define MCDI_EVENT_LINKCHANGE_SPEED_LBN 16 1206 #define MCDI_EVENT_LINKCHANGE_SPEED_WIDTH 4 1207 /* enum: Link is down or link speed could not be determined */ 1208 #define MCDI_EVENT_LINKCHANGE_SPEED_UNKNOWN 0x0 1209 /* enum: 100Mbs */ 1210 #define MCDI_EVENT_LINKCHANGE_SPEED_100M 0x1 1211 /* enum: 1Gbs */ 1212 #define MCDI_EVENT_LINKCHANGE_SPEED_1G 0x2 1213 /* enum: 10Gbs */ 1214 #define MCDI_EVENT_LINKCHANGE_SPEED_10G 0x3 1215 /* enum: 40Gbs */ 1216 #define MCDI_EVENT_LINKCHANGE_SPEED_40G 0x4 1217 /* enum: 25Gbs */ 1218 #define MCDI_EVENT_LINKCHANGE_SPEED_25G 0x5 1219 /* enum: 50Gbs */ 1220 #define MCDI_EVENT_LINKCHANGE_SPEED_50G 0x6 1221 /* enum: 100Gbs */ 1222 #define MCDI_EVENT_LINKCHANGE_SPEED_100G 0x7 1223 #define MCDI_EVENT_LINKCHANGE_FCNTL_OFST 0 1224 #define MCDI_EVENT_LINKCHANGE_FCNTL_LBN 20 1225 #define MCDI_EVENT_LINKCHANGE_FCNTL_WIDTH 4 1226 #define MCDI_EVENT_LINKCHANGE_LINK_FLAGS_OFST 0 1227 #define MCDI_EVENT_LINKCHANGE_LINK_FLAGS_LBN 24 1228 #define MCDI_EVENT_LINKCHANGE_LINK_FLAGS_WIDTH 8 1229 #define MCDI_EVENT_PORT_LINKCHANGE_PORT_HANDLE_OFST 0 1230 #define MCDI_EVENT_PORT_LINKCHANGE_PORT_HANDLE_LBN 0 1231 #define MCDI_EVENT_PORT_LINKCHANGE_PORT_HANDLE_WIDTH 24 1232 #define MCDI_EVENT_PORT_LINKCHANGE_SEQ_NUM_OFST 0 1233 #define MCDI_EVENT_PORT_LINKCHANGE_SEQ_NUM_LBN 24 1234 #define MCDI_EVENT_PORT_LINKCHANGE_SEQ_NUM_WIDTH 7 1235 #define MCDI_EVENT_PORT_LINKCHANGE_LINK_UP_OFST 0 1236 #define MCDI_EVENT_PORT_LINKCHANGE_LINK_UP_LBN 31 1237 #define MCDI_EVENT_PORT_LINKCHANGE_LINK_UP_WIDTH 1 1238 #define MCDI_EVENT_PORT_MODULECHANGE_PORT_HANDLE_OFST 0 1239 #define MCDI_EVENT_PORT_MODULECHANGE_PORT_HANDLE_LBN 0 1240 #define MCDI_EVENT_PORT_MODULECHANGE_PORT_HANDLE_WIDTH 24 1241 #define MCDI_EVENT_PORT_MODULECHANGE_SEQ_NUM_OFST 0 1242 #define MCDI_EVENT_PORT_MODULECHANGE_SEQ_NUM_LBN 24 1243 #define MCDI_EVENT_PORT_MODULECHANGE_SEQ_NUM_WIDTH 7 1244 #define MCDI_EVENT_PORT_MODULECHANGE_MDI_CONNECTED_OFST 0 1245 #define MCDI_EVENT_PORT_MODULECHANGE_MDI_CONNECTED_LBN 31 1246 #define MCDI_EVENT_PORT_MODULECHANGE_MDI_CONNECTED_WIDTH 1 1247 #define MCDI_EVENT_SENSOREVT_MONITOR_OFST 0 1248 #define MCDI_EVENT_SENSOREVT_MONITOR_LBN 0 1249 #define MCDI_EVENT_SENSOREVT_MONITOR_WIDTH 8 1250 #define MCDI_EVENT_SENSOREVT_STATE_OFST 0 1251 #define MCDI_EVENT_SENSOREVT_STATE_LBN 8 1252 #define MCDI_EVENT_SENSOREVT_STATE_WIDTH 8 1253 #define MCDI_EVENT_SENSOREVT_VALUE_OFST 0 1254 #define MCDI_EVENT_SENSOREVT_VALUE_LBN 16 1255 #define MCDI_EVENT_SENSOREVT_VALUE_WIDTH 16 1256 #define MCDI_EVENT_FWALERT_DATA_OFST 0 1257 #define MCDI_EVENT_FWALERT_DATA_LBN 8 1258 #define MCDI_EVENT_FWALERT_DATA_WIDTH 24 1259 #define MCDI_EVENT_FWALERT_REASON_OFST 0 1260 #define MCDI_EVENT_FWALERT_REASON_LBN 0 1261 #define MCDI_EVENT_FWALERT_REASON_WIDTH 8 1262 /* enum: SRAM Access. */ 1263 #define MCDI_EVENT_FWALERT_REASON_SRAM_ACCESS 0x1 1264 #define MCDI_EVENT_FLR_VF_OFST 0 1265 #define MCDI_EVENT_FLR_VF_LBN 0 1266 #define MCDI_EVENT_FLR_VF_WIDTH 8 1267 #define MCDI_EVENT_TX_ERR_TXQ_OFST 0 1268 #define MCDI_EVENT_TX_ERR_TXQ_LBN 0 1269 #define MCDI_EVENT_TX_ERR_TXQ_WIDTH 12 1270 #define MCDI_EVENT_TX_ERR_TYPE_OFST 0 1271 #define MCDI_EVENT_TX_ERR_TYPE_LBN 12 1272 #define MCDI_EVENT_TX_ERR_TYPE_WIDTH 4 1273 /* enum: Descriptor loader reported failure. Specific to EF10-family NICs. */ 1274 #define MCDI_EVENT_TX_ERR_DL_FAIL 0x1 1275 /* enum: Descriptor ring empty and no EOP seen for packet. Specific to 1276 * EF10-family NICs 1277 */ 1278 #define MCDI_EVENT_TX_ERR_NO_EOP 0x2 1279 /* enum: Overlength packet. Specific to EF10-family NICs. */ 1280 #define MCDI_EVENT_TX_ERR_2BIG 0x3 1281 /* enum: Malformed option descriptor. Specific to EF10-family NICs. */ 1282 #define MCDI_EVENT_TX_BAD_OPTDESC 0x5 1283 /* enum: Option descriptor part way through a packet. Specific to EF10-family 1284 * NICs. 1285 */ 1286 #define MCDI_EVENT_TX_OPT_IN_PKT 0x8 1287 /* enum: DMA or PIO data access error. Specific to EF10-family NICs */ 1288 #define MCDI_EVENT_TX_ERR_BAD_DMA_OR_PIO 0x9 1289 #define MCDI_EVENT_TX_ERR_INFO_OFST 0 1290 #define MCDI_EVENT_TX_ERR_INFO_LBN 16 1291 #define MCDI_EVENT_TX_ERR_INFO_WIDTH 16 1292 #define MCDI_EVENT_TX_FLUSH_TO_DRIVER_OFST 0 1293 #define MCDI_EVENT_TX_FLUSH_TO_DRIVER_LBN 12 1294 #define MCDI_EVENT_TX_FLUSH_TO_DRIVER_WIDTH 1 1295 #define MCDI_EVENT_TX_FLUSH_TXQ_OFST 0 1296 #define MCDI_EVENT_TX_FLUSH_TXQ_LBN 0 1297 #define MCDI_EVENT_TX_FLUSH_TXQ_WIDTH 12 1298 #define MCDI_EVENT_PTP_ERR_TYPE_OFST 0 1299 #define MCDI_EVENT_PTP_ERR_TYPE_LBN 0 1300 #define MCDI_EVENT_PTP_ERR_TYPE_WIDTH 8 1301 /* enum: PLL lost lock */ 1302 #define MCDI_EVENT_PTP_ERR_PLL_LOST 0x1 1303 /* enum: Filter overflow (PDMA) */ 1304 #define MCDI_EVENT_PTP_ERR_FILTER 0x2 1305 /* enum: FIFO overflow (FPGA) */ 1306 #define MCDI_EVENT_PTP_ERR_FIFO 0x3 1307 /* enum: Merge queue overflow */ 1308 #define MCDI_EVENT_PTP_ERR_QUEUE 0x4 1309 #define MCDI_EVENT_AOE_ERR_TYPE_OFST 0 1310 #define MCDI_EVENT_AOE_ERR_TYPE_LBN 0 1311 #define MCDI_EVENT_AOE_ERR_TYPE_WIDTH 8 1312 /* enum: AOE failed to load - no valid image? */ 1313 #define MCDI_EVENT_AOE_NO_LOAD 0x1 1314 /* enum: AOE FC reported an exception */ 1315 #define MCDI_EVENT_AOE_FC_ASSERT 0x2 1316 /* enum: AOE FC watchdogged */ 1317 #define MCDI_EVENT_AOE_FC_WATCHDOG 0x3 1318 /* enum: AOE FC failed to start */ 1319 #define MCDI_EVENT_AOE_FC_NO_START 0x4 1320 /* enum: Generic AOE fault - likely to have been reported via other means too 1321 * but intended for use by aoex driver. 1322 */ 1323 #define MCDI_EVENT_AOE_FAULT 0x5 1324 /* enum: Results of reprogramming the CPLD (status in AOE_ERR_DATA) */ 1325 #define MCDI_EVENT_AOE_CPLD_REPROGRAMMED 0x6 1326 /* enum: AOE loaded successfully */ 1327 #define MCDI_EVENT_AOE_LOAD 0x7 1328 /* enum: AOE DMA operation completed (LSB of HOST_HANDLE in AOE_ERR_DATA) */ 1329 #define MCDI_EVENT_AOE_DMA 0x8 1330 /* enum: AOE byteblaster connected/disconnected (Connection status in 1331 * AOE_ERR_DATA) 1332 */ 1333 #define MCDI_EVENT_AOE_BYTEBLASTER 0x9 1334 /* enum: DDR ECC status update */ 1335 #define MCDI_EVENT_AOE_DDR_ECC_STATUS 0xa 1336 /* enum: PTP status update */ 1337 #define MCDI_EVENT_AOE_PTP_STATUS 0xb 1338 /* enum: FPGA header incorrect */ 1339 #define MCDI_EVENT_AOE_FPGA_LOAD_HEADER_ERR 0xc 1340 /* enum: FPGA Powered Off due to error in powering up FPGA */ 1341 #define MCDI_EVENT_AOE_FPGA_POWER_OFF 0xd 1342 /* enum: AOE FPGA load failed due to MC to MUM communication failure */ 1343 #define MCDI_EVENT_AOE_FPGA_LOAD_FAILED 0xe 1344 /* enum: Notify that invalid flash type detected */ 1345 #define MCDI_EVENT_AOE_INVALID_FPGA_FLASH_TYPE 0xf 1346 /* enum: Notify that the attempt to run FPGA Controller firmware timed out */ 1347 #define MCDI_EVENT_AOE_FC_RUN_TIMEDOUT 0x10 1348 /* enum: Failure to probe one or more FPGA boot flash chips */ 1349 #define MCDI_EVENT_AOE_FPGA_BOOT_FLASH_INVALID 0x11 1350 /* enum: FPGA boot-flash contains an invalid image header */ 1351 #define MCDI_EVENT_AOE_FPGA_BOOT_FLASH_HDR_INVALID 0x12 1352 /* enum: Failed to program clocks required by the FPGA */ 1353 #define MCDI_EVENT_AOE_FPGA_CLOCKS_PROGRAM_FAILED 0x13 1354 /* enum: Notify that FPGA Controller is alive to serve MCDI requests */ 1355 #define MCDI_EVENT_AOE_FC_RUNNING 0x14 1356 #define MCDI_EVENT_AOE_ERR_DATA_OFST 0 1357 #define MCDI_EVENT_AOE_ERR_DATA_LBN 8 1358 #define MCDI_EVENT_AOE_ERR_DATA_WIDTH 8 1359 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_INFO_OFST 0 1360 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_INFO_LBN 8 1361 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_INFO_WIDTH 8 1362 /* enum: FC Assert happened, but the register information is not available */ 1363 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_SEEN 0x0 1364 /* enum: The register information for FC Assert is ready for reading by driver 1365 */ 1366 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_DATA_READY 0x1 1367 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_OFST 0 1368 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_LBN 8 1369 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_WIDTH 8 1370 /* enum: Reading from NV failed */ 1371 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_NV_READ_FAIL 0x0 1372 /* enum: Invalid Magic Number if FPGA header */ 1373 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_MAGIC_FAIL 0x1 1374 /* enum: Invalid Silicon type detected in header */ 1375 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_SILICON_TYPE 0x2 1376 /* enum: Unsupported VRatio */ 1377 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_VRATIO 0x3 1378 /* enum: Unsupported DDR Type */ 1379 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_TYPE 0x4 1380 /* enum: DDR Voltage out of supported range */ 1381 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_VOLTAGE 0x5 1382 /* enum: Unsupported DDR speed */ 1383 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_SPEED 0x6 1384 /* enum: Unsupported DDR size */ 1385 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_SIZE 0x7 1386 /* enum: Unsupported DDR rank */ 1387 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_RANK 0x8 1388 #define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_OFST 0 1389 #define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_LBN 8 1390 #define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_WIDTH 8 1391 /* enum: Primary boot flash */ 1392 #define MCDI_EVENT_AOE_FLASH_TYPE_BOOT_PRIMARY 0x0 1393 /* enum: Secondary boot flash */ 1394 #define MCDI_EVENT_AOE_FLASH_TYPE_BOOT_SECONDARY 0x1 1395 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_OFST 0 1396 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_LBN 8 1397 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_WIDTH 8 1398 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_OFST 0 1399 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_LBN 8 1400 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_WIDTH 8 1401 #define MCDI_EVENT_RX_ERR_RXQ_OFST 0 1402 #define MCDI_EVENT_RX_ERR_RXQ_LBN 0 1403 #define MCDI_EVENT_RX_ERR_RXQ_WIDTH 12 1404 #define MCDI_EVENT_RX_ERR_TYPE_OFST 0 1405 #define MCDI_EVENT_RX_ERR_TYPE_LBN 12 1406 #define MCDI_EVENT_RX_ERR_TYPE_WIDTH 4 1407 #define MCDI_EVENT_RX_ERR_INFO_OFST 0 1408 #define MCDI_EVENT_RX_ERR_INFO_LBN 16 1409 #define MCDI_EVENT_RX_ERR_INFO_WIDTH 16 1410 #define MCDI_EVENT_RX_FLUSH_TO_DRIVER_OFST 0 1411 #define MCDI_EVENT_RX_FLUSH_TO_DRIVER_LBN 12 1412 #define MCDI_EVENT_RX_FLUSH_TO_DRIVER_WIDTH 1 1413 #define MCDI_EVENT_RX_FLUSH_RXQ_OFST 0 1414 #define MCDI_EVENT_RX_FLUSH_RXQ_LBN 0 1415 #define MCDI_EVENT_RX_FLUSH_RXQ_WIDTH 12 1416 #define MCDI_EVENT_MC_REBOOT_COUNT_OFST 0 1417 #define MCDI_EVENT_MC_REBOOT_COUNT_LBN 0 1418 #define MCDI_EVENT_MC_REBOOT_COUNT_WIDTH 16 1419 #define MCDI_EVENT_MUM_ERR_TYPE_OFST 0 1420 #define MCDI_EVENT_MUM_ERR_TYPE_LBN 0 1421 #define MCDI_EVENT_MUM_ERR_TYPE_WIDTH 8 1422 /* enum: MUM failed to load - no valid image? */ 1423 #define MCDI_EVENT_MUM_NO_LOAD 0x1 1424 /* enum: MUM f/w reported an exception */ 1425 #define MCDI_EVENT_MUM_ASSERT 0x2 1426 /* enum: MUM not kicking watchdog */ 1427 #define MCDI_EVENT_MUM_WATCHDOG 0x3 1428 #define MCDI_EVENT_MUM_ERR_DATA_OFST 0 1429 #define MCDI_EVENT_MUM_ERR_DATA_LBN 8 1430 #define MCDI_EVENT_MUM_ERR_DATA_WIDTH 8 1431 #define MCDI_EVENT_DBRET_SEQ_OFST 0 1432 #define MCDI_EVENT_DBRET_SEQ_LBN 0 1433 #define MCDI_EVENT_DBRET_SEQ_WIDTH 8 1434 #define MCDI_EVENT_SUC_ERR_TYPE_OFST 0 1435 #define MCDI_EVENT_SUC_ERR_TYPE_LBN 0 1436 #define MCDI_EVENT_SUC_ERR_TYPE_WIDTH 8 1437 /* enum: Corrupted or bad SUC application. */ 1438 #define MCDI_EVENT_SUC_BAD_APP 0x1 1439 /* enum: SUC application reported an assert. */ 1440 #define MCDI_EVENT_SUC_ASSERT 0x2 1441 /* enum: SUC application reported an exception. */ 1442 #define MCDI_EVENT_SUC_EXCEPTION 0x3 1443 /* enum: SUC watchdog timer expired. */ 1444 #define MCDI_EVENT_SUC_WATCHDOG 0x4 1445 #define MCDI_EVENT_SUC_ERR_ADDRESS_OFST 0 1446 #define MCDI_EVENT_SUC_ERR_ADDRESS_LBN 8 1447 #define MCDI_EVENT_SUC_ERR_ADDRESS_WIDTH 24 1448 #define MCDI_EVENT_SUC_ERR_DATA_OFST 0 1449 #define MCDI_EVENT_SUC_ERR_DATA_LBN 8 1450 #define MCDI_EVENT_SUC_ERR_DATA_WIDTH 24 1451 #define MCDI_EVENT_LINKCHANGE_V2_LP_CAP_OFST 0 1452 #define MCDI_EVENT_LINKCHANGE_V2_LP_CAP_LBN 0 1453 #define MCDI_EVENT_LINKCHANGE_V2_LP_CAP_WIDTH 24 1454 #define MCDI_EVENT_LINKCHANGE_V2_SPEED_OFST 0 1455 #define MCDI_EVENT_LINKCHANGE_V2_SPEED_LBN 24 1456 #define MCDI_EVENT_LINKCHANGE_V2_SPEED_WIDTH 4 1457 /* Enum values, see field(s): */ 1458 /* MCDI_EVENT/LINKCHANGE_SPEED */ 1459 #define MCDI_EVENT_LINKCHANGE_V2_FLAGS_LINK_UP_OFST 0 1460 #define MCDI_EVENT_LINKCHANGE_V2_FLAGS_LINK_UP_LBN 28 1461 #define MCDI_EVENT_LINKCHANGE_V2_FLAGS_LINK_UP_WIDTH 1 1462 #define MCDI_EVENT_LINKCHANGE_V2_FCNTL_OFST 0 1463 #define MCDI_EVENT_LINKCHANGE_V2_FCNTL_LBN 29 1464 #define MCDI_EVENT_LINKCHANGE_V2_FCNTL_WIDTH 3 1465 /* Enum values, see field(s): */ 1466 /* MC_CMD_SET_MAC/MC_CMD_SET_MAC_IN/FCNTL */ 1467 #define MCDI_EVENT_MODULECHANGE_LD_CAP_OFST 0 1468 #define MCDI_EVENT_MODULECHANGE_LD_CAP_LBN 0 1469 #define MCDI_EVENT_MODULECHANGE_LD_CAP_WIDTH 30 1470 #define MCDI_EVENT_MODULECHANGE_SEQ_OFST 0 1471 #define MCDI_EVENT_MODULECHANGE_SEQ_LBN 30 1472 #define MCDI_EVENT_MODULECHANGE_SEQ_WIDTH 2 1473 #define MCDI_EVENT_DESC_PROXY_VIRTQ_VI_ID_OFST 0 1474 #define MCDI_EVENT_DESC_PROXY_VIRTQ_VI_ID_LBN 0 1475 #define MCDI_EVENT_DESC_PROXY_VIRTQ_VI_ID_WIDTH 16 1476 #define MCDI_EVENT_DESC_PROXY_VIRTQ_ID_OFST 0 1477 #define MCDI_EVENT_DESC_PROXY_VIRTQ_ID_LBN 16 1478 #define MCDI_EVENT_DESC_PROXY_VIRTQ_ID_WIDTH 16 1479 #define MCDI_EVENT_DATA_LBN 0 1480 #define MCDI_EVENT_DATA_WIDTH 32 1481 /* Alias for PTP_DATA. */ 1482 #define MCDI_EVENT_SRC_LBN 36 1483 #define MCDI_EVENT_SRC_WIDTH 8 1484 /* Data associated with PTP events which doesn't fit into the main DATA field 1485 */ 1486 #define MCDI_EVENT_PTP_DATA_LBN 36 1487 #define MCDI_EVENT_PTP_DATA_WIDTH 8 1488 /* EF100 specific. Defined by QDMA. The phase bit, changes each time round the 1489 * event ring 1490 */ 1491 #define MCDI_EVENT_EV_EVQ_PHASE_LBN 59 1492 #define MCDI_EVENT_EV_EVQ_PHASE_WIDTH 1 1493 #define MCDI_EVENT_EV_CODE_LBN 60 1494 #define MCDI_EVENT_EV_CODE_WIDTH 4 1495 #define MCDI_EVENT_CODE_LBN 44 1496 #define MCDI_EVENT_CODE_WIDTH 8 1497 /* enum: Event generated by host software */ 1498 #define MCDI_EVENT_SW_EVENT 0x0 1499 /* enum: Bad assert. */ 1500 #define MCDI_EVENT_CODE_BADSSERT 0x1 1501 /* enum: PM Notice. */ 1502 #define MCDI_EVENT_CODE_PMNOTICE 0x2 1503 /* enum: Command done. */ 1504 #define MCDI_EVENT_CODE_CMDDONE 0x3 1505 /* enum: Link change. */ 1506 #define MCDI_EVENT_CODE_LINKCHANGE 0x4 1507 /* enum: Sensor Event. */ 1508 #define MCDI_EVENT_CODE_SENSOREVT 0x5 1509 /* enum: Schedule error. */ 1510 #define MCDI_EVENT_CODE_SCHEDERR 0x6 1511 /* enum: Reboot. */ 1512 #define MCDI_EVENT_CODE_REBOOT 0x7 1513 /* enum: Mac stats DMA. */ 1514 #define MCDI_EVENT_CODE_MAC_STATS_DMA 0x8 1515 /* enum: Firmware alert. */ 1516 #define MCDI_EVENT_CODE_FWALERT 0x9 1517 /* enum: Function level reset. */ 1518 #define MCDI_EVENT_CODE_FLR 0xa 1519 /* enum: Transmit error */ 1520 #define MCDI_EVENT_CODE_TX_ERR 0xb 1521 /* enum: Tx flush has completed */ 1522 #define MCDI_EVENT_CODE_TX_FLUSH 0xc 1523 /* enum: PTP packet received timestamp */ 1524 #define MCDI_EVENT_CODE_PTP_RX 0xd 1525 /* enum: PTP NIC failure */ 1526 #define MCDI_EVENT_CODE_PTP_FAULT 0xe 1527 /* enum: PTP PPS event */ 1528 #define MCDI_EVENT_CODE_PTP_PPS 0xf 1529 /* enum: Rx flush has completed */ 1530 #define MCDI_EVENT_CODE_RX_FLUSH 0x10 1531 /* enum: Receive error */ 1532 #define MCDI_EVENT_CODE_RX_ERR 0x11 1533 /* enum: AOE fault */ 1534 #define MCDI_EVENT_CODE_AOE 0x12 1535 /* enum: Network port calibration failed (VCAL). */ 1536 #define MCDI_EVENT_CODE_VCAL_FAIL 0x13 1537 /* enum: HW PPS event */ 1538 #define MCDI_EVENT_CODE_HW_PPS 0x14 1539 /* enum: The MC has rebooted (huntington and later, siena uses CODE_REBOOT and 1540 * a different format) 1541 */ 1542 #define MCDI_EVENT_CODE_MC_REBOOT 0x15 1543 /* enum: the MC has detected a parity error */ 1544 #define MCDI_EVENT_CODE_PAR_ERR 0x16 1545 /* enum: the MC has detected a correctable error */ 1546 #define MCDI_EVENT_CODE_ECC_CORR_ERR 0x17 1547 /* enum: the MC has detected an uncorrectable error */ 1548 #define MCDI_EVENT_CODE_ECC_FATAL_ERR 0x18 1549 /* enum: The MC has entered offline BIST mode */ 1550 #define MCDI_EVENT_CODE_MC_BIST 0x19 1551 /* enum: PTP tick event providing current NIC time */ 1552 #define MCDI_EVENT_CODE_PTP_TIME 0x1a 1553 /* enum: MUM fault */ 1554 #define MCDI_EVENT_CODE_MUM 0x1b 1555 /* enum: notify the designated PF of a new authorization request */ 1556 #define MCDI_EVENT_CODE_PROXY_REQUEST 0x1c 1557 /* enum: notify a function that awaits an authorization that its request has 1558 * been processed and it may now resend the command 1559 */ 1560 #define MCDI_EVENT_CODE_PROXY_RESPONSE 0x1d 1561 /* enum: MCDI command accepted. New commands can be issued but this command is 1562 * not done yet. 1563 */ 1564 #define MCDI_EVENT_CODE_DBRET 0x1e 1565 /* enum: The MC has detected a fault on the SUC */ 1566 #define MCDI_EVENT_CODE_SUC 0x1f 1567 /* enum: Link change. This event is sent instead of LINKCHANGE if 1568 * WANT_V2_LINKCHANGES was set on driver attach. 1569 */ 1570 #define MCDI_EVENT_CODE_LINKCHANGE_V2 0x20 1571 /* enum: This event is sent if WANT_V2_LINKCHANGES was set on driver attach 1572 * when the local device capabilities changes. This will usually correspond to 1573 * a module change. 1574 */ 1575 #define MCDI_EVENT_CODE_MODULECHANGE 0x21 1576 /* enum: Notification that the sensors have been added and/or removed from the 1577 * sensor table. This event includes the new sensor table generation count, if 1578 * this does not match the driver's local copy it is expected to call 1579 * DYNAMIC_SENSORS_LIST to refresh it. 1580 */ 1581 #define MCDI_EVENT_CODE_DYNAMIC_SENSORS_CHANGE 0x22 1582 /* enum: Notification that a sensor has changed state as a result of a reading 1583 * crossing a threshold. This is sent as two events, the first event contains 1584 * the handle and the sensor's state (in the SRC field), and the second 1585 * contains the value. 1586 */ 1587 #define MCDI_EVENT_CODE_DYNAMIC_SENSORS_STATE_CHANGE 0x23 1588 /* enum: Notification that a descriptor proxy function configuration has been 1589 * pushed to "live" status (visible to host). SRC field contains the handle of 1590 * the affected descriptor proxy function. DATA field contains the generation 1591 * count of configuration set applied. See MC_CMD_DESC_PROXY_FUNC_CONFIG_SET / 1592 * MC_CMD_DESC_PROXY_FUNC_CONFIG_COMMIT and SF-122927-TC for details. 1593 */ 1594 #define MCDI_EVENT_CODE_DESC_PROXY_FUNC_CONFIG_COMMITTED 0x24 1595 /* enum: Notification that a descriptor proxy function has been reset. SRC 1596 * field contains the handle of the affected descriptor proxy function. See 1597 * SF-122927-TC for details. 1598 */ 1599 #define MCDI_EVENT_CODE_DESC_PROXY_FUNC_RESET 0x25 1600 /* enum: Notification that a driver attached to a descriptor proxy function. 1601 * SRC field contains the handle of the affected descriptor proxy function. For 1602 * Virtio proxy functions this message consists of two MCDI events, where the 1603 * first event's (CONT=1) DATA field carries negotiated virtio feature bits 0 1604 * to 31 and the second (CONT=0) carries bits 32 to 63. For EF100 proxy 1605 * functions event length and meaning of DATA field is not yet defined. See 1606 * SF-122927-TC for details. 1607 */ 1608 #define MCDI_EVENT_CODE_DESC_PROXY_FUNC_DRIVER_ATTACH 0x26 1609 /* enum: Notification that the mport journal has changed since it was last read 1610 * and updates can be read using the MC_CMD_MAE_MPORT_READ_JOURNAL command. The 1611 * firmware may moderate the events so that an event is not sent for every 1612 * change to the journal. 1613 */ 1614 #define MCDI_EVENT_CODE_MPORT_JOURNAL_CHANGE 0x27 1615 /* enum: Notification that a source queue is enabled and attached to its proxy 1616 * sink queue. SRC field contains the handle of the affected descriptor proxy 1617 * function. DATA field contains the relative source queue number and absolute 1618 * VI ID. 1619 */ 1620 #define MCDI_EVENT_CODE_DESC_PROXY_FUNC_QUEUE_START 0x28 1621 /* enum: Notification of a change in link state and/or link speed of a network 1622 * port link. This event applies to a network port identified by a handle, 1623 * PORT_HANDLE, which is discovered by the driver using the MC_CMD_ENUM_PORTS 1624 * command. 1625 */ 1626 #define MCDI_EVENT_CODE_PORT_LINKCHANGE 0x29 1627 /* enum: Notification of a change in the state of an MDI (external connector) 1628 * of a network port. This typically corresponds to module plug/unplug for 1629 * modular interfaces (e.g., SFP/QSFP and similar) or cable connect/disconnect. 1630 * This event applies to a network port identified by a handle, PORT_HANDLE, 1631 * which is discovered by the driver using the MC_CMD_ENUM_PORTS command. 1632 */ 1633 #define MCDI_EVENT_CODE_PORT_MODULECHANGE 0x2a 1634 /* enum: Notification that the port enumeration journal has changed since it 1635 * was last read and updates can be read using the MC_CMD_ENUM_PORTS command. 1636 * The firmware may moderate the events so that an event is not sent for every 1637 * change to the journal. 1638 */ 1639 #define MCDI_EVENT_CODE_ENUM_PORTS_CHANGE 0x2b 1640 /* enum: Artificial event generated by host and posted via MC for test 1641 * purposes. 1642 */ 1643 #define MCDI_EVENT_CODE_TESTGEN 0xfa 1644 #define MCDI_EVENT_CMDDONE_DATA_OFST 0 1645 #define MCDI_EVENT_CMDDONE_DATA_LEN 4 1646 #define MCDI_EVENT_CMDDONE_DATA_LBN 0 1647 #define MCDI_EVENT_CMDDONE_DATA_WIDTH 32 1648 #define MCDI_EVENT_LINKCHANGE_DATA_OFST 0 1649 #define MCDI_EVENT_LINKCHANGE_DATA_LEN 4 1650 #define MCDI_EVENT_LINKCHANGE_DATA_LBN 0 1651 #define MCDI_EVENT_LINKCHANGE_DATA_WIDTH 32 1652 #define MCDI_EVENT_PORT_LINKCHANGE_DATA_OFST 0 1653 #define MCDI_EVENT_PORT_LINKCHANGE_DATA_LEN 4 1654 #define MCDI_EVENT_PORT_LINKCHANGE_DATA_LBN 0 1655 #define MCDI_EVENT_PORT_LINKCHANGE_DATA_WIDTH 32 1656 #define MCDI_EVENT_PORT_MODULECHANGE_DATA_OFST 0 1657 #define MCDI_EVENT_PORT_MODULECHANGE_DATA_LEN 4 1658 #define MCDI_EVENT_PORT_MODULECHANGE_DATA_LBN 0 1659 #define MCDI_EVENT_PORT_MODULECHANGE_DATA_WIDTH 32 1660 #define MCDI_EVENT_SENSOREVT_DATA_OFST 0 1661 #define MCDI_EVENT_SENSOREVT_DATA_LEN 4 1662 #define MCDI_EVENT_SENSOREVT_DATA_LBN 0 1663 #define MCDI_EVENT_SENSOREVT_DATA_WIDTH 32 1664 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_OFST 0 1665 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_LEN 4 1666 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_LBN 0 1667 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_WIDTH 32 1668 #define MCDI_EVENT_TX_ERR_DATA_OFST 0 1669 #define MCDI_EVENT_TX_ERR_DATA_LEN 4 1670 #define MCDI_EVENT_TX_ERR_DATA_LBN 0 1671 #define MCDI_EVENT_TX_ERR_DATA_WIDTH 32 1672 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the seconds field of 1673 * timestamp 1674 */ 1675 #define MCDI_EVENT_PTP_SECONDS_OFST 0 1676 #define MCDI_EVENT_PTP_SECONDS_LEN 4 1677 #define MCDI_EVENT_PTP_SECONDS_LBN 0 1678 #define MCDI_EVENT_PTP_SECONDS_WIDTH 32 1679 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the major field of 1680 * timestamp 1681 */ 1682 #define MCDI_EVENT_PTP_MAJOR_OFST 0 1683 #define MCDI_EVENT_PTP_MAJOR_LEN 4 1684 #define MCDI_EVENT_PTP_MAJOR_LBN 0 1685 #define MCDI_EVENT_PTP_MAJOR_WIDTH 32 1686 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the nanoseconds field 1687 * of timestamp 1688 */ 1689 #define MCDI_EVENT_PTP_NANOSECONDS_OFST 0 1690 #define MCDI_EVENT_PTP_NANOSECONDS_LEN 4 1691 #define MCDI_EVENT_PTP_NANOSECONDS_LBN 0 1692 #define MCDI_EVENT_PTP_NANOSECONDS_WIDTH 32 1693 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the minor field of 1694 * timestamp 1695 */ 1696 #define MCDI_EVENT_PTP_MINOR_OFST 0 1697 #define MCDI_EVENT_PTP_MINOR_LEN 4 1698 #define MCDI_EVENT_PTP_MINOR_LBN 0 1699 #define MCDI_EVENT_PTP_MINOR_WIDTH 32 1700 /* For CODE_PTP_RX events, the lowest four bytes of sourceUUID from PTP packet 1701 */ 1702 #define MCDI_EVENT_PTP_UUID_OFST 0 1703 #define MCDI_EVENT_PTP_UUID_LEN 4 1704 #define MCDI_EVENT_PTP_UUID_LBN 0 1705 #define MCDI_EVENT_PTP_UUID_WIDTH 32 1706 #define MCDI_EVENT_RX_ERR_DATA_OFST 0 1707 #define MCDI_EVENT_RX_ERR_DATA_LEN 4 1708 #define MCDI_EVENT_RX_ERR_DATA_LBN 0 1709 #define MCDI_EVENT_RX_ERR_DATA_WIDTH 32 1710 #define MCDI_EVENT_PAR_ERR_DATA_OFST 0 1711 #define MCDI_EVENT_PAR_ERR_DATA_LEN 4 1712 #define MCDI_EVENT_PAR_ERR_DATA_LBN 0 1713 #define MCDI_EVENT_PAR_ERR_DATA_WIDTH 32 1714 #define MCDI_EVENT_ECC_CORR_ERR_DATA_OFST 0 1715 #define MCDI_EVENT_ECC_CORR_ERR_DATA_LEN 4 1716 #define MCDI_EVENT_ECC_CORR_ERR_DATA_LBN 0 1717 #define MCDI_EVENT_ECC_CORR_ERR_DATA_WIDTH 32 1718 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_OFST 0 1719 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_LEN 4 1720 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_LBN 0 1721 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_WIDTH 32 1722 /* For CODE_PTP_TIME events, the major value of the PTP clock */ 1723 #define MCDI_EVENT_PTP_TIME_MAJOR_OFST 0 1724 #define MCDI_EVENT_PTP_TIME_MAJOR_LEN 4 1725 #define MCDI_EVENT_PTP_TIME_MAJOR_LBN 0 1726 #define MCDI_EVENT_PTP_TIME_MAJOR_WIDTH 32 1727 /* For CODE_PTP_TIME events, bits 19-26 of the minor value of the PTP clock */ 1728 #define MCDI_EVENT_PTP_TIME_MINOR_26_19_LBN 36 1729 #define MCDI_EVENT_PTP_TIME_MINOR_26_19_WIDTH 8 1730 /* For CODE_PTP_TIME events, most significant bits of the minor value of the 1731 * PTP clock. This is a more generic equivalent of PTP_TIME_MINOR_26_19. 1732 */ 1733 #define MCDI_EVENT_PTP_TIME_MINOR_MS_8BITS_LBN 36 1734 #define MCDI_EVENT_PTP_TIME_MINOR_MS_8BITS_WIDTH 8 1735 /* For CODE_PTP_TIME events where report sync status is enabled, indicates 1736 * whether the NIC clock has ever been set 1737 */ 1738 #define MCDI_EVENT_PTP_TIME_NIC_CLOCK_VALID_LBN 36 1739 #define MCDI_EVENT_PTP_TIME_NIC_CLOCK_VALID_WIDTH 1 1740 /* For CODE_PTP_TIME events where report sync status is enabled, indicates 1741 * whether the NIC and System clocks are in sync 1742 */ 1743 #define MCDI_EVENT_PTP_TIME_HOST_NIC_IN_SYNC_LBN 37 1744 #define MCDI_EVENT_PTP_TIME_HOST_NIC_IN_SYNC_WIDTH 1 1745 /* For CODE_PTP_TIME events where report sync status is enabled, bits 21-26 of 1746 * the minor value of the PTP clock 1747 */ 1748 #define MCDI_EVENT_PTP_TIME_MINOR_26_21_LBN 38 1749 #define MCDI_EVENT_PTP_TIME_MINOR_26_21_WIDTH 6 1750 /* For CODE_PTP_TIME events, most significant bits of the minor value of the 1751 * PTP clock. This is a more generic equivalent of PTP_TIME_MINOR_26_21. 1752 */ 1753 #define MCDI_EVENT_PTP_TIME_MINOR_MS_6BITS_LBN 38 1754 #define MCDI_EVENT_PTP_TIME_MINOR_MS_6BITS_WIDTH 6 1755 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_OFST 0 1756 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_LEN 4 1757 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_LBN 0 1758 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_WIDTH 32 1759 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_OFST 0 1760 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_LEN 4 1761 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_LBN 0 1762 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_WIDTH 32 1763 /* Zero means that the request has been completed or authorized, and the driver 1764 * should resend it. A non-zero value means that the authorization has been 1765 * denied, and gives the reason. Typically it will be EPERM. 1766 */ 1767 #define MCDI_EVENT_PROXY_RESPONSE_RC_LBN 36 1768 #define MCDI_EVENT_PROXY_RESPONSE_RC_WIDTH 8 1769 #define MCDI_EVENT_DBRET_DATA_OFST 0 1770 #define MCDI_EVENT_DBRET_DATA_LEN 4 1771 #define MCDI_EVENT_DBRET_DATA_LBN 0 1772 #define MCDI_EVENT_DBRET_DATA_WIDTH 32 1773 #define MCDI_EVENT_LINKCHANGE_V2_DATA_OFST 0 1774 #define MCDI_EVENT_LINKCHANGE_V2_DATA_LEN 4 1775 #define MCDI_EVENT_LINKCHANGE_V2_DATA_LBN 0 1776 #define MCDI_EVENT_LINKCHANGE_V2_DATA_WIDTH 32 1777 #define MCDI_EVENT_MODULECHANGE_DATA_OFST 0 1778 #define MCDI_EVENT_MODULECHANGE_DATA_LEN 4 1779 #define MCDI_EVENT_MODULECHANGE_DATA_LBN 0 1780 #define MCDI_EVENT_MODULECHANGE_DATA_WIDTH 32 1781 /* The new generation count after a sensor has been added or deleted. */ 1782 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_OFST 0 1783 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_LEN 4 1784 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_LBN 0 1785 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_WIDTH 32 1786 /* The handle of a dynamic sensor. */ 1787 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_OFST 0 1788 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_LEN 4 1789 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_LBN 0 1790 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_WIDTH 32 1791 /* The current values of a sensor. */ 1792 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_OFST 0 1793 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_LEN 4 1794 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_LBN 0 1795 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_WIDTH 32 1796 /* The current state of a sensor. */ 1797 #define MCDI_EVENT_DYNAMIC_SENSORS_STATE_LBN 36 1798 #define MCDI_EVENT_DYNAMIC_SENSORS_STATE_WIDTH 8 1799 #define MCDI_EVENT_DESC_PROXY_DATA_OFST 0 1800 #define MCDI_EVENT_DESC_PROXY_DATA_LEN 4 1801 #define MCDI_EVENT_DESC_PROXY_DATA_LBN 0 1802 #define MCDI_EVENT_DESC_PROXY_DATA_WIDTH 32 1803 /* Generation count of applied configuration set */ 1804 #define MCDI_EVENT_DESC_PROXY_GENERATION_OFST 0 1805 #define MCDI_EVENT_DESC_PROXY_GENERATION_LEN 4 1806 #define MCDI_EVENT_DESC_PROXY_GENERATION_LBN 0 1807 #define MCDI_EVENT_DESC_PROXY_GENERATION_WIDTH 32 1808 /* Virtio features negotiated with the host driver. First event (CONT=1) 1809 * carries bits 0 to 31. Second event (CONT=0) carries bits 32 to 63. 1810 */ 1811 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_OFST 0 1812 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_LEN 4 1813 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_LBN 0 1814 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_WIDTH 32 1815 1816 1817 /***********************************/ 1818 /* MC_CMD_READ32 1819 * Read multiple 32byte words from MC memory. Note - this command really 1820 * belongs to INSECURE category but is required by shmboot. The command handler 1821 * has additional checks to reject insecure calls. 1822 */ 1823 #define MC_CMD_READ32 0x1 1824 #undef MC_CMD_0x1_PRIVILEGE_CTG 1825 1826 #define MC_CMD_0x1_PRIVILEGE_CTG SRIOV_CTG_ADMIN 1827 1828 /* MC_CMD_READ32_IN msgrequest */ 1829 #define MC_CMD_READ32_IN_LEN 8 1830 #define MC_CMD_READ32_IN_ADDR_OFST 0 1831 #define MC_CMD_READ32_IN_ADDR_LEN 4 1832 #define MC_CMD_READ32_IN_NUMWORDS_OFST 4 1833 #define MC_CMD_READ32_IN_NUMWORDS_LEN 4 1834 1835 /* MC_CMD_READ32_OUT msgresponse */ 1836 #define MC_CMD_READ32_OUT_LENMIN 4 1837 #define MC_CMD_READ32_OUT_LENMAX 252 1838 #define MC_CMD_READ32_OUT_LENMAX_MCDI2 1020 1839 #define MC_CMD_READ32_OUT_LEN(num) (0+4*(num)) 1840 #define MC_CMD_READ32_OUT_BUFFER_NUM(len) (((len)-0)/4) 1841 #define MC_CMD_READ32_OUT_BUFFER_OFST 0 1842 #define MC_CMD_READ32_OUT_BUFFER_LEN 4 1843 #define MC_CMD_READ32_OUT_BUFFER_MINNUM 1 1844 #define MC_CMD_READ32_OUT_BUFFER_MAXNUM 63 1845 #define MC_CMD_READ32_OUT_BUFFER_MAXNUM_MCDI2 255 1846 1847 1848 /***********************************/ 1849 /* MC_CMD_WRITE32 1850 * Write multiple 32byte words to MC memory. 1851 */ 1852 #define MC_CMD_WRITE32 0x2 1853 #undef MC_CMD_0x2_PRIVILEGE_CTG 1854 1855 #define MC_CMD_0x2_PRIVILEGE_CTG SRIOV_CTG_INSECURE 1856 1857 /* MC_CMD_WRITE32_IN msgrequest */ 1858 #define MC_CMD_WRITE32_IN_LENMIN 8 1859 #define MC_CMD_WRITE32_IN_LENMAX 252 1860 #define MC_CMD_WRITE32_IN_LENMAX_MCDI2 1020 1861 #define MC_CMD_WRITE32_IN_LEN(num) (4+4*(num)) 1862 #define MC_CMD_WRITE32_IN_BUFFER_NUM(len) (((len)-4)/4) 1863 #define MC_CMD_WRITE32_IN_ADDR_OFST 0 1864 #define MC_CMD_WRITE32_IN_ADDR_LEN 4 1865 #define MC_CMD_WRITE32_IN_BUFFER_OFST 4 1866 #define MC_CMD_WRITE32_IN_BUFFER_LEN 4 1867 #define MC_CMD_WRITE32_IN_BUFFER_MINNUM 1 1868 #define MC_CMD_WRITE32_IN_BUFFER_MAXNUM 62 1869 #define MC_CMD_WRITE32_IN_BUFFER_MAXNUM_MCDI2 254 1870 1871 /* MC_CMD_WRITE32_OUT msgresponse */ 1872 #define MC_CMD_WRITE32_OUT_LEN 0 1873 1874 1875 /***********************************/ 1876 /* MC_CMD_GET_BOOT_STATUS 1877 * Get the instruction address from which the MC booted. 1878 */ 1879 #define MC_CMD_GET_BOOT_STATUS 0x5 1880 #undef MC_CMD_0x5_PRIVILEGE_CTG 1881 1882 #define MC_CMD_0x5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 1883 1884 /* MC_CMD_GET_BOOT_STATUS_IN msgrequest */ 1885 #define MC_CMD_GET_BOOT_STATUS_IN_LEN 0 1886 1887 /* MC_CMD_GET_BOOT_STATUS_OUT msgresponse */ 1888 #define MC_CMD_GET_BOOT_STATUS_OUT_LEN 8 1889 /* ?? */ 1890 #define MC_CMD_GET_BOOT_STATUS_OUT_BOOT_OFFSET_OFST 0 1891 #define MC_CMD_GET_BOOT_STATUS_OUT_BOOT_OFFSET_LEN 4 1892 /* enum: indicates that the MC wasn't flash booted */ 1893 #define MC_CMD_GET_BOOT_STATUS_OUT_BOOT_OFFSET_NULL 0xdeadbeef 1894 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_OFST 4 1895 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_LEN 4 1896 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_WATCHDOG_OFST 4 1897 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_WATCHDOG_LBN 0 1898 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_WATCHDOG_WIDTH 1 1899 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_PRIMARY_OFST 4 1900 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_PRIMARY_LBN 1 1901 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_PRIMARY_WIDTH 1 1902 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_BACKUP_OFST 4 1903 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_BACKUP_LBN 2 1904 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_BACKUP_WIDTH 1 1905 1906 1907 /***********************************/ 1908 /* MC_CMD_GET_ASSERTS 1909 * Get (and optionally clear) the current assertion status. Only 1910 * OUT.GLOBAL_FLAGS is guaranteed to exist in the completion payload. The other 1911 * fields will only be present if OUT.GLOBAL_FLAGS != NO_FAILS 1912 */ 1913 #define MC_CMD_GET_ASSERTS 0x6 1914 #undef MC_CMD_0x6_PRIVILEGE_CTG 1915 1916 #define MC_CMD_0x6_PRIVILEGE_CTG SRIOV_CTG_ADMIN 1917 1918 /* MC_CMD_GET_ASSERTS_IN msgrequest */ 1919 #define MC_CMD_GET_ASSERTS_IN_LEN 4 1920 /* Set to clear assertion */ 1921 #define MC_CMD_GET_ASSERTS_IN_CLEAR_OFST 0 1922 #define MC_CMD_GET_ASSERTS_IN_CLEAR_LEN 4 1923 1924 /* MC_CMD_GET_ASSERTS_OUT msgresponse */ 1925 #define MC_CMD_GET_ASSERTS_OUT_LEN 140 1926 /* Assertion status flag. */ 1927 #define MC_CMD_GET_ASSERTS_OUT_GLOBAL_FLAGS_OFST 0 1928 #define MC_CMD_GET_ASSERTS_OUT_GLOBAL_FLAGS_LEN 4 1929 /* enum: No assertions have failed. */ 1930 #define MC_CMD_GET_ASSERTS_FLAGS_NO_FAILS 0x1 1931 /* enum: A system-level assertion has failed. */ 1932 #define MC_CMD_GET_ASSERTS_FLAGS_SYS_FAIL 0x2 1933 /* enum: A thread-level assertion has failed. */ 1934 #define MC_CMD_GET_ASSERTS_FLAGS_THR_FAIL 0x3 1935 /* enum: The system was reset by the watchdog. */ 1936 #define MC_CMD_GET_ASSERTS_FLAGS_WDOG_FIRED 0x4 1937 /* enum: An illegal address trap stopped the system (huntington and later) */ 1938 #define MC_CMD_GET_ASSERTS_FLAGS_ADDR_TRAP 0x5 1939 /* Failing PC value */ 1940 #define MC_CMD_GET_ASSERTS_OUT_SAVED_PC_OFFS_OFST 4 1941 #define MC_CMD_GET_ASSERTS_OUT_SAVED_PC_OFFS_LEN 4 1942 /* Saved GP regs */ 1943 #define MC_CMD_GET_ASSERTS_OUT_GP_REGS_OFFS_OFST 8 1944 #define MC_CMD_GET_ASSERTS_OUT_GP_REGS_OFFS_LEN 4 1945 #define MC_CMD_GET_ASSERTS_OUT_GP_REGS_OFFS_NUM 31 1946 /* enum: A magic value hinting that the value in this register at the time of 1947 * the failure has likely been lost. 1948 */ 1949 #define MC_CMD_GET_ASSERTS_REG_NO_DATA 0xda7a1057 1950 /* Failing thread address */ 1951 #define MC_CMD_GET_ASSERTS_OUT_THREAD_OFFS_OFST 132 1952 #define MC_CMD_GET_ASSERTS_OUT_THREAD_OFFS_LEN 4 1953 #define MC_CMD_GET_ASSERTS_OUT_RESERVED_OFST 136 1954 #define MC_CMD_GET_ASSERTS_OUT_RESERVED_LEN 4 1955 1956 /* MC_CMD_GET_ASSERTS_OUT_V2 msgresponse: Extended response for MicroBlaze CPUs 1957 * found on Riverhead designs 1958 */ 1959 #define MC_CMD_GET_ASSERTS_OUT_V2_LEN 240 1960 /* Assertion status flag. */ 1961 #define MC_CMD_GET_ASSERTS_OUT_V2_GLOBAL_FLAGS_OFST 0 1962 #define MC_CMD_GET_ASSERTS_OUT_V2_GLOBAL_FLAGS_LEN 4 1963 /* enum: No assertions have failed. */ 1964 /* MC_CMD_GET_ASSERTS_FLAGS_NO_FAILS 0x1 */ 1965 /* enum: A system-level assertion has failed. */ 1966 /* MC_CMD_GET_ASSERTS_FLAGS_SYS_FAIL 0x2 */ 1967 /* enum: A thread-level assertion has failed. */ 1968 /* MC_CMD_GET_ASSERTS_FLAGS_THR_FAIL 0x3 */ 1969 /* enum: The system was reset by the watchdog. */ 1970 /* MC_CMD_GET_ASSERTS_FLAGS_WDOG_FIRED 0x4 */ 1971 /* enum: An illegal address trap stopped the system (huntington and later) */ 1972 /* MC_CMD_GET_ASSERTS_FLAGS_ADDR_TRAP 0x5 */ 1973 /* Failing PC value */ 1974 #define MC_CMD_GET_ASSERTS_OUT_V2_SAVED_PC_OFFS_OFST 4 1975 #define MC_CMD_GET_ASSERTS_OUT_V2_SAVED_PC_OFFS_LEN 4 1976 /* Saved GP regs */ 1977 #define MC_CMD_GET_ASSERTS_OUT_V2_GP_REGS_OFFS_OFST 8 1978 #define MC_CMD_GET_ASSERTS_OUT_V2_GP_REGS_OFFS_LEN 4 1979 #define MC_CMD_GET_ASSERTS_OUT_V2_GP_REGS_OFFS_NUM 31 1980 /* enum: A magic value hinting that the value in this register at the time of 1981 * the failure has likely been lost. 1982 */ 1983 /* MC_CMD_GET_ASSERTS_REG_NO_DATA 0xda7a1057 */ 1984 /* Failing thread address */ 1985 #define MC_CMD_GET_ASSERTS_OUT_V2_THREAD_OFFS_OFST 132 1986 #define MC_CMD_GET_ASSERTS_OUT_V2_THREAD_OFFS_LEN 4 1987 #define MC_CMD_GET_ASSERTS_OUT_V2_RESERVED_OFST 136 1988 #define MC_CMD_GET_ASSERTS_OUT_V2_RESERVED_LEN 4 1989 /* Saved Special Function Registers */ 1990 #define MC_CMD_GET_ASSERTS_OUT_V2_SF_REGS_OFFS_OFST 136 1991 #define MC_CMD_GET_ASSERTS_OUT_V2_SF_REGS_OFFS_LEN 4 1992 #define MC_CMD_GET_ASSERTS_OUT_V2_SF_REGS_OFFS_NUM 26 1993 1994 /* MC_CMD_GET_ASSERTS_OUT_V3 msgresponse: Extended response with asserted 1995 * firmware version information 1996 */ 1997 #define MC_CMD_GET_ASSERTS_OUT_V3_LEN 360 1998 /* Assertion status flag. */ 1999 #define MC_CMD_GET_ASSERTS_OUT_V3_GLOBAL_FLAGS_OFST 0 2000 #define MC_CMD_GET_ASSERTS_OUT_V3_GLOBAL_FLAGS_LEN 4 2001 /* enum: No assertions have failed. */ 2002 /* MC_CMD_GET_ASSERTS_FLAGS_NO_FAILS 0x1 */ 2003 /* enum: A system-level assertion has failed. */ 2004 /* MC_CMD_GET_ASSERTS_FLAGS_SYS_FAIL 0x2 */ 2005 /* enum: A thread-level assertion has failed. */ 2006 /* MC_CMD_GET_ASSERTS_FLAGS_THR_FAIL 0x3 */ 2007 /* enum: The system was reset by the watchdog. */ 2008 /* MC_CMD_GET_ASSERTS_FLAGS_WDOG_FIRED 0x4 */ 2009 /* enum: An illegal address trap stopped the system (huntington and later) */ 2010 /* MC_CMD_GET_ASSERTS_FLAGS_ADDR_TRAP 0x5 */ 2011 /* Failing PC value */ 2012 #define MC_CMD_GET_ASSERTS_OUT_V3_SAVED_PC_OFFS_OFST 4 2013 #define MC_CMD_GET_ASSERTS_OUT_V3_SAVED_PC_OFFS_LEN 4 2014 /* Saved GP regs */ 2015 #define MC_CMD_GET_ASSERTS_OUT_V3_GP_REGS_OFFS_OFST 8 2016 #define MC_CMD_GET_ASSERTS_OUT_V3_GP_REGS_OFFS_LEN 4 2017 #define MC_CMD_GET_ASSERTS_OUT_V3_GP_REGS_OFFS_NUM 31 2018 /* enum: A magic value hinting that the value in this register at the time of 2019 * the failure has likely been lost. 2020 */ 2021 /* MC_CMD_GET_ASSERTS_REG_NO_DATA 0xda7a1057 */ 2022 /* Failing thread address */ 2023 #define MC_CMD_GET_ASSERTS_OUT_V3_THREAD_OFFS_OFST 132 2024 #define MC_CMD_GET_ASSERTS_OUT_V3_THREAD_OFFS_LEN 4 2025 #define MC_CMD_GET_ASSERTS_OUT_V3_RESERVED_OFST 136 2026 #define MC_CMD_GET_ASSERTS_OUT_V3_RESERVED_LEN 4 2027 /* Saved Special Function Registers */ 2028 #define MC_CMD_GET_ASSERTS_OUT_V3_SF_REGS_OFFS_OFST 136 2029 #define MC_CMD_GET_ASSERTS_OUT_V3_SF_REGS_OFFS_LEN 4 2030 #define MC_CMD_GET_ASSERTS_OUT_V3_SF_REGS_OFFS_NUM 26 2031 /* MC firmware unique build ID (as binary SHA-1 value) */ 2032 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_ID_OFST 240 2033 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_ID_LEN 20 2034 /* MC firmware build date (as Unix timestamp) */ 2035 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_OFST 260 2036 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LEN 8 2037 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_OFST 260 2038 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_LEN 4 2039 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_LBN 2080 2040 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_WIDTH 32 2041 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_OFST 264 2042 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_LEN 4 2043 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_LBN 2112 2044 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_WIDTH 32 2045 /* MC firmware version number */ 2046 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_OFST 268 2047 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LEN 8 2048 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_OFST 268 2049 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_LEN 4 2050 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_LBN 2144 2051 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_WIDTH 32 2052 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_OFST 272 2053 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_LEN 4 2054 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_LBN 2176 2055 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_WIDTH 32 2056 /* MC firmware security level */ 2057 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_SECURITY_LEVEL_OFST 276 2058 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_SECURITY_LEVEL_LEN 4 2059 /* MC firmware extra version info (as null-terminated US-ASCII string) */ 2060 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_EXTRA_INFO_OFST 280 2061 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_EXTRA_INFO_LEN 16 2062 /* MC firmware build name (as null-terminated US-ASCII string) */ 2063 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_NAME_OFST 296 2064 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_NAME_LEN 64 2065 2066 2067 /***********************************/ 2068 /* MC_CMD_LOG_CTRL 2069 * Configure the output stream for log events such as link state changes, 2070 * sensor notifications and MCDI completions 2071 */ 2072 #define MC_CMD_LOG_CTRL 0x7 2073 #undef MC_CMD_0x7_PRIVILEGE_CTG 2074 2075 #define MC_CMD_0x7_PRIVILEGE_CTG SRIOV_CTG_GENERAL 2076 2077 /* MC_CMD_LOG_CTRL_IN msgrequest */ 2078 #define MC_CMD_LOG_CTRL_IN_LEN 8 2079 /* Log destination */ 2080 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_OFST 0 2081 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_LEN 4 2082 /* enum property: bitmask */ 2083 /* enum: UART. */ 2084 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_UART 0x1 2085 /* enum: Event queue. */ 2086 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_EVQ 0x2 2087 /* Legacy argument. Must be zero. */ 2088 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_EVQ_OFST 4 2089 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_EVQ_LEN 4 2090 2091 /* MC_CMD_LOG_CTRL_OUT msgresponse */ 2092 #define MC_CMD_LOG_CTRL_OUT_LEN 0 2093 2094 2095 /***********************************/ 2096 /* MC_CMD_GET_VERSION 2097 * Get version information about adapter components. 2098 */ 2099 #define MC_CMD_GET_VERSION 0x8 2100 #undef MC_CMD_0x8_PRIVILEGE_CTG 2101 2102 #define MC_CMD_0x8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 2103 2104 /* MC_CMD_GET_VERSION_IN msgrequest */ 2105 #define MC_CMD_GET_VERSION_IN_LEN 0 2106 2107 /* MC_CMD_GET_VERSION_EXT_IN msgrequest: Asks for the extended version */ 2108 #define MC_CMD_GET_VERSION_EXT_IN_LEN 4 2109 /* placeholder, set to 0 */ 2110 #define MC_CMD_GET_VERSION_EXT_IN_EXT_FLAGS_OFST 0 2111 #define MC_CMD_GET_VERSION_EXT_IN_EXT_FLAGS_LEN 4 2112 2113 /* MC_CMD_GET_VERSION_V0_OUT msgresponse: deprecated version format */ 2114 #define MC_CMD_GET_VERSION_V0_OUT_LEN 4 2115 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 2116 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 2117 /* enum: Reserved version number to indicate "any" version. */ 2118 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_ANY 0xffffffff 2119 /* enum: Bootrom version value for Siena. */ 2120 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_SIENA_BOOTROM 0xb0070000 2121 /* enum: Bootrom version value for Huntington. */ 2122 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_HUNT_BOOTROM 0xb0070001 2123 /* enum: Bootrom version value for Medford2. */ 2124 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_MEDFORD2_BOOTROM 0xb0070002 2125 2126 /* MC_CMD_GET_VERSION_OUT msgresponse */ 2127 #define MC_CMD_GET_VERSION_OUT_LEN 32 2128 /* This is normally the UTC build time in seconds since epoch or one of the 2129 * special values listed 2130 */ 2131 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 2132 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 2133 /* Enum values, see field(s): */ 2134 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 2135 #define MC_CMD_GET_VERSION_OUT_PCOL_OFST 4 2136 #define MC_CMD_GET_VERSION_OUT_PCOL_LEN 4 2137 /* 128bit mask of functions supported by the current firmware */ 2138 #define MC_CMD_GET_VERSION_OUT_SUPPORTED_FUNCS_OFST 8 2139 #define MC_CMD_GET_VERSION_OUT_SUPPORTED_FUNCS_LEN 16 2140 #define MC_CMD_GET_VERSION_OUT_VERSION_OFST 24 2141 #define MC_CMD_GET_VERSION_OUT_VERSION_LEN 8 2142 #define MC_CMD_GET_VERSION_OUT_VERSION_LO_OFST 24 2143 #define MC_CMD_GET_VERSION_OUT_VERSION_LO_LEN 4 2144 #define MC_CMD_GET_VERSION_OUT_VERSION_LO_LBN 192 2145 #define MC_CMD_GET_VERSION_OUT_VERSION_LO_WIDTH 32 2146 #define MC_CMD_GET_VERSION_OUT_VERSION_HI_OFST 28 2147 #define MC_CMD_GET_VERSION_OUT_VERSION_HI_LEN 4 2148 #define MC_CMD_GET_VERSION_OUT_VERSION_HI_LBN 224 2149 #define MC_CMD_GET_VERSION_OUT_VERSION_HI_WIDTH 32 2150 2151 /* MC_CMD_GET_VERSION_EXT_OUT msgresponse */ 2152 #define MC_CMD_GET_VERSION_EXT_OUT_LEN 48 2153 /* This is normally the UTC build time in seconds since epoch or one of the 2154 * special values listed 2155 */ 2156 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 2157 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 2158 /* Enum values, see field(s): */ 2159 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 2160 #define MC_CMD_GET_VERSION_EXT_OUT_PCOL_OFST 4 2161 #define MC_CMD_GET_VERSION_EXT_OUT_PCOL_LEN 4 2162 /* 128bit mask of functions supported by the current firmware */ 2163 #define MC_CMD_GET_VERSION_EXT_OUT_SUPPORTED_FUNCS_OFST 8 2164 #define MC_CMD_GET_VERSION_EXT_OUT_SUPPORTED_FUNCS_LEN 16 2165 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_OFST 24 2166 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LEN 8 2167 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_OFST 24 2168 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_LEN 4 2169 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_LBN 192 2170 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_WIDTH 32 2171 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_OFST 28 2172 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_LEN 4 2173 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_LBN 224 2174 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_WIDTH 32 2175 /* extra info */ 2176 #define MC_CMD_GET_VERSION_EXT_OUT_EXTRA_OFST 32 2177 #define MC_CMD_GET_VERSION_EXT_OUT_EXTRA_LEN 16 2178 2179 /* MC_CMD_GET_VERSION_V2_OUT msgresponse: Extended response providing version 2180 * information for all adapter components. For Riverhead based designs, base MC 2181 * firmware version fields refer to NMC firmware, while CMC firmware data is in 2182 * dedicated CMC fields. Flags indicate which data is present in the response 2183 * (depending on which components exist on a particular adapter) 2184 */ 2185 #define MC_CMD_GET_VERSION_V2_OUT_LEN 304 2186 /* This is normally the UTC build time in seconds since epoch or one of the 2187 * special values listed 2188 */ 2189 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 2190 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 2191 /* Enum values, see field(s): */ 2192 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 2193 #define MC_CMD_GET_VERSION_V2_OUT_PCOL_OFST 4 2194 #define MC_CMD_GET_VERSION_V2_OUT_PCOL_LEN 4 2195 /* 128bit mask of functions supported by the current firmware */ 2196 #define MC_CMD_GET_VERSION_V2_OUT_SUPPORTED_FUNCS_OFST 8 2197 #define MC_CMD_GET_VERSION_V2_OUT_SUPPORTED_FUNCS_LEN 16 2198 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_OFST 24 2199 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LEN 8 2200 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_OFST 24 2201 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_LEN 4 2202 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_LBN 192 2203 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_WIDTH 32 2204 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_OFST 28 2205 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_LEN 4 2206 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_LBN 224 2207 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_WIDTH 32 2208 /* extra info */ 2209 #define MC_CMD_GET_VERSION_V2_OUT_EXTRA_OFST 32 2210 #define MC_CMD_GET_VERSION_V2_OUT_EXTRA_LEN 16 2211 /* Flags indicating which extended fields are valid */ 2212 #define MC_CMD_GET_VERSION_V2_OUT_FLAGS_OFST 48 2213 #define MC_CMD_GET_VERSION_V2_OUT_FLAGS_LEN 4 2214 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_EXT_INFO_PRESENT_OFST 48 2215 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_EXT_INFO_PRESENT_LBN 0 2216 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1 2217 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_EXT_INFO_PRESENT_OFST 48 2218 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1 2219 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1 2220 #define MC_CMD_GET_VERSION_V2_OUT_CMC_EXT_INFO_PRESENT_OFST 48 2221 #define MC_CMD_GET_VERSION_V2_OUT_CMC_EXT_INFO_PRESENT_LBN 2 2222 #define MC_CMD_GET_VERSION_V2_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1 2223 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXT_INFO_PRESENT_OFST 48 2224 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXT_INFO_PRESENT_LBN 3 2225 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1 2226 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 2227 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 2228 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 2229 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_HW_VERSION_PRESENT_OFST 48 2230 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_HW_VERSION_PRESENT_LBN 5 2231 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1 2232 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_FW_VERSION_PRESENT_OFST 48 2233 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_FW_VERSION_PRESENT_LBN 6 2234 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1 2235 #define MC_CMD_GET_VERSION_V2_OUT_SOC_BOOT_VERSION_PRESENT_OFST 48 2236 #define MC_CMD_GET_VERSION_V2_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7 2237 #define MC_CMD_GET_VERSION_V2_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1 2238 #define MC_CMD_GET_VERSION_V2_OUT_SOC_UBOOT_VERSION_PRESENT_OFST 48 2239 #define MC_CMD_GET_VERSION_V2_OUT_SOC_UBOOT_VERSION_PRESENT_LBN 8 2240 #define MC_CMD_GET_VERSION_V2_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1 2241 #define MC_CMD_GET_VERSION_V2_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_OFST 48 2242 #define MC_CMD_GET_VERSION_V2_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_LBN 9 2243 #define MC_CMD_GET_VERSION_V2_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1 2244 #define MC_CMD_GET_VERSION_V2_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_OFST 48 2245 #define MC_CMD_GET_VERSION_V2_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_LBN 10 2246 #define MC_CMD_GET_VERSION_V2_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1 2247 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_PRESENT_OFST 48 2248 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_PRESENT_LBN 11 2249 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_PRESENT_WIDTH 1 2250 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_VERSION_PRESENT_OFST 48 2251 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_VERSION_PRESENT_LBN 12 2252 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_VERSION_PRESENT_WIDTH 1 2253 #define MC_CMD_GET_VERSION_V2_OUT_BUNDLE_VERSION_PRESENT_OFST 48 2254 #define MC_CMD_GET_VERSION_V2_OUT_BUNDLE_VERSION_PRESENT_LBN 13 2255 #define MC_CMD_GET_VERSION_V2_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1 2256 /* MC firmware unique build ID (as binary SHA-1 value) */ 2257 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_ID_OFST 52 2258 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_ID_LEN 20 2259 /* MC firmware security level */ 2260 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_SECURITY_LEVEL_OFST 72 2261 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_SECURITY_LEVEL_LEN 4 2262 /* MC firmware build name (as null-terminated US-ASCII string) */ 2263 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_NAME_OFST 76 2264 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_NAME_LEN 64 2265 /* The SUC firmware version as four numbers - a.b.c.d */ 2266 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_OFST 140 2267 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_LEN 4 2268 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_NUM 4 2269 /* SUC firmware build date (as 64-bit Unix timestamp) */ 2270 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_OFST 156 2271 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LEN 8 2272 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_OFST 156 2273 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_LEN 4 2274 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_LBN 1248 2275 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_WIDTH 32 2276 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_OFST 160 2277 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_LEN 4 2278 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_LBN 1280 2279 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_WIDTH 32 2280 /* The ID of the SUC chip. This is specific to the platform but typically 2281 * indicates family, memory sizes etc. See SF-116728-SW for further details. 2282 */ 2283 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_CHIP_ID_OFST 164 2284 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_CHIP_ID_LEN 4 2285 /* The CMC firmware version as four numbers - a.b.c.d */ 2286 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_VERSION_OFST 168 2287 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_VERSION_LEN 4 2288 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_VERSION_NUM 4 2289 /* CMC firmware build date (as 64-bit Unix timestamp) */ 2290 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_OFST 184 2291 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LEN 8 2292 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_OFST 184 2293 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_LEN 4 2294 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_LBN 1472 2295 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_WIDTH 32 2296 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_OFST 188 2297 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_LEN 4 2298 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_LBN 1504 2299 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_WIDTH 32 2300 /* FPGA version as three numbers. On Riverhead based systems this field uses 2301 * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 2302 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 2303 * => B, ...) FPGA_VERSION[2]: Sub-revision number 2304 */ 2305 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_VERSION_OFST 192 2306 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_VERSION_LEN 4 2307 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_VERSION_NUM 3 2308 /* Extra FPGA revision information (as null-terminated US-ASCII string) */ 2309 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXTRA_OFST 204 2310 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXTRA_LEN 16 2311 /* Board name / adapter model (as null-terminated US-ASCII string) */ 2312 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_NAME_OFST 220 2313 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_NAME_LEN 16 2314 /* Board revision number */ 2315 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_REVISION_OFST 236 2316 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_REVISION_LEN 4 2317 /* Board serial number (as null-terminated US-ASCII string) */ 2318 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_SERIAL_OFST 240 2319 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_SERIAL_LEN 64 2320 2321 /* MC_CMD_GET_VERSION_V3_OUT msgresponse: Extended response providing version 2322 * information for all adapter components. For Riverhead based designs, base MC 2323 * firmware version fields refer to NMC firmware, while CMC firmware data is in 2324 * dedicated CMC fields. Flags indicate which data is present in the response 2325 * (depending on which components exist on a particular adapter) 2326 */ 2327 #define MC_CMD_GET_VERSION_V3_OUT_LEN 328 2328 /* This is normally the UTC build time in seconds since epoch or one of the 2329 * special values listed 2330 */ 2331 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 2332 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 2333 /* Enum values, see field(s): */ 2334 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 2335 #define MC_CMD_GET_VERSION_V3_OUT_PCOL_OFST 4 2336 #define MC_CMD_GET_VERSION_V3_OUT_PCOL_LEN 4 2337 /* 128bit mask of functions supported by the current firmware */ 2338 #define MC_CMD_GET_VERSION_V3_OUT_SUPPORTED_FUNCS_OFST 8 2339 #define MC_CMD_GET_VERSION_V3_OUT_SUPPORTED_FUNCS_LEN 16 2340 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_OFST 24 2341 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LEN 8 2342 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_OFST 24 2343 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_LEN 4 2344 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_LBN 192 2345 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_WIDTH 32 2346 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_OFST 28 2347 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_LEN 4 2348 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_LBN 224 2349 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_WIDTH 32 2350 /* extra info */ 2351 #define MC_CMD_GET_VERSION_V3_OUT_EXTRA_OFST 32 2352 #define MC_CMD_GET_VERSION_V3_OUT_EXTRA_LEN 16 2353 /* Flags indicating which extended fields are valid */ 2354 #define MC_CMD_GET_VERSION_V3_OUT_FLAGS_OFST 48 2355 #define MC_CMD_GET_VERSION_V3_OUT_FLAGS_LEN 4 2356 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_EXT_INFO_PRESENT_OFST 48 2357 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_EXT_INFO_PRESENT_LBN 0 2358 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1 2359 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_EXT_INFO_PRESENT_OFST 48 2360 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1 2361 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1 2362 #define MC_CMD_GET_VERSION_V3_OUT_CMC_EXT_INFO_PRESENT_OFST 48 2363 #define MC_CMD_GET_VERSION_V3_OUT_CMC_EXT_INFO_PRESENT_LBN 2 2364 #define MC_CMD_GET_VERSION_V3_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1 2365 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXT_INFO_PRESENT_OFST 48 2366 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXT_INFO_PRESENT_LBN 3 2367 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1 2368 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 2369 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 2370 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 2371 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_PRESENT_OFST 48 2372 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_PRESENT_LBN 5 2373 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1 2374 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_PRESENT_OFST 48 2375 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_PRESENT_LBN 6 2376 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1 2377 #define MC_CMD_GET_VERSION_V3_OUT_SOC_BOOT_VERSION_PRESENT_OFST 48 2378 #define MC_CMD_GET_VERSION_V3_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7 2379 #define MC_CMD_GET_VERSION_V3_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1 2380 #define MC_CMD_GET_VERSION_V3_OUT_SOC_UBOOT_VERSION_PRESENT_OFST 48 2381 #define MC_CMD_GET_VERSION_V3_OUT_SOC_UBOOT_VERSION_PRESENT_LBN 8 2382 #define MC_CMD_GET_VERSION_V3_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1 2383 #define MC_CMD_GET_VERSION_V3_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_OFST 48 2384 #define MC_CMD_GET_VERSION_V3_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_LBN 9 2385 #define MC_CMD_GET_VERSION_V3_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1 2386 #define MC_CMD_GET_VERSION_V3_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_OFST 48 2387 #define MC_CMD_GET_VERSION_V3_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_LBN 10 2388 #define MC_CMD_GET_VERSION_V3_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1 2389 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_PRESENT_OFST 48 2390 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_PRESENT_LBN 11 2391 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_PRESENT_WIDTH 1 2392 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_VERSION_PRESENT_OFST 48 2393 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_VERSION_PRESENT_LBN 12 2394 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_VERSION_PRESENT_WIDTH 1 2395 #define MC_CMD_GET_VERSION_V3_OUT_BUNDLE_VERSION_PRESENT_OFST 48 2396 #define MC_CMD_GET_VERSION_V3_OUT_BUNDLE_VERSION_PRESENT_LBN 13 2397 #define MC_CMD_GET_VERSION_V3_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1 2398 /* MC firmware unique build ID (as binary SHA-1 value) */ 2399 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_BUILD_ID_OFST 52 2400 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_BUILD_ID_LEN 20 2401 /* MC firmware security level */ 2402 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_SECURITY_LEVEL_OFST 72 2403 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_SECURITY_LEVEL_LEN 4 2404 /* MC firmware build name (as null-terminated US-ASCII string) */ 2405 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_BUILD_NAME_OFST 76 2406 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_BUILD_NAME_LEN 64 2407 /* The SUC firmware version as four numbers - a.b.c.d */ 2408 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_OFST 140 2409 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_LEN 4 2410 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_NUM 4 2411 /* SUC firmware build date (as 64-bit Unix timestamp) */ 2412 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_OFST 156 2413 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LEN 8 2414 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_OFST 156 2415 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_LEN 4 2416 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_LBN 1248 2417 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_WIDTH 32 2418 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_OFST 160 2419 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_LEN 4 2420 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_LBN 1280 2421 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_WIDTH 32 2422 /* The ID of the SUC chip. This is specific to the platform but typically 2423 * indicates family, memory sizes etc. See SF-116728-SW for further details. 2424 */ 2425 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_CHIP_ID_OFST 164 2426 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_CHIP_ID_LEN 4 2427 /* The CMC firmware version as four numbers - a.b.c.d */ 2428 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_VERSION_OFST 168 2429 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_VERSION_LEN 4 2430 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_VERSION_NUM 4 2431 /* CMC firmware build date (as 64-bit Unix timestamp) */ 2432 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_OFST 184 2433 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LEN 8 2434 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_OFST 184 2435 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_LEN 4 2436 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_LBN 1472 2437 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_WIDTH 32 2438 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_OFST 188 2439 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_LEN 4 2440 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_LBN 1504 2441 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_WIDTH 32 2442 /* FPGA version as three numbers. On Riverhead based systems this field uses 2443 * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 2444 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 2445 * => B, ...) FPGA_VERSION[2]: Sub-revision number 2446 */ 2447 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_VERSION_OFST 192 2448 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_VERSION_LEN 4 2449 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_VERSION_NUM 3 2450 /* Extra FPGA revision information (as null-terminated US-ASCII string) */ 2451 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXTRA_OFST 204 2452 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXTRA_LEN 16 2453 /* Board name / adapter model (as null-terminated US-ASCII string) */ 2454 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_NAME_OFST 220 2455 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_NAME_LEN 16 2456 /* Board revision number */ 2457 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_REVISION_OFST 236 2458 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_REVISION_LEN 4 2459 /* Board serial number (as null-terminated US-ASCII string) */ 2460 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_SERIAL_OFST 240 2461 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_SERIAL_LEN 64 2462 /* The version of the datapath hardware design as three number - a.b.c */ 2463 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_OFST 304 2464 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_LEN 4 2465 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_NUM 3 2466 /* The version of the firmware library used to control the datapath as three 2467 * number - a.b.c 2468 */ 2469 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_OFST 316 2470 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_LEN 4 2471 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_NUM 3 2472 2473 /* MC_CMD_GET_VERSION_V4_OUT msgresponse: Extended response providing SoC 2474 * version information 2475 */ 2476 #define MC_CMD_GET_VERSION_V4_OUT_LEN 392 2477 /* This is normally the UTC build time in seconds since epoch or one of the 2478 * special values listed 2479 */ 2480 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 2481 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 2482 /* Enum values, see field(s): */ 2483 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 2484 #define MC_CMD_GET_VERSION_V4_OUT_PCOL_OFST 4 2485 #define MC_CMD_GET_VERSION_V4_OUT_PCOL_LEN 4 2486 /* 128bit mask of functions supported by the current firmware */ 2487 #define MC_CMD_GET_VERSION_V4_OUT_SUPPORTED_FUNCS_OFST 8 2488 #define MC_CMD_GET_VERSION_V4_OUT_SUPPORTED_FUNCS_LEN 16 2489 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_OFST 24 2490 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LEN 8 2491 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_OFST 24 2492 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_LEN 4 2493 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_LBN 192 2494 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_WIDTH 32 2495 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_OFST 28 2496 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_LEN 4 2497 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_LBN 224 2498 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_WIDTH 32 2499 /* extra info */ 2500 #define MC_CMD_GET_VERSION_V4_OUT_EXTRA_OFST 32 2501 #define MC_CMD_GET_VERSION_V4_OUT_EXTRA_LEN 16 2502 /* Flags indicating which extended fields are valid */ 2503 #define MC_CMD_GET_VERSION_V4_OUT_FLAGS_OFST 48 2504 #define MC_CMD_GET_VERSION_V4_OUT_FLAGS_LEN 4 2505 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_EXT_INFO_PRESENT_OFST 48 2506 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_EXT_INFO_PRESENT_LBN 0 2507 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1 2508 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_EXT_INFO_PRESENT_OFST 48 2509 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1 2510 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1 2511 #define MC_CMD_GET_VERSION_V4_OUT_CMC_EXT_INFO_PRESENT_OFST 48 2512 #define MC_CMD_GET_VERSION_V4_OUT_CMC_EXT_INFO_PRESENT_LBN 2 2513 #define MC_CMD_GET_VERSION_V4_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1 2514 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXT_INFO_PRESENT_OFST 48 2515 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXT_INFO_PRESENT_LBN 3 2516 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1 2517 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 2518 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 2519 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 2520 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_PRESENT_OFST 48 2521 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_PRESENT_LBN 5 2522 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1 2523 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_PRESENT_OFST 48 2524 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_PRESENT_LBN 6 2525 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1 2526 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_PRESENT_OFST 48 2527 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7 2528 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1 2529 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_PRESENT_OFST 48 2530 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_PRESENT_LBN 8 2531 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1 2532 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_OFST 48 2533 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_LBN 9 2534 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1 2535 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_OFST 48 2536 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_LBN 10 2537 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1 2538 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_PRESENT_OFST 48 2539 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_PRESENT_LBN 11 2540 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_PRESENT_WIDTH 1 2541 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_VERSION_PRESENT_OFST 48 2542 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_VERSION_PRESENT_LBN 12 2543 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_VERSION_PRESENT_WIDTH 1 2544 #define MC_CMD_GET_VERSION_V4_OUT_BUNDLE_VERSION_PRESENT_OFST 48 2545 #define MC_CMD_GET_VERSION_V4_OUT_BUNDLE_VERSION_PRESENT_LBN 13 2546 #define MC_CMD_GET_VERSION_V4_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1 2547 /* MC firmware unique build ID (as binary SHA-1 value) */ 2548 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_BUILD_ID_OFST 52 2549 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_BUILD_ID_LEN 20 2550 /* MC firmware security level */ 2551 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_SECURITY_LEVEL_OFST 72 2552 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_SECURITY_LEVEL_LEN 4 2553 /* MC firmware build name (as null-terminated US-ASCII string) */ 2554 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_BUILD_NAME_OFST 76 2555 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_BUILD_NAME_LEN 64 2556 /* The SUC firmware version as four numbers - a.b.c.d */ 2557 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_OFST 140 2558 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_LEN 4 2559 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_NUM 4 2560 /* SUC firmware build date (as 64-bit Unix timestamp) */ 2561 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_OFST 156 2562 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LEN 8 2563 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_OFST 156 2564 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_LEN 4 2565 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_LBN 1248 2566 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_WIDTH 32 2567 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_OFST 160 2568 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_LEN 4 2569 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_LBN 1280 2570 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_WIDTH 32 2571 /* The ID of the SUC chip. This is specific to the platform but typically 2572 * indicates family, memory sizes etc. See SF-116728-SW for further details. 2573 */ 2574 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_CHIP_ID_OFST 164 2575 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_CHIP_ID_LEN 4 2576 /* The CMC firmware version as four numbers - a.b.c.d */ 2577 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_VERSION_OFST 168 2578 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_VERSION_LEN 4 2579 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_VERSION_NUM 4 2580 /* CMC firmware build date (as 64-bit Unix timestamp) */ 2581 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_OFST 184 2582 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LEN 8 2583 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_OFST 184 2584 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_LEN 4 2585 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_LBN 1472 2586 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_WIDTH 32 2587 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_OFST 188 2588 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_LEN 4 2589 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_LBN 1504 2590 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_WIDTH 32 2591 /* FPGA version as three numbers. On Riverhead based systems this field uses 2592 * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 2593 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 2594 * => B, ...) FPGA_VERSION[2]: Sub-revision number 2595 */ 2596 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_VERSION_OFST 192 2597 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_VERSION_LEN 4 2598 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_VERSION_NUM 3 2599 /* Extra FPGA revision information (as null-terminated US-ASCII string) */ 2600 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXTRA_OFST 204 2601 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXTRA_LEN 16 2602 /* Board name / adapter model (as null-terminated US-ASCII string) */ 2603 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_NAME_OFST 220 2604 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_NAME_LEN 16 2605 /* Board revision number */ 2606 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_REVISION_OFST 236 2607 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_REVISION_LEN 4 2608 /* Board serial number (as null-terminated US-ASCII string) */ 2609 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_SERIAL_OFST 240 2610 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_SERIAL_LEN 64 2611 /* The version of the datapath hardware design as three number - a.b.c */ 2612 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_OFST 304 2613 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_LEN 4 2614 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_NUM 3 2615 /* The version of the firmware library used to control the datapath as three 2616 * number - a.b.c 2617 */ 2618 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_OFST 316 2619 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_LEN 4 2620 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_NUM 3 2621 /* The SOC boot version as four numbers - a.b.c.d */ 2622 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_OFST 328 2623 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_LEN 4 2624 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_NUM 4 2625 /* The SOC uboot version as four numbers - a.b.c.d */ 2626 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_OFST 344 2627 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_LEN 4 2628 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_NUM 4 2629 /* The SOC main rootfs version as four numbers - a.b.c.d */ 2630 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_OFST 360 2631 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_LEN 4 2632 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_NUM 4 2633 /* The SOC recovery buildroot version as four numbers - a.b.c.d */ 2634 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_OFST 376 2635 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_LEN 4 2636 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_NUM 4 2637 2638 /* MC_CMD_GET_VERSION_V5_OUT msgresponse: Extended response providing bundle 2639 * and board version information 2640 */ 2641 #define MC_CMD_GET_VERSION_V5_OUT_LEN 424 2642 /* This is normally the UTC build time in seconds since epoch or one of the 2643 * special values listed 2644 */ 2645 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 2646 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 2647 /* Enum values, see field(s): */ 2648 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 2649 #define MC_CMD_GET_VERSION_V5_OUT_PCOL_OFST 4 2650 #define MC_CMD_GET_VERSION_V5_OUT_PCOL_LEN 4 2651 /* 128bit mask of functions supported by the current firmware */ 2652 #define MC_CMD_GET_VERSION_V5_OUT_SUPPORTED_FUNCS_OFST 8 2653 #define MC_CMD_GET_VERSION_V5_OUT_SUPPORTED_FUNCS_LEN 16 2654 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_OFST 24 2655 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LEN 8 2656 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_OFST 24 2657 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_LEN 4 2658 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_LBN 192 2659 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_WIDTH 32 2660 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_OFST 28 2661 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_LEN 4 2662 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_LBN 224 2663 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_WIDTH 32 2664 /* extra info */ 2665 #define MC_CMD_GET_VERSION_V5_OUT_EXTRA_OFST 32 2666 #define MC_CMD_GET_VERSION_V5_OUT_EXTRA_LEN 16 2667 /* Flags indicating which extended fields are valid */ 2668 #define MC_CMD_GET_VERSION_V5_OUT_FLAGS_OFST 48 2669 #define MC_CMD_GET_VERSION_V5_OUT_FLAGS_LEN 4 2670 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_EXT_INFO_PRESENT_OFST 48 2671 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_EXT_INFO_PRESENT_LBN 0 2672 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1 2673 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_EXT_INFO_PRESENT_OFST 48 2674 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1 2675 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1 2676 #define MC_CMD_GET_VERSION_V5_OUT_CMC_EXT_INFO_PRESENT_OFST 48 2677 #define MC_CMD_GET_VERSION_V5_OUT_CMC_EXT_INFO_PRESENT_LBN 2 2678 #define MC_CMD_GET_VERSION_V5_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1 2679 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXT_INFO_PRESENT_OFST 48 2680 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXT_INFO_PRESENT_LBN 3 2681 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1 2682 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 2683 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 2684 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 2685 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_PRESENT_OFST 48 2686 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_PRESENT_LBN 5 2687 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1 2688 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_PRESENT_OFST 48 2689 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_PRESENT_LBN 6 2690 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1 2691 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_PRESENT_OFST 48 2692 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7 2693 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1 2694 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_PRESENT_OFST 48 2695 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_PRESENT_LBN 8 2696 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1 2697 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_OFST 48 2698 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_LBN 9 2699 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1 2700 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_OFST 48 2701 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_LBN 10 2702 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1 2703 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_PRESENT_OFST 48 2704 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_PRESENT_LBN 11 2705 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_PRESENT_WIDTH 1 2706 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_PRESENT_OFST 48 2707 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_PRESENT_LBN 12 2708 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_PRESENT_WIDTH 1 2709 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_PRESENT_OFST 48 2710 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_PRESENT_LBN 13 2711 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1 2712 /* MC firmware unique build ID (as binary SHA-1 value) */ 2713 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_BUILD_ID_OFST 52 2714 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_BUILD_ID_LEN 20 2715 /* MC firmware security level */ 2716 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_SECURITY_LEVEL_OFST 72 2717 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_SECURITY_LEVEL_LEN 4 2718 /* MC firmware build name (as null-terminated US-ASCII string) */ 2719 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_BUILD_NAME_OFST 76 2720 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_BUILD_NAME_LEN 64 2721 /* The SUC firmware version as four numbers - a.b.c.d */ 2722 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_OFST 140 2723 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_LEN 4 2724 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_NUM 4 2725 /* SUC firmware build date (as 64-bit Unix timestamp) */ 2726 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_OFST 156 2727 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LEN 8 2728 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_OFST 156 2729 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_LEN 4 2730 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_LBN 1248 2731 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_WIDTH 32 2732 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_OFST 160 2733 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_LEN 4 2734 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_LBN 1280 2735 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_WIDTH 32 2736 /* The ID of the SUC chip. This is specific to the platform but typically 2737 * indicates family, memory sizes etc. See SF-116728-SW for further details. 2738 */ 2739 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_CHIP_ID_OFST 164 2740 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_CHIP_ID_LEN 4 2741 /* The CMC firmware version as four numbers - a.b.c.d */ 2742 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_VERSION_OFST 168 2743 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_VERSION_LEN 4 2744 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_VERSION_NUM 4 2745 /* CMC firmware build date (as 64-bit Unix timestamp) */ 2746 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_OFST 184 2747 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LEN 8 2748 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_OFST 184 2749 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_LEN 4 2750 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_LBN 1472 2751 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_WIDTH 32 2752 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_OFST 188 2753 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_LEN 4 2754 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_LBN 1504 2755 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_WIDTH 32 2756 /* FPGA version as three numbers. On Riverhead based systems this field uses 2757 * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 2758 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 2759 * => B, ...) FPGA_VERSION[2]: Sub-revision number 2760 */ 2761 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_VERSION_OFST 192 2762 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_VERSION_LEN 4 2763 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_VERSION_NUM 3 2764 /* Extra FPGA revision information (as null-terminated US-ASCII string) */ 2765 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXTRA_OFST 204 2766 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXTRA_LEN 16 2767 /* Board name / adapter model (as null-terminated US-ASCII string) */ 2768 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_NAME_OFST 220 2769 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_NAME_LEN 16 2770 /* Board revision number */ 2771 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_REVISION_OFST 236 2772 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_REVISION_LEN 4 2773 /* Board serial number (as null-terminated US-ASCII string) */ 2774 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_SERIAL_OFST 240 2775 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_SERIAL_LEN 64 2776 /* The version of the datapath hardware design as three number - a.b.c */ 2777 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_OFST 304 2778 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_LEN 4 2779 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_NUM 3 2780 /* The version of the firmware library used to control the datapath as three 2781 * number - a.b.c 2782 */ 2783 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_OFST 316 2784 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_LEN 4 2785 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_NUM 3 2786 /* The SOC boot version as four numbers - a.b.c.d */ 2787 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_OFST 328 2788 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_LEN 4 2789 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_NUM 4 2790 /* The SOC uboot version as four numbers - a.b.c.d */ 2791 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_OFST 344 2792 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_LEN 4 2793 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_NUM 4 2794 /* The SOC main rootfs version as four numbers - a.b.c.d */ 2795 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_OFST 360 2796 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_LEN 4 2797 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_NUM 4 2798 /* The SOC recovery buildroot version as four numbers - a.b.c.d */ 2799 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_OFST 376 2800 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_LEN 4 2801 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_NUM 4 2802 /* Board version as four numbers - a.b.c.d. BOARD_VERSION[0] duplicates the 2803 * BOARD_REVISION field 2804 */ 2805 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_OFST 392 2806 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_LEN 4 2807 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_NUM 4 2808 /* Bundle version as four numbers - a.b.c.d */ 2809 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_OFST 408 2810 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_LEN 4 2811 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_NUM 4 2812 2813 2814 /***********************************/ 2815 /* MC_CMD_PTP 2816 * Perform PTP operation 2817 */ 2818 #define MC_CMD_PTP 0xb 2819 #undef MC_CMD_0xb_PRIVILEGE_CTG 2820 2821 #define MC_CMD_0xb_PRIVILEGE_CTG SRIOV_CTG_GENERAL 2822 2823 /* MC_CMD_PTP_IN msgrequest */ 2824 #define MC_CMD_PTP_IN_LEN 1 2825 /* PTP operation code */ 2826 #define MC_CMD_PTP_IN_OP_OFST 0 2827 #define MC_CMD_PTP_IN_OP_LEN 1 2828 /* enum: Enable PTP packet timestamping operation. */ 2829 #define MC_CMD_PTP_OP_ENABLE 0x1 2830 /* enum: Disable PTP packet timestamping operation. */ 2831 #define MC_CMD_PTP_OP_DISABLE 0x2 2832 /* enum: Send a PTP packet. This operation is used on Siena and Huntington. 2833 * From Medford onwards it is not supported: on those platforms PTP transmit 2834 * timestamping is done using the fast path. 2835 */ 2836 #define MC_CMD_PTP_OP_TRANSMIT 0x3 2837 /* enum: Read the current NIC time. */ 2838 #define MC_CMD_PTP_OP_READ_NIC_TIME 0x4 2839 /* enum: Get the current PTP status. Note that the clock frequency returned (in 2840 * Hz) is rounded to the nearest MHz (e.g. 666000000 for 666666666). 2841 */ 2842 #define MC_CMD_PTP_OP_STATUS 0x5 2843 /* enum: Adjust the PTP NIC's time. */ 2844 #define MC_CMD_PTP_OP_ADJUST 0x6 2845 /* enum: Synchronize host and NIC time. */ 2846 #define MC_CMD_PTP_OP_SYNCHRONIZE 0x7 2847 /* enum: Basic manufacturing tests. Siena PTP adapters only. */ 2848 #define MC_CMD_PTP_OP_MANFTEST_BASIC 0x8 2849 /* enum: Packet based manufacturing tests. Siena PTP adapters only. */ 2850 #define MC_CMD_PTP_OP_MANFTEST_PACKET 0x9 2851 /* enum: Reset some of the PTP related statistics */ 2852 #define MC_CMD_PTP_OP_RESET_STATS 0xa 2853 /* enum: Debug operations to MC. */ 2854 #define MC_CMD_PTP_OP_DEBUG 0xb 2855 /* enum: Read an FPGA register. Siena PTP adapters only. */ 2856 #define MC_CMD_PTP_OP_FPGAREAD 0xc 2857 /* enum: Write an FPGA register. Siena PTP adapters only. */ 2858 #define MC_CMD_PTP_OP_FPGAWRITE 0xd 2859 /* enum: Apply an offset to the NIC clock */ 2860 #define MC_CMD_PTP_OP_CLOCK_OFFSET_ADJUST 0xe 2861 /* enum: Change the frequency correction applied to the NIC clock */ 2862 #define MC_CMD_PTP_OP_CLOCK_FREQ_ADJUST 0xf 2863 /* enum: Set the MC packet filter VLAN tags for received PTP packets. 2864 * Deprecated for Huntington onwards. 2865 */ 2866 #define MC_CMD_PTP_OP_RX_SET_VLAN_FILTER 0x10 2867 /* enum: Set the MC packet filter UUID for received PTP packets. Deprecated for 2868 * Huntington onwards. 2869 */ 2870 #define MC_CMD_PTP_OP_RX_SET_UUID_FILTER 0x11 2871 /* enum: Set the MC packet filter Domain for received PTP packets. Deprecated 2872 * for Huntington onwards. 2873 */ 2874 #define MC_CMD_PTP_OP_RX_SET_DOMAIN_FILTER 0x12 2875 /* enum: Set the clock source. Required for snapper tests on Huntington and 2876 * Medford. Not implemented for Siena or Medford2. 2877 */ 2878 #define MC_CMD_PTP_OP_SET_CLK_SRC 0x13 2879 /* enum: Reset value of Timer Reg. Not implemented. */ 2880 #define MC_CMD_PTP_OP_RST_CLK 0x14 2881 /* enum: Enable the forwarding of PPS events to the host */ 2882 #define MC_CMD_PTP_OP_PPS_ENABLE 0x15 2883 /* enum: Get the time format used by this NIC for PTP operations */ 2884 #define MC_CMD_PTP_OP_GET_TIME_FORMAT 0x16 2885 /* enum: Get the clock attributes. NOTE- extended version of 2886 * MC_CMD_PTP_OP_GET_TIME_FORMAT 2887 */ 2888 #define MC_CMD_PTP_OP_GET_ATTRIBUTES 0x16 2889 /* enum: Get corrections that should be applied to the various different 2890 * timestamps 2891 */ 2892 #define MC_CMD_PTP_OP_GET_TIMESTAMP_CORRECTIONS 0x17 2893 /* enum: Subscribe to receive periodic time events indicating the current NIC 2894 * time 2895 */ 2896 #define MC_CMD_PTP_OP_TIME_EVENT_SUBSCRIBE 0x18 2897 /* enum: Unsubscribe to stop receiving time events */ 2898 #define MC_CMD_PTP_OP_TIME_EVENT_UNSUBSCRIBE 0x19 2899 /* enum: PPS based manfacturing tests. Requires PPS output to be looped to PPS 2900 * input on the same NIC. Siena PTP adapters only. 2901 */ 2902 #define MC_CMD_PTP_OP_MANFTEST_PPS 0x1a 2903 /* enum: Set the PTP sync status. Status is used by firmware to report to event 2904 * subscribers. 2905 */ 2906 #define MC_CMD_PTP_OP_SET_SYNC_STATUS 0x1b 2907 /* enum: X4 and later adapters should use this instead of 2908 * PTP_OP_TIME_EVENT_SUBSCRIBE. Subscribe to receive periodic time events 2909 * indicating the current NIC time 2910 */ 2911 #define MC_CMD_PTP_OP_TIME_EVENT_SUBSCRIBE_V2 0x1c 2912 /* enum: For X4 and later NICs. Packet timestamps and time sync events have 2913 * IS_SET and IN_SYNC flags, that indicates whether time is updated and if it 2914 * is in sync with host. Once set, IN_SYNC flag is cleared by hardware after a 2915 * software configurable time out. Host driver need to query what is set and 2916 * what is maximum supported interval, this MCDI can be used to query these. 2917 */ 2918 #define MC_CMD_PTP_OP_GET_SYNC_TIMEOUT 0x1d 2919 2920 /* MC_CMD_PTP_IN_ENABLE msgrequest */ 2921 #define MC_CMD_PTP_IN_ENABLE_LEN 16 2922 #define MC_CMD_PTP_IN_CMD_OFST 0 2923 #define MC_CMD_PTP_IN_CMD_LEN 4 2924 #define MC_CMD_PTP_IN_PERIPH_ID_OFST 4 2925 #define MC_CMD_PTP_IN_PERIPH_ID_LEN 4 2926 /* Not used, initialize to 0. Events are always sent to function relative queue 2927 * 0. 2928 */ 2929 #define MC_CMD_PTP_IN_ENABLE_QUEUE_OFST 8 2930 #define MC_CMD_PTP_IN_ENABLE_QUEUE_LEN 4 2931 /* PTP timestamping mode. Not used from Huntington onwards. */ 2932 #define MC_CMD_PTP_IN_ENABLE_MODE_OFST 12 2933 #define MC_CMD_PTP_IN_ENABLE_MODE_LEN 4 2934 /* enum: PTP, version 1 */ 2935 #define MC_CMD_PTP_MODE_V1 0x0 2936 /* enum: PTP, version 1, with VLAN headers - deprecated */ 2937 #define MC_CMD_PTP_MODE_V1_VLAN 0x1 2938 /* enum: PTP, version 2 */ 2939 #define MC_CMD_PTP_MODE_V2 0x2 2940 /* enum: PTP, version 2, with VLAN headers - deprecated */ 2941 #define MC_CMD_PTP_MODE_V2_VLAN 0x3 2942 /* enum: PTP, version 2, with improved UUID filtering */ 2943 #define MC_CMD_PTP_MODE_V2_ENHANCED 0x4 2944 /* enum: FCoE (seconds and microseconds) */ 2945 #define MC_CMD_PTP_MODE_FCOE 0x5 2946 2947 /* MC_CMD_PTP_IN_DISABLE msgrequest */ 2948 #define MC_CMD_PTP_IN_DISABLE_LEN 8 2949 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2950 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2951 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2952 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2953 2954 /* MC_CMD_PTP_IN_TRANSMIT msgrequest */ 2955 #define MC_CMD_PTP_IN_TRANSMIT_LENMIN 13 2956 #define MC_CMD_PTP_IN_TRANSMIT_LENMAX 252 2957 #define MC_CMD_PTP_IN_TRANSMIT_LENMAX_MCDI2 1020 2958 #define MC_CMD_PTP_IN_TRANSMIT_LEN(num) (12+1*(num)) 2959 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_NUM(len) (((len)-12)/1) 2960 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2961 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2962 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2963 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2964 /* Transmit packet length */ 2965 #define MC_CMD_PTP_IN_TRANSMIT_LENGTH_OFST 8 2966 #define MC_CMD_PTP_IN_TRANSMIT_LENGTH_LEN 4 2967 /* Transmit packet data */ 2968 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_OFST 12 2969 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_LEN 1 2970 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_MINNUM 1 2971 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_MAXNUM 240 2972 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_MAXNUM_MCDI2 1008 2973 2974 /* MC_CMD_PTP_IN_READ_NIC_TIME msgrequest */ 2975 #define MC_CMD_PTP_IN_READ_NIC_TIME_LEN 8 2976 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2977 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2978 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2979 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2980 2981 /* MC_CMD_PTP_IN_READ_NIC_TIME_V2 msgrequest */ 2982 #define MC_CMD_PTP_IN_READ_NIC_TIME_V2_LEN 8 2983 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2984 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2985 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2986 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2987 2988 /* MC_CMD_PTP_IN_STATUS msgrequest */ 2989 #define MC_CMD_PTP_IN_STATUS_LEN 8 2990 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2991 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2992 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2993 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2994 2995 /* MC_CMD_PTP_IN_ADJUST msgrequest */ 2996 #define MC_CMD_PTP_IN_ADJUST_LEN 24 2997 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2998 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2999 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3000 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3001 /* Frequency adjustment 40 bit fixed point ns */ 3002 #define MC_CMD_PTP_IN_ADJUST_FREQ_OFST 8 3003 #define MC_CMD_PTP_IN_ADJUST_FREQ_LEN 8 3004 #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_OFST 8 3005 #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_LEN 4 3006 #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_LBN 64 3007 #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_WIDTH 32 3008 #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_OFST 12 3009 #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_LEN 4 3010 #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_LBN 96 3011 #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_WIDTH 32 3012 /* enum: Number of fractional bits in frequency adjustment */ 3013 #define MC_CMD_PTP_IN_ADJUST_BITS 0x28 3014 /* enum: Number of fractional bits in frequency adjustment when FP44_FREQ_ADJ 3015 * is indicated in the MC_CMD_PTP_OUT_GET_ATTRIBUTES command CAPABILITIES 3016 * field. 3017 */ 3018 #define MC_CMD_PTP_IN_ADJUST_BITS_FP44 0x2c 3019 /* Time adjustment in seconds */ 3020 #define MC_CMD_PTP_IN_ADJUST_SECONDS_OFST 16 3021 #define MC_CMD_PTP_IN_ADJUST_SECONDS_LEN 4 3022 /* Time adjustment major value */ 3023 #define MC_CMD_PTP_IN_ADJUST_MAJOR_OFST 16 3024 #define MC_CMD_PTP_IN_ADJUST_MAJOR_LEN 4 3025 /* Time adjustment in nanoseconds */ 3026 #define MC_CMD_PTP_IN_ADJUST_NANOSECONDS_OFST 20 3027 #define MC_CMD_PTP_IN_ADJUST_NANOSECONDS_LEN 4 3028 /* Time adjustment minor value */ 3029 #define MC_CMD_PTP_IN_ADJUST_MINOR_OFST 20 3030 #define MC_CMD_PTP_IN_ADJUST_MINOR_LEN 4 3031 3032 /* MC_CMD_PTP_IN_ADJUST_V2 msgrequest */ 3033 #define MC_CMD_PTP_IN_ADJUST_V2_LEN 28 3034 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3035 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3036 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3037 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3038 /* Frequency adjustment 40 bit fixed point ns */ 3039 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_OFST 8 3040 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LEN 8 3041 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_OFST 8 3042 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_LEN 4 3043 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_LBN 64 3044 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_WIDTH 32 3045 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_OFST 12 3046 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_LEN 4 3047 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_LBN 96 3048 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_WIDTH 32 3049 /* enum: Number of fractional bits in frequency adjustment */ 3050 /* MC_CMD_PTP_IN_ADJUST_BITS 0x28 */ 3051 /* enum: Number of fractional bits in frequency adjustment when FP44_FREQ_ADJ 3052 * is indicated in the MC_CMD_PTP_OUT_GET_ATTRIBUTES command CAPABILITIES 3053 * field. 3054 */ 3055 /* MC_CMD_PTP_IN_ADJUST_BITS_FP44 0x2c */ 3056 /* Time adjustment in seconds */ 3057 #define MC_CMD_PTP_IN_ADJUST_V2_SECONDS_OFST 16 3058 #define MC_CMD_PTP_IN_ADJUST_V2_SECONDS_LEN 4 3059 /* Time adjustment major value */ 3060 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_OFST 16 3061 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_LEN 4 3062 /* Time adjustment in nanoseconds */ 3063 #define MC_CMD_PTP_IN_ADJUST_V2_NANOSECONDS_OFST 20 3064 #define MC_CMD_PTP_IN_ADJUST_V2_NANOSECONDS_LEN 4 3065 /* Time adjustment minor value */ 3066 #define MC_CMD_PTP_IN_ADJUST_V2_MINOR_OFST 20 3067 #define MC_CMD_PTP_IN_ADJUST_V2_MINOR_LEN 4 3068 /* Upper 32bits of major time offset adjustment */ 3069 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_HI_OFST 24 3070 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_HI_LEN 4 3071 3072 /* MC_CMD_PTP_IN_SYNCHRONIZE msgrequest */ 3073 #define MC_CMD_PTP_IN_SYNCHRONIZE_LEN 20 3074 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3075 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3076 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3077 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3078 /* Number of time readings to capture */ 3079 #define MC_CMD_PTP_IN_SYNCHRONIZE_NUMTIMESETS_OFST 8 3080 #define MC_CMD_PTP_IN_SYNCHRONIZE_NUMTIMESETS_LEN 4 3081 /* Host address in which to write "synchronization started" indication (64 3082 * bits) 3083 */ 3084 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_OFST 12 3085 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LEN 8 3086 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_OFST 12 3087 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_LEN 4 3088 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_LBN 96 3089 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_WIDTH 32 3090 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_OFST 16 3091 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_LEN 4 3092 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_LBN 128 3093 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_WIDTH 32 3094 3095 /* MC_CMD_PTP_IN_MANFTEST_BASIC msgrequest */ 3096 #define MC_CMD_PTP_IN_MANFTEST_BASIC_LEN 8 3097 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3098 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3099 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3100 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3101 3102 /* MC_CMD_PTP_IN_MANFTEST_PACKET msgrequest */ 3103 #define MC_CMD_PTP_IN_MANFTEST_PACKET_LEN 12 3104 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3105 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3106 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3107 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3108 /* Enable or disable packet testing */ 3109 #define MC_CMD_PTP_IN_MANFTEST_PACKET_TEST_ENABLE_OFST 8 3110 #define MC_CMD_PTP_IN_MANFTEST_PACKET_TEST_ENABLE_LEN 4 3111 3112 /* MC_CMD_PTP_IN_RESET_STATS msgrequest: Reset PTP statistics */ 3113 #define MC_CMD_PTP_IN_RESET_STATS_LEN 8 3114 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3115 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3116 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3117 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3118 3119 /* MC_CMD_PTP_IN_DEBUG msgrequest */ 3120 #define MC_CMD_PTP_IN_DEBUG_LEN 12 3121 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3122 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3123 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3124 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3125 /* Debug operations */ 3126 #define MC_CMD_PTP_IN_DEBUG_DEBUG_PARAM_OFST 8 3127 #define MC_CMD_PTP_IN_DEBUG_DEBUG_PARAM_LEN 4 3128 3129 /* MC_CMD_PTP_IN_FPGAREAD msgrequest */ 3130 #define MC_CMD_PTP_IN_FPGAREAD_LEN 16 3131 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3132 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3133 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3134 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3135 #define MC_CMD_PTP_IN_FPGAREAD_ADDR_OFST 8 3136 #define MC_CMD_PTP_IN_FPGAREAD_ADDR_LEN 4 3137 #define MC_CMD_PTP_IN_FPGAREAD_NUMBYTES_OFST 12 3138 #define MC_CMD_PTP_IN_FPGAREAD_NUMBYTES_LEN 4 3139 3140 /* MC_CMD_PTP_IN_FPGAWRITE msgrequest */ 3141 #define MC_CMD_PTP_IN_FPGAWRITE_LENMIN 13 3142 #define MC_CMD_PTP_IN_FPGAWRITE_LENMAX 252 3143 #define MC_CMD_PTP_IN_FPGAWRITE_LENMAX_MCDI2 1020 3144 #define MC_CMD_PTP_IN_FPGAWRITE_LEN(num) (12+1*(num)) 3145 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_NUM(len) (((len)-12)/1) 3146 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3147 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3148 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3149 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3150 #define MC_CMD_PTP_IN_FPGAWRITE_ADDR_OFST 8 3151 #define MC_CMD_PTP_IN_FPGAWRITE_ADDR_LEN 4 3152 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_OFST 12 3153 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_LEN 1 3154 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_MINNUM 1 3155 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_MAXNUM 240 3156 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_MAXNUM_MCDI2 1008 3157 3158 /* MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST msgrequest */ 3159 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_LEN 16 3160 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3161 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3162 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3163 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3164 /* Time adjustment in seconds */ 3165 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_SECONDS_OFST 8 3166 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_SECONDS_LEN 4 3167 /* Time adjustment major value */ 3168 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MAJOR_OFST 8 3169 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MAJOR_LEN 4 3170 /* Time adjustment in nanoseconds */ 3171 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_NANOSECONDS_OFST 12 3172 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_NANOSECONDS_LEN 4 3173 /* Time adjustment minor value */ 3174 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MINOR_OFST 12 3175 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MINOR_LEN 4 3176 3177 /* MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2 msgrequest */ 3178 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_LEN 20 3179 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3180 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3181 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3182 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3183 /* Time adjustment in seconds */ 3184 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_SECONDS_OFST 8 3185 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_SECONDS_LEN 4 3186 /* Time adjustment major value */ 3187 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_OFST 8 3188 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_LEN 4 3189 /* Time adjustment in nanoseconds */ 3190 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_NANOSECONDS_OFST 12 3191 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_NANOSECONDS_LEN 4 3192 /* Time adjustment minor value */ 3193 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MINOR_OFST 12 3194 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MINOR_LEN 4 3195 /* Upper 32bits of major time offset adjustment */ 3196 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_HI_OFST 16 3197 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_HI_LEN 4 3198 3199 /* MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST msgrequest */ 3200 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_LEN 16 3201 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3202 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3203 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3204 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3205 /* Frequency adjustment 40 bit fixed point ns */ 3206 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_OFST 8 3207 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LEN 8 3208 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_OFST 8 3209 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_LEN 4 3210 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_LBN 64 3211 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_WIDTH 32 3212 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_OFST 12 3213 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_LEN 4 3214 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_LBN 96 3215 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_WIDTH 32 3216 /* Enum values, see field(s): */ 3217 /* MC_CMD_PTP/MC_CMD_PTP_IN_ADJUST/FREQ */ 3218 3219 /* MC_CMD_PTP_IN_RX_SET_VLAN_FILTER msgrequest */ 3220 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_LEN 24 3221 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3222 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3223 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3224 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3225 /* Number of VLAN tags, 0 if not VLAN */ 3226 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_NUM_VLAN_TAGS_OFST 8 3227 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_NUM_VLAN_TAGS_LEN 4 3228 /* Set of VLAN tags to filter against */ 3229 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_VLAN_TAG_OFST 12 3230 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_VLAN_TAG_LEN 4 3231 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_VLAN_TAG_NUM 3 3232 3233 /* MC_CMD_PTP_IN_RX_SET_UUID_FILTER msgrequest */ 3234 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_LEN 20 3235 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3236 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3237 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3238 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3239 /* 1 to enable UUID filtering, 0 to disable */ 3240 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_ENABLE_OFST 8 3241 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_ENABLE_LEN 4 3242 /* UUID to filter against */ 3243 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_OFST 12 3244 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LEN 8 3245 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_OFST 12 3246 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_LEN 4 3247 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_LBN 96 3248 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_WIDTH 32 3249 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_OFST 16 3250 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_LEN 4 3251 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_LBN 128 3252 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_WIDTH 32 3253 3254 /* MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER msgrequest */ 3255 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_LEN 16 3256 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3257 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3258 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3259 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3260 /* 1 to enable Domain filtering, 0 to disable */ 3261 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_ENABLE_OFST 8 3262 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_ENABLE_LEN 4 3263 /* Domain number to filter against */ 3264 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_DOMAIN_OFST 12 3265 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_DOMAIN_LEN 4 3266 3267 /* MC_CMD_PTP_IN_SET_CLK_SRC msgrequest */ 3268 #define MC_CMD_PTP_IN_SET_CLK_SRC_LEN 12 3269 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3270 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3271 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3272 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3273 /* Set the clock source. */ 3274 #define MC_CMD_PTP_IN_SET_CLK_SRC_CLK_OFST 8 3275 #define MC_CMD_PTP_IN_SET_CLK_SRC_CLK_LEN 4 3276 /* enum: Internal. */ 3277 #define MC_CMD_PTP_CLK_SRC_INTERNAL 0x0 3278 /* enum: External. */ 3279 #define MC_CMD_PTP_CLK_SRC_EXTERNAL 0x1 3280 3281 /* MC_CMD_PTP_IN_RST_CLK msgrequest: Reset value of Timer Reg. */ 3282 #define MC_CMD_PTP_IN_RST_CLK_LEN 8 3283 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3284 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3285 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3286 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3287 3288 /* MC_CMD_PTP_IN_PPS_ENABLE msgrequest */ 3289 #define MC_CMD_PTP_IN_PPS_ENABLE_LEN 12 3290 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3291 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3292 /* Enable or disable */ 3293 #define MC_CMD_PTP_IN_PPS_ENABLE_OP_OFST 4 3294 #define MC_CMD_PTP_IN_PPS_ENABLE_OP_LEN 4 3295 /* enum: Enable */ 3296 #define MC_CMD_PTP_ENABLE_PPS 0x0 3297 /* enum: Disable */ 3298 #define MC_CMD_PTP_DISABLE_PPS 0x1 3299 /* Not used, initialize to 0. Events are always sent to function relative queue 3300 * 0. 3301 */ 3302 #define MC_CMD_PTP_IN_PPS_ENABLE_QUEUE_ID_OFST 8 3303 #define MC_CMD_PTP_IN_PPS_ENABLE_QUEUE_ID_LEN 4 3304 3305 /* MC_CMD_PTP_IN_GET_TIME_FORMAT msgrequest */ 3306 #define MC_CMD_PTP_IN_GET_TIME_FORMAT_LEN 8 3307 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3308 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3309 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3310 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3311 3312 /* MC_CMD_PTP_IN_GET_ATTRIBUTES msgrequest */ 3313 #define MC_CMD_PTP_IN_GET_ATTRIBUTES_LEN 8 3314 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3315 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3316 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3317 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3318 3319 /* MC_CMD_PTP_IN_GET_TIMESTAMP_CORRECTIONS msgrequest */ 3320 #define MC_CMD_PTP_IN_GET_TIMESTAMP_CORRECTIONS_LEN 8 3321 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3322 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3323 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3324 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3325 3326 /* MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE msgrequest */ 3327 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_LEN 12 3328 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3329 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3330 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3331 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3332 /* Original field containing queue ID. Now extended to include flags. */ 3333 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_OFST 8 3334 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_LEN 4 3335 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_ID_OFST 8 3336 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_ID_LBN 0 3337 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_ID_WIDTH 16 3338 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_REPORT_SYNC_STATUS_OFST 8 3339 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_REPORT_SYNC_STATUS_LBN 31 3340 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_REPORT_SYNC_STATUS_WIDTH 1 3341 3342 /* MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE msgrequest */ 3343 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_LEN 16 3344 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3345 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3346 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3347 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3348 /* Unsubscribe options */ 3349 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_CONTROL_OFST 8 3350 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_CONTROL_LEN 4 3351 /* enum: Unsubscribe a single queue */ 3352 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_SINGLE 0x0 3353 /* enum: Unsubscribe all queues */ 3354 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_ALL 0x1 3355 /* Event queue ID */ 3356 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_QUEUE_OFST 12 3357 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_QUEUE_LEN 4 3358 3359 /* MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_V2 msgrequest */ 3360 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_V2_LEN 16 3361 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3362 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3363 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3364 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3365 /* Event queue ID */ 3366 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_V2_QUEUE_ID_OFST 8 3367 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_V2_QUEUE_ID_LEN 4 3368 /* Space for flags. */ 3369 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_V2_FLAGS_OFST 12 3370 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_V2_FLAGS_LEN 4 3371 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_V2_REPORT_SYNC_STATUS_OFST 12 3372 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_V2_REPORT_SYNC_STATUS_LBN 31 3373 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_V2_REPORT_SYNC_STATUS_WIDTH 1 3374 3375 /* MC_CMD_PTP_IN_MANFTEST_PPS msgrequest */ 3376 #define MC_CMD_PTP_IN_MANFTEST_PPS_LEN 12 3377 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3378 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3379 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3380 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3381 /* 1 to enable PPS test mode, 0 to disable and return result. */ 3382 #define MC_CMD_PTP_IN_MANFTEST_PPS_TEST_ENABLE_OFST 8 3383 #define MC_CMD_PTP_IN_MANFTEST_PPS_TEST_ENABLE_LEN 4 3384 3385 /* MC_CMD_PTP_IN_SET_SYNC_STATUS msgrequest */ 3386 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_LEN 24 3387 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3388 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3389 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3390 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3391 /* NIC - Host System Clock Synchronization status */ 3392 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_STATUS_OFST 8 3393 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_STATUS_LEN 4 3394 /* enum: Host System clock and NIC clock are not in sync */ 3395 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_NOT_IN_SYNC 0x0 3396 /* enum: Host System clock and NIC clock are synchronized */ 3397 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_IN_SYNC 0x1 3398 /* If synchronized, number of seconds until clocks should be considered to be 3399 * no longer in sync. 3400 */ 3401 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_TIMEOUT_OFST 12 3402 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_TIMEOUT_LEN 4 3403 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED0_OFST 16 3404 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED0_LEN 4 3405 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED1_OFST 20 3406 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED1_LEN 4 3407 3408 /* MC_CMD_PTP_IN_GET_SYNC_TIMEOUT msgrequest */ 3409 #define MC_CMD_PTP_IN_GET_SYNC_TIMEOUT_LEN 8 3410 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3411 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3412 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3413 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3414 3415 /* MC_CMD_PTP_OUT msgresponse */ 3416 #define MC_CMD_PTP_OUT_LEN 0 3417 3418 /* MC_CMD_PTP_OUT_TRANSMIT msgresponse */ 3419 #define MC_CMD_PTP_OUT_TRANSMIT_LEN 8 3420 /* Value of seconds timestamp */ 3421 #define MC_CMD_PTP_OUT_TRANSMIT_SECONDS_OFST 0 3422 #define MC_CMD_PTP_OUT_TRANSMIT_SECONDS_LEN 4 3423 /* Timestamp major value */ 3424 #define MC_CMD_PTP_OUT_TRANSMIT_MAJOR_OFST 0 3425 #define MC_CMD_PTP_OUT_TRANSMIT_MAJOR_LEN 4 3426 /* Value of nanoseconds timestamp */ 3427 #define MC_CMD_PTP_OUT_TRANSMIT_NANOSECONDS_OFST 4 3428 #define MC_CMD_PTP_OUT_TRANSMIT_NANOSECONDS_LEN 4 3429 /* Timestamp minor value */ 3430 #define MC_CMD_PTP_OUT_TRANSMIT_MINOR_OFST 4 3431 #define MC_CMD_PTP_OUT_TRANSMIT_MINOR_LEN 4 3432 3433 /* MC_CMD_PTP_OUT_TIME_EVENT_SUBSCRIBE msgresponse */ 3434 #define MC_CMD_PTP_OUT_TIME_EVENT_SUBSCRIBE_LEN 0 3435 3436 /* MC_CMD_PTP_OUT_TIME_EVENT_UNSUBSCRIBE msgresponse */ 3437 #define MC_CMD_PTP_OUT_TIME_EVENT_UNSUBSCRIBE_LEN 0 3438 3439 /* MC_CMD_PTP_OUT_READ_NIC_TIME msgresponse */ 3440 #define MC_CMD_PTP_OUT_READ_NIC_TIME_LEN 8 3441 /* Value of seconds timestamp */ 3442 #define MC_CMD_PTP_OUT_READ_NIC_TIME_SECONDS_OFST 0 3443 #define MC_CMD_PTP_OUT_READ_NIC_TIME_SECONDS_LEN 4 3444 /* Timestamp major value */ 3445 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MAJOR_OFST 0 3446 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MAJOR_LEN 4 3447 /* Value of nanoseconds timestamp */ 3448 #define MC_CMD_PTP_OUT_READ_NIC_TIME_NANOSECONDS_OFST 4 3449 #define MC_CMD_PTP_OUT_READ_NIC_TIME_NANOSECONDS_LEN 4 3450 /* Timestamp minor value */ 3451 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MINOR_OFST 4 3452 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MINOR_LEN 4 3453 3454 /* MC_CMD_PTP_OUT_READ_NIC_TIME_V2 msgresponse */ 3455 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_LEN 12 3456 /* Value of seconds timestamp */ 3457 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_SECONDS_OFST 0 3458 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_SECONDS_LEN 4 3459 /* Timestamp major value */ 3460 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_OFST 0 3461 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_LEN 4 3462 /* Value of nanoseconds timestamp */ 3463 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_NANOSECONDS_OFST 4 3464 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_NANOSECONDS_LEN 4 3465 /* Timestamp minor value */ 3466 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MINOR_OFST 4 3467 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MINOR_LEN 4 3468 /* Upper 32bits of major timestamp value */ 3469 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_HI_OFST 8 3470 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_HI_LEN 4 3471 3472 /* MC_CMD_PTP_OUT_STATUS msgresponse */ 3473 #define MC_CMD_PTP_OUT_STATUS_LEN 64 3474 /* Frequency of NIC's hardware clock */ 3475 #define MC_CMD_PTP_OUT_STATUS_CLOCK_FREQ_OFST 0 3476 #define MC_CMD_PTP_OUT_STATUS_CLOCK_FREQ_LEN 4 3477 /* Number of packets transmitted and timestamped */ 3478 #define MC_CMD_PTP_OUT_STATUS_STATS_TX_OFST 4 3479 #define MC_CMD_PTP_OUT_STATUS_STATS_TX_LEN 4 3480 /* Number of packets received and timestamped */ 3481 #define MC_CMD_PTP_OUT_STATUS_STATS_RX_OFST 8 3482 #define MC_CMD_PTP_OUT_STATUS_STATS_RX_LEN 4 3483 /* Number of packets timestamped by the FPGA */ 3484 #define MC_CMD_PTP_OUT_STATUS_STATS_TS_OFST 12 3485 #define MC_CMD_PTP_OUT_STATUS_STATS_TS_LEN 4 3486 /* Number of packets filter matched */ 3487 #define MC_CMD_PTP_OUT_STATUS_STATS_FM_OFST 16 3488 #define MC_CMD_PTP_OUT_STATUS_STATS_FM_LEN 4 3489 /* Number of packets not filter matched */ 3490 #define MC_CMD_PTP_OUT_STATUS_STATS_NFM_OFST 20 3491 #define MC_CMD_PTP_OUT_STATUS_STATS_NFM_LEN 4 3492 /* Number of PPS overflows (noise on input?) */ 3493 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFLOW_OFST 24 3494 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFLOW_LEN 4 3495 /* Number of PPS bad periods */ 3496 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_BAD_OFST 28 3497 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_BAD_LEN 4 3498 /* Minimum period of PPS pulse in nanoseconds */ 3499 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MIN_OFST 32 3500 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MIN_LEN 4 3501 /* Maximum period of PPS pulse in nanoseconds */ 3502 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MAX_OFST 36 3503 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MAX_LEN 4 3504 /* Last period of PPS pulse in nanoseconds */ 3505 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_LAST_OFST 40 3506 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_LAST_LEN 4 3507 /* Mean period of PPS pulse in nanoseconds */ 3508 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MEAN_OFST 44 3509 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MEAN_LEN 4 3510 /* Minimum offset of PPS pulse in nanoseconds (signed) */ 3511 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MIN_OFST 48 3512 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MIN_LEN 4 3513 /* Maximum offset of PPS pulse in nanoseconds (signed) */ 3514 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MAX_OFST 52 3515 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MAX_LEN 4 3516 /* Last offset of PPS pulse in nanoseconds (signed) */ 3517 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_LAST_OFST 56 3518 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_LAST_LEN 4 3519 /* Mean offset of PPS pulse in nanoseconds (signed) */ 3520 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MEAN_OFST 60 3521 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MEAN_LEN 4 3522 3523 /* MC_CMD_PTP_OUT_SYNCHRONIZE msgresponse */ 3524 #define MC_CMD_PTP_OUT_SYNCHRONIZE_LENMIN 20 3525 #define MC_CMD_PTP_OUT_SYNCHRONIZE_LENMAX 240 3526 #define MC_CMD_PTP_OUT_SYNCHRONIZE_LENMAX_MCDI2 1020 3527 #define MC_CMD_PTP_OUT_SYNCHRONIZE_LEN(num) (0+20*(num)) 3528 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_NUM(len) (((len)-0)/20) 3529 /* A set of host and NIC times */ 3530 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_OFST 0 3531 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_LEN 20 3532 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_MINNUM 1 3533 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_MAXNUM 12 3534 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_MAXNUM_MCDI2 51 3535 /* Host time immediately before NIC's hardware clock read */ 3536 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTSTART_OFST 0 3537 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTSTART_LEN 4 3538 /* Value of seconds timestamp */ 3539 #define MC_CMD_PTP_OUT_SYNCHRONIZE_SECONDS_OFST 4 3540 #define MC_CMD_PTP_OUT_SYNCHRONIZE_SECONDS_LEN 4 3541 /* Timestamp major value */ 3542 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MAJOR_OFST 4 3543 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MAJOR_LEN 4 3544 /* Value of nanoseconds timestamp */ 3545 #define MC_CMD_PTP_OUT_SYNCHRONIZE_NANOSECONDS_OFST 8 3546 #define MC_CMD_PTP_OUT_SYNCHRONIZE_NANOSECONDS_LEN 4 3547 /* Timestamp minor value */ 3548 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MINOR_OFST 8 3549 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MINOR_LEN 4 3550 /* Host time immediately after NIC's hardware clock read */ 3551 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTEND_OFST 12 3552 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTEND_LEN 4 3553 /* Number of nanoseconds waited after reading NIC's hardware clock */ 3554 #define MC_CMD_PTP_OUT_SYNCHRONIZE_WAITNS_OFST 16 3555 #define MC_CMD_PTP_OUT_SYNCHRONIZE_WAITNS_LEN 4 3556 3557 /* MC_CMD_PTP_OUT_MANFTEST_BASIC msgresponse */ 3558 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_LEN 8 3559 /* Results of testing */ 3560 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_RESULT_OFST 0 3561 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_RESULT_LEN 4 3562 /* enum: Successful test */ 3563 #define MC_CMD_PTP_MANF_SUCCESS 0x0 3564 /* enum: FPGA load failed */ 3565 #define MC_CMD_PTP_MANF_FPGA_LOAD 0x1 3566 /* enum: FPGA version invalid */ 3567 #define MC_CMD_PTP_MANF_FPGA_VERSION 0x2 3568 /* enum: FPGA registers incorrect */ 3569 #define MC_CMD_PTP_MANF_FPGA_REGISTERS 0x3 3570 /* enum: Oscillator possibly not working? */ 3571 #define MC_CMD_PTP_MANF_OSCILLATOR 0x4 3572 /* enum: Timestamps not increasing */ 3573 #define MC_CMD_PTP_MANF_TIMESTAMPS 0x5 3574 /* enum: Mismatched packet count */ 3575 #define MC_CMD_PTP_MANF_PACKET_COUNT 0x6 3576 /* enum: Mismatched packet count (Siena filter and FPGA) */ 3577 #define MC_CMD_PTP_MANF_FILTER_COUNT 0x7 3578 /* enum: Not enough packets to perform timestamp check */ 3579 #define MC_CMD_PTP_MANF_PACKET_ENOUGH 0x8 3580 /* enum: Timestamp trigger GPIO not working */ 3581 #define MC_CMD_PTP_MANF_GPIO_TRIGGER 0x9 3582 /* enum: Insufficient PPS events to perform checks */ 3583 #define MC_CMD_PTP_MANF_PPS_ENOUGH 0xa 3584 /* enum: PPS time event period not sufficiently close to 1s. */ 3585 #define MC_CMD_PTP_MANF_PPS_PERIOD 0xb 3586 /* enum: PPS time event nS reading not sufficiently close to zero. */ 3587 #define MC_CMD_PTP_MANF_PPS_NS 0xc 3588 /* enum: PTP peripheral registers incorrect */ 3589 #define MC_CMD_PTP_MANF_REGISTERS 0xd 3590 /* enum: Failed to read time from PTP peripheral */ 3591 #define MC_CMD_PTP_MANF_CLOCK_READ 0xe 3592 /* Presence of external oscillator */ 3593 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_EXTOSC_OFST 4 3594 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_EXTOSC_LEN 4 3595 3596 /* MC_CMD_PTP_OUT_MANFTEST_PACKET msgresponse */ 3597 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_LEN 12 3598 /* Results of testing */ 3599 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_RESULT_OFST 0 3600 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_RESULT_LEN 4 3601 /* Number of packets received by FPGA */ 3602 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FPGACOUNT_OFST 4 3603 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FPGACOUNT_LEN 4 3604 /* Number of packets received by Siena filters */ 3605 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FILTERCOUNT_OFST 8 3606 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FILTERCOUNT_LEN 4 3607 3608 /* MC_CMD_PTP_OUT_FPGAREAD msgresponse */ 3609 #define MC_CMD_PTP_OUT_FPGAREAD_LENMIN 1 3610 #define MC_CMD_PTP_OUT_FPGAREAD_LENMAX 252 3611 #define MC_CMD_PTP_OUT_FPGAREAD_LENMAX_MCDI2 1020 3612 #define MC_CMD_PTP_OUT_FPGAREAD_LEN(num) (0+1*(num)) 3613 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_NUM(len) (((len)-0)/1) 3614 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_OFST 0 3615 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_LEN 1 3616 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_MINNUM 1 3617 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_MAXNUM 252 3618 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_MAXNUM_MCDI2 1020 3619 3620 /* MC_CMD_PTP_OUT_GET_TIME_FORMAT msgresponse */ 3621 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_LEN 4 3622 /* Time format required/used by for this NIC. Applies to all PTP MCDI 3623 * operations that pass times between the host and firmware. If this operation 3624 * is not supported (older firmware) a format of seconds and nanoseconds should 3625 * be assumed. Note this enum is deprecated. Do not add to it- use the 3626 * TIME_FORMAT field in MC_CMD_PTP_OUT_GET_ATTRIBUTES instead. 3627 */ 3628 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_FORMAT_OFST 0 3629 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_FORMAT_LEN 4 3630 /* enum: Times are in seconds and nanoseconds */ 3631 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_SECONDS_NANOSECONDS 0x0 3632 /* enum: Major register has units of 16 second per tick, minor 8 ns per tick */ 3633 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_16SECONDS_8NANOSECONDS 0x1 3634 /* enum: Major register has units of seconds, minor 2^-27s per tick */ 3635 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_SECONDS_27FRACTION 0x2 3636 3637 /* MC_CMD_PTP_OUT_GET_ATTRIBUTES msgresponse */ 3638 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_LEN 24 3639 /* Time format required/used by for this NIC. Applies to all PTP MCDI 3640 * operations that pass times between the host and firmware. If this operation 3641 * is not supported (older firmware) a format of seconds and nanoseconds should 3642 * be assumed. 3643 */ 3644 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_TIME_FORMAT_OFST 0 3645 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_TIME_FORMAT_LEN 4 3646 /* enum: Times are in seconds and nanoseconds */ 3647 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SECONDS_NANOSECONDS 0x0 3648 /* enum: Major register has units of 16 second per tick, minor 8 ns per tick */ 3649 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_16SECONDS_8NANOSECONDS 0x1 3650 /* enum: Major register has units of seconds, minor 2^-27s per tick */ 3651 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SECONDS_27FRACTION 0x2 3652 /* enum: Major register units are seconds, minor units are quarter nanoseconds 3653 */ 3654 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SECONDS_QTR_NANOSECONDS 0x3 3655 /* Minimum acceptable value for a corrected synchronization timeset. When 3656 * comparing host and NIC clock times, the MC returns a set of samples that 3657 * contain the host start and end time, the MC time when the host start was 3658 * detected and the time the MC waited between reading the time and detecting 3659 * the host end. The corrected sync window is the difference between the host 3660 * end and start times minus the time that the MC waited for host end. 3661 */ 3662 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SYNC_WINDOW_MIN_OFST 4 3663 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SYNC_WINDOW_MIN_LEN 4 3664 /* Various PTP capabilities */ 3665 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_CAPABILITIES_OFST 8 3666 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_CAPABILITIES_LEN 4 3667 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_REPORT_SYNC_STATUS_OFST 8 3668 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_REPORT_SYNC_STATUS_LBN 0 3669 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_REPORT_SYNC_STATUS_WIDTH 1 3670 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RX_TSTAMP_OOB_OFST 8 3671 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RX_TSTAMP_OOB_LBN 1 3672 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RX_TSTAMP_OOB_WIDTH 1 3673 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_64BIT_SECONDS_OFST 8 3674 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_64BIT_SECONDS_LBN 2 3675 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_64BIT_SECONDS_WIDTH 1 3676 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_FP44_FREQ_ADJ_OFST 8 3677 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_FP44_FREQ_ADJ_LBN 3 3678 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_FP44_FREQ_ADJ_WIDTH 1 3679 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED0_OFST 12 3680 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED0_LEN 4 3681 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED1_OFST 16 3682 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED1_LEN 4 3683 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED2_OFST 20 3684 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED2_LEN 4 3685 3686 /* MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2 msgresponse */ 3687 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_LEN 40 3688 /* Time format required/used by for this NIC. Applies to all PTP MCDI 3689 * operations that pass times between the host and firmware. If this operation 3690 * is not supported (older firmware) a format of seconds and nanoseconds should 3691 * be assumed. 3692 */ 3693 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_TIME_FORMAT_OFST 0 3694 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_TIME_FORMAT_LEN 4 3695 /* enum: Times are in seconds and nanoseconds */ 3696 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SECONDS_NANOSECONDS 0x0 3697 /* enum: Major register has units of 16 second per tick, minor 8 ns per tick */ 3698 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_16SECONDS_8NANOSECONDS 0x1 3699 /* enum: Major register has units of seconds, minor 2^-27s per tick */ 3700 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SECONDS_27FRACTION 0x2 3701 /* enum: Major register units are seconds, minor units are quarter nanoseconds 3702 */ 3703 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SECONDS_QTR_NANOSECONDS 0x3 3704 /* Minimum acceptable value for a corrected synchronization timeset. When 3705 * comparing host and NIC clock times, the MC returns a set of samples that 3706 * contain the host start and end time, the MC time when the host start was 3707 * detected and the time the MC waited between reading the time and detecting 3708 * the host end. The corrected sync window is the difference between the host 3709 * end and start times minus the time that the MC waited for host end. 3710 */ 3711 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SYNC_WINDOW_MIN_OFST 4 3712 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SYNC_WINDOW_MIN_LEN 4 3713 /* Various PTP capabilities */ 3714 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_CAPABILITIES_OFST 8 3715 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_CAPABILITIES_LEN 4 3716 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_REPORT_SYNC_STATUS_OFST 8 3717 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_REPORT_SYNC_STATUS_LBN 0 3718 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_REPORT_SYNC_STATUS_WIDTH 1 3719 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RX_TSTAMP_OOB_OFST 8 3720 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RX_TSTAMP_OOB_LBN 1 3721 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RX_TSTAMP_OOB_WIDTH 1 3722 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_64BIT_SECONDS_OFST 8 3723 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_64BIT_SECONDS_LBN 2 3724 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_64BIT_SECONDS_WIDTH 1 3725 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FP44_FREQ_ADJ_OFST 8 3726 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FP44_FREQ_ADJ_LBN 3 3727 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FP44_FREQ_ADJ_WIDTH 1 3728 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED0_OFST 12 3729 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED0_LEN 4 3730 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED1_OFST 16 3731 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED1_LEN 4 3732 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED2_OFST 20 3733 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED2_LEN 4 3734 /* Minimum supported value for the FREQ field in 3735 * MC_CMD_PTP/MC_CMD_PTP_IN_ADJUST and 3736 * MC_CMD_PTP/MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST message requests. If this message 3737 * response is not supported a value of -0.1 ns should be assumed, which is 3738 * equivalent to a -10% adjustment. 3739 */ 3740 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_OFST 24 3741 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_LEN 8 3742 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_LO_OFST 24 3743 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_LO_LEN 4 3744 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_LO_LBN 192 3745 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_LO_WIDTH 32 3746 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_HI_OFST 28 3747 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_HI_LEN 4 3748 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_HI_LBN 224 3749 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_HI_WIDTH 32 3750 /* Maximum supported value for the FREQ field in 3751 * MC_CMD_PTP/MC_CMD_PTP_IN_ADJUST and 3752 * MC_CMD_PTP/MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST message requests. If this message 3753 * response is not supported a value of 0.1 ns should be assumed, which is 3754 * equivalent to a +10% adjustment. 3755 */ 3756 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_OFST 32 3757 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_LEN 8 3758 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_LO_OFST 32 3759 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_LO_LEN 4 3760 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_LO_LBN 256 3761 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_LO_WIDTH 32 3762 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_HI_OFST 36 3763 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_HI_LEN 4 3764 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_HI_LBN 288 3765 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_HI_WIDTH 32 3766 3767 /* MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS msgresponse */ 3768 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_LEN 16 3769 /* Uncorrected error on PTP transmit timestamps in NIC clock format */ 3770 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_TRANSMIT_OFST 0 3771 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_TRANSMIT_LEN 4 3772 /* Uncorrected error on PTP receive timestamps in NIC clock format */ 3773 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_RECEIVE_OFST 4 3774 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_RECEIVE_LEN 4 3775 /* Uncorrected error on PPS output in NIC clock format */ 3776 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_OUT_OFST 8 3777 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_OUT_LEN 4 3778 /* Uncorrected error on PPS input in NIC clock format */ 3779 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_IN_OFST 12 3780 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_IN_LEN 4 3781 3782 /* MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2 msgresponse */ 3783 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_LEN 24 3784 /* Uncorrected error on PTP transmit timestamps in NIC clock format */ 3785 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_TX_OFST 0 3786 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_TX_LEN 4 3787 /* Uncorrected error on PTP receive timestamps in NIC clock format */ 3788 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_RX_OFST 4 3789 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_RX_LEN 4 3790 /* Uncorrected error on PPS output in NIC clock format */ 3791 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_OUT_OFST 8 3792 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_OUT_LEN 4 3793 /* Uncorrected error on PPS input in NIC clock format */ 3794 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_IN_OFST 12 3795 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_IN_LEN 4 3796 /* Uncorrected error on non-PTP transmit timestamps in NIC clock format */ 3797 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_TX_OFST 16 3798 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_TX_LEN 4 3799 /* Uncorrected error on non-PTP receive timestamps in NIC clock format */ 3800 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_RX_OFST 20 3801 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_RX_LEN 4 3802 3803 /* MC_CMD_PTP_OUT_MANFTEST_PPS msgresponse */ 3804 #define MC_CMD_PTP_OUT_MANFTEST_PPS_LEN 4 3805 /* Results of testing */ 3806 #define MC_CMD_PTP_OUT_MANFTEST_PPS_TEST_RESULT_OFST 0 3807 #define MC_CMD_PTP_OUT_MANFTEST_PPS_TEST_RESULT_LEN 4 3808 /* Enum values, see field(s): */ 3809 /* MC_CMD_PTP_OUT_MANFTEST_BASIC/TEST_RESULT */ 3810 3811 /* MC_CMD_PTP_OUT_SET_SYNC_STATUS msgresponse */ 3812 #define MC_CMD_PTP_OUT_SET_SYNC_STATUS_LEN 0 3813 3814 /* MC_CMD_PTP_OUT_GET_SYNC_TIMEOUT msgresponse */ 3815 #define MC_CMD_PTP_OUT_GET_SYNC_TIMEOUT_LEN 8 3816 /* Current value set in NIC, in seconds */ 3817 #define MC_CMD_PTP_OUT_GET_SYNC_TIMEOUT_CURRENT_OFST 0 3818 #define MC_CMD_PTP_OUT_GET_SYNC_TIMEOUT_CURRENT_LEN 4 3819 /* Maximum supported by NIC, in seconds */ 3820 #define MC_CMD_PTP_OUT_GET_SYNC_TIMEOUT_MAXIMUM_OFST 4 3821 #define MC_CMD_PTP_OUT_GET_SYNC_TIMEOUT_MAXIMUM_LEN 4 3822 3823 3824 /***********************************/ 3825 /* MC_CMD_GET_BOARD_CFG 3826 * Returns the MC firmware configuration structure. 3827 */ 3828 #define MC_CMD_GET_BOARD_CFG 0x18 3829 #undef MC_CMD_0x18_PRIVILEGE_CTG 3830 3831 #define MC_CMD_0x18_PRIVILEGE_CTG SRIOV_CTG_GENERAL 3832 3833 /* MC_CMD_GET_BOARD_CFG_IN msgrequest */ 3834 #define MC_CMD_GET_BOARD_CFG_IN_LEN 0 3835 3836 /* MC_CMD_GET_BOARD_CFG_OUT msgresponse */ 3837 #define MC_CMD_GET_BOARD_CFG_OUT_LENMIN 96 3838 #define MC_CMD_GET_BOARD_CFG_OUT_LENMAX 136 3839 #define MC_CMD_GET_BOARD_CFG_OUT_LENMAX_MCDI2 136 3840 #define MC_CMD_GET_BOARD_CFG_OUT_LEN(num) (72+2*(num)) 3841 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_NUM(len) (((len)-72)/2) 3842 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_TYPE_OFST 0 3843 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_TYPE_LEN 4 3844 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_NAME_OFST 4 3845 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_NAME_LEN 32 3846 /* Capabilities for Siena Port0 (see struct MC_CMD_CAPABILITIES). Unused on 3847 * EF10 and later (use MC_CMD_GET_CAPABILITIES). 3848 */ 3849 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT0_OFST 36 3850 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT0_LEN 4 3851 /* Capabilities for Siena Port1 (see struct MC_CMD_CAPABILITIES). Unused on 3852 * EF10 and later (use MC_CMD_GET_CAPABILITIES). 3853 */ 3854 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT1_OFST 40 3855 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT1_LEN 4 3856 /* Base MAC address for Siena Port0. Unused on EF10 and later (use 3857 * MC_CMD_GET_MAC_ADDRESSES). 3858 */ 3859 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT0_OFST 44 3860 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT0_LEN 6 3861 /* Base MAC address for Siena Port1. Unused on EF10 and later (use 3862 * MC_CMD_GET_MAC_ADDRESSES). 3863 */ 3864 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT1_OFST 50 3865 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT1_LEN 6 3866 /* Size of MAC address pool for Siena Port0. Unused on EF10 and later (use 3867 * MC_CMD_GET_MAC_ADDRESSES). 3868 */ 3869 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT0_OFST 56 3870 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT0_LEN 4 3871 /* Size of MAC address pool for Siena Port1. Unused on EF10 and later (use 3872 * MC_CMD_GET_MAC_ADDRESSES). 3873 */ 3874 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT1_OFST 60 3875 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT1_LEN 4 3876 /* Increment between addresses in MAC address pool for Siena Port0. Unused on 3877 * EF10 and later (use MC_CMD_GET_MAC_ADDRESSES). 3878 */ 3879 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT0_OFST 64 3880 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT0_LEN 4 3881 /* Increment between addresses in MAC address pool for Siena Port1. Unused on 3882 * EF10 and later (use MC_CMD_GET_MAC_ADDRESSES). 3883 */ 3884 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT1_OFST 68 3885 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT1_LEN 4 3886 /* Siena only. This field contains a 16-bit value for each of the types of 3887 * NVRAM area. The values are defined in the firmware/mc/platform/.c file for a 3888 * specific board type, but otherwise have no meaning to the MC; they are used 3889 * by the driver to manage selection of appropriate firmware updates. Unused on 3890 * EF10 and later (use MC_CMD_NVRAM_METADATA). 3891 */ 3892 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_OFST 72 3893 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_LEN 2 3894 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_MINNUM 12 3895 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_MAXNUM 32 3896 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_MAXNUM_MCDI2 32 3897 3898 3899 /***********************************/ 3900 /* MC_CMD_DRV_ATTACH 3901 * Inform MCPU that this port is managed on the host (i.e. driver active). For 3902 * Huntington, also request the preferred datapath firmware to use if possible 3903 * (it may not be possible for this request to be fulfilled; the driver must 3904 * issue a subsequent MC_CMD_GET_CAPABILITIES command to determine which 3905 * features are actually available). The FIRMWARE_ID field is ignored by older 3906 * platforms. 3907 */ 3908 #define MC_CMD_DRV_ATTACH 0x1c 3909 #undef MC_CMD_0x1c_PRIVILEGE_CTG 3910 3911 #define MC_CMD_0x1c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 3912 3913 /* MC_CMD_DRV_ATTACH_IN msgrequest */ 3914 #define MC_CMD_DRV_ATTACH_IN_LEN 12 3915 /* new state to set if UPDATE=1 */ 3916 #define MC_CMD_DRV_ATTACH_IN_NEW_STATE_OFST 0 3917 #define MC_CMD_DRV_ATTACH_IN_NEW_STATE_LEN 4 3918 #define MC_CMD_DRV_ATTACH_OFST 0 3919 #define MC_CMD_DRV_ATTACH_LBN 0 3920 #define MC_CMD_DRV_ATTACH_WIDTH 1 3921 #define MC_CMD_DRV_ATTACH_IN_ATTACH_OFST 0 3922 #define MC_CMD_DRV_ATTACH_IN_ATTACH_LBN 0 3923 #define MC_CMD_DRV_ATTACH_IN_ATTACH_WIDTH 1 3924 #define MC_CMD_DRV_PREBOOT_OFST 0 3925 #define MC_CMD_DRV_PREBOOT_LBN 1 3926 #define MC_CMD_DRV_PREBOOT_WIDTH 1 3927 #define MC_CMD_DRV_ATTACH_IN_PREBOOT_OFST 0 3928 #define MC_CMD_DRV_ATTACH_IN_PREBOOT_LBN 1 3929 #define MC_CMD_DRV_ATTACH_IN_PREBOOT_WIDTH 1 3930 #define MC_CMD_DRV_ATTACH_IN_SUBVARIANT_AWARE_OFST 0 3931 #define MC_CMD_DRV_ATTACH_IN_SUBVARIANT_AWARE_LBN 2 3932 #define MC_CMD_DRV_ATTACH_IN_SUBVARIANT_AWARE_WIDTH 1 3933 #define MC_CMD_DRV_ATTACH_IN_WANT_VI_SPREADING_OFST 0 3934 #define MC_CMD_DRV_ATTACH_IN_WANT_VI_SPREADING_LBN 3 3935 #define MC_CMD_DRV_ATTACH_IN_WANT_VI_SPREADING_WIDTH 1 3936 #define MC_CMD_DRV_ATTACH_IN_WANT_V2_LINKCHANGES_OFST 0 3937 #define MC_CMD_DRV_ATTACH_IN_WANT_V2_LINKCHANGES_LBN 4 3938 #define MC_CMD_DRV_ATTACH_IN_WANT_V2_LINKCHANGES_WIDTH 1 3939 #define MC_CMD_DRV_ATTACH_IN_WANT_RX_VI_SPREADING_INHIBIT_OFST 0 3940 #define MC_CMD_DRV_ATTACH_IN_WANT_RX_VI_SPREADING_INHIBIT_LBN 5 3941 #define MC_CMD_DRV_ATTACH_IN_WANT_RX_VI_SPREADING_INHIBIT_WIDTH 1 3942 #define MC_CMD_DRV_ATTACH_IN_WANT_TX_ONLY_SPREADING_OFST 0 3943 #define MC_CMD_DRV_ATTACH_IN_WANT_TX_ONLY_SPREADING_LBN 5 3944 #define MC_CMD_DRV_ATTACH_IN_WANT_TX_ONLY_SPREADING_WIDTH 1 3945 /* 1 to set new state, or 0 to just report the existing state */ 3946 #define MC_CMD_DRV_ATTACH_IN_UPDATE_OFST 4 3947 #define MC_CMD_DRV_ATTACH_IN_UPDATE_LEN 4 3948 /* preferred datapath firmware (for Huntington; ignored for Siena) */ 3949 #define MC_CMD_DRV_ATTACH_IN_FIRMWARE_ID_OFST 8 3950 #define MC_CMD_DRV_ATTACH_IN_FIRMWARE_ID_LEN 4 3951 /* enum: Prefer to use full featured firmware */ 3952 #define MC_CMD_FW_FULL_FEATURED 0x0 3953 /* enum: Prefer to use firmware with fewer features but lower latency */ 3954 #define MC_CMD_FW_LOW_LATENCY 0x1 3955 /* enum: Prefer to use firmware for SolarCapture packed stream mode */ 3956 #define MC_CMD_FW_PACKED_STREAM 0x2 3957 /* enum: Prefer to use firmware with fewer features and simpler TX event 3958 * batching but higher TX packet rate 3959 */ 3960 #define MC_CMD_FW_HIGH_TX_RATE 0x3 3961 /* enum: Reserved value */ 3962 #define MC_CMD_FW_PACKED_STREAM_HASH_MODE_1 0x4 3963 /* enum: Prefer to use firmware with additional "rules engine" filtering 3964 * support 3965 */ 3966 #define MC_CMD_FW_RULES_ENGINE 0x5 3967 /* enum: Prefer to use firmware with additional DPDK support */ 3968 #define MC_CMD_FW_DPDK 0x6 3969 /* enum: Prefer to use "l3xudp" custom datapath firmware (see SF-119495-PD and 3970 * bug69716) 3971 */ 3972 #define MC_CMD_FW_L3XUDP 0x7 3973 /* enum: Requests that the MC keep whatever datapath firmware is currently 3974 * running. It's used for test purposes, where we want to be able to shmboot 3975 * special test firmware variants. This option is only recognised in eftest 3976 * (i.e. non-production) builds. 3977 */ 3978 #define MC_CMD_FW_KEEP_CURRENT_EFTEST_ONLY 0xfffffffe 3979 /* enum: Only this option is allowed for non-admin functions */ 3980 #define MC_CMD_FW_DONT_CARE 0xffffffff 3981 3982 /* MC_CMD_DRV_ATTACH_IN_V2 msgrequest: Updated DRV_ATTACH to include driver 3983 * version 3984 */ 3985 #define MC_CMD_DRV_ATTACH_IN_V2_LEN 32 3986 /* new state to set if UPDATE=1 */ 3987 #define MC_CMD_DRV_ATTACH_IN_V2_NEW_STATE_OFST 0 3988 #define MC_CMD_DRV_ATTACH_IN_V2_NEW_STATE_LEN 4 3989 /* MC_CMD_DRV_ATTACH_OFST 0 */ 3990 /* MC_CMD_DRV_ATTACH_LBN 0 */ 3991 /* MC_CMD_DRV_ATTACH_WIDTH 1 */ 3992 #define MC_CMD_DRV_ATTACH_IN_V2_ATTACH_OFST 0 3993 #define MC_CMD_DRV_ATTACH_IN_V2_ATTACH_LBN 0 3994 #define MC_CMD_DRV_ATTACH_IN_V2_ATTACH_WIDTH 1 3995 /* MC_CMD_DRV_PREBOOT_OFST 0 */ 3996 /* MC_CMD_DRV_PREBOOT_LBN 1 */ 3997 /* MC_CMD_DRV_PREBOOT_WIDTH 1 */ 3998 #define MC_CMD_DRV_ATTACH_IN_V2_PREBOOT_OFST 0 3999 #define MC_CMD_DRV_ATTACH_IN_V2_PREBOOT_LBN 1 4000 #define MC_CMD_DRV_ATTACH_IN_V2_PREBOOT_WIDTH 1 4001 #define MC_CMD_DRV_ATTACH_IN_V2_SUBVARIANT_AWARE_OFST 0 4002 #define MC_CMD_DRV_ATTACH_IN_V2_SUBVARIANT_AWARE_LBN 2 4003 #define MC_CMD_DRV_ATTACH_IN_V2_SUBVARIANT_AWARE_WIDTH 1 4004 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_VI_SPREADING_OFST 0 4005 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_VI_SPREADING_LBN 3 4006 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_VI_SPREADING_WIDTH 1 4007 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_V2_LINKCHANGES_OFST 0 4008 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_V2_LINKCHANGES_LBN 4 4009 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_V2_LINKCHANGES_WIDTH 1 4010 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_RX_VI_SPREADING_INHIBIT_OFST 0 4011 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_RX_VI_SPREADING_INHIBIT_LBN 5 4012 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_RX_VI_SPREADING_INHIBIT_WIDTH 1 4013 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_TX_ONLY_SPREADING_OFST 0 4014 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_TX_ONLY_SPREADING_LBN 5 4015 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_TX_ONLY_SPREADING_WIDTH 1 4016 /* 1 to set new state, or 0 to just report the existing state */ 4017 #define MC_CMD_DRV_ATTACH_IN_V2_UPDATE_OFST 4 4018 #define MC_CMD_DRV_ATTACH_IN_V2_UPDATE_LEN 4 4019 /* preferred datapath firmware (for Huntington; ignored for Siena) */ 4020 #define MC_CMD_DRV_ATTACH_IN_V2_FIRMWARE_ID_OFST 8 4021 #define MC_CMD_DRV_ATTACH_IN_V2_FIRMWARE_ID_LEN 4 4022 /* enum: Prefer to use full featured firmware */ 4023 /* MC_CMD_FW_FULL_FEATURED 0x0 */ 4024 /* enum: Prefer to use firmware with fewer features but lower latency */ 4025 /* MC_CMD_FW_LOW_LATENCY 0x1 */ 4026 /* enum: Prefer to use firmware for SolarCapture packed stream mode */ 4027 /* MC_CMD_FW_PACKED_STREAM 0x2 */ 4028 /* enum: Prefer to use firmware with fewer features and simpler TX event 4029 * batching but higher TX packet rate 4030 */ 4031 /* MC_CMD_FW_HIGH_TX_RATE 0x3 */ 4032 /* enum: Reserved value */ 4033 /* MC_CMD_FW_PACKED_STREAM_HASH_MODE_1 0x4 */ 4034 /* enum: Prefer to use firmware with additional "rules engine" filtering 4035 * support 4036 */ 4037 /* MC_CMD_FW_RULES_ENGINE 0x5 */ 4038 /* enum: Prefer to use firmware with additional DPDK support */ 4039 /* MC_CMD_FW_DPDK 0x6 */ 4040 /* enum: Prefer to use "l3xudp" custom datapath firmware (see SF-119495-PD and 4041 * bug69716) 4042 */ 4043 /* MC_CMD_FW_L3XUDP 0x7 */ 4044 /* enum: Requests that the MC keep whatever datapath firmware is currently 4045 * running. It's used for test purposes, where we want to be able to shmboot 4046 * special test firmware variants. This option is only recognised in eftest 4047 * (i.e. non-production) builds. 4048 */ 4049 /* MC_CMD_FW_KEEP_CURRENT_EFTEST_ONLY 0xfffffffe */ 4050 /* enum: Only this option is allowed for non-admin functions */ 4051 /* MC_CMD_FW_DONT_CARE 0xffffffff */ 4052 /* Version of the driver to be reported by management protocols (e.g. NC-SI) 4053 * handled by the NIC. This is a zero-terminated ASCII string. 4054 */ 4055 #define MC_CMD_DRV_ATTACH_IN_V2_DRIVER_VERSION_OFST 12 4056 #define MC_CMD_DRV_ATTACH_IN_V2_DRIVER_VERSION_LEN 20 4057 4058 /* MC_CMD_DRV_ATTACH_OUT msgresponse */ 4059 #define MC_CMD_DRV_ATTACH_OUT_LEN 4 4060 /* previous or existing state, see the bitmask at NEW_STATE */ 4061 #define MC_CMD_DRV_ATTACH_OUT_OLD_STATE_OFST 0 4062 #define MC_CMD_DRV_ATTACH_OUT_OLD_STATE_LEN 4 4063 4064 /* MC_CMD_DRV_ATTACH_EXT_OUT msgresponse */ 4065 #define MC_CMD_DRV_ATTACH_EXT_OUT_LEN 8 4066 /* previous or existing state, see the bitmask at NEW_STATE */ 4067 #define MC_CMD_DRV_ATTACH_EXT_OUT_OLD_STATE_OFST 0 4068 #define MC_CMD_DRV_ATTACH_EXT_OUT_OLD_STATE_LEN 4 4069 /* Flags associated with this function */ 4070 #define MC_CMD_DRV_ATTACH_EXT_OUT_FUNC_FLAGS_OFST 4 4071 #define MC_CMD_DRV_ATTACH_EXT_OUT_FUNC_FLAGS_LEN 4 4072 /* enum property: bitshift */ 4073 /* enum: Labels the lowest-numbered function visible to the OS */ 4074 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_PRIMARY 0x0 4075 /* enum: The function can control the link state of the physical port it is 4076 * bound to. 4077 */ 4078 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_LINKCTRL 0x1 4079 /* enum: The function can perform privileged operations */ 4080 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_TRUSTED 0x2 4081 /* enum: The function does not have an active port associated with it. The port 4082 * refers to the Sorrento external FPGA port. 4083 */ 4084 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_NO_ACTIVE_PORT 0x3 4085 /* enum: If set, indicates that VI spreading is currently enabled. Will always 4086 * indicate the current state, regardless of the value in the WANT_VI_SPREADING 4087 * input. 4088 */ 4089 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_VI_SPREADING_ENABLED 0x4 4090 /* enum: Used during development only. Should no longer be used. */ 4091 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_RX_VI_SPREADING_INHIBITED 0x5 4092 /* enum: If set, indicates that TX only spreading is enabled. Even-numbered 4093 * TXQs will use one engine, and odd-numbered TXQs will use the other. This 4094 * also has the effect that only even-numbered RXQs will receive traffic. 4095 */ 4096 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_TX_ONLY_VI_SPREADING_ENABLED 0x5 4097 4098 4099 /***********************************/ 4100 /* MC_CMD_PORT_RESET 4101 * Generic per-port reset. There is no equivalent for per-board reset. Locks 4102 * required: None; Return code: 0, ETIME. NOTE: This command is deprecated - 4103 * use MC_CMD_ENTITY_RESET instead. 4104 */ 4105 #define MC_CMD_PORT_RESET 0x20 4106 #undef MC_CMD_0x20_PRIVILEGE_CTG 4107 4108 #define MC_CMD_0x20_PRIVILEGE_CTG SRIOV_CTG_GENERAL 4109 4110 /* MC_CMD_PORT_RESET_IN msgrequest */ 4111 #define MC_CMD_PORT_RESET_IN_LEN 0 4112 4113 /* MC_CMD_PORT_RESET_OUT msgresponse */ 4114 #define MC_CMD_PORT_RESET_OUT_LEN 0 4115 4116 4117 /***********************************/ 4118 /* MC_CMD_ENTITY_RESET 4119 * Generic per-resource reset. There is no equivalent for per-board reset. 4120 * Locks required: None; Return code: 0, ETIME. NOTE: This command is an 4121 * extended version of the deprecated MC_CMD_PORT_RESET with added fields. 4122 */ 4123 #define MC_CMD_ENTITY_RESET 0x20 4124 /* MC_CMD_0x20_PRIVILEGE_CTG SRIOV_CTG_GENERAL */ 4125 4126 /* MC_CMD_ENTITY_RESET_IN msgrequest */ 4127 #define MC_CMD_ENTITY_RESET_IN_LEN 4 4128 /* Optional flags field. Omitting this will perform a "legacy" reset action 4129 * (TBD). 4130 */ 4131 #define MC_CMD_ENTITY_RESET_IN_FLAG_OFST 0 4132 #define MC_CMD_ENTITY_RESET_IN_FLAG_LEN 4 4133 #define MC_CMD_ENTITY_RESET_IN_FUNCTION_RESOURCE_RESET_OFST 0 4134 #define MC_CMD_ENTITY_RESET_IN_FUNCTION_RESOURCE_RESET_LBN 0 4135 #define MC_CMD_ENTITY_RESET_IN_FUNCTION_RESOURCE_RESET_WIDTH 1 4136 4137 /* MC_CMD_ENTITY_RESET_OUT msgresponse */ 4138 #define MC_CMD_ENTITY_RESET_OUT_LEN 0 4139 4140 4141 /***********************************/ 4142 /* MC_CMD_PUTS 4143 * Copy the given ASCII string out onto UART and/or out of the network port. 4144 */ 4145 #define MC_CMD_PUTS 0x23 4146 #undef MC_CMD_0x23_PRIVILEGE_CTG 4147 4148 #define MC_CMD_0x23_PRIVILEGE_CTG SRIOV_CTG_INSECURE 4149 4150 /* MC_CMD_PUTS_IN msgrequest */ 4151 #define MC_CMD_PUTS_IN_LENMIN 13 4152 #define MC_CMD_PUTS_IN_LENMAX 252 4153 #define MC_CMD_PUTS_IN_LENMAX_MCDI2 1020 4154 #define MC_CMD_PUTS_IN_LEN(num) (12+1*(num)) 4155 #define MC_CMD_PUTS_IN_STRING_NUM(len) (((len)-12)/1) 4156 #define MC_CMD_PUTS_IN_DEST_OFST 0 4157 #define MC_CMD_PUTS_IN_DEST_LEN 4 4158 #define MC_CMD_PUTS_IN_UART_OFST 0 4159 #define MC_CMD_PUTS_IN_UART_LBN 0 4160 #define MC_CMD_PUTS_IN_UART_WIDTH 1 4161 #define MC_CMD_PUTS_IN_PORT_OFST 0 4162 #define MC_CMD_PUTS_IN_PORT_LBN 1 4163 #define MC_CMD_PUTS_IN_PORT_WIDTH 1 4164 #define MC_CMD_PUTS_IN_DHOST_OFST 4 4165 #define MC_CMD_PUTS_IN_DHOST_LEN 6 4166 #define MC_CMD_PUTS_IN_STRING_OFST 12 4167 #define MC_CMD_PUTS_IN_STRING_LEN 1 4168 #define MC_CMD_PUTS_IN_STRING_MINNUM 1 4169 #define MC_CMD_PUTS_IN_STRING_MAXNUM 240 4170 #define MC_CMD_PUTS_IN_STRING_MAXNUM_MCDI2 1008 4171 4172 /* MC_CMD_PUTS_OUT msgresponse */ 4173 #define MC_CMD_PUTS_OUT_LEN 0 4174 4175 4176 /***********************************/ 4177 /* MC_CMD_GET_PHY_CFG 4178 * Report PHY configuration. This guarantees to succeed even if the PHY is in a 4179 * 'zombie' state. Locks required: None 4180 */ 4181 #define MC_CMD_GET_PHY_CFG 0x24 4182 #undef MC_CMD_0x24_PRIVILEGE_CTG 4183 4184 #define MC_CMD_0x24_PRIVILEGE_CTG SRIOV_CTG_GENERAL 4185 4186 /* MC_CMD_GET_PHY_CFG_IN msgrequest */ 4187 #define MC_CMD_GET_PHY_CFG_IN_LEN 0 4188 4189 /* MC_CMD_GET_PHY_CFG_IN_V2 msgrequest */ 4190 #define MC_CMD_GET_PHY_CFG_IN_V2_LEN 8 4191 /* Target port to request PHY state for. Uses MAE_LINK_ENDPOINT_SELECTOR which 4192 * identifies a real or virtual network port by MAE port and link end. See the 4193 * structure definition for more details 4194 */ 4195 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_OFST 0 4196 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LEN 8 4197 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LO_OFST 0 4198 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LO_LEN 4 4199 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LO_LBN 0 4200 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LO_WIDTH 32 4201 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_HI_OFST 4 4202 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_HI_LEN 4 4203 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_HI_LBN 32 4204 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_HI_WIDTH 32 4205 /* See structuredef: MAE_LINK_ENDPOINT_SELECTOR */ 4206 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_OFST 0 4207 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_LEN 4 4208 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FLAT_OFST 0 4209 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FLAT_LEN 4 4210 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_TYPE_OFST 3 4211 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_TYPE_LEN 1 4212 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 0 4213 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 4214 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 0 4215 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 4216 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 20 4217 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 4218 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 16 4219 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 4220 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 2 4221 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 4222 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 0 4223 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 4224 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LINK_END_OFST 4 4225 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LINK_END_LEN 4 4226 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_OFST 0 4227 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_LEN 8 4228 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_LO_OFST 0 4229 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_LO_LEN 4 4230 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_LO_LBN 0 4231 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_LO_WIDTH 32 4232 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_HI_OFST 4 4233 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_HI_LEN 4 4234 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_HI_LBN 32 4235 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_HI_WIDTH 32 4236 4237 /* MC_CMD_GET_PHY_CFG_OUT msgresponse */ 4238 #define MC_CMD_GET_PHY_CFG_OUT_LEN 72 4239 /* flags */ 4240 #define MC_CMD_GET_PHY_CFG_OUT_FLAGS_OFST 0 4241 #define MC_CMD_GET_PHY_CFG_OUT_FLAGS_LEN 4 4242 #define MC_CMD_GET_PHY_CFG_OUT_PRESENT_OFST 0 4243 #define MC_CMD_GET_PHY_CFG_OUT_PRESENT_LBN 0 4244 #define MC_CMD_GET_PHY_CFG_OUT_PRESENT_WIDTH 1 4245 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_SHORT_OFST 0 4246 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_SHORT_LBN 1 4247 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_SHORT_WIDTH 1 4248 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_LONG_OFST 0 4249 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_LONG_LBN 2 4250 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_LONG_WIDTH 1 4251 #define MC_CMD_GET_PHY_CFG_OUT_LOWPOWER_OFST 0 4252 #define MC_CMD_GET_PHY_CFG_OUT_LOWPOWER_LBN 3 4253 #define MC_CMD_GET_PHY_CFG_OUT_LOWPOWER_WIDTH 1 4254 #define MC_CMD_GET_PHY_CFG_OUT_POWEROFF_OFST 0 4255 #define MC_CMD_GET_PHY_CFG_OUT_POWEROFF_LBN 4 4256 #define MC_CMD_GET_PHY_CFG_OUT_POWEROFF_WIDTH 1 4257 #define MC_CMD_GET_PHY_CFG_OUT_TXDIS_OFST 0 4258 #define MC_CMD_GET_PHY_CFG_OUT_TXDIS_LBN 5 4259 #define MC_CMD_GET_PHY_CFG_OUT_TXDIS_WIDTH 1 4260 #define MC_CMD_GET_PHY_CFG_OUT_BIST_OFST 0 4261 #define MC_CMD_GET_PHY_CFG_OUT_BIST_LBN 6 4262 #define MC_CMD_GET_PHY_CFG_OUT_BIST_WIDTH 1 4263 /* ?? */ 4264 #define MC_CMD_GET_PHY_CFG_OUT_TYPE_OFST 4 4265 #define MC_CMD_GET_PHY_CFG_OUT_TYPE_LEN 4 4266 /* Bitmask of supported capabilities */ 4267 #define MC_CMD_GET_PHY_CFG_OUT_SUPPORTED_CAP_OFST 8 4268 #define MC_CMD_GET_PHY_CFG_OUT_SUPPORTED_CAP_LEN 4 4269 #define MC_CMD_PHY_CAP_10HDX_OFST 8 4270 #define MC_CMD_PHY_CAP_10HDX_LBN 1 4271 #define MC_CMD_PHY_CAP_10HDX_WIDTH 1 4272 #define MC_CMD_PHY_CAP_10FDX_OFST 8 4273 #define MC_CMD_PHY_CAP_10FDX_LBN 2 4274 #define MC_CMD_PHY_CAP_10FDX_WIDTH 1 4275 #define MC_CMD_PHY_CAP_100HDX_OFST 8 4276 #define MC_CMD_PHY_CAP_100HDX_LBN 3 4277 #define MC_CMD_PHY_CAP_100HDX_WIDTH 1 4278 #define MC_CMD_PHY_CAP_100FDX_OFST 8 4279 #define MC_CMD_PHY_CAP_100FDX_LBN 4 4280 #define MC_CMD_PHY_CAP_100FDX_WIDTH 1 4281 #define MC_CMD_PHY_CAP_1000HDX_OFST 8 4282 #define MC_CMD_PHY_CAP_1000HDX_LBN 5 4283 #define MC_CMD_PHY_CAP_1000HDX_WIDTH 1 4284 #define MC_CMD_PHY_CAP_1000FDX_OFST 8 4285 #define MC_CMD_PHY_CAP_1000FDX_LBN 6 4286 #define MC_CMD_PHY_CAP_1000FDX_WIDTH 1 4287 #define MC_CMD_PHY_CAP_10000FDX_OFST 8 4288 #define MC_CMD_PHY_CAP_10000FDX_LBN 7 4289 #define MC_CMD_PHY_CAP_10000FDX_WIDTH 1 4290 #define MC_CMD_PHY_CAP_PAUSE_OFST 8 4291 #define MC_CMD_PHY_CAP_PAUSE_LBN 8 4292 #define MC_CMD_PHY_CAP_PAUSE_WIDTH 1 4293 #define MC_CMD_PHY_CAP_ASYM_OFST 8 4294 #define MC_CMD_PHY_CAP_ASYM_LBN 9 4295 #define MC_CMD_PHY_CAP_ASYM_WIDTH 1 4296 #define MC_CMD_PHY_CAP_AN_OFST 8 4297 #define MC_CMD_PHY_CAP_AN_LBN 10 4298 #define MC_CMD_PHY_CAP_AN_WIDTH 1 4299 #define MC_CMD_PHY_CAP_40000FDX_OFST 8 4300 #define MC_CMD_PHY_CAP_40000FDX_LBN 11 4301 #define MC_CMD_PHY_CAP_40000FDX_WIDTH 1 4302 #define MC_CMD_PHY_CAP_DDM_OFST 8 4303 #define MC_CMD_PHY_CAP_DDM_LBN 12 4304 #define MC_CMD_PHY_CAP_DDM_WIDTH 1 4305 #define MC_CMD_PHY_CAP_100000FDX_OFST 8 4306 #define MC_CMD_PHY_CAP_100000FDX_LBN 13 4307 #define MC_CMD_PHY_CAP_100000FDX_WIDTH 1 4308 #define MC_CMD_PHY_CAP_25000FDX_OFST 8 4309 #define MC_CMD_PHY_CAP_25000FDX_LBN 14 4310 #define MC_CMD_PHY_CAP_25000FDX_WIDTH 1 4311 #define MC_CMD_PHY_CAP_50000FDX_OFST 8 4312 #define MC_CMD_PHY_CAP_50000FDX_LBN 15 4313 #define MC_CMD_PHY_CAP_50000FDX_WIDTH 1 4314 #define MC_CMD_PHY_CAP_BASER_FEC_OFST 8 4315 #define MC_CMD_PHY_CAP_BASER_FEC_LBN 16 4316 #define MC_CMD_PHY_CAP_BASER_FEC_WIDTH 1 4317 #define MC_CMD_PHY_CAP_BASER_FEC_REQUESTED_OFST 8 4318 #define MC_CMD_PHY_CAP_BASER_FEC_REQUESTED_LBN 17 4319 #define MC_CMD_PHY_CAP_BASER_FEC_REQUESTED_WIDTH 1 4320 #define MC_CMD_PHY_CAP_RS_FEC_OFST 8 4321 #define MC_CMD_PHY_CAP_RS_FEC_LBN 18 4322 #define MC_CMD_PHY_CAP_RS_FEC_WIDTH 1 4323 #define MC_CMD_PHY_CAP_RS_FEC_REQUESTED_OFST 8 4324 #define MC_CMD_PHY_CAP_RS_FEC_REQUESTED_LBN 19 4325 #define MC_CMD_PHY_CAP_RS_FEC_REQUESTED_WIDTH 1 4326 #define MC_CMD_PHY_CAP_25G_BASER_FEC_OFST 8 4327 #define MC_CMD_PHY_CAP_25G_BASER_FEC_LBN 20 4328 #define MC_CMD_PHY_CAP_25G_BASER_FEC_WIDTH 1 4329 #define MC_CMD_PHY_CAP_25G_BASER_FEC_REQUESTED_OFST 8 4330 #define MC_CMD_PHY_CAP_25G_BASER_FEC_REQUESTED_LBN 21 4331 #define MC_CMD_PHY_CAP_25G_BASER_FEC_REQUESTED_WIDTH 1 4332 #define MC_CMD_PHY_CAP_200000FDX_OFST 8 4333 #define MC_CMD_PHY_CAP_200000FDX_LBN 22 4334 #define MC_CMD_PHY_CAP_200000FDX_WIDTH 1 4335 /* ?? */ 4336 #define MC_CMD_GET_PHY_CFG_OUT_CHANNEL_OFST 12 4337 #define MC_CMD_GET_PHY_CFG_OUT_CHANNEL_LEN 4 4338 /* ?? */ 4339 #define MC_CMD_GET_PHY_CFG_OUT_PRT_OFST 16 4340 #define MC_CMD_GET_PHY_CFG_OUT_PRT_LEN 4 4341 /* ?? */ 4342 #define MC_CMD_GET_PHY_CFG_OUT_STATS_MASK_OFST 20 4343 #define MC_CMD_GET_PHY_CFG_OUT_STATS_MASK_LEN 4 4344 /* ?? */ 4345 #define MC_CMD_GET_PHY_CFG_OUT_NAME_OFST 24 4346 #define MC_CMD_GET_PHY_CFG_OUT_NAME_LEN 20 4347 /* ?? */ 4348 #define MC_CMD_GET_PHY_CFG_OUT_MEDIA_TYPE_OFST 44 4349 #define MC_CMD_GET_PHY_CFG_OUT_MEDIA_TYPE_LEN 4 4350 /* enum: Xaui. */ 4351 #define MC_CMD_MEDIA_XAUI 0x1 4352 /* enum: CX4. */ 4353 #define MC_CMD_MEDIA_CX4 0x2 4354 /* enum: KX4. */ 4355 #define MC_CMD_MEDIA_KX4 0x3 4356 /* enum: XFP Far. */ 4357 #define MC_CMD_MEDIA_XFP 0x4 4358 /* enum: SFP+. */ 4359 #define MC_CMD_MEDIA_SFP_PLUS 0x5 4360 /* enum: 10GBaseT. */ 4361 #define MC_CMD_MEDIA_BASE_T 0x6 4362 /* enum: QSFP+. */ 4363 #define MC_CMD_MEDIA_QSFP_PLUS 0x7 4364 /* enum: DSFP. */ 4365 #define MC_CMD_MEDIA_DSFP 0x8 4366 #define MC_CMD_GET_PHY_CFG_OUT_MMD_MASK_OFST 48 4367 #define MC_CMD_GET_PHY_CFG_OUT_MMD_MASK_LEN 4 4368 /* enum property: bitshift */ 4369 /* enum: Native clause 22 */ 4370 #define MC_CMD_MMD_CLAUSE22 0x0 4371 #define MC_CMD_MMD_CLAUSE45_PMAPMD 0x1 /* enum */ 4372 #define MC_CMD_MMD_CLAUSE45_WIS 0x2 /* enum */ 4373 #define MC_CMD_MMD_CLAUSE45_PCS 0x3 /* enum */ 4374 #define MC_CMD_MMD_CLAUSE45_PHYXS 0x4 /* enum */ 4375 #define MC_CMD_MMD_CLAUSE45_DTEXS 0x5 /* enum */ 4376 #define MC_CMD_MMD_CLAUSE45_TC 0x6 /* enum */ 4377 #define MC_CMD_MMD_CLAUSE45_AN 0x7 /* enum */ 4378 /* enum: Clause22 proxied over clause45 by PHY. */ 4379 #define MC_CMD_MMD_CLAUSE45_C22EXT 0x1d 4380 #define MC_CMD_MMD_CLAUSE45_VEND1 0x1e /* enum */ 4381 #define MC_CMD_MMD_CLAUSE45_VEND2 0x1f /* enum */ 4382 #define MC_CMD_GET_PHY_CFG_OUT_REVISION_OFST 52 4383 #define MC_CMD_GET_PHY_CFG_OUT_REVISION_LEN 20 4384 4385 4386 /***********************************/ 4387 /* MC_CMD_START_BIST 4388 * Start a BIST test on the PHY. Locks required: PHY_LOCK if doing a PHY BIST 4389 * Return code: 0, EINVAL, EACCES (if PHY_LOCK is not held) 4390 */ 4391 #define MC_CMD_START_BIST 0x25 4392 #undef MC_CMD_0x25_PRIVILEGE_CTG 4393 4394 #define MC_CMD_0x25_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 4395 4396 /* MC_CMD_START_BIST_IN msgrequest */ 4397 #define MC_CMD_START_BIST_IN_LEN 4 4398 /* Type of test. */ 4399 #define MC_CMD_START_BIST_IN_TYPE_OFST 0 4400 #define MC_CMD_START_BIST_IN_TYPE_LEN 4 4401 /* enum: Run the PHY's short cable BIST. */ 4402 #define MC_CMD_PHY_BIST_CABLE_SHORT 0x1 4403 /* enum: Run the PHY's long cable BIST. */ 4404 #define MC_CMD_PHY_BIST_CABLE_LONG 0x2 4405 /* enum: Run BIST on the currently selected BPX Serdes (XAUI or XFI) . */ 4406 #define MC_CMD_BPX_SERDES_BIST 0x3 4407 /* enum: Run the MC loopback tests. */ 4408 #define MC_CMD_MC_LOOPBACK_BIST 0x4 4409 /* enum: Run the PHY's standard BIST. */ 4410 #define MC_CMD_PHY_BIST 0x5 4411 /* enum: Run MC RAM test. */ 4412 #define MC_CMD_MC_MEM_BIST 0x6 4413 /* enum: Run Port RAM test. */ 4414 #define MC_CMD_PORT_MEM_BIST 0x7 4415 /* enum: Run register test. */ 4416 #define MC_CMD_REG_BIST 0x8 4417 4418 /* MC_CMD_START_BIST_OUT msgresponse */ 4419 #define MC_CMD_START_BIST_OUT_LEN 0 4420 4421 4422 /***********************************/ 4423 /* MC_CMD_POLL_BIST 4424 * Poll for BIST completion. Returns a single status code, and optionally some 4425 * PHY specific bist output. The driver should only consume the BIST output 4426 * after validating OUTLEN and MC_CMD_GET_PHY_CFG.TYPE. If a driver can't 4427 * successfully parse the BIST output, it should still respect the pass/Fail in 4428 * OUT.RESULT. Locks required: PHY_LOCK if doing a PHY BIST. Return code: 0, 4429 * EACCES (if PHY_LOCK is not held). 4430 */ 4431 #define MC_CMD_POLL_BIST 0x26 4432 #undef MC_CMD_0x26_PRIVILEGE_CTG 4433 4434 #define MC_CMD_0x26_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 4435 4436 /* MC_CMD_POLL_BIST_IN msgrequest */ 4437 #define MC_CMD_POLL_BIST_IN_LEN 0 4438 4439 /* MC_CMD_POLL_BIST_OUT msgresponse */ 4440 #define MC_CMD_POLL_BIST_OUT_LEN 8 4441 /* result */ 4442 #define MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 4443 #define MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 4444 /* enum: Running. */ 4445 #define MC_CMD_POLL_BIST_RUNNING 0x1 4446 /* enum: Passed. */ 4447 #define MC_CMD_POLL_BIST_PASSED 0x2 4448 /* enum: Failed. */ 4449 #define MC_CMD_POLL_BIST_FAILED 0x3 4450 /* enum: Timed-out. */ 4451 #define MC_CMD_POLL_BIST_TIMEOUT 0x4 4452 #define MC_CMD_POLL_BIST_OUT_PRIVATE_OFST 4 4453 #define MC_CMD_POLL_BIST_OUT_PRIVATE_LEN 4 4454 4455 /* MC_CMD_POLL_BIST_OUT_SFT9001 msgresponse */ 4456 #define MC_CMD_POLL_BIST_OUT_SFT9001_LEN 36 4457 /* result */ 4458 /* MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 */ 4459 /* MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 */ 4460 /* Enum values, see field(s): */ 4461 /* MC_CMD_POLL_BIST_OUT/MC_CMD_POLL_BIST_OUT_RESULT */ 4462 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_A_OFST 4 4463 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_A_LEN 4 4464 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_B_OFST 8 4465 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_B_LEN 4 4466 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_C_OFST 12 4467 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_C_LEN 4 4468 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_D_OFST 16 4469 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_D_LEN 4 4470 /* Status of each channel A */ 4471 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_A_OFST 20 4472 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_A_LEN 4 4473 /* enum: Ok. */ 4474 #define MC_CMD_POLL_BIST_SFT9001_PAIR_OK 0x1 4475 /* enum: Open. */ 4476 #define MC_CMD_POLL_BIST_SFT9001_PAIR_OPEN 0x2 4477 /* enum: Intra-pair short. */ 4478 #define MC_CMD_POLL_BIST_SFT9001_INTRA_PAIR_SHORT 0x3 4479 /* enum: Inter-pair short. */ 4480 #define MC_CMD_POLL_BIST_SFT9001_INTER_PAIR_SHORT 0x4 4481 /* enum: Busy. */ 4482 #define MC_CMD_POLL_BIST_SFT9001_PAIR_BUSY 0x9 4483 /* Status of each channel B */ 4484 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_B_OFST 24 4485 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_B_LEN 4 4486 /* Enum values, see field(s): */ 4487 /* CABLE_STATUS_A */ 4488 /* Status of each channel C */ 4489 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_C_OFST 28 4490 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_C_LEN 4 4491 /* Enum values, see field(s): */ 4492 /* CABLE_STATUS_A */ 4493 /* Status of each channel D */ 4494 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_D_OFST 32 4495 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_D_LEN 4 4496 /* Enum values, see field(s): */ 4497 /* CABLE_STATUS_A */ 4498 4499 /* MC_CMD_POLL_BIST_OUT_MRSFP msgresponse */ 4500 #define MC_CMD_POLL_BIST_OUT_MRSFP_LEN 8 4501 /* result */ 4502 /* MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 */ 4503 /* MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 */ 4504 /* Enum values, see field(s): */ 4505 /* MC_CMD_POLL_BIST_OUT/MC_CMD_POLL_BIST_OUT_RESULT */ 4506 #define MC_CMD_POLL_BIST_OUT_MRSFP_TEST_OFST 4 4507 #define MC_CMD_POLL_BIST_OUT_MRSFP_TEST_LEN 4 4508 /* enum: Complete. */ 4509 #define MC_CMD_POLL_BIST_MRSFP_TEST_COMPLETE 0x0 4510 /* enum: Bus switch off I2C write. */ 4511 #define MC_CMD_POLL_BIST_MRSFP_TEST_BUS_SWITCH_OFF_I2C_WRITE 0x1 4512 /* enum: Bus switch off I2C no access IO exp. */ 4513 #define MC_CMD_POLL_BIST_MRSFP_TEST_BUS_SWITCH_OFF_I2C_NO_ACCESS_IO_EXP 0x2 4514 /* enum: Bus switch off I2C no access module. */ 4515 #define MC_CMD_POLL_BIST_MRSFP_TEST_BUS_SWITCH_OFF_I2C_NO_ACCESS_MODULE 0x3 4516 /* enum: IO exp I2C configure. */ 4517 #define MC_CMD_POLL_BIST_MRSFP_TEST_IO_EXP_I2C_CONFIGURE 0x4 4518 /* enum: Bus switch I2C no cross talk. */ 4519 #define MC_CMD_POLL_BIST_MRSFP_TEST_BUS_SWITCH_I2C_NO_CROSSTALK 0x5 4520 /* enum: Module presence. */ 4521 #define MC_CMD_POLL_BIST_MRSFP_TEST_MODULE_PRESENCE 0x6 4522 /* enum: Module ID I2C access. */ 4523 #define MC_CMD_POLL_BIST_MRSFP_TEST_MODULE_ID_I2C_ACCESS 0x7 4524 /* enum: Module ID sane value. */ 4525 #define MC_CMD_POLL_BIST_MRSFP_TEST_MODULE_ID_SANE_VALUE 0x8 4526 4527 /* MC_CMD_POLL_BIST_OUT_MEM msgresponse */ 4528 #define MC_CMD_POLL_BIST_OUT_MEM_LEN 36 4529 /* result */ 4530 /* MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 */ 4531 /* MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 */ 4532 /* Enum values, see field(s): */ 4533 /* MC_CMD_POLL_BIST_OUT/MC_CMD_POLL_BIST_OUT_RESULT */ 4534 #define MC_CMD_POLL_BIST_OUT_MEM_TEST_OFST 4 4535 #define MC_CMD_POLL_BIST_OUT_MEM_TEST_LEN 4 4536 /* enum: Test has completed. */ 4537 #define MC_CMD_POLL_BIST_MEM_COMPLETE 0x0 4538 /* enum: RAM test - walk ones. */ 4539 #define MC_CMD_POLL_BIST_MEM_MEM_WALK_ONES 0x1 4540 /* enum: RAM test - walk zeros. */ 4541 #define MC_CMD_POLL_BIST_MEM_MEM_WALK_ZEROS 0x2 4542 /* enum: RAM test - walking inversions zeros/ones. */ 4543 #define MC_CMD_POLL_BIST_MEM_MEM_INV_ZERO_ONE 0x3 4544 /* enum: RAM test - walking inversions checkerboard. */ 4545 #define MC_CMD_POLL_BIST_MEM_MEM_INV_CHKBOARD 0x4 4546 /* enum: Register test - set / clear individual bits. */ 4547 #define MC_CMD_POLL_BIST_MEM_REG 0x5 4548 /* enum: ECC error detected. */ 4549 #define MC_CMD_POLL_BIST_MEM_ECC 0x6 4550 /* Failure address, only valid if result is POLL_BIST_FAILED */ 4551 #define MC_CMD_POLL_BIST_OUT_MEM_ADDR_OFST 8 4552 #define MC_CMD_POLL_BIST_OUT_MEM_ADDR_LEN 4 4553 /* Bus or address space to which the failure address corresponds */ 4554 #define MC_CMD_POLL_BIST_OUT_MEM_BUS_OFST 12 4555 #define MC_CMD_POLL_BIST_OUT_MEM_BUS_LEN 4 4556 /* enum: MC MIPS bus. */ 4557 #define MC_CMD_POLL_BIST_MEM_BUS_MC 0x0 4558 /* enum: CSR IREG bus. */ 4559 #define MC_CMD_POLL_BIST_MEM_BUS_CSR 0x1 4560 /* enum: RX0 DPCPU bus. */ 4561 #define MC_CMD_POLL_BIST_MEM_BUS_DPCPU_RX 0x2 4562 /* enum: TX0 DPCPU bus. */ 4563 #define MC_CMD_POLL_BIST_MEM_BUS_DPCPU_TX0 0x3 4564 /* enum: TX1 DPCPU bus. */ 4565 #define MC_CMD_POLL_BIST_MEM_BUS_DPCPU_TX1 0x4 4566 /* enum: RX0 DICPU bus. */ 4567 #define MC_CMD_POLL_BIST_MEM_BUS_DICPU_RX 0x5 4568 /* enum: TX DICPU bus. */ 4569 #define MC_CMD_POLL_BIST_MEM_BUS_DICPU_TX 0x6 4570 /* enum: RX1 DPCPU bus. */ 4571 #define MC_CMD_POLL_BIST_MEM_BUS_DPCPU_RX1 0x7 4572 /* enum: RX1 DICPU bus. */ 4573 #define MC_CMD_POLL_BIST_MEM_BUS_DICPU_RX1 0x8 4574 /* Pattern written to RAM / register */ 4575 #define MC_CMD_POLL_BIST_OUT_MEM_EXPECT_OFST 16 4576 #define MC_CMD_POLL_BIST_OUT_MEM_EXPECT_LEN 4 4577 /* Actual value read from RAM / register */ 4578 #define MC_CMD_POLL_BIST_OUT_MEM_ACTUAL_OFST 20 4579 #define MC_CMD_POLL_BIST_OUT_MEM_ACTUAL_LEN 4 4580 /* ECC error mask */ 4581 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_OFST 24 4582 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_LEN 4 4583 /* ECC parity error mask */ 4584 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_PARITY_OFST 28 4585 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_PARITY_LEN 4 4586 /* ECC fatal error mask */ 4587 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_FATAL_OFST 32 4588 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_FATAL_LEN 4 4589 4590 4591 /***********************************/ 4592 /* MC_CMD_GET_LOOPBACK_MODES 4593 * Returns a bitmask of loopback modes available at each speed. 4594 */ 4595 #define MC_CMD_GET_LOOPBACK_MODES 0x28 4596 #undef MC_CMD_0x28_PRIVILEGE_CTG 4597 4598 #define MC_CMD_0x28_PRIVILEGE_CTG SRIOV_CTG_GENERAL 4599 4600 /* MC_CMD_GET_LOOPBACK_MODES_IN msgrequest */ 4601 #define MC_CMD_GET_LOOPBACK_MODES_IN_LEN 0 4602 4603 /* MC_CMD_GET_LOOPBACK_MODES_IN_V2 msgrequest */ 4604 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_LEN 8 4605 /* Target port to request loopback modes for. Uses MAE_LINK_ENDPOINT_SELECTOR 4606 * which identifies a real or virtual network port by MAE port and link end. 4607 * See the structure definition for more details 4608 */ 4609 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_OFST 0 4610 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LEN 8 4611 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LO_OFST 0 4612 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LO_LEN 4 4613 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LO_LBN 0 4614 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LO_WIDTH 32 4615 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_HI_OFST 4 4616 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_HI_LEN 4 4617 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_HI_LBN 32 4618 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_HI_WIDTH 32 4619 /* See structuredef: MAE_LINK_ENDPOINT_SELECTOR */ 4620 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_OFST 0 4621 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_LEN 4 4622 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FLAT_OFST 0 4623 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FLAT_LEN 4 4624 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_TYPE_OFST 3 4625 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_TYPE_LEN 1 4626 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 0 4627 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 4628 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 0 4629 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 4630 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 20 4631 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 4632 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 16 4633 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 4634 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 2 4635 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 4636 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 0 4637 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 4638 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LINK_END_OFST 4 4639 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LINK_END_LEN 4 4640 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_OFST 0 4641 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_LEN 8 4642 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_LO_OFST 0 4643 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_LO_LEN 4 4644 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_LO_LBN 0 4645 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_LO_WIDTH 32 4646 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_HI_OFST 4 4647 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_HI_LEN 4 4648 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_HI_LBN 32 4649 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_HI_WIDTH 32 4650 4651 /* MC_CMD_GET_LOOPBACK_MODES_OUT msgresponse */ 4652 #define MC_CMD_GET_LOOPBACK_MODES_OUT_LEN 40 4653 /* Supported loopbacks. */ 4654 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_OFST 0 4655 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LEN 8 4656 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_OFST 0 4657 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_LEN 4 4658 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_LBN 0 4659 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_WIDTH 32 4660 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_OFST 4 4661 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_LEN 4 4662 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_LBN 32 4663 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_WIDTH 32 4664 /* enum property: bitshift */ 4665 /* enum: None. */ 4666 #define MC_CMD_LOOPBACK_NONE 0x0 4667 /* enum: Data. */ 4668 #define MC_CMD_LOOPBACK_DATA 0x1 4669 /* enum: GMAC. */ 4670 #define MC_CMD_LOOPBACK_GMAC 0x2 4671 /* enum: XGMII. */ 4672 #define MC_CMD_LOOPBACK_XGMII 0x3 4673 /* enum: XGXS. */ 4674 #define MC_CMD_LOOPBACK_XGXS 0x4 4675 /* enum: XAUI. */ 4676 #define MC_CMD_LOOPBACK_XAUI 0x5 4677 /* enum: GMII. */ 4678 #define MC_CMD_LOOPBACK_GMII 0x6 4679 /* enum: SGMII. */ 4680 #define MC_CMD_LOOPBACK_SGMII 0x7 4681 /* enum: XGBR. */ 4682 #define MC_CMD_LOOPBACK_XGBR 0x8 4683 /* enum: XFI. */ 4684 #define MC_CMD_LOOPBACK_XFI 0x9 4685 /* enum: XAUI Far. */ 4686 #define MC_CMD_LOOPBACK_XAUI_FAR 0xa 4687 /* enum: GMII Far. */ 4688 #define MC_CMD_LOOPBACK_GMII_FAR 0xb 4689 /* enum: SGMII Far. */ 4690 #define MC_CMD_LOOPBACK_SGMII_FAR 0xc 4691 /* enum: XFI Far. */ 4692 #define MC_CMD_LOOPBACK_XFI_FAR 0xd 4693 /* enum: GPhy. */ 4694 #define MC_CMD_LOOPBACK_GPHY 0xe 4695 /* enum: PhyXS. */ 4696 #define MC_CMD_LOOPBACK_PHYXS 0xf 4697 /* enum: PCS. */ 4698 #define MC_CMD_LOOPBACK_PCS 0x10 4699 /* enum: PMA-PMD. */ 4700 #define MC_CMD_LOOPBACK_PMAPMD 0x11 4701 /* enum: Cross-Port. */ 4702 #define MC_CMD_LOOPBACK_XPORT 0x12 4703 /* enum: XGMII-Wireside. */ 4704 #define MC_CMD_LOOPBACK_XGMII_WS 0x13 4705 /* enum: XAUI Wireside. */ 4706 #define MC_CMD_LOOPBACK_XAUI_WS 0x14 4707 /* enum: XAUI Wireside Far. */ 4708 #define MC_CMD_LOOPBACK_XAUI_WS_FAR 0x15 4709 /* enum: XAUI Wireside near. */ 4710 #define MC_CMD_LOOPBACK_XAUI_WS_NEAR 0x16 4711 /* enum: GMII Wireside. */ 4712 #define MC_CMD_LOOPBACK_GMII_WS 0x17 4713 /* enum: XFI Wireside. */ 4714 #define MC_CMD_LOOPBACK_XFI_WS 0x18 4715 /* enum: XFI Wireside Far. */ 4716 #define MC_CMD_LOOPBACK_XFI_WS_FAR 0x19 4717 /* enum: PhyXS Wireside. */ 4718 #define MC_CMD_LOOPBACK_PHYXS_WS 0x1a 4719 /* enum: PMA lanes MAC-Serdes. */ 4720 #define MC_CMD_LOOPBACK_PMA_INT 0x1b 4721 /* enum: KR Serdes Parallel (Encoder). */ 4722 #define MC_CMD_LOOPBACK_SD_NEAR 0x1c 4723 /* enum: KR Serdes Serial. */ 4724 #define MC_CMD_LOOPBACK_SD_FAR 0x1d 4725 /* enum: PMA lanes MAC-Serdes Wireside. */ 4726 #define MC_CMD_LOOPBACK_PMA_INT_WS 0x1e 4727 /* enum: KR Serdes Parallel Wireside (Full PCS). */ 4728 #define MC_CMD_LOOPBACK_SD_FEP2_WS 0x1f 4729 /* enum: KR Serdes Parallel Wireside (Sym Aligner to TX). */ 4730 #define MC_CMD_LOOPBACK_SD_FEP1_5_WS 0x20 4731 /* enum: KR Serdes Parallel Wireside (Deserializer to Serializer). */ 4732 #define MC_CMD_LOOPBACK_SD_FEP_WS 0x21 4733 /* enum: KR Serdes Serial Wireside. */ 4734 #define MC_CMD_LOOPBACK_SD_FES_WS 0x22 4735 /* enum: Near side of AOE Siena side port */ 4736 #define MC_CMD_LOOPBACK_AOE_INT_NEAR 0x23 4737 /* enum: Medford Wireside datapath loopback */ 4738 #define MC_CMD_LOOPBACK_DATA_WS 0x24 4739 /* enum: Force link up without setting up any physical loopback (snapper use 4740 * only) 4741 */ 4742 #define MC_CMD_LOOPBACK_FORCE_EXT_LINK 0x25 4743 /* Supported loopbacks. */ 4744 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_OFST 8 4745 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LEN 8 4746 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_OFST 8 4747 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_LEN 4 4748 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_LBN 64 4749 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_WIDTH 32 4750 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_OFST 12 4751 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_LEN 4 4752 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_LBN 96 4753 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_WIDTH 32 4754 /* enum property: bitshift */ 4755 /* Enum values, see field(s): */ 4756 /* 100M */ 4757 /* Supported loopbacks. */ 4758 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_OFST 16 4759 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LEN 8 4760 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_OFST 16 4761 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_LEN 4 4762 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_LBN 128 4763 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_WIDTH 32 4764 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_OFST 20 4765 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_LEN 4 4766 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_LBN 160 4767 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_WIDTH 32 4768 /* enum property: bitshift */ 4769 /* Enum values, see field(s): */ 4770 /* 100M */ 4771 /* Supported loopbacks. */ 4772 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_OFST 24 4773 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LEN 8 4774 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_OFST 24 4775 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_LEN 4 4776 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_LBN 192 4777 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_WIDTH 32 4778 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_OFST 28 4779 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_LEN 4 4780 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_LBN 224 4781 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_WIDTH 32 4782 /* enum property: bitshift */ 4783 /* Enum values, see field(s): */ 4784 /* 100M */ 4785 /* Supported loopbacks. */ 4786 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_OFST 32 4787 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LEN 8 4788 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_OFST 32 4789 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_LEN 4 4790 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_LBN 256 4791 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_WIDTH 32 4792 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_OFST 36 4793 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_LEN 4 4794 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_LBN 288 4795 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_WIDTH 32 4796 /* enum property: bitshift */ 4797 /* Enum values, see field(s): */ 4798 /* 100M */ 4799 4800 /* MC_CMD_GET_LOOPBACK_MODES_OUT_V2 msgresponse: Supported loopback modes for 4801 * newer NICs with 25G/50G/100G support 4802 */ 4803 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_LEN 64 4804 /* Supported loopbacks. */ 4805 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_OFST 0 4806 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LEN 8 4807 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_OFST 0 4808 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_LEN 4 4809 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_LBN 0 4810 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_WIDTH 32 4811 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_OFST 4 4812 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_LEN 4 4813 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_LBN 32 4814 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_WIDTH 32 4815 /* enum property: bitshift */ 4816 /* enum: None. */ 4817 /* MC_CMD_LOOPBACK_NONE 0x0 */ 4818 /* enum: Data. */ 4819 /* MC_CMD_LOOPBACK_DATA 0x1 */ 4820 /* enum: GMAC. */ 4821 /* MC_CMD_LOOPBACK_GMAC 0x2 */ 4822 /* enum: XGMII. */ 4823 /* MC_CMD_LOOPBACK_XGMII 0x3 */ 4824 /* enum: XGXS. */ 4825 /* MC_CMD_LOOPBACK_XGXS 0x4 */ 4826 /* enum: XAUI. */ 4827 /* MC_CMD_LOOPBACK_XAUI 0x5 */ 4828 /* enum: GMII. */ 4829 /* MC_CMD_LOOPBACK_GMII 0x6 */ 4830 /* enum: SGMII. */ 4831 /* MC_CMD_LOOPBACK_SGMII 0x7 */ 4832 /* enum: XGBR. */ 4833 /* MC_CMD_LOOPBACK_XGBR 0x8 */ 4834 /* enum: XFI. */ 4835 /* MC_CMD_LOOPBACK_XFI 0x9 */ 4836 /* enum: XAUI Far. */ 4837 /* MC_CMD_LOOPBACK_XAUI_FAR 0xa */ 4838 /* enum: GMII Far. */ 4839 /* MC_CMD_LOOPBACK_GMII_FAR 0xb */ 4840 /* enum: SGMII Far. */ 4841 /* MC_CMD_LOOPBACK_SGMII_FAR 0xc */ 4842 /* enum: XFI Far. */ 4843 /* MC_CMD_LOOPBACK_XFI_FAR 0xd */ 4844 /* enum: GPhy. */ 4845 /* MC_CMD_LOOPBACK_GPHY 0xe */ 4846 /* enum: PhyXS. */ 4847 /* MC_CMD_LOOPBACK_PHYXS 0xf */ 4848 /* enum: PCS. */ 4849 /* MC_CMD_LOOPBACK_PCS 0x10 */ 4850 /* enum: PMA-PMD. */ 4851 /* MC_CMD_LOOPBACK_PMAPMD 0x11 */ 4852 /* enum: Cross-Port. */ 4853 /* MC_CMD_LOOPBACK_XPORT 0x12 */ 4854 /* enum: XGMII-Wireside. */ 4855 /* MC_CMD_LOOPBACK_XGMII_WS 0x13 */ 4856 /* enum: XAUI Wireside. */ 4857 /* MC_CMD_LOOPBACK_XAUI_WS 0x14 */ 4858 /* enum: XAUI Wireside Far. */ 4859 /* MC_CMD_LOOPBACK_XAUI_WS_FAR 0x15 */ 4860 /* enum: XAUI Wireside near. */ 4861 /* MC_CMD_LOOPBACK_XAUI_WS_NEAR 0x16 */ 4862 /* enum: GMII Wireside. */ 4863 /* MC_CMD_LOOPBACK_GMII_WS 0x17 */ 4864 /* enum: XFI Wireside. */ 4865 /* MC_CMD_LOOPBACK_XFI_WS 0x18 */ 4866 /* enum: XFI Wireside Far. */ 4867 /* MC_CMD_LOOPBACK_XFI_WS_FAR 0x19 */ 4868 /* enum: PhyXS Wireside. */ 4869 /* MC_CMD_LOOPBACK_PHYXS_WS 0x1a */ 4870 /* enum: PMA lanes MAC-Serdes. */ 4871 /* MC_CMD_LOOPBACK_PMA_INT 0x1b */ 4872 /* enum: KR Serdes Parallel (Encoder). */ 4873 /* MC_CMD_LOOPBACK_SD_NEAR 0x1c */ 4874 /* enum: KR Serdes Serial. */ 4875 /* MC_CMD_LOOPBACK_SD_FAR 0x1d */ 4876 /* enum: PMA lanes MAC-Serdes Wireside. */ 4877 /* MC_CMD_LOOPBACK_PMA_INT_WS 0x1e */ 4878 /* enum: KR Serdes Parallel Wireside (Full PCS). */ 4879 /* MC_CMD_LOOPBACK_SD_FEP2_WS 0x1f */ 4880 /* enum: KR Serdes Parallel Wireside (Sym Aligner to TX). */ 4881 /* MC_CMD_LOOPBACK_SD_FEP1_5_WS 0x20 */ 4882 /* enum: KR Serdes Parallel Wireside (Deserializer to Serializer). */ 4883 /* MC_CMD_LOOPBACK_SD_FEP_WS 0x21 */ 4884 /* enum: KR Serdes Serial Wireside. */ 4885 /* MC_CMD_LOOPBACK_SD_FES_WS 0x22 */ 4886 /* enum: Near side of AOE Siena side port */ 4887 /* MC_CMD_LOOPBACK_AOE_INT_NEAR 0x23 */ 4888 /* enum: Medford Wireside datapath loopback */ 4889 /* MC_CMD_LOOPBACK_DATA_WS 0x24 */ 4890 /* enum: Force link up without setting up any physical loopback (snapper use 4891 * only) 4892 */ 4893 /* MC_CMD_LOOPBACK_FORCE_EXT_LINK 0x25 */ 4894 /* Supported loopbacks. */ 4895 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_OFST 8 4896 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LEN 8 4897 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_OFST 8 4898 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_LEN 4 4899 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_LBN 64 4900 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_WIDTH 32 4901 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_OFST 12 4902 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_LEN 4 4903 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_LBN 96 4904 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_WIDTH 32 4905 /* enum property: bitshift */ 4906 /* Enum values, see field(s): */ 4907 /* 100M */ 4908 /* Supported loopbacks. */ 4909 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_OFST 16 4910 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LEN 8 4911 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_OFST 16 4912 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_LEN 4 4913 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_LBN 128 4914 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_WIDTH 32 4915 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_OFST 20 4916 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_LEN 4 4917 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_LBN 160 4918 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_WIDTH 32 4919 /* enum property: bitshift */ 4920 /* Enum values, see field(s): */ 4921 /* 100M */ 4922 /* Supported loopbacks. */ 4923 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_OFST 24 4924 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LEN 8 4925 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_OFST 24 4926 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_LEN 4 4927 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_LBN 192 4928 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_WIDTH 32 4929 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_OFST 28 4930 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_LEN 4 4931 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_LBN 224 4932 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_WIDTH 32 4933 /* enum property: bitshift */ 4934 /* Enum values, see field(s): */ 4935 /* 100M */ 4936 /* Supported loopbacks. */ 4937 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_OFST 32 4938 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LEN 8 4939 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_OFST 32 4940 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_LEN 4 4941 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_LBN 256 4942 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_WIDTH 32 4943 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_OFST 36 4944 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_LEN 4 4945 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_LBN 288 4946 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_WIDTH 32 4947 /* enum property: bitshift */ 4948 /* Enum values, see field(s): */ 4949 /* 100M */ 4950 /* Supported 25G loopbacks. */ 4951 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_OFST 40 4952 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LEN 8 4953 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_OFST 40 4954 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_LEN 4 4955 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_LBN 320 4956 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_WIDTH 32 4957 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_OFST 44 4958 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_LEN 4 4959 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_LBN 352 4960 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_WIDTH 32 4961 /* enum property: bitshift */ 4962 /* Enum values, see field(s): */ 4963 /* 100M */ 4964 /* Supported 50 loopbacks. */ 4965 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_OFST 48 4966 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LEN 8 4967 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_OFST 48 4968 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_LEN 4 4969 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_LBN 384 4970 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_WIDTH 32 4971 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_OFST 52 4972 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_LEN 4 4973 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_LBN 416 4974 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_WIDTH 32 4975 /* enum property: bitshift */ 4976 /* Enum values, see field(s): */ 4977 /* 100M */ 4978 /* Supported 100G loopbacks. */ 4979 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_OFST 56 4980 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LEN 8 4981 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_OFST 56 4982 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_LEN 4 4983 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_LBN 448 4984 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_WIDTH 32 4985 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_OFST 60 4986 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_LEN 4 4987 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_LBN 480 4988 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_WIDTH 32 4989 /* enum property: bitshift */ 4990 /* Enum values, see field(s): */ 4991 /* 100M */ 4992 4993 /* MC_CMD_GET_LOOPBACK_MODES_OUT_V3 msgresponse: Supported loopback modes for 4994 * newer NICs with 200G support 4995 */ 4996 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_LEN 72 4997 /* Supported loopbacks. */ 4998 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_OFST 0 4999 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_LEN 8 5000 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_LO_OFST 0 5001 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_LO_LEN 4 5002 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_LO_LBN 0 5003 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_LO_WIDTH 32 5004 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_HI_OFST 4 5005 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_HI_LEN 4 5006 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_HI_LBN 32 5007 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_HI_WIDTH 32 5008 /* enum property: bitshift */ 5009 /* enum: None. */ 5010 /* MC_CMD_LOOPBACK_NONE 0x0 */ 5011 /* enum: Data. */ 5012 /* MC_CMD_LOOPBACK_DATA 0x1 */ 5013 /* enum: GMAC. */ 5014 /* MC_CMD_LOOPBACK_GMAC 0x2 */ 5015 /* enum: XGMII. */ 5016 /* MC_CMD_LOOPBACK_XGMII 0x3 */ 5017 /* enum: XGXS. */ 5018 /* MC_CMD_LOOPBACK_XGXS 0x4 */ 5019 /* enum: XAUI. */ 5020 /* MC_CMD_LOOPBACK_XAUI 0x5 */ 5021 /* enum: GMII. */ 5022 /* MC_CMD_LOOPBACK_GMII 0x6 */ 5023 /* enum: SGMII. */ 5024 /* MC_CMD_LOOPBACK_SGMII 0x7 */ 5025 /* enum: XGBR. */ 5026 /* MC_CMD_LOOPBACK_XGBR 0x8 */ 5027 /* enum: XFI. */ 5028 /* MC_CMD_LOOPBACK_XFI 0x9 */ 5029 /* enum: XAUI Far. */ 5030 /* MC_CMD_LOOPBACK_XAUI_FAR 0xa */ 5031 /* enum: GMII Far. */ 5032 /* MC_CMD_LOOPBACK_GMII_FAR 0xb */ 5033 /* enum: SGMII Far. */ 5034 /* MC_CMD_LOOPBACK_SGMII_FAR 0xc */ 5035 /* enum: XFI Far. */ 5036 /* MC_CMD_LOOPBACK_XFI_FAR 0xd */ 5037 /* enum: GPhy. */ 5038 /* MC_CMD_LOOPBACK_GPHY 0xe */ 5039 /* enum: PhyXS. */ 5040 /* MC_CMD_LOOPBACK_PHYXS 0xf */ 5041 /* enum: PCS. */ 5042 /* MC_CMD_LOOPBACK_PCS 0x10 */ 5043 /* enum: PMA-PMD. */ 5044 /* MC_CMD_LOOPBACK_PMAPMD 0x11 */ 5045 /* enum: Cross-Port. */ 5046 /* MC_CMD_LOOPBACK_XPORT 0x12 */ 5047 /* enum: XGMII-Wireside. */ 5048 /* MC_CMD_LOOPBACK_XGMII_WS 0x13 */ 5049 /* enum: XAUI Wireside. */ 5050 /* MC_CMD_LOOPBACK_XAUI_WS 0x14 */ 5051 /* enum: XAUI Wireside Far. */ 5052 /* MC_CMD_LOOPBACK_XAUI_WS_FAR 0x15 */ 5053 /* enum: XAUI Wireside near. */ 5054 /* MC_CMD_LOOPBACK_XAUI_WS_NEAR 0x16 */ 5055 /* enum: GMII Wireside. */ 5056 /* MC_CMD_LOOPBACK_GMII_WS 0x17 */ 5057 /* enum: XFI Wireside. */ 5058 /* MC_CMD_LOOPBACK_XFI_WS 0x18 */ 5059 /* enum: XFI Wireside Far. */ 5060 /* MC_CMD_LOOPBACK_XFI_WS_FAR 0x19 */ 5061 /* enum: PhyXS Wireside. */ 5062 /* MC_CMD_LOOPBACK_PHYXS_WS 0x1a */ 5063 /* enum: PMA lanes MAC-Serdes. */ 5064 /* MC_CMD_LOOPBACK_PMA_INT 0x1b */ 5065 /* enum: KR Serdes Parallel (Encoder). */ 5066 /* MC_CMD_LOOPBACK_SD_NEAR 0x1c */ 5067 /* enum: KR Serdes Serial. */ 5068 /* MC_CMD_LOOPBACK_SD_FAR 0x1d */ 5069 /* enum: PMA lanes MAC-Serdes Wireside. */ 5070 /* MC_CMD_LOOPBACK_PMA_INT_WS 0x1e */ 5071 /* enum: KR Serdes Parallel Wireside (Full PCS). */ 5072 /* MC_CMD_LOOPBACK_SD_FEP2_WS 0x1f */ 5073 /* enum: KR Serdes Parallel Wireside (Sym Aligner to TX). */ 5074 /* MC_CMD_LOOPBACK_SD_FEP1_5_WS 0x20 */ 5075 /* enum: KR Serdes Parallel Wireside (Deserializer to Serializer). */ 5076 /* MC_CMD_LOOPBACK_SD_FEP_WS 0x21 */ 5077 /* enum: KR Serdes Serial Wireside. */ 5078 /* MC_CMD_LOOPBACK_SD_FES_WS 0x22 */ 5079 /* enum: Near side of AOE Siena side port */ 5080 /* MC_CMD_LOOPBACK_AOE_INT_NEAR 0x23 */ 5081 /* enum: Medford Wireside datapath loopback */ 5082 /* MC_CMD_LOOPBACK_DATA_WS 0x24 */ 5083 /* enum: Force link up without setting up any physical loopback (snapper use 5084 * only) 5085 */ 5086 /* MC_CMD_LOOPBACK_FORCE_EXT_LINK 0x25 */ 5087 /* Supported loopbacks. */ 5088 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_OFST 8 5089 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_LEN 8 5090 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_LO_OFST 8 5091 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_LO_LEN 4 5092 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_LO_LBN 64 5093 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_LO_WIDTH 32 5094 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_HI_OFST 12 5095 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_HI_LEN 4 5096 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_HI_LBN 96 5097 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_HI_WIDTH 32 5098 /* enum property: bitshift */ 5099 /* Enum values, see field(s): */ 5100 /* 100M */ 5101 /* Supported loopbacks. */ 5102 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_OFST 16 5103 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_LEN 8 5104 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_LO_OFST 16 5105 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_LO_LEN 4 5106 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_LO_LBN 128 5107 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_LO_WIDTH 32 5108 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_HI_OFST 20 5109 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_HI_LEN 4 5110 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_HI_LBN 160 5111 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_HI_WIDTH 32 5112 /* enum property: bitshift */ 5113 /* Enum values, see field(s): */ 5114 /* 100M */ 5115 /* Supported loopbacks. */ 5116 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_OFST 24 5117 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_LEN 8 5118 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_LO_OFST 24 5119 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_LO_LEN 4 5120 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_LO_LBN 192 5121 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_LO_WIDTH 32 5122 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_HI_OFST 28 5123 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_HI_LEN 4 5124 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_HI_LBN 224 5125 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_HI_WIDTH 32 5126 /* enum property: bitshift */ 5127 /* Enum values, see field(s): */ 5128 /* 100M */ 5129 /* Supported loopbacks. */ 5130 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_OFST 32 5131 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_LEN 8 5132 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_LO_OFST 32 5133 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_LO_LEN 4 5134 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_LO_LBN 256 5135 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_LO_WIDTH 32 5136 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_HI_OFST 36 5137 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_HI_LEN 4 5138 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_HI_LBN 288 5139 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_HI_WIDTH 32 5140 /* enum property: bitshift */ 5141 /* Enum values, see field(s): */ 5142 /* 100M */ 5143 /* Supported 25G loopbacks. */ 5144 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_OFST 40 5145 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_LEN 8 5146 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_LO_OFST 40 5147 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_LO_LEN 4 5148 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_LO_LBN 320 5149 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_LO_WIDTH 32 5150 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_HI_OFST 44 5151 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_HI_LEN 4 5152 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_HI_LBN 352 5153 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_HI_WIDTH 32 5154 /* enum property: bitshift */ 5155 /* Enum values, see field(s): */ 5156 /* 100M */ 5157 /* Supported 50 loopbacks. */ 5158 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_OFST 48 5159 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_LEN 8 5160 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_LO_OFST 48 5161 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_LO_LEN 4 5162 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_LO_LBN 384 5163 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_LO_WIDTH 32 5164 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_HI_OFST 52 5165 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_HI_LEN 4 5166 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_HI_LBN 416 5167 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_HI_WIDTH 32 5168 /* enum property: bitshift */ 5169 /* Enum values, see field(s): */ 5170 /* 100M */ 5171 /* Supported 100G loopbacks. */ 5172 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_OFST 56 5173 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_LEN 8 5174 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_LO_OFST 56 5175 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_LO_LEN 4 5176 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_LO_LBN 448 5177 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_LO_WIDTH 32 5178 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_HI_OFST 60 5179 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_HI_LEN 4 5180 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_HI_LBN 480 5181 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_HI_WIDTH 32 5182 /* enum property: bitshift */ 5183 /* Enum values, see field(s): */ 5184 /* 100M */ 5185 /* Supported 200G loopbacks. */ 5186 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_OFST 64 5187 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_LEN 8 5188 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_LO_OFST 64 5189 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_LO_LEN 4 5190 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_LO_LBN 512 5191 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_LO_WIDTH 32 5192 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_HI_OFST 68 5193 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_HI_LEN 4 5194 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_HI_LBN 544 5195 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_HI_WIDTH 32 5196 /* enum property: bitshift */ 5197 /* Enum values, see field(s): */ 5198 /* 100M */ 5199 5200 /* AN_TYPE structuredef: Auto-negotiation types defined in IEEE802.3 */ 5201 #define AN_TYPE_LEN 4 5202 #define AN_TYPE_TYPE_OFST 0 5203 #define AN_TYPE_TYPE_LEN 4 5204 /* enum: None, AN disabled or not supported */ 5205 #define MC_CMD_AN_NONE 0x0 5206 /* enum: Clause 28 - BASE-T */ 5207 #define MC_CMD_AN_CLAUSE28 0x1 5208 /* enum: Clause 37 - BASE-X */ 5209 #define MC_CMD_AN_CLAUSE37 0x2 5210 /* enum: Clause 73 - BASE-R startup protocol for backplane and copper cable 5211 * assemblies. Includes Clause 72/Clause 92 link-training. 5212 */ 5213 #define MC_CMD_AN_CLAUSE73 0x3 5214 #define AN_TYPE_TYPE_LBN 0 5215 #define AN_TYPE_TYPE_WIDTH 32 5216 5217 /* FEC_TYPE structuredef: Forward error correction types defined in IEEE802.3 5218 */ 5219 #define FEC_TYPE_LEN 4 5220 #define FEC_TYPE_TYPE_OFST 0 5221 #define FEC_TYPE_TYPE_LEN 4 5222 /* enum: No FEC */ 5223 #define MC_CMD_FEC_NONE 0x0 5224 /* enum: IEEE 802.3, Clause 74 BASE-R FEC (a.k.a Firecode) */ 5225 #define MC_CMD_FEC_BASER 0x1 5226 /* enum: IEEE 802.3, Clause 91/Clause 108 Reed-Solomon FEC */ 5227 #define MC_CMD_FEC_RS 0x2 5228 /* enum: IEEE 802.3, Clause 161, interleaved RS-FEC sublayer for 100GBASE-R 5229 * PHYs 5230 */ 5231 #define MC_CMD_FEC_IEEE_RS_INT 0x3 5232 /* enum: Ethernet Consortium, Low Latency RS-FEC. RS(272, 258). Replaces FEC 5233 * specified in Clause 119 for 100/200G PHY. Replaces FEC specified in Clause 5234 * 134 for 50G PHY. 5235 */ 5236 #define MC_CMD_FEC_ETCS_RS_LL 0x4 5237 /* enum: FEC mode selected automatically */ 5238 #define MC_CMD_FEC_AUTO 0x5 5239 #define FEC_TYPE_TYPE_LBN 0 5240 #define FEC_TYPE_TYPE_WIDTH 32 5241 5242 /* MC_CMD_ETH_TECH structuredef: Ethernet technology as defined by IEEE802.3, 5243 * Ethernet Technology Consortium, proprietary technologies. The driver must 5244 * not use technologies labelled NONE and AUTO. 5245 */ 5246 #define MC_CMD_ETH_TECH_LEN 16 5247 /* The enums in this field can be used either as bitwise indices into a tech 5248 * mask (e.g. see MC_CMD_ETH_AN_FIELDS/TECH_MASK for example) or as regular 5249 * enums (e.g. see MC_CMD_LINK_CTRL_IN/ADVERTISED_TECH_ABILITIES_MASK). This 5250 * structure must be updated to add new technologies when projects that need 5251 * them arise. An incomplete list of possible expansion in the future include: 5252 * 100GBASE_KP4, 800GBASE_CR8, 800GBASE_KR8, 800GBASE_DR8, 800GBASE_SR8 5253 * 800GBASE_VR8 5254 */ 5255 #define MC_CMD_ETH_TECH_TECH_OFST 0 5256 #define MC_CMD_ETH_TECH_TECH_LEN 16 5257 /* enum: 1000BASE-KX - 1000BASE-X PCS/PMA over an electrical backplane PMD. See 5258 * IEEE 802.3 Clause 70 5259 */ 5260 #define MC_CMD_ETH_TECH_1000BASEKX 0x0 5261 /* enum: 10GBASE-R - PCS/PMA over an electrical backplane PMD. Refer to IEEE 5262 * 802.3 Clause 72 5263 */ 5264 #define MC_CMD_ETH_TECH_10GBASE_KR 0x1 5265 /* enum: 40GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3 5266 * Clause 84. 5267 */ 5268 #define MC_CMD_ETH_TECH_40GBASE_KR4 0x2 5269 /* enum: 40GBASE-R PCS/PMA over 4 lane shielded copper balanced cable PMD. See 5270 * IEEE 802.3 Clause 85 5271 */ 5272 #define MC_CMD_ETH_TECH_40GBASE_CR4 0x3 5273 /* enum: 40GBASE-R PCS/PMA over 4 lane multimode fiber PMD as specified in 5274 * Clause 86 5275 */ 5276 #define MC_CMD_ETH_TECH_40GBASE_SR4 0x4 5277 /* enum: 40GBASE-R PCS/PMA over 4 WDM lane single mode fiber PMD with long 5278 * reach. See IEEE 802.3 Clause 87 5279 */ 5280 #define MC_CMD_ETH_TECH_40GBASE_LR4 0x5 5281 /* enum: 25GBASE-R PCS/PMA over shielded balanced copper cable PMD. See IEEE 5282 * 802.3 Clause 110 5283 */ 5284 #define MC_CMD_ETH_TECH_25GBASE_CR 0x6 5285 /* enum: 25GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3 5286 * Clause 111 5287 */ 5288 #define MC_CMD_ETH_TECH_25GBASE_KR 0x7 5289 /* enum: 25GBASE-R PCS/PMA over multimode fiber PMD. Refer to IEEE 802.3 Clause 5290 * 112 5291 */ 5292 #define MC_CMD_ETH_TECH_25GBASE_SR 0x8 5293 /* enum: An Ethernet Physical layer operating at 50 Gb/s on twin-axial copper 5294 * cable. Refer to Ethernet Technology Consortium 25/50G Ethernet Spec. 5295 */ 5296 #define MC_CMD_ETH_TECH_50GBASE_CR2 0x9 5297 /* enum: An Ethernet Physical layer operating at 50 Gb/s on copper backplane. 5298 * Refer to Ethernet Technology Consortium 25/50G Ethernet Spec. 5299 */ 5300 #define MC_CMD_ETH_TECH_50GBASE_KR2 0xa 5301 /* enum: 100GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3 5302 * Clause 93 5303 */ 5304 #define MC_CMD_ETH_TECH_100GBASE_KR4 0xb 5305 /* enum: 100GBASE-R PCS/PMA over 4 lane multimode fiber PMD. See IEEE 802.3 5306 * Clause 95 5307 */ 5308 #define MC_CMD_ETH_TECH_100GBASE_SR4 0xc 5309 /* enum: 100GBASE-R PCS/PMA over 4 lane shielded copper balanced cable PMD. See 5310 * IEEE 802.3 Clause 92 5311 */ 5312 #define MC_CMD_ETH_TECH_100GBASE_CR4 0xd 5313 /* enum: 100GBASE-R PCS/PMA over 4 WDM lane single mode fiber PMD, with 5314 * long/extended reach,. See IEEE 802.3 Clause 88 5315 */ 5316 #define MC_CMD_ETH_TECH_100GBASE_LR4_ER4 0xe 5317 /* enum: An Ethernet Physical layer operating at 50 Gb/s on short reach fiber. 5318 * Refer to Ethernet Technology Consortium 25/50G Ethernet Spec. 5319 */ 5320 #define MC_CMD_ETH_TECH_50GBASE_SR2 0xf 5321 /* enum: 1000BASEX PCS/PMA. See IEEE 802.3 Clause 36 over undefined PMD, duplex 5322 * mode unknown 5323 */ 5324 #define MC_CMD_ETH_TECH_1000BASEX 0x10 5325 /* enum: Non-standardised. 10G direct attach */ 5326 #define MC_CMD_ETH_TECH_10GBASE_CR 0x11 5327 /* enum: 10GBASE-SR fiber over 850nm optics. See IEEE 802.3 Clause 52 */ 5328 #define MC_CMD_ETH_TECH_10GBASE_SR 0x12 5329 /* enum: 10GBASE-LR fiber over 1310nm optics. See IEEE 802.3 Clause 52 */ 5330 #define MC_CMD_ETH_TECH_10GBASE_LR 0x13 5331 /* enum: 10GBASE-LRM fiber over 1310 nm optics. See IEEE 802.3 Clause 68 */ 5332 #define MC_CMD_ETH_TECH_10GBASE_LRM 0x14 5333 /* enum: 10GBASE-ER fiber over 1550nm optics. See IEEE 802.3 Clause 52 */ 5334 #define MC_CMD_ETH_TECH_10GBASE_ER 0x15 5335 /* enum: 50GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3 5336 * Clause 137 5337 */ 5338 #define MC_CMD_ETH_TECH_50GBASE_KR 0x16 5339 /* enum: 50GBASE-SR PCS/PMA over multimode fiber PMD as specified in Clause 138 5340 */ 5341 #define MC_CMD_ETH_TECH_50GBASE_SR 0x17 5342 /* enum: 50GBASE-CR PCS/PMA over shielded copper balanced cable PMD. See IEEE 5343 * 802.3 Clause 136 5344 */ 5345 #define MC_CMD_ETH_TECH_50GBASE_CR 0x18 5346 /* enum: 50GBASE-R PCS/PMA over single mode fiber PMD as specified in Clause 5347 * 139. 5348 */ 5349 #define MC_CMD_ETH_TECH_50GBASE_LR_ER_FR 0x19 5350 /* enum: 100 Gb/s PHY using 100GBASE-R encoding over single-mode fiber with 5351 * reach up to at least 500 m (see IEEE 802.3 Clause 140) 5352 */ 5353 #define MC_CMD_ETH_TECH_50GBASE_DR 0x1a 5354 /* enum: 100GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3 5355 * Clause 137 5356 */ 5357 #define MC_CMD_ETH_TECH_100GBASE_KR2 0x1b 5358 /* enum: 100GBASE-R PCS/PMA over 2 lane multimode fiber PMD. See IEEE 802.3 5359 * Clause 138 5360 */ 5361 #define MC_CMD_ETH_TECH_100GBASE_SR2 0x1c 5362 /* enum: 100GBASE-R PCS/PMA over 2 lane shielded copper balanced cable PMD. See 5363 * IEEE 802.3 Clause 136 5364 */ 5365 #define MC_CMD_ETH_TECH_100GBASE_CR2 0x1d 5366 /* enum: Unknown source */ 5367 #define MC_CMD_ETH_TECH_100GBASE_LR2_ER2_FR2 0x1e 5368 /* enum: Unknown source */ 5369 #define MC_CMD_ETH_TECH_100GBASE_DR2 0x1f 5370 /* enum: 200GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3 5371 * Clause 137 5372 */ 5373 #define MC_CMD_ETH_TECH_200GBASE_KR4 0x20 5374 /* enum: 200GBASE-R PCS/PMA over 4 lane multimode fiber PMD. See IEEE 802.3 5375 * Clause 138 5376 */ 5377 #define MC_CMD_ETH_TECH_200GBASE_SR4 0x21 5378 /* enum: 200GBASE-R PCS/PMA over 4 WDM lane single-mode fiber PMD as specified 5379 * in Clause 122 5380 */ 5381 #define MC_CMD_ETH_TECH_200GBASE_LR4_ER4_FR4 0x22 5382 /* enum: 200GBASE-R PCS/PMA over 4-lane single-mode fiber PMD. See IEEE 802.3 5383 * Clause 121 5384 */ 5385 #define MC_CMD_ETH_TECH_200GBASE_DR4 0x23 5386 /* enum: 200GBASE-R PCS/PMA over 4 lane shielded copper balanced cable PMD as 5387 * specified in Clause 136 5388 */ 5389 #define MC_CMD_ETH_TECH_200GBASE_CR4 0x24 5390 /* enum: Ethernet Technology Consortium 400G AN Spec. 400GBASE-KR8 PMD uses 5391 * 802.3 Clause 137, but the number PMD lanes is 8. 5392 */ 5393 #define MC_CMD_ETH_TECH_400GBASE_KR8 0x25 5394 /* enum: 400GBASE-R PCS/PMA over 8-lane multimode fiber PMD. See IEEE 802.3 5395 * Clause 138 5396 */ 5397 #define MC_CMD_ETH_TECH_400GBASE_SR8 0x26 5398 /* enum: 400GBASE-R PCS/PMA over 8 WDM lane single-mode fiber PMD. See IEEE 5399 * 802.3 Clause 122 5400 */ 5401 #define MC_CMD_ETH_TECH_400GBASE_LR8_ER8_FR8 0x27 5402 /* enum: Unknown source */ 5403 #define MC_CMD_ETH_TECH_400GBASE_DR8 0x28 5404 /* enum: Ethernet Technology Consortium 400G AN Spec. 400GBASE-CR8 PMD uses 5405 * IEEE 802.3 Clause 136, but the number PMD lanes is 8. 5406 */ 5407 #define MC_CMD_ETH_TECH_400GBASE_CR8 0x29 5408 /* enum: 100GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3ck 5409 * Clause 163. 5410 */ 5411 #define MC_CMD_ETH_TECH_100GBASE_KR 0x2a 5412 /* enum: IEEE 802.3ck. 100G PHY with PMD as specified in Clause 167 over short 5413 * reach fiber 5414 */ 5415 #define MC_CMD_ETH_TECH_100GBASE_SR 0x2b 5416 /* enum: 100G PMD together with single-mode fiber medium. See IEEE 802.3 Clause 5417 * 140 5418 */ 5419 #define MC_CMD_ETH_TECH_100GBASE_LR_ER_FR 0x2c 5420 /* enum: 100GBASE-R PCS/PMA over shielded balanced copper cable PMD. See IEEE 5421 * 802.3 in Clause 162 IEEE 802.3ck. 5422 */ 5423 #define MC_CMD_ETH_TECH_100GBASE_CR 0x2d 5424 /* enum: 100G PMD together with single-mode fiber medium. See IEEE 802.3 Clause 5425 * 140 5426 */ 5427 #define MC_CMD_ETH_TECH_100GBASE_DR 0x2e 5428 /* enum: 200GBASE-R PCS/PMA over an electrical backplane PMD as specified in 5429 * Clause 163 IEEE 802.3ck 5430 */ 5431 #define MC_CMD_ETH_TECH_200GBASE_KR2 0x2f 5432 /* enum: 200G PHY with PMD as specified in Clause 167 over short reach fiber 5433 * IEEE 802.3ck 5434 */ 5435 #define MC_CMD_ETH_TECH_200GBASE_SR2 0x30 5436 /* enum: Unknown source */ 5437 #define MC_CMD_ETH_TECH_200GBASE_LR2_ER2_FR2 0x31 5438 /* enum: Unknown source */ 5439 #define MC_CMD_ETH_TECH_200GBASE_DR2 0x32 5440 /* enum: 200GBASE-R PCS/PMA over 2 lane shielded balanced copper cable PMD as 5441 * specified in Clause 162 IEEE 802.3ck. 5442 */ 5443 #define MC_CMD_ETH_TECH_200GBASE_CR2 0x33 5444 /* enum: 400GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3 5445 * Clause 163 IEEE 802.3ck. 5446 */ 5447 #define MC_CMD_ETH_TECH_400GBASE_KR4 0x34 5448 /* enum: 400G PHY with PMD over short reach fiber. See Clause 167 of IEEE 5449 * 802.3ck. 5450 */ 5451 #define MC_CMD_ETH_TECH_400GBASE_SR4 0x35 5452 /* enum: 400GBASE-R PCS/PMA over 4 WDM lane single-mode fiber PMD. See IEEE 5453 * 802.3 Clause 151 5454 */ 5455 #define MC_CMD_ETH_TECH_400GBASE_LR4_ER4_FR4 0x36 5456 /* enum: 400GBASE-R PCS/PMA over 4-lane single-mode fiber PMD as specified in 5457 * Clause 124 5458 */ 5459 #define MC_CMD_ETH_TECH_400GBASE_DR4 0x37 5460 /* enum: 400GBASE-R PCS/PMA over 4 lane shielded balanced copper cable PMD as 5461 * specified in Clause 162 of IEEE 802.3ck. 5462 */ 5463 #define MC_CMD_ETH_TECH_400GBASE_CR4 0x38 5464 /* enum: Automatic tech mode. The driver must not use this. */ 5465 #define MC_CMD_ETH_TECH_AUTO 0x39 5466 /* enum: See IEEE 802.3cc-2017 Clause 114 */ 5467 #define MC_CMD_ETH_TECH_25GBASE_LR_ER 0x3a 5468 /* enum: Up to 7 m over twinaxial copper cable assembly (10 lanes, 10 Gbit/s 5469 * each) See IEEE 802.3ba-2010 Clause 85 5470 */ 5471 #define MC_CMD_ETH_TECH_100GBASE_CR10 0x3b 5472 /* enum: Invalid tech mode. The driver must not use this. */ 5473 #define MC_CMD_ETH_TECH_NONE 0x7f 5474 #define MC_CMD_ETH_TECH_TECH_LBN 0 5475 #define MC_CMD_ETH_TECH_TECH_WIDTH 128 5476 5477 /* MC_CMD_LINK_STATUS_FLAGS structuredef */ 5478 #define MC_CMD_LINK_STATUS_FLAGS_LEN 8 5479 /* Flags used to report the current configuration/state of the link. */ 5480 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_OFST 0 5481 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_LEN 8 5482 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_LO_OFST 0 5483 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_LO_LEN 4 5484 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_LO_LBN 0 5485 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_LO_WIDTH 32 5486 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_HI_OFST 4 5487 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_HI_LEN 4 5488 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_HI_LBN 32 5489 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_HI_WIDTH 32 5490 /* enum property: bitshift */ 5491 /* enum: Whether we have overall link up */ 5492 #define MC_CMD_LINK_STATUS_FLAGS_LINK_UP 0x0 5493 /* enum: If set, the PHY has no external RX link synchronisation */ 5494 #define MC_CMD_LINK_STATUS_FLAGS_NO_PHY_LINK 0x1 5495 /* enum: If set, PMD/MDI is not connected (e.g. cable disconnected, module cage 5496 * empty) 5497 */ 5498 #define MC_CMD_LINK_STATUS_FLAGS_PMD_MDI_DISCONNECTED 0x2 5499 /* enum: Set on error while decoding module data (e.g. module EEPROM does not 5500 * contain valid values, has checksum errors, etc.) 5501 */ 5502 #define MC_CMD_LINK_STATUS_FLAGS_PMD_BAD 0x3 5503 /* enum: Set when module unsupported (e.g. unsupported link rate or link 5504 * technology) 5505 */ 5506 #define MC_CMD_LINK_STATUS_FLAGS_PMD_UNSUPPORTED 0x4 5507 /* enum: Set on error while communicating with the module (e.g. I2C errors 5508 * while reading EEPROM) 5509 */ 5510 #define MC_CMD_LINK_STATUS_FLAGS_PMD_COMMS_FAULT 0x5 5511 /* enum: Set on module overcurrent/overvoltage condition */ 5512 #define MC_CMD_LINK_STATUS_FLAGS_PMD_POWER_FAULT 0x6 5513 /* enum: Set on module overtemperature condition */ 5514 #define MC_CMD_LINK_STATUS_FLAGS_PMD_THERMAL_FAULT 0x7 5515 /* enum: If set, the module is indicating Loss of Signal */ 5516 #define MC_CMD_LINK_STATUS_FLAGS_PMD_LOS 0x8 5517 /* enum: If set, PMA is indicating loss of CDR lock (clock sync) */ 5518 #define MC_CMD_LINK_STATUS_FLAGS_PMA_NO_CDR_LOCK 0x9 5519 /* enum: If set, PMA is indicating loss of analog signal */ 5520 #define MC_CMD_LINK_STATUS_FLAGS_PMA_LOS 0xa 5521 /* enum: If set, PCS is indicating loss of block lock */ 5522 #define MC_CMD_LINK_STATUS_FLAGS_PCS_NO_BLOCK_LOCK 0xb 5523 /* enum: If set, PCS is indicating loss of alignment marker lock on one or more 5524 * lanes 5525 */ 5526 #define MC_CMD_LINK_STATUS_FLAGS_PCS_NO_AM_LOCK 0xc 5527 /* enum: If set, PCS is indicating loss of overall alignment lock */ 5528 #define MC_CMD_LINK_STATUS_FLAGS_PCS_NO_ALIGN_LOCK 0xd 5529 /* enum: If set, PCS is indicating high bit error rate condition. */ 5530 #define MC_CMD_LINK_STATUS_FLAGS_PCS_HI_BER 0xe 5531 /* enum: If set, FEC is indicating loss of FEC lock */ 5532 #define MC_CMD_LINK_STATUS_FLAGS_FEC_NO_LOCK 0xf 5533 /* enum: If set, indicates that the number of symbol errors in a 8192-codeword 5534 * window has exceeded the threshold K (417). 5535 */ 5536 #define MC_CMD_LINK_STATUS_FLAGS_FEC_HI_SER 0x10 5537 /* enum: If set, the receiver has detected the local FEC has degraded. */ 5538 #define MC_CMD_LINK_STATUS_FLAGS_FEC_LOCAL_DEGRADED 0x11 5539 /* enum: If set, the receiver has detected the remote FEC has degraded. */ 5540 #define MC_CMD_LINK_STATUS_FLAGS_FEC_RM_DEGRADED 0x12 5541 /* enum: If set, the number of symbol errors is over an internal threshold. */ 5542 #define MC_CMD_LINK_STATUS_FLAGS_FEC_DEGRADED_SER 0x13 5543 /* enum: If set, autonegotiation has detected an auto-negotiation capable link 5544 * partner 5545 */ 5546 #define MC_CMD_LINK_STATUS_FLAGS_AN_ABLE 0x14 5547 /* enum: If set, autonegotiation base page exchange has failed */ 5548 #define MC_CMD_LINK_STATUS_FLAGS_AN_BP_FAILED 0x15 5549 /* enum: If set, autonegotiation next page exchange has failed */ 5550 #define MC_CMD_LINK_STATUS_FLAGS_AN_NP_FAILED 0x16 5551 /* enum: If set, autonegotiation has failed to negotiate a common set of 5552 * capabilities 5553 */ 5554 #define MC_CMD_LINK_STATUS_FLAGS_AN_NO_HCD 0x17 5555 /* enum: If set, local end link training has failed to establish link training 5556 * frame lock on one or more lanes 5557 */ 5558 #define MC_CMD_LINK_STATUS_FLAGS_LT_NO_LOCAL_FRAME_LOCK 0x18 5559 /* enum: If set, remote end link training has failed to establish link training 5560 * frame lock on one or more lanes 5561 */ 5562 #define MC_CMD_LINK_STATUS_FLAGS_LT_NO_RM_FRAME_LOCK 0x19 5563 /* enum: If set, remote end has failed to assert Receiver Ready (link training 5564 * success) within the designated timeout 5565 */ 5566 #define MC_CMD_LINK_STATUS_FLAGS_LT_NO_RX_READY 0x1a 5567 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_LBN 0 5568 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_WIDTH 64 5569 5570 /* MC_CMD_PAUSE_MODE structuredef */ 5571 #define MC_CMD_PAUSE_MODE_LEN 1 5572 #define MC_CMD_PAUSE_MODE_TYPE_OFST 0 5573 #define MC_CMD_PAUSE_MODE_TYPE_LEN 1 5574 /* enum: See IEEE 802.3 Clause 73.6.6 */ 5575 #define MC_CMD_PAUSE_MODE_AN_PAUSE 0x0 5576 /* enum: See IEEE 802.3 Clause 73.6.6 */ 5577 #define MC_CMD_PAUSE_MODE_AN_ASYM_DIR 0x1 5578 #define MC_CMD_PAUSE_MODE_TYPE_LBN 0 5579 #define MC_CMD_PAUSE_MODE_TYPE_WIDTH 8 5580 5581 /* MC_CMD_ETH_AN_FIELDS structuredef: Fields used for IEEE 802.3 Clause 73 5582 * Auto-Negotiation. Warning - This is fixed size and cannot be extended. This 5583 * structure is used to define autonegotiable abilities (advertised, link 5584 * partner and supported abilities). 5585 */ 5586 #define MC_CMD_ETH_AN_FIELDS_LEN 25 5587 /* Mask of Ethernet technologies. The bit indices in this mask are taken from 5588 * the TECH field in the MC_CMD_ETH_TECH structure. 5589 */ 5590 #define MC_CMD_ETH_AN_FIELDS_TECH_MASK_OFST 0 5591 #define MC_CMD_ETH_AN_FIELDS_TECH_MASK_LEN 16 5592 /* enum property: bitshift */ 5593 /* Enum values, see field(s): */ 5594 /* MC_CMD_ETH_TECH/TECH */ 5595 #define MC_CMD_ETH_AN_FIELDS_TECH_MASK_LBN 0 5596 #define MC_CMD_ETH_AN_FIELDS_TECH_MASK_WIDTH 128 5597 /* Mask of supported FEC modes */ 5598 #define MC_CMD_ETH_AN_FIELDS_FEC_MASK_OFST 16 5599 #define MC_CMD_ETH_AN_FIELDS_FEC_MASK_LEN 4 5600 /* enum property: bitshift */ 5601 /* Enum values, see field(s): */ 5602 /* FEC_TYPE/TYPE */ 5603 #define MC_CMD_ETH_AN_FIELDS_FEC_MASK_LBN 128 5604 #define MC_CMD_ETH_AN_FIELDS_FEC_MASK_WIDTH 32 5605 /* Mask of requested FEC modes */ 5606 #define MC_CMD_ETH_AN_FIELDS_FEC_REQ_OFST 20 5607 #define MC_CMD_ETH_AN_FIELDS_FEC_REQ_LEN 4 5608 /* enum property: bitshift */ 5609 /* Enum values, see field(s): */ 5610 /* FEC_TYPE/TYPE */ 5611 #define MC_CMD_ETH_AN_FIELDS_FEC_REQ_LBN 160 5612 #define MC_CMD_ETH_AN_FIELDS_FEC_REQ_WIDTH 32 5613 /* Bitmask of negotiated pause modes */ 5614 #define MC_CMD_ETH_AN_FIELDS_PAUSE_MASK_OFST 24 5615 #define MC_CMD_ETH_AN_FIELDS_PAUSE_MASK_LEN 1 5616 /* enum property: bitshift */ 5617 /* Enum values, see field(s): */ 5618 /* MC_CMD_PAUSE_MODE/TYPE */ 5619 #define MC_CMD_ETH_AN_FIELDS_PAUSE_MASK_LBN 192 5620 #define MC_CMD_ETH_AN_FIELDS_PAUSE_MASK_WIDTH 8 5621 5622 /* MC_CMD_LOOPBACK_V2 structuredef: Loopback modes for use with the new 5623 * MC_CMD_LINK_CTRL and MC_CMD_LINK_STATE. These loopback modes are not 5624 * supported in other getlink/setlink commands. 5625 */ 5626 #define MC_CMD_LOOPBACK_V2_LEN 4 5627 #define MC_CMD_LOOPBACK_V2_MODE_OFST 0 5628 #define MC_CMD_LOOPBACK_V2_MODE_LEN 4 5629 /* enum: No loopback */ 5630 #define MC_CMD_LOOPBACK_V2_NONE 0x0 5631 /* enum: Let firmware choose a supported loopback mode */ 5632 #define MC_CMD_LOOPBACK_V2_AUTO 0x1 5633 /* enum: Loopback after the MAC */ 5634 #define MC_CMD_LOOPBACK_V2_POST_MAC 0x2 5635 /* enum: Loopback after the PCS */ 5636 #define MC_CMD_LOOPBACK_V2_POST_PCS 0x3 5637 /* enum: Loopback after the PMA */ 5638 #define MC_CMD_LOOPBACK_V2_POST_PMA 0x4 5639 /* enum: Loopback after the MDI Wireside */ 5640 #define MC_CMD_LOOPBACK_V2_POST_MDI_WS 0x5 5641 /* enum: Loopback after the PMA Wireside */ 5642 #define MC_CMD_LOOPBACK_V2_POST_PMA_WS 0x6 5643 /* enum: Loopback after the PCS Wireside */ 5644 #define MC_CMD_LOOPBACK_V2_POST_PCS_WS 0x7 5645 /* enum: Loopback after the MAC Wireside */ 5646 #define MC_CMD_LOOPBACK_V2_POST_MAC_WS 0x8 5647 /* enum: Loopback after the MAC FIFOs (before the MAC) */ 5648 #define MC_CMD_LOOPBACK_V2_PRE_MAC 0x9 5649 #define MC_CMD_LOOPBACK_V2_MODE_LBN 0 5650 #define MC_CMD_LOOPBACK_V2_MODE_WIDTH 32 5651 5652 /* MC_CMD_FCNTL structuredef */ 5653 #define MC_CMD_FCNTL_LEN 4 5654 #define MC_CMD_FCNTL_MASK_OFST 0 5655 #define MC_CMD_FCNTL_MASK_LEN 4 5656 /* enum: Flow control is off. */ 5657 #define MC_CMD_FCNTL_OFF 0x0 5658 /* enum: Respond to flow control. */ 5659 #define MC_CMD_FCNTL_RESPOND 0x1 5660 /* enum: Respond to and Issue flow control. */ 5661 #define MC_CMD_FCNTL_BIDIR 0x2 5662 /* enum: Auto negotiate flow control. */ 5663 #define MC_CMD_FCNTL_AUTO 0x3 5664 /* enum: Priority flow control. This is only supported on KSB. */ 5665 #define MC_CMD_FCNTL_QBB 0x4 5666 /* enum: Issue flow control. */ 5667 #define MC_CMD_FCNTL_GENERATE 0x5 5668 #define MC_CMD_FCNTL_MASK_LBN 0 5669 #define MC_CMD_FCNTL_MASK_WIDTH 32 5670 5671 /* MC_CMD_LINK_FLAGS structuredef */ 5672 #define MC_CMD_LINK_FLAGS_LEN 4 5673 /* The enums defined in this field are used as indices into the 5674 * MC_CMD_LINK_FLAGS bitmask. 5675 */ 5676 #define MC_CMD_LINK_FLAGS_MASK_OFST 0 5677 #define MC_CMD_LINK_FLAGS_MASK_LEN 4 5678 /* enum property: bitshift */ 5679 /* enum: Enable auto-negotiation. If AN is enabled, link technology and FEC 5680 * mode are determined by advertised capabilities and requested FEC modes, 5681 * combined with link partner capabilities. If AN is disabled, link technology 5682 * is forced to LINK_TECHNOLOGY and FEC mode is forced to FEC_MODE. Not valid 5683 * if loopback is enabled 5684 */ 5685 #define MC_CMD_LINK_FLAGS_AUTONEG_EN 0x0 5686 /* enum: Enable parallel detect. In addition to AN, try to sense partner forced 5687 * speed/FEC mode (when partner AN disabled). Only valid if AN is enabled. 5688 */ 5689 #define MC_CMD_LINK_FLAGS_PARALLEL_DETECT_EN 0x1 5690 /* enum: Force link down, in electrical idle. */ 5691 #define MC_CMD_LINK_FLAGS_LINK_DISABLE 0x2 5692 /* enum: Ignore the sequence number and always apply. */ 5693 #define MC_CMD_LINK_FLAGS_IGNORE_MODULE_SEQ 0x3 5694 #define MC_CMD_LINK_FLAGS_MASK_LBN 0 5695 #define MC_CMD_LINK_FLAGS_MASK_WIDTH 32 5696 5697 5698 /***********************************/ 5699 /* MC_CMD_LINK_CTRL 5700 * Write the unified MAC/PHY link configuration. Locks required: None. Return 5701 * code: 0, EINVAL, ETIME, EAGAIN 5702 */ 5703 #define MC_CMD_LINK_CTRL 0x6b 5704 #undef MC_CMD_0x6b_PRIVILEGE_CTG 5705 5706 #define MC_CMD_0x6b_PRIVILEGE_CTG SRIOV_CTG_LINK 5707 5708 /* MC_CMD_LINK_CTRL_IN msgrequest */ 5709 #define MC_CMD_LINK_CTRL_IN_LEN 40 5710 /* Handle to the port to set link state for. */ 5711 #define MC_CMD_LINK_CTRL_IN_PORT_HANDLE_OFST 0 5712 #define MC_CMD_LINK_CTRL_IN_PORT_HANDLE_LEN 4 5713 /* Control flags */ 5714 #define MC_CMD_LINK_CTRL_IN_CONTROL_FLAGS_OFST 4 5715 #define MC_CMD_LINK_CTRL_IN_CONTROL_FLAGS_LEN 4 5716 /* enum property: bitshift */ 5717 /* Enum values, see field(s): */ 5718 /* MC_CMD_LINK_FLAGS/MASK */ 5719 /* Reserved for future expansion, and included to provide padding for alignment 5720 * purposes. 5721 */ 5722 #define MC_CMD_LINK_CTRL_IN_RESERVED_OFST 8 5723 #define MC_CMD_LINK_CTRL_IN_RESERVED_LEN 8 5724 #define MC_CMD_LINK_CTRL_IN_RESERVED_LO_OFST 8 5725 #define MC_CMD_LINK_CTRL_IN_RESERVED_LO_LEN 4 5726 #define MC_CMD_LINK_CTRL_IN_RESERVED_LO_LBN 64 5727 #define MC_CMD_LINK_CTRL_IN_RESERVED_LO_WIDTH 32 5728 #define MC_CMD_LINK_CTRL_IN_RESERVED_HI_OFST 12 5729 #define MC_CMD_LINK_CTRL_IN_RESERVED_HI_LEN 4 5730 #define MC_CMD_LINK_CTRL_IN_RESERVED_HI_LBN 96 5731 #define MC_CMD_LINK_CTRL_IN_RESERVED_HI_WIDTH 32 5732 /* Technology abilities to advertise during auto-negotiation */ 5733 #define MC_CMD_LINK_CTRL_IN_ADVERTISED_TECH_ABILITIES_MASK_OFST 16 5734 #define MC_CMD_LINK_CTRL_IN_ADVERTISED_TECH_ABILITIES_MASK_LEN 16 5735 /* enum property: bitshift */ 5736 /* Enum values, see field(s): */ 5737 /* MC_CMD_ETH_TECH/TECH */ 5738 /* Pause abilities to advertise during auto-negotiation. Valid when auto- 5739 * negotation is enabled and MC_CMD_SET_MAC_IN/FCTL is set to 5740 * MC_CMD_FCNTL_AUTO. If auto-negotiation is disabled the driver must 5741 * explicitly configure pause mode with MC_CMD_SET_MAC. 5742 */ 5743 #define MC_CMD_LINK_CTRL_IN_ADVERTISED_PAUSE_ABILITIES_MASK_OFST 32 5744 #define MC_CMD_LINK_CTRL_IN_ADVERTISED_PAUSE_ABILITIES_MASK_LEN 1 5745 /* enum property: bitshift */ 5746 /* Enum values, see field(s): */ 5747 /* MC_CMD_PAUSE_MODE/TYPE */ 5748 /* When auto-negotiation is enabled, this is the FEC mode to request. Note that 5749 * a weaker FEC mode may get negotiated, depending on what the link partner 5750 * supports. The driver should subsequently use MC_CMD_GET_LINK to check the 5751 * actual negotiated FEC mode. When auto-negotiation is disabled, this is the 5752 * forced FEC mode. 5753 */ 5754 #define MC_CMD_LINK_CTRL_IN_FEC_MODE_OFST 33 5755 #define MC_CMD_LINK_CTRL_IN_FEC_MODE_LEN 1 5756 /* enum property: value */ 5757 /* Enum values, see field(s): */ 5758 /* FEC_TYPE/TYPE */ 5759 /* This is only to be used when auto-negotiation is disabled (forced speed or 5760 * loopback mode). If the specified value does not align with the values 5761 * defined in the enum MC_CMD_ETH_TECH/TECH, it is considered invalid. 5762 */ 5763 #define MC_CMD_LINK_CTRL_IN_LINK_TECHNOLOGY_OFST 36 5764 #define MC_CMD_LINK_CTRL_IN_LINK_TECHNOLOGY_LEN 2 5765 /* enum property: value */ 5766 /* Enum values, see field(s): */ 5767 /* MC_CMD_ETH_TECH/TECH */ 5768 /* The sequence number of the last MODULECHANGE event. If this doesn't match, 5769 * fail with EAGAIN. 5770 */ 5771 #define MC_CMD_LINK_CTRL_IN_MODULE_SEQ_OFST 38 5772 #define MC_CMD_LINK_CTRL_IN_MODULE_SEQ_LEN 1 5773 /* Loopback Mode. Only valid when auto-negotiation is disabled. */ 5774 #define MC_CMD_LINK_CTRL_IN_LOOPBACK_OFST 39 5775 #define MC_CMD_LINK_CTRL_IN_LOOPBACK_LEN 1 5776 /* enum property: value */ 5777 /* Enum values, see field(s): */ 5778 /* MC_CMD_LOOPBACK_V2/MODE */ 5779 5780 /* MC_CMD_LINK_CTRL_OUT msgresponse */ 5781 #define MC_CMD_LINK_CTRL_OUT_LEN 0 5782 5783 5784 /***********************************/ 5785 /* MC_CMD_LINK_STATE 5786 */ 5787 #define MC_CMD_LINK_STATE 0x6c 5788 #undef MC_CMD_0x6c_PRIVILEGE_CTG 5789 5790 #define MC_CMD_0x6c_PRIVILEGE_CTG SRIOV_CTG_LINK 5791 5792 /* MC_CMD_LINK_STATE_IN msgrequest */ 5793 #define MC_CMD_LINK_STATE_IN_LEN 4 5794 /* Handle to the port to get link state for. */ 5795 #define MC_CMD_LINK_STATE_IN_PORT_HANDLE_OFST 0 5796 #define MC_CMD_LINK_STATE_IN_PORT_HANDLE_LEN 4 5797 5798 /* MC_CMD_LINK_STATE_OUT msgresponse */ 5799 #define MC_CMD_LINK_STATE_OUT_LEN 114 5800 /* Flags used to report the current configuration/state of the link. */ 5801 #define MC_CMD_LINK_STATE_OUT_STATUS_FLAGS_OFST 0 5802 #define MC_CMD_LINK_STATE_OUT_STATUS_FLAGS_LEN 8 5803 #define MC_CMD_LINK_STATE_OUT_STATUS_FLAGS_LO_OFST 0 5804 #define MC_CMD_LINK_STATE_OUT_STATUS_FLAGS_LO_LEN 4 5805 #define MC_CMD_LINK_STATE_OUT_STATUS_FLAGS_LO_LBN 0 5806 #define MC_CMD_LINK_STATE_OUT_STATUS_FLAGS_LO_WIDTH 32 5807 #define MC_CMD_LINK_STATE_OUT_STATUS_FLAGS_HI_OFST 4 5808 #define MC_CMD_LINK_STATE_OUT_STATUS_FLAGS_HI_LEN 4 5809 #define MC_CMD_LINK_STATE_OUT_STATUS_FLAGS_HI_LBN 32 5810 #define MC_CMD_LINK_STATE_OUT_STATUS_FLAGS_HI_WIDTH 32 5811 /* enum property: value */ 5812 /* Enum values, see field(s): */ 5813 /* MC_CMD_LINK_STATUS_FLAGS/STATUS_FLAGS */ 5814 /* Configured technology. If the specified value does not align with the values 5815 * defined in the enum MC_CMD_ETH_TECH/TECH, it is considered invalid. 5816 */ 5817 #define MC_CMD_LINK_STATE_OUT_LINK_TECHNOLOGY_OFST 8 5818 #define MC_CMD_LINK_STATE_OUT_LINK_TECHNOLOGY_LEN 2 5819 /* enum property: value */ 5820 /* Enum values, see field(s): */ 5821 /* MC_CMD_ETH_TECH/TECH */ 5822 /* Configured FEC mode */ 5823 #define MC_CMD_LINK_STATE_OUT_FEC_MODE_OFST 10 5824 #define MC_CMD_LINK_STATE_OUT_FEC_MODE_LEN 1 5825 /* enum property: value */ 5826 /* Enum values, see field(s): */ 5827 /* FEC_TYPE/TYPE */ 5828 /* Bitmask of auto-negotiated pause modes */ 5829 #define MC_CMD_LINK_STATE_OUT_PAUSE_MASK_OFST 11 5830 #define MC_CMD_LINK_STATE_OUT_PAUSE_MASK_LEN 1 5831 /* enum property: bitshift */ 5832 /* Enum values, see field(s): */ 5833 /* MC_CMD_PAUSE_MODE/TYPE */ 5834 /* Configured loopback mode */ 5835 #define MC_CMD_LINK_STATE_OUT_LOOPBACK_OFST 12 5836 #define MC_CMD_LINK_STATE_OUT_LOOPBACK_LEN 1 5837 /* enum property: value */ 5838 /* Enum values, see field(s): */ 5839 /* MC_CMD_LOOPBACK_V2/MODE */ 5840 /* Abilities requested by the driver to advertise during auto-negotiation */ 5841 #define MC_CMD_LINK_STATE_OUT_ADVERTISED_ABILITIES_OFST 16 5842 #define MC_CMD_LINK_STATE_OUT_ADVERTISED_ABILITIES_LEN 32 5843 /* See structuredef: MC_CMD_ETH_AN_FIELDS */ 5844 #define MC_CMD_LINK_STATE_OUT_ADVERTISED_ABILITIES_TECH_MASK_OFST 16 5845 #define MC_CMD_LINK_STATE_OUT_ADVERTISED_ABILITIES_TECH_MASK_LEN 16 5846 #define MC_CMD_LINK_STATE_OUT_ADVERTISED_ABILITIES_FEC_MASK_OFST 32 5847 #define MC_CMD_LINK_STATE_OUT_ADVERTISED_ABILITIES_FEC_MASK_LEN 4 5848 #define MC_CMD_LINK_STATE_OUT_ADVERTISED_ABILITIES_FEC_REQ_OFST 36 5849 #define MC_CMD_LINK_STATE_OUT_ADVERTISED_ABILITIES_FEC_REQ_LEN 4 5850 #define MC_CMD_LINK_STATE_OUT_ADVERTISED_ABILITIES_PAUSE_MASK_OFST 40 5851 #define MC_CMD_LINK_STATE_OUT_ADVERTISED_ABILITIES_PAUSE_MASK_LEN 1 5852 /* Abilities advertised by the link partner during auto-negotiation */ 5853 #define MC_CMD_LINK_STATE_OUT_LINK_PARTNER_ABILITIES_OFST 48 5854 #define MC_CMD_LINK_STATE_OUT_LINK_PARTNER_ABILITIES_LEN 32 5855 /* See structuredef: MC_CMD_ETH_AN_FIELDS */ 5856 #define MC_CMD_LINK_STATE_OUT_LINK_PARTNER_ABILITIES_TECH_MASK_OFST 48 5857 #define MC_CMD_LINK_STATE_OUT_LINK_PARTNER_ABILITIES_TECH_MASK_LEN 16 5858 #define MC_CMD_LINK_STATE_OUT_LINK_PARTNER_ABILITIES_FEC_MASK_OFST 64 5859 #define MC_CMD_LINK_STATE_OUT_LINK_PARTNER_ABILITIES_FEC_MASK_LEN 4 5860 #define MC_CMD_LINK_STATE_OUT_LINK_PARTNER_ABILITIES_FEC_REQ_OFST 68 5861 #define MC_CMD_LINK_STATE_OUT_LINK_PARTNER_ABILITIES_FEC_REQ_LEN 4 5862 #define MC_CMD_LINK_STATE_OUT_LINK_PARTNER_ABILITIES_PAUSE_MASK_OFST 72 5863 #define MC_CMD_LINK_STATE_OUT_LINK_PARTNER_ABILITIES_PAUSE_MASK_LEN 1 5864 /* Abilities supported by the local device (including cable abilities) For 5865 * fixed local device capbilities see MC_CMD_GET_LOCAL_DEVICE_INFO 5866 */ 5867 #define MC_CMD_LINK_STATE_OUT_SUPPORTED_ABILITIES_OFST 80 5868 #define MC_CMD_LINK_STATE_OUT_SUPPORTED_ABILITIES_LEN 28 5869 /* See structuredef: MC_CMD_ETH_AN_FIELDS */ 5870 #define MC_CMD_LINK_STATE_OUT_SUPPORTED_ABILITIES_TECH_MASK_OFST 80 5871 #define MC_CMD_LINK_STATE_OUT_SUPPORTED_ABILITIES_TECH_MASK_LEN 16 5872 #define MC_CMD_LINK_STATE_OUT_SUPPORTED_ABILITIES_FEC_MASK_OFST 96 5873 #define MC_CMD_LINK_STATE_OUT_SUPPORTED_ABILITIES_FEC_MASK_LEN 4 5874 #define MC_CMD_LINK_STATE_OUT_SUPPORTED_ABILITIES_FEC_REQ_OFST 100 5875 #define MC_CMD_LINK_STATE_OUT_SUPPORTED_ABILITIES_FEC_REQ_LEN 4 5876 #define MC_CMD_LINK_STATE_OUT_SUPPORTED_ABILITIES_PAUSE_MASK_OFST 104 5877 #define MC_CMD_LINK_STATE_OUT_SUPPORTED_ABILITIES_PAUSE_MASK_LEN 1 5878 /* Control flags */ 5879 #define MC_CMD_LINK_STATE_OUT_CONTROL_FLAGS_OFST 108 5880 #define MC_CMD_LINK_STATE_OUT_CONTROL_FLAGS_LEN 4 5881 /* enum property: bitshift */ 5882 /* Enum values, see field(s): */ 5883 /* MC_CMD_LINK_FLAGS/MASK */ 5884 /* Sequence number to synchronize link change events */ 5885 #define MC_CMD_LINK_STATE_OUT_PORT_LINKCHANGE_SEQ_NUM_OFST 112 5886 #define MC_CMD_LINK_STATE_OUT_PORT_LINKCHANGE_SEQ_NUM_LEN 1 5887 /* Sequence number to synchronize module change events */ 5888 #define MC_CMD_LINK_STATE_OUT_PORT_MODULECHANGE_SEQ_NUM_OFST 113 5889 #define MC_CMD_LINK_STATE_OUT_PORT_MODULECHANGE_SEQ_NUM_LEN 1 5890 5891 /* MC_CMD_LINK_STATE_OUT_V2 msgresponse: Updated LINK_STATE_OUT with 5892 * LOCAL_AN_SUPPORT 5893 */ 5894 #define MC_CMD_LINK_STATE_OUT_V2_LEN 120 5895 /* Flags used to report the current configuration/state of the link. */ 5896 #define MC_CMD_LINK_STATE_OUT_V2_STATUS_FLAGS_OFST 0 5897 #define MC_CMD_LINK_STATE_OUT_V2_STATUS_FLAGS_LEN 8 5898 #define MC_CMD_LINK_STATE_OUT_V2_STATUS_FLAGS_LO_OFST 0 5899 #define MC_CMD_LINK_STATE_OUT_V2_STATUS_FLAGS_LO_LEN 4 5900 #define MC_CMD_LINK_STATE_OUT_V2_STATUS_FLAGS_LO_LBN 0 5901 #define MC_CMD_LINK_STATE_OUT_V2_STATUS_FLAGS_LO_WIDTH 32 5902 #define MC_CMD_LINK_STATE_OUT_V2_STATUS_FLAGS_HI_OFST 4 5903 #define MC_CMD_LINK_STATE_OUT_V2_STATUS_FLAGS_HI_LEN 4 5904 #define MC_CMD_LINK_STATE_OUT_V2_STATUS_FLAGS_HI_LBN 32 5905 #define MC_CMD_LINK_STATE_OUT_V2_STATUS_FLAGS_HI_WIDTH 32 5906 /* enum property: value */ 5907 /* Enum values, see field(s): */ 5908 /* MC_CMD_LINK_STATUS_FLAGS/STATUS_FLAGS */ 5909 /* Configured technology. If the specified value does not align with the values 5910 * defined in the enum MC_CMD_ETH_TECH/TECH, it is considered invalid. 5911 */ 5912 #define MC_CMD_LINK_STATE_OUT_V2_LINK_TECHNOLOGY_OFST 8 5913 #define MC_CMD_LINK_STATE_OUT_V2_LINK_TECHNOLOGY_LEN 2 5914 /* enum property: value */ 5915 /* Enum values, see field(s): */ 5916 /* MC_CMD_ETH_TECH/TECH */ 5917 /* Configured FEC mode */ 5918 #define MC_CMD_LINK_STATE_OUT_V2_FEC_MODE_OFST 10 5919 #define MC_CMD_LINK_STATE_OUT_V2_FEC_MODE_LEN 1 5920 /* enum property: value */ 5921 /* Enum values, see field(s): */ 5922 /* FEC_TYPE/TYPE */ 5923 /* Bitmask of auto-negotiated pause modes */ 5924 #define MC_CMD_LINK_STATE_OUT_V2_PAUSE_MASK_OFST 11 5925 #define MC_CMD_LINK_STATE_OUT_V2_PAUSE_MASK_LEN 1 5926 /* enum property: bitshift */ 5927 /* Enum values, see field(s): */ 5928 /* MC_CMD_PAUSE_MODE/TYPE */ 5929 /* Configured loopback mode */ 5930 #define MC_CMD_LINK_STATE_OUT_V2_LOOPBACK_OFST 12 5931 #define MC_CMD_LINK_STATE_OUT_V2_LOOPBACK_LEN 1 5932 /* enum property: value */ 5933 /* Enum values, see field(s): */ 5934 /* MC_CMD_LOOPBACK_V2/MODE */ 5935 /* Abilities requested by the driver to advertise during auto-negotiation */ 5936 #define MC_CMD_LINK_STATE_OUT_V2_ADVERTISED_ABILITIES_OFST 16 5937 #define MC_CMD_LINK_STATE_OUT_V2_ADVERTISED_ABILITIES_LEN 32 5938 /* Abilities advertised by the link partner during auto-negotiation */ 5939 #define MC_CMD_LINK_STATE_OUT_V2_LINK_PARTNER_ABILITIES_OFST 48 5940 #define MC_CMD_LINK_STATE_OUT_V2_LINK_PARTNER_ABILITIES_LEN 32 5941 /* Abilities supported by the local device (including cable abilities) For 5942 * fixed local device capbilities see MC_CMD_GET_LOCAL_DEVICE_INFO 5943 */ 5944 #define MC_CMD_LINK_STATE_OUT_V2_SUPPORTED_ABILITIES_OFST 80 5945 #define MC_CMD_LINK_STATE_OUT_V2_SUPPORTED_ABILITIES_LEN 28 5946 /* Control flags */ 5947 #define MC_CMD_LINK_STATE_OUT_V2_CONTROL_FLAGS_OFST 108 5948 #define MC_CMD_LINK_STATE_OUT_V2_CONTROL_FLAGS_LEN 4 5949 /* enum property: bitshift */ 5950 /* Enum values, see field(s): */ 5951 /* MC_CMD_LINK_FLAGS/MASK */ 5952 /* Sequence number to synchronize link change events */ 5953 #define MC_CMD_LINK_STATE_OUT_V2_PORT_LINKCHANGE_SEQ_NUM_OFST 112 5954 #define MC_CMD_LINK_STATE_OUT_V2_PORT_LINKCHANGE_SEQ_NUM_LEN 1 5955 /* Sequence number to synchronize module change events */ 5956 #define MC_CMD_LINK_STATE_OUT_V2_PORT_MODULECHANGE_SEQ_NUM_OFST 113 5957 #define MC_CMD_LINK_STATE_OUT_V2_PORT_MODULECHANGE_SEQ_NUM_LEN 1 5958 /* Reports the auto-negotiation supported by the local device. This depends on 5959 * the port and module properties. 5960 */ 5961 #define MC_CMD_LINK_STATE_OUT_V2_LOCAL_AN_SUPPORT_OFST 116 5962 #define MC_CMD_LINK_STATE_OUT_V2_LOCAL_AN_SUPPORT_LEN 4 5963 /* Enum values, see field(s): */ 5964 /* AN_TYPE/TYPE */ 5965 5966 /* MC_CMD_LINK_STATE_OUT_V3 msgresponse: Updated LINK_STATE_OUT_V2 for explicit 5967 * reporting of the link speed and duplex mode. 5968 */ 5969 #define MC_CMD_LINK_STATE_OUT_V3_LEN 128 5970 /* Flags used to report the current configuration/state of the link. */ 5971 #define MC_CMD_LINK_STATE_OUT_V3_STATUS_FLAGS_OFST 0 5972 #define MC_CMD_LINK_STATE_OUT_V3_STATUS_FLAGS_LEN 8 5973 #define MC_CMD_LINK_STATE_OUT_V3_STATUS_FLAGS_LO_OFST 0 5974 #define MC_CMD_LINK_STATE_OUT_V3_STATUS_FLAGS_LO_LEN 4 5975 #define MC_CMD_LINK_STATE_OUT_V3_STATUS_FLAGS_LO_LBN 0 5976 #define MC_CMD_LINK_STATE_OUT_V3_STATUS_FLAGS_LO_WIDTH 32 5977 #define MC_CMD_LINK_STATE_OUT_V3_STATUS_FLAGS_HI_OFST 4 5978 #define MC_CMD_LINK_STATE_OUT_V3_STATUS_FLAGS_HI_LEN 4 5979 #define MC_CMD_LINK_STATE_OUT_V3_STATUS_FLAGS_HI_LBN 32 5980 #define MC_CMD_LINK_STATE_OUT_V3_STATUS_FLAGS_HI_WIDTH 32 5981 /* enum property: value */ 5982 /* Enum values, see field(s): */ 5983 /* MC_CMD_LINK_STATUS_FLAGS/STATUS_FLAGS */ 5984 /* Configured technology. If the specified value does not align with the values 5985 * defined in the enum MC_CMD_ETH_TECH/TECH, it is considered invalid. 5986 */ 5987 #define MC_CMD_LINK_STATE_OUT_V3_LINK_TECHNOLOGY_OFST 8 5988 #define MC_CMD_LINK_STATE_OUT_V3_LINK_TECHNOLOGY_LEN 2 5989 /* enum property: value */ 5990 /* Enum values, see field(s): */ 5991 /* MC_CMD_ETH_TECH/TECH */ 5992 /* Configured FEC mode */ 5993 #define MC_CMD_LINK_STATE_OUT_V3_FEC_MODE_OFST 10 5994 #define MC_CMD_LINK_STATE_OUT_V3_FEC_MODE_LEN 1 5995 /* enum property: value */ 5996 /* Enum values, see field(s): */ 5997 /* FEC_TYPE/TYPE */ 5998 /* Bitmask of auto-negotiated pause modes */ 5999 #define MC_CMD_LINK_STATE_OUT_V3_PAUSE_MASK_OFST 11 6000 #define MC_CMD_LINK_STATE_OUT_V3_PAUSE_MASK_LEN 1 6001 /* enum property: bitshift */ 6002 /* Enum values, see field(s): */ 6003 /* MC_CMD_PAUSE_MODE/TYPE */ 6004 /* Configured loopback mode */ 6005 #define MC_CMD_LINK_STATE_OUT_V3_LOOPBACK_OFST 12 6006 #define MC_CMD_LINK_STATE_OUT_V3_LOOPBACK_LEN 1 6007 /* enum property: value */ 6008 /* Enum values, see field(s): */ 6009 /* MC_CMD_LOOPBACK_V2/MODE */ 6010 /* Abilities requested by the driver to advertise during auto-negotiation */ 6011 #define MC_CMD_LINK_STATE_OUT_V3_ADVERTISED_ABILITIES_OFST 16 6012 #define MC_CMD_LINK_STATE_OUT_V3_ADVERTISED_ABILITIES_LEN 32 6013 /* Abilities advertised by the link partner during auto-negotiation */ 6014 #define MC_CMD_LINK_STATE_OUT_V3_LINK_PARTNER_ABILITIES_OFST 48 6015 #define MC_CMD_LINK_STATE_OUT_V3_LINK_PARTNER_ABILITIES_LEN 32 6016 /* Abilities supported by the local device (including cable abilities) For 6017 * fixed local device capbilities see MC_CMD_GET_LOCAL_DEVICE_INFO 6018 */ 6019 #define MC_CMD_LINK_STATE_OUT_V3_SUPPORTED_ABILITIES_OFST 80 6020 #define MC_CMD_LINK_STATE_OUT_V3_SUPPORTED_ABILITIES_LEN 28 6021 /* Control flags */ 6022 #define MC_CMD_LINK_STATE_OUT_V3_CONTROL_FLAGS_OFST 108 6023 #define MC_CMD_LINK_STATE_OUT_V3_CONTROL_FLAGS_LEN 4 6024 /* enum property: bitshift */ 6025 /* Enum values, see field(s): */ 6026 /* MC_CMD_LINK_FLAGS/MASK */ 6027 /* Sequence number to synchronize link change events */ 6028 #define MC_CMD_LINK_STATE_OUT_V3_PORT_LINKCHANGE_SEQ_NUM_OFST 112 6029 #define MC_CMD_LINK_STATE_OUT_V3_PORT_LINKCHANGE_SEQ_NUM_LEN 1 6030 /* Sequence number to synchronize module change events */ 6031 #define MC_CMD_LINK_STATE_OUT_V3_PORT_MODULECHANGE_SEQ_NUM_OFST 113 6032 #define MC_CMD_LINK_STATE_OUT_V3_PORT_MODULECHANGE_SEQ_NUM_LEN 1 6033 /* Reports the auto-negotiation supported by the local device. This depends on 6034 * the port and module properties. 6035 */ 6036 #define MC_CMD_LINK_STATE_OUT_V3_LOCAL_AN_SUPPORT_OFST 116 6037 #define MC_CMD_LINK_STATE_OUT_V3_LOCAL_AN_SUPPORT_LEN 4 6038 /* Enum values, see field(s): */ 6039 /* AN_TYPE/TYPE */ 6040 /* Autonegotiated speed in mbit/s. The link may still be down even if this 6041 * reads non-zero. LINK_SPEED field is intended to be used by drivers without 6042 * the most up-to-date MCDI definitions, unable to deduce the link speed from 6043 * the reported LINK_TECHNOLOGY field. 6044 */ 6045 #define MC_CMD_LINK_STATE_OUT_V3_LINK_SPEED_OFST 120 6046 #define MC_CMD_LINK_STATE_OUT_V3_LINK_SPEED_LEN 4 6047 #define MC_CMD_LINK_STATE_OUT_V3_FLAGS_OFST 124 6048 #define MC_CMD_LINK_STATE_OUT_V3_FLAGS_LEN 4 6049 #define MC_CMD_LINK_STATE_OUT_V3_FULL_DUPLEX_OFST 124 6050 #define MC_CMD_LINK_STATE_OUT_V3_FULL_DUPLEX_LBN 0 6051 #define MC_CMD_LINK_STATE_OUT_V3_FULL_DUPLEX_WIDTH 1 6052 6053 6054 /***********************************/ 6055 /* MC_CMD_GET_LINK 6056 * Read the unified MAC/PHY link state. Locks required: None Return code: 0, 6057 * ETIME. 6058 */ 6059 #define MC_CMD_GET_LINK 0x29 6060 #undef MC_CMD_0x29_PRIVILEGE_CTG 6061 6062 #define MC_CMD_0x29_PRIVILEGE_CTG SRIOV_CTG_GENERAL 6063 6064 /* MC_CMD_GET_LINK_IN msgrequest */ 6065 #define MC_CMD_GET_LINK_IN_LEN 0 6066 6067 /* MC_CMD_GET_LINK_IN_V2 msgrequest */ 6068 #define MC_CMD_GET_LINK_IN_V2_LEN 8 6069 /* Target port to request link state for. Uses MAE_LINK_ENDPOINT_SELECTOR which 6070 * identifies a real or virtual network port by MAE port and link end. See the 6071 * structure definition for more details. 6072 */ 6073 #define MC_CMD_GET_LINK_IN_V2_TARGET_OFST 0 6074 #define MC_CMD_GET_LINK_IN_V2_TARGET_LEN 8 6075 #define MC_CMD_GET_LINK_IN_V2_TARGET_LO_OFST 0 6076 #define MC_CMD_GET_LINK_IN_V2_TARGET_LO_LEN 4 6077 #define MC_CMD_GET_LINK_IN_V2_TARGET_LO_LBN 0 6078 #define MC_CMD_GET_LINK_IN_V2_TARGET_LO_WIDTH 32 6079 #define MC_CMD_GET_LINK_IN_V2_TARGET_HI_OFST 4 6080 #define MC_CMD_GET_LINK_IN_V2_TARGET_HI_LEN 4 6081 #define MC_CMD_GET_LINK_IN_V2_TARGET_HI_LBN 32 6082 #define MC_CMD_GET_LINK_IN_V2_TARGET_HI_WIDTH 32 6083 /* See structuredef: MAE_LINK_ENDPOINT_SELECTOR */ 6084 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_OFST 0 6085 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_LEN 4 6086 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FLAT_OFST 0 6087 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FLAT_LEN 4 6088 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_TYPE_OFST 3 6089 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_TYPE_LEN 1 6090 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 0 6091 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 6092 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 0 6093 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 6094 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 20 6095 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 6096 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 16 6097 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 6098 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 2 6099 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 6100 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 0 6101 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 6102 #define MC_CMD_GET_LINK_IN_V2_TARGET_LINK_END_OFST 4 6103 #define MC_CMD_GET_LINK_IN_V2_TARGET_LINK_END_LEN 4 6104 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_OFST 0 6105 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_LEN 8 6106 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_LO_OFST 0 6107 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_LO_LEN 4 6108 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_LO_LBN 0 6109 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_LO_WIDTH 32 6110 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_HI_OFST 4 6111 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_HI_LEN 4 6112 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_HI_LBN 32 6113 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_HI_WIDTH 32 6114 6115 /* MC_CMD_GET_LINK_OUT msgresponse */ 6116 #define MC_CMD_GET_LINK_OUT_LEN 28 6117 /* Near-side advertised capabilities. Refer to 6118 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 6119 */ 6120 #define MC_CMD_GET_LINK_OUT_CAP_OFST 0 6121 #define MC_CMD_GET_LINK_OUT_CAP_LEN 4 6122 /* Link-partner advertised capabilities. Refer to 6123 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 6124 */ 6125 #define MC_CMD_GET_LINK_OUT_LP_CAP_OFST 4 6126 #define MC_CMD_GET_LINK_OUT_LP_CAP_LEN 4 6127 /* Autonegotiated speed in mbit/s. The link may still be down even if this 6128 * reads non-zero. 6129 */ 6130 #define MC_CMD_GET_LINK_OUT_LINK_SPEED_OFST 8 6131 #define MC_CMD_GET_LINK_OUT_LINK_SPEED_LEN 4 6132 /* Current loopback setting. */ 6133 #define MC_CMD_GET_LINK_OUT_LOOPBACK_MODE_OFST 12 6134 #define MC_CMD_GET_LINK_OUT_LOOPBACK_MODE_LEN 4 6135 /* Enum values, see field(s): */ 6136 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 6137 #define MC_CMD_GET_LINK_OUT_FLAGS_OFST 16 6138 #define MC_CMD_GET_LINK_OUT_FLAGS_LEN 4 6139 #define MC_CMD_GET_LINK_OUT_LINK_UP_OFST 16 6140 #define MC_CMD_GET_LINK_OUT_LINK_UP_LBN 0 6141 #define MC_CMD_GET_LINK_OUT_LINK_UP_WIDTH 1 6142 #define MC_CMD_GET_LINK_OUT_FULL_DUPLEX_OFST 16 6143 #define MC_CMD_GET_LINK_OUT_FULL_DUPLEX_LBN 1 6144 #define MC_CMD_GET_LINK_OUT_FULL_DUPLEX_WIDTH 1 6145 #define MC_CMD_GET_LINK_OUT_BPX_LINK_OFST 16 6146 #define MC_CMD_GET_LINK_OUT_BPX_LINK_LBN 2 6147 #define MC_CMD_GET_LINK_OUT_BPX_LINK_WIDTH 1 6148 #define MC_CMD_GET_LINK_OUT_PHY_LINK_OFST 16 6149 #define MC_CMD_GET_LINK_OUT_PHY_LINK_LBN 3 6150 #define MC_CMD_GET_LINK_OUT_PHY_LINK_WIDTH 1 6151 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_RX_OFST 16 6152 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_RX_LBN 6 6153 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_RX_WIDTH 1 6154 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_TX_OFST 16 6155 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_TX_LBN 7 6156 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_TX_WIDTH 1 6157 #define MC_CMD_GET_LINK_OUT_MODULE_UP_VALID_OFST 16 6158 #define MC_CMD_GET_LINK_OUT_MODULE_UP_VALID_LBN 8 6159 #define MC_CMD_GET_LINK_OUT_MODULE_UP_VALID_WIDTH 1 6160 #define MC_CMD_GET_LINK_OUT_MODULE_UP_OFST 16 6161 #define MC_CMD_GET_LINK_OUT_MODULE_UP_LBN 9 6162 #define MC_CMD_GET_LINK_OUT_MODULE_UP_WIDTH 1 6163 /* This returns the negotiated flow control value. */ 6164 #define MC_CMD_GET_LINK_OUT_FCNTL_OFST 20 6165 #define MC_CMD_GET_LINK_OUT_FCNTL_LEN 4 6166 /* enum property: value */ 6167 /* Enum values, see field(s): */ 6168 /* MC_CMD_SET_MAC/MC_CMD_SET_MAC_IN/FCNTL */ 6169 #define MC_CMD_GET_LINK_OUT_MAC_FAULT_OFST 24 6170 #define MC_CMD_GET_LINK_OUT_MAC_FAULT_LEN 4 6171 #define MC_CMD_MAC_FAULT_XGMII_LOCAL_OFST 24 6172 #define MC_CMD_MAC_FAULT_XGMII_LOCAL_LBN 0 6173 #define MC_CMD_MAC_FAULT_XGMII_LOCAL_WIDTH 1 6174 #define MC_CMD_MAC_FAULT_XGMII_REMOTE_OFST 24 6175 #define MC_CMD_MAC_FAULT_XGMII_REMOTE_LBN 1 6176 #define MC_CMD_MAC_FAULT_XGMII_REMOTE_WIDTH 1 6177 #define MC_CMD_MAC_FAULT_SGMII_REMOTE_OFST 24 6178 #define MC_CMD_MAC_FAULT_SGMII_REMOTE_LBN 2 6179 #define MC_CMD_MAC_FAULT_SGMII_REMOTE_WIDTH 1 6180 #define MC_CMD_MAC_FAULT_PENDING_RECONFIG_OFST 24 6181 #define MC_CMD_MAC_FAULT_PENDING_RECONFIG_LBN 3 6182 #define MC_CMD_MAC_FAULT_PENDING_RECONFIG_WIDTH 1 6183 6184 /* MC_CMD_GET_LINK_OUT_V2 msgresponse: Extended link state information */ 6185 #define MC_CMD_GET_LINK_OUT_V2_LEN 44 6186 /* Near-side advertised capabilities. Refer to 6187 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 6188 */ 6189 #define MC_CMD_GET_LINK_OUT_V2_CAP_OFST 0 6190 #define MC_CMD_GET_LINK_OUT_V2_CAP_LEN 4 6191 /* Link-partner advertised capabilities. Refer to 6192 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 6193 */ 6194 #define MC_CMD_GET_LINK_OUT_V2_LP_CAP_OFST 4 6195 #define MC_CMD_GET_LINK_OUT_V2_LP_CAP_LEN 4 6196 /* Autonegotiated speed in mbit/s. The link may still be down even if this 6197 * reads non-zero. 6198 */ 6199 #define MC_CMD_GET_LINK_OUT_V2_LINK_SPEED_OFST 8 6200 #define MC_CMD_GET_LINK_OUT_V2_LINK_SPEED_LEN 4 6201 /* Current loopback setting. */ 6202 #define MC_CMD_GET_LINK_OUT_V2_LOOPBACK_MODE_OFST 12 6203 #define MC_CMD_GET_LINK_OUT_V2_LOOPBACK_MODE_LEN 4 6204 /* Enum values, see field(s): */ 6205 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 6206 #define MC_CMD_GET_LINK_OUT_V2_FLAGS_OFST 16 6207 #define MC_CMD_GET_LINK_OUT_V2_FLAGS_LEN 4 6208 #define MC_CMD_GET_LINK_OUT_V2_LINK_UP_OFST 16 6209 #define MC_CMD_GET_LINK_OUT_V2_LINK_UP_LBN 0 6210 #define MC_CMD_GET_LINK_OUT_V2_LINK_UP_WIDTH 1 6211 #define MC_CMD_GET_LINK_OUT_V2_FULL_DUPLEX_OFST 16 6212 #define MC_CMD_GET_LINK_OUT_V2_FULL_DUPLEX_LBN 1 6213 #define MC_CMD_GET_LINK_OUT_V2_FULL_DUPLEX_WIDTH 1 6214 #define MC_CMD_GET_LINK_OUT_V2_BPX_LINK_OFST 16 6215 #define MC_CMD_GET_LINK_OUT_V2_BPX_LINK_LBN 2 6216 #define MC_CMD_GET_LINK_OUT_V2_BPX_LINK_WIDTH 1 6217 #define MC_CMD_GET_LINK_OUT_V2_PHY_LINK_OFST 16 6218 #define MC_CMD_GET_LINK_OUT_V2_PHY_LINK_LBN 3 6219 #define MC_CMD_GET_LINK_OUT_V2_PHY_LINK_WIDTH 1 6220 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_RX_OFST 16 6221 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_RX_LBN 6 6222 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_RX_WIDTH 1 6223 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_TX_OFST 16 6224 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_TX_LBN 7 6225 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_TX_WIDTH 1 6226 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_VALID_OFST 16 6227 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_VALID_LBN 8 6228 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_VALID_WIDTH 1 6229 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_OFST 16 6230 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_LBN 9 6231 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_WIDTH 1 6232 /* This returns the negotiated flow control value. */ 6233 #define MC_CMD_GET_LINK_OUT_V2_FCNTL_OFST 20 6234 #define MC_CMD_GET_LINK_OUT_V2_FCNTL_LEN 4 6235 /* enum property: value */ 6236 /* Enum values, see field(s): */ 6237 /* MC_CMD_SET_MAC/MC_CMD_SET_MAC_IN/FCNTL */ 6238 #define MC_CMD_GET_LINK_OUT_V2_MAC_FAULT_OFST 24 6239 #define MC_CMD_GET_LINK_OUT_V2_MAC_FAULT_LEN 4 6240 /* MC_CMD_MAC_FAULT_XGMII_LOCAL_OFST 24 */ 6241 /* MC_CMD_MAC_FAULT_XGMII_LOCAL_LBN 0 */ 6242 /* MC_CMD_MAC_FAULT_XGMII_LOCAL_WIDTH 1 */ 6243 /* MC_CMD_MAC_FAULT_XGMII_REMOTE_OFST 24 */ 6244 /* MC_CMD_MAC_FAULT_XGMII_REMOTE_LBN 1 */ 6245 /* MC_CMD_MAC_FAULT_XGMII_REMOTE_WIDTH 1 */ 6246 /* MC_CMD_MAC_FAULT_SGMII_REMOTE_OFST 24 */ 6247 /* MC_CMD_MAC_FAULT_SGMII_REMOTE_LBN 2 */ 6248 /* MC_CMD_MAC_FAULT_SGMII_REMOTE_WIDTH 1 */ 6249 /* MC_CMD_MAC_FAULT_PENDING_RECONFIG_OFST 24 */ 6250 /* MC_CMD_MAC_FAULT_PENDING_RECONFIG_LBN 3 */ 6251 /* MC_CMD_MAC_FAULT_PENDING_RECONFIG_WIDTH 1 */ 6252 /* True local device capabilities (taking into account currently used PMD/MDI, 6253 * e.g. plugged-in module). In general, subset of 6254 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP, but may include extra _FEC_REQUEST 6255 * bits, if the PMD requires FEC. 0 if unknown (e.g. module unplugged). Equal 6256 * to SUPPORTED_CAP for non-pluggable PMDs. Refer to 6257 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 6258 */ 6259 #define MC_CMD_GET_LINK_OUT_V2_LD_CAP_OFST 28 6260 #define MC_CMD_GET_LINK_OUT_V2_LD_CAP_LEN 4 6261 /* Auto-negotiation type used on the link */ 6262 #define MC_CMD_GET_LINK_OUT_V2_AN_TYPE_OFST 32 6263 #define MC_CMD_GET_LINK_OUT_V2_AN_TYPE_LEN 4 6264 /* Enum values, see field(s): */ 6265 /* AN_TYPE/TYPE */ 6266 /* Forward error correction used on the link */ 6267 #define MC_CMD_GET_LINK_OUT_V2_FEC_TYPE_OFST 36 6268 #define MC_CMD_GET_LINK_OUT_V2_FEC_TYPE_LEN 4 6269 /* Enum values, see field(s): */ 6270 /* FEC_TYPE/TYPE */ 6271 #define MC_CMD_GET_LINK_OUT_V2_EXT_FLAGS_OFST 40 6272 #define MC_CMD_GET_LINK_OUT_V2_EXT_FLAGS_LEN 4 6273 #define MC_CMD_GET_LINK_OUT_V2_PMD_MDI_CONNECTED_OFST 40 6274 #define MC_CMD_GET_LINK_OUT_V2_PMD_MDI_CONNECTED_LBN 0 6275 #define MC_CMD_GET_LINK_OUT_V2_PMD_MDI_CONNECTED_WIDTH 1 6276 #define MC_CMD_GET_LINK_OUT_V2_PMD_READY_OFST 40 6277 #define MC_CMD_GET_LINK_OUT_V2_PMD_READY_LBN 1 6278 #define MC_CMD_GET_LINK_OUT_V2_PMD_READY_WIDTH 1 6279 #define MC_CMD_GET_LINK_OUT_V2_PMD_LINK_UP_OFST 40 6280 #define MC_CMD_GET_LINK_OUT_V2_PMD_LINK_UP_LBN 2 6281 #define MC_CMD_GET_LINK_OUT_V2_PMD_LINK_UP_WIDTH 1 6282 #define MC_CMD_GET_LINK_OUT_V2_PMA_LINK_UP_OFST 40 6283 #define MC_CMD_GET_LINK_OUT_V2_PMA_LINK_UP_LBN 3 6284 #define MC_CMD_GET_LINK_OUT_V2_PMA_LINK_UP_WIDTH 1 6285 #define MC_CMD_GET_LINK_OUT_V2_PCS_LOCK_OFST 40 6286 #define MC_CMD_GET_LINK_OUT_V2_PCS_LOCK_LBN 4 6287 #define MC_CMD_GET_LINK_OUT_V2_PCS_LOCK_WIDTH 1 6288 #define MC_CMD_GET_LINK_OUT_V2_ALIGN_LOCK_OFST 40 6289 #define MC_CMD_GET_LINK_OUT_V2_ALIGN_LOCK_LBN 5 6290 #define MC_CMD_GET_LINK_OUT_V2_ALIGN_LOCK_WIDTH 1 6291 #define MC_CMD_GET_LINK_OUT_V2_HI_BER_OFST 40 6292 #define MC_CMD_GET_LINK_OUT_V2_HI_BER_LBN 6 6293 #define MC_CMD_GET_LINK_OUT_V2_HI_BER_WIDTH 1 6294 #define MC_CMD_GET_LINK_OUT_V2_FEC_LOCK_OFST 40 6295 #define MC_CMD_GET_LINK_OUT_V2_FEC_LOCK_LBN 7 6296 #define MC_CMD_GET_LINK_OUT_V2_FEC_LOCK_WIDTH 1 6297 #define MC_CMD_GET_LINK_OUT_V2_AN_DONE_OFST 40 6298 #define MC_CMD_GET_LINK_OUT_V2_AN_DONE_LBN 8 6299 #define MC_CMD_GET_LINK_OUT_V2_AN_DONE_WIDTH 1 6300 #define MC_CMD_GET_LINK_OUT_V2_PORT_SHUTDOWN_OFST 40 6301 #define MC_CMD_GET_LINK_OUT_V2_PORT_SHUTDOWN_LBN 9 6302 #define MC_CMD_GET_LINK_OUT_V2_PORT_SHUTDOWN_WIDTH 1 6303 6304 6305 /***********************************/ 6306 /* MC_CMD_SET_LINK 6307 * Write the unified MAC/PHY link configuration. Locks required: None. Return 6308 * code: 0, EINVAL, ETIME, EAGAIN 6309 */ 6310 #define MC_CMD_SET_LINK 0x2a 6311 #undef MC_CMD_0x2a_PRIVILEGE_CTG 6312 6313 #define MC_CMD_0x2a_PRIVILEGE_CTG SRIOV_CTG_LINK 6314 6315 /* MC_CMD_SET_LINK_IN msgrequest */ 6316 #define MC_CMD_SET_LINK_IN_LEN 16 6317 /* Near-side advertised capabilities. Refer to 6318 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 6319 */ 6320 #define MC_CMD_SET_LINK_IN_CAP_OFST 0 6321 #define MC_CMD_SET_LINK_IN_CAP_LEN 4 6322 /* Flags */ 6323 #define MC_CMD_SET_LINK_IN_FLAGS_OFST 4 6324 #define MC_CMD_SET_LINK_IN_FLAGS_LEN 4 6325 #define MC_CMD_SET_LINK_IN_LOWPOWER_OFST 4 6326 #define MC_CMD_SET_LINK_IN_LOWPOWER_LBN 0 6327 #define MC_CMD_SET_LINK_IN_LOWPOWER_WIDTH 1 6328 #define MC_CMD_SET_LINK_IN_POWEROFF_OFST 4 6329 #define MC_CMD_SET_LINK_IN_POWEROFF_LBN 1 6330 #define MC_CMD_SET_LINK_IN_POWEROFF_WIDTH 1 6331 #define MC_CMD_SET_LINK_IN_TXDIS_OFST 4 6332 #define MC_CMD_SET_LINK_IN_TXDIS_LBN 2 6333 #define MC_CMD_SET_LINK_IN_TXDIS_WIDTH 1 6334 #define MC_CMD_SET_LINK_IN_LINKDOWN_OFST 4 6335 #define MC_CMD_SET_LINK_IN_LINKDOWN_LBN 3 6336 #define MC_CMD_SET_LINK_IN_LINKDOWN_WIDTH 1 6337 /* Loopback mode. */ 6338 #define MC_CMD_SET_LINK_IN_LOOPBACK_MODE_OFST 8 6339 #define MC_CMD_SET_LINK_IN_LOOPBACK_MODE_LEN 4 6340 /* Enum values, see field(s): */ 6341 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 6342 /* A loopback speed of "0" is supported, and means (choose any available 6343 * speed). 6344 */ 6345 #define MC_CMD_SET_LINK_IN_LOOPBACK_SPEED_OFST 12 6346 #define MC_CMD_SET_LINK_IN_LOOPBACK_SPEED_LEN 4 6347 6348 /* MC_CMD_SET_LINK_IN_V2 msgrequest: Updated SET_LINK to include sequence 6349 * number to ensure this SET_LINK command corresponds to the latest 6350 * MODULECHANGE event. 6351 */ 6352 #define MC_CMD_SET_LINK_IN_V2_LEN 17 6353 /* Near-side advertised capabilities. Refer to 6354 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 6355 */ 6356 #define MC_CMD_SET_LINK_IN_V2_CAP_OFST 0 6357 #define MC_CMD_SET_LINK_IN_V2_CAP_LEN 4 6358 /* Flags */ 6359 #define MC_CMD_SET_LINK_IN_V2_FLAGS_OFST 4 6360 #define MC_CMD_SET_LINK_IN_V2_FLAGS_LEN 4 6361 #define MC_CMD_SET_LINK_IN_V2_LOWPOWER_OFST 4 6362 #define MC_CMD_SET_LINK_IN_V2_LOWPOWER_LBN 0 6363 #define MC_CMD_SET_LINK_IN_V2_LOWPOWER_WIDTH 1 6364 #define MC_CMD_SET_LINK_IN_V2_POWEROFF_OFST 4 6365 #define MC_CMD_SET_LINK_IN_V2_POWEROFF_LBN 1 6366 #define MC_CMD_SET_LINK_IN_V2_POWEROFF_WIDTH 1 6367 #define MC_CMD_SET_LINK_IN_V2_TXDIS_OFST 4 6368 #define MC_CMD_SET_LINK_IN_V2_TXDIS_LBN 2 6369 #define MC_CMD_SET_LINK_IN_V2_TXDIS_WIDTH 1 6370 #define MC_CMD_SET_LINK_IN_V2_LINKDOWN_OFST 4 6371 #define MC_CMD_SET_LINK_IN_V2_LINKDOWN_LBN 3 6372 #define MC_CMD_SET_LINK_IN_V2_LINKDOWN_WIDTH 1 6373 /* Loopback mode. */ 6374 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_MODE_OFST 8 6375 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_MODE_LEN 4 6376 /* Enum values, see field(s): */ 6377 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 6378 /* A loopback speed of "0" is supported, and means (choose any available 6379 * speed). 6380 */ 6381 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_SPEED_OFST 12 6382 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_SPEED_LEN 4 6383 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_OFST 16 6384 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_LEN 1 6385 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_NUMBER_OFST 16 6386 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_NUMBER_LBN 0 6387 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_NUMBER_WIDTH 7 6388 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_IGNORE_OFST 16 6389 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_IGNORE_LBN 7 6390 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_IGNORE_WIDTH 1 6391 6392 /* MC_CMD_SET_LINK_IN_V3 msgrequest */ 6393 #define MC_CMD_SET_LINK_IN_V3_LEN 28 6394 /* Near-side advertised capabilities. Refer to 6395 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 6396 */ 6397 #define MC_CMD_SET_LINK_IN_V3_CAP_OFST 0 6398 #define MC_CMD_SET_LINK_IN_V3_CAP_LEN 4 6399 /* Flags */ 6400 #define MC_CMD_SET_LINK_IN_V3_FLAGS_OFST 4 6401 #define MC_CMD_SET_LINK_IN_V3_FLAGS_LEN 4 6402 #define MC_CMD_SET_LINK_IN_V3_LOWPOWER_OFST 4 6403 #define MC_CMD_SET_LINK_IN_V3_LOWPOWER_LBN 0 6404 #define MC_CMD_SET_LINK_IN_V3_LOWPOWER_WIDTH 1 6405 #define MC_CMD_SET_LINK_IN_V3_POWEROFF_OFST 4 6406 #define MC_CMD_SET_LINK_IN_V3_POWEROFF_LBN 1 6407 #define MC_CMD_SET_LINK_IN_V3_POWEROFF_WIDTH 1 6408 #define MC_CMD_SET_LINK_IN_V3_TXDIS_OFST 4 6409 #define MC_CMD_SET_LINK_IN_V3_TXDIS_LBN 2 6410 #define MC_CMD_SET_LINK_IN_V3_TXDIS_WIDTH 1 6411 #define MC_CMD_SET_LINK_IN_V3_LINKDOWN_OFST 4 6412 #define MC_CMD_SET_LINK_IN_V3_LINKDOWN_LBN 3 6413 #define MC_CMD_SET_LINK_IN_V3_LINKDOWN_WIDTH 1 6414 /* Loopback mode. */ 6415 #define MC_CMD_SET_LINK_IN_V3_LOOPBACK_MODE_OFST 8 6416 #define MC_CMD_SET_LINK_IN_V3_LOOPBACK_MODE_LEN 4 6417 /* Enum values, see field(s): */ 6418 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 6419 /* A loopback speed of "0" is supported, and means (choose any available 6420 * speed). 6421 */ 6422 #define MC_CMD_SET_LINK_IN_V3_LOOPBACK_SPEED_OFST 12 6423 #define MC_CMD_SET_LINK_IN_V3_LOOPBACK_SPEED_LEN 4 6424 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_OFST 16 6425 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_LEN 1 6426 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_NUMBER_OFST 16 6427 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_NUMBER_LBN 0 6428 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_NUMBER_WIDTH 7 6429 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_IGNORE_OFST 16 6430 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_IGNORE_LBN 7 6431 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_IGNORE_WIDTH 1 6432 /* Padding */ 6433 #define MC_CMD_SET_LINK_IN_V3_RESERVED_OFST 17 6434 #define MC_CMD_SET_LINK_IN_V3_RESERVED_LEN 3 6435 /* Target port to set link state for. Uses MAE_LINK_ENDPOINT_SELECTOR which 6436 * identifies a real or virtual network port by MAE port and link end. See the 6437 * structure definition for more details 6438 */ 6439 #define MC_CMD_SET_LINK_IN_V3_TARGET_OFST 20 6440 #define MC_CMD_SET_LINK_IN_V3_TARGET_LEN 8 6441 #define MC_CMD_SET_LINK_IN_V3_TARGET_LO_OFST 20 6442 #define MC_CMD_SET_LINK_IN_V3_TARGET_LO_LEN 4 6443 #define MC_CMD_SET_LINK_IN_V3_TARGET_LO_LBN 160 6444 #define MC_CMD_SET_LINK_IN_V3_TARGET_LO_WIDTH 32 6445 #define MC_CMD_SET_LINK_IN_V3_TARGET_HI_OFST 24 6446 #define MC_CMD_SET_LINK_IN_V3_TARGET_HI_LEN 4 6447 #define MC_CMD_SET_LINK_IN_V3_TARGET_HI_LBN 192 6448 #define MC_CMD_SET_LINK_IN_V3_TARGET_HI_WIDTH 32 6449 /* See structuredef: MAE_LINK_ENDPOINT_SELECTOR */ 6450 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_OFST 20 6451 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_LEN 4 6452 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FLAT_OFST 20 6453 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FLAT_LEN 4 6454 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_TYPE_OFST 23 6455 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_TYPE_LEN 1 6456 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 20 6457 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 6458 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 160 6459 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 6460 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 180 6461 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 6462 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 176 6463 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 6464 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 22 6465 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 6466 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 20 6467 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 6468 #define MC_CMD_SET_LINK_IN_V3_TARGET_LINK_END_OFST 24 6469 #define MC_CMD_SET_LINK_IN_V3_TARGET_LINK_END_LEN 4 6470 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_OFST 20 6471 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_LEN 8 6472 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_LO_OFST 20 6473 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_LO_LEN 4 6474 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_LO_LBN 160 6475 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_LO_WIDTH 32 6476 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_HI_OFST 24 6477 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_HI_LEN 4 6478 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_HI_LBN 192 6479 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_HI_WIDTH 32 6480 6481 /* MC_CMD_SET_LINK_OUT msgresponse */ 6482 #define MC_CMD_SET_LINK_OUT_LEN 0 6483 6484 6485 /***********************************/ 6486 /* MC_CMD_SET_ID_LED 6487 * Set identification LED state. Locks required: None. Return code: 0, EINVAL 6488 */ 6489 #define MC_CMD_SET_ID_LED 0x2b 6490 #undef MC_CMD_0x2b_PRIVILEGE_CTG 6491 6492 #define MC_CMD_0x2b_PRIVILEGE_CTG SRIOV_CTG_LINK 6493 6494 /* MC_CMD_SET_ID_LED_IN msgrequest */ 6495 #define MC_CMD_SET_ID_LED_IN_LEN 4 6496 /* Set LED state. */ 6497 #define MC_CMD_SET_ID_LED_IN_STATE_OFST 0 6498 #define MC_CMD_SET_ID_LED_IN_STATE_LEN 4 6499 #define MC_CMD_LED_OFF 0x0 /* enum */ 6500 #define MC_CMD_LED_ON 0x1 /* enum */ 6501 #define MC_CMD_LED_DEFAULT 0x2 /* enum */ 6502 6503 /* MC_CMD_SET_ID_LED_OUT msgresponse */ 6504 #define MC_CMD_SET_ID_LED_OUT_LEN 0 6505 6506 6507 /***********************************/ 6508 /* MC_CMD_SET_MAC 6509 * Set MAC configuration. Locks required: None. Return code: 0, EINVAL 6510 */ 6511 #define MC_CMD_SET_MAC 0x2c 6512 #undef MC_CMD_0x2c_PRIVILEGE_CTG 6513 6514 #define MC_CMD_0x2c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 6515 6516 /* MC_CMD_SET_MAC_IN msgrequest */ 6517 #define MC_CMD_SET_MAC_IN_LEN 28 6518 /* The MTU is the MTU programmed directly into the XMAC/GMAC (inclusive of 6519 * EtherII, VLAN, bug16011 padding). 6520 */ 6521 #define MC_CMD_SET_MAC_IN_MTU_OFST 0 6522 #define MC_CMD_SET_MAC_IN_MTU_LEN 4 6523 #define MC_CMD_SET_MAC_IN_DRAIN_OFST 4 6524 #define MC_CMD_SET_MAC_IN_DRAIN_LEN 4 6525 #define MC_CMD_SET_MAC_IN_ADDR_OFST 8 6526 #define MC_CMD_SET_MAC_IN_ADDR_LEN 8 6527 #define MC_CMD_SET_MAC_IN_ADDR_LO_OFST 8 6528 #define MC_CMD_SET_MAC_IN_ADDR_LO_LEN 4 6529 #define MC_CMD_SET_MAC_IN_ADDR_LO_LBN 64 6530 #define MC_CMD_SET_MAC_IN_ADDR_LO_WIDTH 32 6531 #define MC_CMD_SET_MAC_IN_ADDR_HI_OFST 12 6532 #define MC_CMD_SET_MAC_IN_ADDR_HI_LEN 4 6533 #define MC_CMD_SET_MAC_IN_ADDR_HI_LBN 96 6534 #define MC_CMD_SET_MAC_IN_ADDR_HI_WIDTH 32 6535 #define MC_CMD_SET_MAC_IN_REJECT_OFST 16 6536 #define MC_CMD_SET_MAC_IN_REJECT_LEN 4 6537 #define MC_CMD_SET_MAC_IN_REJECT_UNCST_OFST 16 6538 #define MC_CMD_SET_MAC_IN_REJECT_UNCST_LBN 0 6539 #define MC_CMD_SET_MAC_IN_REJECT_UNCST_WIDTH 1 6540 #define MC_CMD_SET_MAC_IN_REJECT_BRDCST_OFST 16 6541 #define MC_CMD_SET_MAC_IN_REJECT_BRDCST_LBN 1 6542 #define MC_CMD_SET_MAC_IN_REJECT_BRDCST_WIDTH 1 6543 #define MC_CMD_SET_MAC_IN_FCNTL_OFST 20 6544 #define MC_CMD_SET_MAC_IN_FCNTL_LEN 4 6545 /* enum: Flow control is off. */ 6546 /* MC_CMD_FCNTL_OFF 0x0 */ 6547 /* enum: Respond to flow control. */ 6548 /* MC_CMD_FCNTL_RESPOND 0x1 */ 6549 /* enum: Respond to and Issue flow control. */ 6550 /* MC_CMD_FCNTL_BIDIR 0x2 */ 6551 /* enum: Auto negotiate flow control. */ 6552 /* MC_CMD_FCNTL_AUTO 0x3 */ 6553 /* enum: Priority flow control. This is only supported on KSB. */ 6554 /* MC_CMD_FCNTL_QBB 0x4 */ 6555 /* enum: Issue flow control. */ 6556 /* MC_CMD_FCNTL_GENERATE 0x5 */ 6557 #define MC_CMD_SET_MAC_IN_FLAGS_OFST 24 6558 #define MC_CMD_SET_MAC_IN_FLAGS_LEN 4 6559 #define MC_CMD_SET_MAC_IN_FLAG_INCLUDE_FCS_OFST 24 6560 #define MC_CMD_SET_MAC_IN_FLAG_INCLUDE_FCS_LBN 0 6561 #define MC_CMD_SET_MAC_IN_FLAG_INCLUDE_FCS_WIDTH 1 6562 6563 /* MC_CMD_SET_MAC_EXT_IN msgrequest */ 6564 #define MC_CMD_SET_MAC_EXT_IN_LEN 32 6565 /* The MTU is the MTU programmed directly into the XMAC/GMAC (inclusive of 6566 * EtherII, VLAN, bug16011 padding). 6567 */ 6568 #define MC_CMD_SET_MAC_EXT_IN_MTU_OFST 0 6569 #define MC_CMD_SET_MAC_EXT_IN_MTU_LEN 4 6570 #define MC_CMD_SET_MAC_EXT_IN_DRAIN_OFST 4 6571 #define MC_CMD_SET_MAC_EXT_IN_DRAIN_LEN 4 6572 #define MC_CMD_SET_MAC_EXT_IN_ADDR_OFST 8 6573 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LEN 8 6574 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_OFST 8 6575 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_LEN 4 6576 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_LBN 64 6577 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_WIDTH 32 6578 #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_OFST 12 6579 #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_LEN 4 6580 #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_LBN 96 6581 #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_WIDTH 32 6582 #define MC_CMD_SET_MAC_EXT_IN_REJECT_OFST 16 6583 #define MC_CMD_SET_MAC_EXT_IN_REJECT_LEN 4 6584 #define MC_CMD_SET_MAC_EXT_IN_REJECT_UNCST_OFST 16 6585 #define MC_CMD_SET_MAC_EXT_IN_REJECT_UNCST_LBN 0 6586 #define MC_CMD_SET_MAC_EXT_IN_REJECT_UNCST_WIDTH 1 6587 #define MC_CMD_SET_MAC_EXT_IN_REJECT_BRDCST_OFST 16 6588 #define MC_CMD_SET_MAC_EXT_IN_REJECT_BRDCST_LBN 1 6589 #define MC_CMD_SET_MAC_EXT_IN_REJECT_BRDCST_WIDTH 1 6590 #define MC_CMD_SET_MAC_EXT_IN_FCNTL_OFST 20 6591 #define MC_CMD_SET_MAC_EXT_IN_FCNTL_LEN 4 6592 /* enum: Flow control is off. */ 6593 /* MC_CMD_FCNTL_OFF 0x0 */ 6594 /* enum: Respond to flow control. */ 6595 /* MC_CMD_FCNTL_RESPOND 0x1 */ 6596 /* enum: Respond to and Issue flow control. */ 6597 /* MC_CMD_FCNTL_BIDIR 0x2 */ 6598 /* enum: Auto negotiate flow control. */ 6599 /* MC_CMD_FCNTL_AUTO 0x3 */ 6600 /* enum: Priority flow control. This is only supported on KSB. */ 6601 /* MC_CMD_FCNTL_QBB 0x4 */ 6602 /* enum: Issue flow control. */ 6603 /* MC_CMD_FCNTL_GENERATE 0x5 */ 6604 #define MC_CMD_SET_MAC_EXT_IN_FLAGS_OFST 24 6605 #define MC_CMD_SET_MAC_EXT_IN_FLAGS_LEN 4 6606 #define MC_CMD_SET_MAC_EXT_IN_FLAG_INCLUDE_FCS_OFST 24 6607 #define MC_CMD_SET_MAC_EXT_IN_FLAG_INCLUDE_FCS_LBN 0 6608 #define MC_CMD_SET_MAC_EXT_IN_FLAG_INCLUDE_FCS_WIDTH 1 6609 /* Select which parameters to configure. A parameter will only be modified if 6610 * the corresponding control flag is set. If SET_MAC_ENHANCED is not set in 6611 * capabilities then this field is ignored (and all flags are assumed to be 6612 * set). 6613 */ 6614 #define MC_CMD_SET_MAC_EXT_IN_CONTROL_OFST 28 6615 #define MC_CMD_SET_MAC_EXT_IN_CONTROL_LEN 4 6616 #define MC_CMD_SET_MAC_EXT_IN_CFG_MTU_OFST 28 6617 #define MC_CMD_SET_MAC_EXT_IN_CFG_MTU_LBN 0 6618 #define MC_CMD_SET_MAC_EXT_IN_CFG_MTU_WIDTH 1 6619 #define MC_CMD_SET_MAC_EXT_IN_CFG_DRAIN_OFST 28 6620 #define MC_CMD_SET_MAC_EXT_IN_CFG_DRAIN_LBN 1 6621 #define MC_CMD_SET_MAC_EXT_IN_CFG_DRAIN_WIDTH 1 6622 #define MC_CMD_SET_MAC_EXT_IN_CFG_REJECT_OFST 28 6623 #define MC_CMD_SET_MAC_EXT_IN_CFG_REJECT_LBN 2 6624 #define MC_CMD_SET_MAC_EXT_IN_CFG_REJECT_WIDTH 1 6625 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCNTL_OFST 28 6626 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCNTL_LBN 3 6627 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCNTL_WIDTH 1 6628 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCS_OFST 28 6629 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCS_LBN 4 6630 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCS_WIDTH 1 6631 6632 /* MC_CMD_SET_MAC_V3_IN msgrequest */ 6633 #define MC_CMD_SET_MAC_V3_IN_LEN 40 6634 /* The MTU is the MTU programmed directly into the XMAC/GMAC (inclusive of 6635 * EtherII, VLAN, bug16011 padding). 6636 */ 6637 #define MC_CMD_SET_MAC_V3_IN_MTU_OFST 0 6638 #define MC_CMD_SET_MAC_V3_IN_MTU_LEN 4 6639 #define MC_CMD_SET_MAC_V3_IN_DRAIN_OFST 4 6640 #define MC_CMD_SET_MAC_V3_IN_DRAIN_LEN 4 6641 #define MC_CMD_SET_MAC_V3_IN_ADDR_OFST 8 6642 #define MC_CMD_SET_MAC_V3_IN_ADDR_LEN 8 6643 #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_OFST 8 6644 #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_LEN 4 6645 #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_LBN 64 6646 #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_WIDTH 32 6647 #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_OFST 12 6648 #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_LEN 4 6649 #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_LBN 96 6650 #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_WIDTH 32 6651 #define MC_CMD_SET_MAC_V3_IN_REJECT_OFST 16 6652 #define MC_CMD_SET_MAC_V3_IN_REJECT_LEN 4 6653 #define MC_CMD_SET_MAC_V3_IN_REJECT_UNCST_OFST 16 6654 #define MC_CMD_SET_MAC_V3_IN_REJECT_UNCST_LBN 0 6655 #define MC_CMD_SET_MAC_V3_IN_REJECT_UNCST_WIDTH 1 6656 #define MC_CMD_SET_MAC_V3_IN_REJECT_BRDCST_OFST 16 6657 #define MC_CMD_SET_MAC_V3_IN_REJECT_BRDCST_LBN 1 6658 #define MC_CMD_SET_MAC_V3_IN_REJECT_BRDCST_WIDTH 1 6659 #define MC_CMD_SET_MAC_V3_IN_FCNTL_OFST 20 6660 #define MC_CMD_SET_MAC_V3_IN_FCNTL_LEN 4 6661 /* enum: Flow control is off. */ 6662 /* MC_CMD_FCNTL_OFF 0x0 */ 6663 /* enum: Respond to flow control. */ 6664 /* MC_CMD_FCNTL_RESPOND 0x1 */ 6665 /* enum: Respond to and Issue flow control. */ 6666 /* MC_CMD_FCNTL_BIDIR 0x2 */ 6667 /* enum: Auto negotiate flow control. */ 6668 /* MC_CMD_FCNTL_AUTO 0x3 */ 6669 /* enum: Priority flow control. This is only supported on KSB. */ 6670 /* MC_CMD_FCNTL_QBB 0x4 */ 6671 /* enum: Issue flow control. */ 6672 /* MC_CMD_FCNTL_GENERATE 0x5 */ 6673 #define MC_CMD_SET_MAC_V3_IN_FLAGS_OFST 24 6674 #define MC_CMD_SET_MAC_V3_IN_FLAGS_LEN 4 6675 #define MC_CMD_SET_MAC_V3_IN_FLAG_INCLUDE_FCS_OFST 24 6676 #define MC_CMD_SET_MAC_V3_IN_FLAG_INCLUDE_FCS_LBN 0 6677 #define MC_CMD_SET_MAC_V3_IN_FLAG_INCLUDE_FCS_WIDTH 1 6678 /* Select which parameters to configure. A parameter will only be modified if 6679 * the corresponding control flag is set. If SET_MAC_ENHANCED is not set in 6680 * capabilities then this field is ignored (and all flags are assumed to be 6681 * set). 6682 */ 6683 #define MC_CMD_SET_MAC_V3_IN_CONTROL_OFST 28 6684 #define MC_CMD_SET_MAC_V3_IN_CONTROL_LEN 4 6685 #define MC_CMD_SET_MAC_V3_IN_CFG_MTU_OFST 28 6686 #define MC_CMD_SET_MAC_V3_IN_CFG_MTU_LBN 0 6687 #define MC_CMD_SET_MAC_V3_IN_CFG_MTU_WIDTH 1 6688 #define MC_CMD_SET_MAC_V3_IN_CFG_DRAIN_OFST 28 6689 #define MC_CMD_SET_MAC_V3_IN_CFG_DRAIN_LBN 1 6690 #define MC_CMD_SET_MAC_V3_IN_CFG_DRAIN_WIDTH 1 6691 #define MC_CMD_SET_MAC_V3_IN_CFG_REJECT_OFST 28 6692 #define MC_CMD_SET_MAC_V3_IN_CFG_REJECT_LBN 2 6693 #define MC_CMD_SET_MAC_V3_IN_CFG_REJECT_WIDTH 1 6694 #define MC_CMD_SET_MAC_V3_IN_CFG_FCNTL_OFST 28 6695 #define MC_CMD_SET_MAC_V3_IN_CFG_FCNTL_LBN 3 6696 #define MC_CMD_SET_MAC_V3_IN_CFG_FCNTL_WIDTH 1 6697 #define MC_CMD_SET_MAC_V3_IN_CFG_FCS_OFST 28 6698 #define MC_CMD_SET_MAC_V3_IN_CFG_FCS_LBN 4 6699 #define MC_CMD_SET_MAC_V3_IN_CFG_FCS_WIDTH 1 6700 /* Target port to set mac state for. Uses MAE_LINK_ENDPOINT_SELECTOR which 6701 * identifies a real or virtual network port by MAE port and link end. See the 6702 * structure definition for more details 6703 */ 6704 #define MC_CMD_SET_MAC_V3_IN_TARGET_OFST 32 6705 #define MC_CMD_SET_MAC_V3_IN_TARGET_LEN 8 6706 #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_OFST 32 6707 #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_LEN 4 6708 #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_LBN 256 6709 #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_WIDTH 32 6710 #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_OFST 36 6711 #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_LEN 4 6712 #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_LBN 288 6713 #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_WIDTH 32 6714 /* See structuredef: MAE_LINK_ENDPOINT_SELECTOR */ 6715 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_OFST 32 6716 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_LEN 4 6717 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FLAT_OFST 32 6718 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FLAT_LEN 4 6719 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_TYPE_OFST 35 6720 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_TYPE_LEN 1 6721 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 32 6722 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 6723 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 256 6724 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 6725 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 276 6726 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 6727 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 272 6728 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 6729 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 34 6730 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 6731 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 32 6732 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 6733 #define MC_CMD_SET_MAC_V3_IN_TARGET_LINK_END_OFST 36 6734 #define MC_CMD_SET_MAC_V3_IN_TARGET_LINK_END_LEN 4 6735 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_OFST 32 6736 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LEN 8 6737 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_OFST 32 6738 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_LEN 4 6739 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_LBN 256 6740 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_WIDTH 32 6741 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_OFST 36 6742 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_LEN 4 6743 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_LBN 288 6744 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_WIDTH 32 6745 6746 /* MC_CMD_SET_MAC_OUT msgresponse */ 6747 #define MC_CMD_SET_MAC_OUT_LEN 0 6748 6749 /* MC_CMD_SET_MAC_V2_OUT msgresponse */ 6750 #define MC_CMD_SET_MAC_V2_OUT_LEN 4 6751 /* MTU as configured after processing the request. See comment at 6752 * MC_CMD_SET_MAC_IN/MTU. To query MTU without doing any changes, set CONTROL 6753 * to 0. 6754 */ 6755 #define MC_CMD_SET_MAC_V2_OUT_MTU_OFST 0 6756 #define MC_CMD_SET_MAC_V2_OUT_MTU_LEN 4 6757 6758 6759 /***********************************/ 6760 /* MC_CMD_PHY_STATS 6761 * Get generic PHY statistics. This call returns the statistics for a generic 6762 * PHY in a sparse array (indexed by the enumerate). Each value is represented 6763 * by a 32bit number. If the DMA_ADDR is 0, then no DMA is performed, and the 6764 * statistics may be read from the message response. If DMA_ADDR != 0, then the 6765 * statistics are dmad to that (page-aligned location). Locks required: None. 6766 * Returns: 0, ETIME 6767 */ 6768 #define MC_CMD_PHY_STATS 0x2d 6769 #undef MC_CMD_0x2d_PRIVILEGE_CTG 6770 6771 #define MC_CMD_0x2d_PRIVILEGE_CTG SRIOV_CTG_LINK 6772 6773 /* MC_CMD_PHY_STATS_IN msgrequest */ 6774 #define MC_CMD_PHY_STATS_IN_LEN 8 6775 /* ??? */ 6776 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_OFST 0 6777 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LEN 8 6778 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_OFST 0 6779 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_LEN 4 6780 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_LBN 0 6781 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_WIDTH 32 6782 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_OFST 4 6783 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_LEN 4 6784 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_LBN 32 6785 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_WIDTH 32 6786 6787 /* MC_CMD_PHY_STATS_OUT_DMA msgresponse */ 6788 #define MC_CMD_PHY_STATS_OUT_DMA_LEN 0 6789 6790 /* MC_CMD_PHY_STATS_OUT_NO_DMA msgresponse */ 6791 #define MC_CMD_PHY_STATS_OUT_NO_DMA_LEN (((MC_CMD_PHY_NSTATS*32))>>3) 6792 #define MC_CMD_PHY_STATS_OUT_NO_DMA_STATISTICS_OFST 0 6793 #define MC_CMD_PHY_STATS_OUT_NO_DMA_STATISTICS_LEN 4 6794 #define MC_CMD_PHY_STATS_OUT_NO_DMA_STATISTICS_NUM MC_CMD_PHY_NSTATS 6795 /* enum: OUI. */ 6796 #define MC_CMD_OUI 0x0 6797 /* enum: PMA-PMD Link Up. */ 6798 #define MC_CMD_PMA_PMD_LINK_UP 0x1 6799 /* enum: PMA-PMD RX Fault. */ 6800 #define MC_CMD_PMA_PMD_RX_FAULT 0x2 6801 /* enum: PMA-PMD TX Fault. */ 6802 #define MC_CMD_PMA_PMD_TX_FAULT 0x3 6803 /* enum: PMA-PMD Signal */ 6804 #define MC_CMD_PMA_PMD_SIGNAL 0x4 6805 /* enum: PMA-PMD SNR A. */ 6806 #define MC_CMD_PMA_PMD_SNR_A 0x5 6807 /* enum: PMA-PMD SNR B. */ 6808 #define MC_CMD_PMA_PMD_SNR_B 0x6 6809 /* enum: PMA-PMD SNR C. */ 6810 #define MC_CMD_PMA_PMD_SNR_C 0x7 6811 /* enum: PMA-PMD SNR D. */ 6812 #define MC_CMD_PMA_PMD_SNR_D 0x8 6813 /* enum: PCS Link Up. */ 6814 #define MC_CMD_PCS_LINK_UP 0x9 6815 /* enum: PCS RX Fault. */ 6816 #define MC_CMD_PCS_RX_FAULT 0xa 6817 /* enum: PCS TX Fault. */ 6818 #define MC_CMD_PCS_TX_FAULT 0xb 6819 /* enum: PCS BER. */ 6820 #define MC_CMD_PCS_BER 0xc 6821 /* enum: PCS Block Errors. */ 6822 #define MC_CMD_PCS_BLOCK_ERRORS 0xd 6823 /* enum: PhyXS Link Up. */ 6824 #define MC_CMD_PHYXS_LINK_UP 0xe 6825 /* enum: PhyXS RX Fault. */ 6826 #define MC_CMD_PHYXS_RX_FAULT 0xf 6827 /* enum: PhyXS TX Fault. */ 6828 #define MC_CMD_PHYXS_TX_FAULT 0x10 6829 /* enum: PhyXS Align. */ 6830 #define MC_CMD_PHYXS_ALIGN 0x11 6831 /* enum: PhyXS Sync. */ 6832 #define MC_CMD_PHYXS_SYNC 0x12 6833 /* enum: AN link-up. */ 6834 #define MC_CMD_AN_LINK_UP 0x13 6835 /* enum: AN Complete. */ 6836 #define MC_CMD_AN_COMPLETE 0x14 6837 /* enum: AN 10GBaseT Status. */ 6838 #define MC_CMD_AN_10GBT_STATUS 0x15 6839 /* enum: Clause 22 Link-Up. */ 6840 #define MC_CMD_CL22_LINK_UP 0x16 6841 /* enum: (Last entry) */ 6842 #define MC_CMD_PHY_NSTATS 0x17 6843 6844 6845 /***********************************/ 6846 /* MC_CMD_MAC_STATS 6847 * Get generic MAC statistics. This call returns unified statistics maintained 6848 * by the MC as it switches between the GMAC and XMAC. The MC will write out 6849 * all supported stats. The driver should zero initialise the buffer to 6850 * guarantee consistent results. If the DMA_ADDR is 0, then no DMA is 6851 * performed, and the statistics may be read from the message response. If 6852 * DMA_ADDR != 0, then the statistics are dmad to that (page-aligned location). 6853 * Locks required: None. The PERIODIC_CLEAR option is not used and now has no 6854 * effect. Returns: 0, ETIME 6855 */ 6856 #define MC_CMD_MAC_STATS 0x2e 6857 #undef MC_CMD_0x2e_PRIVILEGE_CTG 6858 6859 #define MC_CMD_0x2e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 6860 6861 /* MC_CMD_MAC_STATS_IN msgrequest */ 6862 #define MC_CMD_MAC_STATS_IN_LEN 20 6863 /* ??? */ 6864 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_OFST 0 6865 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LEN 8 6866 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_OFST 0 6867 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_LEN 4 6868 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_LBN 0 6869 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_WIDTH 32 6870 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_OFST 4 6871 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_LEN 4 6872 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_LBN 32 6873 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_WIDTH 32 6874 #define MC_CMD_MAC_STATS_IN_CMD_OFST 8 6875 #define MC_CMD_MAC_STATS_IN_CMD_LEN 4 6876 #define MC_CMD_MAC_STATS_IN_DMA_OFST 8 6877 #define MC_CMD_MAC_STATS_IN_DMA_LBN 0 6878 #define MC_CMD_MAC_STATS_IN_DMA_WIDTH 1 6879 #define MC_CMD_MAC_STATS_IN_CLEAR_OFST 8 6880 #define MC_CMD_MAC_STATS_IN_CLEAR_LBN 1 6881 #define MC_CMD_MAC_STATS_IN_CLEAR_WIDTH 1 6882 #define MC_CMD_MAC_STATS_IN_PERIODIC_CHANGE_OFST 8 6883 #define MC_CMD_MAC_STATS_IN_PERIODIC_CHANGE_LBN 2 6884 #define MC_CMD_MAC_STATS_IN_PERIODIC_CHANGE_WIDTH 1 6885 #define MC_CMD_MAC_STATS_IN_PERIODIC_ENABLE_OFST 8 6886 #define MC_CMD_MAC_STATS_IN_PERIODIC_ENABLE_LBN 3 6887 #define MC_CMD_MAC_STATS_IN_PERIODIC_ENABLE_WIDTH 1 6888 #define MC_CMD_MAC_STATS_IN_PERIODIC_CLEAR_OFST 8 6889 #define MC_CMD_MAC_STATS_IN_PERIODIC_CLEAR_LBN 4 6890 #define MC_CMD_MAC_STATS_IN_PERIODIC_CLEAR_WIDTH 1 6891 #define MC_CMD_MAC_STATS_IN_PERIODIC_NOEVENT_OFST 8 6892 #define MC_CMD_MAC_STATS_IN_PERIODIC_NOEVENT_LBN 5 6893 #define MC_CMD_MAC_STATS_IN_PERIODIC_NOEVENT_WIDTH 1 6894 #define MC_CMD_MAC_STATS_IN_PERIOD_MS_OFST 8 6895 #define MC_CMD_MAC_STATS_IN_PERIOD_MS_LBN 16 6896 #define MC_CMD_MAC_STATS_IN_PERIOD_MS_WIDTH 16 6897 /* DMA length. Should be set to MAC_STATS_NUM_STATS * sizeof(uint64_t), as 6898 * returned by MC_CMD_GET_CAPABILITIES_V4_OUT. For legacy firmware not 6899 * supporting MC_CMD_GET_CAPABILITIES_V4_OUT, DMA_LEN should be set to 6900 * MC_CMD_MAC_NSTATS * sizeof(uint64_t) 6901 */ 6902 #define MC_CMD_MAC_STATS_IN_DMA_LEN_OFST 12 6903 #define MC_CMD_MAC_STATS_IN_DMA_LEN_LEN 4 6904 /* port id so vadapter stats can be provided */ 6905 #define MC_CMD_MAC_STATS_IN_PORT_ID_OFST 16 6906 #define MC_CMD_MAC_STATS_IN_PORT_ID_LEN 4 6907 6908 /* MC_CMD_MAC_STATS_V2_IN msgrequest */ 6909 #define MC_CMD_MAC_STATS_V2_IN_LEN 28 6910 /* ??? */ 6911 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_OFST 0 6912 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_LEN 8 6913 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_LO_OFST 0 6914 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_LO_LEN 4 6915 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_LO_LBN 0 6916 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_LO_WIDTH 32 6917 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_HI_OFST 4 6918 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_HI_LEN 4 6919 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_HI_LBN 32 6920 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_HI_WIDTH 32 6921 #define MC_CMD_MAC_STATS_V2_IN_CMD_OFST 8 6922 #define MC_CMD_MAC_STATS_V2_IN_CMD_LEN 4 6923 #define MC_CMD_MAC_STATS_V2_IN_DMA_OFST 8 6924 #define MC_CMD_MAC_STATS_V2_IN_DMA_LBN 0 6925 #define MC_CMD_MAC_STATS_V2_IN_DMA_WIDTH 1 6926 #define MC_CMD_MAC_STATS_V2_IN_CLEAR_OFST 8 6927 #define MC_CMD_MAC_STATS_V2_IN_CLEAR_LBN 1 6928 #define MC_CMD_MAC_STATS_V2_IN_CLEAR_WIDTH 1 6929 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_CHANGE_OFST 8 6930 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_CHANGE_LBN 2 6931 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_CHANGE_WIDTH 1 6932 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_ENABLE_OFST 8 6933 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_ENABLE_LBN 3 6934 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_ENABLE_WIDTH 1 6935 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_CLEAR_OFST 8 6936 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_CLEAR_LBN 4 6937 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_CLEAR_WIDTH 1 6938 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_NOEVENT_OFST 8 6939 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_NOEVENT_LBN 5 6940 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_NOEVENT_WIDTH 1 6941 #define MC_CMD_MAC_STATS_V2_IN_PERIOD_MS_OFST 8 6942 #define MC_CMD_MAC_STATS_V2_IN_PERIOD_MS_LBN 16 6943 #define MC_CMD_MAC_STATS_V2_IN_PERIOD_MS_WIDTH 16 6944 /* DMA length. Should be set to MAC_STATS_NUM_STATS * sizeof(uint64_t), as 6945 * returned by MC_CMD_GET_CAPABILITIES_V4_OUT. For legacy firmware not 6946 * supporting MC_CMD_GET_CAPABILITIES_V4_OUT, DMA_LEN should be set to 6947 * MC_CMD_MAC_NSTATS * sizeof(uint64_t) 6948 */ 6949 #define MC_CMD_MAC_STATS_V2_IN_DMA_LEN_OFST 12 6950 #define MC_CMD_MAC_STATS_V2_IN_DMA_LEN_LEN 4 6951 /* port id so vadapter stats can be provided */ 6952 #define MC_CMD_MAC_STATS_V2_IN_PORT_ID_OFST 16 6953 #define MC_CMD_MAC_STATS_V2_IN_PORT_ID_LEN 4 6954 /* Target port to request statistics for. Uses MAE_LINK_ENDPOINT_SELECTOR which 6955 * identifies a real or virtual network port by MAE port and link end. See the 6956 * structure definition for more details 6957 */ 6958 #define MC_CMD_MAC_STATS_V2_IN_TARGET_OFST 20 6959 #define MC_CMD_MAC_STATS_V2_IN_TARGET_LEN 8 6960 #define MC_CMD_MAC_STATS_V2_IN_TARGET_LO_OFST 20 6961 #define MC_CMD_MAC_STATS_V2_IN_TARGET_LO_LEN 4 6962 #define MC_CMD_MAC_STATS_V2_IN_TARGET_LO_LBN 160 6963 #define MC_CMD_MAC_STATS_V2_IN_TARGET_LO_WIDTH 32 6964 #define MC_CMD_MAC_STATS_V2_IN_TARGET_HI_OFST 24 6965 #define MC_CMD_MAC_STATS_V2_IN_TARGET_HI_LEN 4 6966 #define MC_CMD_MAC_STATS_V2_IN_TARGET_HI_LBN 192 6967 #define MC_CMD_MAC_STATS_V2_IN_TARGET_HI_WIDTH 32 6968 /* See structuredef: MAE_LINK_ENDPOINT_SELECTOR */ 6969 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_OFST 20 6970 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_LEN 4 6971 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FLAT_OFST 20 6972 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FLAT_LEN 4 6973 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_TYPE_OFST 23 6974 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_TYPE_LEN 1 6975 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 20 6976 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 6977 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 160 6978 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 6979 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 180 6980 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 6981 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 176 6982 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 6983 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 22 6984 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 6985 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 20 6986 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 6987 #define MC_CMD_MAC_STATS_V2_IN_TARGET_LINK_END_OFST 24 6988 #define MC_CMD_MAC_STATS_V2_IN_TARGET_LINK_END_LEN 4 6989 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_OFST 20 6990 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_LEN 8 6991 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_LO_OFST 20 6992 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_LO_LEN 4 6993 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_LO_LBN 160 6994 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_LO_WIDTH 32 6995 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_HI_OFST 24 6996 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_HI_LEN 4 6997 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_HI_LBN 192 6998 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_HI_WIDTH 32 6999 7000 /* MC_CMD_MAC_STATS_OUT_DMA msgresponse */ 7001 #define MC_CMD_MAC_STATS_OUT_DMA_LEN 0 7002 7003 /* MC_CMD_MAC_STATS_OUT_NO_DMA msgresponse */ 7004 #define MC_CMD_MAC_STATS_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS*64))>>3) 7005 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_OFST 0 7006 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LEN 8 7007 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_OFST 0 7008 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_LEN 4 7009 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_LBN 0 7010 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 7011 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_OFST 4 7012 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_LEN 4 7013 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_LBN 32 7014 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 7015 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS 7016 /* enum property: index */ 7017 #define MC_CMD_MAC_GENERATION_START 0x0 /* enum */ 7018 #define MC_CMD_MAC_DMABUF_START 0x1 /* enum */ 7019 #define MC_CMD_MAC_TX_PKTS 0x1 /* enum */ 7020 #define MC_CMD_MAC_TX_PAUSE_PKTS 0x2 /* enum */ 7021 #define MC_CMD_MAC_TX_CONTROL_PKTS 0x3 /* enum */ 7022 #define MC_CMD_MAC_TX_UNICAST_PKTS 0x4 /* enum */ 7023 #define MC_CMD_MAC_TX_MULTICAST_PKTS 0x5 /* enum */ 7024 #define MC_CMD_MAC_TX_BROADCAST_PKTS 0x6 /* enum */ 7025 #define MC_CMD_MAC_TX_BYTES 0x7 /* enum */ 7026 #define MC_CMD_MAC_TX_BAD_BYTES 0x8 /* enum */ 7027 #define MC_CMD_MAC_TX_LT64_PKTS 0x9 /* enum */ 7028 #define MC_CMD_MAC_TX_64_PKTS 0xa /* enum */ 7029 #define MC_CMD_MAC_TX_65_TO_127_PKTS 0xb /* enum */ 7030 #define MC_CMD_MAC_TX_128_TO_255_PKTS 0xc /* enum */ 7031 #define MC_CMD_MAC_TX_256_TO_511_PKTS 0xd /* enum */ 7032 #define MC_CMD_MAC_TX_512_TO_1023_PKTS 0xe /* enum */ 7033 #define MC_CMD_MAC_TX_1024_TO_15XX_PKTS 0xf /* enum */ 7034 #define MC_CMD_MAC_TX_15XX_TO_JUMBO_PKTS 0x10 /* enum */ 7035 #define MC_CMD_MAC_TX_GTJUMBO_PKTS 0x11 /* enum */ 7036 #define MC_CMD_MAC_TX_BAD_FCS_PKTS 0x12 /* enum */ 7037 #define MC_CMD_MAC_TX_SINGLE_COLLISION_PKTS 0x13 /* enum */ 7038 #define MC_CMD_MAC_TX_MULTIPLE_COLLISION_PKTS 0x14 /* enum */ 7039 #define MC_CMD_MAC_TX_EXCESSIVE_COLLISION_PKTS 0x15 /* enum */ 7040 #define MC_CMD_MAC_TX_LATE_COLLISION_PKTS 0x16 /* enum */ 7041 #define MC_CMD_MAC_TX_DEFERRED_PKTS 0x17 /* enum */ 7042 #define MC_CMD_MAC_TX_EXCESSIVE_DEFERRED_PKTS 0x18 /* enum */ 7043 #define MC_CMD_MAC_TX_NON_TCPUDP_PKTS 0x19 /* enum */ 7044 #define MC_CMD_MAC_TX_MAC_SRC_ERR_PKTS 0x1a /* enum */ 7045 #define MC_CMD_MAC_TX_IP_SRC_ERR_PKTS 0x1b /* enum */ 7046 #define MC_CMD_MAC_RX_PKTS 0x1c /* enum */ 7047 #define MC_CMD_MAC_RX_PAUSE_PKTS 0x1d /* enum */ 7048 #define MC_CMD_MAC_RX_GOOD_PKTS 0x1e /* enum */ 7049 #define MC_CMD_MAC_RX_CONTROL_PKTS 0x1f /* enum */ 7050 #define MC_CMD_MAC_RX_UNICAST_PKTS 0x20 /* enum */ 7051 #define MC_CMD_MAC_RX_MULTICAST_PKTS 0x21 /* enum */ 7052 #define MC_CMD_MAC_RX_BROADCAST_PKTS 0x22 /* enum */ 7053 #define MC_CMD_MAC_RX_BYTES 0x23 /* enum */ 7054 #define MC_CMD_MAC_RX_BAD_BYTES 0x24 /* enum */ 7055 #define MC_CMD_MAC_RX_64_PKTS 0x25 /* enum */ 7056 #define MC_CMD_MAC_RX_65_TO_127_PKTS 0x26 /* enum */ 7057 #define MC_CMD_MAC_RX_128_TO_255_PKTS 0x27 /* enum */ 7058 #define MC_CMD_MAC_RX_256_TO_511_PKTS 0x28 /* enum */ 7059 #define MC_CMD_MAC_RX_512_TO_1023_PKTS 0x29 /* enum */ 7060 #define MC_CMD_MAC_RX_1024_TO_15XX_PKTS 0x2a /* enum */ 7061 #define MC_CMD_MAC_RX_15XX_TO_JUMBO_PKTS 0x2b /* enum */ 7062 #define MC_CMD_MAC_RX_GTJUMBO_PKTS 0x2c /* enum */ 7063 #define MC_CMD_MAC_RX_UNDERSIZE_PKTS 0x2d /* enum */ 7064 #define MC_CMD_MAC_RX_BAD_FCS_PKTS 0x2e /* enum */ 7065 #define MC_CMD_MAC_RX_OVERFLOW_PKTS 0x2f /* enum */ 7066 #define MC_CMD_MAC_RX_FALSE_CARRIER_PKTS 0x30 /* enum */ 7067 #define MC_CMD_MAC_RX_SYMBOL_ERROR_PKTS 0x31 /* enum */ 7068 #define MC_CMD_MAC_RX_ALIGN_ERROR_PKTS 0x32 /* enum */ 7069 #define MC_CMD_MAC_RX_LENGTH_ERROR_PKTS 0x33 /* enum */ 7070 #define MC_CMD_MAC_RX_INTERNAL_ERROR_PKTS 0x34 /* enum */ 7071 #define MC_CMD_MAC_RX_JABBER_PKTS 0x35 /* enum */ 7072 #define MC_CMD_MAC_RX_NODESC_DROPS 0x36 /* enum */ 7073 #define MC_CMD_MAC_RX_LANES01_CHAR_ERR 0x37 /* enum */ 7074 #define MC_CMD_MAC_RX_LANES23_CHAR_ERR 0x38 /* enum */ 7075 #define MC_CMD_MAC_RX_LANES01_DISP_ERR 0x39 /* enum */ 7076 #define MC_CMD_MAC_RX_LANES23_DISP_ERR 0x3a /* enum */ 7077 #define MC_CMD_MAC_RX_MATCH_FAULT 0x3b /* enum */ 7078 /* enum: PM trunc_bb_overflow counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 7079 * capability only. 7080 */ 7081 #define MC_CMD_MAC_PM_TRUNC_BB_OVERFLOW 0x3c 7082 /* enum: PM discard_bb_overflow counter. Valid for EF10 with 7083 * PM_AND_RXDP_COUNTERS capability only. 7084 */ 7085 #define MC_CMD_MAC_PM_DISCARD_BB_OVERFLOW 0x3d 7086 /* enum: PM trunc_vfifo_full counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 7087 * capability only. 7088 */ 7089 #define MC_CMD_MAC_PM_TRUNC_VFIFO_FULL 0x3e 7090 /* enum: PM discard_vfifo_full counter. Valid for EF10 with 7091 * PM_AND_RXDP_COUNTERS capability only. 7092 */ 7093 #define MC_CMD_MAC_PM_DISCARD_VFIFO_FULL 0x3f 7094 /* enum: PM trunc_qbb counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 7095 * capability only. 7096 */ 7097 #define MC_CMD_MAC_PM_TRUNC_QBB 0x40 7098 /* enum: PM discard_qbb counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 7099 * capability only. 7100 */ 7101 #define MC_CMD_MAC_PM_DISCARD_QBB 0x41 7102 /* enum: PM discard_mapping counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 7103 * capability only. 7104 */ 7105 #define MC_CMD_MAC_PM_DISCARD_MAPPING 0x42 7106 /* enum: RXDP counter: Number of packets dropped due to the queue being 7107 * disabled. Valid for EF10 with PM_AND_RXDP_COUNTERS capability only. 7108 */ 7109 #define MC_CMD_MAC_RXDP_Q_DISABLED_PKTS 0x43 7110 /* enum: RXDP counter: Number of packets dropped by the DICPU. Valid for EF10 7111 * with PM_AND_RXDP_COUNTERS capability only. 7112 */ 7113 #define MC_CMD_MAC_RXDP_DI_DROPPED_PKTS 0x45 7114 /* enum: RXDP counter: Number of non-host packets. Valid for EF10 with 7115 * PM_AND_RXDP_COUNTERS capability only. 7116 */ 7117 #define MC_CMD_MAC_RXDP_STREAMING_PKTS 0x46 7118 /* enum: RXDP counter: Number of times an hlb descriptor fetch was performed. 7119 * Valid for EF10 with PM_AND_RXDP_COUNTERS capability only. 7120 */ 7121 #define MC_CMD_MAC_RXDP_HLB_FETCH_CONDITIONS 0x47 7122 /* enum: RXDP counter: Number of times the DPCPU waited for an existing 7123 * descriptor fetch. Valid for EF10 with PM_AND_RXDP_COUNTERS capability only. 7124 */ 7125 #define MC_CMD_MAC_RXDP_HLB_WAIT_CONDITIONS 0x48 7126 #define MC_CMD_MAC_VADAPTER_RX_DMABUF_START 0x4c /* enum */ 7127 #define MC_CMD_MAC_VADAPTER_RX_UNICAST_PACKETS 0x4c /* enum */ 7128 #define MC_CMD_MAC_VADAPTER_RX_UNICAST_BYTES 0x4d /* enum */ 7129 #define MC_CMD_MAC_VADAPTER_RX_MULTICAST_PACKETS 0x4e /* enum */ 7130 #define MC_CMD_MAC_VADAPTER_RX_MULTICAST_BYTES 0x4f /* enum */ 7131 #define MC_CMD_MAC_VADAPTER_RX_BROADCAST_PACKETS 0x50 /* enum */ 7132 #define MC_CMD_MAC_VADAPTER_RX_BROADCAST_BYTES 0x51 /* enum */ 7133 #define MC_CMD_MAC_VADAPTER_RX_BAD_PACKETS 0x52 /* enum */ 7134 #define MC_CMD_MAC_VADAPTER_RX_BAD_BYTES 0x53 /* enum */ 7135 #define MC_CMD_MAC_VADAPTER_RX_OVERFLOW 0x54 /* enum */ 7136 #define MC_CMD_MAC_VADAPTER_TX_DMABUF_START 0x57 /* enum */ 7137 #define MC_CMD_MAC_VADAPTER_TX_UNICAST_PACKETS 0x57 /* enum */ 7138 #define MC_CMD_MAC_VADAPTER_TX_UNICAST_BYTES 0x58 /* enum */ 7139 #define MC_CMD_MAC_VADAPTER_TX_MULTICAST_PACKETS 0x59 /* enum */ 7140 #define MC_CMD_MAC_VADAPTER_TX_MULTICAST_BYTES 0x5a /* enum */ 7141 #define MC_CMD_MAC_VADAPTER_TX_BROADCAST_PACKETS 0x5b /* enum */ 7142 #define MC_CMD_MAC_VADAPTER_TX_BROADCAST_BYTES 0x5c /* enum */ 7143 #define MC_CMD_MAC_VADAPTER_TX_BAD_PACKETS 0x5d /* enum */ 7144 #define MC_CMD_MAC_VADAPTER_TX_BAD_BYTES 0x5e /* enum */ 7145 #define MC_CMD_MAC_VADAPTER_TX_OVERFLOW 0x5f /* enum */ 7146 /* enum: Start of GMAC stats buffer space, for Siena only. */ 7147 #define MC_CMD_GMAC_DMABUF_START 0x40 7148 /* enum: End of GMAC stats buffer space, for Siena only. */ 7149 #define MC_CMD_GMAC_DMABUF_END 0x5f 7150 /* enum: GENERATION_END value, used together with GENERATION_START to verify 7151 * consistency of DMAd data. For legacy firmware / drivers without extended 7152 * stats (more precisely, when DMA_LEN == MC_CMD_MAC_NSTATS * 7153 * sizeof(uint64_t)), this entry holds the GENERATION_END value. Otherwise, 7154 * this value is invalid/ reserved and GENERATION_END is written as the last 7155 * 64-bit word of the DMA buffer (at DMA_LEN - sizeof(uint64_t)). Note that 7156 * this is consistent with the legacy behaviour, in the sense that entry 96 is 7157 * the last 64-bit word in the buffer when DMA_LEN == MC_CMD_MAC_NSTATS * 7158 * sizeof(uint64_t). See SF-109306-TC, Section 9.2 for details. 7159 */ 7160 #define MC_CMD_MAC_GENERATION_END 0x60 7161 #define MC_CMD_MAC_NSTATS 0x61 /* enum */ 7162 7163 /* MC_CMD_MAC_STATS_V2_OUT_DMA msgresponse */ 7164 #define MC_CMD_MAC_STATS_V2_OUT_DMA_LEN 0 7165 7166 /* MC_CMD_MAC_STATS_V2_OUT_NO_DMA msgresponse */ 7167 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS_V2*64))>>3) 7168 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_OFST 0 7169 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LEN 8 7170 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_OFST 0 7171 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_LEN 4 7172 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_LBN 0 7173 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 7174 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_OFST 4 7175 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_LEN 4 7176 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_LBN 32 7177 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 7178 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS_V2 7179 /* enum property: index */ 7180 /* enum: Start of FEC stats buffer space, Medford2 and up */ 7181 #define MC_CMD_MAC_FEC_DMABUF_START 0x61 7182 /* enum: Number of uncorrected FEC codewords on link (RS-FEC only for Medford2) 7183 */ 7184 #define MC_CMD_MAC_FEC_UNCORRECTED_ERRORS 0x61 7185 /* enum: Number of corrected FEC codewords on link (RS-FEC only for Medford2) 7186 */ 7187 #define MC_CMD_MAC_FEC_CORRECTED_ERRORS 0x62 7188 /* enum: Number of corrected 10-bit symbol errors, lane 0 (RS-FEC only) */ 7189 #define MC_CMD_MAC_FEC_CORRECTED_SYMBOLS_LANE0 0x63 7190 /* enum: Number of corrected 10-bit symbol errors, lane 1 (RS-FEC only) */ 7191 #define MC_CMD_MAC_FEC_CORRECTED_SYMBOLS_LANE1 0x64 7192 /* enum: Number of corrected 10-bit symbol errors, lane 2 (RS-FEC only) */ 7193 #define MC_CMD_MAC_FEC_CORRECTED_SYMBOLS_LANE2 0x65 7194 /* enum: Number of corrected 10-bit symbol errors, lane 3 (RS-FEC only) */ 7195 #define MC_CMD_MAC_FEC_CORRECTED_SYMBOLS_LANE3 0x66 7196 /* enum: This includes the space at offset 103 which is the final 7197 * GENERATION_END in a MAC_STATS_V2 response and otherwise unused. 7198 */ 7199 #define MC_CMD_MAC_NSTATS_V2 0x68 7200 /* Other enum values, see field(s): */ 7201 /* MC_CMD_MAC_STATS_OUT_NO_DMA/STATISTICS */ 7202 7203 /* MC_CMD_MAC_STATS_V3_OUT_DMA msgresponse */ 7204 #define MC_CMD_MAC_STATS_V3_OUT_DMA_LEN 0 7205 7206 /* MC_CMD_MAC_STATS_V3_OUT_NO_DMA msgresponse */ 7207 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS_V3*64))>>3) 7208 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_OFST 0 7209 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LEN 8 7210 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_OFST 0 7211 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_LEN 4 7212 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_LBN 0 7213 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 7214 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_OFST 4 7215 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_LEN 4 7216 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_LBN 32 7217 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 7218 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS_V3 7219 /* enum property: index */ 7220 /* enum: Start of CTPIO stats buffer space, Medford2 and up */ 7221 #define MC_CMD_MAC_CTPIO_DMABUF_START 0x68 7222 /* enum: Number of CTPIO fallbacks because a DMA packet was in progress on the 7223 * target VI 7224 */ 7225 #define MC_CMD_MAC_CTPIO_VI_BUSY_FALLBACK 0x68 7226 /* enum: Number of times a CTPIO send wrote beyond frame end (informational 7227 * only) 7228 */ 7229 #define MC_CMD_MAC_CTPIO_LONG_WRITE_SUCCESS 0x69 7230 /* enum: Number of CTPIO failures because the TX doorbell was written before 7231 * the end of the frame data 7232 */ 7233 #define MC_CMD_MAC_CTPIO_MISSING_DBELL_FAIL 0x6a 7234 /* enum: Number of CTPIO failures because the internal FIFO overflowed */ 7235 #define MC_CMD_MAC_CTPIO_OVERFLOW_FAIL 0x6b 7236 /* enum: Number of CTPIO failures because the host did not deliver data fast 7237 * enough to avoid MAC underflow 7238 */ 7239 #define MC_CMD_MAC_CTPIO_UNDERFLOW_FAIL 0x6c 7240 /* enum: Number of CTPIO failures because the host did not deliver all the 7241 * frame data within the timeout 7242 */ 7243 #define MC_CMD_MAC_CTPIO_TIMEOUT_FAIL 0x6d 7244 /* enum: Number of CTPIO failures because the frame data arrived out of order 7245 * or with gaps 7246 */ 7247 #define MC_CMD_MAC_CTPIO_NONCONTIG_WR_FAIL 0x6e 7248 /* enum: Number of CTPIO failures because the host started a new frame before 7249 * completing the previous one 7250 */ 7251 #define MC_CMD_MAC_CTPIO_FRM_CLOBBER_FAIL 0x6f 7252 /* enum: Number of CTPIO failures because a write was not a multiple of 32 bits 7253 * or not 32-bit aligned 7254 */ 7255 #define MC_CMD_MAC_CTPIO_INVALID_WR_FAIL 0x70 7256 /* enum: Number of CTPIO fallbacks because another VI on the same port was 7257 * sending a CTPIO frame 7258 */ 7259 #define MC_CMD_MAC_CTPIO_VI_CLOBBER_FALLBACK 0x71 7260 /* enum: Number of CTPIO fallbacks because target VI did not have CTPIO enabled 7261 */ 7262 #define MC_CMD_MAC_CTPIO_UNQUALIFIED_FALLBACK 0x72 7263 /* enum: Number of CTPIO fallbacks because length in header was less than 29 7264 * bytes 7265 */ 7266 #define MC_CMD_MAC_CTPIO_RUNT_FALLBACK 0x73 7267 /* enum: Total number of successful CTPIO sends on this port */ 7268 #define MC_CMD_MAC_CTPIO_SUCCESS 0x74 7269 /* enum: Total number of CTPIO fallbacks on this port */ 7270 #define MC_CMD_MAC_CTPIO_FALLBACK 0x75 7271 /* enum: Total number of CTPIO poisoned frames on this port, whether erased or 7272 * not 7273 */ 7274 #define MC_CMD_MAC_CTPIO_POISON 0x76 7275 /* enum: Total number of CTPIO erased frames on this port */ 7276 #define MC_CMD_MAC_CTPIO_ERASE 0x77 7277 /* enum: This includes the space at offset 120 which is the final 7278 * GENERATION_END in a MAC_STATS_V3 response and otherwise unused. 7279 */ 7280 #define MC_CMD_MAC_NSTATS_V3 0x79 7281 /* Other enum values, see field(s): */ 7282 /* MC_CMD_MAC_STATS_V2_OUT_NO_DMA/STATISTICS */ 7283 7284 /* MC_CMD_MAC_STATS_V4_OUT_DMA msgresponse */ 7285 #define MC_CMD_MAC_STATS_V4_OUT_DMA_LEN 0 7286 7287 /* MC_CMD_MAC_STATS_V4_OUT_NO_DMA msgresponse */ 7288 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS_V4*64))>>3) 7289 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_OFST 0 7290 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LEN 8 7291 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_OFST 0 7292 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_LEN 4 7293 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_LBN 0 7294 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 7295 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_OFST 4 7296 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_LEN 4 7297 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_LBN 32 7298 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 7299 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS_V4 7300 /* enum property: index */ 7301 /* enum: Start of V4 stats buffer space */ 7302 #define MC_CMD_MAC_V4_DMABUF_START 0x79 7303 /* enum: RXDP counter: Number of packets truncated because scattering was 7304 * disabled. 7305 */ 7306 #define MC_CMD_MAC_RXDP_SCATTER_DISABLED_TRUNC 0x79 7307 /* enum: RXDP counter: Number of times the RXDP head of line blocked waiting 7308 * for descriptors. Will be zero unless RXDP_HLB_IDLE capability is set. 7309 */ 7310 #define MC_CMD_MAC_RXDP_HLB_IDLE 0x7a 7311 /* enum: RXDP counter: Number of times the RXDP timed out while head of line 7312 * blocking. Will be zero unless RXDP_HLB_IDLE capability is set. 7313 */ 7314 #define MC_CMD_MAC_RXDP_HLB_TIMEOUT 0x7b 7315 /* enum: This includes the space at offset 124 which is the final 7316 * GENERATION_END in a MAC_STATS_V4 response and otherwise unused. 7317 */ 7318 #define MC_CMD_MAC_NSTATS_V4 0x7d 7319 /* Other enum values, see field(s): */ 7320 /* MC_CMD_MAC_STATS_V3_OUT_NO_DMA/STATISTICS */ 7321 7322 /* MC_CMD_MAC_STATS_V5_OUT_DMA msgresponse */ 7323 #define MC_CMD_MAC_STATS_V5_OUT_DMA_LEN 0 7324 7325 /* MC_CMD_MAC_STATS_V5_OUT_NO_DMA msgresponse */ 7326 #define MC_CMD_MAC_STATS_V5_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS_V5*64))>>3) 7327 #define MC_CMD_MAC_STATS_V5_OUT_NO_DMA_STATISTICS_OFST 0 7328 #define MC_CMD_MAC_STATS_V5_OUT_NO_DMA_STATISTICS_LEN 8 7329 #define MC_CMD_MAC_STATS_V5_OUT_NO_DMA_STATISTICS_LO_OFST 0 7330 #define MC_CMD_MAC_STATS_V5_OUT_NO_DMA_STATISTICS_LO_LEN 4 7331 #define MC_CMD_MAC_STATS_V5_OUT_NO_DMA_STATISTICS_LO_LBN 0 7332 #define MC_CMD_MAC_STATS_V5_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 7333 #define MC_CMD_MAC_STATS_V5_OUT_NO_DMA_STATISTICS_HI_OFST 4 7334 #define MC_CMD_MAC_STATS_V5_OUT_NO_DMA_STATISTICS_HI_LEN 4 7335 #define MC_CMD_MAC_STATS_V5_OUT_NO_DMA_STATISTICS_HI_LBN 32 7336 #define MC_CMD_MAC_STATS_V5_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 7337 #define MC_CMD_MAC_STATS_V5_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS_V5 7338 /* enum property: index */ 7339 /* enum: Start of V5 stats buffer space */ 7340 #define MC_CMD_MAC_V5_DMABUF_START 0x7c 7341 /* enum: Link toggle counter: Number of times the link has toggled between 7342 * up/down and down/up 7343 */ 7344 #define MC_CMD_MAC_LINK_TOGGLES 0x7c 7345 /* enum: This includes the space at offset 125 which is the final 7346 * GENERATION_END in a MAC_STATS_V5 response and otherwise unused. 7347 */ 7348 #define MC_CMD_MAC_NSTATS_V5 0x7e 7349 /* Other enum values, see field(s): */ 7350 /* MC_CMD_MAC_STATS_V4_OUT_NO_DMA/STATISTICS */ 7351 7352 7353 /***********************************/ 7354 /* MC_CMD_WOL_FILTER_SET 7355 * Set a WoL filter. 7356 */ 7357 #define MC_CMD_WOL_FILTER_SET 0x32 7358 #undef MC_CMD_0x32_PRIVILEGE_CTG 7359 7360 #define MC_CMD_0x32_PRIVILEGE_CTG SRIOV_CTG_LINK 7361 7362 /* MC_CMD_WOL_FILTER_SET_IN msgrequest */ 7363 #define MC_CMD_WOL_FILTER_SET_IN_LEN 192 7364 #define MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 7365 #define MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 7366 #define MC_CMD_FILTER_MODE_SIMPLE 0x0 /* enum */ 7367 #define MC_CMD_FILTER_MODE_STRUCTURED 0xffffffff /* enum */ 7368 /* A type value of 1 is unused. */ 7369 #define MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 7370 #define MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 7371 /* enum: Magic */ 7372 #define MC_CMD_WOL_TYPE_MAGIC 0x0 7373 /* enum: MS Windows Magic */ 7374 #define MC_CMD_WOL_TYPE_WIN_MAGIC 0x2 7375 /* enum: IPv4 Syn */ 7376 #define MC_CMD_WOL_TYPE_IPV4_SYN 0x3 7377 /* enum: IPv6 Syn */ 7378 #define MC_CMD_WOL_TYPE_IPV6_SYN 0x4 7379 /* enum: Bitmap */ 7380 #define MC_CMD_WOL_TYPE_BITMAP 0x5 7381 /* enum: Link */ 7382 #define MC_CMD_WOL_TYPE_LINK 0x6 7383 /* enum: (Above this for future use) */ 7384 #define MC_CMD_WOL_TYPE_MAX 0x7 7385 #define MC_CMD_WOL_FILTER_SET_IN_DATA_OFST 8 7386 #define MC_CMD_WOL_FILTER_SET_IN_DATA_LEN 4 7387 #define MC_CMD_WOL_FILTER_SET_IN_DATA_NUM 46 7388 7389 /* MC_CMD_WOL_FILTER_SET_IN_MAGIC msgrequest */ 7390 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_LEN 16 7391 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 7392 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 7393 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 7394 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 7395 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_OFST 8 7396 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LEN 8 7397 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_OFST 8 7398 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_LEN 4 7399 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_LBN 64 7400 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_WIDTH 32 7401 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_OFST 12 7402 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_LEN 4 7403 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_LBN 96 7404 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_WIDTH 32 7405 7406 /* MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN msgrequest */ 7407 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_LEN 20 7408 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 7409 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 7410 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 7411 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 7412 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_IP_OFST 8 7413 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_IP_LEN 4 7414 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_IP_OFST 12 7415 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_IP_LEN 4 7416 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_PORT_OFST 16 7417 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_PORT_LEN 2 7418 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_PORT_OFST 18 7419 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_PORT_LEN 2 7420 7421 /* MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN msgrequest */ 7422 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_LEN 44 7423 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 7424 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 7425 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 7426 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 7427 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_SRC_IP_OFST 8 7428 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_SRC_IP_LEN 16 7429 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_DST_IP_OFST 24 7430 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_DST_IP_LEN 16 7431 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_SRC_PORT_OFST 40 7432 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_SRC_PORT_LEN 2 7433 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_DST_PORT_OFST 42 7434 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_DST_PORT_LEN 2 7435 7436 /* MC_CMD_WOL_FILTER_SET_IN_BITMAP msgrequest */ 7437 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LEN 187 7438 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 7439 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 7440 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 7441 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 7442 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_MASK_OFST 8 7443 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_MASK_LEN 48 7444 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_BITMAP_OFST 56 7445 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_BITMAP_LEN 128 7446 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LEN_OFST 184 7447 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LEN_LEN 1 7448 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER3_OFST 185 7449 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER3_LEN 1 7450 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER4_OFST 186 7451 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER4_LEN 1 7452 7453 /* MC_CMD_WOL_FILTER_SET_IN_LINK msgrequest */ 7454 #define MC_CMD_WOL_FILTER_SET_IN_LINK_LEN 12 7455 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 7456 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 7457 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 7458 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 7459 #define MC_CMD_WOL_FILTER_SET_IN_LINK_MASK_OFST 8 7460 #define MC_CMD_WOL_FILTER_SET_IN_LINK_MASK_LEN 4 7461 #define MC_CMD_WOL_FILTER_SET_IN_LINK_UP_OFST 8 7462 #define MC_CMD_WOL_FILTER_SET_IN_LINK_UP_LBN 0 7463 #define MC_CMD_WOL_FILTER_SET_IN_LINK_UP_WIDTH 1 7464 #define MC_CMD_WOL_FILTER_SET_IN_LINK_DOWN_OFST 8 7465 #define MC_CMD_WOL_FILTER_SET_IN_LINK_DOWN_LBN 1 7466 #define MC_CMD_WOL_FILTER_SET_IN_LINK_DOWN_WIDTH 1 7467 7468 /* MC_CMD_WOL_FILTER_SET_OUT msgresponse */ 7469 #define MC_CMD_WOL_FILTER_SET_OUT_LEN 4 7470 #define MC_CMD_WOL_FILTER_SET_OUT_FILTER_ID_OFST 0 7471 #define MC_CMD_WOL_FILTER_SET_OUT_FILTER_ID_LEN 4 7472 7473 7474 /***********************************/ 7475 /* MC_CMD_WOL_FILTER_REMOVE 7476 * Remove a WoL filter. Locks required: None. Returns: 0, EINVAL, ENOSYS 7477 */ 7478 #define MC_CMD_WOL_FILTER_REMOVE 0x33 7479 #undef MC_CMD_0x33_PRIVILEGE_CTG 7480 7481 #define MC_CMD_0x33_PRIVILEGE_CTG SRIOV_CTG_LINK 7482 7483 /* MC_CMD_WOL_FILTER_REMOVE_IN msgrequest */ 7484 #define MC_CMD_WOL_FILTER_REMOVE_IN_LEN 4 7485 #define MC_CMD_WOL_FILTER_REMOVE_IN_FILTER_ID_OFST 0 7486 #define MC_CMD_WOL_FILTER_REMOVE_IN_FILTER_ID_LEN 4 7487 7488 /* MC_CMD_WOL_FILTER_REMOVE_OUT msgresponse */ 7489 #define MC_CMD_WOL_FILTER_REMOVE_OUT_LEN 0 7490 7491 7492 /***********************************/ 7493 /* MC_CMD_WOL_FILTER_RESET 7494 * Reset (i.e. remove all) WoL filters. Locks required: None. Returns: 0, 7495 * ENOSYS 7496 */ 7497 #define MC_CMD_WOL_FILTER_RESET 0x34 7498 #undef MC_CMD_0x34_PRIVILEGE_CTG 7499 7500 #define MC_CMD_0x34_PRIVILEGE_CTG SRIOV_CTG_LINK 7501 7502 /* MC_CMD_WOL_FILTER_RESET_IN msgrequest */ 7503 #define MC_CMD_WOL_FILTER_RESET_IN_LEN 4 7504 #define MC_CMD_WOL_FILTER_RESET_IN_MASK_OFST 0 7505 #define MC_CMD_WOL_FILTER_RESET_IN_MASK_LEN 4 7506 /* enum property: bitmask */ 7507 #define MC_CMD_WOL_FILTER_RESET_IN_WAKE_FILTERS 0x1 /* enum */ 7508 #define MC_CMD_WOL_FILTER_RESET_IN_LIGHTSOUT_OFFLOADS 0x2 /* enum */ 7509 7510 /* MC_CMD_WOL_FILTER_RESET_OUT msgresponse */ 7511 #define MC_CMD_WOL_FILTER_RESET_OUT_LEN 0 7512 7513 7514 /***********************************/ 7515 /* MC_CMD_NVRAM_TYPES 7516 * Return bitfield indicating available types of virtual NVRAM partitions. 7517 * Locks required: none. Returns: 0 7518 */ 7519 #define MC_CMD_NVRAM_TYPES 0x36 7520 #undef MC_CMD_0x36_PRIVILEGE_CTG 7521 7522 #define MC_CMD_0x36_PRIVILEGE_CTG SRIOV_CTG_ADMIN 7523 7524 /* MC_CMD_NVRAM_TYPES_IN msgrequest */ 7525 #define MC_CMD_NVRAM_TYPES_IN_LEN 0 7526 7527 /* MC_CMD_NVRAM_TYPES_OUT msgresponse */ 7528 #define MC_CMD_NVRAM_TYPES_OUT_LEN 4 7529 /* Bit mask of supported types. */ 7530 #define MC_CMD_NVRAM_TYPES_OUT_TYPES_OFST 0 7531 #define MC_CMD_NVRAM_TYPES_OUT_TYPES_LEN 4 7532 /* enum property: bitshift */ 7533 /* enum: Disabled callisto. */ 7534 #define MC_CMD_NVRAM_TYPE_DISABLED_CALLISTO 0x0 7535 /* enum: MC firmware. */ 7536 #define MC_CMD_NVRAM_TYPE_MC_FW 0x1 7537 /* enum: MC backup firmware. */ 7538 #define MC_CMD_NVRAM_TYPE_MC_FW_BACKUP 0x2 7539 /* enum: Static configuration Port0. */ 7540 #define MC_CMD_NVRAM_TYPE_STATIC_CFG_PORT0 0x3 7541 /* enum: Static configuration Port1. */ 7542 #define MC_CMD_NVRAM_TYPE_STATIC_CFG_PORT1 0x4 7543 /* enum: Dynamic configuration Port0. */ 7544 #define MC_CMD_NVRAM_TYPE_DYNAMIC_CFG_PORT0 0x5 7545 /* enum: Dynamic configuration Port1. */ 7546 #define MC_CMD_NVRAM_TYPE_DYNAMIC_CFG_PORT1 0x6 7547 /* enum: Expansion Rom. */ 7548 #define MC_CMD_NVRAM_TYPE_EXP_ROM 0x7 7549 /* enum: Expansion Rom Configuration Port0. */ 7550 #define MC_CMD_NVRAM_TYPE_EXP_ROM_CFG_PORT0 0x8 7551 /* enum: Expansion Rom Configuration Port1. */ 7552 #define MC_CMD_NVRAM_TYPE_EXP_ROM_CFG_PORT1 0x9 7553 /* enum: Phy Configuration Port0. */ 7554 #define MC_CMD_NVRAM_TYPE_PHY_PORT0 0xa 7555 /* enum: Phy Configuration Port1. */ 7556 #define MC_CMD_NVRAM_TYPE_PHY_PORT1 0xb 7557 /* enum: Log. */ 7558 #define MC_CMD_NVRAM_TYPE_LOG 0xc 7559 /* enum: FPGA image. */ 7560 #define MC_CMD_NVRAM_TYPE_FPGA 0xd 7561 /* enum: FPGA backup image */ 7562 #define MC_CMD_NVRAM_TYPE_FPGA_BACKUP 0xe 7563 /* enum: FC firmware. */ 7564 #define MC_CMD_NVRAM_TYPE_FC_FW 0xf 7565 /* enum: FC backup firmware. */ 7566 #define MC_CMD_NVRAM_TYPE_FC_FW_BACKUP 0x10 7567 /* enum: CPLD image. */ 7568 #define MC_CMD_NVRAM_TYPE_CPLD 0x11 7569 /* enum: Licensing information. */ 7570 #define MC_CMD_NVRAM_TYPE_LICENSE 0x12 7571 /* enum: FC Log. */ 7572 #define MC_CMD_NVRAM_TYPE_FC_LOG 0x13 7573 /* enum: Additional flash on FPGA. */ 7574 #define MC_CMD_NVRAM_TYPE_FC_EXTRA 0x14 7575 7576 7577 /***********************************/ 7578 /* MC_CMD_NVRAM_INFO 7579 * Read info about a virtual NVRAM partition. Locks required: none. Returns: 0, 7580 * EINVAL (bad type). 7581 */ 7582 #define MC_CMD_NVRAM_INFO 0x37 7583 #undef MC_CMD_0x37_PRIVILEGE_CTG 7584 7585 #define MC_CMD_0x37_PRIVILEGE_CTG SRIOV_CTG_ADMIN 7586 7587 /* MC_CMD_NVRAM_INFO_IN msgrequest */ 7588 #define MC_CMD_NVRAM_INFO_IN_LEN 4 7589 #define MC_CMD_NVRAM_INFO_IN_TYPE_OFST 0 7590 #define MC_CMD_NVRAM_INFO_IN_TYPE_LEN 4 7591 /* Enum values, see field(s): */ 7592 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 7593 7594 /* MC_CMD_NVRAM_INFO_OUT msgresponse */ 7595 #define MC_CMD_NVRAM_INFO_OUT_LEN 24 7596 #define MC_CMD_NVRAM_INFO_OUT_TYPE_OFST 0 7597 #define MC_CMD_NVRAM_INFO_OUT_TYPE_LEN 4 7598 /* Enum values, see field(s): */ 7599 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 7600 #define MC_CMD_NVRAM_INFO_OUT_SIZE_OFST 4 7601 #define MC_CMD_NVRAM_INFO_OUT_SIZE_LEN 4 7602 #define MC_CMD_NVRAM_INFO_OUT_ERASESIZE_OFST 8 7603 #define MC_CMD_NVRAM_INFO_OUT_ERASESIZE_LEN 4 7604 #define MC_CMD_NVRAM_INFO_OUT_FLAGS_OFST 12 7605 #define MC_CMD_NVRAM_INFO_OUT_FLAGS_LEN 4 7606 #define MC_CMD_NVRAM_INFO_OUT_PROTECTED_OFST 12 7607 #define MC_CMD_NVRAM_INFO_OUT_PROTECTED_LBN 0 7608 #define MC_CMD_NVRAM_INFO_OUT_PROTECTED_WIDTH 1 7609 #define MC_CMD_NVRAM_INFO_OUT_TLV_OFST 12 7610 #define MC_CMD_NVRAM_INFO_OUT_TLV_LBN 1 7611 #define MC_CMD_NVRAM_INFO_OUT_TLV_WIDTH 1 7612 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_IF_TSA_BOUND_OFST 12 7613 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_IF_TSA_BOUND_LBN 2 7614 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_IF_TSA_BOUND_WIDTH 1 7615 #define MC_CMD_NVRAM_INFO_OUT_CRC_OFST 12 7616 #define MC_CMD_NVRAM_INFO_OUT_CRC_LBN 3 7617 #define MC_CMD_NVRAM_INFO_OUT_CRC_WIDTH 1 7618 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_OFST 12 7619 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_LBN 5 7620 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_WIDTH 1 7621 #define MC_CMD_NVRAM_INFO_OUT_CMAC_OFST 12 7622 #define MC_CMD_NVRAM_INFO_OUT_CMAC_LBN 6 7623 #define MC_CMD_NVRAM_INFO_OUT_CMAC_WIDTH 1 7624 #define MC_CMD_NVRAM_INFO_OUT_A_B_OFST 12 7625 #define MC_CMD_NVRAM_INFO_OUT_A_B_LBN 7 7626 #define MC_CMD_NVRAM_INFO_OUT_A_B_WIDTH 1 7627 #define MC_CMD_NVRAM_INFO_OUT_PHYSDEV_OFST 16 7628 #define MC_CMD_NVRAM_INFO_OUT_PHYSDEV_LEN 4 7629 #define MC_CMD_NVRAM_INFO_OUT_PHYSADDR_OFST 20 7630 #define MC_CMD_NVRAM_INFO_OUT_PHYSADDR_LEN 4 7631 7632 /* MC_CMD_NVRAM_INFO_V2_OUT msgresponse */ 7633 #define MC_CMD_NVRAM_INFO_V2_OUT_LEN 28 7634 #define MC_CMD_NVRAM_INFO_V2_OUT_TYPE_OFST 0 7635 #define MC_CMD_NVRAM_INFO_V2_OUT_TYPE_LEN 4 7636 /* Enum values, see field(s): */ 7637 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 7638 #define MC_CMD_NVRAM_INFO_V2_OUT_SIZE_OFST 4 7639 #define MC_CMD_NVRAM_INFO_V2_OUT_SIZE_LEN 4 7640 #define MC_CMD_NVRAM_INFO_V2_OUT_ERASESIZE_OFST 8 7641 #define MC_CMD_NVRAM_INFO_V2_OUT_ERASESIZE_LEN 4 7642 #define MC_CMD_NVRAM_INFO_V2_OUT_FLAGS_OFST 12 7643 #define MC_CMD_NVRAM_INFO_V2_OUT_FLAGS_LEN 4 7644 #define MC_CMD_NVRAM_INFO_V2_OUT_PROTECTED_OFST 12 7645 #define MC_CMD_NVRAM_INFO_V2_OUT_PROTECTED_LBN 0 7646 #define MC_CMD_NVRAM_INFO_V2_OUT_PROTECTED_WIDTH 1 7647 #define MC_CMD_NVRAM_INFO_V2_OUT_TLV_OFST 12 7648 #define MC_CMD_NVRAM_INFO_V2_OUT_TLV_LBN 1 7649 #define MC_CMD_NVRAM_INFO_V2_OUT_TLV_WIDTH 1 7650 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_IF_TSA_BOUND_OFST 12 7651 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_IF_TSA_BOUND_LBN 2 7652 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_IF_TSA_BOUND_WIDTH 1 7653 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_OFST 12 7654 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_LBN 5 7655 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_WIDTH 1 7656 #define MC_CMD_NVRAM_INFO_V2_OUT_A_B_OFST 12 7657 #define MC_CMD_NVRAM_INFO_V2_OUT_A_B_LBN 7 7658 #define MC_CMD_NVRAM_INFO_V2_OUT_A_B_WIDTH 1 7659 #define MC_CMD_NVRAM_INFO_V2_OUT_WRITE_ONLY_OFST 12 7660 #define MC_CMD_NVRAM_INFO_V2_OUT_WRITE_ONLY_LBN 8 7661 #define MC_CMD_NVRAM_INFO_V2_OUT_WRITE_ONLY_WIDTH 1 7662 #define MC_CMD_NVRAM_INFO_V2_OUT_SEQUENTIAL_WRITE_OFST 12 7663 #define MC_CMD_NVRAM_INFO_V2_OUT_SEQUENTIAL_WRITE_LBN 9 7664 #define MC_CMD_NVRAM_INFO_V2_OUT_SEQUENTIAL_WRITE_WIDTH 1 7665 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSDEV_OFST 16 7666 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSDEV_LEN 4 7667 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSADDR_OFST 20 7668 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSADDR_LEN 4 7669 /* Writes must be multiples of this size. Added to support the MUM on Sorrento. 7670 */ 7671 #define MC_CMD_NVRAM_INFO_V2_OUT_WRITESIZE_OFST 24 7672 #define MC_CMD_NVRAM_INFO_V2_OUT_WRITESIZE_LEN 4 7673 7674 7675 /***********************************/ 7676 /* MC_CMD_NVRAM_UPDATE_START 7677 * Start a group of update operations on a virtual NVRAM partition. Locks 7678 * required: PHY_LOCK if type==*PHY*. Returns: 0, EINVAL (bad type), EACCES (if 7679 * PHY_LOCK required and not held). In an adapter bound to a TSA controller, 7680 * MC_CMD_NVRAM_UPDATE_START can only be used on a subset of partition types 7681 * i.e. static config, dynamic config and expansion ROM config. Attempting to 7682 * perform this operation on a restricted partition will return the error 7683 * EPERM. 7684 */ 7685 #define MC_CMD_NVRAM_UPDATE_START 0x38 7686 #undef MC_CMD_0x38_PRIVILEGE_CTG 7687 7688 #define MC_CMD_0x38_PRIVILEGE_CTG SRIOV_CTG_ADMIN 7689 7690 /* MC_CMD_NVRAM_UPDATE_START_IN msgrequest: Legacy NVRAM_UPDATE_START request. 7691 * Use NVRAM_UPDATE_START_V2_IN in new code 7692 */ 7693 #define MC_CMD_NVRAM_UPDATE_START_IN_LEN 4 7694 #define MC_CMD_NVRAM_UPDATE_START_IN_TYPE_OFST 0 7695 #define MC_CMD_NVRAM_UPDATE_START_IN_TYPE_LEN 4 7696 /* Enum values, see field(s): */ 7697 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 7698 7699 /* MC_CMD_NVRAM_UPDATE_START_V2_IN msgrequest: Extended NVRAM_UPDATE_START 7700 * request with additional flags indicating version of command in use. See 7701 * MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT for details of extended functionality. Use 7702 * paired up with NVRAM_UPDATE_FINISH_V2_IN. 7703 */ 7704 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_LEN 8 7705 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_TYPE_OFST 0 7706 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_TYPE_LEN 4 7707 /* Enum values, see field(s): */ 7708 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 7709 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAGS_OFST 4 7710 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAGS_LEN 4 7711 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT_OFST 4 7712 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT_LBN 0 7713 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT_WIDTH 1 7714 7715 /* MC_CMD_NVRAM_UPDATE_START_OUT msgresponse */ 7716 #define MC_CMD_NVRAM_UPDATE_START_OUT_LEN 0 7717 7718 7719 /***********************************/ 7720 /* MC_CMD_NVRAM_READ 7721 * Read data from a virtual NVRAM partition. Locks required: PHY_LOCK if 7722 * type==*PHY*. Returns: 0, EINVAL (bad type/offset/length), EACCES (if 7723 * PHY_LOCK required and not held) 7724 */ 7725 #define MC_CMD_NVRAM_READ 0x39 7726 #undef MC_CMD_0x39_PRIVILEGE_CTG 7727 7728 #define MC_CMD_0x39_PRIVILEGE_CTG SRIOV_CTG_ADMIN 7729 7730 /* MC_CMD_NVRAM_READ_IN msgrequest */ 7731 #define MC_CMD_NVRAM_READ_IN_LEN 12 7732 #define MC_CMD_NVRAM_READ_IN_TYPE_OFST 0 7733 #define MC_CMD_NVRAM_READ_IN_TYPE_LEN 4 7734 /* Enum values, see field(s): */ 7735 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 7736 #define MC_CMD_NVRAM_READ_IN_OFFSET_OFST 4 7737 #define MC_CMD_NVRAM_READ_IN_OFFSET_LEN 4 7738 /* amount to read in bytes */ 7739 #define MC_CMD_NVRAM_READ_IN_LENGTH_OFST 8 7740 #define MC_CMD_NVRAM_READ_IN_LENGTH_LEN 4 7741 7742 /* MC_CMD_NVRAM_READ_IN_V2 msgrequest */ 7743 #define MC_CMD_NVRAM_READ_IN_V2_LEN 16 7744 #define MC_CMD_NVRAM_READ_IN_V2_TYPE_OFST 0 7745 #define MC_CMD_NVRAM_READ_IN_V2_TYPE_LEN 4 7746 /* Enum values, see field(s): */ 7747 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 7748 #define MC_CMD_NVRAM_READ_IN_V2_OFFSET_OFST 4 7749 #define MC_CMD_NVRAM_READ_IN_V2_OFFSET_LEN 4 7750 /* amount to read in bytes */ 7751 #define MC_CMD_NVRAM_READ_IN_V2_LENGTH_OFST 8 7752 #define MC_CMD_NVRAM_READ_IN_V2_LENGTH_LEN 4 7753 /* Optional control info. If a partition is stored with an A/B versioning 7754 * scheme (i.e. in more than one physical partition in NVRAM) the host can set 7755 * this to control which underlying physical partition is used to read data 7756 * from. This allows it to perform a read-modify-write-verify with the write 7757 * lock continuously held by calling NVRAM_UPDATE_START, reading the old 7758 * contents using MODE=TARGET_CURRENT, overwriting the old partition and then 7759 * verifying by reading with MODE=TARGET_BACKUP. 7760 */ 7761 #define MC_CMD_NVRAM_READ_IN_V2_MODE_OFST 12 7762 #define MC_CMD_NVRAM_READ_IN_V2_MODE_LEN 4 7763 /* enum: Same as omitting MODE: caller sees data in current partition unless it 7764 * holds the write lock in which case it sees data in the partition it is 7765 * updating. 7766 */ 7767 #define MC_CMD_NVRAM_READ_IN_V2_DEFAULT 0x0 7768 /* enum: Read from the current partition of an A/B pair, even if holding the 7769 * write lock. 7770 */ 7771 #define MC_CMD_NVRAM_READ_IN_V2_TARGET_CURRENT 0x1 7772 /* enum: Read from the non-current (i.e. to be updated) partition of an A/B 7773 * pair 7774 */ 7775 #define MC_CMD_NVRAM_READ_IN_V2_TARGET_BACKUP 0x2 7776 7777 /* MC_CMD_NVRAM_READ_OUT msgresponse */ 7778 #define MC_CMD_NVRAM_READ_OUT_LENMIN 1 7779 #define MC_CMD_NVRAM_READ_OUT_LENMAX 252 7780 #define MC_CMD_NVRAM_READ_OUT_LENMAX_MCDI2 1020 7781 #define MC_CMD_NVRAM_READ_OUT_LEN(num) (0+1*(num)) 7782 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_NUM(len) (((len)-0)/1) 7783 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_OFST 0 7784 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_LEN 1 7785 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_MINNUM 1 7786 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_MAXNUM 252 7787 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_MAXNUM_MCDI2 1020 7788 7789 7790 /***********************************/ 7791 /* MC_CMD_NVRAM_WRITE 7792 * Write data to a virtual NVRAM partition. Locks required: PHY_LOCK if 7793 * type==*PHY*. Returns: 0, EINVAL (bad type/offset/length), EACCES (if 7794 * PHY_LOCK required and not held) 7795 */ 7796 #define MC_CMD_NVRAM_WRITE 0x3a 7797 #undef MC_CMD_0x3a_PRIVILEGE_CTG 7798 7799 #define MC_CMD_0x3a_PRIVILEGE_CTG SRIOV_CTG_ADMIN 7800 7801 /* MC_CMD_NVRAM_WRITE_IN msgrequest */ 7802 #define MC_CMD_NVRAM_WRITE_IN_LENMIN 13 7803 #define MC_CMD_NVRAM_WRITE_IN_LENMAX 252 7804 #define MC_CMD_NVRAM_WRITE_IN_LENMAX_MCDI2 1020 7805 #define MC_CMD_NVRAM_WRITE_IN_LEN(num) (12+1*(num)) 7806 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_NUM(len) (((len)-12)/1) 7807 #define MC_CMD_NVRAM_WRITE_IN_TYPE_OFST 0 7808 #define MC_CMD_NVRAM_WRITE_IN_TYPE_LEN 4 7809 /* Enum values, see field(s): */ 7810 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 7811 #define MC_CMD_NVRAM_WRITE_IN_OFFSET_OFST 4 7812 #define MC_CMD_NVRAM_WRITE_IN_OFFSET_LEN 4 7813 #define MC_CMD_NVRAM_WRITE_IN_LENGTH_OFST 8 7814 #define MC_CMD_NVRAM_WRITE_IN_LENGTH_LEN 4 7815 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_OFST 12 7816 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_LEN 1 7817 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_MINNUM 1 7818 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_MAXNUM 240 7819 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_MAXNUM_MCDI2 1008 7820 7821 /* MC_CMD_NVRAM_WRITE_OUT msgresponse */ 7822 #define MC_CMD_NVRAM_WRITE_OUT_LEN 0 7823 7824 7825 /***********************************/ 7826 /* MC_CMD_NVRAM_ERASE 7827 * Erase sector(s) from a virtual NVRAM partition. Locks required: PHY_LOCK if 7828 * type==*PHY*. Returns: 0, EINVAL (bad type/offset/length), EACCES (if 7829 * PHY_LOCK required and not held) 7830 */ 7831 #define MC_CMD_NVRAM_ERASE 0x3b 7832 #undef MC_CMD_0x3b_PRIVILEGE_CTG 7833 7834 #define MC_CMD_0x3b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 7835 7836 /* MC_CMD_NVRAM_ERASE_IN msgrequest */ 7837 #define MC_CMD_NVRAM_ERASE_IN_LEN 12 7838 #define MC_CMD_NVRAM_ERASE_IN_TYPE_OFST 0 7839 #define MC_CMD_NVRAM_ERASE_IN_TYPE_LEN 4 7840 /* Enum values, see field(s): */ 7841 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 7842 #define MC_CMD_NVRAM_ERASE_IN_OFFSET_OFST 4 7843 #define MC_CMD_NVRAM_ERASE_IN_OFFSET_LEN 4 7844 #define MC_CMD_NVRAM_ERASE_IN_LENGTH_OFST 8 7845 #define MC_CMD_NVRAM_ERASE_IN_LENGTH_LEN 4 7846 7847 /* MC_CMD_NVRAM_ERASE_OUT msgresponse */ 7848 #define MC_CMD_NVRAM_ERASE_OUT_LEN 0 7849 7850 7851 /***********************************/ 7852 /* MC_CMD_NVRAM_UPDATE_FINISH 7853 * Finish a group of update operations on a virtual NVRAM partition. Locks 7854 * required: PHY_LOCK if type==*PHY*. Returns: 0, EINVAL (bad type/offset/ 7855 * length), EACCES (if PHY_LOCK required and not held). In an adapter bound to 7856 * a TSA controller, MC_CMD_NVRAM_UPDATE_FINISH can only be used on a subset of 7857 * partition types i.e. static config, dynamic config and expansion ROM config. 7858 * Attempting to perform this operation on a restricted partition will return 7859 * the error EPERM. 7860 */ 7861 #define MC_CMD_NVRAM_UPDATE_FINISH 0x3c 7862 #undef MC_CMD_0x3c_PRIVILEGE_CTG 7863 7864 #define MC_CMD_0x3c_PRIVILEGE_CTG SRIOV_CTG_ADMIN 7865 7866 /* MC_CMD_NVRAM_UPDATE_FINISH_IN msgrequest: Legacy NVRAM_UPDATE_FINISH 7867 * request. Use NVRAM_UPDATE_FINISH_V2_IN in new code 7868 */ 7869 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_LEN 8 7870 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_TYPE_OFST 0 7871 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_TYPE_LEN 4 7872 /* Enum values, see field(s): */ 7873 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 7874 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_REBOOT_OFST 4 7875 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_REBOOT_LEN 4 7876 7877 /* MC_CMD_NVRAM_UPDATE_FINISH_V2_IN msgrequest: Extended NVRAM_UPDATE_FINISH 7878 * request with additional flags indicating version of NVRAM_UPDATE commands in 7879 * use. See MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT for details of extended 7880 * functionality. Use paired up with NVRAM_UPDATE_START_V2_IN. 7881 */ 7882 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_LEN 12 7883 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_TYPE_OFST 0 7884 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_TYPE_LEN 4 7885 /* Enum values, see field(s): */ 7886 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 7887 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_REBOOT_OFST 4 7888 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_REBOOT_LEN 4 7889 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAGS_OFST 8 7890 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAGS_LEN 4 7891 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_REPORT_VERIFY_RESULT_OFST 8 7892 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_REPORT_VERIFY_RESULT_LBN 0 7893 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_REPORT_VERIFY_RESULT_WIDTH 1 7894 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_RUN_IN_BACKGROUND_OFST 8 7895 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_RUN_IN_BACKGROUND_LBN 1 7896 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_RUN_IN_BACKGROUND_WIDTH 1 7897 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_POLL_VERIFY_RESULT_OFST 8 7898 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_POLL_VERIFY_RESULT_LBN 2 7899 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_POLL_VERIFY_RESULT_WIDTH 1 7900 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_ABORT_OFST 8 7901 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_ABORT_LBN 3 7902 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_ABORT_WIDTH 1 7903 7904 /* MC_CMD_NVRAM_UPDATE_FINISH_OUT msgresponse: Legacy NVRAM_UPDATE_FINISH 7905 * response. Use NVRAM_UPDATE_FINISH_V2_OUT in new code 7906 */ 7907 #define MC_CMD_NVRAM_UPDATE_FINISH_OUT_LEN 0 7908 7909 /* MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT msgresponse: 7910 * 7911 * Extended NVRAM_UPDATE_FINISH response that communicates the result of secure 7912 * firmware validation where applicable back to the host. 7913 * 7914 * Medford only: For signed firmware images, such as those for medford, the MC 7915 * firmware verifies the signature before marking the firmware image as valid. 7916 * This process takes a few seconds to complete. So is likely to take more than 7917 * the MCDI timeout. Hence signature verification is initiated when 7918 * MC_CMD_NVRAM_UPDATE_FINISH_V2_IN is received by the firmware, however, the 7919 * MCDI command is run in a background MCDI processing thread. This response 7920 * payload includes the results of the signature verification. Note that the 7921 * per-partition nvram lock in firmware is only released after the verification 7922 * has completed. 7923 */ 7924 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_LEN 4 7925 /* Result of nvram update completion processing. Result codes that indicate an 7926 * internal build failure and therefore not expected to be seen by customers in 7927 * the field are marked with a prefix 'Internal-error'. 7928 */ 7929 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_RESULT_CODE_OFST 0 7930 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_RESULT_CODE_LEN 4 7931 /* enum: Invalid return code; only non-zero values are defined. Defined as 7932 * unknown for backwards compatibility with NVRAM_UPDATE_FINISH_OUT. 7933 */ 7934 #define MC_CMD_NVRAM_VERIFY_RC_UNKNOWN 0x0 7935 /* enum: Verify succeeded without any errors. */ 7936 #define MC_CMD_NVRAM_VERIFY_RC_SUCCESS 0x1 7937 /* enum: CMS format verification failed due to an internal error. */ 7938 #define MC_CMD_NVRAM_VERIFY_RC_CMS_CHECK_FAILED 0x2 7939 /* enum: Invalid CMS format in image metadata. */ 7940 #define MC_CMD_NVRAM_VERIFY_RC_INVALID_CMS_FORMAT 0x3 7941 /* enum: Message digest verification failed due to an internal error. */ 7942 #define MC_CMD_NVRAM_VERIFY_RC_MESSAGE_DIGEST_CHECK_FAILED 0x4 7943 /* enum: Error in message digest calculated over the reflash-header, payload 7944 * and reflash-trailer. 7945 */ 7946 #define MC_CMD_NVRAM_VERIFY_RC_BAD_MESSAGE_DIGEST 0x5 7947 /* enum: Signature verification failed due to an internal error. */ 7948 #define MC_CMD_NVRAM_VERIFY_RC_SIGNATURE_CHECK_FAILED 0x6 7949 /* enum: There are no valid signatures in the image. */ 7950 #define MC_CMD_NVRAM_VERIFY_RC_NO_VALID_SIGNATURES 0x7 7951 /* enum: Trusted approvers verification failed due to an internal error. */ 7952 #define MC_CMD_NVRAM_VERIFY_RC_TRUSTED_APPROVERS_CHECK_FAILED 0x8 7953 /* enum: The Trusted approver's list is empty. */ 7954 #define MC_CMD_NVRAM_VERIFY_RC_NO_TRUSTED_APPROVERS 0x9 7955 /* enum: Signature chain verification failed due to an internal error. */ 7956 #define MC_CMD_NVRAM_VERIFY_RC_SIGNATURE_CHAIN_CHECK_FAILED 0xa 7957 /* enum: The signers of the signatures in the image are not listed in the 7958 * Trusted approver's list. 7959 */ 7960 #define MC_CMD_NVRAM_VERIFY_RC_NO_SIGNATURE_MATCH 0xb 7961 /* enum: The image contains a test-signed certificate, but the adapter accepts 7962 * only production signed images. 7963 */ 7964 #define MC_CMD_NVRAM_VERIFY_RC_REJECT_TEST_SIGNED 0xc 7965 /* enum: The image has a lower security level than the current firmware. */ 7966 #define MC_CMD_NVRAM_VERIFY_RC_SECURITY_LEVEL_DOWNGRADE 0xd 7967 /* enum: Internal-error. The signed image is missing the 'contents' section, 7968 * where the 'contents' section holds the actual image payload to be applied. 7969 */ 7970 #define MC_CMD_NVRAM_VERIFY_RC_CONTENT_NOT_FOUND 0xe 7971 /* enum: Internal-error. The bundle header is invalid. */ 7972 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_CONTENT_HEADER_INVALID 0xf 7973 /* enum: Internal-error. The bundle does not have a valid reflash image layout. 7974 */ 7975 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_REFLASH_IMAGE_INVALID 0x10 7976 /* enum: Internal-error. The bundle has an inconsistent layout of components or 7977 * incorrect checksum. 7978 */ 7979 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_IMAGE_LAYOUT_INVALID 0x11 7980 /* enum: Internal-error. The bundle manifest is inconsistent with components in 7981 * the bundle. 7982 */ 7983 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_INVALID 0x12 7984 /* enum: Internal-error. The number of components in a bundle do not match the 7985 * number of components advertised by the bundle manifest. 7986 */ 7987 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_NUM_COMPONENTS_MISMATCH 0x13 7988 /* enum: Internal-error. The bundle contains too many components for the MC 7989 * firmware to process 7990 */ 7991 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_TOO_MANY_COMPONENTS 0x14 7992 /* enum: Internal-error. The bundle manifest has an invalid/inconsistent 7993 * component. 7994 */ 7995 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_COMPONENT_INVALID 0x15 7996 /* enum: Internal-error. The hash of a component does not match the hash stored 7997 * in the bundle manifest. 7998 */ 7999 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_COMPONENT_HASH_MISMATCH 0x16 8000 /* enum: Internal-error. Component hash calculation failed. */ 8001 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_COMPONENT_HASH_FAILED 0x17 8002 /* enum: Internal-error. The component does not have a valid reflash image 8003 * layout. 8004 */ 8005 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_COMPONENT_REFLASH_IMAGE_INVALID 0x18 8006 /* enum: The bundle processing code failed to copy a component to its target 8007 * partition. 8008 */ 8009 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_COMPONENT_COPY_FAILED 0x19 8010 /* enum: The update operation is in-progress. */ 8011 #define MC_CMD_NVRAM_VERIFY_RC_PENDING 0x1a 8012 /* enum: The update was an invalid user configuration file. */ 8013 #define MC_CMD_NVRAM_VERIFY_RC_BAD_CONFIG 0x1b 8014 /* enum: The write was to the AUTO partition but the data was not recognised as 8015 * a valid partition. 8016 */ 8017 #define MC_CMD_NVRAM_VERIFY_RC_UNKNOWN_TYPE 0x1c 8018 8019 /* MC_CMD_NVRAM_UPDATE_FINISH_V3_OUT msgresponse */ 8020 #define MC_CMD_NVRAM_UPDATE_FINISH_V3_OUT_LEN 88 8021 /* Result of nvram update completion processing. Result codes that indicate an 8022 * internal build failure and therefore not expected to be seen by customers in 8023 * the field are marked with a prefix 'Internal-error'. 8024 */ 8025 #define MC_CMD_NVRAM_UPDATE_FINISH_V3_OUT_RESULT_CODE_OFST 0 8026 #define MC_CMD_NVRAM_UPDATE_FINISH_V3_OUT_RESULT_CODE_LEN 4 8027 /* enum: Invalid return code; only non-zero values are defined. Defined as 8028 * unknown for backwards compatibility with NVRAM_UPDATE_FINISH_OUT. 8029 */ 8030 /* MC_CMD_NVRAM_VERIFY_RC_UNKNOWN 0x0 */ 8031 /* enum: Verify succeeded without any errors. */ 8032 /* MC_CMD_NVRAM_VERIFY_RC_SUCCESS 0x1 */ 8033 /* enum: CMS format verification failed due to an internal error. */ 8034 /* MC_CMD_NVRAM_VERIFY_RC_CMS_CHECK_FAILED 0x2 */ 8035 /* enum: Invalid CMS format in image metadata. */ 8036 /* MC_CMD_NVRAM_VERIFY_RC_INVALID_CMS_FORMAT 0x3 */ 8037 /* enum: Message digest verification failed due to an internal error. */ 8038 /* MC_CMD_NVRAM_VERIFY_RC_MESSAGE_DIGEST_CHECK_FAILED 0x4 */ 8039 /* enum: Error in message digest calculated over the reflash-header, payload 8040 * and reflash-trailer. 8041 */ 8042 /* MC_CMD_NVRAM_VERIFY_RC_BAD_MESSAGE_DIGEST 0x5 */ 8043 /* enum: Signature verification failed due to an internal error. */ 8044 /* MC_CMD_NVRAM_VERIFY_RC_SIGNATURE_CHECK_FAILED 0x6 */ 8045 /* enum: There are no valid signatures in the image. */ 8046 /* MC_CMD_NVRAM_VERIFY_RC_NO_VALID_SIGNATURES 0x7 */ 8047 /* enum: Trusted approvers verification failed due to an internal error. */ 8048 /* MC_CMD_NVRAM_VERIFY_RC_TRUSTED_APPROVERS_CHECK_FAILED 0x8 */ 8049 /* enum: The Trusted approver's list is empty. */ 8050 /* MC_CMD_NVRAM_VERIFY_RC_NO_TRUSTED_APPROVERS 0x9 */ 8051 /* enum: Signature chain verification failed due to an internal error. */ 8052 /* MC_CMD_NVRAM_VERIFY_RC_SIGNATURE_CHAIN_CHECK_FAILED 0xa */ 8053 /* enum: The signers of the signatures in the image are not listed in the 8054 * Trusted approver's list. 8055 */ 8056 /* MC_CMD_NVRAM_VERIFY_RC_NO_SIGNATURE_MATCH 0xb */ 8057 /* enum: The image contains a test-signed certificate, but the adapter accepts 8058 * only production signed images. 8059 */ 8060 /* MC_CMD_NVRAM_VERIFY_RC_REJECT_TEST_SIGNED 0xc */ 8061 /* enum: The image has a lower security level than the current firmware. */ 8062 /* MC_CMD_NVRAM_VERIFY_RC_SECURITY_LEVEL_DOWNGRADE 0xd */ 8063 /* enum: Internal-error. The signed image is missing the 'contents' section, 8064 * where the 'contents' section holds the actual image payload to be applied. 8065 */ 8066 /* MC_CMD_NVRAM_VERIFY_RC_CONTENT_NOT_FOUND 0xe */ 8067 /* enum: Internal-error. The bundle header is invalid. */ 8068 /* MC_CMD_NVRAM_VERIFY_RC_BUNDLE_CONTENT_HEADER_INVALID 0xf */ 8069 /* enum: Internal-error. The bundle does not have a valid reflash image layout. 8070 */ 8071 /* MC_CMD_NVRAM_VERIFY_RC_BUNDLE_REFLASH_IMAGE_INVALID 0x10 */ 8072 /* enum: Internal-error. The bundle has an inconsistent layout of components or 8073 * incorrect checksum. 8074 */ 8075 /* MC_CMD_NVRAM_VERIFY_RC_BUNDLE_IMAGE_LAYOUT_INVALID 0x11 */ 8076 /* enum: Internal-error. The bundle manifest is inconsistent with components in 8077 * the bundle. 8078 */ 8079 /* MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_INVALID 0x12 */ 8080 /* enum: Internal-error. The number of components in a bundle do not match the 8081 * number of components advertised by the bundle manifest. 8082 */ 8083 /* MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_NUM_COMPONENTS_MISMATCH 0x13 */ 8084 /* enum: Internal-error. The bundle contains too many components for the MC 8085 * firmware to process 8086 */ 8087 /* MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_TOO_MANY_COMPONENTS 0x14 */ 8088 /* enum: Internal-error. The bundle manifest has an invalid/inconsistent 8089 * component. 8090 */ 8091 /* MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_COMPONENT_INVALID 0x15 */ 8092 /* enum: Internal-error. The hash of a component does not match the hash stored 8093 * in the bundle manifest. 8094 */ 8095 /* MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_COMPONENT_HASH_MISMATCH 0x16 */ 8096 /* enum: Internal-error. Component hash calculation failed. */ 8097 /* MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_COMPONENT_HASH_FAILED 0x17 */ 8098 /* enum: Internal-error. The component does not have a valid reflash image 8099 * layout. 8100 */ 8101 /* MC_CMD_NVRAM_VERIFY_RC_BUNDLE_COMPONENT_REFLASH_IMAGE_INVALID 0x18 */ 8102 /* enum: The bundle processing code failed to copy a component to its target 8103 * partition. 8104 */ 8105 /* MC_CMD_NVRAM_VERIFY_RC_BUNDLE_COMPONENT_COPY_FAILED 0x19 */ 8106 /* enum: The update operation is in-progress. */ 8107 /* MC_CMD_NVRAM_VERIFY_RC_PENDING 0x1a */ 8108 /* enum: The update was an invalid user configuration file. */ 8109 /* MC_CMD_NVRAM_VERIFY_RC_BAD_CONFIG 0x1b */ 8110 /* enum: The write was to the AUTO partition but the data was not recognised as 8111 * a valid partition. 8112 */ 8113 /* MC_CMD_NVRAM_VERIFY_RC_UNKNOWN_TYPE 0x1c */ 8114 /* If the update was a user configuration, what action(s) the user must take to 8115 * apply the new configuration. 8116 */ 8117 #define MC_CMD_NVRAM_UPDATE_FINISH_V3_OUT_ACTIONS_REQUIRED_OFST 4 8118 #define MC_CMD_NVRAM_UPDATE_FINISH_V3_OUT_ACTIONS_REQUIRED_LEN 4 8119 /* enum: No action required. */ 8120 #define MC_CMD_NVRAM_UPDATE_FINISH_V3_OUT_NONE 0x0 8121 /* enum: The MC firmware must be rebooted (eg with MC_CMD_REBOOT). */ 8122 #define MC_CMD_NVRAM_UPDATE_FINISH_V3_OUT_FIRMWARE_REBOOT 0x1 8123 /* enum: The host must be rebooted. */ 8124 #define MC_CMD_NVRAM_UPDATE_FINISH_V3_OUT_HOST_REBOOT 0x2 8125 /* enum: The firmware and host must be rebooted (in either order). */ 8126 #define MC_CMD_NVRAM_UPDATE_FINISH_V3_OUT_FIRMWARE_AND_HOST_REBOOT 0x3 8127 /* enum: The host must be fully powered off. */ 8128 #define MC_CMD_NVRAM_UPDATE_FINISH_V3_OUT_HOST_POWERCYCLE 0x4 8129 /* If the update failed with MC_CMD_NVRAM_VERIFY_RC_BAD_CONFIG, a null- 8130 * terminated US-ASCII string suitable for showing to the user. 8131 */ 8132 #define MC_CMD_NVRAM_UPDATE_FINISH_V3_OUT_ERROR_STRING_OFST 8 8133 #define MC_CMD_NVRAM_UPDATE_FINISH_V3_OUT_ERROR_STRING_LEN 80 8134 8135 8136 /***********************************/ 8137 /* MC_CMD_REBOOT 8138 * Reboot the MC. 8139 * 8140 * The AFTER_ASSERTION flag is intended to be used when the driver notices an 8141 * assertion failure (at which point it is expected to perform a complete tear 8142 * down and reinitialise), to allow both ports to reset the MC once in an 8143 * atomic fashion. 8144 * 8145 * Production mc firmwares are generally compiled with REBOOT_ON_ASSERT=1, 8146 * which means that they will automatically reboot out of the assertion 8147 * handler, so this is in practise an optional operation. It is still 8148 * recommended that drivers execute this to support custom firmwares with 8149 * REBOOT_ON_ASSERT=0. 8150 * 8151 * Locks required: NONE Returns: Nothing. You get back a response with ERR=1, 8152 * DATALEN=0 8153 */ 8154 #define MC_CMD_REBOOT 0x3d 8155 #undef MC_CMD_0x3d_PRIVILEGE_CTG 8156 8157 #define MC_CMD_0x3d_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 8158 8159 /* MC_CMD_REBOOT_IN msgrequest */ 8160 #define MC_CMD_REBOOT_IN_LEN 4 8161 #define MC_CMD_REBOOT_IN_FLAGS_OFST 0 8162 #define MC_CMD_REBOOT_IN_FLAGS_LEN 4 8163 #define MC_CMD_REBOOT_FLAGS_AFTER_ASSERTION 0x1 /* enum */ 8164 8165 /* MC_CMD_REBOOT_OUT msgresponse */ 8166 #define MC_CMD_REBOOT_OUT_LEN 0 8167 8168 8169 /***********************************/ 8170 /* MC_CMD_SENSOR_INFO 8171 * Returns information about every available sensor. 8172 * 8173 * Each sensor has a single (16bit) value, and a corresponding state. The 8174 * mapping between value and state is nominally determined by the MC, but may 8175 * be implemented using up to 2 ranges per sensor. 8176 * 8177 * This call returns a mask (32bit) of the sensors that are supported by this 8178 * platform, then an array of sensor information structures, in order of sensor 8179 * type (but without gaps for unimplemented sensors). Each structure defines 8180 * the ranges for the corresponding sensor. An unused range is indicated by 8181 * equal limit values. If one range is used, a value outside that range results 8182 * in STATE_FATAL. If two ranges are used, a value outside the second range 8183 * results in STATE_FATAL while a value outside the first and inside the second 8184 * range results in STATE_WARNING. 8185 * 8186 * Sensor masks and sensor information arrays are organised into pages. For 8187 * backward compatibility, older host software can only use sensors in page 0. 8188 * Bit 32 in the sensor mask was previously unused, and is no reserved for use 8189 * as the next page flag. 8190 * 8191 * If the request does not contain a PAGE value then firmware will only return 8192 * page 0 of sensor information, with bit 31 in the sensor mask cleared. 8193 * 8194 * If the request contains a PAGE value then firmware responds with the sensor 8195 * mask and sensor information array for that page of sensors. In this case bit 8196 * 31 in the mask is set if another page exists. 8197 * 8198 * Locks required: None Returns: 0 8199 */ 8200 #define MC_CMD_SENSOR_INFO 0x41 8201 #undef MC_CMD_0x41_PRIVILEGE_CTG 8202 8203 #define MC_CMD_0x41_PRIVILEGE_CTG SRIOV_CTG_GENERAL 8204 8205 /* MC_CMD_SENSOR_INFO_IN msgrequest */ 8206 #define MC_CMD_SENSOR_INFO_IN_LEN 0 8207 8208 /* MC_CMD_SENSOR_INFO_EXT_IN msgrequest */ 8209 #define MC_CMD_SENSOR_INFO_EXT_IN_LEN 4 8210 /* Which page of sensors to report. 8211 * 8212 * Page 0 contains sensors 0 to 30 (sensor 31 is the next page bit). 8213 * 8214 * Page 1 contains sensors 32 to 62 (sensor 63 is the next page bit). etc. 8215 */ 8216 #define MC_CMD_SENSOR_INFO_EXT_IN_PAGE_OFST 0 8217 #define MC_CMD_SENSOR_INFO_EXT_IN_PAGE_LEN 4 8218 8219 /* MC_CMD_SENSOR_INFO_EXT_IN_V2 msgrequest */ 8220 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_LEN 8 8221 /* Which page of sensors to report. 8222 * 8223 * Page 0 contains sensors 0 to 30 (sensor 31 is the next page bit). 8224 * 8225 * Page 1 contains sensors 32 to 62 (sensor 63 is the next page bit). etc. 8226 */ 8227 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_PAGE_OFST 0 8228 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_PAGE_LEN 4 8229 /* Flags controlling information retrieved */ 8230 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_FLAGS_OFST 4 8231 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_FLAGS_LEN 4 8232 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_ENGINEERING_OFST 4 8233 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_ENGINEERING_LBN 0 8234 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_ENGINEERING_WIDTH 1 8235 8236 /* MC_CMD_SENSOR_INFO_OUT msgresponse */ 8237 #define MC_CMD_SENSOR_INFO_OUT_LENMIN 4 8238 #define MC_CMD_SENSOR_INFO_OUT_LENMAX 252 8239 #define MC_CMD_SENSOR_INFO_OUT_LENMAX_MCDI2 1020 8240 #define MC_CMD_SENSOR_INFO_OUT_LEN(num) (4+8*(num)) 8241 #define MC_CMD_SENSOR_INFO_OUT_MC_CMD_SENSOR_ENTRY_NUM(len) (((len)-4)/8) 8242 #define MC_CMD_SENSOR_INFO_OUT_MASK_OFST 0 8243 #define MC_CMD_SENSOR_INFO_OUT_MASK_LEN 4 8244 /* enum: Controller temperature: degC */ 8245 #define MC_CMD_SENSOR_CONTROLLER_TEMP 0x0 8246 /* enum: Phy common temperature: degC */ 8247 #define MC_CMD_SENSOR_PHY_COMMON_TEMP 0x1 8248 /* enum: Controller cooling: bool */ 8249 #define MC_CMD_SENSOR_CONTROLLER_COOLING 0x2 8250 /* enum: Phy 0 temperature: degC */ 8251 #define MC_CMD_SENSOR_PHY0_TEMP 0x3 8252 /* enum: Phy 0 cooling: bool */ 8253 #define MC_CMD_SENSOR_PHY0_COOLING 0x4 8254 /* enum: Phy 1 temperature: degC */ 8255 #define MC_CMD_SENSOR_PHY1_TEMP 0x5 8256 /* enum: Phy 1 cooling: bool */ 8257 #define MC_CMD_SENSOR_PHY1_COOLING 0x6 8258 /* enum: 1.0v power: mV */ 8259 #define MC_CMD_SENSOR_IN_1V0 0x7 8260 /* enum: 1.2v power: mV */ 8261 #define MC_CMD_SENSOR_IN_1V2 0x8 8262 /* enum: 1.8v power: mV */ 8263 #define MC_CMD_SENSOR_IN_1V8 0x9 8264 /* enum: 2.5v power: mV */ 8265 #define MC_CMD_SENSOR_IN_2V5 0xa 8266 /* enum: 3.3v power: mV */ 8267 #define MC_CMD_SENSOR_IN_3V3 0xb 8268 /* enum: 12v power: mV */ 8269 #define MC_CMD_SENSOR_IN_12V0 0xc 8270 /* enum: 1.2v analogue power: mV */ 8271 #define MC_CMD_SENSOR_IN_1V2A 0xd 8272 /* enum: reference voltage: mV */ 8273 #define MC_CMD_SENSOR_IN_VREF 0xe 8274 /* enum: AOE FPGA power: mV */ 8275 #define MC_CMD_SENSOR_OUT_VAOE 0xf 8276 /* enum: AOE FPGA temperature: degC */ 8277 #define MC_CMD_SENSOR_AOE_TEMP 0x10 8278 /* enum: AOE FPGA PSU temperature: degC */ 8279 #define MC_CMD_SENSOR_PSU_AOE_TEMP 0x11 8280 /* enum: AOE PSU temperature: degC */ 8281 #define MC_CMD_SENSOR_PSU_TEMP 0x12 8282 /* enum: Fan 0 speed: RPM */ 8283 #define MC_CMD_SENSOR_FAN_0 0x13 8284 /* enum: Fan 1 speed: RPM */ 8285 #define MC_CMD_SENSOR_FAN_1 0x14 8286 /* enum: Fan 2 speed: RPM */ 8287 #define MC_CMD_SENSOR_FAN_2 0x15 8288 /* enum: Fan 3 speed: RPM */ 8289 #define MC_CMD_SENSOR_FAN_3 0x16 8290 /* enum: Fan 4 speed: RPM */ 8291 #define MC_CMD_SENSOR_FAN_4 0x17 8292 /* enum: AOE FPGA input power: mV */ 8293 #define MC_CMD_SENSOR_IN_VAOE 0x18 8294 /* enum: AOE FPGA current: mA */ 8295 #define MC_CMD_SENSOR_OUT_IAOE 0x19 8296 /* enum: AOE FPGA input current: mA */ 8297 #define MC_CMD_SENSOR_IN_IAOE 0x1a 8298 /* enum: NIC power consumption: W */ 8299 #define MC_CMD_SENSOR_NIC_POWER 0x1b 8300 /* enum: 0.9v power voltage: mV */ 8301 #define MC_CMD_SENSOR_IN_0V9 0x1c 8302 /* enum: 0.9v power current: mA */ 8303 #define MC_CMD_SENSOR_IN_I0V9 0x1d 8304 /* enum: 1.2v power current: mA */ 8305 #define MC_CMD_SENSOR_IN_I1V2 0x1e 8306 /* enum: Not a sensor: reserved for the next page flag */ 8307 #define MC_CMD_SENSOR_PAGE0_NEXT 0x1f 8308 /* enum: 0.9v power voltage (at ADC): mV */ 8309 #define MC_CMD_SENSOR_IN_0V9_ADC 0x20 8310 /* enum: Controller temperature 2: degC */ 8311 #define MC_CMD_SENSOR_CONTROLLER_2_TEMP 0x21 8312 /* enum: Voltage regulator internal temperature: degC */ 8313 #define MC_CMD_SENSOR_VREG_INTERNAL_TEMP 0x22 8314 /* enum: 0.9V voltage regulator temperature: degC */ 8315 #define MC_CMD_SENSOR_VREG_0V9_TEMP 0x23 8316 /* enum: 1.2V voltage regulator temperature: degC */ 8317 #define MC_CMD_SENSOR_VREG_1V2_TEMP 0x24 8318 /* enum: controller internal temperature sensor voltage (internal ADC): mV */ 8319 #define MC_CMD_SENSOR_CONTROLLER_VPTAT 0x25 8320 /* enum: controller internal temperature (internal ADC): degC */ 8321 #define MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP 0x26 8322 /* enum: controller internal temperature sensor voltage (external ADC): mV */ 8323 #define MC_CMD_SENSOR_CONTROLLER_VPTAT_EXTADC 0x27 8324 /* enum: controller internal temperature (external ADC): degC */ 8325 #define MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP_EXTADC 0x28 8326 /* enum: ambient temperature: degC */ 8327 #define MC_CMD_SENSOR_AMBIENT_TEMP 0x29 8328 /* enum: air flow: bool */ 8329 #define MC_CMD_SENSOR_AIRFLOW 0x2a 8330 /* enum: voltage between VSS08D and VSS08D at CSR: mV */ 8331 #define MC_CMD_SENSOR_VDD08D_VSS08D_CSR 0x2b 8332 /* enum: voltage between VSS08D and VSS08D at CSR (external ADC): mV */ 8333 #define MC_CMD_SENSOR_VDD08D_VSS08D_CSR_EXTADC 0x2c 8334 /* enum: Hotpoint temperature: degC */ 8335 #define MC_CMD_SENSOR_HOTPOINT_TEMP 0x2d 8336 /* enum: Port 0 PHY power switch over-current: bool */ 8337 #define MC_CMD_SENSOR_PHY_POWER_PORT0 0x2e 8338 /* enum: Port 1 PHY power switch over-current: bool */ 8339 #define MC_CMD_SENSOR_PHY_POWER_PORT1 0x2f 8340 /* enum: Mop-up microcontroller reference voltage: mV */ 8341 #define MC_CMD_SENSOR_MUM_VCC 0x30 8342 /* enum: 0.9v power phase A voltage: mV */ 8343 #define MC_CMD_SENSOR_IN_0V9_A 0x31 8344 /* enum: 0.9v power phase A current: mA */ 8345 #define MC_CMD_SENSOR_IN_I0V9_A 0x32 8346 /* enum: 0.9V voltage regulator phase A temperature: degC */ 8347 #define MC_CMD_SENSOR_VREG_0V9_A_TEMP 0x33 8348 /* enum: 0.9v power phase B voltage: mV */ 8349 #define MC_CMD_SENSOR_IN_0V9_B 0x34 8350 /* enum: 0.9v power phase B current: mA */ 8351 #define MC_CMD_SENSOR_IN_I0V9_B 0x35 8352 /* enum: 0.9V voltage regulator phase B temperature: degC */ 8353 #define MC_CMD_SENSOR_VREG_0V9_B_TEMP 0x36 8354 /* enum: CCOM AVREG 1v2 supply (interval ADC): mV */ 8355 #define MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY 0x37 8356 /* enum: CCOM AVREG 1v2 supply (external ADC): mV */ 8357 #define MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY_EXTADC 0x38 8358 /* enum: CCOM AVREG 1v8 supply (interval ADC): mV */ 8359 #define MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY 0x39 8360 /* enum: CCOM AVREG 1v8 supply (external ADC): mV */ 8361 #define MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY_EXTADC 0x3a 8362 /* enum: CCOM RTS temperature: degC */ 8363 #define MC_CMD_SENSOR_CONTROLLER_RTS 0x3b 8364 /* enum: Not a sensor: reserved for the next page flag */ 8365 #define MC_CMD_SENSOR_PAGE1_NEXT 0x3f 8366 /* enum: controller internal temperature sensor voltage on master core 8367 * (internal ADC): mV 8368 */ 8369 #define MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT 0x40 8370 /* enum: controller internal temperature on master core (internal ADC): degC */ 8371 #define MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP 0x41 8372 /* enum: controller internal temperature sensor voltage on master core 8373 * (external ADC): mV 8374 */ 8375 #define MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT_EXTADC 0x42 8376 /* enum: controller internal temperature on master core (external ADC): degC */ 8377 #define MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC 0x43 8378 /* enum: controller internal temperature on slave core sensor voltage (internal 8379 * ADC): mV 8380 */ 8381 #define MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT 0x44 8382 /* enum: controller internal temperature on slave core (internal ADC): degC */ 8383 #define MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP 0x45 8384 /* enum: controller internal temperature on slave core sensor voltage (external 8385 * ADC): mV 8386 */ 8387 #define MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT_EXTADC 0x46 8388 /* enum: controller internal temperature on slave core (external ADC): degC */ 8389 #define MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC 0x47 8390 /* enum: Voltage supplied to the SODIMMs from their power supply: mV */ 8391 #define MC_CMD_SENSOR_SODIMM_VOUT 0x49 8392 /* enum: Temperature of SODIMM 0 (if installed): degC */ 8393 #define MC_CMD_SENSOR_SODIMM_0_TEMP 0x4a 8394 /* enum: Temperature of SODIMM 1 (if installed): degC */ 8395 #define MC_CMD_SENSOR_SODIMM_1_TEMP 0x4b 8396 /* enum: Voltage supplied to the QSFP #0 from their power supply: mV */ 8397 #define MC_CMD_SENSOR_PHY0_VCC 0x4c 8398 /* enum: Voltage supplied to the QSFP #1 from their power supply: mV */ 8399 #define MC_CMD_SENSOR_PHY1_VCC 0x4d 8400 /* enum: Controller die temperature (TDIODE): degC */ 8401 #define MC_CMD_SENSOR_CONTROLLER_TDIODE_TEMP 0x4e 8402 /* enum: Board temperature (front): degC */ 8403 #define MC_CMD_SENSOR_BOARD_FRONT_TEMP 0x4f 8404 /* enum: Board temperature (back): degC */ 8405 #define MC_CMD_SENSOR_BOARD_BACK_TEMP 0x50 8406 /* enum: 1.8v power current: mA */ 8407 #define MC_CMD_SENSOR_IN_I1V8 0x51 8408 /* enum: 2.5v power current: mA */ 8409 #define MC_CMD_SENSOR_IN_I2V5 0x52 8410 /* enum: 3.3v power current: mA */ 8411 #define MC_CMD_SENSOR_IN_I3V3 0x53 8412 /* enum: 12v power current: mA */ 8413 #define MC_CMD_SENSOR_IN_I12V0 0x54 8414 /* enum: 1.3v power: mV */ 8415 #define MC_CMD_SENSOR_IN_1V3 0x55 8416 /* enum: 1.3v power current: mA */ 8417 #define MC_CMD_SENSOR_IN_I1V3 0x56 8418 /* enum: Engineering sensor 1 */ 8419 #define MC_CMD_SENSOR_ENGINEERING_1 0x57 8420 /* enum: Engineering sensor 2 */ 8421 #define MC_CMD_SENSOR_ENGINEERING_2 0x58 8422 /* enum: Engineering sensor 3 */ 8423 #define MC_CMD_SENSOR_ENGINEERING_3 0x59 8424 /* enum: Engineering sensor 4 */ 8425 #define MC_CMD_SENSOR_ENGINEERING_4 0x5a 8426 /* enum: Engineering sensor 5 */ 8427 #define MC_CMD_SENSOR_ENGINEERING_5 0x5b 8428 /* enum: Engineering sensor 6 */ 8429 #define MC_CMD_SENSOR_ENGINEERING_6 0x5c 8430 /* enum: Engineering sensor 7 */ 8431 #define MC_CMD_SENSOR_ENGINEERING_7 0x5d 8432 /* enum: Engineering sensor 8 */ 8433 #define MC_CMD_SENSOR_ENGINEERING_8 0x5e 8434 /* enum: Not a sensor: reserved for the next page flag */ 8435 #define MC_CMD_SENSOR_PAGE2_NEXT 0x5f 8436 /* MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF */ 8437 #define MC_CMD_SENSOR_ENTRY_OFST 4 8438 #define MC_CMD_SENSOR_ENTRY_LEN 8 8439 #define MC_CMD_SENSOR_ENTRY_LO_OFST 4 8440 #define MC_CMD_SENSOR_ENTRY_LO_LEN 4 8441 #define MC_CMD_SENSOR_ENTRY_LO_LBN 32 8442 #define MC_CMD_SENSOR_ENTRY_LO_WIDTH 32 8443 #define MC_CMD_SENSOR_ENTRY_HI_OFST 8 8444 #define MC_CMD_SENSOR_ENTRY_HI_LEN 4 8445 #define MC_CMD_SENSOR_ENTRY_HI_LBN 64 8446 #define MC_CMD_SENSOR_ENTRY_HI_WIDTH 32 8447 #define MC_CMD_SENSOR_ENTRY_MINNUM 0 8448 #define MC_CMD_SENSOR_ENTRY_MAXNUM 31 8449 #define MC_CMD_SENSOR_ENTRY_MAXNUM_MCDI2 127 8450 8451 /* MC_CMD_SENSOR_INFO_EXT_OUT msgresponse */ 8452 #define MC_CMD_SENSOR_INFO_EXT_OUT_LENMIN 4 8453 #define MC_CMD_SENSOR_INFO_EXT_OUT_LENMAX 252 8454 #define MC_CMD_SENSOR_INFO_EXT_OUT_LENMAX_MCDI2 1020 8455 #define MC_CMD_SENSOR_INFO_EXT_OUT_LEN(num) (4+8*(num)) 8456 #define MC_CMD_SENSOR_INFO_EXT_OUT_MC_CMD_SENSOR_ENTRY_NUM(len) (((len)-4)/8) 8457 #define MC_CMD_SENSOR_INFO_EXT_OUT_MASK_OFST 0 8458 #define MC_CMD_SENSOR_INFO_EXT_OUT_MASK_LEN 4 8459 /* Enum values, see field(s): */ 8460 /* MC_CMD_SENSOR_INFO_OUT */ 8461 #define MC_CMD_SENSOR_INFO_EXT_OUT_NEXT_PAGE_OFST 0 8462 #define MC_CMD_SENSOR_INFO_EXT_OUT_NEXT_PAGE_LBN 31 8463 #define MC_CMD_SENSOR_INFO_EXT_OUT_NEXT_PAGE_WIDTH 1 8464 /* MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF */ 8465 /* MC_CMD_SENSOR_ENTRY_OFST 4 */ 8466 /* MC_CMD_SENSOR_ENTRY_LEN 8 */ 8467 /* MC_CMD_SENSOR_ENTRY_LO_OFST 4 */ 8468 /* MC_CMD_SENSOR_ENTRY_LO_LEN 4 */ 8469 /* MC_CMD_SENSOR_ENTRY_LO_LBN 32 */ 8470 /* MC_CMD_SENSOR_ENTRY_LO_WIDTH 32 */ 8471 /* MC_CMD_SENSOR_ENTRY_HI_OFST 8 */ 8472 /* MC_CMD_SENSOR_ENTRY_HI_LEN 4 */ 8473 /* MC_CMD_SENSOR_ENTRY_HI_LBN 64 */ 8474 /* MC_CMD_SENSOR_ENTRY_HI_WIDTH 32 */ 8475 /* MC_CMD_SENSOR_ENTRY_MINNUM 0 */ 8476 /* MC_CMD_SENSOR_ENTRY_MAXNUM 31 */ 8477 /* MC_CMD_SENSOR_ENTRY_MAXNUM_MCDI2 127 */ 8478 8479 /* MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF structuredef */ 8480 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_LEN 8 8481 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN1_OFST 0 8482 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN1_LEN 2 8483 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN1_LBN 0 8484 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN1_WIDTH 16 8485 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX1_OFST 2 8486 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX1_LEN 2 8487 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX1_LBN 16 8488 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX1_WIDTH 16 8489 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_OFST 4 8490 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_LEN 2 8491 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_LBN 32 8492 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_WIDTH 16 8493 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX2_OFST 6 8494 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX2_LEN 2 8495 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX2_LBN 48 8496 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX2_WIDTH 16 8497 8498 8499 /***********************************/ 8500 /* MC_CMD_READ_SENSORS 8501 * Returns the current reading from each sensor. DMAs an array of sensor 8502 * readings, in order of sensor type (but without gaps for unimplemented 8503 * sensors), into host memory. Each array element is a 8504 * MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF dword. 8505 * 8506 * If the request does not contain the LENGTH field then only sensors 0 to 30 8507 * are reported, to avoid DMA buffer overflow in older host software. If the 8508 * sensor reading require more space than the LENGTH allows, then return 8509 * EINVAL. 8510 * 8511 * The MC will send a SENSOREVT event every time any sensor changes state. The 8512 * driver is responsible for ensuring that it doesn't miss any events. The 8513 * board will function normally if all sensors are in STATE_OK or 8514 * STATE_WARNING. Otherwise the board should not be expected to function. 8515 */ 8516 #define MC_CMD_READ_SENSORS 0x42 8517 #undef MC_CMD_0x42_PRIVILEGE_CTG 8518 8519 #define MC_CMD_0x42_PRIVILEGE_CTG SRIOV_CTG_GENERAL 8520 8521 /* MC_CMD_READ_SENSORS_IN msgrequest */ 8522 #define MC_CMD_READ_SENSORS_IN_LEN 8 8523 /* DMA address of host buffer for sensor readings (must be 4Kbyte aligned). 8524 * 8525 * If the address is 0xffffffffffffffff send the readings in the response (used 8526 * by cmdclient). 8527 */ 8528 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_OFST 0 8529 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LEN 8 8530 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_OFST 0 8531 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_LEN 4 8532 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_LBN 0 8533 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_WIDTH 32 8534 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_OFST 4 8535 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_LEN 4 8536 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_LBN 32 8537 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_WIDTH 32 8538 8539 /* MC_CMD_READ_SENSORS_EXT_IN msgrequest */ 8540 #define MC_CMD_READ_SENSORS_EXT_IN_LEN 12 8541 /* DMA address of host buffer for sensor readings (must be 4Kbyte aligned). 8542 * 8543 * If the address is 0xffffffffffffffff send the readings in the response (used 8544 * by cmdclient). 8545 */ 8546 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_OFST 0 8547 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LEN 8 8548 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_OFST 0 8549 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_LEN 4 8550 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_LBN 0 8551 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_WIDTH 32 8552 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_OFST 4 8553 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_LEN 4 8554 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_LBN 32 8555 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_WIDTH 32 8556 /* Size in bytes of host buffer. */ 8557 #define MC_CMD_READ_SENSORS_EXT_IN_LENGTH_OFST 8 8558 #define MC_CMD_READ_SENSORS_EXT_IN_LENGTH_LEN 4 8559 8560 /* MC_CMD_READ_SENSORS_EXT_IN_V2 msgrequest */ 8561 #define MC_CMD_READ_SENSORS_EXT_IN_V2_LEN 16 8562 /* DMA address of host buffer for sensor readings (must be 4Kbyte aligned). 8563 * 8564 * If the address is 0xffffffffffffffff send the readings in the response (used 8565 * by cmdclient). 8566 */ 8567 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_OFST 0 8568 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LEN 8 8569 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_OFST 0 8570 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_LEN 4 8571 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_LBN 0 8572 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_WIDTH 32 8573 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_OFST 4 8574 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_LEN 4 8575 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_LBN 32 8576 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_WIDTH 32 8577 /* Size in bytes of host buffer. */ 8578 #define MC_CMD_READ_SENSORS_EXT_IN_V2_LENGTH_OFST 8 8579 #define MC_CMD_READ_SENSORS_EXT_IN_V2_LENGTH_LEN 4 8580 /* Flags controlling information retrieved */ 8581 #define MC_CMD_READ_SENSORS_EXT_IN_V2_FLAGS_OFST 12 8582 #define MC_CMD_READ_SENSORS_EXT_IN_V2_FLAGS_LEN 4 8583 #define MC_CMD_READ_SENSORS_EXT_IN_V2_ENGINEERING_OFST 12 8584 #define MC_CMD_READ_SENSORS_EXT_IN_V2_ENGINEERING_LBN 0 8585 #define MC_CMD_READ_SENSORS_EXT_IN_V2_ENGINEERING_WIDTH 1 8586 8587 /* MC_CMD_READ_SENSORS_OUT msgresponse */ 8588 #define MC_CMD_READ_SENSORS_OUT_LEN 0 8589 8590 /* MC_CMD_READ_SENSORS_EXT_OUT msgresponse */ 8591 #define MC_CMD_READ_SENSORS_EXT_OUT_LEN 0 8592 8593 /* MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF structuredef */ 8594 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_LEN 4 8595 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_VALUE_OFST 0 8596 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_VALUE_LEN 2 8597 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_VALUE_LBN 0 8598 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_VALUE_WIDTH 16 8599 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_OFST 2 8600 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_LEN 1 8601 /* enum: Ok. */ 8602 #define MC_CMD_SENSOR_STATE_OK 0x0 8603 /* enum: Breached warning threshold. */ 8604 #define MC_CMD_SENSOR_STATE_WARNING 0x1 8605 /* enum: Breached fatal threshold. */ 8606 #define MC_CMD_SENSOR_STATE_FATAL 0x2 8607 /* enum: Fault with sensor. */ 8608 #define MC_CMD_SENSOR_STATE_BROKEN 0x3 8609 /* enum: Sensor is working but does not currently have a reading. */ 8610 #define MC_CMD_SENSOR_STATE_NO_READING 0x4 8611 /* enum: Sensor initialisation failed. */ 8612 #define MC_CMD_SENSOR_STATE_INIT_FAILED 0x5 8613 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_LBN 16 8614 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_WIDTH 8 8615 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_OFST 3 8616 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_LEN 1 8617 /* Enum values, see field(s): */ 8618 /* MC_CMD_SENSOR_INFO/MC_CMD_SENSOR_INFO_OUT/MASK */ 8619 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_LBN 24 8620 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_WIDTH 8 8621 8622 8623 /***********************************/ 8624 /* MC_CMD_GET_PHY_STATE 8625 * Report current state of PHY. A 'zombie' PHY is a PHY that has failed to boot 8626 * (e.g. due to missing or corrupted firmware). Locks required: None. Return 8627 * code: 0 8628 */ 8629 #define MC_CMD_GET_PHY_STATE 0x43 8630 #undef MC_CMD_0x43_PRIVILEGE_CTG 8631 8632 #define MC_CMD_0x43_PRIVILEGE_CTG SRIOV_CTG_GENERAL 8633 8634 /* MC_CMD_GET_PHY_STATE_IN msgrequest */ 8635 #define MC_CMD_GET_PHY_STATE_IN_LEN 0 8636 8637 /* MC_CMD_GET_PHY_STATE_IN_V2 msgrequest */ 8638 #define MC_CMD_GET_PHY_STATE_IN_V2_LEN 8 8639 /* Target port to request PHY state for. Uses MAE_LINK_ENDPOINT_SELECTOR which 8640 * identifies a real or virtual network port by MAE port and link end. See the 8641 * structure definition for more details. 8642 */ 8643 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_OFST 0 8644 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LEN 8 8645 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LO_OFST 0 8646 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LO_LEN 4 8647 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LO_LBN 0 8648 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LO_WIDTH 32 8649 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_HI_OFST 4 8650 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_HI_LEN 4 8651 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_HI_LBN 32 8652 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_HI_WIDTH 32 8653 /* See structuredef: MAE_LINK_ENDPOINT_SELECTOR */ 8654 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_OFST 0 8655 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_LEN 4 8656 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FLAT_OFST 0 8657 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FLAT_LEN 4 8658 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_TYPE_OFST 3 8659 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_TYPE_LEN 1 8660 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 0 8661 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 8662 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 0 8663 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 8664 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 20 8665 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 8666 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 16 8667 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 8668 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 2 8669 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 8670 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 0 8671 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 8672 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LINK_END_OFST 4 8673 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LINK_END_LEN 4 8674 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_OFST 0 8675 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_LEN 8 8676 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_LO_OFST 0 8677 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_LO_LEN 4 8678 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_LO_LBN 0 8679 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_LO_WIDTH 32 8680 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_HI_OFST 4 8681 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_HI_LEN 4 8682 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_HI_LBN 32 8683 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_HI_WIDTH 32 8684 8685 /* MC_CMD_GET_PHY_STATE_OUT msgresponse */ 8686 #define MC_CMD_GET_PHY_STATE_OUT_LEN 4 8687 #define MC_CMD_GET_PHY_STATE_OUT_STATE_OFST 0 8688 #define MC_CMD_GET_PHY_STATE_OUT_STATE_LEN 4 8689 /* enum: Ok. */ 8690 #define MC_CMD_PHY_STATE_OK 0x1 8691 /* enum: Faulty. */ 8692 #define MC_CMD_PHY_STATE_ZOMBIE 0x2 8693 8694 8695 /***********************************/ 8696 /* MC_CMD_WOL_FILTER_GET 8697 * Retrieve ID of any WoL filters. Locks required: None. Returns: 0, ENOSYS 8698 */ 8699 #define MC_CMD_WOL_FILTER_GET 0x45 8700 #undef MC_CMD_0x45_PRIVILEGE_CTG 8701 8702 #define MC_CMD_0x45_PRIVILEGE_CTG SRIOV_CTG_LINK 8703 8704 /* MC_CMD_WOL_FILTER_GET_IN msgrequest */ 8705 #define MC_CMD_WOL_FILTER_GET_IN_LEN 0 8706 8707 /* MC_CMD_WOL_FILTER_GET_OUT msgresponse */ 8708 #define MC_CMD_WOL_FILTER_GET_OUT_LEN 4 8709 #define MC_CMD_WOL_FILTER_GET_OUT_FILTER_ID_OFST 0 8710 #define MC_CMD_WOL_FILTER_GET_OUT_FILTER_ID_LEN 4 8711 8712 8713 /***********************************/ 8714 /* MC_CMD_WORKAROUND 8715 * Enable/Disable a given workaround. The mcfw will return EINVAL if it doesn't 8716 * understand the given workaround number - which should not be treated as a 8717 * hard error by client code. This op does not imply any semantics about each 8718 * workaround, that's between the driver and the mcfw on a per-workaround 8719 * basis. Locks required: None. Returns: 0, EINVAL . 8720 */ 8721 #define MC_CMD_WORKAROUND 0x4a 8722 #undef MC_CMD_0x4a_PRIVILEGE_CTG 8723 8724 #define MC_CMD_0x4a_PRIVILEGE_CTG SRIOV_CTG_ADMIN 8725 8726 /* MC_CMD_WORKAROUND_IN msgrequest */ 8727 #define MC_CMD_WORKAROUND_IN_LEN 8 8728 /* The enums here must correspond with those in MC_CMD_GET_WORKAROUND. */ 8729 #define MC_CMD_WORKAROUND_IN_TYPE_OFST 0 8730 #define MC_CMD_WORKAROUND_IN_TYPE_LEN 4 8731 /* enum: Bug 17230 work around. */ 8732 #define MC_CMD_WORKAROUND_BUG17230 0x1 8733 /* enum: Bug 35388 work around (unsafe EVQ writes). */ 8734 #define MC_CMD_WORKAROUND_BUG35388 0x2 8735 /* enum: Bug35017 workaround (A64 tables must be identity map) */ 8736 #define MC_CMD_WORKAROUND_BUG35017 0x3 8737 /* enum: Bug 41750 present (MC_CMD_TRIGGER_INTERRUPT won't work) */ 8738 #define MC_CMD_WORKAROUND_BUG41750 0x4 8739 /* enum: Bug 42008 present (Interrupts can overtake associated events). Caution 8740 * - before adding code that queries this workaround, remember that there's 8741 * released Monza firmware that doesn't understand MC_CMD_WORKAROUND_BUG42008, 8742 * and will hence (incorrectly) report that the bug doesn't exist. 8743 */ 8744 #define MC_CMD_WORKAROUND_BUG42008 0x5 8745 /* enum: Bug 26807 features present in firmware (multicast filter chaining) 8746 * This feature cannot be turned on/off while there are any filters already 8747 * present. The behaviour in such case depends on the acting client's privilege 8748 * level. If the client has the admin privilege, then all functions that have 8749 * filters installed will be FLRed and the FLR_DONE flag will be set. Otherwise 8750 * the command will fail with MC_CMD_ERR_FILTERS_PRESENT. 8751 */ 8752 #define MC_CMD_WORKAROUND_BUG26807 0x6 8753 /* enum: Bug 61265 work around (broken EVQ TMR writes). */ 8754 #define MC_CMD_WORKAROUND_BUG61265 0x7 8755 /* 0 = disable the workaround indicated by TYPE; any non-zero value = enable 8756 * the workaround 8757 */ 8758 #define MC_CMD_WORKAROUND_IN_ENABLED_OFST 4 8759 #define MC_CMD_WORKAROUND_IN_ENABLED_LEN 4 8760 8761 /* MC_CMD_WORKAROUND_OUT msgresponse */ 8762 #define MC_CMD_WORKAROUND_OUT_LEN 0 8763 8764 /* MC_CMD_WORKAROUND_EXT_OUT msgresponse: This response format will be used 8765 * when (TYPE == MC_CMD_WORKAROUND_BUG26807) 8766 */ 8767 #define MC_CMD_WORKAROUND_EXT_OUT_LEN 4 8768 #define MC_CMD_WORKAROUND_EXT_OUT_FLAGS_OFST 0 8769 #define MC_CMD_WORKAROUND_EXT_OUT_FLAGS_LEN 4 8770 #define MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_OFST 0 8771 #define MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_LBN 0 8772 #define MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_WIDTH 1 8773 8774 8775 /***********************************/ 8776 /* MC_CMD_GET_PHY_MEDIA_INFO 8777 * Read media-specific data from PHY (e.g. SFP/SFP+ module ID information for 8778 * SFP+ PHYs). The "media type" can be found via GET_PHY_CFG 8779 * (GET_PHY_CFG_OUT_MEDIA_TYPE); the valid "page number" input values, and the 8780 * output data, are interpreted on a per-type basis. For SFP+, PAGE=0 or 1 8781 * returns a 128-byte block read from module I2C address 0xA0 offset 0 or 0x80. 8782 * For QSFP, PAGE=-1 is the lower (unbanked) page. PAGE=2 is the EEPROM and 8783 * PAGE=3 is the module limits. For DSFP, module addressing requires a 8784 * "BANK:PAGE". Not every bank has the same number of pages. See the Common 8785 * Management Interface Specification (CMIS) for further details. A BANK:PAGE 8786 * of "0xffff:0xffff" retrieves the lower (unbanked) page. Locks required - 8787 * None. Return code - 0. 8788 */ 8789 #define MC_CMD_GET_PHY_MEDIA_INFO 0x4b 8790 #undef MC_CMD_0x4b_PRIVILEGE_CTG 8791 8792 #define MC_CMD_0x4b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 8793 8794 /* MC_CMD_GET_PHY_MEDIA_INFO_IN msgrequest */ 8795 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_LEN 4 8796 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_PAGE_OFST 0 8797 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_PAGE_LEN 4 8798 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_PAGE_OFST 0 8799 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_PAGE_LBN 0 8800 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_PAGE_WIDTH 16 8801 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_BANK_OFST 0 8802 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_BANK_LBN 16 8803 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_BANK_WIDTH 16 8804 8805 /* MC_CMD_GET_PHY_MEDIA_INFO_IN_V2 msgrequest */ 8806 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_LEN 12 8807 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_PAGE_OFST 0 8808 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_PAGE_LEN 4 8809 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_DSFP_PAGE_OFST 0 8810 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_DSFP_PAGE_LBN 0 8811 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_DSFP_PAGE_WIDTH 16 8812 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_DSFP_BANK_OFST 0 8813 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_DSFP_BANK_LBN 16 8814 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_DSFP_BANK_WIDTH 16 8815 /* Target port to request PHY state for. Uses MAE_LINK_ENDPOINT_SELECTOR which 8816 * identifies a real or virtual network port by MAE port and link end. See the 8817 * structure definition for more details 8818 */ 8819 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_OFST 4 8820 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LEN 8 8821 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LO_OFST 4 8822 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LO_LEN 4 8823 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LO_LBN 32 8824 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LO_WIDTH 32 8825 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_HI_OFST 8 8826 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_HI_LEN 4 8827 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_HI_LBN 64 8828 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_HI_WIDTH 32 8829 /* See structuredef: MAE_LINK_ENDPOINT_SELECTOR */ 8830 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_OFST 4 8831 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_LEN 4 8832 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FLAT_OFST 4 8833 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FLAT_LEN 4 8834 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_TYPE_OFST 7 8835 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_TYPE_LEN 1 8836 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 4 8837 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 8838 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 32 8839 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 8840 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 52 8841 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 8842 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 48 8843 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 8844 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 6 8845 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 8846 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 4 8847 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 8848 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LINK_END_OFST 8 8849 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LINK_END_LEN 4 8850 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_OFST 4 8851 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_LEN 8 8852 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_LO_OFST 4 8853 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_LO_LEN 4 8854 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_LO_LBN 32 8855 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_LO_WIDTH 32 8856 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_HI_OFST 8 8857 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_HI_LEN 4 8858 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_HI_LBN 64 8859 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_HI_WIDTH 32 8860 8861 /* MC_CMD_GET_PHY_MEDIA_INFO_OUT msgresponse */ 8862 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LENMIN 5 8863 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LENMAX 252 8864 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LENMAX_MCDI2 1020 8865 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LEN(num) (4+1*(num)) 8866 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_NUM(len) (((len)-4)/1) 8867 /* in bytes */ 8868 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATALEN_OFST 0 8869 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATALEN_LEN 4 8870 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_OFST 4 8871 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_LEN 1 8872 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_MINNUM 1 8873 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_MAXNUM 248 8874 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_MAXNUM_MCDI2 1016 8875 8876 8877 /***********************************/ 8878 /* MC_CMD_NVRAM_TEST 8879 * Test a particular NVRAM partition for valid contents (where "valid" depends 8880 * on the type of partition). 8881 */ 8882 #define MC_CMD_NVRAM_TEST 0x4c 8883 #undef MC_CMD_0x4c_PRIVILEGE_CTG 8884 8885 #define MC_CMD_0x4c_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 8886 8887 /* MC_CMD_NVRAM_TEST_IN msgrequest */ 8888 #define MC_CMD_NVRAM_TEST_IN_LEN 4 8889 #define MC_CMD_NVRAM_TEST_IN_TYPE_OFST 0 8890 #define MC_CMD_NVRAM_TEST_IN_TYPE_LEN 4 8891 /* Enum values, see field(s): */ 8892 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 8893 8894 /* MC_CMD_NVRAM_TEST_OUT msgresponse */ 8895 #define MC_CMD_NVRAM_TEST_OUT_LEN 4 8896 #define MC_CMD_NVRAM_TEST_OUT_RESULT_OFST 0 8897 #define MC_CMD_NVRAM_TEST_OUT_RESULT_LEN 4 8898 /* enum: Passed. */ 8899 #define MC_CMD_NVRAM_TEST_PASS 0x0 8900 /* enum: Failed. */ 8901 #define MC_CMD_NVRAM_TEST_FAIL 0x1 8902 /* enum: Not supported. */ 8903 #define MC_CMD_NVRAM_TEST_NOTSUPP 0x2 8904 8905 8906 /***********************************/ 8907 /* MC_CMD_NVRAM_PARTITIONS 8908 * Reads the list of available virtual NVRAM partition types. Locks required: 8909 * none. Returns: 0, EINVAL (bad type). 8910 */ 8911 #define MC_CMD_NVRAM_PARTITIONS 0x51 8912 #undef MC_CMD_0x51_PRIVILEGE_CTG 8913 8914 #define MC_CMD_0x51_PRIVILEGE_CTG SRIOV_CTG_ADMIN 8915 8916 /* MC_CMD_NVRAM_PARTITIONS_IN msgrequest */ 8917 #define MC_CMD_NVRAM_PARTITIONS_IN_LEN 0 8918 8919 /* MC_CMD_NVRAM_PARTITIONS_OUT msgresponse */ 8920 #define MC_CMD_NVRAM_PARTITIONS_OUT_LENMIN 4 8921 #define MC_CMD_NVRAM_PARTITIONS_OUT_LENMAX 252 8922 #define MC_CMD_NVRAM_PARTITIONS_OUT_LENMAX_MCDI2 1020 8923 #define MC_CMD_NVRAM_PARTITIONS_OUT_LEN(num) (4+4*(num)) 8924 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_NUM(len) (((len)-4)/4) 8925 /* total number of partitions */ 8926 #define MC_CMD_NVRAM_PARTITIONS_OUT_NUM_PARTITIONS_OFST 0 8927 #define MC_CMD_NVRAM_PARTITIONS_OUT_NUM_PARTITIONS_LEN 4 8928 /* type ID code for each of NUM_PARTITIONS partitions */ 8929 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_OFST 4 8930 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_LEN 4 8931 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_MINNUM 0 8932 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_MAXNUM 62 8933 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_MAXNUM_MCDI2 254 8934 8935 8936 /***********************************/ 8937 /* MC_CMD_NVRAM_METADATA 8938 * Reads soft metadata for a virtual NVRAM partition type. Locks required: 8939 * none. Returns: 0, EINVAL (bad type). 8940 */ 8941 #define MC_CMD_NVRAM_METADATA 0x52 8942 #undef MC_CMD_0x52_PRIVILEGE_CTG 8943 8944 #define MC_CMD_0x52_PRIVILEGE_CTG SRIOV_CTG_ADMIN 8945 8946 /* MC_CMD_NVRAM_METADATA_IN msgrequest */ 8947 #define MC_CMD_NVRAM_METADATA_IN_LEN 4 8948 /* Partition type ID code */ 8949 #define MC_CMD_NVRAM_METADATA_IN_TYPE_OFST 0 8950 #define MC_CMD_NVRAM_METADATA_IN_TYPE_LEN 4 8951 8952 /* MC_CMD_NVRAM_METADATA_OUT msgresponse */ 8953 #define MC_CMD_NVRAM_METADATA_OUT_LENMIN 20 8954 #define MC_CMD_NVRAM_METADATA_OUT_LENMAX 252 8955 #define MC_CMD_NVRAM_METADATA_OUT_LENMAX_MCDI2 1020 8956 #define MC_CMD_NVRAM_METADATA_OUT_LEN(num) (20+1*(num)) 8957 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_NUM(len) (((len)-20)/1) 8958 /* Partition type ID code */ 8959 #define MC_CMD_NVRAM_METADATA_OUT_TYPE_OFST 0 8960 #define MC_CMD_NVRAM_METADATA_OUT_TYPE_LEN 4 8961 #define MC_CMD_NVRAM_METADATA_OUT_FLAGS_OFST 4 8962 #define MC_CMD_NVRAM_METADATA_OUT_FLAGS_LEN 4 8963 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_VALID_OFST 4 8964 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_VALID_LBN 0 8965 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_VALID_WIDTH 1 8966 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_VALID_OFST 4 8967 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_VALID_LBN 1 8968 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_VALID_WIDTH 1 8969 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_VALID_OFST 4 8970 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_VALID_LBN 2 8971 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_VALID_WIDTH 1 8972 /* Subtype ID code for content of this partition */ 8973 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_OFST 8 8974 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_LEN 4 8975 /* 1st component of W.X.Y.Z version number for content of this partition */ 8976 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_W_OFST 12 8977 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_W_LEN 2 8978 /* 2nd component of W.X.Y.Z version number for content of this partition */ 8979 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_X_OFST 14 8980 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_X_LEN 2 8981 /* 3rd component of W.X.Y.Z version number for content of this partition */ 8982 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_Y_OFST 16 8983 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_Y_LEN 2 8984 /* 4th component of W.X.Y.Z version number for content of this partition */ 8985 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_Z_OFST 18 8986 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_Z_LEN 2 8987 /* Zero-terminated string describing the content of this partition */ 8988 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_OFST 20 8989 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_LEN 1 8990 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_MINNUM 0 8991 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_MAXNUM 232 8992 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_MAXNUM_MCDI2 1000 8993 8994 8995 /***********************************/ 8996 /* MC_CMD_GET_MAC_ADDRESSES 8997 * Returns the base MAC, count and stride for the requesting function 8998 */ 8999 #define MC_CMD_GET_MAC_ADDRESSES 0x55 9000 #undef MC_CMD_0x55_PRIVILEGE_CTG 9001 9002 #define MC_CMD_0x55_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9003 9004 /* MC_CMD_GET_MAC_ADDRESSES_IN msgrequest */ 9005 #define MC_CMD_GET_MAC_ADDRESSES_IN_LEN 0 9006 9007 /* MC_CMD_GET_MAC_ADDRESSES_OUT msgresponse */ 9008 #define MC_CMD_GET_MAC_ADDRESSES_OUT_LEN 16 9009 /* Base MAC address */ 9010 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_ADDR_BASE_OFST 0 9011 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_ADDR_BASE_LEN 6 9012 /* Padding */ 9013 #define MC_CMD_GET_MAC_ADDRESSES_OUT_RESERVED_OFST 6 9014 #define MC_CMD_GET_MAC_ADDRESSES_OUT_RESERVED_LEN 2 9015 /* Number of allocated MAC addresses */ 9016 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_COUNT_OFST 8 9017 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_COUNT_LEN 4 9018 /* Spacing of allocated MAC addresses */ 9019 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_STRIDE_OFST 12 9020 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_STRIDE_LEN 4 9021 9022 /* MC_CMD_DYNAMIC_SENSORS_LIMITS structuredef: Set of sensor limits. This 9023 * should match the equivalent structure in the sensor_query SPHINX service. 9024 */ 9025 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LEN 24 9026 /* A value below this will trigger a warning event. */ 9027 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_OFST 0 9028 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_LEN 4 9029 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_LBN 0 9030 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_WIDTH 32 9031 /* A value below this will trigger a critical event. */ 9032 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_OFST 4 9033 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_LEN 4 9034 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_LBN 32 9035 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_WIDTH 32 9036 /* A value below this will shut down the card. */ 9037 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_OFST 8 9038 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_LEN 4 9039 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_LBN 64 9040 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_WIDTH 32 9041 /* A value above this will trigger a warning event. */ 9042 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_OFST 12 9043 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_LEN 4 9044 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_LBN 96 9045 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_WIDTH 32 9046 /* A value above this will trigger a critical event. */ 9047 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_OFST 16 9048 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_LEN 4 9049 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_LBN 128 9050 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_WIDTH 32 9051 /* A value above this will shut down the card. */ 9052 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_OFST 20 9053 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_LEN 4 9054 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_LBN 160 9055 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_WIDTH 32 9056 9057 /* MC_CMD_DYNAMIC_SENSORS_DESCRIPTION structuredef: Description of a sensor. 9058 * This should match the equivalent structure in the sensor_query SPHINX 9059 * service. 9060 */ 9061 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LEN 64 9062 /* The handle used to identify the sensor in calls to 9063 * MC_CMD_DYNAMIC_SENSORS_GET_VALUES 9064 */ 9065 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_OFST 0 9066 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_LEN 4 9067 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_LBN 0 9068 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_WIDTH 32 9069 /* A human-readable name for the sensor (zero terminated string, max 32 bytes) 9070 */ 9071 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_OFST 4 9072 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_LEN 32 9073 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_LBN 32 9074 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_WIDTH 256 9075 /* The type of the sensor device, and by implication the unit of that the 9076 * values will be reported in 9077 */ 9078 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_OFST 36 9079 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_LEN 4 9080 /* enum: A voltage sensor. Unit is mV */ 9081 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_VOLTAGE 0x0 9082 /* enum: A current sensor. Unit is mA */ 9083 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_CURRENT 0x1 9084 /* enum: A power sensor. Unit is mW */ 9085 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_POWER 0x2 9086 /* enum: A temperature sensor. Unit is Celsius */ 9087 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TEMPERATURE 0x3 9088 /* enum: A cooling fan sensor. Unit is RPM */ 9089 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_FAN 0x4 9090 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_LBN 288 9091 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_WIDTH 32 9092 /* A single MC_CMD_DYNAMIC_SENSORS_LIMITS structure */ 9093 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LIMITS_OFST 40 9094 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LIMITS_LEN 24 9095 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LIMITS_LBN 320 9096 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LIMITS_WIDTH 192 9097 9098 /* MC_CMD_DYNAMIC_SENSORS_READING structuredef: State and value of a sensor. 9099 * This should match the equivalent structure in the sensor_query SPHINX 9100 * service. 9101 */ 9102 #define MC_CMD_DYNAMIC_SENSORS_READING_LEN 12 9103 /* The handle used to identify the sensor */ 9104 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_OFST 0 9105 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_LEN 4 9106 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_LBN 0 9107 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_WIDTH 32 9108 /* The current value of the sensor */ 9109 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_OFST 4 9110 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_LEN 4 9111 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_LBN 32 9112 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_WIDTH 32 9113 /* The sensor's condition, e.g. good, broken or removed */ 9114 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_OFST 8 9115 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_LEN 4 9116 /* enum: Sensor working normally within limits */ 9117 #define MC_CMD_DYNAMIC_SENSORS_READING_OK 0x0 9118 /* enum: Warning threshold breached */ 9119 #define MC_CMD_DYNAMIC_SENSORS_READING_WARNING 0x1 9120 /* enum: Critical threshold breached */ 9121 #define MC_CMD_DYNAMIC_SENSORS_READING_CRITICAL 0x2 9122 /* enum: Fatal threshold breached */ 9123 #define MC_CMD_DYNAMIC_SENSORS_READING_FATAL 0x3 9124 /* enum: Sensor not working */ 9125 #define MC_CMD_DYNAMIC_SENSORS_READING_BROKEN 0x4 9126 /* enum: Sensor working but no reading available */ 9127 #define MC_CMD_DYNAMIC_SENSORS_READING_NO_READING 0x5 9128 /* enum: Sensor initialization failed */ 9129 #define MC_CMD_DYNAMIC_SENSORS_READING_INIT_FAILED 0x6 9130 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_LBN 64 9131 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_WIDTH 32 9132 9133 9134 /***********************************/ 9135 /* MC_CMD_DYNAMIC_SENSORS_LIST 9136 * Return a complete list of handles for sensors currently managed by the MC, 9137 * and a generation count for this version of the sensor table. On systems 9138 * advertising the DYNAMIC_SENSORS capability bit, this replaces the 9139 * MC_CMD_READ_SENSORS command. On multi-MC systems this may include sensors 9140 * added by the NMC. Sensor handles are persistent for the lifetime of the 9141 * sensor and are used to identify sensors in 9142 * MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS and 9143 * MC_CMD_DYNAMIC_SENSORS_GET_VALUES. The generation count is maintained by the 9144 * MC, is persistent across reboots and will be incremented each time the 9145 * sensor table is modified. When the table is modified, a 9146 * CODE_DYNAMIC_SENSORS_CHANGE event will be generated containing the new 9147 * generation count. The driver should compare this against the current 9148 * generation count, and if it is different, call MC_CMD_DYNAMIC_SENSORS_LIST 9149 * again to update it's copy of the sensor table. The sensor count is provided 9150 * to allow a future path to supporting more than 9151 * MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_MAXNUM_MCDI2 sensors, i.e. 9152 * the maximum number that will fit in a single response. As this is a fairly 9153 * large number (253) it is not anticipated that this will be needed in the 9154 * near future, so can currently be ignored. On Riverhead this command is 9155 * implemented as a wrapper for `list` in the sensor_query SPHINX service. 9156 */ 9157 #define MC_CMD_DYNAMIC_SENSORS_LIST 0x66 9158 #undef MC_CMD_0x66_PRIVILEGE_CTG 9159 9160 #define MC_CMD_0x66_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9161 9162 /* MC_CMD_DYNAMIC_SENSORS_LIST_IN msgrequest */ 9163 #define MC_CMD_DYNAMIC_SENSORS_LIST_IN_LEN 0 9164 9165 /* MC_CMD_DYNAMIC_SENSORS_LIST_OUT msgresponse */ 9166 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LENMIN 8 9167 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LENMAX 252 9168 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LENMAX_MCDI2 1020 9169 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LEN(num) (8+4*(num)) 9170 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_NUM(len) (((len)-8)/4) 9171 /* Generation count, which will be updated each time a sensor is added to or 9172 * removed from the MC sensor table. 9173 */ 9174 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_GENERATION_OFST 0 9175 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_GENERATION_LEN 4 9176 /* Number of sensors managed by the MC. Note that in principle, this can be 9177 * larger than the size of the HANDLES array. 9178 */ 9179 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_COUNT_OFST 4 9180 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_COUNT_LEN 4 9181 /* Array of sensor handles */ 9182 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_OFST 8 9183 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_LEN 4 9184 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_MINNUM 0 9185 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_MAXNUM 61 9186 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_MAXNUM_MCDI2 253 9187 9188 9189 /***********************************/ 9190 /* MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS 9191 * Get descriptions for a set of sensors, specified as an array of sensor 9192 * handles as returned by MC_CMD_DYNAMIC_SENSORS_LIST. Any handles which do not 9193 * correspond to a sensor currently managed by the MC will be dropped from from 9194 * the response. This may happen when a sensor table update is in progress, and 9195 * effectively means the set of usable sensors is the intersection between the 9196 * sets of sensors known to the driver and the MC. On Riverhead this command is 9197 * implemented as a wrapper for `get_descriptions` in the sensor_query SPHINX 9198 * service. 9199 */ 9200 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS 0x67 9201 #undef MC_CMD_0x67_PRIVILEGE_CTG 9202 9203 #define MC_CMD_0x67_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9204 9205 /* MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN msgrequest */ 9206 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LENMIN 0 9207 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LENMAX 252 9208 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LENMAX_MCDI2 1020 9209 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LEN(num) (0+4*(num)) 9210 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_NUM(len) (((len)-0)/4) 9211 /* Array of sensor handles */ 9212 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_OFST 0 9213 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_LEN 4 9214 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_MINNUM 0 9215 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_MAXNUM 63 9216 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_MAXNUM_MCDI2 255 9217 9218 /* MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT msgresponse */ 9219 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_LENMIN 0 9220 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_LENMAX 192 9221 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_LENMAX_MCDI2 960 9222 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_LEN(num) (0+64*(num)) 9223 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_NUM(len) (((len)-0)/64) 9224 /* Array of MC_CMD_DYNAMIC_SENSORS_DESCRIPTION structures */ 9225 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_OFST 0 9226 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_LEN 64 9227 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_MINNUM 0 9228 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_MAXNUM 3 9229 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_MAXNUM_MCDI2 15 9230 9231 9232 /***********************************/ 9233 /* MC_CMD_DYNAMIC_SENSORS_GET_READINGS 9234 * Read the state and value for a set of sensors, specified as an array of 9235 * sensor handles as returned by MC_CMD_DYNAMIC_SENSORS_LIST. In the case of a 9236 * broken sensor, then the state of the response's MC_CMD_DYNAMIC_SENSORS_VALUE 9237 * entry will be set to BROKEN, and any value provided should be treated as 9238 * erroneous. Any handles which do not correspond to a sensor currently managed 9239 * by the MC will be dropped from from the response. This may happen when a 9240 * sensor table update is in progress, and effectively means the set of usable 9241 * sensors is the intersection between the sets of sensors known to the driver 9242 * and the MC. On Riverhead this command is implemented as a wrapper for 9243 * `get_readings` in the sensor_query SPHINX service. 9244 */ 9245 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS 0x68 9246 #undef MC_CMD_0x68_PRIVILEGE_CTG 9247 9248 #define MC_CMD_0x68_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9249 9250 /* MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN msgrequest */ 9251 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LENMIN 0 9252 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LENMAX 252 9253 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LENMAX_MCDI2 1020 9254 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LEN(num) (0+4*(num)) 9255 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_NUM(len) (((len)-0)/4) 9256 /* Array of sensor handles */ 9257 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_OFST 0 9258 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_LEN 4 9259 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_MINNUM 0 9260 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_MAXNUM 63 9261 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_MAXNUM_MCDI2 255 9262 9263 /* MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT msgresponse */ 9264 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_LENMIN 0 9265 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_LENMAX 252 9266 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_LENMAX_MCDI2 1020 9267 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_LEN(num) (0+12*(num)) 9268 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_NUM(len) (((len)-0)/12) 9269 /* Array of MC_CMD_DYNAMIC_SENSORS_READING structures */ 9270 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_OFST 0 9271 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_LEN 12 9272 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_MINNUM 0 9273 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_MAXNUM 21 9274 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_MAXNUM_MCDI2 85 9275 9276 /* MC_CMD_MAC_FLAGS structuredef */ 9277 #define MC_CMD_MAC_FLAGS_LEN 4 9278 /* The enums defined in this field are used as indices into the 9279 * MC_CMD_MAC_FLAGS bitmask. 9280 */ 9281 #define MC_CMD_MAC_FLAGS_MASK_OFST 0 9282 #define MC_CMD_MAC_FLAGS_MASK_LEN 4 9283 /* enum property: bitshift */ 9284 /* enum: Include the FCS in the packet data delivered to the host. Ignored if 9285 * RX_INCLUDE_FCS not set in capabilities. 9286 */ 9287 #define MC_CMD_MAC_FLAGS_FLAG_INCLUDE_FCS 0x0 9288 #define MC_CMD_MAC_FLAGS_MASK_LBN 0 9289 #define MC_CMD_MAC_FLAGS_MASK_WIDTH 32 9290 9291 /* MC_CMD_TRANSMISSION_MODE structuredef */ 9292 #define MC_CMD_TRANSMISSION_MODE_LEN 4 9293 #define MC_CMD_TRANSMISSION_MODE_MASK_OFST 0 9294 #define MC_CMD_TRANSMISSION_MODE_MASK_LEN 4 9295 /* enum property: value */ 9296 #define MC_CMD_TRANSMISSION_MODE_PROMSC_MODE 0x0 /* enum */ 9297 #define MC_CMD_TRANSMISSION_MODE_UNCST_MODE 0x1 /* enum */ 9298 #define MC_CMD_TRANSMISSION_MODE_BRDCST_MODE 0x2 /* enum */ 9299 #define MC_CMD_TRANSMISSION_MODE_MASK_LBN 0 9300 #define MC_CMD_TRANSMISSION_MODE_MASK_WIDTH 32 9301 9302 /* MC_CMD_MAC_CONFIG_OPTIONS structuredef */ 9303 #define MC_CMD_MAC_CONFIG_OPTIONS_LEN 4 9304 #define MC_CMD_MAC_CONFIG_OPTIONS_MASK_OFST 0 9305 #define MC_CMD_MAC_CONFIG_OPTIONS_MASK_LEN 4 9306 /* enum property: bitmask */ 9307 /* enum: Configure the MAC address. */ 9308 #define MC_CMD_MAC_CONFIG_OPTIONS_CFG_ADDR 0x0 9309 /* enum: Configure the maximum frame length. */ 9310 #define MC_CMD_MAC_CONFIG_OPTIONS_CFG_MAX_FRAME_LEN 0x1 9311 /* enum: Configure flow control. */ 9312 #define MC_CMD_MAC_CONFIG_OPTIONS_CFG_FCNTL 0x2 9313 /* enum: Configure the transmission mode. */ 9314 #define MC_CMD_MAC_CONFIG_OPTIONS_CFG_TRANSMISSION_MODE 0x3 9315 /* enum: Configure FCS. */ 9316 #define MC_CMD_MAC_CONFIG_OPTIONS_CFG_INCLUDE_FCS 0x4 9317 #define MC_CMD_MAC_CONFIG_OPTIONS_MASK_LBN 0 9318 #define MC_CMD_MAC_CONFIG_OPTIONS_MASK_WIDTH 32 9319 9320 9321 /***********************************/ 9322 /* MC_CMD_MAC_CTRL 9323 * Set MAC configuration. Return code: 0, EINVAL, ENOTSUP 9324 */ 9325 #define MC_CMD_MAC_CTRL 0x1df 9326 #undef MC_CMD_0x1df_PRIVILEGE_CTG 9327 9328 #define MC_CMD_0x1df_PRIVILEGE_CTG SRIOV_CTG_LINK 9329 9330 /* MC_CMD_MAC_CTRL_IN msgrequest */ 9331 #define MC_CMD_MAC_CTRL_IN_LEN 32 9332 /* Handle for selected network port. */ 9333 #define MC_CMD_MAC_CTRL_IN_PORT_HANDLE_OFST 0 9334 #define MC_CMD_MAC_CTRL_IN_PORT_HANDLE_LEN 4 9335 /* Select which parameters to configure. A parameter will only be modified if 9336 * the corresponding control flag is set. 9337 */ 9338 #define MC_CMD_MAC_CTRL_IN_CONTROL_FLAGS_OFST 4 9339 #define MC_CMD_MAC_CTRL_IN_CONTROL_FLAGS_LEN 4 9340 /* enum property: bitshift */ 9341 /* Enum values, see field(s): */ 9342 /* MC_CMD_MAC_CONFIG_OPTIONS/MASK */ 9343 /* MAC address of the device. */ 9344 #define MC_CMD_MAC_CTRL_IN_ADDR_OFST 8 9345 #define MC_CMD_MAC_CTRL_IN_ADDR_LEN 8 9346 #define MC_CMD_MAC_CTRL_IN_ADDR_LO_OFST 8 9347 #define MC_CMD_MAC_CTRL_IN_ADDR_LO_LEN 4 9348 #define MC_CMD_MAC_CTRL_IN_ADDR_LO_LBN 64 9349 #define MC_CMD_MAC_CTRL_IN_ADDR_LO_WIDTH 32 9350 #define MC_CMD_MAC_CTRL_IN_ADDR_HI_OFST 12 9351 #define MC_CMD_MAC_CTRL_IN_ADDR_HI_LEN 4 9352 #define MC_CMD_MAC_CTRL_IN_ADDR_HI_LBN 96 9353 #define MC_CMD_MAC_CTRL_IN_ADDR_HI_WIDTH 32 9354 /* Includes the ethernet header, optional VLAN tags, payload and FCS. */ 9355 #define MC_CMD_MAC_CTRL_IN_MAX_FRAME_LEN_OFST 16 9356 #define MC_CMD_MAC_CTRL_IN_MAX_FRAME_LEN_LEN 4 9357 /* Settings for flow control. */ 9358 #define MC_CMD_MAC_CTRL_IN_FCNTL_OFST 20 9359 #define MC_CMD_MAC_CTRL_IN_FCNTL_LEN 4 9360 /* enum property: value */ 9361 /* Enum values, see field(s): */ 9362 /* MC_CMD_FCNTL/MASK */ 9363 /* Configure the MAC to transmit in one of promiscuous, unicast or broadcast 9364 * mode. 9365 */ 9366 #define MC_CMD_MAC_CTRL_IN_TRANSMISSION_MODE_OFST 24 9367 #define MC_CMD_MAC_CTRL_IN_TRANSMISSION_MODE_LEN 4 9368 /* enum property: value */ 9369 /* Enum values, see field(s): */ 9370 /* MC_CMD_TRANSMISSION_MODE/MASK */ 9371 /* Flags to control and expand the configuration of the MAC. */ 9372 #define MC_CMD_MAC_CTRL_IN_FLAGS_OFST 28 9373 #define MC_CMD_MAC_CTRL_IN_FLAGS_LEN 4 9374 /* enum property: bitshift */ 9375 /* Enum values, see field(s): */ 9376 /* MC_CMD_MAC_FLAGS/MASK */ 9377 9378 /* MC_CMD_MAC_CTRL_IN_V2 msgrequest: Updated MAC_CTRL with QBB mask */ 9379 #define MC_CMD_MAC_CTRL_IN_V2_LEN 33 9380 /* Handle for selected network port. */ 9381 #define MC_CMD_MAC_CTRL_IN_V2_PORT_HANDLE_OFST 0 9382 #define MC_CMD_MAC_CTRL_IN_V2_PORT_HANDLE_LEN 4 9383 /* Select which parameters to configure. A parameter will only be modified if 9384 * the corresponding control flag is set. 9385 */ 9386 #define MC_CMD_MAC_CTRL_IN_V2_CONTROL_FLAGS_OFST 4 9387 #define MC_CMD_MAC_CTRL_IN_V2_CONTROL_FLAGS_LEN 4 9388 /* enum property: bitshift */ 9389 /* Enum values, see field(s): */ 9390 /* MC_CMD_MAC_CONFIG_OPTIONS/MASK */ 9391 /* MAC address of the device. */ 9392 #define MC_CMD_MAC_CTRL_IN_V2_ADDR_OFST 8 9393 #define MC_CMD_MAC_CTRL_IN_V2_ADDR_LEN 8 9394 #define MC_CMD_MAC_CTRL_IN_V2_ADDR_LO_OFST 8 9395 #define MC_CMD_MAC_CTRL_IN_V2_ADDR_LO_LEN 4 9396 #define MC_CMD_MAC_CTRL_IN_V2_ADDR_LO_LBN 64 9397 #define MC_CMD_MAC_CTRL_IN_V2_ADDR_LO_WIDTH 32 9398 #define MC_CMD_MAC_CTRL_IN_V2_ADDR_HI_OFST 12 9399 #define MC_CMD_MAC_CTRL_IN_V2_ADDR_HI_LEN 4 9400 #define MC_CMD_MAC_CTRL_IN_V2_ADDR_HI_LBN 96 9401 #define MC_CMD_MAC_CTRL_IN_V2_ADDR_HI_WIDTH 32 9402 /* Includes the ethernet header, optional VLAN tags, payload and FCS. */ 9403 #define MC_CMD_MAC_CTRL_IN_V2_MAX_FRAME_LEN_OFST 16 9404 #define MC_CMD_MAC_CTRL_IN_V2_MAX_FRAME_LEN_LEN 4 9405 /* Settings for flow control. */ 9406 #define MC_CMD_MAC_CTRL_IN_V2_FCNTL_OFST 20 9407 #define MC_CMD_MAC_CTRL_IN_V2_FCNTL_LEN 4 9408 /* enum property: value */ 9409 /* Enum values, see field(s): */ 9410 /* MC_CMD_FCNTL/MASK */ 9411 /* Configure the MAC to transmit in one of promiscuous, unicast or broadcast 9412 * mode. 9413 */ 9414 #define MC_CMD_MAC_CTRL_IN_V2_TRANSMISSION_MODE_OFST 24 9415 #define MC_CMD_MAC_CTRL_IN_V2_TRANSMISSION_MODE_LEN 4 9416 /* enum property: value */ 9417 /* Enum values, see field(s): */ 9418 /* MC_CMD_TRANSMISSION_MODE/MASK */ 9419 /* Flags to control and expand the configuration of the MAC. */ 9420 #define MC_CMD_MAC_CTRL_IN_V2_FLAGS_OFST 28 9421 #define MC_CMD_MAC_CTRL_IN_V2_FLAGS_LEN 4 9422 /* enum property: bitshift */ 9423 /* Enum values, see field(s): */ 9424 /* MC_CMD_MAC_FLAGS/MASK */ 9425 /* Priority-based flow control mask (QBB). PRIO7 corresponds to the highest 9426 * priority, and PRIO0 to the lowest. This field is only used when CFG_FCNTL is 9427 * set and FCNTL is QBB 9428 */ 9429 #define MC_CMD_MAC_CTRL_IN_V2_PRIO_FCNTL_MASK_OFST 32 9430 #define MC_CMD_MAC_CTRL_IN_V2_PRIO_FCNTL_MASK_LEN 1 9431 /* enum property: bitmask */ 9432 #define MC_CMD_MAC_CTRL_IN_V2_QBB_PRIO0 0x0 /* enum */ 9433 #define MC_CMD_MAC_CTRL_IN_V2_QBB_PRIO1 0x1 /* enum */ 9434 #define MC_CMD_MAC_CTRL_IN_V2_QBB_PRIO2 0x2 /* enum */ 9435 #define MC_CMD_MAC_CTRL_IN_V2_QBB_PRIO3 0x3 /* enum */ 9436 #define MC_CMD_MAC_CTRL_IN_V2_QBB_PRIO4 0x4 /* enum */ 9437 #define MC_CMD_MAC_CTRL_IN_V2_QBB_PRIO5 0x5 /* enum */ 9438 #define MC_CMD_MAC_CTRL_IN_V2_QBB_PRIO6 0x6 /* enum */ 9439 #define MC_CMD_MAC_CTRL_IN_V2_QBB_PRIO7 0x7 /* enum */ 9440 9441 /* MC_CMD_MAC_CTRL_OUT msgresponse */ 9442 #define MC_CMD_MAC_CTRL_OUT_LEN 0 9443 9444 9445 /***********************************/ 9446 /* MC_CMD_MAC_STATE 9447 * Read the MAC state. Return code: 0, ETIME. 9448 */ 9449 #define MC_CMD_MAC_STATE 0x1e0 9450 #undef MC_CMD_0x1e0_PRIVILEGE_CTG 9451 9452 #define MC_CMD_0x1e0_PRIVILEGE_CTG SRIOV_CTG_LINK 9453 9454 /* MC_CMD_MAC_STATE_IN msgrequest */ 9455 #define MC_CMD_MAC_STATE_IN_LEN 4 9456 /* Handle for selected network port. */ 9457 #define MC_CMD_MAC_STATE_IN_PORT_HANDLE_OFST 0 9458 #define MC_CMD_MAC_STATE_IN_PORT_HANDLE_LEN 4 9459 9460 /* MC_CMD_MAC_STATE_OUT msgresponse */ 9461 #define MC_CMD_MAC_STATE_OUT_LEN 32 9462 /* The configured maximum frame length of the MAC. */ 9463 #define MC_CMD_MAC_STATE_OUT_MAX_FRAME_LEN_OFST 0 9464 #define MC_CMD_MAC_STATE_OUT_MAX_FRAME_LEN_LEN 4 9465 /* This returns the negotiated flow control value. */ 9466 #define MC_CMD_MAC_STATE_OUT_FCNTL_OFST 4 9467 #define MC_CMD_MAC_STATE_OUT_FCNTL_LEN 4 9468 /* enum property: value */ 9469 /* Enum values, see field(s): */ 9470 /* MC_CMD_FCNTL/MASK */ 9471 /* MAC address of the device. */ 9472 #define MC_CMD_MAC_STATE_OUT_ADDR_OFST 8 9473 #define MC_CMD_MAC_STATE_OUT_ADDR_LEN 8 9474 #define MC_CMD_MAC_STATE_OUT_ADDR_LO_OFST 8 9475 #define MC_CMD_MAC_STATE_OUT_ADDR_LO_LEN 4 9476 #define MC_CMD_MAC_STATE_OUT_ADDR_LO_LBN 64 9477 #define MC_CMD_MAC_STATE_OUT_ADDR_LO_WIDTH 32 9478 #define MC_CMD_MAC_STATE_OUT_ADDR_HI_OFST 12 9479 #define MC_CMD_MAC_STATE_OUT_ADDR_HI_LEN 4 9480 #define MC_CMD_MAC_STATE_OUT_ADDR_HI_LBN 96 9481 #define MC_CMD_MAC_STATE_OUT_ADDR_HI_WIDTH 32 9482 /* Flags indicating MAC faults. */ 9483 #define MC_CMD_MAC_STATE_OUT_MAC_FAULT_FLAGS_OFST 16 9484 #define MC_CMD_MAC_STATE_OUT_MAC_FAULT_FLAGS_LEN 4 9485 /* enum property: bitshift */ 9486 /* enum: Indicates a local MAC fault. */ 9487 #define MC_CMD_MAC_STATE_OUT_LOCAL 0x0 9488 /* enum: Indicates a remote MAC fault. */ 9489 #define MC_CMD_MAC_STATE_OUT_REMOTE 0x1 9490 /* enum: Indicates a pending reconfiguration of the MAC. */ 9491 #define MC_CMD_MAC_STATE_OUT_PENDING_RECONFIG 0x2 9492 /* The flags that were used to configure the MAC. This is a copy of the FLAGS 9493 * field in the MC_CMD_MAC_CTRL_IN command. 9494 */ 9495 #define MC_CMD_MAC_STATE_OUT_FLAGS_OFST 20 9496 #define MC_CMD_MAC_STATE_OUT_FLAGS_LEN 4 9497 /* enum property: bitshift */ 9498 /* Enum values, see field(s): */ 9499 /* MC_CMD_MAC_FLAGS/MASK */ 9500 /* The transmission mode that was used to configure the MAC. This is a copy of 9501 * the TRANSMISSION_MODE field in the MC_CMD_MAC_CTRL_IN command. 9502 */ 9503 #define MC_CMD_MAC_STATE_OUT_TRANSMISSION_MODE_OFST 24 9504 #define MC_CMD_MAC_STATE_OUT_TRANSMISSION_MODE_LEN 4 9505 /* enum property: value */ 9506 /* Enum values, see field(s): */ 9507 /* MC_CMD_TRANSMISSION_MODE/MASK */ 9508 /* The control flags that were used to configure the MAC. This is a copy of the 9509 * CONTROL field in the MC_CMD_MAC_CTRL_IN command. 9510 */ 9511 #define MC_CMD_MAC_STATE_OUT_CONTROL_FLAGS_OFST 28 9512 #define MC_CMD_MAC_STATE_OUT_CONTROL_FLAGS_LEN 4 9513 /* enum property: bitshift */ 9514 /* Enum values, see field(s): */ 9515 /* MC_CMD_MAC_CONFIG_OPTIONS/MASK */ 9516 9517 9518 /***********************************/ 9519 /* MC_CMD_GET_ASSIGNED_PORT_HANDLE 9520 * Obtain a handle that can be operated on to configure and query the status of 9521 * the link. ENOENT is returned when no port is assigned to the client. Return 9522 * code: 0, ENOENT 9523 */ 9524 #define MC_CMD_GET_ASSIGNED_PORT_HANDLE 0x1e2 9525 #undef MC_CMD_0x1e2_PRIVILEGE_CTG 9526 9527 #define MC_CMD_0x1e2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9528 9529 /* MC_CMD_GET_ASSIGNED_PORT_HANDLE_IN msgrequest */ 9530 #define MC_CMD_GET_ASSIGNED_PORT_HANDLE_IN_LEN 0 9531 9532 /* MC_CMD_GET_ASSIGNED_PORT_HANDLE_OUT msgresponse */ 9533 #define MC_CMD_GET_ASSIGNED_PORT_HANDLE_OUT_LEN 4 9534 /* Handle for assigned port. */ 9535 #define MC_CMD_GET_ASSIGNED_PORT_HANDLE_OUT_PORT_HANDLE_OFST 0 9536 #define MC_CMD_GET_ASSIGNED_PORT_HANDLE_OUT_PORT_HANDLE_LEN 4 9537 9538 /* MC_CMD_STAT_ID structuredef */ 9539 #define MC_CMD_STAT_ID_LEN 4 9540 #define MC_CMD_STAT_ID_SOURCE_ID_OFST 0 9541 #define MC_CMD_STAT_ID_SOURCE_ID_LEN 2 9542 /* enum property: index */ 9543 /* enum: Internal markers (generation start and end markers) */ 9544 #define MC_CMD_STAT_ID_MARKER 0x1 9545 /* enum: Network port MAC statistics. */ 9546 #define MC_CMD_STAT_ID_MAC 0x2 9547 /* enum: Network port PHY statistics. */ 9548 #define MC_CMD_STAT_ID_PHY 0x3 9549 #define MC_CMD_STAT_ID_SOURCE_ID_LBN 0 9550 #define MC_CMD_STAT_ID_SOURCE_ID_WIDTH 16 9551 #define MC_CMD_STAT_ID_MARKER_STAT_ID_OFST 2 9552 #define MC_CMD_STAT_ID_MARKER_STAT_ID_LEN 2 9553 /* enum property: index */ 9554 /* enum: This value is used to mark the start of a generation of statistics for 9555 * DMA synchronization. It is incremented whenever a new set of statistics is 9556 * transferred. Always the first entry in the DMA buffer. 9557 */ 9558 #define MC_CMD_STAT_ID_GENERATION_START 0x1 9559 /* enum: This value is used to mark the end of a generation of statistics for 9560 * DMA synchronizaion. Always the last entry in the DMA buffer and set to the 9561 * same value as GENERATION_START. The host driver must compare the 9562 * GENERATION_START and GENERATION_END values to verify that the DMA buffer is 9563 * consistent upon copying the the DMA buffer. If they do not match, it means 9564 * that new DMA transfer has started while the host driver was copying the DMA 9565 * buffer. In this case, the host driver must repeat the copy operation. 9566 */ 9567 #define MC_CMD_STAT_ID_GENERATION_END 0x2 9568 #define MC_CMD_STAT_ID_MARKER_STAT_ID_LBN 16 9569 #define MC_CMD_STAT_ID_MARKER_STAT_ID_WIDTH 16 9570 #define MC_CMD_STAT_ID_MAC_STAT_ID_OFST 2 9571 #define MC_CMD_STAT_ID_MAC_STAT_ID_LEN 2 9572 /* enum property: index */ 9573 /* enum: Total number of packets transmitted (includes pause frames). */ 9574 #define MC_CMD_STAT_ID_TX_PKTS 0x1 9575 /* enum: Pause frames transmitted. */ 9576 #define MC_CMD_STAT_ID_TX_PAUSE_PKTS 0x2 9577 /* enum: Control frames transmitted. */ 9578 #define MC_CMD_STAT_ID_TX_CONTROL_PKTS 0x3 9579 /* enum: Unicast packets transmitted (includes pause frames). */ 9580 #define MC_CMD_STAT_ID_TX_UNICAST_PKTS 0x4 9581 /* enum: Multicast packets transmitted (includes pause frames). */ 9582 #define MC_CMD_STAT_ID_TX_MULTICAST_PKTS 0x5 9583 /* enum: Broadcast packets transmitted (includes pause frames). */ 9584 #define MC_CMD_STAT_ID_TX_BROADCAST_PKTS 0x6 9585 /* enum: Bytes transmitted (includes pause frames). */ 9586 #define MC_CMD_STAT_ID_TX_BYTES 0x7 9587 /* enum: Bytes transmitted with bad CRC. */ 9588 #define MC_CMD_STAT_ID_TX_BAD_BYTES 0x8 9589 /* enum: Bytes transmitted with good CRC. */ 9590 #define MC_CMD_STAT_ID_TX_GOOD_BYTES 0x9 9591 /* enum: Packets transmitted with length less than 64 bytes. */ 9592 #define MC_CMD_STAT_ID_TX_LT64_PKTS 0xa 9593 /* enum: Packets transmitted with length equal to 64 bytes. */ 9594 #define MC_CMD_STAT_ID_TX_64_PKTS 0xb 9595 /* enum: Packets transmitted with length between 65 and 127 bytes. */ 9596 #define MC_CMD_STAT_ID_TX_65_TO_127_PKTS 0xc 9597 /* enum: Packets transmitted with length between 128 and 255 bytes. */ 9598 #define MC_CMD_STAT_ID_TX_128_TO_255_PKTS 0xd 9599 /* enum: Packets transmitted with length between 256 and 511 bytes. */ 9600 #define MC_CMD_STAT_ID_TX_256_TO_511_PKTS 0xe 9601 /* enum: Packets transmitted with length between 512 and 1023 bytes. */ 9602 #define MC_CMD_STAT_ID_TX_512_TO_1023_PKTS 0xf 9603 /* enum: Packets transmitted with length between 1024 and 1518 bytes. */ 9604 #define MC_CMD_STAT_ID_TX_1024_TO_15XX_PKTS 0x10 9605 /* enum: Packets transmitted with length between 1519 and 9216 bytes. */ 9606 #define MC_CMD_STAT_ID_TX_15XX_TO_JUMBO_PKTS 0x11 9607 /* enum: Packets transmitted with length greater than 9216 bytes. */ 9608 #define MC_CMD_STAT_ID_TX_GTJUMBO_PKTS 0x12 9609 /* enum: Packets transmitted with bad FCS. */ 9610 #define MC_CMD_STAT_ID_TX_BAD_FCS_PKTS 0x13 9611 /* enum: Packets transmitted with good FCS. */ 9612 #define MC_CMD_STAT_ID_TX_GOOD_FCS_PKTS 0x14 9613 /* enum: Packets received. */ 9614 #define MC_CMD_STAT_ID_RX_PKTS 0x15 9615 /* enum: Pause frames received. */ 9616 #define MC_CMD_STAT_ID_RX_PAUSE_PKTS 0x16 9617 /* enum: Total number of good packets received. */ 9618 #define MC_CMD_STAT_ID_RX_GOOD_PKTS 0x17 9619 /* enum: Total number of BAD packets received. */ 9620 #define MC_CMD_STAT_ID_RX_BAD_PKTS 0x18 9621 /* enum: Total number of control frames received. */ 9622 #define MC_CMD_STAT_ID_RX_CONTROL_PKTS 0x19 9623 /* enum: Total number of unicast packets received. */ 9624 #define MC_CMD_STAT_ID_RX_UNICAST_PKTS 0x1a 9625 /* enum: Total number of multicast packets received. */ 9626 #define MC_CMD_STAT_ID_RX_MULTICAST_PKTS 0x1b 9627 /* enum: Total number of broadcast packets received. */ 9628 #define MC_CMD_STAT_ID_RX_BROADCAST_PKTS 0x1c 9629 /* enum: Total number of bytes received. */ 9630 #define MC_CMD_STAT_ID_RX_BYTES 0x1d 9631 /* enum: Total number of bytes received with bad CRC. */ 9632 #define MC_CMD_STAT_ID_RX_BAD_BYTES 0x1e 9633 /* enum: Total number of bytes received with GOOD CRC. */ 9634 #define MC_CMD_STAT_ID_RX_GOOD_BYTES 0x1f 9635 /* enum: Packets received with length equal to 64 bytes. */ 9636 #define MC_CMD_STAT_ID_RX_64_PKTS 0x20 9637 /* enum: Packets received with length between 65 and 127 bytes. */ 9638 #define MC_CMD_STAT_ID_RX_65_TO_127_PKTS 0x21 9639 /* enum: Packets received with length between 128 and 255 bytes. */ 9640 #define MC_CMD_STAT_ID_RX_128_TO_255_PKTS 0x22 9641 /* enum: Packets received with length between 256 and 511 bytes. */ 9642 #define MC_CMD_STAT_ID_RX_256_TO_511_PKTS 0x23 9643 /* enum: Packets received with length between 512 and 1023 bytes. */ 9644 #define MC_CMD_STAT_ID_RX_512_TO_1023_PKTS 0x24 9645 /* enum: Packets received with length between 1024 and 1518 bytes. */ 9646 #define MC_CMD_STAT_ID_RX_1024_TO_15XX_PKTS 0x25 9647 /* enum: Packets received with length between 1519 and 9216 bytes. */ 9648 #define MC_CMD_STAT_ID_RX_15XX_TO_JUMBO_PKTS 0x26 9649 /* enum: Packets received with length greater than 9216 bytes. */ 9650 #define MC_CMD_STAT_ID_RX_GTJUMBO_PKTS 0x27 9651 /* enum: Packets received with length less than 64 bytes. */ 9652 #define MC_CMD_STAT_ID_RX_UNDERSIZE_PKTS 0x28 9653 /* enum: Packets received with bad FCS. */ 9654 #define MC_CMD_STAT_ID_RX_BAD_FCS_PKTS 0x29 9655 /* enum: Packets received with GOOD FCS. */ 9656 #define MC_CMD_STAT_ID_RX_GOOD_FCS_PKTS 0x2a 9657 /* enum: Packets received with overflow. */ 9658 #define MC_CMD_STAT_ID_RX_OVERFLOW_PKTS 0x2b 9659 /* enum: Packets received with symbol error. */ 9660 #define MC_CMD_STAT_ID_RX_SYMBOL_ERROR_PKTS 0x2c 9661 /* enum: Packets received with alignment error. */ 9662 #define MC_CMD_STAT_ID_RX_ALIGN_ERROR_PKTS 0x2d 9663 /* enum: Packets received with length error. */ 9664 #define MC_CMD_STAT_ID_RX_LENGTH_ERROR_PKTS 0x2e 9665 /* enum: Packets received with internal error. */ 9666 #define MC_CMD_STAT_ID_RX_INTERNAL_ERROR_PKTS 0x2f 9667 /* enum: Packets received with jabber. These packets are larger than the 9668 * allowed maximum receive unit (MRU). This indicates that a packet either has 9669 * a bad CRC or has an RX error. 9670 */ 9671 #define MC_CMD_STAT_ID_RX_JABBER_PKTS 0x30 9672 /* enum: Packets dropped due to having no descriptor. This is a datapath stat 9673 */ 9674 #define MC_CMD_STAT_ID_RX_NODESC_DROPS 0x31 9675 /* enum: Packets received with lanes 0 and 1 character error. */ 9676 #define MC_CMD_STAT_ID_RX_LANES01_CHAR_ERR 0x32 9677 /* enum: Packets received with lanes 2 and 3 character error. */ 9678 #define MC_CMD_STAT_ID_RX_LANES23_CHAR_ERR 0x33 9679 /* enum: Packets received with lanes 0 and 1 disparity error. */ 9680 #define MC_CMD_STAT_ID_RX_LANES01_DISP_ERR 0x34 9681 /* enum: Packets received with lanes 2 and 3 disparity error. */ 9682 #define MC_CMD_STAT_ID_RX_LANES23_DISP_ERR 0x35 9683 /* enum: Packets received with match fault. */ 9684 #define MC_CMD_STAT_ID_RX_MATCH_FAULT 0x36 9685 #define MC_CMD_STAT_ID_MAC_STAT_ID_LBN 16 9686 #define MC_CMD_STAT_ID_MAC_STAT_ID_WIDTH 16 9687 /* Include FEC stats. */ 9688 #define MC_CMD_STAT_ID_PHY_STAT_ID_OFST 2 9689 #define MC_CMD_STAT_ID_PHY_STAT_ID_LEN 2 9690 /* enum property: index */ 9691 /* enum: Number of uncorrected FEC codewords on link (RS-FEC only from Medford2 9692 * onwards) 9693 */ 9694 #define MC_CMD_STAT_ID_FEC_UNCORRECTED_ERRORS 0x1 9695 /* enum: Number of corrected FEC codewords on link (RS-FEC only from Medford2 9696 * onwards) 9697 */ 9698 #define MC_CMD_STAT_ID_FEC_CORRECTED_ERRORS 0x2 9699 /* enum: Number of corrected 10-bit symbol errors, lane 0 (RS-FEC only) */ 9700 #define MC_CMD_STAT_ID_FEC_CORRECTED_SYMBOLS_LANE0 0x3 9701 /* enum: Number of corrected 10-bit symbol errors, lane 1 (RS-FEC only) */ 9702 #define MC_CMD_STAT_ID_FEC_CORRECTED_SYMBOLS_LANE1 0x4 9703 /* enum: Number of corrected 10-bit symbol errors, lane 2 (RS-FEC only) */ 9704 #define MC_CMD_STAT_ID_FEC_CORRECTED_SYMBOLS_LANE2 0x5 9705 /* enum: Number of corrected 10-bit symbol errors, lane 3 (RS-FEC only) */ 9706 #define MC_CMD_STAT_ID_FEC_CORRECTED_SYMBOLS_LANE3 0x6 9707 #define MC_CMD_STAT_ID_PHY_STAT_ID_LBN 16 9708 #define MC_CMD_STAT_ID_PHY_STAT_ID_WIDTH 16 9709 9710 /* MC_CMD_STAT_DESC structuredef: Structure describing the layout and size of 9711 * the stats DMA buffer descriptor. 9712 */ 9713 #define MC_CMD_STAT_DESC_LEN 8 9714 /* Unique identifier of the statistic. Formatted as MC_CMD_STAT_ID */ 9715 #define MC_CMD_STAT_DESC_STAT_ID_OFST 0 9716 #define MC_CMD_STAT_DESC_STAT_ID_LEN 4 9717 #define MC_CMD_STAT_DESC_STAT_ID_LBN 0 9718 #define MC_CMD_STAT_DESC_STAT_ID_WIDTH 32 9719 /* See structuredef: MC_CMD_STAT_ID */ 9720 #define MC_CMD_STAT_DESC_STAT_ID_SOURCE_ID_OFST 0 9721 #define MC_CMD_STAT_DESC_STAT_ID_SOURCE_ID_LEN 2 9722 #define MC_CMD_STAT_DESC_STAT_ID_SOURCE_ID_LBN 0 9723 #define MC_CMD_STAT_DESC_STAT_ID_SOURCE_ID_WIDTH 16 9724 #define MC_CMD_STAT_DESC_STAT_ID_MARKER_STAT_ID_OFST 2 9725 #define MC_CMD_STAT_DESC_STAT_ID_MARKER_STAT_ID_LEN 2 9726 #define MC_CMD_STAT_DESC_STAT_ID_MARKER_STAT_ID_LBN 16 9727 #define MC_CMD_STAT_DESC_STAT_ID_MARKER_STAT_ID_WIDTH 16 9728 #define MC_CMD_STAT_DESC_STAT_ID_MAC_STAT_ID_OFST 2 9729 #define MC_CMD_STAT_DESC_STAT_ID_MAC_STAT_ID_LEN 2 9730 #define MC_CMD_STAT_DESC_STAT_ID_MAC_STAT_ID_LBN 16 9731 #define MC_CMD_STAT_DESC_STAT_ID_MAC_STAT_ID_WIDTH 16 9732 #define MC_CMD_STAT_DESC_STAT_ID_PHY_STAT_ID_OFST 2 9733 #define MC_CMD_STAT_DESC_STAT_ID_PHY_STAT_ID_LEN 2 9734 #define MC_CMD_STAT_DESC_STAT_ID_PHY_STAT_ID_LBN 16 9735 #define MC_CMD_STAT_DESC_STAT_ID_PHY_STAT_ID_WIDTH 16 9736 /* Index of the statistic in the DMA buffer. */ 9737 #define MC_CMD_STAT_DESC_STAT_INDEX_OFST 4 9738 #define MC_CMD_STAT_DESC_STAT_INDEX_LEN 2 9739 #define MC_CMD_STAT_DESC_STAT_INDEX_LBN 32 9740 #define MC_CMD_STAT_DESC_STAT_INDEX_WIDTH 16 9741 /* Reserved for future extension (e.g. flags field) - currently always 0. */ 9742 #define MC_CMD_STAT_DESC_RESERVED_OFST 6 9743 #define MC_CMD_STAT_DESC_RESERVED_LEN 2 9744 #define MC_CMD_STAT_DESC_RESERVED_LBN 48 9745 #define MC_CMD_STAT_DESC_RESERVED_WIDTH 16 9746 9747 9748 /***********************************/ 9749 /* MC_CMD_MAC_STATISTICS_DESCRIPTOR 9750 * Get a list of descriptors that describe the layout and size of the stats 9751 * buffer required for retrieving statistics for a given port. Each entry in 9752 * the list is formatted as MC_CMD_STAT_DESC and provides the ID of each stat 9753 * and its location and size in the buffer. It also gives the overall minimum 9754 * size of the DMA buffer required when DMA mode is used. Note that the first 9755 * and last entries in the list are reserved for the generation start 9756 * (MC_CMD_MARKER_STAT_GENERATION_START) and end 9757 * (MC_CMD_MARKER_STAT_GENERATION_END) markers respectively, to be used for DMA 9758 * synchronisation as described in the documentation for the relevant enum 9759 * entries. The entries are present in the buffer even if DMA mode is not used. 9760 * Provisions are made (but currently unused) for extending the size of the 9761 * descriptors, extending the size of the list beyond the maximum MCDI response 9762 * size, as well as the dynamic runtime updates of the list. Returns: 0 on 9763 * success, ENOENT on non-existent port handle 9764 */ 9765 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR 0x1e3 9766 #undef MC_CMD_0x1e3_PRIVILEGE_CTG 9767 9768 #define MC_CMD_0x1e3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9769 9770 /* MC_CMD_MAC_STATISTICS_DESCRIPTOR_IN msgrequest */ 9771 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_IN_LEN 8 9772 /* Handle of port to get MAC statitstics descriptors for. */ 9773 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_IN_PORT_HANDLE_OFST 0 9774 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_IN_PORT_HANDLE_LEN 4 9775 /* Offset of the first entry to return, for cases where not all entries fit in 9776 * the MCDI response. Should be set to 0 on initial request, and on subsequent 9777 * requests updated by the number of entries already returned, as long as the 9778 * MORE_ENTRIES flag is set. 9779 */ 9780 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_IN_OFFSET_OFST 4 9781 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_IN_OFFSET_LEN 4 9782 9783 /* MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT msgresponse */ 9784 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_LENMIN 28 9785 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_LENMAX 252 9786 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_LENMAX_MCDI2 1020 9787 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_LEN(num) (20+8*(num)) 9788 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_NUM(len) (((len)-20)/8) 9789 /* Generation number of the stats buffer. This is incremented each time the 9790 * buffer is updated, and is used to verify the consistency of the buffer 9791 * contents. Reserved for future extension (dynamic list updates). Currently 9792 * always set to 0. 9793 */ 9794 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_GENERATION_OFST 0 9795 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_GENERATION_LEN 4 9796 /* Minimum size of the DMA buffer required to retrieve all statistics for the 9797 * port. This is the sum of the sizes of all the statistics, plus the size of 9798 * the generation markers. Minimum buffer size in bytes required to fit all 9799 * statistics. Drivers will typically round up this value to the granularity of 9800 * the host DMA allocation units. 9801 */ 9802 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_DMA_BUFFER_SIZE_OFST 4 9803 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_DMA_BUFFER_SIZE_LEN 4 9804 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_FLAGS_OFST 8 9805 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_FLAGS_LEN 4 9806 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_MORE_ENTRIES_OFST 8 9807 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_MORE_ENTRIES_LBN 0 9808 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_MORE_ENTRIES_WIDTH 1 9809 /* Size of the individual descriptor entry in the list. Determines the entry 9810 * stride in the list. Currently always set to size of MC_CMD_STAT_DESC, larger 9811 * values can be used in the future for extending the descriptor, by appending 9812 * new data to the end of the existing structure. 9813 */ 9814 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRY_SIZE_OFST 12 9815 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRY_SIZE_LEN 4 9816 /* Number of entries returned in the descriptor list. */ 9817 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRY_COUNT_OFST 16 9818 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRY_COUNT_LEN 4 9819 /* List of descriptors. Each entry is formatted as MC_CMD_STAT_DESC and 9820 * provides the ID of each stat and its location and size in the buffer. The 9821 * first and last entries are reserved for the generation start and end markers 9822 * respectively. 9823 */ 9824 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_OFST 20 9825 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_LEN 8 9826 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_LO_OFST 20 9827 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_LO_LEN 4 9828 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_LO_LBN 160 9829 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_LO_WIDTH 32 9830 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_HI_OFST 24 9831 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_HI_LEN 4 9832 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_HI_LBN 192 9833 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_HI_WIDTH 32 9834 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_MINNUM 1 9835 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_MAXNUM 29 9836 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_MAXNUM_MCDI2 125 9837 9838 9839 /***********************************/ 9840 /* MC_CMD_MAC_STATISTICS 9841 * Get generic MAC statistics. This call retrieves unified statistics managed 9842 * by the MC. The MC will populate and provide all supported statistics in the 9843 * format as returned by MC_CMD_MAC_STATISTICS_DESCRIPTOR. Refer to the 9844 * aforementioned command for the format and contents of the stats DMA buffer. 9845 * To ensure consistent and accurate results, it is essential for the driver to 9846 * initialize the DMA buffer with zeros when DMA mode is used. Returns: 0 on 9847 * success, ETIME if the DMA buffer is not ready, ENOENT on non-existent port 9848 * handle, and EINVAL on invalid parameters (DMA buffer too small) 9849 */ 9850 #define MC_CMD_MAC_STATISTICS 0x1e4 9851 #undef MC_CMD_0x1e4_PRIVILEGE_CTG 9852 9853 #define MC_CMD_0x1e4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9854 9855 /* MC_CMD_MAC_STATISTICS_IN msgrequest */ 9856 #define MC_CMD_MAC_STATISTICS_IN_LEN 20 9857 /* Handle of port to get MAC statistics for. */ 9858 #define MC_CMD_MAC_STATISTICS_IN_PORT_HANDLE_OFST 0 9859 #define MC_CMD_MAC_STATISTICS_IN_PORT_HANDLE_LEN 4 9860 /* Contains options for querying the MAC statistics. */ 9861 #define MC_CMD_MAC_STATISTICS_IN_CMD_OFST 4 9862 #define MC_CMD_MAC_STATISTICS_IN_CMD_LEN 4 9863 #define MC_CMD_MAC_STATISTICS_IN_DMA_OFST 4 9864 #define MC_CMD_MAC_STATISTICS_IN_DMA_LBN 0 9865 #define MC_CMD_MAC_STATISTICS_IN_DMA_WIDTH 1 9866 #define MC_CMD_MAC_STATISTICS_IN_CLEAR_OFST 4 9867 #define MC_CMD_MAC_STATISTICS_IN_CLEAR_LBN 1 9868 #define MC_CMD_MAC_STATISTICS_IN_CLEAR_WIDTH 1 9869 #define MC_CMD_MAC_STATISTICS_IN_PERIODIC_CHANGE_OFST 4 9870 #define MC_CMD_MAC_STATISTICS_IN_PERIODIC_CHANGE_LBN 2 9871 #define MC_CMD_MAC_STATISTICS_IN_PERIODIC_CHANGE_WIDTH 1 9872 #define MC_CMD_MAC_STATISTICS_IN_PERIODIC_ENABLE_OFST 4 9873 #define MC_CMD_MAC_STATISTICS_IN_PERIODIC_ENABLE_LBN 3 9874 #define MC_CMD_MAC_STATISTICS_IN_PERIODIC_ENABLE_WIDTH 1 9875 #define MC_CMD_MAC_STATISTICS_IN_PERIODIC_NOEVENT_OFST 4 9876 #define MC_CMD_MAC_STATISTICS_IN_PERIODIC_NOEVENT_LBN 4 9877 #define MC_CMD_MAC_STATISTICS_IN_PERIODIC_NOEVENT_WIDTH 1 9878 #define MC_CMD_MAC_STATISTICS_IN_PERIOD_MS_OFST 4 9879 #define MC_CMD_MAC_STATISTICS_IN_PERIOD_MS_LBN 16 9880 #define MC_CMD_MAC_STATISTICS_IN_PERIOD_MS_WIDTH 16 9881 /* This is the address of the DMA buffer to use for transfer of the statistics. 9882 * Only valid if the DMA flag is set to 1. 9883 */ 9884 #define MC_CMD_MAC_STATISTICS_IN_DMA_ADDR_OFST 8 9885 #define MC_CMD_MAC_STATISTICS_IN_DMA_ADDR_LEN 8 9886 #define MC_CMD_MAC_STATISTICS_IN_DMA_ADDR_LO_OFST 8 9887 #define MC_CMD_MAC_STATISTICS_IN_DMA_ADDR_LO_LEN 4 9888 #define MC_CMD_MAC_STATISTICS_IN_DMA_ADDR_LO_LBN 64 9889 #define MC_CMD_MAC_STATISTICS_IN_DMA_ADDR_LO_WIDTH 32 9890 #define MC_CMD_MAC_STATISTICS_IN_DMA_ADDR_HI_OFST 12 9891 #define MC_CMD_MAC_STATISTICS_IN_DMA_ADDR_HI_LEN 4 9892 #define MC_CMD_MAC_STATISTICS_IN_DMA_ADDR_HI_LBN 96 9893 #define MC_CMD_MAC_STATISTICS_IN_DMA_ADDR_HI_WIDTH 32 9894 /* This is the length of the DMA buffer to use for the transfer of the 9895 * statistics. The buffer should be at least DMA_BUFFER_SIZE long, as returned 9896 * by MC_CMD_MAC_STATISTICS_DESCRIPTOR. If the supplied buffer is too small, 9897 * the command will fail with EINVAL. Only valid if the DMA flag is set to 1. 9898 */ 9899 #define MC_CMD_MAC_STATISTICS_IN_DMA_LEN_OFST 16 9900 #define MC_CMD_MAC_STATISTICS_IN_DMA_LEN_LEN 4 9901 9902 /* MC_CMD_MAC_STATISTICS_OUT msgresponse */ 9903 #define MC_CMD_MAC_STATISTICS_OUT_LENMIN 5 9904 #define MC_CMD_MAC_STATISTICS_OUT_LENMAX 252 9905 #define MC_CMD_MAC_STATISTICS_OUT_LENMAX_MCDI2 1020 9906 #define MC_CMD_MAC_STATISTICS_OUT_LEN(num) (4+1*(num)) 9907 #define MC_CMD_MAC_STATISTICS_OUT_DATA_NUM(len) (((len)-4)/1) 9908 /* length of the data in bytes */ 9909 #define MC_CMD_MAC_STATISTICS_OUT_DATALEN_OFST 0 9910 #define MC_CMD_MAC_STATISTICS_OUT_DATALEN_LEN 4 9911 #define MC_CMD_MAC_STATISTICS_OUT_DATA_OFST 4 9912 #define MC_CMD_MAC_STATISTICS_OUT_DATA_LEN 1 9913 #define MC_CMD_MAC_STATISTICS_OUT_DATA_MINNUM 1 9914 #define MC_CMD_MAC_STATISTICS_OUT_DATA_MAXNUM 248 9915 #define MC_CMD_MAC_STATISTICS_OUT_DATA_MAXNUM_MCDI2 1016 9916 9917 /* NET_PORT_HANDLE_DESC structuredef: Network port descriptor containing a port 9918 * handle and attributes used, for example, in MC_CMD_ENUM_PORTS. 9919 */ 9920 #define NET_PORT_HANDLE_DESC_LEN 53 9921 /* The handle to identify the port */ 9922 #define NET_PORT_HANDLE_DESC_PORT_HANDLE_OFST 0 9923 #define NET_PORT_HANDLE_DESC_PORT_HANDLE_LEN 4 9924 #define NET_PORT_HANDLE_DESC_PORT_HANDLE_LBN 0 9925 #define NET_PORT_HANDLE_DESC_PORT_HANDLE_WIDTH 32 9926 /* Includes the type of port e.g. physical, virtual or MAE MPORT and other 9927 * properties relevant to the port. 9928 */ 9929 #define NET_PORT_HANDLE_DESC_PORT_PROPERTIES_OFST 4 9930 #define NET_PORT_HANDLE_DESC_PORT_PROPERTIES_LEN 8 9931 #define NET_PORT_HANDLE_DESC_PORT_PROPERTIES_LO_OFST 4 9932 #define NET_PORT_HANDLE_DESC_PORT_PROPERTIES_LO_LEN 4 9933 #define NET_PORT_HANDLE_DESC_PORT_PROPERTIES_LO_LBN 32 9934 #define NET_PORT_HANDLE_DESC_PORT_PROPERTIES_LO_WIDTH 32 9935 #define NET_PORT_HANDLE_DESC_PORT_PROPERTIES_HI_OFST 8 9936 #define NET_PORT_HANDLE_DESC_PORT_PROPERTIES_HI_LEN 4 9937 #define NET_PORT_HANDLE_DESC_PORT_PROPERTIES_HI_LBN 64 9938 #define NET_PORT_HANDLE_DESC_PORT_PROPERTIES_HI_WIDTH 32 9939 #define NET_PORT_HANDLE_DESC_PORT_TYPE_OFST 4 9940 #define NET_PORT_HANDLE_DESC_PORT_TYPE_LBN 0 9941 #define NET_PORT_HANDLE_DESC_PORT_TYPE_WIDTH 3 9942 #define NET_PORT_HANDLE_DESC_PHYSICAL 0x0 /* enum */ 9943 #define NET_PORT_HANDLE_DESC_VIRTUAL 0x1 /* enum */ 9944 #define NET_PORT_HANDLE_DESC_MPORT 0x2 /* enum */ 9945 #define NET_PORT_HANDLE_DESC_IS_ZOMBIE_OFST 4 9946 #define NET_PORT_HANDLE_DESC_IS_ZOMBIE_LBN 8 9947 #define NET_PORT_HANDLE_DESC_IS_ZOMBIE_WIDTH 1 9948 #define NET_PORT_HANDLE_DESC_PORT_PROPERTIES_LBN 32 9949 #define NET_PORT_HANDLE_DESC_PORT_PROPERTIES_WIDTH 64 9950 /* The dynamic change that led to the port enumeration */ 9951 #define NET_PORT_HANDLE_DESC_ENTRY_SRC_OFST 12 9952 #define NET_PORT_HANDLE_DESC_ENTRY_SRC_LEN 1 9953 /* enum: Indicates that the ENTRY_SRC field has not been initialized. */ 9954 #define NET_PORT_HANDLE_DESC_UNKNOWN 0x0 9955 /* enum: The port was enumerated at start of day. */ 9956 #define NET_PORT_HANDLE_DESC_PRESENT 0x1 9957 /* enum: The port was dynamically added. */ 9958 #define NET_PORT_HANDLE_DESC_ADDED 0x2 9959 /* enum: The port was dynamically deleted. */ 9960 #define NET_PORT_HANDLE_DESC_DELETED 0x3 9961 #define NET_PORT_HANDLE_DESC_ENTRY_SRC_LBN 96 9962 #define NET_PORT_HANDLE_DESC_ENTRY_SRC_WIDTH 8 9963 /* This is an opaque 40 byte label exposed to users as a unique identifier of 9964 * the port. It is represented as a zero-terminated ASCII string and assigned 9965 * by the port administrator which is typically either the firmware for a 9966 * physical port or the host software responsible for creating the virtual 9967 * port. The label is conveyed to the driver after assignment, which, unlike 9968 * the port administrator, does not need to know how to interpret the label. 9969 */ 9970 #define NET_PORT_HANDLE_DESC_PORT_LABEL_OFST 13 9971 #define NET_PORT_HANDLE_DESC_PORT_LABEL_LEN 40 9972 #define NET_PORT_HANDLE_DESC_PORT_LABEL_LBN 104 9973 #define NET_PORT_HANDLE_DESC_PORT_LABEL_WIDTH 320 9974 9975 9976 /***********************************/ 9977 /* MC_CMD_ENUM_PORTS 9978 * This command returns handles for all ports present in the system. The PCIe 9979 * function type of each port (either physical or virtual) is also reported. 9980 * After a start-of-day port enumeration, firmware keeps track of all available 9981 * ports upon creation or deletion and updates the ports if there is a change. 9982 * This command is cleared after a control interface reset (e.g. FLR, 9983 * ENTITY_RESET), in which case it must be called again to reenumerate the 9984 * ports. The command is also clear-on-read and repeated calls will drain the 9985 * buffer. 9986 */ 9987 #define MC_CMD_ENUM_PORTS 0x1e5 9988 #undef MC_CMD_0x1e5_PRIVILEGE_CTG 9989 9990 #define MC_CMD_0x1e5_PRIVILEGE_CTG SRIOV_CTG_LINK 9991 9992 /* MC_CMD_ENUM_PORTS_IN msgrequest */ 9993 #define MC_CMD_ENUM_PORTS_IN_LEN 0 9994 9995 /* MC_CMD_ENUM_PORTS_OUT msgresponse */ 9996 #define MC_CMD_ENUM_PORTS_OUT_LENMIN 12 9997 #define MC_CMD_ENUM_PORTS_OUT_LENMAX 252 9998 #define MC_CMD_ENUM_PORTS_OUT_LENMAX_MCDI2 1020 9999 #define MC_CMD_ENUM_PORTS_OUT_LEN(num) (12+1*(num)) 10000 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_NUM(len) (((len)-12)/1) 10001 /* Any unused flags are reserved and must be ignored. */ 10002 #define MC_CMD_ENUM_PORTS_OUT_FLAGS_OFST 0 10003 #define MC_CMD_ENUM_PORTS_OUT_FLAGS_LEN 4 10004 #define MC_CMD_ENUM_PORTS_OUT_MORE_OFST 0 10005 #define MC_CMD_ENUM_PORTS_OUT_MORE_LBN 0 10006 #define MC_CMD_ENUM_PORTS_OUT_MORE_WIDTH 1 10007 /* The number of NET_PORT_HANDLE_DESC structures in PORT_HANDLES. */ 10008 #define MC_CMD_ENUM_PORTS_OUT_PORT_COUNT_OFST 4 10009 #define MC_CMD_ENUM_PORTS_OUT_PORT_COUNT_LEN 4 10010 #define MC_CMD_ENUM_PORTS_OUT_SIZEOF_NET_PORT_HANDLE_DESC_OFST 8 10011 #define MC_CMD_ENUM_PORTS_OUT_SIZEOF_NET_PORT_HANDLE_DESC_LEN 4 10012 /* Array of NET_PORT_HANDLE_DESC structures. Callers must use must use the 10013 * SIZEOF_NET_PORT_HANDLE_DESC field field as the array stride between entries. 10014 * This may also allow for tail padding for alignment. Fields beyond 10015 * SIZEOF_NET_PORT_HANDLE_DESC are not present. 10016 */ 10017 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_OFST 12 10018 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_LEN 1 10019 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_MINNUM 0 10020 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_MAXNUM 240 10021 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_MAXNUM_MCDI2 1008 10022 /* See structuredef: NET_PORT_HANDLE_DESC */ 10023 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_HANDLE_OFST 12 10024 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_HANDLE_LEN 4 10025 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_PROPERTIES_OFST 16 10026 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_PROPERTIES_LEN 8 10027 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_PROPERTIES_LO_OFST 16 10028 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_PROPERTIES_LO_LEN 4 10029 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_PROPERTIES_LO_LBN 128 10030 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_PROPERTIES_LO_WIDTH 32 10031 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_PROPERTIES_HI_OFST 20 10032 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_PROPERTIES_HI_LEN 4 10033 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_PROPERTIES_HI_LBN 160 10034 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_PROPERTIES_HI_WIDTH 32 10035 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_TYPE_LBN 128 10036 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_TYPE_WIDTH 3 10037 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_IS_ZOMBIE_LBN 136 10038 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_IS_ZOMBIE_WIDTH 1 10039 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_ENTRY_SRC_OFST 24 10040 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_ENTRY_SRC_LEN 1 10041 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_LABEL_OFST 25 10042 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_LABEL_LEN 40 10043 10044 10045 /***********************************/ 10046 /* MC_CMD_GET_TRANSCEIVER_PROPERTIES 10047 * Read properties of the transceiver associated with the port. Can be either 10048 * for a fixed onboard transceiver or an inserted module. The returned data is 10049 * interpreted from the transceiver hardware and may be fixed up by the 10050 * firmware. Use MC_CMD_GET_MODULE_DATA to get raw undecoded data. 10051 */ 10052 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES 0x1e6 10053 #undef MC_CMD_0x1e6_PRIVILEGE_CTG 10054 10055 #define MC_CMD_0x1e6_PRIVILEGE_CTG SRIOV_CTG_LINK 10056 10057 /* MC_CMD_GET_TRANSCEIVER_PROPERTIES_IN msgrequest */ 10058 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_IN_LEN 4 10059 /* Handle to port to get transceiver properties from. */ 10060 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_IN_PORT_HANDLE_OFST 0 10061 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_IN_PORT_HANDLE_LEN 4 10062 10063 /* MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT msgresponse */ 10064 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_LEN 89 10065 /* Supported technology abilities. */ 10066 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_TECH_ABILITIES_MASK_OFST 0 10067 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_TECH_ABILITIES_MASK_LEN 16 10068 /* enum property: bitshift */ 10069 /* Enum values, see field(s): */ 10070 /* MC_CMD_ETH_TECH/TECH */ 10071 /* Reserved for future expansion to accommodate future Ethernet technology 10072 * expansion. 10073 */ 10074 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_RESERVED_OFST 16 10075 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_RESERVED_LEN 16 10076 /* Preferred FEC modes. This is a function of the cable type and length. */ 10077 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_PREFERRED_FEC_MASK_OFST 32 10078 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_PREFERRED_FEC_MASK_LEN 4 10079 /* enum property: bitshift */ 10080 /* Enum values, see field(s): */ 10081 /* FEC_TYPE/TYPE */ 10082 /* SFF-8042 code reported by the module. */ 10083 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_CODE_OFST 36 10084 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_CODE_LEN 2 10085 /* Medium. */ 10086 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_MEDIUM_OFST 38 10087 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_MEDIUM_LEN 1 10088 /* enum property: value */ 10089 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_UNKNOWN 0x0 /* enum */ 10090 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_COPPER 0x1 /* enum */ 10091 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_OPTICAL 0x2 /* enum */ 10092 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_BACKPLANE 0x3 /* enum */ 10093 /* Identifies the tech */ 10094 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_MEDIA_SUBTYPE_OFST 39 10095 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_MEDIA_SUBTYPE_LEN 1 10096 /* enum property: value */ 10097 /* MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_UNKNOWN 0x0 */ 10098 /* enum: Ethernet over twisted-pair copper cables for distances up to 100 10099 * meters. 10100 */ 10101 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_BASET 0x1 10102 /* enum: Ethernet over twin-axial, balanced copper cable. */ 10103 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_CR 0x2 10104 /* enum: Ethernet over backplane for connections on the same board. */ 10105 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_KX 0x3 10106 /* enum: Ethernet over a single backplane lane for connections between 10107 * different boards. 10108 */ 10109 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_KR 0x4 10110 /* enum: Ethernet over copper backplane. */ 10111 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_KP 0x5 10112 /* enum: Ethernet over fiber optic. */ 10113 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_BASEX 0x6 10114 /* enum: Short range ethernet over multimode fiber optic (See IEEE 802.3 Clause 10115 * 49 and 52). 10116 */ 10117 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_SR 0x7 10118 /* enum: Long range, extended range or far reach ethernet used with single mode 10119 * fiber optics. 10120 */ 10121 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_LR_ER_FR 0x8 10122 /* enum: Long reach multimode ethernet over multimode optical fiber. */ 10123 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_LRM 0x9 10124 /* enum: Very short reach PAM4 ethernet over multimode optical fiber (see IEEE 10125 * 802.3db). 10126 */ 10127 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_VR 0xa 10128 /* enum: BASE-R encoding and PAM4 over single-mode fiber with reach up to at 10129 * least 500 meters (803.2 Clause 121 and 124) 10130 */ 10131 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_DR 0xb 10132 /* String of the vendor name as intepreted by NMC firmware. NMC firmware 10133 * applies workarounds for known buggy transceivers. The vendor name is 10134 * presented as 16 bytes of ASCII characters padded with spaces. It can also be 10135 * represented as 16 bytes of zeros if the field is unspecified for the 10136 * connected module. See SFF-8472/CMIS specifications for details. 10137 */ 10138 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_VENDOR_NAME_OFST 40 10139 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_VENDOR_NAME_LEN 1 10140 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_VENDOR_NAME_NUM 16 10141 /* The vendor part number as intepreted by NMC firmware. The field is presented 10142 * as 16 bytes of ASCII chars padded with spaces. It can also be 16 bytes of 10143 * zeros if the field is unspecified for the connected module. 10144 */ 10145 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_VENDOR_PN_OFST 56 10146 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_VENDOR_PN_LEN 1 10147 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_VENDOR_PN_NUM 16 10148 /* Serial number of the module presented as 16 bytes of ASCII characters padded 10149 * with spaces. It can also be 16 bytes of zeros if the field is unspecified 10150 * for the connected module. See SFF-8472/CMIS specifications for details. 10151 */ 10152 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_SERIAL_NUMBER_OFST 72 10153 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_SERIAL_NUMBER_LEN 1 10154 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_SERIAL_NUMBER_NUM 16 10155 /* This reports the number of module changes detected by the NMC firmware. */ 10156 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_PORT_MODULECHANGE_SEQ_NUM_OFST 88 10157 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_PORT_MODULECHANGE_SEQ_NUM_LEN 1 10158 10159 10160 /***********************************/ 10161 /* MC_CMD_GET_FIXED_PORT_PROPERTIES 10162 */ 10163 #define MC_CMD_GET_FIXED_PORT_PROPERTIES 0x1e7 10164 #undef MC_CMD_0x1e7_PRIVILEGE_CTG 10165 10166 #define MC_CMD_0x1e7_PRIVILEGE_CTG SRIOV_CTG_LINK 10167 10168 /* MC_CMD_GET_FIXED_PORT_PROPERTIES_IN msgrequest: In this context, the port 10169 * consists of the MAC and the PHY, and excludes any modules inserted into the 10170 * cage. This information is fixed for a given board but not for a given ASIC. 10171 * This command reports properties for the port as it is currently configured, 10172 * and not its hardware capabilities, which can be better than the current 10173 * configuration. 10174 */ 10175 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_IN_LEN 4 10176 /* Handle to the port to from which to retreive properties */ 10177 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_IN_PORT_HANDLE_OFST 0 10178 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_IN_PORT_HANDLE_LEN 4 10179 10180 /* MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT msgresponse */ 10181 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_LEN 36 10182 /* Supported capabilities of the port in its current configuration. */ 10183 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_ABILITIES_OFST 0 10184 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_ABILITIES_LEN 25 10185 /* See structuredef: MC_CMD_ETH_AN_FIELDS */ 10186 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_ABILITIES_TECH_MASK_OFST 0 10187 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_ABILITIES_TECH_MASK_LEN 16 10188 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_ABILITIES_FEC_MASK_OFST 16 10189 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_ABILITIES_FEC_MASK_LEN 4 10190 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_ABILITIES_FEC_REQ_OFST 20 10191 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_ABILITIES_FEC_REQ_LEN 4 10192 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_ABILITIES_PAUSE_MASK_OFST 24 10193 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_ABILITIES_PAUSE_MASK_LEN 1 10194 /* Number of lanes supported by the port in its current configuration. */ 10195 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_NUM_LANES_OFST 25 10196 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_NUM_LANES_LEN 1 10197 /* Bitmask of supported loopback modes. Where the response to this command 10198 * includes the LOOPBACK_MODES_MASK_V2 field, that field should be used in 10199 * preference to ensure that all available loopback modes are seen. 10200 */ 10201 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_LOOPBACK_MODES_MASK_OFST 26 10202 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_LOOPBACK_MODES_MASK_LEN 1 10203 /* enum property: bitshift */ 10204 /* Enum values, see field(s): */ 10205 /* MC_CMD_LOOPBACK_V2/MODE */ 10206 /* This field serves as a cage index that uniquely identifies the cage to which 10207 * the module is connected. This is useful when splitter cables that have 10208 * multiple ports on a single cage are used. 10209 */ 10210 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_MDI_INDEX_OFST 27 10211 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_MDI_INDEX_LEN 1 10212 /* This bitmask is used to specify the lanes within the cage identified by 10213 * MDI_INDEX that are allocated to the port. 10214 */ 10215 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_MDI_LANE_MASK_OFST 28 10216 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_MDI_LANE_MASK_LEN 1 10217 /* Maximum frame length supported by the port in its current configuration. */ 10218 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_MAX_FRAME_LEN_OFST 32 10219 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_MAX_FRAME_LEN_LEN 4 10220 10221 /* MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2 msgresponse */ 10222 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_LEN 48 10223 /* Supported capabilities of the port in its current configuration. */ 10224 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_ABILITIES_OFST 0 10225 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_ABILITIES_LEN 25 10226 /* Number of lanes supported by the port in its current configuration. */ 10227 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_NUM_LANES_OFST 25 10228 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_NUM_LANES_LEN 1 10229 /* Bitmask of supported loopback modes. Where the response to this command 10230 * includes the LOOPBACK_MODES_MASK_V2 field, that field should be used in 10231 * preference to ensure that all available loopback modes are seen. 10232 */ 10233 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_LOOPBACK_MODES_MASK_OFST 26 10234 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_LOOPBACK_MODES_MASK_LEN 1 10235 /* enum property: bitshift */ 10236 /* Enum values, see field(s): */ 10237 /* MC_CMD_LOOPBACK_V2/MODE */ 10238 /* This field serves as a cage index that uniquely identifies the cage to which 10239 * the module is connected. This is useful when splitter cables that have 10240 * multiple ports on a single cage are used. 10241 */ 10242 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_MDI_INDEX_OFST 27 10243 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_MDI_INDEX_LEN 1 10244 /* This bitmask is used to specify the lanes within the cage identified by 10245 * MDI_INDEX that are allocated to the port. 10246 */ 10247 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_MDI_LANE_MASK_OFST 28 10248 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_MDI_LANE_MASK_LEN 1 10249 /* Maximum frame length supported by the port in its current configuration. */ 10250 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_MAX_FRAME_LEN_OFST 32 10251 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_MAX_FRAME_LEN_LEN 4 10252 /* Bitmask of supported loopback modes. This field replaces the 10253 * LOOPBACK_MODES_MASK field which is defined under version 1 of this command. 10254 */ 10255 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_LOOPBACK_MODES_MASK_V2_OFST 40 10256 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_LOOPBACK_MODES_MASK_V2_LEN 8 10257 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_LOOPBACK_MODES_MASK_V2_LO_OFST 40 10258 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_LOOPBACK_MODES_MASK_V2_LO_LEN 4 10259 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_LOOPBACK_MODES_MASK_V2_LO_LBN 320 10260 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_LOOPBACK_MODES_MASK_V2_LO_WIDTH 32 10261 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_LOOPBACK_MODES_MASK_V2_HI_OFST 44 10262 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_LOOPBACK_MODES_MASK_V2_HI_LEN 4 10263 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_LOOPBACK_MODES_MASK_V2_HI_LBN 352 10264 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_LOOPBACK_MODES_MASK_V2_HI_WIDTH 32 10265 /* enum property: bitshift */ 10266 /* Enum values, see field(s): */ 10267 /* MC_CMD_LOOPBACK_V2/MODE */ 10268 10269 10270 /***********************************/ 10271 /* MC_CMD_GET_MODULE_DATA 10272 * Read media-specific data from the PHY (e.g. SFP/SFP+ module ID information 10273 * for SFP+ PHYs). This command returns raw data from the module's EEPROM and 10274 * it is not interpreted by the MC. Use MC_CMD_GET_TRANSCEIVER_PROPERTIES to 10275 * get interpreted data. Return code: 0, ENOENT 10276 */ 10277 #define MC_CMD_GET_MODULE_DATA 0x1e8 10278 #undef MC_CMD_0x1e8_PRIVILEGE_CTG 10279 10280 #define MC_CMD_0x1e8_PRIVILEGE_CTG SRIOV_CTG_LINK 10281 10282 /* MC_CMD_GET_MODULE_DATA_IN msgrequest */ 10283 #define MC_CMD_GET_MODULE_DATA_IN_LEN 16 10284 /* Handle to identify the port from which to request module properties. */ 10285 #define MC_CMD_GET_MODULE_DATA_IN_PORT_HANDLE_OFST 0 10286 #define MC_CMD_GET_MODULE_DATA_IN_PORT_HANDLE_LEN 4 10287 /* 7 bit I2C address of the device. DEPRECATED: This field is replaced by 10288 * MODULE_ADDR in V2. Use V2 of this command for proper alignment and easier 10289 * access. 10290 */ 10291 #define MC_CMD_GET_MODULE_DATA_IN_DEVADDR_LBN 32 10292 #define MC_CMD_GET_MODULE_DATA_IN_DEVADDR_WIDTH 7 10293 /* 0 if the page does not support banked access, non-zero otherwise. Non-zero 10294 * BANK is valid if OFFSET is in the range 80h - ffh, i.e. in the Upper Memory 10295 * region. 10296 */ 10297 #define MC_CMD_GET_MODULE_DATA_IN_BANK_OFST 6 10298 #define MC_CMD_GET_MODULE_DATA_IN_BANK_LEN 2 10299 /* 0 if paged access is not supported, non-zero otherwise. Non-zero PAGE is 10300 * valid if OFFSET is in the range 80h - ffh. 10301 */ 10302 #define MC_CMD_GET_MODULE_DATA_IN_PAGE_OFST 8 10303 #define MC_CMD_GET_MODULE_DATA_IN_PAGE_LEN 2 10304 /* Offset in the range 00h - 7fh to access lower memory. Offset in the range 10305 * 80h - ffh to access upper memory 10306 */ 10307 #define MC_CMD_GET_MODULE_DATA_IN_OFFSET_OFST 10 10308 #define MC_CMD_GET_MODULE_DATA_IN_OFFSET_LEN 1 10309 #define MC_CMD_GET_MODULE_DATA_IN_LENGTH_OFST 12 10310 #define MC_CMD_GET_MODULE_DATA_IN_LENGTH_LEN 4 10311 10312 /* MC_CMD_GET_MODULE_DATA_IN_V2 msgrequest: Updated MC_CMD_GET_MODULE_DATA with 10313 * 8-bit wide ADDRESSING field. This new field provides a correctly aligned 10314 * container for the 7-bit DEVADDR field from V1, now renamed MODULE_ADDR, to 10315 * ensure proper alignment. 10316 */ 10317 #define MC_CMD_GET_MODULE_DATA_IN_V2_LEN 16 10318 /* Handle to identify the port from which to request module properties. */ 10319 #define MC_CMD_GET_MODULE_DATA_IN_V2_PORT_HANDLE_OFST 0 10320 #define MC_CMD_GET_MODULE_DATA_IN_V2_PORT_HANDLE_LEN 4 10321 /* 7 bit I2C address of the device. DEPRECATED: This field is replaced by 10322 * MODULE_ADDR in V2. Use V2 of this command for proper alignment and easier 10323 * access. 10324 */ 10325 #define MC_CMD_GET_MODULE_DATA_IN_V2_DEVADDR_LBN 32 10326 #define MC_CMD_GET_MODULE_DATA_IN_V2_DEVADDR_WIDTH 7 10327 /* 0 if the page does not support banked access, non-zero otherwise. Non-zero 10328 * BANK is valid if OFFSET is in the range 80h - ffh, i.e. in the Upper Memory 10329 * region. 10330 */ 10331 #define MC_CMD_GET_MODULE_DATA_IN_V2_BANK_OFST 6 10332 #define MC_CMD_GET_MODULE_DATA_IN_V2_BANK_LEN 2 10333 /* 0 if paged access is not supported, non-zero otherwise. Non-zero PAGE is 10334 * valid if OFFSET is in the range 80h - ffh. 10335 */ 10336 #define MC_CMD_GET_MODULE_DATA_IN_V2_PAGE_OFST 8 10337 #define MC_CMD_GET_MODULE_DATA_IN_V2_PAGE_LEN 2 10338 /* Offset in the range 00h - 7fh to access lower memory. Offset in the range 10339 * 80h - ffh to access upper memory 10340 */ 10341 #define MC_CMD_GET_MODULE_DATA_IN_V2_OFFSET_OFST 10 10342 #define MC_CMD_GET_MODULE_DATA_IN_V2_OFFSET_LEN 1 10343 #define MC_CMD_GET_MODULE_DATA_IN_V2_LENGTH_OFST 12 10344 #define MC_CMD_GET_MODULE_DATA_IN_V2_LENGTH_LEN 4 10345 /* Container for 7 bit I2C addresses. */ 10346 #define MC_CMD_GET_MODULE_DATA_IN_V2_ADDRESSING_OFST 4 10347 #define MC_CMD_GET_MODULE_DATA_IN_V2_ADDRESSING_LEN 1 10348 #define MC_CMD_GET_MODULE_DATA_IN_V2_MODULE_ADDR_OFST 4 10349 #define MC_CMD_GET_MODULE_DATA_IN_V2_MODULE_ADDR_LBN 0 10350 #define MC_CMD_GET_MODULE_DATA_IN_V2_MODULE_ADDR_WIDTH 7 10351 10352 /* MC_CMD_GET_MODULE_DATA_OUT msgresponse */ 10353 #define MC_CMD_GET_MODULE_DATA_OUT_LENMIN 5 10354 #define MC_CMD_GET_MODULE_DATA_OUT_LENMAX 252 10355 #define MC_CMD_GET_MODULE_DATA_OUT_LENMAX_MCDI2 1020 10356 #define MC_CMD_GET_MODULE_DATA_OUT_LEN(num) (4+1*(num)) 10357 #define MC_CMD_GET_MODULE_DATA_OUT_DATA_NUM(len) (((len)-4)/1) 10358 /* length of the data in bytes */ 10359 #define MC_CMD_GET_MODULE_DATA_OUT_DATALEN_OFST 0 10360 #define MC_CMD_GET_MODULE_DATA_OUT_DATALEN_LEN 4 10361 #define MC_CMD_GET_MODULE_DATA_OUT_DATA_OFST 4 10362 #define MC_CMD_GET_MODULE_DATA_OUT_DATA_LEN 1 10363 #define MC_CMD_GET_MODULE_DATA_OUT_DATA_MINNUM 1 10364 #define MC_CMD_GET_MODULE_DATA_OUT_DATA_MAXNUM 248 10365 #define MC_CMD_GET_MODULE_DATA_OUT_DATA_MAXNUM_MCDI2 1016 10366 10367 /* EVENT_MASK structuredef */ 10368 #define EVENT_MASK_LEN 4 10369 #define EVENT_MASK_TYPE_OFST 0 10370 #define EVENT_MASK_TYPE_LEN 4 10371 /* enum: PORT_LINKCHANGE event is enabled */ 10372 #define EVENT_MASK_PORT_LINKCHANGE 0x0 10373 /* enum: PORT_MODULECHANGE event is enabled */ 10374 #define EVENT_MASK_PORT_MODULECHANGE 0x1 10375 #define EVENT_MASK_TYPE_LBN 0 10376 #define EVENT_MASK_TYPE_WIDTH 32 10377 10378 10379 /***********************************/ 10380 /* MC_CMD_SET_NETPORT_EVENTS_MASK 10381 */ 10382 #define MC_CMD_SET_NETPORT_EVENTS_MASK 0x1e9 10383 #undef MC_CMD_0x1e9_PRIVILEGE_CTG 10384 10385 #define MC_CMD_0x1e9_PRIVILEGE_CTG SRIOV_CTG_LINK 10386 10387 /* MC_CMD_SET_NETPORT_EVENTS_MASK_IN msgrequest: Enable or disable delivery of 10388 * specified network port events for a given port identified by PORT_HANDLE. At 10389 * start of day, or after any control interface reset (FLR, ENTITY_RESET, 10390 * etc.), all event delivery is disabled for all ports associated with the 10391 * control interface. 10392 */ 10393 #define MC_CMD_SET_NETPORT_EVENTS_MASK_IN_LEN 8 10394 /* Handle to port to set event delivery mask. */ 10395 #define MC_CMD_SET_NETPORT_EVENTS_MASK_IN_PORT_HANDLE_OFST 0 10396 #define MC_CMD_SET_NETPORT_EVENTS_MASK_IN_PORT_HANDLE_LEN 4 10397 /* Bitmask of events to enable. Event delivery is enabled when corresponding 10398 * bit is 1, disabled when 0. 10399 */ 10400 #define MC_CMD_SET_NETPORT_EVENTS_MASK_IN_EVENT_MASK_OFST 4 10401 #define MC_CMD_SET_NETPORT_EVENTS_MASK_IN_EVENT_MASK_LEN 4 10402 /* enum property: bitshift */ 10403 /* Enum values, see field(s): */ 10404 /* EVENT_MASK/TYPE */ 10405 10406 /* MC_CMD_SET_NETPORT_EVENTS_MASK_OUT msgresponse */ 10407 #define MC_CMD_SET_NETPORT_EVENTS_MASK_OUT_LEN 0 10408 10409 10410 /***********************************/ 10411 /* MC_CMD_GET_NETPORT_EVENTS_MASK 10412 */ 10413 #define MC_CMD_GET_NETPORT_EVENTS_MASK 0x1ea 10414 #undef MC_CMD_0x1ea_PRIVILEGE_CTG 10415 10416 #define MC_CMD_0x1ea_PRIVILEGE_CTG SRIOV_CTG_LINK 10417 10418 /* MC_CMD_GET_NETPORT_EVENTS_MASK_IN msgrequest: Get event delivery mask a 10419 * given port identified by PORT_HANDLE. 10420 */ 10421 #define MC_CMD_GET_NETPORT_EVENTS_MASK_IN_LEN 4 10422 /* Handle to port to get event deliver mask for. */ 10423 #define MC_CMD_GET_NETPORT_EVENTS_MASK_IN_PORT_HANDLE_OFST 0 10424 #define MC_CMD_GET_NETPORT_EVENTS_MASK_IN_PORT_HANDLE_LEN 4 10425 10426 /* MC_CMD_GET_NETPORT_EVENTS_MASK_OUT msgresponse */ 10427 #define MC_CMD_GET_NETPORT_EVENTS_MASK_OUT_LEN 4 10428 /* Bitmask of events enabled. Event delivery is enabled when corresponding bit 10429 * is 1, disabled when 0. 10430 */ 10431 #define MC_CMD_GET_NETPORT_EVENTS_MASK_OUT_EVENT_MASK_OFST 0 10432 #define MC_CMD_GET_NETPORT_EVENTS_MASK_OUT_EVENT_MASK_LEN 4 10433 /* enum property: bitshift */ 10434 /* Enum values, see field(s): */ 10435 /* EVENT_MASK/TYPE */ 10436 10437 10438 /***********************************/ 10439 /* MC_CMD_GET_SUPPORTED_NETPORT_EVENTS 10440 */ 10441 #define MC_CMD_GET_SUPPORTED_NETPORT_EVENTS 0x1eb 10442 #undef MC_CMD_0x1eb_PRIVILEGE_CTG 10443 10444 #define MC_CMD_0x1eb_PRIVILEGE_CTG SRIOV_CTG_LINK 10445 10446 /* MC_CMD_GET_SUPPORTED_NETPORT_EVENTS_IN msgrequest: Get network port events 10447 * supported by the platform. Information returned is fixed for a given NIC 10448 * platform. 10449 */ 10450 #define MC_CMD_GET_SUPPORTED_NETPORT_EVENTS_IN_LEN 0 10451 10452 /* MC_CMD_GET_SUPPORTED_NETPORT_EVENTS_OUT msgresponse */ 10453 #define MC_CMD_GET_SUPPORTED_NETPORT_EVENTS_OUT_LEN 4 10454 /* Bitmask of events enabled. Event delivery is enabled when corresponding bit 10455 * is 1, disabled when 0. 10456 */ 10457 #define MC_CMD_GET_SUPPORTED_NETPORT_EVENTS_OUT_EVENT_MASK_OFST 0 10458 #define MC_CMD_GET_SUPPORTED_NETPORT_EVENTS_OUT_EVENT_MASK_LEN 4 10459 /* enum property: bitshift */ 10460 /* Enum values, see field(s): */ 10461 /* EVENT_MASK/TYPE */ 10462 10463 10464 /***********************************/ 10465 /* MC_CMD_GET_NETPORT_STATISTICS 10466 * Get generic MAC statistics. This call retrieves unified statistics managed 10467 * by the MC. The MC will populate and provide all supported statistics in the 10468 * format as returned by MC_CMD_MAC_STATISTICS_DESCRIPTOR. Refer to the 10469 * aforementioned command for the format and contents of the stats DMA buffer. 10470 * To ensure consistent and accurate results, it is essential for the driver to 10471 * initialize the DMA buffer with zeros when DMA mode is used. Returns: 0 on 10472 * success, ETIME if the DMA buffer is not ready, ENOENT on non-existent port 10473 * handle, and EINVAL on invalid parameters (DMA buffer too small) 10474 */ 10475 #define MC_CMD_GET_NETPORT_STATISTICS 0x1fa 10476 #undef MC_CMD_0x1fa_PRIVILEGE_CTG 10477 10478 #define MC_CMD_0x1fa_PRIVILEGE_CTG SRIOV_CTG_GENERAL 10479 10480 /* MC_CMD_GET_NETPORT_STATISTICS_IN msgrequest */ 10481 #define MC_CMD_GET_NETPORT_STATISTICS_IN_LEN 20 10482 /* Handle of port to get MAC statistics for. */ 10483 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PORT_HANDLE_OFST 0 10484 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PORT_HANDLE_LEN 4 10485 /* Contains options for querying the MAC statistics. */ 10486 #define MC_CMD_GET_NETPORT_STATISTICS_IN_CMD_OFST 4 10487 #define MC_CMD_GET_NETPORT_STATISTICS_IN_CMD_LEN 4 10488 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_OFST 4 10489 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_LBN 0 10490 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_WIDTH 1 10491 #define MC_CMD_GET_NETPORT_STATISTICS_IN_CLEAR_OFST 4 10492 #define MC_CMD_GET_NETPORT_STATISTICS_IN_CLEAR_LBN 1 10493 #define MC_CMD_GET_NETPORT_STATISTICS_IN_CLEAR_WIDTH 1 10494 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIODIC_CHANGE_OFST 4 10495 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIODIC_CHANGE_LBN 2 10496 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIODIC_CHANGE_WIDTH 1 10497 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIODIC_ENABLE_OFST 4 10498 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIODIC_ENABLE_LBN 3 10499 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIODIC_ENABLE_WIDTH 1 10500 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIODIC_NOEVENT_OFST 4 10501 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIODIC_NOEVENT_LBN 4 10502 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIODIC_NOEVENT_WIDTH 1 10503 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIOD_MS_OFST 4 10504 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIOD_MS_LBN 15 10505 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIOD_MS_WIDTH 17 10506 /* Specifies the physical address of the DMA buffer to use for statistics 10507 * transfer. This field must contain a valid address under either of these 10508 * conditions: 1. DMA flag is set (immediate DMA requested) 2. Both 10509 * PERIODIC_CHANGE and PERIODIC_ENABLE are set (periodic DMA configured) 10510 */ 10511 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_ADDR_OFST 8 10512 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_ADDR_LEN 8 10513 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_ADDR_LO_OFST 8 10514 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_ADDR_LO_LEN 4 10515 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_ADDR_LO_LBN 64 10516 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_ADDR_LO_WIDTH 32 10517 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_ADDR_HI_OFST 12 10518 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_ADDR_HI_LEN 4 10519 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_ADDR_HI_LBN 96 10520 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_ADDR_HI_WIDTH 32 10521 /* Specifies the length of the DMA buffer in bytes for statistics transfer. The 10522 * buffer size must be at least DMA_BUFFER_SIZE bytes (as returned by 10523 * MC_CMD_MAC_STATISTICS_DESCRIPTOR). Providing an insufficient buffer size 10524 * will result in an EINVAL error. This field must contain a valid length under 10525 * either of these conditions: 1. DMA flag is set (immediate DMA requested) 2. 10526 * Both PERIODIC_CHANGE and PERIODIC_ENABLE are set (periodic DMA configured) 10527 */ 10528 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_LEN_OFST 16 10529 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_LEN_LEN 4 10530 10531 /* MC_CMD_GET_NETPORT_STATISTICS_OUT msgresponse */ 10532 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_LENMIN 0 10533 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_LENMAX 248 10534 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_LENMAX_MCDI2 1016 10535 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_LEN(num) (0+8*(num)) 10536 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_NUM(len) (((len)-0)/8) 10537 /* Statistics buffer. Zero-length if DMA mode is used. The statistics buffer is 10538 * an array of 8-byte counter values, containing the generation start marker, 10539 * stats counters, and generation end marker. The index of each counter in the 10540 * array is reported by the MAC_STATISTICS_DESCRIPTOR command. The same layout 10541 * is used for the DMA buffer for DMA mode stats. 10542 */ 10543 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_OFST 0 10544 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_LEN 8 10545 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_LO_OFST 0 10546 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_LO_LEN 4 10547 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_LO_LBN 0 10548 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_LO_WIDTH 32 10549 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_HI_OFST 4 10550 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_HI_LEN 4 10551 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_HI_LBN 32 10552 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_HI_WIDTH 32 10553 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_MINNUM 0 10554 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_MAXNUM 31 10555 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_MAXNUM_MCDI2 127 10556 10557 /* EVB_PORT_ID structuredef */ 10558 #define EVB_PORT_ID_LEN 4 10559 #define EVB_PORT_ID_PORT_ID_OFST 0 10560 #define EVB_PORT_ID_PORT_ID_LEN 4 10561 /* enum: An invalid port handle. */ 10562 #define EVB_PORT_ID_NULL 0x0 10563 /* enum: The port assigned to this function.. */ 10564 #define EVB_PORT_ID_ASSIGNED 0x1000000 10565 /* enum: External network port 0 */ 10566 #define EVB_PORT_ID_MAC0 0x2000000 10567 /* enum: External network port 1 */ 10568 #define EVB_PORT_ID_MAC1 0x2000001 10569 /* enum: External network port 2 */ 10570 #define EVB_PORT_ID_MAC2 0x2000002 10571 /* enum: External network port 3 */ 10572 #define EVB_PORT_ID_MAC3 0x2000003 10573 #define EVB_PORT_ID_PORT_ID_LBN 0 10574 #define EVB_PORT_ID_PORT_ID_WIDTH 32 10575 10576 /* NVRAM_PARTITION_TYPE structuredef */ 10577 #define NVRAM_PARTITION_TYPE_LEN 2 10578 #define NVRAM_PARTITION_TYPE_ID_OFST 0 10579 #define NVRAM_PARTITION_TYPE_ID_LEN 2 10580 /* enum: Primary MC firmware partition */ 10581 #define NVRAM_PARTITION_TYPE_MC_FIRMWARE 0x100 10582 /* enum: NMC firmware partition (this is intentionally an alias of MC_FIRMWARE) 10583 */ 10584 #define NVRAM_PARTITION_TYPE_NMC_FIRMWARE 0x100 10585 /* enum: Secondary MC firmware partition */ 10586 #define NVRAM_PARTITION_TYPE_MC_FIRMWARE_BACKUP 0x200 10587 /* enum: Expansion ROM partition */ 10588 #define NVRAM_PARTITION_TYPE_EXPANSION_ROM 0x300 10589 /* enum: Static configuration TLV partition */ 10590 #define NVRAM_PARTITION_TYPE_STATIC_CONFIG 0x400 10591 /* enum: Factory configuration TLV partition (this is intentionally an alias of 10592 * STATIC_CONFIG) 10593 */ 10594 #define NVRAM_PARTITION_TYPE_FACTORY_CONFIG 0x400 10595 /* enum: Dynamic configuration TLV partition */ 10596 #define NVRAM_PARTITION_TYPE_DYNAMIC_CONFIG 0x500 10597 /* enum: User configuration TLV partition (this is intentionally an alias of 10598 * DYNAMIC_CONFIG) 10599 */ 10600 #define NVRAM_PARTITION_TYPE_USER_CONFIG 0x500 10601 /* enum: Expansion ROM configuration data for port 0 */ 10602 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT0 0x600 10603 /* enum: Synonym for EXPROM_CONFIG_PORT0 as used in pmap files */ 10604 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG 0x600 10605 /* enum: Expansion ROM configuration data for port 1 */ 10606 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT1 0x601 10607 /* enum: Expansion ROM configuration data for port 2 */ 10608 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT2 0x602 10609 /* enum: Expansion ROM configuration data for port 3 */ 10610 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT3 0x603 10611 /* enum: Non-volatile log output partition */ 10612 #define NVRAM_PARTITION_TYPE_LOG 0x700 10613 /* enum: Non-volatile log output partition for NMC firmware (this is 10614 * intentionally an alias of LOG) 10615 */ 10616 #define NVRAM_PARTITION_TYPE_NMC_LOG 0x700 10617 /* enum: Non-volatile log output of second core on dual-core device */ 10618 #define NVRAM_PARTITION_TYPE_LOG_SLAVE 0x701 10619 /* enum: RAM (volatile) log output partition */ 10620 #define NVRAM_PARTITION_TYPE_RAM_LOG 0x702 10621 /* enum: Device state dump output partition */ 10622 #define NVRAM_PARTITION_TYPE_DUMP 0x800 10623 /* enum: Crash log partition for NMC firmware */ 10624 #define NVRAM_PARTITION_TYPE_NMC_CRASH_LOG 0x801 10625 /* enum: Application license key storage partition */ 10626 #define NVRAM_PARTITION_TYPE_LICENSE 0x900 10627 /* enum: Start of range used for PHY partitions (low 8 bits are the PHY ID) */ 10628 #define NVRAM_PARTITION_TYPE_PHY_MIN 0xa00 10629 /* enum: End of range used for PHY partitions (low 8 bits are the PHY ID) */ 10630 #define NVRAM_PARTITION_TYPE_PHY_MAX 0xaff 10631 /* enum: Primary FPGA partition */ 10632 #define NVRAM_PARTITION_TYPE_FPGA 0xb00 10633 /* enum: Secondary FPGA partition */ 10634 #define NVRAM_PARTITION_TYPE_FPGA_BACKUP 0xb01 10635 /* enum: FC firmware partition */ 10636 #define NVRAM_PARTITION_TYPE_FC_FIRMWARE 0xb02 10637 /* enum: FC License partition */ 10638 #define NVRAM_PARTITION_TYPE_FC_LICENSE 0xb03 10639 /* enum: Non-volatile log output partition for FC */ 10640 #define NVRAM_PARTITION_TYPE_FC_LOG 0xb04 10641 /* enum: FPGA Stage 1 bitstream */ 10642 #define NVRAM_PARTITION_TYPE_FPGA_STAGE1 0xb05 10643 /* enum: FPGA Stage 2 bitstream */ 10644 #define NVRAM_PARTITION_TYPE_FPGA_STAGE2 0xb06 10645 /* enum: FPGA User XCLBIN / Programmable Region 0 bitstream */ 10646 #define NVRAM_PARTITION_TYPE_FPGA_REGION0 0xb07 10647 /* enum: FPGA User XCLBIN (this is intentionally an alias of FPGA_REGION0) */ 10648 #define NVRAM_PARTITION_TYPE_FPGA_XCLBIN_USER 0xb07 10649 /* enum: FPGA jump instruction (a.k.a. boot) partition to select Stage1 10650 * bitstream 10651 */ 10652 #define NVRAM_PARTITION_TYPE_FPGA_JUMP 0xb08 10653 /* enum: FPGA Validate XCLBIN */ 10654 #define NVRAM_PARTITION_TYPE_FPGA_XCLBIN_VALIDATE 0xb09 10655 /* enum: FPGA XOCL Configuration information */ 10656 #define NVRAM_PARTITION_TYPE_FPGA_XOCL_CONFIG 0xb0a 10657 /* enum: MUM firmware partition */ 10658 #define NVRAM_PARTITION_TYPE_MUM_FIRMWARE 0xc00 10659 /* enum: SUC firmware partition (this is intentionally an alias of 10660 * MUM_FIRMWARE) 10661 */ 10662 #define NVRAM_PARTITION_TYPE_SUC_FIRMWARE 0xc00 10663 /* enum: MUM Non-volatile log output partition. */ 10664 #define NVRAM_PARTITION_TYPE_MUM_LOG 0xc01 10665 /* enum: SUC Non-volatile log output partition (this is intentionally an alias 10666 * of MUM_LOG). 10667 */ 10668 #define NVRAM_PARTITION_TYPE_SUC_LOG 0xc01 10669 /* enum: MUM Application table partition. */ 10670 #define NVRAM_PARTITION_TYPE_MUM_APPTABLE 0xc02 10671 /* enum: MUM boot rom partition. */ 10672 #define NVRAM_PARTITION_TYPE_MUM_BOOT_ROM 0xc03 10673 /* enum: MUM production signatures & calibration rom partition. */ 10674 #define NVRAM_PARTITION_TYPE_MUM_PROD_ROM 0xc04 10675 /* enum: MUM user signatures & calibration rom partition. */ 10676 #define NVRAM_PARTITION_TYPE_MUM_USER_ROM 0xc05 10677 /* enum: MUM fuses and lockbits partition. */ 10678 #define NVRAM_PARTITION_TYPE_MUM_FUSELOCK 0xc06 10679 /* enum: UEFI expansion ROM if separate from PXE */ 10680 #define NVRAM_PARTITION_TYPE_EXPANSION_UEFI 0xd00 10681 /* enum: Used by the expansion ROM for logging */ 10682 #define NVRAM_PARTITION_TYPE_PXE_LOG 0x1000 10683 /* enum: Non-volatile log output partition for Expansion ROM (this is 10684 * intentionally an alias of PXE_LOG). 10685 */ 10686 #define NVRAM_PARTITION_TYPE_EXPROM_LOG 0x1000 10687 /* enum: Used for XIP code of shmbooted images */ 10688 #define NVRAM_PARTITION_TYPE_XIP_SCRATCH 0x1100 10689 /* enum: Spare partition 2 */ 10690 #define NVRAM_PARTITION_TYPE_SPARE_2 0x1200 10691 /* enum: Manufacturing partition. Used during manufacture to pass information 10692 * between XJTAG and Manftest. 10693 */ 10694 #define NVRAM_PARTITION_TYPE_MANUFACTURING 0x1300 10695 /* enum: Deployment configuration TLV partition (this is intentionally an alias 10696 * of MANUFACTURING) 10697 */ 10698 #define NVRAM_PARTITION_TYPE_DEPLOYMENT_CONFIG 0x1300 10699 /* enum: Spare partition 4 */ 10700 #define NVRAM_PARTITION_TYPE_SPARE_4 0x1400 10701 /* enum: Spare partition 5 */ 10702 #define NVRAM_PARTITION_TYPE_SPARE_5 0x1500 10703 /* enum: Partition for reporting MC status. See mc_flash_layout.h 10704 * medford_mc_status_hdr_t for layout on Medford. 10705 */ 10706 #define NVRAM_PARTITION_TYPE_STATUS 0x1600 10707 /* enum: Spare partition 13 */ 10708 #define NVRAM_PARTITION_TYPE_SPARE_13 0x1700 10709 /* enum: Spare partition 14 */ 10710 #define NVRAM_PARTITION_TYPE_SPARE_14 0x1800 10711 /* enum: Spare partition 15 */ 10712 #define NVRAM_PARTITION_TYPE_SPARE_15 0x1900 10713 /* enum: Spare partition 16 */ 10714 #define NVRAM_PARTITION_TYPE_SPARE_16 0x1a00 10715 /* enum: Factory defaults for dynamic configuration */ 10716 #define NVRAM_PARTITION_TYPE_DYNCONFIG_DEFAULTS 0x1b00 10717 /* enum: Factory defaults for expansion ROM configuration */ 10718 #define NVRAM_PARTITION_TYPE_ROMCONFIG_DEFAULTS 0x1c00 10719 /* enum: Field Replaceable Unit inventory information for use on IPMI 10720 * platforms. See SF-119124-PS. The STATIC_CONFIG partition may contain a 10721 * subset of the information stored in this partition. 10722 */ 10723 #define NVRAM_PARTITION_TYPE_FRU_INFORMATION 0x1d00 10724 /* enum: Bundle image partition */ 10725 #define NVRAM_PARTITION_TYPE_BUNDLE 0x1e00 10726 /* enum: Bundle metadata partition that holds additional information related to 10727 * a bundle update in TLV format 10728 */ 10729 #define NVRAM_PARTITION_TYPE_BUNDLE_METADATA 0x1e01 10730 /* enum: Bundle update non-volatile log output partition */ 10731 #define NVRAM_PARTITION_TYPE_BUNDLE_LOG 0x1e02 10732 /* enum: Partition for Solarflare gPXE bootrom installed via Bundle update. */ 10733 #define NVRAM_PARTITION_TYPE_EXPANSION_ROM_INTERNAL 0x1e03 10734 /* enum: Partition to store ASN.1 format Bundle Signature for checking. */ 10735 #define NVRAM_PARTITION_TYPE_BUNDLE_SIGNATURE 0x1e04 10736 /* enum: Test partition on SmartNIC system microcontroller (SUC) */ 10737 #define NVRAM_PARTITION_TYPE_SUC_TEST 0x1f00 10738 /* enum: System microcontroller access to primary FPGA flash. */ 10739 #define NVRAM_PARTITION_TYPE_SUC_FPGA_PRIMARY 0x1f01 10740 /* enum: System microcontroller access to secondary FPGA flash (if present) */ 10741 #define NVRAM_PARTITION_TYPE_SUC_FPGA_SECONDARY 0x1f02 10742 /* enum: System microcontroller access to primary System-on-Chip flash */ 10743 #define NVRAM_PARTITION_TYPE_SUC_SOC_PRIMARY 0x1f03 10744 /* enum: System microcontroller access to secondary System-on-Chip flash (if 10745 * present) 10746 */ 10747 #define NVRAM_PARTITION_TYPE_SUC_SOC_SECONDARY 0x1f04 10748 /* enum: System microcontroller critical failure logs. Contains structured 10749 * details of sensors leading up to a critical failure (where the board is shut 10750 * down). 10751 */ 10752 #define NVRAM_PARTITION_TYPE_SUC_FAILURE_LOG 0x1f05 10753 /* enum: System-on-Chip configuration information (see XN-200467-PS). */ 10754 #define NVRAM_PARTITION_TYPE_SUC_SOC_CONFIG 0x1f07 10755 /* enum: System-on-Chip update information. */ 10756 #define NVRAM_PARTITION_TYPE_SOC_UPDATE 0x2003 10757 /* enum: Virtual partition. Write-only. Writes will actually be sent to an 10758 * appropriate partition (for instance BUNDLE if the data starts with the magic 10759 * number for a bundle update), or discarded with an error if not recognised as 10760 * a supported type. 10761 */ 10762 #define NVRAM_PARTITION_TYPE_AUTO 0x2100 10763 /* enum: MC/NMC (first stage) bootloader firmware. (For X4, see XN-202072-PS 10764 * and XN-202084-SW section 3.1). 10765 */ 10766 #define NVRAM_PARTITION_TYPE_BOOTLOADER 0x2200 10767 /* enum: Start of reserved value range (firmware may use for any purpose) */ 10768 #define NVRAM_PARTITION_TYPE_RESERVED_VALUES_MIN 0xff00 10769 /* enum: End of reserved value range (firmware may use for any purpose) */ 10770 #define NVRAM_PARTITION_TYPE_RESERVED_VALUES_MAX 0xfffd 10771 /* enum: Recovery partition map (provided if real map is missing or corrupt) */ 10772 #define NVRAM_PARTITION_TYPE_RECOVERY_MAP 0xfffe 10773 /* enum: Recovery Flash Partition Table, see SF-122606-TC. (this is 10774 * intentionally an alias of RECOVERY_MAP) 10775 */ 10776 #define NVRAM_PARTITION_TYPE_RECOVERY_FPT 0xfffe 10777 /* enum: Partition map (real map as stored in flash) */ 10778 #define NVRAM_PARTITION_TYPE_PARTITION_MAP 0xffff 10779 /* enum: Flash Partition Table, see SF-122606-TC. (this is intentionally an 10780 * alias of PARTITION_MAP) 10781 */ 10782 #define NVRAM_PARTITION_TYPE_FPT 0xffff 10783 #define NVRAM_PARTITION_TYPE_ID_LBN 0 10784 #define NVRAM_PARTITION_TYPE_ID_WIDTH 16 10785 10786 /* LICENSED_APP_ID structuredef */ 10787 #define LICENSED_APP_ID_LEN 4 10788 #define LICENSED_APP_ID_ID_OFST 0 10789 #define LICENSED_APP_ID_ID_LEN 4 10790 /* enum: OpenOnload */ 10791 #define LICENSED_APP_ID_ONLOAD 0x1 10792 /* enum: PTP timestamping */ 10793 #define LICENSED_APP_ID_PTP 0x2 10794 /* enum: SolarCapture Pro */ 10795 #define LICENSED_APP_ID_SOLARCAPTURE_PRO 0x4 10796 /* enum: SolarSecure filter engine */ 10797 #define LICENSED_APP_ID_SOLARSECURE 0x8 10798 /* enum: Performance monitor */ 10799 #define LICENSED_APP_ID_PERF_MONITOR 0x10 10800 /* enum: SolarCapture Live */ 10801 #define LICENSED_APP_ID_SOLARCAPTURE_LIVE 0x20 10802 /* enum: Capture SolarSystem */ 10803 #define LICENSED_APP_ID_CAPTURE_SOLARSYSTEM 0x40 10804 /* enum: Network Access Control */ 10805 #define LICENSED_APP_ID_NETWORK_ACCESS_CONTROL 0x80 10806 /* enum: TCP Direct */ 10807 #define LICENSED_APP_ID_TCP_DIRECT 0x100 10808 /* enum: Low Latency */ 10809 #define LICENSED_APP_ID_LOW_LATENCY 0x200 10810 /* enum: SolarCapture Tap */ 10811 #define LICENSED_APP_ID_SOLARCAPTURE_TAP 0x400 10812 /* enum: Capture SolarSystem 40G */ 10813 #define LICENSED_APP_ID_CAPTURE_SOLARSYSTEM_40G 0x800 10814 /* enum: Capture SolarSystem 1G */ 10815 #define LICENSED_APP_ID_CAPTURE_SOLARSYSTEM_1G 0x1000 10816 /* enum: ScaleOut Onload */ 10817 #define LICENSED_APP_ID_SCALEOUT_ONLOAD 0x2000 10818 /* enum: SCS Network Analytics Dashboard */ 10819 #define LICENSED_APP_ID_DSHBRD 0x4000 10820 /* enum: SolarCapture Trading Analytics */ 10821 #define LICENSED_APP_ID_SCATRD 0x8000 10822 #define LICENSED_APP_ID_ID_LBN 0 10823 #define LICENSED_APP_ID_ID_WIDTH 32 10824 10825 /* LICENSED_V3_FEATURES structuredef */ 10826 #define LICENSED_V3_FEATURES_LEN 8 10827 /* Bitmask of licensed firmware features */ 10828 #define LICENSED_V3_FEATURES_MASK_OFST 0 10829 #define LICENSED_V3_FEATURES_MASK_LEN 8 10830 #define LICENSED_V3_FEATURES_MASK_LO_OFST 0 10831 #define LICENSED_V3_FEATURES_MASK_LO_LEN 4 10832 #define LICENSED_V3_FEATURES_MASK_LO_LBN 0 10833 #define LICENSED_V3_FEATURES_MASK_LO_WIDTH 32 10834 #define LICENSED_V3_FEATURES_MASK_HI_OFST 4 10835 #define LICENSED_V3_FEATURES_MASK_HI_LEN 4 10836 #define LICENSED_V3_FEATURES_MASK_HI_LBN 32 10837 #define LICENSED_V3_FEATURES_MASK_HI_WIDTH 32 10838 #define LICENSED_V3_FEATURES_RX_CUT_THROUGH_OFST 0 10839 #define LICENSED_V3_FEATURES_RX_CUT_THROUGH_LBN 0 10840 #define LICENSED_V3_FEATURES_RX_CUT_THROUGH_WIDTH 1 10841 #define LICENSED_V3_FEATURES_PIO_OFST 0 10842 #define LICENSED_V3_FEATURES_PIO_LBN 1 10843 #define LICENSED_V3_FEATURES_PIO_WIDTH 1 10844 #define LICENSED_V3_FEATURES_EVQ_TIMER_OFST 0 10845 #define LICENSED_V3_FEATURES_EVQ_TIMER_LBN 2 10846 #define LICENSED_V3_FEATURES_EVQ_TIMER_WIDTH 1 10847 #define LICENSED_V3_FEATURES_CLOCK_OFST 0 10848 #define LICENSED_V3_FEATURES_CLOCK_LBN 3 10849 #define LICENSED_V3_FEATURES_CLOCK_WIDTH 1 10850 #define LICENSED_V3_FEATURES_RX_TIMESTAMPS_OFST 0 10851 #define LICENSED_V3_FEATURES_RX_TIMESTAMPS_LBN 4 10852 #define LICENSED_V3_FEATURES_RX_TIMESTAMPS_WIDTH 1 10853 #define LICENSED_V3_FEATURES_TX_TIMESTAMPS_OFST 0 10854 #define LICENSED_V3_FEATURES_TX_TIMESTAMPS_LBN 5 10855 #define LICENSED_V3_FEATURES_TX_TIMESTAMPS_WIDTH 1 10856 #define LICENSED_V3_FEATURES_RX_SNIFF_OFST 0 10857 #define LICENSED_V3_FEATURES_RX_SNIFF_LBN 6 10858 #define LICENSED_V3_FEATURES_RX_SNIFF_WIDTH 1 10859 #define LICENSED_V3_FEATURES_TX_SNIFF_OFST 0 10860 #define LICENSED_V3_FEATURES_TX_SNIFF_LBN 7 10861 #define LICENSED_V3_FEATURES_TX_SNIFF_WIDTH 1 10862 #define LICENSED_V3_FEATURES_PROXY_FILTER_OPS_OFST 0 10863 #define LICENSED_V3_FEATURES_PROXY_FILTER_OPS_LBN 8 10864 #define LICENSED_V3_FEATURES_PROXY_FILTER_OPS_WIDTH 1 10865 #define LICENSED_V3_FEATURES_EVENT_CUT_THROUGH_OFST 0 10866 #define LICENSED_V3_FEATURES_EVENT_CUT_THROUGH_LBN 9 10867 #define LICENSED_V3_FEATURES_EVENT_CUT_THROUGH_WIDTH 1 10868 #define LICENSED_V3_FEATURES_MASK_LBN 0 10869 #define LICENSED_V3_FEATURES_MASK_WIDTH 64 10870 10871 /* TX_TIMESTAMP_EVENT structuredef */ 10872 #define TX_TIMESTAMP_EVENT_LEN 6 10873 /* lower 16 bits of timestamp data */ 10874 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_LO_OFST 0 10875 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_LO_LEN 2 10876 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_LO_LBN 0 10877 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_LO_WIDTH 16 10878 /* Type of TX event, ordinary TX completion, low or high part of TX timestamp 10879 */ 10880 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_OFST 3 10881 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_LEN 1 10882 /* enum: This is a TX completion event, not a timestamp */ 10883 #define TX_TIMESTAMP_EVENT_TX_EV_COMPLETION 0x0 10884 /* enum: This is a TX completion event for a CTPIO transmit. The event format 10885 * is the same as for TX_EV_COMPLETION. 10886 */ 10887 #define TX_TIMESTAMP_EVENT_TX_EV_CTPIO_COMPLETION 0x11 10888 /* enum: This is the low part of a TX timestamp for a CTPIO transmission. The 10889 * event format is the same as for TX_EV_TSTAMP_LO 10890 */ 10891 #define TX_TIMESTAMP_EVENT_TX_EV_CTPIO_TS_LO 0x12 10892 /* enum: This is the high part of a TX timestamp for a CTPIO transmission. The 10893 * event format is the same as for TX_EV_TSTAMP_HI 10894 */ 10895 #define TX_TIMESTAMP_EVENT_TX_EV_CTPIO_TS_HI 0x13 10896 /* enum: This is the low part of a TX timestamp event */ 10897 #define TX_TIMESTAMP_EVENT_TX_EV_TSTAMP_LO 0x51 10898 /* enum: This is the high part of a TX timestamp event */ 10899 #define TX_TIMESTAMP_EVENT_TX_EV_TSTAMP_HI 0x52 10900 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_LBN 24 10901 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_WIDTH 8 10902 /* upper 16 bits of timestamp data */ 10903 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_OFST 4 10904 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_LEN 2 10905 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_LBN 32 10906 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_WIDTH 16 10907 10908 /* RSS_MODE structuredef */ 10909 #define RSS_MODE_LEN 1 10910 /* The RSS mode for a particular packet type is a value from 0 - 15 which can 10911 * be considered as 4 bits selecting which fields are included in the hash. (A 10912 * value 0 effectively disables RSS spreading for the packet type.) The YAML 10913 * generation tools require this structure to be a whole number of bytes wide, 10914 * but only 4 bits are relevant. 10915 */ 10916 #define RSS_MODE_HASH_SELECTOR_OFST 0 10917 #define RSS_MODE_HASH_SELECTOR_LEN 1 10918 #define RSS_MODE_HASH_SRC_ADDR_OFST 0 10919 #define RSS_MODE_HASH_SRC_ADDR_LBN 0 10920 #define RSS_MODE_HASH_SRC_ADDR_WIDTH 1 10921 #define RSS_MODE_HASH_DST_ADDR_OFST 0 10922 #define RSS_MODE_HASH_DST_ADDR_LBN 1 10923 #define RSS_MODE_HASH_DST_ADDR_WIDTH 1 10924 #define RSS_MODE_HASH_SRC_PORT_OFST 0 10925 #define RSS_MODE_HASH_SRC_PORT_LBN 2 10926 #define RSS_MODE_HASH_SRC_PORT_WIDTH 1 10927 #define RSS_MODE_HASH_DST_PORT_OFST 0 10928 #define RSS_MODE_HASH_DST_PORT_LBN 3 10929 #define RSS_MODE_HASH_DST_PORT_WIDTH 1 10930 #define RSS_MODE_HASH_SELECTOR_LBN 0 10931 #define RSS_MODE_HASH_SELECTOR_WIDTH 8 10932 10933 10934 /***********************************/ 10935 /* MC_CMD_INIT_EVQ 10936 * Set up an event queue according to the supplied parameters. The IN arguments 10937 * end with an address for each 4k of host memory required to back the EVQ. 10938 */ 10939 #define MC_CMD_INIT_EVQ 0x80 10940 #undef MC_CMD_0x80_PRIVILEGE_CTG 10941 10942 #define MC_CMD_0x80_PRIVILEGE_CTG SRIOV_CTG_GENERAL 10943 10944 /* MC_CMD_INIT_EVQ_IN msgrequest */ 10945 #define MC_CMD_INIT_EVQ_IN_LENMIN 44 10946 #define MC_CMD_INIT_EVQ_IN_LENMAX 548 10947 #define MC_CMD_INIT_EVQ_IN_LENMAX_MCDI2 548 10948 #define MC_CMD_INIT_EVQ_IN_LEN(num) (36+8*(num)) 10949 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_NUM(len) (((len)-36)/8) 10950 /* Size, in entries */ 10951 #define MC_CMD_INIT_EVQ_IN_SIZE_OFST 0 10952 #define MC_CMD_INIT_EVQ_IN_SIZE_LEN 4 10953 /* Desired instance. Must be set to a specific instance, which is a function 10954 * local queue index. The calling client must be the currently-assigned user of 10955 * this VI (see MC_CMD_SET_VI_USER). 10956 */ 10957 #define MC_CMD_INIT_EVQ_IN_INSTANCE_OFST 4 10958 #define MC_CMD_INIT_EVQ_IN_INSTANCE_LEN 4 10959 /* The initial timer value. The load value is ignored if the timer mode is DIS. 10960 */ 10961 #define MC_CMD_INIT_EVQ_IN_TMR_LOAD_OFST 8 10962 #define MC_CMD_INIT_EVQ_IN_TMR_LOAD_LEN 4 10963 /* The reload value is ignored in one-shot modes */ 10964 #define MC_CMD_INIT_EVQ_IN_TMR_RELOAD_OFST 12 10965 #define MC_CMD_INIT_EVQ_IN_TMR_RELOAD_LEN 4 10966 /* tbd */ 10967 #define MC_CMD_INIT_EVQ_IN_FLAGS_OFST 16 10968 #define MC_CMD_INIT_EVQ_IN_FLAGS_LEN 4 10969 #define MC_CMD_INIT_EVQ_IN_FLAG_INTERRUPTING_OFST 16 10970 #define MC_CMD_INIT_EVQ_IN_FLAG_INTERRUPTING_LBN 0 10971 #define MC_CMD_INIT_EVQ_IN_FLAG_INTERRUPTING_WIDTH 1 10972 #define MC_CMD_INIT_EVQ_IN_FLAG_RPTR_DOS_OFST 16 10973 #define MC_CMD_INIT_EVQ_IN_FLAG_RPTR_DOS_LBN 1 10974 #define MC_CMD_INIT_EVQ_IN_FLAG_RPTR_DOS_WIDTH 1 10975 #define MC_CMD_INIT_EVQ_IN_FLAG_INT_ARMD_OFST 16 10976 #define MC_CMD_INIT_EVQ_IN_FLAG_INT_ARMD_LBN 2 10977 #define MC_CMD_INIT_EVQ_IN_FLAG_INT_ARMD_WIDTH 1 10978 #define MC_CMD_INIT_EVQ_IN_FLAG_CUT_THRU_OFST 16 10979 #define MC_CMD_INIT_EVQ_IN_FLAG_CUT_THRU_LBN 3 10980 #define MC_CMD_INIT_EVQ_IN_FLAG_CUT_THRU_WIDTH 1 10981 #define MC_CMD_INIT_EVQ_IN_FLAG_RX_MERGE_OFST 16 10982 #define MC_CMD_INIT_EVQ_IN_FLAG_RX_MERGE_LBN 4 10983 #define MC_CMD_INIT_EVQ_IN_FLAG_RX_MERGE_WIDTH 1 10984 #define MC_CMD_INIT_EVQ_IN_FLAG_TX_MERGE_OFST 16 10985 #define MC_CMD_INIT_EVQ_IN_FLAG_TX_MERGE_LBN 5 10986 #define MC_CMD_INIT_EVQ_IN_FLAG_TX_MERGE_WIDTH 1 10987 #define MC_CMD_INIT_EVQ_IN_FLAG_USE_TIMER_OFST 16 10988 #define MC_CMD_INIT_EVQ_IN_FLAG_USE_TIMER_LBN 6 10989 #define MC_CMD_INIT_EVQ_IN_FLAG_USE_TIMER_WIDTH 1 10990 #define MC_CMD_INIT_EVQ_IN_TMR_MODE_OFST 20 10991 #define MC_CMD_INIT_EVQ_IN_TMR_MODE_LEN 4 10992 /* enum: Disabled */ 10993 #define MC_CMD_INIT_EVQ_IN_TMR_MODE_DIS 0x0 10994 /* enum: Immediate */ 10995 #define MC_CMD_INIT_EVQ_IN_TMR_IMMED_START 0x1 10996 /* enum: Triggered */ 10997 #define MC_CMD_INIT_EVQ_IN_TMR_TRIG_START 0x2 10998 /* enum: Hold-off */ 10999 #define MC_CMD_INIT_EVQ_IN_TMR_INT_HLDOFF 0x3 11000 /* Target EVQ for wakeups if in wakeup mode. */ 11001 #define MC_CMD_INIT_EVQ_IN_TARGET_EVQ_OFST 24 11002 #define MC_CMD_INIT_EVQ_IN_TARGET_EVQ_LEN 4 11003 /* Target interrupt if in interrupting mode (note union with target EVQ). Use 11004 * MC_CMD_RESOURCE_INSTANCE_ANY unless a specific one required for test 11005 * purposes. 11006 */ 11007 #define MC_CMD_INIT_EVQ_IN_IRQ_NUM_OFST 24 11008 #define MC_CMD_INIT_EVQ_IN_IRQ_NUM_LEN 4 11009 /* Event Counter Mode. */ 11010 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_OFST 28 11011 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_LEN 4 11012 /* enum: Disabled */ 11013 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_DIS 0x0 11014 /* enum: Disabled */ 11015 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_RX 0x1 11016 /* enum: Disabled */ 11017 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_TX 0x2 11018 /* enum: Disabled */ 11019 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_RXTX 0x3 11020 /* Event queue packet count threshold. */ 11021 #define MC_CMD_INIT_EVQ_IN_COUNT_THRSHLD_OFST 32 11022 #define MC_CMD_INIT_EVQ_IN_COUNT_THRSHLD_LEN 4 11023 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 11024 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_OFST 36 11025 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LEN 8 11026 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_OFST 36 11027 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_LEN 4 11028 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_LBN 288 11029 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_WIDTH 32 11030 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_OFST 40 11031 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_LEN 4 11032 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_LBN 320 11033 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_WIDTH 32 11034 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_MINNUM 1 11035 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_MAXNUM 64 11036 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_MAXNUM_MCDI2 64 11037 11038 /* MC_CMD_INIT_EVQ_OUT msgresponse */ 11039 #define MC_CMD_INIT_EVQ_OUT_LEN 4 11040 /* Only valid if INTRFLAG was true */ 11041 #define MC_CMD_INIT_EVQ_OUT_IRQ_OFST 0 11042 #define MC_CMD_INIT_EVQ_OUT_IRQ_LEN 4 11043 11044 /* MC_CMD_INIT_EVQ_V2_IN msgrequest */ 11045 #define MC_CMD_INIT_EVQ_V2_IN_LENMIN 44 11046 #define MC_CMD_INIT_EVQ_V2_IN_LENMAX 548 11047 #define MC_CMD_INIT_EVQ_V2_IN_LENMAX_MCDI2 548 11048 #define MC_CMD_INIT_EVQ_V2_IN_LEN(num) (36+8*(num)) 11049 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_NUM(len) (((len)-36)/8) 11050 /* Size, in entries */ 11051 #define MC_CMD_INIT_EVQ_V2_IN_SIZE_OFST 0 11052 #define MC_CMD_INIT_EVQ_V2_IN_SIZE_LEN 4 11053 /* Desired instance. Must be set to a specific instance, which is a function 11054 * local queue index. The calling client must be the currently-assigned user of 11055 * this VI (see MC_CMD_SET_VI_USER). 11056 */ 11057 #define MC_CMD_INIT_EVQ_V2_IN_INSTANCE_OFST 4 11058 #define MC_CMD_INIT_EVQ_V2_IN_INSTANCE_LEN 4 11059 /* The initial timer value. The load value is ignored if the timer mode is DIS. 11060 */ 11061 #define MC_CMD_INIT_EVQ_V2_IN_TMR_LOAD_OFST 8 11062 #define MC_CMD_INIT_EVQ_V2_IN_TMR_LOAD_LEN 4 11063 /* The reload value is ignored in one-shot modes */ 11064 #define MC_CMD_INIT_EVQ_V2_IN_TMR_RELOAD_OFST 12 11065 #define MC_CMD_INIT_EVQ_V2_IN_TMR_RELOAD_LEN 4 11066 /* tbd */ 11067 #define MC_CMD_INIT_EVQ_V2_IN_FLAGS_OFST 16 11068 #define MC_CMD_INIT_EVQ_V2_IN_FLAGS_LEN 4 11069 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INTERRUPTING_OFST 16 11070 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INTERRUPTING_LBN 0 11071 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INTERRUPTING_WIDTH 1 11072 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RPTR_DOS_OFST 16 11073 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RPTR_DOS_LBN 1 11074 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RPTR_DOS_WIDTH 1 11075 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INT_ARMD_OFST 16 11076 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INT_ARMD_LBN 2 11077 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INT_ARMD_WIDTH 1 11078 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_CUT_THRU_OFST 16 11079 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_CUT_THRU_LBN 3 11080 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_CUT_THRU_WIDTH 1 11081 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RX_MERGE_OFST 16 11082 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RX_MERGE_LBN 4 11083 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RX_MERGE_WIDTH 1 11084 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TX_MERGE_OFST 16 11085 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TX_MERGE_LBN 5 11086 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TX_MERGE_WIDTH 1 11087 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_USE_TIMER_OFST 16 11088 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_USE_TIMER_LBN 6 11089 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_USE_TIMER_WIDTH 1 11090 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_OFST 16 11091 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_LBN 7 11092 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_WIDTH 4 11093 /* enum: All initialisation flags specified by host. */ 11094 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_MANUAL 0x0 11095 /* enum: MEDFORD only. Certain initialisation flags specified by host may be 11096 * over-ridden by firmware based on licenses and firmware variant in order to 11097 * provide the lowest latency achievable. See 11098 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 11099 */ 11100 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_LOW_LATENCY 0x1 11101 /* enum: MEDFORD only. Certain initialisation flags specified by host may be 11102 * over-ridden by firmware based on licenses and firmware variant in order to 11103 * provide the best throughput achievable. See 11104 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 11105 */ 11106 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_THROUGHPUT 0x2 11107 /* enum: MEDFORD only. Certain initialisation flags may be over-ridden by 11108 * firmware based on licenses and firmware variant. See 11109 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 11110 */ 11111 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_AUTO 0x3 11112 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_EXT_WIDTH_OFST 16 11113 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_EXT_WIDTH_LBN 11 11114 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_EXT_WIDTH_WIDTH 1 11115 #define MC_CMD_INIT_EVQ_V2_IN_TMR_MODE_OFST 20 11116 #define MC_CMD_INIT_EVQ_V2_IN_TMR_MODE_LEN 4 11117 /* enum: Disabled */ 11118 #define MC_CMD_INIT_EVQ_V2_IN_TMR_MODE_DIS 0x0 11119 /* enum: Immediate */ 11120 #define MC_CMD_INIT_EVQ_V2_IN_TMR_IMMED_START 0x1 11121 /* enum: Triggered */ 11122 #define MC_CMD_INIT_EVQ_V2_IN_TMR_TRIG_START 0x2 11123 /* enum: Hold-off */ 11124 #define MC_CMD_INIT_EVQ_V2_IN_TMR_INT_HLDOFF 0x3 11125 /* Target EVQ for wakeups if in wakeup mode. */ 11126 #define MC_CMD_INIT_EVQ_V2_IN_TARGET_EVQ_OFST 24 11127 #define MC_CMD_INIT_EVQ_V2_IN_TARGET_EVQ_LEN 4 11128 /* Target interrupt if in interrupting mode (note union with target EVQ). Use 11129 * MC_CMD_RESOURCE_INSTANCE_ANY unless a specific one required for test 11130 * purposes. 11131 */ 11132 #define MC_CMD_INIT_EVQ_V2_IN_IRQ_NUM_OFST 24 11133 #define MC_CMD_INIT_EVQ_V2_IN_IRQ_NUM_LEN 4 11134 /* Event Counter Mode. */ 11135 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_OFST 28 11136 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_LEN 4 11137 /* enum: Disabled */ 11138 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_DIS 0x0 11139 /* enum: Disabled */ 11140 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_RX 0x1 11141 /* enum: Disabled */ 11142 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_TX 0x2 11143 /* enum: Disabled */ 11144 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_RXTX 0x3 11145 /* Event queue packet count threshold. */ 11146 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_THRSHLD_OFST 32 11147 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_THRSHLD_LEN 4 11148 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 11149 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_OFST 36 11150 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LEN 8 11151 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_OFST 36 11152 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_LEN 4 11153 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_LBN 288 11154 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_WIDTH 32 11155 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_OFST 40 11156 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_LEN 4 11157 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_LBN 320 11158 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_WIDTH 32 11159 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_MINNUM 1 11160 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_MAXNUM 64 11161 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_MAXNUM_MCDI2 64 11162 11163 /* MC_CMD_INIT_EVQ_V2_OUT msgresponse */ 11164 #define MC_CMD_INIT_EVQ_V2_OUT_LEN 8 11165 /* Only valid if INTRFLAG was true */ 11166 #define MC_CMD_INIT_EVQ_V2_OUT_IRQ_OFST 0 11167 #define MC_CMD_INIT_EVQ_V2_OUT_IRQ_LEN 4 11168 /* Actual configuration applied on the card */ 11169 #define MC_CMD_INIT_EVQ_V2_OUT_FLAGS_OFST 4 11170 #define MC_CMD_INIT_EVQ_V2_OUT_FLAGS_LEN 4 11171 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_CUT_THRU_OFST 4 11172 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_CUT_THRU_LBN 0 11173 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_CUT_THRU_WIDTH 1 11174 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RX_MERGE_OFST 4 11175 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RX_MERGE_LBN 1 11176 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RX_MERGE_WIDTH 1 11177 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_TX_MERGE_OFST 4 11178 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_TX_MERGE_LBN 2 11179 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_TX_MERGE_WIDTH 1 11180 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_OFST 4 11181 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_LBN 3 11182 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_WIDTH 1 11183 11184 /* MC_CMD_INIT_EVQ_V3_IN msgrequest: Extended request to specify per-queue 11185 * event merge timeouts. 11186 */ 11187 #define MC_CMD_INIT_EVQ_V3_IN_LEN 556 11188 /* Size, in entries */ 11189 #define MC_CMD_INIT_EVQ_V3_IN_SIZE_OFST 0 11190 #define MC_CMD_INIT_EVQ_V3_IN_SIZE_LEN 4 11191 /* Desired instance. Must be set to a specific instance, which is a function 11192 * local queue index. The calling client must be the currently-assigned user of 11193 * this VI (see MC_CMD_SET_VI_USER). 11194 */ 11195 #define MC_CMD_INIT_EVQ_V3_IN_INSTANCE_OFST 4 11196 #define MC_CMD_INIT_EVQ_V3_IN_INSTANCE_LEN 4 11197 /* The initial timer value. The load value is ignored if the timer mode is DIS. 11198 */ 11199 #define MC_CMD_INIT_EVQ_V3_IN_TMR_LOAD_OFST 8 11200 #define MC_CMD_INIT_EVQ_V3_IN_TMR_LOAD_LEN 4 11201 /* The reload value is ignored in one-shot modes */ 11202 #define MC_CMD_INIT_EVQ_V3_IN_TMR_RELOAD_OFST 12 11203 #define MC_CMD_INIT_EVQ_V3_IN_TMR_RELOAD_LEN 4 11204 /* tbd */ 11205 #define MC_CMD_INIT_EVQ_V3_IN_FLAGS_OFST 16 11206 #define MC_CMD_INIT_EVQ_V3_IN_FLAGS_LEN 4 11207 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INTERRUPTING_OFST 16 11208 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INTERRUPTING_LBN 0 11209 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INTERRUPTING_WIDTH 1 11210 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RPTR_DOS_OFST 16 11211 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RPTR_DOS_LBN 1 11212 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RPTR_DOS_WIDTH 1 11213 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INT_ARMD_OFST 16 11214 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INT_ARMD_LBN 2 11215 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INT_ARMD_WIDTH 1 11216 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_CUT_THRU_OFST 16 11217 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_CUT_THRU_LBN 3 11218 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_CUT_THRU_WIDTH 1 11219 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RX_MERGE_OFST 16 11220 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RX_MERGE_LBN 4 11221 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RX_MERGE_WIDTH 1 11222 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TX_MERGE_OFST 16 11223 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TX_MERGE_LBN 5 11224 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TX_MERGE_WIDTH 1 11225 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_USE_TIMER_OFST 16 11226 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_USE_TIMER_LBN 6 11227 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_USE_TIMER_WIDTH 1 11228 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_OFST 16 11229 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_LBN 7 11230 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_WIDTH 4 11231 /* enum: All initialisation flags specified by host. */ 11232 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_MANUAL 0x0 11233 /* enum: MEDFORD only. Certain initialisation flags specified by host may be 11234 * over-ridden by firmware based on licenses and firmware variant in order to 11235 * provide the lowest latency achievable. See 11236 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 11237 */ 11238 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_LOW_LATENCY 0x1 11239 /* enum: MEDFORD only. Certain initialisation flags specified by host may be 11240 * over-ridden by firmware based on licenses and firmware variant in order to 11241 * provide the best throughput achievable. See 11242 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 11243 */ 11244 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_THROUGHPUT 0x2 11245 /* enum: MEDFORD only. Certain initialisation flags may be over-ridden by 11246 * firmware based on licenses and firmware variant. See 11247 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 11248 */ 11249 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_AUTO 0x3 11250 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_EXT_WIDTH_OFST 16 11251 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_EXT_WIDTH_LBN 11 11252 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_EXT_WIDTH_WIDTH 1 11253 #define MC_CMD_INIT_EVQ_V3_IN_TMR_MODE_OFST 20 11254 #define MC_CMD_INIT_EVQ_V3_IN_TMR_MODE_LEN 4 11255 /* enum: Disabled */ 11256 #define MC_CMD_INIT_EVQ_V3_IN_TMR_MODE_DIS 0x0 11257 /* enum: Immediate */ 11258 #define MC_CMD_INIT_EVQ_V3_IN_TMR_IMMED_START 0x1 11259 /* enum: Triggered */ 11260 #define MC_CMD_INIT_EVQ_V3_IN_TMR_TRIG_START 0x2 11261 /* enum: Hold-off */ 11262 #define MC_CMD_INIT_EVQ_V3_IN_TMR_INT_HLDOFF 0x3 11263 /* Target EVQ for wakeups if in wakeup mode. */ 11264 #define MC_CMD_INIT_EVQ_V3_IN_TARGET_EVQ_OFST 24 11265 #define MC_CMD_INIT_EVQ_V3_IN_TARGET_EVQ_LEN 4 11266 /* Target interrupt if in interrupting mode (note union with target EVQ). Use 11267 * MC_CMD_RESOURCE_INSTANCE_ANY unless a specific one required for test 11268 * purposes. 11269 */ 11270 #define MC_CMD_INIT_EVQ_V3_IN_IRQ_NUM_OFST 24 11271 #define MC_CMD_INIT_EVQ_V3_IN_IRQ_NUM_LEN 4 11272 /* Event Counter Mode. */ 11273 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_OFST 28 11274 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_LEN 4 11275 /* enum: Disabled */ 11276 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_DIS 0x0 11277 /* enum: Disabled */ 11278 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_RX 0x1 11279 /* enum: Disabled */ 11280 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_TX 0x2 11281 /* enum: Disabled */ 11282 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_RXTX 0x3 11283 /* Event queue packet count threshold. */ 11284 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_THRSHLD_OFST 32 11285 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_THRSHLD_LEN 4 11286 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 11287 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_OFST 36 11288 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LEN 8 11289 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_OFST 36 11290 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_LEN 4 11291 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_LBN 288 11292 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_WIDTH 32 11293 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_OFST 40 11294 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_LEN 4 11295 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_LBN 320 11296 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_WIDTH 32 11297 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_MINNUM 1 11298 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_MAXNUM 64 11299 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_MAXNUM_MCDI2 64 11300 /* Receive event merge timeout to configure, in nanoseconds. The valid range 11301 * and granularity are device specific. Specify 0 to use the firmware's default 11302 * value. This field is ignored and per-queue merging is disabled if 11303 * MC_CMD_INIT_EVQ/MC_CMD_INIT_EVQ_IN/FLAG_RX_MERGE is not set. 11304 */ 11305 #define MC_CMD_INIT_EVQ_V3_IN_RX_MERGE_TIMEOUT_NS_OFST 548 11306 #define MC_CMD_INIT_EVQ_V3_IN_RX_MERGE_TIMEOUT_NS_LEN 4 11307 /* Transmit event merge timeout to configure, in nanoseconds. The valid range 11308 * and granularity are device specific. Specify 0 to use the firmware's default 11309 * value. This field is ignored and per-queue merging is disabled if 11310 * MC_CMD_INIT_EVQ/MC_CMD_INIT_EVQ_IN/FLAG_TX_MERGE is not set. 11311 */ 11312 #define MC_CMD_INIT_EVQ_V3_IN_TX_MERGE_TIMEOUT_NS_OFST 552 11313 #define MC_CMD_INIT_EVQ_V3_IN_TX_MERGE_TIMEOUT_NS_LEN 4 11314 11315 /* MC_CMD_INIT_EVQ_V3_OUT msgresponse */ 11316 #define MC_CMD_INIT_EVQ_V3_OUT_LEN 8 11317 /* Only valid if INTRFLAG was true */ 11318 #define MC_CMD_INIT_EVQ_V3_OUT_IRQ_OFST 0 11319 #define MC_CMD_INIT_EVQ_V3_OUT_IRQ_LEN 4 11320 /* Actual configuration applied on the card */ 11321 #define MC_CMD_INIT_EVQ_V3_OUT_FLAGS_OFST 4 11322 #define MC_CMD_INIT_EVQ_V3_OUT_FLAGS_LEN 4 11323 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_CUT_THRU_OFST 4 11324 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_CUT_THRU_LBN 0 11325 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_CUT_THRU_WIDTH 1 11326 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RX_MERGE_OFST 4 11327 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RX_MERGE_LBN 1 11328 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RX_MERGE_WIDTH 1 11329 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_TX_MERGE_OFST 4 11330 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_TX_MERGE_LBN 2 11331 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_TX_MERGE_WIDTH 1 11332 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RXQ_FORCE_EV_MERGING_OFST 4 11333 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RXQ_FORCE_EV_MERGING_LBN 3 11334 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RXQ_FORCE_EV_MERGING_WIDTH 1 11335 11336 11337 /***********************************/ 11338 /* MC_CMD_INIT_RXQ 11339 * set up a receive queue according to the supplied parameters. The IN 11340 * arguments end with an address for each 4k of host memory required to back 11341 * the RXQ. 11342 */ 11343 #define MC_CMD_INIT_RXQ 0x81 11344 #undef MC_CMD_0x81_PRIVILEGE_CTG 11345 11346 #define MC_CMD_0x81_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11347 11348 /* MC_CMD_INIT_RXQ_IN msgrequest: Legacy RXQ_INIT request. Use extended version 11349 * in new code. 11350 */ 11351 #define MC_CMD_INIT_RXQ_IN_LENMIN 36 11352 #define MC_CMD_INIT_RXQ_IN_LENMAX 252 11353 #define MC_CMD_INIT_RXQ_IN_LENMAX_MCDI2 1020 11354 #define MC_CMD_INIT_RXQ_IN_LEN(num) (28+8*(num)) 11355 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_NUM(len) (((len)-28)/8) 11356 /* Size, in entries */ 11357 #define MC_CMD_INIT_RXQ_IN_SIZE_OFST 0 11358 #define MC_CMD_INIT_RXQ_IN_SIZE_LEN 4 11359 /* The EVQ to send events to. This is an index originally specified to INIT_EVQ 11360 */ 11361 #define MC_CMD_INIT_RXQ_IN_TARGET_EVQ_OFST 4 11362 #define MC_CMD_INIT_RXQ_IN_TARGET_EVQ_LEN 4 11363 /* The value to put in the event data. Check hardware spec. for valid range. */ 11364 #define MC_CMD_INIT_RXQ_IN_LABEL_OFST 8 11365 #define MC_CMD_INIT_RXQ_IN_LABEL_LEN 4 11366 /* Desired instance. Must be set to a specific instance, which is a function 11367 * local queue index. The calling client must be the currently-assigned user of 11368 * this VI (see MC_CMD_SET_VI_USER). 11369 */ 11370 #define MC_CMD_INIT_RXQ_IN_INSTANCE_OFST 12 11371 #define MC_CMD_INIT_RXQ_IN_INSTANCE_LEN 4 11372 /* There will be more flags here. */ 11373 #define MC_CMD_INIT_RXQ_IN_FLAGS_OFST 16 11374 #define MC_CMD_INIT_RXQ_IN_FLAGS_LEN 4 11375 #define MC_CMD_INIT_RXQ_IN_FLAG_BUFF_MODE_OFST 16 11376 #define MC_CMD_INIT_RXQ_IN_FLAG_BUFF_MODE_LBN 0 11377 #define MC_CMD_INIT_RXQ_IN_FLAG_BUFF_MODE_WIDTH 1 11378 #define MC_CMD_INIT_RXQ_IN_FLAG_HDR_SPLIT_OFST 16 11379 #define MC_CMD_INIT_RXQ_IN_FLAG_HDR_SPLIT_LBN 1 11380 #define MC_CMD_INIT_RXQ_IN_FLAG_HDR_SPLIT_WIDTH 1 11381 #define MC_CMD_INIT_RXQ_IN_FLAG_TIMESTAMP_OFST 16 11382 #define MC_CMD_INIT_RXQ_IN_FLAG_TIMESTAMP_LBN 2 11383 #define MC_CMD_INIT_RXQ_IN_FLAG_TIMESTAMP_WIDTH 1 11384 #define MC_CMD_INIT_RXQ_IN_CRC_MODE_OFST 16 11385 #define MC_CMD_INIT_RXQ_IN_CRC_MODE_LBN 3 11386 #define MC_CMD_INIT_RXQ_IN_CRC_MODE_WIDTH 4 11387 #define MC_CMD_INIT_RXQ_IN_FLAG_CHAIN_OFST 16 11388 #define MC_CMD_INIT_RXQ_IN_FLAG_CHAIN_LBN 7 11389 #define MC_CMD_INIT_RXQ_IN_FLAG_CHAIN_WIDTH 1 11390 #define MC_CMD_INIT_RXQ_IN_FLAG_PREFIX_OFST 16 11391 #define MC_CMD_INIT_RXQ_IN_FLAG_PREFIX_LBN 8 11392 #define MC_CMD_INIT_RXQ_IN_FLAG_PREFIX_WIDTH 1 11393 #define MC_CMD_INIT_RXQ_IN_FLAG_DISABLE_SCATTER_OFST 16 11394 #define MC_CMD_INIT_RXQ_IN_FLAG_DISABLE_SCATTER_LBN 9 11395 #define MC_CMD_INIT_RXQ_IN_FLAG_DISABLE_SCATTER_WIDTH 1 11396 #define MC_CMD_INIT_RXQ_IN_UNUSED_OFST 16 11397 #define MC_CMD_INIT_RXQ_IN_UNUSED_LBN 10 11398 #define MC_CMD_INIT_RXQ_IN_UNUSED_WIDTH 1 11399 /* Owner ID to use if in buffer mode (zero if physical) */ 11400 #define MC_CMD_INIT_RXQ_IN_OWNER_ID_OFST 20 11401 #define MC_CMD_INIT_RXQ_IN_OWNER_ID_LEN 4 11402 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 11403 #define MC_CMD_INIT_RXQ_IN_PORT_ID_OFST 24 11404 #define MC_CMD_INIT_RXQ_IN_PORT_ID_LEN 4 11405 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 11406 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_OFST 28 11407 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LEN 8 11408 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_OFST 28 11409 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_LEN 4 11410 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_LBN 224 11411 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_WIDTH 32 11412 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_OFST 32 11413 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_LEN 4 11414 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_LBN 256 11415 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_WIDTH 32 11416 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_MINNUM 1 11417 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_MAXNUM 28 11418 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_MAXNUM_MCDI2 124 11419 11420 /* MC_CMD_INIT_RXQ_EXT_IN msgrequest: Extended RXQ_INIT with additional mode 11421 * flags 11422 */ 11423 #define MC_CMD_INIT_RXQ_EXT_IN_LEN 544 11424 /* Size, in entries */ 11425 #define MC_CMD_INIT_RXQ_EXT_IN_SIZE_OFST 0 11426 #define MC_CMD_INIT_RXQ_EXT_IN_SIZE_LEN 4 11427 /* The EVQ to send events to. This is an index originally specified to 11428 * INIT_EVQ. If DMA_MODE == PACKED_STREAM this must be equal to INSTANCE. 11429 */ 11430 #define MC_CMD_INIT_RXQ_EXT_IN_TARGET_EVQ_OFST 4 11431 #define MC_CMD_INIT_RXQ_EXT_IN_TARGET_EVQ_LEN 4 11432 /* The value to put in the event data. Check hardware spec. for valid range. 11433 * This field is ignored if DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER or DMA_MODE 11434 * == PACKED_STREAM. 11435 */ 11436 #define MC_CMD_INIT_RXQ_EXT_IN_LABEL_OFST 8 11437 #define MC_CMD_INIT_RXQ_EXT_IN_LABEL_LEN 4 11438 /* Desired instance. Must be set to a specific instance, which is a function 11439 * local queue index. The calling client must be the currently-assigned user of 11440 * this VI (see MC_CMD_SET_VI_USER). 11441 */ 11442 #define MC_CMD_INIT_RXQ_EXT_IN_INSTANCE_OFST 12 11443 #define MC_CMD_INIT_RXQ_EXT_IN_INSTANCE_LEN 4 11444 /* There will be more flags here. */ 11445 #define MC_CMD_INIT_RXQ_EXT_IN_FLAGS_OFST 16 11446 #define MC_CMD_INIT_RXQ_EXT_IN_FLAGS_LEN 4 11447 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_BUFF_MODE_OFST 16 11448 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_BUFF_MODE_LBN 0 11449 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_BUFF_MODE_WIDTH 1 11450 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_HDR_SPLIT_OFST 16 11451 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_HDR_SPLIT_LBN 1 11452 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_HDR_SPLIT_WIDTH 1 11453 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_TIMESTAMP_OFST 16 11454 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_TIMESTAMP_LBN 2 11455 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_TIMESTAMP_WIDTH 1 11456 #define MC_CMD_INIT_RXQ_EXT_IN_CRC_MODE_OFST 16 11457 #define MC_CMD_INIT_RXQ_EXT_IN_CRC_MODE_LBN 3 11458 #define MC_CMD_INIT_RXQ_EXT_IN_CRC_MODE_WIDTH 4 11459 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_CHAIN_OFST 16 11460 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_CHAIN_LBN 7 11461 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_CHAIN_WIDTH 1 11462 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_PREFIX_OFST 16 11463 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_PREFIX_LBN 8 11464 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_PREFIX_WIDTH 1 11465 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_DISABLE_SCATTER_OFST 16 11466 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_DISABLE_SCATTER_LBN 9 11467 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_DISABLE_SCATTER_WIDTH 1 11468 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_MODE_OFST 16 11469 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_MODE_LBN 10 11470 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_MODE_WIDTH 4 11471 /* enum: One packet per descriptor (for normal networking) */ 11472 #define MC_CMD_INIT_RXQ_EXT_IN_SINGLE_PACKET 0x0 11473 /* enum: Pack multiple packets into large descriptors (for SolarCapture) */ 11474 #define MC_CMD_INIT_RXQ_EXT_IN_PACKED_STREAM 0x1 11475 /* enum: Pack multiple packets into large descriptors using the format designed 11476 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with 11477 * multiple fixed-size packet buffers within each bucket. For a full 11478 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath 11479 * firmware. 11480 */ 11481 #define MC_CMD_INIT_RXQ_EXT_IN_EQUAL_STRIDE_SUPER_BUFFER 0x2 11482 /* enum: Deprecated name for EQUAL_STRIDE_SUPER_BUFFER. */ 11483 #define MC_CMD_INIT_RXQ_EXT_IN_EQUAL_STRIDE_PACKED_STREAM 0x2 11484 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SNAPSHOT_MODE_OFST 16 11485 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SNAPSHOT_MODE_LBN 14 11486 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SNAPSHOT_MODE_WIDTH 1 11487 #define MC_CMD_INIT_RXQ_EXT_IN_PACKED_STREAM_BUFF_SIZE_OFST 16 11488 #define MC_CMD_INIT_RXQ_EXT_IN_PACKED_STREAM_BUFF_SIZE_LBN 15 11489 #define MC_CMD_INIT_RXQ_EXT_IN_PACKED_STREAM_BUFF_SIZE_WIDTH 3 11490 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_1M 0x0 /* enum */ 11491 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_512K 0x1 /* enum */ 11492 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_256K 0x2 /* enum */ 11493 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_128K 0x3 /* enum */ 11494 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_64K 0x4 /* enum */ 11495 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_WANT_OUTER_CLASSES_OFST 16 11496 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_WANT_OUTER_CLASSES_LBN 18 11497 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1 11498 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_FORCE_EV_MERGING_OFST 16 11499 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_FORCE_EV_MERGING_LBN 19 11500 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_FORCE_EV_MERGING_WIDTH 1 11501 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_NO_CONT_EV_OFST 16 11502 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_NO_CONT_EV_LBN 20 11503 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_NO_CONT_EV_WIDTH 1 11504 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SUPPRESS_RX_EVENTS_OFST 16 11505 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SUPPRESS_RX_EVENTS_LBN 21 11506 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SUPPRESS_RX_EVENTS_WIDTH 1 11507 /* Owner ID to use if in buffer mode (zero if physical) */ 11508 #define MC_CMD_INIT_RXQ_EXT_IN_OWNER_ID_OFST 20 11509 #define MC_CMD_INIT_RXQ_EXT_IN_OWNER_ID_LEN 4 11510 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 11511 #define MC_CMD_INIT_RXQ_EXT_IN_PORT_ID_OFST 24 11512 #define MC_CMD_INIT_RXQ_EXT_IN_PORT_ID_LEN 4 11513 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 11514 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_OFST 28 11515 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LEN 8 11516 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_OFST 28 11517 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_LEN 4 11518 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_LBN 224 11519 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_WIDTH 32 11520 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_OFST 32 11521 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_LEN 4 11522 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_LBN 256 11523 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_WIDTH 32 11524 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_MINNUM 0 11525 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_MAXNUM 64 11526 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_MAXNUM_MCDI2 64 11527 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 11528 #define MC_CMD_INIT_RXQ_EXT_IN_SNAPSHOT_LENGTH_OFST 540 11529 #define MC_CMD_INIT_RXQ_EXT_IN_SNAPSHOT_LENGTH_LEN 4 11530 11531 /* MC_CMD_INIT_RXQ_V3_IN msgrequest */ 11532 #define MC_CMD_INIT_RXQ_V3_IN_LEN 560 11533 /* Size, in entries */ 11534 #define MC_CMD_INIT_RXQ_V3_IN_SIZE_OFST 0 11535 #define MC_CMD_INIT_RXQ_V3_IN_SIZE_LEN 4 11536 /* The EVQ to send events to. This is an index originally specified to 11537 * INIT_EVQ. If DMA_MODE == PACKED_STREAM this must be equal to INSTANCE. 11538 */ 11539 #define MC_CMD_INIT_RXQ_V3_IN_TARGET_EVQ_OFST 4 11540 #define MC_CMD_INIT_RXQ_V3_IN_TARGET_EVQ_LEN 4 11541 /* The value to put in the event data. Check hardware spec. for valid range. 11542 * This field is ignored if DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER or DMA_MODE 11543 * == PACKED_STREAM. 11544 */ 11545 #define MC_CMD_INIT_RXQ_V3_IN_LABEL_OFST 8 11546 #define MC_CMD_INIT_RXQ_V3_IN_LABEL_LEN 4 11547 /* Desired instance. Must be set to a specific instance, which is a function 11548 * local queue index. The calling client must be the currently-assigned user of 11549 * this VI (see MC_CMD_SET_VI_USER). 11550 */ 11551 #define MC_CMD_INIT_RXQ_V3_IN_INSTANCE_OFST 12 11552 #define MC_CMD_INIT_RXQ_V3_IN_INSTANCE_LEN 4 11553 /* There will be more flags here. */ 11554 #define MC_CMD_INIT_RXQ_V3_IN_FLAGS_OFST 16 11555 #define MC_CMD_INIT_RXQ_V3_IN_FLAGS_LEN 4 11556 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_BUFF_MODE_OFST 16 11557 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_BUFF_MODE_LBN 0 11558 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_BUFF_MODE_WIDTH 1 11559 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_HDR_SPLIT_OFST 16 11560 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_HDR_SPLIT_LBN 1 11561 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_HDR_SPLIT_WIDTH 1 11562 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_TIMESTAMP_OFST 16 11563 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_TIMESTAMP_LBN 2 11564 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_TIMESTAMP_WIDTH 1 11565 #define MC_CMD_INIT_RXQ_V3_IN_CRC_MODE_OFST 16 11566 #define MC_CMD_INIT_RXQ_V3_IN_CRC_MODE_LBN 3 11567 #define MC_CMD_INIT_RXQ_V3_IN_CRC_MODE_WIDTH 4 11568 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_CHAIN_OFST 16 11569 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_CHAIN_LBN 7 11570 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_CHAIN_WIDTH 1 11571 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_PREFIX_OFST 16 11572 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_PREFIX_LBN 8 11573 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_PREFIX_WIDTH 1 11574 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_DISABLE_SCATTER_OFST 16 11575 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_DISABLE_SCATTER_LBN 9 11576 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_DISABLE_SCATTER_WIDTH 1 11577 #define MC_CMD_INIT_RXQ_V3_IN_DMA_MODE_OFST 16 11578 #define MC_CMD_INIT_RXQ_V3_IN_DMA_MODE_LBN 10 11579 #define MC_CMD_INIT_RXQ_V3_IN_DMA_MODE_WIDTH 4 11580 /* enum: One packet per descriptor (for normal networking) */ 11581 #define MC_CMD_INIT_RXQ_V3_IN_SINGLE_PACKET 0x0 11582 /* enum: Pack multiple packets into large descriptors (for SolarCapture) */ 11583 #define MC_CMD_INIT_RXQ_V3_IN_PACKED_STREAM 0x1 11584 /* enum: Pack multiple packets into large descriptors using the format designed 11585 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with 11586 * multiple fixed-size packet buffers within each bucket. For a full 11587 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath 11588 * firmware. 11589 */ 11590 #define MC_CMD_INIT_RXQ_V3_IN_EQUAL_STRIDE_SUPER_BUFFER 0x2 11591 /* enum: Deprecated name for EQUAL_STRIDE_SUPER_BUFFER. */ 11592 #define MC_CMD_INIT_RXQ_V3_IN_EQUAL_STRIDE_PACKED_STREAM 0x2 11593 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SNAPSHOT_MODE_OFST 16 11594 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SNAPSHOT_MODE_LBN 14 11595 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SNAPSHOT_MODE_WIDTH 1 11596 #define MC_CMD_INIT_RXQ_V3_IN_PACKED_STREAM_BUFF_SIZE_OFST 16 11597 #define MC_CMD_INIT_RXQ_V3_IN_PACKED_STREAM_BUFF_SIZE_LBN 15 11598 #define MC_CMD_INIT_RXQ_V3_IN_PACKED_STREAM_BUFF_SIZE_WIDTH 3 11599 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_1M 0x0 /* enum */ 11600 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_512K 0x1 /* enum */ 11601 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_256K 0x2 /* enum */ 11602 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_128K 0x3 /* enum */ 11603 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_64K 0x4 /* enum */ 11604 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_WANT_OUTER_CLASSES_OFST 16 11605 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_WANT_OUTER_CLASSES_LBN 18 11606 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1 11607 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_FORCE_EV_MERGING_OFST 16 11608 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_FORCE_EV_MERGING_LBN 19 11609 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_FORCE_EV_MERGING_WIDTH 1 11610 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_NO_CONT_EV_OFST 16 11611 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_NO_CONT_EV_LBN 20 11612 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_NO_CONT_EV_WIDTH 1 11613 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SUPPRESS_RX_EVENTS_OFST 16 11614 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SUPPRESS_RX_EVENTS_LBN 21 11615 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SUPPRESS_RX_EVENTS_WIDTH 1 11616 /* Owner ID to use if in buffer mode (zero if physical) */ 11617 #define MC_CMD_INIT_RXQ_V3_IN_OWNER_ID_OFST 20 11618 #define MC_CMD_INIT_RXQ_V3_IN_OWNER_ID_LEN 4 11619 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 11620 #define MC_CMD_INIT_RXQ_V3_IN_PORT_ID_OFST 24 11621 #define MC_CMD_INIT_RXQ_V3_IN_PORT_ID_LEN 4 11622 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 11623 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_OFST 28 11624 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LEN 8 11625 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_OFST 28 11626 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_LEN 4 11627 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_LBN 224 11628 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_WIDTH 32 11629 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_OFST 32 11630 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_LEN 4 11631 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_LBN 256 11632 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_WIDTH 32 11633 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_MINNUM 0 11634 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_MAXNUM 64 11635 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_MAXNUM_MCDI2 64 11636 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 11637 #define MC_CMD_INIT_RXQ_V3_IN_SNAPSHOT_LENGTH_OFST 540 11638 #define MC_CMD_INIT_RXQ_V3_IN_SNAPSHOT_LENGTH_LEN 4 11639 /* The number of packet buffers that will be contained within each 11640 * EQUAL_STRIDE_SUPER_BUFFER format bucket supplied by the driver. This field 11641 * is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 11642 */ 11643 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_BUFFERS_PER_BUCKET_OFST 544 11644 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_BUFFERS_PER_BUCKET_LEN 4 11645 /* The length in bytes of the area in each packet buffer that can be written to 11646 * by the adapter. This is used to store the packet prefix and the packet 11647 * payload. This length does not include any end padding added by the driver. 11648 * This field is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 11649 */ 11650 #define MC_CMD_INIT_RXQ_V3_IN_ES_MAX_DMA_LEN_OFST 548 11651 #define MC_CMD_INIT_RXQ_V3_IN_ES_MAX_DMA_LEN_LEN 4 11652 /* The length in bytes of a single packet buffer within a 11653 * EQUAL_STRIDE_SUPER_BUFFER format bucket. This field is ignored unless 11654 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 11655 */ 11656 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_STRIDE_OFST 552 11657 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_STRIDE_LEN 4 11658 /* The maximum time in nanoseconds that the datapath will be backpressured if 11659 * there are no RX descriptors available. If the timeout is reached and there 11660 * are still no descriptors then the packet will be dropped. A timeout of 0 11661 * means the datapath will never be blocked. This field is ignored unless 11662 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 11663 */ 11664 #define MC_CMD_INIT_RXQ_V3_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_OFST 556 11665 #define MC_CMD_INIT_RXQ_V3_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_LEN 4 11666 11667 /* MC_CMD_INIT_RXQ_V4_IN msgrequest: INIT_RXQ request with new field required 11668 * for systems with a QDMA (currently, Riverhead) 11669 */ 11670 #define MC_CMD_INIT_RXQ_V4_IN_LEN 564 11671 /* Size, in entries */ 11672 #define MC_CMD_INIT_RXQ_V4_IN_SIZE_OFST 0 11673 #define MC_CMD_INIT_RXQ_V4_IN_SIZE_LEN 4 11674 /* The EVQ to send events to. This is an index originally specified to 11675 * INIT_EVQ. If DMA_MODE == PACKED_STREAM this must be equal to INSTANCE. 11676 */ 11677 #define MC_CMD_INIT_RXQ_V4_IN_TARGET_EVQ_OFST 4 11678 #define MC_CMD_INIT_RXQ_V4_IN_TARGET_EVQ_LEN 4 11679 /* The value to put in the event data. Check hardware spec. for valid range. 11680 * This field is ignored if DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER or DMA_MODE 11681 * == PACKED_STREAM. 11682 */ 11683 #define MC_CMD_INIT_RXQ_V4_IN_LABEL_OFST 8 11684 #define MC_CMD_INIT_RXQ_V4_IN_LABEL_LEN 4 11685 /* Desired instance. Must be set to a specific instance, which is a function 11686 * local queue index. The calling client must be the currently-assigned user of 11687 * this VI (see MC_CMD_SET_VI_USER). 11688 */ 11689 #define MC_CMD_INIT_RXQ_V4_IN_INSTANCE_OFST 12 11690 #define MC_CMD_INIT_RXQ_V4_IN_INSTANCE_LEN 4 11691 /* There will be more flags here. */ 11692 #define MC_CMD_INIT_RXQ_V4_IN_FLAGS_OFST 16 11693 #define MC_CMD_INIT_RXQ_V4_IN_FLAGS_LEN 4 11694 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_BUFF_MODE_OFST 16 11695 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_BUFF_MODE_LBN 0 11696 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_BUFF_MODE_WIDTH 1 11697 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_HDR_SPLIT_OFST 16 11698 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_HDR_SPLIT_LBN 1 11699 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_HDR_SPLIT_WIDTH 1 11700 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_TIMESTAMP_OFST 16 11701 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_TIMESTAMP_LBN 2 11702 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_TIMESTAMP_WIDTH 1 11703 #define MC_CMD_INIT_RXQ_V4_IN_CRC_MODE_OFST 16 11704 #define MC_CMD_INIT_RXQ_V4_IN_CRC_MODE_LBN 3 11705 #define MC_CMD_INIT_RXQ_V4_IN_CRC_MODE_WIDTH 4 11706 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_CHAIN_OFST 16 11707 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_CHAIN_LBN 7 11708 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_CHAIN_WIDTH 1 11709 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_PREFIX_OFST 16 11710 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_PREFIX_LBN 8 11711 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_PREFIX_WIDTH 1 11712 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_DISABLE_SCATTER_OFST 16 11713 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_DISABLE_SCATTER_LBN 9 11714 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_DISABLE_SCATTER_WIDTH 1 11715 #define MC_CMD_INIT_RXQ_V4_IN_DMA_MODE_OFST 16 11716 #define MC_CMD_INIT_RXQ_V4_IN_DMA_MODE_LBN 10 11717 #define MC_CMD_INIT_RXQ_V4_IN_DMA_MODE_WIDTH 4 11718 /* enum: One packet per descriptor (for normal networking) */ 11719 #define MC_CMD_INIT_RXQ_V4_IN_SINGLE_PACKET 0x0 11720 /* enum: Pack multiple packets into large descriptors (for SolarCapture) */ 11721 #define MC_CMD_INIT_RXQ_V4_IN_PACKED_STREAM 0x1 11722 /* enum: Pack multiple packets into large descriptors using the format designed 11723 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with 11724 * multiple fixed-size packet buffers within each bucket. For a full 11725 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath 11726 * firmware. 11727 */ 11728 #define MC_CMD_INIT_RXQ_V4_IN_EQUAL_STRIDE_SUPER_BUFFER 0x2 11729 /* enum: Deprecated name for EQUAL_STRIDE_SUPER_BUFFER. */ 11730 #define MC_CMD_INIT_RXQ_V4_IN_EQUAL_STRIDE_PACKED_STREAM 0x2 11731 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SNAPSHOT_MODE_OFST 16 11732 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SNAPSHOT_MODE_LBN 14 11733 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SNAPSHOT_MODE_WIDTH 1 11734 #define MC_CMD_INIT_RXQ_V4_IN_PACKED_STREAM_BUFF_SIZE_OFST 16 11735 #define MC_CMD_INIT_RXQ_V4_IN_PACKED_STREAM_BUFF_SIZE_LBN 15 11736 #define MC_CMD_INIT_RXQ_V4_IN_PACKED_STREAM_BUFF_SIZE_WIDTH 3 11737 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_1M 0x0 /* enum */ 11738 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_512K 0x1 /* enum */ 11739 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_256K 0x2 /* enum */ 11740 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_128K 0x3 /* enum */ 11741 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_64K 0x4 /* enum */ 11742 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_WANT_OUTER_CLASSES_OFST 16 11743 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_WANT_OUTER_CLASSES_LBN 18 11744 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1 11745 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_FORCE_EV_MERGING_OFST 16 11746 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_FORCE_EV_MERGING_LBN 19 11747 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_FORCE_EV_MERGING_WIDTH 1 11748 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_NO_CONT_EV_OFST 16 11749 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_NO_CONT_EV_LBN 20 11750 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_NO_CONT_EV_WIDTH 1 11751 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SUPPRESS_RX_EVENTS_OFST 16 11752 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SUPPRESS_RX_EVENTS_LBN 21 11753 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SUPPRESS_RX_EVENTS_WIDTH 1 11754 /* Owner ID to use if in buffer mode (zero if physical) */ 11755 #define MC_CMD_INIT_RXQ_V4_IN_OWNER_ID_OFST 20 11756 #define MC_CMD_INIT_RXQ_V4_IN_OWNER_ID_LEN 4 11757 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 11758 #define MC_CMD_INIT_RXQ_V4_IN_PORT_ID_OFST 24 11759 #define MC_CMD_INIT_RXQ_V4_IN_PORT_ID_LEN 4 11760 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 11761 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_OFST 28 11762 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LEN 8 11763 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_OFST 28 11764 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_LEN 4 11765 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_LBN 224 11766 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_WIDTH 32 11767 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_OFST 32 11768 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_LEN 4 11769 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_LBN 256 11770 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_WIDTH 32 11771 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_MINNUM 0 11772 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_MAXNUM 64 11773 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_MAXNUM_MCDI2 64 11774 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 11775 #define MC_CMD_INIT_RXQ_V4_IN_SNAPSHOT_LENGTH_OFST 540 11776 #define MC_CMD_INIT_RXQ_V4_IN_SNAPSHOT_LENGTH_LEN 4 11777 /* The number of packet buffers that will be contained within each 11778 * EQUAL_STRIDE_SUPER_BUFFER format bucket supplied by the driver. This field 11779 * is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 11780 */ 11781 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_BUFFERS_PER_BUCKET_OFST 544 11782 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_BUFFERS_PER_BUCKET_LEN 4 11783 /* The length in bytes of the area in each packet buffer that can be written to 11784 * by the adapter. This is used to store the packet prefix and the packet 11785 * payload. This length does not include any end padding added by the driver. 11786 * This field is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 11787 */ 11788 #define MC_CMD_INIT_RXQ_V4_IN_ES_MAX_DMA_LEN_OFST 548 11789 #define MC_CMD_INIT_RXQ_V4_IN_ES_MAX_DMA_LEN_LEN 4 11790 /* The length in bytes of a single packet buffer within a 11791 * EQUAL_STRIDE_SUPER_BUFFER format bucket. This field is ignored unless 11792 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 11793 */ 11794 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_STRIDE_OFST 552 11795 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_STRIDE_LEN 4 11796 /* The maximum time in nanoseconds that the datapath will be backpressured if 11797 * there are no RX descriptors available. If the timeout is reached and there 11798 * are still no descriptors then the packet will be dropped. A timeout of 0 11799 * means the datapath will never be blocked. This field is ignored unless 11800 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 11801 */ 11802 #define MC_CMD_INIT_RXQ_V4_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_OFST 556 11803 #define MC_CMD_INIT_RXQ_V4_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_LEN 4 11804 /* V4 message data */ 11805 #define MC_CMD_INIT_RXQ_V4_IN_V4_DATA_OFST 560 11806 #define MC_CMD_INIT_RXQ_V4_IN_V4_DATA_LEN 4 11807 /* Size in bytes of buffers attached to descriptors posted to this queue. Set 11808 * to zero if using this message on non-QDMA based platforms. Currently in 11809 * Riverhead there is a global limit of eight different buffer sizes across all 11810 * active queues. A 2KB and 4KB buffer is guaranteed to be available, but a 11811 * request for a different buffer size will fail if there are already eight 11812 * other buffer sizes in use. In future Riverhead this limit will go away and 11813 * any size will be accepted. 11814 */ 11815 #define MC_CMD_INIT_RXQ_V4_IN_BUFFER_SIZE_BYTES_OFST 560 11816 #define MC_CMD_INIT_RXQ_V4_IN_BUFFER_SIZE_BYTES_LEN 4 11817 11818 /* MC_CMD_INIT_RXQ_V5_IN msgrequest: INIT_RXQ request with ability to request a 11819 * different RX packet prefix 11820 */ 11821 #define MC_CMD_INIT_RXQ_V5_IN_LEN 568 11822 /* Size, in entries */ 11823 #define MC_CMD_INIT_RXQ_V5_IN_SIZE_OFST 0 11824 #define MC_CMD_INIT_RXQ_V5_IN_SIZE_LEN 4 11825 /* The EVQ to send events to. This is an index originally specified to 11826 * INIT_EVQ. If DMA_MODE == PACKED_STREAM this must be equal to INSTANCE. 11827 */ 11828 #define MC_CMD_INIT_RXQ_V5_IN_TARGET_EVQ_OFST 4 11829 #define MC_CMD_INIT_RXQ_V5_IN_TARGET_EVQ_LEN 4 11830 /* The value to put in the event data. Check hardware spec. for valid range. 11831 * This field is ignored if DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER or DMA_MODE 11832 * == PACKED_STREAM. 11833 */ 11834 #define MC_CMD_INIT_RXQ_V5_IN_LABEL_OFST 8 11835 #define MC_CMD_INIT_RXQ_V5_IN_LABEL_LEN 4 11836 /* Desired instance. Must be set to a specific instance, which is a function 11837 * local queue index. The calling client must be the currently-assigned user of 11838 * this VI (see MC_CMD_SET_VI_USER). 11839 */ 11840 #define MC_CMD_INIT_RXQ_V5_IN_INSTANCE_OFST 12 11841 #define MC_CMD_INIT_RXQ_V5_IN_INSTANCE_LEN 4 11842 /* There will be more flags here. */ 11843 #define MC_CMD_INIT_RXQ_V5_IN_FLAGS_OFST 16 11844 #define MC_CMD_INIT_RXQ_V5_IN_FLAGS_LEN 4 11845 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_BUFF_MODE_OFST 16 11846 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_BUFF_MODE_LBN 0 11847 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_BUFF_MODE_WIDTH 1 11848 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_HDR_SPLIT_OFST 16 11849 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_HDR_SPLIT_LBN 1 11850 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_HDR_SPLIT_WIDTH 1 11851 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_TIMESTAMP_OFST 16 11852 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_TIMESTAMP_LBN 2 11853 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_TIMESTAMP_WIDTH 1 11854 #define MC_CMD_INIT_RXQ_V5_IN_CRC_MODE_OFST 16 11855 #define MC_CMD_INIT_RXQ_V5_IN_CRC_MODE_LBN 3 11856 #define MC_CMD_INIT_RXQ_V5_IN_CRC_MODE_WIDTH 4 11857 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_CHAIN_OFST 16 11858 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_CHAIN_LBN 7 11859 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_CHAIN_WIDTH 1 11860 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_PREFIX_OFST 16 11861 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_PREFIX_LBN 8 11862 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_PREFIX_WIDTH 1 11863 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_DISABLE_SCATTER_OFST 16 11864 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_DISABLE_SCATTER_LBN 9 11865 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_DISABLE_SCATTER_WIDTH 1 11866 #define MC_CMD_INIT_RXQ_V5_IN_DMA_MODE_OFST 16 11867 #define MC_CMD_INIT_RXQ_V5_IN_DMA_MODE_LBN 10 11868 #define MC_CMD_INIT_RXQ_V5_IN_DMA_MODE_WIDTH 4 11869 /* enum: One packet per descriptor (for normal networking) */ 11870 #define MC_CMD_INIT_RXQ_V5_IN_SINGLE_PACKET 0x0 11871 /* enum: Pack multiple packets into large descriptors (for SolarCapture) */ 11872 #define MC_CMD_INIT_RXQ_V5_IN_PACKED_STREAM 0x1 11873 /* enum: Pack multiple packets into large descriptors using the format designed 11874 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with 11875 * multiple fixed-size packet buffers within each bucket. For a full 11876 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath 11877 * firmware. 11878 */ 11879 #define MC_CMD_INIT_RXQ_V5_IN_EQUAL_STRIDE_SUPER_BUFFER 0x2 11880 /* enum: Deprecated name for EQUAL_STRIDE_SUPER_BUFFER. */ 11881 #define MC_CMD_INIT_RXQ_V5_IN_EQUAL_STRIDE_PACKED_STREAM 0x2 11882 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SNAPSHOT_MODE_OFST 16 11883 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SNAPSHOT_MODE_LBN 14 11884 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SNAPSHOT_MODE_WIDTH 1 11885 #define MC_CMD_INIT_RXQ_V5_IN_PACKED_STREAM_BUFF_SIZE_OFST 16 11886 #define MC_CMD_INIT_RXQ_V5_IN_PACKED_STREAM_BUFF_SIZE_LBN 15 11887 #define MC_CMD_INIT_RXQ_V5_IN_PACKED_STREAM_BUFF_SIZE_WIDTH 3 11888 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_1M 0x0 /* enum */ 11889 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_512K 0x1 /* enum */ 11890 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_256K 0x2 /* enum */ 11891 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_128K 0x3 /* enum */ 11892 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_64K 0x4 /* enum */ 11893 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_WANT_OUTER_CLASSES_OFST 16 11894 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_WANT_OUTER_CLASSES_LBN 18 11895 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1 11896 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_FORCE_EV_MERGING_OFST 16 11897 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_FORCE_EV_MERGING_LBN 19 11898 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_FORCE_EV_MERGING_WIDTH 1 11899 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_NO_CONT_EV_OFST 16 11900 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_NO_CONT_EV_LBN 20 11901 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_NO_CONT_EV_WIDTH 1 11902 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SUPPRESS_RX_EVENTS_OFST 16 11903 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SUPPRESS_RX_EVENTS_LBN 21 11904 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SUPPRESS_RX_EVENTS_WIDTH 1 11905 /* Owner ID to use if in buffer mode (zero if physical) */ 11906 #define MC_CMD_INIT_RXQ_V5_IN_OWNER_ID_OFST 20 11907 #define MC_CMD_INIT_RXQ_V5_IN_OWNER_ID_LEN 4 11908 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 11909 #define MC_CMD_INIT_RXQ_V5_IN_PORT_ID_OFST 24 11910 #define MC_CMD_INIT_RXQ_V5_IN_PORT_ID_LEN 4 11911 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 11912 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_OFST 28 11913 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LEN 8 11914 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_OFST 28 11915 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_LEN 4 11916 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_LBN 224 11917 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_WIDTH 32 11918 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_OFST 32 11919 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_LEN 4 11920 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_LBN 256 11921 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_WIDTH 32 11922 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_MINNUM 0 11923 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_MAXNUM 64 11924 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_MAXNUM_MCDI2 64 11925 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 11926 #define MC_CMD_INIT_RXQ_V5_IN_SNAPSHOT_LENGTH_OFST 540 11927 #define MC_CMD_INIT_RXQ_V5_IN_SNAPSHOT_LENGTH_LEN 4 11928 /* The number of packet buffers that will be contained within each 11929 * EQUAL_STRIDE_SUPER_BUFFER format bucket supplied by the driver. This field 11930 * is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 11931 */ 11932 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_BUFFERS_PER_BUCKET_OFST 544 11933 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_BUFFERS_PER_BUCKET_LEN 4 11934 /* The length in bytes of the area in each packet buffer that can be written to 11935 * by the adapter. This is used to store the packet prefix and the packet 11936 * payload. This length does not include any end padding added by the driver. 11937 * This field is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 11938 */ 11939 #define MC_CMD_INIT_RXQ_V5_IN_ES_MAX_DMA_LEN_OFST 548 11940 #define MC_CMD_INIT_RXQ_V5_IN_ES_MAX_DMA_LEN_LEN 4 11941 /* The length in bytes of a single packet buffer within a 11942 * EQUAL_STRIDE_SUPER_BUFFER format bucket. This field is ignored unless 11943 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 11944 */ 11945 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_STRIDE_OFST 552 11946 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_STRIDE_LEN 4 11947 /* The maximum time in nanoseconds that the datapath will be backpressured if 11948 * there are no RX descriptors available. If the timeout is reached and there 11949 * are still no descriptors then the packet will be dropped. A timeout of 0 11950 * means the datapath will never be blocked. This field is ignored unless 11951 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 11952 */ 11953 #define MC_CMD_INIT_RXQ_V5_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_OFST 556 11954 #define MC_CMD_INIT_RXQ_V5_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_LEN 4 11955 /* V4 message data */ 11956 #define MC_CMD_INIT_RXQ_V5_IN_V4_DATA_OFST 560 11957 #define MC_CMD_INIT_RXQ_V5_IN_V4_DATA_LEN 4 11958 /* Size in bytes of buffers attached to descriptors posted to this queue. Set 11959 * to zero if using this message on non-QDMA based platforms. Currently in 11960 * Riverhead there is a global limit of eight different buffer sizes across all 11961 * active queues. A 2KB and 4KB buffer is guaranteed to be available, but a 11962 * request for a different buffer size will fail if there are already eight 11963 * other buffer sizes in use. In future Riverhead this limit will go away and 11964 * any size will be accepted. 11965 */ 11966 #define MC_CMD_INIT_RXQ_V5_IN_BUFFER_SIZE_BYTES_OFST 560 11967 #define MC_CMD_INIT_RXQ_V5_IN_BUFFER_SIZE_BYTES_LEN 4 11968 /* Prefix id for the RX prefix format to use on packets delivered this queue. 11969 * Zero is always a valid prefix id and means the default prefix format 11970 * documented for the platform. Other prefix ids can be obtained by calling 11971 * MC_CMD_GET_RX_PREFIX_ID with a requested set of prefix fields. 11972 */ 11973 #define MC_CMD_INIT_RXQ_V5_IN_RX_PREFIX_ID_OFST 564 11974 #define MC_CMD_INIT_RXQ_V5_IN_RX_PREFIX_ID_LEN 4 11975 11976 /* MC_CMD_INIT_RXQ_OUT msgresponse */ 11977 #define MC_CMD_INIT_RXQ_OUT_LEN 0 11978 11979 /* MC_CMD_INIT_RXQ_EXT_OUT msgresponse */ 11980 #define MC_CMD_INIT_RXQ_EXT_OUT_LEN 0 11981 11982 /* MC_CMD_INIT_RXQ_V3_OUT msgresponse */ 11983 #define MC_CMD_INIT_RXQ_V3_OUT_LEN 0 11984 11985 /* MC_CMD_INIT_RXQ_V4_OUT msgresponse */ 11986 #define MC_CMD_INIT_RXQ_V4_OUT_LEN 0 11987 11988 /* MC_CMD_INIT_RXQ_V5_OUT msgresponse */ 11989 #define MC_CMD_INIT_RXQ_V5_OUT_LEN 0 11990 11991 11992 /***********************************/ 11993 /* MC_CMD_INIT_TXQ 11994 */ 11995 #define MC_CMD_INIT_TXQ 0x82 11996 #undef MC_CMD_0x82_PRIVILEGE_CTG 11997 11998 #define MC_CMD_0x82_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11999 12000 /* MC_CMD_INIT_TXQ_IN msgrequest: Legacy INIT_TXQ request. Use extended version 12001 * in new code. 12002 */ 12003 #define MC_CMD_INIT_TXQ_IN_LENMIN 36 12004 #define MC_CMD_INIT_TXQ_IN_LENMAX 252 12005 #define MC_CMD_INIT_TXQ_IN_LENMAX_MCDI2 1020 12006 #define MC_CMD_INIT_TXQ_IN_LEN(num) (28+8*(num)) 12007 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_NUM(len) (((len)-28)/8) 12008 /* Size, in entries */ 12009 #define MC_CMD_INIT_TXQ_IN_SIZE_OFST 0 12010 #define MC_CMD_INIT_TXQ_IN_SIZE_LEN 4 12011 /* The EVQ to send events to. This is an index originally specified to 12012 * INIT_EVQ. 12013 */ 12014 #define MC_CMD_INIT_TXQ_IN_TARGET_EVQ_OFST 4 12015 #define MC_CMD_INIT_TXQ_IN_TARGET_EVQ_LEN 4 12016 /* The value to put in the event data. Check hardware spec. for valid range. */ 12017 #define MC_CMD_INIT_TXQ_IN_LABEL_OFST 8 12018 #define MC_CMD_INIT_TXQ_IN_LABEL_LEN 4 12019 /* Desired instance. Must be set to a specific instance, which is a function 12020 * local queue index. The calling client must be the currently-assigned user of 12021 * this VI (see MC_CMD_SET_VI_USER). 12022 */ 12023 #define MC_CMD_INIT_TXQ_IN_INSTANCE_OFST 12 12024 #define MC_CMD_INIT_TXQ_IN_INSTANCE_LEN 4 12025 /* There will be more flags here. */ 12026 #define MC_CMD_INIT_TXQ_IN_FLAGS_OFST 16 12027 #define MC_CMD_INIT_TXQ_IN_FLAGS_LEN 4 12028 #define MC_CMD_INIT_TXQ_IN_FLAG_BUFF_MODE_OFST 16 12029 #define MC_CMD_INIT_TXQ_IN_FLAG_BUFF_MODE_LBN 0 12030 #define MC_CMD_INIT_TXQ_IN_FLAG_BUFF_MODE_WIDTH 1 12031 #define MC_CMD_INIT_TXQ_IN_FLAG_IP_CSUM_DIS_OFST 16 12032 #define MC_CMD_INIT_TXQ_IN_FLAG_IP_CSUM_DIS_LBN 1 12033 #define MC_CMD_INIT_TXQ_IN_FLAG_IP_CSUM_DIS_WIDTH 1 12034 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_CSUM_DIS_OFST 16 12035 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_CSUM_DIS_LBN 2 12036 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_CSUM_DIS_WIDTH 1 12037 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_UDP_ONLY_OFST 16 12038 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_UDP_ONLY_LBN 3 12039 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_UDP_ONLY_WIDTH 1 12040 #define MC_CMD_INIT_TXQ_IN_CRC_MODE_OFST 16 12041 #define MC_CMD_INIT_TXQ_IN_CRC_MODE_LBN 4 12042 #define MC_CMD_INIT_TXQ_IN_CRC_MODE_WIDTH 4 12043 #define MC_CMD_INIT_TXQ_IN_FLAG_TIMESTAMP_OFST 16 12044 #define MC_CMD_INIT_TXQ_IN_FLAG_TIMESTAMP_LBN 8 12045 #define MC_CMD_INIT_TXQ_IN_FLAG_TIMESTAMP_WIDTH 1 12046 #define MC_CMD_INIT_TXQ_IN_FLAG_PACER_BYPASS_OFST 16 12047 #define MC_CMD_INIT_TXQ_IN_FLAG_PACER_BYPASS_LBN 9 12048 #define MC_CMD_INIT_TXQ_IN_FLAG_PACER_BYPASS_WIDTH 1 12049 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_IP_CSUM_EN_OFST 16 12050 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_IP_CSUM_EN_LBN 10 12051 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_IP_CSUM_EN_WIDTH 1 12052 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_TCP_CSUM_EN_OFST 16 12053 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_TCP_CSUM_EN_LBN 11 12054 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_TCP_CSUM_EN_WIDTH 1 12055 /* Owner ID to use if in buffer mode (zero if physical) */ 12056 #define MC_CMD_INIT_TXQ_IN_OWNER_ID_OFST 20 12057 #define MC_CMD_INIT_TXQ_IN_OWNER_ID_LEN 4 12058 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 12059 #define MC_CMD_INIT_TXQ_IN_PORT_ID_OFST 24 12060 #define MC_CMD_INIT_TXQ_IN_PORT_ID_LEN 4 12061 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 12062 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_OFST 28 12063 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LEN 8 12064 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_OFST 28 12065 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_LEN 4 12066 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_LBN 224 12067 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_WIDTH 32 12068 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_OFST 32 12069 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_LEN 4 12070 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_LBN 256 12071 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_WIDTH 32 12072 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_MINNUM 1 12073 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_MAXNUM 28 12074 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_MAXNUM_MCDI2 124 12075 12076 /* MC_CMD_INIT_TXQ_EXT_IN msgrequest: Extended INIT_TXQ with additional mode 12077 * flags 12078 */ 12079 #define MC_CMD_INIT_TXQ_EXT_IN_LEN 544 12080 /* Size, in entries */ 12081 #define MC_CMD_INIT_TXQ_EXT_IN_SIZE_OFST 0 12082 #define MC_CMD_INIT_TXQ_EXT_IN_SIZE_LEN 4 12083 /* The EVQ to send events to. This is an index originally specified to 12084 * INIT_EVQ. 12085 */ 12086 #define MC_CMD_INIT_TXQ_EXT_IN_TARGET_EVQ_OFST 4 12087 #define MC_CMD_INIT_TXQ_EXT_IN_TARGET_EVQ_LEN 4 12088 /* The value to put in the event data. Check hardware spec. for valid range. */ 12089 #define MC_CMD_INIT_TXQ_EXT_IN_LABEL_OFST 8 12090 #define MC_CMD_INIT_TXQ_EXT_IN_LABEL_LEN 4 12091 /* Desired instance. Must be set to a specific instance, which is a function 12092 * local queue index. The calling client must be the currently-assigned user of 12093 * this VI (see MC_CMD_SET_VI_USER). 12094 */ 12095 #define MC_CMD_INIT_TXQ_EXT_IN_INSTANCE_OFST 12 12096 #define MC_CMD_INIT_TXQ_EXT_IN_INSTANCE_LEN 4 12097 /* There will be more flags here. */ 12098 #define MC_CMD_INIT_TXQ_EXT_IN_FLAGS_OFST 16 12099 #define MC_CMD_INIT_TXQ_EXT_IN_FLAGS_LEN 4 12100 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_BUFF_MODE_OFST 16 12101 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_BUFF_MODE_LBN 0 12102 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_BUFF_MODE_WIDTH 1 12103 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_IP_CSUM_DIS_OFST 16 12104 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_IP_CSUM_DIS_LBN 1 12105 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_IP_CSUM_DIS_WIDTH 1 12106 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_CSUM_DIS_OFST 16 12107 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_CSUM_DIS_LBN 2 12108 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_CSUM_DIS_WIDTH 1 12109 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_UDP_ONLY_OFST 16 12110 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_UDP_ONLY_LBN 3 12111 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_UDP_ONLY_WIDTH 1 12112 #define MC_CMD_INIT_TXQ_EXT_IN_CRC_MODE_OFST 16 12113 #define MC_CMD_INIT_TXQ_EXT_IN_CRC_MODE_LBN 4 12114 #define MC_CMD_INIT_TXQ_EXT_IN_CRC_MODE_WIDTH 4 12115 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TIMESTAMP_OFST 16 12116 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TIMESTAMP_LBN 8 12117 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TIMESTAMP_WIDTH 1 12118 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_PACER_BYPASS_OFST 16 12119 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_PACER_BYPASS_LBN 9 12120 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_PACER_BYPASS_WIDTH 1 12121 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_IP_CSUM_EN_OFST 16 12122 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_IP_CSUM_EN_LBN 10 12123 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_IP_CSUM_EN_WIDTH 1 12124 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_TCP_CSUM_EN_OFST 16 12125 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_TCP_CSUM_EN_LBN 11 12126 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_TCP_CSUM_EN_WIDTH 1 12127 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN_OFST 16 12128 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN_LBN 12 12129 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN_WIDTH 1 12130 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_OFST 16 12131 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_LBN 13 12132 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_WIDTH 1 12133 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_UTHRESH_OFST 16 12134 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_UTHRESH_LBN 14 12135 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_UTHRESH_WIDTH 1 12136 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_M2M_D2C_OFST 16 12137 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_M2M_D2C_LBN 15 12138 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_M2M_D2C_WIDTH 1 12139 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_DESC_PROXY_OFST 16 12140 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_DESC_PROXY_LBN 16 12141 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_DESC_PROXY_WIDTH 1 12142 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_ABS_TARGET_EVQ_OFST 16 12143 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_ABS_TARGET_EVQ_LBN 17 12144 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_ABS_TARGET_EVQ_WIDTH 1 12145 /* Owner ID to use if in buffer mode (zero if physical) */ 12146 #define MC_CMD_INIT_TXQ_EXT_IN_OWNER_ID_OFST 20 12147 #define MC_CMD_INIT_TXQ_EXT_IN_OWNER_ID_LEN 4 12148 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 12149 #define MC_CMD_INIT_TXQ_EXT_IN_PORT_ID_OFST 24 12150 #define MC_CMD_INIT_TXQ_EXT_IN_PORT_ID_LEN 4 12151 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 12152 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_OFST 28 12153 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LEN 8 12154 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_OFST 28 12155 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_LEN 4 12156 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_LBN 224 12157 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_WIDTH 32 12158 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_OFST 32 12159 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_LEN 4 12160 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_LBN 256 12161 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_WIDTH 32 12162 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_MINNUM 0 12163 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_MAXNUM 64 12164 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_MAXNUM_MCDI2 64 12165 /* Flags related to Qbb flow control mode. */ 12166 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_FLAGS_OFST 540 12167 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_FLAGS_LEN 4 12168 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_ENABLE_OFST 540 12169 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_ENABLE_LBN 0 12170 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_ENABLE_WIDTH 1 12171 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_PRIORITY_OFST 540 12172 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_PRIORITY_LBN 1 12173 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_PRIORITY_WIDTH 3 12174 12175 /* MC_CMD_INIT_TXQ_OUT msgresponse */ 12176 #define MC_CMD_INIT_TXQ_OUT_LEN 0 12177 12178 12179 /***********************************/ 12180 /* MC_CMD_FINI_EVQ 12181 * Teardown an EVQ. 12182 * 12183 * All DMAQs or EVQs that point to the EVQ to tear down must be torn down first 12184 * or the operation will fail with EBUSY 12185 */ 12186 #define MC_CMD_FINI_EVQ 0x83 12187 #undef MC_CMD_0x83_PRIVILEGE_CTG 12188 12189 #define MC_CMD_0x83_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12190 12191 /* MC_CMD_FINI_EVQ_IN msgrequest */ 12192 #define MC_CMD_FINI_EVQ_IN_LEN 4 12193 /* Instance of EVQ to destroy. Should be the same instance as that previously 12194 * passed to INIT_EVQ 12195 */ 12196 #define MC_CMD_FINI_EVQ_IN_INSTANCE_OFST 0 12197 #define MC_CMD_FINI_EVQ_IN_INSTANCE_LEN 4 12198 12199 /* MC_CMD_FINI_EVQ_OUT msgresponse */ 12200 #define MC_CMD_FINI_EVQ_OUT_LEN 0 12201 12202 12203 /***********************************/ 12204 /* MC_CMD_FINI_RXQ 12205 * Teardown a RXQ. 12206 */ 12207 #define MC_CMD_FINI_RXQ 0x84 12208 #undef MC_CMD_0x84_PRIVILEGE_CTG 12209 12210 #define MC_CMD_0x84_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12211 12212 /* MC_CMD_FINI_RXQ_IN msgrequest */ 12213 #define MC_CMD_FINI_RXQ_IN_LEN 4 12214 /* Instance of RXQ to destroy */ 12215 #define MC_CMD_FINI_RXQ_IN_INSTANCE_OFST 0 12216 #define MC_CMD_FINI_RXQ_IN_INSTANCE_LEN 4 12217 12218 /* MC_CMD_FINI_RXQ_OUT msgresponse */ 12219 #define MC_CMD_FINI_RXQ_OUT_LEN 0 12220 12221 12222 /***********************************/ 12223 /* MC_CMD_FINI_TXQ 12224 * Teardown a TXQ. 12225 */ 12226 #define MC_CMD_FINI_TXQ 0x85 12227 #undef MC_CMD_0x85_PRIVILEGE_CTG 12228 12229 #define MC_CMD_0x85_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12230 12231 /* MC_CMD_FINI_TXQ_IN msgrequest */ 12232 #define MC_CMD_FINI_TXQ_IN_LEN 4 12233 /* Instance of TXQ to destroy */ 12234 #define MC_CMD_FINI_TXQ_IN_INSTANCE_OFST 0 12235 #define MC_CMD_FINI_TXQ_IN_INSTANCE_LEN 4 12236 12237 /* MC_CMD_FINI_TXQ_OUT msgresponse */ 12238 #define MC_CMD_FINI_TXQ_OUT_LEN 0 12239 12240 12241 /***********************************/ 12242 /* MC_CMD_DRIVER_EVENT 12243 * Generate an event on an EVQ belonging to the function issuing the command. 12244 */ 12245 #define MC_CMD_DRIVER_EVENT 0x86 12246 #undef MC_CMD_0x86_PRIVILEGE_CTG 12247 12248 #define MC_CMD_0x86_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12249 12250 /* MC_CMD_DRIVER_EVENT_IN msgrequest */ 12251 #define MC_CMD_DRIVER_EVENT_IN_LEN 12 12252 /* Handle of target EVQ */ 12253 #define MC_CMD_DRIVER_EVENT_IN_EVQ_OFST 0 12254 #define MC_CMD_DRIVER_EVENT_IN_EVQ_LEN 4 12255 /* Bits 0 - 63 of event */ 12256 #define MC_CMD_DRIVER_EVENT_IN_DATA_OFST 4 12257 #define MC_CMD_DRIVER_EVENT_IN_DATA_LEN 8 12258 #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_OFST 4 12259 #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_LEN 4 12260 #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_LBN 32 12261 #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_WIDTH 32 12262 #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_OFST 8 12263 #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_LEN 4 12264 #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_LBN 64 12265 #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_WIDTH 32 12266 12267 /* MC_CMD_DRIVER_EVENT_OUT msgresponse */ 12268 #define MC_CMD_DRIVER_EVENT_OUT_LEN 0 12269 12270 12271 /***********************************/ 12272 /* MC_CMD_PROXY_CMD 12273 * Execute an arbitrary MCDI command on behalf of a different function, subject 12274 * to security restrictions. The command to be proxied follows immediately 12275 * afterward in the host buffer (or on the UART). This command supercedes 12276 * MC_CMD_SET_FUNC, which remains available for Siena but now deprecated. 12277 */ 12278 #define MC_CMD_PROXY_CMD 0x5b 12279 #undef MC_CMD_0x5b_PRIVILEGE_CTG 12280 12281 #define MC_CMD_0x5b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 12282 12283 /* MC_CMD_PROXY_CMD_IN msgrequest */ 12284 #define MC_CMD_PROXY_CMD_IN_LEN 4 12285 /* The handle of the target function. */ 12286 #define MC_CMD_PROXY_CMD_IN_TARGET_OFST 0 12287 #define MC_CMD_PROXY_CMD_IN_TARGET_LEN 4 12288 #define MC_CMD_PROXY_CMD_IN_TARGET_PF_OFST 0 12289 #define MC_CMD_PROXY_CMD_IN_TARGET_PF_LBN 0 12290 #define MC_CMD_PROXY_CMD_IN_TARGET_PF_WIDTH 16 12291 #define MC_CMD_PROXY_CMD_IN_TARGET_VF_OFST 0 12292 #define MC_CMD_PROXY_CMD_IN_TARGET_VF_LBN 16 12293 #define MC_CMD_PROXY_CMD_IN_TARGET_VF_WIDTH 16 12294 #define MC_CMD_PROXY_CMD_IN_VF_NULL 0xffff /* enum */ 12295 12296 /* MC_CMD_PROXY_CMD_OUT msgresponse */ 12297 #define MC_CMD_PROXY_CMD_OUT_LEN 0 12298 12299 12300 /***********************************/ 12301 /* MC_CMD_FILTER_OP 12302 * Multiplexed MCDI call for filter operations 12303 */ 12304 #define MC_CMD_FILTER_OP 0x8a 12305 #undef MC_CMD_0x8a_PRIVILEGE_CTG 12306 12307 #define MC_CMD_0x8a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12308 12309 /* MC_CMD_FILTER_OP_IN msgrequest */ 12310 #define MC_CMD_FILTER_OP_IN_LEN 108 12311 /* identifies the type of operation requested */ 12312 #define MC_CMD_FILTER_OP_IN_OP_OFST 0 12313 #define MC_CMD_FILTER_OP_IN_OP_LEN 4 12314 /* enum: single-recipient filter insert */ 12315 #define MC_CMD_FILTER_OP_IN_OP_INSERT 0x0 12316 /* enum: single-recipient filter remove */ 12317 #define MC_CMD_FILTER_OP_IN_OP_REMOVE 0x1 12318 /* enum: multi-recipient filter subscribe */ 12319 #define MC_CMD_FILTER_OP_IN_OP_SUBSCRIBE 0x2 12320 /* enum: multi-recipient filter unsubscribe */ 12321 #define MC_CMD_FILTER_OP_IN_OP_UNSUBSCRIBE 0x3 12322 /* enum: replace one recipient with another (warning - the filter handle may 12323 * change) 12324 */ 12325 #define MC_CMD_FILTER_OP_IN_OP_REPLACE 0x4 12326 /* filter handle (for remove / unsubscribe operations) */ 12327 #define MC_CMD_FILTER_OP_IN_HANDLE_OFST 4 12328 #define MC_CMD_FILTER_OP_IN_HANDLE_LEN 8 12329 #define MC_CMD_FILTER_OP_IN_HANDLE_LO_OFST 4 12330 #define MC_CMD_FILTER_OP_IN_HANDLE_LO_LEN 4 12331 #define MC_CMD_FILTER_OP_IN_HANDLE_LO_LBN 32 12332 #define MC_CMD_FILTER_OP_IN_HANDLE_LO_WIDTH 32 12333 #define MC_CMD_FILTER_OP_IN_HANDLE_HI_OFST 8 12334 #define MC_CMD_FILTER_OP_IN_HANDLE_HI_LEN 4 12335 #define MC_CMD_FILTER_OP_IN_HANDLE_HI_LBN 64 12336 #define MC_CMD_FILTER_OP_IN_HANDLE_HI_WIDTH 32 12337 /* The port ID associated with the v-adaptor which should contain this filter. 12338 */ 12339 #define MC_CMD_FILTER_OP_IN_PORT_ID_OFST 12 12340 #define MC_CMD_FILTER_OP_IN_PORT_ID_LEN 4 12341 /* fields to include in match criteria */ 12342 #define MC_CMD_FILTER_OP_IN_MATCH_FIELDS_OFST 16 12343 #define MC_CMD_FILTER_OP_IN_MATCH_FIELDS_LEN 4 12344 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_IP_OFST 16 12345 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_IP_LBN 0 12346 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_IP_WIDTH 1 12347 #define MC_CMD_FILTER_OP_IN_MATCH_DST_IP_OFST 16 12348 #define MC_CMD_FILTER_OP_IN_MATCH_DST_IP_LBN 1 12349 #define MC_CMD_FILTER_OP_IN_MATCH_DST_IP_WIDTH 1 12350 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_MAC_OFST 16 12351 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_MAC_LBN 2 12352 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_MAC_WIDTH 1 12353 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_PORT_OFST 16 12354 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_PORT_LBN 3 12355 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_PORT_WIDTH 1 12356 #define MC_CMD_FILTER_OP_IN_MATCH_DST_MAC_OFST 16 12357 #define MC_CMD_FILTER_OP_IN_MATCH_DST_MAC_LBN 4 12358 #define MC_CMD_FILTER_OP_IN_MATCH_DST_MAC_WIDTH 1 12359 #define MC_CMD_FILTER_OP_IN_MATCH_DST_PORT_OFST 16 12360 #define MC_CMD_FILTER_OP_IN_MATCH_DST_PORT_LBN 5 12361 #define MC_CMD_FILTER_OP_IN_MATCH_DST_PORT_WIDTH 1 12362 #define MC_CMD_FILTER_OP_IN_MATCH_ETHER_TYPE_OFST 16 12363 #define MC_CMD_FILTER_OP_IN_MATCH_ETHER_TYPE_LBN 6 12364 #define MC_CMD_FILTER_OP_IN_MATCH_ETHER_TYPE_WIDTH 1 12365 #define MC_CMD_FILTER_OP_IN_MATCH_INNER_VLAN_OFST 16 12366 #define MC_CMD_FILTER_OP_IN_MATCH_INNER_VLAN_LBN 7 12367 #define MC_CMD_FILTER_OP_IN_MATCH_INNER_VLAN_WIDTH 1 12368 #define MC_CMD_FILTER_OP_IN_MATCH_OUTER_VLAN_OFST 16 12369 #define MC_CMD_FILTER_OP_IN_MATCH_OUTER_VLAN_LBN 8 12370 #define MC_CMD_FILTER_OP_IN_MATCH_OUTER_VLAN_WIDTH 1 12371 #define MC_CMD_FILTER_OP_IN_MATCH_IP_PROTO_OFST 16 12372 #define MC_CMD_FILTER_OP_IN_MATCH_IP_PROTO_LBN 9 12373 #define MC_CMD_FILTER_OP_IN_MATCH_IP_PROTO_WIDTH 1 12374 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF0_OFST 16 12375 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF0_LBN 10 12376 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF0_WIDTH 1 12377 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF1_OFST 16 12378 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF1_LBN 11 12379 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF1_WIDTH 1 12380 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_OFST 16 12381 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_LBN 29 12382 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_WIDTH 1 12383 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_OFST 16 12384 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_LBN 30 12385 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1 12386 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST_OFST 16 12387 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST_LBN 31 12388 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST_WIDTH 1 12389 /* receive destination */ 12390 #define MC_CMD_FILTER_OP_IN_RX_DEST_OFST 20 12391 #define MC_CMD_FILTER_OP_IN_RX_DEST_LEN 4 12392 /* enum: drop packets */ 12393 #define MC_CMD_FILTER_OP_IN_RX_DEST_DROP 0x0 12394 /* enum: receive to host */ 12395 #define MC_CMD_FILTER_OP_IN_RX_DEST_HOST 0x1 12396 /* enum: receive to MC */ 12397 #define MC_CMD_FILTER_OP_IN_RX_DEST_MC 0x2 12398 /* enum: loop back to TXDP 0 */ 12399 #define MC_CMD_FILTER_OP_IN_RX_DEST_TX0 0x3 12400 /* enum: loop back to TXDP 1 */ 12401 #define MC_CMD_FILTER_OP_IN_RX_DEST_TX1 0x4 12402 /* receive queue handle (for multiple queue modes, this is the base queue) */ 12403 #define MC_CMD_FILTER_OP_IN_RX_QUEUE_OFST 24 12404 #define MC_CMD_FILTER_OP_IN_RX_QUEUE_LEN 4 12405 /* receive mode */ 12406 #define MC_CMD_FILTER_OP_IN_RX_MODE_OFST 28 12407 #define MC_CMD_FILTER_OP_IN_RX_MODE_LEN 4 12408 /* enum: receive to just the specified queue */ 12409 #define MC_CMD_FILTER_OP_IN_RX_MODE_SIMPLE 0x0 12410 /* enum: receive to multiple queues using RSS context */ 12411 #define MC_CMD_FILTER_OP_IN_RX_MODE_RSS 0x1 12412 /* enum: receive to multiple queues using .1p mapping */ 12413 #define MC_CMD_FILTER_OP_IN_RX_MODE_DOT1P_MAPPING 0x2 12414 /* enum: install a filter entry that will never match; for test purposes only 12415 */ 12416 #define MC_CMD_FILTER_OP_IN_RX_MODE_TEST_NEVER_MATCH 0x80000000 12417 /* RSS context (for RX_MODE_RSS) or .1p mapping handle (for 12418 * RX_MODE_DOT1P_MAPPING), as returned by MC_CMD_RSS_CONTEXT_ALLOC or 12419 * MC_CMD_DOT1P_MAPPING_ALLOC. 12420 */ 12421 #define MC_CMD_FILTER_OP_IN_RX_CONTEXT_OFST 32 12422 #define MC_CMD_FILTER_OP_IN_RX_CONTEXT_LEN 4 12423 /* transmit domain (reserved; set to 0) */ 12424 #define MC_CMD_FILTER_OP_IN_TX_DOMAIN_OFST 36 12425 #define MC_CMD_FILTER_OP_IN_TX_DOMAIN_LEN 4 12426 /* transmit destination (either set the MAC and/or PM bits for explicit 12427 * control, or set this field to TX_DEST_DEFAULT for sensible default 12428 * behaviour) 12429 */ 12430 #define MC_CMD_FILTER_OP_IN_TX_DEST_OFST 40 12431 #define MC_CMD_FILTER_OP_IN_TX_DEST_LEN 4 12432 /* enum: request default behaviour (based on filter type) */ 12433 #define MC_CMD_FILTER_OP_IN_TX_DEST_DEFAULT 0xffffffff 12434 #define MC_CMD_FILTER_OP_IN_TX_DEST_MAC_OFST 40 12435 #define MC_CMD_FILTER_OP_IN_TX_DEST_MAC_LBN 0 12436 #define MC_CMD_FILTER_OP_IN_TX_DEST_MAC_WIDTH 1 12437 #define MC_CMD_FILTER_OP_IN_TX_DEST_PM_OFST 40 12438 #define MC_CMD_FILTER_OP_IN_TX_DEST_PM_LBN 1 12439 #define MC_CMD_FILTER_OP_IN_TX_DEST_PM_WIDTH 1 12440 /* source MAC address to match (as bytes in network order) */ 12441 #define MC_CMD_FILTER_OP_IN_SRC_MAC_OFST 44 12442 #define MC_CMD_FILTER_OP_IN_SRC_MAC_LEN 6 12443 /* source port to match (as bytes in network order) */ 12444 #define MC_CMD_FILTER_OP_IN_SRC_PORT_OFST 50 12445 #define MC_CMD_FILTER_OP_IN_SRC_PORT_LEN 2 12446 /* destination MAC address to match (as bytes in network order) */ 12447 #define MC_CMD_FILTER_OP_IN_DST_MAC_OFST 52 12448 #define MC_CMD_FILTER_OP_IN_DST_MAC_LEN 6 12449 /* destination port to match (as bytes in network order) */ 12450 #define MC_CMD_FILTER_OP_IN_DST_PORT_OFST 58 12451 #define MC_CMD_FILTER_OP_IN_DST_PORT_LEN 2 12452 /* Ethernet type to match (as bytes in network order) */ 12453 #define MC_CMD_FILTER_OP_IN_ETHER_TYPE_OFST 60 12454 #define MC_CMD_FILTER_OP_IN_ETHER_TYPE_LEN 2 12455 /* Inner VLAN tag to match (as bytes in network order) */ 12456 #define MC_CMD_FILTER_OP_IN_INNER_VLAN_OFST 62 12457 #define MC_CMD_FILTER_OP_IN_INNER_VLAN_LEN 2 12458 /* Outer VLAN tag to match (as bytes in network order) */ 12459 #define MC_CMD_FILTER_OP_IN_OUTER_VLAN_OFST 64 12460 #define MC_CMD_FILTER_OP_IN_OUTER_VLAN_LEN 2 12461 /* IP protocol to match (in low byte; set high byte to 0) */ 12462 #define MC_CMD_FILTER_OP_IN_IP_PROTO_OFST 66 12463 #define MC_CMD_FILTER_OP_IN_IP_PROTO_LEN 2 12464 /* Firmware defined register 0 to match (reserved; set to 0) */ 12465 #define MC_CMD_FILTER_OP_IN_FWDEF0_OFST 68 12466 #define MC_CMD_FILTER_OP_IN_FWDEF0_LEN 4 12467 /* Firmware defined register 1 to match (reserved; set to 0) */ 12468 #define MC_CMD_FILTER_OP_IN_FWDEF1_OFST 72 12469 #define MC_CMD_FILTER_OP_IN_FWDEF1_LEN 4 12470 /* source IP address to match (as bytes in network order; set last 12 bytes to 12471 * 0 for IPv4 address) 12472 */ 12473 #define MC_CMD_FILTER_OP_IN_SRC_IP_OFST 76 12474 #define MC_CMD_FILTER_OP_IN_SRC_IP_LEN 16 12475 /* destination IP address to match (as bytes in network order; set last 12 12476 * bytes to 0 for IPv4 address) 12477 */ 12478 #define MC_CMD_FILTER_OP_IN_DST_IP_OFST 92 12479 #define MC_CMD_FILTER_OP_IN_DST_IP_LEN 16 12480 12481 /* MC_CMD_FILTER_OP_EXT_IN msgrequest: Extension to MC_CMD_FILTER_OP_IN to 12482 * include handling of VXLAN/NVGRE encapsulated frame filtering (which is 12483 * supported on Medford only). 12484 */ 12485 #define MC_CMD_FILTER_OP_EXT_IN_LEN 172 12486 /* identifies the type of operation requested */ 12487 #define MC_CMD_FILTER_OP_EXT_IN_OP_OFST 0 12488 #define MC_CMD_FILTER_OP_EXT_IN_OP_LEN 4 12489 /* Enum values, see field(s): */ 12490 /* MC_CMD_FILTER_OP_IN/OP */ 12491 /* filter handle (for remove / unsubscribe operations) */ 12492 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_OFST 4 12493 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LEN 8 12494 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_OFST 4 12495 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_LEN 4 12496 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_LBN 32 12497 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_WIDTH 32 12498 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_OFST 8 12499 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_LEN 4 12500 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_LBN 64 12501 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_WIDTH 32 12502 /* The port ID associated with the v-adaptor which should contain this filter. 12503 */ 12504 #define MC_CMD_FILTER_OP_EXT_IN_PORT_ID_OFST 12 12505 #define MC_CMD_FILTER_OP_EXT_IN_PORT_ID_LEN 4 12506 /* fields to include in match criteria */ 12507 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FIELDS_OFST 16 12508 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FIELDS_LEN 4 12509 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_IP_OFST 16 12510 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_IP_LBN 0 12511 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_IP_WIDTH 1 12512 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_IP_OFST 16 12513 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_IP_LBN 1 12514 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_IP_WIDTH 1 12515 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_MAC_OFST 16 12516 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_MAC_LBN 2 12517 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_MAC_WIDTH 1 12518 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_PORT_OFST 16 12519 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_PORT_LBN 3 12520 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_PORT_WIDTH 1 12521 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_MAC_OFST 16 12522 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_MAC_LBN 4 12523 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_MAC_WIDTH 1 12524 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_PORT_OFST 16 12525 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_PORT_LBN 5 12526 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_PORT_WIDTH 1 12527 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_ETHER_TYPE_OFST 16 12528 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_ETHER_TYPE_LBN 6 12529 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_ETHER_TYPE_WIDTH 1 12530 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_INNER_VLAN_OFST 16 12531 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_INNER_VLAN_LBN 7 12532 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_INNER_VLAN_WIDTH 1 12533 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_OUTER_VLAN_OFST 16 12534 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_OUTER_VLAN_LBN 8 12535 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_OUTER_VLAN_WIDTH 1 12536 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IP_PROTO_OFST 16 12537 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IP_PROTO_LBN 9 12538 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IP_PROTO_WIDTH 1 12539 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FWDEF0_OFST 16 12540 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FWDEF0_LBN 10 12541 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FWDEF0_WIDTH 1 12542 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_VNI_OR_VSID_OFST 16 12543 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_VNI_OR_VSID_LBN 11 12544 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_VNI_OR_VSID_WIDTH 1 12545 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_IP_OFST 16 12546 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_IP_LBN 12 12547 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_IP_WIDTH 1 12548 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_IP_OFST 16 12549 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_IP_LBN 13 12550 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_IP_WIDTH 1 12551 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_MAC_OFST 16 12552 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_MAC_LBN 14 12553 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_MAC_WIDTH 1 12554 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_PORT_OFST 16 12555 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_PORT_LBN 15 12556 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_PORT_WIDTH 1 12557 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_MAC_OFST 16 12558 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_MAC_LBN 16 12559 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_MAC_WIDTH 1 12560 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_PORT_OFST 16 12561 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_PORT_LBN 17 12562 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_PORT_WIDTH 1 12563 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_ETHER_TYPE_OFST 16 12564 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_ETHER_TYPE_LBN 18 12565 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_ETHER_TYPE_WIDTH 1 12566 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_INNER_VLAN_OFST 16 12567 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_INNER_VLAN_LBN 19 12568 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_INNER_VLAN_WIDTH 1 12569 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_OUTER_VLAN_OFST 16 12570 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_OUTER_VLAN_LBN 20 12571 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_OUTER_VLAN_WIDTH 1 12572 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_IP_PROTO_OFST 16 12573 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_IP_PROTO_LBN 21 12574 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_IP_PROTO_WIDTH 1 12575 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF0_OFST 16 12576 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF0_LBN 22 12577 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF0_WIDTH 1 12578 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF1_OFST 16 12579 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF1_LBN 23 12580 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF1_WIDTH 1 12581 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_OFST 16 12582 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_LBN 24 12583 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_WIDTH 1 12584 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_OFST 16 12585 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_LBN 25 12586 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_WIDTH 1 12587 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_OFST 16 12588 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_LBN 29 12589 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_WIDTH 1 12590 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_MCAST_DST_OFST 16 12591 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_MCAST_DST_LBN 30 12592 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1 12593 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_UCAST_DST_OFST 16 12594 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_UCAST_DST_LBN 31 12595 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_UCAST_DST_WIDTH 1 12596 /* receive destination */ 12597 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_OFST 20 12598 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_LEN 4 12599 /* enum: drop packets */ 12600 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_DROP 0x0 12601 /* enum: receive to host */ 12602 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_HOST 0x1 12603 /* enum: receive to MC */ 12604 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_MC 0x2 12605 /* enum: loop back to TXDP 0 */ 12606 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_TX0 0x3 12607 /* enum: loop back to TXDP 1 */ 12608 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_TX1 0x4 12609 /* receive queue handle (for multiple queue modes, this is the base queue) */ 12610 #define MC_CMD_FILTER_OP_EXT_IN_RX_QUEUE_OFST 24 12611 #define MC_CMD_FILTER_OP_EXT_IN_RX_QUEUE_LEN 4 12612 /* receive mode */ 12613 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_OFST 28 12614 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_LEN 4 12615 /* enum: receive to just the specified queue */ 12616 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_SIMPLE 0x0 12617 /* enum: receive to multiple queues using RSS context */ 12618 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_RSS 0x1 12619 /* enum: receive to multiple queues using .1p mapping */ 12620 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_DOT1P_MAPPING 0x2 12621 /* enum: install a filter entry that will never match; for test purposes only 12622 */ 12623 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_TEST_NEVER_MATCH 0x80000000 12624 /* RSS context (for RX_MODE_RSS) or .1p mapping handle (for 12625 * RX_MODE_DOT1P_MAPPING), as returned by MC_CMD_RSS_CONTEXT_ALLOC or 12626 * MC_CMD_DOT1P_MAPPING_ALLOC. 12627 */ 12628 #define MC_CMD_FILTER_OP_EXT_IN_RX_CONTEXT_OFST 32 12629 #define MC_CMD_FILTER_OP_EXT_IN_RX_CONTEXT_LEN 4 12630 /* transmit domain (reserved; set to 0) */ 12631 #define MC_CMD_FILTER_OP_EXT_IN_TX_DOMAIN_OFST 36 12632 #define MC_CMD_FILTER_OP_EXT_IN_TX_DOMAIN_LEN 4 12633 /* transmit destination (either set the MAC and/or PM bits for explicit 12634 * control, or set this field to TX_DEST_DEFAULT for sensible default 12635 * behaviour) 12636 */ 12637 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_OFST 40 12638 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_LEN 4 12639 /* enum: request default behaviour (based on filter type) */ 12640 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_DEFAULT 0xffffffff 12641 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_MAC_OFST 40 12642 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_MAC_LBN 0 12643 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_MAC_WIDTH 1 12644 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_PM_OFST 40 12645 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_PM_LBN 1 12646 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_PM_WIDTH 1 12647 /* source MAC address to match (as bytes in network order) */ 12648 #define MC_CMD_FILTER_OP_EXT_IN_SRC_MAC_OFST 44 12649 #define MC_CMD_FILTER_OP_EXT_IN_SRC_MAC_LEN 6 12650 /* source port to match (as bytes in network order) */ 12651 #define MC_CMD_FILTER_OP_EXT_IN_SRC_PORT_OFST 50 12652 #define MC_CMD_FILTER_OP_EXT_IN_SRC_PORT_LEN 2 12653 /* destination MAC address to match (as bytes in network order) */ 12654 #define MC_CMD_FILTER_OP_EXT_IN_DST_MAC_OFST 52 12655 #define MC_CMD_FILTER_OP_EXT_IN_DST_MAC_LEN 6 12656 /* destination port to match (as bytes in network order) */ 12657 #define MC_CMD_FILTER_OP_EXT_IN_DST_PORT_OFST 58 12658 #define MC_CMD_FILTER_OP_EXT_IN_DST_PORT_LEN 2 12659 /* Ethernet type to match (as bytes in network order) */ 12660 #define MC_CMD_FILTER_OP_EXT_IN_ETHER_TYPE_OFST 60 12661 #define MC_CMD_FILTER_OP_EXT_IN_ETHER_TYPE_LEN 2 12662 /* Inner VLAN tag to match (as bytes in network order) */ 12663 #define MC_CMD_FILTER_OP_EXT_IN_INNER_VLAN_OFST 62 12664 #define MC_CMD_FILTER_OP_EXT_IN_INNER_VLAN_LEN 2 12665 /* Outer VLAN tag to match (as bytes in network order) */ 12666 #define MC_CMD_FILTER_OP_EXT_IN_OUTER_VLAN_OFST 64 12667 #define MC_CMD_FILTER_OP_EXT_IN_OUTER_VLAN_LEN 2 12668 /* IP protocol to match (in low byte; set high byte to 0) */ 12669 #define MC_CMD_FILTER_OP_EXT_IN_IP_PROTO_OFST 66 12670 #define MC_CMD_FILTER_OP_EXT_IN_IP_PROTO_LEN 2 12671 /* Firmware defined register 0 to match (reserved; set to 0) */ 12672 #define MC_CMD_FILTER_OP_EXT_IN_FWDEF0_OFST 68 12673 #define MC_CMD_FILTER_OP_EXT_IN_FWDEF0_LEN 4 12674 /* VNI (for VXLAN/Geneve, when IP protocol is UDP) or VSID (for NVGRE, when IP 12675 * protocol is GRE) to match (as bytes in network order; set last byte to 0 for 12676 * VXLAN/NVGRE, or 1 for Geneve) 12677 */ 12678 #define MC_CMD_FILTER_OP_EXT_IN_VNI_OR_VSID_OFST 72 12679 #define MC_CMD_FILTER_OP_EXT_IN_VNI_OR_VSID_LEN 4 12680 #define MC_CMD_FILTER_OP_EXT_IN_VNI_VALUE_OFST 72 12681 #define MC_CMD_FILTER_OP_EXT_IN_VNI_VALUE_LBN 0 12682 #define MC_CMD_FILTER_OP_EXT_IN_VNI_VALUE_WIDTH 24 12683 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_OFST 72 12684 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_LBN 24 12685 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_WIDTH 8 12686 /* enum: Match VXLAN traffic with this VNI */ 12687 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_VXLAN 0x0 12688 /* enum: Match Geneve traffic with this VNI */ 12689 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_GENEVE 0x1 12690 /* enum: Reserved for experimental development use */ 12691 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_EXPERIMENTAL 0xfe 12692 #define MC_CMD_FILTER_OP_EXT_IN_VSID_VALUE_OFST 72 12693 #define MC_CMD_FILTER_OP_EXT_IN_VSID_VALUE_LBN 0 12694 #define MC_CMD_FILTER_OP_EXT_IN_VSID_VALUE_WIDTH 24 12695 #define MC_CMD_FILTER_OP_EXT_IN_VSID_TYPE_OFST 72 12696 #define MC_CMD_FILTER_OP_EXT_IN_VSID_TYPE_LBN 24 12697 #define MC_CMD_FILTER_OP_EXT_IN_VSID_TYPE_WIDTH 8 12698 /* enum: Match NVGRE traffic with this VSID */ 12699 #define MC_CMD_FILTER_OP_EXT_IN_VSID_TYPE_NVGRE 0x0 12700 /* source IP address to match (as bytes in network order; set last 12 bytes to 12701 * 0 for IPv4 address) 12702 */ 12703 #define MC_CMD_FILTER_OP_EXT_IN_SRC_IP_OFST 76 12704 #define MC_CMD_FILTER_OP_EXT_IN_SRC_IP_LEN 16 12705 /* destination IP address to match (as bytes in network order; set last 12 12706 * bytes to 0 for IPv4 address) 12707 */ 12708 #define MC_CMD_FILTER_OP_EXT_IN_DST_IP_OFST 92 12709 #define MC_CMD_FILTER_OP_EXT_IN_DST_IP_LEN 16 12710 /* VXLAN/NVGRE inner frame source MAC address to match (as bytes in network 12711 * order) 12712 */ 12713 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_MAC_OFST 108 12714 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_MAC_LEN 6 12715 /* VXLAN/NVGRE inner frame source port to match (as bytes in network order) */ 12716 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_PORT_OFST 114 12717 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_PORT_LEN 2 12718 /* VXLAN/NVGRE inner frame destination MAC address to match (as bytes in 12719 * network order) 12720 */ 12721 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_MAC_OFST 116 12722 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_MAC_LEN 6 12723 /* VXLAN/NVGRE inner frame destination port to match (as bytes in network 12724 * order) 12725 */ 12726 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_PORT_OFST 122 12727 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_PORT_LEN 2 12728 /* VXLAN/NVGRE inner frame Ethernet type to match (as bytes in network order) 12729 */ 12730 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_ETHER_TYPE_OFST 124 12731 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_ETHER_TYPE_LEN 2 12732 /* VXLAN/NVGRE inner frame Inner VLAN tag to match (as bytes in network order) 12733 */ 12734 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_INNER_VLAN_OFST 126 12735 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_INNER_VLAN_LEN 2 12736 /* VXLAN/NVGRE inner frame Outer VLAN tag to match (as bytes in network order) 12737 */ 12738 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_OUTER_VLAN_OFST 128 12739 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_OUTER_VLAN_LEN 2 12740 /* VXLAN/NVGRE inner frame IP protocol to match (in low byte; set high byte to 12741 * 0) 12742 */ 12743 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_IP_PROTO_OFST 130 12744 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_IP_PROTO_LEN 2 12745 /* VXLAN/NVGRE inner frame Firmware defined register 0 to match (reserved; set 12746 * to 0) 12747 */ 12748 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF0_OFST 132 12749 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF0_LEN 4 12750 /* VXLAN/NVGRE inner frame Firmware defined register 1 to match (reserved; set 12751 * to 0) 12752 */ 12753 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF1_OFST 136 12754 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF1_LEN 4 12755 /* VXLAN/NVGRE inner frame source IP address to match (as bytes in network 12756 * order; set last 12 bytes to 0 for IPv4 address) 12757 */ 12758 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_IP_OFST 140 12759 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_IP_LEN 16 12760 /* VXLAN/NVGRE inner frame destination IP address to match (as bytes in network 12761 * order; set last 12 bytes to 0 for IPv4 address) 12762 */ 12763 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_IP_OFST 156 12764 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_IP_LEN 16 12765 12766 /* MC_CMD_FILTER_OP_V3_IN msgrequest: FILTER_OP extension to support additional 12767 * filter actions for EF100. Some of these actions are also supported on EF10, 12768 * for Intel's DPDK (Data Plane Development Kit, dpdk.org) via its rte_flow 12769 * API. In the latter case, this extension is only useful with the sfc_efx 12770 * driver included as part of DPDK, used in conjunction with the dpdk datapath 12771 * firmware variant. 12772 */ 12773 #define MC_CMD_FILTER_OP_V3_IN_LEN 180 12774 /* identifies the type of operation requested */ 12775 #define MC_CMD_FILTER_OP_V3_IN_OP_OFST 0 12776 #define MC_CMD_FILTER_OP_V3_IN_OP_LEN 4 12777 /* Enum values, see field(s): */ 12778 /* MC_CMD_FILTER_OP_IN/OP */ 12779 /* filter handle (for remove / unsubscribe operations) */ 12780 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_OFST 4 12781 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LEN 8 12782 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_OFST 4 12783 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_LEN 4 12784 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_LBN 32 12785 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_WIDTH 32 12786 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_OFST 8 12787 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_LEN 4 12788 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_LBN 64 12789 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_WIDTH 32 12790 /* The port ID associated with the v-adaptor which should contain this filter. 12791 */ 12792 #define MC_CMD_FILTER_OP_V3_IN_PORT_ID_OFST 12 12793 #define MC_CMD_FILTER_OP_V3_IN_PORT_ID_LEN 4 12794 /* fields to include in match criteria */ 12795 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FIELDS_OFST 16 12796 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FIELDS_LEN 4 12797 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_IP_OFST 16 12798 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_IP_LBN 0 12799 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_IP_WIDTH 1 12800 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_IP_OFST 16 12801 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_IP_LBN 1 12802 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_IP_WIDTH 1 12803 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_MAC_OFST 16 12804 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_MAC_LBN 2 12805 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_MAC_WIDTH 1 12806 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_PORT_OFST 16 12807 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_PORT_LBN 3 12808 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_PORT_WIDTH 1 12809 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_MAC_OFST 16 12810 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_MAC_LBN 4 12811 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_MAC_WIDTH 1 12812 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_PORT_OFST 16 12813 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_PORT_LBN 5 12814 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_PORT_WIDTH 1 12815 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ETHER_TYPE_OFST 16 12816 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ETHER_TYPE_LBN 6 12817 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ETHER_TYPE_WIDTH 1 12818 #define MC_CMD_FILTER_OP_V3_IN_MATCH_INNER_VLAN_OFST 16 12819 #define MC_CMD_FILTER_OP_V3_IN_MATCH_INNER_VLAN_LBN 7 12820 #define MC_CMD_FILTER_OP_V3_IN_MATCH_INNER_VLAN_WIDTH 1 12821 #define MC_CMD_FILTER_OP_V3_IN_MATCH_OUTER_VLAN_OFST 16 12822 #define MC_CMD_FILTER_OP_V3_IN_MATCH_OUTER_VLAN_LBN 8 12823 #define MC_CMD_FILTER_OP_V3_IN_MATCH_OUTER_VLAN_WIDTH 1 12824 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IP_PROTO_OFST 16 12825 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IP_PROTO_LBN 9 12826 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IP_PROTO_WIDTH 1 12827 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FWDEF0_OFST 16 12828 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FWDEF0_LBN 10 12829 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FWDEF0_WIDTH 1 12830 #define MC_CMD_FILTER_OP_V3_IN_MATCH_VNI_OR_VSID_OFST 16 12831 #define MC_CMD_FILTER_OP_V3_IN_MATCH_VNI_OR_VSID_LBN 11 12832 #define MC_CMD_FILTER_OP_V3_IN_MATCH_VNI_OR_VSID_WIDTH 1 12833 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_IP_OFST 16 12834 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_IP_LBN 12 12835 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_IP_WIDTH 1 12836 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_IP_OFST 16 12837 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_IP_LBN 13 12838 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_IP_WIDTH 1 12839 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_MAC_OFST 16 12840 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_MAC_LBN 14 12841 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_MAC_WIDTH 1 12842 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_PORT_OFST 16 12843 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_PORT_LBN 15 12844 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_PORT_WIDTH 1 12845 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_MAC_OFST 16 12846 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_MAC_LBN 16 12847 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_MAC_WIDTH 1 12848 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_PORT_OFST 16 12849 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_PORT_LBN 17 12850 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_PORT_WIDTH 1 12851 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_ETHER_TYPE_OFST 16 12852 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_ETHER_TYPE_LBN 18 12853 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_ETHER_TYPE_WIDTH 1 12854 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_INNER_VLAN_OFST 16 12855 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_INNER_VLAN_LBN 19 12856 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_INNER_VLAN_WIDTH 1 12857 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_OUTER_VLAN_OFST 16 12858 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_OUTER_VLAN_LBN 20 12859 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_OUTER_VLAN_WIDTH 1 12860 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_IP_PROTO_OFST 16 12861 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_IP_PROTO_LBN 21 12862 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_IP_PROTO_WIDTH 1 12863 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF0_OFST 16 12864 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF0_LBN 22 12865 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF0_WIDTH 1 12866 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF1_OFST 16 12867 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF1_LBN 23 12868 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF1_WIDTH 1 12869 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_OFST 16 12870 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_LBN 24 12871 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_WIDTH 1 12872 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_OFST 16 12873 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_LBN 25 12874 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_WIDTH 1 12875 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_OFST 16 12876 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_LBN 29 12877 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_WIDTH 1 12878 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_MCAST_DST_OFST 16 12879 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_MCAST_DST_LBN 30 12880 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1 12881 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_UCAST_DST_OFST 16 12882 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_UCAST_DST_LBN 31 12883 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_UCAST_DST_WIDTH 1 12884 /* receive destination */ 12885 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_OFST 20 12886 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_LEN 4 12887 /* enum: drop packets */ 12888 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_DROP 0x0 12889 /* enum: receive to host */ 12890 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_HOST 0x1 12891 /* enum: receive to MC */ 12892 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_MC 0x2 12893 /* enum: loop back to TXDP 0 */ 12894 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_TX0 0x3 12895 /* enum: loop back to TXDP 1 */ 12896 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_TX1 0x4 12897 /* receive queue handle (for multiple queue modes, this is the base queue) */ 12898 #define MC_CMD_FILTER_OP_V3_IN_RX_QUEUE_OFST 24 12899 #define MC_CMD_FILTER_OP_V3_IN_RX_QUEUE_LEN 4 12900 /* receive mode */ 12901 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_OFST 28 12902 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_LEN 4 12903 /* enum: receive to just the specified queue */ 12904 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_SIMPLE 0x0 12905 /* enum: receive to multiple queues using RSS context */ 12906 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_RSS 0x1 12907 /* enum: receive to multiple queues using .1p mapping */ 12908 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_DOT1P_MAPPING 0x2 12909 /* enum: install a filter entry that will never match; for test purposes only 12910 */ 12911 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_TEST_NEVER_MATCH 0x80000000 12912 /* RSS context (for RX_MODE_RSS) or .1p mapping handle (for 12913 * RX_MODE_DOT1P_MAPPING), as returned by MC_CMD_RSS_CONTEXT_ALLOC or 12914 * MC_CMD_DOT1P_MAPPING_ALLOC. 12915 */ 12916 #define MC_CMD_FILTER_OP_V3_IN_RX_CONTEXT_OFST 32 12917 #define MC_CMD_FILTER_OP_V3_IN_RX_CONTEXT_LEN 4 12918 /* transmit domain (reserved; set to 0) */ 12919 #define MC_CMD_FILTER_OP_V3_IN_TX_DOMAIN_OFST 36 12920 #define MC_CMD_FILTER_OP_V3_IN_TX_DOMAIN_LEN 4 12921 /* transmit destination (either set the MAC and/or PM bits for explicit 12922 * control, or set this field to TX_DEST_DEFAULT for sensible default 12923 * behaviour) 12924 */ 12925 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_OFST 40 12926 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_LEN 4 12927 /* enum: request default behaviour (based on filter type) */ 12928 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_DEFAULT 0xffffffff 12929 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_MAC_OFST 40 12930 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_MAC_LBN 0 12931 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_MAC_WIDTH 1 12932 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_PM_OFST 40 12933 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_PM_LBN 1 12934 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_PM_WIDTH 1 12935 /* source MAC address to match (as bytes in network order) */ 12936 #define MC_CMD_FILTER_OP_V3_IN_SRC_MAC_OFST 44 12937 #define MC_CMD_FILTER_OP_V3_IN_SRC_MAC_LEN 6 12938 /* source port to match (as bytes in network order) */ 12939 #define MC_CMD_FILTER_OP_V3_IN_SRC_PORT_OFST 50 12940 #define MC_CMD_FILTER_OP_V3_IN_SRC_PORT_LEN 2 12941 /* destination MAC address to match (as bytes in network order) */ 12942 #define MC_CMD_FILTER_OP_V3_IN_DST_MAC_OFST 52 12943 #define MC_CMD_FILTER_OP_V3_IN_DST_MAC_LEN 6 12944 /* destination port to match (as bytes in network order) */ 12945 #define MC_CMD_FILTER_OP_V3_IN_DST_PORT_OFST 58 12946 #define MC_CMD_FILTER_OP_V3_IN_DST_PORT_LEN 2 12947 /* Ethernet type to match (as bytes in network order) */ 12948 #define MC_CMD_FILTER_OP_V3_IN_ETHER_TYPE_OFST 60 12949 #define MC_CMD_FILTER_OP_V3_IN_ETHER_TYPE_LEN 2 12950 /* Inner VLAN tag to match (as bytes in network order) */ 12951 #define MC_CMD_FILTER_OP_V3_IN_INNER_VLAN_OFST 62 12952 #define MC_CMD_FILTER_OP_V3_IN_INNER_VLAN_LEN 2 12953 /* Outer VLAN tag to match (as bytes in network order) */ 12954 #define MC_CMD_FILTER_OP_V3_IN_OUTER_VLAN_OFST 64 12955 #define MC_CMD_FILTER_OP_V3_IN_OUTER_VLAN_LEN 2 12956 /* IP protocol to match (in low byte; set high byte to 0) */ 12957 #define MC_CMD_FILTER_OP_V3_IN_IP_PROTO_OFST 66 12958 #define MC_CMD_FILTER_OP_V3_IN_IP_PROTO_LEN 2 12959 /* Firmware defined register 0 to match (reserved; set to 0) */ 12960 #define MC_CMD_FILTER_OP_V3_IN_FWDEF0_OFST 68 12961 #define MC_CMD_FILTER_OP_V3_IN_FWDEF0_LEN 4 12962 /* VNI (for VXLAN/Geneve, when IP protocol is UDP) or VSID (for NVGRE, when IP 12963 * protocol is GRE) to match (as bytes in network order; set last byte to 0 for 12964 * VXLAN/NVGRE, or 1 for Geneve) 12965 */ 12966 #define MC_CMD_FILTER_OP_V3_IN_VNI_OR_VSID_OFST 72 12967 #define MC_CMD_FILTER_OP_V3_IN_VNI_OR_VSID_LEN 4 12968 #define MC_CMD_FILTER_OP_V3_IN_VNI_VALUE_OFST 72 12969 #define MC_CMD_FILTER_OP_V3_IN_VNI_VALUE_LBN 0 12970 #define MC_CMD_FILTER_OP_V3_IN_VNI_VALUE_WIDTH 24 12971 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_OFST 72 12972 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_LBN 24 12973 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_WIDTH 8 12974 /* enum: Match VXLAN traffic with this VNI */ 12975 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_VXLAN 0x0 12976 /* enum: Match Geneve traffic with this VNI */ 12977 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_GENEVE 0x1 12978 /* enum: Reserved for experimental development use */ 12979 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_EXPERIMENTAL 0xfe 12980 #define MC_CMD_FILTER_OP_V3_IN_VSID_VALUE_OFST 72 12981 #define MC_CMD_FILTER_OP_V3_IN_VSID_VALUE_LBN 0 12982 #define MC_CMD_FILTER_OP_V3_IN_VSID_VALUE_WIDTH 24 12983 #define MC_CMD_FILTER_OP_V3_IN_VSID_TYPE_OFST 72 12984 #define MC_CMD_FILTER_OP_V3_IN_VSID_TYPE_LBN 24 12985 #define MC_CMD_FILTER_OP_V3_IN_VSID_TYPE_WIDTH 8 12986 /* enum: Match NVGRE traffic with this VSID */ 12987 #define MC_CMD_FILTER_OP_V3_IN_VSID_TYPE_NVGRE 0x0 12988 /* source IP address to match (as bytes in network order; set last 12 bytes to 12989 * 0 for IPv4 address) 12990 */ 12991 #define MC_CMD_FILTER_OP_V3_IN_SRC_IP_OFST 76 12992 #define MC_CMD_FILTER_OP_V3_IN_SRC_IP_LEN 16 12993 /* destination IP address to match (as bytes in network order; set last 12 12994 * bytes to 0 for IPv4 address) 12995 */ 12996 #define MC_CMD_FILTER_OP_V3_IN_DST_IP_OFST 92 12997 #define MC_CMD_FILTER_OP_V3_IN_DST_IP_LEN 16 12998 /* VXLAN/NVGRE inner frame source MAC address to match (as bytes in network 12999 * order) 13000 */ 13001 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_MAC_OFST 108 13002 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_MAC_LEN 6 13003 /* VXLAN/NVGRE inner frame source port to match (as bytes in network order) */ 13004 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_PORT_OFST 114 13005 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_PORT_LEN 2 13006 /* VXLAN/NVGRE inner frame destination MAC address to match (as bytes in 13007 * network order) 13008 */ 13009 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_MAC_OFST 116 13010 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_MAC_LEN 6 13011 /* VXLAN/NVGRE inner frame destination port to match (as bytes in network 13012 * order) 13013 */ 13014 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_PORT_OFST 122 13015 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_PORT_LEN 2 13016 /* VXLAN/NVGRE inner frame Ethernet type to match (as bytes in network order) 13017 */ 13018 #define MC_CMD_FILTER_OP_V3_IN_IFRM_ETHER_TYPE_OFST 124 13019 #define MC_CMD_FILTER_OP_V3_IN_IFRM_ETHER_TYPE_LEN 2 13020 /* VXLAN/NVGRE inner frame Inner VLAN tag to match (as bytes in network order) 13021 */ 13022 #define MC_CMD_FILTER_OP_V3_IN_IFRM_INNER_VLAN_OFST 126 13023 #define MC_CMD_FILTER_OP_V3_IN_IFRM_INNER_VLAN_LEN 2 13024 /* VXLAN/NVGRE inner frame Outer VLAN tag to match (as bytes in network order) 13025 */ 13026 #define MC_CMD_FILTER_OP_V3_IN_IFRM_OUTER_VLAN_OFST 128 13027 #define MC_CMD_FILTER_OP_V3_IN_IFRM_OUTER_VLAN_LEN 2 13028 /* VXLAN/NVGRE inner frame IP protocol to match (in low byte; set high byte to 13029 * 0) 13030 */ 13031 #define MC_CMD_FILTER_OP_V3_IN_IFRM_IP_PROTO_OFST 130 13032 #define MC_CMD_FILTER_OP_V3_IN_IFRM_IP_PROTO_LEN 2 13033 /* VXLAN/NVGRE inner frame Firmware defined register 0 to match (reserved; set 13034 * to 0) 13035 */ 13036 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF0_OFST 132 13037 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF0_LEN 4 13038 /* VXLAN/NVGRE inner frame Firmware defined register 1 to match (reserved; set 13039 * to 0) 13040 */ 13041 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF1_OFST 136 13042 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF1_LEN 4 13043 /* VXLAN/NVGRE inner frame source IP address to match (as bytes in network 13044 * order; set last 12 bytes to 0 for IPv4 address) 13045 */ 13046 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_IP_OFST 140 13047 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_IP_LEN 16 13048 /* VXLAN/NVGRE inner frame destination IP address to match (as bytes in network 13049 * order; set last 12 bytes to 0 for IPv4 address) 13050 */ 13051 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_IP_OFST 156 13052 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_IP_LEN 16 13053 /* Flags controlling mutations of the packet and/or metadata when the filter is 13054 * matched. The user_mark and user_flag fields' logic is as follows: if 13055 * (req.MATCH_BITOR_FLAG == 1) user_flag = req.MATCH_SET_FLAG bit_or user_flag; 13056 * else user_flag = req.MATCH_SET_FLAG; if (req.MATCH_SET_MARK == 0) user_mark 13057 * = 0; else if (req.MATCH_BITOR_MARK == 1) user_mark = req.MATCH_SET_MARK 13058 * bit_or user_mark; else user_mark = req.MATCH_SET_MARK; N.B. These flags 13059 * overlap with the MATCH_ACTION field, which is deprecated in favour of this 13060 * field. For the cases where these flags induce a valid encoding of the 13061 * MATCH_ACTION field, the semantics agree. 13062 */ 13063 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_FLAGS_OFST 172 13064 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_FLAGS_LEN 4 13065 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_FLAG_OFST 172 13066 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_FLAG_LBN 0 13067 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_FLAG_WIDTH 1 13068 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_OFST 172 13069 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_LBN 1 13070 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_WIDTH 1 13071 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_FLAG_OFST 172 13072 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_FLAG_LBN 2 13073 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_FLAG_WIDTH 1 13074 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_MARK_OFST 172 13075 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_MARK_LBN 3 13076 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_MARK_WIDTH 1 13077 #define MC_CMD_FILTER_OP_V3_IN_MATCH_STRIP_VLAN_OFST 172 13078 #define MC_CMD_FILTER_OP_V3_IN_MATCH_STRIP_VLAN_LBN 4 13079 #define MC_CMD_FILTER_OP_V3_IN_MATCH_STRIP_VLAN_WIDTH 1 13080 /* Deprecated: the overlapping MATCH_ACTION_FLAGS field exposes all of the 13081 * functionality of this field in an ABI-backwards-compatible manner, and 13082 * should be used instead. Any future extensions should be made to the 13083 * MATCH_ACTION_FLAGS field, and not to this field. Set an action for all 13084 * packets matching this filter. The DPDK driver and (on EF10) dpdk f/w variant 13085 * use their own specific delivery structures, which are documented in the DPDK 13086 * Firmware Driver Interface (SF-119419-TC). Requesting anything other than 13087 * MATCH_ACTION_NONE on an EF10 NIC running another f/w variant will cause the 13088 * filter insertion to fail with ENOTSUP. 13089 */ 13090 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_OFST 172 13091 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_LEN 4 13092 /* enum: do nothing extra */ 13093 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_NONE 0x0 13094 /* enum: Set the match flag in the packet prefix for packets matching the 13095 * filter (only with dpdk firmware, otherwise fails with ENOTSUP). Used to 13096 * support the DPDK rte_flow "FLAG" action. 13097 */ 13098 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_FLAG 0x1 13099 /* enum: Insert MATCH_MARK_VALUE into the packet prefix for packets matching 13100 * the filter (only with dpdk firmware, otherwise fails with ENOTSUP). Used to 13101 * support the DPDK rte_flow "MARK" action. 13102 */ 13103 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_MARK 0x2 13104 /* the mark value for MATCH_ACTION_MARK. Requesting a value larger than the 13105 * maximum (obtained from MC_CMD_GET_CAPABILITIES_V5/FILTER_ACTION_MARK_MAX) 13106 * will cause the filter insertion to fail with EINVAL. 13107 */ 13108 #define MC_CMD_FILTER_OP_V3_IN_MATCH_MARK_VALUE_OFST 176 13109 #define MC_CMD_FILTER_OP_V3_IN_MATCH_MARK_VALUE_LEN 4 13110 13111 /* MC_CMD_FILTER_OP_OUT msgresponse */ 13112 #define MC_CMD_FILTER_OP_OUT_LEN 12 13113 /* identifies the type of operation requested */ 13114 #define MC_CMD_FILTER_OP_OUT_OP_OFST 0 13115 #define MC_CMD_FILTER_OP_OUT_OP_LEN 4 13116 /* Enum values, see field(s): */ 13117 /* MC_CMD_FILTER_OP_IN/OP */ 13118 /* Returned filter handle (for insert / subscribe operations). Note that these 13119 * handles should be considered opaque to the host, although a value of 13120 * 0xFFFFFFFF_FFFFFFFF is guaranteed never to be a valid handle. 13121 */ 13122 #define MC_CMD_FILTER_OP_OUT_HANDLE_OFST 4 13123 #define MC_CMD_FILTER_OP_OUT_HANDLE_LEN 8 13124 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_OFST 4 13125 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_LEN 4 13126 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_LBN 32 13127 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_WIDTH 32 13128 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_OFST 8 13129 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_LEN 4 13130 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_LBN 64 13131 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_WIDTH 32 13132 /* enum: guaranteed invalid filter handle (low 32 bits) */ 13133 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_INVALID 0xffffffff 13134 /* enum: guaranteed invalid filter handle (high 32 bits) */ 13135 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_INVALID 0xffffffff 13136 13137 /* MC_CMD_FILTER_OP_EXT_OUT msgresponse */ 13138 #define MC_CMD_FILTER_OP_EXT_OUT_LEN 12 13139 /* identifies the type of operation requested */ 13140 #define MC_CMD_FILTER_OP_EXT_OUT_OP_OFST 0 13141 #define MC_CMD_FILTER_OP_EXT_OUT_OP_LEN 4 13142 /* Enum values, see field(s): */ 13143 /* MC_CMD_FILTER_OP_EXT_IN/OP */ 13144 /* Returned filter handle (for insert / subscribe operations). Note that these 13145 * handles should be considered opaque to the host, although a value of 13146 * 0xFFFFFFFF_FFFFFFFF is guaranteed never to be a valid handle. 13147 */ 13148 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_OFST 4 13149 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LEN 8 13150 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_OFST 4 13151 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_LEN 4 13152 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_LBN 32 13153 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_WIDTH 32 13154 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_OFST 8 13155 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_LEN 4 13156 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_LBN 64 13157 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_WIDTH 32 13158 /* Enum values, see field(s): */ 13159 /* MC_CMD_FILTER_OP_OUT/HANDLE */ 13160 13161 13162 /***********************************/ 13163 /* MC_CMD_GET_PARSER_DISP_INFO 13164 * Get information related to the parser-dispatcher subsystem 13165 */ 13166 #define MC_CMD_GET_PARSER_DISP_INFO 0xe4 13167 #undef MC_CMD_0xe4_PRIVILEGE_CTG 13168 13169 #define MC_CMD_0xe4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 13170 13171 /* MC_CMD_GET_PARSER_DISP_INFO_IN msgrequest */ 13172 #define MC_CMD_GET_PARSER_DISP_INFO_IN_LEN 4 13173 /* identifies the type of operation requested */ 13174 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_OFST 0 13175 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_LEN 4 13176 /* enum: read the list of supported RX filter matches */ 13177 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_RX_MATCHES 0x1 13178 /* enum: read flags indicating restrictions on filter insertion for the calling 13179 * client 13180 */ 13181 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_RESTRICTIONS 0x2 13182 /* enum: read properties relating to security rules (Medford-only; for use by 13183 * SolarSecure apps, not directly by drivers. See SF-114946-SW.) 13184 */ 13185 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SECURITY_RULE_INFO 0x3 13186 /* enum: read the list of supported RX filter matches for VXLAN/NVGRE 13187 * encapsulated frames, which follow a different match sequence to normal 13188 * frames (Medford only) 13189 */ 13190 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_ENCAP_RX_MATCHES 0x4 13191 /* enum: read the list of supported matches for the encapsulation detection 13192 * rules inserted by MC_CMD_VNIC_ENCAP_RULE_ADD. (ef100 and later) 13193 */ 13194 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_VNIC_ENCAP_MATCHES 0x5 13195 /* enum: read the supported encapsulation types for the VNIC */ 13196 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_VNIC_ENCAP_TYPES 0x6 13197 /* enum: read the supported RX filter matches for low-latency queues (as 13198 * allocated by MC_CMD_ALLOC_LL_QUEUES) 13199 */ 13200 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_LL_RX_MATCHES 0x7 13201 13202 /* MC_CMD_GET_PARSER_DISP_INFO_OUT msgresponse */ 13203 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LENMIN 8 13204 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LENMAX 252 13205 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LENMAX_MCDI2 1020 13206 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LEN(num) (8+4*(num)) 13207 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_NUM(len) (((len)-8)/4) 13208 /* identifies the type of operation requested */ 13209 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_OP_OFST 0 13210 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_OP_LEN 4 13211 /* Enum values, see field(s): */ 13212 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 13213 /* number of supported match types */ 13214 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_NUM_SUPPORTED_MATCHES_OFST 4 13215 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_NUM_SUPPORTED_MATCHES_LEN 4 13216 /* array of supported match types (valid MATCH_FIELDS values for 13217 * MC_CMD_FILTER_OP) sorted in decreasing priority order 13218 */ 13219 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_OFST 8 13220 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_LEN 4 13221 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_MINNUM 0 13222 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_MAXNUM 61 13223 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_MAXNUM_MCDI2 253 13224 13225 /* MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT msgresponse */ 13226 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_LEN 8 13227 /* identifies the type of operation requested */ 13228 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_OP_OFST 0 13229 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_OP_LEN 4 13230 /* Enum values, see field(s): */ 13231 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 13232 /* bitfield of filter insertion restrictions */ 13233 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_RESTRICTION_FLAGS_OFST 4 13234 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_RESTRICTION_FLAGS_LEN 4 13235 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_DST_IP_MCAST_ONLY_OFST 4 13236 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_DST_IP_MCAST_ONLY_LBN 0 13237 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_DST_IP_MCAST_ONLY_WIDTH 1 13238 13239 /* MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT msgresponse: 13240 * GET_PARSER_DISP_INFO response format for OP_GET_SECURITY_RULE_INFO. 13241 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See 13242 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 13243 * been used in any released code and may change during development. This note 13244 * will be removed once it is regarded as stable. 13245 */ 13246 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_LEN 36 13247 /* identifies the type of operation requested */ 13248 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_OP_OFST 0 13249 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_OP_LEN 4 13250 /* Enum values, see field(s): */ 13251 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 13252 /* a version number representing the set of rule lookups that are implemented 13253 * by the currently running firmware 13254 */ 13255 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_RULES_VERSION_OFST 4 13256 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_RULES_VERSION_LEN 4 13257 /* enum: implements lookup sequences described in SF-114946-SW draft C */ 13258 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_RULES_VERSION_SF_114946_SW_C 0x0 13259 /* the number of nodes in the subnet map */ 13260 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_NODES_OFST 8 13261 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_NODES_LEN 4 13262 /* the number of entries in one subnet map node */ 13263 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_ENTRIES_PER_NODE_OFST 12 13264 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_ENTRIES_PER_NODE_LEN 4 13265 /* minimum valid value for a subnet ID in a subnet map leaf */ 13266 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MIN_OFST 16 13267 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MIN_LEN 4 13268 /* maximum valid value for a subnet ID in a subnet map leaf */ 13269 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MAX_OFST 20 13270 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MAX_LEN 4 13271 /* the number of entries in the local and remote port range maps */ 13272 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_TREE_NUM_ENTRIES_OFST 24 13273 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_TREE_NUM_ENTRIES_LEN 4 13274 /* minimum valid value for a portrange ID in a port range map leaf */ 13275 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MIN_OFST 28 13276 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MIN_LEN 4 13277 /* maximum valid value for a portrange ID in a port range map leaf */ 13278 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MAX_OFST 32 13279 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MAX_LEN 4 13280 13281 /* MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT msgresponse: This response is 13282 * returned if a MC_CMD_GET_PARSER_DISP_INFO_IN request is sent with OP value 13283 * OP_GET_SUPPORTED_VNIC_ENCAP_MATCHES. It contains information about the 13284 * supported match types that can be used in the encapsulation detection rules 13285 * inserted by MC_CMD_VNIC_ENCAP_RULE_ADD. 13286 */ 13287 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LENMIN 8 13288 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LENMAX 252 13289 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LENMAX_MCDI2 1020 13290 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LEN(num) (8+4*(num)) 13291 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_NUM(len) (((len)-8)/4) 13292 /* The op code OP_GET_SUPPORTED_VNIC_ENCAP_MATCHES is returned. */ 13293 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_OP_OFST 0 13294 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_OP_LEN 4 13295 /* Enum values, see field(s): */ 13296 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 13297 /* number of supported match types */ 13298 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_NUM_SUPPORTED_MATCHES_OFST 4 13299 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_NUM_SUPPORTED_MATCHES_LEN 4 13300 /* array of supported match types (valid MATCH_FLAGS values for 13301 * MC_CMD_VNIC_ENCAP_RULE_ADD) sorted in decreasing priority order 13302 */ 13303 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_OFST 8 13304 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_LEN 4 13305 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_MINNUM 0 13306 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_MAXNUM 61 13307 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_MAXNUM_MCDI2 253 13308 13309 /* MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT msgresponse: Returns 13310 * the supported encapsulation types for the VNIC 13311 */ 13312 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_LEN 8 13313 /* The op code OP_GET_SUPPORTED_VNIC_ENCAP_TYPES is returned */ 13314 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_OP_OFST 0 13315 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_OP_LEN 4 13316 /* Enum values, see field(s): */ 13317 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 13318 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPES_SUPPORTED_OFST 4 13319 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPES_SUPPORTED_LEN 4 13320 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_VXLAN_OFST 4 13321 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_VXLAN_LBN 0 13322 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_VXLAN_WIDTH 1 13323 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_NVGRE_OFST 4 13324 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_NVGRE_LBN 1 13325 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_NVGRE_WIDTH 1 13326 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_GENEVE_OFST 4 13327 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_GENEVE_LBN 2 13328 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_GENEVE_WIDTH 1 13329 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_L2GRE_OFST 4 13330 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_L2GRE_LBN 3 13331 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_L2GRE_WIDTH 1 13332 13333 13334 /***********************************/ 13335 /* MC_CMD_GET_PORT_ASSIGNMENT 13336 * Get port assignment for current PCI function. 13337 */ 13338 #define MC_CMD_GET_PORT_ASSIGNMENT 0xb8 13339 #undef MC_CMD_0xb8_PRIVILEGE_CTG 13340 13341 #define MC_CMD_0xb8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 13342 13343 /* MC_CMD_GET_PORT_ASSIGNMENT_IN msgrequest */ 13344 #define MC_CMD_GET_PORT_ASSIGNMENT_IN_LEN 0 13345 13346 /* MC_CMD_GET_PORT_ASSIGNMENT_OUT msgresponse */ 13347 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_LEN 4 13348 /* Identifies the port assignment for this function. On EF100, it is possible 13349 * for the function to have no network port assigned (either because it is not 13350 * yet configured, or assigning a port to a given function personality makes no 13351 * sense - e.g. virtio-blk), in which case the return value is NULL_PORT. 13352 */ 13353 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_PORT_OFST 0 13354 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_PORT_LEN 4 13355 /* enum: Special value to indicate no port is assigned to a function. */ 13356 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_NULL_PORT 0xffffffff 13357 13358 13359 /***********************************/ 13360 /* MC_CMD_ALLOC_VIS 13361 * Allocate VIs for current PCI function. 13362 */ 13363 #define MC_CMD_ALLOC_VIS 0x8b 13364 #undef MC_CMD_0x8b_PRIVILEGE_CTG 13365 13366 #define MC_CMD_0x8b_PRIVILEGE_CTG SRIOV_CTG_GENERAL 13367 13368 /* MC_CMD_ALLOC_VIS_IN msgrequest */ 13369 #define MC_CMD_ALLOC_VIS_IN_LEN 8 13370 /* The minimum number of VIs that is acceptable */ 13371 #define MC_CMD_ALLOC_VIS_IN_MIN_VI_COUNT_OFST 0 13372 #define MC_CMD_ALLOC_VIS_IN_MIN_VI_COUNT_LEN 4 13373 /* The maximum number of VIs that would be useful */ 13374 #define MC_CMD_ALLOC_VIS_IN_MAX_VI_COUNT_OFST 4 13375 #define MC_CMD_ALLOC_VIS_IN_MAX_VI_COUNT_LEN 4 13376 13377 /* MC_CMD_ALLOC_VIS_OUT msgresponse: Huntington-compatible VI_ALLOC request. 13378 * Use extended version in new code. 13379 */ 13380 #define MC_CMD_ALLOC_VIS_OUT_LEN 8 13381 /* The number of VIs allocated on this function */ 13382 #define MC_CMD_ALLOC_VIS_OUT_VI_COUNT_OFST 0 13383 #define MC_CMD_ALLOC_VIS_OUT_VI_COUNT_LEN 4 13384 /* The base absolute VI number allocated to this function. Required to 13385 * correctly interpret wakeup events. 13386 */ 13387 #define MC_CMD_ALLOC_VIS_OUT_VI_BASE_OFST 4 13388 #define MC_CMD_ALLOC_VIS_OUT_VI_BASE_LEN 4 13389 13390 /* MC_CMD_ALLOC_VIS_EXT_OUT msgresponse */ 13391 #define MC_CMD_ALLOC_VIS_EXT_OUT_LEN 12 13392 /* The number of VIs allocated on this function */ 13393 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_COUNT_OFST 0 13394 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_COUNT_LEN 4 13395 /* The base absolute VI number allocated to this function. Required to 13396 * correctly interpret wakeup events. 13397 */ 13398 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_BASE_OFST 4 13399 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_BASE_LEN 4 13400 /* Function's port vi_shift value (always 0 on Huntington) */ 13401 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_SHIFT_OFST 8 13402 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_SHIFT_LEN 4 13403 13404 13405 /***********************************/ 13406 /* MC_CMD_FREE_VIS 13407 * Free VIs for current PCI function. Any linked PIO buffers will be unlinked, 13408 * but not freed. 13409 */ 13410 #define MC_CMD_FREE_VIS 0x8c 13411 #undef MC_CMD_0x8c_PRIVILEGE_CTG 13412 13413 #define MC_CMD_0x8c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 13414 13415 /* MC_CMD_FREE_VIS_IN msgrequest */ 13416 #define MC_CMD_FREE_VIS_IN_LEN 0 13417 13418 /* MC_CMD_FREE_VIS_OUT msgresponse */ 13419 #define MC_CMD_FREE_VIS_OUT_LEN 0 13420 13421 13422 /***********************************/ 13423 /* MC_CMD_GET_SRIOV_CFG 13424 * Get SRIOV config for this PF. 13425 */ 13426 #define MC_CMD_GET_SRIOV_CFG 0xba 13427 #undef MC_CMD_0xba_PRIVILEGE_CTG 13428 13429 #define MC_CMD_0xba_PRIVILEGE_CTG SRIOV_CTG_GENERAL 13430 13431 /* MC_CMD_GET_SRIOV_CFG_IN msgrequest */ 13432 #define MC_CMD_GET_SRIOV_CFG_IN_LEN 0 13433 13434 /* MC_CMD_GET_SRIOV_CFG_OUT msgresponse */ 13435 #define MC_CMD_GET_SRIOV_CFG_OUT_LEN 20 13436 /* Number of VFs currently enabled. */ 13437 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_CURRENT_OFST 0 13438 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_CURRENT_LEN 4 13439 /* Max number of VFs before sriov stride and offset may need to be changed. */ 13440 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_MAX_OFST 4 13441 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_MAX_LEN 4 13442 #define MC_CMD_GET_SRIOV_CFG_OUT_FLAGS_OFST 8 13443 #define MC_CMD_GET_SRIOV_CFG_OUT_FLAGS_LEN 4 13444 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_ENABLED_OFST 8 13445 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_ENABLED_LBN 0 13446 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_ENABLED_WIDTH 1 13447 /* RID offset of first VF from PF. */ 13448 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_OFFSET_OFST 12 13449 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_OFFSET_LEN 4 13450 /* RID offset of each subsequent VF from the previous. */ 13451 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_STRIDE_OFST 16 13452 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_STRIDE_LEN 4 13453 13454 13455 /***********************************/ 13456 /* MC_CMD_ALLOC_PIOBUF 13457 * Allocate a push I/O buffer for later use with a tx queue. 13458 */ 13459 #define MC_CMD_ALLOC_PIOBUF 0x8f 13460 #undef MC_CMD_0x8f_PRIVILEGE_CTG 13461 13462 #define MC_CMD_0x8f_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 13463 13464 /* MC_CMD_ALLOC_PIOBUF_IN msgrequest */ 13465 #define MC_CMD_ALLOC_PIOBUF_IN_LEN 0 13466 13467 /* MC_CMD_ALLOC_PIOBUF_OUT msgresponse */ 13468 #define MC_CMD_ALLOC_PIOBUF_OUT_LEN 4 13469 /* Handle for allocated push I/O buffer. */ 13470 #define MC_CMD_ALLOC_PIOBUF_OUT_PIOBUF_HANDLE_OFST 0 13471 #define MC_CMD_ALLOC_PIOBUF_OUT_PIOBUF_HANDLE_LEN 4 13472 13473 13474 /***********************************/ 13475 /* MC_CMD_FREE_PIOBUF 13476 * Free a push I/O buffer. 13477 */ 13478 #define MC_CMD_FREE_PIOBUF 0x90 13479 #undef MC_CMD_0x90_PRIVILEGE_CTG 13480 13481 #define MC_CMD_0x90_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 13482 13483 /* MC_CMD_FREE_PIOBUF_IN msgrequest */ 13484 #define MC_CMD_FREE_PIOBUF_IN_LEN 4 13485 /* Handle for allocated push I/O buffer. */ 13486 #define MC_CMD_FREE_PIOBUF_IN_PIOBUF_HANDLE_OFST 0 13487 #define MC_CMD_FREE_PIOBUF_IN_PIOBUF_HANDLE_LEN 4 13488 13489 /* MC_CMD_FREE_PIOBUF_OUT msgresponse */ 13490 #define MC_CMD_FREE_PIOBUF_OUT_LEN 0 13491 13492 13493 /***********************************/ 13494 /* MC_CMD_GET_VI_TLP_PROCESSING 13495 * Get TLP steering and ordering information for a VI. The caller must have the 13496 * GRP_FUNC_DMA privilege and must be the currently-assigned user of this VI or 13497 * an ancestor of the current user (see MC_CMD_SET_VI_USER). 13498 */ 13499 #define MC_CMD_GET_VI_TLP_PROCESSING 0xb0 13500 #undef MC_CMD_0xb0_PRIVILEGE_CTG 13501 13502 #define MC_CMD_0xb0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 13503 13504 /* MC_CMD_GET_VI_TLP_PROCESSING_IN msgrequest */ 13505 #define MC_CMD_GET_VI_TLP_PROCESSING_IN_LEN 4 13506 /* Queue handle, encodes queue type and VI number to get information for. */ 13507 #define MC_CMD_GET_VI_TLP_PROCESSING_IN_INSTANCE_OFST 0 13508 #define MC_CMD_GET_VI_TLP_PROCESSING_IN_INSTANCE_LEN 4 13509 13510 /* MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT msgresponse: This message has the same 13511 * layout as GET_VI_TLP_PROCESSING_OUT, but with corrected field ordering to 13512 * simplify use in drivers 13513 */ 13514 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_LEN 4 13515 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_DATA_OFST 0 13516 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_DATA_LEN 4 13517 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_TPH_TAG1_RX_OFST 0 13518 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_TPH_TAG1_RX_LBN 0 13519 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_TPH_TAG1_RX_WIDTH 8 13520 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_TPH_TAG2_EV_OFST 0 13521 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_TPH_TAG2_EV_LBN 8 13522 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_TPH_TAG2_EV_WIDTH 8 13523 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_RELAXED_ORDERING_OFST 0 13524 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_RELAXED_ORDERING_LBN 16 13525 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_RELAXED_ORDERING_WIDTH 1 13526 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_RELAXED_ORDERING_PACKET_DATA_OFST 0 13527 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_RELAXED_ORDERING_PACKET_DATA_LBN 16 13528 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_RELAXED_ORDERING_PACKET_DATA_WIDTH 1 13529 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_ID_BASED_ORDERING_OFST 0 13530 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_ID_BASED_ORDERING_LBN 17 13531 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_ID_BASED_ORDERING_WIDTH 1 13532 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_NO_SNOOP_OFST 0 13533 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_NO_SNOOP_LBN 18 13534 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_NO_SNOOP_WIDTH 1 13535 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_TPH_ON_OFST 0 13536 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_TPH_ON_LBN 19 13537 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_TPH_ON_WIDTH 1 13538 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_RELAXED_ORDERING_SYNC_DATA_OFST 0 13539 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_RELAXED_ORDERING_SYNC_DATA_LBN 20 13540 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_RELAXED_ORDERING_SYNC_DATA_WIDTH 1 13541 13542 13543 /***********************************/ 13544 /* MC_CMD_SET_VI_TLP_PROCESSING 13545 * Set TLP steering and ordering information for a VI. The caller must have the 13546 * GRP_FUNC_DMA privilege and must be the currently-assigned user of this VI or 13547 * an ancestor of the current user (see MC_CMD_SET_VI_USER). Note that LL 13548 * queues require this to be called after allocation but before initialisation 13549 * of the queue. TLP options of a queue are fixed after queue is initialised, 13550 * with the values set to current global value or they can be overriden using 13551 * this command. At LL queue allocation, all overrides are cleared. 13552 */ 13553 #define MC_CMD_SET_VI_TLP_PROCESSING 0xb1 13554 #undef MC_CMD_0xb1_PRIVILEGE_CTG 13555 13556 #define MC_CMD_0xb1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 13557 13558 /* MC_CMD_SET_VI_TLP_PROCESSING_V2_IN msgrequest: This message has the same 13559 * layout as SET_VI_TLP_PROCESSING_OUT, but with corrected field ordering to 13560 * simplify use in drivers. 13561 */ 13562 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_LEN 8 13563 /* Queue handle, encodes queue type and VI number to set information for. */ 13564 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_INSTANCE_OFST 0 13565 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_INSTANCE_LEN 4 13566 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_DATA_OFST 4 13567 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_DATA_LEN 4 13568 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_TPH_TAG1_RX_OFST 4 13569 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_TPH_TAG1_RX_LBN 0 13570 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_TPH_TAG1_RX_WIDTH 8 13571 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_TPH_TAG2_EV_OFST 4 13572 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_TPH_TAG2_EV_LBN 8 13573 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_TPH_TAG2_EV_WIDTH 8 13574 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_RELAXED_ORDERING_OFST 4 13575 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_RELAXED_ORDERING_LBN 16 13576 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_RELAXED_ORDERING_WIDTH 1 13577 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_RELAXED_ORDERING_PACKET_DATA_OFST 4 13578 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_RELAXED_ORDERING_PACKET_DATA_LBN 16 13579 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_RELAXED_ORDERING_PACKET_DATA_WIDTH 1 13580 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_ID_BASED_ORDERING_OFST 4 13581 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_ID_BASED_ORDERING_LBN 17 13582 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_ID_BASED_ORDERING_WIDTH 1 13583 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_NO_SNOOP_OFST 4 13584 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_NO_SNOOP_LBN 18 13585 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_NO_SNOOP_WIDTH 1 13586 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_TPH_ON_OFST 4 13587 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_TPH_ON_LBN 19 13588 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_TPH_ON_WIDTH 1 13589 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_RELAXED_ORDERING_SYNC_DATA_OFST 4 13590 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_RELAXED_ORDERING_SYNC_DATA_LBN 20 13591 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_RELAXED_ORDERING_SYNC_DATA_WIDTH 1 13592 13593 /* MC_CMD_SET_VI_TLP_PROCESSING_OUT msgresponse */ 13594 #define MC_CMD_SET_VI_TLP_PROCESSING_OUT_LEN 0 13595 13596 13597 /***********************************/ 13598 /* MC_CMD_GET_CAPABILITIES 13599 * Get device capabilities. This is supplementary to the MC_CMD_GET_BOARD_CFG 13600 * command, and intended to reference inherent device capabilities as opposed 13601 * to current NVRAM config. 13602 */ 13603 #define MC_CMD_GET_CAPABILITIES 0xbe 13604 #undef MC_CMD_0xbe_PRIVILEGE_CTG 13605 13606 #define MC_CMD_0xbe_PRIVILEGE_CTG SRIOV_CTG_GENERAL 13607 13608 /* MC_CMD_GET_CAPABILITIES_IN msgrequest */ 13609 #define MC_CMD_GET_CAPABILITIES_IN_LEN 0 13610 13611 /* MC_CMD_GET_CAPABILITIES_OUT msgresponse */ 13612 #define MC_CMD_GET_CAPABILITIES_OUT_LEN 20 13613 /* First word of flags. */ 13614 #define MC_CMD_GET_CAPABILITIES_OUT_FLAGS1_OFST 0 13615 #define MC_CMD_GET_CAPABILITIES_OUT_FLAGS1_LEN 4 13616 #define MC_CMD_GET_CAPABILITIES_OUT_VPORT_RECONFIGURE_OFST 0 13617 #define MC_CMD_GET_CAPABILITIES_OUT_VPORT_RECONFIGURE_LBN 3 13618 #define MC_CMD_GET_CAPABILITIES_OUT_VPORT_RECONFIGURE_WIDTH 1 13619 #define MC_CMD_GET_CAPABILITIES_OUT_TX_STRIPING_OFST 0 13620 #define MC_CMD_GET_CAPABILITIES_OUT_TX_STRIPING_LBN 4 13621 #define MC_CMD_GET_CAPABILITIES_OUT_TX_STRIPING_WIDTH 1 13622 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_QUERY_OFST 0 13623 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_QUERY_LBN 5 13624 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_QUERY_WIDTH 1 13625 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 13626 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 13627 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 13628 #define MC_CMD_GET_CAPABILITIES_OUT_DRV_ATTACH_PREBOOT_OFST 0 13629 #define MC_CMD_GET_CAPABILITIES_OUT_DRV_ATTACH_PREBOOT_LBN 7 13630 #define MC_CMD_GET_CAPABILITIES_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 13631 #define MC_CMD_GET_CAPABILITIES_OUT_RX_FORCE_EVENT_MERGING_OFST 0 13632 #define MC_CMD_GET_CAPABILITIES_OUT_RX_FORCE_EVENT_MERGING_LBN 8 13633 #define MC_CMD_GET_CAPABILITIES_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 13634 #define MC_CMD_GET_CAPABILITIES_OUT_SET_MAC_ENHANCED_OFST 0 13635 #define MC_CMD_GET_CAPABILITIES_OUT_SET_MAC_ENHANCED_LBN 9 13636 #define MC_CMD_GET_CAPABILITIES_OUT_SET_MAC_ENHANCED_WIDTH 1 13637 #define MC_CMD_GET_CAPABILITIES_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 13638 #define MC_CMD_GET_CAPABILITIES_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 13639 #define MC_CMD_GET_CAPABILITIES_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 13640 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 13641 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 13642 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 13643 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 13644 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 13645 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 13646 #define MC_CMD_GET_CAPABILITIES_OUT_ADDITIONAL_RSS_MODES_OFST 0 13647 #define MC_CMD_GET_CAPABILITIES_OUT_ADDITIONAL_RSS_MODES_LBN 13 13648 #define MC_CMD_GET_CAPABILITIES_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 13649 #define MC_CMD_GET_CAPABILITIES_OUT_QBB_OFST 0 13650 #define MC_CMD_GET_CAPABILITIES_OUT_QBB_LBN 14 13651 #define MC_CMD_GET_CAPABILITIES_OUT_QBB_WIDTH 1 13652 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 13653 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 13654 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 13655 #define MC_CMD_GET_CAPABILITIES_OUT_RX_RSS_LIMITED_OFST 0 13656 #define MC_CMD_GET_CAPABILITIES_OUT_RX_RSS_LIMITED_LBN 16 13657 #define MC_CMD_GET_CAPABILITIES_OUT_RX_RSS_LIMITED_WIDTH 1 13658 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_OFST 0 13659 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_LBN 17 13660 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_WIDTH 1 13661 #define MC_CMD_GET_CAPABILITIES_OUT_RX_INCLUDE_FCS_OFST 0 13662 #define MC_CMD_GET_CAPABILITIES_OUT_RX_INCLUDE_FCS_LBN 18 13663 #define MC_CMD_GET_CAPABILITIES_OUT_RX_INCLUDE_FCS_WIDTH 1 13664 #define MC_CMD_GET_CAPABILITIES_OUT_TX_VLAN_INSERTION_OFST 0 13665 #define MC_CMD_GET_CAPABILITIES_OUT_TX_VLAN_INSERTION_LBN 19 13666 #define MC_CMD_GET_CAPABILITIES_OUT_TX_VLAN_INSERTION_WIDTH 1 13667 #define MC_CMD_GET_CAPABILITIES_OUT_RX_VLAN_STRIPPING_OFST 0 13668 #define MC_CMD_GET_CAPABILITIES_OUT_RX_VLAN_STRIPPING_LBN 20 13669 #define MC_CMD_GET_CAPABILITIES_OUT_RX_VLAN_STRIPPING_WIDTH 1 13670 #define MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_OFST 0 13671 #define MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_LBN 21 13672 #define MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_WIDTH 1 13673 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_0_OFST 0 13674 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_0_LBN 22 13675 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_0_WIDTH 1 13676 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_14_OFST 0 13677 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_14_LBN 23 13678 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_14_WIDTH 1 13679 #define MC_CMD_GET_CAPABILITIES_OUT_RX_TIMESTAMP_OFST 0 13680 #define MC_CMD_GET_CAPABILITIES_OUT_RX_TIMESTAMP_LBN 24 13681 #define MC_CMD_GET_CAPABILITIES_OUT_RX_TIMESTAMP_WIDTH 1 13682 #define MC_CMD_GET_CAPABILITIES_OUT_RX_BATCHING_OFST 0 13683 #define MC_CMD_GET_CAPABILITIES_OUT_RX_BATCHING_LBN 25 13684 #define MC_CMD_GET_CAPABILITIES_OUT_RX_BATCHING_WIDTH 1 13685 #define MC_CMD_GET_CAPABILITIES_OUT_MCAST_FILTER_CHAINING_OFST 0 13686 #define MC_CMD_GET_CAPABILITIES_OUT_MCAST_FILTER_CHAINING_LBN 26 13687 #define MC_CMD_GET_CAPABILITIES_OUT_MCAST_FILTER_CHAINING_WIDTH 1 13688 #define MC_CMD_GET_CAPABILITIES_OUT_PM_AND_RXDP_COUNTERS_OFST 0 13689 #define MC_CMD_GET_CAPABILITIES_OUT_PM_AND_RXDP_COUNTERS_LBN 27 13690 #define MC_CMD_GET_CAPABILITIES_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 13691 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DISABLE_SCATTER_OFST 0 13692 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DISABLE_SCATTER_LBN 28 13693 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DISABLE_SCATTER_WIDTH 1 13694 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 13695 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 13696 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 13697 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_OFST 0 13698 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_LBN 30 13699 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_WIDTH 1 13700 #define MC_CMD_GET_CAPABILITIES_OUT_VXLAN_NVGRE_OFST 0 13701 #define MC_CMD_GET_CAPABILITIES_OUT_VXLAN_NVGRE_LBN 31 13702 #define MC_CMD_GET_CAPABILITIES_OUT_VXLAN_NVGRE_WIDTH 1 13703 /* RxDPCPU firmware id. */ 13704 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DPCPU_FW_ID_OFST 4 13705 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DPCPU_FW_ID_LEN 2 13706 /* enum: Standard RXDP firmware */ 13707 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP 0x0 13708 /* enum: Low latency RXDP firmware */ 13709 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_LOW_LATENCY 0x1 13710 /* enum: Packed stream RXDP firmware */ 13711 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_PACKED_STREAM 0x2 13712 /* enum: Rules engine RXDP firmware */ 13713 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_RULES_ENGINE 0x5 13714 /* enum: DPDK RXDP firmware */ 13715 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_DPDK 0x6 13716 /* enum: BIST RXDP firmware */ 13717 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_BIST 0x10a 13718 /* enum: RXDP Test firmware image 1 */ 13719 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 13720 /* enum: RXDP Test firmware image 2 */ 13721 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 13722 /* enum: RXDP Test firmware image 3 */ 13723 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 13724 /* enum: RXDP Test firmware image 4 */ 13725 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 13726 /* enum: RXDP Test firmware image 5 */ 13727 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_BACKPRESSURE 0x105 13728 /* enum: RXDP Test firmware image 6 */ 13729 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 13730 /* enum: RXDP Test firmware image 7 */ 13731 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 13732 /* enum: RXDP Test firmware image 8 */ 13733 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 13734 /* enum: RXDP Test firmware image 9 */ 13735 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 13736 /* enum: RXDP Test firmware image 10 */ 13737 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_SLOW 0x10c 13738 /* TxDPCPU firmware id. */ 13739 #define MC_CMD_GET_CAPABILITIES_OUT_TX_DPCPU_FW_ID_OFST 6 13740 #define MC_CMD_GET_CAPABILITIES_OUT_TX_DPCPU_FW_ID_LEN 2 13741 /* enum: Standard TXDP firmware */ 13742 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP 0x0 13743 /* enum: Low latency TXDP firmware */ 13744 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_LOW_LATENCY 0x1 13745 /* enum: High packet rate TXDP firmware */ 13746 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_HIGH_PACKET_RATE 0x3 13747 /* enum: Rules engine TXDP firmware */ 13748 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_RULES_ENGINE 0x5 13749 /* enum: DPDK TXDP firmware */ 13750 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_DPDK 0x6 13751 /* enum: BIST TXDP firmware */ 13752 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_BIST 0x12d 13753 /* enum: TXDP Test firmware image 1 */ 13754 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 13755 /* enum: TXDP Test firmware image 2 */ 13756 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 13757 /* enum: TXDP CSR bus test firmware */ 13758 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_TEST_FW_CSR 0x103 13759 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_OFST 8 13760 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_LEN 2 13761 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_REV_OFST 8 13762 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_REV_LBN 0 13763 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_REV_WIDTH 12 13764 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_TYPE_OFST 8 13765 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_TYPE_LBN 12 13766 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 13767 /* enum: reserved value - do not use (may indicate alternative interpretation 13768 * of REV field in future) 13769 */ 13770 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_RESERVED 0x0 13771 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 13772 * development only) 13773 */ 13774 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 13775 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 13776 */ 13777 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 13778 /* enum: RX PD firmware with approximately Siena-compatible behaviour 13779 * (Huntington development only) 13780 */ 13781 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 13782 /* enum: Full featured RX PD production firmware */ 13783 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 13784 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 13785 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_VSWITCH 0x3 13786 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 13787 * (Huntington development only) 13788 */ 13789 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 13790 /* enum: Low latency RX PD production firmware */ 13791 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 13792 /* enum: Packed stream RX PD production firmware */ 13793 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 13794 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 13795 * tests (Medford development only) 13796 */ 13797 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 13798 /* enum: Rules engine RX PD production firmware */ 13799 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 13800 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 13801 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_L3XUDP 0x9 13802 /* enum: DPDK RX PD production firmware */ 13803 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_DPDK 0xa 13804 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 13805 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 13806 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 13807 * encapsulations (Medford development only) 13808 */ 13809 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 13810 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_OFST 10 13811 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_LEN 2 13812 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_REV_OFST 10 13813 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_REV_LBN 0 13814 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_REV_WIDTH 12 13815 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_TYPE_OFST 10 13816 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_TYPE_LBN 12 13817 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 13818 /* enum: reserved value - do not use (may indicate alternative interpretation 13819 * of REV field in future) 13820 */ 13821 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_RESERVED 0x0 13822 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 13823 * development only) 13824 */ 13825 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 13826 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 13827 */ 13828 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 13829 /* enum: TX PD firmware with approximately Siena-compatible behaviour 13830 * (Huntington development only) 13831 */ 13832 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 13833 /* enum: Full featured TX PD production firmware */ 13834 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 13835 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 13836 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_VSWITCH 0x3 13837 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 13838 * (Huntington development only) 13839 */ 13840 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 13841 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 13842 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 13843 * tests (Medford development only) 13844 */ 13845 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 13846 /* enum: Rules engine TX PD production firmware */ 13847 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 13848 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 13849 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_L3XUDP 0x9 13850 /* enum: DPDK TX PD production firmware */ 13851 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_DPDK 0xa 13852 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 13853 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 13854 /* Hardware capabilities of NIC */ 13855 #define MC_CMD_GET_CAPABILITIES_OUT_HW_CAPABILITIES_OFST 12 13856 #define MC_CMD_GET_CAPABILITIES_OUT_HW_CAPABILITIES_LEN 4 13857 /* Licensed capabilities */ 13858 #define MC_CMD_GET_CAPABILITIES_OUT_LICENSE_CAPABILITIES_OFST 16 13859 #define MC_CMD_GET_CAPABILITIES_OUT_LICENSE_CAPABILITIES_LEN 4 13860 13861 /* MC_CMD_GET_CAPABILITIES_V2_IN msgrequest */ 13862 #define MC_CMD_GET_CAPABILITIES_V2_IN_LEN 0 13863 13864 /* MC_CMD_GET_CAPABILITIES_V2_OUT msgresponse */ 13865 #define MC_CMD_GET_CAPABILITIES_V2_OUT_LEN 72 13866 /* First word of flags. */ 13867 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS1_OFST 0 13868 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS1_LEN 4 13869 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VPORT_RECONFIGURE_OFST 0 13870 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VPORT_RECONFIGURE_LBN 3 13871 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VPORT_RECONFIGURE_WIDTH 1 13872 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_STRIPING_OFST 0 13873 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_STRIPING_LBN 4 13874 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_STRIPING_WIDTH 1 13875 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_QUERY_OFST 0 13876 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_QUERY_LBN 5 13877 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_QUERY_WIDTH 1 13878 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 13879 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 13880 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 13881 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DRV_ATTACH_PREBOOT_OFST 0 13882 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DRV_ATTACH_PREBOOT_LBN 7 13883 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 13884 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_FORCE_EVENT_MERGING_OFST 0 13885 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_FORCE_EVENT_MERGING_LBN 8 13886 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 13887 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SET_MAC_ENHANCED_OFST 0 13888 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SET_MAC_ENHANCED_LBN 9 13889 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SET_MAC_ENHANCED_WIDTH 1 13890 #define MC_CMD_GET_CAPABILITIES_V2_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 13891 #define MC_CMD_GET_CAPABILITIES_V2_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 13892 #define MC_CMD_GET_CAPABILITIES_V2_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 13893 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 13894 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 13895 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 13896 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 13897 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 13898 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 13899 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ADDITIONAL_RSS_MODES_OFST 0 13900 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ADDITIONAL_RSS_MODES_LBN 13 13901 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 13902 #define MC_CMD_GET_CAPABILITIES_V2_OUT_QBB_OFST 0 13903 #define MC_CMD_GET_CAPABILITIES_V2_OUT_QBB_LBN 14 13904 #define MC_CMD_GET_CAPABILITIES_V2_OUT_QBB_WIDTH 1 13905 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 13906 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 13907 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 13908 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_RSS_LIMITED_OFST 0 13909 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_RSS_LIMITED_LBN 16 13910 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_RSS_LIMITED_WIDTH 1 13911 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_OFST 0 13912 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_LBN 17 13913 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_WIDTH 1 13914 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_INCLUDE_FCS_OFST 0 13915 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_INCLUDE_FCS_LBN 18 13916 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_INCLUDE_FCS_WIDTH 1 13917 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VLAN_INSERTION_OFST 0 13918 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VLAN_INSERTION_LBN 19 13919 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VLAN_INSERTION_WIDTH 1 13920 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_VLAN_STRIPPING_OFST 0 13921 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_VLAN_STRIPPING_LBN 20 13922 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_VLAN_STRIPPING_WIDTH 1 13923 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_OFST 0 13924 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_LBN 21 13925 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_WIDTH 1 13926 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_0_OFST 0 13927 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_0_LBN 22 13928 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_0_WIDTH 1 13929 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_14_OFST 0 13930 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_14_LBN 23 13931 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_14_WIDTH 1 13932 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_TIMESTAMP_OFST 0 13933 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_TIMESTAMP_LBN 24 13934 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_TIMESTAMP_WIDTH 1 13935 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_BATCHING_OFST 0 13936 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_BATCHING_LBN 25 13937 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_BATCHING_WIDTH 1 13938 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCAST_FILTER_CHAINING_OFST 0 13939 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCAST_FILTER_CHAINING_LBN 26 13940 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCAST_FILTER_CHAINING_WIDTH 1 13941 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PM_AND_RXDP_COUNTERS_OFST 0 13942 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PM_AND_RXDP_COUNTERS_LBN 27 13943 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 13944 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DISABLE_SCATTER_OFST 0 13945 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DISABLE_SCATTER_LBN 28 13946 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DISABLE_SCATTER_WIDTH 1 13947 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 13948 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 13949 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 13950 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_OFST 0 13951 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_LBN 30 13952 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_WIDTH 1 13953 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VXLAN_NVGRE_OFST 0 13954 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VXLAN_NVGRE_LBN 31 13955 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VXLAN_NVGRE_WIDTH 1 13956 /* RxDPCPU firmware id. */ 13957 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DPCPU_FW_ID_OFST 4 13958 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DPCPU_FW_ID_LEN 2 13959 /* enum: Standard RXDP firmware */ 13960 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP 0x0 13961 /* enum: Low latency RXDP firmware */ 13962 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_LOW_LATENCY 0x1 13963 /* enum: Packed stream RXDP firmware */ 13964 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_PACKED_STREAM 0x2 13965 /* enum: Rules engine RXDP firmware */ 13966 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_RULES_ENGINE 0x5 13967 /* enum: DPDK RXDP firmware */ 13968 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_DPDK 0x6 13969 /* enum: BIST RXDP firmware */ 13970 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_BIST 0x10a 13971 /* enum: RXDP Test firmware image 1 */ 13972 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 13973 /* enum: RXDP Test firmware image 2 */ 13974 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 13975 /* enum: RXDP Test firmware image 3 */ 13976 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 13977 /* enum: RXDP Test firmware image 4 */ 13978 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 13979 /* enum: RXDP Test firmware image 5 */ 13980 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_BACKPRESSURE 0x105 13981 /* enum: RXDP Test firmware image 6 */ 13982 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 13983 /* enum: RXDP Test firmware image 7 */ 13984 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 13985 /* enum: RXDP Test firmware image 8 */ 13986 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 13987 /* enum: RXDP Test firmware image 9 */ 13988 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 13989 /* enum: RXDP Test firmware image 10 */ 13990 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_SLOW 0x10c 13991 /* TxDPCPU firmware id. */ 13992 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DPCPU_FW_ID_OFST 6 13993 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DPCPU_FW_ID_LEN 2 13994 /* enum: Standard TXDP firmware */ 13995 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP 0x0 13996 /* enum: Low latency TXDP firmware */ 13997 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_LOW_LATENCY 0x1 13998 /* enum: High packet rate TXDP firmware */ 13999 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_HIGH_PACKET_RATE 0x3 14000 /* enum: Rules engine TXDP firmware */ 14001 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_RULES_ENGINE 0x5 14002 /* enum: DPDK TXDP firmware */ 14003 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_DPDK 0x6 14004 /* enum: BIST TXDP firmware */ 14005 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_BIST 0x12d 14006 /* enum: TXDP Test firmware image 1 */ 14007 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 14008 /* enum: TXDP Test firmware image 2 */ 14009 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 14010 /* enum: TXDP CSR bus test firmware */ 14011 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_TEST_FW_CSR 0x103 14012 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_OFST 8 14013 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_LEN 2 14014 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_REV_OFST 8 14015 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_REV_LBN 0 14016 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_REV_WIDTH 12 14017 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_TYPE_OFST 8 14018 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_TYPE_LBN 12 14019 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 14020 /* enum: reserved value - do not use (may indicate alternative interpretation 14021 * of REV field in future) 14022 */ 14023 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_RESERVED 0x0 14024 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 14025 * development only) 14026 */ 14027 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 14028 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 14029 */ 14030 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 14031 /* enum: RX PD firmware with approximately Siena-compatible behaviour 14032 * (Huntington development only) 14033 */ 14034 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 14035 /* enum: Full featured RX PD production firmware */ 14036 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 14037 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 14038 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_VSWITCH 0x3 14039 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 14040 * (Huntington development only) 14041 */ 14042 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 14043 /* enum: Low latency RX PD production firmware */ 14044 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 14045 /* enum: Packed stream RX PD production firmware */ 14046 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 14047 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 14048 * tests (Medford development only) 14049 */ 14050 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 14051 /* enum: Rules engine RX PD production firmware */ 14052 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 14053 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 14054 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_L3XUDP 0x9 14055 /* enum: DPDK RX PD production firmware */ 14056 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_DPDK 0xa 14057 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 14058 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 14059 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 14060 * encapsulations (Medford development only) 14061 */ 14062 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 14063 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_OFST 10 14064 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_LEN 2 14065 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_REV_OFST 10 14066 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_REV_LBN 0 14067 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_REV_WIDTH 12 14068 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_TYPE_OFST 10 14069 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_TYPE_LBN 12 14070 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 14071 /* enum: reserved value - do not use (may indicate alternative interpretation 14072 * of REV field in future) 14073 */ 14074 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_RESERVED 0x0 14075 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 14076 * development only) 14077 */ 14078 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 14079 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 14080 */ 14081 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 14082 /* enum: TX PD firmware with approximately Siena-compatible behaviour 14083 * (Huntington development only) 14084 */ 14085 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 14086 /* enum: Full featured TX PD production firmware */ 14087 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 14088 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 14089 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_VSWITCH 0x3 14090 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 14091 * (Huntington development only) 14092 */ 14093 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 14094 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 14095 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 14096 * tests (Medford development only) 14097 */ 14098 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 14099 /* enum: Rules engine TX PD production firmware */ 14100 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 14101 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 14102 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_L3XUDP 0x9 14103 /* enum: DPDK TX PD production firmware */ 14104 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_DPDK 0xa 14105 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 14106 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 14107 /* Hardware capabilities of NIC */ 14108 #define MC_CMD_GET_CAPABILITIES_V2_OUT_HW_CAPABILITIES_OFST 12 14109 #define MC_CMD_GET_CAPABILITIES_V2_OUT_HW_CAPABILITIES_LEN 4 14110 /* Licensed capabilities */ 14111 #define MC_CMD_GET_CAPABILITIES_V2_OUT_LICENSE_CAPABILITIES_OFST 16 14112 #define MC_CMD_GET_CAPABILITIES_V2_OUT_LICENSE_CAPABILITIES_LEN 4 14113 /* Second word of flags. Not present on older firmware (check the length). */ 14114 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS2_OFST 20 14115 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS2_LEN 4 14116 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_OFST 20 14117 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_LBN 0 14118 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_WIDTH 1 14119 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_ENCAP_OFST 20 14120 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_ENCAP_LBN 1 14121 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_ENCAP_WIDTH 1 14122 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVQ_TIMER_CTRL_OFST 20 14123 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVQ_TIMER_CTRL_LBN 2 14124 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVQ_TIMER_CTRL_WIDTH 1 14125 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVENT_CUT_THROUGH_OFST 20 14126 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVENT_CUT_THROUGH_LBN 3 14127 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVENT_CUT_THROUGH_WIDTH 1 14128 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_CUT_THROUGH_OFST 20 14129 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_CUT_THROUGH_LBN 4 14130 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_CUT_THROUGH_WIDTH 1 14131 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VFIFO_ULL_MODE_OFST 20 14132 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VFIFO_ULL_MODE_LBN 5 14133 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 14134 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 14135 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 14136 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 14137 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 14138 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 14139 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 14140 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_V2_OFST 20 14141 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_V2_LBN 7 14142 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_V2_WIDTH 1 14143 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_TIMESTAMPING_OFST 20 14144 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_TIMESTAMPING_LBN 8 14145 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 14146 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TIMESTAMP_OFST 20 14147 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TIMESTAMP_LBN 9 14148 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TIMESTAMP_WIDTH 1 14149 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_SNIFF_OFST 20 14150 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_SNIFF_LBN 10 14151 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_SNIFF_WIDTH 1 14152 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_SNIFF_OFST 20 14153 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_SNIFF_LBN 11 14154 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_SNIFF_WIDTH 1 14155 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 14156 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 14157 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 14158 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_BACKGROUND_OFST 20 14159 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_BACKGROUND_LBN 13 14160 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_BACKGROUND_WIDTH 1 14161 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_DB_RETURN_OFST 20 14162 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_DB_RETURN_LBN 14 14163 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_DB_RETURN_WIDTH 1 14164 #define MC_CMD_GET_CAPABILITIES_V2_OUT_CTPIO_OFST 20 14165 #define MC_CMD_GET_CAPABILITIES_V2_OUT_CTPIO_LBN 15 14166 #define MC_CMD_GET_CAPABILITIES_V2_OUT_CTPIO_WIDTH 1 14167 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_SUPPORT_OFST 20 14168 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_SUPPORT_LBN 16 14169 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_SUPPORT_WIDTH 1 14170 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_BOUND_OFST 20 14171 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_BOUND_LBN 17 14172 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_BOUND_WIDTH 1 14173 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 14174 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 14175 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 14176 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_FLAG_OFST 20 14177 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_FLAG_LBN 19 14178 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_FLAG_WIDTH 1 14179 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_MARK_OFST 20 14180 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_MARK_LBN 20 14181 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_MARK_WIDTH 1 14182 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 14183 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 14184 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 14185 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 14186 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 14187 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 14188 #define MC_CMD_GET_CAPABILITIES_V2_OUT_L3XUDP_SUPPORT_OFST 20 14189 #define MC_CMD_GET_CAPABILITIES_V2_OUT_L3XUDP_SUPPORT_LBN 22 14190 #define MC_CMD_GET_CAPABILITIES_V2_OUT_L3XUDP_SUPPORT_WIDTH 1 14191 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 14192 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 14193 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 14194 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VI_SPREADING_OFST 20 14195 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VI_SPREADING_LBN 24 14196 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VI_SPREADING_WIDTH 1 14197 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_HLB_IDLE_OFST 20 14198 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_HLB_IDLE_LBN 25 14199 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_HLB_IDLE_WIDTH 1 14200 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 14201 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 14202 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 14203 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 14204 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 14205 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 14206 #define MC_CMD_GET_CAPABILITIES_V2_OUT_BUNDLE_UPDATE_OFST 20 14207 #define MC_CMD_GET_CAPABILITIES_V2_OUT_BUNDLE_UPDATE_LBN 28 14208 #define MC_CMD_GET_CAPABILITIES_V2_OUT_BUNDLE_UPDATE_WIDTH 1 14209 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V3_OFST 20 14210 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V3_LBN 29 14211 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V3_WIDTH 1 14212 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DYNAMIC_SENSORS_OFST 20 14213 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DYNAMIC_SENSORS_LBN 30 14214 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DYNAMIC_SENSORS_WIDTH 1 14215 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 14216 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 14217 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 14218 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 14219 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 14220 */ 14221 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 14222 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 14223 /* One byte per PF containing the number of the external port assigned to this 14224 * PF, indexed by PF number. Special values indicate that a PF is either not 14225 * present or not assigned. 14226 */ 14227 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 14228 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 14229 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 14230 /* enum: The caller is not permitted to access information on this PF. */ 14231 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ACCESS_NOT_PERMITTED 0xff 14232 /* enum: PF does not exist. */ 14233 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PF_NOT_PRESENT 0xfe 14234 /* enum: PF does exist but is not assigned to any external port. */ 14235 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PF_NOT_ASSIGNED 0xfd 14236 /* enum: This value indicates that PF is assigned, but it cannot be expressed 14237 * in this field. It is intended for a possible future situation where a more 14238 * complex scheme of PFs to ports mapping is being used. The future driver 14239 * should look for a new field supporting the new scheme. The current/old 14240 * driver should treat this value as PF_NOT_ASSIGNED. 14241 */ 14242 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 14243 /* One byte per PF containing the number of its VFs, indexed by PF number. A 14244 * special value indicates that a PF is not present. 14245 */ 14246 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VFS_PER_PF_OFST 42 14247 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VFS_PER_PF_LEN 1 14248 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VFS_PER_PF_NUM 16 14249 /* enum: The caller is not permitted to access information on this PF. */ 14250 /* MC_CMD_GET_CAPABILITIES_V2_OUT_ACCESS_NOT_PERMITTED 0xff */ 14251 /* enum: PF does not exist. */ 14252 /* MC_CMD_GET_CAPABILITIES_V2_OUT_PF_NOT_PRESENT 0xfe */ 14253 /* Number of VIs available for external ports 0-3. For devices with more than 14254 * four ports, the remainder are in NUM_VIS_PER_PORT2 in 14255 * GET_CAPABILITIES_V12_OUT. 14256 */ 14257 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VIS_PER_PORT_OFST 58 14258 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VIS_PER_PORT_LEN 2 14259 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VIS_PER_PORT_NUM 4 14260 /* Size of RX descriptor cache expressed as binary logarithm The actual size 14261 * equals (2 ^ RX_DESC_CACHE_SIZE) 14262 */ 14263 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DESC_CACHE_SIZE_OFST 66 14264 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DESC_CACHE_SIZE_LEN 1 14265 /* Size of TX descriptor cache expressed as binary logarithm The actual size 14266 * equals (2 ^ TX_DESC_CACHE_SIZE) 14267 */ 14268 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DESC_CACHE_SIZE_OFST 67 14269 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DESC_CACHE_SIZE_LEN 1 14270 /* Total number of available PIO buffers */ 14271 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_PIO_BUFFS_OFST 68 14272 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_PIO_BUFFS_LEN 2 14273 /* Size of a single PIO buffer */ 14274 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SIZE_PIO_BUFF_OFST 70 14275 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SIZE_PIO_BUFF_LEN 2 14276 14277 /* MC_CMD_GET_CAPABILITIES_V3_OUT msgresponse */ 14278 #define MC_CMD_GET_CAPABILITIES_V3_OUT_LEN 76 14279 /* First word of flags. */ 14280 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS1_OFST 0 14281 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS1_LEN 4 14282 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VPORT_RECONFIGURE_OFST 0 14283 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VPORT_RECONFIGURE_LBN 3 14284 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VPORT_RECONFIGURE_WIDTH 1 14285 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_STRIPING_OFST 0 14286 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_STRIPING_LBN 4 14287 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_STRIPING_WIDTH 1 14288 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_QUERY_OFST 0 14289 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_QUERY_LBN 5 14290 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_QUERY_WIDTH 1 14291 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 14292 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 14293 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 14294 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DRV_ATTACH_PREBOOT_OFST 0 14295 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DRV_ATTACH_PREBOOT_LBN 7 14296 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 14297 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_FORCE_EVENT_MERGING_OFST 0 14298 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_FORCE_EVENT_MERGING_LBN 8 14299 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 14300 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SET_MAC_ENHANCED_OFST 0 14301 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SET_MAC_ENHANCED_LBN 9 14302 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SET_MAC_ENHANCED_WIDTH 1 14303 #define MC_CMD_GET_CAPABILITIES_V3_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 14304 #define MC_CMD_GET_CAPABILITIES_V3_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 14305 #define MC_CMD_GET_CAPABILITIES_V3_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 14306 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 14307 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 14308 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 14309 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 14310 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 14311 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 14312 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ADDITIONAL_RSS_MODES_OFST 0 14313 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ADDITIONAL_RSS_MODES_LBN 13 14314 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 14315 #define MC_CMD_GET_CAPABILITIES_V3_OUT_QBB_OFST 0 14316 #define MC_CMD_GET_CAPABILITIES_V3_OUT_QBB_LBN 14 14317 #define MC_CMD_GET_CAPABILITIES_V3_OUT_QBB_WIDTH 1 14318 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 14319 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 14320 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 14321 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_RSS_LIMITED_OFST 0 14322 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_RSS_LIMITED_LBN 16 14323 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_RSS_LIMITED_WIDTH 1 14324 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_OFST 0 14325 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_LBN 17 14326 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_WIDTH 1 14327 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_INCLUDE_FCS_OFST 0 14328 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_INCLUDE_FCS_LBN 18 14329 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_INCLUDE_FCS_WIDTH 1 14330 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VLAN_INSERTION_OFST 0 14331 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VLAN_INSERTION_LBN 19 14332 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VLAN_INSERTION_WIDTH 1 14333 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_VLAN_STRIPPING_OFST 0 14334 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_VLAN_STRIPPING_LBN 20 14335 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_VLAN_STRIPPING_WIDTH 1 14336 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_OFST 0 14337 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_LBN 21 14338 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_WIDTH 1 14339 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_0_OFST 0 14340 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_0_LBN 22 14341 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_0_WIDTH 1 14342 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_14_OFST 0 14343 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_14_LBN 23 14344 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_14_WIDTH 1 14345 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_TIMESTAMP_OFST 0 14346 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_TIMESTAMP_LBN 24 14347 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_TIMESTAMP_WIDTH 1 14348 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_BATCHING_OFST 0 14349 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_BATCHING_LBN 25 14350 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_BATCHING_WIDTH 1 14351 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCAST_FILTER_CHAINING_OFST 0 14352 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCAST_FILTER_CHAINING_LBN 26 14353 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCAST_FILTER_CHAINING_WIDTH 1 14354 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PM_AND_RXDP_COUNTERS_OFST 0 14355 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PM_AND_RXDP_COUNTERS_LBN 27 14356 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 14357 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DISABLE_SCATTER_OFST 0 14358 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DISABLE_SCATTER_LBN 28 14359 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DISABLE_SCATTER_WIDTH 1 14360 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 14361 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 14362 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 14363 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_OFST 0 14364 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_LBN 30 14365 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_WIDTH 1 14366 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VXLAN_NVGRE_OFST 0 14367 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VXLAN_NVGRE_LBN 31 14368 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VXLAN_NVGRE_WIDTH 1 14369 /* RxDPCPU firmware id. */ 14370 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DPCPU_FW_ID_OFST 4 14371 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DPCPU_FW_ID_LEN 2 14372 /* enum: Standard RXDP firmware */ 14373 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP 0x0 14374 /* enum: Low latency RXDP firmware */ 14375 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_LOW_LATENCY 0x1 14376 /* enum: Packed stream RXDP firmware */ 14377 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_PACKED_STREAM 0x2 14378 /* enum: Rules engine RXDP firmware */ 14379 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_RULES_ENGINE 0x5 14380 /* enum: DPDK RXDP firmware */ 14381 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_DPDK 0x6 14382 /* enum: BIST RXDP firmware */ 14383 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_BIST 0x10a 14384 /* enum: RXDP Test firmware image 1 */ 14385 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 14386 /* enum: RXDP Test firmware image 2 */ 14387 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 14388 /* enum: RXDP Test firmware image 3 */ 14389 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 14390 /* enum: RXDP Test firmware image 4 */ 14391 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 14392 /* enum: RXDP Test firmware image 5 */ 14393 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_BACKPRESSURE 0x105 14394 /* enum: RXDP Test firmware image 6 */ 14395 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 14396 /* enum: RXDP Test firmware image 7 */ 14397 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 14398 /* enum: RXDP Test firmware image 8 */ 14399 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 14400 /* enum: RXDP Test firmware image 9 */ 14401 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 14402 /* enum: RXDP Test firmware image 10 */ 14403 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_SLOW 0x10c 14404 /* TxDPCPU firmware id. */ 14405 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DPCPU_FW_ID_OFST 6 14406 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DPCPU_FW_ID_LEN 2 14407 /* enum: Standard TXDP firmware */ 14408 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP 0x0 14409 /* enum: Low latency TXDP firmware */ 14410 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_LOW_LATENCY 0x1 14411 /* enum: High packet rate TXDP firmware */ 14412 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_HIGH_PACKET_RATE 0x3 14413 /* enum: Rules engine TXDP firmware */ 14414 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_RULES_ENGINE 0x5 14415 /* enum: DPDK TXDP firmware */ 14416 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_DPDK 0x6 14417 /* enum: BIST TXDP firmware */ 14418 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_BIST 0x12d 14419 /* enum: TXDP Test firmware image 1 */ 14420 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 14421 /* enum: TXDP Test firmware image 2 */ 14422 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 14423 /* enum: TXDP CSR bus test firmware */ 14424 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_TEST_FW_CSR 0x103 14425 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_OFST 8 14426 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_LEN 2 14427 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_REV_OFST 8 14428 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_REV_LBN 0 14429 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_REV_WIDTH 12 14430 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_TYPE_OFST 8 14431 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_TYPE_LBN 12 14432 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 14433 /* enum: reserved value - do not use (may indicate alternative interpretation 14434 * of REV field in future) 14435 */ 14436 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_RESERVED 0x0 14437 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 14438 * development only) 14439 */ 14440 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 14441 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 14442 */ 14443 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 14444 /* enum: RX PD firmware with approximately Siena-compatible behaviour 14445 * (Huntington development only) 14446 */ 14447 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 14448 /* enum: Full featured RX PD production firmware */ 14449 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 14450 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 14451 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_VSWITCH 0x3 14452 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 14453 * (Huntington development only) 14454 */ 14455 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 14456 /* enum: Low latency RX PD production firmware */ 14457 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 14458 /* enum: Packed stream RX PD production firmware */ 14459 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 14460 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 14461 * tests (Medford development only) 14462 */ 14463 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 14464 /* enum: Rules engine RX PD production firmware */ 14465 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 14466 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 14467 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_L3XUDP 0x9 14468 /* enum: DPDK RX PD production firmware */ 14469 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_DPDK 0xa 14470 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 14471 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 14472 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 14473 * encapsulations (Medford development only) 14474 */ 14475 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 14476 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_OFST 10 14477 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_LEN 2 14478 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_REV_OFST 10 14479 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_REV_LBN 0 14480 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_REV_WIDTH 12 14481 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_TYPE_OFST 10 14482 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_TYPE_LBN 12 14483 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 14484 /* enum: reserved value - do not use (may indicate alternative interpretation 14485 * of REV field in future) 14486 */ 14487 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_RESERVED 0x0 14488 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 14489 * development only) 14490 */ 14491 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 14492 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 14493 */ 14494 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 14495 /* enum: TX PD firmware with approximately Siena-compatible behaviour 14496 * (Huntington development only) 14497 */ 14498 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 14499 /* enum: Full featured TX PD production firmware */ 14500 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 14501 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 14502 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_VSWITCH 0x3 14503 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 14504 * (Huntington development only) 14505 */ 14506 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 14507 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 14508 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 14509 * tests (Medford development only) 14510 */ 14511 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 14512 /* enum: Rules engine TX PD production firmware */ 14513 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 14514 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 14515 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_L3XUDP 0x9 14516 /* enum: DPDK TX PD production firmware */ 14517 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_DPDK 0xa 14518 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 14519 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 14520 /* Hardware capabilities of NIC */ 14521 #define MC_CMD_GET_CAPABILITIES_V3_OUT_HW_CAPABILITIES_OFST 12 14522 #define MC_CMD_GET_CAPABILITIES_V3_OUT_HW_CAPABILITIES_LEN 4 14523 /* Licensed capabilities */ 14524 #define MC_CMD_GET_CAPABILITIES_V3_OUT_LICENSE_CAPABILITIES_OFST 16 14525 #define MC_CMD_GET_CAPABILITIES_V3_OUT_LICENSE_CAPABILITIES_LEN 4 14526 /* Second word of flags. Not present on older firmware (check the length). */ 14527 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS2_OFST 20 14528 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS2_LEN 4 14529 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_OFST 20 14530 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_LBN 0 14531 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_WIDTH 1 14532 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_ENCAP_OFST 20 14533 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_ENCAP_LBN 1 14534 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_ENCAP_WIDTH 1 14535 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVQ_TIMER_CTRL_OFST 20 14536 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVQ_TIMER_CTRL_LBN 2 14537 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVQ_TIMER_CTRL_WIDTH 1 14538 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVENT_CUT_THROUGH_OFST 20 14539 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVENT_CUT_THROUGH_LBN 3 14540 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVENT_CUT_THROUGH_WIDTH 1 14541 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_CUT_THROUGH_OFST 20 14542 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_CUT_THROUGH_LBN 4 14543 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_CUT_THROUGH_WIDTH 1 14544 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VFIFO_ULL_MODE_OFST 20 14545 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VFIFO_ULL_MODE_LBN 5 14546 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 14547 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 14548 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 14549 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 14550 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 14551 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 14552 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 14553 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_V2_OFST 20 14554 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_V2_LBN 7 14555 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_V2_WIDTH 1 14556 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_TIMESTAMPING_OFST 20 14557 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_TIMESTAMPING_LBN 8 14558 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 14559 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TIMESTAMP_OFST 20 14560 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TIMESTAMP_LBN 9 14561 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TIMESTAMP_WIDTH 1 14562 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_SNIFF_OFST 20 14563 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_SNIFF_LBN 10 14564 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_SNIFF_WIDTH 1 14565 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_SNIFF_OFST 20 14566 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_SNIFF_LBN 11 14567 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_SNIFF_WIDTH 1 14568 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 14569 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 14570 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 14571 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_BACKGROUND_OFST 20 14572 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_BACKGROUND_LBN 13 14573 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_BACKGROUND_WIDTH 1 14574 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_DB_RETURN_OFST 20 14575 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_DB_RETURN_LBN 14 14576 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_DB_RETURN_WIDTH 1 14577 #define MC_CMD_GET_CAPABILITIES_V3_OUT_CTPIO_OFST 20 14578 #define MC_CMD_GET_CAPABILITIES_V3_OUT_CTPIO_LBN 15 14579 #define MC_CMD_GET_CAPABILITIES_V3_OUT_CTPIO_WIDTH 1 14580 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_SUPPORT_OFST 20 14581 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_SUPPORT_LBN 16 14582 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_SUPPORT_WIDTH 1 14583 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_BOUND_OFST 20 14584 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_BOUND_LBN 17 14585 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_BOUND_WIDTH 1 14586 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 14587 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 14588 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 14589 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_FLAG_OFST 20 14590 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_FLAG_LBN 19 14591 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_FLAG_WIDTH 1 14592 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_MARK_OFST 20 14593 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_MARK_LBN 20 14594 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_MARK_WIDTH 1 14595 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 14596 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 14597 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 14598 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 14599 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 14600 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 14601 #define MC_CMD_GET_CAPABILITIES_V3_OUT_L3XUDP_SUPPORT_OFST 20 14602 #define MC_CMD_GET_CAPABILITIES_V3_OUT_L3XUDP_SUPPORT_LBN 22 14603 #define MC_CMD_GET_CAPABILITIES_V3_OUT_L3XUDP_SUPPORT_WIDTH 1 14604 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 14605 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 14606 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 14607 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_SPREADING_OFST 20 14608 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_SPREADING_LBN 24 14609 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_SPREADING_WIDTH 1 14610 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_HLB_IDLE_OFST 20 14611 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_HLB_IDLE_LBN 25 14612 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_HLB_IDLE_WIDTH 1 14613 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 14614 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 14615 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 14616 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 14617 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 14618 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 14619 #define MC_CMD_GET_CAPABILITIES_V3_OUT_BUNDLE_UPDATE_OFST 20 14620 #define MC_CMD_GET_CAPABILITIES_V3_OUT_BUNDLE_UPDATE_LBN 28 14621 #define MC_CMD_GET_CAPABILITIES_V3_OUT_BUNDLE_UPDATE_WIDTH 1 14622 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V3_OFST 20 14623 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V3_LBN 29 14624 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V3_WIDTH 1 14625 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DYNAMIC_SENSORS_OFST 20 14626 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DYNAMIC_SENSORS_LBN 30 14627 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DYNAMIC_SENSORS_WIDTH 1 14628 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 14629 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 14630 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 14631 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 14632 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 14633 */ 14634 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 14635 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 14636 /* One byte per PF containing the number of the external port assigned to this 14637 * PF, indexed by PF number. Special values indicate that a PF is either not 14638 * present or not assigned. 14639 */ 14640 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 14641 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 14642 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 14643 /* enum: The caller is not permitted to access information on this PF. */ 14644 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ACCESS_NOT_PERMITTED 0xff 14645 /* enum: PF does not exist. */ 14646 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PF_NOT_PRESENT 0xfe 14647 /* enum: PF does exist but is not assigned to any external port. */ 14648 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PF_NOT_ASSIGNED 0xfd 14649 /* enum: This value indicates that PF is assigned, but it cannot be expressed 14650 * in this field. It is intended for a possible future situation where a more 14651 * complex scheme of PFs to ports mapping is being used. The future driver 14652 * should look for a new field supporting the new scheme. The current/old 14653 * driver should treat this value as PF_NOT_ASSIGNED. 14654 */ 14655 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 14656 /* One byte per PF containing the number of its VFs, indexed by PF number. A 14657 * special value indicates that a PF is not present. 14658 */ 14659 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VFS_PER_PF_OFST 42 14660 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VFS_PER_PF_LEN 1 14661 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VFS_PER_PF_NUM 16 14662 /* enum: The caller is not permitted to access information on this PF. */ 14663 /* MC_CMD_GET_CAPABILITIES_V3_OUT_ACCESS_NOT_PERMITTED 0xff */ 14664 /* enum: PF does not exist. */ 14665 /* MC_CMD_GET_CAPABILITIES_V3_OUT_PF_NOT_PRESENT 0xfe */ 14666 /* Number of VIs available for external ports 0-3. For devices with more than 14667 * four ports, the remainder are in NUM_VIS_PER_PORT2 in 14668 * GET_CAPABILITIES_V12_OUT. 14669 */ 14670 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VIS_PER_PORT_OFST 58 14671 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VIS_PER_PORT_LEN 2 14672 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VIS_PER_PORT_NUM 4 14673 /* Size of RX descriptor cache expressed as binary logarithm The actual size 14674 * equals (2 ^ RX_DESC_CACHE_SIZE) 14675 */ 14676 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DESC_CACHE_SIZE_OFST 66 14677 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DESC_CACHE_SIZE_LEN 1 14678 /* Size of TX descriptor cache expressed as binary logarithm The actual size 14679 * equals (2 ^ TX_DESC_CACHE_SIZE) 14680 */ 14681 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DESC_CACHE_SIZE_OFST 67 14682 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DESC_CACHE_SIZE_LEN 1 14683 /* Total number of available PIO buffers */ 14684 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_PIO_BUFFS_OFST 68 14685 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_PIO_BUFFS_LEN 2 14686 /* Size of a single PIO buffer */ 14687 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SIZE_PIO_BUFF_OFST 70 14688 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SIZE_PIO_BUFF_LEN 2 14689 /* On chips later than Medford the amount of address space assigned to each VI 14690 * is configurable. This is a global setting that the driver must query to 14691 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 14692 * with 8k VI windows. 14693 */ 14694 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_OFST 72 14695 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_LEN 1 14696 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 14697 * CTPIO is not mapped. 14698 */ 14699 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_8K 0x0 14700 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 14701 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_16K 0x1 14702 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 14703 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_64K 0x2 14704 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 14705 * (SF-115995-SW) in the present configuration of firmware and port mode. 14706 */ 14707 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 14708 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 14709 /* Number of buffers per adapter that can be used for VFIFO Stuffing 14710 * (SF-115995-SW) in the present configuration of firmware and port mode. 14711 */ 14712 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 14713 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 14714 14715 /* MC_CMD_GET_CAPABILITIES_V4_OUT msgresponse */ 14716 #define MC_CMD_GET_CAPABILITIES_V4_OUT_LEN 78 14717 /* First word of flags. */ 14718 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS1_OFST 0 14719 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS1_LEN 4 14720 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VPORT_RECONFIGURE_OFST 0 14721 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VPORT_RECONFIGURE_LBN 3 14722 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VPORT_RECONFIGURE_WIDTH 1 14723 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_STRIPING_OFST 0 14724 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_STRIPING_LBN 4 14725 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_STRIPING_WIDTH 1 14726 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_QUERY_OFST 0 14727 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_QUERY_LBN 5 14728 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_QUERY_WIDTH 1 14729 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 14730 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 14731 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 14732 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DRV_ATTACH_PREBOOT_OFST 0 14733 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DRV_ATTACH_PREBOOT_LBN 7 14734 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 14735 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_FORCE_EVENT_MERGING_OFST 0 14736 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_FORCE_EVENT_MERGING_LBN 8 14737 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 14738 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SET_MAC_ENHANCED_OFST 0 14739 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SET_MAC_ENHANCED_LBN 9 14740 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SET_MAC_ENHANCED_WIDTH 1 14741 #define MC_CMD_GET_CAPABILITIES_V4_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 14742 #define MC_CMD_GET_CAPABILITIES_V4_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 14743 #define MC_CMD_GET_CAPABILITIES_V4_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 14744 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 14745 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 14746 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 14747 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 14748 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 14749 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 14750 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ADDITIONAL_RSS_MODES_OFST 0 14751 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ADDITIONAL_RSS_MODES_LBN 13 14752 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 14753 #define MC_CMD_GET_CAPABILITIES_V4_OUT_QBB_OFST 0 14754 #define MC_CMD_GET_CAPABILITIES_V4_OUT_QBB_LBN 14 14755 #define MC_CMD_GET_CAPABILITIES_V4_OUT_QBB_WIDTH 1 14756 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 14757 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 14758 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 14759 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_RSS_LIMITED_OFST 0 14760 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_RSS_LIMITED_LBN 16 14761 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_RSS_LIMITED_WIDTH 1 14762 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_OFST 0 14763 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_LBN 17 14764 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_WIDTH 1 14765 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_INCLUDE_FCS_OFST 0 14766 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_INCLUDE_FCS_LBN 18 14767 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_INCLUDE_FCS_WIDTH 1 14768 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VLAN_INSERTION_OFST 0 14769 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VLAN_INSERTION_LBN 19 14770 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VLAN_INSERTION_WIDTH 1 14771 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_VLAN_STRIPPING_OFST 0 14772 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_VLAN_STRIPPING_LBN 20 14773 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_VLAN_STRIPPING_WIDTH 1 14774 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_OFST 0 14775 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_LBN 21 14776 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_WIDTH 1 14777 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_0_OFST 0 14778 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_0_LBN 22 14779 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_0_WIDTH 1 14780 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_14_OFST 0 14781 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_14_LBN 23 14782 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_14_WIDTH 1 14783 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_TIMESTAMP_OFST 0 14784 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_TIMESTAMP_LBN 24 14785 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_TIMESTAMP_WIDTH 1 14786 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_BATCHING_OFST 0 14787 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_BATCHING_LBN 25 14788 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_BATCHING_WIDTH 1 14789 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCAST_FILTER_CHAINING_OFST 0 14790 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCAST_FILTER_CHAINING_LBN 26 14791 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCAST_FILTER_CHAINING_WIDTH 1 14792 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PM_AND_RXDP_COUNTERS_OFST 0 14793 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PM_AND_RXDP_COUNTERS_LBN 27 14794 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 14795 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DISABLE_SCATTER_OFST 0 14796 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DISABLE_SCATTER_LBN 28 14797 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DISABLE_SCATTER_WIDTH 1 14798 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 14799 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 14800 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 14801 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_OFST 0 14802 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_LBN 30 14803 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_WIDTH 1 14804 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VXLAN_NVGRE_OFST 0 14805 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VXLAN_NVGRE_LBN 31 14806 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VXLAN_NVGRE_WIDTH 1 14807 /* RxDPCPU firmware id. */ 14808 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DPCPU_FW_ID_OFST 4 14809 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DPCPU_FW_ID_LEN 2 14810 /* enum: Standard RXDP firmware */ 14811 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP 0x0 14812 /* enum: Low latency RXDP firmware */ 14813 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_LOW_LATENCY 0x1 14814 /* enum: Packed stream RXDP firmware */ 14815 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_PACKED_STREAM 0x2 14816 /* enum: Rules engine RXDP firmware */ 14817 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_RULES_ENGINE 0x5 14818 /* enum: DPDK RXDP firmware */ 14819 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_DPDK 0x6 14820 /* enum: BIST RXDP firmware */ 14821 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_BIST 0x10a 14822 /* enum: RXDP Test firmware image 1 */ 14823 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 14824 /* enum: RXDP Test firmware image 2 */ 14825 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 14826 /* enum: RXDP Test firmware image 3 */ 14827 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 14828 /* enum: RXDP Test firmware image 4 */ 14829 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 14830 /* enum: RXDP Test firmware image 5 */ 14831 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_BACKPRESSURE 0x105 14832 /* enum: RXDP Test firmware image 6 */ 14833 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 14834 /* enum: RXDP Test firmware image 7 */ 14835 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 14836 /* enum: RXDP Test firmware image 8 */ 14837 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 14838 /* enum: RXDP Test firmware image 9 */ 14839 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 14840 /* enum: RXDP Test firmware image 10 */ 14841 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_SLOW 0x10c 14842 /* TxDPCPU firmware id. */ 14843 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DPCPU_FW_ID_OFST 6 14844 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DPCPU_FW_ID_LEN 2 14845 /* enum: Standard TXDP firmware */ 14846 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP 0x0 14847 /* enum: Low latency TXDP firmware */ 14848 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_LOW_LATENCY 0x1 14849 /* enum: High packet rate TXDP firmware */ 14850 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_HIGH_PACKET_RATE 0x3 14851 /* enum: Rules engine TXDP firmware */ 14852 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_RULES_ENGINE 0x5 14853 /* enum: DPDK TXDP firmware */ 14854 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_DPDK 0x6 14855 /* enum: BIST TXDP firmware */ 14856 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_BIST 0x12d 14857 /* enum: TXDP Test firmware image 1 */ 14858 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 14859 /* enum: TXDP Test firmware image 2 */ 14860 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 14861 /* enum: TXDP CSR bus test firmware */ 14862 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_TEST_FW_CSR 0x103 14863 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_OFST 8 14864 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_LEN 2 14865 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_REV_OFST 8 14866 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_REV_LBN 0 14867 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_REV_WIDTH 12 14868 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_TYPE_OFST 8 14869 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_TYPE_LBN 12 14870 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 14871 /* enum: reserved value - do not use (may indicate alternative interpretation 14872 * of REV field in future) 14873 */ 14874 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_RESERVED 0x0 14875 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 14876 * development only) 14877 */ 14878 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 14879 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 14880 */ 14881 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 14882 /* enum: RX PD firmware with approximately Siena-compatible behaviour 14883 * (Huntington development only) 14884 */ 14885 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 14886 /* enum: Full featured RX PD production firmware */ 14887 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 14888 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 14889 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_VSWITCH 0x3 14890 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 14891 * (Huntington development only) 14892 */ 14893 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 14894 /* enum: Low latency RX PD production firmware */ 14895 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 14896 /* enum: Packed stream RX PD production firmware */ 14897 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 14898 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 14899 * tests (Medford development only) 14900 */ 14901 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 14902 /* enum: Rules engine RX PD production firmware */ 14903 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 14904 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 14905 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_L3XUDP 0x9 14906 /* enum: DPDK RX PD production firmware */ 14907 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_DPDK 0xa 14908 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 14909 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 14910 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 14911 * encapsulations (Medford development only) 14912 */ 14913 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 14914 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_OFST 10 14915 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_LEN 2 14916 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_REV_OFST 10 14917 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_REV_LBN 0 14918 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_REV_WIDTH 12 14919 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_TYPE_OFST 10 14920 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_TYPE_LBN 12 14921 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 14922 /* enum: reserved value - do not use (may indicate alternative interpretation 14923 * of REV field in future) 14924 */ 14925 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_RESERVED 0x0 14926 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 14927 * development only) 14928 */ 14929 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 14930 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 14931 */ 14932 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 14933 /* enum: TX PD firmware with approximately Siena-compatible behaviour 14934 * (Huntington development only) 14935 */ 14936 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 14937 /* enum: Full featured TX PD production firmware */ 14938 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 14939 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 14940 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_VSWITCH 0x3 14941 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 14942 * (Huntington development only) 14943 */ 14944 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 14945 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 14946 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 14947 * tests (Medford development only) 14948 */ 14949 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 14950 /* enum: Rules engine TX PD production firmware */ 14951 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 14952 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 14953 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_L3XUDP 0x9 14954 /* enum: DPDK TX PD production firmware */ 14955 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_DPDK 0xa 14956 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 14957 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 14958 /* Hardware capabilities of NIC */ 14959 #define MC_CMD_GET_CAPABILITIES_V4_OUT_HW_CAPABILITIES_OFST 12 14960 #define MC_CMD_GET_CAPABILITIES_V4_OUT_HW_CAPABILITIES_LEN 4 14961 /* Licensed capabilities */ 14962 #define MC_CMD_GET_CAPABILITIES_V4_OUT_LICENSE_CAPABILITIES_OFST 16 14963 #define MC_CMD_GET_CAPABILITIES_V4_OUT_LICENSE_CAPABILITIES_LEN 4 14964 /* Second word of flags. Not present on older firmware (check the length). */ 14965 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS2_OFST 20 14966 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS2_LEN 4 14967 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_OFST 20 14968 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_LBN 0 14969 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_WIDTH 1 14970 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_ENCAP_OFST 20 14971 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_ENCAP_LBN 1 14972 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_ENCAP_WIDTH 1 14973 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVQ_TIMER_CTRL_OFST 20 14974 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVQ_TIMER_CTRL_LBN 2 14975 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVQ_TIMER_CTRL_WIDTH 1 14976 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVENT_CUT_THROUGH_OFST 20 14977 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVENT_CUT_THROUGH_LBN 3 14978 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVENT_CUT_THROUGH_WIDTH 1 14979 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_CUT_THROUGH_OFST 20 14980 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_CUT_THROUGH_LBN 4 14981 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_CUT_THROUGH_WIDTH 1 14982 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VFIFO_ULL_MODE_OFST 20 14983 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VFIFO_ULL_MODE_LBN 5 14984 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 14985 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 14986 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 14987 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 14988 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 14989 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 14990 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 14991 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_V2_OFST 20 14992 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_V2_LBN 7 14993 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_V2_WIDTH 1 14994 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_TIMESTAMPING_OFST 20 14995 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_TIMESTAMPING_LBN 8 14996 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 14997 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TIMESTAMP_OFST 20 14998 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TIMESTAMP_LBN 9 14999 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TIMESTAMP_WIDTH 1 15000 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_SNIFF_OFST 20 15001 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_SNIFF_LBN 10 15002 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_SNIFF_WIDTH 1 15003 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_SNIFF_OFST 20 15004 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_SNIFF_LBN 11 15005 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_SNIFF_WIDTH 1 15006 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 15007 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 15008 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 15009 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_BACKGROUND_OFST 20 15010 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_BACKGROUND_LBN 13 15011 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_BACKGROUND_WIDTH 1 15012 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_DB_RETURN_OFST 20 15013 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_DB_RETURN_LBN 14 15014 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_DB_RETURN_WIDTH 1 15015 #define MC_CMD_GET_CAPABILITIES_V4_OUT_CTPIO_OFST 20 15016 #define MC_CMD_GET_CAPABILITIES_V4_OUT_CTPIO_LBN 15 15017 #define MC_CMD_GET_CAPABILITIES_V4_OUT_CTPIO_WIDTH 1 15018 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_SUPPORT_OFST 20 15019 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_SUPPORT_LBN 16 15020 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_SUPPORT_WIDTH 1 15021 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_BOUND_OFST 20 15022 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_BOUND_LBN 17 15023 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_BOUND_WIDTH 1 15024 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 15025 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 15026 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 15027 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_FLAG_OFST 20 15028 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_FLAG_LBN 19 15029 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_FLAG_WIDTH 1 15030 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_MARK_OFST 20 15031 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_MARK_LBN 20 15032 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_MARK_WIDTH 1 15033 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 15034 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 15035 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 15036 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 15037 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 15038 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 15039 #define MC_CMD_GET_CAPABILITIES_V4_OUT_L3XUDP_SUPPORT_OFST 20 15040 #define MC_CMD_GET_CAPABILITIES_V4_OUT_L3XUDP_SUPPORT_LBN 22 15041 #define MC_CMD_GET_CAPABILITIES_V4_OUT_L3XUDP_SUPPORT_WIDTH 1 15042 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 15043 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 15044 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 15045 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_SPREADING_OFST 20 15046 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_SPREADING_LBN 24 15047 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_SPREADING_WIDTH 1 15048 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_HLB_IDLE_OFST 20 15049 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_HLB_IDLE_LBN 25 15050 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_HLB_IDLE_WIDTH 1 15051 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 15052 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 15053 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 15054 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 15055 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 15056 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 15057 #define MC_CMD_GET_CAPABILITIES_V4_OUT_BUNDLE_UPDATE_OFST 20 15058 #define MC_CMD_GET_CAPABILITIES_V4_OUT_BUNDLE_UPDATE_LBN 28 15059 #define MC_CMD_GET_CAPABILITIES_V4_OUT_BUNDLE_UPDATE_WIDTH 1 15060 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V3_OFST 20 15061 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V3_LBN 29 15062 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V3_WIDTH 1 15063 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DYNAMIC_SENSORS_OFST 20 15064 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DYNAMIC_SENSORS_LBN 30 15065 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DYNAMIC_SENSORS_WIDTH 1 15066 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 15067 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 15068 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 15069 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 15070 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 15071 */ 15072 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 15073 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 15074 /* One byte per PF containing the number of the external port assigned to this 15075 * PF, indexed by PF number. Special values indicate that a PF is either not 15076 * present or not assigned. 15077 */ 15078 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 15079 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 15080 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 15081 /* enum: The caller is not permitted to access information on this PF. */ 15082 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ACCESS_NOT_PERMITTED 0xff 15083 /* enum: PF does not exist. */ 15084 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PF_NOT_PRESENT 0xfe 15085 /* enum: PF does exist but is not assigned to any external port. */ 15086 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PF_NOT_ASSIGNED 0xfd 15087 /* enum: This value indicates that PF is assigned, but it cannot be expressed 15088 * in this field. It is intended for a possible future situation where a more 15089 * complex scheme of PFs to ports mapping is being used. The future driver 15090 * should look for a new field supporting the new scheme. The current/old 15091 * driver should treat this value as PF_NOT_ASSIGNED. 15092 */ 15093 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 15094 /* One byte per PF containing the number of its VFs, indexed by PF number. A 15095 * special value indicates that a PF is not present. 15096 */ 15097 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VFS_PER_PF_OFST 42 15098 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VFS_PER_PF_LEN 1 15099 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VFS_PER_PF_NUM 16 15100 /* enum: The caller is not permitted to access information on this PF. */ 15101 /* MC_CMD_GET_CAPABILITIES_V4_OUT_ACCESS_NOT_PERMITTED 0xff */ 15102 /* enum: PF does not exist. */ 15103 /* MC_CMD_GET_CAPABILITIES_V4_OUT_PF_NOT_PRESENT 0xfe */ 15104 /* Number of VIs available for external ports 0-3. For devices with more than 15105 * four ports, the remainder are in NUM_VIS_PER_PORT2 in 15106 * GET_CAPABILITIES_V12_OUT. 15107 */ 15108 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VIS_PER_PORT_OFST 58 15109 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VIS_PER_PORT_LEN 2 15110 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VIS_PER_PORT_NUM 4 15111 /* Size of RX descriptor cache expressed as binary logarithm The actual size 15112 * equals (2 ^ RX_DESC_CACHE_SIZE) 15113 */ 15114 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DESC_CACHE_SIZE_OFST 66 15115 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DESC_CACHE_SIZE_LEN 1 15116 /* Size of TX descriptor cache expressed as binary logarithm The actual size 15117 * equals (2 ^ TX_DESC_CACHE_SIZE) 15118 */ 15119 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DESC_CACHE_SIZE_OFST 67 15120 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DESC_CACHE_SIZE_LEN 1 15121 /* Total number of available PIO buffers */ 15122 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_PIO_BUFFS_OFST 68 15123 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_PIO_BUFFS_LEN 2 15124 /* Size of a single PIO buffer */ 15125 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SIZE_PIO_BUFF_OFST 70 15126 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SIZE_PIO_BUFF_LEN 2 15127 /* On chips later than Medford the amount of address space assigned to each VI 15128 * is configurable. This is a global setting that the driver must query to 15129 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 15130 * with 8k VI windows. 15131 */ 15132 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_OFST 72 15133 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_LEN 1 15134 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 15135 * CTPIO is not mapped. 15136 */ 15137 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_8K 0x0 15138 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 15139 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_16K 0x1 15140 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 15141 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_64K 0x2 15142 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 15143 * (SF-115995-SW) in the present configuration of firmware and port mode. 15144 */ 15145 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 15146 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 15147 /* Number of buffers per adapter that can be used for VFIFO Stuffing 15148 * (SF-115995-SW) in the present configuration of firmware and port mode. 15149 */ 15150 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 15151 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 15152 /* Entry count in the MAC stats array, including the final GENERATION_END 15153 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 15154 * hold at least this many 64-bit stats values, if they wish to receive all 15155 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 15156 * stats array returned will be truncated. 15157 */ 15158 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_NUM_STATS_OFST 76 15159 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_NUM_STATS_LEN 2 15160 15161 /* MC_CMD_GET_CAPABILITIES_V5_OUT msgresponse */ 15162 #define MC_CMD_GET_CAPABILITIES_V5_OUT_LEN 84 15163 /* First word of flags. */ 15164 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS1_OFST 0 15165 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS1_LEN 4 15166 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VPORT_RECONFIGURE_OFST 0 15167 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VPORT_RECONFIGURE_LBN 3 15168 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VPORT_RECONFIGURE_WIDTH 1 15169 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_STRIPING_OFST 0 15170 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_STRIPING_LBN 4 15171 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_STRIPING_WIDTH 1 15172 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_QUERY_OFST 0 15173 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_QUERY_LBN 5 15174 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_QUERY_WIDTH 1 15175 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 15176 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 15177 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 15178 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DRV_ATTACH_PREBOOT_OFST 0 15179 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DRV_ATTACH_PREBOOT_LBN 7 15180 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 15181 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_FORCE_EVENT_MERGING_OFST 0 15182 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_FORCE_EVENT_MERGING_LBN 8 15183 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 15184 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SET_MAC_ENHANCED_OFST 0 15185 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SET_MAC_ENHANCED_LBN 9 15186 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SET_MAC_ENHANCED_WIDTH 1 15187 #define MC_CMD_GET_CAPABILITIES_V5_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 15188 #define MC_CMD_GET_CAPABILITIES_V5_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 15189 #define MC_CMD_GET_CAPABILITIES_V5_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 15190 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 15191 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 15192 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 15193 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 15194 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 15195 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 15196 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ADDITIONAL_RSS_MODES_OFST 0 15197 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ADDITIONAL_RSS_MODES_LBN 13 15198 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 15199 #define MC_CMD_GET_CAPABILITIES_V5_OUT_QBB_OFST 0 15200 #define MC_CMD_GET_CAPABILITIES_V5_OUT_QBB_LBN 14 15201 #define MC_CMD_GET_CAPABILITIES_V5_OUT_QBB_WIDTH 1 15202 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 15203 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 15204 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 15205 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_RSS_LIMITED_OFST 0 15206 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_RSS_LIMITED_LBN 16 15207 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_RSS_LIMITED_WIDTH 1 15208 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_OFST 0 15209 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_LBN 17 15210 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_WIDTH 1 15211 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_INCLUDE_FCS_OFST 0 15212 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_INCLUDE_FCS_LBN 18 15213 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_INCLUDE_FCS_WIDTH 1 15214 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VLAN_INSERTION_OFST 0 15215 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VLAN_INSERTION_LBN 19 15216 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VLAN_INSERTION_WIDTH 1 15217 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_VLAN_STRIPPING_OFST 0 15218 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_VLAN_STRIPPING_LBN 20 15219 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_VLAN_STRIPPING_WIDTH 1 15220 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_OFST 0 15221 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_LBN 21 15222 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_WIDTH 1 15223 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_0_OFST 0 15224 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_0_LBN 22 15225 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_0_WIDTH 1 15226 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_14_OFST 0 15227 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_14_LBN 23 15228 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_14_WIDTH 1 15229 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_TIMESTAMP_OFST 0 15230 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_TIMESTAMP_LBN 24 15231 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_TIMESTAMP_WIDTH 1 15232 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_BATCHING_OFST 0 15233 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_BATCHING_LBN 25 15234 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_BATCHING_WIDTH 1 15235 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCAST_FILTER_CHAINING_OFST 0 15236 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCAST_FILTER_CHAINING_LBN 26 15237 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCAST_FILTER_CHAINING_WIDTH 1 15238 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PM_AND_RXDP_COUNTERS_OFST 0 15239 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PM_AND_RXDP_COUNTERS_LBN 27 15240 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 15241 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DISABLE_SCATTER_OFST 0 15242 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DISABLE_SCATTER_LBN 28 15243 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DISABLE_SCATTER_WIDTH 1 15244 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 15245 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 15246 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 15247 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_OFST 0 15248 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_LBN 30 15249 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_WIDTH 1 15250 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VXLAN_NVGRE_OFST 0 15251 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VXLAN_NVGRE_LBN 31 15252 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VXLAN_NVGRE_WIDTH 1 15253 /* RxDPCPU firmware id. */ 15254 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DPCPU_FW_ID_OFST 4 15255 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DPCPU_FW_ID_LEN 2 15256 /* enum: Standard RXDP firmware */ 15257 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP 0x0 15258 /* enum: Low latency RXDP firmware */ 15259 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_LOW_LATENCY 0x1 15260 /* enum: Packed stream RXDP firmware */ 15261 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_PACKED_STREAM 0x2 15262 /* enum: Rules engine RXDP firmware */ 15263 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_RULES_ENGINE 0x5 15264 /* enum: DPDK RXDP firmware */ 15265 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_DPDK 0x6 15266 /* enum: BIST RXDP firmware */ 15267 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_BIST 0x10a 15268 /* enum: RXDP Test firmware image 1 */ 15269 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 15270 /* enum: RXDP Test firmware image 2 */ 15271 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 15272 /* enum: RXDP Test firmware image 3 */ 15273 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 15274 /* enum: RXDP Test firmware image 4 */ 15275 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 15276 /* enum: RXDP Test firmware image 5 */ 15277 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_BACKPRESSURE 0x105 15278 /* enum: RXDP Test firmware image 6 */ 15279 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 15280 /* enum: RXDP Test firmware image 7 */ 15281 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 15282 /* enum: RXDP Test firmware image 8 */ 15283 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 15284 /* enum: RXDP Test firmware image 9 */ 15285 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 15286 /* enum: RXDP Test firmware image 10 */ 15287 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_SLOW 0x10c 15288 /* TxDPCPU firmware id. */ 15289 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DPCPU_FW_ID_OFST 6 15290 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DPCPU_FW_ID_LEN 2 15291 /* enum: Standard TXDP firmware */ 15292 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP 0x0 15293 /* enum: Low latency TXDP firmware */ 15294 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_LOW_LATENCY 0x1 15295 /* enum: High packet rate TXDP firmware */ 15296 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_HIGH_PACKET_RATE 0x3 15297 /* enum: Rules engine TXDP firmware */ 15298 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_RULES_ENGINE 0x5 15299 /* enum: DPDK TXDP firmware */ 15300 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_DPDK 0x6 15301 /* enum: BIST TXDP firmware */ 15302 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_BIST 0x12d 15303 /* enum: TXDP Test firmware image 1 */ 15304 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 15305 /* enum: TXDP Test firmware image 2 */ 15306 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 15307 /* enum: TXDP CSR bus test firmware */ 15308 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_TEST_FW_CSR 0x103 15309 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_OFST 8 15310 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_LEN 2 15311 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_REV_OFST 8 15312 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_REV_LBN 0 15313 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_REV_WIDTH 12 15314 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_TYPE_OFST 8 15315 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_TYPE_LBN 12 15316 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 15317 /* enum: reserved value - do not use (may indicate alternative interpretation 15318 * of REV field in future) 15319 */ 15320 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_RESERVED 0x0 15321 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 15322 * development only) 15323 */ 15324 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 15325 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 15326 */ 15327 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15328 /* enum: RX PD firmware with approximately Siena-compatible behaviour 15329 * (Huntington development only) 15330 */ 15331 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 15332 /* enum: Full featured RX PD production firmware */ 15333 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 15334 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15335 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_VSWITCH 0x3 15336 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 15337 * (Huntington development only) 15338 */ 15339 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15340 /* enum: Low latency RX PD production firmware */ 15341 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 15342 /* enum: Packed stream RX PD production firmware */ 15343 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 15344 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 15345 * tests (Medford development only) 15346 */ 15347 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 15348 /* enum: Rules engine RX PD production firmware */ 15349 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 15350 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15351 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_L3XUDP 0x9 15352 /* enum: DPDK RX PD production firmware */ 15353 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_DPDK 0xa 15354 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15355 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15356 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 15357 * encapsulations (Medford development only) 15358 */ 15359 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 15360 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_OFST 10 15361 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_LEN 2 15362 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_REV_OFST 10 15363 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_REV_LBN 0 15364 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_REV_WIDTH 12 15365 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_TYPE_OFST 10 15366 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_TYPE_LBN 12 15367 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 15368 /* enum: reserved value - do not use (may indicate alternative interpretation 15369 * of REV field in future) 15370 */ 15371 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_RESERVED 0x0 15372 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 15373 * development only) 15374 */ 15375 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 15376 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 15377 */ 15378 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15379 /* enum: TX PD firmware with approximately Siena-compatible behaviour 15380 * (Huntington development only) 15381 */ 15382 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 15383 /* enum: Full featured TX PD production firmware */ 15384 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 15385 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15386 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_VSWITCH 0x3 15387 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 15388 * (Huntington development only) 15389 */ 15390 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15391 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 15392 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 15393 * tests (Medford development only) 15394 */ 15395 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 15396 /* enum: Rules engine TX PD production firmware */ 15397 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 15398 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15399 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_L3XUDP 0x9 15400 /* enum: DPDK TX PD production firmware */ 15401 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_DPDK 0xa 15402 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15403 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15404 /* Hardware capabilities of NIC */ 15405 #define MC_CMD_GET_CAPABILITIES_V5_OUT_HW_CAPABILITIES_OFST 12 15406 #define MC_CMD_GET_CAPABILITIES_V5_OUT_HW_CAPABILITIES_LEN 4 15407 /* Licensed capabilities */ 15408 #define MC_CMD_GET_CAPABILITIES_V5_OUT_LICENSE_CAPABILITIES_OFST 16 15409 #define MC_CMD_GET_CAPABILITIES_V5_OUT_LICENSE_CAPABILITIES_LEN 4 15410 /* Second word of flags. Not present on older firmware (check the length). */ 15411 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS2_OFST 20 15412 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS2_LEN 4 15413 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_OFST 20 15414 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_LBN 0 15415 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_WIDTH 1 15416 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_ENCAP_OFST 20 15417 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_ENCAP_LBN 1 15418 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_ENCAP_WIDTH 1 15419 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVQ_TIMER_CTRL_OFST 20 15420 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVQ_TIMER_CTRL_LBN 2 15421 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVQ_TIMER_CTRL_WIDTH 1 15422 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVENT_CUT_THROUGH_OFST 20 15423 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVENT_CUT_THROUGH_LBN 3 15424 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVENT_CUT_THROUGH_WIDTH 1 15425 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_CUT_THROUGH_OFST 20 15426 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_CUT_THROUGH_LBN 4 15427 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_CUT_THROUGH_WIDTH 1 15428 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VFIFO_ULL_MODE_OFST 20 15429 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VFIFO_ULL_MODE_LBN 5 15430 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 15431 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 15432 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 15433 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 15434 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 15435 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 15436 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 15437 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_V2_OFST 20 15438 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_V2_LBN 7 15439 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_V2_WIDTH 1 15440 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_TIMESTAMPING_OFST 20 15441 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_TIMESTAMPING_LBN 8 15442 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 15443 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TIMESTAMP_OFST 20 15444 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TIMESTAMP_LBN 9 15445 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TIMESTAMP_WIDTH 1 15446 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_SNIFF_OFST 20 15447 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_SNIFF_LBN 10 15448 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_SNIFF_WIDTH 1 15449 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_SNIFF_OFST 20 15450 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_SNIFF_LBN 11 15451 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_SNIFF_WIDTH 1 15452 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 15453 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 15454 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 15455 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_BACKGROUND_OFST 20 15456 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_BACKGROUND_LBN 13 15457 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_BACKGROUND_WIDTH 1 15458 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_DB_RETURN_OFST 20 15459 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_DB_RETURN_LBN 14 15460 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_DB_RETURN_WIDTH 1 15461 #define MC_CMD_GET_CAPABILITIES_V5_OUT_CTPIO_OFST 20 15462 #define MC_CMD_GET_CAPABILITIES_V5_OUT_CTPIO_LBN 15 15463 #define MC_CMD_GET_CAPABILITIES_V5_OUT_CTPIO_WIDTH 1 15464 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_SUPPORT_OFST 20 15465 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_SUPPORT_LBN 16 15466 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_SUPPORT_WIDTH 1 15467 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_BOUND_OFST 20 15468 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_BOUND_LBN 17 15469 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_BOUND_WIDTH 1 15470 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 15471 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 15472 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 15473 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_FLAG_OFST 20 15474 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_FLAG_LBN 19 15475 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_FLAG_WIDTH 1 15476 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_OFST 20 15477 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_LBN 20 15478 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_WIDTH 1 15479 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 15480 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 15481 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 15482 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 15483 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 15484 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 15485 #define MC_CMD_GET_CAPABILITIES_V5_OUT_L3XUDP_SUPPORT_OFST 20 15486 #define MC_CMD_GET_CAPABILITIES_V5_OUT_L3XUDP_SUPPORT_LBN 22 15487 #define MC_CMD_GET_CAPABILITIES_V5_OUT_L3XUDP_SUPPORT_WIDTH 1 15488 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 15489 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 15490 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 15491 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_SPREADING_OFST 20 15492 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_SPREADING_LBN 24 15493 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_SPREADING_WIDTH 1 15494 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_HLB_IDLE_OFST 20 15495 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_HLB_IDLE_LBN 25 15496 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_HLB_IDLE_WIDTH 1 15497 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 15498 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 15499 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 15500 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 15501 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 15502 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 15503 #define MC_CMD_GET_CAPABILITIES_V5_OUT_BUNDLE_UPDATE_OFST 20 15504 #define MC_CMD_GET_CAPABILITIES_V5_OUT_BUNDLE_UPDATE_LBN 28 15505 #define MC_CMD_GET_CAPABILITIES_V5_OUT_BUNDLE_UPDATE_WIDTH 1 15506 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V3_OFST 20 15507 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V3_LBN 29 15508 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V3_WIDTH 1 15509 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DYNAMIC_SENSORS_OFST 20 15510 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DYNAMIC_SENSORS_LBN 30 15511 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DYNAMIC_SENSORS_WIDTH 1 15512 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 15513 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 15514 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 15515 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 15516 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 15517 */ 15518 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 15519 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 15520 /* One byte per PF containing the number of the external port assigned to this 15521 * PF, indexed by PF number. Special values indicate that a PF is either not 15522 * present or not assigned. 15523 */ 15524 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 15525 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 15526 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 15527 /* enum: The caller is not permitted to access information on this PF. */ 15528 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ACCESS_NOT_PERMITTED 0xff 15529 /* enum: PF does not exist. */ 15530 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PF_NOT_PRESENT 0xfe 15531 /* enum: PF does exist but is not assigned to any external port. */ 15532 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PF_NOT_ASSIGNED 0xfd 15533 /* enum: This value indicates that PF is assigned, but it cannot be expressed 15534 * in this field. It is intended for a possible future situation where a more 15535 * complex scheme of PFs to ports mapping is being used. The future driver 15536 * should look for a new field supporting the new scheme. The current/old 15537 * driver should treat this value as PF_NOT_ASSIGNED. 15538 */ 15539 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 15540 /* One byte per PF containing the number of its VFs, indexed by PF number. A 15541 * special value indicates that a PF is not present. 15542 */ 15543 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VFS_PER_PF_OFST 42 15544 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VFS_PER_PF_LEN 1 15545 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VFS_PER_PF_NUM 16 15546 /* enum: The caller is not permitted to access information on this PF. */ 15547 /* MC_CMD_GET_CAPABILITIES_V5_OUT_ACCESS_NOT_PERMITTED 0xff */ 15548 /* enum: PF does not exist. */ 15549 /* MC_CMD_GET_CAPABILITIES_V5_OUT_PF_NOT_PRESENT 0xfe */ 15550 /* Number of VIs available for external ports 0-3. For devices with more than 15551 * four ports, the remainder are in NUM_VIS_PER_PORT2 in 15552 * GET_CAPABILITIES_V12_OUT. 15553 */ 15554 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VIS_PER_PORT_OFST 58 15555 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VIS_PER_PORT_LEN 2 15556 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VIS_PER_PORT_NUM 4 15557 /* Size of RX descriptor cache expressed as binary logarithm The actual size 15558 * equals (2 ^ RX_DESC_CACHE_SIZE) 15559 */ 15560 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DESC_CACHE_SIZE_OFST 66 15561 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DESC_CACHE_SIZE_LEN 1 15562 /* Size of TX descriptor cache expressed as binary logarithm The actual size 15563 * equals (2 ^ TX_DESC_CACHE_SIZE) 15564 */ 15565 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DESC_CACHE_SIZE_OFST 67 15566 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DESC_CACHE_SIZE_LEN 1 15567 /* Total number of available PIO buffers */ 15568 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_PIO_BUFFS_OFST 68 15569 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_PIO_BUFFS_LEN 2 15570 /* Size of a single PIO buffer */ 15571 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SIZE_PIO_BUFF_OFST 70 15572 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SIZE_PIO_BUFF_LEN 2 15573 /* On chips later than Medford the amount of address space assigned to each VI 15574 * is configurable. This is a global setting that the driver must query to 15575 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 15576 * with 8k VI windows. 15577 */ 15578 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_OFST 72 15579 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_LEN 1 15580 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 15581 * CTPIO is not mapped. 15582 */ 15583 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_8K 0x0 15584 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 15585 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_16K 0x1 15586 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 15587 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_64K 0x2 15588 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 15589 * (SF-115995-SW) in the present configuration of firmware and port mode. 15590 */ 15591 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 15592 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 15593 /* Number of buffers per adapter that can be used for VFIFO Stuffing 15594 * (SF-115995-SW) in the present configuration of firmware and port mode. 15595 */ 15596 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 15597 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 15598 /* Entry count in the MAC stats array, including the final GENERATION_END 15599 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 15600 * hold at least this many 64-bit stats values, if they wish to receive all 15601 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 15602 * stats array returned will be truncated. 15603 */ 15604 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_NUM_STATS_OFST 76 15605 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_NUM_STATS_LEN 2 15606 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 15607 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 15608 */ 15609 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_MAX_OFST 80 15610 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_MAX_LEN 4 15611 15612 /* MC_CMD_GET_CAPABILITIES_V6_OUT msgresponse */ 15613 #define MC_CMD_GET_CAPABILITIES_V6_OUT_LEN 148 15614 /* First word of flags. */ 15615 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS1_OFST 0 15616 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS1_LEN 4 15617 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VPORT_RECONFIGURE_OFST 0 15618 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VPORT_RECONFIGURE_LBN 3 15619 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VPORT_RECONFIGURE_WIDTH 1 15620 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_STRIPING_OFST 0 15621 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_STRIPING_LBN 4 15622 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_STRIPING_WIDTH 1 15623 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_QUERY_OFST 0 15624 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_QUERY_LBN 5 15625 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_QUERY_WIDTH 1 15626 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 15627 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 15628 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 15629 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DRV_ATTACH_PREBOOT_OFST 0 15630 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DRV_ATTACH_PREBOOT_LBN 7 15631 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 15632 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_FORCE_EVENT_MERGING_OFST 0 15633 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_FORCE_EVENT_MERGING_LBN 8 15634 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 15635 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SET_MAC_ENHANCED_OFST 0 15636 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SET_MAC_ENHANCED_LBN 9 15637 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SET_MAC_ENHANCED_WIDTH 1 15638 #define MC_CMD_GET_CAPABILITIES_V6_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 15639 #define MC_CMD_GET_CAPABILITIES_V6_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 15640 #define MC_CMD_GET_CAPABILITIES_V6_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 15641 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 15642 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 15643 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 15644 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 15645 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 15646 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 15647 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ADDITIONAL_RSS_MODES_OFST 0 15648 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ADDITIONAL_RSS_MODES_LBN 13 15649 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 15650 #define MC_CMD_GET_CAPABILITIES_V6_OUT_QBB_OFST 0 15651 #define MC_CMD_GET_CAPABILITIES_V6_OUT_QBB_LBN 14 15652 #define MC_CMD_GET_CAPABILITIES_V6_OUT_QBB_WIDTH 1 15653 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 15654 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 15655 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 15656 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_RSS_LIMITED_OFST 0 15657 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_RSS_LIMITED_LBN 16 15658 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_RSS_LIMITED_WIDTH 1 15659 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_OFST 0 15660 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_LBN 17 15661 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_WIDTH 1 15662 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_INCLUDE_FCS_OFST 0 15663 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_INCLUDE_FCS_LBN 18 15664 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_INCLUDE_FCS_WIDTH 1 15665 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VLAN_INSERTION_OFST 0 15666 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VLAN_INSERTION_LBN 19 15667 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VLAN_INSERTION_WIDTH 1 15668 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_VLAN_STRIPPING_OFST 0 15669 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_VLAN_STRIPPING_LBN 20 15670 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_VLAN_STRIPPING_WIDTH 1 15671 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_OFST 0 15672 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_LBN 21 15673 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_WIDTH 1 15674 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_0_OFST 0 15675 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_0_LBN 22 15676 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_0_WIDTH 1 15677 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_14_OFST 0 15678 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_14_LBN 23 15679 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_14_WIDTH 1 15680 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_TIMESTAMP_OFST 0 15681 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_TIMESTAMP_LBN 24 15682 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_TIMESTAMP_WIDTH 1 15683 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_BATCHING_OFST 0 15684 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_BATCHING_LBN 25 15685 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_BATCHING_WIDTH 1 15686 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCAST_FILTER_CHAINING_OFST 0 15687 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCAST_FILTER_CHAINING_LBN 26 15688 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCAST_FILTER_CHAINING_WIDTH 1 15689 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PM_AND_RXDP_COUNTERS_OFST 0 15690 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PM_AND_RXDP_COUNTERS_LBN 27 15691 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 15692 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DISABLE_SCATTER_OFST 0 15693 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DISABLE_SCATTER_LBN 28 15694 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DISABLE_SCATTER_WIDTH 1 15695 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 15696 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 15697 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 15698 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_OFST 0 15699 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_LBN 30 15700 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_WIDTH 1 15701 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VXLAN_NVGRE_OFST 0 15702 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VXLAN_NVGRE_LBN 31 15703 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VXLAN_NVGRE_WIDTH 1 15704 /* RxDPCPU firmware id. */ 15705 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DPCPU_FW_ID_OFST 4 15706 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DPCPU_FW_ID_LEN 2 15707 /* enum: Standard RXDP firmware */ 15708 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP 0x0 15709 /* enum: Low latency RXDP firmware */ 15710 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_LOW_LATENCY 0x1 15711 /* enum: Packed stream RXDP firmware */ 15712 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_PACKED_STREAM 0x2 15713 /* enum: Rules engine RXDP firmware */ 15714 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_RULES_ENGINE 0x5 15715 /* enum: DPDK RXDP firmware */ 15716 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_DPDK 0x6 15717 /* enum: BIST RXDP firmware */ 15718 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_BIST 0x10a 15719 /* enum: RXDP Test firmware image 1 */ 15720 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 15721 /* enum: RXDP Test firmware image 2 */ 15722 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 15723 /* enum: RXDP Test firmware image 3 */ 15724 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 15725 /* enum: RXDP Test firmware image 4 */ 15726 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 15727 /* enum: RXDP Test firmware image 5 */ 15728 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_BACKPRESSURE 0x105 15729 /* enum: RXDP Test firmware image 6 */ 15730 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 15731 /* enum: RXDP Test firmware image 7 */ 15732 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 15733 /* enum: RXDP Test firmware image 8 */ 15734 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 15735 /* enum: RXDP Test firmware image 9 */ 15736 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 15737 /* enum: RXDP Test firmware image 10 */ 15738 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_SLOW 0x10c 15739 /* TxDPCPU firmware id. */ 15740 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DPCPU_FW_ID_OFST 6 15741 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DPCPU_FW_ID_LEN 2 15742 /* enum: Standard TXDP firmware */ 15743 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP 0x0 15744 /* enum: Low latency TXDP firmware */ 15745 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_LOW_LATENCY 0x1 15746 /* enum: High packet rate TXDP firmware */ 15747 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_HIGH_PACKET_RATE 0x3 15748 /* enum: Rules engine TXDP firmware */ 15749 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_RULES_ENGINE 0x5 15750 /* enum: DPDK TXDP firmware */ 15751 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_DPDK 0x6 15752 /* enum: BIST TXDP firmware */ 15753 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_BIST 0x12d 15754 /* enum: TXDP Test firmware image 1 */ 15755 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 15756 /* enum: TXDP Test firmware image 2 */ 15757 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 15758 /* enum: TXDP CSR bus test firmware */ 15759 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_TEST_FW_CSR 0x103 15760 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_OFST 8 15761 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_LEN 2 15762 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_REV_OFST 8 15763 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_REV_LBN 0 15764 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_REV_WIDTH 12 15765 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_TYPE_OFST 8 15766 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_TYPE_LBN 12 15767 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 15768 /* enum: reserved value - do not use (may indicate alternative interpretation 15769 * of REV field in future) 15770 */ 15771 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_RESERVED 0x0 15772 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 15773 * development only) 15774 */ 15775 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 15776 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 15777 */ 15778 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15779 /* enum: RX PD firmware with approximately Siena-compatible behaviour 15780 * (Huntington development only) 15781 */ 15782 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 15783 /* enum: Full featured RX PD production firmware */ 15784 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 15785 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15786 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_VSWITCH 0x3 15787 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 15788 * (Huntington development only) 15789 */ 15790 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15791 /* enum: Low latency RX PD production firmware */ 15792 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 15793 /* enum: Packed stream RX PD production firmware */ 15794 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 15795 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 15796 * tests (Medford development only) 15797 */ 15798 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 15799 /* enum: Rules engine RX PD production firmware */ 15800 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 15801 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15802 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_L3XUDP 0x9 15803 /* enum: DPDK RX PD production firmware */ 15804 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_DPDK 0xa 15805 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15806 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15807 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 15808 * encapsulations (Medford development only) 15809 */ 15810 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 15811 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_OFST 10 15812 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_LEN 2 15813 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_REV_OFST 10 15814 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_REV_LBN 0 15815 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_REV_WIDTH 12 15816 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_TYPE_OFST 10 15817 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_TYPE_LBN 12 15818 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 15819 /* enum: reserved value - do not use (may indicate alternative interpretation 15820 * of REV field in future) 15821 */ 15822 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_RESERVED 0x0 15823 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 15824 * development only) 15825 */ 15826 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 15827 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 15828 */ 15829 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15830 /* enum: TX PD firmware with approximately Siena-compatible behaviour 15831 * (Huntington development only) 15832 */ 15833 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 15834 /* enum: Full featured TX PD production firmware */ 15835 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 15836 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15837 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_VSWITCH 0x3 15838 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 15839 * (Huntington development only) 15840 */ 15841 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15842 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 15843 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 15844 * tests (Medford development only) 15845 */ 15846 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 15847 /* enum: Rules engine TX PD production firmware */ 15848 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 15849 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15850 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_L3XUDP 0x9 15851 /* enum: DPDK TX PD production firmware */ 15852 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_DPDK 0xa 15853 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15854 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15855 /* Hardware capabilities of NIC */ 15856 #define MC_CMD_GET_CAPABILITIES_V6_OUT_HW_CAPABILITIES_OFST 12 15857 #define MC_CMD_GET_CAPABILITIES_V6_OUT_HW_CAPABILITIES_LEN 4 15858 /* Licensed capabilities */ 15859 #define MC_CMD_GET_CAPABILITIES_V6_OUT_LICENSE_CAPABILITIES_OFST 16 15860 #define MC_CMD_GET_CAPABILITIES_V6_OUT_LICENSE_CAPABILITIES_LEN 4 15861 /* Second word of flags. Not present on older firmware (check the length). */ 15862 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS2_OFST 20 15863 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS2_LEN 4 15864 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_OFST 20 15865 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_LBN 0 15866 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_WIDTH 1 15867 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_ENCAP_OFST 20 15868 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_ENCAP_LBN 1 15869 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_ENCAP_WIDTH 1 15870 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVQ_TIMER_CTRL_OFST 20 15871 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVQ_TIMER_CTRL_LBN 2 15872 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVQ_TIMER_CTRL_WIDTH 1 15873 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVENT_CUT_THROUGH_OFST 20 15874 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVENT_CUT_THROUGH_LBN 3 15875 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVENT_CUT_THROUGH_WIDTH 1 15876 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_CUT_THROUGH_OFST 20 15877 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_CUT_THROUGH_LBN 4 15878 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_CUT_THROUGH_WIDTH 1 15879 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VFIFO_ULL_MODE_OFST 20 15880 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VFIFO_ULL_MODE_LBN 5 15881 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 15882 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 15883 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 15884 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 15885 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 15886 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 15887 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 15888 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_V2_OFST 20 15889 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_V2_LBN 7 15890 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_V2_WIDTH 1 15891 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_TIMESTAMPING_OFST 20 15892 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_TIMESTAMPING_LBN 8 15893 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 15894 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TIMESTAMP_OFST 20 15895 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TIMESTAMP_LBN 9 15896 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TIMESTAMP_WIDTH 1 15897 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_SNIFF_OFST 20 15898 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_SNIFF_LBN 10 15899 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_SNIFF_WIDTH 1 15900 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_SNIFF_OFST 20 15901 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_SNIFF_LBN 11 15902 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_SNIFF_WIDTH 1 15903 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 15904 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 15905 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 15906 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_BACKGROUND_OFST 20 15907 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_BACKGROUND_LBN 13 15908 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_BACKGROUND_WIDTH 1 15909 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_DB_RETURN_OFST 20 15910 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_DB_RETURN_LBN 14 15911 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_DB_RETURN_WIDTH 1 15912 #define MC_CMD_GET_CAPABILITIES_V6_OUT_CTPIO_OFST 20 15913 #define MC_CMD_GET_CAPABILITIES_V6_OUT_CTPIO_LBN 15 15914 #define MC_CMD_GET_CAPABILITIES_V6_OUT_CTPIO_WIDTH 1 15915 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_SUPPORT_OFST 20 15916 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_SUPPORT_LBN 16 15917 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_SUPPORT_WIDTH 1 15918 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_BOUND_OFST 20 15919 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_BOUND_LBN 17 15920 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_BOUND_WIDTH 1 15921 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 15922 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 15923 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 15924 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_FLAG_OFST 20 15925 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_FLAG_LBN 19 15926 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_FLAG_WIDTH 1 15927 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_OFST 20 15928 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_LBN 20 15929 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_WIDTH 1 15930 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 15931 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 15932 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 15933 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 15934 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 15935 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 15936 #define MC_CMD_GET_CAPABILITIES_V6_OUT_L3XUDP_SUPPORT_OFST 20 15937 #define MC_CMD_GET_CAPABILITIES_V6_OUT_L3XUDP_SUPPORT_LBN 22 15938 #define MC_CMD_GET_CAPABILITIES_V6_OUT_L3XUDP_SUPPORT_WIDTH 1 15939 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 15940 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 15941 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 15942 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_SPREADING_OFST 20 15943 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_SPREADING_LBN 24 15944 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_SPREADING_WIDTH 1 15945 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_HLB_IDLE_OFST 20 15946 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_HLB_IDLE_LBN 25 15947 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_HLB_IDLE_WIDTH 1 15948 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 15949 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 15950 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 15951 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 15952 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 15953 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 15954 #define MC_CMD_GET_CAPABILITIES_V6_OUT_BUNDLE_UPDATE_OFST 20 15955 #define MC_CMD_GET_CAPABILITIES_V6_OUT_BUNDLE_UPDATE_LBN 28 15956 #define MC_CMD_GET_CAPABILITIES_V6_OUT_BUNDLE_UPDATE_WIDTH 1 15957 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V3_OFST 20 15958 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V3_LBN 29 15959 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V3_WIDTH 1 15960 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DYNAMIC_SENSORS_OFST 20 15961 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DYNAMIC_SENSORS_LBN 30 15962 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DYNAMIC_SENSORS_WIDTH 1 15963 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 15964 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 15965 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 15966 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 15967 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 15968 */ 15969 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 15970 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 15971 /* One byte per PF containing the number of the external port assigned to this 15972 * PF, indexed by PF number. Special values indicate that a PF is either not 15973 * present or not assigned. 15974 */ 15975 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 15976 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 15977 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 15978 /* enum: The caller is not permitted to access information on this PF. */ 15979 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ACCESS_NOT_PERMITTED 0xff 15980 /* enum: PF does not exist. */ 15981 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PF_NOT_PRESENT 0xfe 15982 /* enum: PF does exist but is not assigned to any external port. */ 15983 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PF_NOT_ASSIGNED 0xfd 15984 /* enum: This value indicates that PF is assigned, but it cannot be expressed 15985 * in this field. It is intended for a possible future situation where a more 15986 * complex scheme of PFs to ports mapping is being used. The future driver 15987 * should look for a new field supporting the new scheme. The current/old 15988 * driver should treat this value as PF_NOT_ASSIGNED. 15989 */ 15990 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 15991 /* One byte per PF containing the number of its VFs, indexed by PF number. A 15992 * special value indicates that a PF is not present. 15993 */ 15994 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VFS_PER_PF_OFST 42 15995 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VFS_PER_PF_LEN 1 15996 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VFS_PER_PF_NUM 16 15997 /* enum: The caller is not permitted to access information on this PF. */ 15998 /* MC_CMD_GET_CAPABILITIES_V6_OUT_ACCESS_NOT_PERMITTED 0xff */ 15999 /* enum: PF does not exist. */ 16000 /* MC_CMD_GET_CAPABILITIES_V6_OUT_PF_NOT_PRESENT 0xfe */ 16001 /* Number of VIs available for external ports 0-3. For devices with more than 16002 * four ports, the remainder are in NUM_VIS_PER_PORT2 in 16003 * GET_CAPABILITIES_V12_OUT. 16004 */ 16005 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VIS_PER_PORT_OFST 58 16006 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VIS_PER_PORT_LEN 2 16007 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VIS_PER_PORT_NUM 4 16008 /* Size of RX descriptor cache expressed as binary logarithm The actual size 16009 * equals (2 ^ RX_DESC_CACHE_SIZE) 16010 */ 16011 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DESC_CACHE_SIZE_OFST 66 16012 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DESC_CACHE_SIZE_LEN 1 16013 /* Size of TX descriptor cache expressed as binary logarithm The actual size 16014 * equals (2 ^ TX_DESC_CACHE_SIZE) 16015 */ 16016 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DESC_CACHE_SIZE_OFST 67 16017 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DESC_CACHE_SIZE_LEN 1 16018 /* Total number of available PIO buffers */ 16019 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_PIO_BUFFS_OFST 68 16020 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_PIO_BUFFS_LEN 2 16021 /* Size of a single PIO buffer */ 16022 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SIZE_PIO_BUFF_OFST 70 16023 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SIZE_PIO_BUFF_LEN 2 16024 /* On chips later than Medford the amount of address space assigned to each VI 16025 * is configurable. This is a global setting that the driver must query to 16026 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 16027 * with 8k VI windows. 16028 */ 16029 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_OFST 72 16030 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_LEN 1 16031 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 16032 * CTPIO is not mapped. 16033 */ 16034 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_8K 0x0 16035 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 16036 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_16K 0x1 16037 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 16038 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_64K 0x2 16039 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 16040 * (SF-115995-SW) in the present configuration of firmware and port mode. 16041 */ 16042 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 16043 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 16044 /* Number of buffers per adapter that can be used for VFIFO Stuffing 16045 * (SF-115995-SW) in the present configuration of firmware and port mode. 16046 */ 16047 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 16048 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 16049 /* Entry count in the MAC stats array, including the final GENERATION_END 16050 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 16051 * hold at least this many 64-bit stats values, if they wish to receive all 16052 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 16053 * stats array returned will be truncated. 16054 */ 16055 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_NUM_STATS_OFST 76 16056 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_NUM_STATS_LEN 2 16057 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 16058 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 16059 */ 16060 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_MAX_OFST 80 16061 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_MAX_LEN 4 16062 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 16063 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 16064 * they create an RX queue. Due to hardware limitations, only a small number of 16065 * different buffer sizes may be available concurrently. Nonzero entries in 16066 * this array are the sizes of buffers which the system guarantees will be 16067 * available for use. If the list is empty, there are no limitations on 16068 * concurrent buffer sizes. 16069 */ 16070 #define MC_CMD_GET_CAPABILITIES_V6_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 16071 #define MC_CMD_GET_CAPABILITIES_V6_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 16072 #define MC_CMD_GET_CAPABILITIES_V6_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 16073 16074 /* MC_CMD_GET_CAPABILITIES_V7_OUT msgresponse */ 16075 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LEN 152 16076 /* First word of flags. */ 16077 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS1_OFST 0 16078 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS1_LEN 4 16079 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VPORT_RECONFIGURE_OFST 0 16080 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VPORT_RECONFIGURE_LBN 3 16081 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VPORT_RECONFIGURE_WIDTH 1 16082 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_STRIPING_OFST 0 16083 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_STRIPING_LBN 4 16084 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_STRIPING_WIDTH 1 16085 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_QUERY_OFST 0 16086 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_QUERY_LBN 5 16087 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_QUERY_WIDTH 1 16088 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 16089 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 16090 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 16091 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DRV_ATTACH_PREBOOT_OFST 0 16092 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DRV_ATTACH_PREBOOT_LBN 7 16093 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 16094 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_FORCE_EVENT_MERGING_OFST 0 16095 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_FORCE_EVENT_MERGING_LBN 8 16096 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 16097 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SET_MAC_ENHANCED_OFST 0 16098 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SET_MAC_ENHANCED_LBN 9 16099 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SET_MAC_ENHANCED_WIDTH 1 16100 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 16101 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 16102 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 16103 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 16104 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 16105 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 16106 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 16107 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 16108 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 16109 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ADDITIONAL_RSS_MODES_OFST 0 16110 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ADDITIONAL_RSS_MODES_LBN 13 16111 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 16112 #define MC_CMD_GET_CAPABILITIES_V7_OUT_QBB_OFST 0 16113 #define MC_CMD_GET_CAPABILITIES_V7_OUT_QBB_LBN 14 16114 #define MC_CMD_GET_CAPABILITIES_V7_OUT_QBB_WIDTH 1 16115 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 16116 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 16117 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 16118 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_RSS_LIMITED_OFST 0 16119 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_RSS_LIMITED_LBN 16 16120 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_RSS_LIMITED_WIDTH 1 16121 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_OFST 0 16122 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_LBN 17 16123 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_WIDTH 1 16124 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_INCLUDE_FCS_OFST 0 16125 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_INCLUDE_FCS_LBN 18 16126 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_INCLUDE_FCS_WIDTH 1 16127 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VLAN_INSERTION_OFST 0 16128 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VLAN_INSERTION_LBN 19 16129 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VLAN_INSERTION_WIDTH 1 16130 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_OFST 0 16131 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_LBN 20 16132 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_WIDTH 1 16133 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_OFST 0 16134 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_LBN 21 16135 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_WIDTH 1 16136 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_0_OFST 0 16137 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_0_LBN 22 16138 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_0_WIDTH 1 16139 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_14_OFST 0 16140 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_14_LBN 23 16141 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_14_WIDTH 1 16142 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_TIMESTAMP_OFST 0 16143 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_TIMESTAMP_LBN 24 16144 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_TIMESTAMP_WIDTH 1 16145 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_BATCHING_OFST 0 16146 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_BATCHING_LBN 25 16147 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_BATCHING_WIDTH 1 16148 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCAST_FILTER_CHAINING_OFST 0 16149 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCAST_FILTER_CHAINING_LBN 26 16150 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCAST_FILTER_CHAINING_WIDTH 1 16151 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PM_AND_RXDP_COUNTERS_OFST 0 16152 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PM_AND_RXDP_COUNTERS_LBN 27 16153 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 16154 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DISABLE_SCATTER_OFST 0 16155 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DISABLE_SCATTER_LBN 28 16156 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DISABLE_SCATTER_WIDTH 1 16157 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 16158 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 16159 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 16160 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_OFST 0 16161 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_LBN 30 16162 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_WIDTH 1 16163 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VXLAN_NVGRE_OFST 0 16164 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VXLAN_NVGRE_LBN 31 16165 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VXLAN_NVGRE_WIDTH 1 16166 /* RxDPCPU firmware id. */ 16167 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DPCPU_FW_ID_OFST 4 16168 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DPCPU_FW_ID_LEN 2 16169 /* enum: Standard RXDP firmware */ 16170 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP 0x0 16171 /* enum: Low latency RXDP firmware */ 16172 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_LOW_LATENCY 0x1 16173 /* enum: Packed stream RXDP firmware */ 16174 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_PACKED_STREAM 0x2 16175 /* enum: Rules engine RXDP firmware */ 16176 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_RULES_ENGINE 0x5 16177 /* enum: DPDK RXDP firmware */ 16178 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_DPDK 0x6 16179 /* enum: BIST RXDP firmware */ 16180 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_BIST 0x10a 16181 /* enum: RXDP Test firmware image 1 */ 16182 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 16183 /* enum: RXDP Test firmware image 2 */ 16184 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 16185 /* enum: RXDP Test firmware image 3 */ 16186 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 16187 /* enum: RXDP Test firmware image 4 */ 16188 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 16189 /* enum: RXDP Test firmware image 5 */ 16190 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_BACKPRESSURE 0x105 16191 /* enum: RXDP Test firmware image 6 */ 16192 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 16193 /* enum: RXDP Test firmware image 7 */ 16194 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 16195 /* enum: RXDP Test firmware image 8 */ 16196 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 16197 /* enum: RXDP Test firmware image 9 */ 16198 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 16199 /* enum: RXDP Test firmware image 10 */ 16200 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_SLOW 0x10c 16201 /* TxDPCPU firmware id. */ 16202 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DPCPU_FW_ID_OFST 6 16203 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DPCPU_FW_ID_LEN 2 16204 /* enum: Standard TXDP firmware */ 16205 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP 0x0 16206 /* enum: Low latency TXDP firmware */ 16207 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_LOW_LATENCY 0x1 16208 /* enum: High packet rate TXDP firmware */ 16209 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_HIGH_PACKET_RATE 0x3 16210 /* enum: Rules engine TXDP firmware */ 16211 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_RULES_ENGINE 0x5 16212 /* enum: DPDK TXDP firmware */ 16213 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_DPDK 0x6 16214 /* enum: BIST TXDP firmware */ 16215 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_BIST 0x12d 16216 /* enum: TXDP Test firmware image 1 */ 16217 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 16218 /* enum: TXDP Test firmware image 2 */ 16219 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 16220 /* enum: TXDP CSR bus test firmware */ 16221 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_TEST_FW_CSR 0x103 16222 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_OFST 8 16223 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_LEN 2 16224 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_REV_OFST 8 16225 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_REV_LBN 0 16226 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_REV_WIDTH 12 16227 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_TYPE_OFST 8 16228 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_TYPE_LBN 12 16229 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 16230 /* enum: reserved value - do not use (may indicate alternative interpretation 16231 * of REV field in future) 16232 */ 16233 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_RESERVED 0x0 16234 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 16235 * development only) 16236 */ 16237 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 16238 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 16239 */ 16240 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 16241 /* enum: RX PD firmware with approximately Siena-compatible behaviour 16242 * (Huntington development only) 16243 */ 16244 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 16245 /* enum: Full featured RX PD production firmware */ 16246 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 16247 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 16248 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_VSWITCH 0x3 16249 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 16250 * (Huntington development only) 16251 */ 16252 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 16253 /* enum: Low latency RX PD production firmware */ 16254 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 16255 /* enum: Packed stream RX PD production firmware */ 16256 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 16257 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 16258 * tests (Medford development only) 16259 */ 16260 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 16261 /* enum: Rules engine RX PD production firmware */ 16262 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 16263 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 16264 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_L3XUDP 0x9 16265 /* enum: DPDK RX PD production firmware */ 16266 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_DPDK 0xa 16267 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 16268 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 16269 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 16270 * encapsulations (Medford development only) 16271 */ 16272 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 16273 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_OFST 10 16274 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_LEN 2 16275 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_REV_OFST 10 16276 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_REV_LBN 0 16277 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_REV_WIDTH 12 16278 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_TYPE_OFST 10 16279 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_TYPE_LBN 12 16280 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 16281 /* enum: reserved value - do not use (may indicate alternative interpretation 16282 * of REV field in future) 16283 */ 16284 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_RESERVED 0x0 16285 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 16286 * development only) 16287 */ 16288 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 16289 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 16290 */ 16291 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 16292 /* enum: TX PD firmware with approximately Siena-compatible behaviour 16293 * (Huntington development only) 16294 */ 16295 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 16296 /* enum: Full featured TX PD production firmware */ 16297 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 16298 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 16299 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_VSWITCH 0x3 16300 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 16301 * (Huntington development only) 16302 */ 16303 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 16304 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 16305 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 16306 * tests (Medford development only) 16307 */ 16308 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 16309 /* enum: Rules engine TX PD production firmware */ 16310 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 16311 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 16312 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_L3XUDP 0x9 16313 /* enum: DPDK TX PD production firmware */ 16314 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_DPDK 0xa 16315 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 16316 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 16317 /* Hardware capabilities of NIC */ 16318 #define MC_CMD_GET_CAPABILITIES_V7_OUT_HW_CAPABILITIES_OFST 12 16319 #define MC_CMD_GET_CAPABILITIES_V7_OUT_HW_CAPABILITIES_LEN 4 16320 /* Licensed capabilities */ 16321 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LICENSE_CAPABILITIES_OFST 16 16322 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LICENSE_CAPABILITIES_LEN 4 16323 /* Second word of flags. Not present on older firmware (check the length). */ 16324 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS2_OFST 20 16325 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS2_LEN 4 16326 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_OFST 20 16327 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_LBN 0 16328 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_WIDTH 1 16329 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_ENCAP_OFST 20 16330 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_ENCAP_LBN 1 16331 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_ENCAP_WIDTH 1 16332 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVQ_TIMER_CTRL_OFST 20 16333 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVQ_TIMER_CTRL_LBN 2 16334 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVQ_TIMER_CTRL_WIDTH 1 16335 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVENT_CUT_THROUGH_OFST 20 16336 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVENT_CUT_THROUGH_LBN 3 16337 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVENT_CUT_THROUGH_WIDTH 1 16338 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_CUT_THROUGH_OFST 20 16339 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_CUT_THROUGH_LBN 4 16340 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_CUT_THROUGH_WIDTH 1 16341 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VFIFO_ULL_MODE_OFST 20 16342 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VFIFO_ULL_MODE_LBN 5 16343 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 16344 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 16345 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 16346 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 16347 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 16348 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 16349 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 16350 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_V2_OFST 20 16351 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_V2_LBN 7 16352 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_V2_WIDTH 1 16353 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_TIMESTAMPING_OFST 20 16354 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_TIMESTAMPING_LBN 8 16355 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 16356 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TIMESTAMP_OFST 20 16357 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TIMESTAMP_LBN 9 16358 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TIMESTAMP_WIDTH 1 16359 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_SNIFF_OFST 20 16360 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_SNIFF_LBN 10 16361 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_SNIFF_WIDTH 1 16362 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_SNIFF_OFST 20 16363 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_SNIFF_LBN 11 16364 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_SNIFF_WIDTH 1 16365 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 16366 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 16367 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 16368 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_BACKGROUND_OFST 20 16369 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_BACKGROUND_LBN 13 16370 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_BACKGROUND_WIDTH 1 16371 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_DB_RETURN_OFST 20 16372 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_DB_RETURN_LBN 14 16373 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_DB_RETURN_WIDTH 1 16374 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CTPIO_OFST 20 16375 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CTPIO_LBN 15 16376 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CTPIO_WIDTH 1 16377 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_SUPPORT_OFST 20 16378 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_SUPPORT_LBN 16 16379 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_SUPPORT_WIDTH 1 16380 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_BOUND_OFST 20 16381 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_BOUND_LBN 17 16382 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_BOUND_WIDTH 1 16383 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 16384 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 16385 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 16386 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_FLAG_OFST 20 16387 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_FLAG_LBN 19 16388 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_FLAG_WIDTH 1 16389 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_OFST 20 16390 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_LBN 20 16391 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_WIDTH 1 16392 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 16393 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 16394 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 16395 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 16396 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 16397 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 16398 #define MC_CMD_GET_CAPABILITIES_V7_OUT_L3XUDP_SUPPORT_OFST 20 16399 #define MC_CMD_GET_CAPABILITIES_V7_OUT_L3XUDP_SUPPORT_LBN 22 16400 #define MC_CMD_GET_CAPABILITIES_V7_OUT_L3XUDP_SUPPORT_WIDTH 1 16401 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 16402 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 16403 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 16404 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_SPREADING_OFST 20 16405 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_SPREADING_LBN 24 16406 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_SPREADING_WIDTH 1 16407 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_HLB_IDLE_OFST 20 16408 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_HLB_IDLE_LBN 25 16409 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_HLB_IDLE_WIDTH 1 16410 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 16411 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 16412 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 16413 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 16414 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 16415 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 16416 #define MC_CMD_GET_CAPABILITIES_V7_OUT_BUNDLE_UPDATE_OFST 20 16417 #define MC_CMD_GET_CAPABILITIES_V7_OUT_BUNDLE_UPDATE_LBN 28 16418 #define MC_CMD_GET_CAPABILITIES_V7_OUT_BUNDLE_UPDATE_WIDTH 1 16419 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V3_OFST 20 16420 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V3_LBN 29 16421 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V3_WIDTH 1 16422 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_SENSORS_OFST 20 16423 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_SENSORS_LBN 30 16424 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_SENSORS_WIDTH 1 16425 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 16426 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 16427 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 16428 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 16429 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 16430 */ 16431 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 16432 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 16433 /* One byte per PF containing the number of the external port assigned to this 16434 * PF, indexed by PF number. Special values indicate that a PF is either not 16435 * present or not assigned. 16436 */ 16437 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 16438 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 16439 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 16440 /* enum: The caller is not permitted to access information on this PF. */ 16441 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ACCESS_NOT_PERMITTED 0xff 16442 /* enum: PF does not exist. */ 16443 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PF_NOT_PRESENT 0xfe 16444 /* enum: PF does exist but is not assigned to any external port. */ 16445 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PF_NOT_ASSIGNED 0xfd 16446 /* enum: This value indicates that PF is assigned, but it cannot be expressed 16447 * in this field. It is intended for a possible future situation where a more 16448 * complex scheme of PFs to ports mapping is being used. The future driver 16449 * should look for a new field supporting the new scheme. The current/old 16450 * driver should treat this value as PF_NOT_ASSIGNED. 16451 */ 16452 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 16453 /* One byte per PF containing the number of its VFs, indexed by PF number. A 16454 * special value indicates that a PF is not present. 16455 */ 16456 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VFS_PER_PF_OFST 42 16457 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VFS_PER_PF_LEN 1 16458 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VFS_PER_PF_NUM 16 16459 /* enum: The caller is not permitted to access information on this PF. */ 16460 /* MC_CMD_GET_CAPABILITIES_V7_OUT_ACCESS_NOT_PERMITTED 0xff */ 16461 /* enum: PF does not exist. */ 16462 /* MC_CMD_GET_CAPABILITIES_V7_OUT_PF_NOT_PRESENT 0xfe */ 16463 /* Number of VIs available for external ports 0-3. For devices with more than 16464 * four ports, the remainder are in NUM_VIS_PER_PORT2 in 16465 * GET_CAPABILITIES_V12_OUT. 16466 */ 16467 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VIS_PER_PORT_OFST 58 16468 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VIS_PER_PORT_LEN 2 16469 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VIS_PER_PORT_NUM 4 16470 /* Size of RX descriptor cache expressed as binary logarithm The actual size 16471 * equals (2 ^ RX_DESC_CACHE_SIZE) 16472 */ 16473 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DESC_CACHE_SIZE_OFST 66 16474 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DESC_CACHE_SIZE_LEN 1 16475 /* Size of TX descriptor cache expressed as binary logarithm The actual size 16476 * equals (2 ^ TX_DESC_CACHE_SIZE) 16477 */ 16478 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DESC_CACHE_SIZE_OFST 67 16479 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DESC_CACHE_SIZE_LEN 1 16480 /* Total number of available PIO buffers */ 16481 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_PIO_BUFFS_OFST 68 16482 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_PIO_BUFFS_LEN 2 16483 /* Size of a single PIO buffer */ 16484 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SIZE_PIO_BUFF_OFST 70 16485 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SIZE_PIO_BUFF_LEN 2 16486 /* On chips later than Medford the amount of address space assigned to each VI 16487 * is configurable. This is a global setting that the driver must query to 16488 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 16489 * with 8k VI windows. 16490 */ 16491 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_OFST 72 16492 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_LEN 1 16493 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 16494 * CTPIO is not mapped. 16495 */ 16496 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_8K 0x0 16497 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 16498 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_16K 0x1 16499 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 16500 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_64K 0x2 16501 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 16502 * (SF-115995-SW) in the present configuration of firmware and port mode. 16503 */ 16504 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 16505 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 16506 /* Number of buffers per adapter that can be used for VFIFO Stuffing 16507 * (SF-115995-SW) in the present configuration of firmware and port mode. 16508 */ 16509 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 16510 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 16511 /* Entry count in the MAC stats array, including the final GENERATION_END 16512 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 16513 * hold at least this many 64-bit stats values, if they wish to receive all 16514 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 16515 * stats array returned will be truncated. 16516 */ 16517 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_NUM_STATS_OFST 76 16518 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_NUM_STATS_LEN 2 16519 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 16520 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 16521 */ 16522 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_MAX_OFST 80 16523 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_MAX_LEN 4 16524 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 16525 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 16526 * they create an RX queue. Due to hardware limitations, only a small number of 16527 * different buffer sizes may be available concurrently. Nonzero entries in 16528 * this array are the sizes of buffers which the system guarantees will be 16529 * available for use. If the list is empty, there are no limitations on 16530 * concurrent buffer sizes. 16531 */ 16532 #define MC_CMD_GET_CAPABILITIES_V7_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 16533 #define MC_CMD_GET_CAPABILITIES_V7_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 16534 #define MC_CMD_GET_CAPABILITIES_V7_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 16535 /* Third word of flags. Not present on older firmware (check the length). */ 16536 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS3_OFST 148 16537 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS3_LEN 4 16538 #define MC_CMD_GET_CAPABILITIES_V7_OUT_WOL_ETHERWAKE_OFST 148 16539 #define MC_CMD_GET_CAPABILITIES_V7_OUT_WOL_ETHERWAKE_LBN 0 16540 #define MC_CMD_GET_CAPABILITIES_V7_OUT_WOL_ETHERWAKE_WIDTH 1 16541 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_EVEN_SPREADING_OFST 148 16542 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_EVEN_SPREADING_LBN 1 16543 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_EVEN_SPREADING_WIDTH 1 16544 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 16545 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 16546 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 16547 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_SUPPORTED_OFST 148 16548 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_SUPPORTED_LBN 3 16549 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_SUPPORTED_WIDTH 1 16550 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VDPA_SUPPORTED_OFST 148 16551 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VDPA_SUPPORTED_LBN 4 16552 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VDPA_SUPPORTED_WIDTH 1 16553 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 16554 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 16555 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 16556 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 16557 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 16558 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 16559 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 16560 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 16561 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 16562 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 16563 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 16564 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 16565 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 16566 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 16567 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 16568 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 16569 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 16570 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 16571 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 16572 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 16573 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 16574 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 16575 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 16576 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 16577 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_OFST 148 16578 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_LBN 13 16579 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_WIDTH 1 16580 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_MPORT_JOURNAL_OFST 148 16581 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_MPORT_JOURNAL_LBN 14 16582 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1 16583 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CLIENT_CMD_VF_PROXY_OFST 148 16584 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CLIENT_CMD_VF_PROXY_LBN 15 16585 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CLIENT_CMD_VF_PROXY_WIDTH 1 16586 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_OFST 148 16587 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_LBN 16 16588 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_WIDTH 1 16589 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CXL_CONFIG_ENABLE_OFST 148 16590 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CXL_CONFIG_ENABLE_LBN 17 16591 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CXL_CONFIG_ENABLE_WIDTH 1 16592 16593 /* MC_CMD_GET_CAPABILITIES_V8_OUT msgresponse */ 16594 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LEN 160 16595 /* First word of flags. */ 16596 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS1_OFST 0 16597 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS1_LEN 4 16598 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VPORT_RECONFIGURE_OFST 0 16599 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VPORT_RECONFIGURE_LBN 3 16600 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VPORT_RECONFIGURE_WIDTH 1 16601 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_STRIPING_OFST 0 16602 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_STRIPING_LBN 4 16603 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_STRIPING_WIDTH 1 16604 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_QUERY_OFST 0 16605 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_QUERY_LBN 5 16606 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_QUERY_WIDTH 1 16607 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 16608 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 16609 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 16610 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DRV_ATTACH_PREBOOT_OFST 0 16611 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DRV_ATTACH_PREBOOT_LBN 7 16612 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 16613 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_FORCE_EVENT_MERGING_OFST 0 16614 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_FORCE_EVENT_MERGING_LBN 8 16615 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 16616 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SET_MAC_ENHANCED_OFST 0 16617 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SET_MAC_ENHANCED_LBN 9 16618 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SET_MAC_ENHANCED_WIDTH 1 16619 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 16620 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 16621 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 16622 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 16623 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 16624 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 16625 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 16626 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 16627 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 16628 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ADDITIONAL_RSS_MODES_OFST 0 16629 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ADDITIONAL_RSS_MODES_LBN 13 16630 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 16631 #define MC_CMD_GET_CAPABILITIES_V8_OUT_QBB_OFST 0 16632 #define MC_CMD_GET_CAPABILITIES_V8_OUT_QBB_LBN 14 16633 #define MC_CMD_GET_CAPABILITIES_V8_OUT_QBB_WIDTH 1 16634 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 16635 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 16636 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 16637 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_RSS_LIMITED_OFST 0 16638 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_RSS_LIMITED_LBN 16 16639 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_RSS_LIMITED_WIDTH 1 16640 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_OFST 0 16641 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_LBN 17 16642 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_WIDTH 1 16643 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_INCLUDE_FCS_OFST 0 16644 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_INCLUDE_FCS_LBN 18 16645 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_INCLUDE_FCS_WIDTH 1 16646 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VLAN_INSERTION_OFST 0 16647 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VLAN_INSERTION_LBN 19 16648 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VLAN_INSERTION_WIDTH 1 16649 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_OFST 0 16650 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_LBN 20 16651 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_WIDTH 1 16652 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_OFST 0 16653 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_LBN 21 16654 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_WIDTH 1 16655 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_0_OFST 0 16656 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_0_LBN 22 16657 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_0_WIDTH 1 16658 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_14_OFST 0 16659 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_14_LBN 23 16660 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_14_WIDTH 1 16661 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_TIMESTAMP_OFST 0 16662 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_TIMESTAMP_LBN 24 16663 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_TIMESTAMP_WIDTH 1 16664 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_BATCHING_OFST 0 16665 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_BATCHING_LBN 25 16666 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_BATCHING_WIDTH 1 16667 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCAST_FILTER_CHAINING_OFST 0 16668 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCAST_FILTER_CHAINING_LBN 26 16669 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCAST_FILTER_CHAINING_WIDTH 1 16670 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PM_AND_RXDP_COUNTERS_OFST 0 16671 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PM_AND_RXDP_COUNTERS_LBN 27 16672 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 16673 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DISABLE_SCATTER_OFST 0 16674 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DISABLE_SCATTER_LBN 28 16675 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DISABLE_SCATTER_WIDTH 1 16676 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 16677 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 16678 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 16679 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_OFST 0 16680 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_LBN 30 16681 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_WIDTH 1 16682 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VXLAN_NVGRE_OFST 0 16683 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VXLAN_NVGRE_LBN 31 16684 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VXLAN_NVGRE_WIDTH 1 16685 /* RxDPCPU firmware id. */ 16686 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DPCPU_FW_ID_OFST 4 16687 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DPCPU_FW_ID_LEN 2 16688 /* enum: Standard RXDP firmware */ 16689 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP 0x0 16690 /* enum: Low latency RXDP firmware */ 16691 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_LOW_LATENCY 0x1 16692 /* enum: Packed stream RXDP firmware */ 16693 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_PACKED_STREAM 0x2 16694 /* enum: Rules engine RXDP firmware */ 16695 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_RULES_ENGINE 0x5 16696 /* enum: DPDK RXDP firmware */ 16697 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_DPDK 0x6 16698 /* enum: BIST RXDP firmware */ 16699 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_BIST 0x10a 16700 /* enum: RXDP Test firmware image 1 */ 16701 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 16702 /* enum: RXDP Test firmware image 2 */ 16703 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 16704 /* enum: RXDP Test firmware image 3 */ 16705 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 16706 /* enum: RXDP Test firmware image 4 */ 16707 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 16708 /* enum: RXDP Test firmware image 5 */ 16709 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_BACKPRESSURE 0x105 16710 /* enum: RXDP Test firmware image 6 */ 16711 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 16712 /* enum: RXDP Test firmware image 7 */ 16713 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 16714 /* enum: RXDP Test firmware image 8 */ 16715 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 16716 /* enum: RXDP Test firmware image 9 */ 16717 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 16718 /* enum: RXDP Test firmware image 10 */ 16719 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_SLOW 0x10c 16720 /* TxDPCPU firmware id. */ 16721 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DPCPU_FW_ID_OFST 6 16722 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DPCPU_FW_ID_LEN 2 16723 /* enum: Standard TXDP firmware */ 16724 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP 0x0 16725 /* enum: Low latency TXDP firmware */ 16726 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_LOW_LATENCY 0x1 16727 /* enum: High packet rate TXDP firmware */ 16728 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_HIGH_PACKET_RATE 0x3 16729 /* enum: Rules engine TXDP firmware */ 16730 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_RULES_ENGINE 0x5 16731 /* enum: DPDK TXDP firmware */ 16732 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_DPDK 0x6 16733 /* enum: BIST TXDP firmware */ 16734 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_BIST 0x12d 16735 /* enum: TXDP Test firmware image 1 */ 16736 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 16737 /* enum: TXDP Test firmware image 2 */ 16738 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 16739 /* enum: TXDP CSR bus test firmware */ 16740 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_TEST_FW_CSR 0x103 16741 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_OFST 8 16742 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_LEN 2 16743 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_REV_OFST 8 16744 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_REV_LBN 0 16745 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_REV_WIDTH 12 16746 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_TYPE_OFST 8 16747 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_TYPE_LBN 12 16748 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 16749 /* enum: reserved value - do not use (may indicate alternative interpretation 16750 * of REV field in future) 16751 */ 16752 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_RESERVED 0x0 16753 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 16754 * development only) 16755 */ 16756 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 16757 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 16758 */ 16759 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 16760 /* enum: RX PD firmware with approximately Siena-compatible behaviour 16761 * (Huntington development only) 16762 */ 16763 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 16764 /* enum: Full featured RX PD production firmware */ 16765 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 16766 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 16767 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_VSWITCH 0x3 16768 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 16769 * (Huntington development only) 16770 */ 16771 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 16772 /* enum: Low latency RX PD production firmware */ 16773 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 16774 /* enum: Packed stream RX PD production firmware */ 16775 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 16776 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 16777 * tests (Medford development only) 16778 */ 16779 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 16780 /* enum: Rules engine RX PD production firmware */ 16781 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 16782 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 16783 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_L3XUDP 0x9 16784 /* enum: DPDK RX PD production firmware */ 16785 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_DPDK 0xa 16786 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 16787 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 16788 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 16789 * encapsulations (Medford development only) 16790 */ 16791 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 16792 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_OFST 10 16793 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_LEN 2 16794 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_REV_OFST 10 16795 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_REV_LBN 0 16796 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_REV_WIDTH 12 16797 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_TYPE_OFST 10 16798 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_TYPE_LBN 12 16799 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 16800 /* enum: reserved value - do not use (may indicate alternative interpretation 16801 * of REV field in future) 16802 */ 16803 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_RESERVED 0x0 16804 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 16805 * development only) 16806 */ 16807 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 16808 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 16809 */ 16810 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 16811 /* enum: TX PD firmware with approximately Siena-compatible behaviour 16812 * (Huntington development only) 16813 */ 16814 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 16815 /* enum: Full featured TX PD production firmware */ 16816 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 16817 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 16818 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_VSWITCH 0x3 16819 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 16820 * (Huntington development only) 16821 */ 16822 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 16823 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 16824 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 16825 * tests (Medford development only) 16826 */ 16827 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 16828 /* enum: Rules engine TX PD production firmware */ 16829 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 16830 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 16831 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_L3XUDP 0x9 16832 /* enum: DPDK TX PD production firmware */ 16833 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_DPDK 0xa 16834 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 16835 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 16836 /* Hardware capabilities of NIC */ 16837 #define MC_CMD_GET_CAPABILITIES_V8_OUT_HW_CAPABILITIES_OFST 12 16838 #define MC_CMD_GET_CAPABILITIES_V8_OUT_HW_CAPABILITIES_LEN 4 16839 /* Licensed capabilities */ 16840 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LICENSE_CAPABILITIES_OFST 16 16841 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LICENSE_CAPABILITIES_LEN 4 16842 /* Second word of flags. Not present on older firmware (check the length). */ 16843 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS2_OFST 20 16844 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS2_LEN 4 16845 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_OFST 20 16846 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_LBN 0 16847 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_WIDTH 1 16848 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_ENCAP_OFST 20 16849 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_ENCAP_LBN 1 16850 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_ENCAP_WIDTH 1 16851 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVQ_TIMER_CTRL_OFST 20 16852 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVQ_TIMER_CTRL_LBN 2 16853 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVQ_TIMER_CTRL_WIDTH 1 16854 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVENT_CUT_THROUGH_OFST 20 16855 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVENT_CUT_THROUGH_LBN 3 16856 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVENT_CUT_THROUGH_WIDTH 1 16857 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_CUT_THROUGH_OFST 20 16858 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_CUT_THROUGH_LBN 4 16859 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_CUT_THROUGH_WIDTH 1 16860 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VFIFO_ULL_MODE_OFST 20 16861 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VFIFO_ULL_MODE_LBN 5 16862 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 16863 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 16864 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 16865 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 16866 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 16867 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 16868 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 16869 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_V2_OFST 20 16870 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_V2_LBN 7 16871 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_V2_WIDTH 1 16872 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_TIMESTAMPING_OFST 20 16873 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_TIMESTAMPING_LBN 8 16874 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 16875 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TIMESTAMP_OFST 20 16876 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TIMESTAMP_LBN 9 16877 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TIMESTAMP_WIDTH 1 16878 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_SNIFF_OFST 20 16879 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_SNIFF_LBN 10 16880 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_SNIFF_WIDTH 1 16881 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_SNIFF_OFST 20 16882 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_SNIFF_LBN 11 16883 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_SNIFF_WIDTH 1 16884 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 16885 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 16886 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 16887 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_BACKGROUND_OFST 20 16888 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_BACKGROUND_LBN 13 16889 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_BACKGROUND_WIDTH 1 16890 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_DB_RETURN_OFST 20 16891 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_DB_RETURN_LBN 14 16892 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_DB_RETURN_WIDTH 1 16893 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CTPIO_OFST 20 16894 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CTPIO_LBN 15 16895 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CTPIO_WIDTH 1 16896 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_SUPPORT_OFST 20 16897 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_SUPPORT_LBN 16 16898 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_SUPPORT_WIDTH 1 16899 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_BOUND_OFST 20 16900 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_BOUND_LBN 17 16901 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_BOUND_WIDTH 1 16902 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 16903 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 16904 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 16905 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_FLAG_OFST 20 16906 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_FLAG_LBN 19 16907 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_FLAG_WIDTH 1 16908 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_OFST 20 16909 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_LBN 20 16910 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_WIDTH 1 16911 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 16912 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 16913 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 16914 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 16915 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 16916 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 16917 #define MC_CMD_GET_CAPABILITIES_V8_OUT_L3XUDP_SUPPORT_OFST 20 16918 #define MC_CMD_GET_CAPABILITIES_V8_OUT_L3XUDP_SUPPORT_LBN 22 16919 #define MC_CMD_GET_CAPABILITIES_V8_OUT_L3XUDP_SUPPORT_WIDTH 1 16920 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 16921 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 16922 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 16923 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_SPREADING_OFST 20 16924 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_SPREADING_LBN 24 16925 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_SPREADING_WIDTH 1 16926 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_HLB_IDLE_OFST 20 16927 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_HLB_IDLE_LBN 25 16928 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_HLB_IDLE_WIDTH 1 16929 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 16930 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 16931 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 16932 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 16933 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 16934 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 16935 #define MC_CMD_GET_CAPABILITIES_V8_OUT_BUNDLE_UPDATE_OFST 20 16936 #define MC_CMD_GET_CAPABILITIES_V8_OUT_BUNDLE_UPDATE_LBN 28 16937 #define MC_CMD_GET_CAPABILITIES_V8_OUT_BUNDLE_UPDATE_WIDTH 1 16938 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V3_OFST 20 16939 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V3_LBN 29 16940 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V3_WIDTH 1 16941 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_SENSORS_OFST 20 16942 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_SENSORS_LBN 30 16943 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_SENSORS_WIDTH 1 16944 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 16945 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 16946 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 16947 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 16948 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 16949 */ 16950 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 16951 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 16952 /* One byte per PF containing the number of the external port assigned to this 16953 * PF, indexed by PF number. Special values indicate that a PF is either not 16954 * present or not assigned. 16955 */ 16956 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 16957 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 16958 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 16959 /* enum: The caller is not permitted to access information on this PF. */ 16960 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ACCESS_NOT_PERMITTED 0xff 16961 /* enum: PF does not exist. */ 16962 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PF_NOT_PRESENT 0xfe 16963 /* enum: PF does exist but is not assigned to any external port. */ 16964 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PF_NOT_ASSIGNED 0xfd 16965 /* enum: This value indicates that PF is assigned, but it cannot be expressed 16966 * in this field. It is intended for a possible future situation where a more 16967 * complex scheme of PFs to ports mapping is being used. The future driver 16968 * should look for a new field supporting the new scheme. The current/old 16969 * driver should treat this value as PF_NOT_ASSIGNED. 16970 */ 16971 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 16972 /* One byte per PF containing the number of its VFs, indexed by PF number. A 16973 * special value indicates that a PF is not present. 16974 */ 16975 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VFS_PER_PF_OFST 42 16976 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VFS_PER_PF_LEN 1 16977 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VFS_PER_PF_NUM 16 16978 /* enum: The caller is not permitted to access information on this PF. */ 16979 /* MC_CMD_GET_CAPABILITIES_V8_OUT_ACCESS_NOT_PERMITTED 0xff */ 16980 /* enum: PF does not exist. */ 16981 /* MC_CMD_GET_CAPABILITIES_V8_OUT_PF_NOT_PRESENT 0xfe */ 16982 /* Number of VIs available for external ports 0-3. For devices with more than 16983 * four ports, the remainder are in NUM_VIS_PER_PORT2 in 16984 * GET_CAPABILITIES_V12_OUT. 16985 */ 16986 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VIS_PER_PORT_OFST 58 16987 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VIS_PER_PORT_LEN 2 16988 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VIS_PER_PORT_NUM 4 16989 /* Size of RX descriptor cache expressed as binary logarithm The actual size 16990 * equals (2 ^ RX_DESC_CACHE_SIZE) 16991 */ 16992 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DESC_CACHE_SIZE_OFST 66 16993 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DESC_CACHE_SIZE_LEN 1 16994 /* Size of TX descriptor cache expressed as binary logarithm The actual size 16995 * equals (2 ^ TX_DESC_CACHE_SIZE) 16996 */ 16997 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DESC_CACHE_SIZE_OFST 67 16998 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DESC_CACHE_SIZE_LEN 1 16999 /* Total number of available PIO buffers */ 17000 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_PIO_BUFFS_OFST 68 17001 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_PIO_BUFFS_LEN 2 17002 /* Size of a single PIO buffer */ 17003 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SIZE_PIO_BUFF_OFST 70 17004 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SIZE_PIO_BUFF_LEN 2 17005 /* On chips later than Medford the amount of address space assigned to each VI 17006 * is configurable. This is a global setting that the driver must query to 17007 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 17008 * with 8k VI windows. 17009 */ 17010 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_OFST 72 17011 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_LEN 1 17012 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 17013 * CTPIO is not mapped. 17014 */ 17015 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_8K 0x0 17016 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 17017 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_16K 0x1 17018 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 17019 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_64K 0x2 17020 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 17021 * (SF-115995-SW) in the present configuration of firmware and port mode. 17022 */ 17023 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 17024 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 17025 /* Number of buffers per adapter that can be used for VFIFO Stuffing 17026 * (SF-115995-SW) in the present configuration of firmware and port mode. 17027 */ 17028 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 17029 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 17030 /* Entry count in the MAC stats array, including the final GENERATION_END 17031 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 17032 * hold at least this many 64-bit stats values, if they wish to receive all 17033 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 17034 * stats array returned will be truncated. 17035 */ 17036 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_NUM_STATS_OFST 76 17037 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_NUM_STATS_LEN 2 17038 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 17039 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 17040 */ 17041 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_MAX_OFST 80 17042 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_MAX_LEN 4 17043 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 17044 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 17045 * they create an RX queue. Due to hardware limitations, only a small number of 17046 * different buffer sizes may be available concurrently. Nonzero entries in 17047 * this array are the sizes of buffers which the system guarantees will be 17048 * available for use. If the list is empty, there are no limitations on 17049 * concurrent buffer sizes. 17050 */ 17051 #define MC_CMD_GET_CAPABILITIES_V8_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 17052 #define MC_CMD_GET_CAPABILITIES_V8_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 17053 #define MC_CMD_GET_CAPABILITIES_V8_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 17054 /* Third word of flags. Not present on older firmware (check the length). */ 17055 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS3_OFST 148 17056 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS3_LEN 4 17057 #define MC_CMD_GET_CAPABILITIES_V8_OUT_WOL_ETHERWAKE_OFST 148 17058 #define MC_CMD_GET_CAPABILITIES_V8_OUT_WOL_ETHERWAKE_LBN 0 17059 #define MC_CMD_GET_CAPABILITIES_V8_OUT_WOL_ETHERWAKE_WIDTH 1 17060 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_EVEN_SPREADING_OFST 148 17061 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_EVEN_SPREADING_LBN 1 17062 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_EVEN_SPREADING_WIDTH 1 17063 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 17064 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 17065 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 17066 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_SUPPORTED_OFST 148 17067 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_SUPPORTED_LBN 3 17068 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_SUPPORTED_WIDTH 1 17069 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VDPA_SUPPORTED_OFST 148 17070 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VDPA_SUPPORTED_LBN 4 17071 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VDPA_SUPPORTED_WIDTH 1 17072 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 17073 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 17074 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 17075 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 17076 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 17077 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 17078 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 17079 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 17080 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 17081 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 17082 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 17083 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 17084 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 17085 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 17086 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 17087 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 17088 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 17089 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 17090 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 17091 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 17092 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 17093 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 17094 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 17095 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 17096 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_OFST 148 17097 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_LBN 13 17098 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_WIDTH 1 17099 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_MPORT_JOURNAL_OFST 148 17100 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_MPORT_JOURNAL_LBN 14 17101 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1 17102 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CLIENT_CMD_VF_PROXY_OFST 148 17103 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CLIENT_CMD_VF_PROXY_LBN 15 17104 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CLIENT_CMD_VF_PROXY_WIDTH 1 17105 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_OFST 148 17106 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_LBN 16 17107 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_WIDTH 1 17108 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CXL_CONFIG_ENABLE_OFST 148 17109 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CXL_CONFIG_ENABLE_LBN 17 17110 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CXL_CONFIG_ENABLE_WIDTH 1 17111 /* These bits are reserved for communicating test-specific capabilities to 17112 * host-side test software. All production drivers should treat this field as 17113 * opaque. 17114 */ 17115 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_OFST 152 17116 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LEN 8 17117 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_OFST 152 17118 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_LEN 4 17119 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_LBN 1216 17120 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_WIDTH 32 17121 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_OFST 156 17122 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_LEN 4 17123 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_LBN 1248 17124 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_WIDTH 32 17125 17126 /* MC_CMD_GET_CAPABILITIES_V9_OUT msgresponse */ 17127 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LEN 184 17128 /* First word of flags. */ 17129 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS1_OFST 0 17130 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS1_LEN 4 17131 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VPORT_RECONFIGURE_OFST 0 17132 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VPORT_RECONFIGURE_LBN 3 17133 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VPORT_RECONFIGURE_WIDTH 1 17134 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_STRIPING_OFST 0 17135 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_STRIPING_LBN 4 17136 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_STRIPING_WIDTH 1 17137 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_QUERY_OFST 0 17138 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_QUERY_LBN 5 17139 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_QUERY_WIDTH 1 17140 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 17141 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 17142 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 17143 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DRV_ATTACH_PREBOOT_OFST 0 17144 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DRV_ATTACH_PREBOOT_LBN 7 17145 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 17146 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_FORCE_EVENT_MERGING_OFST 0 17147 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_FORCE_EVENT_MERGING_LBN 8 17148 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 17149 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SET_MAC_ENHANCED_OFST 0 17150 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SET_MAC_ENHANCED_LBN 9 17151 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SET_MAC_ENHANCED_WIDTH 1 17152 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 17153 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 17154 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 17155 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 17156 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 17157 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 17158 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 17159 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 17160 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 17161 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ADDITIONAL_RSS_MODES_OFST 0 17162 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ADDITIONAL_RSS_MODES_LBN 13 17163 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 17164 #define MC_CMD_GET_CAPABILITIES_V9_OUT_QBB_OFST 0 17165 #define MC_CMD_GET_CAPABILITIES_V9_OUT_QBB_LBN 14 17166 #define MC_CMD_GET_CAPABILITIES_V9_OUT_QBB_WIDTH 1 17167 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 17168 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 17169 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 17170 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_RSS_LIMITED_OFST 0 17171 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_RSS_LIMITED_LBN 16 17172 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_RSS_LIMITED_WIDTH 1 17173 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_OFST 0 17174 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_LBN 17 17175 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_WIDTH 1 17176 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_INCLUDE_FCS_OFST 0 17177 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_INCLUDE_FCS_LBN 18 17178 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_INCLUDE_FCS_WIDTH 1 17179 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VLAN_INSERTION_OFST 0 17180 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VLAN_INSERTION_LBN 19 17181 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VLAN_INSERTION_WIDTH 1 17182 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_OFST 0 17183 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_LBN 20 17184 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_WIDTH 1 17185 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_OFST 0 17186 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_LBN 21 17187 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_WIDTH 1 17188 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_0_OFST 0 17189 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_0_LBN 22 17190 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_0_WIDTH 1 17191 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_14_OFST 0 17192 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_14_LBN 23 17193 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_14_WIDTH 1 17194 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_TIMESTAMP_OFST 0 17195 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_TIMESTAMP_LBN 24 17196 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_TIMESTAMP_WIDTH 1 17197 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_BATCHING_OFST 0 17198 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_BATCHING_LBN 25 17199 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_BATCHING_WIDTH 1 17200 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCAST_FILTER_CHAINING_OFST 0 17201 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCAST_FILTER_CHAINING_LBN 26 17202 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCAST_FILTER_CHAINING_WIDTH 1 17203 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PM_AND_RXDP_COUNTERS_OFST 0 17204 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PM_AND_RXDP_COUNTERS_LBN 27 17205 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 17206 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DISABLE_SCATTER_OFST 0 17207 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DISABLE_SCATTER_LBN 28 17208 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DISABLE_SCATTER_WIDTH 1 17209 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 17210 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 17211 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 17212 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_OFST 0 17213 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_LBN 30 17214 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_WIDTH 1 17215 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VXLAN_NVGRE_OFST 0 17216 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VXLAN_NVGRE_LBN 31 17217 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VXLAN_NVGRE_WIDTH 1 17218 /* RxDPCPU firmware id. */ 17219 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DPCPU_FW_ID_OFST 4 17220 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DPCPU_FW_ID_LEN 2 17221 /* enum: Standard RXDP firmware */ 17222 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP 0x0 17223 /* enum: Low latency RXDP firmware */ 17224 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_LOW_LATENCY 0x1 17225 /* enum: Packed stream RXDP firmware */ 17226 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_PACKED_STREAM 0x2 17227 /* enum: Rules engine RXDP firmware */ 17228 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_RULES_ENGINE 0x5 17229 /* enum: DPDK RXDP firmware */ 17230 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_DPDK 0x6 17231 /* enum: BIST RXDP firmware */ 17232 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_BIST 0x10a 17233 /* enum: RXDP Test firmware image 1 */ 17234 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 17235 /* enum: RXDP Test firmware image 2 */ 17236 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 17237 /* enum: RXDP Test firmware image 3 */ 17238 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 17239 /* enum: RXDP Test firmware image 4 */ 17240 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 17241 /* enum: RXDP Test firmware image 5 */ 17242 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_BACKPRESSURE 0x105 17243 /* enum: RXDP Test firmware image 6 */ 17244 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 17245 /* enum: RXDP Test firmware image 7 */ 17246 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 17247 /* enum: RXDP Test firmware image 8 */ 17248 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 17249 /* enum: RXDP Test firmware image 9 */ 17250 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 17251 /* enum: RXDP Test firmware image 10 */ 17252 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_SLOW 0x10c 17253 /* TxDPCPU firmware id. */ 17254 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DPCPU_FW_ID_OFST 6 17255 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DPCPU_FW_ID_LEN 2 17256 /* enum: Standard TXDP firmware */ 17257 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP 0x0 17258 /* enum: Low latency TXDP firmware */ 17259 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_LOW_LATENCY 0x1 17260 /* enum: High packet rate TXDP firmware */ 17261 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_HIGH_PACKET_RATE 0x3 17262 /* enum: Rules engine TXDP firmware */ 17263 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_RULES_ENGINE 0x5 17264 /* enum: DPDK TXDP firmware */ 17265 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_DPDK 0x6 17266 /* enum: BIST TXDP firmware */ 17267 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_BIST 0x12d 17268 /* enum: TXDP Test firmware image 1 */ 17269 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 17270 /* enum: TXDP Test firmware image 2 */ 17271 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 17272 /* enum: TXDP CSR bus test firmware */ 17273 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_TEST_FW_CSR 0x103 17274 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_OFST 8 17275 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_LEN 2 17276 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_REV_OFST 8 17277 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_REV_LBN 0 17278 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_REV_WIDTH 12 17279 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_TYPE_OFST 8 17280 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_TYPE_LBN 12 17281 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 17282 /* enum: reserved value - do not use (may indicate alternative interpretation 17283 * of REV field in future) 17284 */ 17285 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_RESERVED 0x0 17286 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 17287 * development only) 17288 */ 17289 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 17290 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 17291 */ 17292 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 17293 /* enum: RX PD firmware with approximately Siena-compatible behaviour 17294 * (Huntington development only) 17295 */ 17296 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 17297 /* enum: Full featured RX PD production firmware */ 17298 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 17299 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 17300 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_VSWITCH 0x3 17301 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 17302 * (Huntington development only) 17303 */ 17304 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 17305 /* enum: Low latency RX PD production firmware */ 17306 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 17307 /* enum: Packed stream RX PD production firmware */ 17308 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 17309 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 17310 * tests (Medford development only) 17311 */ 17312 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 17313 /* enum: Rules engine RX PD production firmware */ 17314 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 17315 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 17316 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_L3XUDP 0x9 17317 /* enum: DPDK RX PD production firmware */ 17318 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_DPDK 0xa 17319 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 17320 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 17321 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 17322 * encapsulations (Medford development only) 17323 */ 17324 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 17325 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_OFST 10 17326 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_LEN 2 17327 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_REV_OFST 10 17328 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_REV_LBN 0 17329 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_REV_WIDTH 12 17330 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_TYPE_OFST 10 17331 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_TYPE_LBN 12 17332 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 17333 /* enum: reserved value - do not use (may indicate alternative interpretation 17334 * of REV field in future) 17335 */ 17336 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_RESERVED 0x0 17337 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 17338 * development only) 17339 */ 17340 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 17341 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 17342 */ 17343 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 17344 /* enum: TX PD firmware with approximately Siena-compatible behaviour 17345 * (Huntington development only) 17346 */ 17347 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 17348 /* enum: Full featured TX PD production firmware */ 17349 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 17350 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 17351 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_VSWITCH 0x3 17352 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 17353 * (Huntington development only) 17354 */ 17355 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 17356 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 17357 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 17358 * tests (Medford development only) 17359 */ 17360 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 17361 /* enum: Rules engine TX PD production firmware */ 17362 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 17363 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 17364 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_L3XUDP 0x9 17365 /* enum: DPDK TX PD production firmware */ 17366 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_DPDK 0xa 17367 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 17368 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 17369 /* Hardware capabilities of NIC */ 17370 #define MC_CMD_GET_CAPABILITIES_V9_OUT_HW_CAPABILITIES_OFST 12 17371 #define MC_CMD_GET_CAPABILITIES_V9_OUT_HW_CAPABILITIES_LEN 4 17372 /* Licensed capabilities */ 17373 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LICENSE_CAPABILITIES_OFST 16 17374 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LICENSE_CAPABILITIES_LEN 4 17375 /* Second word of flags. Not present on older firmware (check the length). */ 17376 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS2_OFST 20 17377 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS2_LEN 4 17378 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_OFST 20 17379 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_LBN 0 17380 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_WIDTH 1 17381 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_ENCAP_OFST 20 17382 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_ENCAP_LBN 1 17383 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_ENCAP_WIDTH 1 17384 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVQ_TIMER_CTRL_OFST 20 17385 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVQ_TIMER_CTRL_LBN 2 17386 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVQ_TIMER_CTRL_WIDTH 1 17387 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVENT_CUT_THROUGH_OFST 20 17388 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVENT_CUT_THROUGH_LBN 3 17389 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVENT_CUT_THROUGH_WIDTH 1 17390 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_CUT_THROUGH_OFST 20 17391 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_CUT_THROUGH_LBN 4 17392 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_CUT_THROUGH_WIDTH 1 17393 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VFIFO_ULL_MODE_OFST 20 17394 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VFIFO_ULL_MODE_LBN 5 17395 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 17396 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 17397 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 17398 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 17399 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 17400 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 17401 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 17402 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_V2_OFST 20 17403 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_V2_LBN 7 17404 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_V2_WIDTH 1 17405 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_TIMESTAMPING_OFST 20 17406 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_TIMESTAMPING_LBN 8 17407 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 17408 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TIMESTAMP_OFST 20 17409 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TIMESTAMP_LBN 9 17410 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TIMESTAMP_WIDTH 1 17411 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_SNIFF_OFST 20 17412 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_SNIFF_LBN 10 17413 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_SNIFF_WIDTH 1 17414 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_SNIFF_OFST 20 17415 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_SNIFF_LBN 11 17416 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_SNIFF_WIDTH 1 17417 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 17418 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 17419 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 17420 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_BACKGROUND_OFST 20 17421 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_BACKGROUND_LBN 13 17422 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_BACKGROUND_WIDTH 1 17423 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_DB_RETURN_OFST 20 17424 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_DB_RETURN_LBN 14 17425 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_DB_RETURN_WIDTH 1 17426 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CTPIO_OFST 20 17427 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CTPIO_LBN 15 17428 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CTPIO_WIDTH 1 17429 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_SUPPORT_OFST 20 17430 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_SUPPORT_LBN 16 17431 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_SUPPORT_WIDTH 1 17432 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_BOUND_OFST 20 17433 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_BOUND_LBN 17 17434 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_BOUND_WIDTH 1 17435 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 17436 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 17437 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 17438 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_FLAG_OFST 20 17439 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_FLAG_LBN 19 17440 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_FLAG_WIDTH 1 17441 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_OFST 20 17442 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_LBN 20 17443 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_WIDTH 1 17444 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 17445 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 17446 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 17447 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 17448 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 17449 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 17450 #define MC_CMD_GET_CAPABILITIES_V9_OUT_L3XUDP_SUPPORT_OFST 20 17451 #define MC_CMD_GET_CAPABILITIES_V9_OUT_L3XUDP_SUPPORT_LBN 22 17452 #define MC_CMD_GET_CAPABILITIES_V9_OUT_L3XUDP_SUPPORT_WIDTH 1 17453 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 17454 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 17455 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 17456 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_SPREADING_OFST 20 17457 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_SPREADING_LBN 24 17458 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_SPREADING_WIDTH 1 17459 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_HLB_IDLE_OFST 20 17460 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_HLB_IDLE_LBN 25 17461 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_HLB_IDLE_WIDTH 1 17462 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 17463 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 17464 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 17465 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 17466 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 17467 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 17468 #define MC_CMD_GET_CAPABILITIES_V9_OUT_BUNDLE_UPDATE_OFST 20 17469 #define MC_CMD_GET_CAPABILITIES_V9_OUT_BUNDLE_UPDATE_LBN 28 17470 #define MC_CMD_GET_CAPABILITIES_V9_OUT_BUNDLE_UPDATE_WIDTH 1 17471 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V3_OFST 20 17472 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V3_LBN 29 17473 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V3_WIDTH 1 17474 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_SENSORS_OFST 20 17475 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_SENSORS_LBN 30 17476 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_SENSORS_WIDTH 1 17477 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 17478 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 17479 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 17480 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 17481 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 17482 */ 17483 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 17484 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 17485 /* One byte per PF containing the number of the external port assigned to this 17486 * PF, indexed by PF number. Special values indicate that a PF is either not 17487 * present or not assigned. 17488 */ 17489 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 17490 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 17491 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 17492 /* enum: The caller is not permitted to access information on this PF. */ 17493 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ACCESS_NOT_PERMITTED 0xff 17494 /* enum: PF does not exist. */ 17495 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PF_NOT_PRESENT 0xfe 17496 /* enum: PF does exist but is not assigned to any external port. */ 17497 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PF_NOT_ASSIGNED 0xfd 17498 /* enum: This value indicates that PF is assigned, but it cannot be expressed 17499 * in this field. It is intended for a possible future situation where a more 17500 * complex scheme of PFs to ports mapping is being used. The future driver 17501 * should look for a new field supporting the new scheme. The current/old 17502 * driver should treat this value as PF_NOT_ASSIGNED. 17503 */ 17504 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 17505 /* One byte per PF containing the number of its VFs, indexed by PF number. A 17506 * special value indicates that a PF is not present. 17507 */ 17508 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VFS_PER_PF_OFST 42 17509 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VFS_PER_PF_LEN 1 17510 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VFS_PER_PF_NUM 16 17511 /* enum: The caller is not permitted to access information on this PF. */ 17512 /* MC_CMD_GET_CAPABILITIES_V9_OUT_ACCESS_NOT_PERMITTED 0xff */ 17513 /* enum: PF does not exist. */ 17514 /* MC_CMD_GET_CAPABILITIES_V9_OUT_PF_NOT_PRESENT 0xfe */ 17515 /* Number of VIs available for external ports 0-3. For devices with more than 17516 * four ports, the remainder are in NUM_VIS_PER_PORT2 in 17517 * GET_CAPABILITIES_V12_OUT. 17518 */ 17519 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VIS_PER_PORT_OFST 58 17520 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VIS_PER_PORT_LEN 2 17521 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VIS_PER_PORT_NUM 4 17522 /* Size of RX descriptor cache expressed as binary logarithm The actual size 17523 * equals (2 ^ RX_DESC_CACHE_SIZE) 17524 */ 17525 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DESC_CACHE_SIZE_OFST 66 17526 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DESC_CACHE_SIZE_LEN 1 17527 /* Size of TX descriptor cache expressed as binary logarithm The actual size 17528 * equals (2 ^ TX_DESC_CACHE_SIZE) 17529 */ 17530 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DESC_CACHE_SIZE_OFST 67 17531 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DESC_CACHE_SIZE_LEN 1 17532 /* Total number of available PIO buffers */ 17533 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_PIO_BUFFS_OFST 68 17534 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_PIO_BUFFS_LEN 2 17535 /* Size of a single PIO buffer */ 17536 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SIZE_PIO_BUFF_OFST 70 17537 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SIZE_PIO_BUFF_LEN 2 17538 /* On chips later than Medford the amount of address space assigned to each VI 17539 * is configurable. This is a global setting that the driver must query to 17540 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 17541 * with 8k VI windows. 17542 */ 17543 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_OFST 72 17544 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_LEN 1 17545 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 17546 * CTPIO is not mapped. 17547 */ 17548 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_8K 0x0 17549 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 17550 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_16K 0x1 17551 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 17552 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_64K 0x2 17553 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 17554 * (SF-115995-SW) in the present configuration of firmware and port mode. 17555 */ 17556 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 17557 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 17558 /* Number of buffers per adapter that can be used for VFIFO Stuffing 17559 * (SF-115995-SW) in the present configuration of firmware and port mode. 17560 */ 17561 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 17562 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 17563 /* Entry count in the MAC stats array, including the final GENERATION_END 17564 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 17565 * hold at least this many 64-bit stats values, if they wish to receive all 17566 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 17567 * stats array returned will be truncated. 17568 */ 17569 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_NUM_STATS_OFST 76 17570 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_NUM_STATS_LEN 2 17571 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 17572 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 17573 */ 17574 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_MAX_OFST 80 17575 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_MAX_LEN 4 17576 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 17577 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 17578 * they create an RX queue. Due to hardware limitations, only a small number of 17579 * different buffer sizes may be available concurrently. Nonzero entries in 17580 * this array are the sizes of buffers which the system guarantees will be 17581 * available for use. If the list is empty, there are no limitations on 17582 * concurrent buffer sizes. 17583 */ 17584 #define MC_CMD_GET_CAPABILITIES_V9_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 17585 #define MC_CMD_GET_CAPABILITIES_V9_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 17586 #define MC_CMD_GET_CAPABILITIES_V9_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 17587 /* Third word of flags. Not present on older firmware (check the length). */ 17588 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS3_OFST 148 17589 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS3_LEN 4 17590 #define MC_CMD_GET_CAPABILITIES_V9_OUT_WOL_ETHERWAKE_OFST 148 17591 #define MC_CMD_GET_CAPABILITIES_V9_OUT_WOL_ETHERWAKE_LBN 0 17592 #define MC_CMD_GET_CAPABILITIES_V9_OUT_WOL_ETHERWAKE_WIDTH 1 17593 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_EVEN_SPREADING_OFST 148 17594 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_EVEN_SPREADING_LBN 1 17595 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_EVEN_SPREADING_WIDTH 1 17596 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 17597 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 17598 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 17599 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_SUPPORTED_OFST 148 17600 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_SUPPORTED_LBN 3 17601 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_SUPPORTED_WIDTH 1 17602 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VDPA_SUPPORTED_OFST 148 17603 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VDPA_SUPPORTED_LBN 4 17604 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VDPA_SUPPORTED_WIDTH 1 17605 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 17606 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 17607 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 17608 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 17609 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 17610 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 17611 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 17612 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 17613 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 17614 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 17615 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 17616 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 17617 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 17618 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 17619 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 17620 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 17621 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 17622 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 17623 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 17624 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 17625 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 17626 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 17627 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 17628 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 17629 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_OFST 148 17630 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_LBN 13 17631 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_WIDTH 1 17632 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_MPORT_JOURNAL_OFST 148 17633 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_MPORT_JOURNAL_LBN 14 17634 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1 17635 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CLIENT_CMD_VF_PROXY_OFST 148 17636 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CLIENT_CMD_VF_PROXY_LBN 15 17637 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CLIENT_CMD_VF_PROXY_WIDTH 1 17638 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_OFST 148 17639 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_LBN 16 17640 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_WIDTH 1 17641 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CXL_CONFIG_ENABLE_OFST 148 17642 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CXL_CONFIG_ENABLE_LBN 17 17643 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CXL_CONFIG_ENABLE_WIDTH 1 17644 /* These bits are reserved for communicating test-specific capabilities to 17645 * host-side test software. All production drivers should treat this field as 17646 * opaque. 17647 */ 17648 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_OFST 152 17649 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LEN 8 17650 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_OFST 152 17651 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_LEN 4 17652 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_LBN 1216 17653 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_WIDTH 32 17654 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_OFST 156 17655 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_LEN 4 17656 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_LBN 1248 17657 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_WIDTH 32 17658 /* The minimum size (in table entries) of indirection table to be allocated 17659 * from the pool for an RSS context. Note that the table size used must be a 17660 * power of 2. 17661 */ 17662 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_OFST 160 17663 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_LEN 4 17664 /* The maximum size (in table entries) of indirection table to be allocated 17665 * from the pool for an RSS context. Note that the table size used must be a 17666 * power of 2. 17667 */ 17668 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_OFST 164 17669 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_LEN 4 17670 /* The maximum number of queues that can be used by an RSS context in exclusive 17671 * mode. In exclusive mode the context has a configurable indirection table and 17672 * a configurable RSS key. 17673 */ 17674 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_QUEUES_OFST 168 17675 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_QUEUES_LEN 4 17676 /* The maximum number of queues that can be used by an RSS context in even- 17677 * spreading mode. In even-spreading mode the context has no indirection table 17678 * but it does have a configurable RSS key. 17679 */ 17680 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_OFST 172 17681 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_LEN 4 17682 /* The total number of RSS contexts supported. Note that the number of 17683 * available contexts using indirection tables is also limited by the 17684 * availability of indirection table space allocated from a common pool. 17685 */ 17686 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_NUM_CONTEXTS_OFST 176 17687 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_NUM_CONTEXTS_LEN 4 17688 /* The total amount of indirection table space that can be shared between RSS 17689 * contexts. 17690 */ 17691 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_TABLE_POOL_SIZE_OFST 180 17692 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_TABLE_POOL_SIZE_LEN 4 17693 17694 /* MC_CMD_GET_CAPABILITIES_V10_OUT msgresponse */ 17695 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LEN 192 17696 /* First word of flags. */ 17697 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS1_OFST 0 17698 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS1_LEN 4 17699 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VPORT_RECONFIGURE_OFST 0 17700 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VPORT_RECONFIGURE_LBN 3 17701 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VPORT_RECONFIGURE_WIDTH 1 17702 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_OFST 0 17703 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_LBN 4 17704 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_WIDTH 1 17705 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_QUERY_OFST 0 17706 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_QUERY_LBN 5 17707 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_QUERY_WIDTH 1 17708 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 17709 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 17710 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 17711 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_OFST 0 17712 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_LBN 7 17713 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 17714 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_FORCE_EVENT_MERGING_OFST 0 17715 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_FORCE_EVENT_MERGING_LBN 8 17716 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 17717 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SET_MAC_ENHANCED_OFST 0 17718 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SET_MAC_ENHANCED_LBN 9 17719 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SET_MAC_ENHANCED_WIDTH 1 17720 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 17721 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 17722 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 17723 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 17724 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 17725 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 17726 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 17727 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 17728 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 17729 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ADDITIONAL_RSS_MODES_OFST 0 17730 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ADDITIONAL_RSS_MODES_LBN 13 17731 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 17732 #define MC_CMD_GET_CAPABILITIES_V10_OUT_QBB_OFST 0 17733 #define MC_CMD_GET_CAPABILITIES_V10_OUT_QBB_LBN 14 17734 #define MC_CMD_GET_CAPABILITIES_V10_OUT_QBB_WIDTH 1 17735 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 17736 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 17737 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 17738 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_RSS_LIMITED_OFST 0 17739 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_RSS_LIMITED_LBN 16 17740 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_RSS_LIMITED_WIDTH 1 17741 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_OFST 0 17742 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_LBN 17 17743 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_WIDTH 1 17744 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_INCLUDE_FCS_OFST 0 17745 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_INCLUDE_FCS_LBN 18 17746 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_INCLUDE_FCS_WIDTH 1 17747 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VLAN_INSERTION_OFST 0 17748 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VLAN_INSERTION_LBN 19 17749 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VLAN_INSERTION_WIDTH 1 17750 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_OFST 0 17751 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_LBN 20 17752 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_WIDTH 1 17753 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_OFST 0 17754 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_LBN 21 17755 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_WIDTH 1 17756 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_0_OFST 0 17757 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_0_LBN 22 17758 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_0_WIDTH 1 17759 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_14_OFST 0 17760 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_14_LBN 23 17761 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_14_WIDTH 1 17762 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_TIMESTAMP_OFST 0 17763 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_TIMESTAMP_LBN 24 17764 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_TIMESTAMP_WIDTH 1 17765 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_BATCHING_OFST 0 17766 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_BATCHING_LBN 25 17767 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_BATCHING_WIDTH 1 17768 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCAST_FILTER_CHAINING_OFST 0 17769 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCAST_FILTER_CHAINING_LBN 26 17770 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCAST_FILTER_CHAINING_WIDTH 1 17771 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PM_AND_RXDP_COUNTERS_OFST 0 17772 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PM_AND_RXDP_COUNTERS_LBN 27 17773 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 17774 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DISABLE_SCATTER_OFST 0 17775 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DISABLE_SCATTER_LBN 28 17776 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DISABLE_SCATTER_WIDTH 1 17777 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 17778 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 17779 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 17780 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_OFST 0 17781 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_LBN 30 17782 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_WIDTH 1 17783 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VXLAN_NVGRE_OFST 0 17784 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VXLAN_NVGRE_LBN 31 17785 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VXLAN_NVGRE_WIDTH 1 17786 /* RxDPCPU firmware id. */ 17787 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DPCPU_FW_ID_OFST 4 17788 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DPCPU_FW_ID_LEN 2 17789 /* enum: Standard RXDP firmware */ 17790 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP 0x0 17791 /* enum: Low latency RXDP firmware */ 17792 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_LOW_LATENCY 0x1 17793 /* enum: Packed stream RXDP firmware */ 17794 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_PACKED_STREAM 0x2 17795 /* enum: Rules engine RXDP firmware */ 17796 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_RULES_ENGINE 0x5 17797 /* enum: DPDK RXDP firmware */ 17798 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_DPDK 0x6 17799 /* enum: BIST RXDP firmware */ 17800 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_BIST 0x10a 17801 /* enum: RXDP Test firmware image 1 */ 17802 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 17803 /* enum: RXDP Test firmware image 2 */ 17804 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 17805 /* enum: RXDP Test firmware image 3 */ 17806 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 17807 /* enum: RXDP Test firmware image 4 */ 17808 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 17809 /* enum: RXDP Test firmware image 5 */ 17810 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_BACKPRESSURE 0x105 17811 /* enum: RXDP Test firmware image 6 */ 17812 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 17813 /* enum: RXDP Test firmware image 7 */ 17814 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 17815 /* enum: RXDP Test firmware image 8 */ 17816 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 17817 /* enum: RXDP Test firmware image 9 */ 17818 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 17819 /* enum: RXDP Test firmware image 10 */ 17820 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_SLOW 0x10c 17821 /* TxDPCPU firmware id. */ 17822 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DPCPU_FW_ID_OFST 6 17823 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DPCPU_FW_ID_LEN 2 17824 /* enum: Standard TXDP firmware */ 17825 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP 0x0 17826 /* enum: Low latency TXDP firmware */ 17827 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_LOW_LATENCY 0x1 17828 /* enum: High packet rate TXDP firmware */ 17829 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_HIGH_PACKET_RATE 0x3 17830 /* enum: Rules engine TXDP firmware */ 17831 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_RULES_ENGINE 0x5 17832 /* enum: DPDK TXDP firmware */ 17833 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_DPDK 0x6 17834 /* enum: BIST TXDP firmware */ 17835 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_BIST 0x12d 17836 /* enum: TXDP Test firmware image 1 */ 17837 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 17838 /* enum: TXDP Test firmware image 2 */ 17839 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 17840 /* enum: TXDP CSR bus test firmware */ 17841 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_TEST_FW_CSR 0x103 17842 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_OFST 8 17843 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_LEN 2 17844 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_REV_OFST 8 17845 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_REV_LBN 0 17846 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_REV_WIDTH 12 17847 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_TYPE_OFST 8 17848 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_TYPE_LBN 12 17849 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 17850 /* enum: reserved value - do not use (may indicate alternative interpretation 17851 * of REV field in future) 17852 */ 17853 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_RESERVED 0x0 17854 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 17855 * development only) 17856 */ 17857 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 17858 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 17859 */ 17860 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 17861 /* enum: RX PD firmware with approximately Siena-compatible behaviour 17862 * (Huntington development only) 17863 */ 17864 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 17865 /* enum: Full featured RX PD production firmware */ 17866 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 17867 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 17868 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_VSWITCH 0x3 17869 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 17870 * (Huntington development only) 17871 */ 17872 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 17873 /* enum: Low latency RX PD production firmware */ 17874 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 17875 /* enum: Packed stream RX PD production firmware */ 17876 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 17877 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 17878 * tests (Medford development only) 17879 */ 17880 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 17881 /* enum: Rules engine RX PD production firmware */ 17882 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 17883 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 17884 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_L3XUDP 0x9 17885 /* enum: DPDK RX PD production firmware */ 17886 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_DPDK 0xa 17887 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 17888 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 17889 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 17890 * encapsulations (Medford development only) 17891 */ 17892 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 17893 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_OFST 10 17894 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_LEN 2 17895 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_REV_OFST 10 17896 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_REV_LBN 0 17897 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_REV_WIDTH 12 17898 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_TYPE_OFST 10 17899 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_TYPE_LBN 12 17900 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 17901 /* enum: reserved value - do not use (may indicate alternative interpretation 17902 * of REV field in future) 17903 */ 17904 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_RESERVED 0x0 17905 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 17906 * development only) 17907 */ 17908 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 17909 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 17910 */ 17911 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 17912 /* enum: TX PD firmware with approximately Siena-compatible behaviour 17913 * (Huntington development only) 17914 */ 17915 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 17916 /* enum: Full featured TX PD production firmware */ 17917 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 17918 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 17919 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_VSWITCH 0x3 17920 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 17921 * (Huntington development only) 17922 */ 17923 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 17924 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 17925 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 17926 * tests (Medford development only) 17927 */ 17928 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 17929 /* enum: Rules engine TX PD production firmware */ 17930 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 17931 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 17932 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_L3XUDP 0x9 17933 /* enum: DPDK TX PD production firmware */ 17934 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_DPDK 0xa 17935 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 17936 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 17937 /* Hardware capabilities of NIC */ 17938 #define MC_CMD_GET_CAPABILITIES_V10_OUT_HW_CAPABILITIES_OFST 12 17939 #define MC_CMD_GET_CAPABILITIES_V10_OUT_HW_CAPABILITIES_LEN 4 17940 /* Licensed capabilities */ 17941 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LICENSE_CAPABILITIES_OFST 16 17942 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LICENSE_CAPABILITIES_LEN 4 17943 /* Second word of flags. Not present on older firmware (check the length). */ 17944 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS2_OFST 20 17945 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS2_LEN 4 17946 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_OFST 20 17947 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_LBN 0 17948 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_WIDTH 1 17949 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_OFST 20 17950 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_LBN 1 17951 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_WIDTH 1 17952 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVQ_TIMER_CTRL_OFST 20 17953 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVQ_TIMER_CTRL_LBN 2 17954 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVQ_TIMER_CTRL_WIDTH 1 17955 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVENT_CUT_THROUGH_OFST 20 17956 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVENT_CUT_THROUGH_LBN 3 17957 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVENT_CUT_THROUGH_WIDTH 1 17958 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_OFST 20 17959 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_LBN 4 17960 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_WIDTH 1 17961 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VFIFO_ULL_MODE_OFST 20 17962 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VFIFO_ULL_MODE_LBN 5 17963 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 17964 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 17965 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 17966 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 17967 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 17968 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 17969 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 17970 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_OFST 20 17971 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_LBN 7 17972 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_WIDTH 1 17973 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_TIMESTAMPING_OFST 20 17974 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_TIMESTAMPING_LBN 8 17975 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 17976 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TIMESTAMP_OFST 20 17977 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TIMESTAMP_LBN 9 17978 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TIMESTAMP_WIDTH 1 17979 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_SNIFF_OFST 20 17980 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_SNIFF_LBN 10 17981 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_SNIFF_WIDTH 1 17982 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_SNIFF_OFST 20 17983 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_SNIFF_LBN 11 17984 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_SNIFF_WIDTH 1 17985 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 17986 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 17987 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 17988 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_BACKGROUND_OFST 20 17989 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_BACKGROUND_LBN 13 17990 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_BACKGROUND_WIDTH 1 17991 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_DB_RETURN_OFST 20 17992 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_DB_RETURN_LBN 14 17993 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_DB_RETURN_WIDTH 1 17994 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CTPIO_OFST 20 17995 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CTPIO_LBN 15 17996 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CTPIO_WIDTH 1 17997 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_SUPPORT_OFST 20 17998 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_SUPPORT_LBN 16 17999 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_SUPPORT_WIDTH 1 18000 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_BOUND_OFST 20 18001 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_BOUND_LBN 17 18002 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_BOUND_WIDTH 1 18003 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 18004 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 18005 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 18006 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_FLAG_OFST 20 18007 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_FLAG_LBN 19 18008 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_FLAG_WIDTH 1 18009 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_OFST 20 18010 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_LBN 20 18011 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_WIDTH 1 18012 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 18013 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 18014 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 18015 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 18016 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 18017 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 18018 #define MC_CMD_GET_CAPABILITIES_V10_OUT_L3XUDP_SUPPORT_OFST 20 18019 #define MC_CMD_GET_CAPABILITIES_V10_OUT_L3XUDP_SUPPORT_LBN 22 18020 #define MC_CMD_GET_CAPABILITIES_V10_OUT_L3XUDP_SUPPORT_WIDTH 1 18021 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 18022 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 18023 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 18024 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_SPREADING_OFST 20 18025 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_SPREADING_LBN 24 18026 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_SPREADING_WIDTH 1 18027 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_HLB_IDLE_OFST 20 18028 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_HLB_IDLE_LBN 25 18029 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_HLB_IDLE_WIDTH 1 18030 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 18031 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 18032 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 18033 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 18034 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 18035 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 18036 #define MC_CMD_GET_CAPABILITIES_V10_OUT_BUNDLE_UPDATE_OFST 20 18037 #define MC_CMD_GET_CAPABILITIES_V10_OUT_BUNDLE_UPDATE_LBN 28 18038 #define MC_CMD_GET_CAPABILITIES_V10_OUT_BUNDLE_UPDATE_WIDTH 1 18039 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V3_OFST 20 18040 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V3_LBN 29 18041 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V3_WIDTH 1 18042 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_SENSORS_OFST 20 18043 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_SENSORS_LBN 30 18044 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_SENSORS_WIDTH 1 18045 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 18046 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 18047 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 18048 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 18049 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 18050 */ 18051 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 18052 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 18053 /* One byte per PF containing the number of the external port assigned to this 18054 * PF, indexed by PF number. Special values indicate that a PF is either not 18055 * present or not assigned. 18056 */ 18057 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 18058 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 18059 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 18060 /* enum: The caller is not permitted to access information on this PF. */ 18061 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ACCESS_NOT_PERMITTED 0xff 18062 /* enum: PF does not exist. */ 18063 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PF_NOT_PRESENT 0xfe 18064 /* enum: PF does exist but is not assigned to any external port. */ 18065 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PF_NOT_ASSIGNED 0xfd 18066 /* enum: This value indicates that PF is assigned, but it cannot be expressed 18067 * in this field. It is intended for a possible future situation where a more 18068 * complex scheme of PFs to ports mapping is being used. The future driver 18069 * should look for a new field supporting the new scheme. The current/old 18070 * driver should treat this value as PF_NOT_ASSIGNED. 18071 */ 18072 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 18073 /* One byte per PF containing the number of its VFs, indexed by PF number. A 18074 * special value indicates that a PF is not present. 18075 */ 18076 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VFS_PER_PF_OFST 42 18077 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VFS_PER_PF_LEN 1 18078 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VFS_PER_PF_NUM 16 18079 /* enum: The caller is not permitted to access information on this PF. */ 18080 /* MC_CMD_GET_CAPABILITIES_V10_OUT_ACCESS_NOT_PERMITTED 0xff */ 18081 /* enum: PF does not exist. */ 18082 /* MC_CMD_GET_CAPABILITIES_V10_OUT_PF_NOT_PRESENT 0xfe */ 18083 /* Number of VIs available for external ports 0-3. For devices with more than 18084 * four ports, the remainder are in NUM_VIS_PER_PORT2 in 18085 * GET_CAPABILITIES_V12_OUT. 18086 */ 18087 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VIS_PER_PORT_OFST 58 18088 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VIS_PER_PORT_LEN 2 18089 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VIS_PER_PORT_NUM 4 18090 /* Size of RX descriptor cache expressed as binary logarithm The actual size 18091 * equals (2 ^ RX_DESC_CACHE_SIZE) 18092 */ 18093 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DESC_CACHE_SIZE_OFST 66 18094 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DESC_CACHE_SIZE_LEN 1 18095 /* Size of TX descriptor cache expressed as binary logarithm The actual size 18096 * equals (2 ^ TX_DESC_CACHE_SIZE) 18097 */ 18098 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DESC_CACHE_SIZE_OFST 67 18099 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DESC_CACHE_SIZE_LEN 1 18100 /* Total number of available PIO buffers */ 18101 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_PIO_BUFFS_OFST 68 18102 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_PIO_BUFFS_LEN 2 18103 /* Size of a single PIO buffer */ 18104 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SIZE_PIO_BUFF_OFST 70 18105 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SIZE_PIO_BUFF_LEN 2 18106 /* On chips later than Medford the amount of address space assigned to each VI 18107 * is configurable. This is a global setting that the driver must query to 18108 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 18109 * with 8k VI windows. 18110 */ 18111 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_OFST 72 18112 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_LEN 1 18113 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 18114 * CTPIO is not mapped. 18115 */ 18116 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_8K 0x0 18117 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 18118 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_16K 0x1 18119 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 18120 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_64K 0x2 18121 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 18122 * (SF-115995-SW) in the present configuration of firmware and port mode. 18123 */ 18124 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 18125 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 18126 /* Number of buffers per adapter that can be used for VFIFO Stuffing 18127 * (SF-115995-SW) in the present configuration of firmware and port mode. 18128 */ 18129 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 18130 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 18131 /* Entry count in the MAC stats array, including the final GENERATION_END 18132 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 18133 * hold at least this many 64-bit stats values, if they wish to receive all 18134 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 18135 * stats array returned will be truncated. 18136 */ 18137 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_NUM_STATS_OFST 76 18138 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_NUM_STATS_LEN 2 18139 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 18140 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 18141 */ 18142 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_MAX_OFST 80 18143 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_MAX_LEN 4 18144 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 18145 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 18146 * they create an RX queue. Due to hardware limitations, only a small number of 18147 * different buffer sizes may be available concurrently. Nonzero entries in 18148 * this array are the sizes of buffers which the system guarantees will be 18149 * available for use. If the list is empty, there are no limitations on 18150 * concurrent buffer sizes. 18151 */ 18152 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 18153 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 18154 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 18155 /* Third word of flags. Not present on older firmware (check the length). */ 18156 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS3_OFST 148 18157 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS3_LEN 4 18158 #define MC_CMD_GET_CAPABILITIES_V10_OUT_WOL_ETHERWAKE_OFST 148 18159 #define MC_CMD_GET_CAPABILITIES_V10_OUT_WOL_ETHERWAKE_LBN 0 18160 #define MC_CMD_GET_CAPABILITIES_V10_OUT_WOL_ETHERWAKE_WIDTH 1 18161 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_OFST 148 18162 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_LBN 1 18163 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_WIDTH 1 18164 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 18165 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 18166 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 18167 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_SUPPORTED_OFST 148 18168 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_SUPPORTED_LBN 3 18169 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_SUPPORTED_WIDTH 1 18170 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_OFST 148 18171 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_LBN 4 18172 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_WIDTH 1 18173 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 18174 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 18175 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 18176 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 18177 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 18178 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 18179 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 18180 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 18181 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 18182 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 18183 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 18184 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 18185 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 18186 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 18187 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 18188 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 18189 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 18190 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 18191 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 18192 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 18193 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 18194 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 18195 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 18196 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 18197 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_OFST 148 18198 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_LBN 13 18199 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_WIDTH 1 18200 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_MPORT_JOURNAL_OFST 148 18201 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_MPORT_JOURNAL_LBN 14 18202 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1 18203 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CLIENT_CMD_VF_PROXY_OFST 148 18204 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CLIENT_CMD_VF_PROXY_LBN 15 18205 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CLIENT_CMD_VF_PROXY_WIDTH 1 18206 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_OFST 148 18207 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_LBN 16 18208 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_WIDTH 1 18209 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CXL_CONFIG_ENABLE_OFST 148 18210 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CXL_CONFIG_ENABLE_LBN 17 18211 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CXL_CONFIG_ENABLE_WIDTH 1 18212 /* These bits are reserved for communicating test-specific capabilities to 18213 * host-side test software. All production drivers should treat this field as 18214 * opaque. 18215 */ 18216 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_OFST 152 18217 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LEN 8 18218 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_OFST 152 18219 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_LEN 4 18220 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_LBN 1216 18221 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_WIDTH 32 18222 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_OFST 156 18223 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_LEN 4 18224 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_LBN 1248 18225 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_WIDTH 32 18226 /* The minimum size (in table entries) of indirection table to be allocated 18227 * from the pool for an RSS context. Note that the table size used must be a 18228 * power of 2. 18229 */ 18230 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_OFST 160 18231 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_LEN 4 18232 /* The maximum size (in table entries) of indirection table to be allocated 18233 * from the pool for an RSS context. Note that the table size used must be a 18234 * power of 2. 18235 */ 18236 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_OFST 164 18237 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_LEN 4 18238 /* The maximum number of queues that can be used by an RSS context in exclusive 18239 * mode. In exclusive mode the context has a configurable indirection table and 18240 * a configurable RSS key. 18241 */ 18242 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_QUEUES_OFST 168 18243 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_QUEUES_LEN 4 18244 /* The maximum number of queues that can be used by an RSS context in even- 18245 * spreading mode. In even-spreading mode the context has no indirection table 18246 * but it does have a configurable RSS key. 18247 */ 18248 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_OFST 172 18249 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_LEN 4 18250 /* The total number of RSS contexts supported. Note that the number of 18251 * available contexts using indirection tables is also limited by the 18252 * availability of indirection table space allocated from a common pool. 18253 */ 18254 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_NUM_CONTEXTS_OFST 176 18255 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_NUM_CONTEXTS_LEN 4 18256 /* The total amount of indirection table space that can be shared between RSS 18257 * contexts. 18258 */ 18259 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_TABLE_POOL_SIZE_OFST 180 18260 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_TABLE_POOL_SIZE_LEN 4 18261 /* A bitmap of the queue sizes the device can provide, where bit N being set 18262 * indicates that 2**N is a valid size. The device may be limited in the number 18263 * of different queue sizes that can exist simultaneously, so a bit being set 18264 * here does not guarantee that an attempt to create a queue of that size will 18265 * succeed. 18266 */ 18267 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SUPPORTED_QUEUE_SIZES_OFST 184 18268 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SUPPORTED_QUEUE_SIZES_LEN 4 18269 /* A bitmap of queue sizes that are always available, in the same format as 18270 * SUPPORTED_QUEUE_SIZES. Attempting to create a queue with one of these sizes 18271 * will never fail due to unavailability of the requested size. 18272 */ 18273 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_QUEUE_SIZES_OFST 188 18274 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_QUEUE_SIZES_LEN 4 18275 18276 /* MC_CMD_GET_CAPABILITIES_V11_OUT msgresponse */ 18277 #define MC_CMD_GET_CAPABILITIES_V11_OUT_LEN 196 18278 /* First word of flags. */ 18279 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FLAGS1_OFST 0 18280 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FLAGS1_LEN 4 18281 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VPORT_RECONFIGURE_OFST 0 18282 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VPORT_RECONFIGURE_LBN 3 18283 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VPORT_RECONFIGURE_WIDTH 1 18284 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_STRIPING_OFST 0 18285 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_STRIPING_LBN 4 18286 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_STRIPING_WIDTH 1 18287 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VADAPTOR_QUERY_OFST 0 18288 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VADAPTOR_QUERY_LBN 5 18289 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VADAPTOR_QUERY_WIDTH 1 18290 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 18291 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 18292 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 18293 #define MC_CMD_GET_CAPABILITIES_V11_OUT_DRV_ATTACH_PREBOOT_OFST 0 18294 #define MC_CMD_GET_CAPABILITIES_V11_OUT_DRV_ATTACH_PREBOOT_LBN 7 18295 #define MC_CMD_GET_CAPABILITIES_V11_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 18296 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_FORCE_EVENT_MERGING_OFST 0 18297 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_FORCE_EVENT_MERGING_LBN 8 18298 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 18299 #define MC_CMD_GET_CAPABILITIES_V11_OUT_SET_MAC_ENHANCED_OFST 0 18300 #define MC_CMD_GET_CAPABILITIES_V11_OUT_SET_MAC_ENHANCED_LBN 9 18301 #define MC_CMD_GET_CAPABILITIES_V11_OUT_SET_MAC_ENHANCED_WIDTH 1 18302 #define MC_CMD_GET_CAPABILITIES_V11_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 18303 #define MC_CMD_GET_CAPABILITIES_V11_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 18304 #define MC_CMD_GET_CAPABILITIES_V11_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 18305 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 18306 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 18307 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 18308 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 18309 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 18310 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 18311 #define MC_CMD_GET_CAPABILITIES_V11_OUT_ADDITIONAL_RSS_MODES_OFST 0 18312 #define MC_CMD_GET_CAPABILITIES_V11_OUT_ADDITIONAL_RSS_MODES_LBN 13 18313 #define MC_CMD_GET_CAPABILITIES_V11_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 18314 #define MC_CMD_GET_CAPABILITIES_V11_OUT_QBB_OFST 0 18315 #define MC_CMD_GET_CAPABILITIES_V11_OUT_QBB_LBN 14 18316 #define MC_CMD_GET_CAPABILITIES_V11_OUT_QBB_WIDTH 1 18317 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 18318 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 18319 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 18320 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_RSS_LIMITED_OFST 0 18321 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_RSS_LIMITED_LBN 16 18322 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_RSS_LIMITED_WIDTH 1 18323 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_PACKED_STREAM_OFST 0 18324 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_PACKED_STREAM_LBN 17 18325 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_PACKED_STREAM_WIDTH 1 18326 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_INCLUDE_FCS_OFST 0 18327 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_INCLUDE_FCS_LBN 18 18328 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_INCLUDE_FCS_WIDTH 1 18329 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_VLAN_INSERTION_OFST 0 18330 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_VLAN_INSERTION_LBN 19 18331 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_VLAN_INSERTION_WIDTH 1 18332 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_VLAN_STRIPPING_OFST 0 18333 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_VLAN_STRIPPING_LBN 20 18334 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_VLAN_STRIPPING_WIDTH 1 18335 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_OFST 0 18336 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_LBN 21 18337 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_WIDTH 1 18338 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_PREFIX_LEN_0_OFST 0 18339 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_PREFIX_LEN_0_LBN 22 18340 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_PREFIX_LEN_0_WIDTH 1 18341 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_PREFIX_LEN_14_OFST 0 18342 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_PREFIX_LEN_14_LBN 23 18343 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_PREFIX_LEN_14_WIDTH 1 18344 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_TIMESTAMP_OFST 0 18345 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_TIMESTAMP_LBN 24 18346 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_TIMESTAMP_WIDTH 1 18347 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_BATCHING_OFST 0 18348 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_BATCHING_LBN 25 18349 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_BATCHING_WIDTH 1 18350 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MCAST_FILTER_CHAINING_OFST 0 18351 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MCAST_FILTER_CHAINING_LBN 26 18352 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MCAST_FILTER_CHAINING_WIDTH 1 18353 #define MC_CMD_GET_CAPABILITIES_V11_OUT_PM_AND_RXDP_COUNTERS_OFST 0 18354 #define MC_CMD_GET_CAPABILITIES_V11_OUT_PM_AND_RXDP_COUNTERS_LBN 27 18355 #define MC_CMD_GET_CAPABILITIES_V11_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 18356 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_DISABLE_SCATTER_OFST 0 18357 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_DISABLE_SCATTER_LBN 28 18358 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_DISABLE_SCATTER_WIDTH 1 18359 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 18360 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 18361 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 18362 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EVB_OFST 0 18363 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EVB_LBN 30 18364 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EVB_WIDTH 1 18365 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VXLAN_NVGRE_OFST 0 18366 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VXLAN_NVGRE_LBN 31 18367 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VXLAN_NVGRE_WIDTH 1 18368 /* RxDPCPU firmware id. */ 18369 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_DPCPU_FW_ID_OFST 4 18370 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_DPCPU_FW_ID_LEN 2 18371 /* enum: Standard RXDP firmware */ 18372 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP 0x0 18373 /* enum: Low latency RXDP firmware */ 18374 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_LOW_LATENCY 0x1 18375 /* enum: Packed stream RXDP firmware */ 18376 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_PACKED_STREAM 0x2 18377 /* enum: Rules engine RXDP firmware */ 18378 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_RULES_ENGINE 0x5 18379 /* enum: DPDK RXDP firmware */ 18380 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_DPDK 0x6 18381 /* enum: BIST RXDP firmware */ 18382 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_BIST 0x10a 18383 /* enum: RXDP Test firmware image 1 */ 18384 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 18385 /* enum: RXDP Test firmware image 2 */ 18386 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 18387 /* enum: RXDP Test firmware image 3 */ 18388 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 18389 /* enum: RXDP Test firmware image 4 */ 18390 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 18391 /* enum: RXDP Test firmware image 5 */ 18392 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_TEST_BACKPRESSURE 0x105 18393 /* enum: RXDP Test firmware image 6 */ 18394 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 18395 /* enum: RXDP Test firmware image 7 */ 18396 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 18397 /* enum: RXDP Test firmware image 8 */ 18398 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 18399 /* enum: RXDP Test firmware image 9 */ 18400 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 18401 /* enum: RXDP Test firmware image 10 */ 18402 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_TEST_FW_SLOW 0x10c 18403 /* TxDPCPU firmware id. */ 18404 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_DPCPU_FW_ID_OFST 6 18405 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_DPCPU_FW_ID_LEN 2 18406 /* enum: Standard TXDP firmware */ 18407 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXDP 0x0 18408 /* enum: Low latency TXDP firmware */ 18409 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXDP_LOW_LATENCY 0x1 18410 /* enum: High packet rate TXDP firmware */ 18411 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXDP_HIGH_PACKET_RATE 0x3 18412 /* enum: Rules engine TXDP firmware */ 18413 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXDP_RULES_ENGINE 0x5 18414 /* enum: DPDK TXDP firmware */ 18415 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXDP_DPDK 0x6 18416 /* enum: BIST TXDP firmware */ 18417 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXDP_BIST 0x12d 18418 /* enum: TXDP Test firmware image 1 */ 18419 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 18420 /* enum: TXDP Test firmware image 2 */ 18421 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 18422 /* enum: TXDP CSR bus test firmware */ 18423 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXDP_TEST_FW_CSR 0x103 18424 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_VERSION_OFST 8 18425 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_VERSION_LEN 2 18426 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_VERSION_REV_OFST 8 18427 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_VERSION_REV_LBN 0 18428 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_VERSION_REV_WIDTH 12 18429 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_VERSION_TYPE_OFST 8 18430 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_VERSION_TYPE_LBN 12 18431 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 18432 /* enum: reserved value - do not use (may indicate alternative interpretation 18433 * of REV field in future) 18434 */ 18435 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_TYPE_RESERVED 0x0 18436 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 18437 * development only) 18438 */ 18439 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 18440 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 18441 */ 18442 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 18443 /* enum: RX PD firmware with approximately Siena-compatible behaviour 18444 * (Huntington development only) 18445 */ 18446 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 18447 /* enum: Full featured RX PD production firmware */ 18448 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 18449 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 18450 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_TYPE_VSWITCH 0x3 18451 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 18452 * (Huntington development only) 18453 */ 18454 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 18455 /* enum: Low latency RX PD production firmware */ 18456 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 18457 /* enum: Packed stream RX PD production firmware */ 18458 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 18459 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 18460 * tests (Medford development only) 18461 */ 18462 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 18463 /* enum: Rules engine RX PD production firmware */ 18464 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 18465 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 18466 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_TYPE_L3XUDP 0x9 18467 /* enum: DPDK RX PD production firmware */ 18468 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_TYPE_DPDK 0xa 18469 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 18470 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 18471 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 18472 * encapsulations (Medford development only) 18473 */ 18474 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 18475 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_VERSION_OFST 10 18476 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_VERSION_LEN 2 18477 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_VERSION_REV_OFST 10 18478 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_VERSION_REV_LBN 0 18479 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_VERSION_REV_WIDTH 12 18480 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_VERSION_TYPE_OFST 10 18481 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_VERSION_TYPE_LBN 12 18482 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 18483 /* enum: reserved value - do not use (may indicate alternative interpretation 18484 * of REV field in future) 18485 */ 18486 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_TYPE_RESERVED 0x0 18487 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 18488 * development only) 18489 */ 18490 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 18491 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 18492 */ 18493 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 18494 /* enum: TX PD firmware with approximately Siena-compatible behaviour 18495 * (Huntington development only) 18496 */ 18497 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 18498 /* enum: Full featured TX PD production firmware */ 18499 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 18500 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 18501 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_TYPE_VSWITCH 0x3 18502 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 18503 * (Huntington development only) 18504 */ 18505 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 18506 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 18507 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 18508 * tests (Medford development only) 18509 */ 18510 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 18511 /* enum: Rules engine TX PD production firmware */ 18512 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 18513 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 18514 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_TYPE_L3XUDP 0x9 18515 /* enum: DPDK TX PD production firmware */ 18516 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_TYPE_DPDK 0xa 18517 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 18518 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 18519 /* Hardware capabilities of NIC */ 18520 #define MC_CMD_GET_CAPABILITIES_V11_OUT_HW_CAPABILITIES_OFST 12 18521 #define MC_CMD_GET_CAPABILITIES_V11_OUT_HW_CAPABILITIES_LEN 4 18522 /* Licensed capabilities */ 18523 #define MC_CMD_GET_CAPABILITIES_V11_OUT_LICENSE_CAPABILITIES_OFST 16 18524 #define MC_CMD_GET_CAPABILITIES_V11_OUT_LICENSE_CAPABILITIES_LEN 4 18525 /* Second word of flags. Not present on older firmware (check the length). */ 18526 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FLAGS2_OFST 20 18527 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FLAGS2_LEN 4 18528 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_V2_OFST 20 18529 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_V2_LBN 0 18530 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_V2_WIDTH 1 18531 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_V2_ENCAP_OFST 20 18532 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_V2_ENCAP_LBN 1 18533 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_V2_ENCAP_WIDTH 1 18534 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EVQ_TIMER_CTRL_OFST 20 18535 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EVQ_TIMER_CTRL_LBN 2 18536 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EVQ_TIMER_CTRL_WIDTH 1 18537 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EVENT_CUT_THROUGH_OFST 20 18538 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EVENT_CUT_THROUGH_LBN 3 18539 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EVENT_CUT_THROUGH_WIDTH 1 18540 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_CUT_THROUGH_OFST 20 18541 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_CUT_THROUGH_LBN 4 18542 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_CUT_THROUGH_WIDTH 1 18543 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_VFIFO_ULL_MODE_OFST 20 18544 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_VFIFO_ULL_MODE_LBN 5 18545 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 18546 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 18547 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 18548 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 18549 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 18550 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 18551 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 18552 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INIT_EVQ_V2_OFST 20 18553 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INIT_EVQ_V2_LBN 7 18554 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INIT_EVQ_V2_WIDTH 1 18555 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_MAC_TIMESTAMPING_OFST 20 18556 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_MAC_TIMESTAMPING_LBN 8 18557 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 18558 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TIMESTAMP_OFST 20 18559 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TIMESTAMP_LBN 9 18560 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TIMESTAMP_WIDTH 1 18561 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_SNIFF_OFST 20 18562 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_SNIFF_LBN 10 18563 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_SNIFF_WIDTH 1 18564 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_SNIFF_OFST 20 18565 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_SNIFF_LBN 11 18566 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_SNIFF_WIDTH 1 18567 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 18568 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 18569 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 18570 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MCDI_BACKGROUND_OFST 20 18571 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MCDI_BACKGROUND_LBN 13 18572 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MCDI_BACKGROUND_WIDTH 1 18573 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MCDI_DB_RETURN_OFST 20 18574 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MCDI_DB_RETURN_LBN 14 18575 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MCDI_DB_RETURN_WIDTH 1 18576 #define MC_CMD_GET_CAPABILITIES_V11_OUT_CTPIO_OFST 20 18577 #define MC_CMD_GET_CAPABILITIES_V11_OUT_CTPIO_LBN 15 18578 #define MC_CMD_GET_CAPABILITIES_V11_OUT_CTPIO_WIDTH 1 18579 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TSA_SUPPORT_OFST 20 18580 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TSA_SUPPORT_LBN 16 18581 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TSA_SUPPORT_WIDTH 1 18582 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TSA_BOUND_OFST 20 18583 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TSA_BOUND_LBN 17 18584 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TSA_BOUND_WIDTH 1 18585 #define MC_CMD_GET_CAPABILITIES_V11_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 18586 #define MC_CMD_GET_CAPABILITIES_V11_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 18587 #define MC_CMD_GET_CAPABILITIES_V11_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 18588 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FILTER_ACTION_FLAG_OFST 20 18589 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FILTER_ACTION_FLAG_LBN 19 18590 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FILTER_ACTION_FLAG_WIDTH 1 18591 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FILTER_ACTION_MARK_OFST 20 18592 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FILTER_ACTION_MARK_LBN 20 18593 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FILTER_ACTION_MARK_WIDTH 1 18594 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 18595 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 18596 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 18597 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 18598 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 18599 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 18600 #define MC_CMD_GET_CAPABILITIES_V11_OUT_L3XUDP_SUPPORT_OFST 20 18601 #define MC_CMD_GET_CAPABILITIES_V11_OUT_L3XUDP_SUPPORT_LBN 22 18602 #define MC_CMD_GET_CAPABILITIES_V11_OUT_L3XUDP_SUPPORT_WIDTH 1 18603 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 18604 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 18605 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 18606 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VI_SPREADING_OFST 20 18607 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VI_SPREADING_LBN 24 18608 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VI_SPREADING_WIDTH 1 18609 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_HLB_IDLE_OFST 20 18610 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_HLB_IDLE_LBN 25 18611 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_HLB_IDLE_WIDTH 1 18612 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 18613 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 18614 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 18615 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 18616 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 18617 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 18618 #define MC_CMD_GET_CAPABILITIES_V11_OUT_BUNDLE_UPDATE_OFST 20 18619 #define MC_CMD_GET_CAPABILITIES_V11_OUT_BUNDLE_UPDATE_LBN 28 18620 #define MC_CMD_GET_CAPABILITIES_V11_OUT_BUNDLE_UPDATE_WIDTH 1 18621 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_V3_OFST 20 18622 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_V3_LBN 29 18623 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_V3_WIDTH 1 18624 #define MC_CMD_GET_CAPABILITIES_V11_OUT_DYNAMIC_SENSORS_OFST 20 18625 #define MC_CMD_GET_CAPABILITIES_V11_OUT_DYNAMIC_SENSORS_LBN 30 18626 #define MC_CMD_GET_CAPABILITIES_V11_OUT_DYNAMIC_SENSORS_WIDTH 1 18627 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 18628 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 18629 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 18630 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 18631 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 18632 */ 18633 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 18634 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 18635 /* One byte per PF containing the number of the external port assigned to this 18636 * PF, indexed by PF number. Special values indicate that a PF is either not 18637 * present or not assigned. 18638 */ 18639 #define MC_CMD_GET_CAPABILITIES_V11_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 18640 #define MC_CMD_GET_CAPABILITIES_V11_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 18641 #define MC_CMD_GET_CAPABILITIES_V11_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 18642 /* enum: The caller is not permitted to access information on this PF. */ 18643 #define MC_CMD_GET_CAPABILITIES_V11_OUT_ACCESS_NOT_PERMITTED 0xff 18644 /* enum: PF does not exist. */ 18645 #define MC_CMD_GET_CAPABILITIES_V11_OUT_PF_NOT_PRESENT 0xfe 18646 /* enum: PF does exist but is not assigned to any external port. */ 18647 #define MC_CMD_GET_CAPABILITIES_V11_OUT_PF_NOT_ASSIGNED 0xfd 18648 /* enum: This value indicates that PF is assigned, but it cannot be expressed 18649 * in this field. It is intended for a possible future situation where a more 18650 * complex scheme of PFs to ports mapping is being used. The future driver 18651 * should look for a new field supporting the new scheme. The current/old 18652 * driver should treat this value as PF_NOT_ASSIGNED. 18653 */ 18654 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 18655 /* One byte per PF containing the number of its VFs, indexed by PF number. A 18656 * special value indicates that a PF is not present. 18657 */ 18658 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NUM_VFS_PER_PF_OFST 42 18659 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NUM_VFS_PER_PF_LEN 1 18660 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NUM_VFS_PER_PF_NUM 16 18661 /* enum: The caller is not permitted to access information on this PF. */ 18662 /* MC_CMD_GET_CAPABILITIES_V11_OUT_ACCESS_NOT_PERMITTED 0xff */ 18663 /* enum: PF does not exist. */ 18664 /* MC_CMD_GET_CAPABILITIES_V11_OUT_PF_NOT_PRESENT 0xfe */ 18665 /* Number of VIs available for external ports 0-3. For devices with more than 18666 * four ports, the remainder are in NUM_VIS_PER_PORT2 in 18667 * GET_CAPABILITIES_V12_OUT. 18668 */ 18669 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NUM_VIS_PER_PORT_OFST 58 18670 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NUM_VIS_PER_PORT_LEN 2 18671 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NUM_VIS_PER_PORT_NUM 4 18672 /* Size of RX descriptor cache expressed as binary logarithm The actual size 18673 * equals (2 ^ RX_DESC_CACHE_SIZE) 18674 */ 18675 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_DESC_CACHE_SIZE_OFST 66 18676 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_DESC_CACHE_SIZE_LEN 1 18677 /* Size of TX descriptor cache expressed as binary logarithm The actual size 18678 * equals (2 ^ TX_DESC_CACHE_SIZE) 18679 */ 18680 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_DESC_CACHE_SIZE_OFST 67 18681 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_DESC_CACHE_SIZE_LEN 1 18682 /* Total number of available PIO buffers */ 18683 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NUM_PIO_BUFFS_OFST 68 18684 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NUM_PIO_BUFFS_LEN 2 18685 /* Size of a single PIO buffer */ 18686 #define MC_CMD_GET_CAPABILITIES_V11_OUT_SIZE_PIO_BUFF_OFST 70 18687 #define MC_CMD_GET_CAPABILITIES_V11_OUT_SIZE_PIO_BUFF_LEN 2 18688 /* On chips later than Medford the amount of address space assigned to each VI 18689 * is configurable. This is a global setting that the driver must query to 18690 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 18691 * with 8k VI windows. 18692 */ 18693 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VI_WINDOW_MODE_OFST 72 18694 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VI_WINDOW_MODE_LEN 1 18695 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 18696 * CTPIO is not mapped. 18697 */ 18698 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VI_WINDOW_MODE_8K 0x0 18699 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 18700 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VI_WINDOW_MODE_16K 0x1 18701 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 18702 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VI_WINDOW_MODE_64K 0x2 18703 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 18704 * (SF-115995-SW) in the present configuration of firmware and port mode. 18705 */ 18706 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 18707 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 18708 /* Number of buffers per adapter that can be used for VFIFO Stuffing 18709 * (SF-115995-SW) in the present configuration of firmware and port mode. 18710 */ 18711 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 18712 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 18713 /* Entry count in the MAC stats array, including the final GENERATION_END 18714 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 18715 * hold at least this many 64-bit stats values, if they wish to receive all 18716 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 18717 * stats array returned will be truncated. 18718 */ 18719 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAC_STATS_NUM_STATS_OFST 76 18720 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAC_STATS_NUM_STATS_LEN 2 18721 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 18722 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 18723 */ 18724 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FILTER_ACTION_MARK_MAX_OFST 80 18725 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FILTER_ACTION_MARK_MAX_LEN 4 18726 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 18727 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 18728 * they create an RX queue. Due to hardware limitations, only a small number of 18729 * different buffer sizes may be available concurrently. Nonzero entries in 18730 * this array are the sizes of buffers which the system guarantees will be 18731 * available for use. If the list is empty, there are no limitations on 18732 * concurrent buffer sizes. 18733 */ 18734 #define MC_CMD_GET_CAPABILITIES_V11_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 18735 #define MC_CMD_GET_CAPABILITIES_V11_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 18736 #define MC_CMD_GET_CAPABILITIES_V11_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 18737 /* Third word of flags. Not present on older firmware (check the length). */ 18738 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FLAGS3_OFST 148 18739 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FLAGS3_LEN 4 18740 #define MC_CMD_GET_CAPABILITIES_V11_OUT_WOL_ETHERWAKE_OFST 148 18741 #define MC_CMD_GET_CAPABILITIES_V11_OUT_WOL_ETHERWAKE_LBN 0 18742 #define MC_CMD_GET_CAPABILITIES_V11_OUT_WOL_ETHERWAKE_WIDTH 1 18743 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_EVEN_SPREADING_OFST 148 18744 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_EVEN_SPREADING_LBN 1 18745 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_EVEN_SPREADING_WIDTH 1 18746 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 18747 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 18748 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 18749 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAE_SUPPORTED_OFST 148 18750 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAE_SUPPORTED_LBN 3 18751 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAE_SUPPORTED_WIDTH 1 18752 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VDPA_SUPPORTED_OFST 148 18753 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VDPA_SUPPORTED_LBN 4 18754 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VDPA_SUPPORTED_WIDTH 1 18755 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 18756 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 18757 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 18758 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 18759 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 18760 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 18761 #define MC_CMD_GET_CAPABILITIES_V11_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 18762 #define MC_CMD_GET_CAPABILITIES_V11_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 18763 #define MC_CMD_GET_CAPABILITIES_V11_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 18764 #define MC_CMD_GET_CAPABILITIES_V11_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 18765 #define MC_CMD_GET_CAPABILITIES_V11_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 18766 #define MC_CMD_GET_CAPABILITIES_V11_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 18767 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 18768 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 18769 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 18770 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 18771 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 18772 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 18773 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 18774 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 18775 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 18776 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 18777 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 18778 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 18779 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_OFST 148 18780 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_LBN 13 18781 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_WIDTH 1 18782 #define MC_CMD_GET_CAPABILITIES_V11_OUT_DYNAMIC_MPORT_JOURNAL_OFST 148 18783 #define MC_CMD_GET_CAPABILITIES_V11_OUT_DYNAMIC_MPORT_JOURNAL_LBN 14 18784 #define MC_CMD_GET_CAPABILITIES_V11_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1 18785 #define MC_CMD_GET_CAPABILITIES_V11_OUT_CLIENT_CMD_VF_PROXY_OFST 148 18786 #define MC_CMD_GET_CAPABILITIES_V11_OUT_CLIENT_CMD_VF_PROXY_LBN 15 18787 #define MC_CMD_GET_CAPABILITIES_V11_OUT_CLIENT_CMD_VF_PROXY_WIDTH 1 18788 #define MC_CMD_GET_CAPABILITIES_V11_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_OFST 148 18789 #define MC_CMD_GET_CAPABILITIES_V11_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_LBN 16 18790 #define MC_CMD_GET_CAPABILITIES_V11_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_WIDTH 1 18791 #define MC_CMD_GET_CAPABILITIES_V11_OUT_CXL_CONFIG_ENABLE_OFST 148 18792 #define MC_CMD_GET_CAPABILITIES_V11_OUT_CXL_CONFIG_ENABLE_LBN 17 18793 #define MC_CMD_GET_CAPABILITIES_V11_OUT_CXL_CONFIG_ENABLE_WIDTH 1 18794 /* These bits are reserved for communicating test-specific capabilities to 18795 * host-side test software. All production drivers should treat this field as 18796 * opaque. 18797 */ 18798 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TEST_RESERVED_OFST 152 18799 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TEST_RESERVED_LEN 8 18800 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TEST_RESERVED_LO_OFST 152 18801 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TEST_RESERVED_LO_LEN 4 18802 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TEST_RESERVED_LO_LBN 1216 18803 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TEST_RESERVED_LO_WIDTH 32 18804 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TEST_RESERVED_HI_OFST 156 18805 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TEST_RESERVED_HI_LEN 4 18806 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TEST_RESERVED_HI_LBN 1248 18807 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TEST_RESERVED_HI_WIDTH 32 18808 /* The minimum size (in table entries) of indirection table to be allocated 18809 * from the pool for an RSS context. Note that the table size used must be a 18810 * power of 2. 18811 */ 18812 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_OFST 160 18813 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_LEN 4 18814 /* The maximum size (in table entries) of indirection table to be allocated 18815 * from the pool for an RSS context. Note that the table size used must be a 18816 * power of 2. 18817 */ 18818 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_OFST 164 18819 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_LEN 4 18820 /* The maximum number of queues that can be used by an RSS context in exclusive 18821 * mode. In exclusive mode the context has a configurable indirection table and 18822 * a configurable RSS key. 18823 */ 18824 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_MAX_INDIRECTION_QUEUES_OFST 168 18825 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_MAX_INDIRECTION_QUEUES_LEN 4 18826 /* The maximum number of queues that can be used by an RSS context in even- 18827 * spreading mode. In even-spreading mode the context has no indirection table 18828 * but it does have a configurable RSS key. 18829 */ 18830 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_OFST 172 18831 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_LEN 4 18832 /* The total number of RSS contexts supported. Note that the number of 18833 * available contexts using indirection tables is also limited by the 18834 * availability of indirection table space allocated from a common pool. 18835 */ 18836 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_NUM_CONTEXTS_OFST 176 18837 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_NUM_CONTEXTS_LEN 4 18838 /* The total amount of indirection table space that can be shared between RSS 18839 * contexts. 18840 */ 18841 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_TABLE_POOL_SIZE_OFST 180 18842 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_TABLE_POOL_SIZE_LEN 4 18843 /* A bitmap of the queue sizes the device can provide, where bit N being set 18844 * indicates that 2**N is a valid size. The device may be limited in the number 18845 * of different queue sizes that can exist simultaneously, so a bit being set 18846 * here does not guarantee that an attempt to create a queue of that size will 18847 * succeed. 18848 */ 18849 #define MC_CMD_GET_CAPABILITIES_V11_OUT_SUPPORTED_QUEUE_SIZES_OFST 184 18850 #define MC_CMD_GET_CAPABILITIES_V11_OUT_SUPPORTED_QUEUE_SIZES_LEN 4 18851 /* A bitmap of queue sizes that are always available, in the same format as 18852 * SUPPORTED_QUEUE_SIZES. Attempting to create a queue with one of these sizes 18853 * will never fail due to unavailability of the requested size. 18854 */ 18855 #define MC_CMD_GET_CAPABILITIES_V11_OUT_GUARANTEED_QUEUE_SIZES_OFST 188 18856 #define MC_CMD_GET_CAPABILITIES_V11_OUT_GUARANTEED_QUEUE_SIZES_LEN 4 18857 /* Number of available indirect memory maps. */ 18858 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INDIRECT_MAP_INDEX_COUNT_OFST 192 18859 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INDIRECT_MAP_INDEX_COUNT_LEN 4 18860 18861 /* MC_CMD_GET_CAPABILITIES_V12_OUT msgresponse */ 18862 #define MC_CMD_GET_CAPABILITIES_V12_OUT_LEN 204 18863 /* First word of flags. */ 18864 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FLAGS1_OFST 0 18865 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FLAGS1_LEN 4 18866 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VPORT_RECONFIGURE_OFST 0 18867 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VPORT_RECONFIGURE_LBN 3 18868 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VPORT_RECONFIGURE_WIDTH 1 18869 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_STRIPING_OFST 0 18870 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_STRIPING_LBN 4 18871 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_STRIPING_WIDTH 1 18872 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VADAPTOR_QUERY_OFST 0 18873 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VADAPTOR_QUERY_LBN 5 18874 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VADAPTOR_QUERY_WIDTH 1 18875 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 18876 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 18877 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 18878 #define MC_CMD_GET_CAPABILITIES_V12_OUT_DRV_ATTACH_PREBOOT_OFST 0 18879 #define MC_CMD_GET_CAPABILITIES_V12_OUT_DRV_ATTACH_PREBOOT_LBN 7 18880 #define MC_CMD_GET_CAPABILITIES_V12_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 18881 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_FORCE_EVENT_MERGING_OFST 0 18882 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_FORCE_EVENT_MERGING_LBN 8 18883 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 18884 #define MC_CMD_GET_CAPABILITIES_V12_OUT_SET_MAC_ENHANCED_OFST 0 18885 #define MC_CMD_GET_CAPABILITIES_V12_OUT_SET_MAC_ENHANCED_LBN 9 18886 #define MC_CMD_GET_CAPABILITIES_V12_OUT_SET_MAC_ENHANCED_WIDTH 1 18887 #define MC_CMD_GET_CAPABILITIES_V12_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 18888 #define MC_CMD_GET_CAPABILITIES_V12_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 18889 #define MC_CMD_GET_CAPABILITIES_V12_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 18890 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 18891 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 18892 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 18893 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 18894 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 18895 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 18896 #define MC_CMD_GET_CAPABILITIES_V12_OUT_ADDITIONAL_RSS_MODES_OFST 0 18897 #define MC_CMD_GET_CAPABILITIES_V12_OUT_ADDITIONAL_RSS_MODES_LBN 13 18898 #define MC_CMD_GET_CAPABILITIES_V12_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 18899 #define MC_CMD_GET_CAPABILITIES_V12_OUT_QBB_OFST 0 18900 #define MC_CMD_GET_CAPABILITIES_V12_OUT_QBB_LBN 14 18901 #define MC_CMD_GET_CAPABILITIES_V12_OUT_QBB_WIDTH 1 18902 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 18903 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 18904 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 18905 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_RSS_LIMITED_OFST 0 18906 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_RSS_LIMITED_LBN 16 18907 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_RSS_LIMITED_WIDTH 1 18908 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_PACKED_STREAM_OFST 0 18909 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_PACKED_STREAM_LBN 17 18910 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_PACKED_STREAM_WIDTH 1 18911 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_INCLUDE_FCS_OFST 0 18912 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_INCLUDE_FCS_LBN 18 18913 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_INCLUDE_FCS_WIDTH 1 18914 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_VLAN_INSERTION_OFST 0 18915 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_VLAN_INSERTION_LBN 19 18916 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_VLAN_INSERTION_WIDTH 1 18917 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_VLAN_STRIPPING_OFST 0 18918 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_VLAN_STRIPPING_LBN 20 18919 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_VLAN_STRIPPING_WIDTH 1 18920 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_OFST 0 18921 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_LBN 21 18922 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_WIDTH 1 18923 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_PREFIX_LEN_0_OFST 0 18924 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_PREFIX_LEN_0_LBN 22 18925 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_PREFIX_LEN_0_WIDTH 1 18926 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_PREFIX_LEN_14_OFST 0 18927 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_PREFIX_LEN_14_LBN 23 18928 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_PREFIX_LEN_14_WIDTH 1 18929 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_TIMESTAMP_OFST 0 18930 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_TIMESTAMP_LBN 24 18931 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_TIMESTAMP_WIDTH 1 18932 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_BATCHING_OFST 0 18933 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_BATCHING_LBN 25 18934 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_BATCHING_WIDTH 1 18935 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MCAST_FILTER_CHAINING_OFST 0 18936 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MCAST_FILTER_CHAINING_LBN 26 18937 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MCAST_FILTER_CHAINING_WIDTH 1 18938 #define MC_CMD_GET_CAPABILITIES_V12_OUT_PM_AND_RXDP_COUNTERS_OFST 0 18939 #define MC_CMD_GET_CAPABILITIES_V12_OUT_PM_AND_RXDP_COUNTERS_LBN 27 18940 #define MC_CMD_GET_CAPABILITIES_V12_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 18941 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_DISABLE_SCATTER_OFST 0 18942 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_DISABLE_SCATTER_LBN 28 18943 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_DISABLE_SCATTER_WIDTH 1 18944 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 18945 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 18946 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 18947 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EVB_OFST 0 18948 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EVB_LBN 30 18949 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EVB_WIDTH 1 18950 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VXLAN_NVGRE_OFST 0 18951 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VXLAN_NVGRE_LBN 31 18952 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VXLAN_NVGRE_WIDTH 1 18953 /* RxDPCPU firmware id. */ 18954 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_DPCPU_FW_ID_OFST 4 18955 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_DPCPU_FW_ID_LEN 2 18956 /* enum: Standard RXDP firmware */ 18957 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP 0x0 18958 /* enum: Low latency RXDP firmware */ 18959 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_LOW_LATENCY 0x1 18960 /* enum: Packed stream RXDP firmware */ 18961 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_PACKED_STREAM 0x2 18962 /* enum: Rules engine RXDP firmware */ 18963 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_RULES_ENGINE 0x5 18964 /* enum: DPDK RXDP firmware */ 18965 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_DPDK 0x6 18966 /* enum: BIST RXDP firmware */ 18967 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_BIST 0x10a 18968 /* enum: RXDP Test firmware image 1 */ 18969 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 18970 /* enum: RXDP Test firmware image 2 */ 18971 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 18972 /* enum: RXDP Test firmware image 3 */ 18973 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 18974 /* enum: RXDP Test firmware image 4 */ 18975 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 18976 /* enum: RXDP Test firmware image 5 */ 18977 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_TEST_BACKPRESSURE 0x105 18978 /* enum: RXDP Test firmware image 6 */ 18979 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 18980 /* enum: RXDP Test firmware image 7 */ 18981 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 18982 /* enum: RXDP Test firmware image 8 */ 18983 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 18984 /* enum: RXDP Test firmware image 9 */ 18985 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 18986 /* enum: RXDP Test firmware image 10 */ 18987 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_TEST_FW_SLOW 0x10c 18988 /* TxDPCPU firmware id. */ 18989 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_DPCPU_FW_ID_OFST 6 18990 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_DPCPU_FW_ID_LEN 2 18991 /* enum: Standard TXDP firmware */ 18992 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXDP 0x0 18993 /* enum: Low latency TXDP firmware */ 18994 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXDP_LOW_LATENCY 0x1 18995 /* enum: High packet rate TXDP firmware */ 18996 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXDP_HIGH_PACKET_RATE 0x3 18997 /* enum: Rules engine TXDP firmware */ 18998 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXDP_RULES_ENGINE 0x5 18999 /* enum: DPDK TXDP firmware */ 19000 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXDP_DPDK 0x6 19001 /* enum: BIST TXDP firmware */ 19002 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXDP_BIST 0x12d 19003 /* enum: TXDP Test firmware image 1 */ 19004 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 19005 /* enum: TXDP Test firmware image 2 */ 19006 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 19007 /* enum: TXDP CSR bus test firmware */ 19008 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXDP_TEST_FW_CSR 0x103 19009 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_VERSION_OFST 8 19010 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_VERSION_LEN 2 19011 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_VERSION_REV_OFST 8 19012 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_VERSION_REV_LBN 0 19013 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_VERSION_REV_WIDTH 12 19014 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_VERSION_TYPE_OFST 8 19015 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_VERSION_TYPE_LBN 12 19016 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 19017 /* enum: reserved value - do not use (may indicate alternative interpretation 19018 * of REV field in future) 19019 */ 19020 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_TYPE_RESERVED 0x0 19021 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 19022 * development only) 19023 */ 19024 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 19025 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 19026 */ 19027 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 19028 /* enum: RX PD firmware with approximately Siena-compatible behaviour 19029 * (Huntington development only) 19030 */ 19031 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 19032 /* enum: Full featured RX PD production firmware */ 19033 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 19034 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 19035 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_TYPE_VSWITCH 0x3 19036 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 19037 * (Huntington development only) 19038 */ 19039 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 19040 /* enum: Low latency RX PD production firmware */ 19041 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 19042 /* enum: Packed stream RX PD production firmware */ 19043 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 19044 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 19045 * tests (Medford development only) 19046 */ 19047 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 19048 /* enum: Rules engine RX PD production firmware */ 19049 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 19050 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 19051 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_TYPE_L3XUDP 0x9 19052 /* enum: DPDK RX PD production firmware */ 19053 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_TYPE_DPDK 0xa 19054 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 19055 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 19056 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 19057 * encapsulations (Medford development only) 19058 */ 19059 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 19060 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_VERSION_OFST 10 19061 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_VERSION_LEN 2 19062 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_VERSION_REV_OFST 10 19063 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_VERSION_REV_LBN 0 19064 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_VERSION_REV_WIDTH 12 19065 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_VERSION_TYPE_OFST 10 19066 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_VERSION_TYPE_LBN 12 19067 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 19068 /* enum: reserved value - do not use (may indicate alternative interpretation 19069 * of REV field in future) 19070 */ 19071 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_TYPE_RESERVED 0x0 19072 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 19073 * development only) 19074 */ 19075 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 19076 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 19077 */ 19078 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 19079 /* enum: TX PD firmware with approximately Siena-compatible behaviour 19080 * (Huntington development only) 19081 */ 19082 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 19083 /* enum: Full featured TX PD production firmware */ 19084 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 19085 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 19086 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_TYPE_VSWITCH 0x3 19087 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 19088 * (Huntington development only) 19089 */ 19090 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 19091 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 19092 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 19093 * tests (Medford development only) 19094 */ 19095 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 19096 /* enum: Rules engine TX PD production firmware */ 19097 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 19098 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 19099 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_TYPE_L3XUDP 0x9 19100 /* enum: DPDK TX PD production firmware */ 19101 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_TYPE_DPDK 0xa 19102 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 19103 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 19104 /* Hardware capabilities of NIC */ 19105 #define MC_CMD_GET_CAPABILITIES_V12_OUT_HW_CAPABILITIES_OFST 12 19106 #define MC_CMD_GET_CAPABILITIES_V12_OUT_HW_CAPABILITIES_LEN 4 19107 /* Licensed capabilities */ 19108 #define MC_CMD_GET_CAPABILITIES_V12_OUT_LICENSE_CAPABILITIES_OFST 16 19109 #define MC_CMD_GET_CAPABILITIES_V12_OUT_LICENSE_CAPABILITIES_LEN 4 19110 /* Second word of flags. Not present on older firmware (check the length). */ 19111 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FLAGS2_OFST 20 19112 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FLAGS2_LEN 4 19113 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_V2_OFST 20 19114 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_V2_LBN 0 19115 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_V2_WIDTH 1 19116 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_V2_ENCAP_OFST 20 19117 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_V2_ENCAP_LBN 1 19118 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_V2_ENCAP_WIDTH 1 19119 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EVQ_TIMER_CTRL_OFST 20 19120 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EVQ_TIMER_CTRL_LBN 2 19121 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EVQ_TIMER_CTRL_WIDTH 1 19122 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EVENT_CUT_THROUGH_OFST 20 19123 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EVENT_CUT_THROUGH_LBN 3 19124 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EVENT_CUT_THROUGH_WIDTH 1 19125 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_CUT_THROUGH_OFST 20 19126 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_CUT_THROUGH_LBN 4 19127 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_CUT_THROUGH_WIDTH 1 19128 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_VFIFO_ULL_MODE_OFST 20 19129 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_VFIFO_ULL_MODE_LBN 5 19130 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 19131 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 19132 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 19133 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 19134 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 19135 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 19136 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 19137 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INIT_EVQ_V2_OFST 20 19138 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INIT_EVQ_V2_LBN 7 19139 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INIT_EVQ_V2_WIDTH 1 19140 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_MAC_TIMESTAMPING_OFST 20 19141 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_MAC_TIMESTAMPING_LBN 8 19142 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 19143 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TIMESTAMP_OFST 20 19144 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TIMESTAMP_LBN 9 19145 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TIMESTAMP_WIDTH 1 19146 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_SNIFF_OFST 20 19147 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_SNIFF_LBN 10 19148 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_SNIFF_WIDTH 1 19149 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_SNIFF_OFST 20 19150 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_SNIFF_LBN 11 19151 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_SNIFF_WIDTH 1 19152 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 19153 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 19154 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 19155 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MCDI_BACKGROUND_OFST 20 19156 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MCDI_BACKGROUND_LBN 13 19157 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MCDI_BACKGROUND_WIDTH 1 19158 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MCDI_DB_RETURN_OFST 20 19159 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MCDI_DB_RETURN_LBN 14 19160 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MCDI_DB_RETURN_WIDTH 1 19161 #define MC_CMD_GET_CAPABILITIES_V12_OUT_CTPIO_OFST 20 19162 #define MC_CMD_GET_CAPABILITIES_V12_OUT_CTPIO_LBN 15 19163 #define MC_CMD_GET_CAPABILITIES_V12_OUT_CTPIO_WIDTH 1 19164 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TSA_SUPPORT_OFST 20 19165 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TSA_SUPPORT_LBN 16 19166 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TSA_SUPPORT_WIDTH 1 19167 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TSA_BOUND_OFST 20 19168 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TSA_BOUND_LBN 17 19169 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TSA_BOUND_WIDTH 1 19170 #define MC_CMD_GET_CAPABILITIES_V12_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 19171 #define MC_CMD_GET_CAPABILITIES_V12_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 19172 #define MC_CMD_GET_CAPABILITIES_V12_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 19173 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FILTER_ACTION_FLAG_OFST 20 19174 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FILTER_ACTION_FLAG_LBN 19 19175 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FILTER_ACTION_FLAG_WIDTH 1 19176 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FILTER_ACTION_MARK_OFST 20 19177 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FILTER_ACTION_MARK_LBN 20 19178 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FILTER_ACTION_MARK_WIDTH 1 19179 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 19180 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 19181 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 19182 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 19183 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 19184 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 19185 #define MC_CMD_GET_CAPABILITIES_V12_OUT_L3XUDP_SUPPORT_OFST 20 19186 #define MC_CMD_GET_CAPABILITIES_V12_OUT_L3XUDP_SUPPORT_LBN 22 19187 #define MC_CMD_GET_CAPABILITIES_V12_OUT_L3XUDP_SUPPORT_WIDTH 1 19188 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 19189 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 19190 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 19191 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VI_SPREADING_OFST 20 19192 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VI_SPREADING_LBN 24 19193 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VI_SPREADING_WIDTH 1 19194 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_HLB_IDLE_OFST 20 19195 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_HLB_IDLE_LBN 25 19196 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_HLB_IDLE_WIDTH 1 19197 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 19198 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 19199 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 19200 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 19201 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 19202 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 19203 #define MC_CMD_GET_CAPABILITIES_V12_OUT_BUNDLE_UPDATE_OFST 20 19204 #define MC_CMD_GET_CAPABILITIES_V12_OUT_BUNDLE_UPDATE_LBN 28 19205 #define MC_CMD_GET_CAPABILITIES_V12_OUT_BUNDLE_UPDATE_WIDTH 1 19206 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_V3_OFST 20 19207 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_V3_LBN 29 19208 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_V3_WIDTH 1 19209 #define MC_CMD_GET_CAPABILITIES_V12_OUT_DYNAMIC_SENSORS_OFST 20 19210 #define MC_CMD_GET_CAPABILITIES_V12_OUT_DYNAMIC_SENSORS_LBN 30 19211 #define MC_CMD_GET_CAPABILITIES_V12_OUT_DYNAMIC_SENSORS_WIDTH 1 19212 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 19213 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 19214 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 19215 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 19216 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 19217 */ 19218 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 19219 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 19220 /* One byte per PF containing the number of the external port assigned to this 19221 * PF, indexed by PF number. Special values indicate that a PF is either not 19222 * present or not assigned. 19223 */ 19224 #define MC_CMD_GET_CAPABILITIES_V12_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 19225 #define MC_CMD_GET_CAPABILITIES_V12_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 19226 #define MC_CMD_GET_CAPABILITIES_V12_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 19227 /* enum: The caller is not permitted to access information on this PF. */ 19228 #define MC_CMD_GET_CAPABILITIES_V12_OUT_ACCESS_NOT_PERMITTED 0xff 19229 /* enum: PF does not exist. */ 19230 #define MC_CMD_GET_CAPABILITIES_V12_OUT_PF_NOT_PRESENT 0xfe 19231 /* enum: PF does exist but is not assigned to any external port. */ 19232 #define MC_CMD_GET_CAPABILITIES_V12_OUT_PF_NOT_ASSIGNED 0xfd 19233 /* enum: This value indicates that PF is assigned, but it cannot be expressed 19234 * in this field. It is intended for a possible future situation where a more 19235 * complex scheme of PFs to ports mapping is being used. The future driver 19236 * should look for a new field supporting the new scheme. The current/old 19237 * driver should treat this value as PF_NOT_ASSIGNED. 19238 */ 19239 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 19240 /* One byte per PF containing the number of its VFs, indexed by PF number. A 19241 * special value indicates that a PF is not present. 19242 */ 19243 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NUM_VFS_PER_PF_OFST 42 19244 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NUM_VFS_PER_PF_LEN 1 19245 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NUM_VFS_PER_PF_NUM 16 19246 /* enum: The caller is not permitted to access information on this PF. */ 19247 /* MC_CMD_GET_CAPABILITIES_V12_OUT_ACCESS_NOT_PERMITTED 0xff */ 19248 /* enum: PF does not exist. */ 19249 /* MC_CMD_GET_CAPABILITIES_V12_OUT_PF_NOT_PRESENT 0xfe */ 19250 /* Number of VIs available for external ports 0-3. For devices with more than 19251 * four ports, the remainder are in NUM_VIS_PER_PORT2 in 19252 * GET_CAPABILITIES_V12_OUT. 19253 */ 19254 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NUM_VIS_PER_PORT_OFST 58 19255 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NUM_VIS_PER_PORT_LEN 2 19256 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NUM_VIS_PER_PORT_NUM 4 19257 /* Size of RX descriptor cache expressed as binary logarithm The actual size 19258 * equals (2 ^ RX_DESC_CACHE_SIZE) 19259 */ 19260 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_DESC_CACHE_SIZE_OFST 66 19261 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_DESC_CACHE_SIZE_LEN 1 19262 /* Size of TX descriptor cache expressed as binary logarithm The actual size 19263 * equals (2 ^ TX_DESC_CACHE_SIZE) 19264 */ 19265 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_DESC_CACHE_SIZE_OFST 67 19266 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_DESC_CACHE_SIZE_LEN 1 19267 /* Total number of available PIO buffers */ 19268 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NUM_PIO_BUFFS_OFST 68 19269 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NUM_PIO_BUFFS_LEN 2 19270 /* Size of a single PIO buffer */ 19271 #define MC_CMD_GET_CAPABILITIES_V12_OUT_SIZE_PIO_BUFF_OFST 70 19272 #define MC_CMD_GET_CAPABILITIES_V12_OUT_SIZE_PIO_BUFF_LEN 2 19273 /* On chips later than Medford the amount of address space assigned to each VI 19274 * is configurable. This is a global setting that the driver must query to 19275 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 19276 * with 8k VI windows. 19277 */ 19278 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VI_WINDOW_MODE_OFST 72 19279 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VI_WINDOW_MODE_LEN 1 19280 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 19281 * CTPIO is not mapped. 19282 */ 19283 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VI_WINDOW_MODE_8K 0x0 19284 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 19285 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VI_WINDOW_MODE_16K 0x1 19286 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 19287 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VI_WINDOW_MODE_64K 0x2 19288 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 19289 * (SF-115995-SW) in the present configuration of firmware and port mode. 19290 */ 19291 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 19292 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 19293 /* Number of buffers per adapter that can be used for VFIFO Stuffing 19294 * (SF-115995-SW) in the present configuration of firmware and port mode. 19295 */ 19296 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 19297 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 19298 /* Entry count in the MAC stats array, including the final GENERATION_END 19299 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 19300 * hold at least this many 64-bit stats values, if they wish to receive all 19301 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 19302 * stats array returned will be truncated. 19303 */ 19304 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAC_STATS_NUM_STATS_OFST 76 19305 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAC_STATS_NUM_STATS_LEN 2 19306 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 19307 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 19308 */ 19309 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FILTER_ACTION_MARK_MAX_OFST 80 19310 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FILTER_ACTION_MARK_MAX_LEN 4 19311 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 19312 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 19313 * they create an RX queue. Due to hardware limitations, only a small number of 19314 * different buffer sizes may be available concurrently. Nonzero entries in 19315 * this array are the sizes of buffers which the system guarantees will be 19316 * available for use. If the list is empty, there are no limitations on 19317 * concurrent buffer sizes. 19318 */ 19319 #define MC_CMD_GET_CAPABILITIES_V12_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 19320 #define MC_CMD_GET_CAPABILITIES_V12_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 19321 #define MC_CMD_GET_CAPABILITIES_V12_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 19322 /* Third word of flags. Not present on older firmware (check the length). */ 19323 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FLAGS3_OFST 148 19324 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FLAGS3_LEN 4 19325 #define MC_CMD_GET_CAPABILITIES_V12_OUT_WOL_ETHERWAKE_OFST 148 19326 #define MC_CMD_GET_CAPABILITIES_V12_OUT_WOL_ETHERWAKE_LBN 0 19327 #define MC_CMD_GET_CAPABILITIES_V12_OUT_WOL_ETHERWAKE_WIDTH 1 19328 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_EVEN_SPREADING_OFST 148 19329 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_EVEN_SPREADING_LBN 1 19330 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_EVEN_SPREADING_WIDTH 1 19331 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 19332 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 19333 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 19334 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAE_SUPPORTED_OFST 148 19335 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAE_SUPPORTED_LBN 3 19336 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAE_SUPPORTED_WIDTH 1 19337 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VDPA_SUPPORTED_OFST 148 19338 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VDPA_SUPPORTED_LBN 4 19339 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VDPA_SUPPORTED_WIDTH 1 19340 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 19341 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 19342 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 19343 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 19344 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 19345 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 19346 #define MC_CMD_GET_CAPABILITIES_V12_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 19347 #define MC_CMD_GET_CAPABILITIES_V12_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 19348 #define MC_CMD_GET_CAPABILITIES_V12_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 19349 #define MC_CMD_GET_CAPABILITIES_V12_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 19350 #define MC_CMD_GET_CAPABILITIES_V12_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 19351 #define MC_CMD_GET_CAPABILITIES_V12_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 19352 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 19353 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 19354 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 19355 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 19356 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 19357 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 19358 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 19359 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 19360 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 19361 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 19362 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 19363 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 19364 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_OFST 148 19365 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_LBN 13 19366 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_WIDTH 1 19367 #define MC_CMD_GET_CAPABILITIES_V12_OUT_DYNAMIC_MPORT_JOURNAL_OFST 148 19368 #define MC_CMD_GET_CAPABILITIES_V12_OUT_DYNAMIC_MPORT_JOURNAL_LBN 14 19369 #define MC_CMD_GET_CAPABILITIES_V12_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1 19370 #define MC_CMD_GET_CAPABILITIES_V12_OUT_CLIENT_CMD_VF_PROXY_OFST 148 19371 #define MC_CMD_GET_CAPABILITIES_V12_OUT_CLIENT_CMD_VF_PROXY_LBN 15 19372 #define MC_CMD_GET_CAPABILITIES_V12_OUT_CLIENT_CMD_VF_PROXY_WIDTH 1 19373 #define MC_CMD_GET_CAPABILITIES_V12_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_OFST 148 19374 #define MC_CMD_GET_CAPABILITIES_V12_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_LBN 16 19375 #define MC_CMD_GET_CAPABILITIES_V12_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_WIDTH 1 19376 #define MC_CMD_GET_CAPABILITIES_V12_OUT_CXL_CONFIG_ENABLE_OFST 148 19377 #define MC_CMD_GET_CAPABILITIES_V12_OUT_CXL_CONFIG_ENABLE_LBN 17 19378 #define MC_CMD_GET_CAPABILITIES_V12_OUT_CXL_CONFIG_ENABLE_WIDTH 1 19379 /* These bits are reserved for communicating test-specific capabilities to 19380 * host-side test software. All production drivers should treat this field as 19381 * opaque. 19382 */ 19383 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TEST_RESERVED_OFST 152 19384 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TEST_RESERVED_LEN 8 19385 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TEST_RESERVED_LO_OFST 152 19386 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TEST_RESERVED_LO_LEN 4 19387 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TEST_RESERVED_LO_LBN 1216 19388 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TEST_RESERVED_LO_WIDTH 32 19389 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TEST_RESERVED_HI_OFST 156 19390 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TEST_RESERVED_HI_LEN 4 19391 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TEST_RESERVED_HI_LBN 1248 19392 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TEST_RESERVED_HI_WIDTH 32 19393 /* The minimum size (in table entries) of indirection table to be allocated 19394 * from the pool for an RSS context. Note that the table size used must be a 19395 * power of 2. 19396 */ 19397 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_OFST 160 19398 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_LEN 4 19399 /* The maximum size (in table entries) of indirection table to be allocated 19400 * from the pool for an RSS context. Note that the table size used must be a 19401 * power of 2. 19402 */ 19403 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_OFST 164 19404 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_LEN 4 19405 /* The maximum number of queues that can be used by an RSS context in exclusive 19406 * mode. In exclusive mode the context has a configurable indirection table and 19407 * a configurable RSS key. 19408 */ 19409 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_MAX_INDIRECTION_QUEUES_OFST 168 19410 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_MAX_INDIRECTION_QUEUES_LEN 4 19411 /* The maximum number of queues that can be used by an RSS context in even- 19412 * spreading mode. In even-spreading mode the context has no indirection table 19413 * but it does have a configurable RSS key. 19414 */ 19415 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_OFST 172 19416 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_LEN 4 19417 /* The total number of RSS contexts supported. Note that the number of 19418 * available contexts using indirection tables is also limited by the 19419 * availability of indirection table space allocated from a common pool. 19420 */ 19421 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_NUM_CONTEXTS_OFST 176 19422 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_NUM_CONTEXTS_LEN 4 19423 /* The total amount of indirection table space that can be shared between RSS 19424 * contexts. 19425 */ 19426 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_TABLE_POOL_SIZE_OFST 180 19427 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_TABLE_POOL_SIZE_LEN 4 19428 /* A bitmap of the queue sizes the device can provide, where bit N being set 19429 * indicates that 2**N is a valid size. The device may be limited in the number 19430 * of different queue sizes that can exist simultaneously, so a bit being set 19431 * here does not guarantee that an attempt to create a queue of that size will 19432 * succeed. 19433 */ 19434 #define MC_CMD_GET_CAPABILITIES_V12_OUT_SUPPORTED_QUEUE_SIZES_OFST 184 19435 #define MC_CMD_GET_CAPABILITIES_V12_OUT_SUPPORTED_QUEUE_SIZES_LEN 4 19436 /* A bitmap of queue sizes that are always available, in the same format as 19437 * SUPPORTED_QUEUE_SIZES. Attempting to create a queue with one of these sizes 19438 * will never fail due to unavailability of the requested size. 19439 */ 19440 #define MC_CMD_GET_CAPABILITIES_V12_OUT_GUARANTEED_QUEUE_SIZES_OFST 188 19441 #define MC_CMD_GET_CAPABILITIES_V12_OUT_GUARANTEED_QUEUE_SIZES_LEN 4 19442 /* Number of available indirect memory maps. */ 19443 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INDIRECT_MAP_INDEX_COUNT_OFST 192 19444 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INDIRECT_MAP_INDEX_COUNT_LEN 4 19445 /* Number of VIs available for external ports 4-7. Information for ports 0-3 is 19446 * in NUM_VIS_PER_PORT in GET_CAPABILITIES_V2_OUT. 19447 */ 19448 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NUM_VIS_PER_PORT2_OFST 196 19449 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NUM_VIS_PER_PORT2_LEN 2 19450 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NUM_VIS_PER_PORT2_NUM 4 19451 19452 19453 /***********************************/ 19454 /* MC_CMD_V2_EXTN 19455 * Encapsulation for a v2 extended command 19456 */ 19457 #define MC_CMD_V2_EXTN 0x7f 19458 19459 /* MC_CMD_V2_EXTN_IN msgrequest */ 19460 #define MC_CMD_V2_EXTN_IN_LEN 4 19461 /* the extended command number */ 19462 #define MC_CMD_V2_EXTN_IN_EXTENDED_CMD_LBN 0 19463 #define MC_CMD_V2_EXTN_IN_EXTENDED_CMD_WIDTH 15 19464 #define MC_CMD_V2_EXTN_IN_UNUSED_LBN 15 19465 #define MC_CMD_V2_EXTN_IN_UNUSED_WIDTH 1 19466 /* the actual length of the encapsulated command (which is not in the v1 19467 * header) 19468 */ 19469 #define MC_CMD_V2_EXTN_IN_ACTUAL_LEN_LBN 16 19470 #define MC_CMD_V2_EXTN_IN_ACTUAL_LEN_WIDTH 10 19471 #define MC_CMD_V2_EXTN_IN_UNUSED2_LBN 26 19472 #define MC_CMD_V2_EXTN_IN_UNUSED2_WIDTH 2 19473 /* Type of command/response */ 19474 #define MC_CMD_V2_EXTN_IN_MESSAGE_TYPE_LBN 28 19475 #define MC_CMD_V2_EXTN_IN_MESSAGE_TYPE_WIDTH 4 19476 /* enum: MCDI command directed to or response originating from the MC. */ 19477 #define MC_CMD_V2_EXTN_IN_MCDI_MESSAGE_TYPE_MC 0x0 19478 /* enum: MCDI command directed to a TSA controller. MCDI responses of this type 19479 * are not defined. 19480 */ 19481 #define MC_CMD_V2_EXTN_IN_MCDI_MESSAGE_TYPE_TSA 0x1 19482 /* enum: MCDI command used for platform management. Typically, these commands 19483 * are used for low-level operations directed at the platform as a whole (e.g. 19484 * MMIO device enumeration) rather than individual functions and use a 19485 * dedicated comms channel (e.g. RPmsg/IPI). May be handled by the same or 19486 * different CPU as MCDI_MESSAGE_TYPE_MC. 19487 */ 19488 #define MC_CMD_V2_EXTN_IN_MCDI_MESSAGE_TYPE_PLATFORM 0x2 19489 19490 19491 /***********************************/ 19492 /* MC_CMD_LINK_PIOBUF 19493 * Link a push I/O buffer to a TxQ 19494 */ 19495 #define MC_CMD_LINK_PIOBUF 0x92 19496 #undef MC_CMD_0x92_PRIVILEGE_CTG 19497 19498 #define MC_CMD_0x92_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 19499 19500 /* MC_CMD_LINK_PIOBUF_IN msgrequest */ 19501 #define MC_CMD_LINK_PIOBUF_IN_LEN 8 19502 /* Handle for allocated push I/O buffer. */ 19503 #define MC_CMD_LINK_PIOBUF_IN_PIOBUF_HANDLE_OFST 0 19504 #define MC_CMD_LINK_PIOBUF_IN_PIOBUF_HANDLE_LEN 4 19505 /* Function Local Instance (VI) number which has a TxQ allocated to it. */ 19506 #define MC_CMD_LINK_PIOBUF_IN_TXQ_INSTANCE_OFST 4 19507 #define MC_CMD_LINK_PIOBUF_IN_TXQ_INSTANCE_LEN 4 19508 19509 /* MC_CMD_LINK_PIOBUF_OUT msgresponse */ 19510 #define MC_CMD_LINK_PIOBUF_OUT_LEN 0 19511 19512 19513 /***********************************/ 19514 /* MC_CMD_UNLINK_PIOBUF 19515 * Unlink a push I/O buffer from a TxQ 19516 */ 19517 #define MC_CMD_UNLINK_PIOBUF 0x93 19518 #undef MC_CMD_0x93_PRIVILEGE_CTG 19519 19520 #define MC_CMD_0x93_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 19521 19522 /* MC_CMD_UNLINK_PIOBUF_IN msgrequest */ 19523 #define MC_CMD_UNLINK_PIOBUF_IN_LEN 4 19524 /* Function Local Instance (VI) number. */ 19525 #define MC_CMD_UNLINK_PIOBUF_IN_TXQ_INSTANCE_OFST 0 19526 #define MC_CMD_UNLINK_PIOBUF_IN_TXQ_INSTANCE_LEN 4 19527 19528 /* MC_CMD_UNLINK_PIOBUF_OUT msgresponse */ 19529 #define MC_CMD_UNLINK_PIOBUF_OUT_LEN 0 19530 19531 19532 /***********************************/ 19533 /* MC_CMD_VSWITCH_ALLOC 19534 * allocate and initialise a v-switch. 19535 */ 19536 #define MC_CMD_VSWITCH_ALLOC 0x94 19537 #undef MC_CMD_0x94_PRIVILEGE_CTG 19538 19539 #define MC_CMD_0x94_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19540 19541 /* MC_CMD_VSWITCH_ALLOC_IN msgrequest */ 19542 #define MC_CMD_VSWITCH_ALLOC_IN_LEN 16 19543 /* The port to connect to the v-switch's upstream port. */ 19544 #define MC_CMD_VSWITCH_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 19545 #define MC_CMD_VSWITCH_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 19546 /* The type of v-switch to create. */ 19547 #define MC_CMD_VSWITCH_ALLOC_IN_TYPE_OFST 4 19548 #define MC_CMD_VSWITCH_ALLOC_IN_TYPE_LEN 4 19549 /* enum: VLAN */ 19550 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_VLAN 0x1 19551 /* enum: VEB */ 19552 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_VEB 0x2 19553 /* enum: VEPA (obsolete) */ 19554 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_VEPA 0x3 19555 /* enum: MUX */ 19556 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_MUX 0x4 19557 /* enum: Snapper specific; semantics TBD */ 19558 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_TEST 0x5 19559 /* Flags controlling v-port creation */ 19560 #define MC_CMD_VSWITCH_ALLOC_IN_FLAGS_OFST 8 19561 #define MC_CMD_VSWITCH_ALLOC_IN_FLAGS_LEN 4 19562 #define MC_CMD_VSWITCH_ALLOC_IN_FLAG_AUTO_PORT_OFST 8 19563 #define MC_CMD_VSWITCH_ALLOC_IN_FLAG_AUTO_PORT_LBN 0 19564 #define MC_CMD_VSWITCH_ALLOC_IN_FLAG_AUTO_PORT_WIDTH 1 19565 /* The number of VLAN tags to allow for attached v-ports. For VLAN aggregators, 19566 * this must be one or greated, and the attached v-ports must have exactly this 19567 * number of tags. For other v-switch types, this must be zero of greater, and 19568 * is an upper limit on the number of VLAN tags for attached v-ports. An error 19569 * will be returned if existing configuration means we can't support attached 19570 * v-ports with this number of tags. 19571 */ 19572 #define MC_CMD_VSWITCH_ALLOC_IN_NUM_VLAN_TAGS_OFST 12 19573 #define MC_CMD_VSWITCH_ALLOC_IN_NUM_VLAN_TAGS_LEN 4 19574 19575 /* MC_CMD_VSWITCH_ALLOC_OUT msgresponse */ 19576 #define MC_CMD_VSWITCH_ALLOC_OUT_LEN 0 19577 19578 19579 /***********************************/ 19580 /* MC_CMD_VSWITCH_FREE 19581 * de-allocate a v-switch. 19582 */ 19583 #define MC_CMD_VSWITCH_FREE 0x95 19584 #undef MC_CMD_0x95_PRIVILEGE_CTG 19585 19586 #define MC_CMD_0x95_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19587 19588 /* MC_CMD_VSWITCH_FREE_IN msgrequest */ 19589 #define MC_CMD_VSWITCH_FREE_IN_LEN 4 19590 /* The port to which the v-switch is connected. */ 19591 #define MC_CMD_VSWITCH_FREE_IN_UPSTREAM_PORT_ID_OFST 0 19592 #define MC_CMD_VSWITCH_FREE_IN_UPSTREAM_PORT_ID_LEN 4 19593 19594 /* MC_CMD_VSWITCH_FREE_OUT msgresponse */ 19595 #define MC_CMD_VSWITCH_FREE_OUT_LEN 0 19596 19597 19598 /***********************************/ 19599 /* MC_CMD_VPORT_ALLOC 19600 * allocate a v-port. 19601 */ 19602 #define MC_CMD_VPORT_ALLOC 0x96 19603 #undef MC_CMD_0x96_PRIVILEGE_CTG 19604 19605 #define MC_CMD_0x96_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19606 19607 /* MC_CMD_VPORT_ALLOC_IN msgrequest */ 19608 #define MC_CMD_VPORT_ALLOC_IN_LEN 20 19609 /* The port to which the v-switch is connected. */ 19610 #define MC_CMD_VPORT_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 19611 #define MC_CMD_VPORT_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 19612 /* The type of the new v-port. */ 19613 #define MC_CMD_VPORT_ALLOC_IN_TYPE_OFST 4 19614 #define MC_CMD_VPORT_ALLOC_IN_TYPE_LEN 4 19615 /* enum: VLAN (obsolete) */ 19616 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_VLAN 0x1 19617 /* enum: VEB (obsolete) */ 19618 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_VEB 0x2 19619 /* enum: VEPA (obsolete) */ 19620 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_VEPA 0x3 19621 /* enum: A normal v-port receives packets which match a specified MAC and/or 19622 * VLAN. 19623 */ 19624 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_NORMAL 0x4 19625 /* enum: An expansion v-port packets traffic which don't match any other 19626 * v-port. 19627 */ 19628 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_EXPANSION 0x5 19629 /* enum: An test v-port receives packets which match any filters installed by 19630 * its downstream components. 19631 */ 19632 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_TEST 0x6 19633 /* Flags controlling v-port creation */ 19634 #define MC_CMD_VPORT_ALLOC_IN_FLAGS_OFST 8 19635 #define MC_CMD_VPORT_ALLOC_IN_FLAGS_LEN 4 19636 #define MC_CMD_VPORT_ALLOC_IN_FLAG_AUTO_PORT_OFST 8 19637 #define MC_CMD_VPORT_ALLOC_IN_FLAG_AUTO_PORT_LBN 0 19638 #define MC_CMD_VPORT_ALLOC_IN_FLAG_AUTO_PORT_WIDTH 1 19639 #define MC_CMD_VPORT_ALLOC_IN_FLAG_VLAN_RESTRICT_OFST 8 19640 #define MC_CMD_VPORT_ALLOC_IN_FLAG_VLAN_RESTRICT_LBN 1 19641 #define MC_CMD_VPORT_ALLOC_IN_FLAG_VLAN_RESTRICT_WIDTH 1 19642 /* The number of VLAN tags to insert/remove. An error will be returned if 19643 * incompatible with the number of VLAN tags specified for the upstream 19644 * v-switch. 19645 */ 19646 #define MC_CMD_VPORT_ALLOC_IN_NUM_VLAN_TAGS_OFST 12 19647 #define MC_CMD_VPORT_ALLOC_IN_NUM_VLAN_TAGS_LEN 4 19648 /* The actual VLAN tags to insert/remove */ 19649 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAGS_OFST 16 19650 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAGS_LEN 4 19651 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_0_OFST 16 19652 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_0_LBN 0 19653 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_0_WIDTH 16 19654 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_1_OFST 16 19655 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_1_LBN 16 19656 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_1_WIDTH 16 19657 19658 /* MC_CMD_VPORT_ALLOC_OUT msgresponse */ 19659 #define MC_CMD_VPORT_ALLOC_OUT_LEN 4 19660 /* The handle of the new v-port */ 19661 #define MC_CMD_VPORT_ALLOC_OUT_VPORT_ID_OFST 0 19662 #define MC_CMD_VPORT_ALLOC_OUT_VPORT_ID_LEN 4 19663 19664 19665 /***********************************/ 19666 /* MC_CMD_VPORT_FREE 19667 * de-allocate a v-port. 19668 */ 19669 #define MC_CMD_VPORT_FREE 0x97 19670 #undef MC_CMD_0x97_PRIVILEGE_CTG 19671 19672 #define MC_CMD_0x97_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19673 19674 /* MC_CMD_VPORT_FREE_IN msgrequest */ 19675 #define MC_CMD_VPORT_FREE_IN_LEN 4 19676 /* The handle of the v-port */ 19677 #define MC_CMD_VPORT_FREE_IN_VPORT_ID_OFST 0 19678 #define MC_CMD_VPORT_FREE_IN_VPORT_ID_LEN 4 19679 19680 /* MC_CMD_VPORT_FREE_OUT msgresponse */ 19681 #define MC_CMD_VPORT_FREE_OUT_LEN 0 19682 19683 19684 /***********************************/ 19685 /* MC_CMD_VADAPTOR_ALLOC 19686 * allocate a v-adaptor. 19687 */ 19688 #define MC_CMD_VADAPTOR_ALLOC 0x98 19689 #undef MC_CMD_0x98_PRIVILEGE_CTG 19690 19691 #define MC_CMD_0x98_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19692 19693 /* MC_CMD_VADAPTOR_ALLOC_IN msgrequest */ 19694 #define MC_CMD_VADAPTOR_ALLOC_IN_LEN 30 19695 /* The port to connect to the v-adaptor's port. */ 19696 #define MC_CMD_VADAPTOR_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 19697 #define MC_CMD_VADAPTOR_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 19698 /* Flags controlling v-adaptor creation */ 19699 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAGS_OFST 8 19700 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAGS_LEN 4 19701 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_AUTO_VADAPTOR_OFST 8 19702 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_AUTO_VADAPTOR_LBN 0 19703 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_AUTO_VADAPTOR_WIDTH 1 19704 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 8 19705 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 1 19706 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 19707 /* The number of VLAN tags to strip on receive */ 19708 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLANS_OFST 12 19709 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLANS_LEN 4 19710 /* The number of VLAN tags to transparently insert/remove. */ 19711 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLAN_TAGS_OFST 16 19712 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLAN_TAGS_LEN 4 19713 /* The actual VLAN tags to insert/remove */ 19714 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAGS_OFST 20 19715 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAGS_LEN 4 19716 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_0_OFST 20 19717 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_0_LBN 0 19718 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_0_WIDTH 16 19719 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_1_OFST 20 19720 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_1_LBN 16 19721 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_1_WIDTH 16 19722 /* The MAC address to assign to this v-adaptor */ 19723 #define MC_CMD_VADAPTOR_ALLOC_IN_MACADDR_OFST 24 19724 #define MC_CMD_VADAPTOR_ALLOC_IN_MACADDR_LEN 6 19725 /* enum: Derive the MAC address from the upstream port */ 19726 #define MC_CMD_VADAPTOR_ALLOC_IN_AUTO_MAC 0x0 19727 19728 /* MC_CMD_VADAPTOR_ALLOC_OUT msgresponse */ 19729 #define MC_CMD_VADAPTOR_ALLOC_OUT_LEN 0 19730 19731 19732 /***********************************/ 19733 /* MC_CMD_VADAPTOR_FREE 19734 * de-allocate a v-adaptor. 19735 */ 19736 #define MC_CMD_VADAPTOR_FREE 0x99 19737 #undef MC_CMD_0x99_PRIVILEGE_CTG 19738 19739 #define MC_CMD_0x99_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19740 19741 /* MC_CMD_VADAPTOR_FREE_IN msgrequest */ 19742 #define MC_CMD_VADAPTOR_FREE_IN_LEN 4 19743 /* The port to which the v-adaptor is connected. */ 19744 #define MC_CMD_VADAPTOR_FREE_IN_UPSTREAM_PORT_ID_OFST 0 19745 #define MC_CMD_VADAPTOR_FREE_IN_UPSTREAM_PORT_ID_LEN 4 19746 19747 /* MC_CMD_VADAPTOR_FREE_OUT msgresponse */ 19748 #define MC_CMD_VADAPTOR_FREE_OUT_LEN 0 19749 19750 19751 /***********************************/ 19752 /* MC_CMD_VADAPTOR_SET_MAC 19753 * assign a new MAC address to a v-adaptor. 19754 */ 19755 #define MC_CMD_VADAPTOR_SET_MAC 0x5d 19756 #undef MC_CMD_0x5d_PRIVILEGE_CTG 19757 19758 #define MC_CMD_0x5d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19759 19760 /* MC_CMD_VADAPTOR_SET_MAC_IN msgrequest */ 19761 #define MC_CMD_VADAPTOR_SET_MAC_IN_LEN 10 19762 /* The port to which the v-adaptor is connected. */ 19763 #define MC_CMD_VADAPTOR_SET_MAC_IN_UPSTREAM_PORT_ID_OFST 0 19764 #define MC_CMD_VADAPTOR_SET_MAC_IN_UPSTREAM_PORT_ID_LEN 4 19765 /* The new MAC address to assign to this v-adaptor */ 19766 #define MC_CMD_VADAPTOR_SET_MAC_IN_MACADDR_OFST 4 19767 #define MC_CMD_VADAPTOR_SET_MAC_IN_MACADDR_LEN 6 19768 19769 /* MC_CMD_VADAPTOR_SET_MAC_OUT msgresponse */ 19770 #define MC_CMD_VADAPTOR_SET_MAC_OUT_LEN 0 19771 19772 19773 /***********************************/ 19774 /* MC_CMD_VADAPTOR_QUERY 19775 * read some config of v-adaptor. 19776 */ 19777 #define MC_CMD_VADAPTOR_QUERY 0x61 19778 #undef MC_CMD_0x61_PRIVILEGE_CTG 19779 19780 #define MC_CMD_0x61_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19781 19782 /* MC_CMD_VADAPTOR_QUERY_IN msgrequest */ 19783 #define MC_CMD_VADAPTOR_QUERY_IN_LEN 4 19784 /* The port to which the v-adaptor is connected. */ 19785 #define MC_CMD_VADAPTOR_QUERY_IN_UPSTREAM_PORT_ID_OFST 0 19786 #define MC_CMD_VADAPTOR_QUERY_IN_UPSTREAM_PORT_ID_LEN 4 19787 19788 /* MC_CMD_VADAPTOR_QUERY_OUT msgresponse */ 19789 #define MC_CMD_VADAPTOR_QUERY_OUT_LEN 12 19790 /* The EVB port flags as defined at MC_CMD_VPORT_ALLOC. */ 19791 #define MC_CMD_VADAPTOR_QUERY_OUT_PORT_FLAGS_OFST 0 19792 #define MC_CMD_VADAPTOR_QUERY_OUT_PORT_FLAGS_LEN 4 19793 /* The v-adaptor flags as defined at MC_CMD_VADAPTOR_ALLOC. */ 19794 #define MC_CMD_VADAPTOR_QUERY_OUT_VADAPTOR_FLAGS_OFST 4 19795 #define MC_CMD_VADAPTOR_QUERY_OUT_VADAPTOR_FLAGS_LEN 4 19796 /* The number of VLAN tags that may still be added */ 19797 #define MC_CMD_VADAPTOR_QUERY_OUT_NUM_AVAILABLE_VLAN_TAGS_OFST 8 19798 #define MC_CMD_VADAPTOR_QUERY_OUT_NUM_AVAILABLE_VLAN_TAGS_LEN 4 19799 19800 19801 /***********************************/ 19802 /* MC_CMD_EVB_PORT_ASSIGN 19803 * assign a port to a PCI function. 19804 */ 19805 #define MC_CMD_EVB_PORT_ASSIGN 0x9a 19806 #undef MC_CMD_0x9a_PRIVILEGE_CTG 19807 19808 #define MC_CMD_0x9a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19809 19810 /* MC_CMD_EVB_PORT_ASSIGN_IN msgrequest */ 19811 #define MC_CMD_EVB_PORT_ASSIGN_IN_LEN 8 19812 /* The port to assign. */ 19813 #define MC_CMD_EVB_PORT_ASSIGN_IN_PORT_ID_OFST 0 19814 #define MC_CMD_EVB_PORT_ASSIGN_IN_PORT_ID_LEN 4 19815 /* The target function to modify. */ 19816 #define MC_CMD_EVB_PORT_ASSIGN_IN_FUNCTION_OFST 4 19817 #define MC_CMD_EVB_PORT_ASSIGN_IN_FUNCTION_LEN 4 19818 #define MC_CMD_EVB_PORT_ASSIGN_IN_PF_OFST 4 19819 #define MC_CMD_EVB_PORT_ASSIGN_IN_PF_LBN 0 19820 #define MC_CMD_EVB_PORT_ASSIGN_IN_PF_WIDTH 16 19821 #define MC_CMD_EVB_PORT_ASSIGN_IN_VF_OFST 4 19822 #define MC_CMD_EVB_PORT_ASSIGN_IN_VF_LBN 16 19823 #define MC_CMD_EVB_PORT_ASSIGN_IN_VF_WIDTH 16 19824 19825 /* MC_CMD_EVB_PORT_ASSIGN_OUT msgresponse */ 19826 #define MC_CMD_EVB_PORT_ASSIGN_OUT_LEN 0 19827 19828 19829 /***********************************/ 19830 /* MC_CMD_RSS_CONTEXT_ALLOC 19831 * Allocate an RSS context. 19832 */ 19833 #define MC_CMD_RSS_CONTEXT_ALLOC 0x9e 19834 #undef MC_CMD_0x9e_PRIVILEGE_CTG 19835 19836 #define MC_CMD_0x9e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19837 19838 /* MC_CMD_RSS_CONTEXT_ALLOC_IN msgrequest */ 19839 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_LEN 12 19840 /* The handle of the owning upstream port */ 19841 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 19842 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 19843 /* The type of context to allocate */ 19844 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_OFST 4 19845 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_LEN 4 19846 /* enum: Allocate a context for exclusive use. The key and indirection table 19847 * must be explicitly configured. 19848 */ 19849 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_EXCLUSIVE 0x0 19850 /* enum: Allocate a context for shared use; this will spread across a range of 19851 * queues, but the key and indirection table are pre-configured and may not be 19852 * changed. For this mode, NUM_QUEUES must 2, 4, 8, 16, 32 or 64. 19853 */ 19854 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_SHARED 0x1 19855 /* enum: Allocate a context to spread evenly across an arbitrary number of 19856 * queues. No indirection table space is allocated for this context. (EF100 and 19857 * later) 19858 */ 19859 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_EVEN_SPREADING 0x2 19860 /* Number of queues spanned by this context. For exclusive contexts this must 19861 * be in the range 1 to RSS_MAX_INDIRECTION_QUEUES, where 19862 * RSS_MAX_INDIRECTION_QUEUES is queried from MC_CMD_GET_CAPABILITIES_V9 or if 19863 * V9 is not supported then RSS_MAX_INDIRECTION_QUEUES is 64. Valid entries in 19864 * the indirection table will be in the range 0 to NUM_QUEUES-1. For even- 19865 * spreading contexts this must be in the range 1 to 19866 * RSS_MAX_EVEN_SPREADING_QUEUES as queried from MC_CMD_GET_CAPABILITIES. Note 19867 * that specifying NUM_QUEUES = 1 will not perform any spreading but may still 19868 * be useful as a way of obtaining the Toeplitz hash. 19869 */ 19870 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_NUM_QUEUES_OFST 8 19871 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_NUM_QUEUES_LEN 4 19872 19873 /* MC_CMD_RSS_CONTEXT_ALLOC_V2_IN msgrequest */ 19874 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_LEN 16 19875 /* The handle of the owning upstream port */ 19876 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_UPSTREAM_PORT_ID_OFST 0 19877 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_UPSTREAM_PORT_ID_LEN 4 19878 /* The type of context to allocate */ 19879 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_OFST 4 19880 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_LEN 4 19881 /* enum: Allocate a context for exclusive use. The key and indirection table 19882 * must be explicitly configured. 19883 */ 19884 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_EXCLUSIVE 0x0 19885 /* enum: Allocate a context for shared use; this will spread across a range of 19886 * queues, but the key and indirection table are pre-configured and may not be 19887 * changed. For this mode, NUM_QUEUES must 2, 4, 8, 16, 32 or 64. 19888 */ 19889 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_SHARED 0x1 19890 /* enum: Allocate a context to spread evenly across an arbitrary number of 19891 * queues. No indirection table space is allocated for this context. (EF100 and 19892 * later) 19893 */ 19894 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_EVEN_SPREADING 0x2 19895 /* Number of queues spanned by this context. For exclusive contexts this must 19896 * be in the range 1 to RSS_MAX_INDIRECTION_QUEUES, where 19897 * RSS_MAX_INDIRECTION_QUEUES is queried from MC_CMD_GET_CAPABILITIES_V9 or if 19898 * V9 is not supported then RSS_MAX_INDIRECTION_QUEUES is 64. Valid entries in 19899 * the indirection table will be in the range 0 to NUM_QUEUES-1. For even- 19900 * spreading contexts this must be in the range 1 to 19901 * RSS_MAX_EVEN_SPREADING_QUEUES as queried from MC_CMD_GET_CAPABILITIES. Note 19902 * that specifying NUM_QUEUES = 1 will not perform any spreading but may still 19903 * be useful as a way of obtaining the Toeplitz hash. 19904 */ 19905 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_NUM_QUEUES_OFST 8 19906 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_NUM_QUEUES_LEN 4 19907 /* Size of indirection table to be allocated to this context from the pool. 19908 * Must be a power of 2. The minimum and maximum table size can be queried 19909 * using MC_CMD_GET_CAPABILITIES_V9. If there is not enough space remaining in 19910 * the common pool to allocate the requested table size, due to allocating 19911 * table space to other RSS contexts, then the command will fail with 19912 * MC_CMD_ERR_ENOSPC. 19913 */ 19914 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_INDIRECTION_TABLE_SIZE_OFST 12 19915 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_INDIRECTION_TABLE_SIZE_LEN 4 19916 19917 /* MC_CMD_RSS_CONTEXT_ALLOC_OUT msgresponse */ 19918 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_LEN 4 19919 /* The handle of the new RSS context. This should be considered opaque to the 19920 * host, although a value of 0xFFFFFFFF is guaranteed never to be a valid 19921 * handle. 19922 */ 19923 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_RSS_CONTEXT_ID_OFST 0 19924 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_RSS_CONTEXT_ID_LEN 4 19925 /* enum: guaranteed invalid RSS context handle value */ 19926 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_RSS_CONTEXT_ID_INVALID 0xffffffff 19927 19928 19929 /***********************************/ 19930 /* MC_CMD_RSS_CONTEXT_FREE 19931 * Free an RSS context. 19932 */ 19933 #define MC_CMD_RSS_CONTEXT_FREE 0x9f 19934 #undef MC_CMD_0x9f_PRIVILEGE_CTG 19935 19936 #define MC_CMD_0x9f_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19937 19938 /* MC_CMD_RSS_CONTEXT_FREE_IN msgrequest */ 19939 #define MC_CMD_RSS_CONTEXT_FREE_IN_LEN 4 19940 /* The handle of the RSS context */ 19941 #define MC_CMD_RSS_CONTEXT_FREE_IN_RSS_CONTEXT_ID_OFST 0 19942 #define MC_CMD_RSS_CONTEXT_FREE_IN_RSS_CONTEXT_ID_LEN 4 19943 19944 /* MC_CMD_RSS_CONTEXT_FREE_OUT msgresponse */ 19945 #define MC_CMD_RSS_CONTEXT_FREE_OUT_LEN 0 19946 19947 19948 /***********************************/ 19949 /* MC_CMD_RSS_CONTEXT_SET_KEY 19950 * Set the Toeplitz hash key for an RSS context. 19951 */ 19952 #define MC_CMD_RSS_CONTEXT_SET_KEY 0xa0 19953 #undef MC_CMD_0xa0_PRIVILEGE_CTG 19954 19955 #define MC_CMD_0xa0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19956 19957 /* MC_CMD_RSS_CONTEXT_SET_KEY_IN msgrequest */ 19958 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_LEN 44 19959 /* The handle of the RSS context */ 19960 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_RSS_CONTEXT_ID_OFST 0 19961 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_RSS_CONTEXT_ID_LEN 4 19962 /* The 40-byte Toeplitz hash key (TBD endianness issues?) */ 19963 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_TOEPLITZ_KEY_OFST 4 19964 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_TOEPLITZ_KEY_LEN 40 19965 19966 /* MC_CMD_RSS_CONTEXT_SET_KEY_OUT msgresponse */ 19967 #define MC_CMD_RSS_CONTEXT_SET_KEY_OUT_LEN 0 19968 19969 19970 /***********************************/ 19971 /* MC_CMD_RSS_CONTEXT_GET_KEY 19972 * Get the Toeplitz hash key for an RSS context. 19973 */ 19974 #define MC_CMD_RSS_CONTEXT_GET_KEY 0xa1 19975 #undef MC_CMD_0xa1_PRIVILEGE_CTG 19976 19977 #define MC_CMD_0xa1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19978 19979 /* MC_CMD_RSS_CONTEXT_GET_KEY_IN msgrequest */ 19980 #define MC_CMD_RSS_CONTEXT_GET_KEY_IN_LEN 4 19981 /* The handle of the RSS context */ 19982 #define MC_CMD_RSS_CONTEXT_GET_KEY_IN_RSS_CONTEXT_ID_OFST 0 19983 #define MC_CMD_RSS_CONTEXT_GET_KEY_IN_RSS_CONTEXT_ID_LEN 4 19984 19985 /* MC_CMD_RSS_CONTEXT_GET_KEY_OUT msgresponse */ 19986 #define MC_CMD_RSS_CONTEXT_GET_KEY_OUT_LEN 44 19987 /* The 40-byte Toeplitz hash key (TBD endianness issues?) */ 19988 #define MC_CMD_RSS_CONTEXT_GET_KEY_OUT_TOEPLITZ_KEY_OFST 4 19989 #define MC_CMD_RSS_CONTEXT_GET_KEY_OUT_TOEPLITZ_KEY_LEN 40 19990 19991 19992 /***********************************/ 19993 /* MC_CMD_RSS_CONTEXT_SET_TABLE 19994 * Set the indirection table for an RSS context. This command should only be 19995 * used with indirection tables containing 128 entries, which is the default 19996 * when the RSS context is allocated without specifying a table size. 19997 */ 19998 #define MC_CMD_RSS_CONTEXT_SET_TABLE 0xa2 19999 #undef MC_CMD_0xa2_PRIVILEGE_CTG 20000 20001 #define MC_CMD_0xa2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20002 20003 /* MC_CMD_RSS_CONTEXT_SET_TABLE_IN msgrequest */ 20004 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_LEN 132 20005 /* The handle of the RSS context */ 20006 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_RSS_CONTEXT_ID_OFST 0 20007 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_RSS_CONTEXT_ID_LEN 4 20008 /* The 128-byte indirection table (1 byte per entry) */ 20009 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_INDIRECTION_TABLE_OFST 4 20010 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_INDIRECTION_TABLE_LEN 128 20011 20012 /* MC_CMD_RSS_CONTEXT_SET_TABLE_OUT msgresponse */ 20013 #define MC_CMD_RSS_CONTEXT_SET_TABLE_OUT_LEN 0 20014 20015 20016 /***********************************/ 20017 /* MC_CMD_RSS_CONTEXT_GET_TABLE 20018 * Get the indirection table for an RSS context. This command should only be 20019 * used with indirection tables containing 128 entries, which is the default 20020 * when the RSS context is allocated without specifying a table size. 20021 */ 20022 #define MC_CMD_RSS_CONTEXT_GET_TABLE 0xa3 20023 #undef MC_CMD_0xa3_PRIVILEGE_CTG 20024 20025 #define MC_CMD_0xa3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20026 20027 /* MC_CMD_RSS_CONTEXT_GET_TABLE_IN msgrequest */ 20028 #define MC_CMD_RSS_CONTEXT_GET_TABLE_IN_LEN 4 20029 /* The handle of the RSS context */ 20030 #define MC_CMD_RSS_CONTEXT_GET_TABLE_IN_RSS_CONTEXT_ID_OFST 0 20031 #define MC_CMD_RSS_CONTEXT_GET_TABLE_IN_RSS_CONTEXT_ID_LEN 4 20032 20033 /* MC_CMD_RSS_CONTEXT_GET_TABLE_OUT msgresponse */ 20034 #define MC_CMD_RSS_CONTEXT_GET_TABLE_OUT_LEN 132 20035 /* The 128-byte indirection table (1 byte per entry) */ 20036 #define MC_CMD_RSS_CONTEXT_GET_TABLE_OUT_INDIRECTION_TABLE_OFST 4 20037 #define MC_CMD_RSS_CONTEXT_GET_TABLE_OUT_INDIRECTION_TABLE_LEN 128 20038 20039 20040 /***********************************/ 20041 /* MC_CMD_RSS_CONTEXT_SET_FLAGS 20042 * Set various control flags for an RSS context. 20043 */ 20044 #define MC_CMD_RSS_CONTEXT_SET_FLAGS 0xe1 20045 #undef MC_CMD_0xe1_PRIVILEGE_CTG 20046 20047 #define MC_CMD_0xe1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20048 20049 /* MC_CMD_RSS_CONTEXT_SET_FLAGS_IN msgrequest */ 20050 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_LEN 8 20051 /* The handle of the RSS context */ 20052 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RSS_CONTEXT_ID_OFST 0 20053 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RSS_CONTEXT_ID_LEN 4 20054 /* Hash control flags. The _EN bits are always supported, but new modes are 20055 * available when ADDITIONAL_RSS_MODES is reported by MC_CMD_GET_CAPABILITIES: 20056 * in this case, the MODE fields may be set to non-zero values, and will take 20057 * effect regardless of the settings of the _EN flags. See the RSS_MODE 20058 * structure for the meaning of the mode bits. Drivers must check the 20059 * capability before trying to set any _MODE fields, as older firmware will 20060 * reject any attempt to set the FLAGS field to a value > 0xff with EINVAL. In 20061 * the case where all the _MODE flags are zero, the _EN flags take effect, 20062 * providing backward compatibility for existing drivers. (Setting all _MODE 20063 * *and* all _EN flags to zero is valid, to disable RSS spreading for that 20064 * particular packet type.) 20065 */ 20066 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_FLAGS_OFST 4 20067 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_FLAGS_LEN 4 20068 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN_OFST 4 20069 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN_LBN 0 20070 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN_WIDTH 1 20071 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN_OFST 4 20072 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN_LBN 1 20073 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN_WIDTH 1 20074 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV6_EN_OFST 4 20075 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV6_EN_LBN 2 20076 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV6_EN_WIDTH 1 20077 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV6_EN_OFST 4 20078 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV6_EN_LBN 3 20079 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV6_EN_WIDTH 1 20080 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RESERVED_OFST 4 20081 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RESERVED_LBN 4 20082 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RESERVED_WIDTH 4 20083 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV4_RSS_MODE_OFST 4 20084 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV4_RSS_MODE_LBN 8 20085 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV4_RSS_MODE_WIDTH 4 20086 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV4_RSS_MODE_OFST 4 20087 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV4_RSS_MODE_LBN 12 20088 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV4_RSS_MODE_WIDTH 4 20089 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV4_RSS_MODE_OFST 4 20090 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV4_RSS_MODE_LBN 16 20091 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV4_RSS_MODE_WIDTH 4 20092 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV6_RSS_MODE_OFST 4 20093 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV6_RSS_MODE_LBN 20 20094 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV6_RSS_MODE_WIDTH 4 20095 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV6_RSS_MODE_OFST 4 20096 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV6_RSS_MODE_LBN 24 20097 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV6_RSS_MODE_WIDTH 4 20098 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV6_RSS_MODE_OFST 4 20099 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV6_RSS_MODE_LBN 28 20100 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV6_RSS_MODE_WIDTH 4 20101 20102 /* MC_CMD_RSS_CONTEXT_SET_FLAGS_OUT msgresponse */ 20103 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_OUT_LEN 0 20104 20105 20106 /***********************************/ 20107 /* MC_CMD_RSS_CONTEXT_GET_FLAGS 20108 * Get various control flags for an RSS context. 20109 */ 20110 #define MC_CMD_RSS_CONTEXT_GET_FLAGS 0xe2 20111 #undef MC_CMD_0xe2_PRIVILEGE_CTG 20112 20113 #define MC_CMD_0xe2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20114 20115 /* MC_CMD_RSS_CONTEXT_GET_FLAGS_IN msgrequest */ 20116 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_IN_LEN 4 20117 /* The handle of the RSS context */ 20118 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_IN_RSS_CONTEXT_ID_OFST 0 20119 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_IN_RSS_CONTEXT_ID_LEN 4 20120 20121 /* MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT msgresponse */ 20122 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_LEN 8 20123 /* Hash control flags. If all _MODE bits are zero (which will always be true 20124 * for older firmware which does not report the ADDITIONAL_RSS_MODES 20125 * capability), the _EN bits report the state. If any _MODE bits are non-zero 20126 * (which will only be true when the firmware reports ADDITIONAL_RSS_MODES) 20127 * then the _EN bits should be disregarded, although the _MODE flags are 20128 * guaranteed to be consistent with the _EN flags for a freshly-allocated RSS 20129 * context and in the case where the _EN flags were used in the SET. This 20130 * provides backward compatibility: old drivers will not be attempting to 20131 * derive any meaning from the _MODE bits (and can never set them to any value 20132 * not representable by the _EN bits); new drivers can always determine the 20133 * mode by looking only at the _MODE bits; the value returned by a GET can 20134 * always be used for a SET regardless of old/new driver vs. old/new firmware. 20135 */ 20136 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_FLAGS_OFST 4 20137 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_FLAGS_LEN 4 20138 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV4_EN_OFST 4 20139 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV4_EN_LBN 0 20140 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV4_EN_WIDTH 1 20141 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV4_EN_OFST 4 20142 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV4_EN_LBN 1 20143 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV4_EN_WIDTH 1 20144 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV6_EN_OFST 4 20145 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV6_EN_LBN 2 20146 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV6_EN_WIDTH 1 20147 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV6_EN_OFST 4 20148 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV6_EN_LBN 3 20149 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV6_EN_WIDTH 1 20150 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_RESERVED_OFST 4 20151 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_RESERVED_LBN 4 20152 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_RESERVED_WIDTH 4 20153 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV4_RSS_MODE_OFST 4 20154 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV4_RSS_MODE_LBN 8 20155 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV4_RSS_MODE_WIDTH 4 20156 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV4_RSS_MODE_OFST 4 20157 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV4_RSS_MODE_LBN 12 20158 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV4_RSS_MODE_WIDTH 4 20159 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV4_RSS_MODE_OFST 4 20160 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV4_RSS_MODE_LBN 16 20161 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV4_RSS_MODE_WIDTH 4 20162 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV6_RSS_MODE_OFST 4 20163 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV6_RSS_MODE_LBN 20 20164 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV6_RSS_MODE_WIDTH 4 20165 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV6_RSS_MODE_OFST 4 20166 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV6_RSS_MODE_LBN 24 20167 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV6_RSS_MODE_WIDTH 4 20168 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV6_RSS_MODE_OFST 4 20169 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV6_RSS_MODE_LBN 28 20170 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV6_RSS_MODE_WIDTH 4 20171 20172 20173 /***********************************/ 20174 /* MC_CMD_VPORT_ADD_MAC_ADDRESS 20175 * Add a MAC address to a v-port 20176 */ 20177 #define MC_CMD_VPORT_ADD_MAC_ADDRESS 0xa8 20178 #undef MC_CMD_0xa8_PRIVILEGE_CTG 20179 20180 #define MC_CMD_0xa8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20181 20182 /* MC_CMD_VPORT_ADD_MAC_ADDRESS_IN msgrequest */ 20183 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_LEN 10 20184 /* The handle of the v-port */ 20185 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_VPORT_ID_OFST 0 20186 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_VPORT_ID_LEN 4 20187 /* MAC address to add */ 20188 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_MACADDR_OFST 4 20189 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_MACADDR_LEN 6 20190 20191 /* MC_CMD_VPORT_ADD_MAC_ADDRESS_OUT msgresponse */ 20192 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_OUT_LEN 0 20193 20194 20195 /***********************************/ 20196 /* MC_CMD_VPORT_DEL_MAC_ADDRESS 20197 * Delete a MAC address from a v-port 20198 */ 20199 #define MC_CMD_VPORT_DEL_MAC_ADDRESS 0xa9 20200 #undef MC_CMD_0xa9_PRIVILEGE_CTG 20201 20202 #define MC_CMD_0xa9_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20203 20204 /* MC_CMD_VPORT_DEL_MAC_ADDRESS_IN msgrequest */ 20205 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_LEN 10 20206 /* The handle of the v-port */ 20207 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_VPORT_ID_OFST 0 20208 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_VPORT_ID_LEN 4 20209 /* MAC address to add */ 20210 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_MACADDR_OFST 4 20211 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_MACADDR_LEN 6 20212 20213 /* MC_CMD_VPORT_DEL_MAC_ADDRESS_OUT msgresponse */ 20214 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_OUT_LEN 0 20215 20216 20217 /***********************************/ 20218 /* MC_CMD_VPORT_GET_MAC_ADDRESSES 20219 * Delete a MAC address from a v-port 20220 */ 20221 #define MC_CMD_VPORT_GET_MAC_ADDRESSES 0xaa 20222 #undef MC_CMD_0xaa_PRIVILEGE_CTG 20223 20224 #define MC_CMD_0xaa_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20225 20226 /* MC_CMD_VPORT_GET_MAC_ADDRESSES_IN msgrequest */ 20227 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_IN_LEN 4 20228 /* The handle of the v-port */ 20229 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_IN_VPORT_ID_OFST 0 20230 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_IN_VPORT_ID_LEN 4 20231 20232 /* MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT msgresponse */ 20233 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LENMIN 4 20234 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LENMAX 250 20235 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LENMAX_MCDI2 1018 20236 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LEN(num) (4+6*(num)) 20237 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_NUM(len) (((len)-4)/6) 20238 /* The number of MAC addresses returned */ 20239 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_COUNT_OFST 0 20240 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_COUNT_LEN 4 20241 /* Array of MAC addresses */ 20242 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_OFST 4 20243 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_LEN 6 20244 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_MINNUM 0 20245 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_MAXNUM 41 20246 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_MAXNUM_MCDI2 169 20247 20248 20249 /***********************************/ 20250 /* MC_CMD_VPORT_RECONFIGURE 20251 * Replace VLAN tags and/or MAC addresses of an existing v-port. If the v-port 20252 * has already been passed to another function (v-port's user), then that 20253 * function will be reset before applying the changes. 20254 */ 20255 #define MC_CMD_VPORT_RECONFIGURE 0xeb 20256 #undef MC_CMD_0xeb_PRIVILEGE_CTG 20257 20258 #define MC_CMD_0xeb_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20259 20260 /* MC_CMD_VPORT_RECONFIGURE_IN msgrequest */ 20261 #define MC_CMD_VPORT_RECONFIGURE_IN_LEN 44 20262 /* The handle of the v-port */ 20263 #define MC_CMD_VPORT_RECONFIGURE_IN_VPORT_ID_OFST 0 20264 #define MC_CMD_VPORT_RECONFIGURE_IN_VPORT_ID_LEN 4 20265 /* Flags requesting what should be changed. */ 20266 #define MC_CMD_VPORT_RECONFIGURE_IN_FLAGS_OFST 4 20267 #define MC_CMD_VPORT_RECONFIGURE_IN_FLAGS_LEN 4 20268 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_VLAN_TAGS_OFST 4 20269 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_VLAN_TAGS_LBN 0 20270 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_VLAN_TAGS_WIDTH 1 20271 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_MACADDRS_OFST 4 20272 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_MACADDRS_LBN 1 20273 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_MACADDRS_WIDTH 1 20274 /* The number of VLAN tags to insert/remove. An error will be returned if 20275 * incompatible with the number of VLAN tags specified for the upstream 20276 * v-switch. 20277 */ 20278 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_VLAN_TAGS_OFST 8 20279 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_VLAN_TAGS_LEN 4 20280 /* The actual VLAN tags to insert/remove */ 20281 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAGS_OFST 12 20282 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAGS_LEN 4 20283 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_0_OFST 12 20284 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_0_LBN 0 20285 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_0_WIDTH 16 20286 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_1_OFST 12 20287 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_1_LBN 16 20288 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_1_WIDTH 16 20289 /* The number of MAC addresses to add */ 20290 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_MACADDRS_OFST 16 20291 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_MACADDRS_LEN 4 20292 /* MAC addresses to add */ 20293 #define MC_CMD_VPORT_RECONFIGURE_IN_MACADDRS_OFST 20 20294 #define MC_CMD_VPORT_RECONFIGURE_IN_MACADDRS_LEN 6 20295 #define MC_CMD_VPORT_RECONFIGURE_IN_MACADDRS_NUM 4 20296 20297 /* MC_CMD_VPORT_RECONFIGURE_OUT msgresponse */ 20298 #define MC_CMD_VPORT_RECONFIGURE_OUT_LEN 4 20299 #define MC_CMD_VPORT_RECONFIGURE_OUT_FLAGS_OFST 0 20300 #define MC_CMD_VPORT_RECONFIGURE_OUT_FLAGS_LEN 4 20301 #define MC_CMD_VPORT_RECONFIGURE_OUT_RESET_DONE_OFST 0 20302 #define MC_CMD_VPORT_RECONFIGURE_OUT_RESET_DONE_LBN 0 20303 #define MC_CMD_VPORT_RECONFIGURE_OUT_RESET_DONE_WIDTH 1 20304 20305 20306 /***********************************/ 20307 /* MC_CMD_GET_CLOCK 20308 * Return the system and PDCPU clock frequencies. 20309 */ 20310 #define MC_CMD_GET_CLOCK 0xac 20311 #undef MC_CMD_0xac_PRIVILEGE_CTG 20312 20313 #define MC_CMD_0xac_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20314 20315 /* MC_CMD_GET_CLOCK_IN msgrequest */ 20316 #define MC_CMD_GET_CLOCK_IN_LEN 0 20317 20318 /* MC_CMD_GET_CLOCK_OUT msgresponse */ 20319 #define MC_CMD_GET_CLOCK_OUT_LEN 8 20320 /* System frequency, MHz */ 20321 #define MC_CMD_GET_CLOCK_OUT_SYS_FREQ_OFST 0 20322 #define MC_CMD_GET_CLOCK_OUT_SYS_FREQ_LEN 4 20323 /* DPCPU frequency, MHz */ 20324 #define MC_CMD_GET_CLOCK_OUT_DPCPU_FREQ_OFST 4 20325 #define MC_CMD_GET_CLOCK_OUT_DPCPU_FREQ_LEN 4 20326 20327 20328 /***********************************/ 20329 /* MC_CMD_TRIGGER_INTERRUPT 20330 * Trigger an interrupt by prodding the BIU. 20331 */ 20332 #define MC_CMD_TRIGGER_INTERRUPT 0xe3 20333 #undef MC_CMD_0xe3_PRIVILEGE_CTG 20334 20335 #define MC_CMD_0xe3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20336 20337 /* MC_CMD_TRIGGER_INTERRUPT_IN msgrequest */ 20338 #define MC_CMD_TRIGGER_INTERRUPT_IN_LEN 4 20339 /* Interrupt level relative to base for function. */ 20340 #define MC_CMD_TRIGGER_INTERRUPT_IN_INTR_LEVEL_OFST 0 20341 #define MC_CMD_TRIGGER_INTERRUPT_IN_INTR_LEVEL_LEN 4 20342 20343 /* MC_CMD_TRIGGER_INTERRUPT_OUT msgresponse */ 20344 #define MC_CMD_TRIGGER_INTERRUPT_OUT_LEN 0 20345 20346 20347 /***********************************/ 20348 /* MC_CMD_DUMP_DO 20349 * Take a dump of the DUT state 20350 */ 20351 #define MC_CMD_DUMP_DO 0xe8 20352 #undef MC_CMD_0xe8_PRIVILEGE_CTG 20353 20354 #define MC_CMD_0xe8_PRIVILEGE_CTG SRIOV_CTG_INSECURE 20355 20356 /* MC_CMD_DUMP_DO_IN msgrequest */ 20357 #define MC_CMD_DUMP_DO_IN_LEN 52 20358 #define MC_CMD_DUMP_DO_IN_PADDING_OFST 0 20359 #define MC_CMD_DUMP_DO_IN_PADDING_LEN 4 20360 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_OFST 4 20361 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_LEN 4 20362 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM 0x0 /* enum */ 20363 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_DEFAULT 0x1 /* enum */ 20364 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_TYPE_OFST 8 20365 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_TYPE_LEN 4 20366 #define MC_CMD_DUMP_DO_IN_DUMP_LOCATION_NVRAM 0x1 /* enum */ 20367 #define MC_CMD_DUMP_DO_IN_DUMP_LOCATION_HOST_MEMORY 0x2 /* enum */ 20368 #define MC_CMD_DUMP_DO_IN_DUMP_LOCATION_HOST_MEMORY_MLI 0x3 /* enum */ 20369 #define MC_CMD_DUMP_DO_IN_DUMP_LOCATION_UART 0x4 /* enum */ 20370 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_OFST 12 20371 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4 20372 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_OFST 16 20373 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_LEN 4 20374 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_OFST 12 20375 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4 20376 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_OFST 16 20377 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4 20378 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_OFST 12 20379 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4 20380 #define MC_CMD_DUMP_DO_IN_HOST_MEMORY_MLI_PAGE_SIZE 0x1000 /* enum */ 20381 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_OFST 16 20382 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4 20383 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_OFST 20 20384 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4 20385 #define MC_CMD_DUMP_DO_IN_HOST_MEMORY_MLI_MAX_DEPTH 0x2 /* enum */ 20386 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_OFST 12 20387 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_LEN 4 20388 /* enum: The uart port this command was received over (if using a uart 20389 * transport) 20390 */ 20391 #define MC_CMD_DUMP_DO_IN_UART_PORT_SRC 0xff 20392 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_SIZE_OFST 24 20393 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_SIZE_LEN 4 20394 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_OFST 28 20395 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_LEN 4 20396 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM 0x0 /* enum */ 20397 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_NVRAM_DUMP_PARTITION 0x1 /* enum */ 20398 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_TYPE_OFST 32 20399 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_TYPE_LEN 4 20400 /* Enum values, see field(s): */ 20401 /* MC_CMD_DUMP_DO_IN/DUMPSPEC_SRC_CUSTOM_TYPE */ 20402 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_OFST 36 20403 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4 20404 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_OFST 40 20405 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_LEN 4 20406 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_OFST 36 20407 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4 20408 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_OFST 40 20409 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4 20410 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_OFST 36 20411 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4 20412 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_OFST 40 20413 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4 20414 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_OFST 44 20415 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4 20416 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_UART_PORT_OFST 36 20417 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_UART_PORT_LEN 4 20418 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_SIZE_OFST 48 20419 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_SIZE_LEN 4 20420 20421 /* MC_CMD_DUMP_DO_OUT msgresponse */ 20422 #define MC_CMD_DUMP_DO_OUT_LEN 4 20423 #define MC_CMD_DUMP_DO_OUT_DUMPFILE_SIZE_OFST 0 20424 #define MC_CMD_DUMP_DO_OUT_DUMPFILE_SIZE_LEN 4 20425 20426 20427 /***********************************/ 20428 /* MC_CMD_DUMP_CONFIGURE_UNSOLICITED 20429 * Configure unsolicited dumps 20430 */ 20431 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED 0xe9 20432 #undef MC_CMD_0xe9_PRIVILEGE_CTG 20433 20434 #define MC_CMD_0xe9_PRIVILEGE_CTG SRIOV_CTG_INSECURE 20435 20436 /* MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN msgrequest */ 20437 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_LEN 52 20438 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_ENABLE_OFST 0 20439 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_ENABLE_LEN 4 20440 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_OFST 4 20441 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_LEN 4 20442 /* Enum values, see field(s): */ 20443 /* MC_CMD_DUMP_DO/MC_CMD_DUMP_DO_IN/DUMPSPEC_SRC */ 20444 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_TYPE_OFST 8 20445 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_TYPE_LEN 4 20446 /* Enum values, see field(s): */ 20447 /* MC_CMD_DUMP_DO/MC_CMD_DUMP_DO_IN/DUMPSPEC_SRC_CUSTOM_TYPE */ 20448 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_OFST 12 20449 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4 20450 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_OFST 16 20451 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_LEN 4 20452 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_OFST 12 20453 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4 20454 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_OFST 16 20455 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4 20456 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_OFST 12 20457 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4 20458 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_OFST 16 20459 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4 20460 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_OFST 20 20461 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4 20462 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_OFST 12 20463 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_LEN 4 20464 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_SIZE_OFST 24 20465 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_SIZE_LEN 4 20466 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_OFST 28 20467 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_LEN 4 20468 /* Enum values, see field(s): */ 20469 /* MC_CMD_DUMP_DO/MC_CMD_DUMP_DO_IN/DUMPFILE_DST */ 20470 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_TYPE_OFST 32 20471 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_TYPE_LEN 4 20472 /* Enum values, see field(s): */ 20473 /* MC_CMD_DUMP_DO/MC_CMD_DUMP_DO_IN/DUMPSPEC_SRC_CUSTOM_TYPE */ 20474 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_OFST 36 20475 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4 20476 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_OFST 40 20477 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_LEN 4 20478 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_OFST 36 20479 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4 20480 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_OFST 40 20481 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4 20482 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_OFST 36 20483 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4 20484 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_OFST 40 20485 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4 20486 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_OFST 44 20487 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4 20488 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_UART_PORT_OFST 36 20489 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_UART_PORT_LEN 4 20490 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_SIZE_OFST 48 20491 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_SIZE_LEN 4 20492 20493 20494 /***********************************/ 20495 /* MC_CMD_GET_FUNCTION_INFO 20496 * Get function information. PF and VF number. 20497 */ 20498 #define MC_CMD_GET_FUNCTION_INFO 0xec 20499 #undef MC_CMD_0xec_PRIVILEGE_CTG 20500 20501 #define MC_CMD_0xec_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20502 20503 /* MC_CMD_GET_FUNCTION_INFO_IN msgrequest */ 20504 #define MC_CMD_GET_FUNCTION_INFO_IN_LEN 0 20505 20506 /* MC_CMD_GET_FUNCTION_INFO_OUT msgresponse */ 20507 #define MC_CMD_GET_FUNCTION_INFO_OUT_LEN 8 20508 #define MC_CMD_GET_FUNCTION_INFO_OUT_PF_OFST 0 20509 #define MC_CMD_GET_FUNCTION_INFO_OUT_PF_LEN 4 20510 #define MC_CMD_GET_FUNCTION_INFO_OUT_VF_OFST 4 20511 #define MC_CMD_GET_FUNCTION_INFO_OUT_VF_LEN 4 20512 20513 /* MC_CMD_GET_FUNCTION_INFO_OUT_V2 msgresponse */ 20514 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_LEN 12 20515 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_PF_OFST 0 20516 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_PF_LEN 4 20517 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_VF_OFST 4 20518 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_VF_LEN 4 20519 /* Values from PCIE_INTERFACE enumeration. For NICs with a single interface, or 20520 * in the case of a V1 response, this should be HOST_PRIMARY. 20521 */ 20522 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_INTF_OFST 8 20523 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_INTF_LEN 4 20524 20525 20526 /***********************************/ 20527 /* MC_CMD_ENABLE_OFFLINE_BIST 20528 * Enters offline BIST mode. All queues are torn down, chip enters quiescent 20529 * mode, calling function gets exclusive MCDI ownership. The only way out is 20530 * reboot. 20531 */ 20532 #define MC_CMD_ENABLE_OFFLINE_BIST 0xed 20533 #undef MC_CMD_0xed_PRIVILEGE_CTG 20534 20535 #define MC_CMD_0xed_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 20536 20537 /* MC_CMD_ENABLE_OFFLINE_BIST_IN msgrequest */ 20538 #define MC_CMD_ENABLE_OFFLINE_BIST_IN_LEN 0 20539 20540 /* MC_CMD_ENABLE_OFFLINE_BIST_OUT msgresponse */ 20541 #define MC_CMD_ENABLE_OFFLINE_BIST_OUT_LEN 0 20542 20543 20544 /***********************************/ 20545 /* MC_CMD_KR_TUNE 20546 * Get or set KR Serdes RXEQ and TX Driver settings 20547 */ 20548 #define MC_CMD_KR_TUNE 0xf1 20549 #undef MC_CMD_0xf1_PRIVILEGE_CTG 20550 20551 #define MC_CMD_0xf1_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 20552 20553 /* MC_CMD_KR_TUNE_IN msgrequest */ 20554 #define MC_CMD_KR_TUNE_IN_LENMIN 4 20555 #define MC_CMD_KR_TUNE_IN_LENMAX 252 20556 #define MC_CMD_KR_TUNE_IN_LENMAX_MCDI2 1020 20557 #define MC_CMD_KR_TUNE_IN_LEN(num) (4+4*(num)) 20558 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_NUM(len) (((len)-4)/4) 20559 /* Requested operation */ 20560 #define MC_CMD_KR_TUNE_IN_KR_TUNE_OP_OFST 0 20561 #define MC_CMD_KR_TUNE_IN_KR_TUNE_OP_LEN 1 20562 /* enum: Get current RXEQ settings */ 20563 #define MC_CMD_KR_TUNE_IN_RXEQ_GET 0x0 20564 /* enum: Override RXEQ settings */ 20565 #define MC_CMD_KR_TUNE_IN_RXEQ_SET 0x1 20566 /* enum: Get current TX Driver settings */ 20567 #define MC_CMD_KR_TUNE_IN_TXEQ_GET 0x2 20568 /* enum: Override TX Driver settings */ 20569 #define MC_CMD_KR_TUNE_IN_TXEQ_SET 0x3 20570 /* enum: Force KR Serdes reset / recalibration */ 20571 #define MC_CMD_KR_TUNE_IN_RECAL 0x4 20572 /* enum: Start KR Serdes Eye diagram plot on a given lane. Lane must have valid 20573 * signal. 20574 */ 20575 #define MC_CMD_KR_TUNE_IN_START_EYE_PLOT 0x5 20576 /* enum: Poll KR Serdes Eye diagram plot. Returns one row of BER data. The 20577 * caller should call this command repeatedly after starting eye plot, until no 20578 * more data is returned. 20579 */ 20580 #define MC_CMD_KR_TUNE_IN_POLL_EYE_PLOT 0x6 20581 /* enum: Read Figure Of Merit (eye quality, higher is better). */ 20582 #define MC_CMD_KR_TUNE_IN_READ_FOM 0x7 20583 /* enum: Start/stop link training frames */ 20584 #define MC_CMD_KR_TUNE_IN_LINK_TRAIN_RUN 0x8 20585 /* enum: Issue KR link training command (control training coefficients) */ 20586 #define MC_CMD_KR_TUNE_IN_LINK_TRAIN_CMD 0x9 20587 /* Align the arguments to 32 bits */ 20588 #define MC_CMD_KR_TUNE_IN_KR_TUNE_RSVD_OFST 1 20589 #define MC_CMD_KR_TUNE_IN_KR_TUNE_RSVD_LEN 3 20590 /* Arguments specific to the operation */ 20591 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_OFST 4 20592 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_LEN 4 20593 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_MINNUM 0 20594 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_MAXNUM 62 20595 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_MAXNUM_MCDI2 254 20596 20597 /* MC_CMD_KR_TUNE_OUT msgresponse */ 20598 #define MC_CMD_KR_TUNE_OUT_LEN 0 20599 20600 /* MC_CMD_KR_TUNE_RXEQ_GET_IN msgrequest */ 20601 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_LEN 4 20602 /* Requested operation */ 20603 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_OP_OFST 0 20604 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_OP_LEN 1 20605 /* Align the arguments to 32 bits */ 20606 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_RSVD_OFST 1 20607 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_RSVD_LEN 3 20608 20609 /* MC_CMD_KR_TUNE_RXEQ_GET_OUT msgresponse */ 20610 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LENMIN 4 20611 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LENMAX 252 20612 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LENMAX_MCDI2 1020 20613 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LEN(num) (0+4*(num)) 20614 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4) 20615 /* RXEQ Parameter */ 20616 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_OFST 0 20617 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LEN 4 20618 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_MINNUM 1 20619 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_MAXNUM 63 20620 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_MAXNUM_MCDI2 255 20621 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_ID_OFST 0 20622 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_ID_LBN 0 20623 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_ID_WIDTH 8 20624 /* enum: Attenuation (0-15, Huntington) */ 20625 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_ATT 0x0 20626 /* enum: CTLE Boost (0-15, Huntington) */ 20627 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_BOOST 0x1 20628 /* enum: Edge DFE Tap1 (Huntington - 0 - max negative, 64 - zero, 127 - max 20629 * positive, Medford - 0-31) 20630 */ 20631 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP1 0x2 20632 /* enum: Edge DFE Tap2 (Huntington - 0 - max negative, 32 - zero, 63 - max 20633 * positive, Medford - 0-31) 20634 */ 20635 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP2 0x3 20636 /* enum: Edge DFE Tap3 (Huntington - 0 - max negative, 32 - zero, 63 - max 20637 * positive, Medford - 0-16) 20638 */ 20639 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP3 0x4 20640 /* enum: Edge DFE Tap4 (Huntington - 0 - max negative, 32 - zero, 63 - max 20641 * positive, Medford - 0-16) 20642 */ 20643 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP4 0x5 20644 /* enum: Edge DFE Tap5 (Huntington - 0 - max negative, 32 - zero, 63 - max 20645 * positive, Medford - 0-16) 20646 */ 20647 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP5 0x6 20648 /* enum: Edge DFE DLEV (0-128 for Medford) */ 20649 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_DLEV 0x7 20650 /* enum: Variable Gain Amplifier (0-15, Medford) */ 20651 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_VGA 0x8 20652 /* enum: CTLE EQ Capacitor (0-15, Medford) */ 20653 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_EQC 0x9 20654 /* enum: CTLE EQ Resistor (0-7, Medford) */ 20655 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_EQRES 0xa 20656 /* enum: CTLE gain (0-31, Medford2) */ 20657 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_GAIN 0xb 20658 /* enum: CTLE pole (0-31, Medford2) */ 20659 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_POLE 0xc 20660 /* enum: CTLE peaking (0-31, Medford2) */ 20661 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_PEAK 0xd 20662 /* enum: DFE Tap1 - even path (Medford2 - 6 bit signed (-29 - +29)) */ 20663 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP1_EVEN 0xe 20664 /* enum: DFE Tap1 - odd path (Medford2 - 6 bit signed (-29 - +29)) */ 20665 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP1_ODD 0xf 20666 /* enum: DFE Tap2 (Medford2 - 6 bit signed (-20 - +20)) */ 20667 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP2 0x10 20668 /* enum: DFE Tap3 (Medford2 - 6 bit signed (-20 - +20)) */ 20669 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP3 0x11 20670 /* enum: DFE Tap4 (Medford2 - 6 bit signed (-20 - +20)) */ 20671 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP4 0x12 20672 /* enum: DFE Tap5 (Medford2 - 6 bit signed (-24 - +24)) */ 20673 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP5 0x13 20674 /* enum: DFE Tap6 (Medford2 - 6 bit signed (-24 - +24)) */ 20675 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP6 0x14 20676 /* enum: DFE Tap7 (Medford2 - 6 bit signed (-24 - +24)) */ 20677 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP7 0x15 20678 /* enum: DFE Tap8 (Medford2 - 6 bit signed (-24 - +24)) */ 20679 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP8 0x16 20680 /* enum: DFE Tap9 (Medford2 - 6 bit signed (-24 - +24)) */ 20681 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP9 0x17 20682 /* enum: DFE Tap10 (Medford2 - 6 bit signed (-24 - +24)) */ 20683 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP10 0x18 20684 /* enum: DFE Tap11 (Medford2 - 6 bit signed (-24 - +24)) */ 20685 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP11 0x19 20686 /* enum: DFE Tap12 (Medford2 - 6 bit signed (-24 - +24)) */ 20687 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP12 0x1a 20688 /* enum: I/Q clk offset (Medford2 - 4 bit signed (-5 - +5))) */ 20689 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_IQ_OFF 0x1b 20690 /* enum: Negative h1 polarity data sampler offset calibration code, even path 20691 * (Medford2 - 6 bit signed (-29 - +29))) 20692 */ 20693 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_H1N_OFF_EVEN 0x1c 20694 /* enum: Negative h1 polarity data sampler offset calibration code, odd path 20695 * (Medford2 - 6 bit signed (-29 - +29))) 20696 */ 20697 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_H1N_OFF_ODD 0x1d 20698 /* enum: Positive h1 polarity data sampler offset calibration code, even path 20699 * (Medford2 - 6 bit signed (-29 - +29))) 20700 */ 20701 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_H1P_OFF_EVEN 0x1e 20702 /* enum: Positive h1 polarity data sampler offset calibration code, odd path 20703 * (Medford2 - 6 bit signed (-29 - +29))) 20704 */ 20705 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_H1P_OFF_ODD 0x1f 20706 /* enum: CDR calibration loop code (Medford2) */ 20707 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CDR_PVT 0x20 20708 /* enum: CDR integral loop code (Medford2) */ 20709 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CDR_INTEG 0x21 20710 /* enum: CTLE Boost stages - retimer lineside (Medford2 with DS250x retimer - 4 20711 * stages, 2 bits per stage) 20712 */ 20713 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_BOOST_RT_LS 0x22 20714 /* enum: DFE Tap1 - retimer lineside (Medford2 with DS250x retimer (-31 - 31)) 20715 */ 20716 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP1_RT_LS 0x23 20717 /* enum: DFE Tap2 - retimer lineside (Medford2 with DS250x retimer (-15 - 15)) 20718 */ 20719 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP2_RT_LS 0x24 20720 /* enum: DFE Tap3 - retimer lineside (Medford2 with DS250x retimer (-15 - 15)) 20721 */ 20722 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP3_RT_LS 0x25 20723 /* enum: DFE Tap4 - retimer lineside (Medford2 with DS250x retimer (-15 - 15)) 20724 */ 20725 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP4_RT_LS 0x26 20726 /* enum: DFE Tap5 - retimer lineside (Medford2 with DS250x retimer (-15 - 15)) 20727 */ 20728 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP5_RT_LS 0x27 20729 /* enum: CTLE Boost stages - retimer hostside (Medford2 with DS250x retimer - 4 20730 * stages, 2 bits per stage) 20731 */ 20732 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_BOOST_RT_HS 0x28 20733 /* enum: DFE Tap1 - retimer hostside (Medford2 with DS250x retimer (-31 - 31)) 20734 */ 20735 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP1_RT_HS 0x29 20736 /* enum: DFE Tap2 - retimer hostside (Medford2 with DS250x retimer (-15 - 15)) 20737 */ 20738 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP2_RT_HS 0x2a 20739 /* enum: DFE Tap3 - retimer hostside (Medford2 with DS250x retimer (-15 - 15)) 20740 */ 20741 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP3_RT_HS 0x2b 20742 /* enum: DFE Tap4 - retimer hostside (Medford2 with DS250x retimer (-15 - 15)) 20743 */ 20744 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP4_RT_HS 0x2c 20745 /* enum: DFE Tap5 - retimer hostside (Medford2 with DS250x retimer (-15 - 15)) 20746 */ 20747 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP5_RT_HS 0x2d 20748 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LANE_OFST 0 20749 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LANE_LBN 8 20750 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LANE_WIDTH 3 20751 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_0 0x0 /* enum */ 20752 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_1 0x1 /* enum */ 20753 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_2 0x2 /* enum */ 20754 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_3 0x3 /* enum */ 20755 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_ALL 0x4 /* enum */ 20756 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_OFST 0 20757 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_LBN 11 20758 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_WIDTH 1 20759 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_RESERVED_OFST 0 20760 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_RESERVED_LBN 12 20761 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_RESERVED_WIDTH 4 20762 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_INITIAL_OFST 0 20763 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_INITIAL_LBN 16 20764 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_INITIAL_WIDTH 8 20765 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_OFST 0 20766 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_LBN 24 20767 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_WIDTH 8 20768 20769 /* MC_CMD_KR_TUNE_RXEQ_SET_IN msgrequest */ 20770 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LENMIN 8 20771 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LENMAX 252 20772 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LENMAX_MCDI2 1020 20773 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LEN(num) (4+4*(num)) 20774 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_NUM(len) (((len)-4)/4) 20775 /* Requested operation */ 20776 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_OP_OFST 0 20777 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_OP_LEN 1 20778 /* Align the arguments to 32 bits */ 20779 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_RSVD_OFST 1 20780 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_RSVD_LEN 3 20781 /* RXEQ Parameter */ 20782 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_OFST 4 20783 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LEN 4 20784 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_MINNUM 1 20785 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_MAXNUM 62 20786 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_MAXNUM_MCDI2 254 20787 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_ID_OFST 4 20788 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_ID_LBN 0 20789 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_ID_WIDTH 8 20790 /* Enum values, see field(s): */ 20791 /* MC_CMD_KR_TUNE_RXEQ_GET_OUT/PARAM_ID */ 20792 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LANE_OFST 4 20793 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LANE_LBN 8 20794 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LANE_WIDTH 3 20795 /* Enum values, see field(s): */ 20796 /* MC_CMD_KR_TUNE_RXEQ_GET_OUT/PARAM_LANE */ 20797 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_OFST 4 20798 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_LBN 11 20799 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_WIDTH 1 20800 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED_OFST 4 20801 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED_LBN 12 20802 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED_WIDTH 4 20803 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_INITIAL_OFST 4 20804 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_INITIAL_LBN 16 20805 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_INITIAL_WIDTH 8 20806 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED2_OFST 4 20807 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED2_LBN 24 20808 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED2_WIDTH 8 20809 20810 /* MC_CMD_KR_TUNE_RXEQ_SET_OUT msgresponse */ 20811 #define MC_CMD_KR_TUNE_RXEQ_SET_OUT_LEN 0 20812 20813 /* MC_CMD_KR_TUNE_TXEQ_GET_IN msgrequest */ 20814 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_LEN 4 20815 /* Requested operation */ 20816 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_OP_OFST 0 20817 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_OP_LEN 1 20818 /* Align the arguments to 32 bits */ 20819 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_RSVD_OFST 1 20820 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_RSVD_LEN 3 20821 20822 /* MC_CMD_KR_TUNE_TXEQ_GET_OUT msgresponse */ 20823 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LENMIN 4 20824 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LENMAX 252 20825 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LENMAX_MCDI2 1020 20826 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LEN(num) (0+4*(num)) 20827 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4) 20828 /* TXEQ Parameter */ 20829 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_OFST 0 20830 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LEN 4 20831 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_MINNUM 1 20832 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_MAXNUM 63 20833 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_MAXNUM_MCDI2 255 20834 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_ID_OFST 0 20835 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_ID_LBN 0 20836 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_ID_WIDTH 8 20837 /* enum: TX Amplitude (Huntington, Medford, Medford2) */ 20838 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_LEV 0x0 20839 /* enum: De-Emphasis Tap1 Magnitude (0-7) (Huntington) */ 20840 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_MODE 0x1 20841 /* enum: De-Emphasis Tap1 Fine */ 20842 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_DTLEV 0x2 20843 /* enum: De-Emphasis Tap2 Magnitude (0-6) (Huntington) */ 20844 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_D2 0x3 20845 /* enum: De-Emphasis Tap2 Fine (Huntington) */ 20846 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_D2TLEV 0x4 20847 /* enum: Pre-Emphasis Magnitude (Huntington) */ 20848 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_E 0x5 20849 /* enum: Pre-Emphasis Fine (Huntington) */ 20850 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_ETLEV 0x6 20851 /* enum: TX Slew Rate Coarse control (Huntington) */ 20852 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_PREDRV_DLY 0x7 20853 /* enum: TX Slew Rate Fine control (Huntington) */ 20854 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_SR_SET 0x8 20855 /* enum: TX Termination Impedance control (Huntington) */ 20856 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_RT_SET 0x9 20857 /* enum: TX Amplitude Fine control (Medford) */ 20858 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_LEV_FINE 0xa 20859 /* enum: Pre-cursor Tap (Medford, Medford2) */ 20860 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_ADV 0xb 20861 /* enum: Post-cursor Tap (Medford, Medford2) */ 20862 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_DLY 0xc 20863 /* enum: TX Amplitude (Retimer Lineside) */ 20864 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_LEV_RT_LS 0xd 20865 /* enum: Pre-cursor Tap (Retimer Lineside) */ 20866 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_ADV_RT_LS 0xe 20867 /* enum: Post-cursor Tap (Retimer Lineside) */ 20868 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_DLY_RT_LS 0xf 20869 /* enum: TX Amplitude (Retimer Hostside) */ 20870 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_LEV_RT_HS 0x10 20871 /* enum: Pre-cursor Tap (Retimer Hostside) */ 20872 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_ADV_RT_HS 0x11 20873 /* enum: Post-cursor Tap (Retimer Hostside) */ 20874 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_DLY_RT_HS 0x12 20875 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LANE_OFST 0 20876 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LANE_LBN 8 20877 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LANE_WIDTH 3 20878 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_0 0x0 /* enum */ 20879 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_1 0x1 /* enum */ 20880 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_2 0x2 /* enum */ 20881 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_3 0x3 /* enum */ 20882 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_ALL 0x4 /* enum */ 20883 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED_OFST 0 20884 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED_LBN 11 20885 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED_WIDTH 5 20886 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_INITIAL_OFST 0 20887 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_INITIAL_LBN 16 20888 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_INITIAL_WIDTH 8 20889 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED2_OFST 0 20890 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED2_LBN 24 20891 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED2_WIDTH 8 20892 20893 /* MC_CMD_KR_TUNE_TXEQ_SET_IN msgrequest */ 20894 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LENMIN 8 20895 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LENMAX 252 20896 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LENMAX_MCDI2 1020 20897 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LEN(num) (4+4*(num)) 20898 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_NUM(len) (((len)-4)/4) 20899 /* Requested operation */ 20900 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_OP_OFST 0 20901 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_OP_LEN 1 20902 /* Align the arguments to 32 bits */ 20903 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_RSVD_OFST 1 20904 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_RSVD_LEN 3 20905 /* TXEQ Parameter */ 20906 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_OFST 4 20907 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LEN 4 20908 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_MINNUM 1 20909 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_MAXNUM 62 20910 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_MAXNUM_MCDI2 254 20911 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_ID_OFST 4 20912 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_ID_LBN 0 20913 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_ID_WIDTH 8 20914 /* Enum values, see field(s): */ 20915 /* MC_CMD_KR_TUNE_TXEQ_GET_OUT/PARAM_ID */ 20916 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LANE_OFST 4 20917 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LANE_LBN 8 20918 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LANE_WIDTH 3 20919 /* Enum values, see field(s): */ 20920 /* MC_CMD_KR_TUNE_TXEQ_GET_OUT/PARAM_LANE */ 20921 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED_OFST 4 20922 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED_LBN 11 20923 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED_WIDTH 5 20924 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_INITIAL_OFST 4 20925 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_INITIAL_LBN 16 20926 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_INITIAL_WIDTH 8 20927 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED2_OFST 4 20928 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED2_LBN 24 20929 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED2_WIDTH 8 20930 20931 /* MC_CMD_KR_TUNE_TXEQ_SET_OUT msgresponse */ 20932 #define MC_CMD_KR_TUNE_TXEQ_SET_OUT_LEN 0 20933 20934 /* MC_CMD_KR_TUNE_RECAL_IN msgrequest */ 20935 #define MC_CMD_KR_TUNE_RECAL_IN_LEN 4 20936 /* Requested operation */ 20937 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_OP_OFST 0 20938 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_OP_LEN 1 20939 /* Align the arguments to 32 bits */ 20940 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_RSVD_OFST 1 20941 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_RSVD_LEN 3 20942 20943 /* MC_CMD_KR_TUNE_RECAL_OUT msgresponse */ 20944 #define MC_CMD_KR_TUNE_RECAL_OUT_LEN 0 20945 20946 /* MC_CMD_KR_TUNE_START_EYE_PLOT_IN msgrequest */ 20947 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_LEN 8 20948 /* Requested operation */ 20949 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_OP_OFST 0 20950 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_OP_LEN 1 20951 /* Align the arguments to 32 bits */ 20952 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_RSVD_OFST 1 20953 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_RSVD_LEN 3 20954 /* Port-relative lane to scan eye on */ 20955 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_LANE_OFST 4 20956 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_LANE_LEN 4 20957 20958 /* MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN msgrequest */ 20959 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LEN 12 20960 /* Requested operation */ 20961 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_OP_OFST 0 20962 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_OP_LEN 1 20963 /* Align the arguments to 32 bits */ 20964 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_RSVD_OFST 1 20965 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_RSVD_LEN 3 20966 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_OFST 4 20967 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_LEN 4 20968 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_NUM_OFST 4 20969 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_NUM_LBN 0 20970 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_NUM_WIDTH 8 20971 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_ABS_REL_OFST 4 20972 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_ABS_REL_LBN 31 20973 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_ABS_REL_WIDTH 1 20974 /* Scan duration / cycle count */ 20975 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_BER_OFST 8 20976 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_BER_LEN 4 20977 20978 /* MC_CMD_KR_TUNE_START_EYE_PLOT_OUT msgresponse */ 20979 #define MC_CMD_KR_TUNE_START_EYE_PLOT_OUT_LEN 0 20980 20981 /* MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN msgrequest */ 20982 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_LEN 4 20983 /* Requested operation */ 20984 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_OP_OFST 0 20985 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_OP_LEN 1 20986 /* Align the arguments to 32 bits */ 20987 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_RSVD_OFST 1 20988 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_RSVD_LEN 3 20989 20990 /* MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT msgresponse */ 20991 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_LENMIN 0 20992 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_LENMAX 252 20993 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_LENMAX_MCDI2 1020 20994 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_LEN(num) (0+2*(num)) 20995 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_NUM(len) (((len)-0)/2) 20996 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_OFST 0 20997 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_LEN 2 20998 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MINNUM 0 20999 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MAXNUM 126 21000 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MAXNUM_MCDI2 510 21001 21002 /* MC_CMD_KR_TUNE_READ_FOM_IN msgrequest */ 21003 #define MC_CMD_KR_TUNE_READ_FOM_IN_LEN 8 21004 /* Requested operation */ 21005 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_OP_OFST 0 21006 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_OP_LEN 1 21007 /* Align the arguments to 32 bits */ 21008 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_RSVD_OFST 1 21009 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_RSVD_LEN 3 21010 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_OFST 4 21011 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_LEN 4 21012 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_NUM_OFST 4 21013 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_NUM_LBN 0 21014 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_NUM_WIDTH 8 21015 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_ABS_REL_OFST 4 21016 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_ABS_REL_LBN 31 21017 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_ABS_REL_WIDTH 1 21018 21019 /* MC_CMD_KR_TUNE_READ_FOM_OUT msgresponse */ 21020 #define MC_CMD_KR_TUNE_READ_FOM_OUT_LEN 4 21021 #define MC_CMD_KR_TUNE_READ_FOM_OUT_FOM_OFST 0 21022 #define MC_CMD_KR_TUNE_READ_FOM_OUT_FOM_LEN 4 21023 21024 /* MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN msgrequest */ 21025 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_LEN 8 21026 /* Requested operation */ 21027 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_OP_OFST 0 21028 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_OP_LEN 1 21029 /* Align the arguments to 32 bits */ 21030 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_RSVD_OFST 1 21031 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_RSVD_LEN 3 21032 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_RUN_OFST 4 21033 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_RUN_LEN 4 21034 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_STOP 0x0 /* enum */ 21035 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_START 0x1 /* enum */ 21036 21037 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN msgrequest */ 21038 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_LEN 28 21039 /* Requested operation */ 21040 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_OP_OFST 0 21041 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_OP_LEN 1 21042 /* Align the arguments to 32 bits */ 21043 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_RSVD_OFST 1 21044 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_RSVD_LEN 3 21045 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_LANE_OFST 4 21046 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_LANE_LEN 4 21047 /* Set INITIALIZE state */ 21048 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_INITIALIZE_OFST 8 21049 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_INITIALIZE_LEN 4 21050 /* Set PRESET state */ 21051 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_PRESET_OFST 12 21052 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_PRESET_LEN 4 21053 /* C(-1) request */ 21054 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CM1_OFST 16 21055 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CM1_LEN 4 21056 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_REQ_HOLD 0x0 /* enum */ 21057 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_REQ_INCREMENT 0x1 /* enum */ 21058 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_REQ_DECREMENT 0x2 /* enum */ 21059 /* C(0) request */ 21060 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_C0_OFST 20 21061 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_C0_LEN 4 21062 /* Enum values, see field(s): */ 21063 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN/CM1 */ 21064 /* C(+1) request */ 21065 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CP1_OFST 24 21066 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CP1_LEN 4 21067 /* Enum values, see field(s): */ 21068 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN/CM1 */ 21069 21070 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT msgresponse */ 21071 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_LEN 24 21072 /* C(-1) status */ 21073 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_STATUS_OFST 0 21074 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_STATUS_LEN 4 21075 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_STATUS_NOT_UPDATED 0x0 /* enum */ 21076 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_STATUS_UPDATED 0x1 /* enum */ 21077 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_STATUS_MINIMUM 0x2 /* enum */ 21078 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_STATUS_MAXIMUM 0x3 /* enum */ 21079 /* C(0) status */ 21080 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_STATUS_OFST 4 21081 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_STATUS_LEN 4 21082 /* Enum values, see field(s): */ 21083 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN/CM1 */ 21084 /* C(+1) status */ 21085 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_STATUS_OFST 8 21086 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_STATUS_LEN 4 21087 /* Enum values, see field(s): */ 21088 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN/CM1 */ 21089 /* C(-1) value */ 21090 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_VALUE_OFST 12 21091 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_VALUE_LEN 4 21092 /* C(0) value */ 21093 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_VALUE_OFST 16 21094 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_VALUE_LEN 4 21095 /* C(+1) status */ 21096 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_VALUE_OFST 20 21097 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_VALUE_LEN 4 21098 21099 21100 /***********************************/ 21101 /* MC_CMD_LICENSING 21102 * Operations on the NVRAM_PARTITION_TYPE_LICENSE application license partition 21103 * - not used for V3 licensing 21104 */ 21105 #define MC_CMD_LICENSING 0xf3 21106 #undef MC_CMD_0xf3_PRIVILEGE_CTG 21107 21108 #define MC_CMD_0xf3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21109 21110 /* MC_CMD_LICENSING_IN msgrequest */ 21111 #define MC_CMD_LICENSING_IN_LEN 4 21112 /* identifies the type of operation requested */ 21113 #define MC_CMD_LICENSING_IN_OP_OFST 0 21114 #define MC_CMD_LICENSING_IN_OP_LEN 4 21115 /* enum: re-read and apply licenses after a license key partition update; note 21116 * that this operation returns a zero-length response 21117 */ 21118 #define MC_CMD_LICENSING_IN_OP_UPDATE_LICENSE 0x0 21119 /* enum: report counts of installed licenses */ 21120 #define MC_CMD_LICENSING_IN_OP_GET_KEY_STATS 0x1 21121 21122 /* MC_CMD_LICENSING_OUT msgresponse */ 21123 #define MC_CMD_LICENSING_OUT_LEN 28 21124 /* count of application keys which are valid */ 21125 #define MC_CMD_LICENSING_OUT_VALID_APP_KEYS_OFST 0 21126 #define MC_CMD_LICENSING_OUT_VALID_APP_KEYS_LEN 4 21127 /* sum of UNVERIFIABLE_APP_KEYS + WRONG_NODE_APP_KEYS (for compatibility with 21128 * MC_CMD_FC_OP_LICENSE) 21129 */ 21130 #define MC_CMD_LICENSING_OUT_INVALID_APP_KEYS_OFST 4 21131 #define MC_CMD_LICENSING_OUT_INVALID_APP_KEYS_LEN 4 21132 /* count of application keys which are invalid due to being blacklisted */ 21133 #define MC_CMD_LICENSING_OUT_BLACKLISTED_APP_KEYS_OFST 8 21134 #define MC_CMD_LICENSING_OUT_BLACKLISTED_APP_KEYS_LEN 4 21135 /* count of application keys which are invalid due to being unverifiable */ 21136 #define MC_CMD_LICENSING_OUT_UNVERIFIABLE_APP_KEYS_OFST 12 21137 #define MC_CMD_LICENSING_OUT_UNVERIFIABLE_APP_KEYS_LEN 4 21138 /* count of application keys which are invalid due to being for the wrong node 21139 */ 21140 #define MC_CMD_LICENSING_OUT_WRONG_NODE_APP_KEYS_OFST 16 21141 #define MC_CMD_LICENSING_OUT_WRONG_NODE_APP_KEYS_LEN 4 21142 /* licensing state (for diagnostics; the exact meaning of the bits in this 21143 * field are private to the firmware) 21144 */ 21145 #define MC_CMD_LICENSING_OUT_LICENSING_STATE_OFST 20 21146 #define MC_CMD_LICENSING_OUT_LICENSING_STATE_LEN 4 21147 /* licensing subsystem self-test report (for manftest) */ 21148 #define MC_CMD_LICENSING_OUT_LICENSING_SELF_TEST_OFST 24 21149 #define MC_CMD_LICENSING_OUT_LICENSING_SELF_TEST_LEN 4 21150 /* enum: licensing subsystem self-test failed */ 21151 #define MC_CMD_LICENSING_OUT_SELF_TEST_FAIL 0x0 21152 /* enum: licensing subsystem self-test passed */ 21153 #define MC_CMD_LICENSING_OUT_SELF_TEST_PASS 0x1 21154 21155 21156 /***********************************/ 21157 /* MC_CMD_LICENSING_V3 21158 * Operations on the NVRAM_PARTITION_TYPE_LICENSE application license partition 21159 * - V3 licensing (Medford) 21160 */ 21161 #define MC_CMD_LICENSING_V3 0xd0 21162 #undef MC_CMD_0xd0_PRIVILEGE_CTG 21163 21164 #define MC_CMD_0xd0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21165 21166 /* MC_CMD_LICENSING_V3_IN msgrequest */ 21167 #define MC_CMD_LICENSING_V3_IN_LEN 4 21168 /* identifies the type of operation requested */ 21169 #define MC_CMD_LICENSING_V3_IN_OP_OFST 0 21170 #define MC_CMD_LICENSING_V3_IN_OP_LEN 4 21171 /* enum: re-read and apply licenses after a license key partition update; note 21172 * that this operation returns a zero-length response 21173 */ 21174 #define MC_CMD_LICENSING_V3_IN_OP_UPDATE_LICENSE 0x0 21175 /* enum: report counts of installed licenses Returns EAGAIN if license 21176 * processing (updating) has been started but not yet completed. 21177 */ 21178 #define MC_CMD_LICENSING_V3_IN_OP_REPORT_LICENSE 0x1 21179 21180 /* MC_CMD_LICENSING_V3_OUT msgresponse */ 21181 #define MC_CMD_LICENSING_V3_OUT_LEN 88 21182 /* count of keys which are valid */ 21183 #define MC_CMD_LICENSING_V3_OUT_VALID_KEYS_OFST 0 21184 #define MC_CMD_LICENSING_V3_OUT_VALID_KEYS_LEN 4 21185 /* sum of UNVERIFIABLE_KEYS + WRONG_NODE_KEYS (for compatibility with 21186 * MC_CMD_FC_OP_LICENSE) 21187 */ 21188 #define MC_CMD_LICENSING_V3_OUT_INVALID_KEYS_OFST 4 21189 #define MC_CMD_LICENSING_V3_OUT_INVALID_KEYS_LEN 4 21190 /* count of keys which are invalid due to being unverifiable */ 21191 #define MC_CMD_LICENSING_V3_OUT_UNVERIFIABLE_KEYS_OFST 8 21192 #define MC_CMD_LICENSING_V3_OUT_UNVERIFIABLE_KEYS_LEN 4 21193 /* count of keys which are invalid due to being for the wrong node */ 21194 #define MC_CMD_LICENSING_V3_OUT_WRONG_NODE_KEYS_OFST 12 21195 #define MC_CMD_LICENSING_V3_OUT_WRONG_NODE_KEYS_LEN 4 21196 /* licensing state (for diagnostics; the exact meaning of the bits in this 21197 * field are private to the firmware) 21198 */ 21199 #define MC_CMD_LICENSING_V3_OUT_LICENSING_STATE_OFST 16 21200 #define MC_CMD_LICENSING_V3_OUT_LICENSING_STATE_LEN 4 21201 /* licensing subsystem self-test report (for manftest) */ 21202 #define MC_CMD_LICENSING_V3_OUT_LICENSING_SELF_TEST_OFST 20 21203 #define MC_CMD_LICENSING_V3_OUT_LICENSING_SELF_TEST_LEN 4 21204 /* enum: licensing subsystem self-test failed */ 21205 #define MC_CMD_LICENSING_V3_OUT_SELF_TEST_FAIL 0x0 21206 /* enum: licensing subsystem self-test passed */ 21207 #define MC_CMD_LICENSING_V3_OUT_SELF_TEST_PASS 0x1 21208 /* bitmask of licensed applications */ 21209 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_OFST 24 21210 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LEN 8 21211 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_OFST 24 21212 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_LEN 4 21213 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_LBN 192 21214 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_WIDTH 32 21215 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_OFST 28 21216 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_LEN 4 21217 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_LBN 224 21218 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_WIDTH 32 21219 /* reserved for future use */ 21220 #define MC_CMD_LICENSING_V3_OUT_RESERVED_0_OFST 32 21221 #define MC_CMD_LICENSING_V3_OUT_RESERVED_0_LEN 24 21222 /* bitmask of licensed features */ 21223 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_OFST 56 21224 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LEN 8 21225 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_OFST 56 21226 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_LEN 4 21227 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_LBN 448 21228 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_WIDTH 32 21229 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_OFST 60 21230 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_LEN 4 21231 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_LBN 480 21232 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_WIDTH 32 21233 /* reserved for future use */ 21234 #define MC_CMD_LICENSING_V3_OUT_RESERVED_1_OFST 64 21235 #define MC_CMD_LICENSING_V3_OUT_RESERVED_1_LEN 24 21236 21237 21238 /***********************************/ 21239 /* MC_CMD_GET_LICENSED_APP_STATE 21240 * Query the state of an individual licensed application. (Note that the actual 21241 * state may be invalidated by the MC_CMD_LICENSING OP_UPDATE_LICENSE operation 21242 * or a reboot of the MC.) Not used for V3 licensing 21243 */ 21244 #define MC_CMD_GET_LICENSED_APP_STATE 0xf5 21245 #undef MC_CMD_0xf5_PRIVILEGE_CTG 21246 21247 #define MC_CMD_0xf5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21248 21249 /* MC_CMD_GET_LICENSED_APP_STATE_IN msgrequest */ 21250 #define MC_CMD_GET_LICENSED_APP_STATE_IN_LEN 4 21251 /* application ID to query (LICENSED_APP_ID_xxx) */ 21252 #define MC_CMD_GET_LICENSED_APP_STATE_IN_APP_ID_OFST 0 21253 #define MC_CMD_GET_LICENSED_APP_STATE_IN_APP_ID_LEN 4 21254 21255 /* MC_CMD_GET_LICENSED_APP_STATE_OUT msgresponse */ 21256 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_LEN 4 21257 /* state of this application */ 21258 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_STATE_OFST 0 21259 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_STATE_LEN 4 21260 /* enum: no (or invalid) license is present for the application */ 21261 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_NOT_LICENSED 0x0 21262 /* enum: a valid license is present for the application */ 21263 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_LICENSED 0x1 21264 21265 21266 /***********************************/ 21267 /* MC_CMD_SET_PARSER_DISP_CONFIG 21268 * Change configuration related to the parser-dispatcher subsystem. 21269 */ 21270 #define MC_CMD_SET_PARSER_DISP_CONFIG 0xf9 21271 #undef MC_CMD_0xf9_PRIVILEGE_CTG 21272 21273 #define MC_CMD_0xf9_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21274 21275 /* MC_CMD_SET_PARSER_DISP_CONFIG_IN msgrequest */ 21276 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LENMIN 12 21277 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LENMAX 252 21278 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LENMAX_MCDI2 1020 21279 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LEN(num) (8+4*(num)) 21280 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_NUM(len) (((len)-8)/4) 21281 /* the type of configuration setting to change */ 21282 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_TYPE_OFST 0 21283 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_TYPE_LEN 4 21284 /* enum: Per-TXQ enable for multicast UDP destination lookup for possible 21285 * internal loopback. (ENTITY is a queue handle, VALUE is a single boolean.) 21286 */ 21287 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_TXQ_MCAST_UDP_DST_LOOKUP_EN 0x0 21288 /* enum: Per-v-adaptor enable for suppression of self-transmissions on the 21289 * internal loopback path. (ENTITY is an EVB_PORT_ID, VALUE is a single 21290 * boolean.) 21291 */ 21292 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VADAPTOR_SUPPRESS_SELF_TX 0x1 21293 /* handle for the entity to update: queue handle, EVB port ID, etc. depending 21294 * on the type of configuration setting being changed 21295 */ 21296 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_ENTITY_OFST 4 21297 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_ENTITY_LEN 4 21298 /* new value: the details depend on the type of configuration setting being 21299 * changed 21300 */ 21301 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_OFST 8 21302 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_LEN 4 21303 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_MINNUM 1 21304 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_MAXNUM 61 21305 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_MAXNUM_MCDI2 253 21306 21307 /* MC_CMD_SET_PARSER_DISP_CONFIG_OUT msgresponse */ 21308 #define MC_CMD_SET_PARSER_DISP_CONFIG_OUT_LEN 0 21309 21310 21311 /***********************************/ 21312 /* MC_CMD_GET_WORKAROUNDS 21313 * Read the list of all implemented and all currently enabled workarounds. The 21314 * enums here must correspond with those in MC_CMD_WORKAROUND. 21315 */ 21316 #define MC_CMD_GET_WORKAROUNDS 0x59 21317 #undef MC_CMD_0x59_PRIVILEGE_CTG 21318 21319 #define MC_CMD_0x59_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21320 21321 /* MC_CMD_GET_WORKAROUNDS_OUT msgresponse */ 21322 #define MC_CMD_GET_WORKAROUNDS_OUT_LEN 8 21323 /* Each workaround is represented by a single bit according to the enums below. 21324 */ 21325 #define MC_CMD_GET_WORKAROUNDS_OUT_IMPLEMENTED_OFST 0 21326 #define MC_CMD_GET_WORKAROUNDS_OUT_IMPLEMENTED_LEN 4 21327 #define MC_CMD_GET_WORKAROUNDS_OUT_ENABLED_OFST 4 21328 #define MC_CMD_GET_WORKAROUNDS_OUT_ENABLED_LEN 4 21329 /* enum: Bug 17230 work around. */ 21330 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG17230 0x2 21331 /* enum: Bug 35388 work around (unsafe EVQ writes). */ 21332 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG35388 0x4 21333 /* enum: Bug35017 workaround (A64 tables must be identity map) */ 21334 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG35017 0x8 21335 /* enum: Bug 41750 present (MC_CMD_TRIGGER_INTERRUPT won't work) */ 21336 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG41750 0x10 21337 /* enum: Bug 42008 present (Interrupts can overtake associated events). Caution 21338 * - before adding code that queries this workaround, remember that there's 21339 * released Monza firmware that doesn't understand MC_CMD_WORKAROUND_BUG42008, 21340 * and will hence (incorrectly) report that the bug doesn't exist. 21341 */ 21342 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG42008 0x20 21343 /* enum: Bug 26807 features present in firmware (multicast filter chaining) */ 21344 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG26807 0x40 21345 /* enum: Bug 61265 work around (broken EVQ TMR writes). */ 21346 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG61265 0x80 21347 21348 21349 /***********************************/ 21350 /* MC_CMD_PRIVILEGE_MASK 21351 * Read/set privileges of an arbitrary PCIe function 21352 */ 21353 #define MC_CMD_PRIVILEGE_MASK 0x5a 21354 #undef MC_CMD_0x5a_PRIVILEGE_CTG 21355 21356 #define MC_CMD_0x5a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21357 21358 /* MC_CMD_PRIVILEGE_MASK_IN msgrequest */ 21359 #define MC_CMD_PRIVILEGE_MASK_IN_LEN 8 21360 /* The target function to have its mask read or set e.g. PF 0 = 0xFFFF0000, VF 21361 * 1,3 = 0x00030001 21362 */ 21363 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_OFST 0 21364 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_LEN 4 21365 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_PF_OFST 0 21366 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_PF_LBN 0 21367 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_PF_WIDTH 16 21368 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_VF_OFST 0 21369 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_VF_LBN 16 21370 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_VF_WIDTH 16 21371 #define MC_CMD_PRIVILEGE_MASK_IN_VF_NULL 0xffff /* enum */ 21372 /* New privilege mask to be set. The mask will only be changed if the MSB is 21373 * set to 1. 21374 */ 21375 #define MC_CMD_PRIVILEGE_MASK_IN_NEW_MASK_OFST 4 21376 #define MC_CMD_PRIVILEGE_MASK_IN_NEW_MASK_LEN 4 21377 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ADMIN 0x1 /* enum */ 21378 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_LINK 0x2 /* enum */ 21379 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ONLOAD 0x4 /* enum */ 21380 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_PTP 0x8 /* enum */ 21381 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_INSECURE_FILTERS 0x10 /* enum */ 21382 /* enum: Deprecated. Equivalent to MAC_SPOOFING_TX combined with CHANGE_MAC. */ 21383 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_MAC_SPOOFING 0x20 21384 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_UNICAST 0x40 /* enum */ 21385 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_MULTICAST 0x80 /* enum */ 21386 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_BROADCAST 0x100 /* enum */ 21387 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ALL_MULTICAST 0x200 /* enum */ 21388 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_PROMISCUOUS 0x400 /* enum */ 21389 /* enum: Allows to set the TX packets' source MAC address to any arbitrary MAC 21390 * adress. 21391 */ 21392 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_MAC_SPOOFING_TX 0x800 21393 /* enum: Privilege that allows a Function to change the MAC address configured 21394 * in its associated vAdapter/vPort. 21395 */ 21396 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_CHANGE_MAC 0x1000 21397 /* enum: Privilege that allows a Function to install filters that specify VLANs 21398 * that are not in the permit list for the associated vPort. This privilege is 21399 * primarily to support ESX where vPorts are created that restrict traffic to 21400 * only a set of permitted VLANs. See the vPort flag FLAG_VLAN_RESTRICT. 21401 */ 21402 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_UNRESTRICTED_VLAN 0x2000 21403 /* enum: Privilege for insecure commands. Commands that belong to this group 21404 * are not permitted on secure adapters regardless of the privilege mask. 21405 */ 21406 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_INSECURE 0x4000 21407 /* enum: Trusted Server Adapter (TSA) / ServerLock. Privilege for 21408 * administrator-level operations that are not allowed from the local host once 21409 * an adapter has Bound to a remote ServerLock Controller (see doxbox 21410 * SF-117064-DG for background). 21411 */ 21412 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ADMIN_TSA_UNBOUND 0x8000 21413 /* enum: Control the Match-Action Engine if present. See mcdi_mae.yml. */ 21414 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_MAE 0x10000 21415 /* enum: This Function/client may call MC_CMD_CLIENT_ALLOC to create new 21416 * dynamic client children of itself. 21417 */ 21418 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ALLOC_CLIENT 0x20000 21419 /* enum: A dynamic client with this privilege may perform all the same DMA 21420 * operations as the function client from which it is descended. 21421 */ 21422 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_FUNC_DMA 0x40000 21423 /* enum: A client with this privilege may perform DMA as any PCIe function on 21424 * the device and to on-device DDR. It allows clients to use TX-DESC2CMPT-DESC 21425 * descriptors, and to use TX-SEG-DESC and TX-MEM2MEM-DESC with an address 21426 * space override (i.e. with the ADDR_SPC_EN bit set). 21427 */ 21428 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ARBITRARY_DMA 0x80000 21429 /* enum: Set this bit to indicate that a new privilege mask is to be set, 21430 * otherwise the command will only read the existing mask. 21431 */ 21432 #define MC_CMD_PRIVILEGE_MASK_IN_DO_CHANGE 0x80000000 21433 21434 /* MC_CMD_PRIVILEGE_MASK_OUT msgresponse */ 21435 #define MC_CMD_PRIVILEGE_MASK_OUT_LEN 4 21436 /* For an admin function, always all the privileges are reported. */ 21437 #define MC_CMD_PRIVILEGE_MASK_OUT_OLD_MASK_OFST 0 21438 #define MC_CMD_PRIVILEGE_MASK_OUT_OLD_MASK_LEN 4 21439 21440 21441 /***********************************/ 21442 /* MC_CMD_LINK_STATE_MODE 21443 * Read/set link state mode of a VF 21444 */ 21445 #define MC_CMD_LINK_STATE_MODE 0x5c 21446 #undef MC_CMD_0x5c_PRIVILEGE_CTG 21447 21448 #define MC_CMD_0x5c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21449 21450 /* MC_CMD_LINK_STATE_MODE_IN msgrequest */ 21451 #define MC_CMD_LINK_STATE_MODE_IN_LEN 8 21452 /* The target function to have its link state mode read or set, must be a VF 21453 * e.g. VF 1,3 = 0x00030001 21454 */ 21455 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_OFST 0 21456 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_LEN 4 21457 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_PF_OFST 0 21458 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_PF_LBN 0 21459 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_PF_WIDTH 16 21460 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_VF_OFST 0 21461 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_VF_LBN 16 21462 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_VF_WIDTH 16 21463 /* New link state mode to be set */ 21464 #define MC_CMD_LINK_STATE_MODE_IN_NEW_MODE_OFST 4 21465 #define MC_CMD_LINK_STATE_MODE_IN_NEW_MODE_LEN 4 21466 #define MC_CMD_LINK_STATE_MODE_IN_LINK_STATE_AUTO 0x0 /* enum */ 21467 #define MC_CMD_LINK_STATE_MODE_IN_LINK_STATE_UP 0x1 /* enum */ 21468 #define MC_CMD_LINK_STATE_MODE_IN_LINK_STATE_DOWN 0x2 /* enum */ 21469 /* enum: Use this value to just read the existing setting without modifying it. 21470 */ 21471 #define MC_CMD_LINK_STATE_MODE_IN_DO_NOT_CHANGE 0xffffffff 21472 21473 /* MC_CMD_LINK_STATE_MODE_OUT msgresponse */ 21474 #define MC_CMD_LINK_STATE_MODE_OUT_LEN 4 21475 #define MC_CMD_LINK_STATE_MODE_OUT_OLD_MODE_OFST 0 21476 #define MC_CMD_LINK_STATE_MODE_OUT_OLD_MODE_LEN 4 21477 21478 /* TUNNEL_ENCAP_UDP_PORT_ENTRY structuredef */ 21479 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_LEN 4 21480 /* UDP port (the standard ports are named below but any port may be used) */ 21481 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_UDP_PORT_OFST 0 21482 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_UDP_PORT_LEN 2 21483 /* enum: the IANA allocated UDP port for VXLAN */ 21484 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_IANA_VXLAN_UDP_PORT 0x12b5 21485 /* enum: the IANA allocated UDP port for Geneve */ 21486 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_IANA_GENEVE_UDP_PORT 0x17c1 21487 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_UDP_PORT_LBN 0 21488 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_UDP_PORT_WIDTH 16 21489 /* tunnel encapsulation protocol (only those named below are supported) */ 21490 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_PROTOCOL_OFST 2 21491 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_PROTOCOL_LEN 2 21492 /* enum: This port will be used for VXLAN on both IPv4 and IPv6 */ 21493 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_VXLAN 0x0 21494 /* enum: This port will be used for Geneve on both IPv4 and IPv6 */ 21495 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_GENEVE 0x1 21496 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_PROTOCOL_LBN 16 21497 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_PROTOCOL_WIDTH 16 21498 21499 21500 /***********************************/ 21501 /* MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS 21502 * Configure UDP ports for tunnel encapsulation hardware acceleration. The 21503 * parser-dispatcher will attempt to parse traffic on these ports as tunnel 21504 * encapsulation PDUs and filter them using the tunnel encapsulation filter 21505 * chain rather than the standard filter chain. Note that this command can 21506 * cause all functions to see a reset. (Available on Medford only.) 21507 */ 21508 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS 0x117 21509 #undef MC_CMD_0x117_PRIVILEGE_CTG 21510 21511 #define MC_CMD_0x117_PRIVILEGE_CTG SRIOV_CTG_ADMIN 21512 21513 /* MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN msgrequest */ 21514 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LENMIN 4 21515 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LENMAX 68 21516 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LENMAX_MCDI2 68 21517 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LEN(num) (4+4*(num)) 21518 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_NUM(len) (((len)-4)/4) 21519 /* Flags */ 21520 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_FLAGS_OFST 0 21521 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_FLAGS_LEN 2 21522 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_UNLOADING_OFST 0 21523 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_UNLOADING_LBN 0 21524 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_UNLOADING_WIDTH 1 21525 /* The number of entries in the ENTRIES array */ 21526 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_NUM_ENTRIES_OFST 2 21527 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_NUM_ENTRIES_LEN 2 21528 /* Entries defining the UDP port to protocol mapping, each laid out as a 21529 * TUNNEL_ENCAP_UDP_PORT_ENTRY 21530 */ 21531 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_OFST 4 21532 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_LEN 4 21533 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_MINNUM 0 21534 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_MAXNUM 16 21535 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_MAXNUM_MCDI2 16 21536 21537 /* MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT msgresponse */ 21538 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_LEN 2 21539 /* Flags */ 21540 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_FLAGS_OFST 0 21541 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_FLAGS_LEN 2 21542 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_RESETTING_OFST 0 21543 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_RESETTING_LBN 0 21544 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_RESETTING_WIDTH 1 21545 21546 21547 /***********************************/ 21548 /* MC_CMD_SET_EVQ_TMR 21549 * Update the timer load, timer reload and timer mode values for a given EVQ. 21550 * The requested timer values (in TMR_LOAD_REQ_NS and TMR_RELOAD_REQ_NS) will 21551 * be rounded up to the granularity supported by the hardware, then truncated 21552 * to the range supported by the hardware. The resulting value after the 21553 * rounding and truncation will be returned to the caller (in TMR_LOAD_ACT_NS 21554 * and TMR_RELOAD_ACT_NS). 21555 */ 21556 #define MC_CMD_SET_EVQ_TMR 0x120 21557 #undef MC_CMD_0x120_PRIVILEGE_CTG 21558 21559 #define MC_CMD_0x120_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21560 21561 /* MC_CMD_SET_EVQ_TMR_IN msgrequest */ 21562 #define MC_CMD_SET_EVQ_TMR_IN_LEN 16 21563 /* Function-relative queue instance */ 21564 #define MC_CMD_SET_EVQ_TMR_IN_INSTANCE_OFST 0 21565 #define MC_CMD_SET_EVQ_TMR_IN_INSTANCE_LEN 4 21566 /* Requested value for timer load (in nanoseconds) */ 21567 #define MC_CMD_SET_EVQ_TMR_IN_TMR_LOAD_REQ_NS_OFST 4 21568 #define MC_CMD_SET_EVQ_TMR_IN_TMR_LOAD_REQ_NS_LEN 4 21569 /* Requested value for timer reload (in nanoseconds) */ 21570 #define MC_CMD_SET_EVQ_TMR_IN_TMR_RELOAD_REQ_NS_OFST 8 21571 #define MC_CMD_SET_EVQ_TMR_IN_TMR_RELOAD_REQ_NS_LEN 4 21572 /* Timer mode. Meanings as per EVQ_TMR_REG.TC_TIMER_VAL */ 21573 #define MC_CMD_SET_EVQ_TMR_IN_TMR_MODE_OFST 12 21574 #define MC_CMD_SET_EVQ_TMR_IN_TMR_MODE_LEN 4 21575 #define MC_CMD_SET_EVQ_TMR_IN_TIMER_MODE_DIS 0x0 /* enum */ 21576 #define MC_CMD_SET_EVQ_TMR_IN_TIMER_MODE_IMMED_START 0x1 /* enum */ 21577 #define MC_CMD_SET_EVQ_TMR_IN_TIMER_MODE_TRIG_START 0x2 /* enum */ 21578 #define MC_CMD_SET_EVQ_TMR_IN_TIMER_MODE_INT_HLDOFF 0x3 /* enum */ 21579 21580 /* MC_CMD_SET_EVQ_TMR_OUT msgresponse */ 21581 #define MC_CMD_SET_EVQ_TMR_OUT_LEN 8 21582 /* Actual value for timer load (in nanoseconds) */ 21583 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_LOAD_ACT_NS_OFST 0 21584 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_LOAD_ACT_NS_LEN 4 21585 /* Actual value for timer reload (in nanoseconds) */ 21586 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_RELOAD_ACT_NS_OFST 4 21587 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_RELOAD_ACT_NS_LEN 4 21588 21589 21590 /***********************************/ 21591 /* MC_CMD_GET_EVQ_TMR_PROPERTIES 21592 * Query properties about the event queue timers. 21593 */ 21594 #define MC_CMD_GET_EVQ_TMR_PROPERTIES 0x122 21595 #undef MC_CMD_0x122_PRIVILEGE_CTG 21596 21597 #define MC_CMD_0x122_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21598 21599 /* MC_CMD_GET_EVQ_TMR_PROPERTIES_IN msgrequest */ 21600 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_IN_LEN 0 21601 21602 /* MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT msgresponse */ 21603 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_LEN 36 21604 /* Reserved for future use. */ 21605 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_FLAGS_OFST 0 21606 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_FLAGS_LEN 4 21607 /* For timers updated via writes to EVQ_TMR_REG, this is the time interval (in 21608 * nanoseconds) for each increment of the timer load/reload count. The 21609 * requested duration of a timer is this value multiplied by the timer 21610 * load/reload count. 21611 */ 21612 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_NS_PER_COUNT_OFST 4 21613 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_NS_PER_COUNT_LEN 4 21614 /* For timers updated via writes to EVQ_TMR_REG, this is the maximum value 21615 * allowed for timer load/reload counts. 21616 */ 21617 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_MAX_COUNT_OFST 8 21618 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_MAX_COUNT_LEN 4 21619 /* For timers updated via writes to EVQ_TMR_REG, timer load/reload counts not a 21620 * multiple of this step size will be rounded in an implementation defined 21621 * manner. 21622 */ 21623 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_STEP_OFST 12 21624 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_STEP_LEN 4 21625 /* Maximum timer duration (in nanoseconds) for timers updated via MCDI. Only 21626 * meaningful if MC_CMD_SET_EVQ_TMR is implemented. 21627 */ 21628 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_MAX_NS_OFST 16 21629 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_MAX_NS_LEN 4 21630 /* Timer durations requested via MCDI that are not a multiple of this step size 21631 * will be rounded up. Only meaningful if MC_CMD_SET_EVQ_TMR is implemented. 21632 */ 21633 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_STEP_NS_OFST 20 21634 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_STEP_NS_LEN 4 21635 /* For timers updated using the bug35388 workaround, this is the time interval 21636 * (in nanoseconds) for each increment of the timer load/reload count. The 21637 * requested duration of a timer is this value multiplied by the timer 21638 * load/reload count. This field is only meaningful if the bug35388 workaround 21639 * is enabled. 21640 */ 21641 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_NS_PER_COUNT_OFST 24 21642 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_NS_PER_COUNT_LEN 4 21643 /* For timers updated using the bug35388 workaround, this is the maximum value 21644 * allowed for timer load/reload counts. This field is only meaningful if the 21645 * bug35388 workaround is enabled. 21646 */ 21647 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_MAX_COUNT_OFST 28 21648 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_MAX_COUNT_LEN 4 21649 /* For timers updated using the bug35388 workaround, timer load/reload counts 21650 * not a multiple of this step size will be rounded in an implementation 21651 * defined manner. This field is only meaningful if the bug35388 workaround is 21652 * enabled. 21653 */ 21654 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_STEP_OFST 32 21655 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_STEP_LEN 4 21656 21657 /* CLIENT_HANDLE structuredef: A client is an abstract entity that can make 21658 * requests of the device and that can own resources managed by the device. 21659 * Examples of clients include PCIe functions and dynamic clients. A client 21660 * handle is a 32b opaque value used to refer to a client. Further details can 21661 * be found within XN-200418-TC. 21662 */ 21663 #define CLIENT_HANDLE_LEN 4 21664 #define CLIENT_HANDLE_OPAQUE_OFST 0 21665 #define CLIENT_HANDLE_OPAQUE_LEN 4 21666 /* enum: A client handle guaranteed never to refer to a real client. */ 21667 #define CLIENT_HANDLE_NULL 0xffffffff 21668 /* enum: Used to refer to the calling client. */ 21669 #define CLIENT_HANDLE_SELF 0xfffffffe 21670 #define CLIENT_HANDLE_OPAQUE_LBN 0 21671 #define CLIENT_HANDLE_OPAQUE_WIDTH 32 21672 21673 /* SCHED_CREDIT_CHECK_RESULT structuredef */ 21674 #define SCHED_CREDIT_CHECK_RESULT_LEN 16 21675 /* The instance of the scheduler. Refer to XN-200389-AW (snic/hnic) and 21676 * XN-200425-TC (cdx) for the location of these schedulers in the hardware. 21677 */ 21678 #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_OFST 0 21679 #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_LEN 1 21680 #define SCHED_CREDIT_CHECK_RESULT_HUB_HOST_A 0x0 /* enum */ 21681 #define SCHED_CREDIT_CHECK_RESULT_HUB_NET_A 0x1 /* enum */ 21682 #define SCHED_CREDIT_CHECK_RESULT_HUB_B 0x2 /* enum */ 21683 #define SCHED_CREDIT_CHECK_RESULT_HUB_HOST_C 0x3 /* enum */ 21684 #define SCHED_CREDIT_CHECK_RESULT_HUB_NET_TX 0x4 /* enum */ 21685 #define SCHED_CREDIT_CHECK_RESULT_HUB_HOST_D 0x5 /* enum */ 21686 #define SCHED_CREDIT_CHECK_RESULT_HUB_REPLAY 0x6 /* enum */ 21687 #define SCHED_CREDIT_CHECK_RESULT_DMAC_H2C 0x7 /* enum */ 21688 #define SCHED_CREDIT_CHECK_RESULT_HUB_NET_B 0x8 /* enum */ 21689 #define SCHED_CREDIT_CHECK_RESULT_HUB_NET_REPLAY 0x9 /* enum */ 21690 #define SCHED_CREDIT_CHECK_RESULT_ADAPTER_C2H_C 0xa /* enum */ 21691 #define SCHED_CREDIT_CHECK_RESULT_A2_H2C_C 0xb /* enum */ 21692 #define SCHED_CREDIT_CHECK_RESULT_A3_SOFT_ADAPTOR_C 0xc /* enum */ 21693 #define SCHED_CREDIT_CHECK_RESULT_A4_DPU_WRITE_C 0xd /* enum */ 21694 #define SCHED_CREDIT_CHECK_RESULT_JRC_RRU 0xe /* enum */ 21695 #define SCHED_CREDIT_CHECK_RESULT_CDM_SINK 0xf /* enum */ 21696 #define SCHED_CREDIT_CHECK_RESULT_PCIE_SINK 0x10 /* enum */ 21697 #define SCHED_CREDIT_CHECK_RESULT_UPORT_SINK 0x11 /* enum */ 21698 #define SCHED_CREDIT_CHECK_RESULT_PSX_SINK 0x12 /* enum */ 21699 #define SCHED_CREDIT_CHECK_RESULT_A5_DPU_READ_C 0x13 /* enum */ 21700 #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_LBN 0 21701 #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_WIDTH 8 21702 /* The type of node that this result refers to. */ 21703 #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_OFST 1 21704 #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_LEN 1 21705 /* enum: Destination node */ 21706 #define SCHED_CREDIT_CHECK_RESULT_DEST 0x0 21707 /* enum: Source node */ 21708 #define SCHED_CREDIT_CHECK_RESULT_SOURCE 0x1 21709 /* enum: Destination node credit type 1 (new to the Keystone schedulers, see 21710 * SF-120268-TC) 21711 */ 21712 #define SCHED_CREDIT_CHECK_RESULT_DEST_CREDIT1 0x2 21713 #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_LBN 8 21714 #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_WIDTH 8 21715 /* Level of node in scheduler hierarchy (level 0 is the bottom of the 21716 * hierarchy, increasing towards the root node). 21717 */ 21718 #define SCHED_CREDIT_CHECK_RESULT_NODE_LEVEL_OFST 2 21719 #define SCHED_CREDIT_CHECK_RESULT_NODE_LEVEL_LEN 2 21720 #define SCHED_CREDIT_CHECK_RESULT_NODE_LEVEL_LBN 16 21721 #define SCHED_CREDIT_CHECK_RESULT_NODE_LEVEL_WIDTH 16 21722 /* Node index */ 21723 #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_OFST 4 21724 #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_LEN 4 21725 #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_LBN 32 21726 #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_WIDTH 32 21727 /* The number of credits the node is expected to have. */ 21728 #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_OFST 8 21729 #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_LEN 4 21730 #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_LBN 64 21731 #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_WIDTH 32 21732 /* The number of credits the node actually had. */ 21733 #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_OFST 12 21734 #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_LEN 4 21735 #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_LBN 96 21736 #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_WIDTH 32 21737 21738 21739 /***********************************/ 21740 /* MC_CMD_GET_DESC_ADDR_INFO 21741 * Returns a description of the mapping from DESC_ADDR to TRGT_ADDR for the calling function's address space. 21742 */ 21743 #define MC_CMD_GET_DESC_ADDR_INFO 0x1b7 21744 #undef MC_CMD_0x1b7_PRIVILEGE_CTG 21745 21746 #define MC_CMD_0x1b7_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21747 21748 /* MC_CMD_GET_DESC_ADDR_INFO_IN msgrequest */ 21749 #define MC_CMD_GET_DESC_ADDR_INFO_IN_LEN 0 21750 21751 /* MC_CMD_GET_DESC_ADDR_INFO_OUT msgresponse */ 21752 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_LEN 4 21753 /* The type of mapping; see SF-nnnnnn-xx (EF100 driver writer's guide, once 21754 * written) for details of each type. 21755 */ 21756 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_TYPE_OFST 0 21757 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_TYPE_LEN 4 21758 /* enum: TRGT_ADDR = DESC_ADDR */ 21759 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_FLAT 0x0 21760 /* enum: DESC_ADDR has one or more regions that map into TRGT_ADDR. The base 21761 * TRGT_ADDR for each region is programmable via MCDI. 21762 */ 21763 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_REGIONED 0x1 21764 21765 21766 /***********************************/ 21767 /* MC_CMD_GET_DESC_ADDR_REGIONS 21768 * Returns a list of the DESC_ADDR regions for the calling function's address space. Only valid if that function's address space has the REGIONED mapping from DESC_ADDR to TRGT_ADDR. 21769 */ 21770 #define MC_CMD_GET_DESC_ADDR_REGIONS 0x1b8 21771 #undef MC_CMD_0x1b8_PRIVILEGE_CTG 21772 21773 #define MC_CMD_0x1b8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21774 21775 /* MC_CMD_GET_DESC_ADDR_REGIONS_IN msgrequest */ 21776 #define MC_CMD_GET_DESC_ADDR_REGIONS_IN_LEN 0 21777 21778 /* MC_CMD_GET_DESC_ADDR_REGIONS_OUT msgresponse */ 21779 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_LENMIN 32 21780 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_LENMAX 224 21781 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_LENMAX_MCDI2 992 21782 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_LEN(num) (0+32*(num)) 21783 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_NUM(len) (((len)-0)/32) 21784 /* An array of DESC_ADDR_REGION strutures. The number of entries in the array 21785 * indicates the number of available regions. 21786 */ 21787 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_OFST 0 21788 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_LEN 32 21789 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_MINNUM 1 21790 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_MAXNUM 7 21791 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_MAXNUM_MCDI2 31 21792 21793 21794 /***********************************/ 21795 /* MC_CMD_SET_DESC_ADDR_REGIONS 21796 * Set the base TRGT_ADDR for a set of DESC_ADDR regions for the calling function's address space. Only valid if that function's address space had the REGIONED mapping from DESC_ADDR to TRGT_ADDR. 21797 */ 21798 #define MC_CMD_SET_DESC_ADDR_REGIONS 0x1b9 21799 #undef MC_CMD_0x1b9_PRIVILEGE_CTG 21800 21801 #define MC_CMD_0x1b9_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21802 21803 /* MC_CMD_SET_DESC_ADDR_REGIONS_IN msgrequest */ 21804 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_LENMIN 16 21805 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_LENMAX 248 21806 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_LENMAX_MCDI2 1016 21807 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_LEN(num) (8+8*(num)) 21808 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_NUM(len) (((len)-8)/8) 21809 /* A bitmask indicating which regions should have their base TRGT_ADDR updated. 21810 * To update the base TRGR_ADDR for a DESC_ADDR region, the corresponding bit 21811 * should be set to 1. 21812 */ 21813 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_SET_REGION_MASK_OFST 0 21814 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_SET_REGION_MASK_LEN 4 21815 /* Reserved field; must be set to zero. */ 21816 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_RSVD_OFST 4 21817 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_RSVD_LEN 4 21818 /* An array of values used to updated the base TRGT_ADDR for DESC_ADDR regions. 21819 * Array indices corresponding to region numbers (i.e. the array is sparse, and 21820 * included entries for regions even if the corresponding SET_REGION_MASK bit 21821 * is zero). 21822 */ 21823 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_OFST 8 21824 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LEN 8 21825 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_OFST 8 21826 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_LEN 4 21827 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_LBN 64 21828 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_WIDTH 32 21829 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_OFST 12 21830 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_LEN 4 21831 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_LBN 96 21832 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_WIDTH 32 21833 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_MINNUM 1 21834 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_MAXNUM 30 21835 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_MAXNUM_MCDI2 126 21836 21837 /* MC_CMD_SET_DESC_ADDR_REGIONS_OUT msgresponse */ 21838 #define MC_CMD_SET_DESC_ADDR_REGIONS_OUT_LEN 0 21839 21840 21841 /***********************************/ 21842 /* MC_CMD_CLIENT_CMD 21843 * Execute an arbitrary MCDI command on behalf of a different client. The 21844 * consequences of the command (e.g. ownership of any resources created) apply 21845 * to the indicated client rather than the function client which actually sent 21846 * this command. All inherent permission checks are also performed on the 21847 * indicated client. The given client must be a descendant of the requestor. 21848 * The command to be proxied follows immediately afterward in the host buffer 21849 * (or on the UART). Chaining multiple MC_CMD_CLIENT_CMD is unnecessary and not 21850 * supported. New dynamic clients may be created with MC_CMD_CLIENT_ALLOC. 21851 */ 21852 #define MC_CMD_CLIENT_CMD 0x1ba 21853 #undef MC_CMD_0x1ba_PRIVILEGE_CTG 21854 21855 #define MC_CMD_0x1ba_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21856 21857 /* MC_CMD_CLIENT_CMD_IN msgrequest */ 21858 #define MC_CMD_CLIENT_CMD_IN_LEN 4 21859 /* The client as which to execute the following command. */ 21860 #define MC_CMD_CLIENT_CMD_IN_CLIENT_ID_OFST 0 21861 #define MC_CMD_CLIENT_CMD_IN_CLIENT_ID_LEN 4 21862 21863 /* MC_CMD_CLIENT_CMD_OUT msgresponse */ 21864 #define MC_CMD_CLIENT_CMD_OUT_LEN 0 21865 21866 21867 /***********************************/ 21868 /* MC_CMD_CLIENT_ALLOC 21869 * Create a new client object. Clients are a system for delineating NIC 21870 * resource ownership, such that groups of resources may be torn down as a 21871 * unit. See also MC_CMD_CLIENT_CMD. See XN-200265-TC for background, concepts 21872 * and a glossary. Clients created by this command are known as "dynamic 21873 * clients". The newly-created client is a child of the client which sent this 21874 * command. The caller must have the GRP_ALLOC_CLIENT privilege. The new client 21875 * initially has no permission to do anything; see 21876 * MC_CMD_DEVEL_CLIENT_PRIVILEGE_MODIFY. 21877 */ 21878 #define MC_CMD_CLIENT_ALLOC 0x1bb 21879 #undef MC_CMD_0x1bb_PRIVILEGE_CTG 21880 21881 #define MC_CMD_0x1bb_PRIVILEGE_CTG SRIOV_CTG_ALLOC_CLIENT 21882 21883 /* MC_CMD_CLIENT_ALLOC_IN msgrequest */ 21884 #define MC_CMD_CLIENT_ALLOC_IN_LEN 0 21885 21886 /* MC_CMD_CLIENT_ALLOC_OUT msgresponse */ 21887 #define MC_CMD_CLIENT_ALLOC_OUT_LEN 4 21888 /* The ID of the new client object which has been created. */ 21889 #define MC_CMD_CLIENT_ALLOC_OUT_CLIENT_ID_OFST 0 21890 #define MC_CMD_CLIENT_ALLOC_OUT_CLIENT_ID_LEN 4 21891 21892 21893 /***********************************/ 21894 /* MC_CMD_CLIENT_FREE 21895 * Destroy and release an existing client object. All resources owned by that 21896 * client (including its child clients, and thus all resources owned by the 21897 * entire family tree) are freed. 21898 */ 21899 #define MC_CMD_CLIENT_FREE 0x1bc 21900 #undef MC_CMD_0x1bc_PRIVILEGE_CTG 21901 21902 #define MC_CMD_0x1bc_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21903 21904 /* MC_CMD_CLIENT_FREE_IN msgrequest */ 21905 #define MC_CMD_CLIENT_FREE_IN_LEN 4 21906 /* The ID of the client to be freed. This client must be a descendant of the 21907 * requestor. A client cannot free itself. 21908 */ 21909 #define MC_CMD_CLIENT_FREE_IN_CLIENT_ID_OFST 0 21910 #define MC_CMD_CLIENT_FREE_IN_CLIENT_ID_LEN 4 21911 21912 /* MC_CMD_CLIENT_FREE_OUT msgresponse */ 21913 #define MC_CMD_CLIENT_FREE_OUT_LEN 0 21914 21915 21916 /***********************************/ 21917 /* MC_CMD_SET_VI_USER 21918 * Assign partial rights over this VI to another client. VIs have an 'owner' 21919 * and a 'user'. The owner is the client which allocated the VI 21920 * (MC_CMD_ALLOC_VIS) and cannot be changed. The user is the client which has 21921 * permission to create queues and other resources on that VI. Initially 21922 * user==owner, but the user can be changed by this command; the resources thus 21923 * created are then owned by the user-client. Only the VI owner can call this 21924 * command, and the request will fail if there are any outstanding child 21925 * resources (e.g. queues) currently allocated from this VI. 21926 */ 21927 #define MC_CMD_SET_VI_USER 0x1be 21928 #undef MC_CMD_0x1be_PRIVILEGE_CTG 21929 21930 #define MC_CMD_0x1be_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21931 21932 /* MC_CMD_SET_VI_USER_IN msgrequest */ 21933 #define MC_CMD_SET_VI_USER_IN_LEN 8 21934 /* Function-relative VI number to modify. */ 21935 #define MC_CMD_SET_VI_USER_IN_INSTANCE_OFST 0 21936 #define MC_CMD_SET_VI_USER_IN_INSTANCE_LEN 4 21937 /* Client ID to become the new user. This must be a descendant of the owning 21938 * client, the owning client itself, or the special value MC_CMD_CLIENT_ID_SELF 21939 * which is synonymous with the owning client. 21940 */ 21941 #define MC_CMD_SET_VI_USER_IN_CLIENT_ID_OFST 4 21942 #define MC_CMD_SET_VI_USER_IN_CLIENT_ID_LEN 4 21943 21944 /* MC_CMD_SET_VI_USER_OUT msgresponse */ 21945 #define MC_CMD_SET_VI_USER_OUT_LEN 0 21946 21947 21948 /***********************************/ 21949 /* MC_CMD_GET_CLIENT_MAC_ADDRESSES 21950 * A device reports a set of MAC addresses for each client to use, known as the 21951 * "permanent MAC addresses". Those MAC addresses are provided by the client's 21952 * administrator, e.g. via MC_CMD_SET_CLIENT_MAC_ADDRESSES, and are intended as 21953 * a hint to that client which MAC address its administrator would like to use 21954 * to identity itself. This API exists solely to allow communication of MAC 21955 * address from administrator to adminstree, and has no inherent interaction 21956 * with switching within the device. There is no guarantee that a client will 21957 * be able to send traffic with a source MAC address taken from the list of MAC 21958 * address reported, nor is there a guarantee that a client will be able to 21959 * resource traffic with a destination MAC taken from the list of MAC 21960 * addresses. Likewise, there is no guarantee that a client will not be able to 21961 * use a MAC address not present in the list. Restrictions on switching are 21962 * controlled either through the EVB API if operating in EVB mode, or via MAE 21963 * rules if host software is directly managing the MAE. In order to allow 21964 * tenants to use this API whilst a provider is using the EVB API, the MAC 21965 * addresses reported by MC_CMD_GET_CLIENT_MAC_ADDRESSES will be augmented with 21966 * any MAC addresses associated with the vPort assigned to the caller. In order 21967 * to allow tenants to use the EVB API whilst a provider is using this API, if 21968 * a client queries the MAC addresses for a vPort using the host_evb_port_id 21969 * EVB_PORT_ASSIGNED, that list of MAC addresses will be augmented with the MAC 21970 * addresses assigned to the calling client. This query can either be explicit 21971 * (i.e. MC_CMD_VPORT_GET_MAC_ADDRESSES) or implicit (e.g. creation of a 21972 * vAdaptor with a NULL/automatic MAC address). Changing the MAC address on a 21973 * vAdaptor only affects VNIC steering filters; it has no effect on the MAC 21974 * addresses assigned to the vAdaptor's owner. VirtIO clients behave as EVB 21975 * clients. On VirtIO device reset, a vAdaptor is created with an automatic MAC 21976 * address. Querying the VirtIO device's MAC address queries the underlying 21977 * vAdaptor's MAC address. Setting the VirtIO device's MAC address sets the 21978 * underlying vAdaptor's MAC addresses. 21979 */ 21980 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES 0x1c4 21981 #undef MC_CMD_0x1c4_PRIVILEGE_CTG 21982 21983 #define MC_CMD_0x1c4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21984 21985 /* MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN msgrequest */ 21986 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN_LEN 4 21987 /* A handle for the client for whom MAC address should be obtained. Use 21988 * CLIENT_HANDLE_SELF to obtain the MAC addresses assigned to the calling 21989 * client. 21990 */ 21991 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_OFST 0 21992 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_LEN 4 21993 21994 /* MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT msgresponse */ 21995 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_LENMIN 0 21996 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_LENMAX 252 21997 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_LENMAX_MCDI2 1020 21998 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_LEN(num) (0+6*(num)) 21999 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_NUM(len) (((len)-0)/6) 22000 /* An array of MAC addresses assigned to the client. */ 22001 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_OFST 0 22002 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_LEN 6 22003 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_MINNUM 0 22004 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_MAXNUM 42 22005 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_MAXNUM_MCDI2 170 22006 22007 22008 /***********************************/ 22009 /* MC_CMD_SET_CLIENT_MAC_ADDRESSES 22010 * Set the permanent MAC addresses for a client. The caller must by an 22011 * administrator of the target client. See MC_CMD_GET_CLIENT_MAC_ADDRESSES for 22012 * additional detail. 22013 */ 22014 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES 0x1c5 22015 #undef MC_CMD_0x1c5_PRIVILEGE_CTG 22016 22017 #define MC_CMD_0x1c5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22018 22019 /* MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN msgrequest */ 22020 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LENMIN 4 22021 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LENMAX 250 22022 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LENMAX_MCDI2 1018 22023 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LEN(num) (4+6*(num)) 22024 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_NUM(len) (((len)-4)/6) 22025 /* A handle for the client for whom MAC addresses should be set */ 22026 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_OFST 0 22027 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_LEN 4 22028 /* An array of MAC addresses to assign to the client. */ 22029 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_OFST 4 22030 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_LEN 6 22031 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_MINNUM 0 22032 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_MAXNUM 41 22033 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_MAXNUM_MCDI2 169 22034 22035 /* MC_CMD_SET_CLIENT_MAC_ADDRESSES_OUT msgresponse */ 22036 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_OUT_LEN 0 22037 22038 22039 /***********************************/ 22040 /* MC_CMD_CHECK_SCHEDULER_CREDITS 22041 * For debugging purposes. For each source and destination node in the hardware 22042 * schedulers, check whether the number of credits is as it should be. This 22043 * should only be used when the NIC is idle, because collection is not atomic 22044 * and because the expected credit counts are only meaningful when no traffic 22045 * is flowing. 22046 */ 22047 #define MC_CMD_CHECK_SCHEDULER_CREDITS 0x1c8 22048 #undef MC_CMD_0x1c8_PRIVILEGE_CTG 22049 22050 #define MC_CMD_0x1c8_PRIVILEGE_CTG SRIOV_CTG_ADMIN 22051 22052 /* MC_CMD_CHECK_SCHEDULER_CREDITS_IN msgrequest */ 22053 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_LEN 8 22054 /* Flags for the request */ 22055 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_FLAGS_OFST 0 22056 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_FLAGS_LEN 4 22057 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_REPORT_ALL_OFST 0 22058 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_REPORT_ALL_LBN 0 22059 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_REPORT_ALL_WIDTH 1 22060 /* If there are too many results to fit into an MCDI response, they're split 22061 * into pages. This field specifies which (0-indexed) page to request. A 22062 * request with PAGE=0 will snapshot the results, and subsequent requests with 22063 * PAGE>0 will return data from the most recent snapshot. The GENERATION field 22064 * in the response allows callers to verify that all responses correspond to 22065 * the same snapshot. 22066 */ 22067 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_PAGE_OFST 4 22068 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_PAGE_LEN 4 22069 22070 /* MC_CMD_CHECK_SCHEDULER_CREDITS_OUT msgresponse */ 22071 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_LENMIN 16 22072 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_LENMAX 240 22073 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_LENMAX_MCDI2 1008 22074 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_LEN(num) (16+16*(num)) 22075 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_NUM(len) (((len)-16)/16) 22076 /* The total number of results (across all pages). */ 22077 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_TOTAL_RESULTS_OFST 0 22078 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_TOTAL_RESULTS_LEN 4 22079 /* The number of pages that the response is split across. */ 22080 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_NUM_PAGES_OFST 4 22081 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_NUM_PAGES_LEN 4 22082 /* The number of results in this response. */ 22083 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_THIS_PAGE_OFST 8 22084 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_THIS_PAGE_LEN 4 22085 /* Result generation count. Incremented any time a request is made with PAGE=0. 22086 */ 22087 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_GENERATION_OFST 12 22088 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_GENERATION_LEN 4 22089 /* The results, as an array of SCHED_CREDIT_CHECK_RESULT structures. */ 22090 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_OFST 16 22091 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_LEN 16 22092 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_MINNUM 0 22093 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_MAXNUM 14 22094 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_MAXNUM_MCDI2 62 22095 22096 22097 /***********************************/ 22098 /* MC_CMD_VIRTIO_GET_FEATURES 22099 * Get a list of the virtio features supported by the device. 22100 */ 22101 #define MC_CMD_VIRTIO_GET_FEATURES 0x168 22102 #undef MC_CMD_0x168_PRIVILEGE_CTG 22103 22104 #define MC_CMD_0x168_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22105 22106 /* MC_CMD_VIRTIO_GET_FEATURES_IN msgrequest */ 22107 #define MC_CMD_VIRTIO_GET_FEATURES_IN_LEN 4 22108 /* Type of device to get features for. Matches the device id as defined by the 22109 * virtio spec. 22110 */ 22111 #define MC_CMD_VIRTIO_GET_FEATURES_IN_DEVICE_ID_OFST 0 22112 #define MC_CMD_VIRTIO_GET_FEATURES_IN_DEVICE_ID_LEN 4 22113 /* enum: Reserved. Do not use. */ 22114 #define MC_CMD_VIRTIO_GET_FEATURES_IN_RESERVED 0x0 22115 /* enum: Net device. */ 22116 #define MC_CMD_VIRTIO_GET_FEATURES_IN_NET 0x1 22117 /* enum: Block device. */ 22118 #define MC_CMD_VIRTIO_GET_FEATURES_IN_BLOCK 0x2 22119 22120 /* MC_CMD_VIRTIO_GET_FEATURES_OUT msgresponse */ 22121 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_LEN 8 22122 /* Features supported by the device. The result is a bitfield in the format of 22123 * the feature bits of the specified device type as defined in the virtIO 1.1 22124 * specification ( https://docs.oasis- 22125 * open.org/virtio/virtio/v1.1/csprd01/virtio-v1.1-csprd01.pdf ) 22126 */ 22127 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_OFST 0 22128 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LEN 8 22129 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_OFST 0 22130 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_LEN 4 22131 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_LBN 0 22132 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_WIDTH 32 22133 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_OFST 4 22134 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_LEN 4 22135 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_LBN 32 22136 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_WIDTH 32 22137 22138 22139 /***********************************/ 22140 /* MC_CMD_VIRTIO_TEST_FEATURES 22141 * Query whether a given set of features is supported. Fails with ENOSUP if the 22142 * driver requests a feature the device doesn't support. Fails with EINVAL if 22143 * the driver fails to request a feature which the device requires. 22144 */ 22145 #define MC_CMD_VIRTIO_TEST_FEATURES 0x169 22146 #undef MC_CMD_0x169_PRIVILEGE_CTG 22147 22148 #define MC_CMD_0x169_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22149 22150 /* MC_CMD_VIRTIO_TEST_FEATURES_IN msgrequest */ 22151 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_LEN 16 22152 /* Type of device to test features for. Matches the device id as defined by the 22153 * virtio spec. 22154 */ 22155 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_DEVICE_ID_OFST 0 22156 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_DEVICE_ID_LEN 4 22157 /* Enum values, see field(s): */ 22158 /* MC_CMD_VIRTIO_GET_FEATURES/MC_CMD_VIRTIO_GET_FEATURES_IN/DEVICE_ID */ 22159 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_RESERVED_OFST 4 22160 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_RESERVED_LEN 4 22161 /* Features requested. Same format as the returned value from 22162 * MC_CMD_VIRTIO_GET_FEATURES. 22163 */ 22164 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_OFST 8 22165 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LEN 8 22166 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_OFST 8 22167 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_LEN 4 22168 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_LBN 64 22169 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_WIDTH 32 22170 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_OFST 12 22171 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_LEN 4 22172 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_LBN 96 22173 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_WIDTH 32 22174 22175 /* MC_CMD_VIRTIO_TEST_FEATURES_OUT msgresponse */ 22176 #define MC_CMD_VIRTIO_TEST_FEATURES_OUT_LEN 0 22177 22178 22179 /***********************************/ 22180 /* MC_CMD_VIRTIO_INIT_QUEUE 22181 * Create a virtio virtqueue. Fails with EALREADY if the queue already exists. 22182 * Fails with ENOSUP if a feature is requested that isn't supported. Fails with 22183 * EINVAL if a required feature isn't requested, or any other parameter is 22184 * invalid. 22185 */ 22186 #define MC_CMD_VIRTIO_INIT_QUEUE 0x16a 22187 #undef MC_CMD_0x16a_PRIVILEGE_CTG 22188 22189 #define MC_CMD_0x16a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22190 22191 /* MC_CMD_VIRTIO_INIT_QUEUE_REQ msgrequest */ 22192 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_LEN 68 22193 /* Type of virtqueue to create. A network rxq and a txq can exist at the same 22194 * time on a single VI. 22195 */ 22196 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_QUEUE_TYPE_OFST 0 22197 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_QUEUE_TYPE_LEN 1 22198 /* enum: A network device receive queue */ 22199 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_NET_RXQ 0x0 22200 /* enum: A network device transmit queue */ 22201 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_NET_TXQ 0x1 22202 /* enum: A block device request queue */ 22203 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_BLOCK 0x2 22204 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED_OFST 1 22205 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED_LEN 1 22206 /* If the calling function is a PF and this field is not VF_NULL, create the 22207 * queue on the specified child VF instead of on the PF. 22208 */ 22209 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_TARGET_VF_OFST 2 22210 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_TARGET_VF_LEN 2 22211 /* enum: No VF, create queue on the PF. */ 22212 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_VF_NULL 0xffff 22213 /* Desired instance. This is the function-local index of the associated VI, not 22214 * the virtqueue number as counted by the virtqueue spec. 22215 */ 22216 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INSTANCE_OFST 4 22217 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INSTANCE_LEN 4 22218 /* Queue size, in entries. Must be a power of two. */ 22219 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_SIZE_OFST 8 22220 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_SIZE_LEN 4 22221 /* Flags */ 22222 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FLAGS_OFST 12 22223 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FLAGS_LEN 4 22224 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USE_PASID_OFST 12 22225 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USE_PASID_LBN 0 22226 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USE_PASID_WIDTH 1 22227 /* Address of the descriptor table in the virtqueue. */ 22228 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_OFST 16 22229 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LEN 8 22230 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_OFST 16 22231 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_LEN 4 22232 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_LBN 128 22233 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_WIDTH 32 22234 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_OFST 20 22235 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_LEN 4 22236 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_LBN 160 22237 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_WIDTH 32 22238 /* Address of the available ring in the virtqueue. */ 22239 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_OFST 24 22240 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LEN 8 22241 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_OFST 24 22242 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_LEN 4 22243 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_LBN 192 22244 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_WIDTH 32 22245 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_OFST 28 22246 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_LEN 4 22247 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_LBN 224 22248 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_WIDTH 32 22249 /* Address of the used ring in the virtqueue. */ 22250 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_OFST 32 22251 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LEN 8 22252 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_OFST 32 22253 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_LEN 4 22254 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_LBN 256 22255 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_WIDTH 32 22256 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_OFST 36 22257 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_LEN 4 22258 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_LBN 288 22259 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_WIDTH 32 22260 /* PASID to use on PCIe transactions involving this queue. Ignored if the 22261 * USE_PASID flag is not set. 22262 */ 22263 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_PASID_OFST 40 22264 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_PASID_LEN 4 22265 /* Which MSIX vector to use for this virtqueue, or NO_VECTOR if MSIX should not 22266 * be used. 22267 */ 22268 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MSIX_VECTOR_OFST 44 22269 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MSIX_VECTOR_LEN 2 22270 /* enum: Do not enable interrupts for this virtqueue */ 22271 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_NO_VECTOR 0xffff 22272 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED2_OFST 46 22273 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED2_LEN 2 22274 /* Virtio features to apply to this queue. Same format as the in the virtio 22275 * spec and in the return from MC_CMD_VIRTIO_GET_FEATURES. Must be a subset of 22276 * the features returned from MC_CMD_VIRTIO_GET_FEATURES. Features are per- 22277 * queue because with vDPA multiple queues on the same function can be passed 22278 * through to different virtual hosts as independent devices. 22279 */ 22280 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_OFST 48 22281 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LEN 8 22282 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_OFST 48 22283 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_LEN 4 22284 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_LBN 384 22285 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_WIDTH 32 22286 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_OFST 52 22287 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_LEN 4 22288 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_LBN 416 22289 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_WIDTH 32 22290 /* Enum values, see field(s): */ 22291 /* MC_CMD_VIRTIO_GET_FEATURES/MC_CMD_VIRTIO_GET_FEATURES_OUT/FEATURES */ 22292 /* The initial available index for this virtqueue. If this queue is being 22293 * created to be migrated into, this should be the FINAL_AVAIL_IDX value 22294 * returned by MC_CMD_VIRTIO_FINI_QUEUE of the queue being migrated from (or 22295 * equivalent if the original queue was on a thirdparty device). Otherwise, it 22296 * should be zero. 22297 */ 22298 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_AVAIL_IDX_OFST 56 22299 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_AVAIL_IDX_LEN 4 22300 /* Alias of INITIAL_AVAIL_IDX, kept for compatibility. */ 22301 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_PIDX_OFST 56 22302 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_PIDX_LEN 4 22303 /* The initial used index for this virtqueue. If this queue is being created to 22304 * be migrated into, this should be the FINAL_USED_IDX value returned by 22305 * MC_CMD_VIRTIO_FINI_QUEUE of the queue being migrated from (or equivalent if 22306 * the original queue was on a thirdparty device). Otherwise, it should be 22307 * zero. 22308 */ 22309 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_USED_IDX_OFST 60 22310 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_USED_IDX_LEN 4 22311 /* Alias of INITIAL_USED_IDX, kept for compatibility. */ 22312 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_CIDX_OFST 60 22313 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_CIDX_LEN 4 22314 /* A MAE_MPORT_SELECTOR defining which mport this queue should be associated 22315 * with. Use MAE_MPORT_SELECTOR_ASSIGNED to request the default mport for the 22316 * function this queue is being created on. 22317 */ 22318 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MPORT_SELECTOR_OFST 64 22319 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MPORT_SELECTOR_LEN 4 22320 22321 /* MC_CMD_VIRTIO_INIT_QUEUE_RESP msgresponse */ 22322 #define MC_CMD_VIRTIO_INIT_QUEUE_RESP_LEN 0 22323 22324 22325 /***********************************/ 22326 /* MC_CMD_VIRTIO_FINI_QUEUE 22327 * Destroy a virtio virtqueue 22328 */ 22329 #define MC_CMD_VIRTIO_FINI_QUEUE 0x16b 22330 #undef MC_CMD_0x16b_PRIVILEGE_CTG 22331 22332 #define MC_CMD_0x16b_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22333 22334 /* MC_CMD_VIRTIO_FINI_QUEUE_REQ msgrequest */ 22335 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_LEN 8 22336 /* Type of virtqueue to destroy. */ 22337 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_QUEUE_TYPE_OFST 0 22338 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_QUEUE_TYPE_LEN 1 22339 /* Enum values, see field(s): */ 22340 /* MC_CMD_VIRTIO_INIT_QUEUE/MC_CMD_VIRTIO_INIT_QUEUE_REQ/QUEUE_TYPE */ 22341 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_RESERVED_OFST 1 22342 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_RESERVED_LEN 1 22343 /* If the calling function is a PF and this field is not VF_NULL, destroy the 22344 * queue on the specified child VF instead of on the PF. 22345 */ 22346 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_TARGET_VF_OFST 2 22347 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_TARGET_VF_LEN 2 22348 /* enum: No VF, destroy the queue on the PF. */ 22349 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_VF_NULL 0xffff 22350 /* Instance to destroy */ 22351 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_INSTANCE_OFST 4 22352 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_INSTANCE_LEN 4 22353 22354 /* MC_CMD_VIRTIO_FINI_QUEUE_RESP msgresponse */ 22355 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_LEN 8 22356 /* The available index of the virtqueue when the queue was stopped. */ 22357 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_AVAIL_IDX_OFST 0 22358 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_AVAIL_IDX_LEN 4 22359 /* Alias of FINAL_AVAIL_IDX, kept for compatibility. */ 22360 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_PIDX_OFST 0 22361 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_PIDX_LEN 4 22362 /* The used index of the virtqueue when the queue was stopped. */ 22363 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_USED_IDX_OFST 4 22364 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_USED_IDX_LEN 4 22365 /* Alias of FINAL_USED_IDX, kept for compatibility. */ 22366 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_CIDX_OFST 4 22367 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_CIDX_LEN 4 22368 22369 22370 /***********************************/ 22371 /* MC_CMD_VIRTIO_GET_DOORBELL_OFFSET 22372 * Get the offset in the BAR of the doorbells for a VI. Doesn't require the 22373 * queue(s) to be allocated. 22374 */ 22375 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET 0x16c 22376 #undef MC_CMD_0x16c_PRIVILEGE_CTG 22377 22378 #define MC_CMD_0x16c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22379 22380 /* MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ msgrequest */ 22381 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_LEN 8 22382 /* Type of device to get information for. Matches the device id as defined by 22383 * the virtio spec. 22384 */ 22385 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_DEVICE_ID_OFST 0 22386 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_DEVICE_ID_LEN 1 22387 /* Enum values, see field(s): */ 22388 /* MC_CMD_VIRTIO_GET_FEATURES/MC_CMD_VIRTIO_GET_FEATURES_IN/DEVICE_ID */ 22389 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_RESERVED_OFST 1 22390 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_RESERVED_LEN 1 22391 /* If the calling function is a PF and this field is not VF_NULL, query the VI 22392 * on the specified child VF instead of on the PF. 22393 */ 22394 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_TARGET_VF_OFST 2 22395 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_TARGET_VF_LEN 2 22396 /* enum: No VF, query the PF. */ 22397 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_VF_NULL 0xffff 22398 /* VI instance to query */ 22399 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_INSTANCE_OFST 4 22400 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_INSTANCE_LEN 4 22401 22402 /* MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP msgresponse */ 22403 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_LEN 8 22404 /* Offset of RX doorbell in BAR */ 22405 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_RX_DBL_OFFSET_OFST 0 22406 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_RX_DBL_OFFSET_LEN 4 22407 /* Offset of TX doorbell in BAR */ 22408 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_TX_DBL_OFFSET_OFST 4 22409 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_TX_DBL_OFFSET_LEN 4 22410 22411 /* MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP msgresponse */ 22412 #define MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP_LEN 4 22413 /* Offset of request doorbell in BAR */ 22414 #define MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP_DBL_OFFSET_OFST 0 22415 #define MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP_DBL_OFFSET_LEN 4 22416 22417 /* PCIE_FUNCTION structuredef: Structure representing a PCIe function ID 22418 * (interface/PF/VF tuple) 22419 */ 22420 #define PCIE_FUNCTION_LEN 8 22421 /* PCIe PF function number */ 22422 #define PCIE_FUNCTION_PF_OFST 0 22423 #define PCIE_FUNCTION_PF_LEN 2 22424 /* enum: Wildcard value representing any available function (e.g in resource 22425 * allocation requests) 22426 */ 22427 #define PCIE_FUNCTION_PF_ANY 0xfffe 22428 /* enum: Value representing invalid (null) function */ 22429 #define PCIE_FUNCTION_PF_NULL 0xffff 22430 #define PCIE_FUNCTION_PF_LBN 0 22431 #define PCIE_FUNCTION_PF_WIDTH 16 22432 /* PCIe VF Function number (PF relative) */ 22433 #define PCIE_FUNCTION_VF_OFST 2 22434 #define PCIE_FUNCTION_VF_LEN 2 22435 /* enum: Wildcard value representing any available function (e.g in resource 22436 * allocation requests) 22437 */ 22438 #define PCIE_FUNCTION_VF_ANY 0xfffe 22439 /* enum: Function is a PF (when PF != PF_NULL) or invalid function (when PF == 22440 * PF_NULL) 22441 */ 22442 #define PCIE_FUNCTION_VF_NULL 0xffff 22443 #define PCIE_FUNCTION_VF_LBN 16 22444 #define PCIE_FUNCTION_VF_WIDTH 16 22445 /* PCIe interface of the function. Values should be taken from the 22446 * PCIE_INTERFACE enum 22447 */ 22448 #define PCIE_FUNCTION_INTF_OFST 4 22449 #define PCIE_FUNCTION_INTF_LEN 4 22450 /* enum: Host PCIe interface. (Alias for HOST_PRIMARY, provided for backwards 22451 * compatibility) 22452 */ 22453 #define PCIE_FUNCTION_INTF_HOST 0x0 22454 /* enum: Application Processor interface (alias for NIC_EMBEDDED, provided for 22455 * backwards compatibility) 22456 */ 22457 #define PCIE_FUNCTION_INTF_AP 0x1 22458 #define PCIE_FUNCTION_INTF_LBN 32 22459 #define PCIE_FUNCTION_INTF_WIDTH 32 22460 22461 22462 /***********************************/ 22463 /* MC_CMD_GET_CLIENT_HANDLE 22464 * Obtain a handle for a client given a description of that client. N.B. this 22465 * command is subject to change given the open discussion about how PCIe 22466 * functions should be referenced on an iEP (integrated endpoint: functions 22467 * span multiple buses) and multihost (multiple PCIe interfaces) system. 22468 */ 22469 #define MC_CMD_GET_CLIENT_HANDLE 0x1c3 22470 #undef MC_CMD_0x1c3_PRIVILEGE_CTG 22471 22472 #define MC_CMD_0x1c3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22473 22474 /* MC_CMD_GET_CLIENT_HANDLE_IN msgrequest */ 22475 #define MC_CMD_GET_CLIENT_HANDLE_IN_LEN 12 22476 /* Type of client to get a client handle for */ 22477 #define MC_CMD_GET_CLIENT_HANDLE_IN_TYPE_OFST 0 22478 #define MC_CMD_GET_CLIENT_HANDLE_IN_TYPE_LEN 4 22479 /* enum: Obtain a client handle for a PCIe function-type client. */ 22480 #define MC_CMD_GET_CLIENT_HANDLE_IN_TYPE_FUNC 0x0 22481 /* PCIe Function ID (as struct PCIE_FUNCTION). Valid when TYPE==FUNC. Use: - 22482 * INTF=CALLER, PF=PF_NULL, VF=VF_NULL to refer to the calling function - 22483 * INTF=CALLER, PF=PF_NULL, VF=... to refer to a VF child of the calling PF or 22484 * a sibling VF of the calling VF. - INTF=CALLER, PF=..., VF=VF_NULL to refer 22485 * to a PF on the calling interface - INTF=CALLER, PF=..., VF=... to refer to a 22486 * VF on the calling interface - INTF=..., PF=PF_NULL, VF=VF_NULL to refer to 22487 * the named interface itself - INTF=..., PF=..., VF=VF_NULL to refer to a PF 22488 * on a named interface - INTF=..., PF=..., VF=... to refer to a VF on a named 22489 * interface where ... refers to a small integer for the VF/PF fields, and to 22490 * values from the PCIE_INTERFACE enum for for the INTF field. It's only 22491 * meaningful to use INTF=CALLER within a structure that's an argument to 22492 * MC_CMD_DEVEL_GET_CLIENT_HANDLE. 22493 */ 22494 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_OFST 4 22495 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LEN 8 22496 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_OFST 4 22497 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_LEN 4 22498 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_LBN 32 22499 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_WIDTH 32 22500 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_OFST 8 22501 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_LEN 4 22502 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_LBN 64 22503 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_WIDTH 32 22504 /* enum: NULL value for the INTF field of struct PCIE_FUNCTION. Provided for 22505 * backwards compatibility only, callers should use PCIE_INTERFACE_CALLER. 22506 */ 22507 #define MC_CMD_GET_CLIENT_HANDLE_IN_PCIE_FUNCTION_INTF_NULL 0xffffffff 22508 /* See structuredef: PCIE_FUNCTION */ 22509 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_PF_OFST 4 22510 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_PF_LEN 2 22511 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_VF_OFST 6 22512 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_VF_LEN 2 22513 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_INTF_OFST 8 22514 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_INTF_LEN 4 22515 22516 /* MC_CMD_GET_CLIENT_HANDLE_OUT msgresponse */ 22517 #define MC_CMD_GET_CLIENT_HANDLE_OUT_LEN 4 22518 #define MC_CMD_GET_CLIENT_HANDLE_OUT_HANDLE_OFST 0 22519 #define MC_CMD_GET_CLIENT_HANDLE_OUT_HANDLE_LEN 4 22520 22521 /* MAE_FIELD_FLAGS structuredef */ 22522 #define MAE_FIELD_FLAGS_LEN 4 22523 #define MAE_FIELD_FLAGS_FLAT_OFST 0 22524 #define MAE_FIELD_FLAGS_FLAT_LEN 4 22525 #define MAE_FIELD_FLAGS_SUPPORT_STATUS_OFST 0 22526 #define MAE_FIELD_FLAGS_SUPPORT_STATUS_LBN 0 22527 #define MAE_FIELD_FLAGS_SUPPORT_STATUS_WIDTH 6 22528 #define MAE_FIELD_FLAGS_MASK_AFFECTS_CLASS_OFST 0 22529 #define MAE_FIELD_FLAGS_MASK_AFFECTS_CLASS_LBN 6 22530 #define MAE_FIELD_FLAGS_MASK_AFFECTS_CLASS_WIDTH 1 22531 #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_OFST 0 22532 #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_LBN 7 22533 #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_WIDTH 1 22534 #define MAE_FIELD_FLAGS_FLAT_LBN 0 22535 #define MAE_FIELD_FLAGS_FLAT_WIDTH 32 22536 22537 /* MAE_ENC_FIELD_PAIRS structuredef: Mask and value pairs for all fields that 22538 * it makes sense to use to determine the encapsulation type of a packet. Its 22539 * intended use is to keep a common packing of fields across multiple MCDI 22540 * commands, keeping things inherently sychronised and allowing code shared. To 22541 * use in an MCDI command, the command should end with a variable length byte 22542 * array populated with this structure. Do not extend this structure. Instead, 22543 * create _Vx versions with the necessary fields appended. That way, the 22544 * existing semantics for extending MCDI commands are preserved. 22545 */ 22546 #define MAE_ENC_FIELD_PAIRS_LEN 156 22547 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_OFST 0 22548 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_LEN 4 22549 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_LBN 0 22550 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_WIDTH 32 22551 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_OFST 4 22552 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LEN 4 22553 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LBN 32 22554 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_WIDTH 32 22555 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_OFST 8 22556 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_LEN 2 22557 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_LBN 64 22558 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_WIDTH 16 22559 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_OFST 10 22560 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_LEN 2 22561 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_LBN 80 22562 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_WIDTH 16 22563 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_OFST 12 22564 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_LEN 2 22565 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_LBN 96 22566 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_WIDTH 16 22567 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_OFST 14 22568 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_LEN 2 22569 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_LBN 112 22570 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_WIDTH 16 22571 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_OFST 16 22572 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_LEN 2 22573 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_LBN 128 22574 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_WIDTH 16 22575 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_OFST 18 22576 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LEN 2 22577 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LBN 144 22578 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_WIDTH 16 22579 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_OFST 20 22580 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_LEN 2 22581 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_LBN 160 22582 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_WIDTH 16 22583 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_OFST 22 22584 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_LEN 2 22585 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_LBN 176 22586 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_WIDTH 16 22587 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_OFST 24 22588 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_LEN 2 22589 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_LBN 192 22590 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_WIDTH 16 22591 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_OFST 26 22592 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LEN 2 22593 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LBN 208 22594 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_WIDTH 16 22595 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_OFST 28 22596 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_LEN 6 22597 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_LBN 224 22598 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_WIDTH 48 22599 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_OFST 34 22600 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_LEN 6 22601 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_LBN 272 22602 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_WIDTH 48 22603 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_OFST 40 22604 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_LEN 6 22605 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_LBN 320 22606 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_WIDTH 48 22607 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_OFST 46 22608 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_LEN 6 22609 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_LBN 368 22610 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_WIDTH 48 22611 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_OFST 52 22612 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_LEN 4 22613 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_LBN 416 22614 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_WIDTH 32 22615 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_OFST 56 22616 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_LEN 4 22617 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_LBN 448 22618 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_WIDTH 32 22619 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_OFST 60 22620 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_LEN 16 22621 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_LBN 480 22622 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_WIDTH 128 22623 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_OFST 76 22624 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_LEN 16 22625 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_LBN 608 22626 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_WIDTH 128 22627 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_OFST 92 22628 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_LEN 4 22629 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_LBN 736 22630 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_WIDTH 32 22631 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_OFST 96 22632 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_LEN 4 22633 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_LBN 768 22634 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_WIDTH 32 22635 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_OFST 100 22636 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_LEN 16 22637 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_LBN 800 22638 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_WIDTH 128 22639 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_OFST 116 22640 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_LEN 16 22641 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_LBN 928 22642 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_WIDTH 128 22643 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_OFST 132 22644 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_LEN 1 22645 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_LBN 1056 22646 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_WIDTH 8 22647 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_OFST 133 22648 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_LEN 1 22649 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_LBN 1064 22650 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_WIDTH 8 22651 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_OFST 134 22652 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_LEN 1 22653 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_LBN 1072 22654 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_WIDTH 8 22655 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_OFST 135 22656 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_LEN 1 22657 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_LBN 1080 22658 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_WIDTH 8 22659 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_OFST 136 22660 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_LEN 1 22661 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_LBN 1088 22662 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_WIDTH 8 22663 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_OFST 137 22664 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_LEN 1 22665 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_LBN 1096 22666 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_WIDTH 8 22667 /* Deprecated in favour of ENC_FLAGS alias. */ 22668 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_OFST 138 22669 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_LEN 1 22670 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_OFST 138 22671 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_LBN 0 22672 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_WIDTH 1 22673 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_OFST 138 22674 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_LBN 1 22675 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_WIDTH 1 22676 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_OFST 138 22677 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_LBN 2 22678 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_WIDTH 1 22679 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_LBN 1104 22680 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_WIDTH 8 22681 /* More generic alias for ENC_VLAN_FLAGS. */ 22682 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_OFST 138 22683 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_LEN 1 22684 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_LBN 1104 22685 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_WIDTH 8 22686 /* Deprecated in favour of ENC_FLAGS_MASK alias. */ 22687 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_OFST 139 22688 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_LEN 1 22689 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_MASK_OFST 139 22690 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_MASK_LBN 0 22691 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_MASK_WIDTH 1 22692 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_MASK_OFST 139 22693 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_MASK_LBN 1 22694 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_MASK_WIDTH 1 22695 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_MASK_OFST 139 22696 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_MASK_LBN 2 22697 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_MASK_WIDTH 1 22698 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_LBN 1112 22699 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_WIDTH 8 22700 /* More generic alias for ENC_FLAGS_MASK. */ 22701 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_OFST 139 22702 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_LEN 1 22703 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_LBN 1112 22704 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_WIDTH 8 22705 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_OFST 140 22706 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_LEN 4 22707 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_LBN 1120 22708 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_WIDTH 32 22709 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_OFST 144 22710 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_LEN 4 22711 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_LBN 1152 22712 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_WIDTH 32 22713 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_OFST 148 22714 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_LEN 2 22715 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_LBN 1184 22716 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_WIDTH 16 22717 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_OFST 150 22718 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_LEN 2 22719 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_LBN 1200 22720 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_WIDTH 16 22721 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_OFST 152 22722 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_LEN 2 22723 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_LBN 1216 22724 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_WIDTH 16 22725 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_OFST 154 22726 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_LEN 2 22727 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_LBN 1232 22728 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_WIDTH 16 22729 22730 /* MAE_FIELD_MASK_VALUE_PAIRS structuredef: Mask and value pairs for all fields 22731 * currently defined. Same semantics as MAE_ENC_FIELD_PAIRS. 22732 */ 22733 #define MAE_FIELD_MASK_VALUE_PAIRS_LEN 344 22734 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_OFST 0 22735 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_LEN 4 22736 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_LBN 0 22737 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_WIDTH 32 22738 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_OFST 4 22739 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LEN 4 22740 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LBN 32 22741 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_WIDTH 32 22742 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_OFST 8 22743 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_LEN 4 22744 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_LBN 64 22745 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_WIDTH 32 22746 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_OFST 12 22747 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_LEN 4 22748 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_LBN 96 22749 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_WIDTH 32 22750 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_OFST 16 22751 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_LEN 2 22752 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_LBN 128 22753 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_WIDTH 16 22754 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_OFST 18 22755 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_LEN 2 22756 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_LBN 144 22757 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_WIDTH 16 22758 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_OFST 20 22759 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_LEN 2 22760 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_LBN 160 22761 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_WIDTH 16 22762 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_OFST 22 22763 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_LEN 2 22764 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_LBN 176 22765 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_WIDTH 16 22766 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_OFST 24 22767 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_LEN 2 22768 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_LBN 192 22769 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_WIDTH 16 22770 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_OFST 26 22771 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_LEN 2 22772 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_LBN 208 22773 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_WIDTH 16 22774 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_OFST 28 22775 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_LEN 2 22776 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_LBN 224 22777 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_WIDTH 16 22778 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_OFST 30 22779 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_LEN 2 22780 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_LBN 240 22781 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_WIDTH 16 22782 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_OFST 32 22783 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_LEN 2 22784 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_LBN 256 22785 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_WIDTH 16 22786 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_OFST 34 22787 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_LEN 2 22788 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_LBN 272 22789 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_WIDTH 16 22790 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_OFST 36 22791 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_LEN 6 22792 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_LBN 288 22793 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_WIDTH 48 22794 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_OFST 42 22795 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_LEN 6 22796 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_LBN 336 22797 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_WIDTH 48 22798 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_OFST 48 22799 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_LEN 6 22800 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_LBN 384 22801 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_WIDTH 48 22802 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_OFST 54 22803 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_LEN 6 22804 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_LBN 432 22805 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_WIDTH 48 22806 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_OFST 60 22807 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_LEN 4 22808 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_LBN 480 22809 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_WIDTH 32 22810 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_OFST 64 22811 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_LEN 4 22812 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_LBN 512 22813 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_WIDTH 32 22814 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_OFST 68 22815 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_LEN 16 22816 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_LBN 544 22817 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_WIDTH 128 22818 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_OFST 84 22819 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_LEN 16 22820 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_LBN 672 22821 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_WIDTH 128 22822 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_OFST 100 22823 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_LEN 4 22824 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_LBN 800 22825 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_WIDTH 32 22826 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_OFST 104 22827 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_LEN 4 22828 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_LBN 832 22829 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_WIDTH 32 22830 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_OFST 108 22831 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_LEN 16 22832 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_LBN 864 22833 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_WIDTH 128 22834 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_OFST 124 22835 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_LEN 16 22836 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_LBN 992 22837 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_WIDTH 128 22838 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_OFST 140 22839 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_LEN 1 22840 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_LBN 1120 22841 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_WIDTH 8 22842 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_OFST 141 22843 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_LEN 1 22844 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_LBN 1128 22845 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_WIDTH 8 22846 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_OFST 142 22847 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_LEN 1 22848 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_LBN 1136 22849 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_WIDTH 8 22850 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_OFST 143 22851 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_LEN 1 22852 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_LBN 1144 22853 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_WIDTH 8 22854 /* Due to hardware limitations, firmware may return 22855 * MC_CMD_ERR_EINVAL(BAD_IP_TTL) when attempting to match on an IP_TTL value 22856 * other than 1. 22857 */ 22858 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_OFST 144 22859 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_LEN 1 22860 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_LBN 1152 22861 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_WIDTH 8 22862 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_OFST 145 22863 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_LEN 1 22864 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_LBN 1160 22865 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_WIDTH 8 22866 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_OFST 148 22867 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_LEN 4 22868 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_LBN 1184 22869 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_WIDTH 32 22870 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_OFST 152 22871 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_LEN 4 22872 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_LBN 1216 22873 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_WIDTH 32 22874 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_OFST 156 22875 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_LEN 2 22876 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_LBN 1248 22877 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_WIDTH 16 22878 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_OFST 158 22879 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_LEN 2 22880 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_LBN 1264 22881 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_WIDTH 16 22882 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_OFST 160 22883 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_LEN 2 22884 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_LBN 1280 22885 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_WIDTH 16 22886 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_OFST 162 22887 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_LEN 2 22888 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_LBN 1296 22889 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_WIDTH 16 22890 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_OFST 164 22891 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_LEN 2 22892 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_LBN 1312 22893 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_WIDTH 16 22894 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_OFST 166 22895 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_LEN 2 22896 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_LBN 1328 22897 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_WIDTH 16 22898 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_OFST 168 22899 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_LEN 4 22900 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_LBN 1344 22901 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_WIDTH 32 22902 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_OFST 172 22903 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_LEN 4 22904 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_LBN 1376 22905 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_WIDTH 32 22906 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_OFST 176 22907 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_LEN 4 22908 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_LBN 1408 22909 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_WIDTH 32 22910 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_OFST 180 22911 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_LEN 4 22912 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_LBN 1440 22913 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_WIDTH 32 22914 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_OFST 184 22915 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_LEN 2 22916 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_LBN 1472 22917 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_WIDTH 16 22918 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_OFST 188 22919 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_LEN 2 22920 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_LBN 1504 22921 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_WIDTH 16 22922 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_OFST 192 22923 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_LEN 2 22924 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_LBN 1536 22925 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_WIDTH 16 22926 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_OFST 194 22927 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_LEN 2 22928 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_LBN 1552 22929 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_WIDTH 16 22930 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_OFST 196 22931 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_LEN 2 22932 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_LBN 1568 22933 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_WIDTH 16 22934 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_OFST 198 22935 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LEN 2 22936 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LBN 1584 22937 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_WIDTH 16 22938 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_OFST 200 22939 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_LEN 2 22940 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_LBN 1600 22941 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_WIDTH 16 22942 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_OFST 202 22943 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_LEN 2 22944 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_LBN 1616 22945 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_WIDTH 16 22946 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_OFST 204 22947 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_LEN 2 22948 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_LBN 1632 22949 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_WIDTH 16 22950 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_OFST 206 22951 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LEN 2 22952 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LBN 1648 22953 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_WIDTH 16 22954 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_OFST 208 22955 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_LEN 6 22956 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_LBN 1664 22957 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_WIDTH 48 22958 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_OFST 214 22959 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_LEN 6 22960 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_LBN 1712 22961 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_WIDTH 48 22962 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_OFST 220 22963 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_LEN 6 22964 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_LBN 1760 22965 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_WIDTH 48 22966 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_OFST 226 22967 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_LEN 6 22968 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_LBN 1808 22969 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_WIDTH 48 22970 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_OFST 232 22971 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_LEN 4 22972 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_LBN 1856 22973 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_WIDTH 32 22974 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_OFST 236 22975 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_LEN 4 22976 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_LBN 1888 22977 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_WIDTH 32 22978 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_OFST 240 22979 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_LEN 16 22980 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_LBN 1920 22981 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_WIDTH 128 22982 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_OFST 256 22983 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_LEN 16 22984 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_LBN 2048 22985 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_WIDTH 128 22986 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_OFST 272 22987 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_LEN 4 22988 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_LBN 2176 22989 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_WIDTH 32 22990 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_OFST 276 22991 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_LEN 4 22992 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_LBN 2208 22993 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_WIDTH 32 22994 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_OFST 280 22995 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_LEN 16 22996 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_LBN 2240 22997 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_WIDTH 128 22998 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_OFST 296 22999 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_LEN 16 23000 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_LBN 2368 23001 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_WIDTH 128 23002 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_OFST 312 23003 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_LEN 1 23004 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_LBN 2496 23005 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_WIDTH 8 23006 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_OFST 313 23007 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_LEN 1 23008 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_LBN 2504 23009 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_WIDTH 8 23010 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_OFST 314 23011 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_LEN 1 23012 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_LBN 2512 23013 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_WIDTH 8 23014 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_OFST 315 23015 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_LEN 1 23016 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_LBN 2520 23017 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_WIDTH 8 23018 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_OFST 316 23019 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_LEN 1 23020 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_LBN 2528 23021 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_WIDTH 8 23022 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_OFST 317 23023 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_LEN 1 23024 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_LBN 2536 23025 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_WIDTH 8 23026 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_OFST 320 23027 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_LEN 4 23028 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_LBN 2560 23029 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_WIDTH 32 23030 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_OFST 324 23031 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_LEN 4 23032 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_LBN 2592 23033 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_WIDTH 32 23034 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_OFST 328 23035 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_LEN 2 23036 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_LBN 2624 23037 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_WIDTH 16 23038 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_OFST 330 23039 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_LEN 2 23040 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_LBN 2640 23041 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_WIDTH 16 23042 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_OFST 332 23043 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_LEN 2 23044 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_LBN 2656 23045 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_WIDTH 16 23046 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_OFST 334 23047 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_LEN 2 23048 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_LBN 2672 23049 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_WIDTH 16 23050 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_OFST 336 23051 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_LEN 4 23052 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_LBN 2688 23053 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_WIDTH 32 23054 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_OFST 340 23055 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_LEN 4 23056 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_LBN 2720 23057 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_WIDTH 32 23058 23059 /* MAE_FIELD_MASK_VALUE_PAIRS_V2 structuredef */ 23060 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_LEN 372 23061 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_OFST 0 23062 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_LEN 4 23063 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_LBN 0 23064 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_WIDTH 32 23065 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_OFST 4 23066 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_LEN 4 23067 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_LBN 32 23068 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_WIDTH 32 23069 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_OFST 8 23070 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_LEN 4 23071 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_LBN 64 23072 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_WIDTH 32 23073 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_OFST 12 23074 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_LEN 4 23075 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_LBN 96 23076 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_WIDTH 32 23077 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_OFST 16 23078 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_LEN 2 23079 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_LBN 128 23080 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_WIDTH 16 23081 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_OFST 18 23082 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_LEN 2 23083 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_LBN 144 23084 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_WIDTH 16 23085 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_OFST 20 23086 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_LEN 2 23087 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_LBN 160 23088 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_WIDTH 16 23089 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_OFST 22 23090 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_LEN 2 23091 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_LBN 176 23092 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_WIDTH 16 23093 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_OFST 24 23094 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_LEN 2 23095 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_LBN 192 23096 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_WIDTH 16 23097 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_OFST 26 23098 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_LEN 2 23099 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_LBN 208 23100 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_WIDTH 16 23101 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_OFST 28 23102 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_LEN 2 23103 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_LBN 224 23104 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_WIDTH 16 23105 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_OFST 30 23106 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_LEN 2 23107 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_LBN 240 23108 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_WIDTH 16 23109 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_OFST 32 23110 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_LEN 2 23111 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_LBN 256 23112 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_WIDTH 16 23113 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_OFST 34 23114 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_LEN 2 23115 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_LBN 272 23116 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_WIDTH 16 23117 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_OFST 36 23118 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_LEN 6 23119 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_LBN 288 23120 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_WIDTH 48 23121 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_OFST 42 23122 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_LEN 6 23123 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_LBN 336 23124 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_WIDTH 48 23125 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_OFST 48 23126 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_LEN 6 23127 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_LBN 384 23128 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_WIDTH 48 23129 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_OFST 54 23130 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_LEN 6 23131 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_LBN 432 23132 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_WIDTH 48 23133 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_OFST 60 23134 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_LEN 4 23135 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_LBN 480 23136 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_WIDTH 32 23137 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_OFST 64 23138 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_LEN 4 23139 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_LBN 512 23140 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_WIDTH 32 23141 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_OFST 68 23142 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_LEN 16 23143 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_LBN 544 23144 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_WIDTH 128 23145 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_OFST 84 23146 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_LEN 16 23147 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_LBN 672 23148 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_WIDTH 128 23149 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_OFST 100 23150 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_LEN 4 23151 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_LBN 800 23152 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_WIDTH 32 23153 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_OFST 104 23154 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_LEN 4 23155 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_LBN 832 23156 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_WIDTH 32 23157 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_OFST 108 23158 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_LEN 16 23159 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_LBN 864 23160 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_WIDTH 128 23161 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_OFST 124 23162 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_LEN 16 23163 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_LBN 992 23164 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_WIDTH 128 23165 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_OFST 140 23166 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_LEN 1 23167 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_LBN 1120 23168 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_WIDTH 8 23169 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_OFST 141 23170 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_LEN 1 23171 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_LBN 1128 23172 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_WIDTH 8 23173 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_OFST 142 23174 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_LEN 1 23175 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_LBN 1136 23176 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_WIDTH 8 23177 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_OFST 143 23178 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_LEN 1 23179 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_LBN 1144 23180 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_WIDTH 8 23181 /* Due to hardware limitations, firmware may return 23182 * MC_CMD_ERR_EINVAL(BAD_IP_TTL) when attempting to match on an IP_TTL value 23183 * other than 1. 23184 */ 23185 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_OFST 144 23186 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_LEN 1 23187 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_LBN 1152 23188 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_WIDTH 8 23189 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_OFST 145 23190 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_LEN 1 23191 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_LBN 1160 23192 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_WIDTH 8 23193 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_OFST 148 23194 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_LEN 4 23195 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_LBN 1184 23196 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_WIDTH 32 23197 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_OFST 152 23198 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_LEN 4 23199 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_LBN 1216 23200 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_WIDTH 32 23201 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_OFST 156 23202 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_LEN 2 23203 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_LBN 1248 23204 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_WIDTH 16 23205 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_OFST 158 23206 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_LEN 2 23207 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_LBN 1264 23208 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_WIDTH 16 23209 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_OFST 160 23210 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_LEN 2 23211 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_LBN 1280 23212 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_WIDTH 16 23213 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_OFST 162 23214 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_LEN 2 23215 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_LBN 1296 23216 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_WIDTH 16 23217 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_OFST 164 23218 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_LEN 2 23219 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_LBN 1312 23220 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_WIDTH 16 23221 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_OFST 166 23222 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_LEN 2 23223 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_LBN 1328 23224 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_WIDTH 16 23225 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_OFST 168 23226 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_LEN 4 23227 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_LBN 1344 23228 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_WIDTH 32 23229 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_OFST 172 23230 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_LEN 4 23231 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_LBN 1376 23232 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_WIDTH 32 23233 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_OFST 176 23234 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_LEN 4 23235 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_LBN 1408 23236 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_WIDTH 32 23237 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_OFST 180 23238 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_LEN 4 23239 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_LBN 1440 23240 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_WIDTH 32 23241 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_OFST 184 23242 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_LEN 2 23243 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_LBN 1472 23244 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_WIDTH 16 23245 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_OFST 188 23246 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_LEN 2 23247 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_LBN 1504 23248 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_WIDTH 16 23249 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_OFST 192 23250 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_LEN 2 23251 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_LBN 1536 23252 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_WIDTH 16 23253 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_OFST 194 23254 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_LEN 2 23255 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_LBN 1552 23256 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_WIDTH 16 23257 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_OFST 196 23258 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_LEN 2 23259 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_LBN 1568 23260 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_WIDTH 16 23261 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_OFST 198 23262 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_LEN 2 23263 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_LBN 1584 23264 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_WIDTH 16 23265 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_OFST 200 23266 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_LEN 2 23267 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_LBN 1600 23268 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_WIDTH 16 23269 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_OFST 202 23270 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_LEN 2 23271 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_LBN 1616 23272 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_WIDTH 16 23273 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_OFST 204 23274 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_LEN 2 23275 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_LBN 1632 23276 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_WIDTH 16 23277 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_OFST 206 23278 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_LEN 2 23279 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_LBN 1648 23280 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_WIDTH 16 23281 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_OFST 208 23282 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_LEN 6 23283 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_LBN 1664 23284 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_WIDTH 48 23285 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_OFST 214 23286 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_LEN 6 23287 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_LBN 1712 23288 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_WIDTH 48 23289 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_OFST 220 23290 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_LEN 6 23291 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_LBN 1760 23292 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_WIDTH 48 23293 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_OFST 226 23294 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_LEN 6 23295 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_LBN 1808 23296 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_WIDTH 48 23297 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_OFST 232 23298 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_LEN 4 23299 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_LBN 1856 23300 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_WIDTH 32 23301 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_OFST 236 23302 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_LEN 4 23303 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_LBN 1888 23304 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_WIDTH 32 23305 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_OFST 240 23306 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_LEN 16 23307 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_LBN 1920 23308 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_WIDTH 128 23309 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_OFST 256 23310 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_LEN 16 23311 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_LBN 2048 23312 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_WIDTH 128 23313 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_OFST 272 23314 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_LEN 4 23315 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_LBN 2176 23316 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_WIDTH 32 23317 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_OFST 276 23318 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_LEN 4 23319 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_LBN 2208 23320 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_WIDTH 32 23321 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_OFST 280 23322 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_LEN 16 23323 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_LBN 2240 23324 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_WIDTH 128 23325 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_OFST 296 23326 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_LEN 16 23327 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_LBN 2368 23328 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_WIDTH 128 23329 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_OFST 312 23330 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_LEN 1 23331 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_LBN 2496 23332 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_WIDTH 8 23333 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_OFST 313 23334 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_LEN 1 23335 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_LBN 2504 23336 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_WIDTH 8 23337 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_OFST 314 23338 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_LEN 1 23339 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_LBN 2512 23340 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_WIDTH 8 23341 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_OFST 315 23342 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_LEN 1 23343 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_LBN 2520 23344 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_WIDTH 8 23345 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_OFST 316 23346 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_LEN 1 23347 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_LBN 2528 23348 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_WIDTH 8 23349 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_OFST 317 23350 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_LEN 1 23351 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_LBN 2536 23352 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_WIDTH 8 23353 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_OFST 320 23354 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_LEN 4 23355 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_LBN 2560 23356 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_WIDTH 32 23357 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_OFST 324 23358 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_LEN 4 23359 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_LBN 2592 23360 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_WIDTH 32 23361 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_OFST 328 23362 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_LEN 2 23363 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_LBN 2624 23364 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_WIDTH 16 23365 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_OFST 330 23366 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_LEN 2 23367 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_LBN 2640 23368 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_WIDTH 16 23369 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_OFST 332 23370 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_LEN 2 23371 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_LBN 2656 23372 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_WIDTH 16 23373 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_OFST 334 23374 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_LEN 2 23375 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_LBN 2672 23376 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_WIDTH 16 23377 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_OFST 336 23378 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_LEN 4 23379 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_LBN 2688 23380 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_WIDTH 32 23381 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_OFST 340 23382 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_LEN 4 23383 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_LBN 2720 23384 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_WIDTH 32 23385 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_OFST 344 23386 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_LEN 4 23387 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_IP_FRAG_OFST 344 23388 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_IP_FRAG_LBN 0 23389 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_IP_FRAG_WIDTH 1 23390 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_OFST 344 23391 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_LBN 1 23392 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_WIDTH 1 23393 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_HIT_OFST 344 23394 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_HIT_LBN 2 23395 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_HIT_WIDTH 1 23396 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_FROM_NETWORK_OFST 344 23397 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_FROM_NETWORK_LBN 3 23398 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_FROM_NETWORK_WIDTH 1 23399 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_OVLAN_OFST 344 23400 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_OVLAN_LBN 4 23401 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_OVLAN_WIDTH 1 23402 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_IVLAN_OFST 344 23403 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_IVLAN_LBN 5 23404 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_IVLAN_WIDTH 1 23405 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_OVLAN_OFST 344 23406 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_OVLAN_LBN 6 23407 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_OVLAN_WIDTH 1 23408 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_IVLAN_OFST 344 23409 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_IVLAN_LBN 7 23410 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_IVLAN_WIDTH 1 23411 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_SYN_FIN_RST_OFST 344 23412 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_SYN_FIN_RST_LBN 8 23413 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_SYN_FIN_RST_WIDTH 1 23414 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FIRST_FRAG_OFST 344 23415 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FIRST_FRAG_LBN 9 23416 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FIRST_FRAG_WIDTH 1 23417 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_LBN 2752 23418 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_WIDTH 32 23419 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_OFST 348 23420 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_LEN 4 23421 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_LBN 2784 23422 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_WIDTH 32 23423 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_OFST 352 23424 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_LEN 2 23425 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_LBN 2816 23426 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_WIDTH 16 23427 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_OFST 354 23428 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_LEN 2 23429 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_LBN 2832 23430 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_WIDTH 16 23431 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_OFST 356 23432 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_LEN 4 23433 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_LBN 2848 23434 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_WIDTH 32 23435 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_OFST 360 23436 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_LEN 4 23437 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_LBN 2880 23438 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_WIDTH 32 23439 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_OFST 364 23440 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_LEN 1 23441 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_LBN 2912 23442 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_WIDTH 8 23443 /* Set to zero. */ 23444 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_OFST 365 23445 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_LEN 1 23446 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_LBN 2920 23447 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_WIDTH 8 23448 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_OFST 366 23449 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_LEN 1 23450 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_LBN 2928 23451 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_WIDTH 8 23452 /* Set to zero. */ 23453 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_OFST 367 23454 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_LEN 1 23455 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_LBN 2936 23456 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_WIDTH 8 23457 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_OFST 368 23458 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_LEN 1 23459 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_LBN 2944 23460 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_WIDTH 8 23461 /* Set to zero */ 23462 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_OFST 369 23463 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_LEN 1 23464 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_LBN 2952 23465 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_WIDTH 8 23466 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_OFST 370 23467 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_LEN 1 23468 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_LBN 2960 23469 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_WIDTH 8 23470 /* Set to zero */ 23471 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_OFST 371 23472 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_LEN 1 23473 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_LBN 2968 23474 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_WIDTH 8 23475 23476 /* MAE_MPORT_SELECTOR structuredef: MPORTS are identified by an opaque unsigned 23477 * integer value (mport_id) that is guaranteed to be representable within 23478 * 32-bits or within any NIC interface field that needs store the value 23479 * (whichever is narrower). This selector structure provides a stable way to 23480 * refer to m-ports. 23481 */ 23482 #define MAE_MPORT_SELECTOR_LEN 4 23483 /* Used to force the tools to output bitfield-style defines for this structure. 23484 */ 23485 #define MAE_MPORT_SELECTOR_FLAT_OFST 0 23486 #define MAE_MPORT_SELECTOR_FLAT_LEN 4 23487 /* enum: An m-port selector value that is guaranteed never to represent a real 23488 * mport 23489 */ 23490 #define MAE_MPORT_SELECTOR_NULL 0x0 23491 /* enum: The m-port assigned to the calling client. */ 23492 #define MAE_MPORT_SELECTOR_ASSIGNED 0x1000000 23493 #define MAE_MPORT_SELECTOR_TYPE_OFST 0 23494 #define MAE_MPORT_SELECTOR_TYPE_LBN 24 23495 #define MAE_MPORT_SELECTOR_TYPE_WIDTH 8 23496 /* enum: The MPORT connected to a given physical port */ 23497 #define MAE_MPORT_SELECTOR_TYPE_PPORT 0x2 23498 /* enum: The MPORT assigned to a given PCIe function. Deprecated in favour of 23499 * MH_FUNC. 23500 */ 23501 #define MAE_MPORT_SELECTOR_TYPE_FUNC 0x3 23502 /* enum: An mport_id */ 23503 #define MAE_MPORT_SELECTOR_TYPE_MPORT_ID 0x4 23504 /* enum: The MPORT assigned to a given PCIe function (see also FWRIVERHD-1108) 23505 */ 23506 #define MAE_MPORT_SELECTOR_TYPE_MH_FUNC 0x5 23507 /* enum: This is guaranteed never to be a valid selector type */ 23508 #define MAE_MPORT_SELECTOR_TYPE_INVALID 0xff 23509 #define MAE_MPORT_SELECTOR_MPORT_ID_OFST 0 23510 #define MAE_MPORT_SELECTOR_MPORT_ID_LBN 0 23511 #define MAE_MPORT_SELECTOR_MPORT_ID_WIDTH 24 23512 #define MAE_MPORT_SELECTOR_PPORT_ID_OFST 0 23513 #define MAE_MPORT_SELECTOR_PPORT_ID_LBN 0 23514 #define MAE_MPORT_SELECTOR_PPORT_ID_WIDTH 4 23515 #define MAE_MPORT_SELECTOR_FUNC_INTF_ID_OFST 0 23516 #define MAE_MPORT_SELECTOR_FUNC_INTF_ID_LBN 20 23517 #define MAE_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 23518 #define MAE_MPORT_SELECTOR_HOST_PRIMARY 0x1 /* enum */ 23519 #define MAE_MPORT_SELECTOR_NIC_EMBEDDED 0x2 /* enum */ 23520 /* enum: Deprecated, use CALLER_INTF instead. */ 23521 #define MAE_MPORT_SELECTOR_CALLER 0xf 23522 #define MAE_MPORT_SELECTOR_CALLER_INTF 0xf /* enum */ 23523 #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_OFST 0 23524 #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 16 23525 #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 23526 #define MAE_MPORT_SELECTOR_FUNC_PF_ID_OFST 0 23527 #define MAE_MPORT_SELECTOR_FUNC_PF_ID_LBN 16 23528 #define MAE_MPORT_SELECTOR_FUNC_PF_ID_WIDTH 8 23529 #define MAE_MPORT_SELECTOR_FUNC_VF_ID_OFST 0 23530 #define MAE_MPORT_SELECTOR_FUNC_VF_ID_LBN 0 23531 #define MAE_MPORT_SELECTOR_FUNC_VF_ID_WIDTH 16 23532 /* enum: Used for VF_ID to indicate a physical function. */ 23533 #define MAE_MPORT_SELECTOR_FUNC_VF_ID_NULL 0xffff 23534 /* enum: Used for PF_ID to indicate the physical function of the calling 23535 * client. - When used by a PF with VF_ID == VF_ID_NULL, the mport selector 23536 * relates to the calling function. (For clarity, it is recommended that 23537 * clients use ASSIGNED to achieve this behaviour). - When used by a PF with 23538 * VF_ID != VF_ID_NULL, the mport selector relates to a VF child of the calling 23539 * function. - When used by a VF with VF_ID == VF_ID_NULL, the mport selector 23540 * relates to the PF owning the calling function. - When used by a VF with 23541 * VF_ID != VF_ID_NULL, the mport selector relates to a sibling VF of the 23542 * calling function. - Not meaningful used by a client that is not a PCIe 23543 * function. 23544 */ 23545 #define MAE_MPORT_SELECTOR_FUNC_PF_ID_CALLER 0xff 23546 /* enum: Same as PF_ID_CALLER, but for use in the smaller MH_PF_ID field. Only 23547 * valid if FUNC_INTF_ID is CALLER. 23548 */ 23549 #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_CALLER 0xf 23550 #define MAE_MPORT_SELECTOR_FLAT_LBN 0 23551 #define MAE_MPORT_SELECTOR_FLAT_WIDTH 32 23552 23553 /* MAE_LINK_ENDPOINT_SELECTOR structuredef: Structure that identifies a real or 23554 * virtual network port by MAE port and link end. Intended to be used by 23555 * network port MCDI commands. Setting FLAT to MAE_LINK_ENDPOINT_COMPAT is 23556 * equivalent to using the previous version of the command. Not all possible 23557 * combinations of MPORT_END and MPORT_SELECTOR in MAE_LINK_ENDPOINT_SELECTOR 23558 * will work in all circumstances. 1. Some will always work (e.g. a VF can 23559 * always address its logical MAC using MPORT_SELECTOR=ASSIGNED,LINK_END=VNIC), 23560 * 2. Some are not meaningful and will always fail with EINVAL (e.g. attempting 23561 * to address the VNIC end of a link to a physical port), 3. Some are 23562 * meaningful but require the MCDI client to have the required permission and 23563 * fail with EPERM otherwise (e.g. trying to set the MAC on a VF the caller 23564 * cannot administer), and 4. Some could be implementation-specific and fail 23565 * with ENOTSUP if not available (no examples exist right now). See 23566 * SF-123581-TC section 4.3 for more details. 23567 */ 23568 #define MAE_LINK_ENDPOINT_SELECTOR_LEN 8 23569 /* Identifier for the MAE MPORT of interest */ 23570 #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_OFST 0 23571 #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_LEN 4 23572 #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_LBN 0 23573 #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_WIDTH 32 23574 /* Which end of the link identified by MPORT to consider */ 23575 #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_OFST 4 23576 #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_LEN 4 23577 /* Enum values, see field(s): */ 23578 /* MAE_MPORT_END */ 23579 #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_LBN 32 23580 #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_WIDTH 32 23581 /* A field for accessing the endpoint selector as a collection of bits */ 23582 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_OFST 0 23583 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LEN 8 23584 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_OFST 0 23585 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_LEN 4 23586 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_LBN 0 23587 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_WIDTH 32 23588 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_OFST 4 23589 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_LEN 4 23590 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_LBN 32 23591 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_WIDTH 32 23592 /* enum: Set FLAT to this value to obtain backward-compatible behaviour in 23593 * commands that have been extended to take a MAE_LINK_ENDPOINT_SELECTOR 23594 * argument. New commands that are designed to take such an argument from the 23595 * start will not support this. 23596 */ 23597 #define MAE_LINK_ENDPOINT_SELECTOR_MAE_LINK_ENDPOINT_COMPAT 0x0 23598 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LBN 0 23599 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_WIDTH 64 23600 23601 23602 /***********************************/ 23603 /* MC_CMD_MAE_GET_CAPS 23604 * Describes capabilities of the MAE (Match-Action Engine) 23605 */ 23606 #define MC_CMD_MAE_GET_CAPS 0x140 23607 #undef MC_CMD_0x140_PRIVILEGE_CTG 23608 23609 #define MC_CMD_0x140_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23610 23611 /* MC_CMD_MAE_GET_CAPS_IN msgrequest */ 23612 #define MC_CMD_MAE_GET_CAPS_IN_LEN 0 23613 23614 /* MC_CMD_MAE_GET_CAPS_OUT msgresponse */ 23615 #define MC_CMD_MAE_GET_CAPS_OUT_LEN 52 23616 /* The number of field IDs that the NIC supports. Any field with a ID greater 23617 * than or equal to the value returned in this field must be treated as having 23618 * a support level of MAE_FIELD_UNSUPPORTED in all requests. 23619 */ 23620 #define MC_CMD_MAE_GET_CAPS_OUT_MATCH_FIELD_COUNT_OFST 0 23621 #define MC_CMD_MAE_GET_CAPS_OUT_MATCH_FIELD_COUNT_LEN 4 23622 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPES_SUPPORTED_OFST 4 23623 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPES_SUPPORTED_LEN 4 23624 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_OFST 4 23625 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_LBN 0 23626 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_WIDTH 1 23627 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_OFST 4 23628 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_LBN 1 23629 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_WIDTH 1 23630 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_OFST 4 23631 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_LBN 2 23632 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_WIDTH 1 23633 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_L2GRE_OFST 4 23634 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_L2GRE_LBN 3 23635 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_L2GRE_WIDTH 1 23636 /* Deprecated alias for AR_COUNTERS. */ 23637 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTERS_OFST 8 23638 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTERS_LEN 4 23639 /* The total number of AR counters available to allocate. */ 23640 #define MC_CMD_MAE_GET_CAPS_OUT_AR_COUNTERS_OFST 8 23641 #define MC_CMD_MAE_GET_CAPS_OUT_AR_COUNTERS_LEN 4 23642 /* The total number of counters lists available to allocate. A value of zero 23643 * indicates that counter lists are not supported by the NIC. (But single 23644 * counters may still be.) 23645 */ 23646 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTER_LISTS_OFST 12 23647 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTER_LISTS_LEN 4 23648 /* The total number of encap header structures available to allocate. */ 23649 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_HEADER_LIMIT_OFST 16 23650 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_HEADER_LIMIT_LEN 4 23651 /* Reserved. Should be zero. */ 23652 #define MC_CMD_MAE_GET_CAPS_OUT_RSVD_OFST 20 23653 #define MC_CMD_MAE_GET_CAPS_OUT_RSVD_LEN 4 23654 /* The total number of action sets available to allocate. */ 23655 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SETS_OFST 24 23656 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SETS_LEN 4 23657 /* The total number of action set lists available to allocate. */ 23658 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SET_LISTS_OFST 28 23659 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SET_LISTS_LEN 4 23660 /* The total number of outer rules available to allocate. */ 23661 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_RULES_OFST 32 23662 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_RULES_LEN 4 23663 /* The total number of action rules available to allocate. */ 23664 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_RULES_OFST 36 23665 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_RULES_LEN 4 23666 /* The number of priorities available for ACTION_RULE filters. It is invalid to 23667 * install a MATCH_ACTION filter with a priority number >= ACTION_PRIOS. 23668 */ 23669 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_PRIOS_OFST 40 23670 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_PRIOS_LEN 4 23671 /* The number of priorities available for OUTER_RULE filters. It is invalid to 23672 * install an OUTER_RULE filter with a priority number >= OUTER_PRIOS. 23673 */ 23674 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_PRIOS_OFST 44 23675 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_PRIOS_LEN 4 23676 /* MAE API major version. Currently 1. If this field is not present in the 23677 * response (i.e. response shorter than 384 bits), then its value is zero. If 23678 * the value does not match the client's expectations, the client should raise 23679 * a fatal error. 23680 */ 23681 #define MC_CMD_MAE_GET_CAPS_OUT_API_VER_OFST 48 23682 #define MC_CMD_MAE_GET_CAPS_OUT_API_VER_LEN 4 23683 23684 /* MC_CMD_MAE_GET_CAPS_V2_OUT msgresponse */ 23685 #define MC_CMD_MAE_GET_CAPS_V2_OUT_LEN 60 23686 /* The number of field IDs that the NIC supports. Any field with a ID greater 23687 * than or equal to the value returned in this field must be treated as having 23688 * a support level of MAE_FIELD_UNSUPPORTED in all requests. 23689 */ 23690 #define MC_CMD_MAE_GET_CAPS_V2_OUT_MATCH_FIELD_COUNT_OFST 0 23691 #define MC_CMD_MAE_GET_CAPS_V2_OUT_MATCH_FIELD_COUNT_LEN 4 23692 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPES_SUPPORTED_OFST 4 23693 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPES_SUPPORTED_LEN 4 23694 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_VXLAN_OFST 4 23695 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_VXLAN_LBN 0 23696 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_VXLAN_WIDTH 1 23697 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_NVGRE_OFST 4 23698 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_NVGRE_LBN 1 23699 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_NVGRE_WIDTH 1 23700 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_GENEVE_OFST 4 23701 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_GENEVE_LBN 2 23702 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_GENEVE_WIDTH 1 23703 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_L2GRE_OFST 4 23704 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_L2GRE_LBN 3 23705 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_L2GRE_WIDTH 1 23706 /* Deprecated alias for AR_COUNTERS. */ 23707 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTERS_OFST 8 23708 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTERS_LEN 4 23709 /* The total number of AR counters available to allocate. */ 23710 #define MC_CMD_MAE_GET_CAPS_V2_OUT_AR_COUNTERS_OFST 8 23711 #define MC_CMD_MAE_GET_CAPS_V2_OUT_AR_COUNTERS_LEN 4 23712 /* The total number of counters lists available to allocate. A value of zero 23713 * indicates that counter lists are not supported by the NIC. (But single 23714 * counters may still be.) 23715 */ 23716 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_LISTS_OFST 12 23717 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_LISTS_LEN 4 23718 /* The total number of encap header structures available to allocate. */ 23719 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_HEADER_LIMIT_OFST 16 23720 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_HEADER_LIMIT_LEN 4 23721 /* Reserved. Should be zero. */ 23722 #define MC_CMD_MAE_GET_CAPS_V2_OUT_RSVD_OFST 20 23723 #define MC_CMD_MAE_GET_CAPS_V2_OUT_RSVD_LEN 4 23724 /* The total number of action sets available to allocate. */ 23725 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SETS_OFST 24 23726 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SETS_LEN 4 23727 /* The total number of action set lists available to allocate. */ 23728 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SET_LISTS_OFST 28 23729 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SET_LISTS_LEN 4 23730 /* The total number of outer rules available to allocate. */ 23731 #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_RULES_OFST 32 23732 #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_RULES_LEN 4 23733 /* The total number of action rules available to allocate. */ 23734 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_RULES_OFST 36 23735 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_RULES_LEN 4 23736 /* The number of priorities available for ACTION_RULE filters. It is invalid to 23737 * install a MATCH_ACTION filter with a priority number >= ACTION_PRIOS. 23738 */ 23739 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_PRIOS_OFST 40 23740 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_PRIOS_LEN 4 23741 /* The number of priorities available for OUTER_RULE filters. It is invalid to 23742 * install an OUTER_RULE filter with a priority number >= OUTER_PRIOS. 23743 */ 23744 #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_PRIOS_OFST 44 23745 #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_PRIOS_LEN 4 23746 /* MAE API major version. Currently 1. If this field is not present in the 23747 * response (i.e. response shorter than 384 bits), then its value is zero. If 23748 * the value does not match the client's expectations, the client should raise 23749 * a fatal error. 23750 */ 23751 #define MC_CMD_MAE_GET_CAPS_V2_OUT_API_VER_OFST 48 23752 #define MC_CMD_MAE_GET_CAPS_V2_OUT_API_VER_LEN 4 23753 /* Mask of supported counter types. Each bit position corresponds to a value of 23754 * the MAE_COUNTER_TYPE enum. If this field is missing (i.e. V1 response), 23755 * clients must assume that only AR counters are supported (i.e. 23756 * COUNTER_TYPES_SUPPORTED==0x1). See also 23757 * MC_CMD_MAE_COUNTERS_STREAM_START/COUNTER_TYPES_MASK. 23758 */ 23759 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_TYPES_SUPPORTED_OFST 52 23760 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_TYPES_SUPPORTED_LEN 4 23761 /* The total number of conntrack counters available to allocate. */ 23762 #define MC_CMD_MAE_GET_CAPS_V2_OUT_CT_COUNTERS_OFST 56 23763 #define MC_CMD_MAE_GET_CAPS_V2_OUT_CT_COUNTERS_LEN 4 23764 23765 /* MC_CMD_MAE_GET_CAPS_V3_OUT msgresponse */ 23766 #define MC_CMD_MAE_GET_CAPS_V3_OUT_LEN 64 23767 /* The number of field IDs that the NIC supports. Any field with a ID greater 23768 * than or equal to the value returned in this field must be treated as having 23769 * a support level of MAE_FIELD_UNSUPPORTED in all requests. 23770 */ 23771 #define MC_CMD_MAE_GET_CAPS_V3_OUT_MATCH_FIELD_COUNT_OFST 0 23772 #define MC_CMD_MAE_GET_CAPS_V3_OUT_MATCH_FIELD_COUNT_LEN 4 23773 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPES_SUPPORTED_OFST 4 23774 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPES_SUPPORTED_LEN 4 23775 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_VXLAN_OFST 4 23776 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_VXLAN_LBN 0 23777 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_VXLAN_WIDTH 1 23778 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_NVGRE_OFST 4 23779 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_NVGRE_LBN 1 23780 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_NVGRE_WIDTH 1 23781 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_GENEVE_OFST 4 23782 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_GENEVE_LBN 2 23783 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_GENEVE_WIDTH 1 23784 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_L2GRE_OFST 4 23785 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_L2GRE_LBN 3 23786 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_L2GRE_WIDTH 1 23787 /* Deprecated alias for AR_COUNTERS. */ 23788 #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTERS_OFST 8 23789 #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTERS_LEN 4 23790 /* The total number of AR counters available to allocate. */ 23791 #define MC_CMD_MAE_GET_CAPS_V3_OUT_AR_COUNTERS_OFST 8 23792 #define MC_CMD_MAE_GET_CAPS_V3_OUT_AR_COUNTERS_LEN 4 23793 /* The total number of counters lists available to allocate. A value of zero 23794 * indicates that counter lists are not supported by the NIC. (But single 23795 * counters may still be.) 23796 */ 23797 #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTER_LISTS_OFST 12 23798 #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTER_LISTS_LEN 4 23799 /* The total number of encap header structures available to allocate. */ 23800 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_HEADER_LIMIT_OFST 16 23801 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_HEADER_LIMIT_LEN 4 23802 /* Reserved. Should be zero. */ 23803 #define MC_CMD_MAE_GET_CAPS_V3_OUT_RSVD_OFST 20 23804 #define MC_CMD_MAE_GET_CAPS_V3_OUT_RSVD_LEN 4 23805 /* The total number of action sets available to allocate. */ 23806 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_SETS_OFST 24 23807 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_SETS_LEN 4 23808 /* The total number of action set lists available to allocate. */ 23809 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_SET_LISTS_OFST 28 23810 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_SET_LISTS_LEN 4 23811 /* The total number of outer rules available to allocate. */ 23812 #define MC_CMD_MAE_GET_CAPS_V3_OUT_OUTER_RULES_OFST 32 23813 #define MC_CMD_MAE_GET_CAPS_V3_OUT_OUTER_RULES_LEN 4 23814 /* The total number of action rules available to allocate. */ 23815 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_RULES_OFST 36 23816 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_RULES_LEN 4 23817 /* The number of priorities available for ACTION_RULE filters. It is invalid to 23818 * install a MATCH_ACTION filter with a priority number >= ACTION_PRIOS. 23819 */ 23820 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_PRIOS_OFST 40 23821 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_PRIOS_LEN 4 23822 /* The number of priorities available for OUTER_RULE filters. It is invalid to 23823 * install an OUTER_RULE filter with a priority number >= OUTER_PRIOS. 23824 */ 23825 #define MC_CMD_MAE_GET_CAPS_V3_OUT_OUTER_PRIOS_OFST 44 23826 #define MC_CMD_MAE_GET_CAPS_V3_OUT_OUTER_PRIOS_LEN 4 23827 /* MAE API major version. Currently 1. If this field is not present in the 23828 * response (i.e. response shorter than 384 bits), then its value is zero. If 23829 * the value does not match the client's expectations, the client should raise 23830 * a fatal error. 23831 */ 23832 #define MC_CMD_MAE_GET_CAPS_V3_OUT_API_VER_OFST 48 23833 #define MC_CMD_MAE_GET_CAPS_V3_OUT_API_VER_LEN 4 23834 /* Mask of supported counter types. Each bit position corresponds to a value of 23835 * the MAE_COUNTER_TYPE enum. If this field is missing (i.e. V1 response), 23836 * clients must assume that only AR counters are supported (i.e. 23837 * COUNTER_TYPES_SUPPORTED==0x1). See also 23838 * MC_CMD_MAE_COUNTERS_STREAM_START/COUNTER_TYPES_MASK. 23839 */ 23840 #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTER_TYPES_SUPPORTED_OFST 52 23841 #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTER_TYPES_SUPPORTED_LEN 4 23842 /* The total number of conntrack counters available to allocate. */ 23843 #define MC_CMD_MAE_GET_CAPS_V3_OUT_CT_COUNTERS_OFST 56 23844 #define MC_CMD_MAE_GET_CAPS_V3_OUT_CT_COUNTERS_LEN 4 23845 /* The total number of Outer Rule counters available to allocate. */ 23846 #define MC_CMD_MAE_GET_CAPS_V3_OUT_OR_COUNTERS_OFST 60 23847 #define MC_CMD_MAE_GET_CAPS_V3_OUT_OR_COUNTERS_LEN 4 23848 23849 23850 /***********************************/ 23851 /* MC_CMD_MAE_GET_AR_CAPS 23852 * Get a level of support for match fields when used in match-action rules 23853 */ 23854 #define MC_CMD_MAE_GET_AR_CAPS 0x141 23855 #undef MC_CMD_0x141_PRIVILEGE_CTG 23856 23857 #define MC_CMD_0x141_PRIVILEGE_CTG SRIOV_CTG_MAE 23858 23859 /* MC_CMD_MAE_GET_AR_CAPS_IN msgrequest */ 23860 #define MC_CMD_MAE_GET_AR_CAPS_IN_LEN 0 23861 23862 /* MC_CMD_MAE_GET_AR_CAPS_OUT msgresponse */ 23863 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LENMIN 4 23864 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LENMAX 252 23865 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LENMAX_MCDI2 1020 23866 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LEN(num) (4+4*(num)) 23867 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_NUM(len) (((len)-4)/4) 23868 /* Number of fields actually returned in FIELD_FLAGS. */ 23869 #define MC_CMD_MAE_GET_AR_CAPS_OUT_COUNT_OFST 0 23870 #define MC_CMD_MAE_GET_AR_CAPS_OUT_COUNT_LEN 4 23871 /* Array of values indicating the NIC's support for a given field, indexed by 23872 * field id. The driver must ensure space for 23873 * MC_CMD_MAE_GET_CAPS.MATCH_FIELD_COUNT entries in the array.. 23874 */ 23875 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_OFST 4 23876 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_LEN 4 23877 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_MINNUM 0 23878 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_MAXNUM 62 23879 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_MAXNUM_MCDI2 254 23880 23881 23882 /***********************************/ 23883 /* MC_CMD_MAE_GET_OR_CAPS 23884 * Get a level of support for fields used in outer rule keys. 23885 */ 23886 #define MC_CMD_MAE_GET_OR_CAPS 0x142 23887 #undef MC_CMD_0x142_PRIVILEGE_CTG 23888 23889 #define MC_CMD_0x142_PRIVILEGE_CTG SRIOV_CTG_MAE 23890 23891 /* MC_CMD_MAE_GET_OR_CAPS_IN msgrequest */ 23892 #define MC_CMD_MAE_GET_OR_CAPS_IN_LEN 0 23893 23894 /* MC_CMD_MAE_GET_OR_CAPS_OUT msgresponse */ 23895 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LENMIN 4 23896 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LENMAX 252 23897 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LENMAX_MCDI2 1020 23898 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LEN(num) (4+4*(num)) 23899 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_NUM(len) (((len)-4)/4) 23900 /* Number of fields actually returned in FIELD_FLAGS. */ 23901 #define MC_CMD_MAE_GET_OR_CAPS_OUT_COUNT_OFST 0 23902 #define MC_CMD_MAE_GET_OR_CAPS_OUT_COUNT_LEN 4 23903 /* Same semantics as MC_CMD_MAE_GET_AR_CAPS.MAE_FIELD_FLAGS */ 23904 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_OFST 4 23905 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_LEN 4 23906 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_MINNUM 0 23907 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_MAXNUM 62 23908 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_MAXNUM_MCDI2 254 23909 23910 23911 /***********************************/ 23912 /* MC_CMD_MAE_COUNTER_ALLOC 23913 * Allocate match-action-engine counters, which can be referenced in various 23914 * tables. 23915 */ 23916 #define MC_CMD_MAE_COUNTER_ALLOC 0x143 23917 #undef MC_CMD_0x143_PRIVILEGE_CTG 23918 23919 #define MC_CMD_0x143_PRIVILEGE_CTG SRIOV_CTG_MAE 23920 23921 /* MC_CMD_MAE_COUNTER_ALLOC_IN msgrequest: Using this is equivalent to using V2 23922 * with COUNTER_TYPE=AR. 23923 */ 23924 #define MC_CMD_MAE_COUNTER_ALLOC_IN_LEN 4 23925 /* The number of counters that the driver would like allocated */ 23926 #define MC_CMD_MAE_COUNTER_ALLOC_IN_REQUESTED_COUNT_OFST 0 23927 #define MC_CMD_MAE_COUNTER_ALLOC_IN_REQUESTED_COUNT_LEN 4 23928 23929 /* MC_CMD_MAE_COUNTER_ALLOC_V2_IN msgrequest */ 23930 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_LEN 8 23931 /* The number of counters that the driver would like allocated */ 23932 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_REQUESTED_COUNT_OFST 0 23933 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_REQUESTED_COUNT_LEN 4 23934 /* Which type of counter to allocate. */ 23935 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_COUNTER_TYPE_OFST 4 23936 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_COUNTER_TYPE_LEN 4 23937 /* Enum values, see field(s): */ 23938 /* MAE_COUNTER_TYPE */ 23939 23940 /* MC_CMD_MAE_COUNTER_ALLOC_OUT msgresponse */ 23941 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LENMIN 12 23942 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LENMAX 252 23943 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LENMAX_MCDI2 1020 23944 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LEN(num) (8+4*(num)) 23945 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_NUM(len) (((len)-8)/4) 23946 /* Generation count. Packets with generation count >= GENERATION_COUNT will 23947 * contain valid counter values for counter IDs allocated in this call, unless 23948 * the counter values are zero and zero squash is enabled. Note that there is 23949 * an independent GENERATION_COUNT object per counter type, and that generation 23950 * counts wrap from 0xffffffff to 1. 23951 */ 23952 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_GENERATION_COUNT_OFST 0 23953 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_GENERATION_COUNT_LEN 4 23954 /* enum: Generation counter 0 is reserved and unused. */ 23955 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_GENERATION_COUNT_INVALID 0x0 23956 /* The number of counter IDs that the NIC allocated. It is never less than 1; 23957 * failure to allocate a single counter will cause an error to be returned. It 23958 * is never greater than REQUESTED_COUNT, but may be less. 23959 */ 23960 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_COUNT_OFST 4 23961 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_COUNT_LEN 4 23962 /* An array containing the IDs for the counters allocated. */ 23963 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_OFST 8 23964 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_LEN 4 23965 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_MINNUM 1 23966 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_MAXNUM 61 23967 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_MAXNUM_MCDI2 253 23968 /* enum: A counter ID that is guaranteed never to represent a real counter */ 23969 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_NULL 0xffffffff 23970 /* Other enum values, see field(s): */ 23971 /* MAE_COUNTER_ID */ 23972 23973 23974 /***********************************/ 23975 /* MC_CMD_MAE_COUNTER_FREE 23976 * Free match-action-engine counters 23977 */ 23978 #define MC_CMD_MAE_COUNTER_FREE 0x144 23979 #undef MC_CMD_0x144_PRIVILEGE_CTG 23980 23981 #define MC_CMD_0x144_PRIVILEGE_CTG SRIOV_CTG_MAE 23982 23983 /* MC_CMD_MAE_COUNTER_FREE_IN msgrequest: Using this is equivalent to using V2 23984 * with COUNTER_TYPE=AR. 23985 */ 23986 #define MC_CMD_MAE_COUNTER_FREE_IN_LENMIN 8 23987 #define MC_CMD_MAE_COUNTER_FREE_IN_LENMAX 132 23988 #define MC_CMD_MAE_COUNTER_FREE_IN_LENMAX_MCDI2 132 23989 #define MC_CMD_MAE_COUNTER_FREE_IN_LEN(num) (4+4*(num)) 23990 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_NUM(len) (((len)-4)/4) 23991 /* The number of counter IDs to be freed. */ 23992 #define MC_CMD_MAE_COUNTER_FREE_IN_COUNTER_ID_COUNT_OFST 0 23993 #define MC_CMD_MAE_COUNTER_FREE_IN_COUNTER_ID_COUNT_LEN 4 23994 /* An array containing the counter IDs to be freed. */ 23995 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_OFST 4 23996 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_LEN 4 23997 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_MINNUM 1 23998 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_MAXNUM 32 23999 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_MAXNUM_MCDI2 32 24000 24001 /* MC_CMD_MAE_COUNTER_FREE_V2_IN msgrequest */ 24002 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_LEN 136 24003 /* The number of counter IDs to be freed. */ 24004 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_ID_COUNT_OFST 0 24005 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_ID_COUNT_LEN 4 24006 /* An array containing the counter IDs to be freed. */ 24007 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_OFST 4 24008 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_LEN 4 24009 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_MINNUM 1 24010 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_MAXNUM 32 24011 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_MAXNUM_MCDI2 32 24012 /* Which type of counter to free. */ 24013 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_TYPE_OFST 132 24014 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_TYPE_LEN 4 24015 /* Enum values, see field(s): */ 24016 /* MAE_COUNTER_TYPE */ 24017 24018 /* MC_CMD_MAE_COUNTER_FREE_OUT msgresponse */ 24019 #define MC_CMD_MAE_COUNTER_FREE_OUT_LENMIN 12 24020 #define MC_CMD_MAE_COUNTER_FREE_OUT_LENMAX 136 24021 #define MC_CMD_MAE_COUNTER_FREE_OUT_LENMAX_MCDI2 136 24022 #define MC_CMD_MAE_COUNTER_FREE_OUT_LEN(num) (8+4*(num)) 24023 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_NUM(len) (((len)-8)/4) 24024 /* Generation count. A packet with generation count == GENERATION_COUNT will 24025 * contain the final values for these counter IDs, unless the counter values 24026 * are zero and zero squash is enabled. Note that the GENERATION_COUNT value is 24027 * specific to the COUNTER_TYPE (IDENTIFIER field in packet header). Receiving 24028 * a packet with generation count > GENERATION_COUNT guarantees that no more 24029 * values will be written for these counters. If values for these counter IDs 24030 * are present, the counter ID has been reallocated. A counter ID will not be 24031 * reallocated within a single read cycle as this would merge increments from 24032 * the 'old' and 'new' counters. GENERATION_COUNT_INVALID is reserved and 24033 * unused. 24034 */ 24035 #define MC_CMD_MAE_COUNTER_FREE_OUT_GENERATION_COUNT_OFST 0 24036 #define MC_CMD_MAE_COUNTER_FREE_OUT_GENERATION_COUNT_LEN 4 24037 /* The number of counter IDs actually freed. It is never less than 1; failure 24038 * to free a single counter will cause an error to be returned. It is never 24039 * greater than the number that were requested to be freed, but may be less if 24040 * counters could not be freed. 24041 */ 24042 #define MC_CMD_MAE_COUNTER_FREE_OUT_COUNTER_ID_COUNT_OFST 4 24043 #define MC_CMD_MAE_COUNTER_FREE_OUT_COUNTER_ID_COUNT_LEN 4 24044 /* An array containing the IDs for the counters to that were freed. Note, 24045 * failure to free a counter can only occur on incorrect driver behaviour, so 24046 * asserting that the expected counters were freed is reasonable. When 24047 * debugging, attempting to free a single counter at a time will provide a 24048 * reason for the failure to free said counter. 24049 */ 24050 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_OFST 8 24051 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_LEN 4 24052 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_MINNUM 1 24053 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_MAXNUM 32 24054 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_MAXNUM_MCDI2 32 24055 24056 24057 /***********************************/ 24058 /* MC_CMD_MAE_COUNTERS_STREAM_START 24059 * Start streaming counter values, specifying an RxQ to deliver packets to. 24060 * Counters allocated to the calling function will be written in a round robin 24061 * at a fixed cycle rate, assuming sufficient credits are available. The driver 24062 * may cause the counter values to be written at a slower rate by constraining 24063 * the availability of credits. Note that if the driver wishes to deliver 24064 * packets to a different queue, it must call MAE_COUNTERS_STREAM_STOP to stop 24065 * delivering packets to the current queue first. 24066 */ 24067 #define MC_CMD_MAE_COUNTERS_STREAM_START 0x151 24068 #undef MC_CMD_0x151_PRIVILEGE_CTG 24069 24070 #define MC_CMD_0x151_PRIVILEGE_CTG SRIOV_CTG_MAE 24071 24072 /* MC_CMD_MAE_COUNTERS_STREAM_START_IN msgrequest: Using V1 is equivalent to V2 24073 * with COUNTER_TYPES_MASK=0x1 (i.e. AR counters only). 24074 */ 24075 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_LEN 8 24076 /* The RxQ to write packets to. */ 24077 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_QID_OFST 0 24078 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_QID_LEN 2 24079 /* Maximum size in bytes of packets that may be written to the RxQ. */ 24080 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_PACKET_SIZE_OFST 2 24081 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_PACKET_SIZE_LEN 2 24082 /* Optional flags. */ 24083 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_FLAGS_OFST 4 24084 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_FLAGS_LEN 4 24085 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_OFST 4 24086 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_LBN 0 24087 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_WIDTH 1 24088 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_OFST 4 24089 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_LBN 1 24090 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_WIDTH 1 24091 24092 /* MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN msgrequest */ 24093 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_LEN 12 24094 /* The RxQ to write packets to. */ 24095 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_QID_OFST 0 24096 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_QID_LEN 2 24097 /* Maximum size in bytes of packets that may be written to the RxQ. */ 24098 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_PACKET_SIZE_OFST 2 24099 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_PACKET_SIZE_LEN 2 24100 /* Optional flags. */ 24101 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_FLAGS_OFST 4 24102 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_FLAGS_LEN 4 24103 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_ZERO_SQUASH_DISABLE_OFST 4 24104 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_ZERO_SQUASH_DISABLE_LBN 0 24105 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_ZERO_SQUASH_DISABLE_WIDTH 1 24106 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_STALL_EN_OFST 4 24107 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_STALL_EN_LBN 1 24108 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_STALL_EN_WIDTH 1 24109 /* Mask of which counter types should be reported. Each bit position 24110 * corresponds to a value of the MAE_COUNTER_TYPE enum. For example a value of 24111 * 0x3 requests both AR and CT counters. A value of zero is invalid. Counter 24112 * types not selected by the mask value won't be included in the stream. If a 24113 * client wishes to change which counter types are reported, it must first call 24114 * MAE_COUNTERS_STREAM_STOP, then restart it with the new mask value. 24115 * Requesting a counter type which isn't supported by firmware (reported in 24116 * MC_CMD_MAE_GET_CAPS/COUNTER_TYPES_SUPPORTED) will result in ENOTSUP. 24117 */ 24118 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_TYPES_MASK_OFST 8 24119 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_TYPES_MASK_LEN 4 24120 24121 /* MC_CMD_MAE_COUNTERS_STREAM_START_OUT msgresponse */ 24122 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_LEN 4 24123 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_FLAGS_OFST 0 24124 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_FLAGS_LEN 4 24125 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_USES_CREDITS_OFST 0 24126 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_USES_CREDITS_LBN 0 24127 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_USES_CREDITS_WIDTH 1 24128 24129 24130 /***********************************/ 24131 /* MC_CMD_MAE_COUNTERS_STREAM_STOP 24132 * Stop streaming counter values to the specified RxQ. 24133 */ 24134 #define MC_CMD_MAE_COUNTERS_STREAM_STOP 0x152 24135 #undef MC_CMD_0x152_PRIVILEGE_CTG 24136 24137 #define MC_CMD_0x152_PRIVILEGE_CTG SRIOV_CTG_MAE 24138 24139 /* MC_CMD_MAE_COUNTERS_STREAM_STOP_IN msgrequest */ 24140 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_IN_LEN 2 24141 /* The RxQ to stop writing packets to. */ 24142 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_IN_QID_OFST 0 24143 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_IN_QID_LEN 2 24144 24145 /* MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT msgresponse */ 24146 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_LEN 4 24147 /* Generation count for AR counters. The final set of AR counter values will be 24148 * written out in packets with count == GENERATION_COUNT. An empty packet with 24149 * count > GENERATION_COUNT indicates that no more counter values of this type 24150 * will be written to this stream. GENERATION_COUNT_INVALID is reserved and 24151 * unused. 24152 */ 24153 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_GENERATION_COUNT_OFST 0 24154 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_GENERATION_COUNT_LEN 4 24155 24156 /* MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT msgresponse */ 24157 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LENMIN 4 24158 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LENMAX 32 24159 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LENMAX_MCDI2 32 24160 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LEN(num) (0+4*(num)) 24161 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_NUM(len) (((len)-0)/4) 24162 /* Array of generation counts, indexed by MAE_COUNTER_TYPE. Note that since 24163 * MAE_COUNTER_TYPE_AR==0, this response is backwards-compatible with V1. The 24164 * final set of counter values will be written out in packets with count == 24165 * GENERATION_COUNT. An empty packet with count > GENERATION_COUNT indicates 24166 * that no more counter values of this type will be written to this stream. 24167 * GENERATION_COUNT_INVALID is reserved and unused. 24168 */ 24169 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_OFST 0 24170 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_LEN 4 24171 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_MINNUM 1 24172 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_MAXNUM 8 24173 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_MAXNUM_MCDI2 8 24174 24175 24176 /***********************************/ 24177 /* MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS 24178 * Give a number of credits to the packetiser. Each credit received allows the 24179 * MC to write one packet to the RxQ, therefore for each credit the driver must 24180 * have written sufficient descriptors for a packet of length 24181 * MAE_COUNTERS_PACKETISER_STREAM_START/PACKET_SIZE and rung the doorbell. 24182 */ 24183 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS 0x153 24184 #undef MC_CMD_0x153_PRIVILEGE_CTG 24185 24186 #define MC_CMD_0x153_PRIVILEGE_CTG SRIOV_CTG_MAE 24187 24188 /* MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN msgrequest */ 24189 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_LEN 4 24190 /* Number of credits to give to the packetiser. */ 24191 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_NUM_CREDITS_OFST 0 24192 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_NUM_CREDITS_LEN 4 24193 24194 /* MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_OUT msgresponse */ 24195 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_OUT_LEN 0 24196 24197 24198 /***********************************/ 24199 /* MC_CMD_MAE_ENCAP_HEADER_ALLOC 24200 * Allocate an encapsulation header to be used in an Action Rule response. The 24201 * header must be constructed as a valid packet with 0-length payload. 24202 * Specifically, the L3/L4 lengths & checksums will only be incrementally fixed 24203 * by the NIC, rather than recomputed entirely. Currently only IPv4, IPv6 and 24204 * UDP are supported. If the maximum number of headers have already been 24205 * allocated then the command will fail with MC_CMD_ERR_ENOSPC. 24206 */ 24207 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC 0x148 24208 #undef MC_CMD_0x148_PRIVILEGE_CTG 24209 24210 #define MC_CMD_0x148_PRIVILEGE_CTG SRIOV_CTG_MAE 24211 24212 /* MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN msgrequest */ 24213 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMIN 4 24214 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMAX 252 24215 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMAX_MCDI2 1020 24216 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LEN(num) (4+1*(num)) 24217 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_NUM(len) (((len)-4)/1) 24218 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_ENCAP_TYPE_OFST 0 24219 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_ENCAP_TYPE_LEN 4 24220 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_OFST 4 24221 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_LEN 1 24222 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_MINNUM 0 24223 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_MAXNUM 248 24224 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_MAXNUM_MCDI2 1016 24225 24226 /* MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT msgresponse */ 24227 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_LEN 4 24228 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_ENCAP_HEADER_ID_OFST 0 24229 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_ENCAP_HEADER_ID_LEN 4 24230 /* enum: An encap metadata ID that is guaranteed never to represent real encap 24231 * metadata 24232 */ 24233 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_ENCAP_HEADER_ID_NULL 0xffffffff 24234 24235 24236 /***********************************/ 24237 /* MC_CMD_MAE_ENCAP_HEADER_UPDATE 24238 * Update encap action metadata. See comments for MAE_ENCAP_HEADER_ALLOC. 24239 */ 24240 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE 0x149 24241 #undef MC_CMD_0x149_PRIVILEGE_CTG 24242 24243 #define MC_CMD_0x149_PRIVILEGE_CTG SRIOV_CTG_MAE 24244 24245 /* MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN msgrequest */ 24246 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LENMIN 8 24247 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LENMAX 252 24248 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LENMAX_MCDI2 1020 24249 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LEN(num) (8+1*(num)) 24250 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_NUM(len) (((len)-8)/1) 24251 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_EH_ID_OFST 0 24252 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_EH_ID_LEN 4 24253 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_ENCAP_TYPE_OFST 4 24254 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_ENCAP_TYPE_LEN 4 24255 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_OFST 8 24256 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_LEN 1 24257 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_MINNUM 0 24258 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_MAXNUM 244 24259 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_MAXNUM_MCDI2 1012 24260 24261 /* MC_CMD_MAE_ENCAP_HEADER_UPDATE_OUT msgresponse */ 24262 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_OUT_LEN 0 24263 24264 24265 /***********************************/ 24266 /* MC_CMD_MAE_ENCAP_HEADER_FREE 24267 * Free encap action metadata 24268 */ 24269 #define MC_CMD_MAE_ENCAP_HEADER_FREE 0x14a 24270 #undef MC_CMD_0x14a_PRIVILEGE_CTG 24271 24272 #define MC_CMD_0x14a_PRIVILEGE_CTG SRIOV_CTG_MAE 24273 24274 /* MC_CMD_MAE_ENCAP_HEADER_FREE_IN msgrequest */ 24275 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMIN 4 24276 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMAX 128 24277 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMAX_MCDI2 128 24278 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LEN(num) (0+4*(num)) 24279 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_NUM(len) (((len)-0)/4) 24280 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 24281 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_OFST 0 24282 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_LEN 4 24283 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_MINNUM 1 24284 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_MAXNUM 32 24285 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_MAXNUM_MCDI2 32 24286 24287 /* MC_CMD_MAE_ENCAP_HEADER_FREE_OUT msgresponse */ 24288 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LENMIN 4 24289 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LENMAX 128 24290 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LENMAX_MCDI2 128 24291 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LEN(num) (0+4*(num)) 24292 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_NUM(len) (((len)-0)/4) 24293 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 24294 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_OFST 0 24295 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_LEN 4 24296 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_MINNUM 1 24297 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_MAXNUM 32 24298 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_MAXNUM_MCDI2 32 24299 24300 24301 /***********************************/ 24302 /* MC_CMD_MAE_MAC_ADDR_ALLOC 24303 * Allocate MAC address. Hardware implementations have MAC addresses programmed 24304 * into an indirection table, and clients should take care not to allocate the 24305 * same MAC address twice (but instead reuse its ID). If the maximum number of 24306 * MAC addresses have already been allocated then the command will fail with 24307 * MC_CMD_ERR_ENOSPC. 24308 */ 24309 #define MC_CMD_MAE_MAC_ADDR_ALLOC 0x15e 24310 #undef MC_CMD_0x15e_PRIVILEGE_CTG 24311 24312 #define MC_CMD_0x15e_PRIVILEGE_CTG SRIOV_CTG_MAE 24313 24314 /* MC_CMD_MAE_MAC_ADDR_ALLOC_IN msgrequest */ 24315 #define MC_CMD_MAE_MAC_ADDR_ALLOC_IN_LEN 6 24316 /* MAC address as bytes in network order. */ 24317 #define MC_CMD_MAE_MAC_ADDR_ALLOC_IN_MAC_ADDR_OFST 0 24318 #define MC_CMD_MAE_MAC_ADDR_ALLOC_IN_MAC_ADDR_LEN 6 24319 24320 /* MC_CMD_MAE_MAC_ADDR_ALLOC_OUT msgresponse */ 24321 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_LEN 4 24322 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_MAC_ID_OFST 0 24323 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_MAC_ID_LEN 4 24324 /* enum: An MAC address ID that is guaranteed never to represent a real MAC 24325 * address. 24326 */ 24327 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_MAC_ID_NULL 0xffffffff 24328 24329 24330 /***********************************/ 24331 /* MC_CMD_MAE_MAC_ADDR_FREE 24332 * Free MAC address. 24333 */ 24334 #define MC_CMD_MAE_MAC_ADDR_FREE 0x15f 24335 #undef MC_CMD_0x15f_PRIVILEGE_CTG 24336 24337 #define MC_CMD_0x15f_PRIVILEGE_CTG SRIOV_CTG_MAE 24338 24339 /* MC_CMD_MAE_MAC_ADDR_FREE_IN msgrequest */ 24340 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMIN 4 24341 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMAX 128 24342 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMAX_MCDI2 128 24343 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LEN(num) (0+4*(num)) 24344 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_NUM(len) (((len)-0)/4) 24345 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 24346 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_OFST 0 24347 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_LEN 4 24348 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_MINNUM 1 24349 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_MAXNUM 32 24350 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_MAXNUM_MCDI2 32 24351 24352 /* MC_CMD_MAE_MAC_ADDR_FREE_OUT msgresponse */ 24353 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LENMIN 4 24354 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LENMAX 128 24355 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LENMAX_MCDI2 128 24356 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LEN(num) (0+4*(num)) 24357 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_NUM(len) (((len)-0)/4) 24358 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 24359 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_OFST 0 24360 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_LEN 4 24361 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_MINNUM 1 24362 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_MAXNUM 32 24363 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_MAXNUM_MCDI2 32 24364 24365 24366 /***********************************/ 24367 /* MC_CMD_MAE_ACTION_SET_ALLOC 24368 * Allocate an action set, which can be referenced either in response to an 24369 * Action Rule, or as part of an Action Set List. If the maxmimum number of 24370 * action sets have already been allocated then the command will fail with 24371 * MC_CMD_ERR_ENOSPC. 24372 */ 24373 #define MC_CMD_MAE_ACTION_SET_ALLOC 0x14d 24374 #undef MC_CMD_0x14d_PRIVILEGE_CTG 24375 24376 #define MC_CMD_0x14d_PRIVILEGE_CTG SRIOV_CTG_MAE 24377 24378 /* MC_CMD_MAE_ACTION_SET_ALLOC_IN msgrequest */ 24379 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LEN 44 24380 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAGS_OFST 0 24381 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAGS_LEN 4 24382 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_PUSH_OFST 0 24383 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_PUSH_LBN 0 24384 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_PUSH_WIDTH 2 24385 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_POP_OFST 0 24386 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_POP_LBN 4 24387 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_POP_WIDTH 2 24388 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DECAP_OFST 0 24389 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DECAP_LBN 8 24390 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DECAP_WIDTH 1 24391 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_OFST 0 24392 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_LBN 9 24393 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_WIDTH 1 24394 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAG_OFST 0 24395 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAG_LBN 10 24396 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAG_WIDTH 1 24397 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_NAT_OFST 0 24398 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_NAT_LBN 11 24399 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_NAT_WIDTH 1 24400 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_DECR_IP_TTL_OFST 0 24401 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_DECR_IP_TTL_LBN 12 24402 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_DECR_IP_TTL_WIDTH 1 24403 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_SRC_MPORT_OFST 0 24404 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_SRC_MPORT_LBN 13 24405 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_SRC_MPORT_WIDTH 1 24406 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SUPPRESS_SELF_DELIVERY_OFST 0 24407 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SUPPRESS_SELF_DELIVERY_LBN 14 24408 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SUPPRESS_SELF_DELIVERY_WIDTH 1 24409 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_C_PL_OFST 0 24410 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_C_PL_LBN 15 24411 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_C_PL_WIDTH 1 24412 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_D_PL_OFST 0 24413 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_D_PL_LBN 16 24414 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_D_PL_WIDTH 1 24415 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_OFST 0 24416 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_LBN 17 24417 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_WIDTH 1 24418 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_NET_CHAN_OFST 0 24419 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_NET_CHAN_LBN 18 24420 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_NET_CHAN_WIDTH 1 24421 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LACP_PLUGIN_OFST 0 24422 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LACP_PLUGIN_LBN 19 24423 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LACP_PLUGIN_WIDTH 1 24424 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LACP_INC_L4_OFST 0 24425 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LACP_INC_L4_LBN 20 24426 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LACP_INC_L4_WIDTH 1 24427 /* If VLAN_PUSH >= 1, TCI value to be inserted as outermost VLAN. */ 24428 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_TCI_BE_OFST 4 24429 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_TCI_BE_LEN 2 24430 /* If VLAN_PUSH >= 1, TPID value to be inserted as outermost VLAN. */ 24431 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_PROTO_BE_OFST 6 24432 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_PROTO_BE_LEN 2 24433 /* If VLAN_PUSH == 2, inner TCI value to be inserted. */ 24434 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_TCI_BE_OFST 8 24435 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_TCI_BE_LEN 2 24436 /* If VLAN_PUSH == 2, inner TPID value to be inserted. */ 24437 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_PROTO_BE_OFST 10 24438 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_PROTO_BE_LEN 2 24439 /* Reserved. Ignored by firmware. Should be set to zero or 0xffffffff. */ 24440 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_RSVD_OFST 12 24441 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_RSVD_LEN 4 24442 /* Set to ENCAP_HEADER_ID_NULL to request no encap action */ 24443 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_ENCAP_HEADER_ID_OFST 16 24444 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_ENCAP_HEADER_ID_LEN 4 24445 /* An m-port selector identifying the m-port that the modified packet should be 24446 * delivered to. Set to MPORT_SELECTOR_NULL to request no delivery of the 24447 * packet. 24448 */ 24449 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DELIVER_OFST 20 24450 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DELIVER_LEN 4 24451 /* Allows an action set to trigger several counter updates. Set to 24452 * MAE_COUNTER_ID_NULL to request no counter action. 24453 */ 24454 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_LIST_ID_OFST 24 24455 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_LIST_ID_LEN 4 24456 /* Enum values, see field(s): */ 24457 /* MAE_COUNTER_ID */ 24458 /* If a driver only wished to update one counter within this action set, then 24459 * it can supply a COUNTER_ID instead of allocating a single-element counter 24460 * list. The ID must have been allocated with COUNTER_TYPE=AR. This field 24461 * should be set to MAE_COUNTER_ID_NULL if this behaviour is not required. It 24462 * is not valid to supply a non-NULL value for both COUNTER_LIST_ID and 24463 * COUNTER_ID. 24464 */ 24465 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_ID_OFST 28 24466 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_ID_LEN 4 24467 /* Enum values, see field(s): */ 24468 /* MAE_COUNTER_ID */ 24469 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_VALUE_OFST 32 24470 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_VALUE_LEN 4 24471 /* Set to MAC_ID_NULL to request no source MAC replacement. */ 24472 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SRC_MAC_ID_OFST 36 24473 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SRC_MAC_ID_LEN 4 24474 /* Set to MAC_ID_NULL to request no destination MAC replacement. */ 24475 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DST_MAC_ID_OFST 40 24476 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DST_MAC_ID_LEN 4 24477 24478 /* MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN msgrequest: Only supported if 24479 * MAE_ACTION_SET_ALLOC_V2_SUPPORTED is advertised in 24480 * MC_CMD_GET_CAPABILITIES_V7_OUT. 24481 */ 24482 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LEN 51 24483 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAGS_OFST 0 24484 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAGS_LEN 4 24485 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_PUSH_OFST 0 24486 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_PUSH_LBN 0 24487 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_PUSH_WIDTH 2 24488 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_POP_OFST 0 24489 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_POP_LBN 4 24490 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_POP_WIDTH 2 24491 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DECAP_OFST 0 24492 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DECAP_LBN 8 24493 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DECAP_WIDTH 1 24494 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_OFST 0 24495 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_LBN 9 24496 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_WIDTH 1 24497 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAG_OFST 0 24498 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAG_LBN 10 24499 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAG_WIDTH 1 24500 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_NAT_OFST 0 24501 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_NAT_LBN 11 24502 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_NAT_WIDTH 1 24503 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DECR_IP_TTL_OFST 0 24504 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DECR_IP_TTL_LBN 12 24505 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DECR_IP_TTL_WIDTH 1 24506 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_SRC_MPORT_OFST 0 24507 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_SRC_MPORT_LBN 13 24508 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_SRC_MPORT_WIDTH 1 24509 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SUPPRESS_SELF_DELIVERY_OFST 0 24510 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SUPPRESS_SELF_DELIVERY_LBN 14 24511 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SUPPRESS_SELF_DELIVERY_WIDTH 1 24512 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_C_PL_OFST 0 24513 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_C_PL_LBN 15 24514 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_C_PL_WIDTH 1 24515 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_D_PL_OFST 0 24516 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_D_PL_LBN 16 24517 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_D_PL_WIDTH 1 24518 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_OFST 0 24519 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_LBN 17 24520 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_WIDTH 1 24521 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_NET_CHAN_OFST 0 24522 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_NET_CHAN_LBN 18 24523 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_NET_CHAN_WIDTH 1 24524 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LACP_PLUGIN_OFST 0 24525 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LACP_PLUGIN_LBN 19 24526 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LACP_PLUGIN_WIDTH 1 24527 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LACP_INC_L4_OFST 0 24528 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LACP_INC_L4_LBN 20 24529 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LACP_INC_L4_WIDTH 1 24530 /* If VLAN_PUSH >= 1, TCI value to be inserted as outermost VLAN. */ 24531 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_TCI_BE_OFST 4 24532 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_TCI_BE_LEN 2 24533 /* If VLAN_PUSH >= 1, TPID value to be inserted as outermost VLAN. */ 24534 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_PROTO_BE_OFST 6 24535 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_PROTO_BE_LEN 2 24536 /* If VLAN_PUSH == 2, inner TCI value to be inserted. */ 24537 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN1_TCI_BE_OFST 8 24538 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN1_TCI_BE_LEN 2 24539 /* If VLAN_PUSH == 2, inner TPID value to be inserted. */ 24540 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN1_PROTO_BE_OFST 10 24541 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN1_PROTO_BE_LEN 2 24542 /* Reserved. Ignored by firmware. Should be set to zero or 0xffffffff. */ 24543 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_RSVD_OFST 12 24544 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_RSVD_LEN 4 24545 /* Set to ENCAP_HEADER_ID_NULL to request no encap action */ 24546 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ENCAP_HEADER_ID_OFST 16 24547 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ENCAP_HEADER_ID_LEN 4 24548 /* An m-port selector identifying the m-port that the modified packet should be 24549 * delivered to. Set to MPORT_SELECTOR_NULL to request no delivery of the 24550 * packet. 24551 */ 24552 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DELIVER_OFST 20 24553 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DELIVER_LEN 4 24554 /* Allows an action set to trigger several counter updates. Set to 24555 * MAE_COUNTER_ID_NULL to request no counter action. 24556 */ 24557 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_LIST_ID_OFST 24 24558 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_LIST_ID_LEN 4 24559 /* Enum values, see field(s): */ 24560 /* MAE_COUNTER_ID */ 24561 /* If a driver only wished to update one counter within this action set, then 24562 * it can supply a COUNTER_ID instead of allocating a single-element counter 24563 * list. The ID must have been allocated with COUNTER_TYPE=AR. This field 24564 * should be set to MAE_COUNTER_ID_NULL if this behaviour is not required. It 24565 * is not valid to supply a non-NULL value for both COUNTER_LIST_ID and 24566 * COUNTER_ID. 24567 */ 24568 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_ID_OFST 28 24569 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_ID_LEN 4 24570 /* Enum values, see field(s): */ 24571 /* MAE_COUNTER_ID */ 24572 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_VALUE_OFST 32 24573 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_VALUE_LEN 4 24574 /* Set to MAC_ID_NULL to request no source MAC replacement. */ 24575 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SRC_MAC_ID_OFST 36 24576 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SRC_MAC_ID_LEN 4 24577 /* Set to MAC_ID_NULL to request no destination MAC replacement. */ 24578 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DST_MAC_ID_OFST 40 24579 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DST_MAC_ID_LEN 4 24580 /* Source m-port ID to be reported for DO_SET_SRC_MPORT action. */ 24581 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_REPORTED_SRC_MPORT_OFST 44 24582 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_REPORTED_SRC_MPORT_LEN 4 24583 /* Actions for modifying the Differentiated Services Code-Point (DSCP) bits 24584 * within IPv4 and IPv6 headers. 24585 */ 24586 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_CONTROL_OFST 48 24587 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_CONTROL_LEN 2 24588 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_ENCAP_COPY_OFST 48 24589 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_ENCAP_COPY_LBN 0 24590 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_ENCAP_COPY_WIDTH 1 24591 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_DECAP_COPY_OFST 48 24592 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_DECAP_COPY_LBN 1 24593 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_DECAP_COPY_WIDTH 1 24594 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_DSCP_OFST 48 24595 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_DSCP_LBN 2 24596 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_DSCP_WIDTH 1 24597 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_VALUE_OFST 48 24598 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_VALUE_LBN 3 24599 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_VALUE_WIDTH 6 24600 /* Actions for modifying the Explicit Congestion Notification (ECN) bits within 24601 * IPv4 and IPv6 headers. 24602 */ 24603 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_CONTROL_OFST 50 24604 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_CONTROL_LEN 1 24605 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_ENCAP_COPY_OFST 50 24606 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_ENCAP_COPY_LBN 0 24607 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_ENCAP_COPY_WIDTH 1 24608 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_DECAP_COPY_OFST 50 24609 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_DECAP_COPY_LBN 1 24610 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_DECAP_COPY_WIDTH 1 24611 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_ECN_OFST 50 24612 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_ECN_LBN 2 24613 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_ECN_WIDTH 1 24614 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_VALUE_OFST 50 24615 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_VALUE_LBN 3 24616 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_VALUE_WIDTH 2 24617 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_0_TO_CE_OFST 50 24618 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_0_TO_CE_LBN 5 24619 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_0_TO_CE_WIDTH 1 24620 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_1_TO_CE_OFST 50 24621 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_1_TO_CE_LBN 6 24622 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_1_TO_CE_WIDTH 1 24623 24624 /* MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN msgrequest: Only supported if 24625 * MAE_ACTION_SET_ALLOC_V3_SUPPORTED is advertised in 24626 * MC_CMD_GET_CAPABILITIES_V10_OUT. 24627 */ 24628 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_LEN 53 24629 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_FLAGS_OFST 0 24630 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_FLAGS_LEN 4 24631 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN_PUSH_OFST 0 24632 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN_PUSH_LBN 0 24633 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN_PUSH_WIDTH 2 24634 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN_POP_OFST 0 24635 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN_POP_LBN 4 24636 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN_POP_WIDTH 2 24637 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DECAP_OFST 0 24638 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DECAP_LBN 8 24639 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DECAP_WIDTH 1 24640 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_MARK_OFST 0 24641 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_MARK_LBN 9 24642 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_MARK_WIDTH 1 24643 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_FLAG_OFST 0 24644 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_FLAG_LBN 10 24645 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_FLAG_WIDTH 1 24646 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_NAT_OFST 0 24647 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_NAT_LBN 11 24648 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_NAT_WIDTH 1 24649 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DECR_IP_TTL_OFST 0 24650 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DECR_IP_TTL_LBN 12 24651 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DECR_IP_TTL_WIDTH 1 24652 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_SET_SRC_MPORT_OFST 0 24653 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_SET_SRC_MPORT_LBN 13 24654 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_SET_SRC_MPORT_WIDTH 1 24655 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_SUPPRESS_SELF_DELIVERY_OFST 0 24656 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_SUPPRESS_SELF_DELIVERY_LBN 14 24657 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_SUPPRESS_SELF_DELIVERY_WIDTH 1 24658 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_C_PL_OFST 0 24659 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_C_PL_LBN 15 24660 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_C_PL_WIDTH 1 24661 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_D_PL_OFST 0 24662 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_D_PL_LBN 16 24663 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_D_PL_WIDTH 1 24664 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_OFST 0 24665 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_LBN 17 24666 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_WIDTH 1 24667 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_SET_NET_CHAN_OFST 0 24668 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_SET_NET_CHAN_LBN 18 24669 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_SET_NET_CHAN_WIDTH 1 24670 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_LACP_PLUGIN_OFST 0 24671 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_LACP_PLUGIN_LBN 19 24672 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_LACP_PLUGIN_WIDTH 1 24673 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_LACP_INC_L4_OFST 0 24674 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_LACP_INC_L4_LBN 20 24675 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_LACP_INC_L4_WIDTH 1 24676 /* If VLAN_PUSH >= 1, TCI value to be inserted as outermost VLAN. */ 24677 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN0_TCI_BE_OFST 4 24678 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN0_TCI_BE_LEN 2 24679 /* If VLAN_PUSH >= 1, TPID value to be inserted as outermost VLAN. */ 24680 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN0_PROTO_BE_OFST 6 24681 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN0_PROTO_BE_LEN 2 24682 /* If VLAN_PUSH == 2, inner TCI value to be inserted. */ 24683 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN1_TCI_BE_OFST 8 24684 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN1_TCI_BE_LEN 2 24685 /* If VLAN_PUSH == 2, inner TPID value to be inserted. */ 24686 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN1_PROTO_BE_OFST 10 24687 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN1_PROTO_BE_LEN 2 24688 /* Reserved. Ignored by firmware. Should be set to zero or 0xffffffff. */ 24689 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RSVD_OFST 12 24690 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RSVD_LEN 4 24691 /* Set to ENCAP_HEADER_ID_NULL to request no encap action */ 24692 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ENCAP_HEADER_ID_OFST 16 24693 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ENCAP_HEADER_ID_LEN 4 24694 /* An m-port selector identifying the m-port that the modified packet should be 24695 * delivered to. Set to MPORT_SELECTOR_NULL to request no delivery of the 24696 * packet. 24697 */ 24698 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DELIVER_OFST 20 24699 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DELIVER_LEN 4 24700 /* Allows an action set to trigger several counter updates. Set to 24701 * MAE_COUNTER_ID_NULL to request no counter action. 24702 */ 24703 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_COUNTER_LIST_ID_OFST 24 24704 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_COUNTER_LIST_ID_LEN 4 24705 /* Enum values, see field(s): */ 24706 /* MAE_COUNTER_ID */ 24707 /* If a driver only wished to update one counter within this action set, then 24708 * it can supply a COUNTER_ID instead of allocating a single-element counter 24709 * list. The ID must have been allocated with COUNTER_TYPE=AR. This field 24710 * should be set to MAE_COUNTER_ID_NULL if this behaviour is not required. It 24711 * is not valid to supply a non-NULL value for both COUNTER_LIST_ID and 24712 * COUNTER_ID. 24713 */ 24714 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_COUNTER_ID_OFST 28 24715 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_COUNTER_ID_LEN 4 24716 /* Enum values, see field(s): */ 24717 /* MAE_COUNTER_ID */ 24718 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_MARK_VALUE_OFST 32 24719 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_MARK_VALUE_LEN 4 24720 /* Set to MAC_ID_NULL to request no source MAC replacement. */ 24721 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_SRC_MAC_ID_OFST 36 24722 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_SRC_MAC_ID_LEN 4 24723 /* Set to MAC_ID_NULL to request no destination MAC replacement. */ 24724 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DST_MAC_ID_OFST 40 24725 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DST_MAC_ID_LEN 4 24726 /* Source m-port ID to be reported for DO_SET_SRC_MPORT action. */ 24727 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_REPORTED_SRC_MPORT_OFST 44 24728 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_REPORTED_SRC_MPORT_LEN 4 24729 /* Actions for modifying the Differentiated Services Code-Point (DSCP) bits 24730 * within IPv4 and IPv6 headers. 24731 */ 24732 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DSCP_CONTROL_OFST 48 24733 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DSCP_CONTROL_LEN 2 24734 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DSCP_ENCAP_COPY_OFST 48 24735 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DSCP_ENCAP_COPY_LBN 0 24736 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DSCP_ENCAP_COPY_WIDTH 1 24737 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DSCP_DECAP_COPY_OFST 48 24738 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DSCP_DECAP_COPY_LBN 1 24739 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DSCP_DECAP_COPY_WIDTH 1 24740 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_DSCP_OFST 48 24741 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_DSCP_LBN 2 24742 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_DSCP_WIDTH 1 24743 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DSCP_VALUE_OFST 48 24744 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DSCP_VALUE_LBN 3 24745 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DSCP_VALUE_WIDTH 6 24746 /* Actions for modifying the Explicit Congestion Notification (ECN) bits within 24747 * IPv4 and IPv6 headers. 24748 */ 24749 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_CONTROL_OFST 50 24750 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_CONTROL_LEN 1 24751 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_ECN_ENCAP_COPY_OFST 50 24752 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_ECN_ENCAP_COPY_LBN 0 24753 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_ECN_ENCAP_COPY_WIDTH 1 24754 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_ECN_DECAP_COPY_OFST 50 24755 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_ECN_DECAP_COPY_LBN 1 24756 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_ECN_DECAP_COPY_WIDTH 1 24757 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_ECN_OFST 50 24758 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_ECN_LBN 2 24759 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_ECN_WIDTH 1 24760 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_VALUE_OFST 50 24761 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_VALUE_LBN 3 24762 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_VALUE_WIDTH 2 24763 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_ECT_0_TO_CE_OFST 50 24764 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_ECT_0_TO_CE_LBN 5 24765 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_ECT_0_TO_CE_WIDTH 1 24766 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_ECT_1_TO_CE_OFST 50 24767 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_ECT_1_TO_CE_LBN 6 24768 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_ECT_1_TO_CE_WIDTH 1 24769 /* Actions for overwriting CH_ROUTE subfields. */ 24770 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_OVERWRITE_OFST 51 24771 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_OVERWRITE_LEN 1 24772 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_C_PL_OFST 51 24773 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_C_PL_LBN 0 24774 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_C_PL_WIDTH 1 24775 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_D_PL_OFST 51 24776 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_D_PL_LBN 1 24777 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_D_PL_WIDTH 1 24778 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_PL_CHAN_OFST 51 24779 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_PL_CHAN_LBN 2 24780 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_PL_CHAN_WIDTH 1 24781 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_OUT_HOST_CHAN_OFST 51 24782 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_OUT_HOST_CHAN_LBN 3 24783 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_OUT_HOST_CHAN_WIDTH 1 24784 /* Override outgoing CH_VC to network port for DO_SET_NET_CHAN action. Cannot 24785 * be used in conjunction with DO_SET_SRC_MPORT action. 24786 */ 24787 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_NET_CHAN_OFST 52 24788 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_NET_CHAN_LEN 1 24789 24790 /* MC_CMD_MAE_ACTION_SET_ALLOC_OUT msgresponse */ 24791 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_LEN 4 24792 /* The MSB of the AS_ID is guaranteed to be clear if the ID is not 24793 * ACTION_SET_ID_NULL. This allows an AS_ID to be distinguished from an ASL_ID 24794 * returned from MC_CMD_MAE_ACTION_SET_LIST_ALLOC. 24795 */ 24796 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_AS_ID_OFST 0 24797 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_AS_ID_LEN 4 24798 /* enum: An action set ID that is guaranteed never to represent an action set 24799 */ 24800 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_ACTION_SET_ID_NULL 0xffffffff 24801 24802 24803 /***********************************/ 24804 /* MC_CMD_MAE_ACTION_SET_FREE 24805 */ 24806 #define MC_CMD_MAE_ACTION_SET_FREE 0x14e 24807 #undef MC_CMD_0x14e_PRIVILEGE_CTG 24808 24809 #define MC_CMD_0x14e_PRIVILEGE_CTG SRIOV_CTG_MAE 24810 24811 /* MC_CMD_MAE_ACTION_SET_FREE_IN msgrequest */ 24812 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMIN 4 24813 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMAX 128 24814 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMAX_MCDI2 128 24815 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LEN(num) (0+4*(num)) 24816 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_NUM(len) (((len)-0)/4) 24817 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 24818 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_OFST 0 24819 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_LEN 4 24820 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_MINNUM 1 24821 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_MAXNUM 32 24822 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_MAXNUM_MCDI2 32 24823 24824 /* MC_CMD_MAE_ACTION_SET_FREE_OUT msgresponse */ 24825 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LENMIN 4 24826 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LENMAX 128 24827 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LENMAX_MCDI2 128 24828 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LEN(num) (0+4*(num)) 24829 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_NUM(len) (((len)-0)/4) 24830 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 24831 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_OFST 0 24832 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_LEN 4 24833 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_MINNUM 1 24834 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_MAXNUM 32 24835 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_MAXNUM_MCDI2 32 24836 24837 24838 /***********************************/ 24839 /* MC_CMD_MAE_ACTION_SET_LIST_ALLOC 24840 * Allocate an action set list (ASL) that can be referenced by an ID. The ASL 24841 * ID can be used when inserting an action rule, so that for each packet 24842 * matching the rule every action set in the list is applied. If the maximum 24843 * number of ASLs have already been allocated then the command will fail with 24844 * MC_CMD_ERR_ENOSPC. 24845 */ 24846 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC 0x14f 24847 #undef MC_CMD_0x14f_PRIVILEGE_CTG 24848 24849 #define MC_CMD_0x14f_PRIVILEGE_CTG SRIOV_CTG_MAE 24850 24851 /* MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN msgrequest */ 24852 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LENMIN 8 24853 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LENMAX 252 24854 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LENMAX_MCDI2 1020 24855 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LEN(num) (4+4*(num)) 24856 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_NUM(len) (((len)-4)/4) 24857 /* Number of elements in the AS_IDS field. */ 24858 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_COUNT_OFST 0 24859 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_COUNT_LEN 4 24860 /* The IDs of the action sets in this list. The last element of this list may 24861 * be the ID of an already allocated ASL. In this case the action sets from the 24862 * already allocated ASL will be applied after the action sets supplied by this 24863 * request. This mechanism can be used to reduce resource usage in the case 24864 * where one ASL is a sublist of another ASL. The sublist should be allocated 24865 * first, then the superlist should be allocated by supplying all required 24866 * action set IDs that are not in the sublist followed by the ID of the 24867 * sublist. One sublist can be referenced by multiple superlists. 24868 */ 24869 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_OFST 4 24870 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_LEN 4 24871 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_MINNUM 1 24872 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_MAXNUM 62 24873 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_MAXNUM_MCDI2 254 24874 24875 /* MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT msgresponse */ 24876 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_LEN 4 24877 /* The MSB of the ASL_ID is guaranteed to be set. This allows an ASL_ID to be 24878 * distinguished from an AS_ID returned from MC_CMD_MAE_ACTION_SET_ALLOC. 24879 */ 24880 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_ASL_ID_OFST 0 24881 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_ASL_ID_LEN 4 24882 /* enum: An action set list ID that is guaranteed never to represent an action 24883 * set list 24884 */ 24885 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_ACTION_SET_LIST_ID_NULL 0xffffffff 24886 24887 24888 /***********************************/ 24889 /* MC_CMD_MAE_ACTION_SET_LIST_FREE 24890 * Free match-action-engine redirect_lists 24891 */ 24892 #define MC_CMD_MAE_ACTION_SET_LIST_FREE 0x150 24893 #undef MC_CMD_0x150_PRIVILEGE_CTG 24894 24895 #define MC_CMD_0x150_PRIVILEGE_CTG SRIOV_CTG_MAE 24896 24897 /* MC_CMD_MAE_ACTION_SET_LIST_FREE_IN msgrequest */ 24898 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMIN 4 24899 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMAX 128 24900 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMAX_MCDI2 128 24901 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LEN(num) (0+4*(num)) 24902 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_NUM(len) (((len)-0)/4) 24903 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 24904 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_OFST 0 24905 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_LEN 4 24906 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_MINNUM 1 24907 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_MAXNUM 32 24908 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_MAXNUM_MCDI2 32 24909 24910 /* MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT msgresponse */ 24911 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LENMIN 4 24912 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LENMAX 128 24913 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LENMAX_MCDI2 128 24914 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LEN(num) (0+4*(num)) 24915 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_NUM(len) (((len)-0)/4) 24916 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 24917 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_OFST 0 24918 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_LEN 4 24919 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_MINNUM 1 24920 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_MAXNUM 32 24921 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_MAXNUM_MCDI2 32 24922 24923 24924 /***********************************/ 24925 /* MC_CMD_MAE_OUTER_RULE_INSERT 24926 * Inserts an Outer Rule, which controls encapsulation parsing, and may 24927 * influence the Lookup Sequence. If the maximum number of rules have already 24928 * been inserted then the command will fail with MC_CMD_ERR_ENOSPC. 24929 */ 24930 #define MC_CMD_MAE_OUTER_RULE_INSERT 0x15a 24931 #undef MC_CMD_0x15a_PRIVILEGE_CTG 24932 24933 #define MC_CMD_0x15a_PRIVILEGE_CTG SRIOV_CTG_MAE 24934 24935 /* MC_CMD_MAE_OUTER_RULE_INSERT_IN msgrequest */ 24936 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LENMIN 16 24937 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LENMAX 252 24938 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LENMAX_MCDI2 1020 24939 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LEN(num) (16+1*(num)) 24940 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_NUM(len) (((len)-16)/1) 24941 /* Packets matching the rule will be parsed with this encapsulation. */ 24942 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ENCAP_TYPE_OFST 0 24943 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ENCAP_TYPE_LEN 4 24944 /* Enum values, see field(s): */ 24945 /* MAE_MCDI_ENCAP_TYPE */ 24946 /* Match priority. Lower values have higher priority. Must be less than 24947 * MC_CMD_MAE_GET_CAPS_OUT.ENCAP_PRIOS If a packet matches two filters with 24948 * equal priority then it is unspecified which takes priority. 24949 */ 24950 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_PRIO_OFST 4 24951 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_PRIO_LEN 4 24952 /* Deprecated alias for ACTION_CONTROL. */ 24953 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LOOKUP_CONTROL_OFST 8 24954 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LOOKUP_CONTROL_LEN 4 24955 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_CT_OFST 8 24956 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_CT_LBN 0 24957 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_CT_WIDTH 1 24958 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_VNI_MODE_OFST 8 24959 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_VNI_MODE_LBN 1 24960 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_VNI_MODE_WIDTH 2 24961 /* Enum values, see field(s): */ 24962 /* MAE_CT_VNI_MODE */ 24963 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_COUNT_OFST 8 24964 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_COUNT_LBN 3 24965 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_COUNT_WIDTH 1 24966 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_TCP_FLAGS_INHIBIT_OFST 8 24967 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_TCP_FLAGS_INHIBIT_LBN 4 24968 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_TCP_FLAGS_INHIBIT_WIDTH 1 24969 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RECIRC_ID_OFST 8 24970 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RECIRC_ID_LBN 8 24971 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RECIRC_ID_WIDTH 8 24972 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_DOMAIN_OFST 8 24973 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_DOMAIN_LBN 16 24974 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_DOMAIN_WIDTH 16 24975 /* This field controls the actions that are performed when a rule is hit. */ 24976 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ACTION_CONTROL_OFST 8 24977 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ACTION_CONTROL_LEN 4 24978 /* ID of counter to increment when the rule is hit. Only used if the DO_COUNT 24979 * flag is set. The ID must have been allocated with COUNTER_TYPE=OR. 24980 */ 24981 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_COUNTER_ID_OFST 12 24982 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_COUNTER_ID_LEN 4 24983 /* Structure of the format MAE_ENC_FIELD_PAIRS. */ 24984 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_OFST 16 24985 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_LEN 1 24986 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_MINNUM 0 24987 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_MAXNUM 236 24988 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_MAXNUM_MCDI2 1004 24989 24990 /* MC_CMD_MAE_OUTER_RULE_INSERT_OUT msgresponse */ 24991 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_LEN 4 24992 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_OR_ID_OFST 0 24993 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_OR_ID_LEN 4 24994 /* enum: An outer match ID that is guaranteed never to represent an outer match 24995 */ 24996 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_OUTER_RULE_ID_NULL 0xffffffff 24997 24998 24999 /***********************************/ 25000 /* MC_CMD_MAE_OUTER_RULE_REMOVE 25001 */ 25002 #define MC_CMD_MAE_OUTER_RULE_REMOVE 0x15b 25003 #undef MC_CMD_0x15b_PRIVILEGE_CTG 25004 25005 #define MC_CMD_0x15b_PRIVILEGE_CTG SRIOV_CTG_MAE 25006 25007 /* MC_CMD_MAE_OUTER_RULE_REMOVE_IN msgrequest */ 25008 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMIN 4 25009 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMAX 128 25010 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMAX_MCDI2 128 25011 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LEN(num) (0+4*(num)) 25012 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_NUM(len) (((len)-0)/4) 25013 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 25014 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_OFST 0 25015 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_LEN 4 25016 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_MINNUM 1 25017 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_MAXNUM 32 25018 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_MAXNUM_MCDI2 32 25019 25020 /* MC_CMD_MAE_OUTER_RULE_REMOVE_OUT msgresponse */ 25021 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LENMIN 4 25022 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LENMAX 128 25023 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LENMAX_MCDI2 128 25024 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LEN(num) (0+4*(num)) 25025 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_NUM(len) (((len)-0)/4) 25026 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 25027 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_OFST 0 25028 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_LEN 4 25029 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_MINNUM 1 25030 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_MAXNUM 32 25031 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_MAXNUM_MCDI2 32 25032 25033 /* MAE_ACTION_RULE_RESPONSE structuredef */ 25034 #define MAE_ACTION_RULE_RESPONSE_LEN 16 25035 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_OFST 0 25036 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_LEN 4 25037 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_LBN 0 25038 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_WIDTH 32 25039 /* Only one of ASL_ID or AS_ID may have a non-NULL value. */ 25040 #define MAE_ACTION_RULE_RESPONSE_AS_ID_OFST 4 25041 #define MAE_ACTION_RULE_RESPONSE_AS_ID_LEN 4 25042 #define MAE_ACTION_RULE_RESPONSE_AS_ID_LBN 32 25043 #define MAE_ACTION_RULE_RESPONSE_AS_ID_WIDTH 32 25044 /* Controls lookup flow when this rule is hit. See sub-fields for details. More 25045 * info on the lookup sequence can be found in SF-122976-TC. It is an error to 25046 * set both DO_CT and DO_RECIRC. 25047 */ 25048 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_OFST 8 25049 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_LEN 4 25050 #define MAE_ACTION_RULE_RESPONSE_DO_CT_OFST 8 25051 #define MAE_ACTION_RULE_RESPONSE_DO_CT_LBN 0 25052 #define MAE_ACTION_RULE_RESPONSE_DO_CT_WIDTH 1 25053 #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_OFST 8 25054 #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_LBN 1 25055 #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_WIDTH 1 25056 #define MAE_ACTION_RULE_RESPONSE_CT_VNI_MODE_OFST 8 25057 #define MAE_ACTION_RULE_RESPONSE_CT_VNI_MODE_LBN 2 25058 #define MAE_ACTION_RULE_RESPONSE_CT_VNI_MODE_WIDTH 2 25059 /* Enum values, see field(s): */ 25060 /* MAE_CT_VNI_MODE */ 25061 #define MAE_ACTION_RULE_RESPONSE_RECIRC_ID_OFST 8 25062 #define MAE_ACTION_RULE_RESPONSE_RECIRC_ID_LBN 8 25063 #define MAE_ACTION_RULE_RESPONSE_RECIRC_ID_WIDTH 8 25064 #define MAE_ACTION_RULE_RESPONSE_CT_DOMAIN_OFST 8 25065 #define MAE_ACTION_RULE_RESPONSE_CT_DOMAIN_LBN 16 25066 #define MAE_ACTION_RULE_RESPONSE_CT_DOMAIN_WIDTH 16 25067 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_LBN 64 25068 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_WIDTH 32 25069 /* Counter ID to increment if DO_CT or DO_RECIRC is set. Must be set to 25070 * COUNTER_ID_NULL otherwise. Counter ID must have been allocated with 25071 * COUNTER_TYPE=AR. 25072 */ 25073 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_OFST 12 25074 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_LEN 4 25075 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_LBN 96 25076 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_WIDTH 32 25077 25078 25079 /***********************************/ 25080 /* MC_CMD_MAE_ACTION_RULE_INSERT 25081 * Insert a rule specify that packets matching a filter be processed according 25082 * to a previous allocated action. Masks can be set as indicated by 25083 * MC_CMD_MAE_GET_MATCH_FIELD_CAPABILITIES. If the maximum number of rules have 25084 * already been inserted then the command will fail with MC_CMD_ERR_ENOSPC. 25085 */ 25086 #define MC_CMD_MAE_ACTION_RULE_INSERT 0x15c 25087 #undef MC_CMD_0x15c_PRIVILEGE_CTG 25088 25089 #define MC_CMD_0x15c_PRIVILEGE_CTG SRIOV_CTG_MAE 25090 25091 /* MC_CMD_MAE_ACTION_RULE_INSERT_IN msgrequest */ 25092 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LENMIN 28 25093 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LENMAX 252 25094 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LENMAX_MCDI2 1020 25095 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LEN(num) (28+1*(num)) 25096 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_NUM(len) (((len)-28)/1) 25097 /* See MC_CMD_MAE_OUTER_RULE_REGISTER_IN/PRIO. */ 25098 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_PRIO_OFST 0 25099 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_PRIO_LEN 4 25100 /* Structure of the format MAE_ACTION_RULE_RESPONSE */ 25101 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RESPONSE_OFST 4 25102 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RESPONSE_LEN 20 25103 /* Reserved for future use. Must be set to zero. */ 25104 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RSVD_OFST 24 25105 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RSVD_LEN 4 25106 /* Structure of the format MAE_FIELD_MASK_VALUE_PAIRS */ 25107 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_OFST 28 25108 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_LEN 1 25109 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_MINNUM 0 25110 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_MAXNUM 224 25111 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_MAXNUM_MCDI2 992 25112 25113 /* MC_CMD_MAE_ACTION_RULE_INSERT_OUT msgresponse */ 25114 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_LEN 4 25115 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_AR_ID_OFST 0 25116 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_AR_ID_LEN 4 25117 /* enum: An action rule ID that is guaranteed never to represent an action rule 25118 */ 25119 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_ACTION_RULE_ID_NULL 0xffffffff 25120 25121 25122 /***********************************/ 25123 /* MC_CMD_MAE_ACTION_RULE_UPDATE 25124 * Atomically change the response of an action rule. Firmware may return 25125 * ENOTSUP, in which case the driver should DELETE/INSERT. 25126 */ 25127 #define MC_CMD_MAE_ACTION_RULE_UPDATE 0x15d 25128 #undef MC_CMD_0x15d_PRIVILEGE_CTG 25129 25130 #define MC_CMD_0x15d_PRIVILEGE_CTG SRIOV_CTG_MAE 25131 25132 /* MC_CMD_MAE_ACTION_RULE_UPDATE_IN msgrequest */ 25133 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_LEN 24 25134 /* ID of action rule to update */ 25135 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_AR_ID_OFST 0 25136 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_AR_ID_LEN 4 25137 /* Structure of the format MAE_ACTION_RULE_RESPONSE */ 25138 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_RESPONSE_OFST 4 25139 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_RESPONSE_LEN 20 25140 25141 /* MC_CMD_MAE_ACTION_RULE_UPDATE_OUT msgresponse */ 25142 #define MC_CMD_MAE_ACTION_RULE_UPDATE_OUT_LEN 0 25143 25144 25145 /***********************************/ 25146 /* MC_CMD_MAE_ACTION_RULE_DELETE 25147 */ 25148 #define MC_CMD_MAE_ACTION_RULE_DELETE 0x155 25149 #undef MC_CMD_0x155_PRIVILEGE_CTG 25150 25151 #define MC_CMD_0x155_PRIVILEGE_CTG SRIOV_CTG_MAE 25152 25153 /* MC_CMD_MAE_ACTION_RULE_DELETE_IN msgrequest */ 25154 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMIN 4 25155 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMAX 128 25156 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMAX_MCDI2 128 25157 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LEN(num) (0+4*(num)) 25158 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_NUM(len) (((len)-0)/4) 25159 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 25160 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_OFST 0 25161 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_LEN 4 25162 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_MINNUM 1 25163 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_MAXNUM 32 25164 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_MAXNUM_MCDI2 32 25165 25166 /* MC_CMD_MAE_ACTION_RULE_DELETE_OUT msgresponse */ 25167 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LENMIN 4 25168 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LENMAX 128 25169 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LENMAX_MCDI2 128 25170 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LEN(num) (0+4*(num)) 25171 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_NUM(len) (((len)-0)/4) 25172 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 25173 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_OFST 0 25174 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_LEN 4 25175 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_MINNUM 1 25176 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_MAXNUM 32 25177 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_MAXNUM_MCDI2 32 25178 25179 25180 /***********************************/ 25181 /* MC_CMD_MAE_MPORT_LOOKUP 25182 * Return the m-port corresponding to a selector. 25183 */ 25184 #define MC_CMD_MAE_MPORT_LOOKUP 0x160 25185 #undef MC_CMD_0x160_PRIVILEGE_CTG 25186 25187 #define MC_CMD_0x160_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25188 25189 /* MC_CMD_MAE_MPORT_LOOKUP_IN msgrequest */ 25190 #define MC_CMD_MAE_MPORT_LOOKUP_IN_LEN 4 25191 #define MC_CMD_MAE_MPORT_LOOKUP_IN_MPORT_SELECTOR_OFST 0 25192 #define MC_CMD_MAE_MPORT_LOOKUP_IN_MPORT_SELECTOR_LEN 4 25193 25194 /* MC_CMD_MAE_MPORT_LOOKUP_OUT msgresponse */ 25195 #define MC_CMD_MAE_MPORT_LOOKUP_OUT_LEN 4 25196 #define MC_CMD_MAE_MPORT_LOOKUP_OUT_MPORT_ID_OFST 0 25197 #define MC_CMD_MAE_MPORT_LOOKUP_OUT_MPORT_ID_LEN 4 25198 25199 25200 /***********************************/ 25201 /* MC_CMD_MAE_MPORT_ALLOC 25202 * Allocates a m-port, which can subsequently be used in action rules as a 25203 * match or delivery argument. 25204 */ 25205 #define MC_CMD_MAE_MPORT_ALLOC 0x163 25206 #undef MC_CMD_0x163_PRIVILEGE_CTG 25207 25208 #define MC_CMD_0x163_PRIVILEGE_CTG SRIOV_CTG_MAE 25209 25210 /* MC_CMD_MAE_MPORT_ALLOC_IN msgrequest */ 25211 #define MC_CMD_MAE_MPORT_ALLOC_IN_LEN 20 25212 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain 25213 * types. 25214 */ 25215 #define MC_CMD_MAE_MPORT_ALLOC_IN_TYPE_OFST 0 25216 #define MC_CMD_MAE_MPORT_ALLOC_IN_TYPE_LEN 4 25217 /* enum: Traffic can be sent to this type of m-port using an override 25218 * descriptor. Traffic received on this type of m-port will go to the VNIC on a 25219 * nominated m-port, and will be delivered with metadata identifying the alias 25220 * m-port. 25221 */ 25222 #define MC_CMD_MAE_MPORT_ALLOC_IN_MPORT_TYPE_ALIAS 0x1 25223 /* enum: This type of m-port has a VNIC attached. Queues can be created on this 25224 * VNIC by specifying the created m-port as an m-port selector at queue 25225 * creation time. 25226 */ 25227 #define MC_CMD_MAE_MPORT_ALLOC_IN_MPORT_TYPE_VNIC 0x2 25228 /* 128-bit value for use by the driver. */ 25229 #define MC_CMD_MAE_MPORT_ALLOC_IN_UUID_OFST 4 25230 #define MC_CMD_MAE_MPORT_ALLOC_IN_UUID_LEN 16 25231 25232 /* MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN msgrequest */ 25233 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_LEN 24 25234 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain 25235 * types. 25236 */ 25237 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_TYPE_OFST 0 25238 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_TYPE_LEN 4 25239 /* enum: Traffic can be sent to this type of m-port using an override 25240 * descriptor. Traffic received on this type of m-port will go to the VNIC on a 25241 * nominated m-port, and will be delivered with metadata identifying the alias 25242 * m-port. 25243 */ 25244 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_MPORT_TYPE_ALIAS 0x1 25245 /* enum: This type of m-port has a VNIC attached. Queues can be created on this 25246 * VNIC by specifying the created m-port as an m-port selector at queue 25247 * creation time. 25248 */ 25249 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_MPORT_TYPE_VNIC 0x2 25250 /* 128-bit value for use by the driver. */ 25251 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_UUID_OFST 4 25252 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_UUID_LEN 16 25253 /* An m-port selector identifying the VNIC to which traffic should be 25254 * delivered. This must currently be set to MAE_MPORT_SELECTOR_ASSIGNED (i.e. 25255 * the m-port assigned to the calling client). 25256 */ 25257 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_DELIVER_MPORT_OFST 20 25258 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_DELIVER_MPORT_LEN 4 25259 25260 /* MC_CMD_MAE_MPORT_ALLOC_VNIC_IN msgrequest */ 25261 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_LEN 20 25262 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain 25263 * types. 25264 */ 25265 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_TYPE_OFST 0 25266 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_TYPE_LEN 4 25267 /* enum: Traffic can be sent to this type of m-port using an override 25268 * descriptor. Traffic received on this type of m-port will go to the VNIC on a 25269 * nominated m-port, and will be delivered with metadata identifying the alias 25270 * m-port. 25271 */ 25272 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_MPORT_TYPE_ALIAS 0x1 25273 /* enum: This type of m-port has a VNIC attached. Queues can be created on this 25274 * VNIC by specifying the created m-port as an m-port selector at queue 25275 * creation time. 25276 */ 25277 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_MPORT_TYPE_VNIC 0x2 25278 /* 128-bit value for use by the driver. */ 25279 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_UUID_OFST 4 25280 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_UUID_LEN 16 25281 25282 /* MC_CMD_MAE_MPORT_ALLOC_OUT msgresponse */ 25283 #define MC_CMD_MAE_MPORT_ALLOC_OUT_LEN 4 25284 /* ID of newly-allocated m-port. */ 25285 #define MC_CMD_MAE_MPORT_ALLOC_OUT_MPORT_ID_OFST 0 25286 #define MC_CMD_MAE_MPORT_ALLOC_OUT_MPORT_ID_LEN 4 25287 25288 /* MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT msgrequest */ 25289 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_LEN 24 25290 /* ID of newly-allocated m-port. */ 25291 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_MPORT_ID_OFST 0 25292 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_MPORT_ID_LEN 4 25293 /* A value that will appear in the packet metadata for any packets delivered 25294 * using an alias type m-port. This value is guaranteed unique on the VNIC 25295 * being delivered to, and is guaranteed not to exceed the range of values 25296 * representable in the relevant metadata field. 25297 */ 25298 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_LABEL_OFST 20 25299 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_LABEL_LEN 4 25300 25301 /* MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT msgrequest */ 25302 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_LEN 4 25303 /* ID of newly-allocated m-port. */ 25304 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_MPORT_ID_OFST 0 25305 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_MPORT_ID_LEN 4 25306 25307 25308 /***********************************/ 25309 /* MC_CMD_MAE_MPORT_FREE 25310 * Free a m-port which was previously allocated by the driver. 25311 */ 25312 #define MC_CMD_MAE_MPORT_FREE 0x164 25313 #undef MC_CMD_0x164_PRIVILEGE_CTG 25314 25315 #define MC_CMD_0x164_PRIVILEGE_CTG SRIOV_CTG_MAE 25316 25317 /* MC_CMD_MAE_MPORT_FREE_IN msgrequest */ 25318 #define MC_CMD_MAE_MPORT_FREE_IN_LEN 4 25319 /* MPORT_ID as returned by MC_CMD_MAE_MPORT_ALLOC. */ 25320 #define MC_CMD_MAE_MPORT_FREE_IN_MPORT_ID_OFST 0 25321 #define MC_CMD_MAE_MPORT_FREE_IN_MPORT_ID_LEN 4 25322 25323 /* MC_CMD_MAE_MPORT_FREE_OUT msgresponse */ 25324 #define MC_CMD_MAE_MPORT_FREE_OUT_LEN 0 25325 25326 /* MAE_MPORT_DESC structuredef */ 25327 #define MAE_MPORT_DESC_LEN 52 25328 #define MAE_MPORT_DESC_MPORT_ID_OFST 0 25329 #define MAE_MPORT_DESC_MPORT_ID_LEN 4 25330 #define MAE_MPORT_DESC_MPORT_ID_LBN 0 25331 #define MAE_MPORT_DESC_MPORT_ID_WIDTH 32 25332 /* Reserved for future purposes, contains information independent of caller */ 25333 #define MAE_MPORT_DESC_FLAGS_OFST 4 25334 #define MAE_MPORT_DESC_FLAGS_LEN 4 25335 #define MAE_MPORT_DESC_FLAGS_LBN 32 25336 #define MAE_MPORT_DESC_FLAGS_WIDTH 32 25337 #define MAE_MPORT_DESC_CALLER_FLAGS_OFST 8 25338 #define MAE_MPORT_DESC_CALLER_FLAGS_LEN 4 25339 #define MAE_MPORT_DESC_CAN_RECEIVE_ON_OFST 8 25340 #define MAE_MPORT_DESC_CAN_RECEIVE_ON_LBN 0 25341 #define MAE_MPORT_DESC_CAN_RECEIVE_ON_WIDTH 1 25342 #define MAE_MPORT_DESC_CAN_DELIVER_TO_OFST 8 25343 #define MAE_MPORT_DESC_CAN_DELIVER_TO_LBN 1 25344 #define MAE_MPORT_DESC_CAN_DELIVER_TO_WIDTH 1 25345 #define MAE_MPORT_DESC_CAN_DELETE_OFST 8 25346 #define MAE_MPORT_DESC_CAN_DELETE_LBN 2 25347 #define MAE_MPORT_DESC_CAN_DELETE_WIDTH 1 25348 #define MAE_MPORT_DESC_IS_ZOMBIE_OFST 8 25349 #define MAE_MPORT_DESC_IS_ZOMBIE_LBN 3 25350 #define MAE_MPORT_DESC_IS_ZOMBIE_WIDTH 1 25351 #define MAE_MPORT_DESC_CALLER_FLAGS_LBN 64 25352 #define MAE_MPORT_DESC_CALLER_FLAGS_WIDTH 32 25353 /* Not the ideal name; it's really the type of thing connected to the m-port */ 25354 #define MAE_MPORT_DESC_MPORT_TYPE_OFST 12 25355 #define MAE_MPORT_DESC_MPORT_TYPE_LEN 4 25356 /* enum: Connected to a MAC... */ 25357 #define MAE_MPORT_DESC_MPORT_TYPE_NET_PORT 0x0 25358 /* enum: Adds metadata and delivers to another m-port */ 25359 #define MAE_MPORT_DESC_MPORT_TYPE_ALIAS 0x1 25360 /* enum: Connected to a VNIC. */ 25361 #define MAE_MPORT_DESC_MPORT_TYPE_VNIC 0x2 25362 #define MAE_MPORT_DESC_MPORT_TYPE_LBN 96 25363 #define MAE_MPORT_DESC_MPORT_TYPE_WIDTH 32 25364 /* 128-bit value available to drivers for m-port identification. */ 25365 #define MAE_MPORT_DESC_UUID_OFST 16 25366 #define MAE_MPORT_DESC_UUID_LEN 16 25367 #define MAE_MPORT_DESC_UUID_LBN 128 25368 #define MAE_MPORT_DESC_UUID_WIDTH 128 25369 /* Big wadge of space reserved for other common properties */ 25370 #define MAE_MPORT_DESC_RESERVED_OFST 32 25371 #define MAE_MPORT_DESC_RESERVED_LEN 8 25372 #define MAE_MPORT_DESC_RESERVED_LO_OFST 32 25373 #define MAE_MPORT_DESC_RESERVED_LO_LEN 4 25374 #define MAE_MPORT_DESC_RESERVED_LO_LBN 256 25375 #define MAE_MPORT_DESC_RESERVED_LO_WIDTH 32 25376 #define MAE_MPORT_DESC_RESERVED_HI_OFST 36 25377 #define MAE_MPORT_DESC_RESERVED_HI_LEN 4 25378 #define MAE_MPORT_DESC_RESERVED_HI_LBN 288 25379 #define MAE_MPORT_DESC_RESERVED_HI_WIDTH 32 25380 #define MAE_MPORT_DESC_RESERVED_LBN 256 25381 #define MAE_MPORT_DESC_RESERVED_WIDTH 64 25382 /* Logical port index. Only valid when type NET Port. */ 25383 #define MAE_MPORT_DESC_NET_PORT_IDX_OFST 40 25384 #define MAE_MPORT_DESC_NET_PORT_IDX_LEN 4 25385 #define MAE_MPORT_DESC_NET_PORT_IDX_LBN 320 25386 #define MAE_MPORT_DESC_NET_PORT_IDX_WIDTH 32 25387 /* The m-port delivered to */ 25388 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_OFST 40 25389 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_LEN 4 25390 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_LBN 320 25391 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_WIDTH 32 25392 /* The type of thing that owns the VNIC */ 25393 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_OFST 40 25394 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_LEN 4 25395 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_FUNCTION 0x1 /* enum */ 25396 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_PLUGIN 0x2 /* enum */ 25397 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_LBN 320 25398 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_WIDTH 32 25399 /* The PCIe interface on which the function lives. CJK: We need an enumeration 25400 * of interfaces that we extend as new interface (types) appear. This belongs 25401 * elsewhere and should be referenced from here 25402 */ 25403 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_OFST 44 25404 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_LEN 4 25405 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_LBN 352 25406 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_WIDTH 32 25407 #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_OFST 48 25408 #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_LEN 2 25409 #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_LBN 384 25410 #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_WIDTH 16 25411 #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_OFST 50 25412 #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_LEN 2 25413 /* enum: Indicates that the function is a PF */ 25414 #define MAE_MPORT_DESC_VF_IDX_NULL 0xffff 25415 #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_LBN 400 25416 #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_WIDTH 16 25417 /* Reserved. Should be ignored for now. */ 25418 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_OFST 44 25419 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_LEN 4 25420 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_LBN 352 25421 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_WIDTH 32 25422 25423 25424 /***********************************/ 25425 /* MC_CMD_MAE_MPORT_READ_JOURNAL 25426 * Firmware maintains a per-client journal of mport creations and deletions. 25427 * This journal is clear-on-read, i.e. repeated calls of this command will 25428 * drain the buffer. Whenever the caller resets its function via FLR or 25429 * MC_CMD_ENTITY_RESET, the journal is regenerated from a blank start. 25430 */ 25431 #define MC_CMD_MAE_MPORT_READ_JOURNAL 0x147 25432 #undef MC_CMD_0x147_PRIVILEGE_CTG 25433 25434 #define MC_CMD_0x147_PRIVILEGE_CTG SRIOV_CTG_MAE 25435 25436 /* MC_CMD_MAE_MPORT_READ_JOURNAL_IN msgrequest */ 25437 #define MC_CMD_MAE_MPORT_READ_JOURNAL_IN_LEN 4 25438 /* Any unused flags are reserved and must be set to zero. */ 25439 #define MC_CMD_MAE_MPORT_READ_JOURNAL_IN_FLAGS_OFST 0 25440 #define MC_CMD_MAE_MPORT_READ_JOURNAL_IN_FLAGS_LEN 4 25441 25442 /* MC_CMD_MAE_MPORT_READ_JOURNAL_OUT msgresponse */ 25443 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LENMIN 12 25444 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LENMAX 252 25445 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LENMAX_MCDI2 1020 25446 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LEN(num) (12+1*(num)) 25447 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_NUM(len) (((len)-12)/1) 25448 /* Any unused flags are reserved and must be ignored. */ 25449 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_FLAGS_OFST 0 25450 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_FLAGS_LEN 4 25451 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MORE_OFST 0 25452 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MORE_LBN 0 25453 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MORE_WIDTH 1 25454 /* The number of MAE_MPORT_DESC structures in MPORT_DESC_DATA. May be zero. */ 25455 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_COUNT_OFST 4 25456 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_COUNT_LEN 4 25457 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_SIZEOF_MPORT_DESC_OFST 8 25458 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_SIZEOF_MPORT_DESC_LEN 4 25459 /* Any array of MAE_MPORT_DESC structures. The MAE_MPORT_DESC structure may 25460 * grow in future version of this command. Drivers should use a stride of 25461 * SIZEOF_MPORT_DESC. Fields beyond SIZEOF_MPORT_DESC are not present. 25462 */ 25463 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_OFST 12 25464 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_LEN 1 25465 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_MINNUM 0 25466 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_MAXNUM 240 25467 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_MAXNUM_MCDI2 1008 25468 25469 /* TABLE_FIELD_DESCR structuredef: An individual table field descriptor. This 25470 * describes the location and properties of one N-bit field within a wider 25471 * M-bit key/mask/response value. 25472 */ 25473 #define TABLE_FIELD_DESCR_LEN 8 25474 /* Identifier for this field. */ 25475 #define TABLE_FIELD_DESCR_FIELD_ID_OFST 0 25476 #define TABLE_FIELD_DESCR_FIELD_ID_LEN 2 25477 /* Enum values, see field(s): */ 25478 /* TABLE_FIELD_ID */ 25479 #define TABLE_FIELD_DESCR_FIELD_ID_LBN 0 25480 #define TABLE_FIELD_DESCR_FIELD_ID_WIDTH 16 25481 /* Lowest (least significant) bit number of the bits of this field. */ 25482 #define TABLE_FIELD_DESCR_LBN_OFST 2 25483 #define TABLE_FIELD_DESCR_LBN_LEN 2 25484 #define TABLE_FIELD_DESCR_LBN_LBN 16 25485 #define TABLE_FIELD_DESCR_LBN_WIDTH 16 25486 /* Width of this field in bits. */ 25487 #define TABLE_FIELD_DESCR_WIDTH_OFST 4 25488 #define TABLE_FIELD_DESCR_WIDTH_LEN 2 25489 #define TABLE_FIELD_DESCR_WIDTH_LBN 32 25490 #define TABLE_FIELD_DESCR_WIDTH_WIDTH 16 25491 /* The mask type for this field. (Note that masking is relevant to keys; fields 25492 * of responses are always reported with the EXACT type.) 25493 */ 25494 #define TABLE_FIELD_DESCR_MASK_TYPE_OFST 6 25495 #define TABLE_FIELD_DESCR_MASK_TYPE_LEN 1 25496 /* enum: Field must never be selected in the mask. */ 25497 #define TABLE_FIELD_DESCR_MASK_NEVER 0x0 25498 /* enum: Exact match: field must always be selected in the mask. */ 25499 #define TABLE_FIELD_DESCR_MASK_EXACT 0x1 25500 /* enum: Ternary match: arbitrary mask bits are allowed. */ 25501 #define TABLE_FIELD_DESCR_MASK_TERNARY 0x2 25502 /* enum: Whole field match: mask must be all 1 bits, or all 0 bits. */ 25503 #define TABLE_FIELD_DESCR_MASK_WHOLE_FIELD 0x3 25504 /* enum: Longest prefix match: mask must be 1 bit(s) followed by 0 bit(s). */ 25505 #define TABLE_FIELD_DESCR_MASK_LPM 0x4 25506 #define TABLE_FIELD_DESCR_MASK_TYPE_LBN 48 25507 #define TABLE_FIELD_DESCR_MASK_TYPE_WIDTH 8 25508 /* A version code that allows field semantics to be extended. All fields 25509 * currently use version 0. 25510 */ 25511 #define TABLE_FIELD_DESCR_SCHEME_OFST 7 25512 #define TABLE_FIELD_DESCR_SCHEME_LEN 1 25513 #define TABLE_FIELD_DESCR_SCHEME_LBN 56 25514 #define TABLE_FIELD_DESCR_SCHEME_WIDTH 8 25515 25516 25517 /***********************************/ 25518 /* MC_CMD_TABLE_LIST 25519 * Return the list of tables which may be accessed via this table API. 25520 */ 25521 #define MC_CMD_TABLE_LIST 0x1c9 25522 #undef MC_CMD_0x1c9_PRIVILEGE_CTG 25523 25524 #define MC_CMD_0x1c9_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25525 25526 /* MC_CMD_TABLE_LIST_IN msgrequest */ 25527 #define MC_CMD_TABLE_LIST_IN_LEN 4 25528 /* Index of the first item to be returned in the TABLE_ID sequence. (Set to 0 25529 * for the first call; further calls are only required if the whole sequence 25530 * does not fit within the maximum MCDI message size.) 25531 */ 25532 #define MC_CMD_TABLE_LIST_IN_FIRST_TABLE_ID_INDEX_OFST 0 25533 #define MC_CMD_TABLE_LIST_IN_FIRST_TABLE_ID_INDEX_LEN 4 25534 25535 /* MC_CMD_TABLE_LIST_OUT msgresponse */ 25536 #define MC_CMD_TABLE_LIST_OUT_LENMIN 4 25537 #define MC_CMD_TABLE_LIST_OUT_LENMAX 252 25538 #define MC_CMD_TABLE_LIST_OUT_LENMAX_MCDI2 1020 25539 #define MC_CMD_TABLE_LIST_OUT_LEN(num) (4+4*(num)) 25540 #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_NUM(len) (((len)-4)/4) 25541 /* The total number of tables. */ 25542 #define MC_CMD_TABLE_LIST_OUT_N_TABLES_OFST 0 25543 #define MC_CMD_TABLE_LIST_OUT_N_TABLES_LEN 4 25544 /* A sequence of table identifiers. If all N_TABLES items do not fit, further 25545 * items can be obtained by repeating the call with a non-zero 25546 * FIRST_TABLE_ID_INDEX. 25547 */ 25548 #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_OFST 4 25549 #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_LEN 4 25550 #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_MINNUM 0 25551 #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_MAXNUM 62 25552 #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_MAXNUM_MCDI2 254 25553 /* Enum values, see field(s): */ 25554 /* TABLE_ID */ 25555 25556 25557 /***********************************/ 25558 /* MC_CMD_TABLE_DESCRIPTOR 25559 * Request the table descriptor for a particular table. This describes 25560 * properties of the table and the format of the key and response. May return 25561 * EINVAL for unknown table ID. 25562 */ 25563 #define MC_CMD_TABLE_DESCRIPTOR 0x1ca 25564 #undef MC_CMD_0x1ca_PRIVILEGE_CTG 25565 25566 #define MC_CMD_0x1ca_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25567 25568 /* MC_CMD_TABLE_DESCRIPTOR_IN msgrequest */ 25569 #define MC_CMD_TABLE_DESCRIPTOR_IN_LEN 8 25570 /* Identifier for this field. */ 25571 #define MC_CMD_TABLE_DESCRIPTOR_IN_TABLE_ID_OFST 0 25572 #define MC_CMD_TABLE_DESCRIPTOR_IN_TABLE_ID_LEN 4 25573 /* Enum values, see field(s): */ 25574 /* TABLE_ID */ 25575 /* Index of the first item to be returned in the FIELDS sequence. (Set to 0 for 25576 * the first call; further calls are only required if the whole sequence does 25577 * not fit within the maximum MCDI message size.) 25578 */ 25579 #define MC_CMD_TABLE_DESCRIPTOR_IN_FIRST_FIELDS_INDEX_OFST 4 25580 #define MC_CMD_TABLE_DESCRIPTOR_IN_FIRST_FIELDS_INDEX_LEN 4 25581 25582 /* MC_CMD_TABLE_DESCRIPTOR_OUT msgresponse */ 25583 #define MC_CMD_TABLE_DESCRIPTOR_OUT_LENMIN 28 25584 #define MC_CMD_TABLE_DESCRIPTOR_OUT_LENMAX 252 25585 #define MC_CMD_TABLE_DESCRIPTOR_OUT_LENMAX_MCDI2 1020 25586 #define MC_CMD_TABLE_DESCRIPTOR_OUT_LEN(num) (20+8*(num)) 25587 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_NUM(len) (((len)-20)/8) 25588 /* Maximum number of entries in this table. */ 25589 #define MC_CMD_TABLE_DESCRIPTOR_OUT_MAX_ENTRIES_OFST 0 25590 #define MC_CMD_TABLE_DESCRIPTOR_OUT_MAX_ENTRIES_LEN 4 25591 /* The type of table. (This is really just informational; the important 25592 * properties of a table that affect programming can be deduced from other 25593 * items in the table or field descriptor.) 25594 */ 25595 #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_OFST 4 25596 #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_LEN 2 25597 /* enum: Direct table (essentially just an array). Behaves like a BCAM for 25598 * programming purposes, where the fact that the key is actually used as an 25599 * array index is really just an implementation detail. 25600 */ 25601 #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_DIRECT 0x1 25602 /* enum: BCAM (binary CAM) table: exact match on all key fields." */ 25603 #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_BCAM 0x2 25604 /* enum: TCAM (ternary CAM) table: matches fields with a mask. Each entry may 25605 * have its own different mask. 25606 */ 25607 #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_TCAM 0x3 25608 /* enum: STCAM (semi-TCAM) table: like a TCAM but entries shared a limited 25609 * number of unique masks. 25610 */ 25611 #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_STCAM 0x4 25612 /* Width of key (and corresponding mask, for TCAM or STCAM) in bits. */ 25613 #define MC_CMD_TABLE_DESCRIPTOR_OUT_KEY_WIDTH_OFST 6 25614 #define MC_CMD_TABLE_DESCRIPTOR_OUT_KEY_WIDTH_LEN 2 25615 /* Width of response in bits. */ 25616 #define MC_CMD_TABLE_DESCRIPTOR_OUT_RESP_WIDTH_OFST 8 25617 #define MC_CMD_TABLE_DESCRIPTOR_OUT_RESP_WIDTH_LEN 2 25618 /* The total number of fields in the key. */ 25619 #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_KEY_FIELDS_OFST 10 25620 #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_KEY_FIELDS_LEN 2 25621 /* The total number of fields in the response. */ 25622 #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_RESP_FIELDS_OFST 12 25623 #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_RESP_FIELDS_LEN 2 25624 /* Number of priorities for STCAM or TCAM; otherwise 0. The priority of a table 25625 * entry (relevant when more than one masked entry matches) ranges from 25626 * 0=highest to N_PRIORITIES-1=lowest. 25627 */ 25628 #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_PRIORITIES_OFST 14 25629 #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_PRIORITIES_LEN 2 25630 /* Maximum number of masks for STCAM; otherwise 0. */ 25631 #define MC_CMD_TABLE_DESCRIPTOR_OUT_MAX_MASKS_OFST 16 25632 #define MC_CMD_TABLE_DESCRIPTOR_OUT_MAX_MASKS_LEN 2 25633 /* Flags. */ 25634 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FLAGS_OFST 18 25635 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FLAGS_LEN 1 25636 #define MC_CMD_TABLE_DESCRIPTOR_OUT_ALLOC_MASKS_OFST 18 25637 #define MC_CMD_TABLE_DESCRIPTOR_OUT_ALLOC_MASKS_LBN 0 25638 #define MC_CMD_TABLE_DESCRIPTOR_OUT_ALLOC_MASKS_WIDTH 1 25639 /* Access scheme version code, allowing the method of accessing table entries 25640 * to change semantics in future. A client which does not understand the value 25641 * of this field should assume that it cannot program this table. Currently 25642 * always set to 0 indicating the original MC_CMD_TABLE_INSERT/UPDATE/DELETE 25643 * semantics. 25644 */ 25645 #define MC_CMD_TABLE_DESCRIPTOR_OUT_SCHEME_OFST 19 25646 #define MC_CMD_TABLE_DESCRIPTOR_OUT_SCHEME_LEN 1 25647 /* A sequence of TABLE_FIELD_DESCR structures: N_KEY_FIELDS items describing 25648 * the key, followed by N_RESP_FIELDS items describing the response. If all 25649 * N_KEY_FIELDS+N_RESP_FIELDS items do not fit, further items can be obtained 25650 * by repeating the call with a non-zero FIRST_FIELDS_INDEX. 25651 */ 25652 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_OFST 20 25653 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_LEN 8 25654 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_LO_OFST 20 25655 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_LO_LEN 4 25656 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_LO_LBN 160 25657 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_LO_WIDTH 32 25658 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_HI_OFST 24 25659 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_HI_LEN 4 25660 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_HI_LBN 192 25661 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_HI_WIDTH 32 25662 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_MINNUM 1 25663 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_MAXNUM 29 25664 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_MAXNUM_MCDI2 125 25665 25666 25667 /***********************************/ 25668 /* MC_CMD_TABLE_INSERT 25669 * Insert a new entry into a table. The entry must not currently exist. May 25670 * return EINVAL for unknown table ID or other bad request parameters, EEXIST 25671 * if the entry already exists, ENOSPC if there is no space or EPERM if the 25672 * operation is not permitted. In case of an error, the additional MCDI error 25673 * argument field returns the raw error code from the underlying CAM driver. 25674 */ 25675 #define MC_CMD_TABLE_INSERT 0x1cd 25676 #undef MC_CMD_0x1cd_PRIVILEGE_CTG 25677 25678 #define MC_CMD_0x1cd_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25679 25680 /* MC_CMD_TABLE_INSERT_IN msgrequest */ 25681 #define MC_CMD_TABLE_INSERT_IN_LENMIN 16 25682 #define MC_CMD_TABLE_INSERT_IN_LENMAX 252 25683 #define MC_CMD_TABLE_INSERT_IN_LENMAX_MCDI2 1020 25684 #define MC_CMD_TABLE_INSERT_IN_LEN(num) (12+4*(num)) 25685 #define MC_CMD_TABLE_INSERT_IN_DATA_NUM(len) (((len)-12)/4) 25686 /* Table identifier. */ 25687 #define MC_CMD_TABLE_INSERT_IN_TABLE_ID_OFST 0 25688 #define MC_CMD_TABLE_INSERT_IN_TABLE_ID_LEN 4 25689 /* Enum values, see field(s): */ 25690 /* TABLE_ID */ 25691 /* Width in bits of supplied key data (must match table properties). */ 25692 #define MC_CMD_TABLE_INSERT_IN_KEY_WIDTH_OFST 4 25693 #define MC_CMD_TABLE_INSERT_IN_KEY_WIDTH_LEN 2 25694 /* Width in bits of supplied mask data (0 for direct/BCAM tables, or for STCAM 25695 * when allocated MASK_ID is used instead). 25696 */ 25697 #define MC_CMD_TABLE_INSERT_IN_MASK_WIDTH_OFST 6 25698 #define MC_CMD_TABLE_INSERT_IN_MASK_WIDTH_LEN 2 25699 /* Width in bits of supplied response data (for INSERT and UPDATE operations 25700 * this must match the table properties; for DELETE operations, no response 25701 * data is required and this must be 0). 25702 */ 25703 #define MC_CMD_TABLE_INSERT_IN_RESP_WIDTH_OFST 8 25704 #define MC_CMD_TABLE_INSERT_IN_RESP_WIDTH_LEN 2 25705 /* Mask ID for STCAM table - used instead of mask data if the table descriptor 25706 * reports ALLOC_MASKS==1. Otherwise set to 0. 25707 */ 25708 #define MC_CMD_TABLE_INSERT_IN_MASK_ID_OFST 6 25709 #define MC_CMD_TABLE_INSERT_IN_MASK_ID_LEN 2 25710 /* Priority for TCAM or STCAM, in range 0..N_PRIORITIES-1, otherwise 0. */ 25711 #define MC_CMD_TABLE_INSERT_IN_PRIORITY_OFST 8 25712 #define MC_CMD_TABLE_INSERT_IN_PRIORITY_LEN 2 25713 /* (32-bit alignment padding - set to 0) */ 25714 #define MC_CMD_TABLE_INSERT_IN_RESERVED_OFST 10 25715 #define MC_CMD_TABLE_INSERT_IN_RESERVED_LEN 2 25716 /* Sequence of key, mask (if MASK_WIDTH > 0), and response (if RESP_WIDTH > 0) 25717 * data values. Each of these items is logically treated as a single wide N-bit 25718 * value, in which the individual fields have been placed within that value per 25719 * the LBN and WIDTH information from the table field descriptors. The wide 25720 * N-bit value is padded with 0 bits at the MSB end if necessary to make a 25721 * multiple of 32 bits. The value is then packed into this command as a 25722 * sequence of 32-bit words, bits [31:0] first, then bits [63:32], etc. 25723 */ 25724 #define MC_CMD_TABLE_INSERT_IN_DATA_OFST 12 25725 #define MC_CMD_TABLE_INSERT_IN_DATA_LEN 4 25726 #define MC_CMD_TABLE_INSERT_IN_DATA_MINNUM 1 25727 #define MC_CMD_TABLE_INSERT_IN_DATA_MAXNUM 60 25728 #define MC_CMD_TABLE_INSERT_IN_DATA_MAXNUM_MCDI2 252 25729 25730 /* MC_CMD_TABLE_INSERT_OUT msgresponse */ 25731 #define MC_CMD_TABLE_INSERT_OUT_LEN 0 25732 25733 25734 /***********************************/ 25735 /* MC_CMD_TABLE_DELETE 25736 * Delete an existing entry in a table. May return EINVAL for unknown table ID 25737 * or other bad request parameters, ENOENT if the entry does not exist, or 25738 * EPERM if the operation is not permitted. In case of an error, the additional 25739 * MCDI error argument field returns the raw error code from the underlying CAM 25740 * driver. 25741 */ 25742 #define MC_CMD_TABLE_DELETE 0x1cf 25743 #undef MC_CMD_0x1cf_PRIVILEGE_CTG 25744 25745 #define MC_CMD_0x1cf_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25746 25747 /* MC_CMD_TABLE_DELETE_IN msgrequest */ 25748 #define MC_CMD_TABLE_DELETE_IN_LENMIN 16 25749 #define MC_CMD_TABLE_DELETE_IN_LENMAX 252 25750 #define MC_CMD_TABLE_DELETE_IN_LENMAX_MCDI2 1020 25751 #define MC_CMD_TABLE_DELETE_IN_LEN(num) (12+4*(num)) 25752 #define MC_CMD_TABLE_DELETE_IN_DATA_NUM(len) (((len)-12)/4) 25753 /* Table identifier. */ 25754 #define MC_CMD_TABLE_DELETE_IN_TABLE_ID_OFST 0 25755 #define MC_CMD_TABLE_DELETE_IN_TABLE_ID_LEN 4 25756 /* Enum values, see field(s): */ 25757 /* TABLE_ID */ 25758 /* Width in bits of supplied key data (must match table properties). */ 25759 #define MC_CMD_TABLE_DELETE_IN_KEY_WIDTH_OFST 4 25760 #define MC_CMD_TABLE_DELETE_IN_KEY_WIDTH_LEN 2 25761 /* Width in bits of supplied mask data (0 for direct/BCAM tables, or for STCAM 25762 * when allocated MASK_ID is used instead). 25763 */ 25764 #define MC_CMD_TABLE_DELETE_IN_MASK_WIDTH_OFST 6 25765 #define MC_CMD_TABLE_DELETE_IN_MASK_WIDTH_LEN 2 25766 /* Width in bits of supplied response data (for INSERT and UPDATE operations 25767 * this must match the table properties; for DELETE operations, no response 25768 * data is required and this must be 0). 25769 */ 25770 #define MC_CMD_TABLE_DELETE_IN_RESP_WIDTH_OFST 8 25771 #define MC_CMD_TABLE_DELETE_IN_RESP_WIDTH_LEN 2 25772 /* Mask ID for STCAM table - used instead of mask data if the table descriptor 25773 * reports ALLOC_MASKS==1. Otherwise set to 0. 25774 */ 25775 #define MC_CMD_TABLE_DELETE_IN_MASK_ID_OFST 6 25776 #define MC_CMD_TABLE_DELETE_IN_MASK_ID_LEN 2 25777 /* Priority for TCAM or STCAM, in range 0..N_PRIORITIES-1, otherwise 0. */ 25778 #define MC_CMD_TABLE_DELETE_IN_PRIORITY_OFST 8 25779 #define MC_CMD_TABLE_DELETE_IN_PRIORITY_LEN 2 25780 /* (32-bit alignment padding - set to 0) */ 25781 #define MC_CMD_TABLE_DELETE_IN_RESERVED_OFST 10 25782 #define MC_CMD_TABLE_DELETE_IN_RESERVED_LEN 2 25783 /* Sequence of key, mask (if MASK_WIDTH > 0), and response (if RESP_WIDTH > 0) 25784 * data values. Each of these items is logically treated as a single wide N-bit 25785 * value, in which the individual fields have been placed within that value per 25786 * the LBN and WIDTH information from the table field descriptors. The wide 25787 * N-bit value is padded with 0 bits at the MSB end if necessary to make a 25788 * multiple of 32 bits. The value is then packed into this command as a 25789 * sequence of 32-bit words, bits [31:0] first, then bits [63:32], etc. 25790 */ 25791 #define MC_CMD_TABLE_DELETE_IN_DATA_OFST 12 25792 #define MC_CMD_TABLE_DELETE_IN_DATA_LEN 4 25793 #define MC_CMD_TABLE_DELETE_IN_DATA_MINNUM 1 25794 #define MC_CMD_TABLE_DELETE_IN_DATA_MAXNUM 60 25795 #define MC_CMD_TABLE_DELETE_IN_DATA_MAXNUM_MCDI2 252 25796 25797 /* MC_CMD_TABLE_DELETE_OUT msgresponse */ 25798 #define MC_CMD_TABLE_DELETE_OUT_LEN 0 25799 25800 /* MC_CMD_QUEUE_HANDLE structuredef: On X4, to distinguish between full- 25801 * featured (X2-style) VIs and low-latency (X3-style) queues, we use the top 25802 * bits of the queue handle to specify the queue type in all MCDI calls which 25803 * refer to VIs/queues. These bits should be masked off when indexing into a 25804 * queue in the BAR. 25805 */ 25806 #define MC_CMD_QUEUE_HANDLE_LEN 4 25807 /* Combined queue number and type. This is the ID returned by and passed into 25808 * MCDI calls that use queues. 25809 */ 25810 #define MC_CMD_QUEUE_HANDLE_QUEUE_HANDLE_OFST 0 25811 #define MC_CMD_QUEUE_HANDLE_QUEUE_HANDLE_LEN 4 25812 #define MC_CMD_QUEUE_HANDLE_QUEUE_NUM_OFST 0 25813 #define MC_CMD_QUEUE_HANDLE_QUEUE_NUM_LBN 0 25814 #define MC_CMD_QUEUE_HANDLE_QUEUE_NUM_WIDTH 24 25815 #define MC_CMD_QUEUE_HANDLE_QUEUE_TYPE_OFST 0 25816 #define MC_CMD_QUEUE_HANDLE_QUEUE_TYPE_LBN 24 25817 #define MC_CMD_QUEUE_HANDLE_QUEUE_TYPE_WIDTH 8 25818 /* enum: Indicates that the queue instance is a full-featured VI */ 25819 #define MC_CMD_QUEUE_HANDLE_QUEUE_TYPE_FF_VI 0x0 25820 /* enum: Indicates that the queue instance is a LL TXQ */ 25821 #define MC_CMD_QUEUE_HANDLE_QUEUE_TYPE_LL_TXQ 0x1 25822 /* enum: Indicates that the queue instance is a LL RXQ */ 25823 #define MC_CMD_QUEUE_HANDLE_QUEUE_TYPE_LL_RXQ 0x2 25824 /* enum: Indicates that the queue instance is a LL EVQ */ 25825 #define MC_CMD_QUEUE_HANDLE_QUEUE_TYPE_LL_EVQ 0x3 25826 #define MC_CMD_QUEUE_HANDLE_QUEUE_HANDLE_LBN 0 25827 #define MC_CMD_QUEUE_HANDLE_QUEUE_HANDLE_WIDTH 32 25828 25829 25830 /***********************************/ 25831 /* MC_CMD_ALLOC_LL_QUEUES 25832 * Allocate low latency (X3-style) queues for current PCI function. Can be 25833 * called more than once if desired to allocate more queues. 25834 */ 25835 #define MC_CMD_ALLOC_LL_QUEUES 0x1dd 25836 #undef MC_CMD_0x1dd_PRIVILEGE_CTG 25837 25838 #define MC_CMD_0x1dd_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25839 25840 /* MC_CMD_ALLOC_LL_QUEUES_IN msgrequest */ 25841 #define MC_CMD_ALLOC_LL_QUEUES_IN_LEN 24 25842 /* The minimum number of TXQs that is acceptable */ 25843 #define MC_CMD_ALLOC_LL_QUEUES_IN_MIN_TXQ_COUNT_OFST 0 25844 #define MC_CMD_ALLOC_LL_QUEUES_IN_MIN_TXQ_COUNT_LEN 4 25845 /* The maximum number of TXQs that would be useful */ 25846 #define MC_CMD_ALLOC_LL_QUEUES_IN_MAX_TXQ_COUNT_OFST 4 25847 #define MC_CMD_ALLOC_LL_QUEUES_IN_MAX_TXQ_COUNT_LEN 4 25848 /* The minimum number of RXQs that is acceptable */ 25849 #define MC_CMD_ALLOC_LL_QUEUES_IN_MIN_RXQ_COUNT_OFST 8 25850 #define MC_CMD_ALLOC_LL_QUEUES_IN_MIN_RXQ_COUNT_LEN 4 25851 /* The maximum number of RXQs that would be useful */ 25852 #define MC_CMD_ALLOC_LL_QUEUES_IN_MAX_RXQ_COUNT_OFST 12 25853 #define MC_CMD_ALLOC_LL_QUEUES_IN_MAX_RXQ_COUNT_LEN 4 25854 /* The minimum number of EVQs that is acceptable */ 25855 #define MC_CMD_ALLOC_LL_QUEUES_IN_MIN_EVQ_COUNT_OFST 16 25856 #define MC_CMD_ALLOC_LL_QUEUES_IN_MIN_EVQ_COUNT_LEN 4 25857 /* The maximum number of EVQs that would be useful */ 25858 #define MC_CMD_ALLOC_LL_QUEUES_IN_MAX_EVQ_COUNT_OFST 20 25859 #define MC_CMD_ALLOC_LL_QUEUES_IN_MAX_EVQ_COUNT_LEN 4 25860 25861 /* MC_CMD_ALLOC_LL_QUEUES_OUT msgresponse */ 25862 #define MC_CMD_ALLOC_LL_QUEUES_OUT_LENMIN 16 25863 #define MC_CMD_ALLOC_LL_QUEUES_OUT_LENMAX 252 25864 #define MC_CMD_ALLOC_LL_QUEUES_OUT_LENMAX_MCDI2 1020 25865 #define MC_CMD_ALLOC_LL_QUEUES_OUT_LEN(num) (12+4*(num)) 25866 #define MC_CMD_ALLOC_LL_QUEUES_OUT_QUEUES_NUM(len) (((len)-12)/4) 25867 /* The number of TXQs allocated in this request */ 25868 #define MC_CMD_ALLOC_LL_QUEUES_OUT_TXQ_COUNT_OFST 0 25869 #define MC_CMD_ALLOC_LL_QUEUES_OUT_TXQ_COUNT_LEN 4 25870 /* The number of RXQs allocated in this request */ 25871 #define MC_CMD_ALLOC_LL_QUEUES_OUT_RXQ_COUNT_OFST 4 25872 #define MC_CMD_ALLOC_LL_QUEUES_OUT_RXQ_COUNT_LEN 4 25873 /* The number of EVQs allocated in this request */ 25874 #define MC_CMD_ALLOC_LL_QUEUES_OUT_EVQ_COUNT_OFST 8 25875 #define MC_CMD_ALLOC_LL_QUEUES_OUT_EVQ_COUNT_LEN 4 25876 /* A list of allocated queues, returned as MC_CMD_QUEUE_HANDLEs, not 25877 * necessarily contiguous. TXQs are first in the list, followed by RXQs then 25878 * EVQs. The type of each queue is indicated by the top bits (see the 25879 * QUEUE_TYPE enum) 25880 */ 25881 #define MC_CMD_ALLOC_LL_QUEUES_OUT_QUEUES_OFST 12 25882 #define MC_CMD_ALLOC_LL_QUEUES_OUT_QUEUES_LEN 4 25883 #define MC_CMD_ALLOC_LL_QUEUES_OUT_QUEUES_MINNUM 1 25884 #define MC_CMD_ALLOC_LL_QUEUES_OUT_QUEUES_MAXNUM 60 25885 #define MC_CMD_ALLOC_LL_QUEUES_OUT_QUEUES_MAXNUM_MCDI2 252 25886 25887 25888 /***********************************/ 25889 /* MC_CMD_FREE_LL_QUEUES 25890 * Free low latency (X3-style) queues for current PCI function. 25891 */ 25892 #define MC_CMD_FREE_LL_QUEUES 0x1de 25893 #undef MC_CMD_0x1de_PRIVILEGE_CTG 25894 25895 #define MC_CMD_0x1de_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25896 25897 /* MC_CMD_FREE_LL_QUEUES_IN msgrequest */ 25898 #define MC_CMD_FREE_LL_QUEUES_IN_LENMIN 8 25899 #define MC_CMD_FREE_LL_QUEUES_IN_LENMAX 252 25900 #define MC_CMD_FREE_LL_QUEUES_IN_LENMAX_MCDI2 1020 25901 #define MC_CMD_FREE_LL_QUEUES_IN_LEN(num) (4+4*(num)) 25902 #define MC_CMD_FREE_LL_QUEUES_IN_QUEUES_NUM(len) (((len)-4)/4) 25903 /* The number of queues to free. */ 25904 #define MC_CMD_FREE_LL_QUEUES_IN_QUEUE_COUNT_OFST 0 25905 #define MC_CMD_FREE_LL_QUEUES_IN_QUEUE_COUNT_LEN 4 25906 /* A list of queues to free, as a list of MC_CMD_QUEUE_HANDLEs. They must have 25907 * all been previously allocated by MC_CMD_ALLOC_LL_QUEUES. The type of each 25908 * queue should be indicated by the top bits. 25909 */ 25910 #define MC_CMD_FREE_LL_QUEUES_IN_QUEUES_OFST 4 25911 #define MC_CMD_FREE_LL_QUEUES_IN_QUEUES_LEN 4 25912 #define MC_CMD_FREE_LL_QUEUES_IN_QUEUES_MINNUM 1 25913 #define MC_CMD_FREE_LL_QUEUES_IN_QUEUES_MAXNUM 62 25914 #define MC_CMD_FREE_LL_QUEUES_IN_QUEUES_MAXNUM_MCDI2 254 25915 25916 /* MC_CMD_FREE_LL_QUEUES_OUT msgresponse */ 25917 #define MC_CMD_FREE_LL_QUEUES_OUT_LEN 0 25918 25919 25920 #endif /* MCDI_PCOL_H */ 25921