1 /* SPDX-License-Identifier: BSD-3-Clause 2 * 3 * Copyright(c) 2019-2021 Xilinx, Inc. 4 * Copyright(c) 2008-2019 Solarflare Communications Inc. 5 */ 6 7 /* 8 * This file is automatically generated, but contains manual changes. 9 * - replaced the autogenerated license header with BSD-3-Clause; 10 * - used tabs for the indentation of MC_CMD_ERR_*. 11 * 12 * To make changes, edit the .yml files in smartnic_registry under doc/mcdi/ and 13 * rebuild this file with "make mcdi_headers_v5". 14 */ 15 16 #ifndef _SIENA_MC_DRIVER_PCOL_H 17 #define _SIENA_MC_DRIVER_PCOL_H 18 19 20 /* Values to be written into FMCR_CZ_RESET_STATE_REG to control boot. */ 21 /* Power-on reset state */ 22 #define MC_FW_STATE_POR (1) 23 /* If this is set in MC_RESET_STATE_REG then it should be 24 * possible to jump into IMEM without loading code from flash. */ 25 #define MC_FW_WARM_BOOT_OK (2) 26 /* The MC main image has started to boot. */ 27 #define MC_FW_STATE_BOOTING (4) 28 /* The Scheduler has started. */ 29 #define MC_FW_STATE_SCHED (8) 30 /* If this is set in MC_RESET_STATE_REG then it should be 31 * possible to jump into IMEM without loading code from flash. 32 * Unlike a warm boot, assume DMEM has been reloaded, so that 33 * the MC persistent data must be reinitialised. */ 34 #define MC_FW_TEPID_BOOT_OK (16) 35 /* We have entered the main firmware via recovery mode. This 36 * means that MC persistent data must be reinitialised, but that 37 * we shouldn't touch PCIe config. */ 38 #define MC_FW_RECOVERY_MODE_PCIE_INIT_OK (32) 39 /* BIST state has been initialized */ 40 #define MC_FW_BIST_INIT_OK (128) 41 42 /* Siena MC shared memmory offsets */ 43 /* The 'doorbell' addresses are hard-wired to alert the MC when written */ 44 #define MC_SMEM_P0_DOORBELL_OFST 0x000 45 #define MC_SMEM_P1_DOORBELL_OFST 0x004 46 /* The rest of these are firmware-defined */ 47 #define MC_SMEM_P0_PDU_OFST 0x008 48 #define MC_SMEM_P1_PDU_OFST 0x108 49 #define MC_SMEM_PDU_LEN 0x100 50 #define MC_SMEM_P0_PTP_TIME_OFST 0x7f0 51 #define MC_SMEM_P0_STATUS_OFST 0x7f8 52 #define MC_SMEM_P1_STATUS_OFST 0x7fc 53 54 /* Values to be written to the per-port status dword in shared 55 * memory on reboot and assert */ 56 #define MC_STATUS_DWORD_REBOOT (0xb007b007) 57 #define MC_STATUS_DWORD_ASSERT (0xdeaddead) 58 59 /* Check whether an mcfw version (in host order) belongs to a bootloader */ 60 #define MC_FW_VERSION_IS_BOOTLOADER(_v) (((_v) >> 16) == 0xb007) 61 62 /* The current version of the MCDI protocol. 63 * 64 * Note that the ROM burnt into the card only talks V0, so at the very 65 * least every driver must support version 0 and MCDI_PCOL_VERSION 66 */ 67 #ifdef WITH_MCDI_V2 68 #define MCDI_PCOL_VERSION 2 69 #else 70 #define MCDI_PCOL_VERSION 1 71 #endif 72 73 /* Unused commands: 0x23, 0x27, 0x30, 0x31 */ 74 75 /* MCDI version 1 76 * 77 * Each MCDI request starts with an MCDI_HEADER, which is a 32bit 78 * structure, filled in by the client. 79 * 80 * 0 7 8 16 20 22 23 24 31 81 * | CODE | R | LEN | SEQ | Rsvd | E | R | XFLAGS | 82 * | | | 83 * | | \--- Response 84 * | \------- Error 85 * \------------------------------ Resync (always set) 86 * 87 * The client writes its request into MC shared memory, and rings the 88 * doorbell. Each request is completed either by the MC writing 89 * back into shared memory, or by writing out an event. 90 * 91 * All MCDI commands support completion by shared memory response. Each 92 * request may also contain additional data (accounted for by HEADER.LEN), 93 * and some responses may also contain additional data (again, accounted 94 * for by HEADER.LEN). 95 * 96 * Some MCDI commands support completion by event, in which any associated 97 * response data is included in the event. 98 * 99 * The protocol requires one response to be delivered for every request; a 100 * request should not be sent unless the response for the previous request 101 * has been received (either by polling shared memory, or by receiving 102 * an event). 103 */ 104 105 /** Request/Response structure */ 106 #define MCDI_HEADER_OFST 0 107 #define MCDI_HEADER_CODE_LBN 0 108 #define MCDI_HEADER_CODE_WIDTH 7 109 #define MCDI_HEADER_RESYNC_LBN 7 110 #define MCDI_HEADER_RESYNC_WIDTH 1 111 #define MCDI_HEADER_DATALEN_LBN 8 112 #define MCDI_HEADER_DATALEN_WIDTH 8 113 #define MCDI_HEADER_SEQ_LBN 16 114 #define MCDI_HEADER_SEQ_WIDTH 4 115 #define MCDI_HEADER_RSVD_LBN 20 116 #define MCDI_HEADER_RSVD_WIDTH 1 117 #define MCDI_HEADER_NOT_EPOCH_LBN 21 118 #define MCDI_HEADER_NOT_EPOCH_WIDTH 1 119 #define MCDI_HEADER_ERROR_LBN 22 120 #define MCDI_HEADER_ERROR_WIDTH 1 121 #define MCDI_HEADER_RESPONSE_LBN 23 122 #define MCDI_HEADER_RESPONSE_WIDTH 1 123 #define MCDI_HEADER_XFLAGS_LBN 24 124 #define MCDI_HEADER_XFLAGS_WIDTH 8 125 /* Request response using event */ 126 #define MCDI_HEADER_XFLAGS_EVREQ 0x01 127 /* Request (and signal) early doorbell return */ 128 #define MCDI_HEADER_XFLAGS_DBRET 0x02 129 130 /* Maximum number of payload bytes */ 131 #define MCDI_CTL_SDU_LEN_MAX_V1 0xfc 132 #define MCDI_CTL_SDU_LEN_MAX_V2 0x400 133 134 #ifdef WITH_MCDI_V2 135 #define MCDI_CTL_SDU_LEN_MAX MCDI_CTL_SDU_LEN_MAX_V2 136 #else 137 #define MCDI_CTL_SDU_LEN_MAX MCDI_CTL_SDU_LEN_MAX_V1 138 #endif 139 140 141 /* The MC can generate events for two reasons: 142 * - To advance a shared memory request if XFLAGS_EVREQ was set 143 * - As a notification (link state, i2c event), controlled 144 * via MC_CMD_LOG_CTRL 145 * 146 * Both events share a common structure: 147 * 148 * 0 32 33 36 44 52 60 149 * | Data | Cont | Level | Src | Code | Rsvd | 150 * | 151 * \ There is another event pending in this notification 152 * 153 * If Code==CMDDONE, then the fields are further interpreted as: 154 * 155 * - LEVEL==INFO Command succeeded 156 * - LEVEL==ERR Command failed 157 * 158 * 0 8 16 24 32 159 * | Seq | Datalen | Errno | Rsvd | 160 * 161 * These fields are taken directly out of the standard MCDI header, i.e., 162 * LEVEL==ERR, Datalen == 0 => Reboot 163 * 164 * Events can be squirted out of the UART (using LOG_CTRL) without a 165 * MCDI header. An event can be distinguished from a MCDI response by 166 * examining the first byte which is 0xc0. This corresponds to the 167 * non-existent MCDI command MC_CMD_DEBUG_LOG. 168 * 169 * 0 7 8 170 * | command | Resync | = 0xc0 171 * 172 * Since the event is written in big-endian byte order, this works 173 * providing bits 56-63 of the event are 0xc0. 174 * 175 * 56 60 63 176 * | Rsvd | Code | = 0xc0 177 * 178 * Which means for convenience the event code is 0xc for all MC 179 * generated events. 180 */ 181 #define FSE_AZ_EV_CODE_MCDI_EVRESPONSE 0xc 182 183 184 185 #define MC_CMD_ERR_CODE_OFST 0 186 #define MC_CMD_ERR_PROXY_PENDING_HANDLE_OFST 4 187 188 /* We define 8 "escape" commands to allow 189 for command number space extension */ 190 191 #define MC_CMD_CMD_SPACE_ESCAPE_0 0x78 192 #define MC_CMD_CMD_SPACE_ESCAPE_1 0x79 193 #define MC_CMD_CMD_SPACE_ESCAPE_2 0x7A 194 #define MC_CMD_CMD_SPACE_ESCAPE_3 0x7B 195 #define MC_CMD_CMD_SPACE_ESCAPE_4 0x7C 196 #define MC_CMD_CMD_SPACE_ESCAPE_5 0x7D 197 #define MC_CMD_CMD_SPACE_ESCAPE_6 0x7E 198 #define MC_CMD_CMD_SPACE_ESCAPE_7 0x7F 199 200 /* Vectors in the boot ROM */ 201 /* Point to the copycode entry point. */ 202 #define SIENA_MC_BOOTROM_COPYCODE_VEC (0x800 - 3 * 0x4) 203 #define HUNT_MC_BOOTROM_COPYCODE_VEC (0x8000 - 3 * 0x4) 204 #define MEDFORD_MC_BOOTROM_COPYCODE_VEC (0x10000 - 3 * 0x4) 205 /* Points to the recovery mode entry point. Misnamed but kept for compatibility. */ 206 #define SIENA_MC_BOOTROM_NOFLASH_VEC (0x800 - 2 * 0x4) 207 #define HUNT_MC_BOOTROM_NOFLASH_VEC (0x8000 - 2 * 0x4) 208 #define MEDFORD_MC_BOOTROM_NOFLASH_VEC (0x10000 - 2 * 0x4) 209 /* Points to the recovery mode entry point. Same as above, but the right name. */ 210 #define SIENA_MC_BOOTROM_RECOVERY_VEC (0x800 - 2 * 0x4) 211 #define HUNT_MC_BOOTROM_RECOVERY_VEC (0x8000 - 2 * 0x4) 212 #define MEDFORD_MC_BOOTROM_RECOVERY_VEC (0x10000 - 2 * 0x4) 213 214 /* Points to noflash mode entry point. */ 215 #define MEDFORD_MC_BOOTROM_REAL_NOFLASH_VEC (0x10000 - 4 * 0x4) 216 217 /* The command set exported by the boot ROM (MCDI v0) */ 218 #define MC_CMD_GET_VERSION_V0_SUPPORTED_FUNCS { \ 219 (1 << MC_CMD_READ32) | \ 220 (1 << MC_CMD_WRITE32) | \ 221 (1 << MC_CMD_COPYCODE) | \ 222 (1 << MC_CMD_GET_VERSION), \ 223 0, 0, 0 } 224 225 #define MC_CMD_SENSOR_INFO_OUT_OFFSET_OFST(_x) \ 226 (MC_CMD_SENSOR_ENTRY_OFST + (_x)) 227 228 #define MC_CMD_DBI_WRITE_IN_ADDRESS_OFST(n) \ 229 (MC_CMD_DBI_WRITE_IN_DBIWROP_OFST + \ 230 MC_CMD_DBIWROP_TYPEDEF_ADDRESS_OFST + \ 231 (n) * MC_CMD_DBIWROP_TYPEDEF_LEN) 232 233 #define MC_CMD_DBI_WRITE_IN_BYTE_MASK_OFST(n) \ 234 (MC_CMD_DBI_WRITE_IN_DBIWROP_OFST + \ 235 MC_CMD_DBIWROP_TYPEDEF_BYTE_MASK_OFST + \ 236 (n) * MC_CMD_DBIWROP_TYPEDEF_LEN) 237 238 #define MC_CMD_DBI_WRITE_IN_VALUE_OFST(n) \ 239 (MC_CMD_DBI_WRITE_IN_DBIWROP_OFST + \ 240 MC_CMD_DBIWROP_TYPEDEF_VALUE_OFST + \ 241 (n) * MC_CMD_DBIWROP_TYPEDEF_LEN) 242 243 /* This may be ORed with an EVB_PORT_ID_xxx constant to pass a non-default 244 * stack ID (which must be in the range 1-255) along with an EVB port ID. 245 */ 246 #define EVB_STACK_ID(n) (((n) & 0xff) << 16) 247 248 249 #ifdef WITH_MCDI_V2 250 251 /* Version 2 adds an optional argument to error returns: the errno value 252 * may be followed by the (0-based) number of the first argument that 253 * could not be processed. 254 */ 255 #define MC_CMD_ERR_ARG_OFST 4 256 257 #endif 258 259 /* MC_CMD_ERR enum: Public MCDI error codes. Error codes that correspond to 260 * POSIX errnos should use the same numeric values that linux does. Error codes 261 * specific to Solarflare firmware should use values in the range 0x1000 - 262 * 0x10ff. The range 0x2000 - 0x20ff is reserved for private error codes (see 263 * MC_CMD_ERR_PRIV below). 264 */ 265 /* enum: Operation not permitted. */ 266 #define MC_CMD_ERR_EPERM 0x1 267 /* enum: Non-existent command target */ 268 #define MC_CMD_ERR_ENOENT 0x2 269 /* enum: assert() has killed the MC */ 270 #define MC_CMD_ERR_EINTR 0x4 271 /* enum: I/O failure */ 272 #define MC_CMD_ERR_EIO 0x5 273 /* enum: Already exists */ 274 #define MC_CMD_ERR_EEXIST 0x6 275 /* enum: Try again */ 276 #define MC_CMD_ERR_EAGAIN 0xb 277 /* enum: Out of memory */ 278 #define MC_CMD_ERR_ENOMEM 0xc 279 /* enum: Caller does not hold required locks */ 280 #define MC_CMD_ERR_EACCES 0xd 281 /* enum: Resource is currently unavailable (e.g. lock contention) */ 282 #define MC_CMD_ERR_EBUSY 0x10 283 /* enum: No such device */ 284 #define MC_CMD_ERR_ENODEV 0x13 285 /* enum: Invalid argument to target */ 286 #define MC_CMD_ERR_EINVAL 0x16 287 /* enum: No space */ 288 #define MC_CMD_ERR_ENOSPC 0x1c 289 /* enum: Read-only */ 290 #define MC_CMD_ERR_EROFS 0x1e 291 /* enum: Broken pipe */ 292 #define MC_CMD_ERR_EPIPE 0x20 293 /* enum: Out of range */ 294 #define MC_CMD_ERR_ERANGE 0x22 295 /* enum: Non-recursive resource is already acquired */ 296 #define MC_CMD_ERR_EDEADLK 0x23 297 /* enum: Operation not implemented */ 298 #define MC_CMD_ERR_ENOSYS 0x26 299 /* enum: Operation timed out */ 300 #define MC_CMD_ERR_ETIME 0x3e 301 /* enum: Link has been severed */ 302 #define MC_CMD_ERR_ENOLINK 0x43 303 /* enum: Protocol error */ 304 #define MC_CMD_ERR_EPROTO 0x47 305 /* enum: Bad message */ 306 #define MC_CMD_ERR_EBADMSG 0x4a 307 /* enum: Operation not supported */ 308 #define MC_CMD_ERR_ENOTSUP 0x5f 309 /* enum: Address not available */ 310 #define MC_CMD_ERR_EADDRNOTAVAIL 0x63 311 /* enum: Not connected */ 312 #define MC_CMD_ERR_ENOTCONN 0x6b 313 /* enum: Operation already in progress */ 314 #define MC_CMD_ERR_EALREADY 0x72 315 /* enum: Stale handle. The handle references a resource that no longer exists. 316 */ 317 #define MC_CMD_ERR_ESTALE 0x74 318 /* enum: Resource allocation failed. */ 319 #define MC_CMD_ERR_ALLOC_FAIL 0x1000 320 /* enum: V-adaptor not found. */ 321 #define MC_CMD_ERR_NO_VADAPTOR 0x1001 322 /* enum: EVB port not found. */ 323 #define MC_CMD_ERR_NO_EVB_PORT 0x1002 324 /* enum: V-switch not found. */ 325 #define MC_CMD_ERR_NO_VSWITCH 0x1003 326 /* enum: Too many VLAN tags. */ 327 #define MC_CMD_ERR_VLAN_LIMIT 0x1004 328 /* enum: Bad PCI function number. */ 329 #define MC_CMD_ERR_BAD_PCI_FUNC 0x1005 330 /* enum: Invalid VLAN mode. */ 331 #define MC_CMD_ERR_BAD_VLAN_MODE 0x1006 332 /* enum: Invalid v-switch type. */ 333 #define MC_CMD_ERR_BAD_VSWITCH_TYPE 0x1007 334 /* enum: Invalid v-port type. */ 335 #define MC_CMD_ERR_BAD_VPORT_TYPE 0x1008 336 /* enum: MAC address exists. */ 337 #define MC_CMD_ERR_MAC_EXIST 0x1009 338 /* enum: Slave core not present */ 339 #define MC_CMD_ERR_SLAVE_NOT_PRESENT 0x100a 340 /* enum: The datapath is disabled. */ 341 #define MC_CMD_ERR_DATAPATH_DISABLED 0x100b 342 /* enum: The requesting client is not a function */ 343 #define MC_CMD_ERR_CLIENT_NOT_FN 0x100c 344 /* enum: The requested operation might require the command to be passed between 345 * MCs, and the transport doesn't support that. Should only ever been seen over 346 * the UART. 347 */ 348 #define MC_CMD_ERR_TRANSPORT_NOPROXY 0x100d 349 /* enum: VLAN tag(s) exists */ 350 #define MC_CMD_ERR_VLAN_EXIST 0x100e 351 /* enum: No MAC address assigned to an EVB port */ 352 #define MC_CMD_ERR_NO_MAC_ADDR 0x100f 353 /* enum: Notifies the driver that the request has been relayed to an admin 354 * function for authorization. The driver should wait for a PROXY_RESPONSE 355 * event and then resend its request. This error code is followed by a 32-bit 356 * handle that helps matching it with the respective PROXY_RESPONSE event. 357 */ 358 #define MC_CMD_ERR_PROXY_PENDING 0x1010 359 /* enum: The request cannot be passed for authorization because another request 360 * from the same function is currently being authorized. The drvier should try 361 * again later. 362 */ 363 #define MC_CMD_ERR_PROXY_INPROGRESS 0x1011 364 /* enum: Returned by MC_CMD_PROXY_COMPLETE if the caller is not the function 365 * that has enabled proxying or BLOCK_INDEX points to a function that doesn't 366 * await an authorization. 367 */ 368 #define MC_CMD_ERR_PROXY_UNEXPECTED 0x1012 369 /* enum: This code is currently only used internally in FW. Its meaning is that 370 * an operation failed due to lack of SR-IOV privilege. Normally it is 371 * translated to EPERM by send_cmd_err(), but it may also be used to trigger 372 * some special mechanism for handling such case, e.g. to relay the failed 373 * request to a designated admin function for authorization. 374 */ 375 #define MC_CMD_ERR_NO_PRIVILEGE 0x1013 376 /* enum: Workaround 26807 could not be turned on/off because some functions 377 * have already installed filters. See the comment at 378 * MC_CMD_WORKAROUND_BUG26807. May also returned for other operations such as 379 * sub-variant switching. 380 */ 381 #define MC_CMD_ERR_FILTERS_PRESENT 0x1014 382 /* enum: The clock whose frequency you've attempted to set doesn't exist on 383 * this NIC 384 */ 385 #define MC_CMD_ERR_NO_CLOCK 0x1015 386 /* enum: Returned by MC_CMD_TESTASSERT if the action that should have caused an 387 * assertion failed to do so. 388 */ 389 #define MC_CMD_ERR_UNREACHABLE 0x1016 390 /* enum: This command needs to be processed in the background but there were no 391 * resources to do so. Send it again after a command has completed. 392 */ 393 #define MC_CMD_ERR_QUEUE_FULL 0x1017 394 /* enum: The operation could not be completed because the PCIe link has gone 395 * away. This error code is never expected to be returned over the TLP 396 * transport. 397 */ 398 #define MC_CMD_ERR_NO_PCIE 0x1018 399 /* enum: The operation could not be completed because the datapath has gone 400 * away. This is distinct from MC_CMD_ERR_DATAPATH_DISABLED in that the 401 * datapath absence may be temporary 402 */ 403 #define MC_CMD_ERR_NO_DATAPATH 0x1019 404 /* enum: The operation could not complete because some VIs are allocated */ 405 #define MC_CMD_ERR_VIS_PRESENT 0x101a 406 /* enum: The operation could not complete because some PIO buffers are 407 * allocated 408 */ 409 #define MC_CMD_ERR_PIOBUFS_PRESENT 0x101b 410 411 /* MC_CMD_RESOURCE_SPECIFIER enum */ 412 /* enum: Any */ 413 #define MC_CMD_RESOURCE_INSTANCE_ANY 0xffffffff 414 #define MC_CMD_RESOURCE_INSTANCE_NONE 0xfffffffe /* enum */ 415 416 /* MC_CMD_FPGA_FLASH_INDEX enum */ 417 #define MC_CMD_FPGA_FLASH_PRIMARY 0x0 /* enum */ 418 #define MC_CMD_FPGA_FLASH_SECONDARY 0x1 /* enum */ 419 420 /* MC_CMD_EXTERNAL_MAE_LINK_MODE enum */ 421 /* enum: Legacy mode as described in XN-200039-TC. */ 422 #define MC_CMD_EXTERNAL_MAE_LINK_MODE_LEGACY 0x0 423 /* enum: Switchdev mode as described in XN-200039-TC. */ 424 #define MC_CMD_EXTERNAL_MAE_LINK_MODE_SWITCHDEV 0x1 425 /* enum: Bootstrap mode as described in XN-200039-TC. */ 426 #define MC_CMD_EXTERNAL_MAE_LINK_MODE_BOOTSTRAP 0x2 427 /* enum: Link-mode change is in-progress as described in XN-200039-TC. */ 428 #define MC_CMD_EXTERNAL_MAE_LINK_MODE_PENDING 0xf 429 430 /* PCIE_INTERFACE enum: From EF100 onwards, SFC products can have multiple PCIe 431 * interfaces. There is a need to refer to interfaces explicitly from drivers 432 * (for example, a management driver on one interface administering a function 433 * on another interface). This enumeration provides stable identifiers to all 434 * interfaces present on a product. Product documentation will specify which 435 * interfaces exist and their associated identifier. In general, drivers, 436 * should not assign special meanings to specific values. Instead, behaviour 437 * should be determined by NIC configuration, which will identify interfaces 438 * where appropriate. 439 */ 440 /* enum: Primary host interfaces. Typically (i.e. for all known SFC products) 441 * the interface exposed on the edge connector (or form factor equivalent). 442 */ 443 #define PCIE_INTERFACE_HOST_PRIMARY 0x0 444 /* enum: Riverhead and keystone products have a second PCIe interface to which 445 * an on-NIC ARM module is expected to be connected. 446 */ 447 #define PCIE_INTERFACE_NIC_EMBEDDED 0x1 448 /* enum: For MCDI commands issued over a PCIe interface, this value is 449 * translated into the interface over which the command was issued. Not 450 * meaningful for other MCDI transports. 451 */ 452 #define PCIE_INTERFACE_CALLER 0xffffffff 453 454 /* MC_CLIENT_ID_SPECIFIER enum */ 455 /* enum: Equivalent to the caller's client ID */ 456 #define MC_CMD_CLIENT_ID_SELF 0xffffffff 457 458 /* MAE_FIELD_SUPPORT_STATUS enum */ 459 /* enum: The NIC does not support this field. The driver must ensure that any 460 * mask associated with this field in a match rule is zeroed. The NIC may 461 * either reject requests with an invalid mask for such a field, or may assume 462 * that the mask is zero. (This category only exists to describe behaviour for 463 * fields that a newer driver might know about but that older firmware does 464 * not. It is recommended that firmware report MAE_FIELD_FIELD_MATCH_NEVER for 465 * all match fields defined at the time of its compilation. If a driver see a 466 * field support status value that it does not recognise, it must treat that 467 * field as thought the field was reported as MAE_FIELD_SUPPORTED_MATCH_NEVER, 468 * and must never set a non-zero mask value for this field. 469 */ 470 #define MAE_FIELD_UNSUPPORTED 0x0 471 /* enum: The NIC supports this field, but cannot use it in a match rule. The 472 * driver must ensure that any mask for such a field in a match rule is zeroed. 473 * The NIC will reject requests with an invalid mask for such a field. 474 */ 475 #define MAE_FIELD_SUPPORTED_MATCH_NEVER 0x1 476 /* enum: The NIC supports this field, and must use it in all match rules. The 477 * driver must ensure that any mask for such a field is all ones. The NIC will 478 * reject requests with an invalid mask for such a field. 479 */ 480 #define MAE_FIELD_SUPPORTED_MATCH_ALWAYS 0x2 481 /* enum: The NIC supports this field, and may optionally use it in match rules. 482 * The driver must ensure that any mask for such a field is either all zeroes 483 * or all ones. The NIC will reject requests with an invalid mask for such a 484 * field. 485 */ 486 #define MAE_FIELD_SUPPORTED_MATCH_OPTIONAL 0x3 487 /* enum: The NIC supports this field, and may optionally use it in match rules. 488 * The driver must ensure that any mask for such a field is either all zeroes 489 * or a consecutive set of ones following by all zeroes (starting from MSB). 490 * The NIC will reject requests with an invalid mask for such a field. 491 */ 492 #define MAE_FIELD_SUPPORTED_MATCH_PREFIX 0x4 493 /* enum: The NIC supports this field, and may optionally use it in match rules. 494 * The driver may provide an arbitrary mask for such a field. 495 */ 496 #define MAE_FIELD_SUPPORTED_MATCH_MASK 0x5 497 498 /* MAE_CT_VNI_MODE enum: Controls the layout of the VNI input to the conntrack 499 * lookup. (Values are not arbitrary - constrained by table access ABI.) 500 */ 501 /* enum: The VNI input to the conntrack lookup will be zero. */ 502 #define MAE_CT_VNI_MODE_ZERO 0x0 503 /* enum: The VNI input to the conntrack lookup will be the VNI (VXLAN/Geneve) 504 * or VSID (NVGRE) field from the packet. 505 */ 506 #define MAE_CT_VNI_MODE_VNI 0x1 507 /* enum: The VNI input to the conntrack lookup will be the VLAN ID from the 508 * outermost VLAN tag (in bottom 12 bits; top 12 bits zero). 509 */ 510 #define MAE_CT_VNI_MODE_1VLAN 0x2 511 /* enum: The VNI input to the conntrack lookup will be the VLAN IDs from both 512 * VLAN tags (outermost in bottom 12 bits, innermost in top 12 bits). 513 */ 514 #define MAE_CT_VNI_MODE_2VLAN 0x3 515 516 /* MAE_FIELD enum: NB: this enum shares namespace with the support status enum. 517 */ 518 /* enum: Source mport upon entering the MAE. */ 519 #define MAE_FIELD_INGRESS_PORT 0x0 520 #define MAE_FIELD_MARK 0x1 /* enum */ 521 /* enum: Table ID used in action rule. Initially zero, can be changed in action 522 * rule response. 523 */ 524 #define MAE_FIELD_RECIRC_ID 0x2 525 #define MAE_FIELD_IS_IP_FRAG 0x3 /* enum */ 526 #define MAE_FIELD_DO_CT 0x4 /* enum */ 527 #define MAE_FIELD_CT_HIT 0x5 /* enum */ 528 /* enum: Undefined unless CT_HIT=1. */ 529 #define MAE_FIELD_CT_MARK 0x6 530 /* enum: Undefined unless DO_CT=1. */ 531 #define MAE_FIELD_CT_DOMAIN 0x7 532 /* enum: Undefined unless CT_HIT=1. */ 533 #define MAE_FIELD_CT_PRIVATE_FLAGS 0x8 534 /* enum: 1 if the packet ingressed the NIC from one of the MACs, else 0. */ 535 #define MAE_FIELD_IS_FROM_NETWORK 0x9 536 /* enum: 1 if the packet has 1 or more VLAN tags, else 0. */ 537 #define MAE_FIELD_HAS_OVLAN 0xa 538 /* enum: 1 if the packet has 2 or more VLAN tags, else 0. */ 539 #define MAE_FIELD_HAS_IVLAN 0xb 540 /* enum: 1 if the outer packet has 1 or more VLAN tags, else 0; only present 541 * when encap 542 */ 543 #define MAE_FIELD_ENC_HAS_OVLAN 0xc 544 /* enum: 1 if the outer packet has 2 or more VLAN tags, else 0; only present 545 * when encap 546 */ 547 #define MAE_FIELD_ENC_HAS_IVLAN 0xd 548 /* enum: Packet is IP fragment */ 549 #define MAE_FIELD_ENC_IP_FRAG 0xe 550 #define MAE_FIELD_ETHER_TYPE 0x21 /* enum */ 551 #define MAE_FIELD_VLAN0_TCI 0x22 /* enum */ 552 #define MAE_FIELD_VLAN0_PROTO 0x23 /* enum */ 553 #define MAE_FIELD_VLAN1_TCI 0x24 /* enum */ 554 #define MAE_FIELD_VLAN1_PROTO 0x25 /* enum */ 555 /* enum: Inner when encap */ 556 #define MAE_FIELD_ETH_SADDR 0x28 557 /* enum: Inner when encap */ 558 #define MAE_FIELD_ETH_DADDR 0x29 559 /* enum: Inner when encap. NB: IPv4 and IPv6 fields are mutually exclusive. */ 560 #define MAE_FIELD_SRC_IP4 0x2a 561 /* enum: Inner when encap */ 562 #define MAE_FIELD_SRC_IP6 0x2b 563 /* enum: Inner when encap */ 564 #define MAE_FIELD_DST_IP4 0x2c 565 /* enum: Inner when encap */ 566 #define MAE_FIELD_DST_IP6 0x2d 567 /* enum: Inner when encap */ 568 #define MAE_FIELD_IP_PROTO 0x2e 569 /* enum: Inner when encap */ 570 #define MAE_FIELD_IP_TOS 0x2f 571 /* enum: Inner when encap */ 572 #define MAE_FIELD_IP_TTL 0x30 573 /* enum: Inner when encap TODO: how this is defined? The raw flags + 574 * frag_offset from the packet, or some derived value more amenable to ternary 575 * matching? TODO: there was a proposal for driver-allocation fields. The 576 * driver would provide some instruction for how to extract given field values, 577 * and would be given a field id in return. It could then use that field id in 578 * its matches. This feels like it would be extremely hard to implement in 579 * hardware, but I mention it for completeness. 580 */ 581 #define MAE_FIELD_IP_FLAGS 0x31 582 /* enum: Ports (UDP, TCP) Inner when encap */ 583 #define MAE_FIELD_L4_SPORT 0x32 584 /* enum: Ports (UDP, TCP) Inner when encap */ 585 #define MAE_FIELD_L4_DPORT 0x33 586 /* enum: Inner when encap */ 587 #define MAE_FIELD_TCP_FLAGS 0x34 588 /* enum: TCP packet with any of SYN, FIN or RST flag set */ 589 #define MAE_FIELD_TCP_SYN_FIN_RST 0x35 590 /* enum: Packet is IP fragment with fragment offset 0 */ 591 #define MAE_FIELD_IP_FIRST_FRAG 0x36 592 /* enum: The type of encapsulated used for this packet. Value as per 593 * ENCAP_TYPE_*. 594 */ 595 #define MAE_FIELD_ENCAP_TYPE 0x3f 596 /* enum: The ID of the outer rule that marked this packet as encapsulated. 597 * Useful for implicitly matching on outer fields. 598 */ 599 #define MAE_FIELD_OUTER_RULE_ID 0x40 600 /* enum: Outer; only present when encap */ 601 #define MAE_FIELD_ENC_ETHER_TYPE 0x41 602 /* enum: Outer; only present when encap */ 603 #define MAE_FIELD_ENC_VLAN0_TCI 0x42 604 /* enum: Outer; only present when encap */ 605 #define MAE_FIELD_ENC_VLAN0_PROTO 0x43 606 /* enum: Outer; only present when encap */ 607 #define MAE_FIELD_ENC_VLAN1_TCI 0x44 608 /* enum: Outer; only present when encap */ 609 #define MAE_FIELD_ENC_VLAN1_PROTO 0x45 610 /* enum: Outer; only present when encap */ 611 #define MAE_FIELD_ENC_ETH_SADDR 0x48 612 /* enum: Outer; only present when encap */ 613 #define MAE_FIELD_ENC_ETH_DADDR 0x49 614 /* enum: Outer; only present when encap */ 615 #define MAE_FIELD_ENC_SRC_IP4 0x4a 616 /* enum: Outer; only present when encap */ 617 #define MAE_FIELD_ENC_SRC_IP6 0x4b 618 /* enum: Outer; only present when encap */ 619 #define MAE_FIELD_ENC_DST_IP4 0x4c 620 /* enum: Outer; only present when encap */ 621 #define MAE_FIELD_ENC_DST_IP6 0x4d 622 /* enum: Outer; only present when encap */ 623 #define MAE_FIELD_ENC_IP_PROTO 0x4e 624 /* enum: Outer; only present when encap */ 625 #define MAE_FIELD_ENC_IP_TOS 0x4f 626 /* enum: Outer; only present when encap */ 627 #define MAE_FIELD_ENC_IP_TTL 0x50 628 /* enum: Outer; only present when encap */ 629 #define MAE_FIELD_ENC_IP_FLAGS 0x51 630 /* enum: Outer; only present when encap */ 631 #define MAE_FIELD_ENC_L4_SPORT 0x52 632 /* enum: Outer; only present when encap */ 633 #define MAE_FIELD_ENC_L4_DPORT 0x53 634 /* enum: VNI (when VXLAN or GENEVE) VSID (when NVGRE) Bottom 24 bits of Key 635 * (when L2GRE) Outer; only present when encap 636 */ 637 #define MAE_FIELD_ENC_VNET_ID 0x54 638 639 /* MAE_MCDI_ENCAP_TYPE enum: Encapsulation type. Defines how the payload will 640 * be parsed to an inner frame. Other values are reserved. Unknown values 641 * should be treated same as NONE. (Values are not arbitrary - constrained by 642 * table access ABI.) 643 */ 644 #define MAE_MCDI_ENCAP_TYPE_NONE 0x0 /* enum */ 645 /* enum: Don't assume enum aligns with support bitmask... */ 646 #define MAE_MCDI_ENCAP_TYPE_VXLAN 0x1 647 #define MAE_MCDI_ENCAP_TYPE_NVGRE 0x2 /* enum */ 648 #define MAE_MCDI_ENCAP_TYPE_GENEVE 0x3 /* enum */ 649 #define MAE_MCDI_ENCAP_TYPE_L2GRE 0x4 /* enum */ 650 651 /* MAE_MPORT_END enum: Selects which end of the logical link identified by an 652 * MPORT_SELECTOR is targeted by an operation. 653 */ 654 /* enum: Selects the port on the MAE virtual switch */ 655 #define MAE_MPORT_END_MAE 0x1 656 /* enum: Selects the virtual NIC plugged into the MAE switch */ 657 #define MAE_MPORT_END_VNIC 0x2 658 659 /* MAE_COUNTER_TYPE enum: The datapath maintains several sets of counters, each 660 * being associated with a different table. Note that the same counter ID may 661 * be allocated by different counter blocks, so e.g. AR counter 42 is different 662 * from CT counter 42. Generation counts are also type-specific. This value is 663 * also present in the header of streaming counter packets, in the IDENTIFIER 664 * field (see packetiser packet format definitions). Also note that LACP 665 * counter IDs are not allocated individually, instead the counter IDs are 666 * directly tied to the LACP balance table indices. These in turn are allocated 667 * in large contiguous blocks as a LAG config. Calling MAE_COUNTER_ALLOC/FREE 668 * with an LACP counter type will return EPERM. 669 */ 670 /* enum: Action Rule counters - can be referenced in AR response. */ 671 #define MAE_COUNTER_TYPE_AR 0x0 672 /* enum: Conntrack counters - can be referenced in CT response. */ 673 #define MAE_COUNTER_TYPE_CT 0x1 674 /* enum: Outer Rule counters - can be referenced in OR response. */ 675 #define MAE_COUNTER_TYPE_OR 0x2 676 /* enum: LACP counters - linked to LACP balance table entries. */ 677 #define MAE_COUNTER_TYPE_LACP 0x3 678 679 /* MAE_COUNTER_ID enum: ID of allocated counter or counter list. */ 680 /* enum: A counter ID that is guaranteed never to represent a real counter or 681 * counter list. 682 */ 683 #define MAE_COUNTER_ID_NULL 0xffffffff 684 685 /* TABLE_ID enum: Unique IDs for tables. The 32-bit ID values have been 686 * structured with bits [31:24] reserved (0), [23:16] indicating which major 687 * block the tables belongs to (0=VNIC TX, none currently; 1=MAE; 2=VNIC RX), 688 * [15:8] a unique ID within the block, and [7:0] reserved for future 689 * variations of the same table. (All of the tables currently defined within 690 * the streaming engines are listed here, but this does not imply that they are 691 * all supported - MC_CMD_TABLE_LIST returns the list of actually supported 692 * tables.) The DPU offload engines' enumerators follow a deliberate pattern: 693 * 0x01010000 + is_dpu_net * 0x10000 + is_wr_or_tx * 0x8000 + is_lite_pipe * 694 * 0x1000 + oe_engine_type * 0x100 + oe_instance_within_pipe * 0x10 695 */ 696 /* enum: Outer_Rule_Table in the MAE - refer to SF-123102-TC. */ 697 #define TABLE_ID_OUTER_RULE_TABLE 0x10000 698 /* enum: Outer_Rule_No_CT_Table in the MAE - refer to SF-123102-TC. */ 699 #define TABLE_ID_OUTER_RULE_NO_CT_TABLE 0x10100 700 /* enum: Mgmt_Filter_Table in the MAE - refer to SF-123102-TC. */ 701 #define TABLE_ID_MGMT_FILTER_TABLE 0x10200 702 /* enum: Conntrack_Table in the MAE - refer to SF-123102-TC. */ 703 #define TABLE_ID_CONNTRACK_TABLE 0x10300 704 /* enum: Action_Rule_Table in the MAE - refer to SF-123102-TC. */ 705 #define TABLE_ID_ACTION_RULE_TABLE 0x10400 706 /* enum: Mgroup_Default_Action_Set_Table in the MAE - refer to SF-123102-TC. */ 707 #define TABLE_ID_MGROUP_DEFAULT_ACTION_SET_TABLE 0x10500 708 /* enum: Encap_Hdr_Part1_Table in the MAE - refer to SF-123102-TC. */ 709 #define TABLE_ID_ENCAP_HDR_PART1_TABLE 0x10600 710 /* enum: Encap_Hdr_Part2_Table in the MAE - refer to SF-123102-TC. */ 711 #define TABLE_ID_ENCAP_HDR_PART2_TABLE 0x10700 712 /* enum: Replace_Src_MAC_Table in the MAE - refer to SF-123102-TC. */ 713 #define TABLE_ID_REPLACE_SRC_MAC_TABLE 0x10800 714 /* enum: Replace_Dst_MAC_Table in the MAE - refer to SF-123102-TC. */ 715 #define TABLE_ID_REPLACE_DST_MAC_TABLE 0x10900 716 /* enum: Dst_Mport_VC_Table in the MAE - refer to SF-123102-TC. */ 717 #define TABLE_ID_DST_MPORT_VC_TABLE 0x10a00 718 /* enum: LACP_LAG_Config_Table in the MAE - refer to SF-123102-TC. */ 719 #define TABLE_ID_LACP_LAG_CONFIG_TABLE 0x10b00 720 /* enum: LACP_Balance_Table in the MAE - refer to SF-123102-TC. */ 721 #define TABLE_ID_LACP_BALANCE_TABLE 0x10c00 722 /* enum: Dst_Mport_Host_Chan_Table in the MAE - refer to SF-123102-TC. */ 723 #define TABLE_ID_DST_MPORT_HOST_CHAN_TABLE 0x10d00 724 /* enum: VNIC_Rx_Encap_Table in VNIC Rx - refer to SF-123102-TC. */ 725 #define TABLE_ID_VNIC_RX_ENCAP_TABLE 0x20000 726 /* enum: Steering_Table in VNIC Rx - refer to SF-123102-TC. */ 727 #define TABLE_ID_STEERING_TABLE 0x20100 728 /* enum: RSS_Context_Table in VNIC Rx - refer to SF-123102-TC. */ 729 #define TABLE_ID_RSS_CONTEXT_TABLE 0x20200 730 /* enum: Indirection_Table in VNIC Rx - refer to SF-123102-TC. */ 731 #define TABLE_ID_INDIRECTION_TABLE 0x20300 732 /* enum: DPU.host read pipe first CRC offload engine profiles - refer to 733 * XN-200147-AN. 734 */ 735 #define TABLE_ID_DPU_HOST_RD_CRC0_OE_PROFILE 0x1010000 736 /* enum: DPU.host read pipe second CRC offload engine profiles - refer to 737 * XN-200147-AN. 738 */ 739 #define TABLE_ID_DPU_HOST_RD_CRC1_OE_PROFILE 0x1010010 740 /* enum: DPU.host write pipe first CRC offload engine profiles - refer to 741 * XN-200147-AN. 742 */ 743 #define TABLE_ID_DPU_HOST_WR_CRC0_OE_PROFILE 0x1018000 744 /* enum: DPU.host write pipe second CRC offload engine profiles - refer to 745 * XN-200147-AN. 746 */ 747 #define TABLE_ID_DPU_HOST_WR_CRC1_OE_PROFILE 0x1018010 748 /* enum: DPU.net 'full' receive pipe CRC offload engine profiles - refer to 749 * XN-200147-AN. 750 */ 751 #define TABLE_ID_DPU_NET_RX_CRC0_OE_PROFILE 0x1020000 752 /* enum: DPU.net 'full' receive pipe first checksum offload engine profiles - 753 * refer to XN-200147-AN. 754 */ 755 #define TABLE_ID_DPU_NET_RX_CSUM0_OE_PROFILE 0x1020100 756 /* enum: DPU.net 'full' receive pipe second checksum offload engine profiles - 757 * refer to XN-200147-AN. 758 */ 759 #define TABLE_ID_DPU_NET_RX_CSUM1_OE_PROFILE 0x1020110 760 /* enum: DPU.net 'full' receive pipe AES-GCM offload engine profiles - refer to 761 * XN-200147-AN. 762 */ 763 #define TABLE_ID_DPU_NET_RX_AES_GCM0_OE_PROFILE 0x1020200 764 /* enum: DPU.net 'lite' receive pipe CRC offload engine profiles - refer to 765 * XN-200147-AN. 766 */ 767 #define TABLE_ID_DPU_NET_RXLITE_CRC0_OE_PROFILE 0x1021000 768 /* enum: DPU.net 'lite' receive pipe checksum offload engine profiles - refer 769 * to XN-200147-AN. 770 */ 771 #define TABLE_ID_DPU_NET_RXLITE_CSUM0_OE_PROFILE 0x1021100 772 /* enum: DPU.net 'full' transmit pipe CRC offload engine profiles - refer to 773 * XN-200147-AN. 774 */ 775 #define TABLE_ID_DPU_NET_TX_CRC0_OE_PROFILE 0x1028000 776 /* enum: DPU.net 'full' transmit pipe first checksum offload engine profiles - 777 * refer to XN-200147-AN. 778 */ 779 #define TABLE_ID_DPU_NET_TX_CSUM0_OE_PROFILE 0x1028100 780 /* enum: DPU.net 'full' transmit pipe second checksum offload engine profiles - 781 * refer to XN-200147-AN. 782 */ 783 #define TABLE_ID_DPU_NET_TX_CSUM1_OE_PROFILE 0x1028110 784 /* enum: DPU.net 'full' transmit pipe AES-GCM offload engine profiles - refer 785 * to XN-200147-AN. 786 */ 787 #define TABLE_ID_DPU_NET_TX_AES_GCM0_OE_PROFILE 0x1028200 788 /* enum: DPU.net 'lite' transmit pipe CRC offload engine profiles - refer to 789 * XN-200147-AN. 790 */ 791 #define TABLE_ID_DPU_NET_TXLITE_CRC0_OE_PROFILE 0x1029000 792 /* enum: DPU.net 'lite' transmit pipe checksum offload engine profiles - refer 793 * to XN-200147-AN. 794 */ 795 #define TABLE_ID_DPU_NET_TXLITE_CSUM0_OE_PROFILE 0x1029100 796 797 /* TABLE_COMPRESSED_VLAN enum: Compressed VLAN TPID as used by some field 798 * types; can be calculated by (((ether_type_msb >> 2) & 0x4) ^ 0x4) | 799 * (ether_type_msb & 0x3); 800 */ 801 #define TABLE_COMPRESSED_VLAN_TPID_8100 0x5 /* enum */ 802 #define TABLE_COMPRESSED_VLAN_TPID_88A8 0x4 /* enum */ 803 #define TABLE_COMPRESSED_VLAN_TPID_9100 0x1 /* enum */ 804 #define TABLE_COMPRESSED_VLAN_TPID_9200 0x2 /* enum */ 805 #define TABLE_COMPRESSED_VLAN_TPID_9300 0x3 /* enum */ 806 807 /* TABLE_NAT_DIR enum: NAT direction. */ 808 #define TABLE_NAT_DIR_SOURCE 0x0 /* enum */ 809 #define TABLE_NAT_DIR_DEST 0x1 /* enum */ 810 811 /* TABLE_RSS_KEY_MODE enum: Defines how the value for Toeplitz hashing for RSS 812 * is constructed as a concatenation (indicated here by "++") of packet header 813 * fields. 814 */ 815 /* enum: IP src addr ++ IP dst addr */ 816 #define TABLE_RSS_KEY_MODE_SA_DA 0x0 817 /* enum: IP src addr ++ IP dst addr ++ TCP/UDP src port ++ TCP/UDP dst port */ 818 #define TABLE_RSS_KEY_MODE_SA_DA_SP_DP 0x1 819 /* enum: IP src addr */ 820 #define TABLE_RSS_KEY_MODE_SA 0x2 821 /* enum: IP dst addr */ 822 #define TABLE_RSS_KEY_MODE_DA 0x3 823 /* enum: IP src addr ++ TCP/UDP src port */ 824 #define TABLE_RSS_KEY_MODE_SA_SP 0x4 825 /* enum: IP dest addr ++ TCP dest port */ 826 #define TABLE_RSS_KEY_MODE_DA_DP 0x5 827 /* enum: Nothing (produces input of 0, resulting in output hash of 0) */ 828 #define TABLE_RSS_KEY_MODE_NONE 0x7 829 830 /* TABLE_RSS_SPREAD_MODE enum: RSS spreading mode. */ 831 /* enum: RSS uses Indirection_Table lookup. */ 832 #define TABLE_RSS_SPREAD_MODE_INDIRECTION 0x0 833 /* enum: RSS uses even spreading calculation. */ 834 #define TABLE_RSS_SPREAD_MODE_EVEN 0x1 835 836 /* CRC_VARIANT enum: Operation for the DPU CRC engine to perform. */ 837 /* enum: Calculate a 32-bit CRC. */ 838 #define CRC_VARIANT_CRC32 0x1 839 /* enum: Calculate a 64-bit CRC. */ 840 #define CRC_VARIANT_CRC64 0x2 841 842 /* DPU_CSUM_OP enum: Operation for the DPU checksum engine to perform. */ 843 /* enum: Calculate the checksum for a TCP payload, output result on OPR bus. */ 844 #define DPU_CSUM_OP_CALC_TCP 0x0 845 /* enum: Calculate the checksum for a UDP payload, output result on OPR bus. */ 846 #define DPU_CSUM_OP_CALC_UDP 0x1 847 /* enum: Calculate the checksum for a TCP payload, output match/not match value 848 * on OPR bus. 849 */ 850 #define DPU_CSUM_OP_VALIDATE_TCP 0x2 851 /* enum: Calculate the checksum for a UDP payload, output match/not match value 852 * on OPR bus. 853 */ 854 #define DPU_CSUM_OP_VALIDATE_UDP 0x3 855 856 /* GCM_OP_CODE enum: Operation for the DPU AES-GCM engine to perform. */ 857 /* enum: Encrypt/decrypt a stream of data. */ 858 #define GCM_OP_CODE_BULK_CRYPT 0x0 859 /* enum: Calculate the authentication tag for a stream of data. */ 860 #define GCM_OP_CODE_BULK_AUTH 0x1 861 /* enum: Encrypt/decrypt an IPsec packet. */ 862 #define GCM_OP_CODE_IPSEC_CRYPT 0x2 863 /* enum: Calculate the authentication tag of an IPsec packet. */ 864 #define GCM_OP_CODE_IPSEC_AUTH 0x3 865 866 /* AES_KEY_LEN enum: Key size for AES crypto operations */ 867 /* enum: 128 bit key size. */ 868 #define AES_KEY_LEN_AES_KEY_128 0x0 869 /* enum: 256 bit key size. */ 870 #define AES_KEY_LEN_AES_KEY_256 0x1 871 872 /* TABLE_FIELD_ID enum: Unique IDs for fields. Related concepts have been 873 * loosely grouped together into blocks with gaps for expansion, but the values 874 * are arbitrary. Field IDs are not specific to particular tables, and in some 875 * cases this sharing means that they are not used with the exact names of the 876 * corresponding table definitions in SF-123102-TC; however, the mapping should 877 * still be clear. The intent is that a list of fields, with their associated 878 * bit widths and semantics version code, unambiguously defines the semantics 879 * of the fields in a key or response. (Again, this list includes all of the 880 * fields currently defined within the streaming engines, but only a subset may 881 * actually be used by the supported list of tables.) 882 */ 883 /* enum: May appear multiple times within a key or response, and indicates that 884 * the field is unused and should be set to 0 (or masked out if permitted by 885 * the MASK_VALUE for this field). 886 */ 887 #define TABLE_FIELD_ID_UNUSED 0x0 888 /* enum: Source m-port (a full m-port label). */ 889 #define TABLE_FIELD_ID_SRC_MPORT 0x1 890 /* enum: Destination m-port (a full m-port label). */ 891 #define TABLE_FIELD_ID_DST_MPORT 0x2 892 /* enum: Source m-group ID. */ 893 #define TABLE_FIELD_ID_SRC_MGROUP_ID 0x3 894 /* enum: Physical network port ID (or m-port ID; same thing, for physical 895 * network ports). 896 */ 897 #define TABLE_FIELD_ID_NETWORK_PORT_ID 0x4 898 /* enum: True if packet arrived via network port, false if it arrived via host. 899 */ 900 #define TABLE_FIELD_ID_IS_FROM_NETWORK 0x5 901 /* enum: Full virtual channel from capsule header. */ 902 #define TABLE_FIELD_ID_CH_VC 0x6 903 /* enum: Low bits of virtual channel from capsule header. */ 904 #define TABLE_FIELD_ID_CH_VC_LOW 0x7 905 /* enum: User mark value in metadata and packet prefix. */ 906 #define TABLE_FIELD_ID_USER_MARK 0x8 907 /* enum: User flag value in metadata and packet prefix. */ 908 #define TABLE_FIELD_ID_USER_FLAG 0x9 909 /* enum: Counter ID associated with a response. All-bits-1 is a null value to 910 * suppress counting. 911 */ 912 #define TABLE_FIELD_ID_COUNTER_ID 0xa 913 /* enum: Discriminator which may be set by plugins in some lookup keys; this 914 * allows plugins to make a reinterpretation of packet fields in these keys 915 * without clashing with the normal interpretation. 916 */ 917 #define TABLE_FIELD_ID_DISCRIM 0xb 918 /* enum: Destination MAC address. The mapping from bytes in a frame to the 919 * 48-bit value for this field is in network order, i.e. a MAC address of 920 * AA:BB:CC:DD:EE:FF becomes a 48-bit value of 0xAABBCCDDEEFF. 921 */ 922 #define TABLE_FIELD_ID_DST_MAC 0x14 923 /* enum: Source MAC address (see notes for DST_MAC). */ 924 #define TABLE_FIELD_ID_SRC_MAC 0x15 925 /* enum: Outer VLAN tag TPID, compressed to an enumeration. */ 926 #define TABLE_FIELD_ID_OVLAN_TPID_COMPRESSED 0x16 927 /* enum: Full outer VLAN tag TCI (16 bits). */ 928 #define TABLE_FIELD_ID_OVLAN 0x17 929 /* enum: Outer VLAN ID (least significant 12 bits of full 16-bit TCI) only. */ 930 #define TABLE_FIELD_ID_OVLAN_VID 0x18 931 /* enum: Inner VLAN tag TPID, compressed to an enumeration. */ 932 #define TABLE_FIELD_ID_IVLAN_TPID_COMPRESSED 0x19 933 /* enum: Full inner VLAN tag TCI (16 bits). */ 934 #define TABLE_FIELD_ID_IVLAN 0x1a 935 /* enum: Inner VLAN ID (least significant 12 bits of full 16-bit TCI) only. */ 936 #define TABLE_FIELD_ID_IVLAN_VID 0x1b 937 /* enum: Ethertype. */ 938 #define TABLE_FIELD_ID_ETHER_TYPE 0x1c 939 /* enum: Source IP address, either IPv4 or IPv6. The mapping from bytes in a 940 * frame to the 128-bit value for this field is in network order, with IPv4 941 * addresses assumed to have 12 bytes of trailing zeroes. i.e. the IPv6 address 942 * [2345::6789:ABCD] is 0x2345000000000000000000006789ABCD; the IPv4 address 943 * 192.168.1.2 is 0xC0A80102000000000000000000000000. 944 */ 945 #define TABLE_FIELD_ID_SRC_IP 0x1d 946 /* enum: Destination IP address (see notes for SRC_IP). */ 947 #define TABLE_FIELD_ID_DST_IP 0x1e 948 /* enum: IPv4 Type-of-Service or IPv6 Traffic Class field. */ 949 #define TABLE_FIELD_ID_IP_TOS 0x1f 950 /* enum: IP Protocol. */ 951 #define TABLE_FIELD_ID_IP_PROTO 0x20 952 /* enum: Layer 4 source port. */ 953 #define TABLE_FIELD_ID_SRC_PORT 0x21 954 /* enum: Layer 4 destination port. */ 955 #define TABLE_FIELD_ID_DST_PORT 0x22 956 /* enum: TCP flags. */ 957 #define TABLE_FIELD_ID_TCP_FLAGS 0x23 958 /* enum: Virtual Network Identifier (VXLAN) or Virtual Session ID (NVGRE). */ 959 #define TABLE_FIELD_ID_VNI 0x24 960 /* enum: True if packet has any tunnel encapsulation header. */ 961 #define TABLE_FIELD_ID_HAS_ENCAP 0x32 962 /* enum: True if encap header has an outer VLAN tag. */ 963 #define TABLE_FIELD_ID_HAS_ENC_OVLAN 0x33 964 /* enum: True if encap header has an inner VLAN tag. */ 965 #define TABLE_FIELD_ID_HAS_ENC_IVLAN 0x34 966 /* enum: True if encap header is some sort of IP. */ 967 #define TABLE_FIELD_ID_HAS_ENC_IP 0x35 968 /* enum: True if encap header is specifically IPv4. */ 969 #define TABLE_FIELD_ID_HAS_ENC_IP4 0x36 970 /* enum: True if encap header is UDP. */ 971 #define TABLE_FIELD_ID_HAS_ENC_UDP 0x37 972 /* enum: True if only/inner frame has an outer VLAN tag. */ 973 #define TABLE_FIELD_ID_HAS_OVLAN 0x38 974 /* enum: True if only/inner frame has an inner VLAN tag. */ 975 #define TABLE_FIELD_ID_HAS_IVLAN 0x39 976 /* enum: True if only/inner frame is some sort of IP. */ 977 #define TABLE_FIELD_ID_HAS_IP 0x3a 978 /* enum: True if only/inner frame has a recognised L4 IP protocol (TCP or UDP). 979 */ 980 #define TABLE_FIELD_ID_HAS_L4 0x3b 981 /* enum: True if only/inner frame is an IP fragment. */ 982 #define TABLE_FIELD_ID_IP_FRAG 0x3c 983 /* enum: True if only/inner frame is the first IP fragment (fragment offset 0). 984 */ 985 #define TABLE_FIELD_ID_IP_FIRST_FRAG 0x3d 986 /* enum: True if only/inner frame has an IP Time-To-Live of <= 1. (Note: the 987 * implementation calls this "ip_ttl_is_one" but does in fact match packets 988 * with TTL=0 - which we shouldn't be seeing! - as well.) 989 */ 990 #define TABLE_FIELD_ID_IP_TTL_LE_ONE 0x3e 991 /* enum: True if only/inner frame has any of TCP SYN, FIN or RST flags set. */ 992 #define TABLE_FIELD_ID_TCP_INTERESTING_FLAGS 0x3f 993 /* enum: Plugin channel selection. */ 994 #define TABLE_FIELD_ID_RDP_PL_CHAN 0x50 995 /* enum: Enable update of CH_ROUTE_RDP_C_PL route bit. */ 996 #define TABLE_FIELD_ID_RDP_C_PL_EN 0x51 997 /* enum: New value of CH_ROUTE_RDP_C_PL route bit. */ 998 #define TABLE_FIELD_ID_RDP_C_PL 0x52 999 /* enum: Enable update of CH_ROUTE_RDP_D_PL route bit. */ 1000 #define TABLE_FIELD_ID_RDP_D_PL_EN 0x53 1001 /* enum: New value of CH_ROUTE_RDP_D_PL route bit. */ 1002 #define TABLE_FIELD_ID_RDP_D_PL 0x54 1003 /* enum: Enable update of CH_ROUTE_RDP_OUT_HOST_CHAN route bit. */ 1004 #define TABLE_FIELD_ID_RDP_OUT_HOST_CHAN_EN 0x55 1005 /* enum: New value of CH_ROUTE_RDP_OUT_HOST_CHAN route bit. */ 1006 #define TABLE_FIELD_ID_RDP_OUT_HOST_CHAN 0x56 1007 /* enum: Recirculation ID for lookup sequences with two action rule lookups. */ 1008 #define TABLE_FIELD_ID_RECIRC_ID 0x64 1009 /* enum: Domain ID passed to conntrack and action rule lookups. */ 1010 #define TABLE_FIELD_ID_DOMAIN 0x65 1011 /* enum: Construction mode for encap_tunnel_id - see MAE_CT_VNI_MODE enum. */ 1012 #define TABLE_FIELD_ID_CT_VNI_MODE 0x66 1013 /* enum: True to inhibit conntrack lookup if TCP SYN, FIN or RST flag is set. 1014 */ 1015 #define TABLE_FIELD_ID_CT_TCP_FLAGS_INHIBIT 0x67 1016 /* enum: True to do conntrack lookups for IPv4 TCP packets. */ 1017 #define TABLE_FIELD_ID_DO_CT_IP4_TCP 0x68 1018 /* enum: True to do conntrack lookups for IPv4 UDP packets. */ 1019 #define TABLE_FIELD_ID_DO_CT_IP4_UDP 0x69 1020 /* enum: True to do conntrack lookups for IPv6 TCP packets. */ 1021 #define TABLE_FIELD_ID_DO_CT_IP6_TCP 0x6a 1022 /* enum: True to do conntrack lookups for IPv6 UDP packets. */ 1023 #define TABLE_FIELD_ID_DO_CT_IP6_UDP 0x6b 1024 /* enum: Outer rule identifier. */ 1025 #define TABLE_FIELD_ID_OUTER_RULE_ID 0x6c 1026 /* enum: Encapsulation type - see MAE_MCDI_ENCAP_TYPE enum. */ 1027 #define TABLE_FIELD_ID_ENCAP_TYPE 0x6d 1028 /* enum: Encap tunnel ID for conntrack lookups from VNI, VLAN tag(s), or 0, 1029 * depending on CT_VNI_MODE. 1030 */ 1031 #define TABLE_FIELD_ID_ENCAP_TUNNEL_ID 0x78 1032 /* enum: A conntrack entry identifier, passed to plugins. */ 1033 #define TABLE_FIELD_ID_CT_ENTRY_ID 0x79 1034 /* enum: Either source or destination NAT replacement port. */ 1035 #define TABLE_FIELD_ID_NAT_PORT 0x7a 1036 /* enum: Either source or destination NAT replacement IPv4 address. Note that 1037 * this is specifically an IPv4 address (IPv6 is not supported for NAT), with 1038 * byte mapped to a 32-bit value in network order, i.e. the IPv4 address 1039 * 192.168.1.2 is the value 0xC0A80102. 1040 */ 1041 #define TABLE_FIELD_ID_NAT_IP 0x7b 1042 /* enum: NAT direction: 0=>source, 1=>destination. */ 1043 #define TABLE_FIELD_ID_NAT_DIR 0x7c 1044 /* enum: Conntrack mark value, passed to action rule lookup. Note that this is 1045 * not related to the "user mark" in the metadata / packet prefix. 1046 */ 1047 #define TABLE_FIELD_ID_CT_MARK 0x7d 1048 /* enum: Private flags for conntrack, passed to action rule lookup. */ 1049 #define TABLE_FIELD_ID_CT_PRIV_FLAGS 0x7e 1050 /* enum: True if the conntrack lookup resulted in a hit. */ 1051 #define TABLE_FIELD_ID_CT_HIT 0x7f 1052 /* enum: True to suppress delivery when source and destination m-ports match. 1053 */ 1054 #define TABLE_FIELD_ID_SUPPRESS_SELF_DELIVERY 0x8c 1055 /* enum: True to perform tunnel decapsulation. */ 1056 #define TABLE_FIELD_ID_DO_DECAP 0x8d 1057 /* enum: True to copy outer frame DSCP to inner on decap. */ 1058 #define TABLE_FIELD_ID_DECAP_DSCP_COPY 0x8e 1059 /* enum: True to map outer frame ECN to inner on decap, by RFC 6040 rules. */ 1060 #define TABLE_FIELD_ID_DECAP_ECN_RFC6040 0x8f 1061 /* enum: True to replace DSCP field. */ 1062 #define TABLE_FIELD_ID_DO_REPLACE_DSCP 0x90 1063 /* enum: True to replace ECN field. */ 1064 #define TABLE_FIELD_ID_DO_REPLACE_ECN 0x91 1065 /* enum: True to decrement IP Time-To-Live. */ 1066 #define TABLE_FIELD_ID_DO_DECR_IP_TTL 0x92 1067 /* enum: True to replace source MAC address. */ 1068 #define TABLE_FIELD_ID_DO_SRC_MAC 0x93 1069 /* enum: True to replace destination MAC address. */ 1070 #define TABLE_FIELD_ID_DO_DST_MAC 0x94 1071 /* enum: Number of VLAN tags to pop. Valid values are 0, 1, or 2. */ 1072 #define TABLE_FIELD_ID_DO_VLAN_POP 0x95 1073 /* enum: Number of VLANs tags to push. Valid values are 0, 1, or 2. */ 1074 #define TABLE_FIELD_ID_DO_VLAN_PUSH 0x96 1075 /* enum: True to count this packet. */ 1076 #define TABLE_FIELD_ID_DO_COUNT 0x97 1077 /* enum: True to perform tunnel encapsulation. */ 1078 #define TABLE_FIELD_ID_DO_ENCAP 0x98 1079 /* enum: True to copy inner frame DSCP to outer on encap. */ 1080 #define TABLE_FIELD_ID_ENCAP_DSCP_COPY 0x99 1081 /* enum: True to copy inner frame ECN to outer on encap. */ 1082 #define TABLE_FIELD_ID_ENCAP_ECN_COPY 0x9a 1083 /* enum: True to deliver the packet (otherwise it is dropped). */ 1084 #define TABLE_FIELD_ID_DO_DELIVER 0x9b 1085 /* enum: True to set the user flag in the metadata. */ 1086 #define TABLE_FIELD_ID_DO_FLAG 0x9c 1087 /* enum: True to update the user mark in the metadata. */ 1088 #define TABLE_FIELD_ID_DO_MARK 0x9d 1089 /* enum: True to override the capsule virtual channel for network deliveries. 1090 */ 1091 #define TABLE_FIELD_ID_DO_SET_NET_CHAN 0x9e 1092 /* enum: True to override the reported source m-port for host deliveries. */ 1093 #define TABLE_FIELD_ID_DO_SET_SRC_MPORT 0x9f 1094 /* enum: Encap header ID for DO_ENCAP, indexing Encap_Hdr_Part1/2_Table. */ 1095 #define TABLE_FIELD_ID_ENCAP_HDR_ID 0xaa 1096 /* enum: New DSCP value for DO_REPLACE_DSCP. */ 1097 #define TABLE_FIELD_ID_DSCP_VALUE 0xab 1098 /* enum: If DO_REPLACE_ECN is set, the new value for the ECN field. If 1099 * DO_REPLACE_ECN is not set, ECN_CONTROL[0] and ECN_CONTROL[1] are set to 1100 * request remapping of ECT0 and ECT1 ECN codepoints respectively to CE. 1101 */ 1102 #define TABLE_FIELD_ID_ECN_CONTROL 0xac 1103 /* enum: Source MAC ID for DO_SRC_MAC, indexing Replace_Src_MAC_Table. */ 1104 #define TABLE_FIELD_ID_SRC_MAC_ID 0xad 1105 /* enum: Destination MAC ID for DO_DST_MAC, indexing Replace_Dst_MAC_Table. */ 1106 #define TABLE_FIELD_ID_DST_MAC_ID 0xae 1107 /* enum: Parameter for either DO_SET_NET_CHAN (only bottom 6 bits used in this 1108 * case) or DO_SET_SRC_MPORT. 1109 */ 1110 #define TABLE_FIELD_ID_REPORTED_SRC_MPORT_OR_NET_CHAN 0xaf 1111 /* enum: 64-byte chunk of added encapsulation header. */ 1112 #define TABLE_FIELD_ID_CHUNK64 0xb4 1113 /* enum: 32-byte chunk of added encapsulation header. */ 1114 #define TABLE_FIELD_ID_CHUNK32 0xb5 1115 /* enum: 16-byte chunk of added encapsulation header. */ 1116 #define TABLE_FIELD_ID_CHUNK16 0xb6 1117 /* enum: 8-byte chunk of added encapsulation header. */ 1118 #define TABLE_FIELD_ID_CHUNK8 0xb7 1119 /* enum: 4-byte chunk of added encapsulation header. */ 1120 #define TABLE_FIELD_ID_CHUNK4 0xb8 1121 /* enum: 2-byte chunk of added encapsulation header. */ 1122 #define TABLE_FIELD_ID_CHUNK2 0xb9 1123 /* enum: Added encapsulation header length in words. */ 1124 #define TABLE_FIELD_ID_HDR_LEN_W 0xba 1125 /* enum: Static value for layer 2/3 LACP hash of the encapsulation header. */ 1126 #define TABLE_FIELD_ID_ENC_LACP_HASH_L23 0xbb 1127 /* enum: Static value for layer 4 LACP hash of the encapsulation header. */ 1128 #define TABLE_FIELD_ID_ENC_LACP_HASH_L4 0xbc 1129 /* enum: True to use the static ENC_LACP_HASH values for the encap header 1130 * instead of the calculated values for the inner frame when delivering a newly 1131 * encapsulated packet to a LAG m-port. 1132 */ 1133 #define TABLE_FIELD_ID_USE_ENC_LACP_HASHES 0xbd 1134 /* enum: True to trigger conntrack from first action rule lookup (AR=>CT=>AR 1135 * sequence). 1136 */ 1137 #define TABLE_FIELD_ID_DO_CT 0xc8 1138 /* enum: True to perform NAT using parameters from conntrack lookup response. 1139 */ 1140 #define TABLE_FIELD_ID_DO_NAT 0xc9 1141 /* enum: True to trigger recirculated action rule lookup (AR=>AR sequence). */ 1142 #define TABLE_FIELD_ID_DO_RECIRC 0xca 1143 /* enum: Next action set payload ID for replay. The null value is all-1-bits. 1144 */ 1145 #define TABLE_FIELD_ID_NEXT_ACTION_SET_PAYLOAD 0xcb 1146 /* enum: Next action set row ID for replay. The null value is all-1-bits. */ 1147 #define TABLE_FIELD_ID_NEXT_ACTION_SET_ROW 0xcc 1148 /* enum: Action set payload ID for additional delivery to management CPU. The 1149 * null value is all-1-bits. 1150 */ 1151 #define TABLE_FIELD_ID_MC_ACTION_SET_PAYLOAD 0xcd 1152 /* enum: Action set row ID for additional delivery to management CPU. The null 1153 * value is all-1-bits. 1154 */ 1155 #define TABLE_FIELD_ID_MC_ACTION_SET_ROW 0xce 1156 /* enum: True to include layer 4 in LACP hash on delivery to a LAG m-port. */ 1157 #define TABLE_FIELD_ID_LACP_INC_L4 0xdc 1158 /* enum: True to request that LACP is performed by a plugin. */ 1159 #define TABLE_FIELD_ID_LACP_PLUGIN 0xdd 1160 /* enum: LACP_Balance_Table base address divided by 64. */ 1161 #define TABLE_FIELD_ID_BAL_TBL_BASE_DIV64 0xde 1162 /* enum: Length of balance table region: 0=>64, 1=>128, 2=>256. */ 1163 #define TABLE_FIELD_ID_BAL_TBL_LEN_ID 0xdf 1164 /* enum: LACP LAG ID (i.e. the low 3 bits of LACP LAG mport ID), indexing 1165 * LACP_LAG_Config_Table. Refer to SF-123102-TC. 1166 */ 1167 #define TABLE_FIELD_ID_LACP_LAG_ID 0xe0 1168 /* enum: Address in LACP_Balance_Table. The balance table is partitioned 1169 * between LAGs according to the settings in LACP_LAG_Config_Table and then 1170 * indexed by the LACP hash, providing the mapping to destination mports. Refer 1171 * to SF-123102-TC. 1172 */ 1173 #define TABLE_FIELD_ID_BAL_TBL_ADDR 0xe1 1174 /* enum: UDP port to match for UDP-based encapsulations; required to be 0 for 1175 * other encapsulation types. 1176 */ 1177 #define TABLE_FIELD_ID_UDP_PORT 0xe6 1178 /* enum: True to perform RSS based on outer fields rather than inner fields. */ 1179 #define TABLE_FIELD_ID_RSS_ON_OUTER 0xe7 1180 /* enum: True to perform steering table lookup on outer fields rather than 1181 * inner fields. 1182 */ 1183 #define TABLE_FIELD_ID_STEER_ON_OUTER 0xe8 1184 /* enum: Destination queue ID for host delivery. */ 1185 #define TABLE_FIELD_ID_DST_QID 0xf0 1186 /* enum: True to drop this packet. */ 1187 #define TABLE_FIELD_ID_DROP 0xf1 1188 /* enum: True to strip outer VLAN tag from this packet. */ 1189 #define TABLE_FIELD_ID_VLAN_STRIP 0xf2 1190 /* enum: True to override the user mark field with the supplied USER_MARK, or 1191 * false to bitwise-OR the USER_MARK into it. 1192 */ 1193 #define TABLE_FIELD_ID_MARK_OVERRIDE 0xf3 1194 /* enum: True to override the user flag field with the supplied USER_FLAG, or 1195 * false to bitwise-OR the USER_FLAG into it. 1196 */ 1197 #define TABLE_FIELD_ID_FLAG_OVERRIDE 0xf4 1198 /* enum: RSS context ID, indexing the RSS_Context_Table. */ 1199 #define TABLE_FIELD_ID_RSS_CTX_ID 0xfa 1200 /* enum: True to enable RSS. */ 1201 #define TABLE_FIELD_ID_RSS_EN 0xfb 1202 /* enum: Toeplitz hash key. */ 1203 #define TABLE_FIELD_ID_KEY 0xfc 1204 /* enum: Key mode for IPv4 TCP packets - see TABLE_RSS_KEY_MODE enum. */ 1205 #define TABLE_FIELD_ID_TCP_V4_KEY_MODE 0xfd 1206 /* enum: Key mode for IPv6 TCP packets - see TABLE_RSS_KEY_MODE enum. */ 1207 #define TABLE_FIELD_ID_TCP_V6_KEY_MODE 0xfe 1208 /* enum: Key mode for IPv4 UDP packets - see TABLE_RSS_KEY_MODE enum. */ 1209 #define TABLE_FIELD_ID_UDP_V4_KEY_MODE 0xff 1210 /* enum: Key mode for IPv6 UDP packets - see TABLE_RSS_KEY_MODE enum. */ 1211 #define TABLE_FIELD_ID_UDP_V6_KEY_MODE 0x100 1212 /* enum: Key mode for other IPv4 packets - see TABLE_RSS_KEY_MODE enum. */ 1213 #define TABLE_FIELD_ID_OTHER_V4_KEY_MODE 0x101 1214 /* enum: Key mode for other IPv6 packets - see TABLE_RSS_KEY_MODE enum. */ 1215 #define TABLE_FIELD_ID_OTHER_V6_KEY_MODE 0x102 1216 /* enum: Spreading mode - 0=>indirection; 1=>even. */ 1217 #define TABLE_FIELD_ID_SPREAD_MODE 0x103 1218 /* enum: For indirection spreading mode, the base address of a region within 1219 * the Indirection_Table. For even spreading mode, the number of queues to 1220 * spread across (only values 1-255 are valid for this mode). 1221 */ 1222 #define TABLE_FIELD_ID_INDIR_TBL_BASE 0x104 1223 /* enum: For indirection spreading mode, identifies the length of a region 1224 * within the Indirection_Table, where length = 32 << len_id. Must be set to 0 1225 * for even spreading mode. 1226 */ 1227 #define TABLE_FIELD_ID_INDIR_TBL_LEN_ID 0x105 1228 /* enum: An offset to be applied to the base destination queue ID. */ 1229 #define TABLE_FIELD_ID_INDIR_OFFSET 0x106 1230 /* enum: DPU offload engine profile ID to address. */ 1231 #define TABLE_FIELD_ID_OE_PROFILE 0x3e8 1232 /* enum: Width of the CRC to calculate - see CRC_VARIANT enum. */ 1233 #define TABLE_FIELD_ID_CRC_VARIANT 0x3f2 1234 /* enum: If set, reflect the bits of each input byte, bit 7 is LSB, bit 0 is 1235 * MSB. If clear, bit 7 is MSB, bit 0 is LSB. 1236 */ 1237 #define TABLE_FIELD_ID_CRC_REFIN 0x3f3 1238 /* enum: If set, reflect the bits of each output byte, bit 7 is LSB, bit 0 is 1239 * MSB. If clear, bit 7 is MSB, bit 0 is LSB. 1240 */ 1241 #define TABLE_FIELD_ID_CRC_REFOUT 0x3f4 1242 /* enum: If set, invert every bit of the output value. */ 1243 #define TABLE_FIELD_ID_CRC_INVOUT 0x3f5 1244 /* enum: The CRC polynomial to use for checksumming, in normal form. See 1245 * https://en.wikipedia.org/wiki/Cyclic_redundancy_check#Specification for a 1246 * description of normal form. 1247 */ 1248 #define TABLE_FIELD_ID_CRC_POLY 0x3f6 1249 /* enum: Operation for the checksum engine to perform - see DPU_CSUM_OP enum. 1250 */ 1251 #define TABLE_FIELD_ID_CSUM_OP 0x410 1252 /* enum: Byte offset of checksum relative to region_start (for VALIDATE_* 1253 * operations only). 1254 */ 1255 #define TABLE_FIELD_ID_CSUM_OFFSET 0x411 1256 /* enum: Indicates there is additional data on OPR bus that needs to be 1257 * incorporated into the payload checksum. 1258 */ 1259 #define TABLE_FIELD_ID_CSUM_OPR_ADDITIONAL_DATA 0x412 1260 /* enum: Log2 data size of additional data on OPR bus. */ 1261 #define TABLE_FIELD_ID_CSUM_OPR_DATA_SIZE_LOG2 0x413 1262 /* enum: 4 byte offset of where to find the additional data on the OPR bus. */ 1263 #define TABLE_FIELD_ID_CSUM_OPR_4B_OFF 0x414 1264 /* enum: Operation type for the AES-GCM core - see GCM_OP_CODE enum. */ 1265 #define TABLE_FIELD_ID_GCM_OP_CODE 0x41a 1266 /* enum: Key length - AES_KEY_LEN enum. */ 1267 #define TABLE_FIELD_ID_GCM_KEY_LEN 0x41b 1268 /* enum: OPR 4 byte offset for ICV or GHASH output (only in BULK_* mode) or 1269 * IPSEC descrypt output. 1270 */ 1271 #define TABLE_FIELD_ID_GCM_OPR_4B_OFFSET 0x41c 1272 /* enum: If OP_CODE is BULK_*, indicates Emit GHASH (Fragment mode). Else, 1273 * indicates IPSEC-ESN mode. 1274 */ 1275 #define TABLE_FIELD_ID_GCM_EMIT_GHASH_ISESN 0x41d 1276 /* enum: Replay Protection Enable. */ 1277 #define TABLE_FIELD_ID_GCM_REPLAY_PROTECT_EN 0x41e 1278 /* enum: IPSEC Encrypt ESP trailer NEXT_HEADER byte. */ 1279 #define TABLE_FIELD_ID_GCM_NEXT_HDR 0x41f 1280 /* enum: Replay Window Size. */ 1281 #define TABLE_FIELD_ID_GCM_REPLAY_WIN_SIZE 0x420 1282 1283 /* MCDI_EVENT structuredef: The structure of an MCDI_EVENT on Siena/EF10/EF100 1284 * platforms 1285 */ 1286 #define MCDI_EVENT_LEN 8 1287 #define MCDI_EVENT_CONT_LBN 32 1288 #define MCDI_EVENT_CONT_WIDTH 1 1289 #define MCDI_EVENT_LEVEL_LBN 33 1290 #define MCDI_EVENT_LEVEL_WIDTH 3 1291 /* enum: Info. */ 1292 #define MCDI_EVENT_LEVEL_INFO 0x0 1293 /* enum: Warning. */ 1294 #define MCDI_EVENT_LEVEL_WARN 0x1 1295 /* enum: Error. */ 1296 #define MCDI_EVENT_LEVEL_ERR 0x2 1297 /* enum: Fatal. */ 1298 #define MCDI_EVENT_LEVEL_FATAL 0x3 1299 #define MCDI_EVENT_DATA_OFST 0 1300 #define MCDI_EVENT_DATA_LEN 4 1301 #define MCDI_EVENT_CMDDONE_SEQ_OFST 0 1302 #define MCDI_EVENT_CMDDONE_SEQ_LBN 0 1303 #define MCDI_EVENT_CMDDONE_SEQ_WIDTH 8 1304 #define MCDI_EVENT_CMDDONE_DATALEN_OFST 0 1305 #define MCDI_EVENT_CMDDONE_DATALEN_LBN 8 1306 #define MCDI_EVENT_CMDDONE_DATALEN_WIDTH 8 1307 #define MCDI_EVENT_CMDDONE_ERRNO_OFST 0 1308 #define MCDI_EVENT_CMDDONE_ERRNO_LBN 16 1309 #define MCDI_EVENT_CMDDONE_ERRNO_WIDTH 8 1310 #define MCDI_EVENT_LINKCHANGE_LP_CAP_OFST 0 1311 #define MCDI_EVENT_LINKCHANGE_LP_CAP_LBN 0 1312 #define MCDI_EVENT_LINKCHANGE_LP_CAP_WIDTH 16 1313 #define MCDI_EVENT_LINKCHANGE_SPEED_OFST 0 1314 #define MCDI_EVENT_LINKCHANGE_SPEED_LBN 16 1315 #define MCDI_EVENT_LINKCHANGE_SPEED_WIDTH 4 1316 /* enum: Link is down or link speed could not be determined */ 1317 #define MCDI_EVENT_LINKCHANGE_SPEED_UNKNOWN 0x0 1318 /* enum: 100Mbs */ 1319 #define MCDI_EVENT_LINKCHANGE_SPEED_100M 0x1 1320 /* enum: 1Gbs */ 1321 #define MCDI_EVENT_LINKCHANGE_SPEED_1G 0x2 1322 /* enum: 10Gbs */ 1323 #define MCDI_EVENT_LINKCHANGE_SPEED_10G 0x3 1324 /* enum: 40Gbs */ 1325 #define MCDI_EVENT_LINKCHANGE_SPEED_40G 0x4 1326 /* enum: 25Gbs */ 1327 #define MCDI_EVENT_LINKCHANGE_SPEED_25G 0x5 1328 /* enum: 50Gbs */ 1329 #define MCDI_EVENT_LINKCHANGE_SPEED_50G 0x6 1330 /* enum: 100Gbs */ 1331 #define MCDI_EVENT_LINKCHANGE_SPEED_100G 0x7 1332 #define MCDI_EVENT_LINKCHANGE_FCNTL_OFST 0 1333 #define MCDI_EVENT_LINKCHANGE_FCNTL_LBN 20 1334 #define MCDI_EVENT_LINKCHANGE_FCNTL_WIDTH 4 1335 #define MCDI_EVENT_LINKCHANGE_LINK_FLAGS_OFST 0 1336 #define MCDI_EVENT_LINKCHANGE_LINK_FLAGS_LBN 24 1337 #define MCDI_EVENT_LINKCHANGE_LINK_FLAGS_WIDTH 8 1338 #define MCDI_EVENT_SENSOREVT_MONITOR_OFST 0 1339 #define MCDI_EVENT_SENSOREVT_MONITOR_LBN 0 1340 #define MCDI_EVENT_SENSOREVT_MONITOR_WIDTH 8 1341 #define MCDI_EVENT_SENSOREVT_STATE_OFST 0 1342 #define MCDI_EVENT_SENSOREVT_STATE_LBN 8 1343 #define MCDI_EVENT_SENSOREVT_STATE_WIDTH 8 1344 #define MCDI_EVENT_SENSOREVT_VALUE_OFST 0 1345 #define MCDI_EVENT_SENSOREVT_VALUE_LBN 16 1346 #define MCDI_EVENT_SENSOREVT_VALUE_WIDTH 16 1347 #define MCDI_EVENT_FWALERT_DATA_OFST 0 1348 #define MCDI_EVENT_FWALERT_DATA_LBN 8 1349 #define MCDI_EVENT_FWALERT_DATA_WIDTH 24 1350 #define MCDI_EVENT_FWALERT_REASON_OFST 0 1351 #define MCDI_EVENT_FWALERT_REASON_LBN 0 1352 #define MCDI_EVENT_FWALERT_REASON_WIDTH 8 1353 /* enum: SRAM Access. */ 1354 #define MCDI_EVENT_FWALERT_REASON_SRAM_ACCESS 0x1 1355 #define MCDI_EVENT_FLR_VF_OFST 0 1356 #define MCDI_EVENT_FLR_VF_LBN 0 1357 #define MCDI_EVENT_FLR_VF_WIDTH 8 1358 #define MCDI_EVENT_TX_ERR_TXQ_OFST 0 1359 #define MCDI_EVENT_TX_ERR_TXQ_LBN 0 1360 #define MCDI_EVENT_TX_ERR_TXQ_WIDTH 12 1361 #define MCDI_EVENT_TX_ERR_TYPE_OFST 0 1362 #define MCDI_EVENT_TX_ERR_TYPE_LBN 12 1363 #define MCDI_EVENT_TX_ERR_TYPE_WIDTH 4 1364 /* enum: Descriptor loader reported failure. Specific to EF10-family NICs. */ 1365 #define MCDI_EVENT_TX_ERR_DL_FAIL 0x1 1366 /* enum: Descriptor ring empty and no EOP seen for packet. Specific to 1367 * EF10-family NICs 1368 */ 1369 #define MCDI_EVENT_TX_ERR_NO_EOP 0x2 1370 /* enum: Overlength packet. Specific to EF10-family NICs. */ 1371 #define MCDI_EVENT_TX_ERR_2BIG 0x3 1372 /* enum: Malformed option descriptor. Specific to EF10-family NICs. */ 1373 #define MCDI_EVENT_TX_BAD_OPTDESC 0x5 1374 /* enum: Option descriptor part way through a packet. Specific to EF10-family 1375 * NICs. 1376 */ 1377 #define MCDI_EVENT_TX_OPT_IN_PKT 0x8 1378 /* enum: DMA or PIO data access error. Specific to EF10-family NICs */ 1379 #define MCDI_EVENT_TX_ERR_BAD_DMA_OR_PIO 0x9 1380 #define MCDI_EVENT_TX_ERR_INFO_OFST 0 1381 #define MCDI_EVENT_TX_ERR_INFO_LBN 16 1382 #define MCDI_EVENT_TX_ERR_INFO_WIDTH 16 1383 #define MCDI_EVENT_TX_FLUSH_TO_DRIVER_OFST 0 1384 #define MCDI_EVENT_TX_FLUSH_TO_DRIVER_LBN 12 1385 #define MCDI_EVENT_TX_FLUSH_TO_DRIVER_WIDTH 1 1386 #define MCDI_EVENT_TX_FLUSH_TXQ_OFST 0 1387 #define MCDI_EVENT_TX_FLUSH_TXQ_LBN 0 1388 #define MCDI_EVENT_TX_FLUSH_TXQ_WIDTH 12 1389 #define MCDI_EVENT_PTP_ERR_TYPE_OFST 0 1390 #define MCDI_EVENT_PTP_ERR_TYPE_LBN 0 1391 #define MCDI_EVENT_PTP_ERR_TYPE_WIDTH 8 1392 /* enum: PLL lost lock */ 1393 #define MCDI_EVENT_PTP_ERR_PLL_LOST 0x1 1394 /* enum: Filter overflow (PDMA) */ 1395 #define MCDI_EVENT_PTP_ERR_FILTER 0x2 1396 /* enum: FIFO overflow (FPGA) */ 1397 #define MCDI_EVENT_PTP_ERR_FIFO 0x3 1398 /* enum: Merge queue overflow */ 1399 #define MCDI_EVENT_PTP_ERR_QUEUE 0x4 1400 #define MCDI_EVENT_AOE_ERR_TYPE_OFST 0 1401 #define MCDI_EVENT_AOE_ERR_TYPE_LBN 0 1402 #define MCDI_EVENT_AOE_ERR_TYPE_WIDTH 8 1403 /* enum: AOE failed to load - no valid image? */ 1404 #define MCDI_EVENT_AOE_NO_LOAD 0x1 1405 /* enum: AOE FC reported an exception */ 1406 #define MCDI_EVENT_AOE_FC_ASSERT 0x2 1407 /* enum: AOE FC watchdogged */ 1408 #define MCDI_EVENT_AOE_FC_WATCHDOG 0x3 1409 /* enum: AOE FC failed to start */ 1410 #define MCDI_EVENT_AOE_FC_NO_START 0x4 1411 /* enum: Generic AOE fault - likely to have been reported via other means too 1412 * but intended for use by aoex driver. 1413 */ 1414 #define MCDI_EVENT_AOE_FAULT 0x5 1415 /* enum: Results of reprogramming the CPLD (status in AOE_ERR_DATA) */ 1416 #define MCDI_EVENT_AOE_CPLD_REPROGRAMMED 0x6 1417 /* enum: AOE loaded successfully */ 1418 #define MCDI_EVENT_AOE_LOAD 0x7 1419 /* enum: AOE DMA operation completed (LSB of HOST_HANDLE in AOE_ERR_DATA) */ 1420 #define MCDI_EVENT_AOE_DMA 0x8 1421 /* enum: AOE byteblaster connected/disconnected (Connection status in 1422 * AOE_ERR_DATA) 1423 */ 1424 #define MCDI_EVENT_AOE_BYTEBLASTER 0x9 1425 /* enum: DDR ECC status update */ 1426 #define MCDI_EVENT_AOE_DDR_ECC_STATUS 0xa 1427 /* enum: PTP status update */ 1428 #define MCDI_EVENT_AOE_PTP_STATUS 0xb 1429 /* enum: FPGA header incorrect */ 1430 #define MCDI_EVENT_AOE_FPGA_LOAD_HEADER_ERR 0xc 1431 /* enum: FPGA Powered Off due to error in powering up FPGA */ 1432 #define MCDI_EVENT_AOE_FPGA_POWER_OFF 0xd 1433 /* enum: AOE FPGA load failed due to MC to MUM communication failure */ 1434 #define MCDI_EVENT_AOE_FPGA_LOAD_FAILED 0xe 1435 /* enum: Notify that invalid flash type detected */ 1436 #define MCDI_EVENT_AOE_INVALID_FPGA_FLASH_TYPE 0xf 1437 /* enum: Notify that the attempt to run FPGA Controller firmware timed out */ 1438 #define MCDI_EVENT_AOE_FC_RUN_TIMEDOUT 0x10 1439 /* enum: Failure to probe one or more FPGA boot flash chips */ 1440 #define MCDI_EVENT_AOE_FPGA_BOOT_FLASH_INVALID 0x11 1441 /* enum: FPGA boot-flash contains an invalid image header */ 1442 #define MCDI_EVENT_AOE_FPGA_BOOT_FLASH_HDR_INVALID 0x12 1443 /* enum: Failed to program clocks required by the FPGA */ 1444 #define MCDI_EVENT_AOE_FPGA_CLOCKS_PROGRAM_FAILED 0x13 1445 /* enum: Notify that FPGA Controller is alive to serve MCDI requests */ 1446 #define MCDI_EVENT_AOE_FC_RUNNING 0x14 1447 #define MCDI_EVENT_AOE_ERR_DATA_OFST 0 1448 #define MCDI_EVENT_AOE_ERR_DATA_LBN 8 1449 #define MCDI_EVENT_AOE_ERR_DATA_WIDTH 8 1450 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_INFO_OFST 0 1451 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_INFO_LBN 8 1452 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_INFO_WIDTH 8 1453 /* enum: FC Assert happened, but the register information is not available */ 1454 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_SEEN 0x0 1455 /* enum: The register information for FC Assert is ready for reading by driver 1456 */ 1457 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_DATA_READY 0x1 1458 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_OFST 0 1459 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_LBN 8 1460 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_WIDTH 8 1461 /* enum: Reading from NV failed */ 1462 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_NV_READ_FAIL 0x0 1463 /* enum: Invalid Magic Number if FPGA header */ 1464 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_MAGIC_FAIL 0x1 1465 /* enum: Invalid Silicon type detected in header */ 1466 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_SILICON_TYPE 0x2 1467 /* enum: Unsupported VRatio */ 1468 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_VRATIO 0x3 1469 /* enum: Unsupported DDR Type */ 1470 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_TYPE 0x4 1471 /* enum: DDR Voltage out of supported range */ 1472 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_VOLTAGE 0x5 1473 /* enum: Unsupported DDR speed */ 1474 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_SPEED 0x6 1475 /* enum: Unsupported DDR size */ 1476 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_SIZE 0x7 1477 /* enum: Unsupported DDR rank */ 1478 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_RANK 0x8 1479 #define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_OFST 0 1480 #define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_LBN 8 1481 #define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_WIDTH 8 1482 /* enum: Primary boot flash */ 1483 #define MCDI_EVENT_AOE_FLASH_TYPE_BOOT_PRIMARY 0x0 1484 /* enum: Secondary boot flash */ 1485 #define MCDI_EVENT_AOE_FLASH_TYPE_BOOT_SECONDARY 0x1 1486 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_OFST 0 1487 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_LBN 8 1488 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_WIDTH 8 1489 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_OFST 0 1490 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_LBN 8 1491 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_WIDTH 8 1492 #define MCDI_EVENT_RX_ERR_RXQ_OFST 0 1493 #define MCDI_EVENT_RX_ERR_RXQ_LBN 0 1494 #define MCDI_EVENT_RX_ERR_RXQ_WIDTH 12 1495 #define MCDI_EVENT_RX_ERR_TYPE_OFST 0 1496 #define MCDI_EVENT_RX_ERR_TYPE_LBN 12 1497 #define MCDI_EVENT_RX_ERR_TYPE_WIDTH 4 1498 #define MCDI_EVENT_RX_ERR_INFO_OFST 0 1499 #define MCDI_EVENT_RX_ERR_INFO_LBN 16 1500 #define MCDI_EVENT_RX_ERR_INFO_WIDTH 16 1501 #define MCDI_EVENT_RX_FLUSH_TO_DRIVER_OFST 0 1502 #define MCDI_EVENT_RX_FLUSH_TO_DRIVER_LBN 12 1503 #define MCDI_EVENT_RX_FLUSH_TO_DRIVER_WIDTH 1 1504 #define MCDI_EVENT_RX_FLUSH_RXQ_OFST 0 1505 #define MCDI_EVENT_RX_FLUSH_RXQ_LBN 0 1506 #define MCDI_EVENT_RX_FLUSH_RXQ_WIDTH 12 1507 #define MCDI_EVENT_MC_REBOOT_COUNT_OFST 0 1508 #define MCDI_EVENT_MC_REBOOT_COUNT_LBN 0 1509 #define MCDI_EVENT_MC_REBOOT_COUNT_WIDTH 16 1510 #define MCDI_EVENT_MUM_ERR_TYPE_OFST 0 1511 #define MCDI_EVENT_MUM_ERR_TYPE_LBN 0 1512 #define MCDI_EVENT_MUM_ERR_TYPE_WIDTH 8 1513 /* enum: MUM failed to load - no valid image? */ 1514 #define MCDI_EVENT_MUM_NO_LOAD 0x1 1515 /* enum: MUM f/w reported an exception */ 1516 #define MCDI_EVENT_MUM_ASSERT 0x2 1517 /* enum: MUM not kicking watchdog */ 1518 #define MCDI_EVENT_MUM_WATCHDOG 0x3 1519 #define MCDI_EVENT_MUM_ERR_DATA_OFST 0 1520 #define MCDI_EVENT_MUM_ERR_DATA_LBN 8 1521 #define MCDI_EVENT_MUM_ERR_DATA_WIDTH 8 1522 #define MCDI_EVENT_DBRET_SEQ_OFST 0 1523 #define MCDI_EVENT_DBRET_SEQ_LBN 0 1524 #define MCDI_EVENT_DBRET_SEQ_WIDTH 8 1525 #define MCDI_EVENT_SUC_ERR_TYPE_OFST 0 1526 #define MCDI_EVENT_SUC_ERR_TYPE_LBN 0 1527 #define MCDI_EVENT_SUC_ERR_TYPE_WIDTH 8 1528 /* enum: Corrupted or bad SUC application. */ 1529 #define MCDI_EVENT_SUC_BAD_APP 0x1 1530 /* enum: SUC application reported an assert. */ 1531 #define MCDI_EVENT_SUC_ASSERT 0x2 1532 /* enum: SUC application reported an exception. */ 1533 #define MCDI_EVENT_SUC_EXCEPTION 0x3 1534 /* enum: SUC watchdog timer expired. */ 1535 #define MCDI_EVENT_SUC_WATCHDOG 0x4 1536 #define MCDI_EVENT_SUC_ERR_ADDRESS_OFST 0 1537 #define MCDI_EVENT_SUC_ERR_ADDRESS_LBN 8 1538 #define MCDI_EVENT_SUC_ERR_ADDRESS_WIDTH 24 1539 #define MCDI_EVENT_SUC_ERR_DATA_OFST 0 1540 #define MCDI_EVENT_SUC_ERR_DATA_LBN 8 1541 #define MCDI_EVENT_SUC_ERR_DATA_WIDTH 24 1542 #define MCDI_EVENT_LINKCHANGE_V2_LP_CAP_OFST 0 1543 #define MCDI_EVENT_LINKCHANGE_V2_LP_CAP_LBN 0 1544 #define MCDI_EVENT_LINKCHANGE_V2_LP_CAP_WIDTH 24 1545 #define MCDI_EVENT_LINKCHANGE_V2_SPEED_OFST 0 1546 #define MCDI_EVENT_LINKCHANGE_V2_SPEED_LBN 24 1547 #define MCDI_EVENT_LINKCHANGE_V2_SPEED_WIDTH 4 1548 /* Enum values, see field(s): */ 1549 /* MCDI_EVENT/LINKCHANGE_SPEED */ 1550 #define MCDI_EVENT_LINKCHANGE_V2_FLAGS_LINK_UP_OFST 0 1551 #define MCDI_EVENT_LINKCHANGE_V2_FLAGS_LINK_UP_LBN 28 1552 #define MCDI_EVENT_LINKCHANGE_V2_FLAGS_LINK_UP_WIDTH 1 1553 #define MCDI_EVENT_LINKCHANGE_V2_FCNTL_OFST 0 1554 #define MCDI_EVENT_LINKCHANGE_V2_FCNTL_LBN 29 1555 #define MCDI_EVENT_LINKCHANGE_V2_FCNTL_WIDTH 3 1556 /* Enum values, see field(s): */ 1557 /* MC_CMD_SET_MAC/MC_CMD_SET_MAC_IN/FCNTL */ 1558 #define MCDI_EVENT_MODULECHANGE_LD_CAP_OFST 0 1559 #define MCDI_EVENT_MODULECHANGE_LD_CAP_LBN 0 1560 #define MCDI_EVENT_MODULECHANGE_LD_CAP_WIDTH 30 1561 #define MCDI_EVENT_MODULECHANGE_SEQ_OFST 0 1562 #define MCDI_EVENT_MODULECHANGE_SEQ_LBN 30 1563 #define MCDI_EVENT_MODULECHANGE_SEQ_WIDTH 2 1564 #define MCDI_EVENT_DESC_PROXY_VIRTQ_VI_ID_OFST 0 1565 #define MCDI_EVENT_DESC_PROXY_VIRTQ_VI_ID_LBN 0 1566 #define MCDI_EVENT_DESC_PROXY_VIRTQ_VI_ID_WIDTH 16 1567 #define MCDI_EVENT_DESC_PROXY_VIRTQ_ID_OFST 0 1568 #define MCDI_EVENT_DESC_PROXY_VIRTQ_ID_LBN 16 1569 #define MCDI_EVENT_DESC_PROXY_VIRTQ_ID_WIDTH 16 1570 #define MCDI_EVENT_DATA_LBN 0 1571 #define MCDI_EVENT_DATA_WIDTH 32 1572 /* Alias for PTP_DATA. */ 1573 #define MCDI_EVENT_SRC_LBN 36 1574 #define MCDI_EVENT_SRC_WIDTH 8 1575 /* Data associated with PTP events which doesn't fit into the main DATA field 1576 */ 1577 #define MCDI_EVENT_PTP_DATA_LBN 36 1578 #define MCDI_EVENT_PTP_DATA_WIDTH 8 1579 /* EF100 specific. Defined by QDMA. The phase bit, changes each time round the 1580 * event ring 1581 */ 1582 #define MCDI_EVENT_EV_EVQ_PHASE_LBN 59 1583 #define MCDI_EVENT_EV_EVQ_PHASE_WIDTH 1 1584 #define MCDI_EVENT_EV_CODE_LBN 60 1585 #define MCDI_EVENT_EV_CODE_WIDTH 4 1586 #define MCDI_EVENT_CODE_LBN 44 1587 #define MCDI_EVENT_CODE_WIDTH 8 1588 /* enum: Event generated by host software */ 1589 #define MCDI_EVENT_SW_EVENT 0x0 1590 /* enum: Bad assert. */ 1591 #define MCDI_EVENT_CODE_BADSSERT 0x1 1592 /* enum: PM Notice. */ 1593 #define MCDI_EVENT_CODE_PMNOTICE 0x2 1594 /* enum: Command done. */ 1595 #define MCDI_EVENT_CODE_CMDDONE 0x3 1596 /* enum: Link change. */ 1597 #define MCDI_EVENT_CODE_LINKCHANGE 0x4 1598 /* enum: Sensor Event. */ 1599 #define MCDI_EVENT_CODE_SENSOREVT 0x5 1600 /* enum: Schedule error. */ 1601 #define MCDI_EVENT_CODE_SCHEDERR 0x6 1602 /* enum: Reboot. */ 1603 #define MCDI_EVENT_CODE_REBOOT 0x7 1604 /* enum: Mac stats DMA. */ 1605 #define MCDI_EVENT_CODE_MAC_STATS_DMA 0x8 1606 /* enum: Firmware alert. */ 1607 #define MCDI_EVENT_CODE_FWALERT 0x9 1608 /* enum: Function level reset. */ 1609 #define MCDI_EVENT_CODE_FLR 0xa 1610 /* enum: Transmit error */ 1611 #define MCDI_EVENT_CODE_TX_ERR 0xb 1612 /* enum: Tx flush has completed */ 1613 #define MCDI_EVENT_CODE_TX_FLUSH 0xc 1614 /* enum: PTP packet received timestamp */ 1615 #define MCDI_EVENT_CODE_PTP_RX 0xd 1616 /* enum: PTP NIC failure */ 1617 #define MCDI_EVENT_CODE_PTP_FAULT 0xe 1618 /* enum: PTP PPS event */ 1619 #define MCDI_EVENT_CODE_PTP_PPS 0xf 1620 /* enum: Rx flush has completed */ 1621 #define MCDI_EVENT_CODE_RX_FLUSH 0x10 1622 /* enum: Receive error */ 1623 #define MCDI_EVENT_CODE_RX_ERR 0x11 1624 /* enum: AOE fault */ 1625 #define MCDI_EVENT_CODE_AOE 0x12 1626 /* enum: Network port calibration failed (VCAL). */ 1627 #define MCDI_EVENT_CODE_VCAL_FAIL 0x13 1628 /* enum: HW PPS event */ 1629 #define MCDI_EVENT_CODE_HW_PPS 0x14 1630 /* enum: The MC has rebooted (huntington and later, siena uses CODE_REBOOT and 1631 * a different format) 1632 */ 1633 #define MCDI_EVENT_CODE_MC_REBOOT 0x15 1634 /* enum: the MC has detected a parity error */ 1635 #define MCDI_EVENT_CODE_PAR_ERR 0x16 1636 /* enum: the MC has detected a correctable error */ 1637 #define MCDI_EVENT_CODE_ECC_CORR_ERR 0x17 1638 /* enum: the MC has detected an uncorrectable error */ 1639 #define MCDI_EVENT_CODE_ECC_FATAL_ERR 0x18 1640 /* enum: The MC has entered offline BIST mode */ 1641 #define MCDI_EVENT_CODE_MC_BIST 0x19 1642 /* enum: PTP tick event providing current NIC time */ 1643 #define MCDI_EVENT_CODE_PTP_TIME 0x1a 1644 /* enum: MUM fault */ 1645 #define MCDI_EVENT_CODE_MUM 0x1b 1646 /* enum: notify the designated PF of a new authorization request */ 1647 #define MCDI_EVENT_CODE_PROXY_REQUEST 0x1c 1648 /* enum: notify a function that awaits an authorization that its request has 1649 * been processed and it may now resend the command 1650 */ 1651 #define MCDI_EVENT_CODE_PROXY_RESPONSE 0x1d 1652 /* enum: MCDI command accepted. New commands can be issued but this command is 1653 * not done yet. 1654 */ 1655 #define MCDI_EVENT_CODE_DBRET 0x1e 1656 /* enum: The MC has detected a fault on the SUC */ 1657 #define MCDI_EVENT_CODE_SUC 0x1f 1658 /* enum: Link change. This event is sent instead of LINKCHANGE if 1659 * WANT_V2_LINKCHANGES was set on driver attach. 1660 */ 1661 #define MCDI_EVENT_CODE_LINKCHANGE_V2 0x20 1662 /* enum: This event is sent if WANT_V2_LINKCHANGES was set on driver attach 1663 * when the local device capabilities changes. This will usually correspond to 1664 * a module change. 1665 */ 1666 #define MCDI_EVENT_CODE_MODULECHANGE 0x21 1667 /* enum: Notification that the sensors have been added and/or removed from the 1668 * sensor table. This event includes the new sensor table generation count, if 1669 * this does not match the driver's local copy it is expected to call 1670 * DYNAMIC_SENSORS_LIST to refresh it. 1671 */ 1672 #define MCDI_EVENT_CODE_DYNAMIC_SENSORS_CHANGE 0x22 1673 /* enum: Notification that a sensor has changed state as a result of a reading 1674 * crossing a threshold. This is sent as two events, the first event contains 1675 * the handle and the sensor's state (in the SRC field), and the second 1676 * contains the value. 1677 */ 1678 #define MCDI_EVENT_CODE_DYNAMIC_SENSORS_STATE_CHANGE 0x23 1679 /* enum: Notification that a descriptor proxy function configuration has been 1680 * pushed to "live" status (visible to host). SRC field contains the handle of 1681 * the affected descriptor proxy function. DATA field contains the generation 1682 * count of configuration set applied. See MC_CMD_DESC_PROXY_FUNC_CONFIG_SET / 1683 * MC_CMD_DESC_PROXY_FUNC_CONFIG_COMMIT and SF-122927-TC for details. 1684 */ 1685 #define MCDI_EVENT_CODE_DESC_PROXY_FUNC_CONFIG_COMMITTED 0x24 1686 /* enum: Notification that a descriptor proxy function has been reset. SRC 1687 * field contains the handle of the affected descriptor proxy function. See 1688 * SF-122927-TC for details. 1689 */ 1690 #define MCDI_EVENT_CODE_DESC_PROXY_FUNC_RESET 0x25 1691 /* enum: Notification that a driver attached to a descriptor proxy function. 1692 * SRC field contains the handle of the affected descriptor proxy function. For 1693 * Virtio proxy functions this message consists of two MCDI events, where the 1694 * first event's (CONT=1) DATA field carries negotiated virtio feature bits 0 1695 * to 31 and the second (CONT=0) carries bits 32 to 63. For EF100 proxy 1696 * functions event length and meaning of DATA field is not yet defined. See 1697 * SF-122927-TC for details. 1698 */ 1699 #define MCDI_EVENT_CODE_DESC_PROXY_FUNC_DRIVER_ATTACH 0x26 1700 /* enum: Notification that the mport journal has changed since it was last read 1701 * and updates can be read using the MC_CMD_MAE_MPORT_READ_JOURNAL command. The 1702 * firmware may moderate the events so that an event is not sent for every 1703 * change to the journal. 1704 */ 1705 #define MCDI_EVENT_CODE_MPORT_JOURNAL_CHANGE 0x27 1706 /* enum: Notification that a source queue is enabled and attached to its proxy 1707 * sink queue. SRC field contains the handle of the affected descriptor proxy 1708 * function. DATA field contains the relative source queue number and absolute 1709 * VI ID. 1710 */ 1711 #define MCDI_EVENT_CODE_DESC_PROXY_FUNC_QUEUE_START 0x28 1712 /* enum: Artificial event generated by host and posted via MC for test 1713 * purposes. 1714 */ 1715 #define MCDI_EVENT_CODE_TESTGEN 0xfa 1716 #define MCDI_EVENT_CMDDONE_DATA_OFST 0 1717 #define MCDI_EVENT_CMDDONE_DATA_LEN 4 1718 #define MCDI_EVENT_CMDDONE_DATA_LBN 0 1719 #define MCDI_EVENT_CMDDONE_DATA_WIDTH 32 1720 #define MCDI_EVENT_LINKCHANGE_DATA_OFST 0 1721 #define MCDI_EVENT_LINKCHANGE_DATA_LEN 4 1722 #define MCDI_EVENT_LINKCHANGE_DATA_LBN 0 1723 #define MCDI_EVENT_LINKCHANGE_DATA_WIDTH 32 1724 #define MCDI_EVENT_SENSOREVT_DATA_OFST 0 1725 #define MCDI_EVENT_SENSOREVT_DATA_LEN 4 1726 #define MCDI_EVENT_SENSOREVT_DATA_LBN 0 1727 #define MCDI_EVENT_SENSOREVT_DATA_WIDTH 32 1728 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_OFST 0 1729 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_LEN 4 1730 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_LBN 0 1731 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_WIDTH 32 1732 #define MCDI_EVENT_TX_ERR_DATA_OFST 0 1733 #define MCDI_EVENT_TX_ERR_DATA_LEN 4 1734 #define MCDI_EVENT_TX_ERR_DATA_LBN 0 1735 #define MCDI_EVENT_TX_ERR_DATA_WIDTH 32 1736 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the seconds field of 1737 * timestamp 1738 */ 1739 #define MCDI_EVENT_PTP_SECONDS_OFST 0 1740 #define MCDI_EVENT_PTP_SECONDS_LEN 4 1741 #define MCDI_EVENT_PTP_SECONDS_LBN 0 1742 #define MCDI_EVENT_PTP_SECONDS_WIDTH 32 1743 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the major field of 1744 * timestamp 1745 */ 1746 #define MCDI_EVENT_PTP_MAJOR_OFST 0 1747 #define MCDI_EVENT_PTP_MAJOR_LEN 4 1748 #define MCDI_EVENT_PTP_MAJOR_LBN 0 1749 #define MCDI_EVENT_PTP_MAJOR_WIDTH 32 1750 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the nanoseconds field 1751 * of timestamp 1752 */ 1753 #define MCDI_EVENT_PTP_NANOSECONDS_OFST 0 1754 #define MCDI_EVENT_PTP_NANOSECONDS_LEN 4 1755 #define MCDI_EVENT_PTP_NANOSECONDS_LBN 0 1756 #define MCDI_EVENT_PTP_NANOSECONDS_WIDTH 32 1757 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the minor field of 1758 * timestamp 1759 */ 1760 #define MCDI_EVENT_PTP_MINOR_OFST 0 1761 #define MCDI_EVENT_PTP_MINOR_LEN 4 1762 #define MCDI_EVENT_PTP_MINOR_LBN 0 1763 #define MCDI_EVENT_PTP_MINOR_WIDTH 32 1764 /* For CODE_PTP_RX events, the lowest four bytes of sourceUUID from PTP packet 1765 */ 1766 #define MCDI_EVENT_PTP_UUID_OFST 0 1767 #define MCDI_EVENT_PTP_UUID_LEN 4 1768 #define MCDI_EVENT_PTP_UUID_LBN 0 1769 #define MCDI_EVENT_PTP_UUID_WIDTH 32 1770 #define MCDI_EVENT_RX_ERR_DATA_OFST 0 1771 #define MCDI_EVENT_RX_ERR_DATA_LEN 4 1772 #define MCDI_EVENT_RX_ERR_DATA_LBN 0 1773 #define MCDI_EVENT_RX_ERR_DATA_WIDTH 32 1774 #define MCDI_EVENT_PAR_ERR_DATA_OFST 0 1775 #define MCDI_EVENT_PAR_ERR_DATA_LEN 4 1776 #define MCDI_EVENT_PAR_ERR_DATA_LBN 0 1777 #define MCDI_EVENT_PAR_ERR_DATA_WIDTH 32 1778 #define MCDI_EVENT_ECC_CORR_ERR_DATA_OFST 0 1779 #define MCDI_EVENT_ECC_CORR_ERR_DATA_LEN 4 1780 #define MCDI_EVENT_ECC_CORR_ERR_DATA_LBN 0 1781 #define MCDI_EVENT_ECC_CORR_ERR_DATA_WIDTH 32 1782 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_OFST 0 1783 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_LEN 4 1784 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_LBN 0 1785 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_WIDTH 32 1786 /* For CODE_PTP_TIME events, the major value of the PTP clock */ 1787 #define MCDI_EVENT_PTP_TIME_MAJOR_OFST 0 1788 #define MCDI_EVENT_PTP_TIME_MAJOR_LEN 4 1789 #define MCDI_EVENT_PTP_TIME_MAJOR_LBN 0 1790 #define MCDI_EVENT_PTP_TIME_MAJOR_WIDTH 32 1791 /* For CODE_PTP_TIME events, bits 19-26 of the minor value of the PTP clock */ 1792 #define MCDI_EVENT_PTP_TIME_MINOR_26_19_LBN 36 1793 #define MCDI_EVENT_PTP_TIME_MINOR_26_19_WIDTH 8 1794 /* For CODE_PTP_TIME events, most significant bits of the minor value of the 1795 * PTP clock. This is a more generic equivalent of PTP_TIME_MINOR_26_19. 1796 */ 1797 #define MCDI_EVENT_PTP_TIME_MINOR_MS_8BITS_LBN 36 1798 #define MCDI_EVENT_PTP_TIME_MINOR_MS_8BITS_WIDTH 8 1799 /* For CODE_PTP_TIME events where report sync status is enabled, indicates 1800 * whether the NIC clock has ever been set 1801 */ 1802 #define MCDI_EVENT_PTP_TIME_NIC_CLOCK_VALID_LBN 36 1803 #define MCDI_EVENT_PTP_TIME_NIC_CLOCK_VALID_WIDTH 1 1804 /* For CODE_PTP_TIME events where report sync status is enabled, indicates 1805 * whether the NIC and System clocks are in sync 1806 */ 1807 #define MCDI_EVENT_PTP_TIME_HOST_NIC_IN_SYNC_LBN 37 1808 #define MCDI_EVENT_PTP_TIME_HOST_NIC_IN_SYNC_WIDTH 1 1809 /* For CODE_PTP_TIME events where report sync status is enabled, bits 21-26 of 1810 * the minor value of the PTP clock 1811 */ 1812 #define MCDI_EVENT_PTP_TIME_MINOR_26_21_LBN 38 1813 #define MCDI_EVENT_PTP_TIME_MINOR_26_21_WIDTH 6 1814 /* For CODE_PTP_TIME events, most significant bits of the minor value of the 1815 * PTP clock. This is a more generic equivalent of PTP_TIME_MINOR_26_21. 1816 */ 1817 #define MCDI_EVENT_PTP_TIME_MINOR_MS_6BITS_LBN 38 1818 #define MCDI_EVENT_PTP_TIME_MINOR_MS_6BITS_WIDTH 6 1819 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_OFST 0 1820 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_LEN 4 1821 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_LBN 0 1822 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_WIDTH 32 1823 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_OFST 0 1824 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_LEN 4 1825 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_LBN 0 1826 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_WIDTH 32 1827 /* Zero means that the request has been completed or authorized, and the driver 1828 * should resend it. A non-zero value means that the authorization has been 1829 * denied, and gives the reason. Typically it will be EPERM. 1830 */ 1831 #define MCDI_EVENT_PROXY_RESPONSE_RC_LBN 36 1832 #define MCDI_EVENT_PROXY_RESPONSE_RC_WIDTH 8 1833 #define MCDI_EVENT_DBRET_DATA_OFST 0 1834 #define MCDI_EVENT_DBRET_DATA_LEN 4 1835 #define MCDI_EVENT_DBRET_DATA_LBN 0 1836 #define MCDI_EVENT_DBRET_DATA_WIDTH 32 1837 #define MCDI_EVENT_LINKCHANGE_V2_DATA_OFST 0 1838 #define MCDI_EVENT_LINKCHANGE_V2_DATA_LEN 4 1839 #define MCDI_EVENT_LINKCHANGE_V2_DATA_LBN 0 1840 #define MCDI_EVENT_LINKCHANGE_V2_DATA_WIDTH 32 1841 #define MCDI_EVENT_MODULECHANGE_DATA_OFST 0 1842 #define MCDI_EVENT_MODULECHANGE_DATA_LEN 4 1843 #define MCDI_EVENT_MODULECHANGE_DATA_LBN 0 1844 #define MCDI_EVENT_MODULECHANGE_DATA_WIDTH 32 1845 /* The new generation count after a sensor has been added or deleted. */ 1846 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_OFST 0 1847 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_LEN 4 1848 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_LBN 0 1849 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_WIDTH 32 1850 /* The handle of a dynamic sensor. */ 1851 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_OFST 0 1852 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_LEN 4 1853 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_LBN 0 1854 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_WIDTH 32 1855 /* The current values of a sensor. */ 1856 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_OFST 0 1857 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_LEN 4 1858 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_LBN 0 1859 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_WIDTH 32 1860 /* The current state of a sensor. */ 1861 #define MCDI_EVENT_DYNAMIC_SENSORS_STATE_LBN 36 1862 #define MCDI_EVENT_DYNAMIC_SENSORS_STATE_WIDTH 8 1863 #define MCDI_EVENT_DESC_PROXY_DATA_OFST 0 1864 #define MCDI_EVENT_DESC_PROXY_DATA_LEN 4 1865 #define MCDI_EVENT_DESC_PROXY_DATA_LBN 0 1866 #define MCDI_EVENT_DESC_PROXY_DATA_WIDTH 32 1867 /* Generation count of applied configuration set */ 1868 #define MCDI_EVENT_DESC_PROXY_GENERATION_OFST 0 1869 #define MCDI_EVENT_DESC_PROXY_GENERATION_LEN 4 1870 #define MCDI_EVENT_DESC_PROXY_GENERATION_LBN 0 1871 #define MCDI_EVENT_DESC_PROXY_GENERATION_WIDTH 32 1872 /* Virtio features negotiated with the host driver. First event (CONT=1) 1873 * carries bits 0 to 31. Second event (CONT=0) carries bits 32 to 63. 1874 */ 1875 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_OFST 0 1876 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_LEN 4 1877 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_LBN 0 1878 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_WIDTH 32 1879 1880 /* FCDI_EVENT structuredef */ 1881 #define FCDI_EVENT_LEN 8 1882 #define FCDI_EVENT_CONT_LBN 32 1883 #define FCDI_EVENT_CONT_WIDTH 1 1884 #define FCDI_EVENT_LEVEL_LBN 33 1885 #define FCDI_EVENT_LEVEL_WIDTH 3 1886 /* enum: Info. */ 1887 #define FCDI_EVENT_LEVEL_INFO 0x0 1888 /* enum: Warning. */ 1889 #define FCDI_EVENT_LEVEL_WARN 0x1 1890 /* enum: Error. */ 1891 #define FCDI_EVENT_LEVEL_ERR 0x2 1892 /* enum: Fatal. */ 1893 #define FCDI_EVENT_LEVEL_FATAL 0x3 1894 #define FCDI_EVENT_DATA_OFST 0 1895 #define FCDI_EVENT_DATA_LEN 4 1896 #define FCDI_EVENT_LINK_STATE_STATUS_OFST 0 1897 #define FCDI_EVENT_LINK_STATE_STATUS_LBN 0 1898 #define FCDI_EVENT_LINK_STATE_STATUS_WIDTH 1 1899 #define FCDI_EVENT_LINK_DOWN 0x0 /* enum */ 1900 #define FCDI_EVENT_LINK_UP 0x1 /* enum */ 1901 #define FCDI_EVENT_DATA_LBN 0 1902 #define FCDI_EVENT_DATA_WIDTH 32 1903 #define FCDI_EVENT_SRC_LBN 36 1904 #define FCDI_EVENT_SRC_WIDTH 8 1905 #define FCDI_EVENT_EV_CODE_LBN 60 1906 #define FCDI_EVENT_EV_CODE_WIDTH 4 1907 #define FCDI_EVENT_CODE_LBN 44 1908 #define FCDI_EVENT_CODE_WIDTH 8 1909 /* enum: The FC was rebooted. */ 1910 #define FCDI_EVENT_CODE_REBOOT 0x1 1911 /* enum: Bad assert. */ 1912 #define FCDI_EVENT_CODE_ASSERT 0x2 1913 /* enum: DDR3 test result. */ 1914 #define FCDI_EVENT_CODE_DDR_TEST_RESULT 0x3 1915 /* enum: Link status. */ 1916 #define FCDI_EVENT_CODE_LINK_STATE 0x4 1917 /* enum: A timed read is ready to be serviced. */ 1918 #define FCDI_EVENT_CODE_TIMED_READ 0x5 1919 /* enum: One or more PPS IN events */ 1920 #define FCDI_EVENT_CODE_PPS_IN 0x6 1921 /* enum: Tick event from PTP clock */ 1922 #define FCDI_EVENT_CODE_PTP_TICK 0x7 1923 /* enum: ECC error counters */ 1924 #define FCDI_EVENT_CODE_DDR_ECC_STATUS 0x8 1925 /* enum: Current status of PTP */ 1926 #define FCDI_EVENT_CODE_PTP_STATUS 0x9 1927 /* enum: Port id config to map MC-FC port idx */ 1928 #define FCDI_EVENT_CODE_PORT_CONFIG 0xa 1929 /* enum: Boot result or error code */ 1930 #define FCDI_EVENT_CODE_BOOT_RESULT 0xb 1931 #define FCDI_EVENT_REBOOT_SRC_LBN 36 1932 #define FCDI_EVENT_REBOOT_SRC_WIDTH 8 1933 #define FCDI_EVENT_REBOOT_FC_FW 0x0 /* enum */ 1934 #define FCDI_EVENT_REBOOT_FC_BOOTLOADER 0x1 /* enum */ 1935 #define FCDI_EVENT_ASSERT_INSTR_ADDRESS_OFST 0 1936 #define FCDI_EVENT_ASSERT_INSTR_ADDRESS_LEN 4 1937 #define FCDI_EVENT_ASSERT_INSTR_ADDRESS_LBN 0 1938 #define FCDI_EVENT_ASSERT_INSTR_ADDRESS_WIDTH 32 1939 #define FCDI_EVENT_ASSERT_TYPE_LBN 36 1940 #define FCDI_EVENT_ASSERT_TYPE_WIDTH 8 1941 #define FCDI_EVENT_DDR_TEST_RESULT_STATUS_CODE_LBN 36 1942 #define FCDI_EVENT_DDR_TEST_RESULT_STATUS_CODE_WIDTH 8 1943 #define FCDI_EVENT_DDR_TEST_RESULT_RESULT_OFST 0 1944 #define FCDI_EVENT_DDR_TEST_RESULT_RESULT_LEN 4 1945 #define FCDI_EVENT_DDR_TEST_RESULT_RESULT_LBN 0 1946 #define FCDI_EVENT_DDR_TEST_RESULT_RESULT_WIDTH 32 1947 #define FCDI_EVENT_LINK_STATE_DATA_OFST 0 1948 #define FCDI_EVENT_LINK_STATE_DATA_LEN 4 1949 #define FCDI_EVENT_LINK_STATE_DATA_LBN 0 1950 #define FCDI_EVENT_LINK_STATE_DATA_WIDTH 32 1951 #define FCDI_EVENT_PTP_STATE_OFST 0 1952 #define FCDI_EVENT_PTP_STATE_LEN 4 1953 #define FCDI_EVENT_PTP_UNDEFINED 0x0 /* enum */ 1954 #define FCDI_EVENT_PTP_SETUP_FAILED 0x1 /* enum */ 1955 #define FCDI_EVENT_PTP_OPERATIONAL 0x2 /* enum */ 1956 #define FCDI_EVENT_PTP_STATE_LBN 0 1957 #define FCDI_EVENT_PTP_STATE_WIDTH 32 1958 #define FCDI_EVENT_DDR_ECC_STATUS_BANK_ID_LBN 36 1959 #define FCDI_EVENT_DDR_ECC_STATUS_BANK_ID_WIDTH 8 1960 #define FCDI_EVENT_DDR_ECC_STATUS_STATUS_OFST 0 1961 #define FCDI_EVENT_DDR_ECC_STATUS_STATUS_LEN 4 1962 #define FCDI_EVENT_DDR_ECC_STATUS_STATUS_LBN 0 1963 #define FCDI_EVENT_DDR_ECC_STATUS_STATUS_WIDTH 32 1964 /* Index of MC port being referred to */ 1965 #define FCDI_EVENT_PORT_CONFIG_SRC_LBN 36 1966 #define FCDI_EVENT_PORT_CONFIG_SRC_WIDTH 8 1967 /* FC Port index that matches the MC port index in SRC */ 1968 #define FCDI_EVENT_PORT_CONFIG_DATA_OFST 0 1969 #define FCDI_EVENT_PORT_CONFIG_DATA_LEN 4 1970 #define FCDI_EVENT_PORT_CONFIG_DATA_LBN 0 1971 #define FCDI_EVENT_PORT_CONFIG_DATA_WIDTH 32 1972 #define FCDI_EVENT_BOOT_RESULT_OFST 0 1973 #define FCDI_EVENT_BOOT_RESULT_LEN 4 1974 /* Enum values, see field(s): */ 1975 /* MC_CMD_AOE/MC_CMD_AOE_OUT_INFO/FC_BOOT_RESULT */ 1976 #define FCDI_EVENT_BOOT_RESULT_LBN 0 1977 #define FCDI_EVENT_BOOT_RESULT_WIDTH 32 1978 1979 /* FCDI_EXTENDED_EVENT_PPS structuredef: Extended FCDI event to send PPS events 1980 * to the MC. Note that this structure | is overlayed over a normal FCDI event 1981 * such that bits 32-63 containing | event code, level, source etc remain the 1982 * same. In this case the data | field of the header is defined to be the 1983 * number of timestamps 1984 */ 1985 #define FCDI_EXTENDED_EVENT_PPS_LENMIN 16 1986 #define FCDI_EXTENDED_EVENT_PPS_LENMAX 248 1987 #define FCDI_EXTENDED_EVENT_PPS_LENMAX_MCDI2 1016 1988 #define FCDI_EXTENDED_EVENT_PPS_LEN(num) (8+8*(num)) 1989 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_NUM(len) (((len)-8)/8) 1990 /* Number of timestamps following */ 1991 #define FCDI_EXTENDED_EVENT_PPS_COUNT_OFST 0 1992 #define FCDI_EXTENDED_EVENT_PPS_COUNT_LEN 4 1993 #define FCDI_EXTENDED_EVENT_PPS_COUNT_LBN 0 1994 #define FCDI_EXTENDED_EVENT_PPS_COUNT_WIDTH 32 1995 /* Seconds field of a timestamp record */ 1996 #define FCDI_EXTENDED_EVENT_PPS_SECONDS_OFST 8 1997 #define FCDI_EXTENDED_EVENT_PPS_SECONDS_LEN 4 1998 #define FCDI_EXTENDED_EVENT_PPS_SECONDS_LBN 64 1999 #define FCDI_EXTENDED_EVENT_PPS_SECONDS_WIDTH 32 2000 /* Nanoseconds field of a timestamp record */ 2001 #define FCDI_EXTENDED_EVENT_PPS_NANOSECONDS_OFST 12 2002 #define FCDI_EXTENDED_EVENT_PPS_NANOSECONDS_LEN 4 2003 #define FCDI_EXTENDED_EVENT_PPS_NANOSECONDS_LBN 96 2004 #define FCDI_EXTENDED_EVENT_PPS_NANOSECONDS_WIDTH 32 2005 /* Timestamp records comprising the event */ 2006 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_OFST 8 2007 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LEN 8 2008 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LO_OFST 8 2009 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LO_LEN 4 2010 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LO_LBN 64 2011 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LO_WIDTH 32 2012 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_HI_OFST 12 2013 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_HI_LEN 4 2014 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_HI_LBN 96 2015 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_HI_WIDTH 32 2016 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_MINNUM 1 2017 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_MAXNUM 30 2018 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_MAXNUM_MCDI2 126 2019 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LBN 64 2020 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_WIDTH 64 2021 2022 /* MUM_EVENT structuredef */ 2023 #define MUM_EVENT_LEN 8 2024 #define MUM_EVENT_CONT_LBN 32 2025 #define MUM_EVENT_CONT_WIDTH 1 2026 #define MUM_EVENT_LEVEL_LBN 33 2027 #define MUM_EVENT_LEVEL_WIDTH 3 2028 /* enum: Info. */ 2029 #define MUM_EVENT_LEVEL_INFO 0x0 2030 /* enum: Warning. */ 2031 #define MUM_EVENT_LEVEL_WARN 0x1 2032 /* enum: Error. */ 2033 #define MUM_EVENT_LEVEL_ERR 0x2 2034 /* enum: Fatal. */ 2035 #define MUM_EVENT_LEVEL_FATAL 0x3 2036 #define MUM_EVENT_DATA_OFST 0 2037 #define MUM_EVENT_DATA_LEN 4 2038 #define MUM_EVENT_SENSOR_ID_OFST 0 2039 #define MUM_EVENT_SENSOR_ID_LBN 0 2040 #define MUM_EVENT_SENSOR_ID_WIDTH 8 2041 /* Enum values, see field(s): */ 2042 /* MC_CMD_SENSOR_INFO/MC_CMD_SENSOR_INFO_OUT/MASK */ 2043 #define MUM_EVENT_SENSOR_STATE_OFST 0 2044 #define MUM_EVENT_SENSOR_STATE_LBN 8 2045 #define MUM_EVENT_SENSOR_STATE_WIDTH 8 2046 #define MUM_EVENT_PORT_PHY_READY_OFST 0 2047 #define MUM_EVENT_PORT_PHY_READY_LBN 0 2048 #define MUM_EVENT_PORT_PHY_READY_WIDTH 1 2049 #define MUM_EVENT_PORT_PHY_LINK_UP_OFST 0 2050 #define MUM_EVENT_PORT_PHY_LINK_UP_LBN 1 2051 #define MUM_EVENT_PORT_PHY_LINK_UP_WIDTH 1 2052 #define MUM_EVENT_PORT_PHY_TX_LOL_OFST 0 2053 #define MUM_EVENT_PORT_PHY_TX_LOL_LBN 2 2054 #define MUM_EVENT_PORT_PHY_TX_LOL_WIDTH 1 2055 #define MUM_EVENT_PORT_PHY_RX_LOL_OFST 0 2056 #define MUM_EVENT_PORT_PHY_RX_LOL_LBN 3 2057 #define MUM_EVENT_PORT_PHY_RX_LOL_WIDTH 1 2058 #define MUM_EVENT_PORT_PHY_TX_LOS_OFST 0 2059 #define MUM_EVENT_PORT_PHY_TX_LOS_LBN 4 2060 #define MUM_EVENT_PORT_PHY_TX_LOS_WIDTH 1 2061 #define MUM_EVENT_PORT_PHY_RX_LOS_OFST 0 2062 #define MUM_EVENT_PORT_PHY_RX_LOS_LBN 5 2063 #define MUM_EVENT_PORT_PHY_RX_LOS_WIDTH 1 2064 #define MUM_EVENT_PORT_PHY_TX_FAULT_OFST 0 2065 #define MUM_EVENT_PORT_PHY_TX_FAULT_LBN 6 2066 #define MUM_EVENT_PORT_PHY_TX_FAULT_WIDTH 1 2067 #define MUM_EVENT_DATA_LBN 0 2068 #define MUM_EVENT_DATA_WIDTH 32 2069 #define MUM_EVENT_SRC_LBN 36 2070 #define MUM_EVENT_SRC_WIDTH 8 2071 #define MUM_EVENT_EV_CODE_LBN 60 2072 #define MUM_EVENT_EV_CODE_WIDTH 4 2073 #define MUM_EVENT_CODE_LBN 44 2074 #define MUM_EVENT_CODE_WIDTH 8 2075 /* enum: The MUM was rebooted. */ 2076 #define MUM_EVENT_CODE_REBOOT 0x1 2077 /* enum: Bad assert. */ 2078 #define MUM_EVENT_CODE_ASSERT 0x2 2079 /* enum: Sensor failure. */ 2080 #define MUM_EVENT_CODE_SENSOR 0x3 2081 /* enum: Link fault has been asserted, or has cleared. */ 2082 #define MUM_EVENT_CODE_QSFP_LASI_INTERRUPT 0x4 2083 #define MUM_EVENT_SENSOR_DATA_OFST 0 2084 #define MUM_EVENT_SENSOR_DATA_LEN 4 2085 #define MUM_EVENT_SENSOR_DATA_LBN 0 2086 #define MUM_EVENT_SENSOR_DATA_WIDTH 32 2087 #define MUM_EVENT_PORT_PHY_FLAGS_OFST 0 2088 #define MUM_EVENT_PORT_PHY_FLAGS_LEN 4 2089 #define MUM_EVENT_PORT_PHY_FLAGS_LBN 0 2090 #define MUM_EVENT_PORT_PHY_FLAGS_WIDTH 32 2091 #define MUM_EVENT_PORT_PHY_COPPER_LEN_OFST 0 2092 #define MUM_EVENT_PORT_PHY_COPPER_LEN_LEN 4 2093 #define MUM_EVENT_PORT_PHY_COPPER_LEN_LBN 0 2094 #define MUM_EVENT_PORT_PHY_COPPER_LEN_WIDTH 32 2095 #define MUM_EVENT_PORT_PHY_CAPS_OFST 0 2096 #define MUM_EVENT_PORT_PHY_CAPS_LEN 4 2097 #define MUM_EVENT_PORT_PHY_CAPS_LBN 0 2098 #define MUM_EVENT_PORT_PHY_CAPS_WIDTH 32 2099 #define MUM_EVENT_PORT_PHY_TECH_OFST 0 2100 #define MUM_EVENT_PORT_PHY_TECH_LEN 4 2101 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_UNKNOWN 0x0 /* enum */ 2102 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_OPTICAL 0x1 /* enum */ 2103 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_COPPER_PASSIVE 0x2 /* enum */ 2104 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_COPPER_PASSIVE_EQUALIZED 0x3 /* enum */ 2105 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_COPPER_ACTIVE_LIMITING 0x4 /* enum */ 2106 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_COPPER_ACTIVE_LINEAR 0x5 /* enum */ 2107 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_BASE_T 0x6 /* enum */ 2108 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_LOOPBACK_PASSIVE 0x7 /* enum */ 2109 #define MUM_EVENT_PORT_PHY_TECH_LBN 0 2110 #define MUM_EVENT_PORT_PHY_TECH_WIDTH 32 2111 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_LBN 36 2112 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_WIDTH 4 2113 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_FLAGS 0x0 /* enum */ 2114 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_COPPER_LEN 0x1 /* enum */ 2115 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_CAPS 0x2 /* enum */ 2116 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_TECH 0x3 /* enum */ 2117 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_MAX 0x4 /* enum */ 2118 #define MUM_EVENT_PORT_PHY_SRC_PORT_NO_LBN 40 2119 #define MUM_EVENT_PORT_PHY_SRC_PORT_NO_WIDTH 4 2120 2121 2122 /***********************************/ 2123 /* MC_CMD_READ32 2124 * Read multiple 32byte words from MC memory. Note - this command really 2125 * belongs to INSECURE category but is required by shmboot. The command handler 2126 * has additional checks to reject insecure calls. 2127 */ 2128 #define MC_CMD_READ32 0x1 2129 #define MC_CMD_READ32_MSGSET 0x1 2130 #undef MC_CMD_0x1_PRIVILEGE_CTG 2131 2132 #define MC_CMD_0x1_PRIVILEGE_CTG SRIOV_CTG_ADMIN 2133 2134 /* MC_CMD_READ32_IN msgrequest */ 2135 #define MC_CMD_READ32_IN_LEN 8 2136 #define MC_CMD_READ32_IN_ADDR_OFST 0 2137 #define MC_CMD_READ32_IN_ADDR_LEN 4 2138 #define MC_CMD_READ32_IN_NUMWORDS_OFST 4 2139 #define MC_CMD_READ32_IN_NUMWORDS_LEN 4 2140 2141 /* MC_CMD_READ32_OUT msgresponse */ 2142 #define MC_CMD_READ32_OUT_LENMIN 4 2143 #define MC_CMD_READ32_OUT_LENMAX 252 2144 #define MC_CMD_READ32_OUT_LENMAX_MCDI2 1020 2145 #define MC_CMD_READ32_OUT_LEN(num) (0+4*(num)) 2146 #define MC_CMD_READ32_OUT_BUFFER_NUM(len) (((len)-0)/4) 2147 #define MC_CMD_READ32_OUT_BUFFER_OFST 0 2148 #define MC_CMD_READ32_OUT_BUFFER_LEN 4 2149 #define MC_CMD_READ32_OUT_BUFFER_MINNUM 1 2150 #define MC_CMD_READ32_OUT_BUFFER_MAXNUM 63 2151 #define MC_CMD_READ32_OUT_BUFFER_MAXNUM_MCDI2 255 2152 2153 2154 /***********************************/ 2155 /* MC_CMD_WRITE32 2156 * Write multiple 32byte words to MC memory. 2157 */ 2158 #define MC_CMD_WRITE32 0x2 2159 #define MC_CMD_WRITE32_MSGSET 0x2 2160 #undef MC_CMD_0x2_PRIVILEGE_CTG 2161 2162 #define MC_CMD_0x2_PRIVILEGE_CTG SRIOV_CTG_INSECURE 2163 2164 /* MC_CMD_WRITE32_IN msgrequest */ 2165 #define MC_CMD_WRITE32_IN_LENMIN 8 2166 #define MC_CMD_WRITE32_IN_LENMAX 252 2167 #define MC_CMD_WRITE32_IN_LENMAX_MCDI2 1020 2168 #define MC_CMD_WRITE32_IN_LEN(num) (4+4*(num)) 2169 #define MC_CMD_WRITE32_IN_BUFFER_NUM(len) (((len)-4)/4) 2170 #define MC_CMD_WRITE32_IN_ADDR_OFST 0 2171 #define MC_CMD_WRITE32_IN_ADDR_LEN 4 2172 #define MC_CMD_WRITE32_IN_BUFFER_OFST 4 2173 #define MC_CMD_WRITE32_IN_BUFFER_LEN 4 2174 #define MC_CMD_WRITE32_IN_BUFFER_MINNUM 1 2175 #define MC_CMD_WRITE32_IN_BUFFER_MAXNUM 62 2176 #define MC_CMD_WRITE32_IN_BUFFER_MAXNUM_MCDI2 254 2177 2178 /* MC_CMD_WRITE32_OUT msgresponse */ 2179 #define MC_CMD_WRITE32_OUT_LEN 0 2180 2181 2182 /***********************************/ 2183 /* MC_CMD_COPYCODE 2184 * Copy MC code between two locations and jump. Note - this command really 2185 * belongs to INSECURE category but is required by shmboot. The command handler 2186 * has additional checks to reject insecure calls. 2187 */ 2188 #define MC_CMD_COPYCODE 0x3 2189 #define MC_CMD_COPYCODE_MSGSET 0x3 2190 #undef MC_CMD_0x3_PRIVILEGE_CTG 2191 2192 #define MC_CMD_0x3_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 2193 2194 /* MC_CMD_COPYCODE_IN msgrequest */ 2195 #define MC_CMD_COPYCODE_IN_LEN 16 2196 /* Source address 2197 * 2198 * The main image should be entered via a copy of a single word from and to a 2199 * magic address, which controls various aspects of the boot. The magic address 2200 * is a bitfield, with each bit as documented below. 2201 */ 2202 #define MC_CMD_COPYCODE_IN_SRC_ADDR_OFST 0 2203 #define MC_CMD_COPYCODE_IN_SRC_ADDR_LEN 4 2204 /* enum: Deprecated; equivalent to setting BOOT_MAGIC_PRESENT (see below) */ 2205 #define MC_CMD_COPYCODE_HUNT_NO_MAGIC_ADDR 0x10000 2206 /* enum: Deprecated; equivalent to setting BOOT_MAGIC_PRESENT and 2207 * BOOT_MAGIC_SATELLITE_CPUS_NOT_LOADED (see below) 2208 */ 2209 #define MC_CMD_COPYCODE_HUNT_NO_DATAPATH_MAGIC_ADDR 0x1d0d0 2210 /* enum: Deprecated; equivalent to setting BOOT_MAGIC_PRESENT, 2211 * BOOT_MAGIC_SATELLITE_CPUS_NOT_LOADED and BOOT_MAGIC_IGNORE_CONFIG (see 2212 * below) 2213 */ 2214 #define MC_CMD_COPYCODE_HUNT_IGNORE_CONFIG_MAGIC_ADDR 0x1badc 2215 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_PRESENT_OFST 0 2216 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_PRESENT_LBN 17 2217 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_PRESENT_WIDTH 1 2218 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SATELLITE_CPUS_NOT_LOADED_OFST 0 2219 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SATELLITE_CPUS_NOT_LOADED_LBN 2 2220 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SATELLITE_CPUS_NOT_LOADED_WIDTH 1 2221 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_IGNORE_CONFIG_OFST 0 2222 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_IGNORE_CONFIG_LBN 3 2223 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_IGNORE_CONFIG_WIDTH 1 2224 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SKIP_BOOT_ICORE_SYNC_OFST 0 2225 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SKIP_BOOT_ICORE_SYNC_LBN 4 2226 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SKIP_BOOT_ICORE_SYNC_WIDTH 1 2227 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_FORCE_STANDALONE_OFST 0 2228 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_FORCE_STANDALONE_LBN 5 2229 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_FORCE_STANDALONE_WIDTH 1 2230 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_DISABLE_XIP_OFST 0 2231 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_DISABLE_XIP_LBN 6 2232 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_DISABLE_XIP_WIDTH 1 2233 /* Destination address */ 2234 #define MC_CMD_COPYCODE_IN_DEST_ADDR_OFST 4 2235 #define MC_CMD_COPYCODE_IN_DEST_ADDR_LEN 4 2236 #define MC_CMD_COPYCODE_IN_NUMWORDS_OFST 8 2237 #define MC_CMD_COPYCODE_IN_NUMWORDS_LEN 4 2238 /* Address of where to jump after copy. */ 2239 #define MC_CMD_COPYCODE_IN_JUMP_OFST 12 2240 #define MC_CMD_COPYCODE_IN_JUMP_LEN 4 2241 /* enum: Control should return to the caller rather than jumping */ 2242 #define MC_CMD_COPYCODE_JUMP_NONE 0x1 2243 2244 /* MC_CMD_COPYCODE_OUT msgresponse */ 2245 #define MC_CMD_COPYCODE_OUT_LEN 0 2246 2247 2248 /***********************************/ 2249 /* MC_CMD_SET_FUNC 2250 * Select function for function-specific commands. 2251 */ 2252 #define MC_CMD_SET_FUNC 0x4 2253 #define MC_CMD_SET_FUNC_MSGSET 0x4 2254 #undef MC_CMD_0x4_PRIVILEGE_CTG 2255 2256 #define MC_CMD_0x4_PRIVILEGE_CTG SRIOV_CTG_INSECURE 2257 2258 /* MC_CMD_SET_FUNC_IN msgrequest */ 2259 #define MC_CMD_SET_FUNC_IN_LEN 4 2260 /* Set function */ 2261 #define MC_CMD_SET_FUNC_IN_FUNC_OFST 0 2262 #define MC_CMD_SET_FUNC_IN_FUNC_LEN 4 2263 2264 /* MC_CMD_SET_FUNC_OUT msgresponse */ 2265 #define MC_CMD_SET_FUNC_OUT_LEN 0 2266 2267 2268 /***********************************/ 2269 /* MC_CMD_GET_BOOT_STATUS 2270 * Get the instruction address from which the MC booted. 2271 */ 2272 #define MC_CMD_GET_BOOT_STATUS 0x5 2273 #define MC_CMD_GET_BOOT_STATUS_MSGSET 0x5 2274 #undef MC_CMD_0x5_PRIVILEGE_CTG 2275 2276 #define MC_CMD_0x5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 2277 2278 /* MC_CMD_GET_BOOT_STATUS_IN msgrequest */ 2279 #define MC_CMD_GET_BOOT_STATUS_IN_LEN 0 2280 2281 /* MC_CMD_GET_BOOT_STATUS_OUT msgresponse */ 2282 #define MC_CMD_GET_BOOT_STATUS_OUT_LEN 8 2283 /* ?? */ 2284 #define MC_CMD_GET_BOOT_STATUS_OUT_BOOT_OFFSET_OFST 0 2285 #define MC_CMD_GET_BOOT_STATUS_OUT_BOOT_OFFSET_LEN 4 2286 /* enum: indicates that the MC wasn't flash booted */ 2287 #define MC_CMD_GET_BOOT_STATUS_OUT_BOOT_OFFSET_NULL 0xdeadbeef 2288 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_OFST 4 2289 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_LEN 4 2290 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_WATCHDOG_OFST 4 2291 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_WATCHDOG_LBN 0 2292 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_WATCHDOG_WIDTH 1 2293 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_PRIMARY_OFST 4 2294 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_PRIMARY_LBN 1 2295 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_PRIMARY_WIDTH 1 2296 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_BACKUP_OFST 4 2297 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_BACKUP_LBN 2 2298 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_BACKUP_WIDTH 1 2299 2300 2301 /***********************************/ 2302 /* MC_CMD_GET_ASSERTS 2303 * Get (and optionally clear) the current assertion status. Only 2304 * OUT.GLOBAL_FLAGS is guaranteed to exist in the completion payload. The other 2305 * fields will only be present if OUT.GLOBAL_FLAGS != NO_FAILS 2306 */ 2307 #define MC_CMD_GET_ASSERTS 0x6 2308 #define MC_CMD_GET_ASSERTS_MSGSET 0x6 2309 #undef MC_CMD_0x6_PRIVILEGE_CTG 2310 2311 #define MC_CMD_0x6_PRIVILEGE_CTG SRIOV_CTG_ADMIN 2312 2313 /* MC_CMD_GET_ASSERTS_IN msgrequest */ 2314 #define MC_CMD_GET_ASSERTS_IN_LEN 4 2315 /* Set to clear assertion */ 2316 #define MC_CMD_GET_ASSERTS_IN_CLEAR_OFST 0 2317 #define MC_CMD_GET_ASSERTS_IN_CLEAR_LEN 4 2318 2319 /* MC_CMD_GET_ASSERTS_OUT msgresponse */ 2320 #define MC_CMD_GET_ASSERTS_OUT_LEN 140 2321 /* Assertion status flag. */ 2322 #define MC_CMD_GET_ASSERTS_OUT_GLOBAL_FLAGS_OFST 0 2323 #define MC_CMD_GET_ASSERTS_OUT_GLOBAL_FLAGS_LEN 4 2324 /* enum: No assertions have failed. */ 2325 #define MC_CMD_GET_ASSERTS_FLAGS_NO_FAILS 0x1 2326 /* enum: A system-level assertion has failed. */ 2327 #define MC_CMD_GET_ASSERTS_FLAGS_SYS_FAIL 0x2 2328 /* enum: A thread-level assertion has failed. */ 2329 #define MC_CMD_GET_ASSERTS_FLAGS_THR_FAIL 0x3 2330 /* enum: The system was reset by the watchdog. */ 2331 #define MC_CMD_GET_ASSERTS_FLAGS_WDOG_FIRED 0x4 2332 /* enum: An illegal address trap stopped the system (huntington and later) */ 2333 #define MC_CMD_GET_ASSERTS_FLAGS_ADDR_TRAP 0x5 2334 /* Failing PC value */ 2335 #define MC_CMD_GET_ASSERTS_OUT_SAVED_PC_OFFS_OFST 4 2336 #define MC_CMD_GET_ASSERTS_OUT_SAVED_PC_OFFS_LEN 4 2337 /* Saved GP regs */ 2338 #define MC_CMD_GET_ASSERTS_OUT_GP_REGS_OFFS_OFST 8 2339 #define MC_CMD_GET_ASSERTS_OUT_GP_REGS_OFFS_LEN 4 2340 #define MC_CMD_GET_ASSERTS_OUT_GP_REGS_OFFS_NUM 31 2341 /* enum: A magic value hinting that the value in this register at the time of 2342 * the failure has likely been lost. 2343 */ 2344 #define MC_CMD_GET_ASSERTS_REG_NO_DATA 0xda7a1057 2345 /* Failing thread address */ 2346 #define MC_CMD_GET_ASSERTS_OUT_THREAD_OFFS_OFST 132 2347 #define MC_CMD_GET_ASSERTS_OUT_THREAD_OFFS_LEN 4 2348 #define MC_CMD_GET_ASSERTS_OUT_RESERVED_OFST 136 2349 #define MC_CMD_GET_ASSERTS_OUT_RESERVED_LEN 4 2350 2351 /* MC_CMD_GET_ASSERTS_OUT_V2 msgresponse: Extended response for MicroBlaze CPUs 2352 * found on Riverhead designs 2353 */ 2354 #define MC_CMD_GET_ASSERTS_OUT_V2_LEN 240 2355 /* Assertion status flag. */ 2356 #define MC_CMD_GET_ASSERTS_OUT_V2_GLOBAL_FLAGS_OFST 0 2357 #define MC_CMD_GET_ASSERTS_OUT_V2_GLOBAL_FLAGS_LEN 4 2358 /* enum: No assertions have failed. */ 2359 /* MC_CMD_GET_ASSERTS_FLAGS_NO_FAILS 0x1 */ 2360 /* enum: A system-level assertion has failed. */ 2361 /* MC_CMD_GET_ASSERTS_FLAGS_SYS_FAIL 0x2 */ 2362 /* enum: A thread-level assertion has failed. */ 2363 /* MC_CMD_GET_ASSERTS_FLAGS_THR_FAIL 0x3 */ 2364 /* enum: The system was reset by the watchdog. */ 2365 /* MC_CMD_GET_ASSERTS_FLAGS_WDOG_FIRED 0x4 */ 2366 /* enum: An illegal address trap stopped the system (huntington and later) */ 2367 /* MC_CMD_GET_ASSERTS_FLAGS_ADDR_TRAP 0x5 */ 2368 /* Failing PC value */ 2369 #define MC_CMD_GET_ASSERTS_OUT_V2_SAVED_PC_OFFS_OFST 4 2370 #define MC_CMD_GET_ASSERTS_OUT_V2_SAVED_PC_OFFS_LEN 4 2371 /* Saved GP regs */ 2372 #define MC_CMD_GET_ASSERTS_OUT_V2_GP_REGS_OFFS_OFST 8 2373 #define MC_CMD_GET_ASSERTS_OUT_V2_GP_REGS_OFFS_LEN 4 2374 #define MC_CMD_GET_ASSERTS_OUT_V2_GP_REGS_OFFS_NUM 31 2375 /* enum: A magic value hinting that the value in this register at the time of 2376 * the failure has likely been lost. 2377 */ 2378 /* MC_CMD_GET_ASSERTS_REG_NO_DATA 0xda7a1057 */ 2379 /* Failing thread address */ 2380 #define MC_CMD_GET_ASSERTS_OUT_V2_THREAD_OFFS_OFST 132 2381 #define MC_CMD_GET_ASSERTS_OUT_V2_THREAD_OFFS_LEN 4 2382 #define MC_CMD_GET_ASSERTS_OUT_V2_RESERVED_OFST 136 2383 #define MC_CMD_GET_ASSERTS_OUT_V2_RESERVED_LEN 4 2384 /* Saved Special Function Registers */ 2385 #define MC_CMD_GET_ASSERTS_OUT_V2_SF_REGS_OFFS_OFST 136 2386 #define MC_CMD_GET_ASSERTS_OUT_V2_SF_REGS_OFFS_LEN 4 2387 #define MC_CMD_GET_ASSERTS_OUT_V2_SF_REGS_OFFS_NUM 26 2388 2389 /* MC_CMD_GET_ASSERTS_OUT_V3 msgresponse: Extended response with asserted 2390 * firmware version information 2391 */ 2392 #define MC_CMD_GET_ASSERTS_OUT_V3_LEN 360 2393 /* Assertion status flag. */ 2394 #define MC_CMD_GET_ASSERTS_OUT_V3_GLOBAL_FLAGS_OFST 0 2395 #define MC_CMD_GET_ASSERTS_OUT_V3_GLOBAL_FLAGS_LEN 4 2396 /* enum: No assertions have failed. */ 2397 /* MC_CMD_GET_ASSERTS_FLAGS_NO_FAILS 0x1 */ 2398 /* enum: A system-level assertion has failed. */ 2399 /* MC_CMD_GET_ASSERTS_FLAGS_SYS_FAIL 0x2 */ 2400 /* enum: A thread-level assertion has failed. */ 2401 /* MC_CMD_GET_ASSERTS_FLAGS_THR_FAIL 0x3 */ 2402 /* enum: The system was reset by the watchdog. */ 2403 /* MC_CMD_GET_ASSERTS_FLAGS_WDOG_FIRED 0x4 */ 2404 /* enum: An illegal address trap stopped the system (huntington and later) */ 2405 /* MC_CMD_GET_ASSERTS_FLAGS_ADDR_TRAP 0x5 */ 2406 /* Failing PC value */ 2407 #define MC_CMD_GET_ASSERTS_OUT_V3_SAVED_PC_OFFS_OFST 4 2408 #define MC_CMD_GET_ASSERTS_OUT_V3_SAVED_PC_OFFS_LEN 4 2409 /* Saved GP regs */ 2410 #define MC_CMD_GET_ASSERTS_OUT_V3_GP_REGS_OFFS_OFST 8 2411 #define MC_CMD_GET_ASSERTS_OUT_V3_GP_REGS_OFFS_LEN 4 2412 #define MC_CMD_GET_ASSERTS_OUT_V3_GP_REGS_OFFS_NUM 31 2413 /* enum: A magic value hinting that the value in this register at the time of 2414 * the failure has likely been lost. 2415 */ 2416 /* MC_CMD_GET_ASSERTS_REG_NO_DATA 0xda7a1057 */ 2417 /* Failing thread address */ 2418 #define MC_CMD_GET_ASSERTS_OUT_V3_THREAD_OFFS_OFST 132 2419 #define MC_CMD_GET_ASSERTS_OUT_V3_THREAD_OFFS_LEN 4 2420 #define MC_CMD_GET_ASSERTS_OUT_V3_RESERVED_OFST 136 2421 #define MC_CMD_GET_ASSERTS_OUT_V3_RESERVED_LEN 4 2422 /* Saved Special Function Registers */ 2423 #define MC_CMD_GET_ASSERTS_OUT_V3_SF_REGS_OFFS_OFST 136 2424 #define MC_CMD_GET_ASSERTS_OUT_V3_SF_REGS_OFFS_LEN 4 2425 #define MC_CMD_GET_ASSERTS_OUT_V3_SF_REGS_OFFS_NUM 26 2426 /* MC firmware unique build ID (as binary SHA-1 value) */ 2427 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_ID_OFST 240 2428 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_ID_LEN 20 2429 /* MC firmware build date (as Unix timestamp) */ 2430 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_OFST 260 2431 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LEN 8 2432 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_OFST 260 2433 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_LEN 4 2434 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_LBN 2080 2435 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_WIDTH 32 2436 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_OFST 264 2437 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_LEN 4 2438 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_LBN 2112 2439 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_WIDTH 32 2440 /* MC firmware version number */ 2441 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_OFST 268 2442 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LEN 8 2443 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_OFST 268 2444 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_LEN 4 2445 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_LBN 2144 2446 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_WIDTH 32 2447 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_OFST 272 2448 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_LEN 4 2449 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_LBN 2176 2450 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_WIDTH 32 2451 /* MC firmware security level */ 2452 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_SECURITY_LEVEL_OFST 276 2453 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_SECURITY_LEVEL_LEN 4 2454 /* MC firmware extra version info (as null-terminated US-ASCII string) */ 2455 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_EXTRA_INFO_OFST 280 2456 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_EXTRA_INFO_LEN 16 2457 /* MC firmware build name (as null-terminated US-ASCII string) */ 2458 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_NAME_OFST 296 2459 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_NAME_LEN 64 2460 2461 2462 /***********************************/ 2463 /* MC_CMD_LOG_CTRL 2464 * Configure the output stream for log events such as link state changes, 2465 * sensor notifications and MCDI completions 2466 */ 2467 #define MC_CMD_LOG_CTRL 0x7 2468 #define MC_CMD_LOG_CTRL_MSGSET 0x7 2469 #undef MC_CMD_0x7_PRIVILEGE_CTG 2470 2471 #define MC_CMD_0x7_PRIVILEGE_CTG SRIOV_CTG_GENERAL 2472 2473 /* MC_CMD_LOG_CTRL_IN msgrequest */ 2474 #define MC_CMD_LOG_CTRL_IN_LEN 8 2475 /* Log destination */ 2476 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_OFST 0 2477 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_LEN 4 2478 /* enum property: bitmask */ 2479 /* enum: UART. */ 2480 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_UART 0x1 2481 /* enum: Event queue. */ 2482 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_EVQ 0x2 2483 /* Legacy argument. Must be zero. */ 2484 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_EVQ_OFST 4 2485 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_EVQ_LEN 4 2486 2487 /* MC_CMD_LOG_CTRL_OUT msgresponse */ 2488 #define MC_CMD_LOG_CTRL_OUT_LEN 0 2489 2490 2491 /***********************************/ 2492 /* MC_CMD_GET_VERSION 2493 * Get version information about adapter components. 2494 */ 2495 #define MC_CMD_GET_VERSION 0x8 2496 #define MC_CMD_GET_VERSION_MSGSET 0x8 2497 #undef MC_CMD_0x8_PRIVILEGE_CTG 2498 2499 #define MC_CMD_0x8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 2500 2501 /* MC_CMD_GET_VERSION_IN msgrequest */ 2502 #define MC_CMD_GET_VERSION_IN_LEN 0 2503 2504 /* MC_CMD_GET_VERSION_EXT_IN msgrequest: Asks for the extended version */ 2505 #define MC_CMD_GET_VERSION_EXT_IN_LEN 4 2506 /* placeholder, set to 0 */ 2507 #define MC_CMD_GET_VERSION_EXT_IN_EXT_FLAGS_OFST 0 2508 #define MC_CMD_GET_VERSION_EXT_IN_EXT_FLAGS_LEN 4 2509 2510 /* MC_CMD_GET_VERSION_V0_OUT msgresponse: deprecated version format */ 2511 #define MC_CMD_GET_VERSION_V0_OUT_LEN 4 2512 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 2513 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 2514 /* enum: Reserved version number to indicate "any" version. */ 2515 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_ANY 0xffffffff 2516 /* enum: Bootrom version value for Siena. */ 2517 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_SIENA_BOOTROM 0xb0070000 2518 /* enum: Bootrom version value for Huntington. */ 2519 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_HUNT_BOOTROM 0xb0070001 2520 /* enum: Bootrom version value for Medford2. */ 2521 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_MEDFORD2_BOOTROM 0xb0070002 2522 2523 /* MC_CMD_GET_VERSION_OUT msgresponse */ 2524 #define MC_CMD_GET_VERSION_OUT_LEN 32 2525 /* This is normally the UTC build time in seconds since epoch or one of the 2526 * special values listed 2527 */ 2528 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 2529 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 2530 /* Enum values, see field(s): */ 2531 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 2532 #define MC_CMD_GET_VERSION_OUT_PCOL_OFST 4 2533 #define MC_CMD_GET_VERSION_OUT_PCOL_LEN 4 2534 /* 128bit mask of functions supported by the current firmware */ 2535 #define MC_CMD_GET_VERSION_OUT_SUPPORTED_FUNCS_OFST 8 2536 #define MC_CMD_GET_VERSION_OUT_SUPPORTED_FUNCS_LEN 16 2537 #define MC_CMD_GET_VERSION_OUT_VERSION_OFST 24 2538 #define MC_CMD_GET_VERSION_OUT_VERSION_LEN 8 2539 #define MC_CMD_GET_VERSION_OUT_VERSION_LO_OFST 24 2540 #define MC_CMD_GET_VERSION_OUT_VERSION_LO_LEN 4 2541 #define MC_CMD_GET_VERSION_OUT_VERSION_LO_LBN 192 2542 #define MC_CMD_GET_VERSION_OUT_VERSION_LO_WIDTH 32 2543 #define MC_CMD_GET_VERSION_OUT_VERSION_HI_OFST 28 2544 #define MC_CMD_GET_VERSION_OUT_VERSION_HI_LEN 4 2545 #define MC_CMD_GET_VERSION_OUT_VERSION_HI_LBN 224 2546 #define MC_CMD_GET_VERSION_OUT_VERSION_HI_WIDTH 32 2547 2548 /* MC_CMD_GET_VERSION_EXT_OUT msgresponse */ 2549 #define MC_CMD_GET_VERSION_EXT_OUT_LEN 48 2550 /* This is normally the UTC build time in seconds since epoch or one of the 2551 * special values listed 2552 */ 2553 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 2554 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 2555 /* Enum values, see field(s): */ 2556 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 2557 #define MC_CMD_GET_VERSION_EXT_OUT_PCOL_OFST 4 2558 #define MC_CMD_GET_VERSION_EXT_OUT_PCOL_LEN 4 2559 /* 128bit mask of functions supported by the current firmware */ 2560 #define MC_CMD_GET_VERSION_EXT_OUT_SUPPORTED_FUNCS_OFST 8 2561 #define MC_CMD_GET_VERSION_EXT_OUT_SUPPORTED_FUNCS_LEN 16 2562 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_OFST 24 2563 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LEN 8 2564 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_OFST 24 2565 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_LEN 4 2566 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_LBN 192 2567 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_WIDTH 32 2568 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_OFST 28 2569 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_LEN 4 2570 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_LBN 224 2571 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_WIDTH 32 2572 /* extra info */ 2573 #define MC_CMD_GET_VERSION_EXT_OUT_EXTRA_OFST 32 2574 #define MC_CMD_GET_VERSION_EXT_OUT_EXTRA_LEN 16 2575 2576 /* MC_CMD_GET_VERSION_V2_OUT msgresponse: Extended response providing version 2577 * information for all adapter components. For Riverhead based designs, base MC 2578 * firmware version fields refer to NMC firmware, while CMC firmware data is in 2579 * dedicated CMC fields. Flags indicate which data is present in the response 2580 * (depending on which components exist on a particular adapter) 2581 */ 2582 #define MC_CMD_GET_VERSION_V2_OUT_LEN 304 2583 /* This is normally the UTC build time in seconds since epoch or one of the 2584 * special values listed 2585 */ 2586 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 2587 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 2588 /* Enum values, see field(s): */ 2589 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 2590 #define MC_CMD_GET_VERSION_V2_OUT_PCOL_OFST 4 2591 #define MC_CMD_GET_VERSION_V2_OUT_PCOL_LEN 4 2592 /* 128bit mask of functions supported by the current firmware */ 2593 #define MC_CMD_GET_VERSION_V2_OUT_SUPPORTED_FUNCS_OFST 8 2594 #define MC_CMD_GET_VERSION_V2_OUT_SUPPORTED_FUNCS_LEN 16 2595 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_OFST 24 2596 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LEN 8 2597 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_OFST 24 2598 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_LEN 4 2599 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_LBN 192 2600 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_WIDTH 32 2601 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_OFST 28 2602 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_LEN 4 2603 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_LBN 224 2604 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_WIDTH 32 2605 /* extra info */ 2606 #define MC_CMD_GET_VERSION_V2_OUT_EXTRA_OFST 32 2607 #define MC_CMD_GET_VERSION_V2_OUT_EXTRA_LEN 16 2608 /* Flags indicating which extended fields are valid */ 2609 #define MC_CMD_GET_VERSION_V2_OUT_FLAGS_OFST 48 2610 #define MC_CMD_GET_VERSION_V2_OUT_FLAGS_LEN 4 2611 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_EXT_INFO_PRESENT_OFST 48 2612 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_EXT_INFO_PRESENT_LBN 0 2613 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1 2614 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_EXT_INFO_PRESENT_OFST 48 2615 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1 2616 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1 2617 #define MC_CMD_GET_VERSION_V2_OUT_CMC_EXT_INFO_PRESENT_OFST 48 2618 #define MC_CMD_GET_VERSION_V2_OUT_CMC_EXT_INFO_PRESENT_LBN 2 2619 #define MC_CMD_GET_VERSION_V2_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1 2620 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXT_INFO_PRESENT_OFST 48 2621 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXT_INFO_PRESENT_LBN 3 2622 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1 2623 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 2624 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 2625 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 2626 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_HW_VERSION_PRESENT_OFST 48 2627 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_HW_VERSION_PRESENT_LBN 5 2628 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1 2629 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_FW_VERSION_PRESENT_OFST 48 2630 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_FW_VERSION_PRESENT_LBN 6 2631 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1 2632 #define MC_CMD_GET_VERSION_V2_OUT_SOC_BOOT_VERSION_PRESENT_OFST 48 2633 #define MC_CMD_GET_VERSION_V2_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7 2634 #define MC_CMD_GET_VERSION_V2_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1 2635 #define MC_CMD_GET_VERSION_V2_OUT_SOC_UBOOT_VERSION_PRESENT_OFST 48 2636 #define MC_CMD_GET_VERSION_V2_OUT_SOC_UBOOT_VERSION_PRESENT_LBN 8 2637 #define MC_CMD_GET_VERSION_V2_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1 2638 #define MC_CMD_GET_VERSION_V2_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_OFST 48 2639 #define MC_CMD_GET_VERSION_V2_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_LBN 9 2640 #define MC_CMD_GET_VERSION_V2_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1 2641 #define MC_CMD_GET_VERSION_V2_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_OFST 48 2642 #define MC_CMD_GET_VERSION_V2_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_LBN 10 2643 #define MC_CMD_GET_VERSION_V2_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1 2644 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_PRESENT_OFST 48 2645 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_PRESENT_LBN 11 2646 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_PRESENT_WIDTH 1 2647 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_VERSION_PRESENT_OFST 48 2648 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_VERSION_PRESENT_LBN 12 2649 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_VERSION_PRESENT_WIDTH 1 2650 #define MC_CMD_GET_VERSION_V2_OUT_BUNDLE_VERSION_PRESENT_OFST 48 2651 #define MC_CMD_GET_VERSION_V2_OUT_BUNDLE_VERSION_PRESENT_LBN 13 2652 #define MC_CMD_GET_VERSION_V2_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1 2653 /* MC firmware unique build ID (as binary SHA-1 value) */ 2654 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_ID_OFST 52 2655 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_ID_LEN 20 2656 /* MC firmware security level */ 2657 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_SECURITY_LEVEL_OFST 72 2658 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_SECURITY_LEVEL_LEN 4 2659 /* MC firmware build name (as null-terminated US-ASCII string) */ 2660 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_NAME_OFST 76 2661 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_NAME_LEN 64 2662 /* The SUC firmware version as four numbers - a.b.c.d */ 2663 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_OFST 140 2664 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_LEN 4 2665 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_NUM 4 2666 /* SUC firmware build date (as 64-bit Unix timestamp) */ 2667 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_OFST 156 2668 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LEN 8 2669 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_OFST 156 2670 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_LEN 4 2671 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_LBN 1248 2672 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_WIDTH 32 2673 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_OFST 160 2674 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_LEN 4 2675 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_LBN 1280 2676 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_WIDTH 32 2677 /* The ID of the SUC chip. This is specific to the platform but typically 2678 * indicates family, memory sizes etc. See SF-116728-SW for further details. 2679 */ 2680 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_CHIP_ID_OFST 164 2681 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_CHIP_ID_LEN 4 2682 /* The CMC firmware version as four numbers - a.b.c.d */ 2683 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_VERSION_OFST 168 2684 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_VERSION_LEN 4 2685 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_VERSION_NUM 4 2686 /* CMC firmware build date (as 64-bit Unix timestamp) */ 2687 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_OFST 184 2688 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LEN 8 2689 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_OFST 184 2690 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_LEN 4 2691 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_LBN 1472 2692 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_WIDTH 32 2693 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_OFST 188 2694 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_LEN 4 2695 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_LBN 1504 2696 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_WIDTH 32 2697 /* FPGA version as three numbers. On Riverhead based systems this field uses 2698 * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 2699 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 2700 * => B, ...) FPGA_VERSION[2]: Sub-revision number 2701 */ 2702 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_VERSION_OFST 192 2703 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_VERSION_LEN 4 2704 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_VERSION_NUM 3 2705 /* Extra FPGA revision information (as null-terminated US-ASCII string) */ 2706 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXTRA_OFST 204 2707 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXTRA_LEN 16 2708 /* Board name / adapter model (as null-terminated US-ASCII string) */ 2709 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_NAME_OFST 220 2710 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_NAME_LEN 16 2711 /* Board revision number */ 2712 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_REVISION_OFST 236 2713 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_REVISION_LEN 4 2714 /* Board serial number (as null-terminated US-ASCII string) */ 2715 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_SERIAL_OFST 240 2716 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_SERIAL_LEN 64 2717 2718 /* MC_CMD_GET_VERSION_V3_OUT msgresponse: Extended response providing version 2719 * information for all adapter components. For Riverhead based designs, base MC 2720 * firmware version fields refer to NMC firmware, while CMC firmware data is in 2721 * dedicated CMC fields. Flags indicate which data is present in the response 2722 * (depending on which components exist on a particular adapter) 2723 */ 2724 #define MC_CMD_GET_VERSION_V3_OUT_LEN 328 2725 /* This is normally the UTC build time in seconds since epoch or one of the 2726 * special values listed 2727 */ 2728 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 2729 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 2730 /* Enum values, see field(s): */ 2731 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 2732 #define MC_CMD_GET_VERSION_V3_OUT_PCOL_OFST 4 2733 #define MC_CMD_GET_VERSION_V3_OUT_PCOL_LEN 4 2734 /* 128bit mask of functions supported by the current firmware */ 2735 #define MC_CMD_GET_VERSION_V3_OUT_SUPPORTED_FUNCS_OFST 8 2736 #define MC_CMD_GET_VERSION_V3_OUT_SUPPORTED_FUNCS_LEN 16 2737 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_OFST 24 2738 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LEN 8 2739 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_OFST 24 2740 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_LEN 4 2741 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_LBN 192 2742 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_WIDTH 32 2743 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_OFST 28 2744 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_LEN 4 2745 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_LBN 224 2746 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_WIDTH 32 2747 /* extra info */ 2748 #define MC_CMD_GET_VERSION_V3_OUT_EXTRA_OFST 32 2749 #define MC_CMD_GET_VERSION_V3_OUT_EXTRA_LEN 16 2750 /* Flags indicating which extended fields are valid */ 2751 #define MC_CMD_GET_VERSION_V3_OUT_FLAGS_OFST 48 2752 #define MC_CMD_GET_VERSION_V3_OUT_FLAGS_LEN 4 2753 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_EXT_INFO_PRESENT_OFST 48 2754 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_EXT_INFO_PRESENT_LBN 0 2755 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1 2756 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_EXT_INFO_PRESENT_OFST 48 2757 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1 2758 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1 2759 #define MC_CMD_GET_VERSION_V3_OUT_CMC_EXT_INFO_PRESENT_OFST 48 2760 #define MC_CMD_GET_VERSION_V3_OUT_CMC_EXT_INFO_PRESENT_LBN 2 2761 #define MC_CMD_GET_VERSION_V3_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1 2762 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXT_INFO_PRESENT_OFST 48 2763 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXT_INFO_PRESENT_LBN 3 2764 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1 2765 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 2766 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 2767 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 2768 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_PRESENT_OFST 48 2769 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_PRESENT_LBN 5 2770 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1 2771 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_PRESENT_OFST 48 2772 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_PRESENT_LBN 6 2773 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1 2774 #define MC_CMD_GET_VERSION_V3_OUT_SOC_BOOT_VERSION_PRESENT_OFST 48 2775 #define MC_CMD_GET_VERSION_V3_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7 2776 #define MC_CMD_GET_VERSION_V3_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1 2777 #define MC_CMD_GET_VERSION_V3_OUT_SOC_UBOOT_VERSION_PRESENT_OFST 48 2778 #define MC_CMD_GET_VERSION_V3_OUT_SOC_UBOOT_VERSION_PRESENT_LBN 8 2779 #define MC_CMD_GET_VERSION_V3_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1 2780 #define MC_CMD_GET_VERSION_V3_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_OFST 48 2781 #define MC_CMD_GET_VERSION_V3_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_LBN 9 2782 #define MC_CMD_GET_VERSION_V3_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1 2783 #define MC_CMD_GET_VERSION_V3_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_OFST 48 2784 #define MC_CMD_GET_VERSION_V3_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_LBN 10 2785 #define MC_CMD_GET_VERSION_V3_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1 2786 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_PRESENT_OFST 48 2787 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_PRESENT_LBN 11 2788 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_PRESENT_WIDTH 1 2789 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_VERSION_PRESENT_OFST 48 2790 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_VERSION_PRESENT_LBN 12 2791 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_VERSION_PRESENT_WIDTH 1 2792 #define MC_CMD_GET_VERSION_V3_OUT_BUNDLE_VERSION_PRESENT_OFST 48 2793 #define MC_CMD_GET_VERSION_V3_OUT_BUNDLE_VERSION_PRESENT_LBN 13 2794 #define MC_CMD_GET_VERSION_V3_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1 2795 /* MC firmware unique build ID (as binary SHA-1 value) */ 2796 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_BUILD_ID_OFST 52 2797 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_BUILD_ID_LEN 20 2798 /* MC firmware security level */ 2799 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_SECURITY_LEVEL_OFST 72 2800 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_SECURITY_LEVEL_LEN 4 2801 /* MC firmware build name (as null-terminated US-ASCII string) */ 2802 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_BUILD_NAME_OFST 76 2803 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_BUILD_NAME_LEN 64 2804 /* The SUC firmware version as four numbers - a.b.c.d */ 2805 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_OFST 140 2806 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_LEN 4 2807 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_NUM 4 2808 /* SUC firmware build date (as 64-bit Unix timestamp) */ 2809 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_OFST 156 2810 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LEN 8 2811 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_OFST 156 2812 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_LEN 4 2813 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_LBN 1248 2814 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_WIDTH 32 2815 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_OFST 160 2816 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_LEN 4 2817 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_LBN 1280 2818 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_WIDTH 32 2819 /* The ID of the SUC chip. This is specific to the platform but typically 2820 * indicates family, memory sizes etc. See SF-116728-SW for further details. 2821 */ 2822 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_CHIP_ID_OFST 164 2823 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_CHIP_ID_LEN 4 2824 /* The CMC firmware version as four numbers - a.b.c.d */ 2825 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_VERSION_OFST 168 2826 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_VERSION_LEN 4 2827 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_VERSION_NUM 4 2828 /* CMC firmware build date (as 64-bit Unix timestamp) */ 2829 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_OFST 184 2830 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LEN 8 2831 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_OFST 184 2832 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_LEN 4 2833 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_LBN 1472 2834 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_WIDTH 32 2835 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_OFST 188 2836 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_LEN 4 2837 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_LBN 1504 2838 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_WIDTH 32 2839 /* FPGA version as three numbers. On Riverhead based systems this field uses 2840 * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 2841 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 2842 * => B, ...) FPGA_VERSION[2]: Sub-revision number 2843 */ 2844 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_VERSION_OFST 192 2845 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_VERSION_LEN 4 2846 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_VERSION_NUM 3 2847 /* Extra FPGA revision information (as null-terminated US-ASCII string) */ 2848 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXTRA_OFST 204 2849 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXTRA_LEN 16 2850 /* Board name / adapter model (as null-terminated US-ASCII string) */ 2851 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_NAME_OFST 220 2852 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_NAME_LEN 16 2853 /* Board revision number */ 2854 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_REVISION_OFST 236 2855 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_REVISION_LEN 4 2856 /* Board serial number (as null-terminated US-ASCII string) */ 2857 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_SERIAL_OFST 240 2858 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_SERIAL_LEN 64 2859 /* The version of the datapath hardware design as three number - a.b.c */ 2860 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_OFST 304 2861 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_LEN 4 2862 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_NUM 3 2863 /* The version of the firmware library used to control the datapath as three 2864 * number - a.b.c 2865 */ 2866 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_OFST 316 2867 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_LEN 4 2868 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_NUM 3 2869 2870 /* MC_CMD_GET_VERSION_V4_OUT msgresponse: Extended response providing SoC 2871 * version information 2872 */ 2873 #define MC_CMD_GET_VERSION_V4_OUT_LEN 392 2874 /* This is normally the UTC build time in seconds since epoch or one of the 2875 * special values listed 2876 */ 2877 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 2878 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 2879 /* Enum values, see field(s): */ 2880 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 2881 #define MC_CMD_GET_VERSION_V4_OUT_PCOL_OFST 4 2882 #define MC_CMD_GET_VERSION_V4_OUT_PCOL_LEN 4 2883 /* 128bit mask of functions supported by the current firmware */ 2884 #define MC_CMD_GET_VERSION_V4_OUT_SUPPORTED_FUNCS_OFST 8 2885 #define MC_CMD_GET_VERSION_V4_OUT_SUPPORTED_FUNCS_LEN 16 2886 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_OFST 24 2887 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LEN 8 2888 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_OFST 24 2889 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_LEN 4 2890 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_LBN 192 2891 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_WIDTH 32 2892 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_OFST 28 2893 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_LEN 4 2894 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_LBN 224 2895 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_WIDTH 32 2896 /* extra info */ 2897 #define MC_CMD_GET_VERSION_V4_OUT_EXTRA_OFST 32 2898 #define MC_CMD_GET_VERSION_V4_OUT_EXTRA_LEN 16 2899 /* Flags indicating which extended fields are valid */ 2900 #define MC_CMD_GET_VERSION_V4_OUT_FLAGS_OFST 48 2901 #define MC_CMD_GET_VERSION_V4_OUT_FLAGS_LEN 4 2902 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_EXT_INFO_PRESENT_OFST 48 2903 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_EXT_INFO_PRESENT_LBN 0 2904 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1 2905 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_EXT_INFO_PRESENT_OFST 48 2906 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1 2907 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1 2908 #define MC_CMD_GET_VERSION_V4_OUT_CMC_EXT_INFO_PRESENT_OFST 48 2909 #define MC_CMD_GET_VERSION_V4_OUT_CMC_EXT_INFO_PRESENT_LBN 2 2910 #define MC_CMD_GET_VERSION_V4_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1 2911 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXT_INFO_PRESENT_OFST 48 2912 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXT_INFO_PRESENT_LBN 3 2913 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1 2914 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 2915 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 2916 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 2917 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_PRESENT_OFST 48 2918 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_PRESENT_LBN 5 2919 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1 2920 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_PRESENT_OFST 48 2921 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_PRESENT_LBN 6 2922 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1 2923 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_PRESENT_OFST 48 2924 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7 2925 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1 2926 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_PRESENT_OFST 48 2927 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_PRESENT_LBN 8 2928 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1 2929 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_OFST 48 2930 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_LBN 9 2931 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1 2932 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_OFST 48 2933 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_LBN 10 2934 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1 2935 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_PRESENT_OFST 48 2936 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_PRESENT_LBN 11 2937 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_PRESENT_WIDTH 1 2938 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_VERSION_PRESENT_OFST 48 2939 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_VERSION_PRESENT_LBN 12 2940 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_VERSION_PRESENT_WIDTH 1 2941 #define MC_CMD_GET_VERSION_V4_OUT_BUNDLE_VERSION_PRESENT_OFST 48 2942 #define MC_CMD_GET_VERSION_V4_OUT_BUNDLE_VERSION_PRESENT_LBN 13 2943 #define MC_CMD_GET_VERSION_V4_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1 2944 /* MC firmware unique build ID (as binary SHA-1 value) */ 2945 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_BUILD_ID_OFST 52 2946 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_BUILD_ID_LEN 20 2947 /* MC firmware security level */ 2948 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_SECURITY_LEVEL_OFST 72 2949 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_SECURITY_LEVEL_LEN 4 2950 /* MC firmware build name (as null-terminated US-ASCII string) */ 2951 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_BUILD_NAME_OFST 76 2952 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_BUILD_NAME_LEN 64 2953 /* The SUC firmware version as four numbers - a.b.c.d */ 2954 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_OFST 140 2955 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_LEN 4 2956 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_NUM 4 2957 /* SUC firmware build date (as 64-bit Unix timestamp) */ 2958 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_OFST 156 2959 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LEN 8 2960 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_OFST 156 2961 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_LEN 4 2962 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_LBN 1248 2963 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_WIDTH 32 2964 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_OFST 160 2965 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_LEN 4 2966 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_LBN 1280 2967 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_WIDTH 32 2968 /* The ID of the SUC chip. This is specific to the platform but typically 2969 * indicates family, memory sizes etc. See SF-116728-SW for further details. 2970 */ 2971 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_CHIP_ID_OFST 164 2972 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_CHIP_ID_LEN 4 2973 /* The CMC firmware version as four numbers - a.b.c.d */ 2974 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_VERSION_OFST 168 2975 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_VERSION_LEN 4 2976 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_VERSION_NUM 4 2977 /* CMC firmware build date (as 64-bit Unix timestamp) */ 2978 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_OFST 184 2979 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LEN 8 2980 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_OFST 184 2981 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_LEN 4 2982 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_LBN 1472 2983 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_WIDTH 32 2984 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_OFST 188 2985 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_LEN 4 2986 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_LBN 1504 2987 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_WIDTH 32 2988 /* FPGA version as three numbers. On Riverhead based systems this field uses 2989 * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 2990 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 2991 * => B, ...) FPGA_VERSION[2]: Sub-revision number 2992 */ 2993 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_VERSION_OFST 192 2994 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_VERSION_LEN 4 2995 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_VERSION_NUM 3 2996 /* Extra FPGA revision information (as null-terminated US-ASCII string) */ 2997 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXTRA_OFST 204 2998 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXTRA_LEN 16 2999 /* Board name / adapter model (as null-terminated US-ASCII string) */ 3000 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_NAME_OFST 220 3001 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_NAME_LEN 16 3002 /* Board revision number */ 3003 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_REVISION_OFST 236 3004 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_REVISION_LEN 4 3005 /* Board serial number (as null-terminated US-ASCII string) */ 3006 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_SERIAL_OFST 240 3007 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_SERIAL_LEN 64 3008 /* The version of the datapath hardware design as three number - a.b.c */ 3009 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_OFST 304 3010 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_LEN 4 3011 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_NUM 3 3012 /* The version of the firmware library used to control the datapath as three 3013 * number - a.b.c 3014 */ 3015 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_OFST 316 3016 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_LEN 4 3017 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_NUM 3 3018 /* The SOC boot version as four numbers - a.b.c.d */ 3019 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_OFST 328 3020 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_LEN 4 3021 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_NUM 4 3022 /* The SOC uboot version as four numbers - a.b.c.d */ 3023 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_OFST 344 3024 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_LEN 4 3025 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_NUM 4 3026 /* The SOC main rootfs version as four numbers - a.b.c.d */ 3027 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_OFST 360 3028 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_LEN 4 3029 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_NUM 4 3030 /* The SOC recovery buildroot version as four numbers - a.b.c.d */ 3031 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_OFST 376 3032 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_LEN 4 3033 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_NUM 4 3034 3035 /* MC_CMD_GET_VERSION_V5_OUT msgresponse: Extended response providing bundle 3036 * and board version information 3037 */ 3038 #define MC_CMD_GET_VERSION_V5_OUT_LEN 424 3039 /* This is normally the UTC build time in seconds since epoch or one of the 3040 * special values listed 3041 */ 3042 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 3043 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 3044 /* Enum values, see field(s): */ 3045 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 3046 #define MC_CMD_GET_VERSION_V5_OUT_PCOL_OFST 4 3047 #define MC_CMD_GET_VERSION_V5_OUT_PCOL_LEN 4 3048 /* 128bit mask of functions supported by the current firmware */ 3049 #define MC_CMD_GET_VERSION_V5_OUT_SUPPORTED_FUNCS_OFST 8 3050 #define MC_CMD_GET_VERSION_V5_OUT_SUPPORTED_FUNCS_LEN 16 3051 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_OFST 24 3052 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LEN 8 3053 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_OFST 24 3054 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_LEN 4 3055 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_LBN 192 3056 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_WIDTH 32 3057 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_OFST 28 3058 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_LEN 4 3059 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_LBN 224 3060 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_WIDTH 32 3061 /* extra info */ 3062 #define MC_CMD_GET_VERSION_V5_OUT_EXTRA_OFST 32 3063 #define MC_CMD_GET_VERSION_V5_OUT_EXTRA_LEN 16 3064 /* Flags indicating which extended fields are valid */ 3065 #define MC_CMD_GET_VERSION_V5_OUT_FLAGS_OFST 48 3066 #define MC_CMD_GET_VERSION_V5_OUT_FLAGS_LEN 4 3067 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_EXT_INFO_PRESENT_OFST 48 3068 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_EXT_INFO_PRESENT_LBN 0 3069 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1 3070 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_EXT_INFO_PRESENT_OFST 48 3071 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1 3072 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1 3073 #define MC_CMD_GET_VERSION_V5_OUT_CMC_EXT_INFO_PRESENT_OFST 48 3074 #define MC_CMD_GET_VERSION_V5_OUT_CMC_EXT_INFO_PRESENT_LBN 2 3075 #define MC_CMD_GET_VERSION_V5_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1 3076 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXT_INFO_PRESENT_OFST 48 3077 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXT_INFO_PRESENT_LBN 3 3078 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1 3079 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 3080 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 3081 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 3082 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_PRESENT_OFST 48 3083 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_PRESENT_LBN 5 3084 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1 3085 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_PRESENT_OFST 48 3086 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_PRESENT_LBN 6 3087 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1 3088 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_PRESENT_OFST 48 3089 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7 3090 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1 3091 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_PRESENT_OFST 48 3092 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_PRESENT_LBN 8 3093 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1 3094 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_OFST 48 3095 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_LBN 9 3096 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1 3097 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_OFST 48 3098 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_LBN 10 3099 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1 3100 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_PRESENT_OFST 48 3101 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_PRESENT_LBN 11 3102 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_PRESENT_WIDTH 1 3103 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_PRESENT_OFST 48 3104 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_PRESENT_LBN 12 3105 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_PRESENT_WIDTH 1 3106 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_PRESENT_OFST 48 3107 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_PRESENT_LBN 13 3108 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1 3109 /* MC firmware unique build ID (as binary SHA-1 value) */ 3110 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_BUILD_ID_OFST 52 3111 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_BUILD_ID_LEN 20 3112 /* MC firmware security level */ 3113 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_SECURITY_LEVEL_OFST 72 3114 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_SECURITY_LEVEL_LEN 4 3115 /* MC firmware build name (as null-terminated US-ASCII string) */ 3116 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_BUILD_NAME_OFST 76 3117 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_BUILD_NAME_LEN 64 3118 /* The SUC firmware version as four numbers - a.b.c.d */ 3119 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_OFST 140 3120 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_LEN 4 3121 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_NUM 4 3122 /* SUC firmware build date (as 64-bit Unix timestamp) */ 3123 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_OFST 156 3124 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LEN 8 3125 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_OFST 156 3126 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_LEN 4 3127 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_LBN 1248 3128 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_WIDTH 32 3129 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_OFST 160 3130 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_LEN 4 3131 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_LBN 1280 3132 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_WIDTH 32 3133 /* The ID of the SUC chip. This is specific to the platform but typically 3134 * indicates family, memory sizes etc. See SF-116728-SW for further details. 3135 */ 3136 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_CHIP_ID_OFST 164 3137 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_CHIP_ID_LEN 4 3138 /* The CMC firmware version as four numbers - a.b.c.d */ 3139 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_VERSION_OFST 168 3140 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_VERSION_LEN 4 3141 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_VERSION_NUM 4 3142 /* CMC firmware build date (as 64-bit Unix timestamp) */ 3143 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_OFST 184 3144 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LEN 8 3145 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_OFST 184 3146 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_LEN 4 3147 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_LBN 1472 3148 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_WIDTH 32 3149 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_OFST 188 3150 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_LEN 4 3151 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_LBN 1504 3152 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_WIDTH 32 3153 /* FPGA version as three numbers. On Riverhead based systems this field uses 3154 * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 3155 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 3156 * => B, ...) FPGA_VERSION[2]: Sub-revision number 3157 */ 3158 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_VERSION_OFST 192 3159 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_VERSION_LEN 4 3160 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_VERSION_NUM 3 3161 /* Extra FPGA revision information (as null-terminated US-ASCII string) */ 3162 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXTRA_OFST 204 3163 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXTRA_LEN 16 3164 /* Board name / adapter model (as null-terminated US-ASCII string) */ 3165 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_NAME_OFST 220 3166 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_NAME_LEN 16 3167 /* Board revision number */ 3168 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_REVISION_OFST 236 3169 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_REVISION_LEN 4 3170 /* Board serial number (as null-terminated US-ASCII string) */ 3171 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_SERIAL_OFST 240 3172 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_SERIAL_LEN 64 3173 /* The version of the datapath hardware design as three number - a.b.c */ 3174 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_OFST 304 3175 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_LEN 4 3176 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_NUM 3 3177 /* The version of the firmware library used to control the datapath as three 3178 * number - a.b.c 3179 */ 3180 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_OFST 316 3181 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_LEN 4 3182 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_NUM 3 3183 /* The SOC boot version as four numbers - a.b.c.d */ 3184 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_OFST 328 3185 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_LEN 4 3186 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_NUM 4 3187 /* The SOC uboot version as four numbers - a.b.c.d */ 3188 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_OFST 344 3189 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_LEN 4 3190 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_NUM 4 3191 /* The SOC main rootfs version as four numbers - a.b.c.d */ 3192 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_OFST 360 3193 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_LEN 4 3194 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_NUM 4 3195 /* The SOC recovery buildroot version as four numbers - a.b.c.d */ 3196 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_OFST 376 3197 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_LEN 4 3198 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_NUM 4 3199 /* Board version as four numbers - a.b.c.d. BOARD_VERSION[0] duplicates the 3200 * BOARD_REVISION field 3201 */ 3202 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_OFST 392 3203 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_LEN 4 3204 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_NUM 4 3205 /* Bundle version as four numbers - a.b.c.d */ 3206 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_OFST 408 3207 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_LEN 4 3208 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_NUM 4 3209 3210 3211 /***********************************/ 3212 /* MC_CMD_PTP 3213 * Perform PTP operation 3214 */ 3215 #define MC_CMD_PTP 0xb 3216 #define MC_CMD_PTP_MSGSET 0xb 3217 #undef MC_CMD_0xb_PRIVILEGE_CTG 3218 3219 #define MC_CMD_0xb_PRIVILEGE_CTG SRIOV_CTG_GENERAL 3220 3221 /* MC_CMD_PTP_IN msgrequest */ 3222 #define MC_CMD_PTP_IN_LEN 1 3223 /* PTP operation code */ 3224 #define MC_CMD_PTP_IN_OP_OFST 0 3225 #define MC_CMD_PTP_IN_OP_LEN 1 3226 /* enum: Enable PTP packet timestamping operation. */ 3227 #define MC_CMD_PTP_OP_ENABLE 0x1 3228 /* enum: Disable PTP packet timestamping operation. */ 3229 #define MC_CMD_PTP_OP_DISABLE 0x2 3230 /* enum: Send a PTP packet. This operation is used on Siena and Huntington. 3231 * From Medford onwards it is not supported: on those platforms PTP transmit 3232 * timestamping is done using the fast path. 3233 */ 3234 #define MC_CMD_PTP_OP_TRANSMIT 0x3 3235 /* enum: Read the current NIC time. */ 3236 #define MC_CMD_PTP_OP_READ_NIC_TIME 0x4 3237 /* enum: Get the current PTP status. Note that the clock frequency returned (in 3238 * Hz) is rounded to the nearest MHz (e.g. 666000000 for 666666666). 3239 */ 3240 #define MC_CMD_PTP_OP_STATUS 0x5 3241 /* enum: Adjust the PTP NIC's time. */ 3242 #define MC_CMD_PTP_OP_ADJUST 0x6 3243 /* enum: Synchronize host and NIC time. */ 3244 #define MC_CMD_PTP_OP_SYNCHRONIZE 0x7 3245 /* enum: Basic manufacturing tests. Siena PTP adapters only. */ 3246 #define MC_CMD_PTP_OP_MANFTEST_BASIC 0x8 3247 /* enum: Packet based manufacturing tests. Siena PTP adapters only. */ 3248 #define MC_CMD_PTP_OP_MANFTEST_PACKET 0x9 3249 /* enum: Reset some of the PTP related statistics */ 3250 #define MC_CMD_PTP_OP_RESET_STATS 0xa 3251 /* enum: Debug operations to MC. */ 3252 #define MC_CMD_PTP_OP_DEBUG 0xb 3253 /* enum: Read an FPGA register. Siena PTP adapters only. */ 3254 #define MC_CMD_PTP_OP_FPGAREAD 0xc 3255 /* enum: Write an FPGA register. Siena PTP adapters only. */ 3256 #define MC_CMD_PTP_OP_FPGAWRITE 0xd 3257 /* enum: Apply an offset to the NIC clock */ 3258 #define MC_CMD_PTP_OP_CLOCK_OFFSET_ADJUST 0xe 3259 /* enum: Change the frequency correction applied to the NIC clock */ 3260 #define MC_CMD_PTP_OP_CLOCK_FREQ_ADJUST 0xf 3261 /* enum: Set the MC packet filter VLAN tags for received PTP packets. 3262 * Deprecated for Huntington onwards. 3263 */ 3264 #define MC_CMD_PTP_OP_RX_SET_VLAN_FILTER 0x10 3265 /* enum: Set the MC packet filter UUID for received PTP packets. Deprecated for 3266 * Huntington onwards. 3267 */ 3268 #define MC_CMD_PTP_OP_RX_SET_UUID_FILTER 0x11 3269 /* enum: Set the MC packet filter Domain for received PTP packets. Deprecated 3270 * for Huntington onwards. 3271 */ 3272 #define MC_CMD_PTP_OP_RX_SET_DOMAIN_FILTER 0x12 3273 /* enum: Set the clock source. Required for snapper tests on Huntington and 3274 * Medford. Not implemented for Siena or Medford2. 3275 */ 3276 #define MC_CMD_PTP_OP_SET_CLK_SRC 0x13 3277 /* enum: Reset value of Timer Reg. Not implemented. */ 3278 #define MC_CMD_PTP_OP_RST_CLK 0x14 3279 /* enum: Enable the forwarding of PPS events to the host */ 3280 #define MC_CMD_PTP_OP_PPS_ENABLE 0x15 3281 /* enum: Get the time format used by this NIC for PTP operations */ 3282 #define MC_CMD_PTP_OP_GET_TIME_FORMAT 0x16 3283 /* enum: Get the clock attributes. NOTE- extended version of 3284 * MC_CMD_PTP_OP_GET_TIME_FORMAT 3285 */ 3286 #define MC_CMD_PTP_OP_GET_ATTRIBUTES 0x16 3287 /* enum: Get corrections that should be applied to the various different 3288 * timestamps 3289 */ 3290 #define MC_CMD_PTP_OP_GET_TIMESTAMP_CORRECTIONS 0x17 3291 /* enum: Subscribe to receive periodic time events indicating the current NIC 3292 * time 3293 */ 3294 #define MC_CMD_PTP_OP_TIME_EVENT_SUBSCRIBE 0x18 3295 /* enum: Unsubscribe to stop receiving time events */ 3296 #define MC_CMD_PTP_OP_TIME_EVENT_UNSUBSCRIBE 0x19 3297 /* enum: PPS based manfacturing tests. Requires PPS output to be looped to PPS 3298 * input on the same NIC. Siena PTP adapters only. 3299 */ 3300 #define MC_CMD_PTP_OP_MANFTEST_PPS 0x1a 3301 /* enum: Set the PTP sync status. Status is used by firmware to report to event 3302 * subscribers. 3303 */ 3304 #define MC_CMD_PTP_OP_SET_SYNC_STATUS 0x1b 3305 /* enum: Above this for future use. */ 3306 #define MC_CMD_PTP_OP_MAX 0x1c 3307 3308 /* MC_CMD_PTP_IN_ENABLE msgrequest */ 3309 #define MC_CMD_PTP_IN_ENABLE_LEN 16 3310 #define MC_CMD_PTP_IN_CMD_OFST 0 3311 #define MC_CMD_PTP_IN_CMD_LEN 4 3312 #define MC_CMD_PTP_IN_PERIPH_ID_OFST 4 3313 #define MC_CMD_PTP_IN_PERIPH_ID_LEN 4 3314 /* Not used, initialize to 0. Events are always sent to function relative queue 3315 * 0. 3316 */ 3317 #define MC_CMD_PTP_IN_ENABLE_QUEUE_OFST 8 3318 #define MC_CMD_PTP_IN_ENABLE_QUEUE_LEN 4 3319 /* PTP timestamping mode. Not used from Huntington onwards. */ 3320 #define MC_CMD_PTP_IN_ENABLE_MODE_OFST 12 3321 #define MC_CMD_PTP_IN_ENABLE_MODE_LEN 4 3322 /* enum: PTP, version 1 */ 3323 #define MC_CMD_PTP_MODE_V1 0x0 3324 /* enum: PTP, version 1, with VLAN headers - deprecated */ 3325 #define MC_CMD_PTP_MODE_V1_VLAN 0x1 3326 /* enum: PTP, version 2 */ 3327 #define MC_CMD_PTP_MODE_V2 0x2 3328 /* enum: PTP, version 2, with VLAN headers - deprecated */ 3329 #define MC_CMD_PTP_MODE_V2_VLAN 0x3 3330 /* enum: PTP, version 2, with improved UUID filtering */ 3331 #define MC_CMD_PTP_MODE_V2_ENHANCED 0x4 3332 /* enum: FCoE (seconds and microseconds) */ 3333 #define MC_CMD_PTP_MODE_FCOE 0x5 3334 3335 /* MC_CMD_PTP_IN_DISABLE msgrequest */ 3336 #define MC_CMD_PTP_IN_DISABLE_LEN 8 3337 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3338 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3339 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3340 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3341 3342 /* MC_CMD_PTP_IN_TRANSMIT msgrequest */ 3343 #define MC_CMD_PTP_IN_TRANSMIT_LENMIN 13 3344 #define MC_CMD_PTP_IN_TRANSMIT_LENMAX 252 3345 #define MC_CMD_PTP_IN_TRANSMIT_LENMAX_MCDI2 1020 3346 #define MC_CMD_PTP_IN_TRANSMIT_LEN(num) (12+1*(num)) 3347 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_NUM(len) (((len)-12)/1) 3348 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3349 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3350 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3351 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3352 /* Transmit packet length */ 3353 #define MC_CMD_PTP_IN_TRANSMIT_LENGTH_OFST 8 3354 #define MC_CMD_PTP_IN_TRANSMIT_LENGTH_LEN 4 3355 /* Transmit packet data */ 3356 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_OFST 12 3357 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_LEN 1 3358 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_MINNUM 1 3359 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_MAXNUM 240 3360 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_MAXNUM_MCDI2 1008 3361 3362 /* MC_CMD_PTP_IN_READ_NIC_TIME msgrequest */ 3363 #define MC_CMD_PTP_IN_READ_NIC_TIME_LEN 8 3364 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3365 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3366 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3367 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3368 3369 /* MC_CMD_PTP_IN_READ_NIC_TIME_V2 msgrequest */ 3370 #define MC_CMD_PTP_IN_READ_NIC_TIME_V2_LEN 8 3371 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3372 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3373 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3374 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3375 3376 /* MC_CMD_PTP_IN_STATUS msgrequest */ 3377 #define MC_CMD_PTP_IN_STATUS_LEN 8 3378 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3379 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3380 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3381 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3382 3383 /* MC_CMD_PTP_IN_ADJUST msgrequest */ 3384 #define MC_CMD_PTP_IN_ADJUST_LEN 24 3385 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3386 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3387 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3388 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3389 /* Frequency adjustment 40 bit fixed point ns */ 3390 #define MC_CMD_PTP_IN_ADJUST_FREQ_OFST 8 3391 #define MC_CMD_PTP_IN_ADJUST_FREQ_LEN 8 3392 #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_OFST 8 3393 #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_LEN 4 3394 #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_LBN 64 3395 #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_WIDTH 32 3396 #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_OFST 12 3397 #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_LEN 4 3398 #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_LBN 96 3399 #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_WIDTH 32 3400 /* enum: Number of fractional bits in frequency adjustment */ 3401 #define MC_CMD_PTP_IN_ADJUST_BITS 0x28 3402 /* enum: Number of fractional bits in frequency adjustment when FP44_FREQ_ADJ 3403 * is indicated in the MC_CMD_PTP_OUT_GET_ATTRIBUTES command CAPABILITIES 3404 * field. 3405 */ 3406 #define MC_CMD_PTP_IN_ADJUST_BITS_FP44 0x2c 3407 /* Time adjustment in seconds */ 3408 #define MC_CMD_PTP_IN_ADJUST_SECONDS_OFST 16 3409 #define MC_CMD_PTP_IN_ADJUST_SECONDS_LEN 4 3410 /* Time adjustment major value */ 3411 #define MC_CMD_PTP_IN_ADJUST_MAJOR_OFST 16 3412 #define MC_CMD_PTP_IN_ADJUST_MAJOR_LEN 4 3413 /* Time adjustment in nanoseconds */ 3414 #define MC_CMD_PTP_IN_ADJUST_NANOSECONDS_OFST 20 3415 #define MC_CMD_PTP_IN_ADJUST_NANOSECONDS_LEN 4 3416 /* Time adjustment minor value */ 3417 #define MC_CMD_PTP_IN_ADJUST_MINOR_OFST 20 3418 #define MC_CMD_PTP_IN_ADJUST_MINOR_LEN 4 3419 3420 /* MC_CMD_PTP_IN_ADJUST_V2 msgrequest */ 3421 #define MC_CMD_PTP_IN_ADJUST_V2_LEN 28 3422 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3423 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3424 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3425 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3426 /* Frequency adjustment 40 bit fixed point ns */ 3427 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_OFST 8 3428 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LEN 8 3429 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_OFST 8 3430 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_LEN 4 3431 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_LBN 64 3432 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_WIDTH 32 3433 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_OFST 12 3434 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_LEN 4 3435 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_LBN 96 3436 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_WIDTH 32 3437 /* enum: Number of fractional bits in frequency adjustment */ 3438 /* MC_CMD_PTP_IN_ADJUST_BITS 0x28 */ 3439 /* enum: Number of fractional bits in frequency adjustment when FP44_FREQ_ADJ 3440 * is indicated in the MC_CMD_PTP_OUT_GET_ATTRIBUTES command CAPABILITIES 3441 * field. 3442 */ 3443 /* MC_CMD_PTP_IN_ADJUST_BITS_FP44 0x2c */ 3444 /* Time adjustment in seconds */ 3445 #define MC_CMD_PTP_IN_ADJUST_V2_SECONDS_OFST 16 3446 #define MC_CMD_PTP_IN_ADJUST_V2_SECONDS_LEN 4 3447 /* Time adjustment major value */ 3448 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_OFST 16 3449 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_LEN 4 3450 /* Time adjustment in nanoseconds */ 3451 #define MC_CMD_PTP_IN_ADJUST_V2_NANOSECONDS_OFST 20 3452 #define MC_CMD_PTP_IN_ADJUST_V2_NANOSECONDS_LEN 4 3453 /* Time adjustment minor value */ 3454 #define MC_CMD_PTP_IN_ADJUST_V2_MINOR_OFST 20 3455 #define MC_CMD_PTP_IN_ADJUST_V2_MINOR_LEN 4 3456 /* Upper 32bits of major time offset adjustment */ 3457 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_HI_OFST 24 3458 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_HI_LEN 4 3459 3460 /* MC_CMD_PTP_IN_SYNCHRONIZE msgrequest */ 3461 #define MC_CMD_PTP_IN_SYNCHRONIZE_LEN 20 3462 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3463 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3464 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3465 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3466 /* Number of time readings to capture */ 3467 #define MC_CMD_PTP_IN_SYNCHRONIZE_NUMTIMESETS_OFST 8 3468 #define MC_CMD_PTP_IN_SYNCHRONIZE_NUMTIMESETS_LEN 4 3469 /* Host address in which to write "synchronization started" indication (64 3470 * bits) 3471 */ 3472 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_OFST 12 3473 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LEN 8 3474 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_OFST 12 3475 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_LEN 4 3476 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_LBN 96 3477 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_WIDTH 32 3478 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_OFST 16 3479 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_LEN 4 3480 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_LBN 128 3481 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_WIDTH 32 3482 3483 /* MC_CMD_PTP_IN_MANFTEST_BASIC msgrequest */ 3484 #define MC_CMD_PTP_IN_MANFTEST_BASIC_LEN 8 3485 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3486 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3487 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3488 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3489 3490 /* MC_CMD_PTP_IN_MANFTEST_PACKET msgrequest */ 3491 #define MC_CMD_PTP_IN_MANFTEST_PACKET_LEN 12 3492 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3493 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3494 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3495 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3496 /* Enable or disable packet testing */ 3497 #define MC_CMD_PTP_IN_MANFTEST_PACKET_TEST_ENABLE_OFST 8 3498 #define MC_CMD_PTP_IN_MANFTEST_PACKET_TEST_ENABLE_LEN 4 3499 3500 /* MC_CMD_PTP_IN_RESET_STATS msgrequest: Reset PTP statistics */ 3501 #define MC_CMD_PTP_IN_RESET_STATS_LEN 8 3502 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3503 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3504 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3505 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3506 3507 /* MC_CMD_PTP_IN_DEBUG msgrequest */ 3508 #define MC_CMD_PTP_IN_DEBUG_LEN 12 3509 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3510 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3511 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3512 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3513 /* Debug operations */ 3514 #define MC_CMD_PTP_IN_DEBUG_DEBUG_PARAM_OFST 8 3515 #define MC_CMD_PTP_IN_DEBUG_DEBUG_PARAM_LEN 4 3516 3517 /* MC_CMD_PTP_IN_FPGAREAD msgrequest */ 3518 #define MC_CMD_PTP_IN_FPGAREAD_LEN 16 3519 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3520 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3521 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3522 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3523 #define MC_CMD_PTP_IN_FPGAREAD_ADDR_OFST 8 3524 #define MC_CMD_PTP_IN_FPGAREAD_ADDR_LEN 4 3525 #define MC_CMD_PTP_IN_FPGAREAD_NUMBYTES_OFST 12 3526 #define MC_CMD_PTP_IN_FPGAREAD_NUMBYTES_LEN 4 3527 3528 /* MC_CMD_PTP_IN_FPGAWRITE msgrequest */ 3529 #define MC_CMD_PTP_IN_FPGAWRITE_LENMIN 13 3530 #define MC_CMD_PTP_IN_FPGAWRITE_LENMAX 252 3531 #define MC_CMD_PTP_IN_FPGAWRITE_LENMAX_MCDI2 1020 3532 #define MC_CMD_PTP_IN_FPGAWRITE_LEN(num) (12+1*(num)) 3533 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_NUM(len) (((len)-12)/1) 3534 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3535 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3536 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3537 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3538 #define MC_CMD_PTP_IN_FPGAWRITE_ADDR_OFST 8 3539 #define MC_CMD_PTP_IN_FPGAWRITE_ADDR_LEN 4 3540 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_OFST 12 3541 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_LEN 1 3542 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_MINNUM 1 3543 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_MAXNUM 240 3544 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_MAXNUM_MCDI2 1008 3545 3546 /* MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST msgrequest */ 3547 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_LEN 16 3548 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3549 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3550 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3551 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3552 /* Time adjustment in seconds */ 3553 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_SECONDS_OFST 8 3554 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_SECONDS_LEN 4 3555 /* Time adjustment major value */ 3556 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MAJOR_OFST 8 3557 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MAJOR_LEN 4 3558 /* Time adjustment in nanoseconds */ 3559 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_NANOSECONDS_OFST 12 3560 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_NANOSECONDS_LEN 4 3561 /* Time adjustment minor value */ 3562 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MINOR_OFST 12 3563 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MINOR_LEN 4 3564 3565 /* MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2 msgrequest */ 3566 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_LEN 20 3567 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3568 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3569 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3570 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3571 /* Time adjustment in seconds */ 3572 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_SECONDS_OFST 8 3573 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_SECONDS_LEN 4 3574 /* Time adjustment major value */ 3575 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_OFST 8 3576 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_LEN 4 3577 /* Time adjustment in nanoseconds */ 3578 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_NANOSECONDS_OFST 12 3579 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_NANOSECONDS_LEN 4 3580 /* Time adjustment minor value */ 3581 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MINOR_OFST 12 3582 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MINOR_LEN 4 3583 /* Upper 32bits of major time offset adjustment */ 3584 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_HI_OFST 16 3585 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_HI_LEN 4 3586 3587 /* MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST msgrequest */ 3588 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_LEN 16 3589 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3590 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3591 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3592 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3593 /* Frequency adjustment 40 bit fixed point ns */ 3594 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_OFST 8 3595 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LEN 8 3596 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_OFST 8 3597 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_LEN 4 3598 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_LBN 64 3599 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_WIDTH 32 3600 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_OFST 12 3601 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_LEN 4 3602 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_LBN 96 3603 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_WIDTH 32 3604 /* Enum values, see field(s): */ 3605 /* MC_CMD_PTP/MC_CMD_PTP_IN_ADJUST/FREQ */ 3606 3607 /* MC_CMD_PTP_IN_RX_SET_VLAN_FILTER msgrequest */ 3608 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_LEN 24 3609 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3610 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3611 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3612 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3613 /* Number of VLAN tags, 0 if not VLAN */ 3614 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_NUM_VLAN_TAGS_OFST 8 3615 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_NUM_VLAN_TAGS_LEN 4 3616 /* Set of VLAN tags to filter against */ 3617 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_VLAN_TAG_OFST 12 3618 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_VLAN_TAG_LEN 4 3619 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_VLAN_TAG_NUM 3 3620 3621 /* MC_CMD_PTP_IN_RX_SET_UUID_FILTER msgrequest */ 3622 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_LEN 20 3623 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3624 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3625 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3626 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3627 /* 1 to enable UUID filtering, 0 to disable */ 3628 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_ENABLE_OFST 8 3629 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_ENABLE_LEN 4 3630 /* UUID to filter against */ 3631 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_OFST 12 3632 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LEN 8 3633 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_OFST 12 3634 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_LEN 4 3635 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_LBN 96 3636 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_WIDTH 32 3637 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_OFST 16 3638 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_LEN 4 3639 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_LBN 128 3640 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_WIDTH 32 3641 3642 /* MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER msgrequest */ 3643 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_LEN 16 3644 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3645 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3646 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3647 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3648 /* 1 to enable Domain filtering, 0 to disable */ 3649 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_ENABLE_OFST 8 3650 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_ENABLE_LEN 4 3651 /* Domain number to filter against */ 3652 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_DOMAIN_OFST 12 3653 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_DOMAIN_LEN 4 3654 3655 /* MC_CMD_PTP_IN_SET_CLK_SRC msgrequest */ 3656 #define MC_CMD_PTP_IN_SET_CLK_SRC_LEN 12 3657 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3658 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3659 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3660 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3661 /* Set the clock source. */ 3662 #define MC_CMD_PTP_IN_SET_CLK_SRC_CLK_OFST 8 3663 #define MC_CMD_PTP_IN_SET_CLK_SRC_CLK_LEN 4 3664 /* enum: Internal. */ 3665 #define MC_CMD_PTP_CLK_SRC_INTERNAL 0x0 3666 /* enum: External. */ 3667 #define MC_CMD_PTP_CLK_SRC_EXTERNAL 0x1 3668 3669 /* MC_CMD_PTP_IN_RST_CLK msgrequest: Reset value of Timer Reg. */ 3670 #define MC_CMD_PTP_IN_RST_CLK_LEN 8 3671 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3672 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3673 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3674 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3675 3676 /* MC_CMD_PTP_IN_PPS_ENABLE msgrequest */ 3677 #define MC_CMD_PTP_IN_PPS_ENABLE_LEN 12 3678 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3679 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3680 /* Enable or disable */ 3681 #define MC_CMD_PTP_IN_PPS_ENABLE_OP_OFST 4 3682 #define MC_CMD_PTP_IN_PPS_ENABLE_OP_LEN 4 3683 /* enum: Enable */ 3684 #define MC_CMD_PTP_ENABLE_PPS 0x0 3685 /* enum: Disable */ 3686 #define MC_CMD_PTP_DISABLE_PPS 0x1 3687 /* Not used, initialize to 0. Events are always sent to function relative queue 3688 * 0. 3689 */ 3690 #define MC_CMD_PTP_IN_PPS_ENABLE_QUEUE_ID_OFST 8 3691 #define MC_CMD_PTP_IN_PPS_ENABLE_QUEUE_ID_LEN 4 3692 3693 /* MC_CMD_PTP_IN_GET_TIME_FORMAT msgrequest */ 3694 #define MC_CMD_PTP_IN_GET_TIME_FORMAT_LEN 8 3695 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3696 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3697 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3698 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3699 3700 /* MC_CMD_PTP_IN_GET_ATTRIBUTES msgrequest */ 3701 #define MC_CMD_PTP_IN_GET_ATTRIBUTES_LEN 8 3702 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3703 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3704 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3705 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3706 3707 /* MC_CMD_PTP_IN_GET_TIMESTAMP_CORRECTIONS msgrequest */ 3708 #define MC_CMD_PTP_IN_GET_TIMESTAMP_CORRECTIONS_LEN 8 3709 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3710 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3711 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3712 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3713 3714 /* MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE msgrequest */ 3715 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_LEN 12 3716 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3717 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3718 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3719 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3720 /* Original field containing queue ID. Now extended to include flags. */ 3721 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_OFST 8 3722 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_LEN 4 3723 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_ID_OFST 8 3724 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_ID_LBN 0 3725 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_ID_WIDTH 16 3726 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_REPORT_SYNC_STATUS_OFST 8 3727 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_REPORT_SYNC_STATUS_LBN 31 3728 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_REPORT_SYNC_STATUS_WIDTH 1 3729 3730 /* MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE msgrequest */ 3731 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_LEN 16 3732 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3733 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3734 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3735 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3736 /* Unsubscribe options */ 3737 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_CONTROL_OFST 8 3738 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_CONTROL_LEN 4 3739 /* enum: Unsubscribe a single queue */ 3740 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_SINGLE 0x0 3741 /* enum: Unsubscribe all queues */ 3742 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_ALL 0x1 3743 /* Event queue ID */ 3744 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_QUEUE_OFST 12 3745 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_QUEUE_LEN 4 3746 3747 /* MC_CMD_PTP_IN_MANFTEST_PPS msgrequest */ 3748 #define MC_CMD_PTP_IN_MANFTEST_PPS_LEN 12 3749 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3750 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3751 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3752 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3753 /* 1 to enable PPS test mode, 0 to disable and return result. */ 3754 #define MC_CMD_PTP_IN_MANFTEST_PPS_TEST_ENABLE_OFST 8 3755 #define MC_CMD_PTP_IN_MANFTEST_PPS_TEST_ENABLE_LEN 4 3756 3757 /* MC_CMD_PTP_IN_SET_SYNC_STATUS msgrequest */ 3758 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_LEN 24 3759 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3760 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3761 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3762 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3763 /* NIC - Host System Clock Synchronization status */ 3764 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_STATUS_OFST 8 3765 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_STATUS_LEN 4 3766 /* enum: Host System clock and NIC clock are not in sync */ 3767 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_NOT_IN_SYNC 0x0 3768 /* enum: Host System clock and NIC clock are synchronized */ 3769 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_IN_SYNC 0x1 3770 /* If synchronized, number of seconds until clocks should be considered to be 3771 * no longer in sync. 3772 */ 3773 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_TIMEOUT_OFST 12 3774 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_TIMEOUT_LEN 4 3775 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED0_OFST 16 3776 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED0_LEN 4 3777 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED1_OFST 20 3778 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED1_LEN 4 3779 3780 /* MC_CMD_PTP_OUT msgresponse */ 3781 #define MC_CMD_PTP_OUT_LEN 0 3782 3783 /* MC_CMD_PTP_OUT_TRANSMIT msgresponse */ 3784 #define MC_CMD_PTP_OUT_TRANSMIT_LEN 8 3785 /* Value of seconds timestamp */ 3786 #define MC_CMD_PTP_OUT_TRANSMIT_SECONDS_OFST 0 3787 #define MC_CMD_PTP_OUT_TRANSMIT_SECONDS_LEN 4 3788 /* Timestamp major value */ 3789 #define MC_CMD_PTP_OUT_TRANSMIT_MAJOR_OFST 0 3790 #define MC_CMD_PTP_OUT_TRANSMIT_MAJOR_LEN 4 3791 /* Value of nanoseconds timestamp */ 3792 #define MC_CMD_PTP_OUT_TRANSMIT_NANOSECONDS_OFST 4 3793 #define MC_CMD_PTP_OUT_TRANSMIT_NANOSECONDS_LEN 4 3794 /* Timestamp minor value */ 3795 #define MC_CMD_PTP_OUT_TRANSMIT_MINOR_OFST 4 3796 #define MC_CMD_PTP_OUT_TRANSMIT_MINOR_LEN 4 3797 3798 /* MC_CMD_PTP_OUT_TIME_EVENT_SUBSCRIBE msgresponse */ 3799 #define MC_CMD_PTP_OUT_TIME_EVENT_SUBSCRIBE_LEN 0 3800 3801 /* MC_CMD_PTP_OUT_TIME_EVENT_UNSUBSCRIBE msgresponse */ 3802 #define MC_CMD_PTP_OUT_TIME_EVENT_UNSUBSCRIBE_LEN 0 3803 3804 /* MC_CMD_PTP_OUT_READ_NIC_TIME msgresponse */ 3805 #define MC_CMD_PTP_OUT_READ_NIC_TIME_LEN 8 3806 /* Value of seconds timestamp */ 3807 #define MC_CMD_PTP_OUT_READ_NIC_TIME_SECONDS_OFST 0 3808 #define MC_CMD_PTP_OUT_READ_NIC_TIME_SECONDS_LEN 4 3809 /* Timestamp major value */ 3810 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MAJOR_OFST 0 3811 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MAJOR_LEN 4 3812 /* Value of nanoseconds timestamp */ 3813 #define MC_CMD_PTP_OUT_READ_NIC_TIME_NANOSECONDS_OFST 4 3814 #define MC_CMD_PTP_OUT_READ_NIC_TIME_NANOSECONDS_LEN 4 3815 /* Timestamp minor value */ 3816 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MINOR_OFST 4 3817 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MINOR_LEN 4 3818 3819 /* MC_CMD_PTP_OUT_READ_NIC_TIME_V2 msgresponse */ 3820 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_LEN 12 3821 /* Value of seconds timestamp */ 3822 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_SECONDS_OFST 0 3823 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_SECONDS_LEN 4 3824 /* Timestamp major value */ 3825 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_OFST 0 3826 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_LEN 4 3827 /* Value of nanoseconds timestamp */ 3828 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_NANOSECONDS_OFST 4 3829 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_NANOSECONDS_LEN 4 3830 /* Timestamp minor value */ 3831 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MINOR_OFST 4 3832 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MINOR_LEN 4 3833 /* Upper 32bits of major timestamp value */ 3834 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_HI_OFST 8 3835 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_HI_LEN 4 3836 3837 /* MC_CMD_PTP_OUT_STATUS msgresponse */ 3838 #define MC_CMD_PTP_OUT_STATUS_LEN 64 3839 /* Frequency of NIC's hardware clock */ 3840 #define MC_CMD_PTP_OUT_STATUS_CLOCK_FREQ_OFST 0 3841 #define MC_CMD_PTP_OUT_STATUS_CLOCK_FREQ_LEN 4 3842 /* Number of packets transmitted and timestamped */ 3843 #define MC_CMD_PTP_OUT_STATUS_STATS_TX_OFST 4 3844 #define MC_CMD_PTP_OUT_STATUS_STATS_TX_LEN 4 3845 /* Number of packets received and timestamped */ 3846 #define MC_CMD_PTP_OUT_STATUS_STATS_RX_OFST 8 3847 #define MC_CMD_PTP_OUT_STATUS_STATS_RX_LEN 4 3848 /* Number of packets timestamped by the FPGA */ 3849 #define MC_CMD_PTP_OUT_STATUS_STATS_TS_OFST 12 3850 #define MC_CMD_PTP_OUT_STATUS_STATS_TS_LEN 4 3851 /* Number of packets filter matched */ 3852 #define MC_CMD_PTP_OUT_STATUS_STATS_FM_OFST 16 3853 #define MC_CMD_PTP_OUT_STATUS_STATS_FM_LEN 4 3854 /* Number of packets not filter matched */ 3855 #define MC_CMD_PTP_OUT_STATUS_STATS_NFM_OFST 20 3856 #define MC_CMD_PTP_OUT_STATUS_STATS_NFM_LEN 4 3857 /* Number of PPS overflows (noise on input?) */ 3858 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFLOW_OFST 24 3859 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFLOW_LEN 4 3860 /* Number of PPS bad periods */ 3861 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_BAD_OFST 28 3862 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_BAD_LEN 4 3863 /* Minimum period of PPS pulse in nanoseconds */ 3864 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MIN_OFST 32 3865 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MIN_LEN 4 3866 /* Maximum period of PPS pulse in nanoseconds */ 3867 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MAX_OFST 36 3868 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MAX_LEN 4 3869 /* Last period of PPS pulse in nanoseconds */ 3870 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_LAST_OFST 40 3871 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_LAST_LEN 4 3872 /* Mean period of PPS pulse in nanoseconds */ 3873 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MEAN_OFST 44 3874 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MEAN_LEN 4 3875 /* Minimum offset of PPS pulse in nanoseconds (signed) */ 3876 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MIN_OFST 48 3877 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MIN_LEN 4 3878 /* Maximum offset of PPS pulse in nanoseconds (signed) */ 3879 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MAX_OFST 52 3880 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MAX_LEN 4 3881 /* Last offset of PPS pulse in nanoseconds (signed) */ 3882 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_LAST_OFST 56 3883 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_LAST_LEN 4 3884 /* Mean offset of PPS pulse in nanoseconds (signed) */ 3885 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MEAN_OFST 60 3886 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MEAN_LEN 4 3887 3888 /* MC_CMD_PTP_OUT_SYNCHRONIZE msgresponse */ 3889 #define MC_CMD_PTP_OUT_SYNCHRONIZE_LENMIN 20 3890 #define MC_CMD_PTP_OUT_SYNCHRONIZE_LENMAX 240 3891 #define MC_CMD_PTP_OUT_SYNCHRONIZE_LENMAX_MCDI2 1020 3892 #define MC_CMD_PTP_OUT_SYNCHRONIZE_LEN(num) (0+20*(num)) 3893 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_NUM(len) (((len)-0)/20) 3894 /* A set of host and NIC times */ 3895 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_OFST 0 3896 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_LEN 20 3897 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_MINNUM 1 3898 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_MAXNUM 12 3899 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_MAXNUM_MCDI2 51 3900 /* Host time immediately before NIC's hardware clock read */ 3901 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTSTART_OFST 0 3902 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTSTART_LEN 4 3903 /* Value of seconds timestamp */ 3904 #define MC_CMD_PTP_OUT_SYNCHRONIZE_SECONDS_OFST 4 3905 #define MC_CMD_PTP_OUT_SYNCHRONIZE_SECONDS_LEN 4 3906 /* Timestamp major value */ 3907 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MAJOR_OFST 4 3908 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MAJOR_LEN 4 3909 /* Value of nanoseconds timestamp */ 3910 #define MC_CMD_PTP_OUT_SYNCHRONIZE_NANOSECONDS_OFST 8 3911 #define MC_CMD_PTP_OUT_SYNCHRONIZE_NANOSECONDS_LEN 4 3912 /* Timestamp minor value */ 3913 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MINOR_OFST 8 3914 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MINOR_LEN 4 3915 /* Host time immediately after NIC's hardware clock read */ 3916 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTEND_OFST 12 3917 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTEND_LEN 4 3918 /* Number of nanoseconds waited after reading NIC's hardware clock */ 3919 #define MC_CMD_PTP_OUT_SYNCHRONIZE_WAITNS_OFST 16 3920 #define MC_CMD_PTP_OUT_SYNCHRONIZE_WAITNS_LEN 4 3921 3922 /* MC_CMD_PTP_OUT_MANFTEST_BASIC msgresponse */ 3923 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_LEN 8 3924 /* Results of testing */ 3925 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_RESULT_OFST 0 3926 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_RESULT_LEN 4 3927 /* enum: Successful test */ 3928 #define MC_CMD_PTP_MANF_SUCCESS 0x0 3929 /* enum: FPGA load failed */ 3930 #define MC_CMD_PTP_MANF_FPGA_LOAD 0x1 3931 /* enum: FPGA version invalid */ 3932 #define MC_CMD_PTP_MANF_FPGA_VERSION 0x2 3933 /* enum: FPGA registers incorrect */ 3934 #define MC_CMD_PTP_MANF_FPGA_REGISTERS 0x3 3935 /* enum: Oscillator possibly not working? */ 3936 #define MC_CMD_PTP_MANF_OSCILLATOR 0x4 3937 /* enum: Timestamps not increasing */ 3938 #define MC_CMD_PTP_MANF_TIMESTAMPS 0x5 3939 /* enum: Mismatched packet count */ 3940 #define MC_CMD_PTP_MANF_PACKET_COUNT 0x6 3941 /* enum: Mismatched packet count (Siena filter and FPGA) */ 3942 #define MC_CMD_PTP_MANF_FILTER_COUNT 0x7 3943 /* enum: Not enough packets to perform timestamp check */ 3944 #define MC_CMD_PTP_MANF_PACKET_ENOUGH 0x8 3945 /* enum: Timestamp trigger GPIO not working */ 3946 #define MC_CMD_PTP_MANF_GPIO_TRIGGER 0x9 3947 /* enum: Insufficient PPS events to perform checks */ 3948 #define MC_CMD_PTP_MANF_PPS_ENOUGH 0xa 3949 /* enum: PPS time event period not sufficiently close to 1s. */ 3950 #define MC_CMD_PTP_MANF_PPS_PERIOD 0xb 3951 /* enum: PPS time event nS reading not sufficiently close to zero. */ 3952 #define MC_CMD_PTP_MANF_PPS_NS 0xc 3953 /* enum: PTP peripheral registers incorrect */ 3954 #define MC_CMD_PTP_MANF_REGISTERS 0xd 3955 /* enum: Failed to read time from PTP peripheral */ 3956 #define MC_CMD_PTP_MANF_CLOCK_READ 0xe 3957 /* Presence of external oscillator */ 3958 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_EXTOSC_OFST 4 3959 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_EXTOSC_LEN 4 3960 3961 /* MC_CMD_PTP_OUT_MANFTEST_PACKET msgresponse */ 3962 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_LEN 12 3963 /* Results of testing */ 3964 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_RESULT_OFST 0 3965 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_RESULT_LEN 4 3966 /* Number of packets received by FPGA */ 3967 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FPGACOUNT_OFST 4 3968 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FPGACOUNT_LEN 4 3969 /* Number of packets received by Siena filters */ 3970 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FILTERCOUNT_OFST 8 3971 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FILTERCOUNT_LEN 4 3972 3973 /* MC_CMD_PTP_OUT_FPGAREAD msgresponse */ 3974 #define MC_CMD_PTP_OUT_FPGAREAD_LENMIN 1 3975 #define MC_CMD_PTP_OUT_FPGAREAD_LENMAX 252 3976 #define MC_CMD_PTP_OUT_FPGAREAD_LENMAX_MCDI2 1020 3977 #define MC_CMD_PTP_OUT_FPGAREAD_LEN(num) (0+1*(num)) 3978 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_NUM(len) (((len)-0)/1) 3979 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_OFST 0 3980 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_LEN 1 3981 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_MINNUM 1 3982 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_MAXNUM 252 3983 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_MAXNUM_MCDI2 1020 3984 3985 /* MC_CMD_PTP_OUT_GET_TIME_FORMAT msgresponse */ 3986 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_LEN 4 3987 /* Time format required/used by for this NIC. Applies to all PTP MCDI 3988 * operations that pass times between the host and firmware. If this operation 3989 * is not supported (older firmware) a format of seconds and nanoseconds should 3990 * be assumed. Note this enum is deprecated. Do not add to it- use the 3991 * TIME_FORMAT field in MC_CMD_PTP_OUT_GET_ATTRIBUTES instead. 3992 */ 3993 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_FORMAT_OFST 0 3994 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_FORMAT_LEN 4 3995 /* enum: Times are in seconds and nanoseconds */ 3996 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_SECONDS_NANOSECONDS 0x0 3997 /* enum: Major register has units of 16 second per tick, minor 8 ns per tick */ 3998 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_16SECONDS_8NANOSECONDS 0x1 3999 /* enum: Major register has units of seconds, minor 2^-27s per tick */ 4000 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_SECONDS_27FRACTION 0x2 4001 4002 /* MC_CMD_PTP_OUT_GET_ATTRIBUTES msgresponse */ 4003 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_LEN 24 4004 /* Time format required/used by for this NIC. Applies to all PTP MCDI 4005 * operations that pass times between the host and firmware. If this operation 4006 * is not supported (older firmware) a format of seconds and nanoseconds should 4007 * be assumed. 4008 */ 4009 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_TIME_FORMAT_OFST 0 4010 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_TIME_FORMAT_LEN 4 4011 /* enum: Times are in seconds and nanoseconds */ 4012 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SECONDS_NANOSECONDS 0x0 4013 /* enum: Major register has units of 16 second per tick, minor 8 ns per tick */ 4014 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_16SECONDS_8NANOSECONDS 0x1 4015 /* enum: Major register has units of seconds, minor 2^-27s per tick */ 4016 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SECONDS_27FRACTION 0x2 4017 /* enum: Major register units are seconds, minor units are quarter nanoseconds 4018 */ 4019 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SECONDS_QTR_NANOSECONDS 0x3 4020 /* Minimum acceptable value for a corrected synchronization timeset. When 4021 * comparing host and NIC clock times, the MC returns a set of samples that 4022 * contain the host start and end time, the MC time when the host start was 4023 * detected and the time the MC waited between reading the time and detecting 4024 * the host end. The corrected sync window is the difference between the host 4025 * end and start times minus the time that the MC waited for host end. 4026 */ 4027 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SYNC_WINDOW_MIN_OFST 4 4028 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SYNC_WINDOW_MIN_LEN 4 4029 /* Various PTP capabilities */ 4030 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_CAPABILITIES_OFST 8 4031 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_CAPABILITIES_LEN 4 4032 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_REPORT_SYNC_STATUS_OFST 8 4033 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_REPORT_SYNC_STATUS_LBN 0 4034 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_REPORT_SYNC_STATUS_WIDTH 1 4035 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RX_TSTAMP_OOB_OFST 8 4036 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RX_TSTAMP_OOB_LBN 1 4037 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RX_TSTAMP_OOB_WIDTH 1 4038 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_64BIT_SECONDS_OFST 8 4039 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_64BIT_SECONDS_LBN 2 4040 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_64BIT_SECONDS_WIDTH 1 4041 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_FP44_FREQ_ADJ_OFST 8 4042 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_FP44_FREQ_ADJ_LBN 3 4043 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_FP44_FREQ_ADJ_WIDTH 1 4044 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED0_OFST 12 4045 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED0_LEN 4 4046 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED1_OFST 16 4047 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED1_LEN 4 4048 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED2_OFST 20 4049 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED2_LEN 4 4050 4051 /* MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2 msgresponse */ 4052 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_LEN 40 4053 /* Time format required/used by for this NIC. Applies to all PTP MCDI 4054 * operations that pass times between the host and firmware. If this operation 4055 * is not supported (older firmware) a format of seconds and nanoseconds should 4056 * be assumed. 4057 */ 4058 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_TIME_FORMAT_OFST 0 4059 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_TIME_FORMAT_LEN 4 4060 /* enum: Times are in seconds and nanoseconds */ 4061 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SECONDS_NANOSECONDS 0x0 4062 /* enum: Major register has units of 16 second per tick, minor 8 ns per tick */ 4063 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_16SECONDS_8NANOSECONDS 0x1 4064 /* enum: Major register has units of seconds, minor 2^-27s per tick */ 4065 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SECONDS_27FRACTION 0x2 4066 /* enum: Major register units are seconds, minor units are quarter nanoseconds 4067 */ 4068 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SECONDS_QTR_NANOSECONDS 0x3 4069 /* Minimum acceptable value for a corrected synchronization timeset. When 4070 * comparing host and NIC clock times, the MC returns a set of samples that 4071 * contain the host start and end time, the MC time when the host start was 4072 * detected and the time the MC waited between reading the time and detecting 4073 * the host end. The corrected sync window is the difference between the host 4074 * end and start times minus the time that the MC waited for host end. 4075 */ 4076 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SYNC_WINDOW_MIN_OFST 4 4077 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SYNC_WINDOW_MIN_LEN 4 4078 /* Various PTP capabilities */ 4079 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_CAPABILITIES_OFST 8 4080 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_CAPABILITIES_LEN 4 4081 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_REPORT_SYNC_STATUS_OFST 8 4082 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_REPORT_SYNC_STATUS_LBN 0 4083 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_REPORT_SYNC_STATUS_WIDTH 1 4084 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RX_TSTAMP_OOB_OFST 8 4085 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RX_TSTAMP_OOB_LBN 1 4086 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RX_TSTAMP_OOB_WIDTH 1 4087 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_64BIT_SECONDS_OFST 8 4088 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_64BIT_SECONDS_LBN 2 4089 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_64BIT_SECONDS_WIDTH 1 4090 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FP44_FREQ_ADJ_OFST 8 4091 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FP44_FREQ_ADJ_LBN 3 4092 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FP44_FREQ_ADJ_WIDTH 1 4093 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED0_OFST 12 4094 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED0_LEN 4 4095 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED1_OFST 16 4096 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED1_LEN 4 4097 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED2_OFST 20 4098 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED2_LEN 4 4099 /* Minimum supported value for the FREQ field in 4100 * MC_CMD_PTP/MC_CMD_PTP_IN_ADJUST and 4101 * MC_CMD_PTP/MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST message requests. If this message 4102 * response is not supported a value of -0.1 ns should be assumed, which is 4103 * equivalent to a -10% adjustment. 4104 */ 4105 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_OFST 24 4106 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_LEN 8 4107 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_LO_OFST 24 4108 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_LO_LEN 4 4109 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_LO_LBN 192 4110 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_LO_WIDTH 32 4111 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_HI_OFST 28 4112 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_HI_LEN 4 4113 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_HI_LBN 224 4114 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_HI_WIDTH 32 4115 /* Maximum supported value for the FREQ field in 4116 * MC_CMD_PTP/MC_CMD_PTP_IN_ADJUST and 4117 * MC_CMD_PTP/MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST message requests. If this message 4118 * response is not supported a value of 0.1 ns should be assumed, which is 4119 * equivalent to a +10% adjustment. 4120 */ 4121 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_OFST 32 4122 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_LEN 8 4123 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_LO_OFST 32 4124 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_LO_LEN 4 4125 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_LO_LBN 256 4126 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_LO_WIDTH 32 4127 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_HI_OFST 36 4128 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_HI_LEN 4 4129 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_HI_LBN 288 4130 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_HI_WIDTH 32 4131 4132 /* MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS msgresponse */ 4133 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_LEN 16 4134 /* Uncorrected error on PTP transmit timestamps in NIC clock format */ 4135 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_TRANSMIT_OFST 0 4136 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_TRANSMIT_LEN 4 4137 /* Uncorrected error on PTP receive timestamps in NIC clock format */ 4138 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_RECEIVE_OFST 4 4139 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_RECEIVE_LEN 4 4140 /* Uncorrected error on PPS output in NIC clock format */ 4141 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_OUT_OFST 8 4142 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_OUT_LEN 4 4143 /* Uncorrected error on PPS input in NIC clock format */ 4144 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_IN_OFST 12 4145 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_IN_LEN 4 4146 4147 /* MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2 msgresponse */ 4148 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_LEN 24 4149 /* Uncorrected error on PTP transmit timestamps in NIC clock format */ 4150 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_TX_OFST 0 4151 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_TX_LEN 4 4152 /* Uncorrected error on PTP receive timestamps in NIC clock format */ 4153 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_RX_OFST 4 4154 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_RX_LEN 4 4155 /* Uncorrected error on PPS output in NIC clock format */ 4156 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_OUT_OFST 8 4157 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_OUT_LEN 4 4158 /* Uncorrected error on PPS input in NIC clock format */ 4159 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_IN_OFST 12 4160 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_IN_LEN 4 4161 /* Uncorrected error on non-PTP transmit timestamps in NIC clock format */ 4162 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_TX_OFST 16 4163 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_TX_LEN 4 4164 /* Uncorrected error on non-PTP receive timestamps in NIC clock format */ 4165 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_RX_OFST 20 4166 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_RX_LEN 4 4167 4168 /* MC_CMD_PTP_OUT_MANFTEST_PPS msgresponse */ 4169 #define MC_CMD_PTP_OUT_MANFTEST_PPS_LEN 4 4170 /* Results of testing */ 4171 #define MC_CMD_PTP_OUT_MANFTEST_PPS_TEST_RESULT_OFST 0 4172 #define MC_CMD_PTP_OUT_MANFTEST_PPS_TEST_RESULT_LEN 4 4173 /* Enum values, see field(s): */ 4174 /* MC_CMD_PTP_OUT_MANFTEST_BASIC/TEST_RESULT */ 4175 4176 /* MC_CMD_PTP_OUT_SET_SYNC_STATUS msgresponse */ 4177 #define MC_CMD_PTP_OUT_SET_SYNC_STATUS_LEN 0 4178 4179 4180 /***********************************/ 4181 /* MC_CMD_CSR_READ32 4182 * Read 32bit words from the indirect memory map. 4183 * 4184 * Note - this command originally belonged to INSECURE category. But access is 4185 * required to specific registers for customer diagnostics. The command handler 4186 * has additional checks to reject insecure calls. 4187 */ 4188 #define MC_CMD_CSR_READ32 0xc 4189 #define MC_CMD_CSR_READ32_MSGSET 0xc 4190 #undef MC_CMD_0xc_PRIVILEGE_CTG 4191 4192 #define MC_CMD_0xc_PRIVILEGE_CTG SRIOV_CTG_ADMIN 4193 4194 /* MC_CMD_CSR_READ32_IN msgrequest */ 4195 #define MC_CMD_CSR_READ32_IN_LEN 12 4196 /* Address */ 4197 #define MC_CMD_CSR_READ32_IN_ADDR_OFST 0 4198 #define MC_CMD_CSR_READ32_IN_ADDR_LEN 4 4199 #define MC_CMD_CSR_READ32_IN_STEP_OFST 4 4200 #define MC_CMD_CSR_READ32_IN_STEP_LEN 4 4201 #define MC_CMD_CSR_READ32_IN_NUMWORDS_OFST 8 4202 #define MC_CMD_CSR_READ32_IN_NUMWORDS_LEN 4 4203 4204 /* MC_CMD_CSR_READ32_OUT msgresponse */ 4205 #define MC_CMD_CSR_READ32_OUT_LENMIN 4 4206 #define MC_CMD_CSR_READ32_OUT_LENMAX 252 4207 #define MC_CMD_CSR_READ32_OUT_LENMAX_MCDI2 1020 4208 #define MC_CMD_CSR_READ32_OUT_LEN(num) (0+4*(num)) 4209 #define MC_CMD_CSR_READ32_OUT_BUFFER_NUM(len) (((len)-0)/4) 4210 /* The last dword is the status, not a value read */ 4211 #define MC_CMD_CSR_READ32_OUT_BUFFER_OFST 0 4212 #define MC_CMD_CSR_READ32_OUT_BUFFER_LEN 4 4213 #define MC_CMD_CSR_READ32_OUT_BUFFER_MINNUM 1 4214 #define MC_CMD_CSR_READ32_OUT_BUFFER_MAXNUM 63 4215 #define MC_CMD_CSR_READ32_OUT_BUFFER_MAXNUM_MCDI2 255 4216 4217 4218 /***********************************/ 4219 /* MC_CMD_CSR_WRITE32 4220 * Write 32bit dwords to the indirect memory map. 4221 */ 4222 #define MC_CMD_CSR_WRITE32 0xd 4223 #define MC_CMD_CSR_WRITE32_MSGSET 0xd 4224 #undef MC_CMD_0xd_PRIVILEGE_CTG 4225 4226 #define MC_CMD_0xd_PRIVILEGE_CTG SRIOV_CTG_INSECURE 4227 4228 /* MC_CMD_CSR_WRITE32_IN msgrequest */ 4229 #define MC_CMD_CSR_WRITE32_IN_LENMIN 12 4230 #define MC_CMD_CSR_WRITE32_IN_LENMAX 252 4231 #define MC_CMD_CSR_WRITE32_IN_LENMAX_MCDI2 1020 4232 #define MC_CMD_CSR_WRITE32_IN_LEN(num) (8+4*(num)) 4233 #define MC_CMD_CSR_WRITE32_IN_BUFFER_NUM(len) (((len)-8)/4) 4234 /* Address */ 4235 #define MC_CMD_CSR_WRITE32_IN_ADDR_OFST 0 4236 #define MC_CMD_CSR_WRITE32_IN_ADDR_LEN 4 4237 #define MC_CMD_CSR_WRITE32_IN_STEP_OFST 4 4238 #define MC_CMD_CSR_WRITE32_IN_STEP_LEN 4 4239 #define MC_CMD_CSR_WRITE32_IN_BUFFER_OFST 8 4240 #define MC_CMD_CSR_WRITE32_IN_BUFFER_LEN 4 4241 #define MC_CMD_CSR_WRITE32_IN_BUFFER_MINNUM 1 4242 #define MC_CMD_CSR_WRITE32_IN_BUFFER_MAXNUM 61 4243 #define MC_CMD_CSR_WRITE32_IN_BUFFER_MAXNUM_MCDI2 253 4244 4245 /* MC_CMD_CSR_WRITE32_OUT msgresponse */ 4246 #define MC_CMD_CSR_WRITE32_OUT_LEN 4 4247 #define MC_CMD_CSR_WRITE32_OUT_STATUS_OFST 0 4248 #define MC_CMD_CSR_WRITE32_OUT_STATUS_LEN 4 4249 4250 4251 /***********************************/ 4252 /* MC_CMD_HP 4253 * These commands are used for HP related features. They are grouped under one 4254 * MCDI command to avoid creating too many MCDI commands. 4255 */ 4256 #define MC_CMD_HP 0x54 4257 #define MC_CMD_HP_MSGSET 0x54 4258 #undef MC_CMD_0x54_PRIVILEGE_CTG 4259 4260 #define MC_CMD_0x54_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 4261 4262 /* MC_CMD_HP_IN msgrequest */ 4263 #define MC_CMD_HP_IN_LEN 16 4264 /* HP OCSD sub-command. When address is not NULL, request activation of OCSD at 4265 * the specified address with the specified interval.When address is NULL, 4266 * INTERVAL is interpreted as a command: 0: stop OCSD / 1: Report OCSD current 4267 * state / 2: (debug) Show temperature reported by one of the supported 4268 * sensors. 4269 */ 4270 #define MC_CMD_HP_IN_SUBCMD_OFST 0 4271 #define MC_CMD_HP_IN_SUBCMD_LEN 4 4272 /* enum: OCSD (Option Card Sensor Data) sub-command. */ 4273 #define MC_CMD_HP_IN_OCSD_SUBCMD 0x0 4274 /* enum: Last known valid HP sub-command. */ 4275 #define MC_CMD_HP_IN_LAST_SUBCMD 0x0 4276 /* The address to the array of sensor fields. (Or NULL to use a sub-command.) 4277 */ 4278 #define MC_CMD_HP_IN_OCSD_ADDR_OFST 4 4279 #define MC_CMD_HP_IN_OCSD_ADDR_LEN 8 4280 #define MC_CMD_HP_IN_OCSD_ADDR_LO_OFST 4 4281 #define MC_CMD_HP_IN_OCSD_ADDR_LO_LEN 4 4282 #define MC_CMD_HP_IN_OCSD_ADDR_LO_LBN 32 4283 #define MC_CMD_HP_IN_OCSD_ADDR_LO_WIDTH 32 4284 #define MC_CMD_HP_IN_OCSD_ADDR_HI_OFST 8 4285 #define MC_CMD_HP_IN_OCSD_ADDR_HI_LEN 4 4286 #define MC_CMD_HP_IN_OCSD_ADDR_HI_LBN 64 4287 #define MC_CMD_HP_IN_OCSD_ADDR_HI_WIDTH 32 4288 /* The requested update interval, in seconds. (Or the sub-command if ADDR is 4289 * NULL.) 4290 */ 4291 #define MC_CMD_HP_IN_OCSD_INTERVAL_OFST 12 4292 #define MC_CMD_HP_IN_OCSD_INTERVAL_LEN 4 4293 4294 /* MC_CMD_HP_OUT msgresponse */ 4295 #define MC_CMD_HP_OUT_LEN 4 4296 #define MC_CMD_HP_OUT_OCSD_STATUS_OFST 0 4297 #define MC_CMD_HP_OUT_OCSD_STATUS_LEN 4 4298 /* enum: OCSD stopped for this card. */ 4299 #define MC_CMD_HP_OUT_OCSD_STOPPED 0x1 4300 /* enum: OCSD was successfully started with the address provided. */ 4301 #define MC_CMD_HP_OUT_OCSD_STARTED 0x2 4302 /* enum: OCSD was already started for this card. */ 4303 #define MC_CMD_HP_OUT_OCSD_ALREADY_STARTED 0x3 4304 4305 4306 /***********************************/ 4307 /* MC_CMD_STACKINFO 4308 * Get stack information. 4309 */ 4310 #define MC_CMD_STACKINFO 0xf 4311 #define MC_CMD_STACKINFO_MSGSET 0xf 4312 #undef MC_CMD_0xf_PRIVILEGE_CTG 4313 4314 #define MC_CMD_0xf_PRIVILEGE_CTG SRIOV_CTG_ADMIN 4315 4316 /* MC_CMD_STACKINFO_IN msgrequest */ 4317 #define MC_CMD_STACKINFO_IN_LEN 0 4318 4319 /* MC_CMD_STACKINFO_OUT msgresponse */ 4320 #define MC_CMD_STACKINFO_OUT_LENMIN 12 4321 #define MC_CMD_STACKINFO_OUT_LENMAX 252 4322 #define MC_CMD_STACKINFO_OUT_LENMAX_MCDI2 1020 4323 #define MC_CMD_STACKINFO_OUT_LEN(num) (0+12*(num)) 4324 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_NUM(len) (((len)-0)/12) 4325 /* (thread ptr, stack size, free space) for each thread in system */ 4326 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_OFST 0 4327 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_LEN 12 4328 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_MINNUM 1 4329 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_MAXNUM 21 4330 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_MAXNUM_MCDI2 85 4331 4332 4333 /***********************************/ 4334 /* MC_CMD_MDIO_READ 4335 * MDIO register read. 4336 */ 4337 #define MC_CMD_MDIO_READ 0x10 4338 #define MC_CMD_MDIO_READ_MSGSET 0x10 4339 #undef MC_CMD_0x10_PRIVILEGE_CTG 4340 4341 #define MC_CMD_0x10_PRIVILEGE_CTG SRIOV_CTG_GENERAL 4342 4343 /* MC_CMD_MDIO_READ_IN msgrequest */ 4344 #define MC_CMD_MDIO_READ_IN_LEN 16 4345 /* Bus number; there are two MDIO buses: one for the internal PHY, and one for 4346 * external devices. 4347 */ 4348 #define MC_CMD_MDIO_READ_IN_BUS_OFST 0 4349 #define MC_CMD_MDIO_READ_IN_BUS_LEN 4 4350 /* enum: Internal. */ 4351 #define MC_CMD_MDIO_BUS_INTERNAL 0x0 4352 /* enum: External. */ 4353 #define MC_CMD_MDIO_BUS_EXTERNAL 0x1 4354 /* Port address */ 4355 #define MC_CMD_MDIO_READ_IN_PRTAD_OFST 4 4356 #define MC_CMD_MDIO_READ_IN_PRTAD_LEN 4 4357 /* Device Address or clause 22. */ 4358 #define MC_CMD_MDIO_READ_IN_DEVAD_OFST 8 4359 #define MC_CMD_MDIO_READ_IN_DEVAD_LEN 4 4360 /* enum: By default all the MCDI MDIO operations perform clause45 mode. If you 4361 * want to use clause22 then set DEVAD = MC_CMD_MDIO_CLAUSE22. 4362 */ 4363 #define MC_CMD_MDIO_CLAUSE22 0x20 4364 /* Address */ 4365 #define MC_CMD_MDIO_READ_IN_ADDR_OFST 12 4366 #define MC_CMD_MDIO_READ_IN_ADDR_LEN 4 4367 4368 /* MC_CMD_MDIO_READ_OUT msgresponse */ 4369 #define MC_CMD_MDIO_READ_OUT_LEN 8 4370 /* Value */ 4371 #define MC_CMD_MDIO_READ_OUT_VALUE_OFST 0 4372 #define MC_CMD_MDIO_READ_OUT_VALUE_LEN 4 4373 /* Status the MDIO commands return the raw status bits from the MDIO block. A 4374 * "good" transaction should have the DONE bit set and all other bits clear. 4375 */ 4376 #define MC_CMD_MDIO_READ_OUT_STATUS_OFST 4 4377 #define MC_CMD_MDIO_READ_OUT_STATUS_LEN 4 4378 /* enum: Good. */ 4379 #define MC_CMD_MDIO_STATUS_GOOD 0x8 4380 4381 4382 /***********************************/ 4383 /* MC_CMD_MDIO_WRITE 4384 * MDIO register write. 4385 */ 4386 #define MC_CMD_MDIO_WRITE 0x11 4387 #define MC_CMD_MDIO_WRITE_MSGSET 0x11 4388 #undef MC_CMD_0x11_PRIVILEGE_CTG 4389 4390 #define MC_CMD_0x11_PRIVILEGE_CTG SRIOV_CTG_ADMIN 4391 4392 /* MC_CMD_MDIO_WRITE_IN msgrequest */ 4393 #define MC_CMD_MDIO_WRITE_IN_LEN 20 4394 /* Bus number; there are two MDIO buses: one for the internal PHY, and one for 4395 * external devices. 4396 */ 4397 #define MC_CMD_MDIO_WRITE_IN_BUS_OFST 0 4398 #define MC_CMD_MDIO_WRITE_IN_BUS_LEN 4 4399 /* enum: Internal. */ 4400 /* MC_CMD_MDIO_BUS_INTERNAL 0x0 */ 4401 /* enum: External. */ 4402 /* MC_CMD_MDIO_BUS_EXTERNAL 0x1 */ 4403 /* Port address */ 4404 #define MC_CMD_MDIO_WRITE_IN_PRTAD_OFST 4 4405 #define MC_CMD_MDIO_WRITE_IN_PRTAD_LEN 4 4406 /* Device Address or clause 22. */ 4407 #define MC_CMD_MDIO_WRITE_IN_DEVAD_OFST 8 4408 #define MC_CMD_MDIO_WRITE_IN_DEVAD_LEN 4 4409 /* enum: By default all the MCDI MDIO operations perform clause45 mode. If you 4410 * want to use clause22 then set DEVAD = MC_CMD_MDIO_CLAUSE22. 4411 */ 4412 /* MC_CMD_MDIO_CLAUSE22 0x20 */ 4413 /* Address */ 4414 #define MC_CMD_MDIO_WRITE_IN_ADDR_OFST 12 4415 #define MC_CMD_MDIO_WRITE_IN_ADDR_LEN 4 4416 /* Value */ 4417 #define MC_CMD_MDIO_WRITE_IN_VALUE_OFST 16 4418 #define MC_CMD_MDIO_WRITE_IN_VALUE_LEN 4 4419 4420 /* MC_CMD_MDIO_WRITE_OUT msgresponse */ 4421 #define MC_CMD_MDIO_WRITE_OUT_LEN 4 4422 /* Status; the MDIO commands return the raw status bits from the MDIO block. A 4423 * "good" transaction should have the DONE bit set and all other bits clear. 4424 */ 4425 #define MC_CMD_MDIO_WRITE_OUT_STATUS_OFST 0 4426 #define MC_CMD_MDIO_WRITE_OUT_STATUS_LEN 4 4427 /* enum: Good. */ 4428 /* MC_CMD_MDIO_STATUS_GOOD 0x8 */ 4429 4430 4431 /***********************************/ 4432 /* MC_CMD_DBI_WRITE 4433 * Write DBI register(s). 4434 */ 4435 #define MC_CMD_DBI_WRITE 0x12 4436 #define MC_CMD_DBI_WRITE_MSGSET 0x12 4437 #undef MC_CMD_0x12_PRIVILEGE_CTG 4438 4439 #define MC_CMD_0x12_PRIVILEGE_CTG SRIOV_CTG_INSECURE 4440 4441 /* MC_CMD_DBI_WRITE_IN msgrequest */ 4442 #define MC_CMD_DBI_WRITE_IN_LENMIN 12 4443 #define MC_CMD_DBI_WRITE_IN_LENMAX 252 4444 #define MC_CMD_DBI_WRITE_IN_LENMAX_MCDI2 1020 4445 #define MC_CMD_DBI_WRITE_IN_LEN(num) (0+12*(num)) 4446 #define MC_CMD_DBI_WRITE_IN_DBIWROP_NUM(len) (((len)-0)/12) 4447 /* Each write op consists of an address (offset 0), byte enable/VF/CS2 (offset 4448 * 32) and value (offset 64). See MC_CMD_DBIWROP_TYPEDEF. 4449 */ 4450 #define MC_CMD_DBI_WRITE_IN_DBIWROP_OFST 0 4451 #define MC_CMD_DBI_WRITE_IN_DBIWROP_LEN 12 4452 #define MC_CMD_DBI_WRITE_IN_DBIWROP_MINNUM 1 4453 #define MC_CMD_DBI_WRITE_IN_DBIWROP_MAXNUM 21 4454 #define MC_CMD_DBI_WRITE_IN_DBIWROP_MAXNUM_MCDI2 85 4455 4456 /* MC_CMD_DBI_WRITE_OUT msgresponse */ 4457 #define MC_CMD_DBI_WRITE_OUT_LEN 0 4458 4459 /* MC_CMD_DBIWROP_TYPEDEF structuredef */ 4460 #define MC_CMD_DBIWROP_TYPEDEF_LEN 12 4461 #define MC_CMD_DBIWROP_TYPEDEF_ADDRESS_OFST 0 4462 #define MC_CMD_DBIWROP_TYPEDEF_ADDRESS_LEN 4 4463 #define MC_CMD_DBIWROP_TYPEDEF_ADDRESS_LBN 0 4464 #define MC_CMD_DBIWROP_TYPEDEF_ADDRESS_WIDTH 32 4465 #define MC_CMD_DBIWROP_TYPEDEF_PARMS_OFST 4 4466 #define MC_CMD_DBIWROP_TYPEDEF_PARMS_LEN 4 4467 #define MC_CMD_DBIWROP_TYPEDEF_VF_NUM_OFST 4 4468 #define MC_CMD_DBIWROP_TYPEDEF_VF_NUM_LBN 16 4469 #define MC_CMD_DBIWROP_TYPEDEF_VF_NUM_WIDTH 16 4470 #define MC_CMD_DBIWROP_TYPEDEF_VF_ACTIVE_OFST 4 4471 #define MC_CMD_DBIWROP_TYPEDEF_VF_ACTIVE_LBN 15 4472 #define MC_CMD_DBIWROP_TYPEDEF_VF_ACTIVE_WIDTH 1 4473 #define MC_CMD_DBIWROP_TYPEDEF_CS2_OFST 4 4474 #define MC_CMD_DBIWROP_TYPEDEF_CS2_LBN 14 4475 #define MC_CMD_DBIWROP_TYPEDEF_CS2_WIDTH 1 4476 #define MC_CMD_DBIWROP_TYPEDEF_PARMS_LBN 32 4477 #define MC_CMD_DBIWROP_TYPEDEF_PARMS_WIDTH 32 4478 #define MC_CMD_DBIWROP_TYPEDEF_VALUE_OFST 8 4479 #define MC_CMD_DBIWROP_TYPEDEF_VALUE_LEN 4 4480 #define MC_CMD_DBIWROP_TYPEDEF_VALUE_LBN 64 4481 #define MC_CMD_DBIWROP_TYPEDEF_VALUE_WIDTH 32 4482 4483 4484 /***********************************/ 4485 /* MC_CMD_PORT_READ32 4486 * Read a 32-bit register from the indirect port register map. The port to 4487 * access is implied by the Shared memory channel used. 4488 */ 4489 #define MC_CMD_PORT_READ32 0x14 4490 #define MC_CMD_PORT_READ32_MSGSET 0x14 4491 4492 /* MC_CMD_PORT_READ32_IN msgrequest */ 4493 #define MC_CMD_PORT_READ32_IN_LEN 4 4494 /* Address */ 4495 #define MC_CMD_PORT_READ32_IN_ADDR_OFST 0 4496 #define MC_CMD_PORT_READ32_IN_ADDR_LEN 4 4497 4498 /* MC_CMD_PORT_READ32_OUT msgresponse */ 4499 #define MC_CMD_PORT_READ32_OUT_LEN 8 4500 /* Value */ 4501 #define MC_CMD_PORT_READ32_OUT_VALUE_OFST 0 4502 #define MC_CMD_PORT_READ32_OUT_VALUE_LEN 4 4503 /* Status */ 4504 #define MC_CMD_PORT_READ32_OUT_STATUS_OFST 4 4505 #define MC_CMD_PORT_READ32_OUT_STATUS_LEN 4 4506 4507 4508 /***********************************/ 4509 /* MC_CMD_PORT_WRITE32 4510 * Write a 32-bit register to the indirect port register map. The port to 4511 * access is implied by the Shared memory channel used. 4512 */ 4513 #define MC_CMD_PORT_WRITE32 0x15 4514 #define MC_CMD_PORT_WRITE32_MSGSET 0x15 4515 4516 /* MC_CMD_PORT_WRITE32_IN msgrequest */ 4517 #define MC_CMD_PORT_WRITE32_IN_LEN 8 4518 /* Address */ 4519 #define MC_CMD_PORT_WRITE32_IN_ADDR_OFST 0 4520 #define MC_CMD_PORT_WRITE32_IN_ADDR_LEN 4 4521 /* Value */ 4522 #define MC_CMD_PORT_WRITE32_IN_VALUE_OFST 4 4523 #define MC_CMD_PORT_WRITE32_IN_VALUE_LEN 4 4524 4525 /* MC_CMD_PORT_WRITE32_OUT msgresponse */ 4526 #define MC_CMD_PORT_WRITE32_OUT_LEN 4 4527 /* Status */ 4528 #define MC_CMD_PORT_WRITE32_OUT_STATUS_OFST 0 4529 #define MC_CMD_PORT_WRITE32_OUT_STATUS_LEN 4 4530 4531 4532 /***********************************/ 4533 /* MC_CMD_PORT_READ128 4534 * Read a 128-bit register from the indirect port register map. The port to 4535 * access is implied by the Shared memory channel used. 4536 */ 4537 #define MC_CMD_PORT_READ128 0x16 4538 #define MC_CMD_PORT_READ128_MSGSET 0x16 4539 4540 /* MC_CMD_PORT_READ128_IN msgrequest */ 4541 #define MC_CMD_PORT_READ128_IN_LEN 4 4542 /* Address */ 4543 #define MC_CMD_PORT_READ128_IN_ADDR_OFST 0 4544 #define MC_CMD_PORT_READ128_IN_ADDR_LEN 4 4545 4546 /* MC_CMD_PORT_READ128_OUT msgresponse */ 4547 #define MC_CMD_PORT_READ128_OUT_LEN 20 4548 /* Value */ 4549 #define MC_CMD_PORT_READ128_OUT_VALUE_OFST 0 4550 #define MC_CMD_PORT_READ128_OUT_VALUE_LEN 16 4551 /* Status */ 4552 #define MC_CMD_PORT_READ128_OUT_STATUS_OFST 16 4553 #define MC_CMD_PORT_READ128_OUT_STATUS_LEN 4 4554 4555 4556 /***********************************/ 4557 /* MC_CMD_PORT_WRITE128 4558 * Write a 128-bit register to the indirect port register map. The port to 4559 * access is implied by the Shared memory channel used. 4560 */ 4561 #define MC_CMD_PORT_WRITE128 0x17 4562 #define MC_CMD_PORT_WRITE128_MSGSET 0x17 4563 4564 /* MC_CMD_PORT_WRITE128_IN msgrequest */ 4565 #define MC_CMD_PORT_WRITE128_IN_LEN 20 4566 /* Address */ 4567 #define MC_CMD_PORT_WRITE128_IN_ADDR_OFST 0 4568 #define MC_CMD_PORT_WRITE128_IN_ADDR_LEN 4 4569 /* Value */ 4570 #define MC_CMD_PORT_WRITE128_IN_VALUE_OFST 4 4571 #define MC_CMD_PORT_WRITE128_IN_VALUE_LEN 16 4572 4573 /* MC_CMD_PORT_WRITE128_OUT msgresponse */ 4574 #define MC_CMD_PORT_WRITE128_OUT_LEN 4 4575 /* Status */ 4576 #define MC_CMD_PORT_WRITE128_OUT_STATUS_OFST 0 4577 #define MC_CMD_PORT_WRITE128_OUT_STATUS_LEN 4 4578 4579 /* MC_CMD_CAPABILITIES structuredef */ 4580 #define MC_CMD_CAPABILITIES_LEN 4 4581 /* Small buf table. */ 4582 #define MC_CMD_CAPABILITIES_SMALL_BUF_TBL_LBN 0 4583 #define MC_CMD_CAPABILITIES_SMALL_BUF_TBL_WIDTH 1 4584 /* Turbo mode (for Maranello). */ 4585 #define MC_CMD_CAPABILITIES_TURBO_LBN 1 4586 #define MC_CMD_CAPABILITIES_TURBO_WIDTH 1 4587 /* Turbo mode active (for Maranello). */ 4588 #define MC_CMD_CAPABILITIES_TURBO_ACTIVE_LBN 2 4589 #define MC_CMD_CAPABILITIES_TURBO_ACTIVE_WIDTH 1 4590 /* PTP offload. */ 4591 #define MC_CMD_CAPABILITIES_PTP_LBN 3 4592 #define MC_CMD_CAPABILITIES_PTP_WIDTH 1 4593 /* AOE mode. */ 4594 #define MC_CMD_CAPABILITIES_AOE_LBN 4 4595 #define MC_CMD_CAPABILITIES_AOE_WIDTH 1 4596 /* AOE mode active. */ 4597 #define MC_CMD_CAPABILITIES_AOE_ACTIVE_LBN 5 4598 #define MC_CMD_CAPABILITIES_AOE_ACTIVE_WIDTH 1 4599 /* AOE mode active. */ 4600 #define MC_CMD_CAPABILITIES_FC_ACTIVE_LBN 6 4601 #define MC_CMD_CAPABILITIES_FC_ACTIVE_WIDTH 1 4602 #define MC_CMD_CAPABILITIES_RESERVED_LBN 7 4603 #define MC_CMD_CAPABILITIES_RESERVED_WIDTH 25 4604 4605 4606 /***********************************/ 4607 /* MC_CMD_GET_BOARD_CFG 4608 * Returns the MC firmware configuration structure. 4609 */ 4610 #define MC_CMD_GET_BOARD_CFG 0x18 4611 #define MC_CMD_GET_BOARD_CFG_MSGSET 0x18 4612 #undef MC_CMD_0x18_PRIVILEGE_CTG 4613 4614 #define MC_CMD_0x18_PRIVILEGE_CTG SRIOV_CTG_GENERAL 4615 4616 /* MC_CMD_GET_BOARD_CFG_IN msgrequest */ 4617 #define MC_CMD_GET_BOARD_CFG_IN_LEN 0 4618 4619 /* MC_CMD_GET_BOARD_CFG_OUT msgresponse */ 4620 #define MC_CMD_GET_BOARD_CFG_OUT_LENMIN 96 4621 #define MC_CMD_GET_BOARD_CFG_OUT_LENMAX 136 4622 #define MC_CMD_GET_BOARD_CFG_OUT_LENMAX_MCDI2 136 4623 #define MC_CMD_GET_BOARD_CFG_OUT_LEN(num) (72+2*(num)) 4624 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_NUM(len) (((len)-72)/2) 4625 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_TYPE_OFST 0 4626 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_TYPE_LEN 4 4627 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_NAME_OFST 4 4628 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_NAME_LEN 32 4629 /* Capabilities for Siena Port0 (see struct MC_CMD_CAPABILITIES). Unused on 4630 * EF10 and later (use MC_CMD_GET_CAPABILITIES). 4631 */ 4632 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT0_OFST 36 4633 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT0_LEN 4 4634 /* Capabilities for Siena Port1 (see struct MC_CMD_CAPABILITIES). Unused on 4635 * EF10 and later (use MC_CMD_GET_CAPABILITIES). 4636 */ 4637 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT1_OFST 40 4638 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT1_LEN 4 4639 /* Base MAC address for Siena Port0. Unused on EF10 and later (use 4640 * MC_CMD_GET_MAC_ADDRESSES). 4641 */ 4642 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT0_OFST 44 4643 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT0_LEN 6 4644 /* Base MAC address for Siena Port1. Unused on EF10 and later (use 4645 * MC_CMD_GET_MAC_ADDRESSES). 4646 */ 4647 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT1_OFST 50 4648 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT1_LEN 6 4649 /* Size of MAC address pool for Siena Port0. Unused on EF10 and later (use 4650 * MC_CMD_GET_MAC_ADDRESSES). 4651 */ 4652 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT0_OFST 56 4653 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT0_LEN 4 4654 /* Size of MAC address pool for Siena Port1. Unused on EF10 and later (use 4655 * MC_CMD_GET_MAC_ADDRESSES). 4656 */ 4657 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT1_OFST 60 4658 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT1_LEN 4 4659 /* Increment between addresses in MAC address pool for Siena Port0. Unused on 4660 * EF10 and later (use MC_CMD_GET_MAC_ADDRESSES). 4661 */ 4662 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT0_OFST 64 4663 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT0_LEN 4 4664 /* Increment between addresses in MAC address pool for Siena Port1. Unused on 4665 * EF10 and later (use MC_CMD_GET_MAC_ADDRESSES). 4666 */ 4667 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT1_OFST 68 4668 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT1_LEN 4 4669 /* Siena only. This field contains a 16-bit value for each of the types of 4670 * NVRAM area. The values are defined in the firmware/mc/platform/.c file for a 4671 * specific board type, but otherwise have no meaning to the MC; they are used 4672 * by the driver to manage selection of appropriate firmware updates. Unused on 4673 * EF10 and later (use MC_CMD_NVRAM_METADATA). 4674 */ 4675 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_OFST 72 4676 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_LEN 2 4677 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_MINNUM 12 4678 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_MAXNUM 32 4679 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_MAXNUM_MCDI2 32 4680 4681 4682 /***********************************/ 4683 /* MC_CMD_DBI_READX 4684 * Read DBI register(s) -- extended functionality 4685 */ 4686 #define MC_CMD_DBI_READX 0x19 4687 #define MC_CMD_DBI_READX_MSGSET 0x19 4688 #undef MC_CMD_0x19_PRIVILEGE_CTG 4689 4690 #define MC_CMD_0x19_PRIVILEGE_CTG SRIOV_CTG_INSECURE 4691 4692 /* MC_CMD_DBI_READX_IN msgrequest */ 4693 #define MC_CMD_DBI_READX_IN_LENMIN 8 4694 #define MC_CMD_DBI_READX_IN_LENMAX 248 4695 #define MC_CMD_DBI_READX_IN_LENMAX_MCDI2 1016 4696 #define MC_CMD_DBI_READX_IN_LEN(num) (0+8*(num)) 4697 #define MC_CMD_DBI_READX_IN_DBIRDOP_NUM(len) (((len)-0)/8) 4698 /* Each Read op consists of an address (offset 0), VF/CS2) */ 4699 #define MC_CMD_DBI_READX_IN_DBIRDOP_OFST 0 4700 #define MC_CMD_DBI_READX_IN_DBIRDOP_LEN 8 4701 #define MC_CMD_DBI_READX_IN_DBIRDOP_LO_OFST 0 4702 #define MC_CMD_DBI_READX_IN_DBIRDOP_LO_LEN 4 4703 #define MC_CMD_DBI_READX_IN_DBIRDOP_LO_LBN 0 4704 #define MC_CMD_DBI_READX_IN_DBIRDOP_LO_WIDTH 32 4705 #define MC_CMD_DBI_READX_IN_DBIRDOP_HI_OFST 4 4706 #define MC_CMD_DBI_READX_IN_DBIRDOP_HI_LEN 4 4707 #define MC_CMD_DBI_READX_IN_DBIRDOP_HI_LBN 32 4708 #define MC_CMD_DBI_READX_IN_DBIRDOP_HI_WIDTH 32 4709 #define MC_CMD_DBI_READX_IN_DBIRDOP_MINNUM 1 4710 #define MC_CMD_DBI_READX_IN_DBIRDOP_MAXNUM 31 4711 #define MC_CMD_DBI_READX_IN_DBIRDOP_MAXNUM_MCDI2 127 4712 4713 /* MC_CMD_DBI_READX_OUT msgresponse */ 4714 #define MC_CMD_DBI_READX_OUT_LENMIN 4 4715 #define MC_CMD_DBI_READX_OUT_LENMAX 252 4716 #define MC_CMD_DBI_READX_OUT_LENMAX_MCDI2 1020 4717 #define MC_CMD_DBI_READX_OUT_LEN(num) (0+4*(num)) 4718 #define MC_CMD_DBI_READX_OUT_VALUE_NUM(len) (((len)-0)/4) 4719 /* Value */ 4720 #define MC_CMD_DBI_READX_OUT_VALUE_OFST 0 4721 #define MC_CMD_DBI_READX_OUT_VALUE_LEN 4 4722 #define MC_CMD_DBI_READX_OUT_VALUE_MINNUM 1 4723 #define MC_CMD_DBI_READX_OUT_VALUE_MAXNUM 63 4724 #define MC_CMD_DBI_READX_OUT_VALUE_MAXNUM_MCDI2 255 4725 4726 /* MC_CMD_DBIRDOP_TYPEDEF structuredef */ 4727 #define MC_CMD_DBIRDOP_TYPEDEF_LEN 8 4728 #define MC_CMD_DBIRDOP_TYPEDEF_ADDRESS_OFST 0 4729 #define MC_CMD_DBIRDOP_TYPEDEF_ADDRESS_LEN 4 4730 #define MC_CMD_DBIRDOP_TYPEDEF_ADDRESS_LBN 0 4731 #define MC_CMD_DBIRDOP_TYPEDEF_ADDRESS_WIDTH 32 4732 #define MC_CMD_DBIRDOP_TYPEDEF_PARMS_OFST 4 4733 #define MC_CMD_DBIRDOP_TYPEDEF_PARMS_LEN 4 4734 #define MC_CMD_DBIRDOP_TYPEDEF_VF_NUM_OFST 4 4735 #define MC_CMD_DBIRDOP_TYPEDEF_VF_NUM_LBN 16 4736 #define MC_CMD_DBIRDOP_TYPEDEF_VF_NUM_WIDTH 16 4737 #define MC_CMD_DBIRDOP_TYPEDEF_VF_ACTIVE_OFST 4 4738 #define MC_CMD_DBIRDOP_TYPEDEF_VF_ACTIVE_LBN 15 4739 #define MC_CMD_DBIRDOP_TYPEDEF_VF_ACTIVE_WIDTH 1 4740 #define MC_CMD_DBIRDOP_TYPEDEF_CS2_OFST 4 4741 #define MC_CMD_DBIRDOP_TYPEDEF_CS2_LBN 14 4742 #define MC_CMD_DBIRDOP_TYPEDEF_CS2_WIDTH 1 4743 #define MC_CMD_DBIRDOP_TYPEDEF_PARMS_LBN 32 4744 #define MC_CMD_DBIRDOP_TYPEDEF_PARMS_WIDTH 32 4745 4746 4747 /***********************************/ 4748 /* MC_CMD_SET_RAND_SEED 4749 * Set the 16byte seed for the MC pseudo-random generator. 4750 */ 4751 #define MC_CMD_SET_RAND_SEED 0x1a 4752 #define MC_CMD_SET_RAND_SEED_MSGSET 0x1a 4753 #undef MC_CMD_0x1a_PRIVILEGE_CTG 4754 4755 #define MC_CMD_0x1a_PRIVILEGE_CTG SRIOV_CTG_INSECURE 4756 4757 /* MC_CMD_SET_RAND_SEED_IN msgrequest */ 4758 #define MC_CMD_SET_RAND_SEED_IN_LEN 16 4759 /* Seed value. */ 4760 #define MC_CMD_SET_RAND_SEED_IN_SEED_OFST 0 4761 #define MC_CMD_SET_RAND_SEED_IN_SEED_LEN 16 4762 4763 /* MC_CMD_SET_RAND_SEED_OUT msgresponse */ 4764 #define MC_CMD_SET_RAND_SEED_OUT_LEN 0 4765 4766 4767 /***********************************/ 4768 /* MC_CMD_LTSSM_HIST 4769 * Retrieve the history of the LTSSM, if the build supports it. 4770 */ 4771 #define MC_CMD_LTSSM_HIST 0x1b 4772 #define MC_CMD_LTSSM_HIST_MSGSET 0x1b 4773 4774 /* MC_CMD_LTSSM_HIST_IN msgrequest */ 4775 #define MC_CMD_LTSSM_HIST_IN_LEN 0 4776 4777 /* MC_CMD_LTSSM_HIST_OUT msgresponse */ 4778 #define MC_CMD_LTSSM_HIST_OUT_LENMIN 0 4779 #define MC_CMD_LTSSM_HIST_OUT_LENMAX 252 4780 #define MC_CMD_LTSSM_HIST_OUT_LENMAX_MCDI2 1020 4781 #define MC_CMD_LTSSM_HIST_OUT_LEN(num) (0+4*(num)) 4782 #define MC_CMD_LTSSM_HIST_OUT_DATA_NUM(len) (((len)-0)/4) 4783 /* variable number of LTSSM values, as bytes. The history is read-to-clear. */ 4784 #define MC_CMD_LTSSM_HIST_OUT_DATA_OFST 0 4785 #define MC_CMD_LTSSM_HIST_OUT_DATA_LEN 4 4786 #define MC_CMD_LTSSM_HIST_OUT_DATA_MINNUM 0 4787 #define MC_CMD_LTSSM_HIST_OUT_DATA_MAXNUM 63 4788 #define MC_CMD_LTSSM_HIST_OUT_DATA_MAXNUM_MCDI2 255 4789 4790 4791 /***********************************/ 4792 /* MC_CMD_DRV_ATTACH 4793 * Inform MCPU that this port is managed on the host (i.e. driver active). For 4794 * Huntington, also request the preferred datapath firmware to use if possible 4795 * (it may not be possible for this request to be fulfilled; the driver must 4796 * issue a subsequent MC_CMD_GET_CAPABILITIES command to determine which 4797 * features are actually available). The FIRMWARE_ID field is ignored by older 4798 * platforms. 4799 */ 4800 #define MC_CMD_DRV_ATTACH 0x1c 4801 #define MC_CMD_DRV_ATTACH_MSGSET 0x1c 4802 #undef MC_CMD_0x1c_PRIVILEGE_CTG 4803 4804 #define MC_CMD_0x1c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 4805 4806 /* MC_CMD_DRV_ATTACH_IN msgrequest */ 4807 #define MC_CMD_DRV_ATTACH_IN_LEN 12 4808 /* new state to set if UPDATE=1 */ 4809 #define MC_CMD_DRV_ATTACH_IN_NEW_STATE_OFST 0 4810 #define MC_CMD_DRV_ATTACH_IN_NEW_STATE_LEN 4 4811 #define MC_CMD_DRV_ATTACH_OFST 0 4812 #define MC_CMD_DRV_ATTACH_LBN 0 4813 #define MC_CMD_DRV_ATTACH_WIDTH 1 4814 #define MC_CMD_DRV_ATTACH_IN_ATTACH_OFST 0 4815 #define MC_CMD_DRV_ATTACH_IN_ATTACH_LBN 0 4816 #define MC_CMD_DRV_ATTACH_IN_ATTACH_WIDTH 1 4817 #define MC_CMD_DRV_PREBOOT_OFST 0 4818 #define MC_CMD_DRV_PREBOOT_LBN 1 4819 #define MC_CMD_DRV_PREBOOT_WIDTH 1 4820 #define MC_CMD_DRV_ATTACH_IN_PREBOOT_OFST 0 4821 #define MC_CMD_DRV_ATTACH_IN_PREBOOT_LBN 1 4822 #define MC_CMD_DRV_ATTACH_IN_PREBOOT_WIDTH 1 4823 #define MC_CMD_DRV_ATTACH_IN_SUBVARIANT_AWARE_OFST 0 4824 #define MC_CMD_DRV_ATTACH_IN_SUBVARIANT_AWARE_LBN 2 4825 #define MC_CMD_DRV_ATTACH_IN_SUBVARIANT_AWARE_WIDTH 1 4826 #define MC_CMD_DRV_ATTACH_IN_WANT_VI_SPREADING_OFST 0 4827 #define MC_CMD_DRV_ATTACH_IN_WANT_VI_SPREADING_LBN 3 4828 #define MC_CMD_DRV_ATTACH_IN_WANT_VI_SPREADING_WIDTH 1 4829 #define MC_CMD_DRV_ATTACH_IN_WANT_V2_LINKCHANGES_OFST 0 4830 #define MC_CMD_DRV_ATTACH_IN_WANT_V2_LINKCHANGES_LBN 4 4831 #define MC_CMD_DRV_ATTACH_IN_WANT_V2_LINKCHANGES_WIDTH 1 4832 #define MC_CMD_DRV_ATTACH_IN_WANT_RX_VI_SPREADING_INHIBIT_OFST 0 4833 #define MC_CMD_DRV_ATTACH_IN_WANT_RX_VI_SPREADING_INHIBIT_LBN 5 4834 #define MC_CMD_DRV_ATTACH_IN_WANT_RX_VI_SPREADING_INHIBIT_WIDTH 1 4835 #define MC_CMD_DRV_ATTACH_IN_WANT_TX_ONLY_SPREADING_OFST 0 4836 #define MC_CMD_DRV_ATTACH_IN_WANT_TX_ONLY_SPREADING_LBN 5 4837 #define MC_CMD_DRV_ATTACH_IN_WANT_TX_ONLY_SPREADING_WIDTH 1 4838 /* 1 to set new state, or 0 to just report the existing state */ 4839 #define MC_CMD_DRV_ATTACH_IN_UPDATE_OFST 4 4840 #define MC_CMD_DRV_ATTACH_IN_UPDATE_LEN 4 4841 /* preferred datapath firmware (for Huntington; ignored for Siena) */ 4842 #define MC_CMD_DRV_ATTACH_IN_FIRMWARE_ID_OFST 8 4843 #define MC_CMD_DRV_ATTACH_IN_FIRMWARE_ID_LEN 4 4844 /* enum: Prefer to use full featured firmware */ 4845 #define MC_CMD_FW_FULL_FEATURED 0x0 4846 /* enum: Prefer to use firmware with fewer features but lower latency */ 4847 #define MC_CMD_FW_LOW_LATENCY 0x1 4848 /* enum: Prefer to use firmware for SolarCapture packed stream mode */ 4849 #define MC_CMD_FW_PACKED_STREAM 0x2 4850 /* enum: Prefer to use firmware with fewer features and simpler TX event 4851 * batching but higher TX packet rate 4852 */ 4853 #define MC_CMD_FW_HIGH_TX_RATE 0x3 4854 /* enum: Reserved value */ 4855 #define MC_CMD_FW_PACKED_STREAM_HASH_MODE_1 0x4 4856 /* enum: Prefer to use firmware with additional "rules engine" filtering 4857 * support 4858 */ 4859 #define MC_CMD_FW_RULES_ENGINE 0x5 4860 /* enum: Prefer to use firmware with additional DPDK support */ 4861 #define MC_CMD_FW_DPDK 0x6 4862 /* enum: Prefer to use "l3xudp" custom datapath firmware (see SF-119495-PD and 4863 * bug69716) 4864 */ 4865 #define MC_CMD_FW_L3XUDP 0x7 4866 /* enum: Requests that the MC keep whatever datapath firmware is currently 4867 * running. It's used for test purposes, where we want to be able to shmboot 4868 * special test firmware variants. This option is only recognised in eftest 4869 * (i.e. non-production) builds. 4870 */ 4871 #define MC_CMD_FW_KEEP_CURRENT_EFTEST_ONLY 0xfffffffe 4872 /* enum: Only this option is allowed for non-admin functions */ 4873 #define MC_CMD_FW_DONT_CARE 0xffffffff 4874 4875 /* MC_CMD_DRV_ATTACH_IN_V2 msgrequest: Updated DRV_ATTACH to include driver 4876 * version 4877 */ 4878 #define MC_CMD_DRV_ATTACH_IN_V2_LEN 32 4879 /* new state to set if UPDATE=1 */ 4880 #define MC_CMD_DRV_ATTACH_IN_V2_NEW_STATE_OFST 0 4881 #define MC_CMD_DRV_ATTACH_IN_V2_NEW_STATE_LEN 4 4882 /* MC_CMD_DRV_ATTACH_OFST 0 */ 4883 /* MC_CMD_DRV_ATTACH_LBN 0 */ 4884 /* MC_CMD_DRV_ATTACH_WIDTH 1 */ 4885 #define MC_CMD_DRV_ATTACH_IN_V2_ATTACH_OFST 0 4886 #define MC_CMD_DRV_ATTACH_IN_V2_ATTACH_LBN 0 4887 #define MC_CMD_DRV_ATTACH_IN_V2_ATTACH_WIDTH 1 4888 /* MC_CMD_DRV_PREBOOT_OFST 0 */ 4889 /* MC_CMD_DRV_PREBOOT_LBN 1 */ 4890 /* MC_CMD_DRV_PREBOOT_WIDTH 1 */ 4891 #define MC_CMD_DRV_ATTACH_IN_V2_PREBOOT_OFST 0 4892 #define MC_CMD_DRV_ATTACH_IN_V2_PREBOOT_LBN 1 4893 #define MC_CMD_DRV_ATTACH_IN_V2_PREBOOT_WIDTH 1 4894 #define MC_CMD_DRV_ATTACH_IN_V2_SUBVARIANT_AWARE_OFST 0 4895 #define MC_CMD_DRV_ATTACH_IN_V2_SUBVARIANT_AWARE_LBN 2 4896 #define MC_CMD_DRV_ATTACH_IN_V2_SUBVARIANT_AWARE_WIDTH 1 4897 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_VI_SPREADING_OFST 0 4898 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_VI_SPREADING_LBN 3 4899 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_VI_SPREADING_WIDTH 1 4900 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_V2_LINKCHANGES_OFST 0 4901 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_V2_LINKCHANGES_LBN 4 4902 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_V2_LINKCHANGES_WIDTH 1 4903 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_RX_VI_SPREADING_INHIBIT_OFST 0 4904 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_RX_VI_SPREADING_INHIBIT_LBN 5 4905 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_RX_VI_SPREADING_INHIBIT_WIDTH 1 4906 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_TX_ONLY_SPREADING_OFST 0 4907 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_TX_ONLY_SPREADING_LBN 5 4908 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_TX_ONLY_SPREADING_WIDTH 1 4909 /* 1 to set new state, or 0 to just report the existing state */ 4910 #define MC_CMD_DRV_ATTACH_IN_V2_UPDATE_OFST 4 4911 #define MC_CMD_DRV_ATTACH_IN_V2_UPDATE_LEN 4 4912 /* preferred datapath firmware (for Huntington; ignored for Siena) */ 4913 #define MC_CMD_DRV_ATTACH_IN_V2_FIRMWARE_ID_OFST 8 4914 #define MC_CMD_DRV_ATTACH_IN_V2_FIRMWARE_ID_LEN 4 4915 /* enum: Prefer to use full featured firmware */ 4916 /* MC_CMD_FW_FULL_FEATURED 0x0 */ 4917 /* enum: Prefer to use firmware with fewer features but lower latency */ 4918 /* MC_CMD_FW_LOW_LATENCY 0x1 */ 4919 /* enum: Prefer to use firmware for SolarCapture packed stream mode */ 4920 /* MC_CMD_FW_PACKED_STREAM 0x2 */ 4921 /* enum: Prefer to use firmware with fewer features and simpler TX event 4922 * batching but higher TX packet rate 4923 */ 4924 /* MC_CMD_FW_HIGH_TX_RATE 0x3 */ 4925 /* enum: Reserved value */ 4926 /* MC_CMD_FW_PACKED_STREAM_HASH_MODE_1 0x4 */ 4927 /* enum: Prefer to use firmware with additional "rules engine" filtering 4928 * support 4929 */ 4930 /* MC_CMD_FW_RULES_ENGINE 0x5 */ 4931 /* enum: Prefer to use firmware with additional DPDK support */ 4932 /* MC_CMD_FW_DPDK 0x6 */ 4933 /* enum: Prefer to use "l3xudp" custom datapath firmware (see SF-119495-PD and 4934 * bug69716) 4935 */ 4936 /* MC_CMD_FW_L3XUDP 0x7 */ 4937 /* enum: Requests that the MC keep whatever datapath firmware is currently 4938 * running. It's used for test purposes, where we want to be able to shmboot 4939 * special test firmware variants. This option is only recognised in eftest 4940 * (i.e. non-production) builds. 4941 */ 4942 /* MC_CMD_FW_KEEP_CURRENT_EFTEST_ONLY 0xfffffffe */ 4943 /* enum: Only this option is allowed for non-admin functions */ 4944 /* MC_CMD_FW_DONT_CARE 0xffffffff */ 4945 /* Version of the driver to be reported by management protocols (e.g. NC-SI) 4946 * handled by the NIC. This is a zero-terminated ASCII string. 4947 */ 4948 #define MC_CMD_DRV_ATTACH_IN_V2_DRIVER_VERSION_OFST 12 4949 #define MC_CMD_DRV_ATTACH_IN_V2_DRIVER_VERSION_LEN 20 4950 4951 /* MC_CMD_DRV_ATTACH_OUT msgresponse */ 4952 #define MC_CMD_DRV_ATTACH_OUT_LEN 4 4953 /* previous or existing state, see the bitmask at NEW_STATE */ 4954 #define MC_CMD_DRV_ATTACH_OUT_OLD_STATE_OFST 0 4955 #define MC_CMD_DRV_ATTACH_OUT_OLD_STATE_LEN 4 4956 4957 /* MC_CMD_DRV_ATTACH_EXT_OUT msgresponse */ 4958 #define MC_CMD_DRV_ATTACH_EXT_OUT_LEN 8 4959 /* previous or existing state, see the bitmask at NEW_STATE */ 4960 #define MC_CMD_DRV_ATTACH_EXT_OUT_OLD_STATE_OFST 0 4961 #define MC_CMD_DRV_ATTACH_EXT_OUT_OLD_STATE_LEN 4 4962 /* Flags associated with this function */ 4963 #define MC_CMD_DRV_ATTACH_EXT_OUT_FUNC_FLAGS_OFST 4 4964 #define MC_CMD_DRV_ATTACH_EXT_OUT_FUNC_FLAGS_LEN 4 4965 /* enum property: bitshift */ 4966 /* enum: Labels the lowest-numbered function visible to the OS */ 4967 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_PRIMARY 0x0 4968 /* enum: The function can control the link state of the physical port it is 4969 * bound to. 4970 */ 4971 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_LINKCTRL 0x1 4972 /* enum: The function can perform privileged operations */ 4973 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_TRUSTED 0x2 4974 /* enum: The function does not have an active port associated with it. The port 4975 * refers to the Sorrento external FPGA port. 4976 */ 4977 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_NO_ACTIVE_PORT 0x3 4978 /* enum: If set, indicates that VI spreading is currently enabled. Will always 4979 * indicate the current state, regardless of the value in the WANT_VI_SPREADING 4980 * input. 4981 */ 4982 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_VI_SPREADING_ENABLED 0x4 4983 /* enum: Used during development only. Should no longer be used. */ 4984 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_RX_VI_SPREADING_INHIBITED 0x5 4985 /* enum: If set, indicates that TX only spreading is enabled. Even-numbered 4986 * TXQs will use one engine, and odd-numbered TXQs will use the other. This 4987 * also has the effect that only even-numbered RXQs will receive traffic. 4988 */ 4989 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_TX_ONLY_VI_SPREADING_ENABLED 0x5 4990 4991 4992 /***********************************/ 4993 /* MC_CMD_SHMUART 4994 * Route UART output to circular buffer in shared memory instead. 4995 */ 4996 #define MC_CMD_SHMUART 0x1f 4997 #define MC_CMD_SHMUART_MSGSET 0x1f 4998 4999 /* MC_CMD_SHMUART_IN msgrequest */ 5000 #define MC_CMD_SHMUART_IN_LEN 4 5001 /* ??? */ 5002 #define MC_CMD_SHMUART_IN_FLAG_OFST 0 5003 #define MC_CMD_SHMUART_IN_FLAG_LEN 4 5004 5005 /* MC_CMD_SHMUART_OUT msgresponse */ 5006 #define MC_CMD_SHMUART_OUT_LEN 0 5007 5008 5009 /***********************************/ 5010 /* MC_CMD_PORT_RESET 5011 * Generic per-port reset. There is no equivalent for per-board reset. Locks 5012 * required: None; Return code: 0, ETIME. NOTE: This command is deprecated - 5013 * use MC_CMD_ENTITY_RESET instead. 5014 */ 5015 #define MC_CMD_PORT_RESET 0x20 5016 #define MC_CMD_PORT_RESET_MSGSET 0x20 5017 #undef MC_CMD_0x20_PRIVILEGE_CTG 5018 5019 #define MC_CMD_0x20_PRIVILEGE_CTG SRIOV_CTG_GENERAL 5020 5021 /* MC_CMD_PORT_RESET_IN msgrequest */ 5022 #define MC_CMD_PORT_RESET_IN_LEN 0 5023 5024 /* MC_CMD_PORT_RESET_OUT msgresponse */ 5025 #define MC_CMD_PORT_RESET_OUT_LEN 0 5026 5027 5028 /***********************************/ 5029 /* MC_CMD_ENTITY_RESET 5030 * Generic per-resource reset. There is no equivalent for per-board reset. 5031 * Locks required: None; Return code: 0, ETIME. NOTE: This command is an 5032 * extended version of the deprecated MC_CMD_PORT_RESET with added fields. 5033 */ 5034 #define MC_CMD_ENTITY_RESET 0x20 5035 #define MC_CMD_ENTITY_RESET_MSGSET 0x20 5036 /* MC_CMD_0x20_PRIVILEGE_CTG SRIOV_CTG_GENERAL */ 5037 5038 /* MC_CMD_ENTITY_RESET_IN msgrequest */ 5039 #define MC_CMD_ENTITY_RESET_IN_LEN 4 5040 /* Optional flags field. Omitting this will perform a "legacy" reset action 5041 * (TBD). 5042 */ 5043 #define MC_CMD_ENTITY_RESET_IN_FLAG_OFST 0 5044 #define MC_CMD_ENTITY_RESET_IN_FLAG_LEN 4 5045 #define MC_CMD_ENTITY_RESET_IN_FUNCTION_RESOURCE_RESET_OFST 0 5046 #define MC_CMD_ENTITY_RESET_IN_FUNCTION_RESOURCE_RESET_LBN 0 5047 #define MC_CMD_ENTITY_RESET_IN_FUNCTION_RESOURCE_RESET_WIDTH 1 5048 5049 /* MC_CMD_ENTITY_RESET_OUT msgresponse */ 5050 #define MC_CMD_ENTITY_RESET_OUT_LEN 0 5051 5052 5053 /***********************************/ 5054 /* MC_CMD_PCIE_CREDITS 5055 * Read instantaneous and minimum flow control thresholds. 5056 */ 5057 #define MC_CMD_PCIE_CREDITS 0x21 5058 #define MC_CMD_PCIE_CREDITS_MSGSET 0x21 5059 5060 /* MC_CMD_PCIE_CREDITS_IN msgrequest */ 5061 #define MC_CMD_PCIE_CREDITS_IN_LEN 8 5062 /* poll period. 0 is disabled */ 5063 #define MC_CMD_PCIE_CREDITS_IN_POLL_PERIOD_OFST 0 5064 #define MC_CMD_PCIE_CREDITS_IN_POLL_PERIOD_LEN 4 5065 /* wipe statistics */ 5066 #define MC_CMD_PCIE_CREDITS_IN_WIPE_OFST 4 5067 #define MC_CMD_PCIE_CREDITS_IN_WIPE_LEN 4 5068 5069 /* MC_CMD_PCIE_CREDITS_OUT msgresponse */ 5070 #define MC_CMD_PCIE_CREDITS_OUT_LEN 16 5071 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_P_HDR_OFST 0 5072 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_P_HDR_LEN 2 5073 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_P_DATA_OFST 2 5074 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_P_DATA_LEN 2 5075 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_NP_HDR_OFST 4 5076 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_NP_HDR_LEN 2 5077 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_NP_DATA_OFST 6 5078 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_NP_DATA_LEN 2 5079 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_P_HDR_OFST 8 5080 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_P_HDR_LEN 2 5081 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_P_DATA_OFST 10 5082 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_P_DATA_LEN 2 5083 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_NP_HDR_OFST 12 5084 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_NP_HDR_LEN 2 5085 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_NP_DATA_OFST 14 5086 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_NP_DATA_LEN 2 5087 5088 5089 /***********************************/ 5090 /* MC_CMD_RXD_MONITOR 5091 * Get histogram of RX queue fill level. 5092 */ 5093 #define MC_CMD_RXD_MONITOR 0x22 5094 #define MC_CMD_RXD_MONITOR_MSGSET 0x22 5095 5096 /* MC_CMD_RXD_MONITOR_IN msgrequest */ 5097 #define MC_CMD_RXD_MONITOR_IN_LEN 12 5098 #define MC_CMD_RXD_MONITOR_IN_QID_OFST 0 5099 #define MC_CMD_RXD_MONITOR_IN_QID_LEN 4 5100 #define MC_CMD_RXD_MONITOR_IN_POLL_PERIOD_OFST 4 5101 #define MC_CMD_RXD_MONITOR_IN_POLL_PERIOD_LEN 4 5102 #define MC_CMD_RXD_MONITOR_IN_WIPE_OFST 8 5103 #define MC_CMD_RXD_MONITOR_IN_WIPE_LEN 4 5104 5105 /* MC_CMD_RXD_MONITOR_OUT msgresponse */ 5106 #define MC_CMD_RXD_MONITOR_OUT_LEN 80 5107 #define MC_CMD_RXD_MONITOR_OUT_QID_OFST 0 5108 #define MC_CMD_RXD_MONITOR_OUT_QID_LEN 4 5109 #define MC_CMD_RXD_MONITOR_OUT_RING_FILL_OFST 4 5110 #define MC_CMD_RXD_MONITOR_OUT_RING_FILL_LEN 4 5111 #define MC_CMD_RXD_MONITOR_OUT_CACHE_FILL_OFST 8 5112 #define MC_CMD_RXD_MONITOR_OUT_CACHE_FILL_LEN 4 5113 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_1_OFST 12 5114 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_1_LEN 4 5115 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_2_OFST 16 5116 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_2_LEN 4 5117 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_4_OFST 20 5118 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_4_LEN 4 5119 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_8_OFST 24 5120 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_8_LEN 4 5121 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_16_OFST 28 5122 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_16_LEN 4 5123 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_32_OFST 32 5124 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_32_LEN 4 5125 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_64_OFST 36 5126 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_64_LEN 4 5127 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_128_OFST 40 5128 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_128_LEN 4 5129 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_256_OFST 44 5130 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_256_LEN 4 5131 #define MC_CMD_RXD_MONITOR_OUT_RING_GE_256_OFST 48 5132 #define MC_CMD_RXD_MONITOR_OUT_RING_GE_256_LEN 4 5133 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_1_OFST 52 5134 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_1_LEN 4 5135 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_2_OFST 56 5136 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_2_LEN 4 5137 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_4_OFST 60 5138 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_4_LEN 4 5139 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_8_OFST 64 5140 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_8_LEN 4 5141 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_16_OFST 68 5142 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_16_LEN 4 5143 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_32_OFST 72 5144 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_32_LEN 4 5145 #define MC_CMD_RXD_MONITOR_OUT_CACHE_GE_32_OFST 76 5146 #define MC_CMD_RXD_MONITOR_OUT_CACHE_GE_32_LEN 4 5147 5148 5149 /***********************************/ 5150 /* MC_CMD_PUTS 5151 * Copy the given ASCII string out onto UART and/or out of the network port. 5152 */ 5153 #define MC_CMD_PUTS 0x23 5154 #define MC_CMD_PUTS_MSGSET 0x23 5155 #undef MC_CMD_0x23_PRIVILEGE_CTG 5156 5157 #define MC_CMD_0x23_PRIVILEGE_CTG SRIOV_CTG_INSECURE 5158 5159 /* MC_CMD_PUTS_IN msgrequest */ 5160 #define MC_CMD_PUTS_IN_LENMIN 13 5161 #define MC_CMD_PUTS_IN_LENMAX 252 5162 #define MC_CMD_PUTS_IN_LENMAX_MCDI2 1020 5163 #define MC_CMD_PUTS_IN_LEN(num) (12+1*(num)) 5164 #define MC_CMD_PUTS_IN_STRING_NUM(len) (((len)-12)/1) 5165 #define MC_CMD_PUTS_IN_DEST_OFST 0 5166 #define MC_CMD_PUTS_IN_DEST_LEN 4 5167 #define MC_CMD_PUTS_IN_UART_OFST 0 5168 #define MC_CMD_PUTS_IN_UART_LBN 0 5169 #define MC_CMD_PUTS_IN_UART_WIDTH 1 5170 #define MC_CMD_PUTS_IN_PORT_OFST 0 5171 #define MC_CMD_PUTS_IN_PORT_LBN 1 5172 #define MC_CMD_PUTS_IN_PORT_WIDTH 1 5173 #define MC_CMD_PUTS_IN_DHOST_OFST 4 5174 #define MC_CMD_PUTS_IN_DHOST_LEN 6 5175 #define MC_CMD_PUTS_IN_STRING_OFST 12 5176 #define MC_CMD_PUTS_IN_STRING_LEN 1 5177 #define MC_CMD_PUTS_IN_STRING_MINNUM 1 5178 #define MC_CMD_PUTS_IN_STRING_MAXNUM 240 5179 #define MC_CMD_PUTS_IN_STRING_MAXNUM_MCDI2 1008 5180 5181 /* MC_CMD_PUTS_OUT msgresponse */ 5182 #define MC_CMD_PUTS_OUT_LEN 0 5183 5184 5185 /***********************************/ 5186 /* MC_CMD_GET_PHY_CFG 5187 * Report PHY configuration. This guarantees to succeed even if the PHY is in a 5188 * 'zombie' state. Locks required: None 5189 */ 5190 #define MC_CMD_GET_PHY_CFG 0x24 5191 #define MC_CMD_GET_PHY_CFG_MSGSET 0x24 5192 #undef MC_CMD_0x24_PRIVILEGE_CTG 5193 5194 #define MC_CMD_0x24_PRIVILEGE_CTG SRIOV_CTG_GENERAL 5195 5196 /* MC_CMD_GET_PHY_CFG_IN msgrequest */ 5197 #define MC_CMD_GET_PHY_CFG_IN_LEN 0 5198 5199 /* MC_CMD_GET_PHY_CFG_IN_V2 msgrequest */ 5200 #define MC_CMD_GET_PHY_CFG_IN_V2_LEN 8 5201 /* Target port to request PHY state for. Uses MAE_LINK_ENDPOINT_SELECTOR which 5202 * identifies a real or virtual network port by MAE port and link end. See the 5203 * structure definition for more details 5204 */ 5205 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_OFST 0 5206 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LEN 8 5207 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LO_OFST 0 5208 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LO_LEN 4 5209 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LO_LBN 0 5210 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LO_WIDTH 32 5211 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_HI_OFST 4 5212 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_HI_LEN 4 5213 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_HI_LBN 32 5214 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_HI_WIDTH 32 5215 /* See structuredef: MAE_LINK_ENDPOINT_SELECTOR */ 5216 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_OFST 0 5217 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_LEN 4 5218 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FLAT_OFST 0 5219 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FLAT_LEN 4 5220 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_TYPE_OFST 3 5221 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_TYPE_LEN 1 5222 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 0 5223 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 5224 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 0 5225 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 5226 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 20 5227 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 5228 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 16 5229 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 5230 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 2 5231 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 5232 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 0 5233 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 5234 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LINK_END_OFST 4 5235 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LINK_END_LEN 4 5236 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_OFST 0 5237 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_LEN 8 5238 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_LO_OFST 0 5239 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_LO_LEN 4 5240 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_LO_LBN 0 5241 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_LO_WIDTH 32 5242 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_HI_OFST 4 5243 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_HI_LEN 4 5244 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_HI_LBN 32 5245 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_HI_WIDTH 32 5246 5247 /* MC_CMD_GET_PHY_CFG_OUT msgresponse */ 5248 #define MC_CMD_GET_PHY_CFG_OUT_LEN 72 5249 /* flags */ 5250 #define MC_CMD_GET_PHY_CFG_OUT_FLAGS_OFST 0 5251 #define MC_CMD_GET_PHY_CFG_OUT_FLAGS_LEN 4 5252 #define MC_CMD_GET_PHY_CFG_OUT_PRESENT_OFST 0 5253 #define MC_CMD_GET_PHY_CFG_OUT_PRESENT_LBN 0 5254 #define MC_CMD_GET_PHY_CFG_OUT_PRESENT_WIDTH 1 5255 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_SHORT_OFST 0 5256 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_SHORT_LBN 1 5257 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_SHORT_WIDTH 1 5258 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_LONG_OFST 0 5259 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_LONG_LBN 2 5260 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_LONG_WIDTH 1 5261 #define MC_CMD_GET_PHY_CFG_OUT_LOWPOWER_OFST 0 5262 #define MC_CMD_GET_PHY_CFG_OUT_LOWPOWER_LBN 3 5263 #define MC_CMD_GET_PHY_CFG_OUT_LOWPOWER_WIDTH 1 5264 #define MC_CMD_GET_PHY_CFG_OUT_POWEROFF_OFST 0 5265 #define MC_CMD_GET_PHY_CFG_OUT_POWEROFF_LBN 4 5266 #define MC_CMD_GET_PHY_CFG_OUT_POWEROFF_WIDTH 1 5267 #define MC_CMD_GET_PHY_CFG_OUT_TXDIS_OFST 0 5268 #define MC_CMD_GET_PHY_CFG_OUT_TXDIS_LBN 5 5269 #define MC_CMD_GET_PHY_CFG_OUT_TXDIS_WIDTH 1 5270 #define MC_CMD_GET_PHY_CFG_OUT_BIST_OFST 0 5271 #define MC_CMD_GET_PHY_CFG_OUT_BIST_LBN 6 5272 #define MC_CMD_GET_PHY_CFG_OUT_BIST_WIDTH 1 5273 /* ?? */ 5274 #define MC_CMD_GET_PHY_CFG_OUT_TYPE_OFST 4 5275 #define MC_CMD_GET_PHY_CFG_OUT_TYPE_LEN 4 5276 /* Bitmask of supported capabilities */ 5277 #define MC_CMD_GET_PHY_CFG_OUT_SUPPORTED_CAP_OFST 8 5278 #define MC_CMD_GET_PHY_CFG_OUT_SUPPORTED_CAP_LEN 4 5279 #define MC_CMD_PHY_CAP_10HDX_OFST 8 5280 #define MC_CMD_PHY_CAP_10HDX_LBN 1 5281 #define MC_CMD_PHY_CAP_10HDX_WIDTH 1 5282 #define MC_CMD_PHY_CAP_10FDX_OFST 8 5283 #define MC_CMD_PHY_CAP_10FDX_LBN 2 5284 #define MC_CMD_PHY_CAP_10FDX_WIDTH 1 5285 #define MC_CMD_PHY_CAP_100HDX_OFST 8 5286 #define MC_CMD_PHY_CAP_100HDX_LBN 3 5287 #define MC_CMD_PHY_CAP_100HDX_WIDTH 1 5288 #define MC_CMD_PHY_CAP_100FDX_OFST 8 5289 #define MC_CMD_PHY_CAP_100FDX_LBN 4 5290 #define MC_CMD_PHY_CAP_100FDX_WIDTH 1 5291 #define MC_CMD_PHY_CAP_1000HDX_OFST 8 5292 #define MC_CMD_PHY_CAP_1000HDX_LBN 5 5293 #define MC_CMD_PHY_CAP_1000HDX_WIDTH 1 5294 #define MC_CMD_PHY_CAP_1000FDX_OFST 8 5295 #define MC_CMD_PHY_CAP_1000FDX_LBN 6 5296 #define MC_CMD_PHY_CAP_1000FDX_WIDTH 1 5297 #define MC_CMD_PHY_CAP_10000FDX_OFST 8 5298 #define MC_CMD_PHY_CAP_10000FDX_LBN 7 5299 #define MC_CMD_PHY_CAP_10000FDX_WIDTH 1 5300 #define MC_CMD_PHY_CAP_PAUSE_OFST 8 5301 #define MC_CMD_PHY_CAP_PAUSE_LBN 8 5302 #define MC_CMD_PHY_CAP_PAUSE_WIDTH 1 5303 #define MC_CMD_PHY_CAP_ASYM_OFST 8 5304 #define MC_CMD_PHY_CAP_ASYM_LBN 9 5305 #define MC_CMD_PHY_CAP_ASYM_WIDTH 1 5306 #define MC_CMD_PHY_CAP_AN_OFST 8 5307 #define MC_CMD_PHY_CAP_AN_LBN 10 5308 #define MC_CMD_PHY_CAP_AN_WIDTH 1 5309 #define MC_CMD_PHY_CAP_40000FDX_OFST 8 5310 #define MC_CMD_PHY_CAP_40000FDX_LBN 11 5311 #define MC_CMD_PHY_CAP_40000FDX_WIDTH 1 5312 #define MC_CMD_PHY_CAP_DDM_OFST 8 5313 #define MC_CMD_PHY_CAP_DDM_LBN 12 5314 #define MC_CMD_PHY_CAP_DDM_WIDTH 1 5315 #define MC_CMD_PHY_CAP_100000FDX_OFST 8 5316 #define MC_CMD_PHY_CAP_100000FDX_LBN 13 5317 #define MC_CMD_PHY_CAP_100000FDX_WIDTH 1 5318 #define MC_CMD_PHY_CAP_25000FDX_OFST 8 5319 #define MC_CMD_PHY_CAP_25000FDX_LBN 14 5320 #define MC_CMD_PHY_CAP_25000FDX_WIDTH 1 5321 #define MC_CMD_PHY_CAP_50000FDX_OFST 8 5322 #define MC_CMD_PHY_CAP_50000FDX_LBN 15 5323 #define MC_CMD_PHY_CAP_50000FDX_WIDTH 1 5324 #define MC_CMD_PHY_CAP_BASER_FEC_OFST 8 5325 #define MC_CMD_PHY_CAP_BASER_FEC_LBN 16 5326 #define MC_CMD_PHY_CAP_BASER_FEC_WIDTH 1 5327 #define MC_CMD_PHY_CAP_BASER_FEC_REQUESTED_OFST 8 5328 #define MC_CMD_PHY_CAP_BASER_FEC_REQUESTED_LBN 17 5329 #define MC_CMD_PHY_CAP_BASER_FEC_REQUESTED_WIDTH 1 5330 #define MC_CMD_PHY_CAP_RS_FEC_OFST 8 5331 #define MC_CMD_PHY_CAP_RS_FEC_LBN 18 5332 #define MC_CMD_PHY_CAP_RS_FEC_WIDTH 1 5333 #define MC_CMD_PHY_CAP_RS_FEC_REQUESTED_OFST 8 5334 #define MC_CMD_PHY_CAP_RS_FEC_REQUESTED_LBN 19 5335 #define MC_CMD_PHY_CAP_RS_FEC_REQUESTED_WIDTH 1 5336 #define MC_CMD_PHY_CAP_25G_BASER_FEC_OFST 8 5337 #define MC_CMD_PHY_CAP_25G_BASER_FEC_LBN 20 5338 #define MC_CMD_PHY_CAP_25G_BASER_FEC_WIDTH 1 5339 #define MC_CMD_PHY_CAP_25G_BASER_FEC_REQUESTED_OFST 8 5340 #define MC_CMD_PHY_CAP_25G_BASER_FEC_REQUESTED_LBN 21 5341 #define MC_CMD_PHY_CAP_25G_BASER_FEC_REQUESTED_WIDTH 1 5342 #define MC_CMD_PHY_CAP_200000FDX_OFST 8 5343 #define MC_CMD_PHY_CAP_200000FDX_LBN 22 5344 #define MC_CMD_PHY_CAP_200000FDX_WIDTH 1 5345 /* ?? */ 5346 #define MC_CMD_GET_PHY_CFG_OUT_CHANNEL_OFST 12 5347 #define MC_CMD_GET_PHY_CFG_OUT_CHANNEL_LEN 4 5348 /* ?? */ 5349 #define MC_CMD_GET_PHY_CFG_OUT_PRT_OFST 16 5350 #define MC_CMD_GET_PHY_CFG_OUT_PRT_LEN 4 5351 /* ?? */ 5352 #define MC_CMD_GET_PHY_CFG_OUT_STATS_MASK_OFST 20 5353 #define MC_CMD_GET_PHY_CFG_OUT_STATS_MASK_LEN 4 5354 /* ?? */ 5355 #define MC_CMD_GET_PHY_CFG_OUT_NAME_OFST 24 5356 #define MC_CMD_GET_PHY_CFG_OUT_NAME_LEN 20 5357 /* ?? */ 5358 #define MC_CMD_GET_PHY_CFG_OUT_MEDIA_TYPE_OFST 44 5359 #define MC_CMD_GET_PHY_CFG_OUT_MEDIA_TYPE_LEN 4 5360 /* enum: Xaui. */ 5361 #define MC_CMD_MEDIA_XAUI 0x1 5362 /* enum: CX4. */ 5363 #define MC_CMD_MEDIA_CX4 0x2 5364 /* enum: KX4. */ 5365 #define MC_CMD_MEDIA_KX4 0x3 5366 /* enum: XFP Far. */ 5367 #define MC_CMD_MEDIA_XFP 0x4 5368 /* enum: SFP+. */ 5369 #define MC_CMD_MEDIA_SFP_PLUS 0x5 5370 /* enum: 10GBaseT. */ 5371 #define MC_CMD_MEDIA_BASE_T 0x6 5372 /* enum: QSFP+. */ 5373 #define MC_CMD_MEDIA_QSFP_PLUS 0x7 5374 /* enum: DSFP. */ 5375 #define MC_CMD_MEDIA_DSFP 0x8 5376 #define MC_CMD_GET_PHY_CFG_OUT_MMD_MASK_OFST 48 5377 #define MC_CMD_GET_PHY_CFG_OUT_MMD_MASK_LEN 4 5378 /* enum property: bitshift */ 5379 /* enum: Native clause 22 */ 5380 #define MC_CMD_MMD_CLAUSE22 0x0 5381 #define MC_CMD_MMD_CLAUSE45_PMAPMD 0x1 /* enum */ 5382 #define MC_CMD_MMD_CLAUSE45_WIS 0x2 /* enum */ 5383 #define MC_CMD_MMD_CLAUSE45_PCS 0x3 /* enum */ 5384 #define MC_CMD_MMD_CLAUSE45_PHYXS 0x4 /* enum */ 5385 #define MC_CMD_MMD_CLAUSE45_DTEXS 0x5 /* enum */ 5386 #define MC_CMD_MMD_CLAUSE45_TC 0x6 /* enum */ 5387 #define MC_CMD_MMD_CLAUSE45_AN 0x7 /* enum */ 5388 /* enum: Clause22 proxied over clause45 by PHY. */ 5389 #define MC_CMD_MMD_CLAUSE45_C22EXT 0x1d 5390 #define MC_CMD_MMD_CLAUSE45_VEND1 0x1e /* enum */ 5391 #define MC_CMD_MMD_CLAUSE45_VEND2 0x1f /* enum */ 5392 #define MC_CMD_GET_PHY_CFG_OUT_REVISION_OFST 52 5393 #define MC_CMD_GET_PHY_CFG_OUT_REVISION_LEN 20 5394 5395 5396 /***********************************/ 5397 /* MC_CMD_START_BIST 5398 * Start a BIST test on the PHY. Locks required: PHY_LOCK if doing a PHY BIST 5399 * Return code: 0, EINVAL, EACCES (if PHY_LOCK is not held) 5400 */ 5401 #define MC_CMD_START_BIST 0x25 5402 #define MC_CMD_START_BIST_MSGSET 0x25 5403 #undef MC_CMD_0x25_PRIVILEGE_CTG 5404 5405 #define MC_CMD_0x25_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 5406 5407 /* MC_CMD_START_BIST_IN msgrequest */ 5408 #define MC_CMD_START_BIST_IN_LEN 4 5409 /* Type of test. */ 5410 #define MC_CMD_START_BIST_IN_TYPE_OFST 0 5411 #define MC_CMD_START_BIST_IN_TYPE_LEN 4 5412 /* enum: Run the PHY's short cable BIST. */ 5413 #define MC_CMD_PHY_BIST_CABLE_SHORT 0x1 5414 /* enum: Run the PHY's long cable BIST. */ 5415 #define MC_CMD_PHY_BIST_CABLE_LONG 0x2 5416 /* enum: Run BIST on the currently selected BPX Serdes (XAUI or XFI) . */ 5417 #define MC_CMD_BPX_SERDES_BIST 0x3 5418 /* enum: Run the MC loopback tests. */ 5419 #define MC_CMD_MC_LOOPBACK_BIST 0x4 5420 /* enum: Run the PHY's standard BIST. */ 5421 #define MC_CMD_PHY_BIST 0x5 5422 /* enum: Run MC RAM test. */ 5423 #define MC_CMD_MC_MEM_BIST 0x6 5424 /* enum: Run Port RAM test. */ 5425 #define MC_CMD_PORT_MEM_BIST 0x7 5426 /* enum: Run register test. */ 5427 #define MC_CMD_REG_BIST 0x8 5428 5429 /* MC_CMD_START_BIST_OUT msgresponse */ 5430 #define MC_CMD_START_BIST_OUT_LEN 0 5431 5432 5433 /***********************************/ 5434 /* MC_CMD_POLL_BIST 5435 * Poll for BIST completion. Returns a single status code, and optionally some 5436 * PHY specific bist output. The driver should only consume the BIST output 5437 * after validating OUTLEN and MC_CMD_GET_PHY_CFG.TYPE. If a driver can't 5438 * successfully parse the BIST output, it should still respect the pass/Fail in 5439 * OUT.RESULT. Locks required: PHY_LOCK if doing a PHY BIST. Return code: 0, 5440 * EACCES (if PHY_LOCK is not held). 5441 */ 5442 #define MC_CMD_POLL_BIST 0x26 5443 #define MC_CMD_POLL_BIST_MSGSET 0x26 5444 #undef MC_CMD_0x26_PRIVILEGE_CTG 5445 5446 #define MC_CMD_0x26_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 5447 5448 /* MC_CMD_POLL_BIST_IN msgrequest */ 5449 #define MC_CMD_POLL_BIST_IN_LEN 0 5450 5451 /* MC_CMD_POLL_BIST_OUT msgresponse */ 5452 #define MC_CMD_POLL_BIST_OUT_LEN 8 5453 /* result */ 5454 #define MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 5455 #define MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 5456 /* enum: Running. */ 5457 #define MC_CMD_POLL_BIST_RUNNING 0x1 5458 /* enum: Passed. */ 5459 #define MC_CMD_POLL_BIST_PASSED 0x2 5460 /* enum: Failed. */ 5461 #define MC_CMD_POLL_BIST_FAILED 0x3 5462 /* enum: Timed-out. */ 5463 #define MC_CMD_POLL_BIST_TIMEOUT 0x4 5464 #define MC_CMD_POLL_BIST_OUT_PRIVATE_OFST 4 5465 #define MC_CMD_POLL_BIST_OUT_PRIVATE_LEN 4 5466 5467 /* MC_CMD_POLL_BIST_OUT_SFT9001 msgresponse */ 5468 #define MC_CMD_POLL_BIST_OUT_SFT9001_LEN 36 5469 /* result */ 5470 /* MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 */ 5471 /* MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 */ 5472 /* Enum values, see field(s): */ 5473 /* MC_CMD_POLL_BIST_OUT/MC_CMD_POLL_BIST_OUT_RESULT */ 5474 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_A_OFST 4 5475 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_A_LEN 4 5476 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_B_OFST 8 5477 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_B_LEN 4 5478 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_C_OFST 12 5479 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_C_LEN 4 5480 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_D_OFST 16 5481 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_D_LEN 4 5482 /* Status of each channel A */ 5483 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_A_OFST 20 5484 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_A_LEN 4 5485 /* enum: Ok. */ 5486 #define MC_CMD_POLL_BIST_SFT9001_PAIR_OK 0x1 5487 /* enum: Open. */ 5488 #define MC_CMD_POLL_BIST_SFT9001_PAIR_OPEN 0x2 5489 /* enum: Intra-pair short. */ 5490 #define MC_CMD_POLL_BIST_SFT9001_INTRA_PAIR_SHORT 0x3 5491 /* enum: Inter-pair short. */ 5492 #define MC_CMD_POLL_BIST_SFT9001_INTER_PAIR_SHORT 0x4 5493 /* enum: Busy. */ 5494 #define MC_CMD_POLL_BIST_SFT9001_PAIR_BUSY 0x9 5495 /* Status of each channel B */ 5496 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_B_OFST 24 5497 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_B_LEN 4 5498 /* Enum values, see field(s): */ 5499 /* CABLE_STATUS_A */ 5500 /* Status of each channel C */ 5501 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_C_OFST 28 5502 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_C_LEN 4 5503 /* Enum values, see field(s): */ 5504 /* CABLE_STATUS_A */ 5505 /* Status of each channel D */ 5506 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_D_OFST 32 5507 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_D_LEN 4 5508 /* Enum values, see field(s): */ 5509 /* CABLE_STATUS_A */ 5510 5511 /* MC_CMD_POLL_BIST_OUT_MRSFP msgresponse */ 5512 #define MC_CMD_POLL_BIST_OUT_MRSFP_LEN 8 5513 /* result */ 5514 /* MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 */ 5515 /* MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 */ 5516 /* Enum values, see field(s): */ 5517 /* MC_CMD_POLL_BIST_OUT/MC_CMD_POLL_BIST_OUT_RESULT */ 5518 #define MC_CMD_POLL_BIST_OUT_MRSFP_TEST_OFST 4 5519 #define MC_CMD_POLL_BIST_OUT_MRSFP_TEST_LEN 4 5520 /* enum: Complete. */ 5521 #define MC_CMD_POLL_BIST_MRSFP_TEST_COMPLETE 0x0 5522 /* enum: Bus switch off I2C write. */ 5523 #define MC_CMD_POLL_BIST_MRSFP_TEST_BUS_SWITCH_OFF_I2C_WRITE 0x1 5524 /* enum: Bus switch off I2C no access IO exp. */ 5525 #define MC_CMD_POLL_BIST_MRSFP_TEST_BUS_SWITCH_OFF_I2C_NO_ACCESS_IO_EXP 0x2 5526 /* enum: Bus switch off I2C no access module. */ 5527 #define MC_CMD_POLL_BIST_MRSFP_TEST_BUS_SWITCH_OFF_I2C_NO_ACCESS_MODULE 0x3 5528 /* enum: IO exp I2C configure. */ 5529 #define MC_CMD_POLL_BIST_MRSFP_TEST_IO_EXP_I2C_CONFIGURE 0x4 5530 /* enum: Bus switch I2C no cross talk. */ 5531 #define MC_CMD_POLL_BIST_MRSFP_TEST_BUS_SWITCH_I2C_NO_CROSSTALK 0x5 5532 /* enum: Module presence. */ 5533 #define MC_CMD_POLL_BIST_MRSFP_TEST_MODULE_PRESENCE 0x6 5534 /* enum: Module ID I2C access. */ 5535 #define MC_CMD_POLL_BIST_MRSFP_TEST_MODULE_ID_I2C_ACCESS 0x7 5536 /* enum: Module ID sane value. */ 5537 #define MC_CMD_POLL_BIST_MRSFP_TEST_MODULE_ID_SANE_VALUE 0x8 5538 5539 /* MC_CMD_POLL_BIST_OUT_MEM msgresponse */ 5540 #define MC_CMD_POLL_BIST_OUT_MEM_LEN 36 5541 /* result */ 5542 /* MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 */ 5543 /* MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 */ 5544 /* Enum values, see field(s): */ 5545 /* MC_CMD_POLL_BIST_OUT/MC_CMD_POLL_BIST_OUT_RESULT */ 5546 #define MC_CMD_POLL_BIST_OUT_MEM_TEST_OFST 4 5547 #define MC_CMD_POLL_BIST_OUT_MEM_TEST_LEN 4 5548 /* enum: Test has completed. */ 5549 #define MC_CMD_POLL_BIST_MEM_COMPLETE 0x0 5550 /* enum: RAM test - walk ones. */ 5551 #define MC_CMD_POLL_BIST_MEM_MEM_WALK_ONES 0x1 5552 /* enum: RAM test - walk zeros. */ 5553 #define MC_CMD_POLL_BIST_MEM_MEM_WALK_ZEROS 0x2 5554 /* enum: RAM test - walking inversions zeros/ones. */ 5555 #define MC_CMD_POLL_BIST_MEM_MEM_INV_ZERO_ONE 0x3 5556 /* enum: RAM test - walking inversions checkerboard. */ 5557 #define MC_CMD_POLL_BIST_MEM_MEM_INV_CHKBOARD 0x4 5558 /* enum: Register test - set / clear individual bits. */ 5559 #define MC_CMD_POLL_BIST_MEM_REG 0x5 5560 /* enum: ECC error detected. */ 5561 #define MC_CMD_POLL_BIST_MEM_ECC 0x6 5562 /* Failure address, only valid if result is POLL_BIST_FAILED */ 5563 #define MC_CMD_POLL_BIST_OUT_MEM_ADDR_OFST 8 5564 #define MC_CMD_POLL_BIST_OUT_MEM_ADDR_LEN 4 5565 /* Bus or address space to which the failure address corresponds */ 5566 #define MC_CMD_POLL_BIST_OUT_MEM_BUS_OFST 12 5567 #define MC_CMD_POLL_BIST_OUT_MEM_BUS_LEN 4 5568 /* enum: MC MIPS bus. */ 5569 #define MC_CMD_POLL_BIST_MEM_BUS_MC 0x0 5570 /* enum: CSR IREG bus. */ 5571 #define MC_CMD_POLL_BIST_MEM_BUS_CSR 0x1 5572 /* enum: RX0 DPCPU bus. */ 5573 #define MC_CMD_POLL_BIST_MEM_BUS_DPCPU_RX 0x2 5574 /* enum: TX0 DPCPU bus. */ 5575 #define MC_CMD_POLL_BIST_MEM_BUS_DPCPU_TX0 0x3 5576 /* enum: TX1 DPCPU bus. */ 5577 #define MC_CMD_POLL_BIST_MEM_BUS_DPCPU_TX1 0x4 5578 /* enum: RX0 DICPU bus. */ 5579 #define MC_CMD_POLL_BIST_MEM_BUS_DICPU_RX 0x5 5580 /* enum: TX DICPU bus. */ 5581 #define MC_CMD_POLL_BIST_MEM_BUS_DICPU_TX 0x6 5582 /* enum: RX1 DPCPU bus. */ 5583 #define MC_CMD_POLL_BIST_MEM_BUS_DPCPU_RX1 0x7 5584 /* enum: RX1 DICPU bus. */ 5585 #define MC_CMD_POLL_BIST_MEM_BUS_DICPU_RX1 0x8 5586 /* Pattern written to RAM / register */ 5587 #define MC_CMD_POLL_BIST_OUT_MEM_EXPECT_OFST 16 5588 #define MC_CMD_POLL_BIST_OUT_MEM_EXPECT_LEN 4 5589 /* Actual value read from RAM / register */ 5590 #define MC_CMD_POLL_BIST_OUT_MEM_ACTUAL_OFST 20 5591 #define MC_CMD_POLL_BIST_OUT_MEM_ACTUAL_LEN 4 5592 /* ECC error mask */ 5593 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_OFST 24 5594 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_LEN 4 5595 /* ECC parity error mask */ 5596 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_PARITY_OFST 28 5597 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_PARITY_LEN 4 5598 /* ECC fatal error mask */ 5599 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_FATAL_OFST 32 5600 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_FATAL_LEN 4 5601 5602 5603 /***********************************/ 5604 /* MC_CMD_FLUSH_RX_QUEUES 5605 * Flush receive queue(s). If SRIOV is enabled (via MC_CMD_SRIOV), then RXQ 5606 * flushes should be initiated via this MCDI operation, rather than via 5607 * directly writing FLUSH_CMD. 5608 * 5609 * The flush is completed (either done/fail) asynchronously (after this command 5610 * returns). The driver must still wait for flush done/failure events as usual. 5611 */ 5612 #define MC_CMD_FLUSH_RX_QUEUES 0x27 5613 #define MC_CMD_FLUSH_RX_QUEUES_MSGSET 0x27 5614 5615 /* MC_CMD_FLUSH_RX_QUEUES_IN msgrequest */ 5616 #define MC_CMD_FLUSH_RX_QUEUES_IN_LENMIN 4 5617 #define MC_CMD_FLUSH_RX_QUEUES_IN_LENMAX 252 5618 #define MC_CMD_FLUSH_RX_QUEUES_IN_LENMAX_MCDI2 1020 5619 #define MC_CMD_FLUSH_RX_QUEUES_IN_LEN(num) (0+4*(num)) 5620 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_NUM(len) (((len)-0)/4) 5621 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_OFST 0 5622 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_LEN 4 5623 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_MINNUM 1 5624 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_MAXNUM 63 5625 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_MAXNUM_MCDI2 255 5626 5627 /* MC_CMD_FLUSH_RX_QUEUES_OUT msgresponse */ 5628 #define MC_CMD_FLUSH_RX_QUEUES_OUT_LEN 0 5629 5630 5631 /***********************************/ 5632 /* MC_CMD_GET_LOOPBACK_MODES 5633 * Returns a bitmask of loopback modes available at each speed. 5634 */ 5635 #define MC_CMD_GET_LOOPBACK_MODES 0x28 5636 #define MC_CMD_GET_LOOPBACK_MODES_MSGSET 0x28 5637 #undef MC_CMD_0x28_PRIVILEGE_CTG 5638 5639 #define MC_CMD_0x28_PRIVILEGE_CTG SRIOV_CTG_GENERAL 5640 5641 /* MC_CMD_GET_LOOPBACK_MODES_IN msgrequest */ 5642 #define MC_CMD_GET_LOOPBACK_MODES_IN_LEN 0 5643 5644 /* MC_CMD_GET_LOOPBACK_MODES_IN_V2 msgrequest */ 5645 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_LEN 8 5646 /* Target port to request loopback modes for. Uses MAE_LINK_ENDPOINT_SELECTOR 5647 * which identifies a real or virtual network port by MAE port and link end. 5648 * See the structure definition for more details 5649 */ 5650 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_OFST 0 5651 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LEN 8 5652 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LO_OFST 0 5653 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LO_LEN 4 5654 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LO_LBN 0 5655 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LO_WIDTH 32 5656 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_HI_OFST 4 5657 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_HI_LEN 4 5658 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_HI_LBN 32 5659 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_HI_WIDTH 32 5660 /* See structuredef: MAE_LINK_ENDPOINT_SELECTOR */ 5661 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_OFST 0 5662 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_LEN 4 5663 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FLAT_OFST 0 5664 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FLAT_LEN 4 5665 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_TYPE_OFST 3 5666 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_TYPE_LEN 1 5667 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 0 5668 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 5669 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 0 5670 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 5671 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 20 5672 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 5673 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 16 5674 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 5675 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 2 5676 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 5677 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 0 5678 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 5679 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LINK_END_OFST 4 5680 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LINK_END_LEN 4 5681 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_OFST 0 5682 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_LEN 8 5683 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_LO_OFST 0 5684 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_LO_LEN 4 5685 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_LO_LBN 0 5686 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_LO_WIDTH 32 5687 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_HI_OFST 4 5688 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_HI_LEN 4 5689 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_HI_LBN 32 5690 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_HI_WIDTH 32 5691 5692 /* MC_CMD_GET_LOOPBACK_MODES_OUT msgresponse */ 5693 #define MC_CMD_GET_LOOPBACK_MODES_OUT_LEN 40 5694 /* Supported loopbacks. */ 5695 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_OFST 0 5696 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LEN 8 5697 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_OFST 0 5698 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_LEN 4 5699 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_LBN 0 5700 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_WIDTH 32 5701 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_OFST 4 5702 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_LEN 4 5703 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_LBN 32 5704 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_WIDTH 32 5705 /* enum property: bitshift */ 5706 /* enum: None. */ 5707 #define MC_CMD_LOOPBACK_NONE 0x0 5708 /* enum: Data. */ 5709 #define MC_CMD_LOOPBACK_DATA 0x1 5710 /* enum: GMAC. */ 5711 #define MC_CMD_LOOPBACK_GMAC 0x2 5712 /* enum: XGMII. */ 5713 #define MC_CMD_LOOPBACK_XGMII 0x3 5714 /* enum: XGXS. */ 5715 #define MC_CMD_LOOPBACK_XGXS 0x4 5716 /* enum: XAUI. */ 5717 #define MC_CMD_LOOPBACK_XAUI 0x5 5718 /* enum: GMII. */ 5719 #define MC_CMD_LOOPBACK_GMII 0x6 5720 /* enum: SGMII. */ 5721 #define MC_CMD_LOOPBACK_SGMII 0x7 5722 /* enum: XGBR. */ 5723 #define MC_CMD_LOOPBACK_XGBR 0x8 5724 /* enum: XFI. */ 5725 #define MC_CMD_LOOPBACK_XFI 0x9 5726 /* enum: XAUI Far. */ 5727 #define MC_CMD_LOOPBACK_XAUI_FAR 0xa 5728 /* enum: GMII Far. */ 5729 #define MC_CMD_LOOPBACK_GMII_FAR 0xb 5730 /* enum: SGMII Far. */ 5731 #define MC_CMD_LOOPBACK_SGMII_FAR 0xc 5732 /* enum: XFI Far. */ 5733 #define MC_CMD_LOOPBACK_XFI_FAR 0xd 5734 /* enum: GPhy. */ 5735 #define MC_CMD_LOOPBACK_GPHY 0xe 5736 /* enum: PhyXS. */ 5737 #define MC_CMD_LOOPBACK_PHYXS 0xf 5738 /* enum: PCS. */ 5739 #define MC_CMD_LOOPBACK_PCS 0x10 5740 /* enum: PMA-PMD. */ 5741 #define MC_CMD_LOOPBACK_PMAPMD 0x11 5742 /* enum: Cross-Port. */ 5743 #define MC_CMD_LOOPBACK_XPORT 0x12 5744 /* enum: XGMII-Wireside. */ 5745 #define MC_CMD_LOOPBACK_XGMII_WS 0x13 5746 /* enum: XAUI Wireside. */ 5747 #define MC_CMD_LOOPBACK_XAUI_WS 0x14 5748 /* enum: XAUI Wireside Far. */ 5749 #define MC_CMD_LOOPBACK_XAUI_WS_FAR 0x15 5750 /* enum: XAUI Wireside near. */ 5751 #define MC_CMD_LOOPBACK_XAUI_WS_NEAR 0x16 5752 /* enum: GMII Wireside. */ 5753 #define MC_CMD_LOOPBACK_GMII_WS 0x17 5754 /* enum: XFI Wireside. */ 5755 #define MC_CMD_LOOPBACK_XFI_WS 0x18 5756 /* enum: XFI Wireside Far. */ 5757 #define MC_CMD_LOOPBACK_XFI_WS_FAR 0x19 5758 /* enum: PhyXS Wireside. */ 5759 #define MC_CMD_LOOPBACK_PHYXS_WS 0x1a 5760 /* enum: PMA lanes MAC-Serdes. */ 5761 #define MC_CMD_LOOPBACK_PMA_INT 0x1b 5762 /* enum: KR Serdes Parallel (Encoder). */ 5763 #define MC_CMD_LOOPBACK_SD_NEAR 0x1c 5764 /* enum: KR Serdes Serial. */ 5765 #define MC_CMD_LOOPBACK_SD_FAR 0x1d 5766 /* enum: PMA lanes MAC-Serdes Wireside. */ 5767 #define MC_CMD_LOOPBACK_PMA_INT_WS 0x1e 5768 /* enum: KR Serdes Parallel Wireside (Full PCS). */ 5769 #define MC_CMD_LOOPBACK_SD_FEP2_WS 0x1f 5770 /* enum: KR Serdes Parallel Wireside (Sym Aligner to TX). */ 5771 #define MC_CMD_LOOPBACK_SD_FEP1_5_WS 0x20 5772 /* enum: KR Serdes Parallel Wireside (Deserializer to Serializer). */ 5773 #define MC_CMD_LOOPBACK_SD_FEP_WS 0x21 5774 /* enum: KR Serdes Serial Wireside. */ 5775 #define MC_CMD_LOOPBACK_SD_FES_WS 0x22 5776 /* enum: Near side of AOE Siena side port */ 5777 #define MC_CMD_LOOPBACK_AOE_INT_NEAR 0x23 5778 /* enum: Medford Wireside datapath loopback */ 5779 #define MC_CMD_LOOPBACK_DATA_WS 0x24 5780 /* enum: Force link up without setting up any physical loopback (snapper use 5781 * only) 5782 */ 5783 #define MC_CMD_LOOPBACK_FORCE_EXT_LINK 0x25 5784 /* Supported loopbacks. */ 5785 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_OFST 8 5786 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LEN 8 5787 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_OFST 8 5788 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_LEN 4 5789 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_LBN 64 5790 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_WIDTH 32 5791 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_OFST 12 5792 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_LEN 4 5793 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_LBN 96 5794 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_WIDTH 32 5795 /* enum property: bitshift */ 5796 /* Enum values, see field(s): */ 5797 /* 100M */ 5798 /* Supported loopbacks. */ 5799 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_OFST 16 5800 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LEN 8 5801 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_OFST 16 5802 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_LEN 4 5803 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_LBN 128 5804 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_WIDTH 32 5805 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_OFST 20 5806 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_LEN 4 5807 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_LBN 160 5808 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_WIDTH 32 5809 /* enum property: bitshift */ 5810 /* Enum values, see field(s): */ 5811 /* 100M */ 5812 /* Supported loopbacks. */ 5813 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_OFST 24 5814 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LEN 8 5815 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_OFST 24 5816 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_LEN 4 5817 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_LBN 192 5818 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_WIDTH 32 5819 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_OFST 28 5820 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_LEN 4 5821 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_LBN 224 5822 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_WIDTH 32 5823 /* enum property: bitshift */ 5824 /* Enum values, see field(s): */ 5825 /* 100M */ 5826 /* Supported loopbacks. */ 5827 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_OFST 32 5828 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LEN 8 5829 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_OFST 32 5830 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_LEN 4 5831 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_LBN 256 5832 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_WIDTH 32 5833 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_OFST 36 5834 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_LEN 4 5835 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_LBN 288 5836 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_WIDTH 32 5837 /* enum property: bitshift */ 5838 /* Enum values, see field(s): */ 5839 /* 100M */ 5840 5841 /* MC_CMD_GET_LOOPBACK_MODES_OUT_V2 msgresponse: Supported loopback modes for 5842 * newer NICs with 25G/50G/100G support 5843 */ 5844 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_LEN 64 5845 /* Supported loopbacks. */ 5846 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_OFST 0 5847 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LEN 8 5848 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_OFST 0 5849 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_LEN 4 5850 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_LBN 0 5851 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_WIDTH 32 5852 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_OFST 4 5853 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_LEN 4 5854 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_LBN 32 5855 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_WIDTH 32 5856 /* enum property: bitshift */ 5857 /* enum: None. */ 5858 /* MC_CMD_LOOPBACK_NONE 0x0 */ 5859 /* enum: Data. */ 5860 /* MC_CMD_LOOPBACK_DATA 0x1 */ 5861 /* enum: GMAC. */ 5862 /* MC_CMD_LOOPBACK_GMAC 0x2 */ 5863 /* enum: XGMII. */ 5864 /* MC_CMD_LOOPBACK_XGMII 0x3 */ 5865 /* enum: XGXS. */ 5866 /* MC_CMD_LOOPBACK_XGXS 0x4 */ 5867 /* enum: XAUI. */ 5868 /* MC_CMD_LOOPBACK_XAUI 0x5 */ 5869 /* enum: GMII. */ 5870 /* MC_CMD_LOOPBACK_GMII 0x6 */ 5871 /* enum: SGMII. */ 5872 /* MC_CMD_LOOPBACK_SGMII 0x7 */ 5873 /* enum: XGBR. */ 5874 /* MC_CMD_LOOPBACK_XGBR 0x8 */ 5875 /* enum: XFI. */ 5876 /* MC_CMD_LOOPBACK_XFI 0x9 */ 5877 /* enum: XAUI Far. */ 5878 /* MC_CMD_LOOPBACK_XAUI_FAR 0xa */ 5879 /* enum: GMII Far. */ 5880 /* MC_CMD_LOOPBACK_GMII_FAR 0xb */ 5881 /* enum: SGMII Far. */ 5882 /* MC_CMD_LOOPBACK_SGMII_FAR 0xc */ 5883 /* enum: XFI Far. */ 5884 /* MC_CMD_LOOPBACK_XFI_FAR 0xd */ 5885 /* enum: GPhy. */ 5886 /* MC_CMD_LOOPBACK_GPHY 0xe */ 5887 /* enum: PhyXS. */ 5888 /* MC_CMD_LOOPBACK_PHYXS 0xf */ 5889 /* enum: PCS. */ 5890 /* MC_CMD_LOOPBACK_PCS 0x10 */ 5891 /* enum: PMA-PMD. */ 5892 /* MC_CMD_LOOPBACK_PMAPMD 0x11 */ 5893 /* enum: Cross-Port. */ 5894 /* MC_CMD_LOOPBACK_XPORT 0x12 */ 5895 /* enum: XGMII-Wireside. */ 5896 /* MC_CMD_LOOPBACK_XGMII_WS 0x13 */ 5897 /* enum: XAUI Wireside. */ 5898 /* MC_CMD_LOOPBACK_XAUI_WS 0x14 */ 5899 /* enum: XAUI Wireside Far. */ 5900 /* MC_CMD_LOOPBACK_XAUI_WS_FAR 0x15 */ 5901 /* enum: XAUI Wireside near. */ 5902 /* MC_CMD_LOOPBACK_XAUI_WS_NEAR 0x16 */ 5903 /* enum: GMII Wireside. */ 5904 /* MC_CMD_LOOPBACK_GMII_WS 0x17 */ 5905 /* enum: XFI Wireside. */ 5906 /* MC_CMD_LOOPBACK_XFI_WS 0x18 */ 5907 /* enum: XFI Wireside Far. */ 5908 /* MC_CMD_LOOPBACK_XFI_WS_FAR 0x19 */ 5909 /* enum: PhyXS Wireside. */ 5910 /* MC_CMD_LOOPBACK_PHYXS_WS 0x1a */ 5911 /* enum: PMA lanes MAC-Serdes. */ 5912 /* MC_CMD_LOOPBACK_PMA_INT 0x1b */ 5913 /* enum: KR Serdes Parallel (Encoder). */ 5914 /* MC_CMD_LOOPBACK_SD_NEAR 0x1c */ 5915 /* enum: KR Serdes Serial. */ 5916 /* MC_CMD_LOOPBACK_SD_FAR 0x1d */ 5917 /* enum: PMA lanes MAC-Serdes Wireside. */ 5918 /* MC_CMD_LOOPBACK_PMA_INT_WS 0x1e */ 5919 /* enum: KR Serdes Parallel Wireside (Full PCS). */ 5920 /* MC_CMD_LOOPBACK_SD_FEP2_WS 0x1f */ 5921 /* enum: KR Serdes Parallel Wireside (Sym Aligner to TX). */ 5922 /* MC_CMD_LOOPBACK_SD_FEP1_5_WS 0x20 */ 5923 /* enum: KR Serdes Parallel Wireside (Deserializer to Serializer). */ 5924 /* MC_CMD_LOOPBACK_SD_FEP_WS 0x21 */ 5925 /* enum: KR Serdes Serial Wireside. */ 5926 /* MC_CMD_LOOPBACK_SD_FES_WS 0x22 */ 5927 /* enum: Near side of AOE Siena side port */ 5928 /* MC_CMD_LOOPBACK_AOE_INT_NEAR 0x23 */ 5929 /* enum: Medford Wireside datapath loopback */ 5930 /* MC_CMD_LOOPBACK_DATA_WS 0x24 */ 5931 /* enum: Force link up without setting up any physical loopback (snapper use 5932 * only) 5933 */ 5934 /* MC_CMD_LOOPBACK_FORCE_EXT_LINK 0x25 */ 5935 /* Supported loopbacks. */ 5936 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_OFST 8 5937 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LEN 8 5938 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_OFST 8 5939 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_LEN 4 5940 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_LBN 64 5941 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_WIDTH 32 5942 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_OFST 12 5943 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_LEN 4 5944 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_LBN 96 5945 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_WIDTH 32 5946 /* enum property: bitshift */ 5947 /* Enum values, see field(s): */ 5948 /* 100M */ 5949 /* Supported loopbacks. */ 5950 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_OFST 16 5951 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LEN 8 5952 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_OFST 16 5953 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_LEN 4 5954 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_LBN 128 5955 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_WIDTH 32 5956 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_OFST 20 5957 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_LEN 4 5958 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_LBN 160 5959 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_WIDTH 32 5960 /* enum property: bitshift */ 5961 /* Enum values, see field(s): */ 5962 /* 100M */ 5963 /* Supported loopbacks. */ 5964 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_OFST 24 5965 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LEN 8 5966 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_OFST 24 5967 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_LEN 4 5968 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_LBN 192 5969 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_WIDTH 32 5970 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_OFST 28 5971 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_LEN 4 5972 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_LBN 224 5973 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_WIDTH 32 5974 /* enum property: bitshift */ 5975 /* Enum values, see field(s): */ 5976 /* 100M */ 5977 /* Supported loopbacks. */ 5978 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_OFST 32 5979 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LEN 8 5980 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_OFST 32 5981 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_LEN 4 5982 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_LBN 256 5983 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_WIDTH 32 5984 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_OFST 36 5985 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_LEN 4 5986 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_LBN 288 5987 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_WIDTH 32 5988 /* enum property: bitshift */ 5989 /* Enum values, see field(s): */ 5990 /* 100M */ 5991 /* Supported 25G loopbacks. */ 5992 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_OFST 40 5993 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LEN 8 5994 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_OFST 40 5995 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_LEN 4 5996 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_LBN 320 5997 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_WIDTH 32 5998 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_OFST 44 5999 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_LEN 4 6000 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_LBN 352 6001 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_WIDTH 32 6002 /* enum property: bitshift */ 6003 /* Enum values, see field(s): */ 6004 /* 100M */ 6005 /* Supported 50 loopbacks. */ 6006 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_OFST 48 6007 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LEN 8 6008 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_OFST 48 6009 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_LEN 4 6010 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_LBN 384 6011 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_WIDTH 32 6012 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_OFST 52 6013 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_LEN 4 6014 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_LBN 416 6015 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_WIDTH 32 6016 /* enum property: bitshift */ 6017 /* Enum values, see field(s): */ 6018 /* 100M */ 6019 /* Supported 100G loopbacks. */ 6020 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_OFST 56 6021 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LEN 8 6022 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_OFST 56 6023 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_LEN 4 6024 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_LBN 448 6025 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_WIDTH 32 6026 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_OFST 60 6027 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_LEN 4 6028 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_LBN 480 6029 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_WIDTH 32 6030 /* enum property: bitshift */ 6031 /* Enum values, see field(s): */ 6032 /* 100M */ 6033 6034 /* MC_CMD_GET_LOOPBACK_MODES_OUT_V3 msgresponse: Supported loopback modes for 6035 * newer NICs with 200G support 6036 */ 6037 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_LEN 72 6038 /* Supported loopbacks. */ 6039 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_OFST 0 6040 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_LEN 8 6041 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_LO_OFST 0 6042 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_LO_LEN 4 6043 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_LO_LBN 0 6044 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_LO_WIDTH 32 6045 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_HI_OFST 4 6046 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_HI_LEN 4 6047 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_HI_LBN 32 6048 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_HI_WIDTH 32 6049 /* enum property: bitshift */ 6050 /* enum: None. */ 6051 /* MC_CMD_LOOPBACK_NONE 0x0 */ 6052 /* enum: Data. */ 6053 /* MC_CMD_LOOPBACK_DATA 0x1 */ 6054 /* enum: GMAC. */ 6055 /* MC_CMD_LOOPBACK_GMAC 0x2 */ 6056 /* enum: XGMII. */ 6057 /* MC_CMD_LOOPBACK_XGMII 0x3 */ 6058 /* enum: XGXS. */ 6059 /* MC_CMD_LOOPBACK_XGXS 0x4 */ 6060 /* enum: XAUI. */ 6061 /* MC_CMD_LOOPBACK_XAUI 0x5 */ 6062 /* enum: GMII. */ 6063 /* MC_CMD_LOOPBACK_GMII 0x6 */ 6064 /* enum: SGMII. */ 6065 /* MC_CMD_LOOPBACK_SGMII 0x7 */ 6066 /* enum: XGBR. */ 6067 /* MC_CMD_LOOPBACK_XGBR 0x8 */ 6068 /* enum: XFI. */ 6069 /* MC_CMD_LOOPBACK_XFI 0x9 */ 6070 /* enum: XAUI Far. */ 6071 /* MC_CMD_LOOPBACK_XAUI_FAR 0xa */ 6072 /* enum: GMII Far. */ 6073 /* MC_CMD_LOOPBACK_GMII_FAR 0xb */ 6074 /* enum: SGMII Far. */ 6075 /* MC_CMD_LOOPBACK_SGMII_FAR 0xc */ 6076 /* enum: XFI Far. */ 6077 /* MC_CMD_LOOPBACK_XFI_FAR 0xd */ 6078 /* enum: GPhy. */ 6079 /* MC_CMD_LOOPBACK_GPHY 0xe */ 6080 /* enum: PhyXS. */ 6081 /* MC_CMD_LOOPBACK_PHYXS 0xf */ 6082 /* enum: PCS. */ 6083 /* MC_CMD_LOOPBACK_PCS 0x10 */ 6084 /* enum: PMA-PMD. */ 6085 /* MC_CMD_LOOPBACK_PMAPMD 0x11 */ 6086 /* enum: Cross-Port. */ 6087 /* MC_CMD_LOOPBACK_XPORT 0x12 */ 6088 /* enum: XGMII-Wireside. */ 6089 /* MC_CMD_LOOPBACK_XGMII_WS 0x13 */ 6090 /* enum: XAUI Wireside. */ 6091 /* MC_CMD_LOOPBACK_XAUI_WS 0x14 */ 6092 /* enum: XAUI Wireside Far. */ 6093 /* MC_CMD_LOOPBACK_XAUI_WS_FAR 0x15 */ 6094 /* enum: XAUI Wireside near. */ 6095 /* MC_CMD_LOOPBACK_XAUI_WS_NEAR 0x16 */ 6096 /* enum: GMII Wireside. */ 6097 /* MC_CMD_LOOPBACK_GMII_WS 0x17 */ 6098 /* enum: XFI Wireside. */ 6099 /* MC_CMD_LOOPBACK_XFI_WS 0x18 */ 6100 /* enum: XFI Wireside Far. */ 6101 /* MC_CMD_LOOPBACK_XFI_WS_FAR 0x19 */ 6102 /* enum: PhyXS Wireside. */ 6103 /* MC_CMD_LOOPBACK_PHYXS_WS 0x1a */ 6104 /* enum: PMA lanes MAC-Serdes. */ 6105 /* MC_CMD_LOOPBACK_PMA_INT 0x1b */ 6106 /* enum: KR Serdes Parallel (Encoder). */ 6107 /* MC_CMD_LOOPBACK_SD_NEAR 0x1c */ 6108 /* enum: KR Serdes Serial. */ 6109 /* MC_CMD_LOOPBACK_SD_FAR 0x1d */ 6110 /* enum: PMA lanes MAC-Serdes Wireside. */ 6111 /* MC_CMD_LOOPBACK_PMA_INT_WS 0x1e */ 6112 /* enum: KR Serdes Parallel Wireside (Full PCS). */ 6113 /* MC_CMD_LOOPBACK_SD_FEP2_WS 0x1f */ 6114 /* enum: KR Serdes Parallel Wireside (Sym Aligner to TX). */ 6115 /* MC_CMD_LOOPBACK_SD_FEP1_5_WS 0x20 */ 6116 /* enum: KR Serdes Parallel Wireside (Deserializer to Serializer). */ 6117 /* MC_CMD_LOOPBACK_SD_FEP_WS 0x21 */ 6118 /* enum: KR Serdes Serial Wireside. */ 6119 /* MC_CMD_LOOPBACK_SD_FES_WS 0x22 */ 6120 /* enum: Near side of AOE Siena side port */ 6121 /* MC_CMD_LOOPBACK_AOE_INT_NEAR 0x23 */ 6122 /* enum: Medford Wireside datapath loopback */ 6123 /* MC_CMD_LOOPBACK_DATA_WS 0x24 */ 6124 /* enum: Force link up without setting up any physical loopback (snapper use 6125 * only) 6126 */ 6127 /* MC_CMD_LOOPBACK_FORCE_EXT_LINK 0x25 */ 6128 /* Supported loopbacks. */ 6129 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_OFST 8 6130 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_LEN 8 6131 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_LO_OFST 8 6132 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_LO_LEN 4 6133 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_LO_LBN 64 6134 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_LO_WIDTH 32 6135 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_HI_OFST 12 6136 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_HI_LEN 4 6137 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_HI_LBN 96 6138 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_HI_WIDTH 32 6139 /* enum property: bitshift */ 6140 /* Enum values, see field(s): */ 6141 /* 100M */ 6142 /* Supported loopbacks. */ 6143 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_OFST 16 6144 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_LEN 8 6145 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_LO_OFST 16 6146 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_LO_LEN 4 6147 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_LO_LBN 128 6148 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_LO_WIDTH 32 6149 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_HI_OFST 20 6150 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_HI_LEN 4 6151 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_HI_LBN 160 6152 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_HI_WIDTH 32 6153 /* enum property: bitshift */ 6154 /* Enum values, see field(s): */ 6155 /* 100M */ 6156 /* Supported loopbacks. */ 6157 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_OFST 24 6158 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_LEN 8 6159 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_LO_OFST 24 6160 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_LO_LEN 4 6161 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_LO_LBN 192 6162 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_LO_WIDTH 32 6163 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_HI_OFST 28 6164 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_HI_LEN 4 6165 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_HI_LBN 224 6166 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_HI_WIDTH 32 6167 /* enum property: bitshift */ 6168 /* Enum values, see field(s): */ 6169 /* 100M */ 6170 /* Supported loopbacks. */ 6171 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_OFST 32 6172 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_LEN 8 6173 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_LO_OFST 32 6174 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_LO_LEN 4 6175 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_LO_LBN 256 6176 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_LO_WIDTH 32 6177 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_HI_OFST 36 6178 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_HI_LEN 4 6179 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_HI_LBN 288 6180 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_HI_WIDTH 32 6181 /* enum property: bitshift */ 6182 /* Enum values, see field(s): */ 6183 /* 100M */ 6184 /* Supported 25G loopbacks. */ 6185 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_OFST 40 6186 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_LEN 8 6187 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_LO_OFST 40 6188 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_LO_LEN 4 6189 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_LO_LBN 320 6190 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_LO_WIDTH 32 6191 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_HI_OFST 44 6192 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_HI_LEN 4 6193 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_HI_LBN 352 6194 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_HI_WIDTH 32 6195 /* enum property: bitshift */ 6196 /* Enum values, see field(s): */ 6197 /* 100M */ 6198 /* Supported 50 loopbacks. */ 6199 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_OFST 48 6200 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_LEN 8 6201 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_LO_OFST 48 6202 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_LO_LEN 4 6203 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_LO_LBN 384 6204 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_LO_WIDTH 32 6205 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_HI_OFST 52 6206 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_HI_LEN 4 6207 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_HI_LBN 416 6208 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_HI_WIDTH 32 6209 /* enum property: bitshift */ 6210 /* Enum values, see field(s): */ 6211 /* 100M */ 6212 /* Supported 100G loopbacks. */ 6213 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_OFST 56 6214 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_LEN 8 6215 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_LO_OFST 56 6216 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_LO_LEN 4 6217 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_LO_LBN 448 6218 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_LO_WIDTH 32 6219 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_HI_OFST 60 6220 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_HI_LEN 4 6221 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_HI_LBN 480 6222 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_HI_WIDTH 32 6223 /* enum property: bitshift */ 6224 /* Enum values, see field(s): */ 6225 /* 100M */ 6226 /* Supported 200G loopbacks. */ 6227 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_OFST 64 6228 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_LEN 8 6229 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_LO_OFST 64 6230 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_LO_LEN 4 6231 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_LO_LBN 512 6232 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_LO_WIDTH 32 6233 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_HI_OFST 68 6234 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_HI_LEN 4 6235 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_HI_LBN 544 6236 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_HI_WIDTH 32 6237 /* enum property: bitshift */ 6238 /* Enum values, see field(s): */ 6239 /* 100M */ 6240 6241 /* AN_TYPE structuredef: Auto-negotiation types defined in IEEE802.3 */ 6242 #define AN_TYPE_LEN 4 6243 #define AN_TYPE_TYPE_OFST 0 6244 #define AN_TYPE_TYPE_LEN 4 6245 /* enum: None, AN disabled or not supported */ 6246 #define MC_CMD_AN_NONE 0x0 6247 /* enum: Clause 28 - BASE-T */ 6248 #define MC_CMD_AN_CLAUSE28 0x1 6249 /* enum: Clause 37 - BASE-X */ 6250 #define MC_CMD_AN_CLAUSE37 0x2 6251 /* enum: Clause 73 - BASE-R startup protocol for backplane and copper cable 6252 * assemblies. Includes Clause 72/Clause 92 link-training. 6253 */ 6254 #define MC_CMD_AN_CLAUSE73 0x3 6255 #define AN_TYPE_TYPE_LBN 0 6256 #define AN_TYPE_TYPE_WIDTH 32 6257 6258 /* FEC_TYPE structuredef: Forward error correction types defined in IEEE802.3 6259 */ 6260 #define FEC_TYPE_LEN 4 6261 #define FEC_TYPE_TYPE_OFST 0 6262 #define FEC_TYPE_TYPE_LEN 4 6263 /* enum: No FEC */ 6264 #define MC_CMD_FEC_NONE 0x0 6265 /* enum: Clause 74 BASE-R FEC (a.k.a Firecode) */ 6266 #define MC_CMD_FEC_BASER 0x1 6267 /* enum: Clause 91/Clause 108 Reed-Solomon FEC */ 6268 #define MC_CMD_FEC_RS 0x2 6269 #define FEC_TYPE_TYPE_LBN 0 6270 #define FEC_TYPE_TYPE_WIDTH 32 6271 6272 6273 /***********************************/ 6274 /* MC_CMD_GET_LINK 6275 * Read the unified MAC/PHY link state. Locks required: None Return code: 0, 6276 * ETIME. 6277 */ 6278 #define MC_CMD_GET_LINK 0x29 6279 #define MC_CMD_GET_LINK_MSGSET 0x29 6280 #undef MC_CMD_0x29_PRIVILEGE_CTG 6281 6282 #define MC_CMD_0x29_PRIVILEGE_CTG SRIOV_CTG_GENERAL 6283 6284 /* MC_CMD_GET_LINK_IN msgrequest */ 6285 #define MC_CMD_GET_LINK_IN_LEN 0 6286 6287 /* MC_CMD_GET_LINK_IN_V2 msgrequest */ 6288 #define MC_CMD_GET_LINK_IN_V2_LEN 8 6289 /* Target port to request link state for. Uses MAE_LINK_ENDPOINT_SELECTOR which 6290 * identifies a real or virtual network port by MAE port and link end. See the 6291 * structure definition for more details. 6292 */ 6293 #define MC_CMD_GET_LINK_IN_V2_TARGET_OFST 0 6294 #define MC_CMD_GET_LINK_IN_V2_TARGET_LEN 8 6295 #define MC_CMD_GET_LINK_IN_V2_TARGET_LO_OFST 0 6296 #define MC_CMD_GET_LINK_IN_V2_TARGET_LO_LEN 4 6297 #define MC_CMD_GET_LINK_IN_V2_TARGET_LO_LBN 0 6298 #define MC_CMD_GET_LINK_IN_V2_TARGET_LO_WIDTH 32 6299 #define MC_CMD_GET_LINK_IN_V2_TARGET_HI_OFST 4 6300 #define MC_CMD_GET_LINK_IN_V2_TARGET_HI_LEN 4 6301 #define MC_CMD_GET_LINK_IN_V2_TARGET_HI_LBN 32 6302 #define MC_CMD_GET_LINK_IN_V2_TARGET_HI_WIDTH 32 6303 /* See structuredef: MAE_LINK_ENDPOINT_SELECTOR */ 6304 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_OFST 0 6305 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_LEN 4 6306 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FLAT_OFST 0 6307 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FLAT_LEN 4 6308 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_TYPE_OFST 3 6309 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_TYPE_LEN 1 6310 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 0 6311 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 6312 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 0 6313 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 6314 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 20 6315 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 6316 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 16 6317 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 6318 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 2 6319 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 6320 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 0 6321 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 6322 #define MC_CMD_GET_LINK_IN_V2_TARGET_LINK_END_OFST 4 6323 #define MC_CMD_GET_LINK_IN_V2_TARGET_LINK_END_LEN 4 6324 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_OFST 0 6325 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_LEN 8 6326 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_LO_OFST 0 6327 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_LO_LEN 4 6328 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_LO_LBN 0 6329 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_LO_WIDTH 32 6330 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_HI_OFST 4 6331 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_HI_LEN 4 6332 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_HI_LBN 32 6333 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_HI_WIDTH 32 6334 6335 /* MC_CMD_GET_LINK_OUT msgresponse */ 6336 #define MC_CMD_GET_LINK_OUT_LEN 28 6337 /* Near-side advertised capabilities. Refer to 6338 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 6339 */ 6340 #define MC_CMD_GET_LINK_OUT_CAP_OFST 0 6341 #define MC_CMD_GET_LINK_OUT_CAP_LEN 4 6342 /* Link-partner advertised capabilities. Refer to 6343 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 6344 */ 6345 #define MC_CMD_GET_LINK_OUT_LP_CAP_OFST 4 6346 #define MC_CMD_GET_LINK_OUT_LP_CAP_LEN 4 6347 /* Autonegotiated speed in mbit/s. The link may still be down even if this 6348 * reads non-zero. 6349 */ 6350 #define MC_CMD_GET_LINK_OUT_LINK_SPEED_OFST 8 6351 #define MC_CMD_GET_LINK_OUT_LINK_SPEED_LEN 4 6352 /* Current loopback setting. */ 6353 #define MC_CMD_GET_LINK_OUT_LOOPBACK_MODE_OFST 12 6354 #define MC_CMD_GET_LINK_OUT_LOOPBACK_MODE_LEN 4 6355 /* Enum values, see field(s): */ 6356 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 6357 #define MC_CMD_GET_LINK_OUT_FLAGS_OFST 16 6358 #define MC_CMD_GET_LINK_OUT_FLAGS_LEN 4 6359 #define MC_CMD_GET_LINK_OUT_LINK_UP_OFST 16 6360 #define MC_CMD_GET_LINK_OUT_LINK_UP_LBN 0 6361 #define MC_CMD_GET_LINK_OUT_LINK_UP_WIDTH 1 6362 #define MC_CMD_GET_LINK_OUT_FULL_DUPLEX_OFST 16 6363 #define MC_CMD_GET_LINK_OUT_FULL_DUPLEX_LBN 1 6364 #define MC_CMD_GET_LINK_OUT_FULL_DUPLEX_WIDTH 1 6365 #define MC_CMD_GET_LINK_OUT_BPX_LINK_OFST 16 6366 #define MC_CMD_GET_LINK_OUT_BPX_LINK_LBN 2 6367 #define MC_CMD_GET_LINK_OUT_BPX_LINK_WIDTH 1 6368 #define MC_CMD_GET_LINK_OUT_PHY_LINK_OFST 16 6369 #define MC_CMD_GET_LINK_OUT_PHY_LINK_LBN 3 6370 #define MC_CMD_GET_LINK_OUT_PHY_LINK_WIDTH 1 6371 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_RX_OFST 16 6372 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_RX_LBN 6 6373 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_RX_WIDTH 1 6374 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_TX_OFST 16 6375 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_TX_LBN 7 6376 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_TX_WIDTH 1 6377 #define MC_CMD_GET_LINK_OUT_MODULE_UP_VALID_OFST 16 6378 #define MC_CMD_GET_LINK_OUT_MODULE_UP_VALID_LBN 8 6379 #define MC_CMD_GET_LINK_OUT_MODULE_UP_VALID_WIDTH 1 6380 #define MC_CMD_GET_LINK_OUT_MODULE_UP_OFST 16 6381 #define MC_CMD_GET_LINK_OUT_MODULE_UP_LBN 9 6382 #define MC_CMD_GET_LINK_OUT_MODULE_UP_WIDTH 1 6383 /* This returns the negotiated flow control value. */ 6384 #define MC_CMD_GET_LINK_OUT_FCNTL_OFST 20 6385 #define MC_CMD_GET_LINK_OUT_FCNTL_LEN 4 6386 /* Enum values, see field(s): */ 6387 /* MC_CMD_SET_MAC/MC_CMD_SET_MAC_IN/FCNTL */ 6388 #define MC_CMD_GET_LINK_OUT_MAC_FAULT_OFST 24 6389 #define MC_CMD_GET_LINK_OUT_MAC_FAULT_LEN 4 6390 #define MC_CMD_MAC_FAULT_XGMII_LOCAL_OFST 24 6391 #define MC_CMD_MAC_FAULT_XGMII_LOCAL_LBN 0 6392 #define MC_CMD_MAC_FAULT_XGMII_LOCAL_WIDTH 1 6393 #define MC_CMD_MAC_FAULT_XGMII_REMOTE_OFST 24 6394 #define MC_CMD_MAC_FAULT_XGMII_REMOTE_LBN 1 6395 #define MC_CMD_MAC_FAULT_XGMII_REMOTE_WIDTH 1 6396 #define MC_CMD_MAC_FAULT_SGMII_REMOTE_OFST 24 6397 #define MC_CMD_MAC_FAULT_SGMII_REMOTE_LBN 2 6398 #define MC_CMD_MAC_FAULT_SGMII_REMOTE_WIDTH 1 6399 #define MC_CMD_MAC_FAULT_PENDING_RECONFIG_OFST 24 6400 #define MC_CMD_MAC_FAULT_PENDING_RECONFIG_LBN 3 6401 #define MC_CMD_MAC_FAULT_PENDING_RECONFIG_WIDTH 1 6402 6403 /* MC_CMD_GET_LINK_OUT_V2 msgresponse: Extended link state information */ 6404 #define MC_CMD_GET_LINK_OUT_V2_LEN 44 6405 /* Near-side advertised capabilities. Refer to 6406 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 6407 */ 6408 #define MC_CMD_GET_LINK_OUT_V2_CAP_OFST 0 6409 #define MC_CMD_GET_LINK_OUT_V2_CAP_LEN 4 6410 /* Link-partner advertised capabilities. Refer to 6411 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 6412 */ 6413 #define MC_CMD_GET_LINK_OUT_V2_LP_CAP_OFST 4 6414 #define MC_CMD_GET_LINK_OUT_V2_LP_CAP_LEN 4 6415 /* Autonegotiated speed in mbit/s. The link may still be down even if this 6416 * reads non-zero. 6417 */ 6418 #define MC_CMD_GET_LINK_OUT_V2_LINK_SPEED_OFST 8 6419 #define MC_CMD_GET_LINK_OUT_V2_LINK_SPEED_LEN 4 6420 /* Current loopback setting. */ 6421 #define MC_CMD_GET_LINK_OUT_V2_LOOPBACK_MODE_OFST 12 6422 #define MC_CMD_GET_LINK_OUT_V2_LOOPBACK_MODE_LEN 4 6423 /* Enum values, see field(s): */ 6424 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 6425 #define MC_CMD_GET_LINK_OUT_V2_FLAGS_OFST 16 6426 #define MC_CMD_GET_LINK_OUT_V2_FLAGS_LEN 4 6427 #define MC_CMD_GET_LINK_OUT_V2_LINK_UP_OFST 16 6428 #define MC_CMD_GET_LINK_OUT_V2_LINK_UP_LBN 0 6429 #define MC_CMD_GET_LINK_OUT_V2_LINK_UP_WIDTH 1 6430 #define MC_CMD_GET_LINK_OUT_V2_FULL_DUPLEX_OFST 16 6431 #define MC_CMD_GET_LINK_OUT_V2_FULL_DUPLEX_LBN 1 6432 #define MC_CMD_GET_LINK_OUT_V2_FULL_DUPLEX_WIDTH 1 6433 #define MC_CMD_GET_LINK_OUT_V2_BPX_LINK_OFST 16 6434 #define MC_CMD_GET_LINK_OUT_V2_BPX_LINK_LBN 2 6435 #define MC_CMD_GET_LINK_OUT_V2_BPX_LINK_WIDTH 1 6436 #define MC_CMD_GET_LINK_OUT_V2_PHY_LINK_OFST 16 6437 #define MC_CMD_GET_LINK_OUT_V2_PHY_LINK_LBN 3 6438 #define MC_CMD_GET_LINK_OUT_V2_PHY_LINK_WIDTH 1 6439 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_RX_OFST 16 6440 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_RX_LBN 6 6441 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_RX_WIDTH 1 6442 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_TX_OFST 16 6443 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_TX_LBN 7 6444 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_TX_WIDTH 1 6445 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_VALID_OFST 16 6446 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_VALID_LBN 8 6447 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_VALID_WIDTH 1 6448 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_OFST 16 6449 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_LBN 9 6450 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_WIDTH 1 6451 /* This returns the negotiated flow control value. */ 6452 #define MC_CMD_GET_LINK_OUT_V2_FCNTL_OFST 20 6453 #define MC_CMD_GET_LINK_OUT_V2_FCNTL_LEN 4 6454 /* Enum values, see field(s): */ 6455 /* MC_CMD_SET_MAC/MC_CMD_SET_MAC_IN/FCNTL */ 6456 #define MC_CMD_GET_LINK_OUT_V2_MAC_FAULT_OFST 24 6457 #define MC_CMD_GET_LINK_OUT_V2_MAC_FAULT_LEN 4 6458 /* MC_CMD_MAC_FAULT_XGMII_LOCAL_OFST 24 */ 6459 /* MC_CMD_MAC_FAULT_XGMII_LOCAL_LBN 0 */ 6460 /* MC_CMD_MAC_FAULT_XGMII_LOCAL_WIDTH 1 */ 6461 /* MC_CMD_MAC_FAULT_XGMII_REMOTE_OFST 24 */ 6462 /* MC_CMD_MAC_FAULT_XGMII_REMOTE_LBN 1 */ 6463 /* MC_CMD_MAC_FAULT_XGMII_REMOTE_WIDTH 1 */ 6464 /* MC_CMD_MAC_FAULT_SGMII_REMOTE_OFST 24 */ 6465 /* MC_CMD_MAC_FAULT_SGMII_REMOTE_LBN 2 */ 6466 /* MC_CMD_MAC_FAULT_SGMII_REMOTE_WIDTH 1 */ 6467 /* MC_CMD_MAC_FAULT_PENDING_RECONFIG_OFST 24 */ 6468 /* MC_CMD_MAC_FAULT_PENDING_RECONFIG_LBN 3 */ 6469 /* MC_CMD_MAC_FAULT_PENDING_RECONFIG_WIDTH 1 */ 6470 /* True local device capabilities (taking into account currently used PMD/MDI, 6471 * e.g. plugged-in module). In general, subset of 6472 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP, but may include extra _FEC_REQUEST 6473 * bits, if the PMD requires FEC. 0 if unknown (e.g. module unplugged). Equal 6474 * to SUPPORTED_CAP for non-pluggable PMDs. Refer to 6475 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 6476 */ 6477 #define MC_CMD_GET_LINK_OUT_V2_LD_CAP_OFST 28 6478 #define MC_CMD_GET_LINK_OUT_V2_LD_CAP_LEN 4 6479 /* Auto-negotiation type used on the link */ 6480 #define MC_CMD_GET_LINK_OUT_V2_AN_TYPE_OFST 32 6481 #define MC_CMD_GET_LINK_OUT_V2_AN_TYPE_LEN 4 6482 /* Enum values, see field(s): */ 6483 /* AN_TYPE/TYPE */ 6484 /* Forward error correction used on the link */ 6485 #define MC_CMD_GET_LINK_OUT_V2_FEC_TYPE_OFST 36 6486 #define MC_CMD_GET_LINK_OUT_V2_FEC_TYPE_LEN 4 6487 /* Enum values, see field(s): */ 6488 /* FEC_TYPE/TYPE */ 6489 #define MC_CMD_GET_LINK_OUT_V2_EXT_FLAGS_OFST 40 6490 #define MC_CMD_GET_LINK_OUT_V2_EXT_FLAGS_LEN 4 6491 #define MC_CMD_GET_LINK_OUT_V2_PMD_MDI_CONNECTED_OFST 40 6492 #define MC_CMD_GET_LINK_OUT_V2_PMD_MDI_CONNECTED_LBN 0 6493 #define MC_CMD_GET_LINK_OUT_V2_PMD_MDI_CONNECTED_WIDTH 1 6494 #define MC_CMD_GET_LINK_OUT_V2_PMD_READY_OFST 40 6495 #define MC_CMD_GET_LINK_OUT_V2_PMD_READY_LBN 1 6496 #define MC_CMD_GET_LINK_OUT_V2_PMD_READY_WIDTH 1 6497 #define MC_CMD_GET_LINK_OUT_V2_PMD_LINK_UP_OFST 40 6498 #define MC_CMD_GET_LINK_OUT_V2_PMD_LINK_UP_LBN 2 6499 #define MC_CMD_GET_LINK_OUT_V2_PMD_LINK_UP_WIDTH 1 6500 #define MC_CMD_GET_LINK_OUT_V2_PMA_LINK_UP_OFST 40 6501 #define MC_CMD_GET_LINK_OUT_V2_PMA_LINK_UP_LBN 3 6502 #define MC_CMD_GET_LINK_OUT_V2_PMA_LINK_UP_WIDTH 1 6503 #define MC_CMD_GET_LINK_OUT_V2_PCS_LOCK_OFST 40 6504 #define MC_CMD_GET_LINK_OUT_V2_PCS_LOCK_LBN 4 6505 #define MC_CMD_GET_LINK_OUT_V2_PCS_LOCK_WIDTH 1 6506 #define MC_CMD_GET_LINK_OUT_V2_ALIGN_LOCK_OFST 40 6507 #define MC_CMD_GET_LINK_OUT_V2_ALIGN_LOCK_LBN 5 6508 #define MC_CMD_GET_LINK_OUT_V2_ALIGN_LOCK_WIDTH 1 6509 #define MC_CMD_GET_LINK_OUT_V2_HI_BER_OFST 40 6510 #define MC_CMD_GET_LINK_OUT_V2_HI_BER_LBN 6 6511 #define MC_CMD_GET_LINK_OUT_V2_HI_BER_WIDTH 1 6512 #define MC_CMD_GET_LINK_OUT_V2_FEC_LOCK_OFST 40 6513 #define MC_CMD_GET_LINK_OUT_V2_FEC_LOCK_LBN 7 6514 #define MC_CMD_GET_LINK_OUT_V2_FEC_LOCK_WIDTH 1 6515 #define MC_CMD_GET_LINK_OUT_V2_AN_DONE_OFST 40 6516 #define MC_CMD_GET_LINK_OUT_V2_AN_DONE_LBN 8 6517 #define MC_CMD_GET_LINK_OUT_V2_AN_DONE_WIDTH 1 6518 #define MC_CMD_GET_LINK_OUT_V2_PORT_SHUTDOWN_OFST 40 6519 #define MC_CMD_GET_LINK_OUT_V2_PORT_SHUTDOWN_LBN 9 6520 #define MC_CMD_GET_LINK_OUT_V2_PORT_SHUTDOWN_WIDTH 1 6521 6522 6523 /***********************************/ 6524 /* MC_CMD_SET_LINK 6525 * Write the unified MAC/PHY link configuration. Locks required: None. Return 6526 * code: 0, EINVAL, ETIME, EAGAIN 6527 */ 6528 #define MC_CMD_SET_LINK 0x2a 6529 #define MC_CMD_SET_LINK_MSGSET 0x2a 6530 #undef MC_CMD_0x2a_PRIVILEGE_CTG 6531 6532 #define MC_CMD_0x2a_PRIVILEGE_CTG SRIOV_CTG_LINK 6533 6534 /* MC_CMD_SET_LINK_IN msgrequest */ 6535 #define MC_CMD_SET_LINK_IN_LEN 16 6536 /* Near-side advertised capabilities. Refer to 6537 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 6538 */ 6539 #define MC_CMD_SET_LINK_IN_CAP_OFST 0 6540 #define MC_CMD_SET_LINK_IN_CAP_LEN 4 6541 /* Flags */ 6542 #define MC_CMD_SET_LINK_IN_FLAGS_OFST 4 6543 #define MC_CMD_SET_LINK_IN_FLAGS_LEN 4 6544 #define MC_CMD_SET_LINK_IN_LOWPOWER_OFST 4 6545 #define MC_CMD_SET_LINK_IN_LOWPOWER_LBN 0 6546 #define MC_CMD_SET_LINK_IN_LOWPOWER_WIDTH 1 6547 #define MC_CMD_SET_LINK_IN_POWEROFF_OFST 4 6548 #define MC_CMD_SET_LINK_IN_POWEROFF_LBN 1 6549 #define MC_CMD_SET_LINK_IN_POWEROFF_WIDTH 1 6550 #define MC_CMD_SET_LINK_IN_TXDIS_OFST 4 6551 #define MC_CMD_SET_LINK_IN_TXDIS_LBN 2 6552 #define MC_CMD_SET_LINK_IN_TXDIS_WIDTH 1 6553 #define MC_CMD_SET_LINK_IN_LINKDOWN_OFST 4 6554 #define MC_CMD_SET_LINK_IN_LINKDOWN_LBN 3 6555 #define MC_CMD_SET_LINK_IN_LINKDOWN_WIDTH 1 6556 /* Loopback mode. */ 6557 #define MC_CMD_SET_LINK_IN_LOOPBACK_MODE_OFST 8 6558 #define MC_CMD_SET_LINK_IN_LOOPBACK_MODE_LEN 4 6559 /* Enum values, see field(s): */ 6560 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 6561 /* A loopback speed of "0" is supported, and means (choose any available 6562 * speed). 6563 */ 6564 #define MC_CMD_SET_LINK_IN_LOOPBACK_SPEED_OFST 12 6565 #define MC_CMD_SET_LINK_IN_LOOPBACK_SPEED_LEN 4 6566 6567 /* MC_CMD_SET_LINK_IN_V2 msgrequest: Updated SET_LINK to include sequence 6568 * number to ensure this SET_LINK command corresponds to the latest 6569 * MODULECHANGE event. 6570 */ 6571 #define MC_CMD_SET_LINK_IN_V2_LEN 17 6572 /* Near-side advertised capabilities. Refer to 6573 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 6574 */ 6575 #define MC_CMD_SET_LINK_IN_V2_CAP_OFST 0 6576 #define MC_CMD_SET_LINK_IN_V2_CAP_LEN 4 6577 /* Flags */ 6578 #define MC_CMD_SET_LINK_IN_V2_FLAGS_OFST 4 6579 #define MC_CMD_SET_LINK_IN_V2_FLAGS_LEN 4 6580 #define MC_CMD_SET_LINK_IN_V2_LOWPOWER_OFST 4 6581 #define MC_CMD_SET_LINK_IN_V2_LOWPOWER_LBN 0 6582 #define MC_CMD_SET_LINK_IN_V2_LOWPOWER_WIDTH 1 6583 #define MC_CMD_SET_LINK_IN_V2_POWEROFF_OFST 4 6584 #define MC_CMD_SET_LINK_IN_V2_POWEROFF_LBN 1 6585 #define MC_CMD_SET_LINK_IN_V2_POWEROFF_WIDTH 1 6586 #define MC_CMD_SET_LINK_IN_V2_TXDIS_OFST 4 6587 #define MC_CMD_SET_LINK_IN_V2_TXDIS_LBN 2 6588 #define MC_CMD_SET_LINK_IN_V2_TXDIS_WIDTH 1 6589 #define MC_CMD_SET_LINK_IN_V2_LINKDOWN_OFST 4 6590 #define MC_CMD_SET_LINK_IN_V2_LINKDOWN_LBN 3 6591 #define MC_CMD_SET_LINK_IN_V2_LINKDOWN_WIDTH 1 6592 /* Loopback mode. */ 6593 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_MODE_OFST 8 6594 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_MODE_LEN 4 6595 /* Enum values, see field(s): */ 6596 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 6597 /* A loopback speed of "0" is supported, and means (choose any available 6598 * speed). 6599 */ 6600 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_SPEED_OFST 12 6601 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_SPEED_LEN 4 6602 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_OFST 16 6603 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_LEN 1 6604 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_NUMBER_OFST 16 6605 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_NUMBER_LBN 0 6606 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_NUMBER_WIDTH 7 6607 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_IGNORE_OFST 16 6608 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_IGNORE_LBN 7 6609 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_IGNORE_WIDTH 1 6610 6611 /* MC_CMD_SET_LINK_IN_V3 msgrequest */ 6612 #define MC_CMD_SET_LINK_IN_V3_LEN 28 6613 /* Near-side advertised capabilities. Refer to 6614 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 6615 */ 6616 #define MC_CMD_SET_LINK_IN_V3_CAP_OFST 0 6617 #define MC_CMD_SET_LINK_IN_V3_CAP_LEN 4 6618 /* Flags */ 6619 #define MC_CMD_SET_LINK_IN_V3_FLAGS_OFST 4 6620 #define MC_CMD_SET_LINK_IN_V3_FLAGS_LEN 4 6621 #define MC_CMD_SET_LINK_IN_V3_LOWPOWER_OFST 4 6622 #define MC_CMD_SET_LINK_IN_V3_LOWPOWER_LBN 0 6623 #define MC_CMD_SET_LINK_IN_V3_LOWPOWER_WIDTH 1 6624 #define MC_CMD_SET_LINK_IN_V3_POWEROFF_OFST 4 6625 #define MC_CMD_SET_LINK_IN_V3_POWEROFF_LBN 1 6626 #define MC_CMD_SET_LINK_IN_V3_POWEROFF_WIDTH 1 6627 #define MC_CMD_SET_LINK_IN_V3_TXDIS_OFST 4 6628 #define MC_CMD_SET_LINK_IN_V3_TXDIS_LBN 2 6629 #define MC_CMD_SET_LINK_IN_V3_TXDIS_WIDTH 1 6630 #define MC_CMD_SET_LINK_IN_V3_LINKDOWN_OFST 4 6631 #define MC_CMD_SET_LINK_IN_V3_LINKDOWN_LBN 3 6632 #define MC_CMD_SET_LINK_IN_V3_LINKDOWN_WIDTH 1 6633 /* Loopback mode. */ 6634 #define MC_CMD_SET_LINK_IN_V3_LOOPBACK_MODE_OFST 8 6635 #define MC_CMD_SET_LINK_IN_V3_LOOPBACK_MODE_LEN 4 6636 /* Enum values, see field(s): */ 6637 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 6638 /* A loopback speed of "0" is supported, and means (choose any available 6639 * speed). 6640 */ 6641 #define MC_CMD_SET_LINK_IN_V3_LOOPBACK_SPEED_OFST 12 6642 #define MC_CMD_SET_LINK_IN_V3_LOOPBACK_SPEED_LEN 4 6643 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_OFST 16 6644 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_LEN 1 6645 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_NUMBER_OFST 16 6646 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_NUMBER_LBN 0 6647 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_NUMBER_WIDTH 7 6648 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_IGNORE_OFST 16 6649 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_IGNORE_LBN 7 6650 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_IGNORE_WIDTH 1 6651 /* Padding */ 6652 #define MC_CMD_SET_LINK_IN_V3_RESERVED_OFST 17 6653 #define MC_CMD_SET_LINK_IN_V3_RESERVED_LEN 3 6654 /* Target port to set link state for. Uses MAE_LINK_ENDPOINT_SELECTOR which 6655 * identifies a real or virtual network port by MAE port and link end. See the 6656 * structure definition for more details 6657 */ 6658 #define MC_CMD_SET_LINK_IN_V3_TARGET_OFST 20 6659 #define MC_CMD_SET_LINK_IN_V3_TARGET_LEN 8 6660 #define MC_CMD_SET_LINK_IN_V3_TARGET_LO_OFST 20 6661 #define MC_CMD_SET_LINK_IN_V3_TARGET_LO_LEN 4 6662 #define MC_CMD_SET_LINK_IN_V3_TARGET_LO_LBN 160 6663 #define MC_CMD_SET_LINK_IN_V3_TARGET_LO_WIDTH 32 6664 #define MC_CMD_SET_LINK_IN_V3_TARGET_HI_OFST 24 6665 #define MC_CMD_SET_LINK_IN_V3_TARGET_HI_LEN 4 6666 #define MC_CMD_SET_LINK_IN_V3_TARGET_HI_LBN 192 6667 #define MC_CMD_SET_LINK_IN_V3_TARGET_HI_WIDTH 32 6668 /* See structuredef: MAE_LINK_ENDPOINT_SELECTOR */ 6669 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_OFST 20 6670 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_LEN 4 6671 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FLAT_OFST 20 6672 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FLAT_LEN 4 6673 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_TYPE_OFST 23 6674 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_TYPE_LEN 1 6675 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 20 6676 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 6677 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 160 6678 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 6679 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 180 6680 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 6681 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 176 6682 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 6683 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 22 6684 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 6685 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 20 6686 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 6687 #define MC_CMD_SET_LINK_IN_V3_TARGET_LINK_END_OFST 24 6688 #define MC_CMD_SET_LINK_IN_V3_TARGET_LINK_END_LEN 4 6689 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_OFST 20 6690 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_LEN 8 6691 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_LO_OFST 20 6692 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_LO_LEN 4 6693 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_LO_LBN 160 6694 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_LO_WIDTH 32 6695 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_HI_OFST 24 6696 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_HI_LEN 4 6697 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_HI_LBN 192 6698 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_HI_WIDTH 32 6699 6700 /* MC_CMD_SET_LINK_OUT msgresponse */ 6701 #define MC_CMD_SET_LINK_OUT_LEN 0 6702 6703 6704 /***********************************/ 6705 /* MC_CMD_SET_ID_LED 6706 * Set identification LED state. Locks required: None. Return code: 0, EINVAL 6707 */ 6708 #define MC_CMD_SET_ID_LED 0x2b 6709 #define MC_CMD_SET_ID_LED_MSGSET 0x2b 6710 #undef MC_CMD_0x2b_PRIVILEGE_CTG 6711 6712 #define MC_CMD_0x2b_PRIVILEGE_CTG SRIOV_CTG_LINK 6713 6714 /* MC_CMD_SET_ID_LED_IN msgrequest */ 6715 #define MC_CMD_SET_ID_LED_IN_LEN 4 6716 /* Set LED state. */ 6717 #define MC_CMD_SET_ID_LED_IN_STATE_OFST 0 6718 #define MC_CMD_SET_ID_LED_IN_STATE_LEN 4 6719 #define MC_CMD_LED_OFF 0x0 /* enum */ 6720 #define MC_CMD_LED_ON 0x1 /* enum */ 6721 #define MC_CMD_LED_DEFAULT 0x2 /* enum */ 6722 6723 /* MC_CMD_SET_ID_LED_OUT msgresponse */ 6724 #define MC_CMD_SET_ID_LED_OUT_LEN 0 6725 6726 6727 /***********************************/ 6728 /* MC_CMD_SET_MAC 6729 * Set MAC configuration. Locks required: None. Return code: 0, EINVAL 6730 */ 6731 #define MC_CMD_SET_MAC 0x2c 6732 #define MC_CMD_SET_MAC_MSGSET 0x2c 6733 #undef MC_CMD_0x2c_PRIVILEGE_CTG 6734 6735 #define MC_CMD_0x2c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 6736 6737 /* MC_CMD_SET_MAC_IN msgrequest */ 6738 #define MC_CMD_SET_MAC_IN_LEN 28 6739 /* The MTU is the MTU programmed directly into the XMAC/GMAC (inclusive of 6740 * EtherII, VLAN, bug16011 padding). 6741 */ 6742 #define MC_CMD_SET_MAC_IN_MTU_OFST 0 6743 #define MC_CMD_SET_MAC_IN_MTU_LEN 4 6744 #define MC_CMD_SET_MAC_IN_DRAIN_OFST 4 6745 #define MC_CMD_SET_MAC_IN_DRAIN_LEN 4 6746 #define MC_CMD_SET_MAC_IN_ADDR_OFST 8 6747 #define MC_CMD_SET_MAC_IN_ADDR_LEN 8 6748 #define MC_CMD_SET_MAC_IN_ADDR_LO_OFST 8 6749 #define MC_CMD_SET_MAC_IN_ADDR_LO_LEN 4 6750 #define MC_CMD_SET_MAC_IN_ADDR_LO_LBN 64 6751 #define MC_CMD_SET_MAC_IN_ADDR_LO_WIDTH 32 6752 #define MC_CMD_SET_MAC_IN_ADDR_HI_OFST 12 6753 #define MC_CMD_SET_MAC_IN_ADDR_HI_LEN 4 6754 #define MC_CMD_SET_MAC_IN_ADDR_HI_LBN 96 6755 #define MC_CMD_SET_MAC_IN_ADDR_HI_WIDTH 32 6756 #define MC_CMD_SET_MAC_IN_REJECT_OFST 16 6757 #define MC_CMD_SET_MAC_IN_REJECT_LEN 4 6758 #define MC_CMD_SET_MAC_IN_REJECT_UNCST_OFST 16 6759 #define MC_CMD_SET_MAC_IN_REJECT_UNCST_LBN 0 6760 #define MC_CMD_SET_MAC_IN_REJECT_UNCST_WIDTH 1 6761 #define MC_CMD_SET_MAC_IN_REJECT_BRDCST_OFST 16 6762 #define MC_CMD_SET_MAC_IN_REJECT_BRDCST_LBN 1 6763 #define MC_CMD_SET_MAC_IN_REJECT_BRDCST_WIDTH 1 6764 #define MC_CMD_SET_MAC_IN_FCNTL_OFST 20 6765 #define MC_CMD_SET_MAC_IN_FCNTL_LEN 4 6766 /* enum: Flow control is off. */ 6767 #define MC_CMD_FCNTL_OFF 0x0 6768 /* enum: Respond to flow control. */ 6769 #define MC_CMD_FCNTL_RESPOND 0x1 6770 /* enum: Respond to and Issue flow control. */ 6771 #define MC_CMD_FCNTL_BIDIR 0x2 6772 /* enum: Auto neg flow control. */ 6773 #define MC_CMD_FCNTL_AUTO 0x3 6774 /* enum: Priority flow control (eftest builds only). */ 6775 #define MC_CMD_FCNTL_QBB 0x4 6776 /* enum: Issue flow control. */ 6777 #define MC_CMD_FCNTL_GENERATE 0x5 6778 #define MC_CMD_SET_MAC_IN_FLAGS_OFST 24 6779 #define MC_CMD_SET_MAC_IN_FLAGS_LEN 4 6780 #define MC_CMD_SET_MAC_IN_FLAG_INCLUDE_FCS_OFST 24 6781 #define MC_CMD_SET_MAC_IN_FLAG_INCLUDE_FCS_LBN 0 6782 #define MC_CMD_SET_MAC_IN_FLAG_INCLUDE_FCS_WIDTH 1 6783 6784 /* MC_CMD_SET_MAC_EXT_IN msgrequest */ 6785 #define MC_CMD_SET_MAC_EXT_IN_LEN 32 6786 /* The MTU is the MTU programmed directly into the XMAC/GMAC (inclusive of 6787 * EtherII, VLAN, bug16011 padding). 6788 */ 6789 #define MC_CMD_SET_MAC_EXT_IN_MTU_OFST 0 6790 #define MC_CMD_SET_MAC_EXT_IN_MTU_LEN 4 6791 #define MC_CMD_SET_MAC_EXT_IN_DRAIN_OFST 4 6792 #define MC_CMD_SET_MAC_EXT_IN_DRAIN_LEN 4 6793 #define MC_CMD_SET_MAC_EXT_IN_ADDR_OFST 8 6794 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LEN 8 6795 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_OFST 8 6796 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_LEN 4 6797 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_LBN 64 6798 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_WIDTH 32 6799 #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_OFST 12 6800 #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_LEN 4 6801 #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_LBN 96 6802 #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_WIDTH 32 6803 #define MC_CMD_SET_MAC_EXT_IN_REJECT_OFST 16 6804 #define MC_CMD_SET_MAC_EXT_IN_REJECT_LEN 4 6805 #define MC_CMD_SET_MAC_EXT_IN_REJECT_UNCST_OFST 16 6806 #define MC_CMD_SET_MAC_EXT_IN_REJECT_UNCST_LBN 0 6807 #define MC_CMD_SET_MAC_EXT_IN_REJECT_UNCST_WIDTH 1 6808 #define MC_CMD_SET_MAC_EXT_IN_REJECT_BRDCST_OFST 16 6809 #define MC_CMD_SET_MAC_EXT_IN_REJECT_BRDCST_LBN 1 6810 #define MC_CMD_SET_MAC_EXT_IN_REJECT_BRDCST_WIDTH 1 6811 #define MC_CMD_SET_MAC_EXT_IN_FCNTL_OFST 20 6812 #define MC_CMD_SET_MAC_EXT_IN_FCNTL_LEN 4 6813 /* enum: Flow control is off. */ 6814 /* MC_CMD_FCNTL_OFF 0x0 */ 6815 /* enum: Respond to flow control. */ 6816 /* MC_CMD_FCNTL_RESPOND 0x1 */ 6817 /* enum: Respond to and Issue flow control. */ 6818 /* MC_CMD_FCNTL_BIDIR 0x2 */ 6819 /* enum: Auto neg flow control. */ 6820 /* MC_CMD_FCNTL_AUTO 0x3 */ 6821 /* enum: Priority flow control (eftest builds only). */ 6822 /* MC_CMD_FCNTL_QBB 0x4 */ 6823 /* enum: Issue flow control. */ 6824 /* MC_CMD_FCNTL_GENERATE 0x5 */ 6825 #define MC_CMD_SET_MAC_EXT_IN_FLAGS_OFST 24 6826 #define MC_CMD_SET_MAC_EXT_IN_FLAGS_LEN 4 6827 #define MC_CMD_SET_MAC_EXT_IN_FLAG_INCLUDE_FCS_OFST 24 6828 #define MC_CMD_SET_MAC_EXT_IN_FLAG_INCLUDE_FCS_LBN 0 6829 #define MC_CMD_SET_MAC_EXT_IN_FLAG_INCLUDE_FCS_WIDTH 1 6830 /* Select which parameters to configure. A parameter will only be modified if 6831 * the corresponding control flag is set. If SET_MAC_ENHANCED is not set in 6832 * capabilities then this field is ignored (and all flags are assumed to be 6833 * set). 6834 */ 6835 #define MC_CMD_SET_MAC_EXT_IN_CONTROL_OFST 28 6836 #define MC_CMD_SET_MAC_EXT_IN_CONTROL_LEN 4 6837 #define MC_CMD_SET_MAC_EXT_IN_CFG_MTU_OFST 28 6838 #define MC_CMD_SET_MAC_EXT_IN_CFG_MTU_LBN 0 6839 #define MC_CMD_SET_MAC_EXT_IN_CFG_MTU_WIDTH 1 6840 #define MC_CMD_SET_MAC_EXT_IN_CFG_DRAIN_OFST 28 6841 #define MC_CMD_SET_MAC_EXT_IN_CFG_DRAIN_LBN 1 6842 #define MC_CMD_SET_MAC_EXT_IN_CFG_DRAIN_WIDTH 1 6843 #define MC_CMD_SET_MAC_EXT_IN_CFG_REJECT_OFST 28 6844 #define MC_CMD_SET_MAC_EXT_IN_CFG_REJECT_LBN 2 6845 #define MC_CMD_SET_MAC_EXT_IN_CFG_REJECT_WIDTH 1 6846 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCNTL_OFST 28 6847 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCNTL_LBN 3 6848 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCNTL_WIDTH 1 6849 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCS_OFST 28 6850 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCS_LBN 4 6851 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCS_WIDTH 1 6852 6853 /* MC_CMD_SET_MAC_V3_IN msgrequest */ 6854 #define MC_CMD_SET_MAC_V3_IN_LEN 40 6855 /* The MTU is the MTU programmed directly into the XMAC/GMAC (inclusive of 6856 * EtherII, VLAN, bug16011 padding). 6857 */ 6858 #define MC_CMD_SET_MAC_V3_IN_MTU_OFST 0 6859 #define MC_CMD_SET_MAC_V3_IN_MTU_LEN 4 6860 #define MC_CMD_SET_MAC_V3_IN_DRAIN_OFST 4 6861 #define MC_CMD_SET_MAC_V3_IN_DRAIN_LEN 4 6862 #define MC_CMD_SET_MAC_V3_IN_ADDR_OFST 8 6863 #define MC_CMD_SET_MAC_V3_IN_ADDR_LEN 8 6864 #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_OFST 8 6865 #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_LEN 4 6866 #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_LBN 64 6867 #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_WIDTH 32 6868 #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_OFST 12 6869 #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_LEN 4 6870 #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_LBN 96 6871 #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_WIDTH 32 6872 #define MC_CMD_SET_MAC_V3_IN_REJECT_OFST 16 6873 #define MC_CMD_SET_MAC_V3_IN_REJECT_LEN 4 6874 #define MC_CMD_SET_MAC_V3_IN_REJECT_UNCST_OFST 16 6875 #define MC_CMD_SET_MAC_V3_IN_REJECT_UNCST_LBN 0 6876 #define MC_CMD_SET_MAC_V3_IN_REJECT_UNCST_WIDTH 1 6877 #define MC_CMD_SET_MAC_V3_IN_REJECT_BRDCST_OFST 16 6878 #define MC_CMD_SET_MAC_V3_IN_REJECT_BRDCST_LBN 1 6879 #define MC_CMD_SET_MAC_V3_IN_REJECT_BRDCST_WIDTH 1 6880 #define MC_CMD_SET_MAC_V3_IN_FCNTL_OFST 20 6881 #define MC_CMD_SET_MAC_V3_IN_FCNTL_LEN 4 6882 /* enum: Flow control is off. */ 6883 /* MC_CMD_FCNTL_OFF 0x0 */ 6884 /* enum: Respond to flow control. */ 6885 /* MC_CMD_FCNTL_RESPOND 0x1 */ 6886 /* enum: Respond to and Issue flow control. */ 6887 /* MC_CMD_FCNTL_BIDIR 0x2 */ 6888 /* enum: Auto neg flow control. */ 6889 /* MC_CMD_FCNTL_AUTO 0x3 */ 6890 /* enum: Priority flow control (eftest builds only). */ 6891 /* MC_CMD_FCNTL_QBB 0x4 */ 6892 /* enum: Issue flow control. */ 6893 /* MC_CMD_FCNTL_GENERATE 0x5 */ 6894 #define MC_CMD_SET_MAC_V3_IN_FLAGS_OFST 24 6895 #define MC_CMD_SET_MAC_V3_IN_FLAGS_LEN 4 6896 #define MC_CMD_SET_MAC_V3_IN_FLAG_INCLUDE_FCS_OFST 24 6897 #define MC_CMD_SET_MAC_V3_IN_FLAG_INCLUDE_FCS_LBN 0 6898 #define MC_CMD_SET_MAC_V3_IN_FLAG_INCLUDE_FCS_WIDTH 1 6899 /* Select which parameters to configure. A parameter will only be modified if 6900 * the corresponding control flag is set. If SET_MAC_ENHANCED is not set in 6901 * capabilities then this field is ignored (and all flags are assumed to be 6902 * set). 6903 */ 6904 #define MC_CMD_SET_MAC_V3_IN_CONTROL_OFST 28 6905 #define MC_CMD_SET_MAC_V3_IN_CONTROL_LEN 4 6906 #define MC_CMD_SET_MAC_V3_IN_CFG_MTU_OFST 28 6907 #define MC_CMD_SET_MAC_V3_IN_CFG_MTU_LBN 0 6908 #define MC_CMD_SET_MAC_V3_IN_CFG_MTU_WIDTH 1 6909 #define MC_CMD_SET_MAC_V3_IN_CFG_DRAIN_OFST 28 6910 #define MC_CMD_SET_MAC_V3_IN_CFG_DRAIN_LBN 1 6911 #define MC_CMD_SET_MAC_V3_IN_CFG_DRAIN_WIDTH 1 6912 #define MC_CMD_SET_MAC_V3_IN_CFG_REJECT_OFST 28 6913 #define MC_CMD_SET_MAC_V3_IN_CFG_REJECT_LBN 2 6914 #define MC_CMD_SET_MAC_V3_IN_CFG_REJECT_WIDTH 1 6915 #define MC_CMD_SET_MAC_V3_IN_CFG_FCNTL_OFST 28 6916 #define MC_CMD_SET_MAC_V3_IN_CFG_FCNTL_LBN 3 6917 #define MC_CMD_SET_MAC_V3_IN_CFG_FCNTL_WIDTH 1 6918 #define MC_CMD_SET_MAC_V3_IN_CFG_FCS_OFST 28 6919 #define MC_CMD_SET_MAC_V3_IN_CFG_FCS_LBN 4 6920 #define MC_CMD_SET_MAC_V3_IN_CFG_FCS_WIDTH 1 6921 /* Target port to set mac state for. Uses MAE_LINK_ENDPOINT_SELECTOR which 6922 * identifies a real or virtual network port by MAE port and link end. See the 6923 * structure definition for more details 6924 */ 6925 #define MC_CMD_SET_MAC_V3_IN_TARGET_OFST 32 6926 #define MC_CMD_SET_MAC_V3_IN_TARGET_LEN 8 6927 #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_OFST 32 6928 #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_LEN 4 6929 #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_LBN 256 6930 #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_WIDTH 32 6931 #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_OFST 36 6932 #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_LEN 4 6933 #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_LBN 288 6934 #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_WIDTH 32 6935 /* See structuredef: MAE_LINK_ENDPOINT_SELECTOR */ 6936 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_OFST 32 6937 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_LEN 4 6938 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FLAT_OFST 32 6939 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FLAT_LEN 4 6940 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_TYPE_OFST 35 6941 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_TYPE_LEN 1 6942 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 32 6943 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 6944 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 256 6945 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 6946 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 276 6947 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 6948 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 272 6949 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 6950 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 34 6951 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 6952 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 32 6953 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 6954 #define MC_CMD_SET_MAC_V3_IN_TARGET_LINK_END_OFST 36 6955 #define MC_CMD_SET_MAC_V3_IN_TARGET_LINK_END_LEN 4 6956 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_OFST 32 6957 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LEN 8 6958 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_OFST 32 6959 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_LEN 4 6960 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_LBN 256 6961 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_WIDTH 32 6962 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_OFST 36 6963 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_LEN 4 6964 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_LBN 288 6965 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_WIDTH 32 6966 6967 /* MC_CMD_SET_MAC_OUT msgresponse */ 6968 #define MC_CMD_SET_MAC_OUT_LEN 0 6969 6970 /* MC_CMD_SET_MAC_V2_OUT msgresponse */ 6971 #define MC_CMD_SET_MAC_V2_OUT_LEN 4 6972 /* MTU as configured after processing the request. See comment at 6973 * MC_CMD_SET_MAC_IN/MTU. To query MTU without doing any changes, set CONTROL 6974 * to 0. 6975 */ 6976 #define MC_CMD_SET_MAC_V2_OUT_MTU_OFST 0 6977 #define MC_CMD_SET_MAC_V2_OUT_MTU_LEN 4 6978 6979 6980 /***********************************/ 6981 /* MC_CMD_PHY_STATS 6982 * Get generic PHY statistics. This call returns the statistics for a generic 6983 * PHY in a sparse array (indexed by the enumerate). Each value is represented 6984 * by a 32bit number. If the DMA_ADDR is 0, then no DMA is performed, and the 6985 * statistics may be read from the message response. If DMA_ADDR != 0, then the 6986 * statistics are dmad to that (page-aligned location). Locks required: None. 6987 * Returns: 0, ETIME 6988 */ 6989 #define MC_CMD_PHY_STATS 0x2d 6990 #define MC_CMD_PHY_STATS_MSGSET 0x2d 6991 #undef MC_CMD_0x2d_PRIVILEGE_CTG 6992 6993 #define MC_CMD_0x2d_PRIVILEGE_CTG SRIOV_CTG_LINK 6994 6995 /* MC_CMD_PHY_STATS_IN msgrequest */ 6996 #define MC_CMD_PHY_STATS_IN_LEN 8 6997 /* ??? */ 6998 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_OFST 0 6999 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LEN 8 7000 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_OFST 0 7001 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_LEN 4 7002 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_LBN 0 7003 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_WIDTH 32 7004 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_OFST 4 7005 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_LEN 4 7006 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_LBN 32 7007 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_WIDTH 32 7008 7009 /* MC_CMD_PHY_STATS_OUT_DMA msgresponse */ 7010 #define MC_CMD_PHY_STATS_OUT_DMA_LEN 0 7011 7012 /* MC_CMD_PHY_STATS_OUT_NO_DMA msgresponse */ 7013 #define MC_CMD_PHY_STATS_OUT_NO_DMA_LEN (((MC_CMD_PHY_NSTATS*32))>>3) 7014 #define MC_CMD_PHY_STATS_OUT_NO_DMA_STATISTICS_OFST 0 7015 #define MC_CMD_PHY_STATS_OUT_NO_DMA_STATISTICS_LEN 4 7016 #define MC_CMD_PHY_STATS_OUT_NO_DMA_STATISTICS_NUM MC_CMD_PHY_NSTATS 7017 /* enum: OUI. */ 7018 #define MC_CMD_OUI 0x0 7019 /* enum: PMA-PMD Link Up. */ 7020 #define MC_CMD_PMA_PMD_LINK_UP 0x1 7021 /* enum: PMA-PMD RX Fault. */ 7022 #define MC_CMD_PMA_PMD_RX_FAULT 0x2 7023 /* enum: PMA-PMD TX Fault. */ 7024 #define MC_CMD_PMA_PMD_TX_FAULT 0x3 7025 /* enum: PMA-PMD Signal */ 7026 #define MC_CMD_PMA_PMD_SIGNAL 0x4 7027 /* enum: PMA-PMD SNR A. */ 7028 #define MC_CMD_PMA_PMD_SNR_A 0x5 7029 /* enum: PMA-PMD SNR B. */ 7030 #define MC_CMD_PMA_PMD_SNR_B 0x6 7031 /* enum: PMA-PMD SNR C. */ 7032 #define MC_CMD_PMA_PMD_SNR_C 0x7 7033 /* enum: PMA-PMD SNR D. */ 7034 #define MC_CMD_PMA_PMD_SNR_D 0x8 7035 /* enum: PCS Link Up. */ 7036 #define MC_CMD_PCS_LINK_UP 0x9 7037 /* enum: PCS RX Fault. */ 7038 #define MC_CMD_PCS_RX_FAULT 0xa 7039 /* enum: PCS TX Fault. */ 7040 #define MC_CMD_PCS_TX_FAULT 0xb 7041 /* enum: PCS BER. */ 7042 #define MC_CMD_PCS_BER 0xc 7043 /* enum: PCS Block Errors. */ 7044 #define MC_CMD_PCS_BLOCK_ERRORS 0xd 7045 /* enum: PhyXS Link Up. */ 7046 #define MC_CMD_PHYXS_LINK_UP 0xe 7047 /* enum: PhyXS RX Fault. */ 7048 #define MC_CMD_PHYXS_RX_FAULT 0xf 7049 /* enum: PhyXS TX Fault. */ 7050 #define MC_CMD_PHYXS_TX_FAULT 0x10 7051 /* enum: PhyXS Align. */ 7052 #define MC_CMD_PHYXS_ALIGN 0x11 7053 /* enum: PhyXS Sync. */ 7054 #define MC_CMD_PHYXS_SYNC 0x12 7055 /* enum: AN link-up. */ 7056 #define MC_CMD_AN_LINK_UP 0x13 7057 /* enum: AN Complete. */ 7058 #define MC_CMD_AN_COMPLETE 0x14 7059 /* enum: AN 10GBaseT Status. */ 7060 #define MC_CMD_AN_10GBT_STATUS 0x15 7061 /* enum: Clause 22 Link-Up. */ 7062 #define MC_CMD_CL22_LINK_UP 0x16 7063 /* enum: (Last entry) */ 7064 #define MC_CMD_PHY_NSTATS 0x17 7065 7066 7067 /***********************************/ 7068 /* MC_CMD_MAC_STATS 7069 * Get generic MAC statistics. This call returns unified statistics maintained 7070 * by the MC as it switches between the GMAC and XMAC. The MC will write out 7071 * all supported stats. The driver should zero initialise the buffer to 7072 * guarantee consistent results. If the DMA_ADDR is 0, then no DMA is 7073 * performed, and the statistics may be read from the message response. If 7074 * DMA_ADDR != 0, then the statistics are dmad to that (page-aligned location). 7075 * Locks required: None. The PERIODIC_CLEAR option is not used and now has no 7076 * effect. Returns: 0, ETIME 7077 */ 7078 #define MC_CMD_MAC_STATS 0x2e 7079 #define MC_CMD_MAC_STATS_MSGSET 0x2e 7080 #undef MC_CMD_0x2e_PRIVILEGE_CTG 7081 7082 #define MC_CMD_0x2e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 7083 7084 /* MC_CMD_MAC_STATS_IN msgrequest */ 7085 #define MC_CMD_MAC_STATS_IN_LEN 20 7086 /* ??? */ 7087 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_OFST 0 7088 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LEN 8 7089 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_OFST 0 7090 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_LEN 4 7091 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_LBN 0 7092 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_WIDTH 32 7093 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_OFST 4 7094 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_LEN 4 7095 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_LBN 32 7096 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_WIDTH 32 7097 #define MC_CMD_MAC_STATS_IN_CMD_OFST 8 7098 #define MC_CMD_MAC_STATS_IN_CMD_LEN 4 7099 #define MC_CMD_MAC_STATS_IN_DMA_OFST 8 7100 #define MC_CMD_MAC_STATS_IN_DMA_LBN 0 7101 #define MC_CMD_MAC_STATS_IN_DMA_WIDTH 1 7102 #define MC_CMD_MAC_STATS_IN_CLEAR_OFST 8 7103 #define MC_CMD_MAC_STATS_IN_CLEAR_LBN 1 7104 #define MC_CMD_MAC_STATS_IN_CLEAR_WIDTH 1 7105 #define MC_CMD_MAC_STATS_IN_PERIODIC_CHANGE_OFST 8 7106 #define MC_CMD_MAC_STATS_IN_PERIODIC_CHANGE_LBN 2 7107 #define MC_CMD_MAC_STATS_IN_PERIODIC_CHANGE_WIDTH 1 7108 #define MC_CMD_MAC_STATS_IN_PERIODIC_ENABLE_OFST 8 7109 #define MC_CMD_MAC_STATS_IN_PERIODIC_ENABLE_LBN 3 7110 #define MC_CMD_MAC_STATS_IN_PERIODIC_ENABLE_WIDTH 1 7111 #define MC_CMD_MAC_STATS_IN_PERIODIC_CLEAR_OFST 8 7112 #define MC_CMD_MAC_STATS_IN_PERIODIC_CLEAR_LBN 4 7113 #define MC_CMD_MAC_STATS_IN_PERIODIC_CLEAR_WIDTH 1 7114 #define MC_CMD_MAC_STATS_IN_PERIODIC_NOEVENT_OFST 8 7115 #define MC_CMD_MAC_STATS_IN_PERIODIC_NOEVENT_LBN 5 7116 #define MC_CMD_MAC_STATS_IN_PERIODIC_NOEVENT_WIDTH 1 7117 #define MC_CMD_MAC_STATS_IN_PERIOD_MS_OFST 8 7118 #define MC_CMD_MAC_STATS_IN_PERIOD_MS_LBN 16 7119 #define MC_CMD_MAC_STATS_IN_PERIOD_MS_WIDTH 16 7120 /* DMA length. Should be set to MAC_STATS_NUM_STATS * sizeof(uint64_t), as 7121 * returned by MC_CMD_GET_CAPABILITIES_V4_OUT. For legacy firmware not 7122 * supporting MC_CMD_GET_CAPABILITIES_V4_OUT, DMA_LEN should be set to 7123 * MC_CMD_MAC_NSTATS * sizeof(uint64_t) 7124 */ 7125 #define MC_CMD_MAC_STATS_IN_DMA_LEN_OFST 12 7126 #define MC_CMD_MAC_STATS_IN_DMA_LEN_LEN 4 7127 /* port id so vadapter stats can be provided */ 7128 #define MC_CMD_MAC_STATS_IN_PORT_ID_OFST 16 7129 #define MC_CMD_MAC_STATS_IN_PORT_ID_LEN 4 7130 7131 /* MC_CMD_MAC_STATS_V2_IN msgrequest */ 7132 #define MC_CMD_MAC_STATS_V2_IN_LEN 28 7133 /* ??? */ 7134 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_OFST 0 7135 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_LEN 8 7136 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_LO_OFST 0 7137 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_LO_LEN 4 7138 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_LO_LBN 0 7139 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_LO_WIDTH 32 7140 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_HI_OFST 4 7141 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_HI_LEN 4 7142 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_HI_LBN 32 7143 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_HI_WIDTH 32 7144 #define MC_CMD_MAC_STATS_V2_IN_CMD_OFST 8 7145 #define MC_CMD_MAC_STATS_V2_IN_CMD_LEN 4 7146 #define MC_CMD_MAC_STATS_V2_IN_DMA_OFST 8 7147 #define MC_CMD_MAC_STATS_V2_IN_DMA_LBN 0 7148 #define MC_CMD_MAC_STATS_V2_IN_DMA_WIDTH 1 7149 #define MC_CMD_MAC_STATS_V2_IN_CLEAR_OFST 8 7150 #define MC_CMD_MAC_STATS_V2_IN_CLEAR_LBN 1 7151 #define MC_CMD_MAC_STATS_V2_IN_CLEAR_WIDTH 1 7152 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_CHANGE_OFST 8 7153 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_CHANGE_LBN 2 7154 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_CHANGE_WIDTH 1 7155 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_ENABLE_OFST 8 7156 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_ENABLE_LBN 3 7157 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_ENABLE_WIDTH 1 7158 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_CLEAR_OFST 8 7159 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_CLEAR_LBN 4 7160 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_CLEAR_WIDTH 1 7161 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_NOEVENT_OFST 8 7162 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_NOEVENT_LBN 5 7163 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_NOEVENT_WIDTH 1 7164 #define MC_CMD_MAC_STATS_V2_IN_PERIOD_MS_OFST 8 7165 #define MC_CMD_MAC_STATS_V2_IN_PERIOD_MS_LBN 16 7166 #define MC_CMD_MAC_STATS_V2_IN_PERIOD_MS_WIDTH 16 7167 /* DMA length. Should be set to MAC_STATS_NUM_STATS * sizeof(uint64_t), as 7168 * returned by MC_CMD_GET_CAPABILITIES_V4_OUT. For legacy firmware not 7169 * supporting MC_CMD_GET_CAPABILITIES_V4_OUT, DMA_LEN should be set to 7170 * MC_CMD_MAC_NSTATS * sizeof(uint64_t) 7171 */ 7172 #define MC_CMD_MAC_STATS_V2_IN_DMA_LEN_OFST 12 7173 #define MC_CMD_MAC_STATS_V2_IN_DMA_LEN_LEN 4 7174 /* port id so vadapter stats can be provided */ 7175 #define MC_CMD_MAC_STATS_V2_IN_PORT_ID_OFST 16 7176 #define MC_CMD_MAC_STATS_V2_IN_PORT_ID_LEN 4 7177 /* Target port to request statistics for. Uses MAE_LINK_ENDPOINT_SELECTOR which 7178 * identifies a real or virtual network port by MAE port and link end. See the 7179 * structure definition for more details 7180 */ 7181 #define MC_CMD_MAC_STATS_V2_IN_TARGET_OFST 20 7182 #define MC_CMD_MAC_STATS_V2_IN_TARGET_LEN 8 7183 #define MC_CMD_MAC_STATS_V2_IN_TARGET_LO_OFST 20 7184 #define MC_CMD_MAC_STATS_V2_IN_TARGET_LO_LEN 4 7185 #define MC_CMD_MAC_STATS_V2_IN_TARGET_LO_LBN 160 7186 #define MC_CMD_MAC_STATS_V2_IN_TARGET_LO_WIDTH 32 7187 #define MC_CMD_MAC_STATS_V2_IN_TARGET_HI_OFST 24 7188 #define MC_CMD_MAC_STATS_V2_IN_TARGET_HI_LEN 4 7189 #define MC_CMD_MAC_STATS_V2_IN_TARGET_HI_LBN 192 7190 #define MC_CMD_MAC_STATS_V2_IN_TARGET_HI_WIDTH 32 7191 /* See structuredef: MAE_LINK_ENDPOINT_SELECTOR */ 7192 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_OFST 20 7193 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_LEN 4 7194 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FLAT_OFST 20 7195 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FLAT_LEN 4 7196 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_TYPE_OFST 23 7197 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_TYPE_LEN 1 7198 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 20 7199 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 7200 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 160 7201 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 7202 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 180 7203 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 7204 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 176 7205 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 7206 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 22 7207 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 7208 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 20 7209 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 7210 #define MC_CMD_MAC_STATS_V2_IN_TARGET_LINK_END_OFST 24 7211 #define MC_CMD_MAC_STATS_V2_IN_TARGET_LINK_END_LEN 4 7212 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_OFST 20 7213 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_LEN 8 7214 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_LO_OFST 20 7215 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_LO_LEN 4 7216 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_LO_LBN 160 7217 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_LO_WIDTH 32 7218 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_HI_OFST 24 7219 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_HI_LEN 4 7220 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_HI_LBN 192 7221 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_HI_WIDTH 32 7222 7223 /* MC_CMD_MAC_STATS_OUT_DMA msgresponse */ 7224 #define MC_CMD_MAC_STATS_OUT_DMA_LEN 0 7225 7226 /* MC_CMD_MAC_STATS_OUT_NO_DMA msgresponse */ 7227 #define MC_CMD_MAC_STATS_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS*64))>>3) 7228 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_OFST 0 7229 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LEN 8 7230 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_OFST 0 7231 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_LEN 4 7232 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_LBN 0 7233 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 7234 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_OFST 4 7235 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_LEN 4 7236 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_LBN 32 7237 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 7238 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS 7239 /* enum property: index */ 7240 #define MC_CMD_MAC_GENERATION_START 0x0 /* enum */ 7241 #define MC_CMD_MAC_DMABUF_START 0x1 /* enum */ 7242 #define MC_CMD_MAC_TX_PKTS 0x1 /* enum */ 7243 #define MC_CMD_MAC_TX_PAUSE_PKTS 0x2 /* enum */ 7244 #define MC_CMD_MAC_TX_CONTROL_PKTS 0x3 /* enum */ 7245 #define MC_CMD_MAC_TX_UNICAST_PKTS 0x4 /* enum */ 7246 #define MC_CMD_MAC_TX_MULTICAST_PKTS 0x5 /* enum */ 7247 #define MC_CMD_MAC_TX_BROADCAST_PKTS 0x6 /* enum */ 7248 #define MC_CMD_MAC_TX_BYTES 0x7 /* enum */ 7249 #define MC_CMD_MAC_TX_BAD_BYTES 0x8 /* enum */ 7250 #define MC_CMD_MAC_TX_LT64_PKTS 0x9 /* enum */ 7251 #define MC_CMD_MAC_TX_64_PKTS 0xa /* enum */ 7252 #define MC_CMD_MAC_TX_65_TO_127_PKTS 0xb /* enum */ 7253 #define MC_CMD_MAC_TX_128_TO_255_PKTS 0xc /* enum */ 7254 #define MC_CMD_MAC_TX_256_TO_511_PKTS 0xd /* enum */ 7255 #define MC_CMD_MAC_TX_512_TO_1023_PKTS 0xe /* enum */ 7256 #define MC_CMD_MAC_TX_1024_TO_15XX_PKTS 0xf /* enum */ 7257 #define MC_CMD_MAC_TX_15XX_TO_JUMBO_PKTS 0x10 /* enum */ 7258 #define MC_CMD_MAC_TX_GTJUMBO_PKTS 0x11 /* enum */ 7259 #define MC_CMD_MAC_TX_BAD_FCS_PKTS 0x12 /* enum */ 7260 #define MC_CMD_MAC_TX_SINGLE_COLLISION_PKTS 0x13 /* enum */ 7261 #define MC_CMD_MAC_TX_MULTIPLE_COLLISION_PKTS 0x14 /* enum */ 7262 #define MC_CMD_MAC_TX_EXCESSIVE_COLLISION_PKTS 0x15 /* enum */ 7263 #define MC_CMD_MAC_TX_LATE_COLLISION_PKTS 0x16 /* enum */ 7264 #define MC_CMD_MAC_TX_DEFERRED_PKTS 0x17 /* enum */ 7265 #define MC_CMD_MAC_TX_EXCESSIVE_DEFERRED_PKTS 0x18 /* enum */ 7266 #define MC_CMD_MAC_TX_NON_TCPUDP_PKTS 0x19 /* enum */ 7267 #define MC_CMD_MAC_TX_MAC_SRC_ERR_PKTS 0x1a /* enum */ 7268 #define MC_CMD_MAC_TX_IP_SRC_ERR_PKTS 0x1b /* enum */ 7269 #define MC_CMD_MAC_RX_PKTS 0x1c /* enum */ 7270 #define MC_CMD_MAC_RX_PAUSE_PKTS 0x1d /* enum */ 7271 #define MC_CMD_MAC_RX_GOOD_PKTS 0x1e /* enum */ 7272 #define MC_CMD_MAC_RX_CONTROL_PKTS 0x1f /* enum */ 7273 #define MC_CMD_MAC_RX_UNICAST_PKTS 0x20 /* enum */ 7274 #define MC_CMD_MAC_RX_MULTICAST_PKTS 0x21 /* enum */ 7275 #define MC_CMD_MAC_RX_BROADCAST_PKTS 0x22 /* enum */ 7276 #define MC_CMD_MAC_RX_BYTES 0x23 /* enum */ 7277 #define MC_CMD_MAC_RX_BAD_BYTES 0x24 /* enum */ 7278 #define MC_CMD_MAC_RX_64_PKTS 0x25 /* enum */ 7279 #define MC_CMD_MAC_RX_65_TO_127_PKTS 0x26 /* enum */ 7280 #define MC_CMD_MAC_RX_128_TO_255_PKTS 0x27 /* enum */ 7281 #define MC_CMD_MAC_RX_256_TO_511_PKTS 0x28 /* enum */ 7282 #define MC_CMD_MAC_RX_512_TO_1023_PKTS 0x29 /* enum */ 7283 #define MC_CMD_MAC_RX_1024_TO_15XX_PKTS 0x2a /* enum */ 7284 #define MC_CMD_MAC_RX_15XX_TO_JUMBO_PKTS 0x2b /* enum */ 7285 #define MC_CMD_MAC_RX_GTJUMBO_PKTS 0x2c /* enum */ 7286 #define MC_CMD_MAC_RX_UNDERSIZE_PKTS 0x2d /* enum */ 7287 #define MC_CMD_MAC_RX_BAD_FCS_PKTS 0x2e /* enum */ 7288 #define MC_CMD_MAC_RX_OVERFLOW_PKTS 0x2f /* enum */ 7289 #define MC_CMD_MAC_RX_FALSE_CARRIER_PKTS 0x30 /* enum */ 7290 #define MC_CMD_MAC_RX_SYMBOL_ERROR_PKTS 0x31 /* enum */ 7291 #define MC_CMD_MAC_RX_ALIGN_ERROR_PKTS 0x32 /* enum */ 7292 #define MC_CMD_MAC_RX_LENGTH_ERROR_PKTS 0x33 /* enum */ 7293 #define MC_CMD_MAC_RX_INTERNAL_ERROR_PKTS 0x34 /* enum */ 7294 #define MC_CMD_MAC_RX_JABBER_PKTS 0x35 /* enum */ 7295 #define MC_CMD_MAC_RX_NODESC_DROPS 0x36 /* enum */ 7296 #define MC_CMD_MAC_RX_LANES01_CHAR_ERR 0x37 /* enum */ 7297 #define MC_CMD_MAC_RX_LANES23_CHAR_ERR 0x38 /* enum */ 7298 #define MC_CMD_MAC_RX_LANES01_DISP_ERR 0x39 /* enum */ 7299 #define MC_CMD_MAC_RX_LANES23_DISP_ERR 0x3a /* enum */ 7300 #define MC_CMD_MAC_RX_MATCH_FAULT 0x3b /* enum */ 7301 /* enum: PM trunc_bb_overflow counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 7302 * capability only. 7303 */ 7304 #define MC_CMD_MAC_PM_TRUNC_BB_OVERFLOW 0x3c 7305 /* enum: PM discard_bb_overflow counter. Valid for EF10 with 7306 * PM_AND_RXDP_COUNTERS capability only. 7307 */ 7308 #define MC_CMD_MAC_PM_DISCARD_BB_OVERFLOW 0x3d 7309 /* enum: PM trunc_vfifo_full counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 7310 * capability only. 7311 */ 7312 #define MC_CMD_MAC_PM_TRUNC_VFIFO_FULL 0x3e 7313 /* enum: PM discard_vfifo_full counter. Valid for EF10 with 7314 * PM_AND_RXDP_COUNTERS capability only. 7315 */ 7316 #define MC_CMD_MAC_PM_DISCARD_VFIFO_FULL 0x3f 7317 /* enum: PM trunc_qbb counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 7318 * capability only. 7319 */ 7320 #define MC_CMD_MAC_PM_TRUNC_QBB 0x40 7321 /* enum: PM discard_qbb counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 7322 * capability only. 7323 */ 7324 #define MC_CMD_MAC_PM_DISCARD_QBB 0x41 7325 /* enum: PM discard_mapping counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 7326 * capability only. 7327 */ 7328 #define MC_CMD_MAC_PM_DISCARD_MAPPING 0x42 7329 /* enum: RXDP counter: Number of packets dropped due to the queue being 7330 * disabled. Valid for EF10 with PM_AND_RXDP_COUNTERS capability only. 7331 */ 7332 #define MC_CMD_MAC_RXDP_Q_DISABLED_PKTS 0x43 7333 /* enum: RXDP counter: Number of packets dropped by the DICPU. Valid for EF10 7334 * with PM_AND_RXDP_COUNTERS capability only. 7335 */ 7336 #define MC_CMD_MAC_RXDP_DI_DROPPED_PKTS 0x45 7337 /* enum: RXDP counter: Number of non-host packets. Valid for EF10 with 7338 * PM_AND_RXDP_COUNTERS capability only. 7339 */ 7340 #define MC_CMD_MAC_RXDP_STREAMING_PKTS 0x46 7341 /* enum: RXDP counter: Number of times an hlb descriptor fetch was performed. 7342 * Valid for EF10 with PM_AND_RXDP_COUNTERS capability only. 7343 */ 7344 #define MC_CMD_MAC_RXDP_HLB_FETCH_CONDITIONS 0x47 7345 /* enum: RXDP counter: Number of times the DPCPU waited for an existing 7346 * descriptor fetch. Valid for EF10 with PM_AND_RXDP_COUNTERS capability only. 7347 */ 7348 #define MC_CMD_MAC_RXDP_HLB_WAIT_CONDITIONS 0x48 7349 #define MC_CMD_MAC_VADAPTER_RX_DMABUF_START 0x4c /* enum */ 7350 #define MC_CMD_MAC_VADAPTER_RX_UNICAST_PACKETS 0x4c /* enum */ 7351 #define MC_CMD_MAC_VADAPTER_RX_UNICAST_BYTES 0x4d /* enum */ 7352 #define MC_CMD_MAC_VADAPTER_RX_MULTICAST_PACKETS 0x4e /* enum */ 7353 #define MC_CMD_MAC_VADAPTER_RX_MULTICAST_BYTES 0x4f /* enum */ 7354 #define MC_CMD_MAC_VADAPTER_RX_BROADCAST_PACKETS 0x50 /* enum */ 7355 #define MC_CMD_MAC_VADAPTER_RX_BROADCAST_BYTES 0x51 /* enum */ 7356 #define MC_CMD_MAC_VADAPTER_RX_BAD_PACKETS 0x52 /* enum */ 7357 #define MC_CMD_MAC_VADAPTER_RX_BAD_BYTES 0x53 /* enum */ 7358 #define MC_CMD_MAC_VADAPTER_RX_OVERFLOW 0x54 /* enum */ 7359 #define MC_CMD_MAC_VADAPTER_TX_DMABUF_START 0x57 /* enum */ 7360 #define MC_CMD_MAC_VADAPTER_TX_UNICAST_PACKETS 0x57 /* enum */ 7361 #define MC_CMD_MAC_VADAPTER_TX_UNICAST_BYTES 0x58 /* enum */ 7362 #define MC_CMD_MAC_VADAPTER_TX_MULTICAST_PACKETS 0x59 /* enum */ 7363 #define MC_CMD_MAC_VADAPTER_TX_MULTICAST_BYTES 0x5a /* enum */ 7364 #define MC_CMD_MAC_VADAPTER_TX_BROADCAST_PACKETS 0x5b /* enum */ 7365 #define MC_CMD_MAC_VADAPTER_TX_BROADCAST_BYTES 0x5c /* enum */ 7366 #define MC_CMD_MAC_VADAPTER_TX_BAD_PACKETS 0x5d /* enum */ 7367 #define MC_CMD_MAC_VADAPTER_TX_BAD_BYTES 0x5e /* enum */ 7368 #define MC_CMD_MAC_VADAPTER_TX_OVERFLOW 0x5f /* enum */ 7369 /* enum: Start of GMAC stats buffer space, for Siena only. */ 7370 #define MC_CMD_GMAC_DMABUF_START 0x40 7371 /* enum: End of GMAC stats buffer space, for Siena only. */ 7372 #define MC_CMD_GMAC_DMABUF_END 0x5f 7373 /* enum: GENERATION_END value, used together with GENERATION_START to verify 7374 * consistency of DMAd data. For legacy firmware / drivers without extended 7375 * stats (more precisely, when DMA_LEN == MC_CMD_MAC_NSTATS * 7376 * sizeof(uint64_t)), this entry holds the GENERATION_END value. Otherwise, 7377 * this value is invalid/ reserved and GENERATION_END is written as the last 7378 * 64-bit word of the DMA buffer (at DMA_LEN - sizeof(uint64_t)). Note that 7379 * this is consistent with the legacy behaviour, in the sense that entry 96 is 7380 * the last 64-bit word in the buffer when DMA_LEN == MC_CMD_MAC_NSTATS * 7381 * sizeof(uint64_t). See SF-109306-TC, Section 9.2 for details. 7382 */ 7383 #define MC_CMD_MAC_GENERATION_END 0x60 7384 #define MC_CMD_MAC_NSTATS 0x61 /* enum */ 7385 7386 /* MC_CMD_MAC_STATS_V2_OUT_DMA msgresponse */ 7387 #define MC_CMD_MAC_STATS_V2_OUT_DMA_LEN 0 7388 7389 /* MC_CMD_MAC_STATS_V2_OUT_NO_DMA msgresponse */ 7390 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS_V2*64))>>3) 7391 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_OFST 0 7392 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LEN 8 7393 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_OFST 0 7394 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_LEN 4 7395 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_LBN 0 7396 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 7397 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_OFST 4 7398 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_LEN 4 7399 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_LBN 32 7400 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 7401 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS_V2 7402 /* enum property: index */ 7403 /* enum: Start of FEC stats buffer space, Medford2 and up */ 7404 #define MC_CMD_MAC_FEC_DMABUF_START 0x61 7405 /* enum: Number of uncorrected FEC codewords on link (RS-FEC only for Medford2) 7406 */ 7407 #define MC_CMD_MAC_FEC_UNCORRECTED_ERRORS 0x61 7408 /* enum: Number of corrected FEC codewords on link (RS-FEC only for Medford2) 7409 */ 7410 #define MC_CMD_MAC_FEC_CORRECTED_ERRORS 0x62 7411 /* enum: Number of corrected 10-bit symbol errors, lane 0 (RS-FEC only) */ 7412 #define MC_CMD_MAC_FEC_CORRECTED_SYMBOLS_LANE0 0x63 7413 /* enum: Number of corrected 10-bit symbol errors, lane 1 (RS-FEC only) */ 7414 #define MC_CMD_MAC_FEC_CORRECTED_SYMBOLS_LANE1 0x64 7415 /* enum: Number of corrected 10-bit symbol errors, lane 2 (RS-FEC only) */ 7416 #define MC_CMD_MAC_FEC_CORRECTED_SYMBOLS_LANE2 0x65 7417 /* enum: Number of corrected 10-bit symbol errors, lane 3 (RS-FEC only) */ 7418 #define MC_CMD_MAC_FEC_CORRECTED_SYMBOLS_LANE3 0x66 7419 /* enum: This includes the space at offset 103 which is the final 7420 * GENERATION_END in a MAC_STATS_V2 response and otherwise unused. 7421 */ 7422 #define MC_CMD_MAC_NSTATS_V2 0x68 7423 /* Other enum values, see field(s): */ 7424 /* MC_CMD_MAC_STATS_OUT_NO_DMA/STATISTICS */ 7425 7426 /* MC_CMD_MAC_STATS_V3_OUT_DMA msgresponse */ 7427 #define MC_CMD_MAC_STATS_V3_OUT_DMA_LEN 0 7428 7429 /* MC_CMD_MAC_STATS_V3_OUT_NO_DMA msgresponse */ 7430 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS_V3*64))>>3) 7431 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_OFST 0 7432 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LEN 8 7433 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_OFST 0 7434 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_LEN 4 7435 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_LBN 0 7436 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 7437 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_OFST 4 7438 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_LEN 4 7439 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_LBN 32 7440 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 7441 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS_V3 7442 /* enum property: index */ 7443 /* enum: Start of CTPIO stats buffer space, Medford2 and up */ 7444 #define MC_CMD_MAC_CTPIO_DMABUF_START 0x68 7445 /* enum: Number of CTPIO fallbacks because a DMA packet was in progress on the 7446 * target VI 7447 */ 7448 #define MC_CMD_MAC_CTPIO_VI_BUSY_FALLBACK 0x68 7449 /* enum: Number of times a CTPIO send wrote beyond frame end (informational 7450 * only) 7451 */ 7452 #define MC_CMD_MAC_CTPIO_LONG_WRITE_SUCCESS 0x69 7453 /* enum: Number of CTPIO failures because the TX doorbell was written before 7454 * the end of the frame data 7455 */ 7456 #define MC_CMD_MAC_CTPIO_MISSING_DBELL_FAIL 0x6a 7457 /* enum: Number of CTPIO failures because the internal FIFO overflowed */ 7458 #define MC_CMD_MAC_CTPIO_OVERFLOW_FAIL 0x6b 7459 /* enum: Number of CTPIO failures because the host did not deliver data fast 7460 * enough to avoid MAC underflow 7461 */ 7462 #define MC_CMD_MAC_CTPIO_UNDERFLOW_FAIL 0x6c 7463 /* enum: Number of CTPIO failures because the host did not deliver all the 7464 * frame data within the timeout 7465 */ 7466 #define MC_CMD_MAC_CTPIO_TIMEOUT_FAIL 0x6d 7467 /* enum: Number of CTPIO failures because the frame data arrived out of order 7468 * or with gaps 7469 */ 7470 #define MC_CMD_MAC_CTPIO_NONCONTIG_WR_FAIL 0x6e 7471 /* enum: Number of CTPIO failures because the host started a new frame before 7472 * completing the previous one 7473 */ 7474 #define MC_CMD_MAC_CTPIO_FRM_CLOBBER_FAIL 0x6f 7475 /* enum: Number of CTPIO failures because a write was not a multiple of 32 bits 7476 * or not 32-bit aligned 7477 */ 7478 #define MC_CMD_MAC_CTPIO_INVALID_WR_FAIL 0x70 7479 /* enum: Number of CTPIO fallbacks because another VI on the same port was 7480 * sending a CTPIO frame 7481 */ 7482 #define MC_CMD_MAC_CTPIO_VI_CLOBBER_FALLBACK 0x71 7483 /* enum: Number of CTPIO fallbacks because target VI did not have CTPIO enabled 7484 */ 7485 #define MC_CMD_MAC_CTPIO_UNQUALIFIED_FALLBACK 0x72 7486 /* enum: Number of CTPIO fallbacks because length in header was less than 29 7487 * bytes 7488 */ 7489 #define MC_CMD_MAC_CTPIO_RUNT_FALLBACK 0x73 7490 /* enum: Total number of successful CTPIO sends on this port */ 7491 #define MC_CMD_MAC_CTPIO_SUCCESS 0x74 7492 /* enum: Total number of CTPIO fallbacks on this port */ 7493 #define MC_CMD_MAC_CTPIO_FALLBACK 0x75 7494 /* enum: Total number of CTPIO poisoned frames on this port, whether erased or 7495 * not 7496 */ 7497 #define MC_CMD_MAC_CTPIO_POISON 0x76 7498 /* enum: Total number of CTPIO erased frames on this port */ 7499 #define MC_CMD_MAC_CTPIO_ERASE 0x77 7500 /* enum: This includes the space at offset 120 which is the final 7501 * GENERATION_END in a MAC_STATS_V3 response and otherwise unused. 7502 */ 7503 #define MC_CMD_MAC_NSTATS_V3 0x79 7504 /* Other enum values, see field(s): */ 7505 /* MC_CMD_MAC_STATS_V2_OUT_NO_DMA/STATISTICS */ 7506 7507 /* MC_CMD_MAC_STATS_V4_OUT_DMA msgresponse */ 7508 #define MC_CMD_MAC_STATS_V4_OUT_DMA_LEN 0 7509 7510 /* MC_CMD_MAC_STATS_V4_OUT_NO_DMA msgresponse */ 7511 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS_V4*64))>>3) 7512 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_OFST 0 7513 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LEN 8 7514 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_OFST 0 7515 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_LEN 4 7516 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_LBN 0 7517 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 7518 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_OFST 4 7519 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_LEN 4 7520 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_LBN 32 7521 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 7522 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS_V4 7523 /* enum property: index */ 7524 /* enum: Start of V4 stats buffer space */ 7525 #define MC_CMD_MAC_V4_DMABUF_START 0x79 7526 /* enum: RXDP counter: Number of packets truncated because scattering was 7527 * disabled. 7528 */ 7529 #define MC_CMD_MAC_RXDP_SCATTER_DISABLED_TRUNC 0x79 7530 /* enum: RXDP counter: Number of times the RXDP head of line blocked waiting 7531 * for descriptors. Will be zero unless RXDP_HLB_IDLE capability is set. 7532 */ 7533 #define MC_CMD_MAC_RXDP_HLB_IDLE 0x7a 7534 /* enum: RXDP counter: Number of times the RXDP timed out while head of line 7535 * blocking. Will be zero unless RXDP_HLB_IDLE capability is set. 7536 */ 7537 #define MC_CMD_MAC_RXDP_HLB_TIMEOUT 0x7b 7538 /* enum: This includes the space at offset 124 which is the final 7539 * GENERATION_END in a MAC_STATS_V4 response and otherwise unused. 7540 */ 7541 #define MC_CMD_MAC_NSTATS_V4 0x7d 7542 /* Other enum values, see field(s): */ 7543 /* MC_CMD_MAC_STATS_V3_OUT_NO_DMA/STATISTICS */ 7544 7545 7546 /***********************************/ 7547 /* MC_CMD_SRIOV 7548 * to be documented 7549 */ 7550 #define MC_CMD_SRIOV 0x30 7551 #define MC_CMD_SRIOV_MSGSET 0x30 7552 7553 /* MC_CMD_SRIOV_IN msgrequest */ 7554 #define MC_CMD_SRIOV_IN_LEN 12 7555 #define MC_CMD_SRIOV_IN_ENABLE_OFST 0 7556 #define MC_CMD_SRIOV_IN_ENABLE_LEN 4 7557 #define MC_CMD_SRIOV_IN_VI_BASE_OFST 4 7558 #define MC_CMD_SRIOV_IN_VI_BASE_LEN 4 7559 #define MC_CMD_SRIOV_IN_VF_COUNT_OFST 8 7560 #define MC_CMD_SRIOV_IN_VF_COUNT_LEN 4 7561 7562 /* MC_CMD_SRIOV_OUT msgresponse */ 7563 #define MC_CMD_SRIOV_OUT_LEN 8 7564 #define MC_CMD_SRIOV_OUT_VI_SCALE_OFST 0 7565 #define MC_CMD_SRIOV_OUT_VI_SCALE_LEN 4 7566 #define MC_CMD_SRIOV_OUT_VF_TOTAL_OFST 4 7567 #define MC_CMD_SRIOV_OUT_VF_TOTAL_LEN 4 7568 7569 /* MC_CMD_MEMCPY_RECORD_TYPEDEF structuredef */ 7570 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_LEN 32 7571 /* this is only used for the first record */ 7572 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_NUM_RECORDS_OFST 0 7573 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_NUM_RECORDS_LEN 4 7574 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_NUM_RECORDS_LBN 0 7575 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_NUM_RECORDS_WIDTH 32 7576 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_RID_OFST 4 7577 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_RID_LEN 4 7578 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_RID_LBN 32 7579 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_RID_WIDTH 32 7580 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_OFST 8 7581 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LEN 8 7582 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LO_OFST 8 7583 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LO_LEN 4 7584 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LO_LBN 64 7585 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LO_WIDTH 32 7586 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_HI_OFST 12 7587 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_HI_LEN 4 7588 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_HI_LBN 96 7589 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_HI_WIDTH 32 7590 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LBN 64 7591 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_WIDTH 64 7592 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_RID_OFST 16 7593 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_RID_LEN 4 7594 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_RID_INLINE 0x100 /* enum */ 7595 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_RID_LBN 128 7596 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_RID_WIDTH 32 7597 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_OFST 20 7598 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LEN 8 7599 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LO_OFST 20 7600 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LO_LEN 4 7601 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LO_LBN 160 7602 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LO_WIDTH 32 7603 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_HI_OFST 24 7604 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_HI_LEN 4 7605 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_HI_LBN 192 7606 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_HI_WIDTH 32 7607 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LBN 160 7608 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_WIDTH 64 7609 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_LENGTH_OFST 28 7610 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_LENGTH_LEN 4 7611 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_LENGTH_LBN 224 7612 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_LENGTH_WIDTH 32 7613 7614 7615 /***********************************/ 7616 /* MC_CMD_MEMCPY 7617 * DMA write data into (Rid,Addr), either by dma reading (Rid,Addr), or by data 7618 * embedded directly in the command. 7619 * 7620 * A common pattern is for a client to use generation counts to signal a dma 7621 * update of a datastructure. To facilitate this, this MCDI operation can 7622 * contain multiple requests which are executed in strict order. Requests take 7623 * the form of duplicating the entire MCDI request continuously (including the 7624 * requests record, which is ignored in all but the first structure) 7625 * 7626 * The source data can either come from a DMA from the host, or it can be 7627 * embedded within the request directly, thereby eliminating a DMA read. To 7628 * indicate this, the client sets FROM_RID=%RID_INLINE, ADDR_HI=0, and 7629 * ADDR_LO=offset, and inserts the data at %offset from the start of the 7630 * payload. It's the callers responsibility to ensure that the embedded data 7631 * doesn't overlap the records. 7632 * 7633 * Returns: 0, EINVAL (invalid RID) 7634 */ 7635 #define MC_CMD_MEMCPY 0x31 7636 #define MC_CMD_MEMCPY_MSGSET 0x31 7637 7638 /* MC_CMD_MEMCPY_IN msgrequest */ 7639 #define MC_CMD_MEMCPY_IN_LENMIN 32 7640 #define MC_CMD_MEMCPY_IN_LENMAX 224 7641 #define MC_CMD_MEMCPY_IN_LENMAX_MCDI2 992 7642 #define MC_CMD_MEMCPY_IN_LEN(num) (0+32*(num)) 7643 #define MC_CMD_MEMCPY_IN_RECORD_NUM(len) (((len)-0)/32) 7644 /* see MC_CMD_MEMCPY_RECORD_TYPEDEF */ 7645 #define MC_CMD_MEMCPY_IN_RECORD_OFST 0 7646 #define MC_CMD_MEMCPY_IN_RECORD_LEN 32 7647 #define MC_CMD_MEMCPY_IN_RECORD_MINNUM 1 7648 #define MC_CMD_MEMCPY_IN_RECORD_MAXNUM 7 7649 #define MC_CMD_MEMCPY_IN_RECORD_MAXNUM_MCDI2 31 7650 7651 /* MC_CMD_MEMCPY_OUT msgresponse */ 7652 #define MC_CMD_MEMCPY_OUT_LEN 0 7653 7654 7655 /***********************************/ 7656 /* MC_CMD_WOL_FILTER_SET 7657 * Set a WoL filter. 7658 */ 7659 #define MC_CMD_WOL_FILTER_SET 0x32 7660 #define MC_CMD_WOL_FILTER_SET_MSGSET 0x32 7661 #undef MC_CMD_0x32_PRIVILEGE_CTG 7662 7663 #define MC_CMD_0x32_PRIVILEGE_CTG SRIOV_CTG_LINK 7664 7665 /* MC_CMD_WOL_FILTER_SET_IN msgrequest */ 7666 #define MC_CMD_WOL_FILTER_SET_IN_LEN 192 7667 #define MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 7668 #define MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 7669 #define MC_CMD_FILTER_MODE_SIMPLE 0x0 /* enum */ 7670 #define MC_CMD_FILTER_MODE_STRUCTURED 0xffffffff /* enum */ 7671 /* A type value of 1 is unused. */ 7672 #define MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 7673 #define MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 7674 /* enum: Magic */ 7675 #define MC_CMD_WOL_TYPE_MAGIC 0x0 7676 /* enum: MS Windows Magic */ 7677 #define MC_CMD_WOL_TYPE_WIN_MAGIC 0x2 7678 /* enum: IPv4 Syn */ 7679 #define MC_CMD_WOL_TYPE_IPV4_SYN 0x3 7680 /* enum: IPv6 Syn */ 7681 #define MC_CMD_WOL_TYPE_IPV6_SYN 0x4 7682 /* enum: Bitmap */ 7683 #define MC_CMD_WOL_TYPE_BITMAP 0x5 7684 /* enum: Link */ 7685 #define MC_CMD_WOL_TYPE_LINK 0x6 7686 /* enum: (Above this for future use) */ 7687 #define MC_CMD_WOL_TYPE_MAX 0x7 7688 #define MC_CMD_WOL_FILTER_SET_IN_DATA_OFST 8 7689 #define MC_CMD_WOL_FILTER_SET_IN_DATA_LEN 4 7690 #define MC_CMD_WOL_FILTER_SET_IN_DATA_NUM 46 7691 7692 /* MC_CMD_WOL_FILTER_SET_IN_MAGIC msgrequest */ 7693 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_LEN 16 7694 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 7695 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 7696 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 7697 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 7698 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_OFST 8 7699 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LEN 8 7700 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_OFST 8 7701 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_LEN 4 7702 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_LBN 64 7703 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_WIDTH 32 7704 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_OFST 12 7705 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_LEN 4 7706 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_LBN 96 7707 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_WIDTH 32 7708 7709 /* MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN msgrequest */ 7710 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_LEN 20 7711 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 7712 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 7713 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 7714 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 7715 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_IP_OFST 8 7716 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_IP_LEN 4 7717 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_IP_OFST 12 7718 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_IP_LEN 4 7719 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_PORT_OFST 16 7720 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_PORT_LEN 2 7721 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_PORT_OFST 18 7722 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_PORT_LEN 2 7723 7724 /* MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN msgrequest */ 7725 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_LEN 44 7726 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 7727 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 7728 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 7729 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 7730 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_SRC_IP_OFST 8 7731 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_SRC_IP_LEN 16 7732 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_DST_IP_OFST 24 7733 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_DST_IP_LEN 16 7734 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_SRC_PORT_OFST 40 7735 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_SRC_PORT_LEN 2 7736 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_DST_PORT_OFST 42 7737 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_DST_PORT_LEN 2 7738 7739 /* MC_CMD_WOL_FILTER_SET_IN_BITMAP msgrequest */ 7740 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LEN 187 7741 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 7742 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 7743 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 7744 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 7745 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_MASK_OFST 8 7746 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_MASK_LEN 48 7747 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_BITMAP_OFST 56 7748 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_BITMAP_LEN 128 7749 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LEN_OFST 184 7750 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LEN_LEN 1 7751 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER3_OFST 185 7752 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER3_LEN 1 7753 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER4_OFST 186 7754 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER4_LEN 1 7755 7756 /* MC_CMD_WOL_FILTER_SET_IN_LINK msgrequest */ 7757 #define MC_CMD_WOL_FILTER_SET_IN_LINK_LEN 12 7758 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 7759 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 7760 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 7761 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 7762 #define MC_CMD_WOL_FILTER_SET_IN_LINK_MASK_OFST 8 7763 #define MC_CMD_WOL_FILTER_SET_IN_LINK_MASK_LEN 4 7764 #define MC_CMD_WOL_FILTER_SET_IN_LINK_UP_OFST 8 7765 #define MC_CMD_WOL_FILTER_SET_IN_LINK_UP_LBN 0 7766 #define MC_CMD_WOL_FILTER_SET_IN_LINK_UP_WIDTH 1 7767 #define MC_CMD_WOL_FILTER_SET_IN_LINK_DOWN_OFST 8 7768 #define MC_CMD_WOL_FILTER_SET_IN_LINK_DOWN_LBN 1 7769 #define MC_CMD_WOL_FILTER_SET_IN_LINK_DOWN_WIDTH 1 7770 7771 /* MC_CMD_WOL_FILTER_SET_OUT msgresponse */ 7772 #define MC_CMD_WOL_FILTER_SET_OUT_LEN 4 7773 #define MC_CMD_WOL_FILTER_SET_OUT_FILTER_ID_OFST 0 7774 #define MC_CMD_WOL_FILTER_SET_OUT_FILTER_ID_LEN 4 7775 7776 7777 /***********************************/ 7778 /* MC_CMD_WOL_FILTER_REMOVE 7779 * Remove a WoL filter. Locks required: None. Returns: 0, EINVAL, ENOSYS 7780 */ 7781 #define MC_CMD_WOL_FILTER_REMOVE 0x33 7782 #define MC_CMD_WOL_FILTER_REMOVE_MSGSET 0x33 7783 #undef MC_CMD_0x33_PRIVILEGE_CTG 7784 7785 #define MC_CMD_0x33_PRIVILEGE_CTG SRIOV_CTG_LINK 7786 7787 /* MC_CMD_WOL_FILTER_REMOVE_IN msgrequest */ 7788 #define MC_CMD_WOL_FILTER_REMOVE_IN_LEN 4 7789 #define MC_CMD_WOL_FILTER_REMOVE_IN_FILTER_ID_OFST 0 7790 #define MC_CMD_WOL_FILTER_REMOVE_IN_FILTER_ID_LEN 4 7791 7792 /* MC_CMD_WOL_FILTER_REMOVE_OUT msgresponse */ 7793 #define MC_CMD_WOL_FILTER_REMOVE_OUT_LEN 0 7794 7795 7796 /***********************************/ 7797 /* MC_CMD_WOL_FILTER_RESET 7798 * Reset (i.e. remove all) WoL filters. Locks required: None. Returns: 0, 7799 * ENOSYS 7800 */ 7801 #define MC_CMD_WOL_FILTER_RESET 0x34 7802 #define MC_CMD_WOL_FILTER_RESET_MSGSET 0x34 7803 #undef MC_CMD_0x34_PRIVILEGE_CTG 7804 7805 #define MC_CMD_0x34_PRIVILEGE_CTG SRIOV_CTG_LINK 7806 7807 /* MC_CMD_WOL_FILTER_RESET_IN msgrequest */ 7808 #define MC_CMD_WOL_FILTER_RESET_IN_LEN 4 7809 #define MC_CMD_WOL_FILTER_RESET_IN_MASK_OFST 0 7810 #define MC_CMD_WOL_FILTER_RESET_IN_MASK_LEN 4 7811 /* enum property: bitmask */ 7812 #define MC_CMD_WOL_FILTER_RESET_IN_WAKE_FILTERS 0x1 /* enum */ 7813 #define MC_CMD_WOL_FILTER_RESET_IN_LIGHTSOUT_OFFLOADS 0x2 /* enum */ 7814 7815 /* MC_CMD_WOL_FILTER_RESET_OUT msgresponse */ 7816 #define MC_CMD_WOL_FILTER_RESET_OUT_LEN 0 7817 7818 7819 /***********************************/ 7820 /* MC_CMD_SET_MCAST_HASH 7821 * Set the MCAST hash value without otherwise reconfiguring the MAC 7822 */ 7823 #define MC_CMD_SET_MCAST_HASH 0x35 7824 #define MC_CMD_SET_MCAST_HASH_MSGSET 0x35 7825 7826 /* MC_CMD_SET_MCAST_HASH_IN msgrequest */ 7827 #define MC_CMD_SET_MCAST_HASH_IN_LEN 32 7828 #define MC_CMD_SET_MCAST_HASH_IN_HASH0_OFST 0 7829 #define MC_CMD_SET_MCAST_HASH_IN_HASH0_LEN 16 7830 #define MC_CMD_SET_MCAST_HASH_IN_HASH1_OFST 16 7831 #define MC_CMD_SET_MCAST_HASH_IN_HASH1_LEN 16 7832 7833 /* MC_CMD_SET_MCAST_HASH_OUT msgresponse */ 7834 #define MC_CMD_SET_MCAST_HASH_OUT_LEN 0 7835 7836 7837 /***********************************/ 7838 /* MC_CMD_NVRAM_TYPES 7839 * Return bitfield indicating available types of virtual NVRAM partitions. 7840 * Locks required: none. Returns: 0 7841 */ 7842 #define MC_CMD_NVRAM_TYPES 0x36 7843 #define MC_CMD_NVRAM_TYPES_MSGSET 0x36 7844 #undef MC_CMD_0x36_PRIVILEGE_CTG 7845 7846 #define MC_CMD_0x36_PRIVILEGE_CTG SRIOV_CTG_ADMIN 7847 7848 /* MC_CMD_NVRAM_TYPES_IN msgrequest */ 7849 #define MC_CMD_NVRAM_TYPES_IN_LEN 0 7850 7851 /* MC_CMD_NVRAM_TYPES_OUT msgresponse */ 7852 #define MC_CMD_NVRAM_TYPES_OUT_LEN 4 7853 /* Bit mask of supported types. */ 7854 #define MC_CMD_NVRAM_TYPES_OUT_TYPES_OFST 0 7855 #define MC_CMD_NVRAM_TYPES_OUT_TYPES_LEN 4 7856 /* enum property: bitshift */ 7857 /* enum: Disabled callisto. */ 7858 #define MC_CMD_NVRAM_TYPE_DISABLED_CALLISTO 0x0 7859 /* enum: MC firmware. */ 7860 #define MC_CMD_NVRAM_TYPE_MC_FW 0x1 7861 /* enum: MC backup firmware. */ 7862 #define MC_CMD_NVRAM_TYPE_MC_FW_BACKUP 0x2 7863 /* enum: Static configuration Port0. */ 7864 #define MC_CMD_NVRAM_TYPE_STATIC_CFG_PORT0 0x3 7865 /* enum: Static configuration Port1. */ 7866 #define MC_CMD_NVRAM_TYPE_STATIC_CFG_PORT1 0x4 7867 /* enum: Dynamic configuration Port0. */ 7868 #define MC_CMD_NVRAM_TYPE_DYNAMIC_CFG_PORT0 0x5 7869 /* enum: Dynamic configuration Port1. */ 7870 #define MC_CMD_NVRAM_TYPE_DYNAMIC_CFG_PORT1 0x6 7871 /* enum: Expansion Rom. */ 7872 #define MC_CMD_NVRAM_TYPE_EXP_ROM 0x7 7873 /* enum: Expansion Rom Configuration Port0. */ 7874 #define MC_CMD_NVRAM_TYPE_EXP_ROM_CFG_PORT0 0x8 7875 /* enum: Expansion Rom Configuration Port1. */ 7876 #define MC_CMD_NVRAM_TYPE_EXP_ROM_CFG_PORT1 0x9 7877 /* enum: Phy Configuration Port0. */ 7878 #define MC_CMD_NVRAM_TYPE_PHY_PORT0 0xa 7879 /* enum: Phy Configuration Port1. */ 7880 #define MC_CMD_NVRAM_TYPE_PHY_PORT1 0xb 7881 /* enum: Log. */ 7882 #define MC_CMD_NVRAM_TYPE_LOG 0xc 7883 /* enum: FPGA image. */ 7884 #define MC_CMD_NVRAM_TYPE_FPGA 0xd 7885 /* enum: FPGA backup image */ 7886 #define MC_CMD_NVRAM_TYPE_FPGA_BACKUP 0xe 7887 /* enum: FC firmware. */ 7888 #define MC_CMD_NVRAM_TYPE_FC_FW 0xf 7889 /* enum: FC backup firmware. */ 7890 #define MC_CMD_NVRAM_TYPE_FC_FW_BACKUP 0x10 7891 /* enum: CPLD image. */ 7892 #define MC_CMD_NVRAM_TYPE_CPLD 0x11 7893 /* enum: Licensing information. */ 7894 #define MC_CMD_NVRAM_TYPE_LICENSE 0x12 7895 /* enum: FC Log. */ 7896 #define MC_CMD_NVRAM_TYPE_FC_LOG 0x13 7897 /* enum: Additional flash on FPGA. */ 7898 #define MC_CMD_NVRAM_TYPE_FC_EXTRA 0x14 7899 7900 7901 /***********************************/ 7902 /* MC_CMD_NVRAM_INFO 7903 * Read info about a virtual NVRAM partition. Locks required: none. Returns: 0, 7904 * EINVAL (bad type). 7905 */ 7906 #define MC_CMD_NVRAM_INFO 0x37 7907 #define MC_CMD_NVRAM_INFO_MSGSET 0x37 7908 #undef MC_CMD_0x37_PRIVILEGE_CTG 7909 7910 #define MC_CMD_0x37_PRIVILEGE_CTG SRIOV_CTG_ADMIN 7911 7912 /* MC_CMD_NVRAM_INFO_IN msgrequest */ 7913 #define MC_CMD_NVRAM_INFO_IN_LEN 4 7914 #define MC_CMD_NVRAM_INFO_IN_TYPE_OFST 0 7915 #define MC_CMD_NVRAM_INFO_IN_TYPE_LEN 4 7916 /* Enum values, see field(s): */ 7917 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 7918 7919 /* MC_CMD_NVRAM_INFO_OUT msgresponse */ 7920 #define MC_CMD_NVRAM_INFO_OUT_LEN 24 7921 #define MC_CMD_NVRAM_INFO_OUT_TYPE_OFST 0 7922 #define MC_CMD_NVRAM_INFO_OUT_TYPE_LEN 4 7923 /* Enum values, see field(s): */ 7924 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 7925 #define MC_CMD_NVRAM_INFO_OUT_SIZE_OFST 4 7926 #define MC_CMD_NVRAM_INFO_OUT_SIZE_LEN 4 7927 #define MC_CMD_NVRAM_INFO_OUT_ERASESIZE_OFST 8 7928 #define MC_CMD_NVRAM_INFO_OUT_ERASESIZE_LEN 4 7929 #define MC_CMD_NVRAM_INFO_OUT_FLAGS_OFST 12 7930 #define MC_CMD_NVRAM_INFO_OUT_FLAGS_LEN 4 7931 #define MC_CMD_NVRAM_INFO_OUT_PROTECTED_OFST 12 7932 #define MC_CMD_NVRAM_INFO_OUT_PROTECTED_LBN 0 7933 #define MC_CMD_NVRAM_INFO_OUT_PROTECTED_WIDTH 1 7934 #define MC_CMD_NVRAM_INFO_OUT_TLV_OFST 12 7935 #define MC_CMD_NVRAM_INFO_OUT_TLV_LBN 1 7936 #define MC_CMD_NVRAM_INFO_OUT_TLV_WIDTH 1 7937 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_IF_TSA_BOUND_OFST 12 7938 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_IF_TSA_BOUND_LBN 2 7939 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_IF_TSA_BOUND_WIDTH 1 7940 #define MC_CMD_NVRAM_INFO_OUT_CRC_OFST 12 7941 #define MC_CMD_NVRAM_INFO_OUT_CRC_LBN 3 7942 #define MC_CMD_NVRAM_INFO_OUT_CRC_WIDTH 1 7943 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_OFST 12 7944 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_LBN 5 7945 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_WIDTH 1 7946 #define MC_CMD_NVRAM_INFO_OUT_CMAC_OFST 12 7947 #define MC_CMD_NVRAM_INFO_OUT_CMAC_LBN 6 7948 #define MC_CMD_NVRAM_INFO_OUT_CMAC_WIDTH 1 7949 #define MC_CMD_NVRAM_INFO_OUT_A_B_OFST 12 7950 #define MC_CMD_NVRAM_INFO_OUT_A_B_LBN 7 7951 #define MC_CMD_NVRAM_INFO_OUT_A_B_WIDTH 1 7952 #define MC_CMD_NVRAM_INFO_OUT_PHYSDEV_OFST 16 7953 #define MC_CMD_NVRAM_INFO_OUT_PHYSDEV_LEN 4 7954 #define MC_CMD_NVRAM_INFO_OUT_PHYSADDR_OFST 20 7955 #define MC_CMD_NVRAM_INFO_OUT_PHYSADDR_LEN 4 7956 7957 /* MC_CMD_NVRAM_INFO_V2_OUT msgresponse */ 7958 #define MC_CMD_NVRAM_INFO_V2_OUT_LEN 28 7959 #define MC_CMD_NVRAM_INFO_V2_OUT_TYPE_OFST 0 7960 #define MC_CMD_NVRAM_INFO_V2_OUT_TYPE_LEN 4 7961 /* Enum values, see field(s): */ 7962 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 7963 #define MC_CMD_NVRAM_INFO_V2_OUT_SIZE_OFST 4 7964 #define MC_CMD_NVRAM_INFO_V2_OUT_SIZE_LEN 4 7965 #define MC_CMD_NVRAM_INFO_V2_OUT_ERASESIZE_OFST 8 7966 #define MC_CMD_NVRAM_INFO_V2_OUT_ERASESIZE_LEN 4 7967 #define MC_CMD_NVRAM_INFO_V2_OUT_FLAGS_OFST 12 7968 #define MC_CMD_NVRAM_INFO_V2_OUT_FLAGS_LEN 4 7969 #define MC_CMD_NVRAM_INFO_V2_OUT_PROTECTED_OFST 12 7970 #define MC_CMD_NVRAM_INFO_V2_OUT_PROTECTED_LBN 0 7971 #define MC_CMD_NVRAM_INFO_V2_OUT_PROTECTED_WIDTH 1 7972 #define MC_CMD_NVRAM_INFO_V2_OUT_TLV_OFST 12 7973 #define MC_CMD_NVRAM_INFO_V2_OUT_TLV_LBN 1 7974 #define MC_CMD_NVRAM_INFO_V2_OUT_TLV_WIDTH 1 7975 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_IF_TSA_BOUND_OFST 12 7976 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_IF_TSA_BOUND_LBN 2 7977 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_IF_TSA_BOUND_WIDTH 1 7978 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_OFST 12 7979 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_LBN 5 7980 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_WIDTH 1 7981 #define MC_CMD_NVRAM_INFO_V2_OUT_A_B_OFST 12 7982 #define MC_CMD_NVRAM_INFO_V2_OUT_A_B_LBN 7 7983 #define MC_CMD_NVRAM_INFO_V2_OUT_A_B_WIDTH 1 7984 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSDEV_OFST 16 7985 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSDEV_LEN 4 7986 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSADDR_OFST 20 7987 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSADDR_LEN 4 7988 /* Writes must be multiples of this size. Added to support the MUM on Sorrento. 7989 */ 7990 #define MC_CMD_NVRAM_INFO_V2_OUT_WRITESIZE_OFST 24 7991 #define MC_CMD_NVRAM_INFO_V2_OUT_WRITESIZE_LEN 4 7992 7993 7994 /***********************************/ 7995 /* MC_CMD_NVRAM_UPDATE_START 7996 * Start a group of update operations on a virtual NVRAM partition. Locks 7997 * required: PHY_LOCK if type==*PHY*. Returns: 0, EINVAL (bad type), EACCES (if 7998 * PHY_LOCK required and not held). In an adapter bound to a TSA controller, 7999 * MC_CMD_NVRAM_UPDATE_START can only be used on a subset of partition types 8000 * i.e. static config, dynamic config and expansion ROM config. Attempting to 8001 * perform this operation on a restricted partition will return the error 8002 * EPERM. 8003 */ 8004 #define MC_CMD_NVRAM_UPDATE_START 0x38 8005 #define MC_CMD_NVRAM_UPDATE_START_MSGSET 0x38 8006 #undef MC_CMD_0x38_PRIVILEGE_CTG 8007 8008 #define MC_CMD_0x38_PRIVILEGE_CTG SRIOV_CTG_ADMIN 8009 8010 /* MC_CMD_NVRAM_UPDATE_START_IN msgrequest: Legacy NVRAM_UPDATE_START request. 8011 * Use NVRAM_UPDATE_START_V2_IN in new code 8012 */ 8013 #define MC_CMD_NVRAM_UPDATE_START_IN_LEN 4 8014 #define MC_CMD_NVRAM_UPDATE_START_IN_TYPE_OFST 0 8015 #define MC_CMD_NVRAM_UPDATE_START_IN_TYPE_LEN 4 8016 /* Enum values, see field(s): */ 8017 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 8018 8019 /* MC_CMD_NVRAM_UPDATE_START_V2_IN msgrequest: Extended NVRAM_UPDATE_START 8020 * request with additional flags indicating version of command in use. See 8021 * MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT for details of extended functionality. Use 8022 * paired up with NVRAM_UPDATE_FINISH_V2_IN. 8023 */ 8024 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_LEN 8 8025 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_TYPE_OFST 0 8026 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_TYPE_LEN 4 8027 /* Enum values, see field(s): */ 8028 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 8029 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAGS_OFST 4 8030 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAGS_LEN 4 8031 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT_OFST 4 8032 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT_LBN 0 8033 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT_WIDTH 1 8034 8035 /* MC_CMD_NVRAM_UPDATE_START_OUT msgresponse */ 8036 #define MC_CMD_NVRAM_UPDATE_START_OUT_LEN 0 8037 8038 8039 /***********************************/ 8040 /* MC_CMD_NVRAM_READ 8041 * Read data from a virtual NVRAM partition. Locks required: PHY_LOCK if 8042 * type==*PHY*. Returns: 0, EINVAL (bad type/offset/length), EACCES (if 8043 * PHY_LOCK required and not held) 8044 */ 8045 #define MC_CMD_NVRAM_READ 0x39 8046 #define MC_CMD_NVRAM_READ_MSGSET 0x39 8047 #undef MC_CMD_0x39_PRIVILEGE_CTG 8048 8049 #define MC_CMD_0x39_PRIVILEGE_CTG SRIOV_CTG_ADMIN 8050 8051 /* MC_CMD_NVRAM_READ_IN msgrequest */ 8052 #define MC_CMD_NVRAM_READ_IN_LEN 12 8053 #define MC_CMD_NVRAM_READ_IN_TYPE_OFST 0 8054 #define MC_CMD_NVRAM_READ_IN_TYPE_LEN 4 8055 /* Enum values, see field(s): */ 8056 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 8057 #define MC_CMD_NVRAM_READ_IN_OFFSET_OFST 4 8058 #define MC_CMD_NVRAM_READ_IN_OFFSET_LEN 4 8059 /* amount to read in bytes */ 8060 #define MC_CMD_NVRAM_READ_IN_LENGTH_OFST 8 8061 #define MC_CMD_NVRAM_READ_IN_LENGTH_LEN 4 8062 8063 /* MC_CMD_NVRAM_READ_IN_V2 msgrequest */ 8064 #define MC_CMD_NVRAM_READ_IN_V2_LEN 16 8065 #define MC_CMD_NVRAM_READ_IN_V2_TYPE_OFST 0 8066 #define MC_CMD_NVRAM_READ_IN_V2_TYPE_LEN 4 8067 /* Enum values, see field(s): */ 8068 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 8069 #define MC_CMD_NVRAM_READ_IN_V2_OFFSET_OFST 4 8070 #define MC_CMD_NVRAM_READ_IN_V2_OFFSET_LEN 4 8071 /* amount to read in bytes */ 8072 #define MC_CMD_NVRAM_READ_IN_V2_LENGTH_OFST 8 8073 #define MC_CMD_NVRAM_READ_IN_V2_LENGTH_LEN 4 8074 /* Optional control info. If a partition is stored with an A/B versioning 8075 * scheme (i.e. in more than one physical partition in NVRAM) the host can set 8076 * this to control which underlying physical partition is used to read data 8077 * from. This allows it to perform a read-modify-write-verify with the write 8078 * lock continuously held by calling NVRAM_UPDATE_START, reading the old 8079 * contents using MODE=TARGET_CURRENT, overwriting the old partition and then 8080 * verifying by reading with MODE=TARGET_BACKUP. 8081 */ 8082 #define MC_CMD_NVRAM_READ_IN_V2_MODE_OFST 12 8083 #define MC_CMD_NVRAM_READ_IN_V2_MODE_LEN 4 8084 /* enum: Same as omitting MODE: caller sees data in current partition unless it 8085 * holds the write lock in which case it sees data in the partition it is 8086 * updating. 8087 */ 8088 #define MC_CMD_NVRAM_READ_IN_V2_DEFAULT 0x0 8089 /* enum: Read from the current partition of an A/B pair, even if holding the 8090 * write lock. 8091 */ 8092 #define MC_CMD_NVRAM_READ_IN_V2_TARGET_CURRENT 0x1 8093 /* enum: Read from the non-current (i.e. to be updated) partition of an A/B 8094 * pair 8095 */ 8096 #define MC_CMD_NVRAM_READ_IN_V2_TARGET_BACKUP 0x2 8097 8098 /* MC_CMD_NVRAM_READ_OUT msgresponse */ 8099 #define MC_CMD_NVRAM_READ_OUT_LENMIN 1 8100 #define MC_CMD_NVRAM_READ_OUT_LENMAX 252 8101 #define MC_CMD_NVRAM_READ_OUT_LENMAX_MCDI2 1020 8102 #define MC_CMD_NVRAM_READ_OUT_LEN(num) (0+1*(num)) 8103 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_NUM(len) (((len)-0)/1) 8104 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_OFST 0 8105 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_LEN 1 8106 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_MINNUM 1 8107 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_MAXNUM 252 8108 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_MAXNUM_MCDI2 1020 8109 8110 8111 /***********************************/ 8112 /* MC_CMD_NVRAM_WRITE 8113 * Write data to a virtual NVRAM partition. Locks required: PHY_LOCK if 8114 * type==*PHY*. Returns: 0, EINVAL (bad type/offset/length), EACCES (if 8115 * PHY_LOCK required and not held) 8116 */ 8117 #define MC_CMD_NVRAM_WRITE 0x3a 8118 #define MC_CMD_NVRAM_WRITE_MSGSET 0x3a 8119 #undef MC_CMD_0x3a_PRIVILEGE_CTG 8120 8121 #define MC_CMD_0x3a_PRIVILEGE_CTG SRIOV_CTG_ADMIN 8122 8123 /* MC_CMD_NVRAM_WRITE_IN msgrequest */ 8124 #define MC_CMD_NVRAM_WRITE_IN_LENMIN 13 8125 #define MC_CMD_NVRAM_WRITE_IN_LENMAX 252 8126 #define MC_CMD_NVRAM_WRITE_IN_LENMAX_MCDI2 1020 8127 #define MC_CMD_NVRAM_WRITE_IN_LEN(num) (12+1*(num)) 8128 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_NUM(len) (((len)-12)/1) 8129 #define MC_CMD_NVRAM_WRITE_IN_TYPE_OFST 0 8130 #define MC_CMD_NVRAM_WRITE_IN_TYPE_LEN 4 8131 /* Enum values, see field(s): */ 8132 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 8133 #define MC_CMD_NVRAM_WRITE_IN_OFFSET_OFST 4 8134 #define MC_CMD_NVRAM_WRITE_IN_OFFSET_LEN 4 8135 #define MC_CMD_NVRAM_WRITE_IN_LENGTH_OFST 8 8136 #define MC_CMD_NVRAM_WRITE_IN_LENGTH_LEN 4 8137 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_OFST 12 8138 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_LEN 1 8139 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_MINNUM 1 8140 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_MAXNUM 240 8141 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_MAXNUM_MCDI2 1008 8142 8143 /* MC_CMD_NVRAM_WRITE_OUT msgresponse */ 8144 #define MC_CMD_NVRAM_WRITE_OUT_LEN 0 8145 8146 8147 /***********************************/ 8148 /* MC_CMD_NVRAM_ERASE 8149 * Erase sector(s) from a virtual NVRAM partition. Locks required: PHY_LOCK if 8150 * type==*PHY*. Returns: 0, EINVAL (bad type/offset/length), EACCES (if 8151 * PHY_LOCK required and not held) 8152 */ 8153 #define MC_CMD_NVRAM_ERASE 0x3b 8154 #define MC_CMD_NVRAM_ERASE_MSGSET 0x3b 8155 #undef MC_CMD_0x3b_PRIVILEGE_CTG 8156 8157 #define MC_CMD_0x3b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 8158 8159 /* MC_CMD_NVRAM_ERASE_IN msgrequest */ 8160 #define MC_CMD_NVRAM_ERASE_IN_LEN 12 8161 #define MC_CMD_NVRAM_ERASE_IN_TYPE_OFST 0 8162 #define MC_CMD_NVRAM_ERASE_IN_TYPE_LEN 4 8163 /* Enum values, see field(s): */ 8164 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 8165 #define MC_CMD_NVRAM_ERASE_IN_OFFSET_OFST 4 8166 #define MC_CMD_NVRAM_ERASE_IN_OFFSET_LEN 4 8167 #define MC_CMD_NVRAM_ERASE_IN_LENGTH_OFST 8 8168 #define MC_CMD_NVRAM_ERASE_IN_LENGTH_LEN 4 8169 8170 /* MC_CMD_NVRAM_ERASE_OUT msgresponse */ 8171 #define MC_CMD_NVRAM_ERASE_OUT_LEN 0 8172 8173 8174 /***********************************/ 8175 /* MC_CMD_NVRAM_UPDATE_FINISH 8176 * Finish a group of update operations on a virtual NVRAM partition. Locks 8177 * required: PHY_LOCK if type==*PHY*. Returns: 0, EINVAL (bad type/offset/ 8178 * length), EACCES (if PHY_LOCK required and not held). In an adapter bound to 8179 * a TSA controller, MC_CMD_NVRAM_UPDATE_FINISH can only be used on a subset of 8180 * partition types i.e. static config, dynamic config and expansion ROM config. 8181 * Attempting to perform this operation on a restricted partition will return 8182 * the error EPERM. 8183 */ 8184 #define MC_CMD_NVRAM_UPDATE_FINISH 0x3c 8185 #define MC_CMD_NVRAM_UPDATE_FINISH_MSGSET 0x3c 8186 #undef MC_CMD_0x3c_PRIVILEGE_CTG 8187 8188 #define MC_CMD_0x3c_PRIVILEGE_CTG SRIOV_CTG_ADMIN 8189 8190 /* MC_CMD_NVRAM_UPDATE_FINISH_IN msgrequest: Legacy NVRAM_UPDATE_FINISH 8191 * request. Use NVRAM_UPDATE_FINISH_V2_IN in new code 8192 */ 8193 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_LEN 8 8194 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_TYPE_OFST 0 8195 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_TYPE_LEN 4 8196 /* Enum values, see field(s): */ 8197 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 8198 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_REBOOT_OFST 4 8199 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_REBOOT_LEN 4 8200 8201 /* MC_CMD_NVRAM_UPDATE_FINISH_V2_IN msgrequest: Extended NVRAM_UPDATE_FINISH 8202 * request with additional flags indicating version of NVRAM_UPDATE commands in 8203 * use. See MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT for details of extended 8204 * functionality. Use paired up with NVRAM_UPDATE_START_V2_IN. 8205 */ 8206 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_LEN 12 8207 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_TYPE_OFST 0 8208 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_TYPE_LEN 4 8209 /* Enum values, see field(s): */ 8210 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 8211 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_REBOOT_OFST 4 8212 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_REBOOT_LEN 4 8213 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAGS_OFST 8 8214 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAGS_LEN 4 8215 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_REPORT_VERIFY_RESULT_OFST 8 8216 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_REPORT_VERIFY_RESULT_LBN 0 8217 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_REPORT_VERIFY_RESULT_WIDTH 1 8218 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_RUN_IN_BACKGROUND_OFST 8 8219 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_RUN_IN_BACKGROUND_LBN 1 8220 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_RUN_IN_BACKGROUND_WIDTH 1 8221 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_POLL_VERIFY_RESULT_OFST 8 8222 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_POLL_VERIFY_RESULT_LBN 2 8223 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_POLL_VERIFY_RESULT_WIDTH 1 8224 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_ABORT_OFST 8 8225 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_ABORT_LBN 3 8226 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_ABORT_WIDTH 1 8227 8228 /* MC_CMD_NVRAM_UPDATE_FINISH_OUT msgresponse: Legacy NVRAM_UPDATE_FINISH 8229 * response. Use NVRAM_UPDATE_FINISH_V2_OUT in new code 8230 */ 8231 #define MC_CMD_NVRAM_UPDATE_FINISH_OUT_LEN 0 8232 8233 /* MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT msgresponse: 8234 * 8235 * Extended NVRAM_UPDATE_FINISH response that communicates the result of secure 8236 * firmware validation where applicable back to the host. 8237 * 8238 * Medford only: For signed firmware images, such as those for medford, the MC 8239 * firmware verifies the signature before marking the firmware image as valid. 8240 * This process takes a few seconds to complete. So is likely to take more than 8241 * the MCDI timeout. Hence signature verification is initiated when 8242 * MC_CMD_NVRAM_UPDATE_FINISH_V2_IN is received by the firmware, however, the 8243 * MCDI command is run in a background MCDI processing thread. This response 8244 * payload includes the results of the signature verification. Note that the 8245 * per-partition nvram lock in firmware is only released after the verification 8246 * has completed. 8247 */ 8248 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_LEN 4 8249 /* Result of nvram update completion processing. Result codes that indicate an 8250 * internal build failure and therefore not expected to be seen by customers in 8251 * the field are marked with a prefix 'Internal-error'. 8252 */ 8253 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_RESULT_CODE_OFST 0 8254 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_RESULT_CODE_LEN 4 8255 /* enum: Invalid return code; only non-zero values are defined. Defined as 8256 * unknown for backwards compatibility with NVRAM_UPDATE_FINISH_OUT. 8257 */ 8258 #define MC_CMD_NVRAM_VERIFY_RC_UNKNOWN 0x0 8259 /* enum: Verify succeeded without any errors. */ 8260 #define MC_CMD_NVRAM_VERIFY_RC_SUCCESS 0x1 8261 /* enum: CMS format verification failed due to an internal error. */ 8262 #define MC_CMD_NVRAM_VERIFY_RC_CMS_CHECK_FAILED 0x2 8263 /* enum: Invalid CMS format in image metadata. */ 8264 #define MC_CMD_NVRAM_VERIFY_RC_INVALID_CMS_FORMAT 0x3 8265 /* enum: Message digest verification failed due to an internal error. */ 8266 #define MC_CMD_NVRAM_VERIFY_RC_MESSAGE_DIGEST_CHECK_FAILED 0x4 8267 /* enum: Error in message digest calculated over the reflash-header, payload 8268 * and reflash-trailer. 8269 */ 8270 #define MC_CMD_NVRAM_VERIFY_RC_BAD_MESSAGE_DIGEST 0x5 8271 /* enum: Signature verification failed due to an internal error. */ 8272 #define MC_CMD_NVRAM_VERIFY_RC_SIGNATURE_CHECK_FAILED 0x6 8273 /* enum: There are no valid signatures in the image. */ 8274 #define MC_CMD_NVRAM_VERIFY_RC_NO_VALID_SIGNATURES 0x7 8275 /* enum: Trusted approvers verification failed due to an internal error. */ 8276 #define MC_CMD_NVRAM_VERIFY_RC_TRUSTED_APPROVERS_CHECK_FAILED 0x8 8277 /* enum: The Trusted approver's list is empty. */ 8278 #define MC_CMD_NVRAM_VERIFY_RC_NO_TRUSTED_APPROVERS 0x9 8279 /* enum: Signature chain verification failed due to an internal error. */ 8280 #define MC_CMD_NVRAM_VERIFY_RC_SIGNATURE_CHAIN_CHECK_FAILED 0xa 8281 /* enum: The signers of the signatures in the image are not listed in the 8282 * Trusted approver's list. 8283 */ 8284 #define MC_CMD_NVRAM_VERIFY_RC_NO_SIGNATURE_MATCH 0xb 8285 /* enum: The image contains a test-signed certificate, but the adapter accepts 8286 * only production signed images. 8287 */ 8288 #define MC_CMD_NVRAM_VERIFY_RC_REJECT_TEST_SIGNED 0xc 8289 /* enum: The image has a lower security level than the current firmware. */ 8290 #define MC_CMD_NVRAM_VERIFY_RC_SECURITY_LEVEL_DOWNGRADE 0xd 8291 /* enum: Internal-error. The signed image is missing the 'contents' section, 8292 * where the 'contents' section holds the actual image payload to be applied. 8293 */ 8294 #define MC_CMD_NVRAM_VERIFY_RC_CONTENT_NOT_FOUND 0xe 8295 /* enum: Internal-error. The bundle header is invalid. */ 8296 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_CONTENT_HEADER_INVALID 0xf 8297 /* enum: Internal-error. The bundle does not have a valid reflash image layout. 8298 */ 8299 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_REFLASH_IMAGE_INVALID 0x10 8300 /* enum: Internal-error. The bundle has an inconsistent layout of components or 8301 * incorrect checksum. 8302 */ 8303 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_IMAGE_LAYOUT_INVALID 0x11 8304 /* enum: Internal-error. The bundle manifest is inconsistent with components in 8305 * the bundle. 8306 */ 8307 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_INVALID 0x12 8308 /* enum: Internal-error. The number of components in a bundle do not match the 8309 * number of components advertised by the bundle manifest. 8310 */ 8311 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_NUM_COMPONENTS_MISMATCH 0x13 8312 /* enum: Internal-error. The bundle contains too many components for the MC 8313 * firmware to process 8314 */ 8315 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_TOO_MANY_COMPONENTS 0x14 8316 /* enum: Internal-error. The bundle manifest has an invalid/inconsistent 8317 * component. 8318 */ 8319 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_COMPONENT_INVALID 0x15 8320 /* enum: Internal-error. The hash of a component does not match the hash stored 8321 * in the bundle manifest. 8322 */ 8323 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_COMPONENT_HASH_MISMATCH 0x16 8324 /* enum: Internal-error. Component hash calculation failed. */ 8325 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_COMPONENT_HASH_FAILED 0x17 8326 /* enum: Internal-error. The component does not have a valid reflash image 8327 * layout. 8328 */ 8329 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_COMPONENT_REFLASH_IMAGE_INVALID 0x18 8330 /* enum: The bundle processing code failed to copy a component to its target 8331 * partition. 8332 */ 8333 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_COMPONENT_COPY_FAILED 0x19 8334 /* enum: The update operation is in-progress. */ 8335 #define MC_CMD_NVRAM_VERIFY_RC_PENDING 0x1a 8336 8337 8338 /***********************************/ 8339 /* MC_CMD_REBOOT 8340 * Reboot the MC. 8341 * 8342 * The AFTER_ASSERTION flag is intended to be used when the driver notices an 8343 * assertion failure (at which point it is expected to perform a complete tear 8344 * down and reinitialise), to allow both ports to reset the MC once in an 8345 * atomic fashion. 8346 * 8347 * Production mc firmwares are generally compiled with REBOOT_ON_ASSERT=1, 8348 * which means that they will automatically reboot out of the assertion 8349 * handler, so this is in practise an optional operation. It is still 8350 * recommended that drivers execute this to support custom firmwares with 8351 * REBOOT_ON_ASSERT=0. 8352 * 8353 * Locks required: NONE Returns: Nothing. You get back a response with ERR=1, 8354 * DATALEN=0 8355 */ 8356 #define MC_CMD_REBOOT 0x3d 8357 #define MC_CMD_REBOOT_MSGSET 0x3d 8358 #undef MC_CMD_0x3d_PRIVILEGE_CTG 8359 8360 #define MC_CMD_0x3d_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 8361 8362 /* MC_CMD_REBOOT_IN msgrequest */ 8363 #define MC_CMD_REBOOT_IN_LEN 4 8364 #define MC_CMD_REBOOT_IN_FLAGS_OFST 0 8365 #define MC_CMD_REBOOT_IN_FLAGS_LEN 4 8366 #define MC_CMD_REBOOT_FLAGS_AFTER_ASSERTION 0x1 /* enum */ 8367 8368 /* MC_CMD_REBOOT_OUT msgresponse */ 8369 #define MC_CMD_REBOOT_OUT_LEN 0 8370 8371 8372 /***********************************/ 8373 /* MC_CMD_SCHEDINFO 8374 * Request scheduler info. Locks required: NONE. Returns: An array of 8375 * (timeslice,maximum overrun), one for each thread, in ascending order of 8376 * thread address. 8377 */ 8378 #define MC_CMD_SCHEDINFO 0x3e 8379 #define MC_CMD_SCHEDINFO_MSGSET 0x3e 8380 #undef MC_CMD_0x3e_PRIVILEGE_CTG 8381 8382 #define MC_CMD_0x3e_PRIVILEGE_CTG SRIOV_CTG_ADMIN 8383 8384 /* MC_CMD_SCHEDINFO_IN msgrequest */ 8385 #define MC_CMD_SCHEDINFO_IN_LEN 0 8386 8387 /* MC_CMD_SCHEDINFO_OUT msgresponse */ 8388 #define MC_CMD_SCHEDINFO_OUT_LENMIN 4 8389 #define MC_CMD_SCHEDINFO_OUT_LENMAX 252 8390 #define MC_CMD_SCHEDINFO_OUT_LENMAX_MCDI2 1020 8391 #define MC_CMD_SCHEDINFO_OUT_LEN(num) (0+4*(num)) 8392 #define MC_CMD_SCHEDINFO_OUT_DATA_NUM(len) (((len)-0)/4) 8393 #define MC_CMD_SCHEDINFO_OUT_DATA_OFST 0 8394 #define MC_CMD_SCHEDINFO_OUT_DATA_LEN 4 8395 #define MC_CMD_SCHEDINFO_OUT_DATA_MINNUM 1 8396 #define MC_CMD_SCHEDINFO_OUT_DATA_MAXNUM 63 8397 #define MC_CMD_SCHEDINFO_OUT_DATA_MAXNUM_MCDI2 255 8398 8399 8400 /***********************************/ 8401 /* MC_CMD_REBOOT_MODE 8402 * Set the mode for the next MC reboot. Locks required: NONE. Sets the reboot 8403 * mode to the specified value. Returns the old mode. 8404 */ 8405 #define MC_CMD_REBOOT_MODE 0x3f 8406 #define MC_CMD_REBOOT_MODE_MSGSET 0x3f 8407 #undef MC_CMD_0x3f_PRIVILEGE_CTG 8408 8409 #define MC_CMD_0x3f_PRIVILEGE_CTG SRIOV_CTG_INSECURE 8410 8411 /* MC_CMD_REBOOT_MODE_IN msgrequest */ 8412 #define MC_CMD_REBOOT_MODE_IN_LEN 4 8413 #define MC_CMD_REBOOT_MODE_IN_VALUE_OFST 0 8414 #define MC_CMD_REBOOT_MODE_IN_VALUE_LEN 4 8415 /* enum: Normal. */ 8416 #define MC_CMD_REBOOT_MODE_NORMAL 0x0 8417 /* enum: Power-on Reset. */ 8418 #define MC_CMD_REBOOT_MODE_POR 0x2 8419 /* enum: Snapper. */ 8420 #define MC_CMD_REBOOT_MODE_SNAPPER 0x3 8421 /* enum: snapper fake POR */ 8422 #define MC_CMD_REBOOT_MODE_SNAPPER_POR 0x4 8423 #define MC_CMD_REBOOT_MODE_IN_FAKE_OFST 0 8424 #define MC_CMD_REBOOT_MODE_IN_FAKE_LBN 7 8425 #define MC_CMD_REBOOT_MODE_IN_FAKE_WIDTH 1 8426 8427 /* MC_CMD_REBOOT_MODE_OUT msgresponse */ 8428 #define MC_CMD_REBOOT_MODE_OUT_LEN 4 8429 #define MC_CMD_REBOOT_MODE_OUT_VALUE_OFST 0 8430 #define MC_CMD_REBOOT_MODE_OUT_VALUE_LEN 4 8431 8432 8433 /***********************************/ 8434 /* MC_CMD_SENSOR_INFO 8435 * Returns information about every available sensor. 8436 * 8437 * Each sensor has a single (16bit) value, and a corresponding state. The 8438 * mapping between value and state is nominally determined by the MC, but may 8439 * be implemented using up to 2 ranges per sensor. 8440 * 8441 * This call returns a mask (32bit) of the sensors that are supported by this 8442 * platform, then an array of sensor information structures, in order of sensor 8443 * type (but without gaps for unimplemented sensors). Each structure defines 8444 * the ranges for the corresponding sensor. An unused range is indicated by 8445 * equal limit values. If one range is used, a value outside that range results 8446 * in STATE_FATAL. If two ranges are used, a value outside the second range 8447 * results in STATE_FATAL while a value outside the first and inside the second 8448 * range results in STATE_WARNING. 8449 * 8450 * Sensor masks and sensor information arrays are organised into pages. For 8451 * backward compatibility, older host software can only use sensors in page 0. 8452 * Bit 32 in the sensor mask was previously unused, and is no reserved for use 8453 * as the next page flag. 8454 * 8455 * If the request does not contain a PAGE value then firmware will only return 8456 * page 0 of sensor information, with bit 31 in the sensor mask cleared. 8457 * 8458 * If the request contains a PAGE value then firmware responds with the sensor 8459 * mask and sensor information array for that page of sensors. In this case bit 8460 * 31 in the mask is set if another page exists. 8461 * 8462 * Locks required: None Returns: 0 8463 */ 8464 #define MC_CMD_SENSOR_INFO 0x41 8465 #define MC_CMD_SENSOR_INFO_MSGSET 0x41 8466 #undef MC_CMD_0x41_PRIVILEGE_CTG 8467 8468 #define MC_CMD_0x41_PRIVILEGE_CTG SRIOV_CTG_GENERAL 8469 8470 /* MC_CMD_SENSOR_INFO_IN msgrequest */ 8471 #define MC_CMD_SENSOR_INFO_IN_LEN 0 8472 8473 /* MC_CMD_SENSOR_INFO_EXT_IN msgrequest */ 8474 #define MC_CMD_SENSOR_INFO_EXT_IN_LEN 4 8475 /* Which page of sensors to report. 8476 * 8477 * Page 0 contains sensors 0 to 30 (sensor 31 is the next page bit). 8478 * 8479 * Page 1 contains sensors 32 to 62 (sensor 63 is the next page bit). etc. 8480 */ 8481 #define MC_CMD_SENSOR_INFO_EXT_IN_PAGE_OFST 0 8482 #define MC_CMD_SENSOR_INFO_EXT_IN_PAGE_LEN 4 8483 8484 /* MC_CMD_SENSOR_INFO_EXT_IN_V2 msgrequest */ 8485 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_LEN 8 8486 /* Which page of sensors to report. 8487 * 8488 * Page 0 contains sensors 0 to 30 (sensor 31 is the next page bit). 8489 * 8490 * Page 1 contains sensors 32 to 62 (sensor 63 is the next page bit). etc. 8491 */ 8492 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_PAGE_OFST 0 8493 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_PAGE_LEN 4 8494 /* Flags controlling information retrieved */ 8495 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_FLAGS_OFST 4 8496 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_FLAGS_LEN 4 8497 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_ENGINEERING_OFST 4 8498 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_ENGINEERING_LBN 0 8499 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_ENGINEERING_WIDTH 1 8500 8501 /* MC_CMD_SENSOR_INFO_OUT msgresponse */ 8502 #define MC_CMD_SENSOR_INFO_OUT_LENMIN 4 8503 #define MC_CMD_SENSOR_INFO_OUT_LENMAX 252 8504 #define MC_CMD_SENSOR_INFO_OUT_LENMAX_MCDI2 1020 8505 #define MC_CMD_SENSOR_INFO_OUT_LEN(num) (4+8*(num)) 8506 #define MC_CMD_SENSOR_INFO_OUT_MC_CMD_SENSOR_ENTRY_NUM(len) (((len)-4)/8) 8507 #define MC_CMD_SENSOR_INFO_OUT_MASK_OFST 0 8508 #define MC_CMD_SENSOR_INFO_OUT_MASK_LEN 4 8509 /* enum: Controller temperature: degC */ 8510 #define MC_CMD_SENSOR_CONTROLLER_TEMP 0x0 8511 /* enum: Phy common temperature: degC */ 8512 #define MC_CMD_SENSOR_PHY_COMMON_TEMP 0x1 8513 /* enum: Controller cooling: bool */ 8514 #define MC_CMD_SENSOR_CONTROLLER_COOLING 0x2 8515 /* enum: Phy 0 temperature: degC */ 8516 #define MC_CMD_SENSOR_PHY0_TEMP 0x3 8517 /* enum: Phy 0 cooling: bool */ 8518 #define MC_CMD_SENSOR_PHY0_COOLING 0x4 8519 /* enum: Phy 1 temperature: degC */ 8520 #define MC_CMD_SENSOR_PHY1_TEMP 0x5 8521 /* enum: Phy 1 cooling: bool */ 8522 #define MC_CMD_SENSOR_PHY1_COOLING 0x6 8523 /* enum: 1.0v power: mV */ 8524 #define MC_CMD_SENSOR_IN_1V0 0x7 8525 /* enum: 1.2v power: mV */ 8526 #define MC_CMD_SENSOR_IN_1V2 0x8 8527 /* enum: 1.8v power: mV */ 8528 #define MC_CMD_SENSOR_IN_1V8 0x9 8529 /* enum: 2.5v power: mV */ 8530 #define MC_CMD_SENSOR_IN_2V5 0xa 8531 /* enum: 3.3v power: mV */ 8532 #define MC_CMD_SENSOR_IN_3V3 0xb 8533 /* enum: 12v power: mV */ 8534 #define MC_CMD_SENSOR_IN_12V0 0xc 8535 /* enum: 1.2v analogue power: mV */ 8536 #define MC_CMD_SENSOR_IN_1V2A 0xd 8537 /* enum: reference voltage: mV */ 8538 #define MC_CMD_SENSOR_IN_VREF 0xe 8539 /* enum: AOE FPGA power: mV */ 8540 #define MC_CMD_SENSOR_OUT_VAOE 0xf 8541 /* enum: AOE FPGA temperature: degC */ 8542 #define MC_CMD_SENSOR_AOE_TEMP 0x10 8543 /* enum: AOE FPGA PSU temperature: degC */ 8544 #define MC_CMD_SENSOR_PSU_AOE_TEMP 0x11 8545 /* enum: AOE PSU temperature: degC */ 8546 #define MC_CMD_SENSOR_PSU_TEMP 0x12 8547 /* enum: Fan 0 speed: RPM */ 8548 #define MC_CMD_SENSOR_FAN_0 0x13 8549 /* enum: Fan 1 speed: RPM */ 8550 #define MC_CMD_SENSOR_FAN_1 0x14 8551 /* enum: Fan 2 speed: RPM */ 8552 #define MC_CMD_SENSOR_FAN_2 0x15 8553 /* enum: Fan 3 speed: RPM */ 8554 #define MC_CMD_SENSOR_FAN_3 0x16 8555 /* enum: Fan 4 speed: RPM */ 8556 #define MC_CMD_SENSOR_FAN_4 0x17 8557 /* enum: AOE FPGA input power: mV */ 8558 #define MC_CMD_SENSOR_IN_VAOE 0x18 8559 /* enum: AOE FPGA current: mA */ 8560 #define MC_CMD_SENSOR_OUT_IAOE 0x19 8561 /* enum: AOE FPGA input current: mA */ 8562 #define MC_CMD_SENSOR_IN_IAOE 0x1a 8563 /* enum: NIC power consumption: W */ 8564 #define MC_CMD_SENSOR_NIC_POWER 0x1b 8565 /* enum: 0.9v power voltage: mV */ 8566 #define MC_CMD_SENSOR_IN_0V9 0x1c 8567 /* enum: 0.9v power current: mA */ 8568 #define MC_CMD_SENSOR_IN_I0V9 0x1d 8569 /* enum: 1.2v power current: mA */ 8570 #define MC_CMD_SENSOR_IN_I1V2 0x1e 8571 /* enum: Not a sensor: reserved for the next page flag */ 8572 #define MC_CMD_SENSOR_PAGE0_NEXT 0x1f 8573 /* enum: 0.9v power voltage (at ADC): mV */ 8574 #define MC_CMD_SENSOR_IN_0V9_ADC 0x20 8575 /* enum: Controller temperature 2: degC */ 8576 #define MC_CMD_SENSOR_CONTROLLER_2_TEMP 0x21 8577 /* enum: Voltage regulator internal temperature: degC */ 8578 #define MC_CMD_SENSOR_VREG_INTERNAL_TEMP 0x22 8579 /* enum: 0.9V voltage regulator temperature: degC */ 8580 #define MC_CMD_SENSOR_VREG_0V9_TEMP 0x23 8581 /* enum: 1.2V voltage regulator temperature: degC */ 8582 #define MC_CMD_SENSOR_VREG_1V2_TEMP 0x24 8583 /* enum: controller internal temperature sensor voltage (internal ADC): mV */ 8584 #define MC_CMD_SENSOR_CONTROLLER_VPTAT 0x25 8585 /* enum: controller internal temperature (internal ADC): degC */ 8586 #define MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP 0x26 8587 /* enum: controller internal temperature sensor voltage (external ADC): mV */ 8588 #define MC_CMD_SENSOR_CONTROLLER_VPTAT_EXTADC 0x27 8589 /* enum: controller internal temperature (external ADC): degC */ 8590 #define MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP_EXTADC 0x28 8591 /* enum: ambient temperature: degC */ 8592 #define MC_CMD_SENSOR_AMBIENT_TEMP 0x29 8593 /* enum: air flow: bool */ 8594 #define MC_CMD_SENSOR_AIRFLOW 0x2a 8595 /* enum: voltage between VSS08D and VSS08D at CSR: mV */ 8596 #define MC_CMD_SENSOR_VDD08D_VSS08D_CSR 0x2b 8597 /* enum: voltage between VSS08D and VSS08D at CSR (external ADC): mV */ 8598 #define MC_CMD_SENSOR_VDD08D_VSS08D_CSR_EXTADC 0x2c 8599 /* enum: Hotpoint temperature: degC */ 8600 #define MC_CMD_SENSOR_HOTPOINT_TEMP 0x2d 8601 /* enum: Port 0 PHY power switch over-current: bool */ 8602 #define MC_CMD_SENSOR_PHY_POWER_PORT0 0x2e 8603 /* enum: Port 1 PHY power switch over-current: bool */ 8604 #define MC_CMD_SENSOR_PHY_POWER_PORT1 0x2f 8605 /* enum: Mop-up microcontroller reference voltage: mV */ 8606 #define MC_CMD_SENSOR_MUM_VCC 0x30 8607 /* enum: 0.9v power phase A voltage: mV */ 8608 #define MC_CMD_SENSOR_IN_0V9_A 0x31 8609 /* enum: 0.9v power phase A current: mA */ 8610 #define MC_CMD_SENSOR_IN_I0V9_A 0x32 8611 /* enum: 0.9V voltage regulator phase A temperature: degC */ 8612 #define MC_CMD_SENSOR_VREG_0V9_A_TEMP 0x33 8613 /* enum: 0.9v power phase B voltage: mV */ 8614 #define MC_CMD_SENSOR_IN_0V9_B 0x34 8615 /* enum: 0.9v power phase B current: mA */ 8616 #define MC_CMD_SENSOR_IN_I0V9_B 0x35 8617 /* enum: 0.9V voltage regulator phase B temperature: degC */ 8618 #define MC_CMD_SENSOR_VREG_0V9_B_TEMP 0x36 8619 /* enum: CCOM AVREG 1v2 supply (interval ADC): mV */ 8620 #define MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY 0x37 8621 /* enum: CCOM AVREG 1v2 supply (external ADC): mV */ 8622 #define MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY_EXTADC 0x38 8623 /* enum: CCOM AVREG 1v8 supply (interval ADC): mV */ 8624 #define MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY 0x39 8625 /* enum: CCOM AVREG 1v8 supply (external ADC): mV */ 8626 #define MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY_EXTADC 0x3a 8627 /* enum: CCOM RTS temperature: degC */ 8628 #define MC_CMD_SENSOR_CONTROLLER_RTS 0x3b 8629 /* enum: Not a sensor: reserved for the next page flag */ 8630 #define MC_CMD_SENSOR_PAGE1_NEXT 0x3f 8631 /* enum: controller internal temperature sensor voltage on master core 8632 * (internal ADC): mV 8633 */ 8634 #define MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT 0x40 8635 /* enum: controller internal temperature on master core (internal ADC): degC */ 8636 #define MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP 0x41 8637 /* enum: controller internal temperature sensor voltage on master core 8638 * (external ADC): mV 8639 */ 8640 #define MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT_EXTADC 0x42 8641 /* enum: controller internal temperature on master core (external ADC): degC */ 8642 #define MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC 0x43 8643 /* enum: controller internal temperature on slave core sensor voltage (internal 8644 * ADC): mV 8645 */ 8646 #define MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT 0x44 8647 /* enum: controller internal temperature on slave core (internal ADC): degC */ 8648 #define MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP 0x45 8649 /* enum: controller internal temperature on slave core sensor voltage (external 8650 * ADC): mV 8651 */ 8652 #define MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT_EXTADC 0x46 8653 /* enum: controller internal temperature on slave core (external ADC): degC */ 8654 #define MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC 0x47 8655 /* enum: Voltage supplied to the SODIMMs from their power supply: mV */ 8656 #define MC_CMD_SENSOR_SODIMM_VOUT 0x49 8657 /* enum: Temperature of SODIMM 0 (if installed): degC */ 8658 #define MC_CMD_SENSOR_SODIMM_0_TEMP 0x4a 8659 /* enum: Temperature of SODIMM 1 (if installed): degC */ 8660 #define MC_CMD_SENSOR_SODIMM_1_TEMP 0x4b 8661 /* enum: Voltage supplied to the QSFP #0 from their power supply: mV */ 8662 #define MC_CMD_SENSOR_PHY0_VCC 0x4c 8663 /* enum: Voltage supplied to the QSFP #1 from their power supply: mV */ 8664 #define MC_CMD_SENSOR_PHY1_VCC 0x4d 8665 /* enum: Controller die temperature (TDIODE): degC */ 8666 #define MC_CMD_SENSOR_CONTROLLER_TDIODE_TEMP 0x4e 8667 /* enum: Board temperature (front): degC */ 8668 #define MC_CMD_SENSOR_BOARD_FRONT_TEMP 0x4f 8669 /* enum: Board temperature (back): degC */ 8670 #define MC_CMD_SENSOR_BOARD_BACK_TEMP 0x50 8671 /* enum: 1.8v power current: mA */ 8672 #define MC_CMD_SENSOR_IN_I1V8 0x51 8673 /* enum: 2.5v power current: mA */ 8674 #define MC_CMD_SENSOR_IN_I2V5 0x52 8675 /* enum: 3.3v power current: mA */ 8676 #define MC_CMD_SENSOR_IN_I3V3 0x53 8677 /* enum: 12v power current: mA */ 8678 #define MC_CMD_SENSOR_IN_I12V0 0x54 8679 /* enum: 1.3v power: mV */ 8680 #define MC_CMD_SENSOR_IN_1V3 0x55 8681 /* enum: 1.3v power current: mA */ 8682 #define MC_CMD_SENSOR_IN_I1V3 0x56 8683 /* enum: Engineering sensor 1 */ 8684 #define MC_CMD_SENSOR_ENGINEERING_1 0x57 8685 /* enum: Engineering sensor 2 */ 8686 #define MC_CMD_SENSOR_ENGINEERING_2 0x58 8687 /* enum: Engineering sensor 3 */ 8688 #define MC_CMD_SENSOR_ENGINEERING_3 0x59 8689 /* enum: Engineering sensor 4 */ 8690 #define MC_CMD_SENSOR_ENGINEERING_4 0x5a 8691 /* enum: Engineering sensor 5 */ 8692 #define MC_CMD_SENSOR_ENGINEERING_5 0x5b 8693 /* enum: Engineering sensor 6 */ 8694 #define MC_CMD_SENSOR_ENGINEERING_6 0x5c 8695 /* enum: Engineering sensor 7 */ 8696 #define MC_CMD_SENSOR_ENGINEERING_7 0x5d 8697 /* enum: Engineering sensor 8 */ 8698 #define MC_CMD_SENSOR_ENGINEERING_8 0x5e 8699 /* enum: Not a sensor: reserved for the next page flag */ 8700 #define MC_CMD_SENSOR_PAGE2_NEXT 0x5f 8701 /* MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF */ 8702 #define MC_CMD_SENSOR_ENTRY_OFST 4 8703 #define MC_CMD_SENSOR_ENTRY_LEN 8 8704 #define MC_CMD_SENSOR_ENTRY_LO_OFST 4 8705 #define MC_CMD_SENSOR_ENTRY_LO_LEN 4 8706 #define MC_CMD_SENSOR_ENTRY_LO_LBN 32 8707 #define MC_CMD_SENSOR_ENTRY_LO_WIDTH 32 8708 #define MC_CMD_SENSOR_ENTRY_HI_OFST 8 8709 #define MC_CMD_SENSOR_ENTRY_HI_LEN 4 8710 #define MC_CMD_SENSOR_ENTRY_HI_LBN 64 8711 #define MC_CMD_SENSOR_ENTRY_HI_WIDTH 32 8712 #define MC_CMD_SENSOR_ENTRY_MINNUM 0 8713 #define MC_CMD_SENSOR_ENTRY_MAXNUM 31 8714 #define MC_CMD_SENSOR_ENTRY_MAXNUM_MCDI2 127 8715 8716 /* MC_CMD_SENSOR_INFO_EXT_OUT msgresponse */ 8717 #define MC_CMD_SENSOR_INFO_EXT_OUT_LENMIN 4 8718 #define MC_CMD_SENSOR_INFO_EXT_OUT_LENMAX 252 8719 #define MC_CMD_SENSOR_INFO_EXT_OUT_LENMAX_MCDI2 1020 8720 #define MC_CMD_SENSOR_INFO_EXT_OUT_LEN(num) (4+8*(num)) 8721 #define MC_CMD_SENSOR_INFO_EXT_OUT_MC_CMD_SENSOR_ENTRY_NUM(len) (((len)-4)/8) 8722 #define MC_CMD_SENSOR_INFO_EXT_OUT_MASK_OFST 0 8723 #define MC_CMD_SENSOR_INFO_EXT_OUT_MASK_LEN 4 8724 /* Enum values, see field(s): */ 8725 /* MC_CMD_SENSOR_INFO_OUT */ 8726 #define MC_CMD_SENSOR_INFO_EXT_OUT_NEXT_PAGE_OFST 0 8727 #define MC_CMD_SENSOR_INFO_EXT_OUT_NEXT_PAGE_LBN 31 8728 #define MC_CMD_SENSOR_INFO_EXT_OUT_NEXT_PAGE_WIDTH 1 8729 /* MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF */ 8730 /* MC_CMD_SENSOR_ENTRY_OFST 4 */ 8731 /* MC_CMD_SENSOR_ENTRY_LEN 8 */ 8732 /* MC_CMD_SENSOR_ENTRY_LO_OFST 4 */ 8733 /* MC_CMD_SENSOR_ENTRY_LO_LEN 4 */ 8734 /* MC_CMD_SENSOR_ENTRY_LO_LBN 32 */ 8735 /* MC_CMD_SENSOR_ENTRY_LO_WIDTH 32 */ 8736 /* MC_CMD_SENSOR_ENTRY_HI_OFST 8 */ 8737 /* MC_CMD_SENSOR_ENTRY_HI_LEN 4 */ 8738 /* MC_CMD_SENSOR_ENTRY_HI_LBN 64 */ 8739 /* MC_CMD_SENSOR_ENTRY_HI_WIDTH 32 */ 8740 /* MC_CMD_SENSOR_ENTRY_MINNUM 0 */ 8741 /* MC_CMD_SENSOR_ENTRY_MAXNUM 31 */ 8742 /* MC_CMD_SENSOR_ENTRY_MAXNUM_MCDI2 127 */ 8743 8744 /* MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF structuredef */ 8745 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_LEN 8 8746 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN1_OFST 0 8747 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN1_LEN 2 8748 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN1_LBN 0 8749 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN1_WIDTH 16 8750 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX1_OFST 2 8751 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX1_LEN 2 8752 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX1_LBN 16 8753 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX1_WIDTH 16 8754 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_OFST 4 8755 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_LEN 2 8756 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_LBN 32 8757 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_WIDTH 16 8758 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX2_OFST 6 8759 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX2_LEN 2 8760 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX2_LBN 48 8761 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX2_WIDTH 16 8762 8763 8764 /***********************************/ 8765 /* MC_CMD_READ_SENSORS 8766 * Returns the current reading from each sensor. DMAs an array of sensor 8767 * readings, in order of sensor type (but without gaps for unimplemented 8768 * sensors), into host memory. Each array element is a 8769 * MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF dword. 8770 * 8771 * If the request does not contain the LENGTH field then only sensors 0 to 30 8772 * are reported, to avoid DMA buffer overflow in older host software. If the 8773 * sensor reading require more space than the LENGTH allows, then return 8774 * EINVAL. 8775 * 8776 * The MC will send a SENSOREVT event every time any sensor changes state. The 8777 * driver is responsible for ensuring that it doesn't miss any events. The 8778 * board will function normally if all sensors are in STATE_OK or 8779 * STATE_WARNING. Otherwise the board should not be expected to function. 8780 */ 8781 #define MC_CMD_READ_SENSORS 0x42 8782 #define MC_CMD_READ_SENSORS_MSGSET 0x42 8783 #undef MC_CMD_0x42_PRIVILEGE_CTG 8784 8785 #define MC_CMD_0x42_PRIVILEGE_CTG SRIOV_CTG_GENERAL 8786 8787 /* MC_CMD_READ_SENSORS_IN msgrequest */ 8788 #define MC_CMD_READ_SENSORS_IN_LEN 8 8789 /* DMA address of host buffer for sensor readings (must be 4Kbyte aligned). 8790 * 8791 * If the address is 0xffffffffffffffff send the readings in the response (used 8792 * by cmdclient). 8793 */ 8794 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_OFST 0 8795 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LEN 8 8796 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_OFST 0 8797 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_LEN 4 8798 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_LBN 0 8799 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_WIDTH 32 8800 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_OFST 4 8801 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_LEN 4 8802 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_LBN 32 8803 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_WIDTH 32 8804 8805 /* MC_CMD_READ_SENSORS_EXT_IN msgrequest */ 8806 #define MC_CMD_READ_SENSORS_EXT_IN_LEN 12 8807 /* DMA address of host buffer for sensor readings (must be 4Kbyte aligned). 8808 * 8809 * If the address is 0xffffffffffffffff send the readings in the response (used 8810 * by cmdclient). 8811 */ 8812 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_OFST 0 8813 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LEN 8 8814 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_OFST 0 8815 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_LEN 4 8816 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_LBN 0 8817 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_WIDTH 32 8818 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_OFST 4 8819 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_LEN 4 8820 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_LBN 32 8821 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_WIDTH 32 8822 /* Size in bytes of host buffer. */ 8823 #define MC_CMD_READ_SENSORS_EXT_IN_LENGTH_OFST 8 8824 #define MC_CMD_READ_SENSORS_EXT_IN_LENGTH_LEN 4 8825 8826 /* MC_CMD_READ_SENSORS_EXT_IN_V2 msgrequest */ 8827 #define MC_CMD_READ_SENSORS_EXT_IN_V2_LEN 16 8828 /* DMA address of host buffer for sensor readings (must be 4Kbyte aligned). 8829 * 8830 * If the address is 0xffffffffffffffff send the readings in the response (used 8831 * by cmdclient). 8832 */ 8833 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_OFST 0 8834 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LEN 8 8835 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_OFST 0 8836 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_LEN 4 8837 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_LBN 0 8838 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_WIDTH 32 8839 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_OFST 4 8840 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_LEN 4 8841 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_LBN 32 8842 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_WIDTH 32 8843 /* Size in bytes of host buffer. */ 8844 #define MC_CMD_READ_SENSORS_EXT_IN_V2_LENGTH_OFST 8 8845 #define MC_CMD_READ_SENSORS_EXT_IN_V2_LENGTH_LEN 4 8846 /* Flags controlling information retrieved */ 8847 #define MC_CMD_READ_SENSORS_EXT_IN_V2_FLAGS_OFST 12 8848 #define MC_CMD_READ_SENSORS_EXT_IN_V2_FLAGS_LEN 4 8849 #define MC_CMD_READ_SENSORS_EXT_IN_V2_ENGINEERING_OFST 12 8850 #define MC_CMD_READ_SENSORS_EXT_IN_V2_ENGINEERING_LBN 0 8851 #define MC_CMD_READ_SENSORS_EXT_IN_V2_ENGINEERING_WIDTH 1 8852 8853 /* MC_CMD_READ_SENSORS_OUT msgresponse */ 8854 #define MC_CMD_READ_SENSORS_OUT_LEN 0 8855 8856 /* MC_CMD_READ_SENSORS_EXT_OUT msgresponse */ 8857 #define MC_CMD_READ_SENSORS_EXT_OUT_LEN 0 8858 8859 /* MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF structuredef */ 8860 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_LEN 4 8861 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_VALUE_OFST 0 8862 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_VALUE_LEN 2 8863 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_VALUE_LBN 0 8864 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_VALUE_WIDTH 16 8865 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_OFST 2 8866 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_LEN 1 8867 /* enum: Ok. */ 8868 #define MC_CMD_SENSOR_STATE_OK 0x0 8869 /* enum: Breached warning threshold. */ 8870 #define MC_CMD_SENSOR_STATE_WARNING 0x1 8871 /* enum: Breached fatal threshold. */ 8872 #define MC_CMD_SENSOR_STATE_FATAL 0x2 8873 /* enum: Fault with sensor. */ 8874 #define MC_CMD_SENSOR_STATE_BROKEN 0x3 8875 /* enum: Sensor is working but does not currently have a reading. */ 8876 #define MC_CMD_SENSOR_STATE_NO_READING 0x4 8877 /* enum: Sensor initialisation failed. */ 8878 #define MC_CMD_SENSOR_STATE_INIT_FAILED 0x5 8879 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_LBN 16 8880 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_WIDTH 8 8881 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_OFST 3 8882 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_LEN 1 8883 /* Enum values, see field(s): */ 8884 /* MC_CMD_SENSOR_INFO/MC_CMD_SENSOR_INFO_OUT/MASK */ 8885 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_LBN 24 8886 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_WIDTH 8 8887 8888 8889 /***********************************/ 8890 /* MC_CMD_GET_PHY_STATE 8891 * Report current state of PHY. A 'zombie' PHY is a PHY that has failed to boot 8892 * (e.g. due to missing or corrupted firmware). Locks required: None. Return 8893 * code: 0 8894 */ 8895 #define MC_CMD_GET_PHY_STATE 0x43 8896 #define MC_CMD_GET_PHY_STATE_MSGSET 0x43 8897 #undef MC_CMD_0x43_PRIVILEGE_CTG 8898 8899 #define MC_CMD_0x43_PRIVILEGE_CTG SRIOV_CTG_GENERAL 8900 8901 /* MC_CMD_GET_PHY_STATE_IN msgrequest */ 8902 #define MC_CMD_GET_PHY_STATE_IN_LEN 0 8903 8904 /* MC_CMD_GET_PHY_STATE_IN_V2 msgrequest */ 8905 #define MC_CMD_GET_PHY_STATE_IN_V2_LEN 8 8906 /* Target port to request PHY state for. Uses MAE_LINK_ENDPOINT_SELECTOR which 8907 * identifies a real or virtual network port by MAE port and link end. See the 8908 * structure definition for more details. 8909 */ 8910 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_OFST 0 8911 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LEN 8 8912 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LO_OFST 0 8913 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LO_LEN 4 8914 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LO_LBN 0 8915 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LO_WIDTH 32 8916 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_HI_OFST 4 8917 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_HI_LEN 4 8918 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_HI_LBN 32 8919 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_HI_WIDTH 32 8920 /* See structuredef: MAE_LINK_ENDPOINT_SELECTOR */ 8921 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_OFST 0 8922 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_LEN 4 8923 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FLAT_OFST 0 8924 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FLAT_LEN 4 8925 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_TYPE_OFST 3 8926 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_TYPE_LEN 1 8927 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 0 8928 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 8929 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 0 8930 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 8931 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 20 8932 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 8933 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 16 8934 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 8935 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 2 8936 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 8937 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 0 8938 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 8939 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LINK_END_OFST 4 8940 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LINK_END_LEN 4 8941 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_OFST 0 8942 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_LEN 8 8943 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_LO_OFST 0 8944 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_LO_LEN 4 8945 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_LO_LBN 0 8946 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_LO_WIDTH 32 8947 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_HI_OFST 4 8948 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_HI_LEN 4 8949 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_HI_LBN 32 8950 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_HI_WIDTH 32 8951 8952 /* MC_CMD_GET_PHY_STATE_OUT msgresponse */ 8953 #define MC_CMD_GET_PHY_STATE_OUT_LEN 4 8954 #define MC_CMD_GET_PHY_STATE_OUT_STATE_OFST 0 8955 #define MC_CMD_GET_PHY_STATE_OUT_STATE_LEN 4 8956 /* enum: Ok. */ 8957 #define MC_CMD_PHY_STATE_OK 0x1 8958 /* enum: Faulty. */ 8959 #define MC_CMD_PHY_STATE_ZOMBIE 0x2 8960 8961 8962 /***********************************/ 8963 /* MC_CMD_SETUP_8021QBB 8964 * 802.1Qbb control. 8 Tx queues that map to priorities 0 - 7. Use all 1s to 8965 * disable 802.Qbb for a given priority. 8966 */ 8967 #define MC_CMD_SETUP_8021QBB 0x44 8968 #define MC_CMD_SETUP_8021QBB_MSGSET 0x44 8969 8970 /* MC_CMD_SETUP_8021QBB_IN msgrequest */ 8971 #define MC_CMD_SETUP_8021QBB_IN_LEN 32 8972 #define MC_CMD_SETUP_8021QBB_IN_TXQS_OFST 0 8973 #define MC_CMD_SETUP_8021QBB_IN_TXQS_LEN 32 8974 8975 /* MC_CMD_SETUP_8021QBB_OUT msgresponse */ 8976 #define MC_CMD_SETUP_8021QBB_OUT_LEN 0 8977 8978 8979 /***********************************/ 8980 /* MC_CMD_WOL_FILTER_GET 8981 * Retrieve ID of any WoL filters. Locks required: None. Returns: 0, ENOSYS 8982 */ 8983 #define MC_CMD_WOL_FILTER_GET 0x45 8984 #define MC_CMD_WOL_FILTER_GET_MSGSET 0x45 8985 #undef MC_CMD_0x45_PRIVILEGE_CTG 8986 8987 #define MC_CMD_0x45_PRIVILEGE_CTG SRIOV_CTG_LINK 8988 8989 /* MC_CMD_WOL_FILTER_GET_IN msgrequest */ 8990 #define MC_CMD_WOL_FILTER_GET_IN_LEN 0 8991 8992 /* MC_CMD_WOL_FILTER_GET_OUT msgresponse */ 8993 #define MC_CMD_WOL_FILTER_GET_OUT_LEN 4 8994 #define MC_CMD_WOL_FILTER_GET_OUT_FILTER_ID_OFST 0 8995 #define MC_CMD_WOL_FILTER_GET_OUT_FILTER_ID_LEN 4 8996 8997 8998 /***********************************/ 8999 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD 9000 * Add a protocol offload to NIC for lights-out state. Locks required: None. 9001 * Returns: 0, ENOSYS 9002 */ 9003 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD 0x46 9004 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_MSGSET 0x46 9005 #undef MC_CMD_0x46_PRIVILEGE_CTG 9006 9007 #define MC_CMD_0x46_PRIVILEGE_CTG SRIOV_CTG_LINK 9008 9009 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN msgrequest */ 9010 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_LENMIN 8 9011 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_LENMAX 252 9012 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_LENMAX_MCDI2 1020 9013 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_LEN(num) (4+4*(num)) 9014 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_NUM(len) (((len)-4)/4) 9015 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_OFST 0 9016 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_LEN 4 9017 #define MC_CMD_LIGHTSOUT_OFFLOAD_PROTOCOL_ARP 0x1 /* enum */ 9018 #define MC_CMD_LIGHTSOUT_OFFLOAD_PROTOCOL_NS 0x2 /* enum */ 9019 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_OFST 4 9020 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_LEN 4 9021 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_MINNUM 1 9022 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_MAXNUM 62 9023 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_MAXNUM_MCDI2 254 9024 9025 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP msgrequest */ 9026 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_LEN 14 9027 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_OFST 0 */ 9028 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_LEN 4 */ 9029 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_MAC_OFST 4 9030 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_MAC_LEN 6 9031 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_IP_OFST 10 9032 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_IP_LEN 4 9033 9034 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS msgrequest */ 9035 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_LEN 42 9036 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_OFST 0 */ 9037 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_LEN 4 */ 9038 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_MAC_OFST 4 9039 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_MAC_LEN 6 9040 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_SNIPV6_OFST 10 9041 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_SNIPV6_LEN 16 9042 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_IPV6_OFST 26 9043 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_IPV6_LEN 16 9044 9045 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_OUT msgresponse */ 9046 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_OUT_LEN 4 9047 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_OUT_FILTER_ID_OFST 0 9048 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_OUT_FILTER_ID_LEN 4 9049 9050 9051 /***********************************/ 9052 /* MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD 9053 * Remove a protocol offload from NIC for lights-out state. Locks required: 9054 * None. Returns: 0, ENOSYS 9055 */ 9056 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD 0x47 9057 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_MSGSET 0x47 9058 #undef MC_CMD_0x47_PRIVILEGE_CTG 9059 9060 #define MC_CMD_0x47_PRIVILEGE_CTG SRIOV_CTG_LINK 9061 9062 /* MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN msgrequest */ 9063 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_LEN 8 9064 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_OFST 0 9065 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_LEN 4 9066 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_FILTER_ID_OFST 4 9067 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_FILTER_ID_LEN 4 9068 9069 /* MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_OUT msgresponse */ 9070 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_OUT_LEN 0 9071 9072 9073 /***********************************/ 9074 /* MC_CMD_MAC_RESET_RESTORE 9075 * Restore MAC after block reset. Locks required: None. Returns: 0. 9076 */ 9077 #define MC_CMD_MAC_RESET_RESTORE 0x48 9078 #define MC_CMD_MAC_RESET_RESTORE_MSGSET 0x48 9079 9080 /* MC_CMD_MAC_RESET_RESTORE_IN msgrequest */ 9081 #define MC_CMD_MAC_RESET_RESTORE_IN_LEN 0 9082 9083 /* MC_CMD_MAC_RESET_RESTORE_OUT msgresponse */ 9084 #define MC_CMD_MAC_RESET_RESTORE_OUT_LEN 0 9085 9086 9087 /***********************************/ 9088 /* MC_CMD_TESTASSERT 9089 * Deliberately trigger an assert-detonation in the firmware for testing 9090 * purposes (i.e. to allow tests that the driver copes gracefully). Locks 9091 * required: None Returns: 0 9092 */ 9093 #define MC_CMD_TESTASSERT 0x49 9094 #define MC_CMD_TESTASSERT_MSGSET 0x49 9095 #undef MC_CMD_0x49_PRIVILEGE_CTG 9096 9097 #define MC_CMD_0x49_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 9098 9099 /* MC_CMD_TESTASSERT_IN msgrequest */ 9100 #define MC_CMD_TESTASSERT_IN_LEN 0 9101 9102 /* MC_CMD_TESTASSERT_OUT msgresponse */ 9103 #define MC_CMD_TESTASSERT_OUT_LEN 0 9104 9105 /* MC_CMD_TESTASSERT_V2_IN msgrequest */ 9106 #define MC_CMD_TESTASSERT_V2_IN_LEN 4 9107 /* How to provoke the assertion */ 9108 #define MC_CMD_TESTASSERT_V2_IN_TYPE_OFST 0 9109 #define MC_CMD_TESTASSERT_V2_IN_TYPE_LEN 4 9110 /* enum: Assert using the FAIL_ASSERTION_WITH_USEFUL_VALUES macro. Unless 9111 * you're testing firmware, this is what you want. 9112 */ 9113 #define MC_CMD_TESTASSERT_V2_IN_FAIL_ASSERTION_WITH_USEFUL_VALUES 0x0 9114 /* enum: Assert using assert(0); */ 9115 #define MC_CMD_TESTASSERT_V2_IN_ASSERT_FALSE 0x1 9116 /* enum: Deliberately trigger a watchdog */ 9117 #define MC_CMD_TESTASSERT_V2_IN_WATCHDOG 0x2 9118 /* enum: Deliberately trigger a trap by loading from an invalid address */ 9119 #define MC_CMD_TESTASSERT_V2_IN_LOAD_TRAP 0x3 9120 /* enum: Deliberately trigger a trap by storing to an invalid address */ 9121 #define MC_CMD_TESTASSERT_V2_IN_STORE_TRAP 0x4 9122 /* enum: Jump to an invalid address */ 9123 #define MC_CMD_TESTASSERT_V2_IN_JUMP_TRAP 0x5 9124 9125 /* MC_CMD_TESTASSERT_V2_OUT msgresponse */ 9126 #define MC_CMD_TESTASSERT_V2_OUT_LEN 0 9127 9128 9129 /***********************************/ 9130 /* MC_CMD_WORKAROUND 9131 * Enable/Disable a given workaround. The mcfw will return EINVAL if it doesn't 9132 * understand the given workaround number - which should not be treated as a 9133 * hard error by client code. This op does not imply any semantics about each 9134 * workaround, that's between the driver and the mcfw on a per-workaround 9135 * basis. Locks required: None. Returns: 0, EINVAL . 9136 */ 9137 #define MC_CMD_WORKAROUND 0x4a 9138 #define MC_CMD_WORKAROUND_MSGSET 0x4a 9139 #undef MC_CMD_0x4a_PRIVILEGE_CTG 9140 9141 #define MC_CMD_0x4a_PRIVILEGE_CTG SRIOV_CTG_ADMIN 9142 9143 /* MC_CMD_WORKAROUND_IN msgrequest */ 9144 #define MC_CMD_WORKAROUND_IN_LEN 8 9145 /* The enums here must correspond with those in MC_CMD_GET_WORKAROUND. */ 9146 #define MC_CMD_WORKAROUND_IN_TYPE_OFST 0 9147 #define MC_CMD_WORKAROUND_IN_TYPE_LEN 4 9148 /* enum: Bug 17230 work around. */ 9149 #define MC_CMD_WORKAROUND_BUG17230 0x1 9150 /* enum: Bug 35388 work around (unsafe EVQ writes). */ 9151 #define MC_CMD_WORKAROUND_BUG35388 0x2 9152 /* enum: Bug35017 workaround (A64 tables must be identity map) */ 9153 #define MC_CMD_WORKAROUND_BUG35017 0x3 9154 /* enum: Bug 41750 present (MC_CMD_TRIGGER_INTERRUPT won't work) */ 9155 #define MC_CMD_WORKAROUND_BUG41750 0x4 9156 /* enum: Bug 42008 present (Interrupts can overtake associated events). Caution 9157 * - before adding code that queries this workaround, remember that there's 9158 * released Monza firmware that doesn't understand MC_CMD_WORKAROUND_BUG42008, 9159 * and will hence (incorrectly) report that the bug doesn't exist. 9160 */ 9161 #define MC_CMD_WORKAROUND_BUG42008 0x5 9162 /* enum: Bug 26807 features present in firmware (multicast filter chaining) 9163 * This feature cannot be turned on/off while there are any filters already 9164 * present. The behaviour in such case depends on the acting client's privilege 9165 * level. If the client has the admin privilege, then all functions that have 9166 * filters installed will be FLRed and the FLR_DONE flag will be set. Otherwise 9167 * the command will fail with MC_CMD_ERR_FILTERS_PRESENT. 9168 */ 9169 #define MC_CMD_WORKAROUND_BUG26807 0x6 9170 /* enum: Bug 61265 work around (broken EVQ TMR writes). */ 9171 #define MC_CMD_WORKAROUND_BUG61265 0x7 9172 /* 0 = disable the workaround indicated by TYPE; any non-zero value = enable 9173 * the workaround 9174 */ 9175 #define MC_CMD_WORKAROUND_IN_ENABLED_OFST 4 9176 #define MC_CMD_WORKAROUND_IN_ENABLED_LEN 4 9177 9178 /* MC_CMD_WORKAROUND_OUT msgresponse */ 9179 #define MC_CMD_WORKAROUND_OUT_LEN 0 9180 9181 /* MC_CMD_WORKAROUND_EXT_OUT msgresponse: This response format will be used 9182 * when (TYPE == MC_CMD_WORKAROUND_BUG26807) 9183 */ 9184 #define MC_CMD_WORKAROUND_EXT_OUT_LEN 4 9185 #define MC_CMD_WORKAROUND_EXT_OUT_FLAGS_OFST 0 9186 #define MC_CMD_WORKAROUND_EXT_OUT_FLAGS_LEN 4 9187 #define MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_OFST 0 9188 #define MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_LBN 0 9189 #define MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_WIDTH 1 9190 9191 9192 /***********************************/ 9193 /* MC_CMD_GET_PHY_MEDIA_INFO 9194 * Read media-specific data from PHY (e.g. SFP/SFP+ module ID information for 9195 * SFP+ PHYs). The "media type" can be found via GET_PHY_CFG 9196 * (GET_PHY_CFG_OUT_MEDIA_TYPE); the valid "page number" input values, and the 9197 * output data, are interpreted on a per-type basis. For SFP+, PAGE=0 or 1 9198 * returns a 128-byte block read from module I2C address 0xA0 offset 0 or 0x80. 9199 * For QSFP, PAGE=-1 is the lower (unbanked) page. PAGE=2 is the EEPROM and 9200 * PAGE=3 is the module limits. For DSFP, module addressing requires a 9201 * "BANK:PAGE". Not every bank has the same number of pages. See the Common 9202 * Management Interface Specification (CMIS) for further details. A BANK:PAGE 9203 * of "0xffff:0xffff" retrieves the lower (unbanked) page. Locks required - 9204 * None. Return code - 0. 9205 */ 9206 #define MC_CMD_GET_PHY_MEDIA_INFO 0x4b 9207 #define MC_CMD_GET_PHY_MEDIA_INFO_MSGSET 0x4b 9208 #undef MC_CMD_0x4b_PRIVILEGE_CTG 9209 9210 #define MC_CMD_0x4b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 9211 9212 /* MC_CMD_GET_PHY_MEDIA_INFO_IN msgrequest */ 9213 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_LEN 4 9214 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_PAGE_OFST 0 9215 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_PAGE_LEN 4 9216 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_PAGE_OFST 0 9217 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_PAGE_LBN 0 9218 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_PAGE_WIDTH 16 9219 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_BANK_OFST 0 9220 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_BANK_LBN 16 9221 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_BANK_WIDTH 16 9222 9223 /* MC_CMD_GET_PHY_MEDIA_INFO_IN_V2 msgrequest */ 9224 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_LEN 12 9225 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_PAGE_OFST 0 9226 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_PAGE_LEN 4 9227 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_DSFP_PAGE_OFST 0 9228 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_DSFP_PAGE_LBN 0 9229 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_DSFP_PAGE_WIDTH 16 9230 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_DSFP_BANK_OFST 0 9231 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_DSFP_BANK_LBN 16 9232 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_DSFP_BANK_WIDTH 16 9233 /* Target port to request PHY state for. Uses MAE_LINK_ENDPOINT_SELECTOR which 9234 * identifies a real or virtual network port by MAE port and link end. See the 9235 * structure definition for more details 9236 */ 9237 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_OFST 4 9238 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LEN 8 9239 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LO_OFST 4 9240 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LO_LEN 4 9241 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LO_LBN 32 9242 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LO_WIDTH 32 9243 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_HI_OFST 8 9244 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_HI_LEN 4 9245 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_HI_LBN 64 9246 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_HI_WIDTH 32 9247 /* See structuredef: MAE_LINK_ENDPOINT_SELECTOR */ 9248 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_OFST 4 9249 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_LEN 4 9250 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FLAT_OFST 4 9251 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FLAT_LEN 4 9252 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_TYPE_OFST 7 9253 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_TYPE_LEN 1 9254 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 4 9255 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 9256 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 32 9257 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 9258 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 52 9259 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 9260 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 48 9261 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 9262 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 6 9263 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 9264 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 4 9265 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 9266 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LINK_END_OFST 8 9267 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LINK_END_LEN 4 9268 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_OFST 4 9269 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_LEN 8 9270 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_LO_OFST 4 9271 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_LO_LEN 4 9272 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_LO_LBN 32 9273 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_LO_WIDTH 32 9274 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_HI_OFST 8 9275 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_HI_LEN 4 9276 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_HI_LBN 64 9277 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_HI_WIDTH 32 9278 9279 /* MC_CMD_GET_PHY_MEDIA_INFO_OUT msgresponse */ 9280 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LENMIN 5 9281 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LENMAX 252 9282 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LENMAX_MCDI2 1020 9283 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LEN(num) (4+1*(num)) 9284 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_NUM(len) (((len)-4)/1) 9285 /* in bytes */ 9286 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATALEN_OFST 0 9287 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATALEN_LEN 4 9288 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_OFST 4 9289 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_LEN 1 9290 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_MINNUM 1 9291 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_MAXNUM 248 9292 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_MAXNUM_MCDI2 1016 9293 9294 9295 /***********************************/ 9296 /* MC_CMD_NVRAM_TEST 9297 * Test a particular NVRAM partition for valid contents (where "valid" depends 9298 * on the type of partition). 9299 */ 9300 #define MC_CMD_NVRAM_TEST 0x4c 9301 #define MC_CMD_NVRAM_TEST_MSGSET 0x4c 9302 #undef MC_CMD_0x4c_PRIVILEGE_CTG 9303 9304 #define MC_CMD_0x4c_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 9305 9306 /* MC_CMD_NVRAM_TEST_IN msgrequest */ 9307 #define MC_CMD_NVRAM_TEST_IN_LEN 4 9308 #define MC_CMD_NVRAM_TEST_IN_TYPE_OFST 0 9309 #define MC_CMD_NVRAM_TEST_IN_TYPE_LEN 4 9310 /* Enum values, see field(s): */ 9311 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 9312 9313 /* MC_CMD_NVRAM_TEST_OUT msgresponse */ 9314 #define MC_CMD_NVRAM_TEST_OUT_LEN 4 9315 #define MC_CMD_NVRAM_TEST_OUT_RESULT_OFST 0 9316 #define MC_CMD_NVRAM_TEST_OUT_RESULT_LEN 4 9317 /* enum: Passed. */ 9318 #define MC_CMD_NVRAM_TEST_PASS 0x0 9319 /* enum: Failed. */ 9320 #define MC_CMD_NVRAM_TEST_FAIL 0x1 9321 /* enum: Not supported. */ 9322 #define MC_CMD_NVRAM_TEST_NOTSUPP 0x2 9323 9324 9325 /***********************************/ 9326 /* MC_CMD_MRSFP_TWEAK 9327 * Read status and/or set parameters for the 'mrsfp' driver in mr_rusty builds. 9328 * I2C I/O expander bits are always read; if equaliser parameters are supplied, 9329 * they are configured first. Locks required: None. Return code: 0, EINVAL. 9330 */ 9331 #define MC_CMD_MRSFP_TWEAK 0x4d 9332 #define MC_CMD_MRSFP_TWEAK_MSGSET 0x4d 9333 9334 /* MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG msgrequest */ 9335 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_LEN 16 9336 /* 0-6 low->high de-emph. */ 9337 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_TXEQ_LEVEL_OFST 0 9338 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_TXEQ_LEVEL_LEN 4 9339 /* 0-8 low->high ref.V */ 9340 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_TXEQ_DT_CFG_OFST 4 9341 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_TXEQ_DT_CFG_LEN 4 9342 /* 0-8 0-8 low->high boost */ 9343 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_RXEQ_BOOST_OFST 8 9344 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_RXEQ_BOOST_LEN 4 9345 /* 0-8 low->high ref.V */ 9346 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_RXEQ_DT_CFG_OFST 12 9347 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_RXEQ_DT_CFG_LEN 4 9348 9349 /* MC_CMD_MRSFP_TWEAK_IN_READ_ONLY msgrequest */ 9350 #define MC_CMD_MRSFP_TWEAK_IN_READ_ONLY_LEN 0 9351 9352 /* MC_CMD_MRSFP_TWEAK_OUT msgresponse */ 9353 #define MC_CMD_MRSFP_TWEAK_OUT_LEN 12 9354 /* input bits */ 9355 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_INPUTS_OFST 0 9356 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_INPUTS_LEN 4 9357 /* output bits */ 9358 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_OUTPUTS_OFST 4 9359 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_OUTPUTS_LEN 4 9360 /* direction */ 9361 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_DIRECTION_OFST 8 9362 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_DIRECTION_LEN 4 9363 /* enum: Out. */ 9364 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_DIRECTION_OUT 0x0 9365 /* enum: In. */ 9366 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_DIRECTION_IN 0x1 9367 9368 9369 /***********************************/ 9370 /* MC_CMD_SENSOR_SET_LIMS 9371 * Adjusts the sensor limits. This is a warranty-voiding operation. Returns: 9372 * ENOENT if the sensor specified does not exist, EINVAL if the limits are out 9373 * of range. 9374 */ 9375 #define MC_CMD_SENSOR_SET_LIMS 0x4e 9376 #define MC_CMD_SENSOR_SET_LIMS_MSGSET 0x4e 9377 #undef MC_CMD_0x4e_PRIVILEGE_CTG 9378 9379 #define MC_CMD_0x4e_PRIVILEGE_CTG SRIOV_CTG_INSECURE 9380 9381 /* MC_CMD_SENSOR_SET_LIMS_IN msgrequest */ 9382 #define MC_CMD_SENSOR_SET_LIMS_IN_LEN 20 9383 #define MC_CMD_SENSOR_SET_LIMS_IN_SENSOR_OFST 0 9384 #define MC_CMD_SENSOR_SET_LIMS_IN_SENSOR_LEN 4 9385 /* Enum values, see field(s): */ 9386 /* MC_CMD_SENSOR_INFO/MC_CMD_SENSOR_INFO_OUT/MASK */ 9387 /* interpretation is is sensor-specific. */ 9388 #define MC_CMD_SENSOR_SET_LIMS_IN_LOW0_OFST 4 9389 #define MC_CMD_SENSOR_SET_LIMS_IN_LOW0_LEN 4 9390 /* interpretation is is sensor-specific. */ 9391 #define MC_CMD_SENSOR_SET_LIMS_IN_HI0_OFST 8 9392 #define MC_CMD_SENSOR_SET_LIMS_IN_HI0_LEN 4 9393 /* interpretation is is sensor-specific. */ 9394 #define MC_CMD_SENSOR_SET_LIMS_IN_LOW1_OFST 12 9395 #define MC_CMD_SENSOR_SET_LIMS_IN_LOW1_LEN 4 9396 /* interpretation is is sensor-specific. */ 9397 #define MC_CMD_SENSOR_SET_LIMS_IN_HI1_OFST 16 9398 #define MC_CMD_SENSOR_SET_LIMS_IN_HI1_LEN 4 9399 9400 /* MC_CMD_SENSOR_SET_LIMS_OUT msgresponse */ 9401 #define MC_CMD_SENSOR_SET_LIMS_OUT_LEN 0 9402 9403 9404 /***********************************/ 9405 /* MC_CMD_GET_RESOURCE_LIMITS 9406 */ 9407 #define MC_CMD_GET_RESOURCE_LIMITS 0x4f 9408 #define MC_CMD_GET_RESOURCE_LIMITS_MSGSET 0x4f 9409 9410 /* MC_CMD_GET_RESOURCE_LIMITS_IN msgrequest */ 9411 #define MC_CMD_GET_RESOURCE_LIMITS_IN_LEN 0 9412 9413 /* MC_CMD_GET_RESOURCE_LIMITS_OUT msgresponse */ 9414 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_LEN 16 9415 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_BUFTBL_OFST 0 9416 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_BUFTBL_LEN 4 9417 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_EVQ_OFST 4 9418 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_EVQ_LEN 4 9419 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_RXQ_OFST 8 9420 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_RXQ_LEN 4 9421 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_TXQ_OFST 12 9422 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_TXQ_LEN 4 9423 9424 9425 /***********************************/ 9426 /* MC_CMD_NVRAM_PARTITIONS 9427 * Reads the list of available virtual NVRAM partition types. Locks required: 9428 * none. Returns: 0, EINVAL (bad type). 9429 */ 9430 #define MC_CMD_NVRAM_PARTITIONS 0x51 9431 #define MC_CMD_NVRAM_PARTITIONS_MSGSET 0x51 9432 #undef MC_CMD_0x51_PRIVILEGE_CTG 9433 9434 #define MC_CMD_0x51_PRIVILEGE_CTG SRIOV_CTG_ADMIN 9435 9436 /* MC_CMD_NVRAM_PARTITIONS_IN msgrequest */ 9437 #define MC_CMD_NVRAM_PARTITIONS_IN_LEN 0 9438 9439 /* MC_CMD_NVRAM_PARTITIONS_OUT msgresponse */ 9440 #define MC_CMD_NVRAM_PARTITIONS_OUT_LENMIN 4 9441 #define MC_CMD_NVRAM_PARTITIONS_OUT_LENMAX 252 9442 #define MC_CMD_NVRAM_PARTITIONS_OUT_LENMAX_MCDI2 1020 9443 #define MC_CMD_NVRAM_PARTITIONS_OUT_LEN(num) (4+4*(num)) 9444 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_NUM(len) (((len)-4)/4) 9445 /* total number of partitions */ 9446 #define MC_CMD_NVRAM_PARTITIONS_OUT_NUM_PARTITIONS_OFST 0 9447 #define MC_CMD_NVRAM_PARTITIONS_OUT_NUM_PARTITIONS_LEN 4 9448 /* type ID code for each of NUM_PARTITIONS partitions */ 9449 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_OFST 4 9450 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_LEN 4 9451 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_MINNUM 0 9452 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_MAXNUM 62 9453 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_MAXNUM_MCDI2 254 9454 9455 9456 /***********************************/ 9457 /* MC_CMD_NVRAM_METADATA 9458 * Reads soft metadata for a virtual NVRAM partition type. Locks required: 9459 * none. Returns: 0, EINVAL (bad type). 9460 */ 9461 #define MC_CMD_NVRAM_METADATA 0x52 9462 #define MC_CMD_NVRAM_METADATA_MSGSET 0x52 9463 #undef MC_CMD_0x52_PRIVILEGE_CTG 9464 9465 #define MC_CMD_0x52_PRIVILEGE_CTG SRIOV_CTG_ADMIN 9466 9467 /* MC_CMD_NVRAM_METADATA_IN msgrequest */ 9468 #define MC_CMD_NVRAM_METADATA_IN_LEN 4 9469 /* Partition type ID code */ 9470 #define MC_CMD_NVRAM_METADATA_IN_TYPE_OFST 0 9471 #define MC_CMD_NVRAM_METADATA_IN_TYPE_LEN 4 9472 9473 /* MC_CMD_NVRAM_METADATA_OUT msgresponse */ 9474 #define MC_CMD_NVRAM_METADATA_OUT_LENMIN 20 9475 #define MC_CMD_NVRAM_METADATA_OUT_LENMAX 252 9476 #define MC_CMD_NVRAM_METADATA_OUT_LENMAX_MCDI2 1020 9477 #define MC_CMD_NVRAM_METADATA_OUT_LEN(num) (20+1*(num)) 9478 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_NUM(len) (((len)-20)/1) 9479 /* Partition type ID code */ 9480 #define MC_CMD_NVRAM_METADATA_OUT_TYPE_OFST 0 9481 #define MC_CMD_NVRAM_METADATA_OUT_TYPE_LEN 4 9482 #define MC_CMD_NVRAM_METADATA_OUT_FLAGS_OFST 4 9483 #define MC_CMD_NVRAM_METADATA_OUT_FLAGS_LEN 4 9484 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_VALID_OFST 4 9485 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_VALID_LBN 0 9486 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_VALID_WIDTH 1 9487 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_VALID_OFST 4 9488 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_VALID_LBN 1 9489 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_VALID_WIDTH 1 9490 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_VALID_OFST 4 9491 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_VALID_LBN 2 9492 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_VALID_WIDTH 1 9493 /* Subtype ID code for content of this partition */ 9494 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_OFST 8 9495 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_LEN 4 9496 /* 1st component of W.X.Y.Z version number for content of this partition */ 9497 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_W_OFST 12 9498 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_W_LEN 2 9499 /* 2nd component of W.X.Y.Z version number for content of this partition */ 9500 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_X_OFST 14 9501 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_X_LEN 2 9502 /* 3rd component of W.X.Y.Z version number for content of this partition */ 9503 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_Y_OFST 16 9504 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_Y_LEN 2 9505 /* 4th component of W.X.Y.Z version number for content of this partition */ 9506 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_Z_OFST 18 9507 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_Z_LEN 2 9508 /* Zero-terminated string describing the content of this partition */ 9509 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_OFST 20 9510 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_LEN 1 9511 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_MINNUM 0 9512 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_MAXNUM 232 9513 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_MAXNUM_MCDI2 1000 9514 9515 9516 /***********************************/ 9517 /* MC_CMD_GET_MAC_ADDRESSES 9518 * Returns the base MAC, count and stride for the requesting function 9519 */ 9520 #define MC_CMD_GET_MAC_ADDRESSES 0x55 9521 #define MC_CMD_GET_MAC_ADDRESSES_MSGSET 0x55 9522 #undef MC_CMD_0x55_PRIVILEGE_CTG 9523 9524 #define MC_CMD_0x55_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9525 9526 /* MC_CMD_GET_MAC_ADDRESSES_IN msgrequest */ 9527 #define MC_CMD_GET_MAC_ADDRESSES_IN_LEN 0 9528 9529 /* MC_CMD_GET_MAC_ADDRESSES_OUT msgresponse */ 9530 #define MC_CMD_GET_MAC_ADDRESSES_OUT_LEN 16 9531 /* Base MAC address */ 9532 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_ADDR_BASE_OFST 0 9533 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_ADDR_BASE_LEN 6 9534 /* Padding */ 9535 #define MC_CMD_GET_MAC_ADDRESSES_OUT_RESERVED_OFST 6 9536 #define MC_CMD_GET_MAC_ADDRESSES_OUT_RESERVED_LEN 2 9537 /* Number of allocated MAC addresses */ 9538 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_COUNT_OFST 8 9539 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_COUNT_LEN 4 9540 /* Spacing of allocated MAC addresses */ 9541 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_STRIDE_OFST 12 9542 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_STRIDE_LEN 4 9543 9544 9545 /***********************************/ 9546 /* MC_CMD_CLP 9547 * Perform a CLP related operation, see SF-110495-PS for details of CLP 9548 * processing. This command has been extended to accomodate the requirements of 9549 * different manufacturers which are to be found in SF-119187-TC, SF-119186-TC, 9550 * SF-120509-TC and SF-117282-PS. 9551 */ 9552 #define MC_CMD_CLP 0x56 9553 #define MC_CMD_CLP_MSGSET 0x56 9554 #undef MC_CMD_0x56_PRIVILEGE_CTG 9555 9556 #define MC_CMD_0x56_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 9557 9558 /* MC_CMD_CLP_IN msgrequest */ 9559 #define MC_CMD_CLP_IN_LEN 4 9560 /* Sub operation */ 9561 #define MC_CMD_CLP_IN_OP_OFST 0 9562 #define MC_CMD_CLP_IN_OP_LEN 4 9563 /* enum: Return to factory default settings */ 9564 #define MC_CMD_CLP_OP_DEFAULT 0x1 9565 /* enum: Set MAC address */ 9566 #define MC_CMD_CLP_OP_SET_MAC 0x2 9567 /* enum: Get MAC address */ 9568 #define MC_CMD_CLP_OP_GET_MAC 0x3 9569 /* enum: Set UEFI/GPXE boot mode */ 9570 #define MC_CMD_CLP_OP_SET_BOOT 0x4 9571 /* enum: Get UEFI/GPXE boot mode */ 9572 #define MC_CMD_CLP_OP_GET_BOOT 0x5 9573 9574 /* MC_CMD_CLP_OUT msgresponse */ 9575 #define MC_CMD_CLP_OUT_LEN 0 9576 9577 /* MC_CMD_CLP_IN_DEFAULT msgrequest */ 9578 #define MC_CMD_CLP_IN_DEFAULT_LEN 4 9579 /* MC_CMD_CLP_IN_OP_OFST 0 */ 9580 /* MC_CMD_CLP_IN_OP_LEN 4 */ 9581 9582 /* MC_CMD_CLP_OUT_DEFAULT msgresponse */ 9583 #define MC_CMD_CLP_OUT_DEFAULT_LEN 0 9584 9585 /* MC_CMD_CLP_IN_SET_MAC msgrequest */ 9586 #define MC_CMD_CLP_IN_SET_MAC_LEN 12 9587 /* MC_CMD_CLP_IN_OP_OFST 0 */ 9588 /* MC_CMD_CLP_IN_OP_LEN 4 */ 9589 /* The MAC address assigned to port. A zero MAC address of 00:00:00:00:00:00 9590 * restores the permanent (factory-programmed) MAC address associated with the 9591 * port. A non-zero MAC address persists until a PCIe reset or a power cycle. 9592 */ 9593 #define MC_CMD_CLP_IN_SET_MAC_ADDR_OFST 4 9594 #define MC_CMD_CLP_IN_SET_MAC_ADDR_LEN 6 9595 /* Padding */ 9596 #define MC_CMD_CLP_IN_SET_MAC_RESERVED_OFST 10 9597 #define MC_CMD_CLP_IN_SET_MAC_RESERVED_LEN 2 9598 9599 /* MC_CMD_CLP_OUT_SET_MAC msgresponse */ 9600 #define MC_CMD_CLP_OUT_SET_MAC_LEN 0 9601 9602 /* MC_CMD_CLP_IN_SET_MAC_V2 msgrequest */ 9603 #define MC_CMD_CLP_IN_SET_MAC_V2_LEN 16 9604 /* MC_CMD_CLP_IN_OP_OFST 0 */ 9605 /* MC_CMD_CLP_IN_OP_LEN 4 */ 9606 /* The MAC address assigned to port. A zero MAC address of 00:00:00:00:00:00 9607 * restores the permanent (factory-programmed) MAC address associated with the 9608 * port. A non-zero MAC address persists until a PCIe reset or a power cycle. 9609 */ 9610 #define MC_CMD_CLP_IN_SET_MAC_V2_ADDR_OFST 4 9611 #define MC_CMD_CLP_IN_SET_MAC_V2_ADDR_LEN 6 9612 /* Padding */ 9613 #define MC_CMD_CLP_IN_SET_MAC_V2_RESERVED_OFST 10 9614 #define MC_CMD_CLP_IN_SET_MAC_V2_RESERVED_LEN 2 9615 #define MC_CMD_CLP_IN_SET_MAC_V2_FLAGS_OFST 12 9616 #define MC_CMD_CLP_IN_SET_MAC_V2_FLAGS_LEN 4 9617 #define MC_CMD_CLP_IN_SET_MAC_V2_VIRTUAL_OFST 12 9618 #define MC_CMD_CLP_IN_SET_MAC_V2_VIRTUAL_LBN 0 9619 #define MC_CMD_CLP_IN_SET_MAC_V2_VIRTUAL_WIDTH 1 9620 9621 /* MC_CMD_CLP_IN_GET_MAC msgrequest */ 9622 #define MC_CMD_CLP_IN_GET_MAC_LEN 4 9623 /* MC_CMD_CLP_IN_OP_OFST 0 */ 9624 /* MC_CMD_CLP_IN_OP_LEN 4 */ 9625 9626 /* MC_CMD_CLP_IN_GET_MAC_V2 msgrequest */ 9627 #define MC_CMD_CLP_IN_GET_MAC_V2_LEN 8 9628 /* MC_CMD_CLP_IN_OP_OFST 0 */ 9629 /* MC_CMD_CLP_IN_OP_LEN 4 */ 9630 #define MC_CMD_CLP_IN_GET_MAC_V2_FLAGS_OFST 4 9631 #define MC_CMD_CLP_IN_GET_MAC_V2_FLAGS_LEN 4 9632 #define MC_CMD_CLP_IN_GET_MAC_V2_PERMANENT_OFST 4 9633 #define MC_CMD_CLP_IN_GET_MAC_V2_PERMANENT_LBN 0 9634 #define MC_CMD_CLP_IN_GET_MAC_V2_PERMANENT_WIDTH 1 9635 9636 /* MC_CMD_CLP_OUT_GET_MAC msgresponse */ 9637 #define MC_CMD_CLP_OUT_GET_MAC_LEN 8 9638 /* MAC address assigned to port */ 9639 #define MC_CMD_CLP_OUT_GET_MAC_ADDR_OFST 0 9640 #define MC_CMD_CLP_OUT_GET_MAC_ADDR_LEN 6 9641 /* Padding */ 9642 #define MC_CMD_CLP_OUT_GET_MAC_RESERVED_OFST 6 9643 #define MC_CMD_CLP_OUT_GET_MAC_RESERVED_LEN 2 9644 9645 /* MC_CMD_CLP_IN_SET_BOOT msgrequest */ 9646 #define MC_CMD_CLP_IN_SET_BOOT_LEN 5 9647 /* MC_CMD_CLP_IN_OP_OFST 0 */ 9648 /* MC_CMD_CLP_IN_OP_LEN 4 */ 9649 /* Boot flag */ 9650 #define MC_CMD_CLP_IN_SET_BOOT_FLAG_OFST 4 9651 #define MC_CMD_CLP_IN_SET_BOOT_FLAG_LEN 1 9652 9653 /* MC_CMD_CLP_OUT_SET_BOOT msgresponse */ 9654 #define MC_CMD_CLP_OUT_SET_BOOT_LEN 0 9655 9656 /* MC_CMD_CLP_IN_GET_BOOT msgrequest */ 9657 #define MC_CMD_CLP_IN_GET_BOOT_LEN 4 9658 /* MC_CMD_CLP_IN_OP_OFST 0 */ 9659 /* MC_CMD_CLP_IN_OP_LEN 4 */ 9660 9661 /* MC_CMD_CLP_OUT_GET_BOOT msgresponse */ 9662 #define MC_CMD_CLP_OUT_GET_BOOT_LEN 4 9663 /* Boot flag */ 9664 #define MC_CMD_CLP_OUT_GET_BOOT_FLAG_OFST 0 9665 #define MC_CMD_CLP_OUT_GET_BOOT_FLAG_LEN 1 9666 /* Padding */ 9667 #define MC_CMD_CLP_OUT_GET_BOOT_RESERVED_OFST 1 9668 #define MC_CMD_CLP_OUT_GET_BOOT_RESERVED_LEN 3 9669 9670 9671 /***********************************/ 9672 /* MC_CMD_MUM 9673 * Perform a MUM operation 9674 */ 9675 #define MC_CMD_MUM 0x57 9676 #define MC_CMD_MUM_MSGSET 0x57 9677 #undef MC_CMD_0x57_PRIVILEGE_CTG 9678 9679 #define MC_CMD_0x57_PRIVILEGE_CTG SRIOV_CTG_INSECURE 9680 9681 /* MC_CMD_MUM_IN msgrequest */ 9682 #define MC_CMD_MUM_IN_LEN 4 9683 #define MC_CMD_MUM_IN_OP_HDR_OFST 0 9684 #define MC_CMD_MUM_IN_OP_HDR_LEN 4 9685 #define MC_CMD_MUM_IN_OP_OFST 0 9686 #define MC_CMD_MUM_IN_OP_LBN 0 9687 #define MC_CMD_MUM_IN_OP_WIDTH 8 9688 /* enum: NULL MCDI command to MUM */ 9689 #define MC_CMD_MUM_OP_NULL 0x1 9690 /* enum: Get MUM version */ 9691 #define MC_CMD_MUM_OP_GET_VERSION 0x2 9692 /* enum: Issue raw I2C command to MUM */ 9693 #define MC_CMD_MUM_OP_RAW_CMD 0x3 9694 /* enum: Read from registers on devices connected to MUM. */ 9695 #define MC_CMD_MUM_OP_READ 0x4 9696 /* enum: Write to registers on devices connected to MUM. */ 9697 #define MC_CMD_MUM_OP_WRITE 0x5 9698 /* enum: Control UART logging. */ 9699 #define MC_CMD_MUM_OP_LOG 0x6 9700 /* enum: Operations on MUM GPIO lines */ 9701 #define MC_CMD_MUM_OP_GPIO 0x7 9702 /* enum: Get sensor readings from MUM */ 9703 #define MC_CMD_MUM_OP_READ_SENSORS 0x8 9704 /* enum: Initiate clock programming on the MUM */ 9705 #define MC_CMD_MUM_OP_PROGRAM_CLOCKS 0x9 9706 /* enum: Initiate FPGA load from flash on the MUM */ 9707 #define MC_CMD_MUM_OP_FPGA_LOAD 0xa 9708 /* enum: Request sensor reading from MUM ADC resulting from earlier request via 9709 * MUM ATB 9710 */ 9711 #define MC_CMD_MUM_OP_READ_ATB_SENSOR 0xb 9712 /* enum: Send commands relating to the QSFP ports via the MUM for PHY 9713 * operations 9714 */ 9715 #define MC_CMD_MUM_OP_QSFP 0xc 9716 /* enum: Request discrete and SODIMM DDR info (type, size, speed grade, voltage 9717 * level) from MUM 9718 */ 9719 #define MC_CMD_MUM_OP_READ_DDR_INFO 0xd 9720 9721 /* MC_CMD_MUM_IN_NULL msgrequest */ 9722 #define MC_CMD_MUM_IN_NULL_LEN 4 9723 /* MUM cmd header */ 9724 #define MC_CMD_MUM_IN_CMD_OFST 0 9725 #define MC_CMD_MUM_IN_CMD_LEN 4 9726 9727 /* MC_CMD_MUM_IN_GET_VERSION msgrequest */ 9728 #define MC_CMD_MUM_IN_GET_VERSION_LEN 4 9729 /* MUM cmd header */ 9730 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9731 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9732 9733 /* MC_CMD_MUM_IN_READ msgrequest */ 9734 #define MC_CMD_MUM_IN_READ_LEN 16 9735 /* MUM cmd header */ 9736 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9737 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9738 /* ID of (device connected to MUM) to read from registers of */ 9739 #define MC_CMD_MUM_IN_READ_DEVICE_OFST 4 9740 #define MC_CMD_MUM_IN_READ_DEVICE_LEN 4 9741 /* enum: Hittite HMC1035 clock generator on Sorrento board */ 9742 #define MC_CMD_MUM_DEV_HITTITE 0x1 9743 /* enum: Hittite HMC1035 clock generator for NIC-side on Sorrento board */ 9744 #define MC_CMD_MUM_DEV_HITTITE_NIC 0x2 9745 /* 32-bit address to read from */ 9746 #define MC_CMD_MUM_IN_READ_ADDR_OFST 8 9747 #define MC_CMD_MUM_IN_READ_ADDR_LEN 4 9748 /* Number of words to read. */ 9749 #define MC_CMD_MUM_IN_READ_NUMWORDS_OFST 12 9750 #define MC_CMD_MUM_IN_READ_NUMWORDS_LEN 4 9751 9752 /* MC_CMD_MUM_IN_WRITE msgrequest */ 9753 #define MC_CMD_MUM_IN_WRITE_LENMIN 16 9754 #define MC_CMD_MUM_IN_WRITE_LENMAX 252 9755 #define MC_CMD_MUM_IN_WRITE_LENMAX_MCDI2 1020 9756 #define MC_CMD_MUM_IN_WRITE_LEN(num) (12+4*(num)) 9757 #define MC_CMD_MUM_IN_WRITE_BUFFER_NUM(len) (((len)-12)/4) 9758 /* MUM cmd header */ 9759 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9760 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9761 /* ID of (device connected to MUM) to write to registers of */ 9762 #define MC_CMD_MUM_IN_WRITE_DEVICE_OFST 4 9763 #define MC_CMD_MUM_IN_WRITE_DEVICE_LEN 4 9764 /* enum: Hittite HMC1035 clock generator on Sorrento board */ 9765 /* MC_CMD_MUM_DEV_HITTITE 0x1 */ 9766 /* 32-bit address to write to */ 9767 #define MC_CMD_MUM_IN_WRITE_ADDR_OFST 8 9768 #define MC_CMD_MUM_IN_WRITE_ADDR_LEN 4 9769 /* Words to write */ 9770 #define MC_CMD_MUM_IN_WRITE_BUFFER_OFST 12 9771 #define MC_CMD_MUM_IN_WRITE_BUFFER_LEN 4 9772 #define MC_CMD_MUM_IN_WRITE_BUFFER_MINNUM 1 9773 #define MC_CMD_MUM_IN_WRITE_BUFFER_MAXNUM 60 9774 #define MC_CMD_MUM_IN_WRITE_BUFFER_MAXNUM_MCDI2 252 9775 9776 /* MC_CMD_MUM_IN_RAW_CMD msgrequest */ 9777 #define MC_CMD_MUM_IN_RAW_CMD_LENMIN 17 9778 #define MC_CMD_MUM_IN_RAW_CMD_LENMAX 252 9779 #define MC_CMD_MUM_IN_RAW_CMD_LENMAX_MCDI2 1020 9780 #define MC_CMD_MUM_IN_RAW_CMD_LEN(num) (16+1*(num)) 9781 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_NUM(len) (((len)-16)/1) 9782 /* MUM cmd header */ 9783 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9784 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9785 /* MUM I2C cmd code */ 9786 #define MC_CMD_MUM_IN_RAW_CMD_CMD_CODE_OFST 4 9787 #define MC_CMD_MUM_IN_RAW_CMD_CMD_CODE_LEN 4 9788 /* Number of bytes to write */ 9789 #define MC_CMD_MUM_IN_RAW_CMD_NUM_WRITE_OFST 8 9790 #define MC_CMD_MUM_IN_RAW_CMD_NUM_WRITE_LEN 4 9791 /* Number of bytes to read */ 9792 #define MC_CMD_MUM_IN_RAW_CMD_NUM_READ_OFST 12 9793 #define MC_CMD_MUM_IN_RAW_CMD_NUM_READ_LEN 4 9794 /* Bytes to write */ 9795 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_OFST 16 9796 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_LEN 1 9797 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_MINNUM 1 9798 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_MAXNUM 236 9799 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_MAXNUM_MCDI2 1004 9800 9801 /* MC_CMD_MUM_IN_LOG msgrequest */ 9802 #define MC_CMD_MUM_IN_LOG_LEN 8 9803 /* MUM cmd header */ 9804 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9805 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9806 #define MC_CMD_MUM_IN_LOG_OP_OFST 4 9807 #define MC_CMD_MUM_IN_LOG_OP_LEN 4 9808 #define MC_CMD_MUM_IN_LOG_OP_UART 0x1 /* enum */ 9809 9810 /* MC_CMD_MUM_IN_LOG_OP_UART msgrequest */ 9811 #define MC_CMD_MUM_IN_LOG_OP_UART_LEN 12 9812 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9813 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9814 /* MC_CMD_MUM_IN_LOG_OP_OFST 4 */ 9815 /* MC_CMD_MUM_IN_LOG_OP_LEN 4 */ 9816 /* Enable/disable debug output to UART */ 9817 #define MC_CMD_MUM_IN_LOG_OP_UART_ENABLE_OFST 8 9818 #define MC_CMD_MUM_IN_LOG_OP_UART_ENABLE_LEN 4 9819 9820 /* MC_CMD_MUM_IN_GPIO msgrequest */ 9821 #define MC_CMD_MUM_IN_GPIO_LEN 8 9822 /* MUM cmd header */ 9823 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9824 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9825 #define MC_CMD_MUM_IN_GPIO_HDR_OFST 4 9826 #define MC_CMD_MUM_IN_GPIO_HDR_LEN 4 9827 #define MC_CMD_MUM_IN_GPIO_OPCODE_OFST 4 9828 #define MC_CMD_MUM_IN_GPIO_OPCODE_LBN 0 9829 #define MC_CMD_MUM_IN_GPIO_OPCODE_WIDTH 8 9830 #define MC_CMD_MUM_IN_GPIO_IN_READ 0x0 /* enum */ 9831 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE 0x1 /* enum */ 9832 #define MC_CMD_MUM_IN_GPIO_OUT_READ 0x2 /* enum */ 9833 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE 0x3 /* enum */ 9834 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_READ 0x4 /* enum */ 9835 #define MC_CMD_MUM_IN_GPIO_OP 0x5 /* enum */ 9836 9837 /* MC_CMD_MUM_IN_GPIO_IN_READ msgrequest */ 9838 #define MC_CMD_MUM_IN_GPIO_IN_READ_LEN 8 9839 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9840 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9841 #define MC_CMD_MUM_IN_GPIO_IN_READ_HDR_OFST 4 9842 #define MC_CMD_MUM_IN_GPIO_IN_READ_HDR_LEN 4 9843 9844 /* MC_CMD_MUM_IN_GPIO_OUT_WRITE msgrequest */ 9845 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_LEN 16 9846 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9847 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9848 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_HDR_OFST 4 9849 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_HDR_LEN 4 9850 /* The first 32-bit word to be written to the GPIO OUT register. */ 9851 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_GPIOMASK1_OFST 8 9852 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_GPIOMASK1_LEN 4 9853 /* The second 32-bit word to be written to the GPIO OUT register. */ 9854 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_GPIOMASK2_OFST 12 9855 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_GPIOMASK2_LEN 4 9856 9857 /* MC_CMD_MUM_IN_GPIO_OUT_READ msgrequest */ 9858 #define MC_CMD_MUM_IN_GPIO_OUT_READ_LEN 8 9859 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9860 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9861 #define MC_CMD_MUM_IN_GPIO_OUT_READ_HDR_OFST 4 9862 #define MC_CMD_MUM_IN_GPIO_OUT_READ_HDR_LEN 4 9863 9864 /* MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE msgrequest */ 9865 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_LEN 16 9866 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9867 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9868 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_HDR_OFST 4 9869 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_HDR_LEN 4 9870 /* The first 32-bit word to be written to the GPIO OUT ENABLE register. */ 9871 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_GPIOMASK1_OFST 8 9872 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_GPIOMASK1_LEN 4 9873 /* The second 32-bit word to be written to the GPIO OUT ENABLE register. */ 9874 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_GPIOMASK2_OFST 12 9875 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_GPIOMASK2_LEN 4 9876 9877 /* MC_CMD_MUM_IN_GPIO_OUT_ENABLE_READ msgrequest */ 9878 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_READ_LEN 8 9879 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9880 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9881 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_READ_HDR_OFST 4 9882 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_READ_HDR_LEN 4 9883 9884 /* MC_CMD_MUM_IN_GPIO_OP msgrequest */ 9885 #define MC_CMD_MUM_IN_GPIO_OP_LEN 8 9886 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9887 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9888 #define MC_CMD_MUM_IN_GPIO_OP_HDR_OFST 4 9889 #define MC_CMD_MUM_IN_GPIO_OP_HDR_LEN 4 9890 #define MC_CMD_MUM_IN_GPIO_OP_BITWISE_OP_OFST 4 9891 #define MC_CMD_MUM_IN_GPIO_OP_BITWISE_OP_LBN 8 9892 #define MC_CMD_MUM_IN_GPIO_OP_BITWISE_OP_WIDTH 8 9893 #define MC_CMD_MUM_IN_GPIO_OP_OUT_READ 0x0 /* enum */ 9894 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE 0x1 /* enum */ 9895 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG 0x2 /* enum */ 9896 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE 0x3 /* enum */ 9897 #define MC_CMD_MUM_IN_GPIO_OP_GPIO_NUMBER_OFST 4 9898 #define MC_CMD_MUM_IN_GPIO_OP_GPIO_NUMBER_LBN 16 9899 #define MC_CMD_MUM_IN_GPIO_OP_GPIO_NUMBER_WIDTH 8 9900 9901 /* MC_CMD_MUM_IN_GPIO_OP_OUT_READ msgrequest */ 9902 #define MC_CMD_MUM_IN_GPIO_OP_OUT_READ_LEN 8 9903 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9904 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9905 #define MC_CMD_MUM_IN_GPIO_OP_OUT_READ_HDR_OFST 4 9906 #define MC_CMD_MUM_IN_GPIO_OP_OUT_READ_HDR_LEN 4 9907 9908 /* MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE msgrequest */ 9909 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_LEN 8 9910 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9911 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9912 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_HDR_OFST 4 9913 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_HDR_LEN 4 9914 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_WRITEBIT_OFST 4 9915 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_WRITEBIT_LBN 24 9916 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_WRITEBIT_WIDTH 8 9917 9918 /* MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG msgrequest */ 9919 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_LEN 8 9920 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9921 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9922 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_HDR_OFST 4 9923 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_HDR_LEN 4 9924 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_CFG_OFST 4 9925 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_CFG_LBN 24 9926 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_CFG_WIDTH 8 9927 9928 /* MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE msgrequest */ 9929 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_LEN 8 9930 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9931 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9932 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_HDR_OFST 4 9933 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_HDR_LEN 4 9934 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_ENABLEBIT_OFST 4 9935 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_ENABLEBIT_LBN 24 9936 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_ENABLEBIT_WIDTH 8 9937 9938 /* MC_CMD_MUM_IN_READ_SENSORS msgrequest */ 9939 #define MC_CMD_MUM_IN_READ_SENSORS_LEN 8 9940 /* MUM cmd header */ 9941 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9942 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9943 #define MC_CMD_MUM_IN_READ_SENSORS_PARAMS_OFST 4 9944 #define MC_CMD_MUM_IN_READ_SENSORS_PARAMS_LEN 4 9945 #define MC_CMD_MUM_IN_READ_SENSORS_SENSOR_ID_OFST 4 9946 #define MC_CMD_MUM_IN_READ_SENSORS_SENSOR_ID_LBN 0 9947 #define MC_CMD_MUM_IN_READ_SENSORS_SENSOR_ID_WIDTH 8 9948 #define MC_CMD_MUM_IN_READ_SENSORS_NUM_SENSORS_OFST 4 9949 #define MC_CMD_MUM_IN_READ_SENSORS_NUM_SENSORS_LBN 8 9950 #define MC_CMD_MUM_IN_READ_SENSORS_NUM_SENSORS_WIDTH 8 9951 9952 /* MC_CMD_MUM_IN_PROGRAM_CLOCKS msgrequest */ 9953 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_LEN 12 9954 /* MUM cmd header */ 9955 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9956 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9957 /* Bit-mask of clocks to be programmed */ 9958 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_MASK_OFST 4 9959 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_MASK_LEN 4 9960 #define MC_CMD_MUM_CLOCK_ID_FPGA 0x0 /* enum */ 9961 #define MC_CMD_MUM_CLOCK_ID_DDR 0x1 /* enum */ 9962 #define MC_CMD_MUM_CLOCK_ID_NIC 0x2 /* enum */ 9963 /* Control flags for clock programming */ 9964 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_FLAGS_OFST 8 9965 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_FLAGS_LEN 4 9966 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_OVERCLOCK_110_OFST 8 9967 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_OVERCLOCK_110_LBN 0 9968 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_OVERCLOCK_110_WIDTH 1 9969 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_NIC_FROM_FPGA_OFST 8 9970 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_NIC_FROM_FPGA_LBN 1 9971 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_NIC_FROM_FPGA_WIDTH 1 9972 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_REF_FROM_XO_OFST 8 9973 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_REF_FROM_XO_LBN 2 9974 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_REF_FROM_XO_WIDTH 1 9975 9976 /* MC_CMD_MUM_IN_FPGA_LOAD msgrequest */ 9977 #define MC_CMD_MUM_IN_FPGA_LOAD_LEN 8 9978 /* MUM cmd header */ 9979 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9980 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9981 /* Enable/Disable FPGA config from flash */ 9982 #define MC_CMD_MUM_IN_FPGA_LOAD_ENABLE_OFST 4 9983 #define MC_CMD_MUM_IN_FPGA_LOAD_ENABLE_LEN 4 9984 9985 /* MC_CMD_MUM_IN_READ_ATB_SENSOR msgrequest */ 9986 #define MC_CMD_MUM_IN_READ_ATB_SENSOR_LEN 4 9987 /* MUM cmd header */ 9988 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9989 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9990 9991 /* MC_CMD_MUM_IN_QSFP msgrequest */ 9992 #define MC_CMD_MUM_IN_QSFP_LEN 12 9993 /* MUM cmd header */ 9994 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 9995 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 9996 #define MC_CMD_MUM_IN_QSFP_HDR_OFST 4 9997 #define MC_CMD_MUM_IN_QSFP_HDR_LEN 4 9998 #define MC_CMD_MUM_IN_QSFP_OPCODE_OFST 4 9999 #define MC_CMD_MUM_IN_QSFP_OPCODE_LBN 0 10000 #define MC_CMD_MUM_IN_QSFP_OPCODE_WIDTH 4 10001 #define MC_CMD_MUM_IN_QSFP_INIT 0x0 /* enum */ 10002 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE 0x1 /* enum */ 10003 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP 0x2 /* enum */ 10004 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO 0x3 /* enum */ 10005 #define MC_CMD_MUM_IN_QSFP_FILL_STATS 0x4 /* enum */ 10006 #define MC_CMD_MUM_IN_QSFP_POLL_BIST 0x5 /* enum */ 10007 #define MC_CMD_MUM_IN_QSFP_IDX_OFST 8 10008 #define MC_CMD_MUM_IN_QSFP_IDX_LEN 4 10009 10010 /* MC_CMD_MUM_IN_QSFP_INIT msgrequest */ 10011 #define MC_CMD_MUM_IN_QSFP_INIT_LEN 16 10012 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 10013 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 10014 #define MC_CMD_MUM_IN_QSFP_INIT_HDR_OFST 4 10015 #define MC_CMD_MUM_IN_QSFP_INIT_HDR_LEN 4 10016 #define MC_CMD_MUM_IN_QSFP_INIT_IDX_OFST 8 10017 #define MC_CMD_MUM_IN_QSFP_INIT_IDX_LEN 4 10018 #define MC_CMD_MUM_IN_QSFP_INIT_CAGE_OFST 12 10019 #define MC_CMD_MUM_IN_QSFP_INIT_CAGE_LEN 4 10020 10021 /* MC_CMD_MUM_IN_QSFP_RECONFIGURE msgrequest */ 10022 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_LEN 24 10023 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 10024 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 10025 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_HDR_OFST 4 10026 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_HDR_LEN 4 10027 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_IDX_OFST 8 10028 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_IDX_LEN 4 10029 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_TX_DISABLE_OFST 12 10030 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_TX_DISABLE_LEN 4 10031 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_PORT_LANES_OFST 16 10032 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_PORT_LANES_LEN 4 10033 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_PORT_LINK_SPEED_OFST 20 10034 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_PORT_LINK_SPEED_LEN 4 10035 10036 /* MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP msgrequest */ 10037 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP_LEN 12 10038 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 10039 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 10040 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP_HDR_OFST 4 10041 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP_HDR_LEN 4 10042 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP_IDX_OFST 8 10043 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP_IDX_LEN 4 10044 10045 /* MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO msgrequest */ 10046 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_LEN 16 10047 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 10048 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 10049 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_HDR_OFST 4 10050 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_HDR_LEN 4 10051 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_IDX_OFST 8 10052 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_IDX_LEN 4 10053 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_PAGE_OFST 12 10054 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_PAGE_LEN 4 10055 10056 /* MC_CMD_MUM_IN_QSFP_FILL_STATS msgrequest */ 10057 #define MC_CMD_MUM_IN_QSFP_FILL_STATS_LEN 12 10058 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 10059 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 10060 #define MC_CMD_MUM_IN_QSFP_FILL_STATS_HDR_OFST 4 10061 #define MC_CMD_MUM_IN_QSFP_FILL_STATS_HDR_LEN 4 10062 #define MC_CMD_MUM_IN_QSFP_FILL_STATS_IDX_OFST 8 10063 #define MC_CMD_MUM_IN_QSFP_FILL_STATS_IDX_LEN 4 10064 10065 /* MC_CMD_MUM_IN_QSFP_POLL_BIST msgrequest */ 10066 #define MC_CMD_MUM_IN_QSFP_POLL_BIST_LEN 12 10067 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 10068 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 10069 #define MC_CMD_MUM_IN_QSFP_POLL_BIST_HDR_OFST 4 10070 #define MC_CMD_MUM_IN_QSFP_POLL_BIST_HDR_LEN 4 10071 #define MC_CMD_MUM_IN_QSFP_POLL_BIST_IDX_OFST 8 10072 #define MC_CMD_MUM_IN_QSFP_POLL_BIST_IDX_LEN 4 10073 10074 /* MC_CMD_MUM_IN_READ_DDR_INFO msgrequest */ 10075 #define MC_CMD_MUM_IN_READ_DDR_INFO_LEN 4 10076 /* MUM cmd header */ 10077 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 10078 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 10079 10080 /* MC_CMD_MUM_OUT msgresponse */ 10081 #define MC_CMD_MUM_OUT_LEN 0 10082 10083 /* MC_CMD_MUM_OUT_NULL msgresponse */ 10084 #define MC_CMD_MUM_OUT_NULL_LEN 0 10085 10086 /* MC_CMD_MUM_OUT_GET_VERSION msgresponse */ 10087 #define MC_CMD_MUM_OUT_GET_VERSION_LEN 12 10088 #define MC_CMD_MUM_OUT_GET_VERSION_FIRMWARE_OFST 0 10089 #define MC_CMD_MUM_OUT_GET_VERSION_FIRMWARE_LEN 4 10090 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_OFST 4 10091 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LEN 8 10092 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LO_OFST 4 10093 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LO_LEN 4 10094 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LO_LBN 32 10095 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LO_WIDTH 32 10096 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_HI_OFST 8 10097 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_HI_LEN 4 10098 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_HI_LBN 64 10099 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_HI_WIDTH 32 10100 10101 /* MC_CMD_MUM_OUT_RAW_CMD msgresponse */ 10102 #define MC_CMD_MUM_OUT_RAW_CMD_LENMIN 1 10103 #define MC_CMD_MUM_OUT_RAW_CMD_LENMAX 252 10104 #define MC_CMD_MUM_OUT_RAW_CMD_LENMAX_MCDI2 1020 10105 #define MC_CMD_MUM_OUT_RAW_CMD_LEN(num) (0+1*(num)) 10106 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_NUM(len) (((len)-0)/1) 10107 /* returned data */ 10108 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_OFST 0 10109 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_LEN 1 10110 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_MINNUM 1 10111 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_MAXNUM 252 10112 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_MAXNUM_MCDI2 1020 10113 10114 /* MC_CMD_MUM_OUT_READ msgresponse */ 10115 #define MC_CMD_MUM_OUT_READ_LENMIN 4 10116 #define MC_CMD_MUM_OUT_READ_LENMAX 252 10117 #define MC_CMD_MUM_OUT_READ_LENMAX_MCDI2 1020 10118 #define MC_CMD_MUM_OUT_READ_LEN(num) (0+4*(num)) 10119 #define MC_CMD_MUM_OUT_READ_BUFFER_NUM(len) (((len)-0)/4) 10120 #define MC_CMD_MUM_OUT_READ_BUFFER_OFST 0 10121 #define MC_CMD_MUM_OUT_READ_BUFFER_LEN 4 10122 #define MC_CMD_MUM_OUT_READ_BUFFER_MINNUM 1 10123 #define MC_CMD_MUM_OUT_READ_BUFFER_MAXNUM 63 10124 #define MC_CMD_MUM_OUT_READ_BUFFER_MAXNUM_MCDI2 255 10125 10126 /* MC_CMD_MUM_OUT_WRITE msgresponse */ 10127 #define MC_CMD_MUM_OUT_WRITE_LEN 0 10128 10129 /* MC_CMD_MUM_OUT_LOG msgresponse */ 10130 #define MC_CMD_MUM_OUT_LOG_LEN 0 10131 10132 /* MC_CMD_MUM_OUT_LOG_OP_UART msgresponse */ 10133 #define MC_CMD_MUM_OUT_LOG_OP_UART_LEN 0 10134 10135 /* MC_CMD_MUM_OUT_GPIO_IN_READ msgresponse */ 10136 #define MC_CMD_MUM_OUT_GPIO_IN_READ_LEN 8 10137 /* The first 32-bit word read from the GPIO IN register. */ 10138 #define MC_CMD_MUM_OUT_GPIO_IN_READ_GPIOMASK1_OFST 0 10139 #define MC_CMD_MUM_OUT_GPIO_IN_READ_GPIOMASK1_LEN 4 10140 /* The second 32-bit word read from the GPIO IN register. */ 10141 #define MC_CMD_MUM_OUT_GPIO_IN_READ_GPIOMASK2_OFST 4 10142 #define MC_CMD_MUM_OUT_GPIO_IN_READ_GPIOMASK2_LEN 4 10143 10144 /* MC_CMD_MUM_OUT_GPIO_OUT_WRITE msgresponse */ 10145 #define MC_CMD_MUM_OUT_GPIO_OUT_WRITE_LEN 0 10146 10147 /* MC_CMD_MUM_OUT_GPIO_OUT_READ msgresponse */ 10148 #define MC_CMD_MUM_OUT_GPIO_OUT_READ_LEN 8 10149 /* The first 32-bit word read from the GPIO OUT register. */ 10150 #define MC_CMD_MUM_OUT_GPIO_OUT_READ_GPIOMASK1_OFST 0 10151 #define MC_CMD_MUM_OUT_GPIO_OUT_READ_GPIOMASK1_LEN 4 10152 /* The second 32-bit word read from the GPIO OUT register. */ 10153 #define MC_CMD_MUM_OUT_GPIO_OUT_READ_GPIOMASK2_OFST 4 10154 #define MC_CMD_MUM_OUT_GPIO_OUT_READ_GPIOMASK2_LEN 4 10155 10156 /* MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_WRITE msgresponse */ 10157 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_WRITE_LEN 0 10158 10159 /* MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ msgresponse */ 10160 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ_LEN 8 10161 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ_GPIOMASK1_OFST 0 10162 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ_GPIOMASK1_LEN 4 10163 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ_GPIOMASK2_OFST 4 10164 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ_GPIOMASK2_LEN 4 10165 10166 /* MC_CMD_MUM_OUT_GPIO_OP_OUT_READ msgresponse */ 10167 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_READ_LEN 4 10168 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_READ_BIT_READ_OFST 0 10169 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_READ_BIT_READ_LEN 4 10170 10171 /* MC_CMD_MUM_OUT_GPIO_OP_OUT_WRITE msgresponse */ 10172 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_WRITE_LEN 0 10173 10174 /* MC_CMD_MUM_OUT_GPIO_OP_OUT_CONFIG msgresponse */ 10175 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_CONFIG_LEN 0 10176 10177 /* MC_CMD_MUM_OUT_GPIO_OP_OUT_ENABLE msgresponse */ 10178 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_ENABLE_LEN 0 10179 10180 /* MC_CMD_MUM_OUT_READ_SENSORS msgresponse */ 10181 #define MC_CMD_MUM_OUT_READ_SENSORS_LENMIN 4 10182 #define MC_CMD_MUM_OUT_READ_SENSORS_LENMAX 252 10183 #define MC_CMD_MUM_OUT_READ_SENSORS_LENMAX_MCDI2 1020 10184 #define MC_CMD_MUM_OUT_READ_SENSORS_LEN(num) (0+4*(num)) 10185 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_NUM(len) (((len)-0)/4) 10186 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_OFST 0 10187 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_LEN 4 10188 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_MINNUM 1 10189 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_MAXNUM 63 10190 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_MAXNUM_MCDI2 255 10191 #define MC_CMD_MUM_OUT_READ_SENSORS_READING_OFST 0 10192 #define MC_CMD_MUM_OUT_READ_SENSORS_READING_LBN 0 10193 #define MC_CMD_MUM_OUT_READ_SENSORS_READING_WIDTH 16 10194 #define MC_CMD_MUM_OUT_READ_SENSORS_STATE_OFST 0 10195 #define MC_CMD_MUM_OUT_READ_SENSORS_STATE_LBN 16 10196 #define MC_CMD_MUM_OUT_READ_SENSORS_STATE_WIDTH 8 10197 #define MC_CMD_MUM_OUT_READ_SENSORS_TYPE_OFST 0 10198 #define MC_CMD_MUM_OUT_READ_SENSORS_TYPE_LBN 24 10199 #define MC_CMD_MUM_OUT_READ_SENSORS_TYPE_WIDTH 8 10200 10201 /* MC_CMD_MUM_OUT_PROGRAM_CLOCKS msgresponse */ 10202 #define MC_CMD_MUM_OUT_PROGRAM_CLOCKS_LEN 4 10203 #define MC_CMD_MUM_OUT_PROGRAM_CLOCKS_OK_MASK_OFST 0 10204 #define MC_CMD_MUM_OUT_PROGRAM_CLOCKS_OK_MASK_LEN 4 10205 10206 /* MC_CMD_MUM_OUT_FPGA_LOAD msgresponse */ 10207 #define MC_CMD_MUM_OUT_FPGA_LOAD_LEN 0 10208 10209 /* MC_CMD_MUM_OUT_READ_ATB_SENSOR msgresponse */ 10210 #define MC_CMD_MUM_OUT_READ_ATB_SENSOR_LEN 4 10211 #define MC_CMD_MUM_OUT_READ_ATB_SENSOR_RESULT_OFST 0 10212 #define MC_CMD_MUM_OUT_READ_ATB_SENSOR_RESULT_LEN 4 10213 10214 /* MC_CMD_MUM_OUT_QSFP_INIT msgresponse */ 10215 #define MC_CMD_MUM_OUT_QSFP_INIT_LEN 0 10216 10217 /* MC_CMD_MUM_OUT_QSFP_RECONFIGURE msgresponse */ 10218 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_LEN 8 10219 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_LP_CAP_OFST 0 10220 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_LP_CAP_LEN 4 10221 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_FLAGS_OFST 4 10222 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_FLAGS_LEN 4 10223 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_READY_OFST 4 10224 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_READY_LBN 0 10225 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_READY_WIDTH 1 10226 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_LINK_UP_OFST 4 10227 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_LINK_UP_LBN 1 10228 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_LINK_UP_WIDTH 1 10229 10230 /* MC_CMD_MUM_OUT_QSFP_GET_SUPPORTED_CAP msgresponse */ 10231 #define MC_CMD_MUM_OUT_QSFP_GET_SUPPORTED_CAP_LEN 4 10232 #define MC_CMD_MUM_OUT_QSFP_GET_SUPPORTED_CAP_PORT_PHY_LP_CAP_OFST 0 10233 #define MC_CMD_MUM_OUT_QSFP_GET_SUPPORTED_CAP_PORT_PHY_LP_CAP_LEN 4 10234 10235 /* MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO msgresponse */ 10236 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_LENMIN 5 10237 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_LENMAX 252 10238 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_LENMAX_MCDI2 1020 10239 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_LEN(num) (4+1*(num)) 10240 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_NUM(len) (((len)-4)/1) 10241 /* in bytes */ 10242 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATALEN_OFST 0 10243 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATALEN_LEN 4 10244 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_OFST 4 10245 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_LEN 1 10246 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_MINNUM 1 10247 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_MAXNUM 248 10248 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_MAXNUM_MCDI2 1016 10249 10250 /* MC_CMD_MUM_OUT_QSFP_FILL_STATS msgresponse */ 10251 #define MC_CMD_MUM_OUT_QSFP_FILL_STATS_LEN 8 10252 #define MC_CMD_MUM_OUT_QSFP_FILL_STATS_PORT_PHY_STATS_PMA_PMD_LINK_UP_OFST 0 10253 #define MC_CMD_MUM_OUT_QSFP_FILL_STATS_PORT_PHY_STATS_PMA_PMD_LINK_UP_LEN 4 10254 #define MC_CMD_MUM_OUT_QSFP_FILL_STATS_PORT_PHY_STATS_PCS_LINK_UP_OFST 4 10255 #define MC_CMD_MUM_OUT_QSFP_FILL_STATS_PORT_PHY_STATS_PCS_LINK_UP_LEN 4 10256 10257 /* MC_CMD_MUM_OUT_QSFP_POLL_BIST msgresponse */ 10258 #define MC_CMD_MUM_OUT_QSFP_POLL_BIST_LEN 4 10259 #define MC_CMD_MUM_OUT_QSFP_POLL_BIST_TEST_OFST 0 10260 #define MC_CMD_MUM_OUT_QSFP_POLL_BIST_TEST_LEN 4 10261 10262 /* MC_CMD_MUM_OUT_READ_DDR_INFO msgresponse */ 10263 #define MC_CMD_MUM_OUT_READ_DDR_INFO_LENMIN 24 10264 #define MC_CMD_MUM_OUT_READ_DDR_INFO_LENMAX 248 10265 #define MC_CMD_MUM_OUT_READ_DDR_INFO_LENMAX_MCDI2 1016 10266 #define MC_CMD_MUM_OUT_READ_DDR_INFO_LEN(num) (8+8*(num)) 10267 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_NUM(len) (((len)-8)/8) 10268 /* Discrete (soldered) DDR resistor strap info */ 10269 #define MC_CMD_MUM_OUT_READ_DDR_INFO_DISCRETE_DDR_INFO_OFST 0 10270 #define MC_CMD_MUM_OUT_READ_DDR_INFO_DISCRETE_DDR_INFO_LEN 4 10271 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VRATIO_OFST 0 10272 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VRATIO_LBN 0 10273 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VRATIO_WIDTH 16 10274 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED1_OFST 0 10275 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED1_LBN 16 10276 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED1_WIDTH 16 10277 /* Number of SODIMM info records */ 10278 #define MC_CMD_MUM_OUT_READ_DDR_INFO_NUM_RECORDS_OFST 4 10279 #define MC_CMD_MUM_OUT_READ_DDR_INFO_NUM_RECORDS_LEN 4 10280 /* Array of SODIMM info records */ 10281 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_OFST 8 10282 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LEN 8 10283 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LO_OFST 8 10284 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LO_LEN 4 10285 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LO_LBN 64 10286 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LO_WIDTH 32 10287 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_HI_OFST 12 10288 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_HI_LEN 4 10289 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_HI_LBN 96 10290 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_HI_WIDTH 32 10291 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_MINNUM 2 10292 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_MAXNUM 30 10293 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_MAXNUM_MCDI2 126 10294 #define MC_CMD_MUM_OUT_READ_DDR_INFO_BANK_ID_OFST 8 10295 #define MC_CMD_MUM_OUT_READ_DDR_INFO_BANK_ID_LBN 0 10296 #define MC_CMD_MUM_OUT_READ_DDR_INFO_BANK_ID_WIDTH 8 10297 /* enum: SODIMM bank 1 (Top SODIMM for Sorrento) */ 10298 #define MC_CMD_MUM_OUT_READ_DDR_INFO_BANK1 0x0 10299 /* enum: SODIMM bank 2 (Bottom SODDIMM for Sorrento) */ 10300 #define MC_CMD_MUM_OUT_READ_DDR_INFO_BANK2 0x1 10301 /* enum: Total number of SODIMM banks */ 10302 #define MC_CMD_MUM_OUT_READ_DDR_INFO_NUM_BANKS 0x2 10303 #define MC_CMD_MUM_OUT_READ_DDR_INFO_TYPE_OFST 8 10304 #define MC_CMD_MUM_OUT_READ_DDR_INFO_TYPE_LBN 8 10305 #define MC_CMD_MUM_OUT_READ_DDR_INFO_TYPE_WIDTH 8 10306 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RANK_OFST 8 10307 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RANK_LBN 16 10308 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RANK_WIDTH 4 10309 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VOLTAGE_OFST 8 10310 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VOLTAGE_LBN 20 10311 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VOLTAGE_WIDTH 4 10312 #define MC_CMD_MUM_OUT_READ_DDR_INFO_NOT_POWERED 0x0 /* enum */ 10313 #define MC_CMD_MUM_OUT_READ_DDR_INFO_1V25 0x1 /* enum */ 10314 #define MC_CMD_MUM_OUT_READ_DDR_INFO_1V35 0x2 /* enum */ 10315 #define MC_CMD_MUM_OUT_READ_DDR_INFO_1V5 0x3 /* enum */ 10316 /* enum: Values 5-15 are reserved for future usage */ 10317 #define MC_CMD_MUM_OUT_READ_DDR_INFO_1V8 0x4 10318 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SIZE_OFST 8 10319 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SIZE_LBN 24 10320 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SIZE_WIDTH 8 10321 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SPEED_OFST 8 10322 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SPEED_LBN 32 10323 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SPEED_WIDTH 16 10324 #define MC_CMD_MUM_OUT_READ_DDR_INFO_STATE_OFST 8 10325 #define MC_CMD_MUM_OUT_READ_DDR_INFO_STATE_LBN 48 10326 #define MC_CMD_MUM_OUT_READ_DDR_INFO_STATE_WIDTH 4 10327 /* enum: No module present */ 10328 #define MC_CMD_MUM_OUT_READ_DDR_INFO_ABSENT 0x0 10329 /* enum: Module present supported and powered on */ 10330 #define MC_CMD_MUM_OUT_READ_DDR_INFO_PRESENT_POWERED 0x1 10331 /* enum: Module present but bad type */ 10332 #define MC_CMD_MUM_OUT_READ_DDR_INFO_PRESENT_BAD_TYPE 0x2 10333 /* enum: Module present but incompatible voltage */ 10334 #define MC_CMD_MUM_OUT_READ_DDR_INFO_PRESENT_BAD_VOLTAGE 0x3 10335 /* enum: Module present but unknown SPD */ 10336 #define MC_CMD_MUM_OUT_READ_DDR_INFO_PRESENT_BAD_SPD 0x4 10337 /* enum: Module present but slot cannot support it */ 10338 #define MC_CMD_MUM_OUT_READ_DDR_INFO_PRESENT_BAD_SLOT 0x5 10339 /* enum: Modules may or may not be present, but cannot establish contact by I2C 10340 */ 10341 #define MC_CMD_MUM_OUT_READ_DDR_INFO_NOT_REACHABLE 0x6 10342 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED2_OFST 8 10343 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED2_LBN 52 10344 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED2_WIDTH 12 10345 10346 /* MC_CMD_DYNAMIC_SENSORS_LIMITS structuredef: Set of sensor limits. This 10347 * should match the equivalent structure in the sensor_query SPHINX service. 10348 */ 10349 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LEN 24 10350 /* A value below this will trigger a warning event. */ 10351 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_OFST 0 10352 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_LEN 4 10353 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_LBN 0 10354 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_WIDTH 32 10355 /* A value below this will trigger a critical event. */ 10356 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_OFST 4 10357 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_LEN 4 10358 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_LBN 32 10359 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_WIDTH 32 10360 /* A value below this will shut down the card. */ 10361 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_OFST 8 10362 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_LEN 4 10363 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_LBN 64 10364 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_WIDTH 32 10365 /* A value above this will trigger a warning event. */ 10366 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_OFST 12 10367 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_LEN 4 10368 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_LBN 96 10369 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_WIDTH 32 10370 /* A value above this will trigger a critical event. */ 10371 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_OFST 16 10372 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_LEN 4 10373 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_LBN 128 10374 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_WIDTH 32 10375 /* A value above this will shut down the card. */ 10376 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_OFST 20 10377 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_LEN 4 10378 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_LBN 160 10379 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_WIDTH 32 10380 10381 /* MC_CMD_DYNAMIC_SENSORS_DESCRIPTION structuredef: Description of a sensor. 10382 * This should match the equivalent structure in the sensor_query SPHINX 10383 * service. 10384 */ 10385 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LEN 64 10386 /* The handle used to identify the sensor in calls to 10387 * MC_CMD_DYNAMIC_SENSORS_GET_VALUES 10388 */ 10389 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_OFST 0 10390 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_LEN 4 10391 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_LBN 0 10392 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_WIDTH 32 10393 /* A human-readable name for the sensor (zero terminated string, max 32 bytes) 10394 */ 10395 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_OFST 4 10396 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_LEN 32 10397 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_LBN 32 10398 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_WIDTH 256 10399 /* The type of the sensor device, and by implication the unit of that the 10400 * values will be reported in 10401 */ 10402 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_OFST 36 10403 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_LEN 4 10404 /* enum: A voltage sensor. Unit is mV */ 10405 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_VOLTAGE 0x0 10406 /* enum: A current sensor. Unit is mA */ 10407 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_CURRENT 0x1 10408 /* enum: A power sensor. Unit is mW */ 10409 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_POWER 0x2 10410 /* enum: A temperature sensor. Unit is Celsius */ 10411 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TEMPERATURE 0x3 10412 /* enum: A cooling fan sensor. Unit is RPM */ 10413 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_FAN 0x4 10414 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_LBN 288 10415 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_WIDTH 32 10416 /* A single MC_CMD_DYNAMIC_SENSORS_LIMITS structure */ 10417 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LIMITS_OFST 40 10418 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LIMITS_LEN 24 10419 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LIMITS_LBN 320 10420 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LIMITS_WIDTH 192 10421 10422 /* MC_CMD_DYNAMIC_SENSORS_READING structuredef: State and value of a sensor. 10423 * This should match the equivalent structure in the sensor_query SPHINX 10424 * service. 10425 */ 10426 #define MC_CMD_DYNAMIC_SENSORS_READING_LEN 12 10427 /* The handle used to identify the sensor */ 10428 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_OFST 0 10429 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_LEN 4 10430 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_LBN 0 10431 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_WIDTH 32 10432 /* The current value of the sensor */ 10433 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_OFST 4 10434 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_LEN 4 10435 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_LBN 32 10436 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_WIDTH 32 10437 /* The sensor's condition, e.g. good, broken or removed */ 10438 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_OFST 8 10439 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_LEN 4 10440 /* enum: Sensor working normally within limits */ 10441 #define MC_CMD_DYNAMIC_SENSORS_READING_OK 0x0 10442 /* enum: Warning threshold breached */ 10443 #define MC_CMD_DYNAMIC_SENSORS_READING_WARNING 0x1 10444 /* enum: Critical threshold breached */ 10445 #define MC_CMD_DYNAMIC_SENSORS_READING_CRITICAL 0x2 10446 /* enum: Fatal threshold breached */ 10447 #define MC_CMD_DYNAMIC_SENSORS_READING_FATAL 0x3 10448 /* enum: Sensor not working */ 10449 #define MC_CMD_DYNAMIC_SENSORS_READING_BROKEN 0x4 10450 /* enum: Sensor working but no reading available */ 10451 #define MC_CMD_DYNAMIC_SENSORS_READING_NO_READING 0x5 10452 /* enum: Sensor initialization failed */ 10453 #define MC_CMD_DYNAMIC_SENSORS_READING_INIT_FAILED 0x6 10454 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_LBN 64 10455 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_WIDTH 32 10456 10457 10458 /***********************************/ 10459 /* MC_CMD_DYNAMIC_SENSORS_LIST 10460 * Return a complete list of handles for sensors currently managed by the MC, 10461 * and a generation count for this version of the sensor table. On systems 10462 * advertising the DYNAMIC_SENSORS capability bit, this replaces the 10463 * MC_CMD_READ_SENSORS command. On multi-MC systems this may include sensors 10464 * added by the NMC. Sensor handles are persistent for the lifetime of the 10465 * sensor and are used to identify sensors in 10466 * MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS and 10467 * MC_CMD_DYNAMIC_SENSORS_GET_VALUES. The generation count is maintained by the 10468 * MC, is persistent across reboots and will be incremented each time the 10469 * sensor table is modified. When the table is modified, a 10470 * CODE_DYNAMIC_SENSORS_CHANGE event will be generated containing the new 10471 * generation count. The driver should compare this against the current 10472 * generation count, and if it is different, call MC_CMD_DYNAMIC_SENSORS_LIST 10473 * again to update it's copy of the sensor table. The sensor count is provided 10474 * to allow a future path to supporting more than 10475 * MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_MAXNUM_MCDI2 sensors, i.e. 10476 * the maximum number that will fit in a single response. As this is a fairly 10477 * large number (253) it is not anticipated that this will be needed in the 10478 * near future, so can currently be ignored. On Riverhead this command is 10479 * implemented as a wrapper for `list` in the sensor_query SPHINX service. 10480 */ 10481 #define MC_CMD_DYNAMIC_SENSORS_LIST 0x66 10482 #define MC_CMD_DYNAMIC_SENSORS_LIST_MSGSET 0x66 10483 #undef MC_CMD_0x66_PRIVILEGE_CTG 10484 10485 #define MC_CMD_0x66_PRIVILEGE_CTG SRIOV_CTG_GENERAL 10486 10487 /* MC_CMD_DYNAMIC_SENSORS_LIST_IN msgrequest */ 10488 #define MC_CMD_DYNAMIC_SENSORS_LIST_IN_LEN 0 10489 10490 /* MC_CMD_DYNAMIC_SENSORS_LIST_OUT msgresponse */ 10491 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LENMIN 8 10492 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LENMAX 252 10493 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LENMAX_MCDI2 1020 10494 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LEN(num) (8+4*(num)) 10495 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_NUM(len) (((len)-8)/4) 10496 /* Generation count, which will be updated each time a sensor is added to or 10497 * removed from the MC sensor table. 10498 */ 10499 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_GENERATION_OFST 0 10500 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_GENERATION_LEN 4 10501 /* Number of sensors managed by the MC. Note that in principle, this can be 10502 * larger than the size of the HANDLES array. 10503 */ 10504 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_COUNT_OFST 4 10505 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_COUNT_LEN 4 10506 /* Array of sensor handles */ 10507 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_OFST 8 10508 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_LEN 4 10509 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_MINNUM 0 10510 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_MAXNUM 61 10511 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_MAXNUM_MCDI2 253 10512 10513 10514 /***********************************/ 10515 /* MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS 10516 * Get descriptions for a set of sensors, specified as an array of sensor 10517 * handles as returned by MC_CMD_DYNAMIC_SENSORS_LIST. Any handles which do not 10518 * correspond to a sensor currently managed by the MC will be dropped from 10519 * the response. This may happen when a sensor table update is in progress, and 10520 * effectively means the set of usable sensors is the intersection between the 10521 * sets of sensors known to the driver and the MC. On Riverhead this command is 10522 * implemented as a wrapper for `get_descriptions` in the sensor_query SPHINX 10523 * service. 10524 */ 10525 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS 0x67 10526 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_MSGSET 0x67 10527 #undef MC_CMD_0x67_PRIVILEGE_CTG 10528 10529 #define MC_CMD_0x67_PRIVILEGE_CTG SRIOV_CTG_GENERAL 10530 10531 /* MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN msgrequest */ 10532 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LENMIN 0 10533 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LENMAX 252 10534 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LENMAX_MCDI2 1020 10535 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LEN(num) (0+4*(num)) 10536 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_NUM(len) (((len)-0)/4) 10537 /* Array of sensor handles */ 10538 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_OFST 0 10539 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_LEN 4 10540 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_MINNUM 0 10541 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_MAXNUM 63 10542 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_MAXNUM_MCDI2 255 10543 10544 /* MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT msgresponse */ 10545 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_LENMIN 0 10546 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_LENMAX 192 10547 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_LENMAX_MCDI2 960 10548 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_LEN(num) (0+64*(num)) 10549 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_NUM(len) (((len)-0)/64) 10550 /* Array of MC_CMD_DYNAMIC_SENSORS_DESCRIPTION structures */ 10551 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_OFST 0 10552 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_LEN 64 10553 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_MINNUM 0 10554 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_MAXNUM 3 10555 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_MAXNUM_MCDI2 15 10556 10557 10558 /***********************************/ 10559 /* MC_CMD_DYNAMIC_SENSORS_GET_READINGS 10560 * Read the state and value for a set of sensors, specified as an array of 10561 * sensor handles as returned by MC_CMD_DYNAMIC_SENSORS_LIST. In the case of a 10562 * broken sensor, then the state of the response's MC_CMD_DYNAMIC_SENSORS_VALUE 10563 * entry will be set to BROKEN, and any value provided should be treated as 10564 * erroneous. Any handles which do not correspond to a sensor currently managed 10565 * by the MC will be dropped from the response. This may happen when a 10566 * sensor table update is in progress, and effectively means the set of usable 10567 * sensors is the intersection between the sets of sensors known to the driver 10568 * and the MC. On Riverhead this command is implemented as a wrapper for 10569 * `get_readings` in the sensor_query SPHINX service. 10570 */ 10571 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS 0x68 10572 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_MSGSET 0x68 10573 #undef MC_CMD_0x68_PRIVILEGE_CTG 10574 10575 #define MC_CMD_0x68_PRIVILEGE_CTG SRIOV_CTG_GENERAL 10576 10577 /* MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN msgrequest */ 10578 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LENMIN 0 10579 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LENMAX 252 10580 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LENMAX_MCDI2 1020 10581 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LEN(num) (0+4*(num)) 10582 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_NUM(len) (((len)-0)/4) 10583 /* Array of sensor handles */ 10584 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_OFST 0 10585 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_LEN 4 10586 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_MINNUM 0 10587 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_MAXNUM 63 10588 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_MAXNUM_MCDI2 255 10589 10590 /* MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT msgresponse */ 10591 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_LENMIN 0 10592 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_LENMAX 252 10593 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_LENMAX_MCDI2 1020 10594 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_LEN(num) (0+12*(num)) 10595 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_NUM(len) (((len)-0)/12) 10596 /* Array of MC_CMD_DYNAMIC_SENSORS_READING structures */ 10597 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_OFST 0 10598 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_LEN 12 10599 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_MINNUM 0 10600 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_MAXNUM 21 10601 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_MAXNUM_MCDI2 85 10602 10603 10604 /***********************************/ 10605 /* MC_CMD_EVENT_CTRL 10606 * Configure which categories of unsolicited events the driver expects to 10607 * receive (Riverhead). 10608 */ 10609 #define MC_CMD_EVENT_CTRL 0x69 10610 #define MC_CMD_EVENT_CTRL_MSGSET 0x69 10611 #undef MC_CMD_0x69_PRIVILEGE_CTG 10612 10613 #define MC_CMD_0x69_PRIVILEGE_CTG SRIOV_CTG_GENERAL 10614 10615 /* MC_CMD_EVENT_CTRL_IN msgrequest */ 10616 #define MC_CMD_EVENT_CTRL_IN_LENMIN 0 10617 #define MC_CMD_EVENT_CTRL_IN_LENMAX 252 10618 #define MC_CMD_EVENT_CTRL_IN_LENMAX_MCDI2 1020 10619 #define MC_CMD_EVENT_CTRL_IN_LEN(num) (0+4*(num)) 10620 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_NUM(len) (((len)-0)/4) 10621 /* Array of event categories for which the driver wishes to receive events. */ 10622 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_OFST 0 10623 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_LEN 4 10624 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_MINNUM 0 10625 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_MAXNUM 63 10626 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_MAXNUM_MCDI2 255 10627 /* enum: Driver wishes to receive LINKCHANGE events. */ 10628 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_LINKCHANGE 0x0 10629 /* enum: Driver wishes to receive SENSOR_CHANGE and SENSOR_STATE_CHANGE events. 10630 */ 10631 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_SENSOREVT 0x1 10632 /* enum: Driver wishes to receive receive errors. */ 10633 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_RX_ERR 0x2 10634 /* enum: Driver wishes to receive transmit errors. */ 10635 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_TX_ERR 0x3 10636 /* enum: Driver wishes to receive firmware alerts. */ 10637 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_FWALERT 0x4 10638 /* enum: Driver wishes to receive reboot events. */ 10639 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_MC_REBOOT 0x5 10640 10641 /* MC_CMD_EVENT_CTRL_OUT msgrequest */ 10642 #define MC_CMD_EVENT_CTRL_OUT_LEN 0 10643 10644 /* EVB_PORT_ID structuredef */ 10645 #define EVB_PORT_ID_LEN 4 10646 #define EVB_PORT_ID_PORT_ID_OFST 0 10647 #define EVB_PORT_ID_PORT_ID_LEN 4 10648 /* enum: An invalid port handle. */ 10649 #define EVB_PORT_ID_NULL 0x0 10650 /* enum: The port assigned to this function.. */ 10651 #define EVB_PORT_ID_ASSIGNED 0x1000000 10652 /* enum: External network port 0 */ 10653 #define EVB_PORT_ID_MAC0 0x2000000 10654 /* enum: External network port 1 */ 10655 #define EVB_PORT_ID_MAC1 0x2000001 10656 /* enum: External network port 2 */ 10657 #define EVB_PORT_ID_MAC2 0x2000002 10658 /* enum: External network port 3 */ 10659 #define EVB_PORT_ID_MAC3 0x2000003 10660 #define EVB_PORT_ID_PORT_ID_LBN 0 10661 #define EVB_PORT_ID_PORT_ID_WIDTH 32 10662 10663 /* EVB_VLAN_TAG structuredef */ 10664 #define EVB_VLAN_TAG_LEN 2 10665 /* The VLAN tag value */ 10666 #define EVB_VLAN_TAG_VLAN_ID_LBN 0 10667 #define EVB_VLAN_TAG_VLAN_ID_WIDTH 12 10668 #define EVB_VLAN_TAG_MODE_LBN 12 10669 #define EVB_VLAN_TAG_MODE_WIDTH 4 10670 /* enum: Insert the VLAN. */ 10671 #define EVB_VLAN_TAG_INSERT 0x0 10672 /* enum: Replace the VLAN if already present. */ 10673 #define EVB_VLAN_TAG_REPLACE 0x1 10674 10675 /* BUFTBL_ENTRY structuredef */ 10676 #define BUFTBL_ENTRY_LEN 12 10677 /* the owner ID */ 10678 #define BUFTBL_ENTRY_OID_OFST 0 10679 #define BUFTBL_ENTRY_OID_LEN 2 10680 #define BUFTBL_ENTRY_OID_LBN 0 10681 #define BUFTBL_ENTRY_OID_WIDTH 16 10682 /* the page parameter as one of ESE_DZ_SMC_PAGE_SIZE_ */ 10683 #define BUFTBL_ENTRY_PGSZ_OFST 2 10684 #define BUFTBL_ENTRY_PGSZ_LEN 2 10685 #define BUFTBL_ENTRY_PGSZ_LBN 16 10686 #define BUFTBL_ENTRY_PGSZ_WIDTH 16 10687 /* the raw 64-bit address field from the SMC, not adjusted for page size */ 10688 #define BUFTBL_ENTRY_RAWADDR_OFST 4 10689 #define BUFTBL_ENTRY_RAWADDR_LEN 8 10690 #define BUFTBL_ENTRY_RAWADDR_LO_OFST 4 10691 #define BUFTBL_ENTRY_RAWADDR_LO_LEN 4 10692 #define BUFTBL_ENTRY_RAWADDR_LO_LBN 32 10693 #define BUFTBL_ENTRY_RAWADDR_LO_WIDTH 32 10694 #define BUFTBL_ENTRY_RAWADDR_HI_OFST 8 10695 #define BUFTBL_ENTRY_RAWADDR_HI_LEN 4 10696 #define BUFTBL_ENTRY_RAWADDR_HI_LBN 64 10697 #define BUFTBL_ENTRY_RAWADDR_HI_WIDTH 32 10698 #define BUFTBL_ENTRY_RAWADDR_LBN 32 10699 #define BUFTBL_ENTRY_RAWADDR_WIDTH 64 10700 10701 /* NVRAM_PARTITION_TYPE structuredef */ 10702 #define NVRAM_PARTITION_TYPE_LEN 2 10703 #define NVRAM_PARTITION_TYPE_ID_OFST 0 10704 #define NVRAM_PARTITION_TYPE_ID_LEN 2 10705 /* enum: Primary MC firmware partition */ 10706 #define NVRAM_PARTITION_TYPE_MC_FIRMWARE 0x100 10707 /* enum: NMC firmware partition (this is intentionally an alias of MC_FIRMWARE) 10708 */ 10709 #define NVRAM_PARTITION_TYPE_NMC_FIRMWARE 0x100 10710 /* enum: Secondary MC firmware partition */ 10711 #define NVRAM_PARTITION_TYPE_MC_FIRMWARE_BACKUP 0x200 10712 /* enum: Expansion ROM partition */ 10713 #define NVRAM_PARTITION_TYPE_EXPANSION_ROM 0x300 10714 /* enum: Static configuration TLV partition */ 10715 #define NVRAM_PARTITION_TYPE_STATIC_CONFIG 0x400 10716 /* enum: Factory configuration TLV partition (this is intentionally an alias of 10717 * STATIC_CONFIG) 10718 */ 10719 #define NVRAM_PARTITION_TYPE_FACTORY_CONFIG 0x400 10720 /* enum: Dynamic configuration TLV partition */ 10721 #define NVRAM_PARTITION_TYPE_DYNAMIC_CONFIG 0x500 10722 /* enum: User configuration TLV partition (this is intentionally an alias of 10723 * DYNAMIC_CONFIG) 10724 */ 10725 #define NVRAM_PARTITION_TYPE_USER_CONFIG 0x500 10726 /* enum: Expansion ROM configuration data for port 0 */ 10727 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT0 0x600 10728 /* enum: Synonym for EXPROM_CONFIG_PORT0 as used in pmap files */ 10729 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG 0x600 10730 /* enum: Expansion ROM configuration data for port 1 */ 10731 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT1 0x601 10732 /* enum: Expansion ROM configuration data for port 2 */ 10733 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT2 0x602 10734 /* enum: Expansion ROM configuration data for port 3 */ 10735 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT3 0x603 10736 /* enum: Non-volatile log output partition */ 10737 #define NVRAM_PARTITION_TYPE_LOG 0x700 10738 /* enum: Non-volatile log output partition for NMC firmware (this is 10739 * intentionally an alias of LOG) 10740 */ 10741 #define NVRAM_PARTITION_TYPE_NMC_LOG 0x700 10742 /* enum: Non-volatile log output of second core on dual-core device */ 10743 #define NVRAM_PARTITION_TYPE_LOG_SLAVE 0x701 10744 /* enum: Device state dump output partition */ 10745 #define NVRAM_PARTITION_TYPE_DUMP 0x800 10746 /* enum: Crash log partition for NMC firmware */ 10747 #define NVRAM_PARTITION_TYPE_NMC_CRASH_LOG 0x801 10748 /* enum: Application license key storage partition */ 10749 #define NVRAM_PARTITION_TYPE_LICENSE 0x900 10750 /* enum: Start of range used for PHY partitions (low 8 bits are the PHY ID) */ 10751 #define NVRAM_PARTITION_TYPE_PHY_MIN 0xa00 10752 /* enum: End of range used for PHY partitions (low 8 bits are the PHY ID) */ 10753 #define NVRAM_PARTITION_TYPE_PHY_MAX 0xaff 10754 /* enum: Primary FPGA partition */ 10755 #define NVRAM_PARTITION_TYPE_FPGA 0xb00 10756 /* enum: Secondary FPGA partition */ 10757 #define NVRAM_PARTITION_TYPE_FPGA_BACKUP 0xb01 10758 /* enum: FC firmware partition */ 10759 #define NVRAM_PARTITION_TYPE_FC_FIRMWARE 0xb02 10760 /* enum: FC License partition */ 10761 #define NVRAM_PARTITION_TYPE_FC_LICENSE 0xb03 10762 /* enum: Non-volatile log output partition for FC */ 10763 #define NVRAM_PARTITION_TYPE_FC_LOG 0xb04 10764 /* enum: FPGA Stage 1 bitstream */ 10765 #define NVRAM_PARTITION_TYPE_FPGA_STAGE1 0xb05 10766 /* enum: FPGA Stage 2 bitstream */ 10767 #define NVRAM_PARTITION_TYPE_FPGA_STAGE2 0xb06 10768 /* enum: FPGA User XCLBIN / Programmable Region 0 bitstream */ 10769 #define NVRAM_PARTITION_TYPE_FPGA_REGION0 0xb07 10770 /* enum: FPGA User XCLBIN (this is intentionally an alias of FPGA_REGION0) */ 10771 #define NVRAM_PARTITION_TYPE_FPGA_XCLBIN_USER 0xb07 10772 /* enum: FPGA jump instruction (a.k.a. boot) partition to select Stage1 10773 * bitstream 10774 */ 10775 #define NVRAM_PARTITION_TYPE_FPGA_JUMP 0xb08 10776 /* enum: FPGA Validate XCLBIN */ 10777 #define NVRAM_PARTITION_TYPE_FPGA_XCLBIN_VALIDATE 0xb09 10778 /* enum: FPGA XOCL Configuration information */ 10779 #define NVRAM_PARTITION_TYPE_FPGA_XOCL_CONFIG 0xb0a 10780 /* enum: MUM firmware partition */ 10781 #define NVRAM_PARTITION_TYPE_MUM_FIRMWARE 0xc00 10782 /* enum: SUC firmware partition (this is intentionally an alias of 10783 * MUM_FIRMWARE) 10784 */ 10785 #define NVRAM_PARTITION_TYPE_SUC_FIRMWARE 0xc00 10786 /* enum: MUM Non-volatile log output partition. */ 10787 #define NVRAM_PARTITION_TYPE_MUM_LOG 0xc01 10788 /* enum: SUC Non-volatile log output partition (this is intentionally an alias 10789 * of MUM_LOG). 10790 */ 10791 #define NVRAM_PARTITION_TYPE_SUC_LOG 0xc01 10792 /* enum: MUM Application table partition. */ 10793 #define NVRAM_PARTITION_TYPE_MUM_APPTABLE 0xc02 10794 /* enum: MUM boot rom partition. */ 10795 #define NVRAM_PARTITION_TYPE_MUM_BOOT_ROM 0xc03 10796 /* enum: MUM production signatures & calibration rom partition. */ 10797 #define NVRAM_PARTITION_TYPE_MUM_PROD_ROM 0xc04 10798 /* enum: MUM user signatures & calibration rom partition. */ 10799 #define NVRAM_PARTITION_TYPE_MUM_USER_ROM 0xc05 10800 /* enum: MUM fuses and lockbits partition. */ 10801 #define NVRAM_PARTITION_TYPE_MUM_FUSELOCK 0xc06 10802 /* enum: UEFI expansion ROM if separate from PXE */ 10803 #define NVRAM_PARTITION_TYPE_EXPANSION_UEFI 0xd00 10804 /* enum: Used by the expansion ROM for logging */ 10805 #define NVRAM_PARTITION_TYPE_PXE_LOG 0x1000 10806 /* enum: Non-volatile log output partition for Expansion ROM (this is 10807 * intentionally an alias of PXE_LOG). 10808 */ 10809 #define NVRAM_PARTITION_TYPE_EXPROM_LOG 0x1000 10810 /* enum: Used for XIP code of shmbooted images */ 10811 #define NVRAM_PARTITION_TYPE_XIP_SCRATCH 0x1100 10812 /* enum: Spare partition 2 */ 10813 #define NVRAM_PARTITION_TYPE_SPARE_2 0x1200 10814 /* enum: Manufacturing partition. Used during manufacture to pass information 10815 * between XJTAG and Manftest. 10816 */ 10817 #define NVRAM_PARTITION_TYPE_MANUFACTURING 0x1300 10818 /* enum: Deployment configuration TLV partition (this is intentionally an alias 10819 * of MANUFACTURING) 10820 */ 10821 #define NVRAM_PARTITION_TYPE_DEPLOYMENT_CONFIG 0x1300 10822 /* enum: Spare partition 4 */ 10823 #define NVRAM_PARTITION_TYPE_SPARE_4 0x1400 10824 /* enum: Spare partition 5 */ 10825 #define NVRAM_PARTITION_TYPE_SPARE_5 0x1500 10826 /* enum: Partition for reporting MC status. See mc_flash_layout.h 10827 * medford_mc_status_hdr_t for layout on Medford. 10828 */ 10829 #define NVRAM_PARTITION_TYPE_STATUS 0x1600 10830 /* enum: Spare partition 13 */ 10831 #define NVRAM_PARTITION_TYPE_SPARE_13 0x1700 10832 /* enum: Spare partition 14 */ 10833 #define NVRAM_PARTITION_TYPE_SPARE_14 0x1800 10834 /* enum: Spare partition 15 */ 10835 #define NVRAM_PARTITION_TYPE_SPARE_15 0x1900 10836 /* enum: Spare partition 16 */ 10837 #define NVRAM_PARTITION_TYPE_SPARE_16 0x1a00 10838 /* enum: Factory defaults for dynamic configuration */ 10839 #define NVRAM_PARTITION_TYPE_DYNCONFIG_DEFAULTS 0x1b00 10840 /* enum: Factory defaults for expansion ROM configuration */ 10841 #define NVRAM_PARTITION_TYPE_ROMCONFIG_DEFAULTS 0x1c00 10842 /* enum: Field Replaceable Unit inventory information for use on IPMI 10843 * platforms. See SF-119124-PS. The STATIC_CONFIG partition may contain a 10844 * subset of the information stored in this partition. 10845 */ 10846 #define NVRAM_PARTITION_TYPE_FRU_INFORMATION 0x1d00 10847 /* enum: Bundle image partition */ 10848 #define NVRAM_PARTITION_TYPE_BUNDLE 0x1e00 10849 /* enum: Bundle metadata partition that holds additional information related to 10850 * a bundle update in TLV format 10851 */ 10852 #define NVRAM_PARTITION_TYPE_BUNDLE_METADATA 0x1e01 10853 /* enum: Bundle update non-volatile log output partition */ 10854 #define NVRAM_PARTITION_TYPE_BUNDLE_LOG 0x1e02 10855 /* enum: Partition for Solarflare gPXE bootrom installed via Bundle update. */ 10856 #define NVRAM_PARTITION_TYPE_EXPANSION_ROM_INTERNAL 0x1e03 10857 /* enum: Partition to store ASN.1 format Bundle Signature for checking. */ 10858 #define NVRAM_PARTITION_TYPE_BUNDLE_SIGNATURE 0x1e04 10859 /* enum: Test partition on SmartNIC system microcontroller (SUC) */ 10860 #define NVRAM_PARTITION_TYPE_SUC_TEST 0x1f00 10861 /* enum: System microcontroller access to primary FPGA flash. */ 10862 #define NVRAM_PARTITION_TYPE_SUC_FPGA_PRIMARY 0x1f01 10863 /* enum: System microcontroller access to secondary FPGA flash (if present) */ 10864 #define NVRAM_PARTITION_TYPE_SUC_FPGA_SECONDARY 0x1f02 10865 /* enum: System microcontroller access to primary System-on-Chip flash */ 10866 #define NVRAM_PARTITION_TYPE_SUC_SOC_PRIMARY 0x1f03 10867 /* enum: System microcontroller access to secondary System-on-Chip flash (if 10868 * present) 10869 */ 10870 #define NVRAM_PARTITION_TYPE_SUC_SOC_SECONDARY 0x1f04 10871 /* enum: System microcontroller critical failure logs. Contains structured 10872 * details of sensors leading up to a critical failure (where the board is shut 10873 * down). 10874 */ 10875 #define NVRAM_PARTITION_TYPE_SUC_FAILURE_LOG 0x1f05 10876 /* enum: System-on-Chip configuration information (see XN-200467-PS). */ 10877 #define NVRAM_PARTITION_TYPE_SUC_SOC_CONFIG 0x1f07 10878 /* enum: System-on-Chip update information. */ 10879 #define NVRAM_PARTITION_TYPE_SOC_UPDATE 0x2003 10880 /* enum: Start of reserved value range (firmware may use for any purpose) */ 10881 #define NVRAM_PARTITION_TYPE_RESERVED_VALUES_MIN 0xff00 10882 /* enum: End of reserved value range (firmware may use for any purpose) */ 10883 #define NVRAM_PARTITION_TYPE_RESERVED_VALUES_MAX 0xfffd 10884 /* enum: Recovery partition map (provided if real map is missing or corrupt) */ 10885 #define NVRAM_PARTITION_TYPE_RECOVERY_MAP 0xfffe 10886 /* enum: Recovery Flash Partition Table, see SF-122606-TC. (this is 10887 * intentionally an alias of RECOVERY_MAP) 10888 */ 10889 #define NVRAM_PARTITION_TYPE_RECOVERY_FPT 0xfffe 10890 /* enum: Partition map (real map as stored in flash) */ 10891 #define NVRAM_PARTITION_TYPE_PARTITION_MAP 0xffff 10892 /* enum: Flash Partition Table, see SF-122606-TC. (this is intentionally an 10893 * alias of PARTITION_MAP) 10894 */ 10895 #define NVRAM_PARTITION_TYPE_FPT 0xffff 10896 #define NVRAM_PARTITION_TYPE_ID_LBN 0 10897 #define NVRAM_PARTITION_TYPE_ID_WIDTH 16 10898 10899 /* LICENSED_APP_ID structuredef */ 10900 #define LICENSED_APP_ID_LEN 4 10901 #define LICENSED_APP_ID_ID_OFST 0 10902 #define LICENSED_APP_ID_ID_LEN 4 10903 /* enum: OpenOnload */ 10904 #define LICENSED_APP_ID_ONLOAD 0x1 10905 /* enum: PTP timestamping */ 10906 #define LICENSED_APP_ID_PTP 0x2 10907 /* enum: SolarCapture Pro */ 10908 #define LICENSED_APP_ID_SOLARCAPTURE_PRO 0x4 10909 /* enum: SolarSecure filter engine */ 10910 #define LICENSED_APP_ID_SOLARSECURE 0x8 10911 /* enum: Performance monitor */ 10912 #define LICENSED_APP_ID_PERF_MONITOR 0x10 10913 /* enum: SolarCapture Live */ 10914 #define LICENSED_APP_ID_SOLARCAPTURE_LIVE 0x20 10915 /* enum: Capture SolarSystem */ 10916 #define LICENSED_APP_ID_CAPTURE_SOLARSYSTEM 0x40 10917 /* enum: Network Access Control */ 10918 #define LICENSED_APP_ID_NETWORK_ACCESS_CONTROL 0x80 10919 /* enum: TCP Direct */ 10920 #define LICENSED_APP_ID_TCP_DIRECT 0x100 10921 /* enum: Low Latency */ 10922 #define LICENSED_APP_ID_LOW_LATENCY 0x200 10923 /* enum: SolarCapture Tap */ 10924 #define LICENSED_APP_ID_SOLARCAPTURE_TAP 0x400 10925 /* enum: Capture SolarSystem 40G */ 10926 #define LICENSED_APP_ID_CAPTURE_SOLARSYSTEM_40G 0x800 10927 /* enum: Capture SolarSystem 1G */ 10928 #define LICENSED_APP_ID_CAPTURE_SOLARSYSTEM_1G 0x1000 10929 /* enum: ScaleOut Onload */ 10930 #define LICENSED_APP_ID_SCALEOUT_ONLOAD 0x2000 10931 /* enum: SCS Network Analytics Dashboard */ 10932 #define LICENSED_APP_ID_DSHBRD 0x4000 10933 /* enum: SolarCapture Trading Analytics */ 10934 #define LICENSED_APP_ID_SCATRD 0x8000 10935 #define LICENSED_APP_ID_ID_LBN 0 10936 #define LICENSED_APP_ID_ID_WIDTH 32 10937 10938 /* LICENSED_FEATURES structuredef */ 10939 #define LICENSED_FEATURES_LEN 8 10940 /* Bitmask of licensed firmware features */ 10941 #define LICENSED_FEATURES_MASK_OFST 0 10942 #define LICENSED_FEATURES_MASK_LEN 8 10943 #define LICENSED_FEATURES_MASK_LO_OFST 0 10944 #define LICENSED_FEATURES_MASK_LO_LEN 4 10945 #define LICENSED_FEATURES_MASK_LO_LBN 0 10946 #define LICENSED_FEATURES_MASK_LO_WIDTH 32 10947 #define LICENSED_FEATURES_MASK_HI_OFST 4 10948 #define LICENSED_FEATURES_MASK_HI_LEN 4 10949 #define LICENSED_FEATURES_MASK_HI_LBN 32 10950 #define LICENSED_FEATURES_MASK_HI_WIDTH 32 10951 #define LICENSED_FEATURES_RX_CUT_THROUGH_OFST 0 10952 #define LICENSED_FEATURES_RX_CUT_THROUGH_LBN 0 10953 #define LICENSED_FEATURES_RX_CUT_THROUGH_WIDTH 1 10954 #define LICENSED_FEATURES_PIO_OFST 0 10955 #define LICENSED_FEATURES_PIO_LBN 1 10956 #define LICENSED_FEATURES_PIO_WIDTH 1 10957 #define LICENSED_FEATURES_EVQ_TIMER_OFST 0 10958 #define LICENSED_FEATURES_EVQ_TIMER_LBN 2 10959 #define LICENSED_FEATURES_EVQ_TIMER_WIDTH 1 10960 #define LICENSED_FEATURES_CLOCK_OFST 0 10961 #define LICENSED_FEATURES_CLOCK_LBN 3 10962 #define LICENSED_FEATURES_CLOCK_WIDTH 1 10963 #define LICENSED_FEATURES_RX_TIMESTAMPS_OFST 0 10964 #define LICENSED_FEATURES_RX_TIMESTAMPS_LBN 4 10965 #define LICENSED_FEATURES_RX_TIMESTAMPS_WIDTH 1 10966 #define LICENSED_FEATURES_TX_TIMESTAMPS_OFST 0 10967 #define LICENSED_FEATURES_TX_TIMESTAMPS_LBN 5 10968 #define LICENSED_FEATURES_TX_TIMESTAMPS_WIDTH 1 10969 #define LICENSED_FEATURES_RX_SNIFF_OFST 0 10970 #define LICENSED_FEATURES_RX_SNIFF_LBN 6 10971 #define LICENSED_FEATURES_RX_SNIFF_WIDTH 1 10972 #define LICENSED_FEATURES_TX_SNIFF_OFST 0 10973 #define LICENSED_FEATURES_TX_SNIFF_LBN 7 10974 #define LICENSED_FEATURES_TX_SNIFF_WIDTH 1 10975 #define LICENSED_FEATURES_PROXY_FILTER_OPS_OFST 0 10976 #define LICENSED_FEATURES_PROXY_FILTER_OPS_LBN 8 10977 #define LICENSED_FEATURES_PROXY_FILTER_OPS_WIDTH 1 10978 #define LICENSED_FEATURES_EVENT_CUT_THROUGH_OFST 0 10979 #define LICENSED_FEATURES_EVENT_CUT_THROUGH_LBN 9 10980 #define LICENSED_FEATURES_EVENT_CUT_THROUGH_WIDTH 1 10981 #define LICENSED_FEATURES_MASK_LBN 0 10982 #define LICENSED_FEATURES_MASK_WIDTH 64 10983 10984 /* LICENSED_V3_APPS structuredef */ 10985 #define LICENSED_V3_APPS_LEN 8 10986 /* Bitmask of licensed applications */ 10987 #define LICENSED_V3_APPS_MASK_OFST 0 10988 #define LICENSED_V3_APPS_MASK_LEN 8 10989 #define LICENSED_V3_APPS_MASK_LO_OFST 0 10990 #define LICENSED_V3_APPS_MASK_LO_LEN 4 10991 #define LICENSED_V3_APPS_MASK_LO_LBN 0 10992 #define LICENSED_V3_APPS_MASK_LO_WIDTH 32 10993 #define LICENSED_V3_APPS_MASK_HI_OFST 4 10994 #define LICENSED_V3_APPS_MASK_HI_LEN 4 10995 #define LICENSED_V3_APPS_MASK_HI_LBN 32 10996 #define LICENSED_V3_APPS_MASK_HI_WIDTH 32 10997 #define LICENSED_V3_APPS_ONLOAD_OFST 0 10998 #define LICENSED_V3_APPS_ONLOAD_LBN 0 10999 #define LICENSED_V3_APPS_ONLOAD_WIDTH 1 11000 #define LICENSED_V3_APPS_PTP_OFST 0 11001 #define LICENSED_V3_APPS_PTP_LBN 1 11002 #define LICENSED_V3_APPS_PTP_WIDTH 1 11003 #define LICENSED_V3_APPS_SOLARCAPTURE_PRO_OFST 0 11004 #define LICENSED_V3_APPS_SOLARCAPTURE_PRO_LBN 2 11005 #define LICENSED_V3_APPS_SOLARCAPTURE_PRO_WIDTH 1 11006 #define LICENSED_V3_APPS_SOLARSECURE_OFST 0 11007 #define LICENSED_V3_APPS_SOLARSECURE_LBN 3 11008 #define LICENSED_V3_APPS_SOLARSECURE_WIDTH 1 11009 #define LICENSED_V3_APPS_PERF_MONITOR_OFST 0 11010 #define LICENSED_V3_APPS_PERF_MONITOR_LBN 4 11011 #define LICENSED_V3_APPS_PERF_MONITOR_WIDTH 1 11012 #define LICENSED_V3_APPS_SOLARCAPTURE_LIVE_OFST 0 11013 #define LICENSED_V3_APPS_SOLARCAPTURE_LIVE_LBN 5 11014 #define LICENSED_V3_APPS_SOLARCAPTURE_LIVE_WIDTH 1 11015 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_OFST 0 11016 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_LBN 6 11017 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_WIDTH 1 11018 #define LICENSED_V3_APPS_NETWORK_ACCESS_CONTROL_OFST 0 11019 #define LICENSED_V3_APPS_NETWORK_ACCESS_CONTROL_LBN 7 11020 #define LICENSED_V3_APPS_NETWORK_ACCESS_CONTROL_WIDTH 1 11021 #define LICENSED_V3_APPS_TCP_DIRECT_OFST 0 11022 #define LICENSED_V3_APPS_TCP_DIRECT_LBN 8 11023 #define LICENSED_V3_APPS_TCP_DIRECT_WIDTH 1 11024 #define LICENSED_V3_APPS_LOW_LATENCY_OFST 0 11025 #define LICENSED_V3_APPS_LOW_LATENCY_LBN 9 11026 #define LICENSED_V3_APPS_LOW_LATENCY_WIDTH 1 11027 #define LICENSED_V3_APPS_SOLARCAPTURE_TAP_OFST 0 11028 #define LICENSED_V3_APPS_SOLARCAPTURE_TAP_LBN 10 11029 #define LICENSED_V3_APPS_SOLARCAPTURE_TAP_WIDTH 1 11030 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_40G_OFST 0 11031 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_40G_LBN 11 11032 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_40G_WIDTH 1 11033 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_1G_OFST 0 11034 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_1G_LBN 12 11035 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_1G_WIDTH 1 11036 #define LICENSED_V3_APPS_SCALEOUT_ONLOAD_OFST 0 11037 #define LICENSED_V3_APPS_SCALEOUT_ONLOAD_LBN 13 11038 #define LICENSED_V3_APPS_SCALEOUT_ONLOAD_WIDTH 1 11039 #define LICENSED_V3_APPS_DSHBRD_OFST 0 11040 #define LICENSED_V3_APPS_DSHBRD_LBN 14 11041 #define LICENSED_V3_APPS_DSHBRD_WIDTH 1 11042 #define LICENSED_V3_APPS_SCATRD_OFST 0 11043 #define LICENSED_V3_APPS_SCATRD_LBN 15 11044 #define LICENSED_V3_APPS_SCATRD_WIDTH 1 11045 #define LICENSED_V3_APPS_MASK_LBN 0 11046 #define LICENSED_V3_APPS_MASK_WIDTH 64 11047 11048 /* LICENSED_V3_FEATURES structuredef */ 11049 #define LICENSED_V3_FEATURES_LEN 8 11050 /* Bitmask of licensed firmware features */ 11051 #define LICENSED_V3_FEATURES_MASK_OFST 0 11052 #define LICENSED_V3_FEATURES_MASK_LEN 8 11053 #define LICENSED_V3_FEATURES_MASK_LO_OFST 0 11054 #define LICENSED_V3_FEATURES_MASK_LO_LEN 4 11055 #define LICENSED_V3_FEATURES_MASK_LO_LBN 0 11056 #define LICENSED_V3_FEATURES_MASK_LO_WIDTH 32 11057 #define LICENSED_V3_FEATURES_MASK_HI_OFST 4 11058 #define LICENSED_V3_FEATURES_MASK_HI_LEN 4 11059 #define LICENSED_V3_FEATURES_MASK_HI_LBN 32 11060 #define LICENSED_V3_FEATURES_MASK_HI_WIDTH 32 11061 #define LICENSED_V3_FEATURES_RX_CUT_THROUGH_OFST 0 11062 #define LICENSED_V3_FEATURES_RX_CUT_THROUGH_LBN 0 11063 #define LICENSED_V3_FEATURES_RX_CUT_THROUGH_WIDTH 1 11064 #define LICENSED_V3_FEATURES_PIO_OFST 0 11065 #define LICENSED_V3_FEATURES_PIO_LBN 1 11066 #define LICENSED_V3_FEATURES_PIO_WIDTH 1 11067 #define LICENSED_V3_FEATURES_EVQ_TIMER_OFST 0 11068 #define LICENSED_V3_FEATURES_EVQ_TIMER_LBN 2 11069 #define LICENSED_V3_FEATURES_EVQ_TIMER_WIDTH 1 11070 #define LICENSED_V3_FEATURES_CLOCK_OFST 0 11071 #define LICENSED_V3_FEATURES_CLOCK_LBN 3 11072 #define LICENSED_V3_FEATURES_CLOCK_WIDTH 1 11073 #define LICENSED_V3_FEATURES_RX_TIMESTAMPS_OFST 0 11074 #define LICENSED_V3_FEATURES_RX_TIMESTAMPS_LBN 4 11075 #define LICENSED_V3_FEATURES_RX_TIMESTAMPS_WIDTH 1 11076 #define LICENSED_V3_FEATURES_TX_TIMESTAMPS_OFST 0 11077 #define LICENSED_V3_FEATURES_TX_TIMESTAMPS_LBN 5 11078 #define LICENSED_V3_FEATURES_TX_TIMESTAMPS_WIDTH 1 11079 #define LICENSED_V3_FEATURES_RX_SNIFF_OFST 0 11080 #define LICENSED_V3_FEATURES_RX_SNIFF_LBN 6 11081 #define LICENSED_V3_FEATURES_RX_SNIFF_WIDTH 1 11082 #define LICENSED_V3_FEATURES_TX_SNIFF_OFST 0 11083 #define LICENSED_V3_FEATURES_TX_SNIFF_LBN 7 11084 #define LICENSED_V3_FEATURES_TX_SNIFF_WIDTH 1 11085 #define LICENSED_V3_FEATURES_PROXY_FILTER_OPS_OFST 0 11086 #define LICENSED_V3_FEATURES_PROXY_FILTER_OPS_LBN 8 11087 #define LICENSED_V3_FEATURES_PROXY_FILTER_OPS_WIDTH 1 11088 #define LICENSED_V3_FEATURES_EVENT_CUT_THROUGH_OFST 0 11089 #define LICENSED_V3_FEATURES_EVENT_CUT_THROUGH_LBN 9 11090 #define LICENSED_V3_FEATURES_EVENT_CUT_THROUGH_WIDTH 1 11091 #define LICENSED_V3_FEATURES_MASK_LBN 0 11092 #define LICENSED_V3_FEATURES_MASK_WIDTH 64 11093 11094 /* TX_TIMESTAMP_EVENT structuredef */ 11095 #define TX_TIMESTAMP_EVENT_LEN 6 11096 /* lower 16 bits of timestamp data */ 11097 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_LO_OFST 0 11098 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_LO_LEN 2 11099 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_LO_LBN 0 11100 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_LO_WIDTH 16 11101 /* Type of TX event, ordinary TX completion, low or high part of TX timestamp 11102 */ 11103 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_OFST 3 11104 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_LEN 1 11105 /* enum: This is a TX completion event, not a timestamp */ 11106 #define TX_TIMESTAMP_EVENT_TX_EV_COMPLETION 0x0 11107 /* enum: This is a TX completion event for a CTPIO transmit. The event format 11108 * is the same as for TX_EV_COMPLETION. 11109 */ 11110 #define TX_TIMESTAMP_EVENT_TX_EV_CTPIO_COMPLETION 0x11 11111 /* enum: This is the low part of a TX timestamp for a CTPIO transmission. The 11112 * event format is the same as for TX_EV_TSTAMP_LO 11113 */ 11114 #define TX_TIMESTAMP_EVENT_TX_EV_CTPIO_TS_LO 0x12 11115 /* enum: This is the high part of a TX timestamp for a CTPIO transmission. The 11116 * event format is the same as for TX_EV_TSTAMP_HI 11117 */ 11118 #define TX_TIMESTAMP_EVENT_TX_EV_CTPIO_TS_HI 0x13 11119 /* enum: This is the low part of a TX timestamp event */ 11120 #define TX_TIMESTAMP_EVENT_TX_EV_TSTAMP_LO 0x51 11121 /* enum: This is the high part of a TX timestamp event */ 11122 #define TX_TIMESTAMP_EVENT_TX_EV_TSTAMP_HI 0x52 11123 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_LBN 24 11124 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_WIDTH 8 11125 /* upper 16 bits of timestamp data */ 11126 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_OFST 4 11127 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_LEN 2 11128 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_LBN 32 11129 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_WIDTH 16 11130 11131 /* RSS_MODE structuredef */ 11132 #define RSS_MODE_LEN 1 11133 /* The RSS mode for a particular packet type is a value from 0 - 15 which can 11134 * be considered as 4 bits selecting which fields are included in the hash. (A 11135 * value 0 effectively disables RSS spreading for the packet type.) The YAML 11136 * generation tools require this structure to be a whole number of bytes wide, 11137 * but only 4 bits are relevant. 11138 */ 11139 #define RSS_MODE_HASH_SELECTOR_OFST 0 11140 #define RSS_MODE_HASH_SELECTOR_LEN 1 11141 #define RSS_MODE_HASH_SRC_ADDR_OFST 0 11142 #define RSS_MODE_HASH_SRC_ADDR_LBN 0 11143 #define RSS_MODE_HASH_SRC_ADDR_WIDTH 1 11144 #define RSS_MODE_HASH_DST_ADDR_OFST 0 11145 #define RSS_MODE_HASH_DST_ADDR_LBN 1 11146 #define RSS_MODE_HASH_DST_ADDR_WIDTH 1 11147 #define RSS_MODE_HASH_SRC_PORT_OFST 0 11148 #define RSS_MODE_HASH_SRC_PORT_LBN 2 11149 #define RSS_MODE_HASH_SRC_PORT_WIDTH 1 11150 #define RSS_MODE_HASH_DST_PORT_OFST 0 11151 #define RSS_MODE_HASH_DST_PORT_LBN 3 11152 #define RSS_MODE_HASH_DST_PORT_WIDTH 1 11153 #define RSS_MODE_HASH_SELECTOR_LBN 0 11154 #define RSS_MODE_HASH_SELECTOR_WIDTH 8 11155 11156 /* CTPIO_STATS_MAP structuredef */ 11157 #define CTPIO_STATS_MAP_LEN 4 11158 /* The (function relative) VI number */ 11159 #define CTPIO_STATS_MAP_VI_OFST 0 11160 #define CTPIO_STATS_MAP_VI_LEN 2 11161 #define CTPIO_STATS_MAP_VI_LBN 0 11162 #define CTPIO_STATS_MAP_VI_WIDTH 16 11163 /* The target bucket for the VI */ 11164 #define CTPIO_STATS_MAP_BUCKET_OFST 2 11165 #define CTPIO_STATS_MAP_BUCKET_LEN 2 11166 #define CTPIO_STATS_MAP_BUCKET_LBN 16 11167 #define CTPIO_STATS_MAP_BUCKET_WIDTH 16 11168 11169 /* MESSAGE_TYPE structuredef: When present this defines the meaning of a 11170 * message, and is used to protect against chosen message attacks in signed 11171 * messages, regardless their origin. The message type also defines the 11172 * signature cryptographic algorithm, encoding, and message fields included in 11173 * the signature. The values are used in different commands but must be unique 11174 * across all commands, e.g. MC_CMD_TSA_BIND_IN_SECURE_UNBIND uses different 11175 * message type than MC_CMD_SECURE_NIC_INFO_IN_STATUS. 11176 */ 11177 #define MESSAGE_TYPE_LEN 4 11178 #define MESSAGE_TYPE_MESSAGE_TYPE_OFST 0 11179 #define MESSAGE_TYPE_MESSAGE_TYPE_LEN 4 11180 #define MESSAGE_TYPE_UNUSED 0x0 /* enum */ 11181 /* enum: Message type value for the response to a 11182 * MC_CMD_TSA_BIND_IN_SECURE_UNBIND message. TSA_SECURE_UNBIND messages are 11183 * ECDSA SECP384R1 signed using SHA384 message digest algorithm over fields 11184 * MESSAGE_TYPE, TSANID, TSAID, and UNBINDTOKEN, and encoded as suggested by 11185 * RFC6979 (section 2.4). 11186 */ 11187 #define MESSAGE_TYPE_TSA_SECURE_UNBIND 0x1 11188 /* enum: Message type value for the response to a 11189 * MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION message. TSA_SECURE_DECOMMISSION 11190 * messages are ECDSA SECP384R1 signed using SHA384 message digest algorithm 11191 * over fields MESSAGE_TYPE, TSAID, USER, and REASON, and encoded as suggested 11192 * by RFC6979 (section 2.4). 11193 */ 11194 #define MESSAGE_TYPE_TSA_SECURE_DECOMMISSION 0x2 11195 /* enum: Message type value for the response to a 11196 * MC_CMD_SECURE_NIC_INFO_IN_STATUS message. This enum value is not sequential 11197 * to other message types for backwards compatibility as the message type for 11198 * MC_CMD_SECURE_NIC_INFO_IN_STATUS was defined before the existence of this 11199 * global enum. 11200 */ 11201 #define MESSAGE_TYPE_SECURE_NIC_INFO_STATUS 0xdb4 11202 #define MESSAGE_TYPE_MESSAGE_TYPE_LBN 0 11203 #define MESSAGE_TYPE_MESSAGE_TYPE_WIDTH 32 11204 11205 11206 /***********************************/ 11207 /* MC_CMD_READ_REGS 11208 * Get a dump of the MCPU registers 11209 */ 11210 #define MC_CMD_READ_REGS 0x50 11211 #define MC_CMD_READ_REGS_MSGSET 0x50 11212 #undef MC_CMD_0x50_PRIVILEGE_CTG 11213 11214 #define MC_CMD_0x50_PRIVILEGE_CTG SRIOV_CTG_INSECURE 11215 11216 /* MC_CMD_READ_REGS_IN msgrequest */ 11217 #define MC_CMD_READ_REGS_IN_LEN 0 11218 11219 /* MC_CMD_READ_REGS_OUT msgresponse */ 11220 #define MC_CMD_READ_REGS_OUT_LEN 308 11221 /* Whether the corresponding register entry contains a valid value */ 11222 #define MC_CMD_READ_REGS_OUT_MASK_OFST 0 11223 #define MC_CMD_READ_REGS_OUT_MASK_LEN 16 11224 /* Same order as MIPS GDB (r0-r31, sr, lo, hi, bad, cause, 32 x float, fsr, 11225 * fir, fp) 11226 */ 11227 #define MC_CMD_READ_REGS_OUT_REGS_OFST 16 11228 #define MC_CMD_READ_REGS_OUT_REGS_LEN 4 11229 #define MC_CMD_READ_REGS_OUT_REGS_NUM 73 11230 11231 11232 /***********************************/ 11233 /* MC_CMD_INIT_EVQ 11234 * Set up an event queue according to the supplied parameters. The IN arguments 11235 * end with an address for each 4k of host memory required to back the EVQ. 11236 */ 11237 #define MC_CMD_INIT_EVQ 0x80 11238 #define MC_CMD_INIT_EVQ_MSGSET 0x80 11239 #undef MC_CMD_0x80_PRIVILEGE_CTG 11240 11241 #define MC_CMD_0x80_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11242 11243 /* MC_CMD_INIT_EVQ_IN msgrequest */ 11244 #define MC_CMD_INIT_EVQ_IN_LENMIN 44 11245 #define MC_CMD_INIT_EVQ_IN_LENMAX 548 11246 #define MC_CMD_INIT_EVQ_IN_LENMAX_MCDI2 548 11247 #define MC_CMD_INIT_EVQ_IN_LEN(num) (36+8*(num)) 11248 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_NUM(len) (((len)-36)/8) 11249 /* Size, in entries */ 11250 #define MC_CMD_INIT_EVQ_IN_SIZE_OFST 0 11251 #define MC_CMD_INIT_EVQ_IN_SIZE_LEN 4 11252 /* Desired instance. Must be set to a specific instance, which is a function 11253 * local queue index. The calling client must be the currently-assigned user of 11254 * this VI (see MC_CMD_SET_VI_USER). 11255 */ 11256 #define MC_CMD_INIT_EVQ_IN_INSTANCE_OFST 4 11257 #define MC_CMD_INIT_EVQ_IN_INSTANCE_LEN 4 11258 /* The initial timer value. The load value is ignored if the timer mode is DIS. 11259 */ 11260 #define MC_CMD_INIT_EVQ_IN_TMR_LOAD_OFST 8 11261 #define MC_CMD_INIT_EVQ_IN_TMR_LOAD_LEN 4 11262 /* The reload value is ignored in one-shot modes */ 11263 #define MC_CMD_INIT_EVQ_IN_TMR_RELOAD_OFST 12 11264 #define MC_CMD_INIT_EVQ_IN_TMR_RELOAD_LEN 4 11265 /* tbd */ 11266 #define MC_CMD_INIT_EVQ_IN_FLAGS_OFST 16 11267 #define MC_CMD_INIT_EVQ_IN_FLAGS_LEN 4 11268 #define MC_CMD_INIT_EVQ_IN_FLAG_INTERRUPTING_OFST 16 11269 #define MC_CMD_INIT_EVQ_IN_FLAG_INTERRUPTING_LBN 0 11270 #define MC_CMD_INIT_EVQ_IN_FLAG_INTERRUPTING_WIDTH 1 11271 #define MC_CMD_INIT_EVQ_IN_FLAG_RPTR_DOS_OFST 16 11272 #define MC_CMD_INIT_EVQ_IN_FLAG_RPTR_DOS_LBN 1 11273 #define MC_CMD_INIT_EVQ_IN_FLAG_RPTR_DOS_WIDTH 1 11274 #define MC_CMD_INIT_EVQ_IN_FLAG_INT_ARMD_OFST 16 11275 #define MC_CMD_INIT_EVQ_IN_FLAG_INT_ARMD_LBN 2 11276 #define MC_CMD_INIT_EVQ_IN_FLAG_INT_ARMD_WIDTH 1 11277 #define MC_CMD_INIT_EVQ_IN_FLAG_CUT_THRU_OFST 16 11278 #define MC_CMD_INIT_EVQ_IN_FLAG_CUT_THRU_LBN 3 11279 #define MC_CMD_INIT_EVQ_IN_FLAG_CUT_THRU_WIDTH 1 11280 #define MC_CMD_INIT_EVQ_IN_FLAG_RX_MERGE_OFST 16 11281 #define MC_CMD_INIT_EVQ_IN_FLAG_RX_MERGE_LBN 4 11282 #define MC_CMD_INIT_EVQ_IN_FLAG_RX_MERGE_WIDTH 1 11283 #define MC_CMD_INIT_EVQ_IN_FLAG_TX_MERGE_OFST 16 11284 #define MC_CMD_INIT_EVQ_IN_FLAG_TX_MERGE_LBN 5 11285 #define MC_CMD_INIT_EVQ_IN_FLAG_TX_MERGE_WIDTH 1 11286 #define MC_CMD_INIT_EVQ_IN_FLAG_USE_TIMER_OFST 16 11287 #define MC_CMD_INIT_EVQ_IN_FLAG_USE_TIMER_LBN 6 11288 #define MC_CMD_INIT_EVQ_IN_FLAG_USE_TIMER_WIDTH 1 11289 #define MC_CMD_INIT_EVQ_IN_TMR_MODE_OFST 20 11290 #define MC_CMD_INIT_EVQ_IN_TMR_MODE_LEN 4 11291 /* enum: Disabled */ 11292 #define MC_CMD_INIT_EVQ_IN_TMR_MODE_DIS 0x0 11293 /* enum: Immediate */ 11294 #define MC_CMD_INIT_EVQ_IN_TMR_IMMED_START 0x1 11295 /* enum: Triggered */ 11296 #define MC_CMD_INIT_EVQ_IN_TMR_TRIG_START 0x2 11297 /* enum: Hold-off */ 11298 #define MC_CMD_INIT_EVQ_IN_TMR_INT_HLDOFF 0x3 11299 /* Target EVQ for wakeups if in wakeup mode. */ 11300 #define MC_CMD_INIT_EVQ_IN_TARGET_EVQ_OFST 24 11301 #define MC_CMD_INIT_EVQ_IN_TARGET_EVQ_LEN 4 11302 /* Target interrupt if in interrupting mode (note union with target EVQ). Use 11303 * MC_CMD_RESOURCE_INSTANCE_ANY unless a specific one required for test 11304 * purposes. 11305 */ 11306 #define MC_CMD_INIT_EVQ_IN_IRQ_NUM_OFST 24 11307 #define MC_CMD_INIT_EVQ_IN_IRQ_NUM_LEN 4 11308 /* Event Counter Mode. */ 11309 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_OFST 28 11310 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_LEN 4 11311 /* enum: Disabled */ 11312 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_DIS 0x0 11313 /* enum: Disabled */ 11314 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_RX 0x1 11315 /* enum: Disabled */ 11316 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_TX 0x2 11317 /* enum: Disabled */ 11318 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_RXTX 0x3 11319 /* Event queue packet count threshold. */ 11320 #define MC_CMD_INIT_EVQ_IN_COUNT_THRSHLD_OFST 32 11321 #define MC_CMD_INIT_EVQ_IN_COUNT_THRSHLD_LEN 4 11322 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 11323 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_OFST 36 11324 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LEN 8 11325 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_OFST 36 11326 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_LEN 4 11327 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_LBN 288 11328 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_WIDTH 32 11329 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_OFST 40 11330 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_LEN 4 11331 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_LBN 320 11332 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_WIDTH 32 11333 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_MINNUM 1 11334 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_MAXNUM 64 11335 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_MAXNUM_MCDI2 64 11336 11337 /* MC_CMD_INIT_EVQ_OUT msgresponse */ 11338 #define MC_CMD_INIT_EVQ_OUT_LEN 4 11339 /* Only valid if INTRFLAG was true */ 11340 #define MC_CMD_INIT_EVQ_OUT_IRQ_OFST 0 11341 #define MC_CMD_INIT_EVQ_OUT_IRQ_LEN 4 11342 11343 /* MC_CMD_INIT_EVQ_V2_IN msgrequest */ 11344 #define MC_CMD_INIT_EVQ_V2_IN_LENMIN 44 11345 #define MC_CMD_INIT_EVQ_V2_IN_LENMAX 548 11346 #define MC_CMD_INIT_EVQ_V2_IN_LENMAX_MCDI2 548 11347 #define MC_CMD_INIT_EVQ_V2_IN_LEN(num) (36+8*(num)) 11348 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_NUM(len) (((len)-36)/8) 11349 /* Size, in entries */ 11350 #define MC_CMD_INIT_EVQ_V2_IN_SIZE_OFST 0 11351 #define MC_CMD_INIT_EVQ_V2_IN_SIZE_LEN 4 11352 /* Desired instance. Must be set to a specific instance, which is a function 11353 * local queue index. The calling client must be the currently-assigned user of 11354 * this VI (see MC_CMD_SET_VI_USER). 11355 */ 11356 #define MC_CMD_INIT_EVQ_V2_IN_INSTANCE_OFST 4 11357 #define MC_CMD_INIT_EVQ_V2_IN_INSTANCE_LEN 4 11358 /* The initial timer value. The load value is ignored if the timer mode is DIS. 11359 */ 11360 #define MC_CMD_INIT_EVQ_V2_IN_TMR_LOAD_OFST 8 11361 #define MC_CMD_INIT_EVQ_V2_IN_TMR_LOAD_LEN 4 11362 /* The reload value is ignored in one-shot modes */ 11363 #define MC_CMD_INIT_EVQ_V2_IN_TMR_RELOAD_OFST 12 11364 #define MC_CMD_INIT_EVQ_V2_IN_TMR_RELOAD_LEN 4 11365 /* tbd */ 11366 #define MC_CMD_INIT_EVQ_V2_IN_FLAGS_OFST 16 11367 #define MC_CMD_INIT_EVQ_V2_IN_FLAGS_LEN 4 11368 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INTERRUPTING_OFST 16 11369 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INTERRUPTING_LBN 0 11370 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INTERRUPTING_WIDTH 1 11371 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RPTR_DOS_OFST 16 11372 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RPTR_DOS_LBN 1 11373 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RPTR_DOS_WIDTH 1 11374 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INT_ARMD_OFST 16 11375 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INT_ARMD_LBN 2 11376 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INT_ARMD_WIDTH 1 11377 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_CUT_THRU_OFST 16 11378 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_CUT_THRU_LBN 3 11379 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_CUT_THRU_WIDTH 1 11380 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RX_MERGE_OFST 16 11381 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RX_MERGE_LBN 4 11382 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RX_MERGE_WIDTH 1 11383 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TX_MERGE_OFST 16 11384 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TX_MERGE_LBN 5 11385 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TX_MERGE_WIDTH 1 11386 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_USE_TIMER_OFST 16 11387 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_USE_TIMER_LBN 6 11388 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_USE_TIMER_WIDTH 1 11389 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_OFST 16 11390 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_LBN 7 11391 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_WIDTH 4 11392 /* enum: All initialisation flags specified by host. */ 11393 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_MANUAL 0x0 11394 /* enum: MEDFORD only. Certain initialisation flags specified by host may be 11395 * over-ridden by firmware based on licenses and firmware variant in order to 11396 * provide the lowest latency achievable. See 11397 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 11398 */ 11399 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_LOW_LATENCY 0x1 11400 /* enum: MEDFORD only. Certain initialisation flags specified by host may be 11401 * over-ridden by firmware based on licenses and firmware variant in order to 11402 * provide the best throughput achievable. See 11403 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 11404 */ 11405 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_THROUGHPUT 0x2 11406 /* enum: MEDFORD only. Certain initialisation flags may be over-ridden by 11407 * firmware based on licenses and firmware variant. See 11408 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 11409 */ 11410 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_AUTO 0x3 11411 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_EXT_WIDTH_OFST 16 11412 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_EXT_WIDTH_LBN 11 11413 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_EXT_WIDTH_WIDTH 1 11414 #define MC_CMD_INIT_EVQ_V2_IN_TMR_MODE_OFST 20 11415 #define MC_CMD_INIT_EVQ_V2_IN_TMR_MODE_LEN 4 11416 /* enum: Disabled */ 11417 #define MC_CMD_INIT_EVQ_V2_IN_TMR_MODE_DIS 0x0 11418 /* enum: Immediate */ 11419 #define MC_CMD_INIT_EVQ_V2_IN_TMR_IMMED_START 0x1 11420 /* enum: Triggered */ 11421 #define MC_CMD_INIT_EVQ_V2_IN_TMR_TRIG_START 0x2 11422 /* enum: Hold-off */ 11423 #define MC_CMD_INIT_EVQ_V2_IN_TMR_INT_HLDOFF 0x3 11424 /* Target EVQ for wakeups if in wakeup mode. */ 11425 #define MC_CMD_INIT_EVQ_V2_IN_TARGET_EVQ_OFST 24 11426 #define MC_CMD_INIT_EVQ_V2_IN_TARGET_EVQ_LEN 4 11427 /* Target interrupt if in interrupting mode (note union with target EVQ). Use 11428 * MC_CMD_RESOURCE_INSTANCE_ANY unless a specific one required for test 11429 * purposes. 11430 */ 11431 #define MC_CMD_INIT_EVQ_V2_IN_IRQ_NUM_OFST 24 11432 #define MC_CMD_INIT_EVQ_V2_IN_IRQ_NUM_LEN 4 11433 /* Event Counter Mode. */ 11434 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_OFST 28 11435 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_LEN 4 11436 /* enum: Disabled */ 11437 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_DIS 0x0 11438 /* enum: Disabled */ 11439 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_RX 0x1 11440 /* enum: Disabled */ 11441 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_TX 0x2 11442 /* enum: Disabled */ 11443 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_RXTX 0x3 11444 /* Event queue packet count threshold. */ 11445 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_THRSHLD_OFST 32 11446 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_THRSHLD_LEN 4 11447 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 11448 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_OFST 36 11449 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LEN 8 11450 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_OFST 36 11451 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_LEN 4 11452 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_LBN 288 11453 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_WIDTH 32 11454 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_OFST 40 11455 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_LEN 4 11456 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_LBN 320 11457 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_WIDTH 32 11458 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_MINNUM 1 11459 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_MAXNUM 64 11460 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_MAXNUM_MCDI2 64 11461 11462 /* MC_CMD_INIT_EVQ_V2_OUT msgresponse */ 11463 #define MC_CMD_INIT_EVQ_V2_OUT_LEN 8 11464 /* Only valid if INTRFLAG was true */ 11465 #define MC_CMD_INIT_EVQ_V2_OUT_IRQ_OFST 0 11466 #define MC_CMD_INIT_EVQ_V2_OUT_IRQ_LEN 4 11467 /* Actual configuration applied on the card */ 11468 #define MC_CMD_INIT_EVQ_V2_OUT_FLAGS_OFST 4 11469 #define MC_CMD_INIT_EVQ_V2_OUT_FLAGS_LEN 4 11470 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_CUT_THRU_OFST 4 11471 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_CUT_THRU_LBN 0 11472 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_CUT_THRU_WIDTH 1 11473 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RX_MERGE_OFST 4 11474 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RX_MERGE_LBN 1 11475 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RX_MERGE_WIDTH 1 11476 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_TX_MERGE_OFST 4 11477 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_TX_MERGE_LBN 2 11478 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_TX_MERGE_WIDTH 1 11479 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_OFST 4 11480 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_LBN 3 11481 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_WIDTH 1 11482 11483 /* MC_CMD_INIT_EVQ_V3_IN msgrequest: Extended request to specify per-queue 11484 * event merge timeouts. 11485 */ 11486 #define MC_CMD_INIT_EVQ_V3_IN_LEN 556 11487 /* Size, in entries */ 11488 #define MC_CMD_INIT_EVQ_V3_IN_SIZE_OFST 0 11489 #define MC_CMD_INIT_EVQ_V3_IN_SIZE_LEN 4 11490 /* Desired instance. Must be set to a specific instance, which is a function 11491 * local queue index. The calling client must be the currently-assigned user of 11492 * this VI (see MC_CMD_SET_VI_USER). 11493 */ 11494 #define MC_CMD_INIT_EVQ_V3_IN_INSTANCE_OFST 4 11495 #define MC_CMD_INIT_EVQ_V3_IN_INSTANCE_LEN 4 11496 /* The initial timer value. The load value is ignored if the timer mode is DIS. 11497 */ 11498 #define MC_CMD_INIT_EVQ_V3_IN_TMR_LOAD_OFST 8 11499 #define MC_CMD_INIT_EVQ_V3_IN_TMR_LOAD_LEN 4 11500 /* The reload value is ignored in one-shot modes */ 11501 #define MC_CMD_INIT_EVQ_V3_IN_TMR_RELOAD_OFST 12 11502 #define MC_CMD_INIT_EVQ_V3_IN_TMR_RELOAD_LEN 4 11503 /* tbd */ 11504 #define MC_CMD_INIT_EVQ_V3_IN_FLAGS_OFST 16 11505 #define MC_CMD_INIT_EVQ_V3_IN_FLAGS_LEN 4 11506 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INTERRUPTING_OFST 16 11507 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INTERRUPTING_LBN 0 11508 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INTERRUPTING_WIDTH 1 11509 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RPTR_DOS_OFST 16 11510 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RPTR_DOS_LBN 1 11511 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RPTR_DOS_WIDTH 1 11512 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INT_ARMD_OFST 16 11513 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INT_ARMD_LBN 2 11514 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INT_ARMD_WIDTH 1 11515 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_CUT_THRU_OFST 16 11516 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_CUT_THRU_LBN 3 11517 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_CUT_THRU_WIDTH 1 11518 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RX_MERGE_OFST 16 11519 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RX_MERGE_LBN 4 11520 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RX_MERGE_WIDTH 1 11521 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TX_MERGE_OFST 16 11522 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TX_MERGE_LBN 5 11523 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TX_MERGE_WIDTH 1 11524 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_USE_TIMER_OFST 16 11525 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_USE_TIMER_LBN 6 11526 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_USE_TIMER_WIDTH 1 11527 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_OFST 16 11528 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_LBN 7 11529 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_WIDTH 4 11530 /* enum: All initialisation flags specified by host. */ 11531 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_MANUAL 0x0 11532 /* enum: MEDFORD only. Certain initialisation flags specified by host may be 11533 * over-ridden by firmware based on licenses and firmware variant in order to 11534 * provide the lowest latency achievable. See 11535 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 11536 */ 11537 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_LOW_LATENCY 0x1 11538 /* enum: MEDFORD only. Certain initialisation flags specified by host may be 11539 * over-ridden by firmware based on licenses and firmware variant in order to 11540 * provide the best throughput achievable. See 11541 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 11542 */ 11543 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_THROUGHPUT 0x2 11544 /* enum: MEDFORD only. Certain initialisation flags may be over-ridden by 11545 * firmware based on licenses and firmware variant. See 11546 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 11547 */ 11548 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_AUTO 0x3 11549 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_EXT_WIDTH_OFST 16 11550 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_EXT_WIDTH_LBN 11 11551 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_EXT_WIDTH_WIDTH 1 11552 #define MC_CMD_INIT_EVQ_V3_IN_TMR_MODE_OFST 20 11553 #define MC_CMD_INIT_EVQ_V3_IN_TMR_MODE_LEN 4 11554 /* enum: Disabled */ 11555 #define MC_CMD_INIT_EVQ_V3_IN_TMR_MODE_DIS 0x0 11556 /* enum: Immediate */ 11557 #define MC_CMD_INIT_EVQ_V3_IN_TMR_IMMED_START 0x1 11558 /* enum: Triggered */ 11559 #define MC_CMD_INIT_EVQ_V3_IN_TMR_TRIG_START 0x2 11560 /* enum: Hold-off */ 11561 #define MC_CMD_INIT_EVQ_V3_IN_TMR_INT_HLDOFF 0x3 11562 /* Target EVQ for wakeups if in wakeup mode. */ 11563 #define MC_CMD_INIT_EVQ_V3_IN_TARGET_EVQ_OFST 24 11564 #define MC_CMD_INIT_EVQ_V3_IN_TARGET_EVQ_LEN 4 11565 /* Target interrupt if in interrupting mode (note union with target EVQ). Use 11566 * MC_CMD_RESOURCE_INSTANCE_ANY unless a specific one required for test 11567 * purposes. 11568 */ 11569 #define MC_CMD_INIT_EVQ_V3_IN_IRQ_NUM_OFST 24 11570 #define MC_CMD_INIT_EVQ_V3_IN_IRQ_NUM_LEN 4 11571 /* Event Counter Mode. */ 11572 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_OFST 28 11573 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_LEN 4 11574 /* enum: Disabled */ 11575 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_DIS 0x0 11576 /* enum: Disabled */ 11577 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_RX 0x1 11578 /* enum: Disabled */ 11579 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_TX 0x2 11580 /* enum: Disabled */ 11581 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_RXTX 0x3 11582 /* Event queue packet count threshold. */ 11583 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_THRSHLD_OFST 32 11584 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_THRSHLD_LEN 4 11585 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 11586 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_OFST 36 11587 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LEN 8 11588 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_OFST 36 11589 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_LEN 4 11590 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_LBN 288 11591 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_WIDTH 32 11592 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_OFST 40 11593 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_LEN 4 11594 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_LBN 320 11595 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_WIDTH 32 11596 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_MINNUM 1 11597 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_MAXNUM 64 11598 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_MAXNUM_MCDI2 64 11599 /* Receive event merge timeout to configure, in nanoseconds. The valid range 11600 * and granularity are device specific. Specify 0 to use the firmware's default 11601 * value. This field is ignored and per-queue merging is disabled if 11602 * MC_CMD_INIT_EVQ/MC_CMD_INIT_EVQ_IN/FLAG_RX_MERGE is not set. 11603 */ 11604 #define MC_CMD_INIT_EVQ_V3_IN_RX_MERGE_TIMEOUT_NS_OFST 548 11605 #define MC_CMD_INIT_EVQ_V3_IN_RX_MERGE_TIMEOUT_NS_LEN 4 11606 /* Transmit event merge timeout to configure, in nanoseconds. The valid range 11607 * and granularity are device specific. Specify 0 to use the firmware's default 11608 * value. This field is ignored and per-queue merging is disabled if 11609 * MC_CMD_INIT_EVQ/MC_CMD_INIT_EVQ_IN/FLAG_TX_MERGE is not set. 11610 */ 11611 #define MC_CMD_INIT_EVQ_V3_IN_TX_MERGE_TIMEOUT_NS_OFST 552 11612 #define MC_CMD_INIT_EVQ_V3_IN_TX_MERGE_TIMEOUT_NS_LEN 4 11613 11614 /* MC_CMD_INIT_EVQ_V3_OUT msgresponse */ 11615 #define MC_CMD_INIT_EVQ_V3_OUT_LEN 8 11616 /* Only valid if INTRFLAG was true */ 11617 #define MC_CMD_INIT_EVQ_V3_OUT_IRQ_OFST 0 11618 #define MC_CMD_INIT_EVQ_V3_OUT_IRQ_LEN 4 11619 /* Actual configuration applied on the card */ 11620 #define MC_CMD_INIT_EVQ_V3_OUT_FLAGS_OFST 4 11621 #define MC_CMD_INIT_EVQ_V3_OUT_FLAGS_LEN 4 11622 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_CUT_THRU_OFST 4 11623 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_CUT_THRU_LBN 0 11624 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_CUT_THRU_WIDTH 1 11625 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RX_MERGE_OFST 4 11626 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RX_MERGE_LBN 1 11627 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RX_MERGE_WIDTH 1 11628 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_TX_MERGE_OFST 4 11629 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_TX_MERGE_LBN 2 11630 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_TX_MERGE_WIDTH 1 11631 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RXQ_FORCE_EV_MERGING_OFST 4 11632 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RXQ_FORCE_EV_MERGING_LBN 3 11633 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RXQ_FORCE_EV_MERGING_WIDTH 1 11634 11635 /* QUEUE_CRC_MODE structuredef */ 11636 #define QUEUE_CRC_MODE_LEN 1 11637 #define QUEUE_CRC_MODE_MODE_LBN 0 11638 #define QUEUE_CRC_MODE_MODE_WIDTH 4 11639 /* enum: No CRC. */ 11640 #define QUEUE_CRC_MODE_NONE 0x0 11641 /* enum: CRC Fiber channel over ethernet. */ 11642 #define QUEUE_CRC_MODE_FCOE 0x1 11643 /* enum: CRC (digest) iSCSI header only. */ 11644 #define QUEUE_CRC_MODE_ISCSI_HDR 0x2 11645 /* enum: CRC (digest) iSCSI header and payload. */ 11646 #define QUEUE_CRC_MODE_ISCSI 0x3 11647 /* enum: CRC Fiber channel over IP over ethernet. */ 11648 #define QUEUE_CRC_MODE_FCOIPOE 0x4 11649 /* enum: CRC MPA. */ 11650 #define QUEUE_CRC_MODE_MPA 0x5 11651 #define QUEUE_CRC_MODE_SPARE_LBN 4 11652 #define QUEUE_CRC_MODE_SPARE_WIDTH 4 11653 11654 11655 /***********************************/ 11656 /* MC_CMD_INIT_RXQ 11657 * set up a receive queue according to the supplied parameters. The IN 11658 * arguments end with an address for each 4k of host memory required to back 11659 * the RXQ. 11660 */ 11661 #define MC_CMD_INIT_RXQ 0x81 11662 #define MC_CMD_INIT_RXQ_MSGSET 0x81 11663 #undef MC_CMD_0x81_PRIVILEGE_CTG 11664 11665 #define MC_CMD_0x81_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11666 11667 /* MC_CMD_INIT_RXQ_IN msgrequest: Legacy RXQ_INIT request. Use extended version 11668 * in new code. 11669 */ 11670 #define MC_CMD_INIT_RXQ_IN_LENMIN 36 11671 #define MC_CMD_INIT_RXQ_IN_LENMAX 252 11672 #define MC_CMD_INIT_RXQ_IN_LENMAX_MCDI2 1020 11673 #define MC_CMD_INIT_RXQ_IN_LEN(num) (28+8*(num)) 11674 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_NUM(len) (((len)-28)/8) 11675 /* Size, in entries */ 11676 #define MC_CMD_INIT_RXQ_IN_SIZE_OFST 0 11677 #define MC_CMD_INIT_RXQ_IN_SIZE_LEN 4 11678 /* The EVQ to send events to. This is an index originally specified to INIT_EVQ 11679 */ 11680 #define MC_CMD_INIT_RXQ_IN_TARGET_EVQ_OFST 4 11681 #define MC_CMD_INIT_RXQ_IN_TARGET_EVQ_LEN 4 11682 /* The value to put in the event data. Check hardware spec. for valid range. */ 11683 #define MC_CMD_INIT_RXQ_IN_LABEL_OFST 8 11684 #define MC_CMD_INIT_RXQ_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_IN_INSTANCE_OFST 12 11690 #define MC_CMD_INIT_RXQ_IN_INSTANCE_LEN 4 11691 /* There will be more flags here. */ 11692 #define MC_CMD_INIT_RXQ_IN_FLAGS_OFST 16 11693 #define MC_CMD_INIT_RXQ_IN_FLAGS_LEN 4 11694 #define MC_CMD_INIT_RXQ_IN_FLAG_BUFF_MODE_OFST 16 11695 #define MC_CMD_INIT_RXQ_IN_FLAG_BUFF_MODE_LBN 0 11696 #define MC_CMD_INIT_RXQ_IN_FLAG_BUFF_MODE_WIDTH 1 11697 #define MC_CMD_INIT_RXQ_IN_FLAG_HDR_SPLIT_OFST 16 11698 #define MC_CMD_INIT_RXQ_IN_FLAG_HDR_SPLIT_LBN 1 11699 #define MC_CMD_INIT_RXQ_IN_FLAG_HDR_SPLIT_WIDTH 1 11700 #define MC_CMD_INIT_RXQ_IN_FLAG_TIMESTAMP_OFST 16 11701 #define MC_CMD_INIT_RXQ_IN_FLAG_TIMESTAMP_LBN 2 11702 #define MC_CMD_INIT_RXQ_IN_FLAG_TIMESTAMP_WIDTH 1 11703 #define MC_CMD_INIT_RXQ_IN_CRC_MODE_OFST 16 11704 #define MC_CMD_INIT_RXQ_IN_CRC_MODE_LBN 3 11705 #define MC_CMD_INIT_RXQ_IN_CRC_MODE_WIDTH 4 11706 #define MC_CMD_INIT_RXQ_IN_FLAG_CHAIN_OFST 16 11707 #define MC_CMD_INIT_RXQ_IN_FLAG_CHAIN_LBN 7 11708 #define MC_CMD_INIT_RXQ_IN_FLAG_CHAIN_WIDTH 1 11709 #define MC_CMD_INIT_RXQ_IN_FLAG_PREFIX_OFST 16 11710 #define MC_CMD_INIT_RXQ_IN_FLAG_PREFIX_LBN 8 11711 #define MC_CMD_INIT_RXQ_IN_FLAG_PREFIX_WIDTH 1 11712 #define MC_CMD_INIT_RXQ_IN_FLAG_DISABLE_SCATTER_OFST 16 11713 #define MC_CMD_INIT_RXQ_IN_FLAG_DISABLE_SCATTER_LBN 9 11714 #define MC_CMD_INIT_RXQ_IN_FLAG_DISABLE_SCATTER_WIDTH 1 11715 #define MC_CMD_INIT_RXQ_IN_UNUSED_OFST 16 11716 #define MC_CMD_INIT_RXQ_IN_UNUSED_LBN 10 11717 #define MC_CMD_INIT_RXQ_IN_UNUSED_WIDTH 1 11718 /* Owner ID to use if in buffer mode (zero if physical) */ 11719 #define MC_CMD_INIT_RXQ_IN_OWNER_ID_OFST 20 11720 #define MC_CMD_INIT_RXQ_IN_OWNER_ID_LEN 4 11721 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 11722 #define MC_CMD_INIT_RXQ_IN_PORT_ID_OFST 24 11723 #define MC_CMD_INIT_RXQ_IN_PORT_ID_LEN 4 11724 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 11725 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_OFST 28 11726 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LEN 8 11727 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_OFST 28 11728 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_LEN 4 11729 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_LBN 224 11730 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_WIDTH 32 11731 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_OFST 32 11732 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_LEN 4 11733 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_LBN 256 11734 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_WIDTH 32 11735 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_MINNUM 1 11736 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_MAXNUM 28 11737 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_MAXNUM_MCDI2 124 11738 11739 /* MC_CMD_INIT_RXQ_EXT_IN msgrequest: Extended RXQ_INIT with additional mode 11740 * flags 11741 */ 11742 #define MC_CMD_INIT_RXQ_EXT_IN_LEN 544 11743 /* Size, in entries */ 11744 #define MC_CMD_INIT_RXQ_EXT_IN_SIZE_OFST 0 11745 #define MC_CMD_INIT_RXQ_EXT_IN_SIZE_LEN 4 11746 /* The EVQ to send events to. This is an index originally specified to 11747 * INIT_EVQ. If DMA_MODE == PACKED_STREAM this must be equal to INSTANCE. 11748 */ 11749 #define MC_CMD_INIT_RXQ_EXT_IN_TARGET_EVQ_OFST 4 11750 #define MC_CMD_INIT_RXQ_EXT_IN_TARGET_EVQ_LEN 4 11751 /* The value to put in the event data. Check hardware spec. for valid range. 11752 * This field is ignored if DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER or DMA_MODE 11753 * == PACKED_STREAM. 11754 */ 11755 #define MC_CMD_INIT_RXQ_EXT_IN_LABEL_OFST 8 11756 #define MC_CMD_INIT_RXQ_EXT_IN_LABEL_LEN 4 11757 /* Desired instance. Must be set to a specific instance, which is a function 11758 * local queue index. The calling client must be the currently-assigned user of 11759 * this VI (see MC_CMD_SET_VI_USER). 11760 */ 11761 #define MC_CMD_INIT_RXQ_EXT_IN_INSTANCE_OFST 12 11762 #define MC_CMD_INIT_RXQ_EXT_IN_INSTANCE_LEN 4 11763 /* There will be more flags here. */ 11764 #define MC_CMD_INIT_RXQ_EXT_IN_FLAGS_OFST 16 11765 #define MC_CMD_INIT_RXQ_EXT_IN_FLAGS_LEN 4 11766 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_BUFF_MODE_OFST 16 11767 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_BUFF_MODE_LBN 0 11768 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_BUFF_MODE_WIDTH 1 11769 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_HDR_SPLIT_OFST 16 11770 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_HDR_SPLIT_LBN 1 11771 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_HDR_SPLIT_WIDTH 1 11772 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_TIMESTAMP_OFST 16 11773 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_TIMESTAMP_LBN 2 11774 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_TIMESTAMP_WIDTH 1 11775 #define MC_CMD_INIT_RXQ_EXT_IN_CRC_MODE_OFST 16 11776 #define MC_CMD_INIT_RXQ_EXT_IN_CRC_MODE_LBN 3 11777 #define MC_CMD_INIT_RXQ_EXT_IN_CRC_MODE_WIDTH 4 11778 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_CHAIN_OFST 16 11779 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_CHAIN_LBN 7 11780 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_CHAIN_WIDTH 1 11781 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_PREFIX_OFST 16 11782 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_PREFIX_LBN 8 11783 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_PREFIX_WIDTH 1 11784 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_DISABLE_SCATTER_OFST 16 11785 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_DISABLE_SCATTER_LBN 9 11786 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_DISABLE_SCATTER_WIDTH 1 11787 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_MODE_OFST 16 11788 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_MODE_LBN 10 11789 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_MODE_WIDTH 4 11790 /* enum: One packet per descriptor (for normal networking) */ 11791 #define MC_CMD_INIT_RXQ_EXT_IN_SINGLE_PACKET 0x0 11792 /* enum: Pack multiple packets into large descriptors (for SolarCapture) */ 11793 #define MC_CMD_INIT_RXQ_EXT_IN_PACKED_STREAM 0x1 11794 /* enum: Pack multiple packets into large descriptors using the format designed 11795 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with 11796 * multiple fixed-size packet buffers within each bucket. For a full 11797 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath 11798 * firmware. 11799 */ 11800 #define MC_CMD_INIT_RXQ_EXT_IN_EQUAL_STRIDE_SUPER_BUFFER 0x2 11801 /* enum: Deprecated name for EQUAL_STRIDE_SUPER_BUFFER. */ 11802 #define MC_CMD_INIT_RXQ_EXT_IN_EQUAL_STRIDE_PACKED_STREAM 0x2 11803 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SNAPSHOT_MODE_OFST 16 11804 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SNAPSHOT_MODE_LBN 14 11805 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SNAPSHOT_MODE_WIDTH 1 11806 #define MC_CMD_INIT_RXQ_EXT_IN_PACKED_STREAM_BUFF_SIZE_OFST 16 11807 #define MC_CMD_INIT_RXQ_EXT_IN_PACKED_STREAM_BUFF_SIZE_LBN 15 11808 #define MC_CMD_INIT_RXQ_EXT_IN_PACKED_STREAM_BUFF_SIZE_WIDTH 3 11809 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_1M 0x0 /* enum */ 11810 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_512K 0x1 /* enum */ 11811 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_256K 0x2 /* enum */ 11812 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_128K 0x3 /* enum */ 11813 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_64K 0x4 /* enum */ 11814 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_WANT_OUTER_CLASSES_OFST 16 11815 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_WANT_OUTER_CLASSES_LBN 18 11816 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1 11817 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_FORCE_EV_MERGING_OFST 16 11818 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_FORCE_EV_MERGING_LBN 19 11819 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_FORCE_EV_MERGING_WIDTH 1 11820 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_NO_CONT_EV_OFST 16 11821 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_NO_CONT_EV_LBN 20 11822 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_NO_CONT_EV_WIDTH 1 11823 /* Owner ID to use if in buffer mode (zero if physical) */ 11824 #define MC_CMD_INIT_RXQ_EXT_IN_OWNER_ID_OFST 20 11825 #define MC_CMD_INIT_RXQ_EXT_IN_OWNER_ID_LEN 4 11826 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 11827 #define MC_CMD_INIT_RXQ_EXT_IN_PORT_ID_OFST 24 11828 #define MC_CMD_INIT_RXQ_EXT_IN_PORT_ID_LEN 4 11829 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 11830 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_OFST 28 11831 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LEN 8 11832 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_OFST 28 11833 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_LEN 4 11834 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_LBN 224 11835 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_WIDTH 32 11836 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_OFST 32 11837 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_LEN 4 11838 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_LBN 256 11839 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_WIDTH 32 11840 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_MINNUM 0 11841 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_MAXNUM 64 11842 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_MAXNUM_MCDI2 64 11843 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 11844 #define MC_CMD_INIT_RXQ_EXT_IN_SNAPSHOT_LENGTH_OFST 540 11845 #define MC_CMD_INIT_RXQ_EXT_IN_SNAPSHOT_LENGTH_LEN 4 11846 11847 /* MC_CMD_INIT_RXQ_V3_IN msgrequest */ 11848 #define MC_CMD_INIT_RXQ_V3_IN_LEN 560 11849 /* Size, in entries */ 11850 #define MC_CMD_INIT_RXQ_V3_IN_SIZE_OFST 0 11851 #define MC_CMD_INIT_RXQ_V3_IN_SIZE_LEN 4 11852 /* The EVQ to send events to. This is an index originally specified to 11853 * INIT_EVQ. If DMA_MODE == PACKED_STREAM this must be equal to INSTANCE. 11854 */ 11855 #define MC_CMD_INIT_RXQ_V3_IN_TARGET_EVQ_OFST 4 11856 #define MC_CMD_INIT_RXQ_V3_IN_TARGET_EVQ_LEN 4 11857 /* The value to put in the event data. Check hardware spec. for valid range. 11858 * This field is ignored if DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER or DMA_MODE 11859 * == PACKED_STREAM. 11860 */ 11861 #define MC_CMD_INIT_RXQ_V3_IN_LABEL_OFST 8 11862 #define MC_CMD_INIT_RXQ_V3_IN_LABEL_LEN 4 11863 /* Desired instance. Must be set to a specific instance, which is a function 11864 * local queue index. The calling client must be the currently-assigned user of 11865 * this VI (see MC_CMD_SET_VI_USER). 11866 */ 11867 #define MC_CMD_INIT_RXQ_V3_IN_INSTANCE_OFST 12 11868 #define MC_CMD_INIT_RXQ_V3_IN_INSTANCE_LEN 4 11869 /* There will be more flags here. */ 11870 #define MC_CMD_INIT_RXQ_V3_IN_FLAGS_OFST 16 11871 #define MC_CMD_INIT_RXQ_V3_IN_FLAGS_LEN 4 11872 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_BUFF_MODE_OFST 16 11873 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_BUFF_MODE_LBN 0 11874 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_BUFF_MODE_WIDTH 1 11875 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_HDR_SPLIT_OFST 16 11876 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_HDR_SPLIT_LBN 1 11877 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_HDR_SPLIT_WIDTH 1 11878 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_TIMESTAMP_OFST 16 11879 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_TIMESTAMP_LBN 2 11880 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_TIMESTAMP_WIDTH 1 11881 #define MC_CMD_INIT_RXQ_V3_IN_CRC_MODE_OFST 16 11882 #define MC_CMD_INIT_RXQ_V3_IN_CRC_MODE_LBN 3 11883 #define MC_CMD_INIT_RXQ_V3_IN_CRC_MODE_WIDTH 4 11884 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_CHAIN_OFST 16 11885 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_CHAIN_LBN 7 11886 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_CHAIN_WIDTH 1 11887 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_PREFIX_OFST 16 11888 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_PREFIX_LBN 8 11889 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_PREFIX_WIDTH 1 11890 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_DISABLE_SCATTER_OFST 16 11891 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_DISABLE_SCATTER_LBN 9 11892 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_DISABLE_SCATTER_WIDTH 1 11893 #define MC_CMD_INIT_RXQ_V3_IN_DMA_MODE_OFST 16 11894 #define MC_CMD_INIT_RXQ_V3_IN_DMA_MODE_LBN 10 11895 #define MC_CMD_INIT_RXQ_V3_IN_DMA_MODE_WIDTH 4 11896 /* enum: One packet per descriptor (for normal networking) */ 11897 #define MC_CMD_INIT_RXQ_V3_IN_SINGLE_PACKET 0x0 11898 /* enum: Pack multiple packets into large descriptors (for SolarCapture) */ 11899 #define MC_CMD_INIT_RXQ_V3_IN_PACKED_STREAM 0x1 11900 /* enum: Pack multiple packets into large descriptors using the format designed 11901 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with 11902 * multiple fixed-size packet buffers within each bucket. For a full 11903 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath 11904 * firmware. 11905 */ 11906 #define MC_CMD_INIT_RXQ_V3_IN_EQUAL_STRIDE_SUPER_BUFFER 0x2 11907 /* enum: Deprecated name for EQUAL_STRIDE_SUPER_BUFFER. */ 11908 #define MC_CMD_INIT_RXQ_V3_IN_EQUAL_STRIDE_PACKED_STREAM 0x2 11909 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SNAPSHOT_MODE_OFST 16 11910 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SNAPSHOT_MODE_LBN 14 11911 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SNAPSHOT_MODE_WIDTH 1 11912 #define MC_CMD_INIT_RXQ_V3_IN_PACKED_STREAM_BUFF_SIZE_OFST 16 11913 #define MC_CMD_INIT_RXQ_V3_IN_PACKED_STREAM_BUFF_SIZE_LBN 15 11914 #define MC_CMD_INIT_RXQ_V3_IN_PACKED_STREAM_BUFF_SIZE_WIDTH 3 11915 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_1M 0x0 /* enum */ 11916 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_512K 0x1 /* enum */ 11917 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_256K 0x2 /* enum */ 11918 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_128K 0x3 /* enum */ 11919 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_64K 0x4 /* enum */ 11920 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_WANT_OUTER_CLASSES_OFST 16 11921 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_WANT_OUTER_CLASSES_LBN 18 11922 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1 11923 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_FORCE_EV_MERGING_OFST 16 11924 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_FORCE_EV_MERGING_LBN 19 11925 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_FORCE_EV_MERGING_WIDTH 1 11926 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_NO_CONT_EV_OFST 16 11927 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_NO_CONT_EV_LBN 20 11928 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_NO_CONT_EV_WIDTH 1 11929 /* Owner ID to use if in buffer mode (zero if physical) */ 11930 #define MC_CMD_INIT_RXQ_V3_IN_OWNER_ID_OFST 20 11931 #define MC_CMD_INIT_RXQ_V3_IN_OWNER_ID_LEN 4 11932 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 11933 #define MC_CMD_INIT_RXQ_V3_IN_PORT_ID_OFST 24 11934 #define MC_CMD_INIT_RXQ_V3_IN_PORT_ID_LEN 4 11935 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 11936 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_OFST 28 11937 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LEN 8 11938 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_OFST 28 11939 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_LEN 4 11940 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_LBN 224 11941 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_WIDTH 32 11942 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_OFST 32 11943 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_LEN 4 11944 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_LBN 256 11945 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_WIDTH 32 11946 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_MINNUM 0 11947 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_MAXNUM 64 11948 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_MAXNUM_MCDI2 64 11949 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 11950 #define MC_CMD_INIT_RXQ_V3_IN_SNAPSHOT_LENGTH_OFST 540 11951 #define MC_CMD_INIT_RXQ_V3_IN_SNAPSHOT_LENGTH_LEN 4 11952 /* The number of packet buffers that will be contained within each 11953 * EQUAL_STRIDE_SUPER_BUFFER format bucket supplied by the driver. This field 11954 * is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 11955 */ 11956 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_BUFFERS_PER_BUCKET_OFST 544 11957 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_BUFFERS_PER_BUCKET_LEN 4 11958 /* The length in bytes of the area in each packet buffer that can be written to 11959 * by the adapter. This is used to store the packet prefix and the packet 11960 * payload. This length does not include any end padding added by the driver. 11961 * This field is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 11962 */ 11963 #define MC_CMD_INIT_RXQ_V3_IN_ES_MAX_DMA_LEN_OFST 548 11964 #define MC_CMD_INIT_RXQ_V3_IN_ES_MAX_DMA_LEN_LEN 4 11965 /* The length in bytes of a single packet buffer within a 11966 * EQUAL_STRIDE_SUPER_BUFFER format bucket. This field is ignored unless 11967 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 11968 */ 11969 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_STRIDE_OFST 552 11970 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_STRIDE_LEN 4 11971 /* The maximum time in nanoseconds that the datapath will be backpressured if 11972 * there are no RX descriptors available. If the timeout is reached and there 11973 * are still no descriptors then the packet will be dropped. A timeout of 0 11974 * means the datapath will never be blocked. This field is ignored unless 11975 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 11976 */ 11977 #define MC_CMD_INIT_RXQ_V3_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_OFST 556 11978 #define MC_CMD_INIT_RXQ_V3_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_LEN 4 11979 11980 /* MC_CMD_INIT_RXQ_V4_IN msgrequest: INIT_RXQ request with new field required 11981 * for systems with a QDMA (currently, Riverhead) 11982 */ 11983 #define MC_CMD_INIT_RXQ_V4_IN_LEN 564 11984 /* Size, in entries */ 11985 #define MC_CMD_INIT_RXQ_V4_IN_SIZE_OFST 0 11986 #define MC_CMD_INIT_RXQ_V4_IN_SIZE_LEN 4 11987 /* The EVQ to send events to. This is an index originally specified to 11988 * INIT_EVQ. If DMA_MODE == PACKED_STREAM this must be equal to INSTANCE. 11989 */ 11990 #define MC_CMD_INIT_RXQ_V4_IN_TARGET_EVQ_OFST 4 11991 #define MC_CMD_INIT_RXQ_V4_IN_TARGET_EVQ_LEN 4 11992 /* The value to put in the event data. Check hardware spec. for valid range. 11993 * This field is ignored if DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER or DMA_MODE 11994 * == PACKED_STREAM. 11995 */ 11996 #define MC_CMD_INIT_RXQ_V4_IN_LABEL_OFST 8 11997 #define MC_CMD_INIT_RXQ_V4_IN_LABEL_LEN 4 11998 /* Desired instance. Must be set to a specific instance, which is a function 11999 * local queue index. The calling client must be the currently-assigned user of 12000 * this VI (see MC_CMD_SET_VI_USER). 12001 */ 12002 #define MC_CMD_INIT_RXQ_V4_IN_INSTANCE_OFST 12 12003 #define MC_CMD_INIT_RXQ_V4_IN_INSTANCE_LEN 4 12004 /* There will be more flags here. */ 12005 #define MC_CMD_INIT_RXQ_V4_IN_FLAGS_OFST 16 12006 #define MC_CMD_INIT_RXQ_V4_IN_FLAGS_LEN 4 12007 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_BUFF_MODE_OFST 16 12008 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_BUFF_MODE_LBN 0 12009 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_BUFF_MODE_WIDTH 1 12010 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_HDR_SPLIT_OFST 16 12011 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_HDR_SPLIT_LBN 1 12012 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_HDR_SPLIT_WIDTH 1 12013 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_TIMESTAMP_OFST 16 12014 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_TIMESTAMP_LBN 2 12015 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_TIMESTAMP_WIDTH 1 12016 #define MC_CMD_INIT_RXQ_V4_IN_CRC_MODE_OFST 16 12017 #define MC_CMD_INIT_RXQ_V4_IN_CRC_MODE_LBN 3 12018 #define MC_CMD_INIT_RXQ_V4_IN_CRC_MODE_WIDTH 4 12019 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_CHAIN_OFST 16 12020 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_CHAIN_LBN 7 12021 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_CHAIN_WIDTH 1 12022 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_PREFIX_OFST 16 12023 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_PREFIX_LBN 8 12024 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_PREFIX_WIDTH 1 12025 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_DISABLE_SCATTER_OFST 16 12026 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_DISABLE_SCATTER_LBN 9 12027 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_DISABLE_SCATTER_WIDTH 1 12028 #define MC_CMD_INIT_RXQ_V4_IN_DMA_MODE_OFST 16 12029 #define MC_CMD_INIT_RXQ_V4_IN_DMA_MODE_LBN 10 12030 #define MC_CMD_INIT_RXQ_V4_IN_DMA_MODE_WIDTH 4 12031 /* enum: One packet per descriptor (for normal networking) */ 12032 #define MC_CMD_INIT_RXQ_V4_IN_SINGLE_PACKET 0x0 12033 /* enum: Pack multiple packets into large descriptors (for SolarCapture) */ 12034 #define MC_CMD_INIT_RXQ_V4_IN_PACKED_STREAM 0x1 12035 /* enum: Pack multiple packets into large descriptors using the format designed 12036 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with 12037 * multiple fixed-size packet buffers within each bucket. For a full 12038 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath 12039 * firmware. 12040 */ 12041 #define MC_CMD_INIT_RXQ_V4_IN_EQUAL_STRIDE_SUPER_BUFFER 0x2 12042 /* enum: Deprecated name for EQUAL_STRIDE_SUPER_BUFFER. */ 12043 #define MC_CMD_INIT_RXQ_V4_IN_EQUAL_STRIDE_PACKED_STREAM 0x2 12044 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SNAPSHOT_MODE_OFST 16 12045 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SNAPSHOT_MODE_LBN 14 12046 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SNAPSHOT_MODE_WIDTH 1 12047 #define MC_CMD_INIT_RXQ_V4_IN_PACKED_STREAM_BUFF_SIZE_OFST 16 12048 #define MC_CMD_INIT_RXQ_V4_IN_PACKED_STREAM_BUFF_SIZE_LBN 15 12049 #define MC_CMD_INIT_RXQ_V4_IN_PACKED_STREAM_BUFF_SIZE_WIDTH 3 12050 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_1M 0x0 /* enum */ 12051 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_512K 0x1 /* enum */ 12052 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_256K 0x2 /* enum */ 12053 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_128K 0x3 /* enum */ 12054 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_64K 0x4 /* enum */ 12055 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_WANT_OUTER_CLASSES_OFST 16 12056 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_WANT_OUTER_CLASSES_LBN 18 12057 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1 12058 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_FORCE_EV_MERGING_OFST 16 12059 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_FORCE_EV_MERGING_LBN 19 12060 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_FORCE_EV_MERGING_WIDTH 1 12061 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_NO_CONT_EV_OFST 16 12062 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_NO_CONT_EV_LBN 20 12063 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_NO_CONT_EV_WIDTH 1 12064 /* Owner ID to use if in buffer mode (zero if physical) */ 12065 #define MC_CMD_INIT_RXQ_V4_IN_OWNER_ID_OFST 20 12066 #define MC_CMD_INIT_RXQ_V4_IN_OWNER_ID_LEN 4 12067 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 12068 #define MC_CMD_INIT_RXQ_V4_IN_PORT_ID_OFST 24 12069 #define MC_CMD_INIT_RXQ_V4_IN_PORT_ID_LEN 4 12070 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 12071 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_OFST 28 12072 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LEN 8 12073 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_OFST 28 12074 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_LEN 4 12075 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_LBN 224 12076 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_WIDTH 32 12077 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_OFST 32 12078 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_LEN 4 12079 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_LBN 256 12080 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_WIDTH 32 12081 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_MINNUM 0 12082 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_MAXNUM 64 12083 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_MAXNUM_MCDI2 64 12084 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 12085 #define MC_CMD_INIT_RXQ_V4_IN_SNAPSHOT_LENGTH_OFST 540 12086 #define MC_CMD_INIT_RXQ_V4_IN_SNAPSHOT_LENGTH_LEN 4 12087 /* The number of packet buffers that will be contained within each 12088 * EQUAL_STRIDE_SUPER_BUFFER format bucket supplied by the driver. This field 12089 * is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 12090 */ 12091 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_BUFFERS_PER_BUCKET_OFST 544 12092 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_BUFFERS_PER_BUCKET_LEN 4 12093 /* The length in bytes of the area in each packet buffer that can be written to 12094 * by the adapter. This is used to store the packet prefix and the packet 12095 * payload. This length does not include any end padding added by the driver. 12096 * This field is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 12097 */ 12098 #define MC_CMD_INIT_RXQ_V4_IN_ES_MAX_DMA_LEN_OFST 548 12099 #define MC_CMD_INIT_RXQ_V4_IN_ES_MAX_DMA_LEN_LEN 4 12100 /* The length in bytes of a single packet buffer within a 12101 * EQUAL_STRIDE_SUPER_BUFFER format bucket. This field is ignored unless 12102 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 12103 */ 12104 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_STRIDE_OFST 552 12105 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_STRIDE_LEN 4 12106 /* The maximum time in nanoseconds that the datapath will be backpressured if 12107 * there are no RX descriptors available. If the timeout is reached and there 12108 * are still no descriptors then the packet will be dropped. A timeout of 0 12109 * means the datapath will never be blocked. This field is ignored unless 12110 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 12111 */ 12112 #define MC_CMD_INIT_RXQ_V4_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_OFST 556 12113 #define MC_CMD_INIT_RXQ_V4_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_LEN 4 12114 /* V4 message data */ 12115 #define MC_CMD_INIT_RXQ_V4_IN_V4_DATA_OFST 560 12116 #define MC_CMD_INIT_RXQ_V4_IN_V4_DATA_LEN 4 12117 /* Size in bytes of buffers attached to descriptors posted to this queue. Set 12118 * to zero if using this message on non-QDMA based platforms. Currently in 12119 * Riverhead there is a global limit of eight different buffer sizes across all 12120 * active queues. A 2KB and 4KB buffer is guaranteed to be available, but a 12121 * request for a different buffer size will fail if there are already eight 12122 * other buffer sizes in use. In future Riverhead this limit will go away and 12123 * any size will be accepted. 12124 */ 12125 #define MC_CMD_INIT_RXQ_V4_IN_BUFFER_SIZE_BYTES_OFST 560 12126 #define MC_CMD_INIT_RXQ_V4_IN_BUFFER_SIZE_BYTES_LEN 4 12127 12128 /* MC_CMD_INIT_RXQ_V5_IN msgrequest: INIT_RXQ request with ability to request a 12129 * different RX packet prefix 12130 */ 12131 #define MC_CMD_INIT_RXQ_V5_IN_LEN 568 12132 /* Size, in entries */ 12133 #define MC_CMD_INIT_RXQ_V5_IN_SIZE_OFST 0 12134 #define MC_CMD_INIT_RXQ_V5_IN_SIZE_LEN 4 12135 /* The EVQ to send events to. This is an index originally specified to 12136 * INIT_EVQ. If DMA_MODE == PACKED_STREAM this must be equal to INSTANCE. 12137 */ 12138 #define MC_CMD_INIT_RXQ_V5_IN_TARGET_EVQ_OFST 4 12139 #define MC_CMD_INIT_RXQ_V5_IN_TARGET_EVQ_LEN 4 12140 /* The value to put in the event data. Check hardware spec. for valid range. 12141 * This field is ignored if DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER or DMA_MODE 12142 * == PACKED_STREAM. 12143 */ 12144 #define MC_CMD_INIT_RXQ_V5_IN_LABEL_OFST 8 12145 #define MC_CMD_INIT_RXQ_V5_IN_LABEL_LEN 4 12146 /* Desired instance. Must be set to a specific instance, which is a function 12147 * local queue index. The calling client must be the currently-assigned user of 12148 * this VI (see MC_CMD_SET_VI_USER). 12149 */ 12150 #define MC_CMD_INIT_RXQ_V5_IN_INSTANCE_OFST 12 12151 #define MC_CMD_INIT_RXQ_V5_IN_INSTANCE_LEN 4 12152 /* There will be more flags here. */ 12153 #define MC_CMD_INIT_RXQ_V5_IN_FLAGS_OFST 16 12154 #define MC_CMD_INIT_RXQ_V5_IN_FLAGS_LEN 4 12155 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_BUFF_MODE_OFST 16 12156 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_BUFF_MODE_LBN 0 12157 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_BUFF_MODE_WIDTH 1 12158 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_HDR_SPLIT_OFST 16 12159 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_HDR_SPLIT_LBN 1 12160 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_HDR_SPLIT_WIDTH 1 12161 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_TIMESTAMP_OFST 16 12162 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_TIMESTAMP_LBN 2 12163 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_TIMESTAMP_WIDTH 1 12164 #define MC_CMD_INIT_RXQ_V5_IN_CRC_MODE_OFST 16 12165 #define MC_CMD_INIT_RXQ_V5_IN_CRC_MODE_LBN 3 12166 #define MC_CMD_INIT_RXQ_V5_IN_CRC_MODE_WIDTH 4 12167 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_CHAIN_OFST 16 12168 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_CHAIN_LBN 7 12169 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_CHAIN_WIDTH 1 12170 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_PREFIX_OFST 16 12171 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_PREFIX_LBN 8 12172 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_PREFIX_WIDTH 1 12173 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_DISABLE_SCATTER_OFST 16 12174 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_DISABLE_SCATTER_LBN 9 12175 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_DISABLE_SCATTER_WIDTH 1 12176 #define MC_CMD_INIT_RXQ_V5_IN_DMA_MODE_OFST 16 12177 #define MC_CMD_INIT_RXQ_V5_IN_DMA_MODE_LBN 10 12178 #define MC_CMD_INIT_RXQ_V5_IN_DMA_MODE_WIDTH 4 12179 /* enum: One packet per descriptor (for normal networking) */ 12180 #define MC_CMD_INIT_RXQ_V5_IN_SINGLE_PACKET 0x0 12181 /* enum: Pack multiple packets into large descriptors (for SolarCapture) */ 12182 #define MC_CMD_INIT_RXQ_V5_IN_PACKED_STREAM 0x1 12183 /* enum: Pack multiple packets into large descriptors using the format designed 12184 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with 12185 * multiple fixed-size packet buffers within each bucket. For a full 12186 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath 12187 * firmware. 12188 */ 12189 #define MC_CMD_INIT_RXQ_V5_IN_EQUAL_STRIDE_SUPER_BUFFER 0x2 12190 /* enum: Deprecated name for EQUAL_STRIDE_SUPER_BUFFER. */ 12191 #define MC_CMD_INIT_RXQ_V5_IN_EQUAL_STRIDE_PACKED_STREAM 0x2 12192 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SNAPSHOT_MODE_OFST 16 12193 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SNAPSHOT_MODE_LBN 14 12194 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SNAPSHOT_MODE_WIDTH 1 12195 #define MC_CMD_INIT_RXQ_V5_IN_PACKED_STREAM_BUFF_SIZE_OFST 16 12196 #define MC_CMD_INIT_RXQ_V5_IN_PACKED_STREAM_BUFF_SIZE_LBN 15 12197 #define MC_CMD_INIT_RXQ_V5_IN_PACKED_STREAM_BUFF_SIZE_WIDTH 3 12198 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_1M 0x0 /* enum */ 12199 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_512K 0x1 /* enum */ 12200 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_256K 0x2 /* enum */ 12201 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_128K 0x3 /* enum */ 12202 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_64K 0x4 /* enum */ 12203 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_WANT_OUTER_CLASSES_OFST 16 12204 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_WANT_OUTER_CLASSES_LBN 18 12205 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1 12206 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_FORCE_EV_MERGING_OFST 16 12207 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_FORCE_EV_MERGING_LBN 19 12208 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_FORCE_EV_MERGING_WIDTH 1 12209 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_NO_CONT_EV_OFST 16 12210 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_NO_CONT_EV_LBN 20 12211 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_NO_CONT_EV_WIDTH 1 12212 /* Owner ID to use if in buffer mode (zero if physical) */ 12213 #define MC_CMD_INIT_RXQ_V5_IN_OWNER_ID_OFST 20 12214 #define MC_CMD_INIT_RXQ_V5_IN_OWNER_ID_LEN 4 12215 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 12216 #define MC_CMD_INIT_RXQ_V5_IN_PORT_ID_OFST 24 12217 #define MC_CMD_INIT_RXQ_V5_IN_PORT_ID_LEN 4 12218 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 12219 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_OFST 28 12220 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LEN 8 12221 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_OFST 28 12222 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_LEN 4 12223 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_LBN 224 12224 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_WIDTH 32 12225 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_OFST 32 12226 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_LEN 4 12227 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_LBN 256 12228 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_WIDTH 32 12229 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_MINNUM 0 12230 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_MAXNUM 64 12231 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_MAXNUM_MCDI2 64 12232 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 12233 #define MC_CMD_INIT_RXQ_V5_IN_SNAPSHOT_LENGTH_OFST 540 12234 #define MC_CMD_INIT_RXQ_V5_IN_SNAPSHOT_LENGTH_LEN 4 12235 /* The number of packet buffers that will be contained within each 12236 * EQUAL_STRIDE_SUPER_BUFFER format bucket supplied by the driver. This field 12237 * is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 12238 */ 12239 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_BUFFERS_PER_BUCKET_OFST 544 12240 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_BUFFERS_PER_BUCKET_LEN 4 12241 /* The length in bytes of the area in each packet buffer that can be written to 12242 * by the adapter. This is used to store the packet prefix and the packet 12243 * payload. This length does not include any end padding added by the driver. 12244 * This field is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 12245 */ 12246 #define MC_CMD_INIT_RXQ_V5_IN_ES_MAX_DMA_LEN_OFST 548 12247 #define MC_CMD_INIT_RXQ_V5_IN_ES_MAX_DMA_LEN_LEN 4 12248 /* The length in bytes of a single packet buffer within a 12249 * EQUAL_STRIDE_SUPER_BUFFER format bucket. This field is ignored unless 12250 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 12251 */ 12252 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_STRIDE_OFST 552 12253 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_STRIDE_LEN 4 12254 /* The maximum time in nanoseconds that the datapath will be backpressured if 12255 * there are no RX descriptors available. If the timeout is reached and there 12256 * are still no descriptors then the packet will be dropped. A timeout of 0 12257 * means the datapath will never be blocked. This field is ignored unless 12258 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 12259 */ 12260 #define MC_CMD_INIT_RXQ_V5_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_OFST 556 12261 #define MC_CMD_INIT_RXQ_V5_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_LEN 4 12262 /* V4 message data */ 12263 #define MC_CMD_INIT_RXQ_V5_IN_V4_DATA_OFST 560 12264 #define MC_CMD_INIT_RXQ_V5_IN_V4_DATA_LEN 4 12265 /* Size in bytes of buffers attached to descriptors posted to this queue. Set 12266 * to zero if using this message on non-QDMA based platforms. Currently in 12267 * Riverhead there is a global limit of eight different buffer sizes across all 12268 * active queues. A 2KB and 4KB buffer is guaranteed to be available, but a 12269 * request for a different buffer size will fail if there are already eight 12270 * other buffer sizes in use. In future Riverhead this limit will go away and 12271 * any size will be accepted. 12272 */ 12273 #define MC_CMD_INIT_RXQ_V5_IN_BUFFER_SIZE_BYTES_OFST 560 12274 #define MC_CMD_INIT_RXQ_V5_IN_BUFFER_SIZE_BYTES_LEN 4 12275 /* Prefix id for the RX prefix format to use on packets delivered this queue. 12276 * Zero is always a valid prefix id and means the default prefix format 12277 * documented for the platform. Other prefix ids can be obtained by calling 12278 * MC_CMD_GET_RX_PREFIX_ID with a requested set of prefix fields. 12279 */ 12280 #define MC_CMD_INIT_RXQ_V5_IN_RX_PREFIX_ID_OFST 564 12281 #define MC_CMD_INIT_RXQ_V5_IN_RX_PREFIX_ID_LEN 4 12282 12283 /* MC_CMD_INIT_RXQ_OUT msgresponse */ 12284 #define MC_CMD_INIT_RXQ_OUT_LEN 0 12285 12286 /* MC_CMD_INIT_RXQ_EXT_OUT msgresponse */ 12287 #define MC_CMD_INIT_RXQ_EXT_OUT_LEN 0 12288 12289 /* MC_CMD_INIT_RXQ_V3_OUT msgresponse */ 12290 #define MC_CMD_INIT_RXQ_V3_OUT_LEN 0 12291 12292 /* MC_CMD_INIT_RXQ_V4_OUT msgresponse */ 12293 #define MC_CMD_INIT_RXQ_V4_OUT_LEN 0 12294 12295 /* MC_CMD_INIT_RXQ_V5_OUT msgresponse */ 12296 #define MC_CMD_INIT_RXQ_V5_OUT_LEN 0 12297 12298 12299 /***********************************/ 12300 /* MC_CMD_INIT_TXQ 12301 */ 12302 #define MC_CMD_INIT_TXQ 0x82 12303 #define MC_CMD_INIT_TXQ_MSGSET 0x82 12304 #undef MC_CMD_0x82_PRIVILEGE_CTG 12305 12306 #define MC_CMD_0x82_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12307 12308 /* MC_CMD_INIT_TXQ_IN msgrequest: Legacy INIT_TXQ request. Use extended version 12309 * in new code. 12310 */ 12311 #define MC_CMD_INIT_TXQ_IN_LENMIN 36 12312 #define MC_CMD_INIT_TXQ_IN_LENMAX 252 12313 #define MC_CMD_INIT_TXQ_IN_LENMAX_MCDI2 1020 12314 #define MC_CMD_INIT_TXQ_IN_LEN(num) (28+8*(num)) 12315 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_NUM(len) (((len)-28)/8) 12316 /* Size, in entries */ 12317 #define MC_CMD_INIT_TXQ_IN_SIZE_OFST 0 12318 #define MC_CMD_INIT_TXQ_IN_SIZE_LEN 4 12319 /* The EVQ to send events to. This is an index originally specified to 12320 * INIT_EVQ. 12321 */ 12322 #define MC_CMD_INIT_TXQ_IN_TARGET_EVQ_OFST 4 12323 #define MC_CMD_INIT_TXQ_IN_TARGET_EVQ_LEN 4 12324 /* The value to put in the event data. Check hardware spec. for valid range. */ 12325 #define MC_CMD_INIT_TXQ_IN_LABEL_OFST 8 12326 #define MC_CMD_INIT_TXQ_IN_LABEL_LEN 4 12327 /* Desired instance. Must be set to a specific instance, which is a function 12328 * local queue index. The calling client must be the currently-assigned user of 12329 * this VI (see MC_CMD_SET_VI_USER). 12330 */ 12331 #define MC_CMD_INIT_TXQ_IN_INSTANCE_OFST 12 12332 #define MC_CMD_INIT_TXQ_IN_INSTANCE_LEN 4 12333 /* There will be more flags here. */ 12334 #define MC_CMD_INIT_TXQ_IN_FLAGS_OFST 16 12335 #define MC_CMD_INIT_TXQ_IN_FLAGS_LEN 4 12336 #define MC_CMD_INIT_TXQ_IN_FLAG_BUFF_MODE_OFST 16 12337 #define MC_CMD_INIT_TXQ_IN_FLAG_BUFF_MODE_LBN 0 12338 #define MC_CMD_INIT_TXQ_IN_FLAG_BUFF_MODE_WIDTH 1 12339 #define MC_CMD_INIT_TXQ_IN_FLAG_IP_CSUM_DIS_OFST 16 12340 #define MC_CMD_INIT_TXQ_IN_FLAG_IP_CSUM_DIS_LBN 1 12341 #define MC_CMD_INIT_TXQ_IN_FLAG_IP_CSUM_DIS_WIDTH 1 12342 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_CSUM_DIS_OFST 16 12343 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_CSUM_DIS_LBN 2 12344 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_CSUM_DIS_WIDTH 1 12345 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_UDP_ONLY_OFST 16 12346 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_UDP_ONLY_LBN 3 12347 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_UDP_ONLY_WIDTH 1 12348 #define MC_CMD_INIT_TXQ_IN_CRC_MODE_OFST 16 12349 #define MC_CMD_INIT_TXQ_IN_CRC_MODE_LBN 4 12350 #define MC_CMD_INIT_TXQ_IN_CRC_MODE_WIDTH 4 12351 #define MC_CMD_INIT_TXQ_IN_FLAG_TIMESTAMP_OFST 16 12352 #define MC_CMD_INIT_TXQ_IN_FLAG_TIMESTAMP_LBN 8 12353 #define MC_CMD_INIT_TXQ_IN_FLAG_TIMESTAMP_WIDTH 1 12354 #define MC_CMD_INIT_TXQ_IN_FLAG_PACER_BYPASS_OFST 16 12355 #define MC_CMD_INIT_TXQ_IN_FLAG_PACER_BYPASS_LBN 9 12356 #define MC_CMD_INIT_TXQ_IN_FLAG_PACER_BYPASS_WIDTH 1 12357 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_IP_CSUM_EN_OFST 16 12358 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_IP_CSUM_EN_LBN 10 12359 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_IP_CSUM_EN_WIDTH 1 12360 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_TCP_CSUM_EN_OFST 16 12361 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_TCP_CSUM_EN_LBN 11 12362 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_TCP_CSUM_EN_WIDTH 1 12363 /* Owner ID to use if in buffer mode (zero if physical) */ 12364 #define MC_CMD_INIT_TXQ_IN_OWNER_ID_OFST 20 12365 #define MC_CMD_INIT_TXQ_IN_OWNER_ID_LEN 4 12366 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 12367 #define MC_CMD_INIT_TXQ_IN_PORT_ID_OFST 24 12368 #define MC_CMD_INIT_TXQ_IN_PORT_ID_LEN 4 12369 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 12370 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_OFST 28 12371 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LEN 8 12372 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_OFST 28 12373 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_LEN 4 12374 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_LBN 224 12375 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_WIDTH 32 12376 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_OFST 32 12377 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_LEN 4 12378 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_LBN 256 12379 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_WIDTH 32 12380 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_MINNUM 1 12381 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_MAXNUM 28 12382 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_MAXNUM_MCDI2 124 12383 12384 /* MC_CMD_INIT_TXQ_EXT_IN msgrequest: Extended INIT_TXQ with additional mode 12385 * flags 12386 */ 12387 #define MC_CMD_INIT_TXQ_EXT_IN_LEN 544 12388 /* Size, in entries */ 12389 #define MC_CMD_INIT_TXQ_EXT_IN_SIZE_OFST 0 12390 #define MC_CMD_INIT_TXQ_EXT_IN_SIZE_LEN 4 12391 /* The EVQ to send events to. This is an index originally specified to 12392 * INIT_EVQ. 12393 */ 12394 #define MC_CMD_INIT_TXQ_EXT_IN_TARGET_EVQ_OFST 4 12395 #define MC_CMD_INIT_TXQ_EXT_IN_TARGET_EVQ_LEN 4 12396 /* The value to put in the event data. Check hardware spec. for valid range. */ 12397 #define MC_CMD_INIT_TXQ_EXT_IN_LABEL_OFST 8 12398 #define MC_CMD_INIT_TXQ_EXT_IN_LABEL_LEN 4 12399 /* Desired instance. Must be set to a specific instance, which is a function 12400 * local queue index. The calling client must be the currently-assigned user of 12401 * this VI (see MC_CMD_SET_VI_USER). 12402 */ 12403 #define MC_CMD_INIT_TXQ_EXT_IN_INSTANCE_OFST 12 12404 #define MC_CMD_INIT_TXQ_EXT_IN_INSTANCE_LEN 4 12405 /* There will be more flags here. */ 12406 #define MC_CMD_INIT_TXQ_EXT_IN_FLAGS_OFST 16 12407 #define MC_CMD_INIT_TXQ_EXT_IN_FLAGS_LEN 4 12408 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_BUFF_MODE_OFST 16 12409 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_BUFF_MODE_LBN 0 12410 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_BUFF_MODE_WIDTH 1 12411 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_IP_CSUM_DIS_OFST 16 12412 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_IP_CSUM_DIS_LBN 1 12413 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_IP_CSUM_DIS_WIDTH 1 12414 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_CSUM_DIS_OFST 16 12415 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_CSUM_DIS_LBN 2 12416 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_CSUM_DIS_WIDTH 1 12417 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_UDP_ONLY_OFST 16 12418 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_UDP_ONLY_LBN 3 12419 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_UDP_ONLY_WIDTH 1 12420 #define MC_CMD_INIT_TXQ_EXT_IN_CRC_MODE_OFST 16 12421 #define MC_CMD_INIT_TXQ_EXT_IN_CRC_MODE_LBN 4 12422 #define MC_CMD_INIT_TXQ_EXT_IN_CRC_MODE_WIDTH 4 12423 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TIMESTAMP_OFST 16 12424 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TIMESTAMP_LBN 8 12425 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TIMESTAMP_WIDTH 1 12426 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_PACER_BYPASS_OFST 16 12427 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_PACER_BYPASS_LBN 9 12428 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_PACER_BYPASS_WIDTH 1 12429 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_IP_CSUM_EN_OFST 16 12430 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_IP_CSUM_EN_LBN 10 12431 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_IP_CSUM_EN_WIDTH 1 12432 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_TCP_CSUM_EN_OFST 16 12433 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_TCP_CSUM_EN_LBN 11 12434 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_TCP_CSUM_EN_WIDTH 1 12435 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN_OFST 16 12436 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN_LBN 12 12437 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN_WIDTH 1 12438 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_OFST 16 12439 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_LBN 13 12440 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_WIDTH 1 12441 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_UTHRESH_OFST 16 12442 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_UTHRESH_LBN 14 12443 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_UTHRESH_WIDTH 1 12444 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_M2M_D2C_OFST 16 12445 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_M2M_D2C_LBN 15 12446 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_M2M_D2C_WIDTH 1 12447 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_DESC_PROXY_OFST 16 12448 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_DESC_PROXY_LBN 16 12449 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_DESC_PROXY_WIDTH 1 12450 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_ABS_TARGET_EVQ_OFST 16 12451 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_ABS_TARGET_EVQ_LBN 17 12452 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_ABS_TARGET_EVQ_WIDTH 1 12453 /* Owner ID to use if in buffer mode (zero if physical) */ 12454 #define MC_CMD_INIT_TXQ_EXT_IN_OWNER_ID_OFST 20 12455 #define MC_CMD_INIT_TXQ_EXT_IN_OWNER_ID_LEN 4 12456 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 12457 #define MC_CMD_INIT_TXQ_EXT_IN_PORT_ID_OFST 24 12458 #define MC_CMD_INIT_TXQ_EXT_IN_PORT_ID_LEN 4 12459 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 12460 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_OFST 28 12461 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LEN 8 12462 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_OFST 28 12463 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_LEN 4 12464 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_LBN 224 12465 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_WIDTH 32 12466 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_OFST 32 12467 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_LEN 4 12468 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_LBN 256 12469 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_WIDTH 32 12470 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_MINNUM 0 12471 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_MAXNUM 64 12472 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_MAXNUM_MCDI2 64 12473 /* Flags related to Qbb flow control mode. */ 12474 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_FLAGS_OFST 540 12475 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_FLAGS_LEN 4 12476 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_ENABLE_OFST 540 12477 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_ENABLE_LBN 0 12478 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_ENABLE_WIDTH 1 12479 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_PRIORITY_OFST 540 12480 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_PRIORITY_LBN 1 12481 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_PRIORITY_WIDTH 3 12482 12483 /* MC_CMD_INIT_TXQ_OUT msgresponse */ 12484 #define MC_CMD_INIT_TXQ_OUT_LEN 0 12485 12486 12487 /***********************************/ 12488 /* MC_CMD_FINI_EVQ 12489 * Teardown an EVQ. 12490 * 12491 * All DMAQs or EVQs that point to the EVQ to tear down must be torn down first 12492 * or the operation will fail with EBUSY 12493 */ 12494 #define MC_CMD_FINI_EVQ 0x83 12495 #define MC_CMD_FINI_EVQ_MSGSET 0x83 12496 #undef MC_CMD_0x83_PRIVILEGE_CTG 12497 12498 #define MC_CMD_0x83_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12499 12500 /* MC_CMD_FINI_EVQ_IN msgrequest */ 12501 #define MC_CMD_FINI_EVQ_IN_LEN 4 12502 /* Instance of EVQ to destroy. Should be the same instance as that previously 12503 * passed to INIT_EVQ 12504 */ 12505 #define MC_CMD_FINI_EVQ_IN_INSTANCE_OFST 0 12506 #define MC_CMD_FINI_EVQ_IN_INSTANCE_LEN 4 12507 12508 /* MC_CMD_FINI_EVQ_OUT msgresponse */ 12509 #define MC_CMD_FINI_EVQ_OUT_LEN 0 12510 12511 12512 /***********************************/ 12513 /* MC_CMD_FINI_RXQ 12514 * Teardown a RXQ. 12515 */ 12516 #define MC_CMD_FINI_RXQ 0x84 12517 #define MC_CMD_FINI_RXQ_MSGSET 0x84 12518 #undef MC_CMD_0x84_PRIVILEGE_CTG 12519 12520 #define MC_CMD_0x84_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12521 12522 /* MC_CMD_FINI_RXQ_IN msgrequest */ 12523 #define MC_CMD_FINI_RXQ_IN_LEN 4 12524 /* Instance of RXQ to destroy */ 12525 #define MC_CMD_FINI_RXQ_IN_INSTANCE_OFST 0 12526 #define MC_CMD_FINI_RXQ_IN_INSTANCE_LEN 4 12527 12528 /* MC_CMD_FINI_RXQ_OUT msgresponse */ 12529 #define MC_CMD_FINI_RXQ_OUT_LEN 0 12530 12531 12532 /***********************************/ 12533 /* MC_CMD_FINI_TXQ 12534 * Teardown a TXQ. 12535 */ 12536 #define MC_CMD_FINI_TXQ 0x85 12537 #define MC_CMD_FINI_TXQ_MSGSET 0x85 12538 #undef MC_CMD_0x85_PRIVILEGE_CTG 12539 12540 #define MC_CMD_0x85_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12541 12542 /* MC_CMD_FINI_TXQ_IN msgrequest */ 12543 #define MC_CMD_FINI_TXQ_IN_LEN 4 12544 /* Instance of TXQ to destroy */ 12545 #define MC_CMD_FINI_TXQ_IN_INSTANCE_OFST 0 12546 #define MC_CMD_FINI_TXQ_IN_INSTANCE_LEN 4 12547 12548 /* MC_CMD_FINI_TXQ_OUT msgresponse */ 12549 #define MC_CMD_FINI_TXQ_OUT_LEN 0 12550 12551 12552 /***********************************/ 12553 /* MC_CMD_DRIVER_EVENT 12554 * Generate an event on an EVQ belonging to the function issuing the command. 12555 */ 12556 #define MC_CMD_DRIVER_EVENT 0x86 12557 #define MC_CMD_DRIVER_EVENT_MSGSET 0x86 12558 #undef MC_CMD_0x86_PRIVILEGE_CTG 12559 12560 #define MC_CMD_0x86_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12561 12562 /* MC_CMD_DRIVER_EVENT_IN msgrequest */ 12563 #define MC_CMD_DRIVER_EVENT_IN_LEN 12 12564 /* Handle of target EVQ */ 12565 #define MC_CMD_DRIVER_EVENT_IN_EVQ_OFST 0 12566 #define MC_CMD_DRIVER_EVENT_IN_EVQ_LEN 4 12567 /* Bits 0 - 63 of event */ 12568 #define MC_CMD_DRIVER_EVENT_IN_DATA_OFST 4 12569 #define MC_CMD_DRIVER_EVENT_IN_DATA_LEN 8 12570 #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_OFST 4 12571 #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_LEN 4 12572 #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_LBN 32 12573 #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_WIDTH 32 12574 #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_OFST 8 12575 #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_LEN 4 12576 #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_LBN 64 12577 #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_WIDTH 32 12578 12579 /* MC_CMD_DRIVER_EVENT_OUT msgresponse */ 12580 #define MC_CMD_DRIVER_EVENT_OUT_LEN 0 12581 12582 12583 /***********************************/ 12584 /* MC_CMD_PROXY_CMD 12585 * Execute an arbitrary MCDI command on behalf of a different function, subject 12586 * to security restrictions. The command to be proxied follows immediately 12587 * afterward in the host buffer (or on the UART). This command supercedes 12588 * MC_CMD_SET_FUNC, which remains available for Siena but now deprecated. 12589 */ 12590 #define MC_CMD_PROXY_CMD 0x5b 12591 #define MC_CMD_PROXY_CMD_MSGSET 0x5b 12592 #undef MC_CMD_0x5b_PRIVILEGE_CTG 12593 12594 #define MC_CMD_0x5b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 12595 12596 /* MC_CMD_PROXY_CMD_IN msgrequest */ 12597 #define MC_CMD_PROXY_CMD_IN_LEN 4 12598 /* The handle of the target function. */ 12599 #define MC_CMD_PROXY_CMD_IN_TARGET_OFST 0 12600 #define MC_CMD_PROXY_CMD_IN_TARGET_LEN 4 12601 #define MC_CMD_PROXY_CMD_IN_TARGET_PF_OFST 0 12602 #define MC_CMD_PROXY_CMD_IN_TARGET_PF_LBN 0 12603 #define MC_CMD_PROXY_CMD_IN_TARGET_PF_WIDTH 16 12604 #define MC_CMD_PROXY_CMD_IN_TARGET_VF_OFST 0 12605 #define MC_CMD_PROXY_CMD_IN_TARGET_VF_LBN 16 12606 #define MC_CMD_PROXY_CMD_IN_TARGET_VF_WIDTH 16 12607 #define MC_CMD_PROXY_CMD_IN_VF_NULL 0xffff /* enum */ 12608 12609 /* MC_CMD_PROXY_CMD_OUT msgresponse */ 12610 #define MC_CMD_PROXY_CMD_OUT_LEN 0 12611 12612 /* MC_PROXY_STATUS_BUFFER structuredef: Host memory status buffer used to 12613 * manage proxied requests 12614 */ 12615 #define MC_PROXY_STATUS_BUFFER_LEN 16 12616 /* Handle allocated by the firmware for this proxy transaction */ 12617 #define MC_PROXY_STATUS_BUFFER_HANDLE_OFST 0 12618 #define MC_PROXY_STATUS_BUFFER_HANDLE_LEN 4 12619 /* enum: An invalid handle. */ 12620 #define MC_PROXY_STATUS_BUFFER_HANDLE_INVALID 0x0 12621 #define MC_PROXY_STATUS_BUFFER_HANDLE_LBN 0 12622 #define MC_PROXY_STATUS_BUFFER_HANDLE_WIDTH 32 12623 /* The requesting physical function number */ 12624 #define MC_PROXY_STATUS_BUFFER_PF_OFST 4 12625 #define MC_PROXY_STATUS_BUFFER_PF_LEN 2 12626 #define MC_PROXY_STATUS_BUFFER_PF_LBN 32 12627 #define MC_PROXY_STATUS_BUFFER_PF_WIDTH 16 12628 /* The requesting virtual function number. Set to VF_NULL if the target is a 12629 * PF. 12630 */ 12631 #define MC_PROXY_STATUS_BUFFER_VF_OFST 6 12632 #define MC_PROXY_STATUS_BUFFER_VF_LEN 2 12633 #define MC_PROXY_STATUS_BUFFER_VF_LBN 48 12634 #define MC_PROXY_STATUS_BUFFER_VF_WIDTH 16 12635 /* The target function RID. */ 12636 #define MC_PROXY_STATUS_BUFFER_RID_OFST 8 12637 #define MC_PROXY_STATUS_BUFFER_RID_LEN 2 12638 #define MC_PROXY_STATUS_BUFFER_RID_LBN 64 12639 #define MC_PROXY_STATUS_BUFFER_RID_WIDTH 16 12640 /* The status of the proxy as described in MC_CMD_PROXY_COMPLETE. */ 12641 #define MC_PROXY_STATUS_BUFFER_STATUS_OFST 10 12642 #define MC_PROXY_STATUS_BUFFER_STATUS_LEN 2 12643 #define MC_PROXY_STATUS_BUFFER_STATUS_LBN 80 12644 #define MC_PROXY_STATUS_BUFFER_STATUS_WIDTH 16 12645 /* If a request is authorized rather than carried out by the host, this is the 12646 * elevated privilege mask granted to the requesting function. 12647 */ 12648 #define MC_PROXY_STATUS_BUFFER_GRANTED_PRIVILEGES_OFST 12 12649 #define MC_PROXY_STATUS_BUFFER_GRANTED_PRIVILEGES_LEN 4 12650 #define MC_PROXY_STATUS_BUFFER_GRANTED_PRIVILEGES_LBN 96 12651 #define MC_PROXY_STATUS_BUFFER_GRANTED_PRIVILEGES_WIDTH 32 12652 12653 12654 /***********************************/ 12655 /* MC_CMD_PROXY_CONFIGURE 12656 * Enable/disable authorization of MCDI requests from unprivileged functions by 12657 * a designated admin function 12658 */ 12659 #define MC_CMD_PROXY_CONFIGURE 0x58 12660 #define MC_CMD_PROXY_CONFIGURE_MSGSET 0x58 12661 #undef MC_CMD_0x58_PRIVILEGE_CTG 12662 12663 #define MC_CMD_0x58_PRIVILEGE_CTG SRIOV_CTG_ADMIN 12664 12665 /* MC_CMD_PROXY_CONFIGURE_IN msgrequest */ 12666 #define MC_CMD_PROXY_CONFIGURE_IN_LEN 108 12667 #define MC_CMD_PROXY_CONFIGURE_IN_FLAGS_OFST 0 12668 #define MC_CMD_PROXY_CONFIGURE_IN_FLAGS_LEN 4 12669 #define MC_CMD_PROXY_CONFIGURE_IN_ENABLE_OFST 0 12670 #define MC_CMD_PROXY_CONFIGURE_IN_ENABLE_LBN 0 12671 #define MC_CMD_PROXY_CONFIGURE_IN_ENABLE_WIDTH 1 12672 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 12673 * of blocks, each of the size REQUEST_BLOCK_SIZE. 12674 */ 12675 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_OFST 4 12676 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LEN 8 12677 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LO_OFST 4 12678 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LO_LEN 4 12679 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LO_LBN 32 12680 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LO_WIDTH 32 12681 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_HI_OFST 8 12682 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_HI_LEN 4 12683 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_HI_LBN 64 12684 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_HI_WIDTH 32 12685 /* Must be a power of 2 */ 12686 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BLOCK_SIZE_OFST 12 12687 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BLOCK_SIZE_LEN 4 12688 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 12689 * of blocks, each of the size REPLY_BLOCK_SIZE. 12690 */ 12691 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_OFST 16 12692 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LEN 8 12693 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LO_OFST 16 12694 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LO_LEN 4 12695 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LO_LBN 128 12696 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LO_WIDTH 32 12697 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_HI_OFST 20 12698 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_HI_LEN 4 12699 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_HI_LBN 160 12700 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_HI_WIDTH 32 12701 /* Must be a power of 2 */ 12702 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BLOCK_SIZE_OFST 24 12703 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BLOCK_SIZE_LEN 4 12704 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 12705 * of blocks, each of the size STATUS_BLOCK_SIZE. This buffer is only needed if 12706 * host intends to complete proxied operations by using MC_CMD_PROXY_CMD. 12707 */ 12708 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_OFST 28 12709 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LEN 8 12710 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LO_OFST 28 12711 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LO_LEN 4 12712 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LO_LBN 224 12713 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LO_WIDTH 32 12714 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_HI_OFST 32 12715 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_HI_LEN 4 12716 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_HI_LBN 256 12717 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_HI_WIDTH 32 12718 /* Must be a power of 2, or zero if this buffer is not provided */ 12719 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BLOCK_SIZE_OFST 36 12720 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BLOCK_SIZE_LEN 4 12721 /* Applies to all three buffers */ 12722 #define MC_CMD_PROXY_CONFIGURE_IN_NUM_BLOCKS_OFST 40 12723 #define MC_CMD_PROXY_CONFIGURE_IN_NUM_BLOCKS_LEN 4 12724 /* A bit mask defining which MCDI operations may be proxied */ 12725 #define MC_CMD_PROXY_CONFIGURE_IN_ALLOWED_MCDI_MASK_OFST 44 12726 #define MC_CMD_PROXY_CONFIGURE_IN_ALLOWED_MCDI_MASK_LEN 64 12727 12728 /* MC_CMD_PROXY_CONFIGURE_EXT_IN msgrequest */ 12729 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_LEN 112 12730 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_FLAGS_OFST 0 12731 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_FLAGS_LEN 4 12732 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_ENABLE_OFST 0 12733 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_ENABLE_LBN 0 12734 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_ENABLE_WIDTH 1 12735 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 12736 * of blocks, each of the size REQUEST_BLOCK_SIZE. 12737 */ 12738 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_OFST 4 12739 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LEN 8 12740 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LO_OFST 4 12741 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LO_LEN 4 12742 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LO_LBN 32 12743 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LO_WIDTH 32 12744 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_HI_OFST 8 12745 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_HI_LEN 4 12746 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_HI_LBN 64 12747 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_HI_WIDTH 32 12748 /* Must be a power of 2 */ 12749 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BLOCK_SIZE_OFST 12 12750 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BLOCK_SIZE_LEN 4 12751 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 12752 * of blocks, each of the size REPLY_BLOCK_SIZE. 12753 */ 12754 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_OFST 16 12755 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LEN 8 12756 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LO_OFST 16 12757 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LO_LEN 4 12758 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LO_LBN 128 12759 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LO_WIDTH 32 12760 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_HI_OFST 20 12761 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_HI_LEN 4 12762 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_HI_LBN 160 12763 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_HI_WIDTH 32 12764 /* Must be a power of 2 */ 12765 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BLOCK_SIZE_OFST 24 12766 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BLOCK_SIZE_LEN 4 12767 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 12768 * of blocks, each of the size STATUS_BLOCK_SIZE. This buffer is only needed if 12769 * host intends to complete proxied operations by using MC_CMD_PROXY_CMD. 12770 */ 12771 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_OFST 28 12772 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LEN 8 12773 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LO_OFST 28 12774 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LO_LEN 4 12775 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LO_LBN 224 12776 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LO_WIDTH 32 12777 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_HI_OFST 32 12778 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_HI_LEN 4 12779 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_HI_LBN 256 12780 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_HI_WIDTH 32 12781 /* Must be a power of 2, or zero if this buffer is not provided */ 12782 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BLOCK_SIZE_OFST 36 12783 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BLOCK_SIZE_LEN 4 12784 /* Applies to all three buffers */ 12785 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_NUM_BLOCKS_OFST 40 12786 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_NUM_BLOCKS_LEN 4 12787 /* A bit mask defining which MCDI operations may be proxied */ 12788 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_ALLOWED_MCDI_MASK_OFST 44 12789 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_ALLOWED_MCDI_MASK_LEN 64 12790 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_RESERVED_OFST 108 12791 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_RESERVED_LEN 4 12792 12793 /* MC_CMD_PROXY_CONFIGURE_OUT msgresponse */ 12794 #define MC_CMD_PROXY_CONFIGURE_OUT_LEN 0 12795 12796 12797 /***********************************/ 12798 /* MC_CMD_PROXY_COMPLETE 12799 * Tells FW that a requested proxy operation has either been completed (by 12800 * using MC_CMD_PROXY_CMD) or authorized/declined. May only be sent by the 12801 * function that enabled proxying/authorization (by using 12802 * MC_CMD_PROXY_CONFIGURE). 12803 */ 12804 #define MC_CMD_PROXY_COMPLETE 0x5f 12805 #define MC_CMD_PROXY_COMPLETE_MSGSET 0x5f 12806 #undef MC_CMD_0x5f_PRIVILEGE_CTG 12807 12808 #define MC_CMD_0x5f_PRIVILEGE_CTG SRIOV_CTG_ADMIN 12809 12810 /* MC_CMD_PROXY_COMPLETE_IN msgrequest */ 12811 #define MC_CMD_PROXY_COMPLETE_IN_LEN 12 12812 #define MC_CMD_PROXY_COMPLETE_IN_BLOCK_INDEX_OFST 0 12813 #define MC_CMD_PROXY_COMPLETE_IN_BLOCK_INDEX_LEN 4 12814 #define MC_CMD_PROXY_COMPLETE_IN_STATUS_OFST 4 12815 #define MC_CMD_PROXY_COMPLETE_IN_STATUS_LEN 4 12816 /* enum: The operation has been completed by using MC_CMD_PROXY_CMD, the reply 12817 * is stored in the REPLY_BUFF. 12818 */ 12819 #define MC_CMD_PROXY_COMPLETE_IN_COMPLETE 0x0 12820 /* enum: The operation has been authorized. The originating function may now 12821 * try again. 12822 */ 12823 #define MC_CMD_PROXY_COMPLETE_IN_AUTHORIZED 0x1 12824 /* enum: The operation has been declined. */ 12825 #define MC_CMD_PROXY_COMPLETE_IN_DECLINED 0x2 12826 /* enum: The authorization failed because the relevant application did not 12827 * respond in time. 12828 */ 12829 #define MC_CMD_PROXY_COMPLETE_IN_TIMEDOUT 0x3 12830 #define MC_CMD_PROXY_COMPLETE_IN_HANDLE_OFST 8 12831 #define MC_CMD_PROXY_COMPLETE_IN_HANDLE_LEN 4 12832 12833 /* MC_CMD_PROXY_COMPLETE_OUT msgresponse */ 12834 #define MC_CMD_PROXY_COMPLETE_OUT_LEN 0 12835 12836 12837 /***********************************/ 12838 /* MC_CMD_ALLOC_BUFTBL_CHUNK 12839 * Allocate a set of buffer table entries using the specified owner ID. This 12840 * operation allocates the required buffer table entries (and fails if it 12841 * cannot do so). The buffer table entries will initially be zeroed. 12842 */ 12843 #define MC_CMD_ALLOC_BUFTBL_CHUNK 0x87 12844 #define MC_CMD_ALLOC_BUFTBL_CHUNK_MSGSET 0x87 12845 #undef MC_CMD_0x87_PRIVILEGE_CTG 12846 12847 #define MC_CMD_0x87_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 12848 12849 /* MC_CMD_ALLOC_BUFTBL_CHUNK_IN msgrequest */ 12850 #define MC_CMD_ALLOC_BUFTBL_CHUNK_IN_LEN 8 12851 /* Owner ID to use */ 12852 #define MC_CMD_ALLOC_BUFTBL_CHUNK_IN_OWNER_OFST 0 12853 #define MC_CMD_ALLOC_BUFTBL_CHUNK_IN_OWNER_LEN 4 12854 /* Size of buffer table pages to use, in bytes (note that only a few values are 12855 * legal on any specific hardware). 12856 */ 12857 #define MC_CMD_ALLOC_BUFTBL_CHUNK_IN_PAGE_SIZE_OFST 4 12858 #define MC_CMD_ALLOC_BUFTBL_CHUNK_IN_PAGE_SIZE_LEN 4 12859 12860 /* MC_CMD_ALLOC_BUFTBL_CHUNK_OUT msgresponse */ 12861 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_LEN 12 12862 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_HANDLE_OFST 0 12863 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_HANDLE_LEN 4 12864 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_NUMENTRIES_OFST 4 12865 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_NUMENTRIES_LEN 4 12866 /* Buffer table IDs for use in DMA descriptors. */ 12867 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_ID_OFST 8 12868 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_ID_LEN 4 12869 12870 12871 /***********************************/ 12872 /* MC_CMD_PROGRAM_BUFTBL_ENTRIES 12873 * Reprogram a set of buffer table entries in the specified chunk. 12874 */ 12875 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES 0x88 12876 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_MSGSET 0x88 12877 #undef MC_CMD_0x88_PRIVILEGE_CTG 12878 12879 #define MC_CMD_0x88_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 12880 12881 /* MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN msgrequest */ 12882 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_LENMIN 20 12883 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_LENMAX 268 12884 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_LENMAX_MCDI2 268 12885 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_LEN(num) (12+8*(num)) 12886 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_NUM(len) (((len)-12)/8) 12887 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_HANDLE_OFST 0 12888 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_HANDLE_LEN 4 12889 /* ID */ 12890 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_FIRSTID_OFST 4 12891 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_FIRSTID_LEN 4 12892 /* Num entries */ 12893 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_NUMENTRIES_OFST 8 12894 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_NUMENTRIES_LEN 4 12895 /* Buffer table entry address */ 12896 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_OFST 12 12897 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LEN 8 12898 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LO_OFST 12 12899 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LO_LEN 4 12900 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LO_LBN 96 12901 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LO_WIDTH 32 12902 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_HI_OFST 16 12903 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_HI_LEN 4 12904 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_HI_LBN 128 12905 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_HI_WIDTH 32 12906 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_MINNUM 1 12907 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_MAXNUM 32 12908 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_MAXNUM_MCDI2 32 12909 12910 /* MC_CMD_PROGRAM_BUFTBL_ENTRIES_OUT msgresponse */ 12911 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_OUT_LEN 0 12912 12913 12914 /***********************************/ 12915 /* MC_CMD_FREE_BUFTBL_CHUNK 12916 */ 12917 #define MC_CMD_FREE_BUFTBL_CHUNK 0x89 12918 #define MC_CMD_FREE_BUFTBL_CHUNK_MSGSET 0x89 12919 #undef MC_CMD_0x89_PRIVILEGE_CTG 12920 12921 #define MC_CMD_0x89_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 12922 12923 /* MC_CMD_FREE_BUFTBL_CHUNK_IN msgrequest */ 12924 #define MC_CMD_FREE_BUFTBL_CHUNK_IN_LEN 4 12925 #define MC_CMD_FREE_BUFTBL_CHUNK_IN_HANDLE_OFST 0 12926 #define MC_CMD_FREE_BUFTBL_CHUNK_IN_HANDLE_LEN 4 12927 12928 /* MC_CMD_FREE_BUFTBL_CHUNK_OUT msgresponse */ 12929 #define MC_CMD_FREE_BUFTBL_CHUNK_OUT_LEN 0 12930 12931 12932 /***********************************/ 12933 /* MC_CMD_FILTER_OP 12934 * Multiplexed MCDI call for filter operations 12935 */ 12936 #define MC_CMD_FILTER_OP 0x8a 12937 #define MC_CMD_FILTER_OP_MSGSET 0x8a 12938 #undef MC_CMD_0x8a_PRIVILEGE_CTG 12939 12940 #define MC_CMD_0x8a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12941 12942 /* MC_CMD_FILTER_OP_IN msgrequest */ 12943 #define MC_CMD_FILTER_OP_IN_LEN 108 12944 /* identifies the type of operation requested */ 12945 #define MC_CMD_FILTER_OP_IN_OP_OFST 0 12946 #define MC_CMD_FILTER_OP_IN_OP_LEN 4 12947 /* enum: single-recipient filter insert */ 12948 #define MC_CMD_FILTER_OP_IN_OP_INSERT 0x0 12949 /* enum: single-recipient filter remove */ 12950 #define MC_CMD_FILTER_OP_IN_OP_REMOVE 0x1 12951 /* enum: multi-recipient filter subscribe */ 12952 #define MC_CMD_FILTER_OP_IN_OP_SUBSCRIBE 0x2 12953 /* enum: multi-recipient filter unsubscribe */ 12954 #define MC_CMD_FILTER_OP_IN_OP_UNSUBSCRIBE 0x3 12955 /* enum: replace one recipient with another (warning - the filter handle may 12956 * change) 12957 */ 12958 #define MC_CMD_FILTER_OP_IN_OP_REPLACE 0x4 12959 /* filter handle (for remove / unsubscribe operations) */ 12960 #define MC_CMD_FILTER_OP_IN_HANDLE_OFST 4 12961 #define MC_CMD_FILTER_OP_IN_HANDLE_LEN 8 12962 #define MC_CMD_FILTER_OP_IN_HANDLE_LO_OFST 4 12963 #define MC_CMD_FILTER_OP_IN_HANDLE_LO_LEN 4 12964 #define MC_CMD_FILTER_OP_IN_HANDLE_LO_LBN 32 12965 #define MC_CMD_FILTER_OP_IN_HANDLE_LO_WIDTH 32 12966 #define MC_CMD_FILTER_OP_IN_HANDLE_HI_OFST 8 12967 #define MC_CMD_FILTER_OP_IN_HANDLE_HI_LEN 4 12968 #define MC_CMD_FILTER_OP_IN_HANDLE_HI_LBN 64 12969 #define MC_CMD_FILTER_OP_IN_HANDLE_HI_WIDTH 32 12970 /* The port ID associated with the v-adaptor which should contain this filter. 12971 */ 12972 #define MC_CMD_FILTER_OP_IN_PORT_ID_OFST 12 12973 #define MC_CMD_FILTER_OP_IN_PORT_ID_LEN 4 12974 /* fields to include in match criteria */ 12975 #define MC_CMD_FILTER_OP_IN_MATCH_FIELDS_OFST 16 12976 #define MC_CMD_FILTER_OP_IN_MATCH_FIELDS_LEN 4 12977 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_IP_OFST 16 12978 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_IP_LBN 0 12979 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_IP_WIDTH 1 12980 #define MC_CMD_FILTER_OP_IN_MATCH_DST_IP_OFST 16 12981 #define MC_CMD_FILTER_OP_IN_MATCH_DST_IP_LBN 1 12982 #define MC_CMD_FILTER_OP_IN_MATCH_DST_IP_WIDTH 1 12983 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_MAC_OFST 16 12984 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_MAC_LBN 2 12985 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_MAC_WIDTH 1 12986 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_PORT_OFST 16 12987 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_PORT_LBN 3 12988 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_PORT_WIDTH 1 12989 #define MC_CMD_FILTER_OP_IN_MATCH_DST_MAC_OFST 16 12990 #define MC_CMD_FILTER_OP_IN_MATCH_DST_MAC_LBN 4 12991 #define MC_CMD_FILTER_OP_IN_MATCH_DST_MAC_WIDTH 1 12992 #define MC_CMD_FILTER_OP_IN_MATCH_DST_PORT_OFST 16 12993 #define MC_CMD_FILTER_OP_IN_MATCH_DST_PORT_LBN 5 12994 #define MC_CMD_FILTER_OP_IN_MATCH_DST_PORT_WIDTH 1 12995 #define MC_CMD_FILTER_OP_IN_MATCH_ETHER_TYPE_OFST 16 12996 #define MC_CMD_FILTER_OP_IN_MATCH_ETHER_TYPE_LBN 6 12997 #define MC_CMD_FILTER_OP_IN_MATCH_ETHER_TYPE_WIDTH 1 12998 #define MC_CMD_FILTER_OP_IN_MATCH_INNER_VLAN_OFST 16 12999 #define MC_CMD_FILTER_OP_IN_MATCH_INNER_VLAN_LBN 7 13000 #define MC_CMD_FILTER_OP_IN_MATCH_INNER_VLAN_WIDTH 1 13001 #define MC_CMD_FILTER_OP_IN_MATCH_OUTER_VLAN_OFST 16 13002 #define MC_CMD_FILTER_OP_IN_MATCH_OUTER_VLAN_LBN 8 13003 #define MC_CMD_FILTER_OP_IN_MATCH_OUTER_VLAN_WIDTH 1 13004 #define MC_CMD_FILTER_OP_IN_MATCH_IP_PROTO_OFST 16 13005 #define MC_CMD_FILTER_OP_IN_MATCH_IP_PROTO_LBN 9 13006 #define MC_CMD_FILTER_OP_IN_MATCH_IP_PROTO_WIDTH 1 13007 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF0_OFST 16 13008 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF0_LBN 10 13009 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF0_WIDTH 1 13010 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF1_OFST 16 13011 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF1_LBN 11 13012 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF1_WIDTH 1 13013 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_OFST 16 13014 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_LBN 29 13015 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_WIDTH 1 13016 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_OFST 16 13017 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_LBN 30 13018 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1 13019 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST_OFST 16 13020 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST_LBN 31 13021 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST_WIDTH 1 13022 /* receive destination */ 13023 #define MC_CMD_FILTER_OP_IN_RX_DEST_OFST 20 13024 #define MC_CMD_FILTER_OP_IN_RX_DEST_LEN 4 13025 /* enum: drop packets */ 13026 #define MC_CMD_FILTER_OP_IN_RX_DEST_DROP 0x0 13027 /* enum: receive to host */ 13028 #define MC_CMD_FILTER_OP_IN_RX_DEST_HOST 0x1 13029 /* enum: receive to MC */ 13030 #define MC_CMD_FILTER_OP_IN_RX_DEST_MC 0x2 13031 /* enum: loop back to TXDP 0 */ 13032 #define MC_CMD_FILTER_OP_IN_RX_DEST_TX0 0x3 13033 /* enum: loop back to TXDP 1 */ 13034 #define MC_CMD_FILTER_OP_IN_RX_DEST_TX1 0x4 13035 /* receive queue handle (for multiple queue modes, this is the base queue) */ 13036 #define MC_CMD_FILTER_OP_IN_RX_QUEUE_OFST 24 13037 #define MC_CMD_FILTER_OP_IN_RX_QUEUE_LEN 4 13038 /* receive mode */ 13039 #define MC_CMD_FILTER_OP_IN_RX_MODE_OFST 28 13040 #define MC_CMD_FILTER_OP_IN_RX_MODE_LEN 4 13041 /* enum: receive to just the specified queue */ 13042 #define MC_CMD_FILTER_OP_IN_RX_MODE_SIMPLE 0x0 13043 /* enum: receive to multiple queues using RSS context */ 13044 #define MC_CMD_FILTER_OP_IN_RX_MODE_RSS 0x1 13045 /* enum: receive to multiple queues using .1p mapping */ 13046 #define MC_CMD_FILTER_OP_IN_RX_MODE_DOT1P_MAPPING 0x2 13047 /* enum: install a filter entry that will never match; for test purposes only 13048 */ 13049 #define MC_CMD_FILTER_OP_IN_RX_MODE_TEST_NEVER_MATCH 0x80000000 13050 /* RSS context (for RX_MODE_RSS) or .1p mapping handle (for 13051 * RX_MODE_DOT1P_MAPPING), as returned by MC_CMD_RSS_CONTEXT_ALLOC or 13052 * MC_CMD_DOT1P_MAPPING_ALLOC. 13053 */ 13054 #define MC_CMD_FILTER_OP_IN_RX_CONTEXT_OFST 32 13055 #define MC_CMD_FILTER_OP_IN_RX_CONTEXT_LEN 4 13056 /* transmit domain (reserved; set to 0) */ 13057 #define MC_CMD_FILTER_OP_IN_TX_DOMAIN_OFST 36 13058 #define MC_CMD_FILTER_OP_IN_TX_DOMAIN_LEN 4 13059 /* transmit destination (either set the MAC and/or PM bits for explicit 13060 * control, or set this field to TX_DEST_DEFAULT for sensible default 13061 * behaviour) 13062 */ 13063 #define MC_CMD_FILTER_OP_IN_TX_DEST_OFST 40 13064 #define MC_CMD_FILTER_OP_IN_TX_DEST_LEN 4 13065 /* enum: request default behaviour (based on filter type) */ 13066 #define MC_CMD_FILTER_OP_IN_TX_DEST_DEFAULT 0xffffffff 13067 #define MC_CMD_FILTER_OP_IN_TX_DEST_MAC_OFST 40 13068 #define MC_CMD_FILTER_OP_IN_TX_DEST_MAC_LBN 0 13069 #define MC_CMD_FILTER_OP_IN_TX_DEST_MAC_WIDTH 1 13070 #define MC_CMD_FILTER_OP_IN_TX_DEST_PM_OFST 40 13071 #define MC_CMD_FILTER_OP_IN_TX_DEST_PM_LBN 1 13072 #define MC_CMD_FILTER_OP_IN_TX_DEST_PM_WIDTH 1 13073 /* source MAC address to match (as bytes in network order) */ 13074 #define MC_CMD_FILTER_OP_IN_SRC_MAC_OFST 44 13075 #define MC_CMD_FILTER_OP_IN_SRC_MAC_LEN 6 13076 /* source port to match (as bytes in network order) */ 13077 #define MC_CMD_FILTER_OP_IN_SRC_PORT_OFST 50 13078 #define MC_CMD_FILTER_OP_IN_SRC_PORT_LEN 2 13079 /* destination MAC address to match (as bytes in network order) */ 13080 #define MC_CMD_FILTER_OP_IN_DST_MAC_OFST 52 13081 #define MC_CMD_FILTER_OP_IN_DST_MAC_LEN 6 13082 /* destination port to match (as bytes in network order) */ 13083 #define MC_CMD_FILTER_OP_IN_DST_PORT_OFST 58 13084 #define MC_CMD_FILTER_OP_IN_DST_PORT_LEN 2 13085 /* Ethernet type to match (as bytes in network order) */ 13086 #define MC_CMD_FILTER_OP_IN_ETHER_TYPE_OFST 60 13087 #define MC_CMD_FILTER_OP_IN_ETHER_TYPE_LEN 2 13088 /* Inner VLAN tag to match (as bytes in network order) */ 13089 #define MC_CMD_FILTER_OP_IN_INNER_VLAN_OFST 62 13090 #define MC_CMD_FILTER_OP_IN_INNER_VLAN_LEN 2 13091 /* Outer VLAN tag to match (as bytes in network order) */ 13092 #define MC_CMD_FILTER_OP_IN_OUTER_VLAN_OFST 64 13093 #define MC_CMD_FILTER_OP_IN_OUTER_VLAN_LEN 2 13094 /* IP protocol to match (in low byte; set high byte to 0) */ 13095 #define MC_CMD_FILTER_OP_IN_IP_PROTO_OFST 66 13096 #define MC_CMD_FILTER_OP_IN_IP_PROTO_LEN 2 13097 /* Firmware defined register 0 to match (reserved; set to 0) */ 13098 #define MC_CMD_FILTER_OP_IN_FWDEF0_OFST 68 13099 #define MC_CMD_FILTER_OP_IN_FWDEF0_LEN 4 13100 /* Firmware defined register 1 to match (reserved; set to 0) */ 13101 #define MC_CMD_FILTER_OP_IN_FWDEF1_OFST 72 13102 #define MC_CMD_FILTER_OP_IN_FWDEF1_LEN 4 13103 /* source IP address to match (as bytes in network order; set last 12 bytes to 13104 * 0 for IPv4 address) 13105 */ 13106 #define MC_CMD_FILTER_OP_IN_SRC_IP_OFST 76 13107 #define MC_CMD_FILTER_OP_IN_SRC_IP_LEN 16 13108 /* destination IP address to match (as bytes in network order; set last 12 13109 * bytes to 0 for IPv4 address) 13110 */ 13111 #define MC_CMD_FILTER_OP_IN_DST_IP_OFST 92 13112 #define MC_CMD_FILTER_OP_IN_DST_IP_LEN 16 13113 13114 /* MC_CMD_FILTER_OP_EXT_IN msgrequest: Extension to MC_CMD_FILTER_OP_IN to 13115 * include handling of VXLAN/NVGRE encapsulated frame filtering (which is 13116 * supported on Medford only). 13117 */ 13118 #define MC_CMD_FILTER_OP_EXT_IN_LEN 172 13119 /* identifies the type of operation requested */ 13120 #define MC_CMD_FILTER_OP_EXT_IN_OP_OFST 0 13121 #define MC_CMD_FILTER_OP_EXT_IN_OP_LEN 4 13122 /* Enum values, see field(s): */ 13123 /* MC_CMD_FILTER_OP_IN/OP */ 13124 /* filter handle (for remove / unsubscribe operations) */ 13125 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_OFST 4 13126 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LEN 8 13127 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_OFST 4 13128 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_LEN 4 13129 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_LBN 32 13130 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_WIDTH 32 13131 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_OFST 8 13132 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_LEN 4 13133 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_LBN 64 13134 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_WIDTH 32 13135 /* The port ID associated with the v-adaptor which should contain this filter. 13136 */ 13137 #define MC_CMD_FILTER_OP_EXT_IN_PORT_ID_OFST 12 13138 #define MC_CMD_FILTER_OP_EXT_IN_PORT_ID_LEN 4 13139 /* fields to include in match criteria */ 13140 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FIELDS_OFST 16 13141 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FIELDS_LEN 4 13142 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_IP_OFST 16 13143 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_IP_LBN 0 13144 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_IP_WIDTH 1 13145 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_IP_OFST 16 13146 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_IP_LBN 1 13147 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_IP_WIDTH 1 13148 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_MAC_OFST 16 13149 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_MAC_LBN 2 13150 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_MAC_WIDTH 1 13151 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_PORT_OFST 16 13152 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_PORT_LBN 3 13153 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_PORT_WIDTH 1 13154 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_MAC_OFST 16 13155 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_MAC_LBN 4 13156 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_MAC_WIDTH 1 13157 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_PORT_OFST 16 13158 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_PORT_LBN 5 13159 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_PORT_WIDTH 1 13160 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_ETHER_TYPE_OFST 16 13161 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_ETHER_TYPE_LBN 6 13162 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_ETHER_TYPE_WIDTH 1 13163 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_INNER_VLAN_OFST 16 13164 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_INNER_VLAN_LBN 7 13165 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_INNER_VLAN_WIDTH 1 13166 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_OUTER_VLAN_OFST 16 13167 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_OUTER_VLAN_LBN 8 13168 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_OUTER_VLAN_WIDTH 1 13169 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IP_PROTO_OFST 16 13170 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IP_PROTO_LBN 9 13171 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IP_PROTO_WIDTH 1 13172 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FWDEF0_OFST 16 13173 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FWDEF0_LBN 10 13174 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FWDEF0_WIDTH 1 13175 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_VNI_OR_VSID_OFST 16 13176 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_VNI_OR_VSID_LBN 11 13177 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_VNI_OR_VSID_WIDTH 1 13178 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_IP_OFST 16 13179 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_IP_LBN 12 13180 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_IP_WIDTH 1 13181 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_IP_OFST 16 13182 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_IP_LBN 13 13183 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_IP_WIDTH 1 13184 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_MAC_OFST 16 13185 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_MAC_LBN 14 13186 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_MAC_WIDTH 1 13187 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_PORT_OFST 16 13188 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_PORT_LBN 15 13189 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_PORT_WIDTH 1 13190 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_MAC_OFST 16 13191 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_MAC_LBN 16 13192 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_MAC_WIDTH 1 13193 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_PORT_OFST 16 13194 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_PORT_LBN 17 13195 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_PORT_WIDTH 1 13196 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_ETHER_TYPE_OFST 16 13197 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_ETHER_TYPE_LBN 18 13198 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_ETHER_TYPE_WIDTH 1 13199 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_INNER_VLAN_OFST 16 13200 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_INNER_VLAN_LBN 19 13201 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_INNER_VLAN_WIDTH 1 13202 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_OUTER_VLAN_OFST 16 13203 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_OUTER_VLAN_LBN 20 13204 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_OUTER_VLAN_WIDTH 1 13205 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_IP_PROTO_OFST 16 13206 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_IP_PROTO_LBN 21 13207 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_IP_PROTO_WIDTH 1 13208 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF0_OFST 16 13209 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF0_LBN 22 13210 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF0_WIDTH 1 13211 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF1_OFST 16 13212 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF1_LBN 23 13213 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF1_WIDTH 1 13214 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_OFST 16 13215 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_LBN 24 13216 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_WIDTH 1 13217 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_OFST 16 13218 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_LBN 25 13219 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_WIDTH 1 13220 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_OFST 16 13221 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_LBN 29 13222 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_WIDTH 1 13223 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_MCAST_DST_OFST 16 13224 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_MCAST_DST_LBN 30 13225 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1 13226 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_UCAST_DST_OFST 16 13227 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_UCAST_DST_LBN 31 13228 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_UCAST_DST_WIDTH 1 13229 /* receive destination */ 13230 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_OFST 20 13231 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_LEN 4 13232 /* enum: drop packets */ 13233 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_DROP 0x0 13234 /* enum: receive to host */ 13235 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_HOST 0x1 13236 /* enum: receive to MC */ 13237 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_MC 0x2 13238 /* enum: loop back to TXDP 0 */ 13239 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_TX0 0x3 13240 /* enum: loop back to TXDP 1 */ 13241 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_TX1 0x4 13242 /* receive queue handle (for multiple queue modes, this is the base queue) */ 13243 #define MC_CMD_FILTER_OP_EXT_IN_RX_QUEUE_OFST 24 13244 #define MC_CMD_FILTER_OP_EXT_IN_RX_QUEUE_LEN 4 13245 /* receive mode */ 13246 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_OFST 28 13247 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_LEN 4 13248 /* enum: receive to just the specified queue */ 13249 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_SIMPLE 0x0 13250 /* enum: receive to multiple queues using RSS context */ 13251 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_RSS 0x1 13252 /* enum: receive to multiple queues using .1p mapping */ 13253 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_DOT1P_MAPPING 0x2 13254 /* enum: install a filter entry that will never match; for test purposes only 13255 */ 13256 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_TEST_NEVER_MATCH 0x80000000 13257 /* RSS context (for RX_MODE_RSS) or .1p mapping handle (for 13258 * RX_MODE_DOT1P_MAPPING), as returned by MC_CMD_RSS_CONTEXT_ALLOC or 13259 * MC_CMD_DOT1P_MAPPING_ALLOC. 13260 */ 13261 #define MC_CMD_FILTER_OP_EXT_IN_RX_CONTEXT_OFST 32 13262 #define MC_CMD_FILTER_OP_EXT_IN_RX_CONTEXT_LEN 4 13263 /* transmit domain (reserved; set to 0) */ 13264 #define MC_CMD_FILTER_OP_EXT_IN_TX_DOMAIN_OFST 36 13265 #define MC_CMD_FILTER_OP_EXT_IN_TX_DOMAIN_LEN 4 13266 /* transmit destination (either set the MAC and/or PM bits for explicit 13267 * control, or set this field to TX_DEST_DEFAULT for sensible default 13268 * behaviour) 13269 */ 13270 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_OFST 40 13271 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_LEN 4 13272 /* enum: request default behaviour (based on filter type) */ 13273 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_DEFAULT 0xffffffff 13274 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_MAC_OFST 40 13275 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_MAC_LBN 0 13276 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_MAC_WIDTH 1 13277 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_PM_OFST 40 13278 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_PM_LBN 1 13279 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_PM_WIDTH 1 13280 /* source MAC address to match (as bytes in network order) */ 13281 #define MC_CMD_FILTER_OP_EXT_IN_SRC_MAC_OFST 44 13282 #define MC_CMD_FILTER_OP_EXT_IN_SRC_MAC_LEN 6 13283 /* source port to match (as bytes in network order) */ 13284 #define MC_CMD_FILTER_OP_EXT_IN_SRC_PORT_OFST 50 13285 #define MC_CMD_FILTER_OP_EXT_IN_SRC_PORT_LEN 2 13286 /* destination MAC address to match (as bytes in network order) */ 13287 #define MC_CMD_FILTER_OP_EXT_IN_DST_MAC_OFST 52 13288 #define MC_CMD_FILTER_OP_EXT_IN_DST_MAC_LEN 6 13289 /* destination port to match (as bytes in network order) */ 13290 #define MC_CMD_FILTER_OP_EXT_IN_DST_PORT_OFST 58 13291 #define MC_CMD_FILTER_OP_EXT_IN_DST_PORT_LEN 2 13292 /* Ethernet type to match (as bytes in network order) */ 13293 #define MC_CMD_FILTER_OP_EXT_IN_ETHER_TYPE_OFST 60 13294 #define MC_CMD_FILTER_OP_EXT_IN_ETHER_TYPE_LEN 2 13295 /* Inner VLAN tag to match (as bytes in network order) */ 13296 #define MC_CMD_FILTER_OP_EXT_IN_INNER_VLAN_OFST 62 13297 #define MC_CMD_FILTER_OP_EXT_IN_INNER_VLAN_LEN 2 13298 /* Outer VLAN tag to match (as bytes in network order) */ 13299 #define MC_CMD_FILTER_OP_EXT_IN_OUTER_VLAN_OFST 64 13300 #define MC_CMD_FILTER_OP_EXT_IN_OUTER_VLAN_LEN 2 13301 /* IP protocol to match (in low byte; set high byte to 0) */ 13302 #define MC_CMD_FILTER_OP_EXT_IN_IP_PROTO_OFST 66 13303 #define MC_CMD_FILTER_OP_EXT_IN_IP_PROTO_LEN 2 13304 /* Firmware defined register 0 to match (reserved; set to 0) */ 13305 #define MC_CMD_FILTER_OP_EXT_IN_FWDEF0_OFST 68 13306 #define MC_CMD_FILTER_OP_EXT_IN_FWDEF0_LEN 4 13307 /* VNI (for VXLAN/Geneve, when IP protocol is UDP) or VSID (for NVGRE, when IP 13308 * protocol is GRE) to match (as bytes in network order; set last byte to 0 for 13309 * VXLAN/NVGRE, or 1 for Geneve) 13310 */ 13311 #define MC_CMD_FILTER_OP_EXT_IN_VNI_OR_VSID_OFST 72 13312 #define MC_CMD_FILTER_OP_EXT_IN_VNI_OR_VSID_LEN 4 13313 #define MC_CMD_FILTER_OP_EXT_IN_VNI_VALUE_OFST 72 13314 #define MC_CMD_FILTER_OP_EXT_IN_VNI_VALUE_LBN 0 13315 #define MC_CMD_FILTER_OP_EXT_IN_VNI_VALUE_WIDTH 24 13316 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_OFST 72 13317 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_LBN 24 13318 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_WIDTH 8 13319 /* enum: Match VXLAN traffic with this VNI */ 13320 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_VXLAN 0x0 13321 /* enum: Match Geneve traffic with this VNI */ 13322 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_GENEVE 0x1 13323 /* enum: Reserved for experimental development use */ 13324 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_EXPERIMENTAL 0xfe 13325 #define MC_CMD_FILTER_OP_EXT_IN_VSID_VALUE_OFST 72 13326 #define MC_CMD_FILTER_OP_EXT_IN_VSID_VALUE_LBN 0 13327 #define MC_CMD_FILTER_OP_EXT_IN_VSID_VALUE_WIDTH 24 13328 #define MC_CMD_FILTER_OP_EXT_IN_VSID_TYPE_OFST 72 13329 #define MC_CMD_FILTER_OP_EXT_IN_VSID_TYPE_LBN 24 13330 #define MC_CMD_FILTER_OP_EXT_IN_VSID_TYPE_WIDTH 8 13331 /* enum: Match NVGRE traffic with this VSID */ 13332 #define MC_CMD_FILTER_OP_EXT_IN_VSID_TYPE_NVGRE 0x0 13333 /* source IP address to match (as bytes in network order; set last 12 bytes to 13334 * 0 for IPv4 address) 13335 */ 13336 #define MC_CMD_FILTER_OP_EXT_IN_SRC_IP_OFST 76 13337 #define MC_CMD_FILTER_OP_EXT_IN_SRC_IP_LEN 16 13338 /* destination IP address to match (as bytes in network order; set last 12 13339 * bytes to 0 for IPv4 address) 13340 */ 13341 #define MC_CMD_FILTER_OP_EXT_IN_DST_IP_OFST 92 13342 #define MC_CMD_FILTER_OP_EXT_IN_DST_IP_LEN 16 13343 /* VXLAN/NVGRE inner frame source MAC address to match (as bytes in network 13344 * order) 13345 */ 13346 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_MAC_OFST 108 13347 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_MAC_LEN 6 13348 /* VXLAN/NVGRE inner frame source port to match (as bytes in network order) */ 13349 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_PORT_OFST 114 13350 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_PORT_LEN 2 13351 /* VXLAN/NVGRE inner frame destination MAC address to match (as bytes in 13352 * network order) 13353 */ 13354 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_MAC_OFST 116 13355 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_MAC_LEN 6 13356 /* VXLAN/NVGRE inner frame destination port to match (as bytes in network 13357 * order) 13358 */ 13359 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_PORT_OFST 122 13360 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_PORT_LEN 2 13361 /* VXLAN/NVGRE inner frame Ethernet type to match (as bytes in network order) 13362 */ 13363 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_ETHER_TYPE_OFST 124 13364 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_ETHER_TYPE_LEN 2 13365 /* VXLAN/NVGRE inner frame Inner VLAN tag to match (as bytes in network order) 13366 */ 13367 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_INNER_VLAN_OFST 126 13368 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_INNER_VLAN_LEN 2 13369 /* VXLAN/NVGRE inner frame Outer VLAN tag to match (as bytes in network order) 13370 */ 13371 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_OUTER_VLAN_OFST 128 13372 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_OUTER_VLAN_LEN 2 13373 /* VXLAN/NVGRE inner frame IP protocol to match (in low byte; set high byte to 13374 * 0) 13375 */ 13376 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_IP_PROTO_OFST 130 13377 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_IP_PROTO_LEN 2 13378 /* VXLAN/NVGRE inner frame Firmware defined register 0 to match (reserved; set 13379 * to 0) 13380 */ 13381 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF0_OFST 132 13382 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF0_LEN 4 13383 /* VXLAN/NVGRE inner frame Firmware defined register 1 to match (reserved; set 13384 * to 0) 13385 */ 13386 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF1_OFST 136 13387 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF1_LEN 4 13388 /* VXLAN/NVGRE inner frame source IP address to match (as bytes in network 13389 * order; set last 12 bytes to 0 for IPv4 address) 13390 */ 13391 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_IP_OFST 140 13392 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_IP_LEN 16 13393 /* VXLAN/NVGRE inner frame destination IP address to match (as bytes in network 13394 * order; set last 12 bytes to 0 for IPv4 address) 13395 */ 13396 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_IP_OFST 156 13397 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_IP_LEN 16 13398 13399 /* MC_CMD_FILTER_OP_V3_IN msgrequest: FILTER_OP extension to support additional 13400 * filter actions for EF100. Some of these actions are also supported on EF10, 13401 * for Intel's DPDK (Data Plane Development Kit, dpdk.org) via its rte_flow 13402 * API. In the latter case, this extension is only useful with the sfc_efx 13403 * driver included as part of DPDK, used in conjunction with the dpdk datapath 13404 * firmware variant. 13405 */ 13406 #define MC_CMD_FILTER_OP_V3_IN_LEN 180 13407 /* identifies the type of operation requested */ 13408 #define MC_CMD_FILTER_OP_V3_IN_OP_OFST 0 13409 #define MC_CMD_FILTER_OP_V3_IN_OP_LEN 4 13410 /* Enum values, see field(s): */ 13411 /* MC_CMD_FILTER_OP_IN/OP */ 13412 /* filter handle (for remove / unsubscribe operations) */ 13413 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_OFST 4 13414 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LEN 8 13415 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_OFST 4 13416 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_LEN 4 13417 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_LBN 32 13418 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_WIDTH 32 13419 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_OFST 8 13420 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_LEN 4 13421 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_LBN 64 13422 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_WIDTH 32 13423 /* The port ID associated with the v-adaptor which should contain this filter. 13424 */ 13425 #define MC_CMD_FILTER_OP_V3_IN_PORT_ID_OFST 12 13426 #define MC_CMD_FILTER_OP_V3_IN_PORT_ID_LEN 4 13427 /* fields to include in match criteria */ 13428 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FIELDS_OFST 16 13429 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FIELDS_LEN 4 13430 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_IP_OFST 16 13431 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_IP_LBN 0 13432 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_IP_WIDTH 1 13433 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_IP_OFST 16 13434 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_IP_LBN 1 13435 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_IP_WIDTH 1 13436 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_MAC_OFST 16 13437 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_MAC_LBN 2 13438 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_MAC_WIDTH 1 13439 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_PORT_OFST 16 13440 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_PORT_LBN 3 13441 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_PORT_WIDTH 1 13442 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_MAC_OFST 16 13443 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_MAC_LBN 4 13444 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_MAC_WIDTH 1 13445 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_PORT_OFST 16 13446 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_PORT_LBN 5 13447 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_PORT_WIDTH 1 13448 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ETHER_TYPE_OFST 16 13449 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ETHER_TYPE_LBN 6 13450 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ETHER_TYPE_WIDTH 1 13451 #define MC_CMD_FILTER_OP_V3_IN_MATCH_INNER_VLAN_OFST 16 13452 #define MC_CMD_FILTER_OP_V3_IN_MATCH_INNER_VLAN_LBN 7 13453 #define MC_CMD_FILTER_OP_V3_IN_MATCH_INNER_VLAN_WIDTH 1 13454 #define MC_CMD_FILTER_OP_V3_IN_MATCH_OUTER_VLAN_OFST 16 13455 #define MC_CMD_FILTER_OP_V3_IN_MATCH_OUTER_VLAN_LBN 8 13456 #define MC_CMD_FILTER_OP_V3_IN_MATCH_OUTER_VLAN_WIDTH 1 13457 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IP_PROTO_OFST 16 13458 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IP_PROTO_LBN 9 13459 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IP_PROTO_WIDTH 1 13460 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FWDEF0_OFST 16 13461 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FWDEF0_LBN 10 13462 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FWDEF0_WIDTH 1 13463 #define MC_CMD_FILTER_OP_V3_IN_MATCH_VNI_OR_VSID_OFST 16 13464 #define MC_CMD_FILTER_OP_V3_IN_MATCH_VNI_OR_VSID_LBN 11 13465 #define MC_CMD_FILTER_OP_V3_IN_MATCH_VNI_OR_VSID_WIDTH 1 13466 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_IP_OFST 16 13467 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_IP_LBN 12 13468 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_IP_WIDTH 1 13469 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_IP_OFST 16 13470 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_IP_LBN 13 13471 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_IP_WIDTH 1 13472 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_MAC_OFST 16 13473 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_MAC_LBN 14 13474 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_MAC_WIDTH 1 13475 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_PORT_OFST 16 13476 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_PORT_LBN 15 13477 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_PORT_WIDTH 1 13478 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_MAC_OFST 16 13479 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_MAC_LBN 16 13480 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_MAC_WIDTH 1 13481 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_PORT_OFST 16 13482 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_PORT_LBN 17 13483 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_PORT_WIDTH 1 13484 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_ETHER_TYPE_OFST 16 13485 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_ETHER_TYPE_LBN 18 13486 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_ETHER_TYPE_WIDTH 1 13487 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_INNER_VLAN_OFST 16 13488 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_INNER_VLAN_LBN 19 13489 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_INNER_VLAN_WIDTH 1 13490 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_OUTER_VLAN_OFST 16 13491 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_OUTER_VLAN_LBN 20 13492 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_OUTER_VLAN_WIDTH 1 13493 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_IP_PROTO_OFST 16 13494 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_IP_PROTO_LBN 21 13495 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_IP_PROTO_WIDTH 1 13496 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF0_OFST 16 13497 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF0_LBN 22 13498 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF0_WIDTH 1 13499 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF1_OFST 16 13500 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF1_LBN 23 13501 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF1_WIDTH 1 13502 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_OFST 16 13503 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_LBN 24 13504 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_WIDTH 1 13505 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_OFST 16 13506 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_LBN 25 13507 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_WIDTH 1 13508 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_OFST 16 13509 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_LBN 29 13510 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_WIDTH 1 13511 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_MCAST_DST_OFST 16 13512 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_MCAST_DST_LBN 30 13513 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1 13514 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_UCAST_DST_OFST 16 13515 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_UCAST_DST_LBN 31 13516 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_UCAST_DST_WIDTH 1 13517 /* receive destination */ 13518 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_OFST 20 13519 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_LEN 4 13520 /* enum: drop packets */ 13521 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_DROP 0x0 13522 /* enum: receive to host */ 13523 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_HOST 0x1 13524 /* enum: receive to MC */ 13525 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_MC 0x2 13526 /* enum: loop back to TXDP 0 */ 13527 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_TX0 0x3 13528 /* enum: loop back to TXDP 1 */ 13529 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_TX1 0x4 13530 /* receive queue handle (for multiple queue modes, this is the base queue) */ 13531 #define MC_CMD_FILTER_OP_V3_IN_RX_QUEUE_OFST 24 13532 #define MC_CMD_FILTER_OP_V3_IN_RX_QUEUE_LEN 4 13533 /* receive mode */ 13534 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_OFST 28 13535 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_LEN 4 13536 /* enum: receive to just the specified queue */ 13537 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_SIMPLE 0x0 13538 /* enum: receive to multiple queues using RSS context */ 13539 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_RSS 0x1 13540 /* enum: receive to multiple queues using .1p mapping */ 13541 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_DOT1P_MAPPING 0x2 13542 /* enum: install a filter entry that will never match; for test purposes only 13543 */ 13544 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_TEST_NEVER_MATCH 0x80000000 13545 /* RSS context (for RX_MODE_RSS) or .1p mapping handle (for 13546 * RX_MODE_DOT1P_MAPPING), as returned by MC_CMD_RSS_CONTEXT_ALLOC or 13547 * MC_CMD_DOT1P_MAPPING_ALLOC. 13548 */ 13549 #define MC_CMD_FILTER_OP_V3_IN_RX_CONTEXT_OFST 32 13550 #define MC_CMD_FILTER_OP_V3_IN_RX_CONTEXT_LEN 4 13551 /* transmit domain (reserved; set to 0) */ 13552 #define MC_CMD_FILTER_OP_V3_IN_TX_DOMAIN_OFST 36 13553 #define MC_CMD_FILTER_OP_V3_IN_TX_DOMAIN_LEN 4 13554 /* transmit destination (either set the MAC and/or PM bits for explicit 13555 * control, or set this field to TX_DEST_DEFAULT for sensible default 13556 * behaviour) 13557 */ 13558 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_OFST 40 13559 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_LEN 4 13560 /* enum: request default behaviour (based on filter type) */ 13561 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_DEFAULT 0xffffffff 13562 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_MAC_OFST 40 13563 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_MAC_LBN 0 13564 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_MAC_WIDTH 1 13565 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_PM_OFST 40 13566 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_PM_LBN 1 13567 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_PM_WIDTH 1 13568 /* source MAC address to match (as bytes in network order) */ 13569 #define MC_CMD_FILTER_OP_V3_IN_SRC_MAC_OFST 44 13570 #define MC_CMD_FILTER_OP_V3_IN_SRC_MAC_LEN 6 13571 /* source port to match (as bytes in network order) */ 13572 #define MC_CMD_FILTER_OP_V3_IN_SRC_PORT_OFST 50 13573 #define MC_CMD_FILTER_OP_V3_IN_SRC_PORT_LEN 2 13574 /* destination MAC address to match (as bytes in network order) */ 13575 #define MC_CMD_FILTER_OP_V3_IN_DST_MAC_OFST 52 13576 #define MC_CMD_FILTER_OP_V3_IN_DST_MAC_LEN 6 13577 /* destination port to match (as bytes in network order) */ 13578 #define MC_CMD_FILTER_OP_V3_IN_DST_PORT_OFST 58 13579 #define MC_CMD_FILTER_OP_V3_IN_DST_PORT_LEN 2 13580 /* Ethernet type to match (as bytes in network order) */ 13581 #define MC_CMD_FILTER_OP_V3_IN_ETHER_TYPE_OFST 60 13582 #define MC_CMD_FILTER_OP_V3_IN_ETHER_TYPE_LEN 2 13583 /* Inner VLAN tag to match (as bytes in network order) */ 13584 #define MC_CMD_FILTER_OP_V3_IN_INNER_VLAN_OFST 62 13585 #define MC_CMD_FILTER_OP_V3_IN_INNER_VLAN_LEN 2 13586 /* Outer VLAN tag to match (as bytes in network order) */ 13587 #define MC_CMD_FILTER_OP_V3_IN_OUTER_VLAN_OFST 64 13588 #define MC_CMD_FILTER_OP_V3_IN_OUTER_VLAN_LEN 2 13589 /* IP protocol to match (in low byte; set high byte to 0) */ 13590 #define MC_CMD_FILTER_OP_V3_IN_IP_PROTO_OFST 66 13591 #define MC_CMD_FILTER_OP_V3_IN_IP_PROTO_LEN 2 13592 /* Firmware defined register 0 to match (reserved; set to 0) */ 13593 #define MC_CMD_FILTER_OP_V3_IN_FWDEF0_OFST 68 13594 #define MC_CMD_FILTER_OP_V3_IN_FWDEF0_LEN 4 13595 /* VNI (for VXLAN/Geneve, when IP protocol is UDP) or VSID (for NVGRE, when IP 13596 * protocol is GRE) to match (as bytes in network order; set last byte to 0 for 13597 * VXLAN/NVGRE, or 1 for Geneve) 13598 */ 13599 #define MC_CMD_FILTER_OP_V3_IN_VNI_OR_VSID_OFST 72 13600 #define MC_CMD_FILTER_OP_V3_IN_VNI_OR_VSID_LEN 4 13601 #define MC_CMD_FILTER_OP_V3_IN_VNI_VALUE_OFST 72 13602 #define MC_CMD_FILTER_OP_V3_IN_VNI_VALUE_LBN 0 13603 #define MC_CMD_FILTER_OP_V3_IN_VNI_VALUE_WIDTH 24 13604 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_OFST 72 13605 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_LBN 24 13606 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_WIDTH 8 13607 /* enum: Match VXLAN traffic with this VNI */ 13608 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_VXLAN 0x0 13609 /* enum: Match Geneve traffic with this VNI */ 13610 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_GENEVE 0x1 13611 /* enum: Reserved for experimental development use */ 13612 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_EXPERIMENTAL 0xfe 13613 #define MC_CMD_FILTER_OP_V3_IN_VSID_VALUE_OFST 72 13614 #define MC_CMD_FILTER_OP_V3_IN_VSID_VALUE_LBN 0 13615 #define MC_CMD_FILTER_OP_V3_IN_VSID_VALUE_WIDTH 24 13616 #define MC_CMD_FILTER_OP_V3_IN_VSID_TYPE_OFST 72 13617 #define MC_CMD_FILTER_OP_V3_IN_VSID_TYPE_LBN 24 13618 #define MC_CMD_FILTER_OP_V3_IN_VSID_TYPE_WIDTH 8 13619 /* enum: Match NVGRE traffic with this VSID */ 13620 #define MC_CMD_FILTER_OP_V3_IN_VSID_TYPE_NVGRE 0x0 13621 /* source IP address to match (as bytes in network order; set last 12 bytes to 13622 * 0 for IPv4 address) 13623 */ 13624 #define MC_CMD_FILTER_OP_V3_IN_SRC_IP_OFST 76 13625 #define MC_CMD_FILTER_OP_V3_IN_SRC_IP_LEN 16 13626 /* destination IP address to match (as bytes in network order; set last 12 13627 * bytes to 0 for IPv4 address) 13628 */ 13629 #define MC_CMD_FILTER_OP_V3_IN_DST_IP_OFST 92 13630 #define MC_CMD_FILTER_OP_V3_IN_DST_IP_LEN 16 13631 /* VXLAN/NVGRE inner frame source MAC address to match (as bytes in network 13632 * order) 13633 */ 13634 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_MAC_OFST 108 13635 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_MAC_LEN 6 13636 /* VXLAN/NVGRE inner frame source port to match (as bytes in network order) */ 13637 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_PORT_OFST 114 13638 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_PORT_LEN 2 13639 /* VXLAN/NVGRE inner frame destination MAC address to match (as bytes in 13640 * network order) 13641 */ 13642 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_MAC_OFST 116 13643 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_MAC_LEN 6 13644 /* VXLAN/NVGRE inner frame destination port to match (as bytes in network 13645 * order) 13646 */ 13647 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_PORT_OFST 122 13648 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_PORT_LEN 2 13649 /* VXLAN/NVGRE inner frame Ethernet type to match (as bytes in network order) 13650 */ 13651 #define MC_CMD_FILTER_OP_V3_IN_IFRM_ETHER_TYPE_OFST 124 13652 #define MC_CMD_FILTER_OP_V3_IN_IFRM_ETHER_TYPE_LEN 2 13653 /* VXLAN/NVGRE inner frame Inner VLAN tag to match (as bytes in network order) 13654 */ 13655 #define MC_CMD_FILTER_OP_V3_IN_IFRM_INNER_VLAN_OFST 126 13656 #define MC_CMD_FILTER_OP_V3_IN_IFRM_INNER_VLAN_LEN 2 13657 /* VXLAN/NVGRE inner frame Outer VLAN tag to match (as bytes in network order) 13658 */ 13659 #define MC_CMD_FILTER_OP_V3_IN_IFRM_OUTER_VLAN_OFST 128 13660 #define MC_CMD_FILTER_OP_V3_IN_IFRM_OUTER_VLAN_LEN 2 13661 /* VXLAN/NVGRE inner frame IP protocol to match (in low byte; set high byte to 13662 * 0) 13663 */ 13664 #define MC_CMD_FILTER_OP_V3_IN_IFRM_IP_PROTO_OFST 130 13665 #define MC_CMD_FILTER_OP_V3_IN_IFRM_IP_PROTO_LEN 2 13666 /* VXLAN/NVGRE inner frame Firmware defined register 0 to match (reserved; set 13667 * to 0) 13668 */ 13669 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF0_OFST 132 13670 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF0_LEN 4 13671 /* VXLAN/NVGRE inner frame Firmware defined register 1 to match (reserved; set 13672 * to 0) 13673 */ 13674 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF1_OFST 136 13675 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF1_LEN 4 13676 /* VXLAN/NVGRE inner frame source IP address to match (as bytes in network 13677 * order; set last 12 bytes to 0 for IPv4 address) 13678 */ 13679 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_IP_OFST 140 13680 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_IP_LEN 16 13681 /* VXLAN/NVGRE inner frame destination IP address to match (as bytes in network 13682 * order; set last 12 bytes to 0 for IPv4 address) 13683 */ 13684 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_IP_OFST 156 13685 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_IP_LEN 16 13686 /* Flags controlling mutations of the packet and/or metadata when the filter is 13687 * matched. The user_mark and user_flag fields' logic is as follows: if 13688 * (req.MATCH_BITOR_FLAG == 1) user_flag = req.MATCH_SET_FLAG bit_or user_flag; 13689 * else user_flag = req.MATCH_SET_FLAG; if (req.MATCH_SET_MARK == 0) user_mark 13690 * = 0; else if (req.MATCH_BITOR_MARK == 1) user_mark = req.MATCH_SET_MARK 13691 * bit_or user_mark; else user_mark = req.MATCH_SET_MARK; N.B. These flags 13692 * overlap with the MATCH_ACTION field, which is deprecated in favour of this 13693 * field. For the cases where these flags induce a valid encoding of the 13694 * MATCH_ACTION field, the semantics agree. 13695 */ 13696 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_FLAGS_OFST 172 13697 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_FLAGS_LEN 4 13698 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_FLAG_OFST 172 13699 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_FLAG_LBN 0 13700 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_FLAG_WIDTH 1 13701 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_OFST 172 13702 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_LBN 1 13703 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_WIDTH 1 13704 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_FLAG_OFST 172 13705 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_FLAG_LBN 2 13706 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_FLAG_WIDTH 1 13707 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_MARK_OFST 172 13708 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_MARK_LBN 3 13709 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_MARK_WIDTH 1 13710 #define MC_CMD_FILTER_OP_V3_IN_MATCH_STRIP_VLAN_OFST 172 13711 #define MC_CMD_FILTER_OP_V3_IN_MATCH_STRIP_VLAN_LBN 4 13712 #define MC_CMD_FILTER_OP_V3_IN_MATCH_STRIP_VLAN_WIDTH 1 13713 /* Deprecated: the overlapping MATCH_ACTION_FLAGS field exposes all of the 13714 * functionality of this field in an ABI-backwards-compatible manner, and 13715 * should be used instead. Any future extensions should be made to the 13716 * MATCH_ACTION_FLAGS field, and not to this field. Set an action for all 13717 * packets matching this filter. The DPDK driver and (on EF10) dpdk f/w variant 13718 * use their own specific delivery structures, which are documented in the DPDK 13719 * Firmware Driver Interface (SF-119419-TC). Requesting anything other than 13720 * MATCH_ACTION_NONE on an EF10 NIC running another f/w variant will cause the 13721 * filter insertion to fail with ENOTSUP. 13722 */ 13723 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_OFST 172 13724 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_LEN 4 13725 /* enum: do nothing extra */ 13726 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_NONE 0x0 13727 /* enum: Set the match flag in the packet prefix for packets matching the 13728 * filter (only with dpdk firmware, otherwise fails with ENOTSUP). Used to 13729 * support the DPDK rte_flow "FLAG" action. 13730 */ 13731 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_FLAG 0x1 13732 /* enum: Insert MATCH_MARK_VALUE into the packet prefix for packets matching 13733 * the filter (only with dpdk firmware, otherwise fails with ENOTSUP). Used to 13734 * support the DPDK rte_flow "MARK" action. 13735 */ 13736 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_MARK 0x2 13737 /* the mark value for MATCH_ACTION_MARK. Requesting a value larger than the 13738 * maximum (obtained from MC_CMD_GET_CAPABILITIES_V5/FILTER_ACTION_MARK_MAX) 13739 * will cause the filter insertion to fail with EINVAL. 13740 */ 13741 #define MC_CMD_FILTER_OP_V3_IN_MATCH_MARK_VALUE_OFST 176 13742 #define MC_CMD_FILTER_OP_V3_IN_MATCH_MARK_VALUE_LEN 4 13743 13744 /* MC_CMD_FILTER_OP_OUT msgresponse */ 13745 #define MC_CMD_FILTER_OP_OUT_LEN 12 13746 /* identifies the type of operation requested */ 13747 #define MC_CMD_FILTER_OP_OUT_OP_OFST 0 13748 #define MC_CMD_FILTER_OP_OUT_OP_LEN 4 13749 /* Enum values, see field(s): */ 13750 /* MC_CMD_FILTER_OP_IN/OP */ 13751 /* Returned filter handle (for insert / subscribe operations). Note that these 13752 * handles should be considered opaque to the host, although a value of 13753 * 0xFFFFFFFF_FFFFFFFF is guaranteed never to be a valid handle. 13754 */ 13755 #define MC_CMD_FILTER_OP_OUT_HANDLE_OFST 4 13756 #define MC_CMD_FILTER_OP_OUT_HANDLE_LEN 8 13757 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_OFST 4 13758 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_LEN 4 13759 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_LBN 32 13760 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_WIDTH 32 13761 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_OFST 8 13762 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_LEN 4 13763 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_LBN 64 13764 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_WIDTH 32 13765 /* enum: guaranteed invalid filter handle (low 32 bits) */ 13766 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_INVALID 0xffffffff 13767 /* enum: guaranteed invalid filter handle (high 32 bits) */ 13768 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_INVALID 0xffffffff 13769 13770 /* MC_CMD_FILTER_OP_EXT_OUT msgresponse */ 13771 #define MC_CMD_FILTER_OP_EXT_OUT_LEN 12 13772 /* identifies the type of operation requested */ 13773 #define MC_CMD_FILTER_OP_EXT_OUT_OP_OFST 0 13774 #define MC_CMD_FILTER_OP_EXT_OUT_OP_LEN 4 13775 /* Enum values, see field(s): */ 13776 /* MC_CMD_FILTER_OP_EXT_IN/OP */ 13777 /* Returned filter handle (for insert / subscribe operations). Note that these 13778 * handles should be considered opaque to the host, although a value of 13779 * 0xFFFFFFFF_FFFFFFFF is guaranteed never to be a valid handle. 13780 */ 13781 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_OFST 4 13782 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LEN 8 13783 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_OFST 4 13784 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_LEN 4 13785 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_LBN 32 13786 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_WIDTH 32 13787 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_OFST 8 13788 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_LEN 4 13789 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_LBN 64 13790 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_WIDTH 32 13791 /* Enum values, see field(s): */ 13792 /* MC_CMD_FILTER_OP_OUT/HANDLE */ 13793 13794 13795 /***********************************/ 13796 /* MC_CMD_GET_PARSER_DISP_INFO 13797 * Get information related to the parser-dispatcher subsystem 13798 */ 13799 #define MC_CMD_GET_PARSER_DISP_INFO 0xe4 13800 #define MC_CMD_GET_PARSER_DISP_INFO_MSGSET 0xe4 13801 #undef MC_CMD_0xe4_PRIVILEGE_CTG 13802 13803 #define MC_CMD_0xe4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 13804 13805 /* MC_CMD_GET_PARSER_DISP_INFO_IN msgrequest */ 13806 #define MC_CMD_GET_PARSER_DISP_INFO_IN_LEN 4 13807 /* identifies the type of operation requested */ 13808 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_OFST 0 13809 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_LEN 4 13810 /* enum: read the list of supported RX filter matches */ 13811 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_RX_MATCHES 0x1 13812 /* enum: read flags indicating restrictions on filter insertion for the calling 13813 * client 13814 */ 13815 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_RESTRICTIONS 0x2 13816 /* enum: read properties relating to security rules (Medford-only; for use by 13817 * SolarSecure apps, not directly by drivers. See SF-114946-SW.) 13818 */ 13819 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SECURITY_RULE_INFO 0x3 13820 /* enum: read the list of supported RX filter matches for VXLAN/NVGRE 13821 * encapsulated frames, which follow a different match sequence to normal 13822 * frames (Medford only) 13823 */ 13824 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_ENCAP_RX_MATCHES 0x4 13825 /* enum: read the list of supported matches for the encapsulation detection 13826 * rules inserted by MC_CMD_VNIC_ENCAP_RULE_ADD. (ef100 and later) 13827 */ 13828 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_VNIC_ENCAP_MATCHES 0x5 13829 /* enum: read the supported encapsulation types for the VNIC */ 13830 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_VNIC_ENCAP_TYPES 0x6 13831 13832 /* MC_CMD_GET_PARSER_DISP_INFO_OUT msgresponse */ 13833 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LENMIN 8 13834 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LENMAX 252 13835 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LENMAX_MCDI2 1020 13836 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LEN(num) (8+4*(num)) 13837 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_NUM(len) (((len)-8)/4) 13838 /* identifies the type of operation requested */ 13839 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_OP_OFST 0 13840 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_OP_LEN 4 13841 /* Enum values, see field(s): */ 13842 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 13843 /* number of supported match types */ 13844 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_NUM_SUPPORTED_MATCHES_OFST 4 13845 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_NUM_SUPPORTED_MATCHES_LEN 4 13846 /* array of supported match types (valid MATCH_FIELDS values for 13847 * MC_CMD_FILTER_OP) sorted in decreasing priority order 13848 */ 13849 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_OFST 8 13850 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_LEN 4 13851 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_MINNUM 0 13852 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_MAXNUM 61 13853 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_MAXNUM_MCDI2 253 13854 13855 /* MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT msgresponse */ 13856 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_LEN 8 13857 /* identifies the type of operation requested */ 13858 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_OP_OFST 0 13859 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_OP_LEN 4 13860 /* Enum values, see field(s): */ 13861 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 13862 /* bitfield of filter insertion restrictions */ 13863 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_RESTRICTION_FLAGS_OFST 4 13864 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_RESTRICTION_FLAGS_LEN 4 13865 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_DST_IP_MCAST_ONLY_OFST 4 13866 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_DST_IP_MCAST_ONLY_LBN 0 13867 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_DST_IP_MCAST_ONLY_WIDTH 1 13868 13869 /* MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT msgresponse: 13870 * GET_PARSER_DISP_INFO response format for OP_GET_SECURITY_RULE_INFO. 13871 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See 13872 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 13873 * been used in any released code and may change during development. This note 13874 * will be removed once it is regarded as stable. 13875 */ 13876 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_LEN 36 13877 /* identifies the type of operation requested */ 13878 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_OP_OFST 0 13879 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_OP_LEN 4 13880 /* Enum values, see field(s): */ 13881 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 13882 /* a version number representing the set of rule lookups that are implemented 13883 * by the currently running firmware 13884 */ 13885 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_RULES_VERSION_OFST 4 13886 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_RULES_VERSION_LEN 4 13887 /* enum: implements lookup sequences described in SF-114946-SW draft C */ 13888 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_RULES_VERSION_SF_114946_SW_C 0x0 13889 /* the number of nodes in the subnet map */ 13890 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_NODES_OFST 8 13891 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_NODES_LEN 4 13892 /* the number of entries in one subnet map node */ 13893 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_ENTRIES_PER_NODE_OFST 12 13894 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_ENTRIES_PER_NODE_LEN 4 13895 /* minimum valid value for a subnet ID in a subnet map leaf */ 13896 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MIN_OFST 16 13897 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MIN_LEN 4 13898 /* maximum valid value for a subnet ID in a subnet map leaf */ 13899 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MAX_OFST 20 13900 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MAX_LEN 4 13901 /* the number of entries in the local and remote port range maps */ 13902 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_TREE_NUM_ENTRIES_OFST 24 13903 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_TREE_NUM_ENTRIES_LEN 4 13904 /* minimum valid value for a portrange ID in a port range map leaf */ 13905 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MIN_OFST 28 13906 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MIN_LEN 4 13907 /* maximum valid value for a portrange ID in a port range map leaf */ 13908 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MAX_OFST 32 13909 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MAX_LEN 4 13910 13911 /* MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT msgresponse: This response is 13912 * returned if a MC_CMD_GET_PARSER_DISP_INFO_IN request is sent with OP value 13913 * OP_GET_SUPPORTED_VNIC_ENCAP_MATCHES. It contains information about the 13914 * supported match types that can be used in the encapsulation detection rules 13915 * inserted by MC_CMD_VNIC_ENCAP_RULE_ADD. 13916 */ 13917 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LENMIN 8 13918 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LENMAX 252 13919 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LENMAX_MCDI2 1020 13920 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LEN(num) (8+4*(num)) 13921 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_NUM(len) (((len)-8)/4) 13922 /* The op code OP_GET_SUPPORTED_VNIC_ENCAP_MATCHES is returned. */ 13923 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_OP_OFST 0 13924 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_OP_LEN 4 13925 /* Enum values, see field(s): */ 13926 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 13927 /* number of supported match types */ 13928 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_NUM_SUPPORTED_MATCHES_OFST 4 13929 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_NUM_SUPPORTED_MATCHES_LEN 4 13930 /* array of supported match types (valid MATCH_FLAGS values for 13931 * MC_CMD_VNIC_ENCAP_RULE_ADD) sorted in decreasing priority order 13932 */ 13933 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_OFST 8 13934 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_LEN 4 13935 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_MINNUM 0 13936 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_MAXNUM 61 13937 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_MAXNUM_MCDI2 253 13938 13939 /* MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT msgresponse: Returns 13940 * the supported encapsulation types for the VNIC 13941 */ 13942 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_LEN 8 13943 /* The op code OP_GET_SUPPORTED_VNIC_ENCAP_TYPES is returned */ 13944 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_OP_OFST 0 13945 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_OP_LEN 4 13946 /* Enum values, see field(s): */ 13947 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 13948 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPES_SUPPORTED_OFST 4 13949 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPES_SUPPORTED_LEN 4 13950 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_VXLAN_OFST 4 13951 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_VXLAN_LBN 0 13952 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_VXLAN_WIDTH 1 13953 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_NVGRE_OFST 4 13954 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_NVGRE_LBN 1 13955 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_NVGRE_WIDTH 1 13956 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_GENEVE_OFST 4 13957 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_GENEVE_LBN 2 13958 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_GENEVE_WIDTH 1 13959 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_L2GRE_OFST 4 13960 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_L2GRE_LBN 3 13961 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_L2GRE_WIDTH 1 13962 13963 13964 /***********************************/ 13965 /* MC_CMD_PARSER_DISP_RW 13966 * Direct read/write of parser-dispatcher state (DICPUs and LUE) for debugging. 13967 * Please note that this interface is only of use to debug tools which have 13968 * knowledge of firmware and hardware data structures; nothing here is intended 13969 * for use by normal driver code. Note that although this command is in the 13970 * Admin privilege group, in tamperproof adapters, only read operations are 13971 * permitted. 13972 */ 13973 #define MC_CMD_PARSER_DISP_RW 0xe5 13974 #define MC_CMD_PARSER_DISP_RW_MSGSET 0xe5 13975 #undef MC_CMD_0xe5_PRIVILEGE_CTG 13976 13977 #define MC_CMD_0xe5_PRIVILEGE_CTG SRIOV_CTG_ADMIN 13978 13979 /* MC_CMD_PARSER_DISP_RW_IN msgrequest */ 13980 #define MC_CMD_PARSER_DISP_RW_IN_LEN 32 13981 /* identifies the target of the operation */ 13982 #define MC_CMD_PARSER_DISP_RW_IN_TARGET_OFST 0 13983 #define MC_CMD_PARSER_DISP_RW_IN_TARGET_LEN 4 13984 /* enum: RX dispatcher CPU */ 13985 #define MC_CMD_PARSER_DISP_RW_IN_RX_DICPU 0x0 13986 /* enum: TX dispatcher CPU */ 13987 #define MC_CMD_PARSER_DISP_RW_IN_TX_DICPU 0x1 13988 /* enum: Lookup engine (with original metadata format). Deprecated; used only 13989 * by cmdclient as a fallback for very old Huntington firmware, and not 13990 * supported in firmware beyond v6.4.0.1005. Use LUE_VERSIONED_METADATA 13991 * instead. 13992 */ 13993 #define MC_CMD_PARSER_DISP_RW_IN_LUE 0x2 13994 /* enum: Lookup engine (with requested metadata format) */ 13995 #define MC_CMD_PARSER_DISP_RW_IN_LUE_VERSIONED_METADATA 0x3 13996 /* enum: RX0 dispatcher CPU (alias for RX_DICPU; Medford has 2 RX DICPUs) */ 13997 #define MC_CMD_PARSER_DISP_RW_IN_RX0_DICPU 0x0 13998 /* enum: RX1 dispatcher CPU (only valid for Medford) */ 13999 #define MC_CMD_PARSER_DISP_RW_IN_RX1_DICPU 0x4 14000 /* enum: Miscellaneous other state (only valid for Medford) */ 14001 #define MC_CMD_PARSER_DISP_RW_IN_MISC_STATE 0x5 14002 /* identifies the type of operation requested */ 14003 #define MC_CMD_PARSER_DISP_RW_IN_OP_OFST 4 14004 #define MC_CMD_PARSER_DISP_RW_IN_OP_LEN 4 14005 /* enum: Read a word of DICPU DMEM or a LUE entry */ 14006 #define MC_CMD_PARSER_DISP_RW_IN_READ 0x0 14007 /* enum: Write a word of DICPU DMEM or a LUE entry. Not permitted on 14008 * tamperproof adapters. 14009 */ 14010 #define MC_CMD_PARSER_DISP_RW_IN_WRITE 0x1 14011 /* enum: Read-modify-write a word of DICPU DMEM (not valid for LUE). Not 14012 * permitted on tamperproof adapters. 14013 */ 14014 #define MC_CMD_PARSER_DISP_RW_IN_RMW 0x2 14015 /* data memory address (DICPU targets) or LUE index (LUE targets) */ 14016 #define MC_CMD_PARSER_DISP_RW_IN_ADDRESS_OFST 8 14017 #define MC_CMD_PARSER_DISP_RW_IN_ADDRESS_LEN 4 14018 /* selector (for MISC_STATE target) */ 14019 #define MC_CMD_PARSER_DISP_RW_IN_SELECTOR_OFST 8 14020 #define MC_CMD_PARSER_DISP_RW_IN_SELECTOR_LEN 4 14021 /* enum: Port to datapath mapping */ 14022 #define MC_CMD_PARSER_DISP_RW_IN_PORT_DP_MAPPING 0x1 14023 /* value to write (for DMEM writes) */ 14024 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_WRITE_VALUE_OFST 12 14025 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_WRITE_VALUE_LEN 4 14026 /* XOR value (for DMEM read-modify-writes: new = (old & mask) ^ value) */ 14027 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_RMW_XOR_VALUE_OFST 12 14028 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_RMW_XOR_VALUE_LEN 4 14029 /* AND mask (for DMEM read-modify-writes: new = (old & mask) ^ value) */ 14030 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_RMW_AND_MASK_OFST 16 14031 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_RMW_AND_MASK_LEN 4 14032 /* metadata format (for LUE reads using LUE_VERSIONED_METADATA) */ 14033 #define MC_CMD_PARSER_DISP_RW_IN_LUE_READ_METADATA_VERSION_OFST 12 14034 #define MC_CMD_PARSER_DISP_RW_IN_LUE_READ_METADATA_VERSION_LEN 4 14035 /* value to write (for LUE writes) */ 14036 #define MC_CMD_PARSER_DISP_RW_IN_LUE_WRITE_VALUE_OFST 12 14037 #define MC_CMD_PARSER_DISP_RW_IN_LUE_WRITE_VALUE_LEN 20 14038 14039 /* MC_CMD_PARSER_DISP_RW_OUT msgresponse */ 14040 #define MC_CMD_PARSER_DISP_RW_OUT_LEN 52 14041 /* value read (for DMEM reads) */ 14042 #define MC_CMD_PARSER_DISP_RW_OUT_DMEM_READ_VALUE_OFST 0 14043 #define MC_CMD_PARSER_DISP_RW_OUT_DMEM_READ_VALUE_LEN 4 14044 /* value read (for LUE reads) */ 14045 #define MC_CMD_PARSER_DISP_RW_OUT_LUE_READ_VALUE_OFST 0 14046 #define MC_CMD_PARSER_DISP_RW_OUT_LUE_READ_VALUE_LEN 20 14047 /* up to 8 32-bit words of additional soft state from the LUE manager (the 14048 * exact content is firmware-dependent and intended only for debug use) 14049 */ 14050 #define MC_CMD_PARSER_DISP_RW_OUT_LUE_MGR_STATE_OFST 20 14051 #define MC_CMD_PARSER_DISP_RW_OUT_LUE_MGR_STATE_LEN 32 14052 /* datapath(s) used for each port (for MISC_STATE PORT_DP_MAPPING selector) */ 14053 #define MC_CMD_PARSER_DISP_RW_OUT_PORT_DP_MAPPING_OFST 0 14054 #define MC_CMD_PARSER_DISP_RW_OUT_PORT_DP_MAPPING_LEN 4 14055 #define MC_CMD_PARSER_DISP_RW_OUT_PORT_DP_MAPPING_NUM 4 14056 /* enum property: bitmask */ 14057 #define MC_CMD_PARSER_DISP_RW_OUT_DP0 0x1 /* enum */ 14058 #define MC_CMD_PARSER_DISP_RW_OUT_DP1 0x2 /* enum */ 14059 14060 14061 /***********************************/ 14062 /* MC_CMD_GET_PF_COUNT 14063 * Get number of PFs on the device. 14064 */ 14065 #define MC_CMD_GET_PF_COUNT 0xb6 14066 #define MC_CMD_GET_PF_COUNT_MSGSET 0xb6 14067 #undef MC_CMD_0xb6_PRIVILEGE_CTG 14068 14069 #define MC_CMD_0xb6_PRIVILEGE_CTG SRIOV_CTG_GENERAL 14070 14071 /* MC_CMD_GET_PF_COUNT_IN msgrequest */ 14072 #define MC_CMD_GET_PF_COUNT_IN_LEN 0 14073 14074 /* MC_CMD_GET_PF_COUNT_OUT msgresponse */ 14075 #define MC_CMD_GET_PF_COUNT_OUT_LEN 1 14076 /* Identifies the number of PFs on the device. */ 14077 #define MC_CMD_GET_PF_COUNT_OUT_PF_COUNT_OFST 0 14078 #define MC_CMD_GET_PF_COUNT_OUT_PF_COUNT_LEN 1 14079 14080 14081 /***********************************/ 14082 /* MC_CMD_SET_PF_COUNT 14083 * Set number of PFs on the device. 14084 */ 14085 #define MC_CMD_SET_PF_COUNT 0xb7 14086 #define MC_CMD_SET_PF_COUNT_MSGSET 0xb7 14087 14088 /* MC_CMD_SET_PF_COUNT_IN msgrequest */ 14089 #define MC_CMD_SET_PF_COUNT_IN_LEN 4 14090 /* New number of PFs on the device. */ 14091 #define MC_CMD_SET_PF_COUNT_IN_PF_COUNT_OFST 0 14092 #define MC_CMD_SET_PF_COUNT_IN_PF_COUNT_LEN 4 14093 14094 /* MC_CMD_SET_PF_COUNT_OUT msgresponse */ 14095 #define MC_CMD_SET_PF_COUNT_OUT_LEN 0 14096 14097 14098 /***********************************/ 14099 /* MC_CMD_GET_PORT_ASSIGNMENT 14100 * Get port assignment for current PCI function. 14101 */ 14102 #define MC_CMD_GET_PORT_ASSIGNMENT 0xb8 14103 #define MC_CMD_GET_PORT_ASSIGNMENT_MSGSET 0xb8 14104 #undef MC_CMD_0xb8_PRIVILEGE_CTG 14105 14106 #define MC_CMD_0xb8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 14107 14108 /* MC_CMD_GET_PORT_ASSIGNMENT_IN msgrequest */ 14109 #define MC_CMD_GET_PORT_ASSIGNMENT_IN_LEN 0 14110 14111 /* MC_CMD_GET_PORT_ASSIGNMENT_OUT msgresponse */ 14112 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_LEN 4 14113 /* Identifies the port assignment for this function. On EF100, it is possible 14114 * for the function to have no network port assigned (either because it is not 14115 * yet configured, or assigning a port to a given function personality makes no 14116 * sense - e.g. virtio-blk), in which case the return value is NULL_PORT. 14117 */ 14118 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_PORT_OFST 0 14119 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_PORT_LEN 4 14120 /* enum: Special value to indicate no port is assigned to a function. */ 14121 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_NULL_PORT 0xffffffff 14122 14123 14124 /***********************************/ 14125 /* MC_CMD_SET_PORT_ASSIGNMENT 14126 * Set port assignment for current PCI function. 14127 */ 14128 #define MC_CMD_SET_PORT_ASSIGNMENT 0xb9 14129 #define MC_CMD_SET_PORT_ASSIGNMENT_MSGSET 0xb9 14130 #undef MC_CMD_0xb9_PRIVILEGE_CTG 14131 14132 #define MC_CMD_0xb9_PRIVILEGE_CTG SRIOV_CTG_ADMIN 14133 14134 /* MC_CMD_SET_PORT_ASSIGNMENT_IN msgrequest */ 14135 #define MC_CMD_SET_PORT_ASSIGNMENT_IN_LEN 4 14136 /* Identifies the port assignment for this function. */ 14137 #define MC_CMD_SET_PORT_ASSIGNMENT_IN_PORT_OFST 0 14138 #define MC_CMD_SET_PORT_ASSIGNMENT_IN_PORT_LEN 4 14139 14140 /* MC_CMD_SET_PORT_ASSIGNMENT_OUT msgresponse */ 14141 #define MC_CMD_SET_PORT_ASSIGNMENT_OUT_LEN 0 14142 14143 14144 /***********************************/ 14145 /* MC_CMD_ALLOC_VIS 14146 * Allocate VIs for current PCI function. 14147 */ 14148 #define MC_CMD_ALLOC_VIS 0x8b 14149 #define MC_CMD_ALLOC_VIS_MSGSET 0x8b 14150 #undef MC_CMD_0x8b_PRIVILEGE_CTG 14151 14152 #define MC_CMD_0x8b_PRIVILEGE_CTG SRIOV_CTG_GENERAL 14153 14154 /* MC_CMD_ALLOC_VIS_IN msgrequest */ 14155 #define MC_CMD_ALLOC_VIS_IN_LEN 8 14156 /* The minimum number of VIs that is acceptable */ 14157 #define MC_CMD_ALLOC_VIS_IN_MIN_VI_COUNT_OFST 0 14158 #define MC_CMD_ALLOC_VIS_IN_MIN_VI_COUNT_LEN 4 14159 /* The maximum number of VIs that would be useful */ 14160 #define MC_CMD_ALLOC_VIS_IN_MAX_VI_COUNT_OFST 4 14161 #define MC_CMD_ALLOC_VIS_IN_MAX_VI_COUNT_LEN 4 14162 14163 /* MC_CMD_ALLOC_VIS_OUT msgresponse: Huntington-compatible VI_ALLOC request. 14164 * Use extended version in new code. 14165 */ 14166 #define MC_CMD_ALLOC_VIS_OUT_LEN 8 14167 /* The number of VIs allocated on this function */ 14168 #define MC_CMD_ALLOC_VIS_OUT_VI_COUNT_OFST 0 14169 #define MC_CMD_ALLOC_VIS_OUT_VI_COUNT_LEN 4 14170 /* The base absolute VI number allocated to this function. Required to 14171 * correctly interpret wakeup events. 14172 */ 14173 #define MC_CMD_ALLOC_VIS_OUT_VI_BASE_OFST 4 14174 #define MC_CMD_ALLOC_VIS_OUT_VI_BASE_LEN 4 14175 14176 /* MC_CMD_ALLOC_VIS_EXT_OUT msgresponse */ 14177 #define MC_CMD_ALLOC_VIS_EXT_OUT_LEN 12 14178 /* The number of VIs allocated on this function */ 14179 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_COUNT_OFST 0 14180 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_COUNT_LEN 4 14181 /* The base absolute VI number allocated to this function. Required to 14182 * correctly interpret wakeup events. 14183 */ 14184 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_BASE_OFST 4 14185 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_BASE_LEN 4 14186 /* Function's port vi_shift value (always 0 on Huntington) */ 14187 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_SHIFT_OFST 8 14188 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_SHIFT_LEN 4 14189 14190 14191 /***********************************/ 14192 /* MC_CMD_FREE_VIS 14193 * Free VIs for current PCI function. Any linked PIO buffers will be unlinked, 14194 * but not freed. 14195 */ 14196 #define MC_CMD_FREE_VIS 0x8c 14197 #define MC_CMD_FREE_VIS_MSGSET 0x8c 14198 #undef MC_CMD_0x8c_PRIVILEGE_CTG 14199 14200 #define MC_CMD_0x8c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 14201 14202 /* MC_CMD_FREE_VIS_IN msgrequest */ 14203 #define MC_CMD_FREE_VIS_IN_LEN 0 14204 14205 /* MC_CMD_FREE_VIS_OUT msgresponse */ 14206 #define MC_CMD_FREE_VIS_OUT_LEN 0 14207 14208 14209 /***********************************/ 14210 /* MC_CMD_GET_SRIOV_CFG 14211 * Get SRIOV config for this PF. 14212 */ 14213 #define MC_CMD_GET_SRIOV_CFG 0xba 14214 #define MC_CMD_GET_SRIOV_CFG_MSGSET 0xba 14215 #undef MC_CMD_0xba_PRIVILEGE_CTG 14216 14217 #define MC_CMD_0xba_PRIVILEGE_CTG SRIOV_CTG_GENERAL 14218 14219 /* MC_CMD_GET_SRIOV_CFG_IN msgrequest */ 14220 #define MC_CMD_GET_SRIOV_CFG_IN_LEN 0 14221 14222 /* MC_CMD_GET_SRIOV_CFG_OUT msgresponse */ 14223 #define MC_CMD_GET_SRIOV_CFG_OUT_LEN 20 14224 /* Number of VFs currently enabled. */ 14225 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_CURRENT_OFST 0 14226 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_CURRENT_LEN 4 14227 /* Max number of VFs before sriov stride and offset may need to be changed. */ 14228 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_MAX_OFST 4 14229 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_MAX_LEN 4 14230 #define MC_CMD_GET_SRIOV_CFG_OUT_FLAGS_OFST 8 14231 #define MC_CMD_GET_SRIOV_CFG_OUT_FLAGS_LEN 4 14232 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_ENABLED_OFST 8 14233 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_ENABLED_LBN 0 14234 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_ENABLED_WIDTH 1 14235 /* RID offset of first VF from PF. */ 14236 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_OFFSET_OFST 12 14237 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_OFFSET_LEN 4 14238 /* RID offset of each subsequent VF from the previous. */ 14239 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_STRIDE_OFST 16 14240 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_STRIDE_LEN 4 14241 14242 14243 /***********************************/ 14244 /* MC_CMD_SET_SRIOV_CFG 14245 * Set SRIOV config for this PF. 14246 */ 14247 #define MC_CMD_SET_SRIOV_CFG 0xbb 14248 #define MC_CMD_SET_SRIOV_CFG_MSGSET 0xbb 14249 #undef MC_CMD_0xbb_PRIVILEGE_CTG 14250 14251 #define MC_CMD_0xbb_PRIVILEGE_CTG SRIOV_CTG_ADMIN 14252 14253 /* MC_CMD_SET_SRIOV_CFG_IN msgrequest */ 14254 #define MC_CMD_SET_SRIOV_CFG_IN_LEN 20 14255 /* Number of VFs currently enabled. */ 14256 #define MC_CMD_SET_SRIOV_CFG_IN_VF_CURRENT_OFST 0 14257 #define MC_CMD_SET_SRIOV_CFG_IN_VF_CURRENT_LEN 4 14258 /* Max number of VFs before sriov stride and offset may need to be changed. */ 14259 #define MC_CMD_SET_SRIOV_CFG_IN_VF_MAX_OFST 4 14260 #define MC_CMD_SET_SRIOV_CFG_IN_VF_MAX_LEN 4 14261 #define MC_CMD_SET_SRIOV_CFG_IN_FLAGS_OFST 8 14262 #define MC_CMD_SET_SRIOV_CFG_IN_FLAGS_LEN 4 14263 #define MC_CMD_SET_SRIOV_CFG_IN_VF_ENABLED_OFST 8 14264 #define MC_CMD_SET_SRIOV_CFG_IN_VF_ENABLED_LBN 0 14265 #define MC_CMD_SET_SRIOV_CFG_IN_VF_ENABLED_WIDTH 1 14266 /* RID offset of first VF from PF, or 0 for no change, or 14267 * MC_CMD_RESOURCE_INSTANCE_ANY to allow the system to allocate an offset. 14268 */ 14269 #define MC_CMD_SET_SRIOV_CFG_IN_VF_OFFSET_OFST 12 14270 #define MC_CMD_SET_SRIOV_CFG_IN_VF_OFFSET_LEN 4 14271 /* RID offset of each subsequent VF from the previous, 0 for no change, or 14272 * MC_CMD_RESOURCE_INSTANCE_ANY to allow the system to allocate a stride. 14273 */ 14274 #define MC_CMD_SET_SRIOV_CFG_IN_VF_STRIDE_OFST 16 14275 #define MC_CMD_SET_SRIOV_CFG_IN_VF_STRIDE_LEN 4 14276 14277 /* MC_CMD_SET_SRIOV_CFG_OUT msgresponse */ 14278 #define MC_CMD_SET_SRIOV_CFG_OUT_LEN 0 14279 14280 14281 /***********************************/ 14282 /* MC_CMD_GET_VI_ALLOC_INFO 14283 * Get information about number of VI's and base VI number allocated to this 14284 * function. This message is not available to dynamic clients created by 14285 * MC_CMD_CLIENT_ALLOC. 14286 */ 14287 #define MC_CMD_GET_VI_ALLOC_INFO 0x8d 14288 #define MC_CMD_GET_VI_ALLOC_INFO_MSGSET 0x8d 14289 #undef MC_CMD_0x8d_PRIVILEGE_CTG 14290 14291 #define MC_CMD_0x8d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 14292 14293 /* MC_CMD_GET_VI_ALLOC_INFO_IN msgrequest */ 14294 #define MC_CMD_GET_VI_ALLOC_INFO_IN_LEN 0 14295 14296 /* MC_CMD_GET_VI_ALLOC_INFO_OUT msgresponse */ 14297 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_LEN 12 14298 /* The number of VIs allocated on this function */ 14299 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_COUNT_OFST 0 14300 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_COUNT_LEN 4 14301 /* The base absolute VI number allocated to this function. Required to 14302 * correctly interpret wakeup events. 14303 */ 14304 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_BASE_OFST 4 14305 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_BASE_LEN 4 14306 /* Function's port vi_shift value (always 0 on Huntington) */ 14307 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_SHIFT_OFST 8 14308 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_SHIFT_LEN 4 14309 14310 14311 /***********************************/ 14312 /* MC_CMD_DUMP_VI_STATE 14313 * For CmdClient use. Dump pertinent information on a specific absolute VI. The 14314 * VI must be owned by the calling client or one of its ancestors; usership of 14315 * the VI (as set by MC_CMD_SET_VI_USER) is not sufficient. 14316 */ 14317 #define MC_CMD_DUMP_VI_STATE 0x8e 14318 #define MC_CMD_DUMP_VI_STATE_MSGSET 0x8e 14319 #undef MC_CMD_0x8e_PRIVILEGE_CTG 14320 14321 #define MC_CMD_0x8e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 14322 14323 /* MC_CMD_DUMP_VI_STATE_IN msgrequest */ 14324 #define MC_CMD_DUMP_VI_STATE_IN_LEN 4 14325 /* The VI number to query. */ 14326 #define MC_CMD_DUMP_VI_STATE_IN_VI_NUMBER_OFST 0 14327 #define MC_CMD_DUMP_VI_STATE_IN_VI_NUMBER_LEN 4 14328 14329 /* MC_CMD_DUMP_VI_STATE_OUT msgresponse */ 14330 #define MC_CMD_DUMP_VI_STATE_OUT_LEN 100 14331 /* The PF part of the function owning this VI. */ 14332 #define MC_CMD_DUMP_VI_STATE_OUT_OWNER_PF_OFST 0 14333 #define MC_CMD_DUMP_VI_STATE_OUT_OWNER_PF_LEN 2 14334 /* The VF part of the function owning this VI. */ 14335 #define MC_CMD_DUMP_VI_STATE_OUT_OWNER_VF_OFST 2 14336 #define MC_CMD_DUMP_VI_STATE_OUT_OWNER_VF_LEN 2 14337 /* Base of VIs allocated to this function. */ 14338 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VI_BASE_OFST 4 14339 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VI_BASE_LEN 2 14340 /* Count of VIs allocated to the owner function. */ 14341 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VI_COUNT_OFST 6 14342 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VI_COUNT_LEN 2 14343 /* Base interrupt vector allocated to this function. */ 14344 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VECTOR_BASE_OFST 8 14345 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VECTOR_BASE_LEN 2 14346 /* Number of interrupt vectors allocated to this function. */ 14347 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VECTOR_COUNT_OFST 10 14348 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VECTOR_COUNT_LEN 2 14349 /* Raw evq ptr table data. */ 14350 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_OFST 12 14351 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LEN 8 14352 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LO_OFST 12 14353 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LO_LEN 4 14354 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LO_LBN 96 14355 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LO_WIDTH 32 14356 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_HI_OFST 16 14357 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_HI_LEN 4 14358 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_HI_LBN 128 14359 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_HI_WIDTH 32 14360 /* Raw evq timer table data. */ 14361 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_OFST 20 14362 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LEN 8 14363 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LO_OFST 20 14364 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LO_LEN 4 14365 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LO_LBN 160 14366 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LO_WIDTH 32 14367 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_HI_OFST 24 14368 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_HI_LEN 4 14369 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_HI_LBN 192 14370 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_HI_WIDTH 32 14371 /* Combined metadata field. */ 14372 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_OFST 28 14373 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_LEN 4 14374 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_BASE_OFST 28 14375 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_BASE_LBN 0 14376 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_BASE_WIDTH 16 14377 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_NPAGES_OFST 28 14378 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_NPAGES_LBN 16 14379 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_NPAGES_WIDTH 8 14380 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_WKUP_REF_OFST 28 14381 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_WKUP_REF_LBN 24 14382 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_WKUP_REF_WIDTH 8 14383 /* TXDPCPU raw table data for queue. */ 14384 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_OFST 32 14385 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LEN 8 14386 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LO_OFST 32 14387 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LO_LEN 4 14388 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LO_LBN 256 14389 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LO_WIDTH 32 14390 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_HI_OFST 36 14391 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_HI_LEN 4 14392 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_HI_LBN 288 14393 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_HI_WIDTH 32 14394 /* TXDPCPU raw table data for queue. */ 14395 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_OFST 40 14396 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LEN 8 14397 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LO_OFST 40 14398 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LO_LEN 4 14399 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LO_LBN 320 14400 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LO_WIDTH 32 14401 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_HI_OFST 44 14402 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_HI_LEN 4 14403 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_HI_LBN 352 14404 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_HI_WIDTH 32 14405 /* TXDPCPU raw table data for queue. */ 14406 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_OFST 48 14407 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LEN 8 14408 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LO_OFST 48 14409 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LO_LEN 4 14410 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LO_LBN 384 14411 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LO_WIDTH 32 14412 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_HI_OFST 52 14413 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_HI_LEN 4 14414 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_HI_LBN 416 14415 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_HI_WIDTH 32 14416 /* Combined metadata field. */ 14417 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_OFST 56 14418 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LEN 8 14419 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LO_OFST 56 14420 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LO_LEN 4 14421 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LO_LBN 448 14422 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LO_WIDTH 32 14423 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_HI_OFST 60 14424 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_HI_LEN 4 14425 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_HI_LBN 480 14426 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_HI_WIDTH 32 14427 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_BASE_OFST 56 14428 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_BASE_LBN 0 14429 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_BASE_WIDTH 16 14430 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_NPAGES_OFST 56 14431 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_NPAGES_LBN 16 14432 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_NPAGES_WIDTH 8 14433 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_QSTATE_OFST 56 14434 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_QSTATE_LBN 24 14435 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_QSTATE_WIDTH 8 14436 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_WAITCOUNT_OFST 56 14437 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_WAITCOUNT_LBN 32 14438 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_WAITCOUNT_WIDTH 8 14439 #define MC_CMD_DUMP_VI_STATE_OUT_VI_PADDING_OFST 56 14440 #define MC_CMD_DUMP_VI_STATE_OUT_VI_PADDING_LBN 40 14441 #define MC_CMD_DUMP_VI_STATE_OUT_VI_PADDING_WIDTH 24 14442 /* RXDPCPU raw table data for queue. */ 14443 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_OFST 64 14444 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LEN 8 14445 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LO_OFST 64 14446 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LO_LEN 4 14447 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LO_LBN 512 14448 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LO_WIDTH 32 14449 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_HI_OFST 68 14450 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_HI_LEN 4 14451 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_HI_LBN 544 14452 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_HI_WIDTH 32 14453 /* RXDPCPU raw table data for queue. */ 14454 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_OFST 72 14455 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LEN 8 14456 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LO_OFST 72 14457 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LO_LEN 4 14458 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LO_LBN 576 14459 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LO_WIDTH 32 14460 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_HI_OFST 76 14461 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_HI_LEN 4 14462 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_HI_LBN 608 14463 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_HI_WIDTH 32 14464 /* Reserved, currently 0. */ 14465 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_OFST 80 14466 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LEN 8 14467 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LO_OFST 80 14468 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LO_LEN 4 14469 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LO_LBN 640 14470 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LO_WIDTH 32 14471 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_HI_OFST 84 14472 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_HI_LEN 4 14473 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_HI_LBN 672 14474 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_HI_WIDTH 32 14475 /* Combined metadata field. */ 14476 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_OFST 88 14477 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LEN 8 14478 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LO_OFST 88 14479 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LO_LEN 4 14480 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LO_LBN 704 14481 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LO_WIDTH 32 14482 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_HI_OFST 92 14483 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_HI_LEN 4 14484 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_HI_LBN 736 14485 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_HI_WIDTH 32 14486 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_BASE_OFST 88 14487 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_BASE_LBN 0 14488 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_BASE_WIDTH 16 14489 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_NPAGES_OFST 88 14490 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_NPAGES_LBN 16 14491 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_NPAGES_WIDTH 8 14492 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_QSTATE_OFST 88 14493 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_QSTATE_LBN 24 14494 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_QSTATE_WIDTH 8 14495 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_WAITCOUNT_OFST 88 14496 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_WAITCOUNT_LBN 32 14497 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_WAITCOUNT_WIDTH 8 14498 /* Current user, as assigned by MC_CMD_SET_VI_USER. */ 14499 #define MC_CMD_DUMP_VI_STATE_OUT_USER_CLIENT_ID_OFST 96 14500 #define MC_CMD_DUMP_VI_STATE_OUT_USER_CLIENT_ID_LEN 4 14501 14502 14503 /***********************************/ 14504 /* MC_CMD_ALLOC_PIOBUF 14505 * Allocate a push I/O buffer for later use with a tx queue. 14506 */ 14507 #define MC_CMD_ALLOC_PIOBUF 0x8f 14508 #define MC_CMD_ALLOC_PIOBUF_MSGSET 0x8f 14509 #undef MC_CMD_0x8f_PRIVILEGE_CTG 14510 14511 #define MC_CMD_0x8f_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 14512 14513 /* MC_CMD_ALLOC_PIOBUF_IN msgrequest */ 14514 #define MC_CMD_ALLOC_PIOBUF_IN_LEN 0 14515 14516 /* MC_CMD_ALLOC_PIOBUF_OUT msgresponse */ 14517 #define MC_CMD_ALLOC_PIOBUF_OUT_LEN 4 14518 /* Handle for allocated push I/O buffer. */ 14519 #define MC_CMD_ALLOC_PIOBUF_OUT_PIOBUF_HANDLE_OFST 0 14520 #define MC_CMD_ALLOC_PIOBUF_OUT_PIOBUF_HANDLE_LEN 4 14521 14522 14523 /***********************************/ 14524 /* MC_CMD_FREE_PIOBUF 14525 * Free a push I/O buffer. 14526 */ 14527 #define MC_CMD_FREE_PIOBUF 0x90 14528 #define MC_CMD_FREE_PIOBUF_MSGSET 0x90 14529 #undef MC_CMD_0x90_PRIVILEGE_CTG 14530 14531 #define MC_CMD_0x90_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 14532 14533 /* MC_CMD_FREE_PIOBUF_IN msgrequest */ 14534 #define MC_CMD_FREE_PIOBUF_IN_LEN 4 14535 /* Handle for allocated push I/O buffer. */ 14536 #define MC_CMD_FREE_PIOBUF_IN_PIOBUF_HANDLE_OFST 0 14537 #define MC_CMD_FREE_PIOBUF_IN_PIOBUF_HANDLE_LEN 4 14538 14539 /* MC_CMD_FREE_PIOBUF_OUT msgresponse */ 14540 #define MC_CMD_FREE_PIOBUF_OUT_LEN 0 14541 14542 14543 /***********************************/ 14544 /* MC_CMD_GET_VI_TLP_PROCESSING 14545 * Get TLP steering and ordering information for a VI. The caller must have the 14546 * GRP_FUNC_DMA privilege and must be the currently-assigned user of this VI or 14547 * an ancestor of the current user (see MC_CMD_SET_VI_USER). 14548 */ 14549 #define MC_CMD_GET_VI_TLP_PROCESSING 0xb0 14550 #define MC_CMD_GET_VI_TLP_PROCESSING_MSGSET 0xb0 14551 #undef MC_CMD_0xb0_PRIVILEGE_CTG 14552 14553 #define MC_CMD_0xb0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 14554 14555 /* MC_CMD_GET_VI_TLP_PROCESSING_IN msgrequest */ 14556 #define MC_CMD_GET_VI_TLP_PROCESSING_IN_LEN 4 14557 /* VI number to get information for. */ 14558 #define MC_CMD_GET_VI_TLP_PROCESSING_IN_INSTANCE_OFST 0 14559 #define MC_CMD_GET_VI_TLP_PROCESSING_IN_INSTANCE_LEN 4 14560 14561 /* MC_CMD_GET_VI_TLP_PROCESSING_OUT msgresponse */ 14562 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_LEN 4 14563 /* Transaction processing steering hint 1 for use with the Rx Queue. */ 14564 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_TAG1_RX_OFST 0 14565 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_TAG1_RX_LEN 1 14566 /* Transaction processing steering hint 2 for use with the Ev Queue. */ 14567 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_TAG2_EV_OFST 1 14568 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_TAG2_EV_LEN 1 14569 /* Use Relaxed ordering model for TLPs on this VI. */ 14570 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_RELAXED_ORDERING_LBN 16 14571 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_RELAXED_ORDERING_WIDTH 1 14572 /* Use ID based ordering for TLPs on this VI. */ 14573 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_ID_BASED_ORDERING_LBN 17 14574 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_ID_BASED_ORDERING_WIDTH 1 14575 /* Set no snoop bit for TLPs on this VI. */ 14576 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_NO_SNOOP_LBN 18 14577 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_NO_SNOOP_WIDTH 1 14578 /* Enable TPH for TLPs on this VI. */ 14579 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_ON_LBN 19 14580 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_ON_WIDTH 1 14581 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_DATA_OFST 0 14582 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_DATA_LEN 4 14583 14584 14585 /***********************************/ 14586 /* MC_CMD_SET_VI_TLP_PROCESSING 14587 * Set TLP steering and ordering information for a VI. The caller must have the 14588 * GRP_FUNC_DMA privilege and must be the currently-assigned user of this VI or 14589 * an ancestor of the current user (see MC_CMD_SET_VI_USER). 14590 */ 14591 #define MC_CMD_SET_VI_TLP_PROCESSING 0xb1 14592 #define MC_CMD_SET_VI_TLP_PROCESSING_MSGSET 0xb1 14593 #undef MC_CMD_0xb1_PRIVILEGE_CTG 14594 14595 #define MC_CMD_0xb1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 14596 14597 /* MC_CMD_SET_VI_TLP_PROCESSING_IN msgrequest */ 14598 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_LEN 8 14599 /* VI number to set information for. */ 14600 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_INSTANCE_OFST 0 14601 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_INSTANCE_LEN 4 14602 /* Transaction processing steering hint 1 for use with the Rx Queue. */ 14603 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_TAG1_RX_OFST 4 14604 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_TAG1_RX_LEN 1 14605 /* Transaction processing steering hint 2 for use with the Ev Queue. */ 14606 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_TAG2_EV_OFST 5 14607 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_TAG2_EV_LEN 1 14608 /* Use Relaxed ordering model for TLPs on this VI. */ 14609 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_RELAXED_ORDERING_LBN 48 14610 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_RELAXED_ORDERING_WIDTH 1 14611 /* Use ID based ordering for TLPs on this VI. */ 14612 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_ID_BASED_ORDERING_LBN 49 14613 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_ID_BASED_ORDERING_WIDTH 1 14614 /* Set the no snoop bit for TLPs on this VI. */ 14615 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_NO_SNOOP_LBN 50 14616 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_NO_SNOOP_WIDTH 1 14617 /* Enable TPH for TLPs on this VI. */ 14618 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_ON_LBN 51 14619 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_ON_WIDTH 1 14620 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_DATA_OFST 4 14621 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_DATA_LEN 4 14622 14623 /* MC_CMD_SET_VI_TLP_PROCESSING_OUT msgresponse */ 14624 #define MC_CMD_SET_VI_TLP_PROCESSING_OUT_LEN 0 14625 14626 14627 /***********************************/ 14628 /* MC_CMD_GET_TLP_PROCESSING_GLOBALS 14629 * Get global PCIe steering and transaction processing configuration. 14630 */ 14631 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS 0xbc 14632 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_MSGSET 0xbc 14633 #undef MC_CMD_0xbc_PRIVILEGE_CTG 14634 14635 #define MC_CMD_0xbc_PRIVILEGE_CTG SRIOV_CTG_ADMIN 14636 14637 /* MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN msgrequest */ 14638 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_LEN 4 14639 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_OFST 0 14640 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_LEN 4 14641 /* enum: MISC. */ 14642 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_MISC 0x0 14643 /* enum: IDO. */ 14644 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_IDO 0x1 14645 /* enum: RO. */ 14646 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_RO 0x2 14647 /* enum: TPH Type. */ 14648 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_TPH_TYPE 0x3 14649 14650 /* MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT msgresponse */ 14651 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_LEN 8 14652 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_GLOBAL_CATEGORY_OFST 0 14653 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_GLOBAL_CATEGORY_LEN 4 14654 /* Enum values, see field(s): */ 14655 /* MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN/TLP_GLOBAL_CATEGORY */ 14656 /* Amalgamated TLP info word. */ 14657 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_WORD_OFST 4 14658 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_WORD_LEN 4 14659 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_WTAG_EN_OFST 4 14660 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_WTAG_EN_LBN 0 14661 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_WTAG_EN_WIDTH 1 14662 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_SPARE_OFST 4 14663 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_SPARE_LBN 1 14664 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_SPARE_WIDTH 31 14665 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_DL_EN_OFST 4 14666 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_DL_EN_LBN 0 14667 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_DL_EN_WIDTH 1 14668 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_TX_EN_OFST 4 14669 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_TX_EN_LBN 1 14670 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_TX_EN_WIDTH 1 14671 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_EV_EN_OFST 4 14672 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_EV_EN_LBN 2 14673 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_EV_EN_WIDTH 1 14674 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_RX_EN_OFST 4 14675 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_RX_EN_LBN 3 14676 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_RX_EN_WIDTH 1 14677 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_SPARE_OFST 4 14678 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_SPARE_LBN 4 14679 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_SPARE_WIDTH 28 14680 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_RXDMA_EN_OFST 4 14681 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_RXDMA_EN_LBN 0 14682 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_RXDMA_EN_WIDTH 1 14683 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_TXDMA_EN_OFST 4 14684 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_TXDMA_EN_LBN 1 14685 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_TXDMA_EN_WIDTH 1 14686 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_DL_EN_OFST 4 14687 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_DL_EN_LBN 2 14688 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_DL_EN_WIDTH 1 14689 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_SPARE_OFST 4 14690 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_SPARE_LBN 3 14691 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_SPARE_WIDTH 29 14692 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_MSIX_OFST 4 14693 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_MSIX_LBN 0 14694 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_MSIX_WIDTH 2 14695 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_DL_OFST 4 14696 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_DL_LBN 2 14697 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_DL_WIDTH 2 14698 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_TX_OFST 4 14699 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_TX_LBN 4 14700 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_TX_WIDTH 2 14701 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_EV_OFST 4 14702 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_EV_LBN 6 14703 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_EV_WIDTH 2 14704 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_RX_OFST 4 14705 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_RX_LBN 8 14706 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_RX_WIDTH 2 14707 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TLP_TYPE_SPARE_OFST 4 14708 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TLP_TYPE_SPARE_LBN 9 14709 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TLP_TYPE_SPARE_WIDTH 23 14710 14711 14712 /***********************************/ 14713 /* MC_CMD_SET_TLP_PROCESSING_GLOBALS 14714 * Set global PCIe steering and transaction processing configuration. 14715 */ 14716 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS 0xbd 14717 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_MSGSET 0xbd 14718 #undef MC_CMD_0xbd_PRIVILEGE_CTG 14719 14720 #define MC_CMD_0xbd_PRIVILEGE_CTG SRIOV_CTG_ADMIN 14721 14722 /* MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN msgrequest */ 14723 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_LEN 8 14724 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_OFST 0 14725 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_LEN 4 14726 /* Enum values, see field(s): */ 14727 /* MC_CMD_GET_TLP_PROCESSING_GLOBALS/MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN/TLP_GLOBAL_CATEGORY */ 14728 /* Amalgamated TLP info word. */ 14729 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_WORD_OFST 4 14730 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_WORD_LEN 4 14731 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_MISC_WTAG_EN_OFST 4 14732 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_MISC_WTAG_EN_LBN 0 14733 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_MISC_WTAG_EN_WIDTH 1 14734 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_DL_EN_OFST 4 14735 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_DL_EN_LBN 0 14736 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_DL_EN_WIDTH 1 14737 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_TX_EN_OFST 4 14738 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_TX_EN_LBN 1 14739 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_TX_EN_WIDTH 1 14740 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_EV_EN_OFST 4 14741 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_EV_EN_LBN 2 14742 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_EV_EN_WIDTH 1 14743 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_RX_EN_OFST 4 14744 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_RX_EN_LBN 3 14745 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_RX_EN_WIDTH 1 14746 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_RXDMA_EN_OFST 4 14747 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_RXDMA_EN_LBN 0 14748 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_RXDMA_EN_WIDTH 1 14749 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_TXDMA_EN_OFST 4 14750 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_TXDMA_EN_LBN 1 14751 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_TXDMA_EN_WIDTH 1 14752 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_DL_EN_OFST 4 14753 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_DL_EN_LBN 2 14754 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_DL_EN_WIDTH 1 14755 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_MSIX_OFST 4 14756 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_MSIX_LBN 0 14757 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_MSIX_WIDTH 2 14758 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_DL_OFST 4 14759 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_DL_LBN 2 14760 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_DL_WIDTH 2 14761 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_TX_OFST 4 14762 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_TX_LBN 4 14763 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_TX_WIDTH 2 14764 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_EV_OFST 4 14765 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_EV_LBN 6 14766 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_EV_WIDTH 2 14767 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_RX_OFST 4 14768 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_RX_LBN 8 14769 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_RX_WIDTH 2 14770 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_SPARE_OFST 4 14771 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_SPARE_LBN 10 14772 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_SPARE_WIDTH 22 14773 14774 /* MC_CMD_SET_TLP_PROCESSING_GLOBALS_OUT msgresponse */ 14775 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_OUT_LEN 0 14776 14777 14778 /***********************************/ 14779 /* MC_CMD_SATELLITE_DOWNLOAD 14780 * Download a new set of images to the satellite CPUs from the host. 14781 */ 14782 #define MC_CMD_SATELLITE_DOWNLOAD 0x91 14783 #define MC_CMD_SATELLITE_DOWNLOAD_MSGSET 0x91 14784 #undef MC_CMD_0x91_PRIVILEGE_CTG 14785 14786 #define MC_CMD_0x91_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 14787 14788 /* MC_CMD_SATELLITE_DOWNLOAD_IN msgrequest: The reset requirements for the CPUs 14789 * are subtle, and so downloads must proceed in a number of phases. 14790 * 14791 * 1) PHASE_RESET with a target of TARGET_ALL and chunk ID/length of 0. 14792 * 14793 * 2) PHASE_IMEMS for each of the IMEM targets (target IDs 0-11). Each download 14794 * may consist of multiple chunks. The final chunk (with CHUNK_ID_LAST) should 14795 * be a checksum (a simple 32-bit sum) of the transferred data. An individual 14796 * download may be aborted using CHUNK_ID_ABORT. 14797 * 14798 * 3) PHASE_VECTORS for each of the vector table targets (target IDs 12-15), 14799 * similar to PHASE_IMEMS. 14800 * 14801 * 4) PHASE_READY with a target of TARGET_ALL and chunk ID/length of 0. 14802 * 14803 * After any error (a requested abort is not considered to be an error) the 14804 * sequence must be restarted from PHASE_RESET. 14805 */ 14806 #define MC_CMD_SATELLITE_DOWNLOAD_IN_LENMIN 20 14807 #define MC_CMD_SATELLITE_DOWNLOAD_IN_LENMAX 252 14808 #define MC_CMD_SATELLITE_DOWNLOAD_IN_LENMAX_MCDI2 1020 14809 #define MC_CMD_SATELLITE_DOWNLOAD_IN_LEN(num) (16+4*(num)) 14810 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_NUM(len) (((len)-16)/4) 14811 /* Download phase. (Note: the IDLE phase is used internally and is never valid 14812 * in a command from the host.) 14813 */ 14814 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_OFST 0 14815 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_LEN 4 14816 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_IDLE 0x0 /* enum */ 14817 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_RESET 0x1 /* enum */ 14818 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_IMEMS 0x2 /* enum */ 14819 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_VECTORS 0x3 /* enum */ 14820 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_READY 0x4 /* enum */ 14821 /* Target for download. (These match the blob numbers defined in 14822 * mc_flash_layout.h.) 14823 */ 14824 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_OFST 4 14825 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_LEN 4 14826 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 14827 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXDI_TEXT 0x0 14828 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 14829 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXDI_TEXT 0x1 14830 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 14831 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXDP_TEXT 0x2 14832 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 14833 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXDP_TEXT 0x3 14834 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 14835 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXHRSL_HR_LUT 0x4 14836 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 14837 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXHRSL_HR_LUT_CFG 0x5 14838 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 14839 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXHRSL_HR_LUT 0x6 14840 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 14841 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXHRSL_HR_LUT_CFG 0x7 14842 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 14843 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXHRSL_HR_PGM 0x8 14844 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 14845 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXHRSL_SL_PGM 0x9 14846 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 14847 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXHRSL_HR_PGM 0xa 14848 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 14849 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXHRSL_SL_PGM 0xb 14850 /* enum: Valid in phase 3 (PHASE_VECTORS) only */ 14851 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXDI_VTBL0 0xc 14852 /* enum: Valid in phase 3 (PHASE_VECTORS) only */ 14853 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXDI_VTBL0 0xd 14854 /* enum: Valid in phase 3 (PHASE_VECTORS) only */ 14855 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXDI_VTBL1 0xe 14856 /* enum: Valid in phase 3 (PHASE_VECTORS) only */ 14857 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXDI_VTBL1 0xf 14858 /* enum: Valid in phases 1 (PHASE_RESET) and 4 (PHASE_READY) only */ 14859 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_ALL 0xffffffff 14860 /* Chunk ID, or CHUNK_ID_LAST or CHUNK_ID_ABORT */ 14861 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_ID_OFST 8 14862 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_ID_LEN 4 14863 /* enum: Last chunk, containing checksum rather than data */ 14864 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_ID_LAST 0xffffffff 14865 /* enum: Abort download of this item */ 14866 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_ID_ABORT 0xfffffffe 14867 /* Length of this chunk in bytes */ 14868 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_LEN_OFST 12 14869 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_LEN_LEN 4 14870 /* Data for this chunk */ 14871 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_OFST 16 14872 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_LEN 4 14873 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_MINNUM 1 14874 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_MAXNUM 59 14875 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_MAXNUM_MCDI2 251 14876 14877 /* MC_CMD_SATELLITE_DOWNLOAD_OUT msgresponse */ 14878 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_LEN 8 14879 /* Same as MC_CMD_ERR field, but included as 0 in success cases */ 14880 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_RESULT_OFST 0 14881 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_RESULT_LEN 4 14882 /* Extra status information */ 14883 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_INFO_OFST 4 14884 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_INFO_LEN 4 14885 /* enum: Code download OK, completed. */ 14886 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_OK_COMPLETE 0x0 14887 /* enum: Code download aborted as requested. */ 14888 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_OK_ABORTED 0x1 14889 /* enum: Code download OK so far, send next chunk. */ 14890 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_OK_NEXT_CHUNK 0x2 14891 /* enum: Download phases out of sequence */ 14892 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_ERR_BAD_PHASE 0x100 14893 /* enum: Bad target for this phase */ 14894 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_ERR_BAD_TARGET 0x101 14895 /* enum: Chunk ID out of sequence */ 14896 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_ERR_BAD_CHUNK_ID 0x200 14897 /* enum: Chunk length zero or too large */ 14898 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_ERR_BAD_CHUNK_LEN 0x201 14899 /* enum: Checksum was incorrect */ 14900 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_ERR_BAD_CHECKSUM 0x300 14901 14902 14903 /***********************************/ 14904 /* MC_CMD_GET_CAPABILITIES 14905 * Get device capabilities. This is supplementary to the MC_CMD_GET_BOARD_CFG 14906 * command, and intended to reference inherent device capabilities as opposed 14907 * to current NVRAM config. 14908 */ 14909 #define MC_CMD_GET_CAPABILITIES 0xbe 14910 #define MC_CMD_GET_CAPABILITIES_MSGSET 0xbe 14911 #undef MC_CMD_0xbe_PRIVILEGE_CTG 14912 14913 #define MC_CMD_0xbe_PRIVILEGE_CTG SRIOV_CTG_GENERAL 14914 14915 /* MC_CMD_GET_CAPABILITIES_IN msgrequest */ 14916 #define MC_CMD_GET_CAPABILITIES_IN_LEN 0 14917 14918 /* MC_CMD_GET_CAPABILITIES_OUT msgresponse */ 14919 #define MC_CMD_GET_CAPABILITIES_OUT_LEN 20 14920 /* First word of flags. */ 14921 #define MC_CMD_GET_CAPABILITIES_OUT_FLAGS1_OFST 0 14922 #define MC_CMD_GET_CAPABILITIES_OUT_FLAGS1_LEN 4 14923 #define MC_CMD_GET_CAPABILITIES_OUT_VPORT_RECONFIGURE_OFST 0 14924 #define MC_CMD_GET_CAPABILITIES_OUT_VPORT_RECONFIGURE_LBN 3 14925 #define MC_CMD_GET_CAPABILITIES_OUT_VPORT_RECONFIGURE_WIDTH 1 14926 #define MC_CMD_GET_CAPABILITIES_OUT_TX_STRIPING_OFST 0 14927 #define MC_CMD_GET_CAPABILITIES_OUT_TX_STRIPING_LBN 4 14928 #define MC_CMD_GET_CAPABILITIES_OUT_TX_STRIPING_WIDTH 1 14929 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_QUERY_OFST 0 14930 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_QUERY_LBN 5 14931 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_QUERY_WIDTH 1 14932 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 14933 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 14934 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 14935 #define MC_CMD_GET_CAPABILITIES_OUT_DRV_ATTACH_PREBOOT_OFST 0 14936 #define MC_CMD_GET_CAPABILITIES_OUT_DRV_ATTACH_PREBOOT_LBN 7 14937 #define MC_CMD_GET_CAPABILITIES_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 14938 #define MC_CMD_GET_CAPABILITIES_OUT_RX_FORCE_EVENT_MERGING_OFST 0 14939 #define MC_CMD_GET_CAPABILITIES_OUT_RX_FORCE_EVENT_MERGING_LBN 8 14940 #define MC_CMD_GET_CAPABILITIES_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 14941 #define MC_CMD_GET_CAPABILITIES_OUT_SET_MAC_ENHANCED_OFST 0 14942 #define MC_CMD_GET_CAPABILITIES_OUT_SET_MAC_ENHANCED_LBN 9 14943 #define MC_CMD_GET_CAPABILITIES_OUT_SET_MAC_ENHANCED_WIDTH 1 14944 #define MC_CMD_GET_CAPABILITIES_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 14945 #define MC_CMD_GET_CAPABILITIES_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 14946 #define MC_CMD_GET_CAPABILITIES_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 14947 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 14948 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 14949 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 14950 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 14951 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 14952 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 14953 #define MC_CMD_GET_CAPABILITIES_OUT_ADDITIONAL_RSS_MODES_OFST 0 14954 #define MC_CMD_GET_CAPABILITIES_OUT_ADDITIONAL_RSS_MODES_LBN 13 14955 #define MC_CMD_GET_CAPABILITIES_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 14956 #define MC_CMD_GET_CAPABILITIES_OUT_QBB_OFST 0 14957 #define MC_CMD_GET_CAPABILITIES_OUT_QBB_LBN 14 14958 #define MC_CMD_GET_CAPABILITIES_OUT_QBB_WIDTH 1 14959 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 14960 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 14961 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 14962 #define MC_CMD_GET_CAPABILITIES_OUT_RX_RSS_LIMITED_OFST 0 14963 #define MC_CMD_GET_CAPABILITIES_OUT_RX_RSS_LIMITED_LBN 16 14964 #define MC_CMD_GET_CAPABILITIES_OUT_RX_RSS_LIMITED_WIDTH 1 14965 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_OFST 0 14966 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_LBN 17 14967 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_WIDTH 1 14968 #define MC_CMD_GET_CAPABILITIES_OUT_RX_INCLUDE_FCS_OFST 0 14969 #define MC_CMD_GET_CAPABILITIES_OUT_RX_INCLUDE_FCS_LBN 18 14970 #define MC_CMD_GET_CAPABILITIES_OUT_RX_INCLUDE_FCS_WIDTH 1 14971 #define MC_CMD_GET_CAPABILITIES_OUT_TX_VLAN_INSERTION_OFST 0 14972 #define MC_CMD_GET_CAPABILITIES_OUT_TX_VLAN_INSERTION_LBN 19 14973 #define MC_CMD_GET_CAPABILITIES_OUT_TX_VLAN_INSERTION_WIDTH 1 14974 #define MC_CMD_GET_CAPABILITIES_OUT_RX_VLAN_STRIPPING_OFST 0 14975 #define MC_CMD_GET_CAPABILITIES_OUT_RX_VLAN_STRIPPING_LBN 20 14976 #define MC_CMD_GET_CAPABILITIES_OUT_RX_VLAN_STRIPPING_WIDTH 1 14977 #define MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_OFST 0 14978 #define MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_LBN 21 14979 #define MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_WIDTH 1 14980 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_0_OFST 0 14981 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_0_LBN 22 14982 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_0_WIDTH 1 14983 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_14_OFST 0 14984 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_14_LBN 23 14985 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_14_WIDTH 1 14986 #define MC_CMD_GET_CAPABILITIES_OUT_RX_TIMESTAMP_OFST 0 14987 #define MC_CMD_GET_CAPABILITIES_OUT_RX_TIMESTAMP_LBN 24 14988 #define MC_CMD_GET_CAPABILITIES_OUT_RX_TIMESTAMP_WIDTH 1 14989 #define MC_CMD_GET_CAPABILITIES_OUT_RX_BATCHING_OFST 0 14990 #define MC_CMD_GET_CAPABILITIES_OUT_RX_BATCHING_LBN 25 14991 #define MC_CMD_GET_CAPABILITIES_OUT_RX_BATCHING_WIDTH 1 14992 #define MC_CMD_GET_CAPABILITIES_OUT_MCAST_FILTER_CHAINING_OFST 0 14993 #define MC_CMD_GET_CAPABILITIES_OUT_MCAST_FILTER_CHAINING_LBN 26 14994 #define MC_CMD_GET_CAPABILITIES_OUT_MCAST_FILTER_CHAINING_WIDTH 1 14995 #define MC_CMD_GET_CAPABILITIES_OUT_PM_AND_RXDP_COUNTERS_OFST 0 14996 #define MC_CMD_GET_CAPABILITIES_OUT_PM_AND_RXDP_COUNTERS_LBN 27 14997 #define MC_CMD_GET_CAPABILITIES_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 14998 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DISABLE_SCATTER_OFST 0 14999 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DISABLE_SCATTER_LBN 28 15000 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DISABLE_SCATTER_WIDTH 1 15001 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 15002 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 15003 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 15004 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_OFST 0 15005 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_LBN 30 15006 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_WIDTH 1 15007 #define MC_CMD_GET_CAPABILITIES_OUT_VXLAN_NVGRE_OFST 0 15008 #define MC_CMD_GET_CAPABILITIES_OUT_VXLAN_NVGRE_LBN 31 15009 #define MC_CMD_GET_CAPABILITIES_OUT_VXLAN_NVGRE_WIDTH 1 15010 /* RxDPCPU firmware id. */ 15011 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DPCPU_FW_ID_OFST 4 15012 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DPCPU_FW_ID_LEN 2 15013 /* enum: Standard RXDP firmware */ 15014 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP 0x0 15015 /* enum: Low latency RXDP firmware */ 15016 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_LOW_LATENCY 0x1 15017 /* enum: Packed stream RXDP firmware */ 15018 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_PACKED_STREAM 0x2 15019 /* enum: Rules engine RXDP firmware */ 15020 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_RULES_ENGINE 0x5 15021 /* enum: DPDK RXDP firmware */ 15022 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_DPDK 0x6 15023 /* enum: BIST RXDP firmware */ 15024 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_BIST 0x10a 15025 /* enum: RXDP Test firmware image 1 */ 15026 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 15027 /* enum: RXDP Test firmware image 2 */ 15028 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 15029 /* enum: RXDP Test firmware image 3 */ 15030 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 15031 /* enum: RXDP Test firmware image 4 */ 15032 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 15033 /* enum: RXDP Test firmware image 5 */ 15034 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_BACKPRESSURE 0x105 15035 /* enum: RXDP Test firmware image 6 */ 15036 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 15037 /* enum: RXDP Test firmware image 7 */ 15038 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 15039 /* enum: RXDP Test firmware image 8 */ 15040 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 15041 /* enum: RXDP Test firmware image 9 */ 15042 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 15043 /* enum: RXDP Test firmware image 10 */ 15044 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_SLOW 0x10c 15045 /* TxDPCPU firmware id. */ 15046 #define MC_CMD_GET_CAPABILITIES_OUT_TX_DPCPU_FW_ID_OFST 6 15047 #define MC_CMD_GET_CAPABILITIES_OUT_TX_DPCPU_FW_ID_LEN 2 15048 /* enum: Standard TXDP firmware */ 15049 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP 0x0 15050 /* enum: Low latency TXDP firmware */ 15051 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_LOW_LATENCY 0x1 15052 /* enum: High packet rate TXDP firmware */ 15053 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_HIGH_PACKET_RATE 0x3 15054 /* enum: Rules engine TXDP firmware */ 15055 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_RULES_ENGINE 0x5 15056 /* enum: DPDK TXDP firmware */ 15057 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_DPDK 0x6 15058 /* enum: BIST TXDP firmware */ 15059 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_BIST 0x12d 15060 /* enum: TXDP Test firmware image 1 */ 15061 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 15062 /* enum: TXDP Test firmware image 2 */ 15063 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 15064 /* enum: TXDP CSR bus test firmware */ 15065 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_TEST_FW_CSR 0x103 15066 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_OFST 8 15067 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_LEN 2 15068 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_REV_OFST 8 15069 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_REV_LBN 0 15070 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_REV_WIDTH 12 15071 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_TYPE_OFST 8 15072 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_TYPE_LBN 12 15073 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 15074 /* enum: reserved value - do not use (may indicate alternative interpretation 15075 * of REV field in future) 15076 */ 15077 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_RESERVED 0x0 15078 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 15079 * development only) 15080 */ 15081 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 15082 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 15083 */ 15084 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15085 /* enum: RX PD firmware with approximately Siena-compatible behaviour 15086 * (Huntington development only) 15087 */ 15088 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 15089 /* enum: Full featured RX PD production firmware */ 15090 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 15091 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15092 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_VSWITCH 0x3 15093 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 15094 * (Huntington development only) 15095 */ 15096 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15097 /* enum: Low latency RX PD production firmware */ 15098 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 15099 /* enum: Packed stream RX PD production firmware */ 15100 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 15101 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 15102 * tests (Medford development only) 15103 */ 15104 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 15105 /* enum: Rules engine RX PD production firmware */ 15106 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 15107 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15108 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_L3XUDP 0x9 15109 /* enum: DPDK RX PD production firmware */ 15110 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_DPDK 0xa 15111 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15112 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15113 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 15114 * encapsulations (Medford development only) 15115 */ 15116 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 15117 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_OFST 10 15118 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_LEN 2 15119 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_REV_OFST 10 15120 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_REV_LBN 0 15121 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_REV_WIDTH 12 15122 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_TYPE_OFST 10 15123 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_TYPE_LBN 12 15124 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 15125 /* enum: reserved value - do not use (may indicate alternative interpretation 15126 * of REV field in future) 15127 */ 15128 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_RESERVED 0x0 15129 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 15130 * development only) 15131 */ 15132 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 15133 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 15134 */ 15135 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15136 /* enum: TX PD firmware with approximately Siena-compatible behaviour 15137 * (Huntington development only) 15138 */ 15139 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 15140 /* enum: Full featured TX PD production firmware */ 15141 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 15142 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15143 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_VSWITCH 0x3 15144 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 15145 * (Huntington development only) 15146 */ 15147 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15148 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 15149 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 15150 * tests (Medford development only) 15151 */ 15152 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 15153 /* enum: Rules engine TX PD production firmware */ 15154 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 15155 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15156 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_L3XUDP 0x9 15157 /* enum: DPDK TX PD production firmware */ 15158 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_DPDK 0xa 15159 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15160 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15161 /* Hardware capabilities of NIC */ 15162 #define MC_CMD_GET_CAPABILITIES_OUT_HW_CAPABILITIES_OFST 12 15163 #define MC_CMD_GET_CAPABILITIES_OUT_HW_CAPABILITIES_LEN 4 15164 /* Licensed capabilities */ 15165 #define MC_CMD_GET_CAPABILITIES_OUT_LICENSE_CAPABILITIES_OFST 16 15166 #define MC_CMD_GET_CAPABILITIES_OUT_LICENSE_CAPABILITIES_LEN 4 15167 15168 /* MC_CMD_GET_CAPABILITIES_V2_IN msgrequest */ 15169 #define MC_CMD_GET_CAPABILITIES_V2_IN_LEN 0 15170 15171 /* MC_CMD_GET_CAPABILITIES_V2_OUT msgresponse */ 15172 #define MC_CMD_GET_CAPABILITIES_V2_OUT_LEN 72 15173 /* First word of flags. */ 15174 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS1_OFST 0 15175 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS1_LEN 4 15176 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VPORT_RECONFIGURE_OFST 0 15177 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VPORT_RECONFIGURE_LBN 3 15178 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VPORT_RECONFIGURE_WIDTH 1 15179 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_STRIPING_OFST 0 15180 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_STRIPING_LBN 4 15181 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_STRIPING_WIDTH 1 15182 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_QUERY_OFST 0 15183 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_QUERY_LBN 5 15184 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_QUERY_WIDTH 1 15185 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 15186 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 15187 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 15188 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DRV_ATTACH_PREBOOT_OFST 0 15189 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DRV_ATTACH_PREBOOT_LBN 7 15190 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 15191 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_FORCE_EVENT_MERGING_OFST 0 15192 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_FORCE_EVENT_MERGING_LBN 8 15193 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 15194 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SET_MAC_ENHANCED_OFST 0 15195 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SET_MAC_ENHANCED_LBN 9 15196 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SET_MAC_ENHANCED_WIDTH 1 15197 #define MC_CMD_GET_CAPABILITIES_V2_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 15198 #define MC_CMD_GET_CAPABILITIES_V2_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 15199 #define MC_CMD_GET_CAPABILITIES_V2_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 15200 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 15201 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 15202 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 15203 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 15204 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 15205 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 15206 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ADDITIONAL_RSS_MODES_OFST 0 15207 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ADDITIONAL_RSS_MODES_LBN 13 15208 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 15209 #define MC_CMD_GET_CAPABILITIES_V2_OUT_QBB_OFST 0 15210 #define MC_CMD_GET_CAPABILITIES_V2_OUT_QBB_LBN 14 15211 #define MC_CMD_GET_CAPABILITIES_V2_OUT_QBB_WIDTH 1 15212 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 15213 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 15214 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 15215 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_RSS_LIMITED_OFST 0 15216 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_RSS_LIMITED_LBN 16 15217 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_RSS_LIMITED_WIDTH 1 15218 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_OFST 0 15219 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_LBN 17 15220 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_WIDTH 1 15221 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_INCLUDE_FCS_OFST 0 15222 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_INCLUDE_FCS_LBN 18 15223 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_INCLUDE_FCS_WIDTH 1 15224 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VLAN_INSERTION_OFST 0 15225 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VLAN_INSERTION_LBN 19 15226 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VLAN_INSERTION_WIDTH 1 15227 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_VLAN_STRIPPING_OFST 0 15228 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_VLAN_STRIPPING_LBN 20 15229 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_VLAN_STRIPPING_WIDTH 1 15230 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_OFST 0 15231 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_LBN 21 15232 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_WIDTH 1 15233 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_0_OFST 0 15234 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_0_LBN 22 15235 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_0_WIDTH 1 15236 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_14_OFST 0 15237 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_14_LBN 23 15238 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_14_WIDTH 1 15239 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_TIMESTAMP_OFST 0 15240 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_TIMESTAMP_LBN 24 15241 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_TIMESTAMP_WIDTH 1 15242 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_BATCHING_OFST 0 15243 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_BATCHING_LBN 25 15244 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_BATCHING_WIDTH 1 15245 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCAST_FILTER_CHAINING_OFST 0 15246 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCAST_FILTER_CHAINING_LBN 26 15247 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCAST_FILTER_CHAINING_WIDTH 1 15248 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PM_AND_RXDP_COUNTERS_OFST 0 15249 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PM_AND_RXDP_COUNTERS_LBN 27 15250 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 15251 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DISABLE_SCATTER_OFST 0 15252 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DISABLE_SCATTER_LBN 28 15253 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DISABLE_SCATTER_WIDTH 1 15254 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 15255 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 15256 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 15257 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_OFST 0 15258 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_LBN 30 15259 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_WIDTH 1 15260 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VXLAN_NVGRE_OFST 0 15261 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VXLAN_NVGRE_LBN 31 15262 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VXLAN_NVGRE_WIDTH 1 15263 /* RxDPCPU firmware id. */ 15264 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DPCPU_FW_ID_OFST 4 15265 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DPCPU_FW_ID_LEN 2 15266 /* enum: Standard RXDP firmware */ 15267 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP 0x0 15268 /* enum: Low latency RXDP firmware */ 15269 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_LOW_LATENCY 0x1 15270 /* enum: Packed stream RXDP firmware */ 15271 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_PACKED_STREAM 0x2 15272 /* enum: Rules engine RXDP firmware */ 15273 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_RULES_ENGINE 0x5 15274 /* enum: DPDK RXDP firmware */ 15275 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_DPDK 0x6 15276 /* enum: BIST RXDP firmware */ 15277 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_BIST 0x10a 15278 /* enum: RXDP Test firmware image 1 */ 15279 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 15280 /* enum: RXDP Test firmware image 2 */ 15281 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 15282 /* enum: RXDP Test firmware image 3 */ 15283 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 15284 /* enum: RXDP Test firmware image 4 */ 15285 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 15286 /* enum: RXDP Test firmware image 5 */ 15287 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_BACKPRESSURE 0x105 15288 /* enum: RXDP Test firmware image 6 */ 15289 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 15290 /* enum: RXDP Test firmware image 7 */ 15291 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 15292 /* enum: RXDP Test firmware image 8 */ 15293 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 15294 /* enum: RXDP Test firmware image 9 */ 15295 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 15296 /* enum: RXDP Test firmware image 10 */ 15297 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_SLOW 0x10c 15298 /* TxDPCPU firmware id. */ 15299 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DPCPU_FW_ID_OFST 6 15300 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DPCPU_FW_ID_LEN 2 15301 /* enum: Standard TXDP firmware */ 15302 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP 0x0 15303 /* enum: Low latency TXDP firmware */ 15304 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_LOW_LATENCY 0x1 15305 /* enum: High packet rate TXDP firmware */ 15306 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_HIGH_PACKET_RATE 0x3 15307 /* enum: Rules engine TXDP firmware */ 15308 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_RULES_ENGINE 0x5 15309 /* enum: DPDK TXDP firmware */ 15310 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_DPDK 0x6 15311 /* enum: BIST TXDP firmware */ 15312 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_BIST 0x12d 15313 /* enum: TXDP Test firmware image 1 */ 15314 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 15315 /* enum: TXDP Test firmware image 2 */ 15316 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 15317 /* enum: TXDP CSR bus test firmware */ 15318 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_TEST_FW_CSR 0x103 15319 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_OFST 8 15320 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_LEN 2 15321 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_REV_OFST 8 15322 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_REV_LBN 0 15323 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_REV_WIDTH 12 15324 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_TYPE_OFST 8 15325 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_TYPE_LBN 12 15326 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 15327 /* enum: reserved value - do not use (may indicate alternative interpretation 15328 * of REV field in future) 15329 */ 15330 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_RESERVED 0x0 15331 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 15332 * development only) 15333 */ 15334 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 15335 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 15336 */ 15337 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15338 /* enum: RX PD firmware with approximately Siena-compatible behaviour 15339 * (Huntington development only) 15340 */ 15341 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 15342 /* enum: Full featured RX PD production firmware */ 15343 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 15344 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15345 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_VSWITCH 0x3 15346 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 15347 * (Huntington development only) 15348 */ 15349 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15350 /* enum: Low latency RX PD production firmware */ 15351 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 15352 /* enum: Packed stream RX PD production firmware */ 15353 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 15354 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 15355 * tests (Medford development only) 15356 */ 15357 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 15358 /* enum: Rules engine RX PD production firmware */ 15359 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 15360 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15361 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_L3XUDP 0x9 15362 /* enum: DPDK RX PD production firmware */ 15363 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_DPDK 0xa 15364 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15365 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15366 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 15367 * encapsulations (Medford development only) 15368 */ 15369 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 15370 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_OFST 10 15371 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_LEN 2 15372 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_REV_OFST 10 15373 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_REV_LBN 0 15374 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_REV_WIDTH 12 15375 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_TYPE_OFST 10 15376 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_TYPE_LBN 12 15377 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 15378 /* enum: reserved value - do not use (may indicate alternative interpretation 15379 * of REV field in future) 15380 */ 15381 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_RESERVED 0x0 15382 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 15383 * development only) 15384 */ 15385 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 15386 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 15387 */ 15388 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15389 /* enum: TX PD firmware with approximately Siena-compatible behaviour 15390 * (Huntington development only) 15391 */ 15392 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 15393 /* enum: Full featured TX PD production firmware */ 15394 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 15395 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15396 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_VSWITCH 0x3 15397 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 15398 * (Huntington development only) 15399 */ 15400 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15401 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 15402 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 15403 * tests (Medford development only) 15404 */ 15405 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 15406 /* enum: Rules engine TX PD production firmware */ 15407 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 15408 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15409 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_L3XUDP 0x9 15410 /* enum: DPDK TX PD production firmware */ 15411 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_DPDK 0xa 15412 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15413 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15414 /* Hardware capabilities of NIC */ 15415 #define MC_CMD_GET_CAPABILITIES_V2_OUT_HW_CAPABILITIES_OFST 12 15416 #define MC_CMD_GET_CAPABILITIES_V2_OUT_HW_CAPABILITIES_LEN 4 15417 /* Licensed capabilities */ 15418 #define MC_CMD_GET_CAPABILITIES_V2_OUT_LICENSE_CAPABILITIES_OFST 16 15419 #define MC_CMD_GET_CAPABILITIES_V2_OUT_LICENSE_CAPABILITIES_LEN 4 15420 /* Second word of flags. Not present on older firmware (check the length). */ 15421 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS2_OFST 20 15422 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS2_LEN 4 15423 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_OFST 20 15424 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_LBN 0 15425 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_WIDTH 1 15426 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_ENCAP_OFST 20 15427 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_ENCAP_LBN 1 15428 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_ENCAP_WIDTH 1 15429 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVQ_TIMER_CTRL_OFST 20 15430 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVQ_TIMER_CTRL_LBN 2 15431 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVQ_TIMER_CTRL_WIDTH 1 15432 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVENT_CUT_THROUGH_OFST 20 15433 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVENT_CUT_THROUGH_LBN 3 15434 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVENT_CUT_THROUGH_WIDTH 1 15435 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_CUT_THROUGH_OFST 20 15436 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_CUT_THROUGH_LBN 4 15437 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_CUT_THROUGH_WIDTH 1 15438 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VFIFO_ULL_MODE_OFST 20 15439 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VFIFO_ULL_MODE_LBN 5 15440 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 15441 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 15442 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 15443 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 15444 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 15445 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 15446 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 15447 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_V2_OFST 20 15448 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_V2_LBN 7 15449 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_V2_WIDTH 1 15450 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_TIMESTAMPING_OFST 20 15451 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_TIMESTAMPING_LBN 8 15452 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 15453 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TIMESTAMP_OFST 20 15454 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TIMESTAMP_LBN 9 15455 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TIMESTAMP_WIDTH 1 15456 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_SNIFF_OFST 20 15457 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_SNIFF_LBN 10 15458 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_SNIFF_WIDTH 1 15459 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_SNIFF_OFST 20 15460 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_SNIFF_LBN 11 15461 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_SNIFF_WIDTH 1 15462 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 15463 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 15464 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 15465 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_BACKGROUND_OFST 20 15466 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_BACKGROUND_LBN 13 15467 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_BACKGROUND_WIDTH 1 15468 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_DB_RETURN_OFST 20 15469 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_DB_RETURN_LBN 14 15470 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_DB_RETURN_WIDTH 1 15471 #define MC_CMD_GET_CAPABILITIES_V2_OUT_CTPIO_OFST 20 15472 #define MC_CMD_GET_CAPABILITIES_V2_OUT_CTPIO_LBN 15 15473 #define MC_CMD_GET_CAPABILITIES_V2_OUT_CTPIO_WIDTH 1 15474 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_SUPPORT_OFST 20 15475 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_SUPPORT_LBN 16 15476 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_SUPPORT_WIDTH 1 15477 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_BOUND_OFST 20 15478 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_BOUND_LBN 17 15479 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_BOUND_WIDTH 1 15480 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 15481 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 15482 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 15483 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_FLAG_OFST 20 15484 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_FLAG_LBN 19 15485 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_FLAG_WIDTH 1 15486 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_MARK_OFST 20 15487 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_MARK_LBN 20 15488 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_MARK_WIDTH 1 15489 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 15490 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 15491 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 15492 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 15493 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 15494 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 15495 #define MC_CMD_GET_CAPABILITIES_V2_OUT_L3XUDP_SUPPORT_OFST 20 15496 #define MC_CMD_GET_CAPABILITIES_V2_OUT_L3XUDP_SUPPORT_LBN 22 15497 #define MC_CMD_GET_CAPABILITIES_V2_OUT_L3XUDP_SUPPORT_WIDTH 1 15498 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 15499 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 15500 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 15501 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VI_SPREADING_OFST 20 15502 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VI_SPREADING_LBN 24 15503 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VI_SPREADING_WIDTH 1 15504 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_HLB_IDLE_OFST 20 15505 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_HLB_IDLE_LBN 25 15506 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_HLB_IDLE_WIDTH 1 15507 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 15508 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 15509 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 15510 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 15511 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 15512 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 15513 #define MC_CMD_GET_CAPABILITIES_V2_OUT_BUNDLE_UPDATE_OFST 20 15514 #define MC_CMD_GET_CAPABILITIES_V2_OUT_BUNDLE_UPDATE_LBN 28 15515 #define MC_CMD_GET_CAPABILITIES_V2_OUT_BUNDLE_UPDATE_WIDTH 1 15516 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V3_OFST 20 15517 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V3_LBN 29 15518 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V3_WIDTH 1 15519 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DYNAMIC_SENSORS_OFST 20 15520 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DYNAMIC_SENSORS_LBN 30 15521 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DYNAMIC_SENSORS_WIDTH 1 15522 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 15523 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 15524 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 15525 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 15526 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 15527 */ 15528 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 15529 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 15530 /* One byte per PF containing the number of the external port assigned to this 15531 * PF, indexed by PF number. Special values indicate that a PF is either not 15532 * present or not assigned. 15533 */ 15534 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 15535 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 15536 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 15537 /* enum: The caller is not permitted to access information on this PF. */ 15538 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ACCESS_NOT_PERMITTED 0xff 15539 /* enum: PF does not exist. */ 15540 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PF_NOT_PRESENT 0xfe 15541 /* enum: PF does exist but is not assigned to any external port. */ 15542 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PF_NOT_ASSIGNED 0xfd 15543 /* enum: This value indicates that PF is assigned, but it cannot be expressed 15544 * in this field. It is intended for a possible future situation where a more 15545 * complex scheme of PFs to ports mapping is being used. The future driver 15546 * should look for a new field supporting the new scheme. The current/old 15547 * driver should treat this value as PF_NOT_ASSIGNED. 15548 */ 15549 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 15550 /* One byte per PF containing the number of its VFs, indexed by PF number. A 15551 * special value indicates that a PF is not present. 15552 */ 15553 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VFS_PER_PF_OFST 42 15554 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VFS_PER_PF_LEN 1 15555 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VFS_PER_PF_NUM 16 15556 /* enum: The caller is not permitted to access information on this PF. */ 15557 /* MC_CMD_GET_CAPABILITIES_V2_OUT_ACCESS_NOT_PERMITTED 0xff */ 15558 /* enum: PF does not exist. */ 15559 /* MC_CMD_GET_CAPABILITIES_V2_OUT_PF_NOT_PRESENT 0xfe */ 15560 /* Number of VIs available for each external port */ 15561 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VIS_PER_PORT_OFST 58 15562 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VIS_PER_PORT_LEN 2 15563 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VIS_PER_PORT_NUM 4 15564 /* Size of RX descriptor cache expressed as binary logarithm The actual size 15565 * equals (2 ^ RX_DESC_CACHE_SIZE) 15566 */ 15567 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DESC_CACHE_SIZE_OFST 66 15568 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DESC_CACHE_SIZE_LEN 1 15569 /* Size of TX descriptor cache expressed as binary logarithm The actual size 15570 * equals (2 ^ TX_DESC_CACHE_SIZE) 15571 */ 15572 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DESC_CACHE_SIZE_OFST 67 15573 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DESC_CACHE_SIZE_LEN 1 15574 /* Total number of available PIO buffers */ 15575 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_PIO_BUFFS_OFST 68 15576 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_PIO_BUFFS_LEN 2 15577 /* Size of a single PIO buffer */ 15578 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SIZE_PIO_BUFF_OFST 70 15579 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SIZE_PIO_BUFF_LEN 2 15580 15581 /* MC_CMD_GET_CAPABILITIES_V3_OUT msgresponse */ 15582 #define MC_CMD_GET_CAPABILITIES_V3_OUT_LEN 76 15583 /* First word of flags. */ 15584 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS1_OFST 0 15585 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS1_LEN 4 15586 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VPORT_RECONFIGURE_OFST 0 15587 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VPORT_RECONFIGURE_LBN 3 15588 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VPORT_RECONFIGURE_WIDTH 1 15589 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_STRIPING_OFST 0 15590 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_STRIPING_LBN 4 15591 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_STRIPING_WIDTH 1 15592 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_QUERY_OFST 0 15593 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_QUERY_LBN 5 15594 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_QUERY_WIDTH 1 15595 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 15596 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 15597 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 15598 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DRV_ATTACH_PREBOOT_OFST 0 15599 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DRV_ATTACH_PREBOOT_LBN 7 15600 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 15601 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_FORCE_EVENT_MERGING_OFST 0 15602 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_FORCE_EVENT_MERGING_LBN 8 15603 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 15604 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SET_MAC_ENHANCED_OFST 0 15605 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SET_MAC_ENHANCED_LBN 9 15606 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SET_MAC_ENHANCED_WIDTH 1 15607 #define MC_CMD_GET_CAPABILITIES_V3_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 15608 #define MC_CMD_GET_CAPABILITIES_V3_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 15609 #define MC_CMD_GET_CAPABILITIES_V3_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 15610 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 15611 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 15612 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 15613 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 15614 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 15615 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 15616 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ADDITIONAL_RSS_MODES_OFST 0 15617 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ADDITIONAL_RSS_MODES_LBN 13 15618 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 15619 #define MC_CMD_GET_CAPABILITIES_V3_OUT_QBB_OFST 0 15620 #define MC_CMD_GET_CAPABILITIES_V3_OUT_QBB_LBN 14 15621 #define MC_CMD_GET_CAPABILITIES_V3_OUT_QBB_WIDTH 1 15622 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 15623 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 15624 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 15625 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_RSS_LIMITED_OFST 0 15626 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_RSS_LIMITED_LBN 16 15627 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_RSS_LIMITED_WIDTH 1 15628 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_OFST 0 15629 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_LBN 17 15630 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_WIDTH 1 15631 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_INCLUDE_FCS_OFST 0 15632 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_INCLUDE_FCS_LBN 18 15633 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_INCLUDE_FCS_WIDTH 1 15634 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VLAN_INSERTION_OFST 0 15635 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VLAN_INSERTION_LBN 19 15636 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VLAN_INSERTION_WIDTH 1 15637 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_VLAN_STRIPPING_OFST 0 15638 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_VLAN_STRIPPING_LBN 20 15639 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_VLAN_STRIPPING_WIDTH 1 15640 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_OFST 0 15641 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_LBN 21 15642 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_WIDTH 1 15643 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_0_OFST 0 15644 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_0_LBN 22 15645 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_0_WIDTH 1 15646 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_14_OFST 0 15647 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_14_LBN 23 15648 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_14_WIDTH 1 15649 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_TIMESTAMP_OFST 0 15650 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_TIMESTAMP_LBN 24 15651 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_TIMESTAMP_WIDTH 1 15652 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_BATCHING_OFST 0 15653 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_BATCHING_LBN 25 15654 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_BATCHING_WIDTH 1 15655 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCAST_FILTER_CHAINING_OFST 0 15656 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCAST_FILTER_CHAINING_LBN 26 15657 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCAST_FILTER_CHAINING_WIDTH 1 15658 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PM_AND_RXDP_COUNTERS_OFST 0 15659 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PM_AND_RXDP_COUNTERS_LBN 27 15660 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 15661 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DISABLE_SCATTER_OFST 0 15662 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DISABLE_SCATTER_LBN 28 15663 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DISABLE_SCATTER_WIDTH 1 15664 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 15665 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 15666 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 15667 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_OFST 0 15668 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_LBN 30 15669 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_WIDTH 1 15670 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VXLAN_NVGRE_OFST 0 15671 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VXLAN_NVGRE_LBN 31 15672 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VXLAN_NVGRE_WIDTH 1 15673 /* RxDPCPU firmware id. */ 15674 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DPCPU_FW_ID_OFST 4 15675 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DPCPU_FW_ID_LEN 2 15676 /* enum: Standard RXDP firmware */ 15677 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP 0x0 15678 /* enum: Low latency RXDP firmware */ 15679 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_LOW_LATENCY 0x1 15680 /* enum: Packed stream RXDP firmware */ 15681 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_PACKED_STREAM 0x2 15682 /* enum: Rules engine RXDP firmware */ 15683 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_RULES_ENGINE 0x5 15684 /* enum: DPDK RXDP firmware */ 15685 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_DPDK 0x6 15686 /* enum: BIST RXDP firmware */ 15687 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_BIST 0x10a 15688 /* enum: RXDP Test firmware image 1 */ 15689 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 15690 /* enum: RXDP Test firmware image 2 */ 15691 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 15692 /* enum: RXDP Test firmware image 3 */ 15693 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 15694 /* enum: RXDP Test firmware image 4 */ 15695 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 15696 /* enum: RXDP Test firmware image 5 */ 15697 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_BACKPRESSURE 0x105 15698 /* enum: RXDP Test firmware image 6 */ 15699 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 15700 /* enum: RXDP Test firmware image 7 */ 15701 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 15702 /* enum: RXDP Test firmware image 8 */ 15703 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 15704 /* enum: RXDP Test firmware image 9 */ 15705 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 15706 /* enum: RXDP Test firmware image 10 */ 15707 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_SLOW 0x10c 15708 /* TxDPCPU firmware id. */ 15709 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DPCPU_FW_ID_OFST 6 15710 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DPCPU_FW_ID_LEN 2 15711 /* enum: Standard TXDP firmware */ 15712 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP 0x0 15713 /* enum: Low latency TXDP firmware */ 15714 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_LOW_LATENCY 0x1 15715 /* enum: High packet rate TXDP firmware */ 15716 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_HIGH_PACKET_RATE 0x3 15717 /* enum: Rules engine TXDP firmware */ 15718 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_RULES_ENGINE 0x5 15719 /* enum: DPDK TXDP firmware */ 15720 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_DPDK 0x6 15721 /* enum: BIST TXDP firmware */ 15722 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_BIST 0x12d 15723 /* enum: TXDP Test firmware image 1 */ 15724 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 15725 /* enum: TXDP Test firmware image 2 */ 15726 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 15727 /* enum: TXDP CSR bus test firmware */ 15728 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_TEST_FW_CSR 0x103 15729 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_OFST 8 15730 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_LEN 2 15731 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_REV_OFST 8 15732 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_REV_LBN 0 15733 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_REV_WIDTH 12 15734 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_TYPE_OFST 8 15735 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_TYPE_LBN 12 15736 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 15737 /* enum: reserved value - do not use (may indicate alternative interpretation 15738 * of REV field in future) 15739 */ 15740 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_RESERVED 0x0 15741 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 15742 * development only) 15743 */ 15744 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 15745 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 15746 */ 15747 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15748 /* enum: RX PD firmware with approximately Siena-compatible behaviour 15749 * (Huntington development only) 15750 */ 15751 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 15752 /* enum: Full featured RX PD production firmware */ 15753 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 15754 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15755 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_VSWITCH 0x3 15756 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 15757 * (Huntington development only) 15758 */ 15759 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15760 /* enum: Low latency RX PD production firmware */ 15761 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 15762 /* enum: Packed stream RX PD production firmware */ 15763 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 15764 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 15765 * tests (Medford development only) 15766 */ 15767 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 15768 /* enum: Rules engine RX PD production firmware */ 15769 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 15770 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15771 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_L3XUDP 0x9 15772 /* enum: DPDK RX PD production firmware */ 15773 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_DPDK 0xa 15774 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15775 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15776 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 15777 * encapsulations (Medford development only) 15778 */ 15779 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 15780 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_OFST 10 15781 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_LEN 2 15782 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_REV_OFST 10 15783 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_REV_LBN 0 15784 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_REV_WIDTH 12 15785 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_TYPE_OFST 10 15786 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_TYPE_LBN 12 15787 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 15788 /* enum: reserved value - do not use (may indicate alternative interpretation 15789 * of REV field in future) 15790 */ 15791 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_RESERVED 0x0 15792 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 15793 * development only) 15794 */ 15795 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 15796 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 15797 */ 15798 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15799 /* enum: TX PD firmware with approximately Siena-compatible behaviour 15800 * (Huntington development only) 15801 */ 15802 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 15803 /* enum: Full featured TX PD production firmware */ 15804 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 15805 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15806 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_VSWITCH 0x3 15807 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 15808 * (Huntington development only) 15809 */ 15810 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15811 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 15812 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 15813 * tests (Medford development only) 15814 */ 15815 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 15816 /* enum: Rules engine TX PD production firmware */ 15817 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 15818 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15819 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_L3XUDP 0x9 15820 /* enum: DPDK TX PD production firmware */ 15821 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_DPDK 0xa 15822 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15823 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15824 /* Hardware capabilities of NIC */ 15825 #define MC_CMD_GET_CAPABILITIES_V3_OUT_HW_CAPABILITIES_OFST 12 15826 #define MC_CMD_GET_CAPABILITIES_V3_OUT_HW_CAPABILITIES_LEN 4 15827 /* Licensed capabilities */ 15828 #define MC_CMD_GET_CAPABILITIES_V3_OUT_LICENSE_CAPABILITIES_OFST 16 15829 #define MC_CMD_GET_CAPABILITIES_V3_OUT_LICENSE_CAPABILITIES_LEN 4 15830 /* Second word of flags. Not present on older firmware (check the length). */ 15831 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS2_OFST 20 15832 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS2_LEN 4 15833 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_OFST 20 15834 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_LBN 0 15835 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_WIDTH 1 15836 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_ENCAP_OFST 20 15837 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_ENCAP_LBN 1 15838 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_ENCAP_WIDTH 1 15839 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVQ_TIMER_CTRL_OFST 20 15840 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVQ_TIMER_CTRL_LBN 2 15841 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVQ_TIMER_CTRL_WIDTH 1 15842 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVENT_CUT_THROUGH_OFST 20 15843 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVENT_CUT_THROUGH_LBN 3 15844 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVENT_CUT_THROUGH_WIDTH 1 15845 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_CUT_THROUGH_OFST 20 15846 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_CUT_THROUGH_LBN 4 15847 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_CUT_THROUGH_WIDTH 1 15848 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VFIFO_ULL_MODE_OFST 20 15849 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VFIFO_ULL_MODE_LBN 5 15850 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 15851 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 15852 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 15853 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 15854 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 15855 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 15856 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 15857 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_V2_OFST 20 15858 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_V2_LBN 7 15859 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_V2_WIDTH 1 15860 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_TIMESTAMPING_OFST 20 15861 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_TIMESTAMPING_LBN 8 15862 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 15863 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TIMESTAMP_OFST 20 15864 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TIMESTAMP_LBN 9 15865 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TIMESTAMP_WIDTH 1 15866 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_SNIFF_OFST 20 15867 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_SNIFF_LBN 10 15868 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_SNIFF_WIDTH 1 15869 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_SNIFF_OFST 20 15870 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_SNIFF_LBN 11 15871 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_SNIFF_WIDTH 1 15872 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 15873 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 15874 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 15875 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_BACKGROUND_OFST 20 15876 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_BACKGROUND_LBN 13 15877 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_BACKGROUND_WIDTH 1 15878 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_DB_RETURN_OFST 20 15879 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_DB_RETURN_LBN 14 15880 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_DB_RETURN_WIDTH 1 15881 #define MC_CMD_GET_CAPABILITIES_V3_OUT_CTPIO_OFST 20 15882 #define MC_CMD_GET_CAPABILITIES_V3_OUT_CTPIO_LBN 15 15883 #define MC_CMD_GET_CAPABILITIES_V3_OUT_CTPIO_WIDTH 1 15884 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_SUPPORT_OFST 20 15885 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_SUPPORT_LBN 16 15886 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_SUPPORT_WIDTH 1 15887 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_BOUND_OFST 20 15888 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_BOUND_LBN 17 15889 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_BOUND_WIDTH 1 15890 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 15891 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 15892 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 15893 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_FLAG_OFST 20 15894 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_FLAG_LBN 19 15895 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_FLAG_WIDTH 1 15896 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_MARK_OFST 20 15897 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_MARK_LBN 20 15898 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_MARK_WIDTH 1 15899 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 15900 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 15901 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 15902 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 15903 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 15904 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 15905 #define MC_CMD_GET_CAPABILITIES_V3_OUT_L3XUDP_SUPPORT_OFST 20 15906 #define MC_CMD_GET_CAPABILITIES_V3_OUT_L3XUDP_SUPPORT_LBN 22 15907 #define MC_CMD_GET_CAPABILITIES_V3_OUT_L3XUDP_SUPPORT_WIDTH 1 15908 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 15909 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 15910 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 15911 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_SPREADING_OFST 20 15912 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_SPREADING_LBN 24 15913 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_SPREADING_WIDTH 1 15914 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_HLB_IDLE_OFST 20 15915 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_HLB_IDLE_LBN 25 15916 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_HLB_IDLE_WIDTH 1 15917 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 15918 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 15919 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 15920 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 15921 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 15922 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 15923 #define MC_CMD_GET_CAPABILITIES_V3_OUT_BUNDLE_UPDATE_OFST 20 15924 #define MC_CMD_GET_CAPABILITIES_V3_OUT_BUNDLE_UPDATE_LBN 28 15925 #define MC_CMD_GET_CAPABILITIES_V3_OUT_BUNDLE_UPDATE_WIDTH 1 15926 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V3_OFST 20 15927 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V3_LBN 29 15928 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V3_WIDTH 1 15929 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DYNAMIC_SENSORS_OFST 20 15930 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DYNAMIC_SENSORS_LBN 30 15931 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DYNAMIC_SENSORS_WIDTH 1 15932 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 15933 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 15934 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 15935 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 15936 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 15937 */ 15938 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 15939 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 15940 /* One byte per PF containing the number of the external port assigned to this 15941 * PF, indexed by PF number. Special values indicate that a PF is either not 15942 * present or not assigned. 15943 */ 15944 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 15945 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 15946 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 15947 /* enum: The caller is not permitted to access information on this PF. */ 15948 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ACCESS_NOT_PERMITTED 0xff 15949 /* enum: PF does not exist. */ 15950 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PF_NOT_PRESENT 0xfe 15951 /* enum: PF does exist but is not assigned to any external port. */ 15952 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PF_NOT_ASSIGNED 0xfd 15953 /* enum: This value indicates that PF is assigned, but it cannot be expressed 15954 * in this field. It is intended for a possible future situation where a more 15955 * complex scheme of PFs to ports mapping is being used. The future driver 15956 * should look for a new field supporting the new scheme. The current/old 15957 * driver should treat this value as PF_NOT_ASSIGNED. 15958 */ 15959 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 15960 /* One byte per PF containing the number of its VFs, indexed by PF number. A 15961 * special value indicates that a PF is not present. 15962 */ 15963 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VFS_PER_PF_OFST 42 15964 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VFS_PER_PF_LEN 1 15965 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VFS_PER_PF_NUM 16 15966 /* enum: The caller is not permitted to access information on this PF. */ 15967 /* MC_CMD_GET_CAPABILITIES_V3_OUT_ACCESS_NOT_PERMITTED 0xff */ 15968 /* enum: PF does not exist. */ 15969 /* MC_CMD_GET_CAPABILITIES_V3_OUT_PF_NOT_PRESENT 0xfe */ 15970 /* Number of VIs available for each external port */ 15971 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VIS_PER_PORT_OFST 58 15972 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VIS_PER_PORT_LEN 2 15973 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VIS_PER_PORT_NUM 4 15974 /* Size of RX descriptor cache expressed as binary logarithm The actual size 15975 * equals (2 ^ RX_DESC_CACHE_SIZE) 15976 */ 15977 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DESC_CACHE_SIZE_OFST 66 15978 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DESC_CACHE_SIZE_LEN 1 15979 /* Size of TX descriptor cache expressed as binary logarithm The actual size 15980 * equals (2 ^ TX_DESC_CACHE_SIZE) 15981 */ 15982 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DESC_CACHE_SIZE_OFST 67 15983 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DESC_CACHE_SIZE_LEN 1 15984 /* Total number of available PIO buffers */ 15985 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_PIO_BUFFS_OFST 68 15986 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_PIO_BUFFS_LEN 2 15987 /* Size of a single PIO buffer */ 15988 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SIZE_PIO_BUFF_OFST 70 15989 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SIZE_PIO_BUFF_LEN 2 15990 /* On chips later than Medford the amount of address space assigned to each VI 15991 * is configurable. This is a global setting that the driver must query to 15992 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 15993 * with 8k VI windows. 15994 */ 15995 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_OFST 72 15996 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_LEN 1 15997 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 15998 * CTPIO is not mapped. 15999 */ 16000 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_8K 0x0 16001 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 16002 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_16K 0x1 16003 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 16004 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_64K 0x2 16005 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 16006 * (SF-115995-SW) in the present configuration of firmware and port mode. 16007 */ 16008 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 16009 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 16010 /* Number of buffers per adapter that can be used for VFIFO Stuffing 16011 * (SF-115995-SW) in the present configuration of firmware and port mode. 16012 */ 16013 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 16014 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 16015 16016 /* MC_CMD_GET_CAPABILITIES_V4_OUT msgresponse */ 16017 #define MC_CMD_GET_CAPABILITIES_V4_OUT_LEN 78 16018 /* First word of flags. */ 16019 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS1_OFST 0 16020 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS1_LEN 4 16021 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VPORT_RECONFIGURE_OFST 0 16022 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VPORT_RECONFIGURE_LBN 3 16023 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VPORT_RECONFIGURE_WIDTH 1 16024 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_STRIPING_OFST 0 16025 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_STRIPING_LBN 4 16026 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_STRIPING_WIDTH 1 16027 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_QUERY_OFST 0 16028 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_QUERY_LBN 5 16029 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_QUERY_WIDTH 1 16030 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 16031 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 16032 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 16033 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DRV_ATTACH_PREBOOT_OFST 0 16034 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DRV_ATTACH_PREBOOT_LBN 7 16035 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 16036 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_FORCE_EVENT_MERGING_OFST 0 16037 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_FORCE_EVENT_MERGING_LBN 8 16038 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 16039 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SET_MAC_ENHANCED_OFST 0 16040 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SET_MAC_ENHANCED_LBN 9 16041 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SET_MAC_ENHANCED_WIDTH 1 16042 #define MC_CMD_GET_CAPABILITIES_V4_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 16043 #define MC_CMD_GET_CAPABILITIES_V4_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 16044 #define MC_CMD_GET_CAPABILITIES_V4_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 16045 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 16046 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 16047 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 16048 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 16049 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 16050 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 16051 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ADDITIONAL_RSS_MODES_OFST 0 16052 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ADDITIONAL_RSS_MODES_LBN 13 16053 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 16054 #define MC_CMD_GET_CAPABILITIES_V4_OUT_QBB_OFST 0 16055 #define MC_CMD_GET_CAPABILITIES_V4_OUT_QBB_LBN 14 16056 #define MC_CMD_GET_CAPABILITIES_V4_OUT_QBB_WIDTH 1 16057 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 16058 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 16059 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 16060 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_RSS_LIMITED_OFST 0 16061 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_RSS_LIMITED_LBN 16 16062 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_RSS_LIMITED_WIDTH 1 16063 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_OFST 0 16064 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_LBN 17 16065 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_WIDTH 1 16066 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_INCLUDE_FCS_OFST 0 16067 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_INCLUDE_FCS_LBN 18 16068 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_INCLUDE_FCS_WIDTH 1 16069 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VLAN_INSERTION_OFST 0 16070 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VLAN_INSERTION_LBN 19 16071 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VLAN_INSERTION_WIDTH 1 16072 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_VLAN_STRIPPING_OFST 0 16073 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_VLAN_STRIPPING_LBN 20 16074 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_VLAN_STRIPPING_WIDTH 1 16075 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_OFST 0 16076 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_LBN 21 16077 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_WIDTH 1 16078 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_0_OFST 0 16079 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_0_LBN 22 16080 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_0_WIDTH 1 16081 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_14_OFST 0 16082 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_14_LBN 23 16083 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_14_WIDTH 1 16084 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_TIMESTAMP_OFST 0 16085 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_TIMESTAMP_LBN 24 16086 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_TIMESTAMP_WIDTH 1 16087 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_BATCHING_OFST 0 16088 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_BATCHING_LBN 25 16089 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_BATCHING_WIDTH 1 16090 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCAST_FILTER_CHAINING_OFST 0 16091 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCAST_FILTER_CHAINING_LBN 26 16092 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCAST_FILTER_CHAINING_WIDTH 1 16093 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PM_AND_RXDP_COUNTERS_OFST 0 16094 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PM_AND_RXDP_COUNTERS_LBN 27 16095 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 16096 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DISABLE_SCATTER_OFST 0 16097 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DISABLE_SCATTER_LBN 28 16098 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DISABLE_SCATTER_WIDTH 1 16099 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 16100 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 16101 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 16102 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_OFST 0 16103 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_LBN 30 16104 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_WIDTH 1 16105 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VXLAN_NVGRE_OFST 0 16106 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VXLAN_NVGRE_LBN 31 16107 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VXLAN_NVGRE_WIDTH 1 16108 /* RxDPCPU firmware id. */ 16109 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DPCPU_FW_ID_OFST 4 16110 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DPCPU_FW_ID_LEN 2 16111 /* enum: Standard RXDP firmware */ 16112 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP 0x0 16113 /* enum: Low latency RXDP firmware */ 16114 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_LOW_LATENCY 0x1 16115 /* enum: Packed stream RXDP firmware */ 16116 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_PACKED_STREAM 0x2 16117 /* enum: Rules engine RXDP firmware */ 16118 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_RULES_ENGINE 0x5 16119 /* enum: DPDK RXDP firmware */ 16120 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_DPDK 0x6 16121 /* enum: BIST RXDP firmware */ 16122 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_BIST 0x10a 16123 /* enum: RXDP Test firmware image 1 */ 16124 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 16125 /* enum: RXDP Test firmware image 2 */ 16126 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 16127 /* enum: RXDP Test firmware image 3 */ 16128 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 16129 /* enum: RXDP Test firmware image 4 */ 16130 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 16131 /* enum: RXDP Test firmware image 5 */ 16132 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_BACKPRESSURE 0x105 16133 /* enum: RXDP Test firmware image 6 */ 16134 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 16135 /* enum: RXDP Test firmware image 7 */ 16136 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 16137 /* enum: RXDP Test firmware image 8 */ 16138 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 16139 /* enum: RXDP Test firmware image 9 */ 16140 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 16141 /* enum: RXDP Test firmware image 10 */ 16142 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_SLOW 0x10c 16143 /* TxDPCPU firmware id. */ 16144 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DPCPU_FW_ID_OFST 6 16145 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DPCPU_FW_ID_LEN 2 16146 /* enum: Standard TXDP firmware */ 16147 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP 0x0 16148 /* enum: Low latency TXDP firmware */ 16149 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_LOW_LATENCY 0x1 16150 /* enum: High packet rate TXDP firmware */ 16151 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_HIGH_PACKET_RATE 0x3 16152 /* enum: Rules engine TXDP firmware */ 16153 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_RULES_ENGINE 0x5 16154 /* enum: DPDK TXDP firmware */ 16155 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_DPDK 0x6 16156 /* enum: BIST TXDP firmware */ 16157 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_BIST 0x12d 16158 /* enum: TXDP Test firmware image 1 */ 16159 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 16160 /* enum: TXDP Test firmware image 2 */ 16161 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 16162 /* enum: TXDP CSR bus test firmware */ 16163 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_TEST_FW_CSR 0x103 16164 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_OFST 8 16165 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_LEN 2 16166 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_REV_OFST 8 16167 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_REV_LBN 0 16168 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_REV_WIDTH 12 16169 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_TYPE_OFST 8 16170 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_TYPE_LBN 12 16171 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 16172 /* enum: reserved value - do not use (may indicate alternative interpretation 16173 * of REV field in future) 16174 */ 16175 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_RESERVED 0x0 16176 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 16177 * development only) 16178 */ 16179 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 16180 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 16181 */ 16182 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 16183 /* enum: RX PD firmware with approximately Siena-compatible behaviour 16184 * (Huntington development only) 16185 */ 16186 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 16187 /* enum: Full featured RX PD production firmware */ 16188 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 16189 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 16190 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_VSWITCH 0x3 16191 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 16192 * (Huntington development only) 16193 */ 16194 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 16195 /* enum: Low latency RX PD production firmware */ 16196 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 16197 /* enum: Packed stream RX PD production firmware */ 16198 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 16199 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 16200 * tests (Medford development only) 16201 */ 16202 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 16203 /* enum: Rules engine RX PD production firmware */ 16204 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 16205 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 16206 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_L3XUDP 0x9 16207 /* enum: DPDK RX PD production firmware */ 16208 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_DPDK 0xa 16209 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 16210 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 16211 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 16212 * encapsulations (Medford development only) 16213 */ 16214 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 16215 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_OFST 10 16216 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_LEN 2 16217 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_REV_OFST 10 16218 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_REV_LBN 0 16219 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_REV_WIDTH 12 16220 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_TYPE_OFST 10 16221 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_TYPE_LBN 12 16222 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 16223 /* enum: reserved value - do not use (may indicate alternative interpretation 16224 * of REV field in future) 16225 */ 16226 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_RESERVED 0x0 16227 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 16228 * development only) 16229 */ 16230 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 16231 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 16232 */ 16233 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 16234 /* enum: TX PD firmware with approximately Siena-compatible behaviour 16235 * (Huntington development only) 16236 */ 16237 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 16238 /* enum: Full featured TX PD production firmware */ 16239 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 16240 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 16241 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_VSWITCH 0x3 16242 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 16243 * (Huntington development only) 16244 */ 16245 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 16246 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 16247 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 16248 * tests (Medford development only) 16249 */ 16250 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 16251 /* enum: Rules engine TX PD production firmware */ 16252 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 16253 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 16254 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_L3XUDP 0x9 16255 /* enum: DPDK TX PD production firmware */ 16256 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_DPDK 0xa 16257 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 16258 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 16259 /* Hardware capabilities of NIC */ 16260 #define MC_CMD_GET_CAPABILITIES_V4_OUT_HW_CAPABILITIES_OFST 12 16261 #define MC_CMD_GET_CAPABILITIES_V4_OUT_HW_CAPABILITIES_LEN 4 16262 /* Licensed capabilities */ 16263 #define MC_CMD_GET_CAPABILITIES_V4_OUT_LICENSE_CAPABILITIES_OFST 16 16264 #define MC_CMD_GET_CAPABILITIES_V4_OUT_LICENSE_CAPABILITIES_LEN 4 16265 /* Second word of flags. Not present on older firmware (check the length). */ 16266 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS2_OFST 20 16267 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS2_LEN 4 16268 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_OFST 20 16269 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_LBN 0 16270 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_WIDTH 1 16271 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_ENCAP_OFST 20 16272 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_ENCAP_LBN 1 16273 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_ENCAP_WIDTH 1 16274 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVQ_TIMER_CTRL_OFST 20 16275 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVQ_TIMER_CTRL_LBN 2 16276 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVQ_TIMER_CTRL_WIDTH 1 16277 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVENT_CUT_THROUGH_OFST 20 16278 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVENT_CUT_THROUGH_LBN 3 16279 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVENT_CUT_THROUGH_WIDTH 1 16280 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_CUT_THROUGH_OFST 20 16281 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_CUT_THROUGH_LBN 4 16282 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_CUT_THROUGH_WIDTH 1 16283 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VFIFO_ULL_MODE_OFST 20 16284 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VFIFO_ULL_MODE_LBN 5 16285 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 16286 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 16287 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 16288 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 16289 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 16290 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 16291 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 16292 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_V2_OFST 20 16293 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_V2_LBN 7 16294 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_V2_WIDTH 1 16295 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_TIMESTAMPING_OFST 20 16296 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_TIMESTAMPING_LBN 8 16297 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 16298 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TIMESTAMP_OFST 20 16299 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TIMESTAMP_LBN 9 16300 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TIMESTAMP_WIDTH 1 16301 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_SNIFF_OFST 20 16302 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_SNIFF_LBN 10 16303 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_SNIFF_WIDTH 1 16304 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_SNIFF_OFST 20 16305 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_SNIFF_LBN 11 16306 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_SNIFF_WIDTH 1 16307 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 16308 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 16309 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 16310 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_BACKGROUND_OFST 20 16311 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_BACKGROUND_LBN 13 16312 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_BACKGROUND_WIDTH 1 16313 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_DB_RETURN_OFST 20 16314 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_DB_RETURN_LBN 14 16315 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_DB_RETURN_WIDTH 1 16316 #define MC_CMD_GET_CAPABILITIES_V4_OUT_CTPIO_OFST 20 16317 #define MC_CMD_GET_CAPABILITIES_V4_OUT_CTPIO_LBN 15 16318 #define MC_CMD_GET_CAPABILITIES_V4_OUT_CTPIO_WIDTH 1 16319 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_SUPPORT_OFST 20 16320 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_SUPPORT_LBN 16 16321 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_SUPPORT_WIDTH 1 16322 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_BOUND_OFST 20 16323 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_BOUND_LBN 17 16324 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_BOUND_WIDTH 1 16325 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 16326 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 16327 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 16328 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_FLAG_OFST 20 16329 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_FLAG_LBN 19 16330 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_FLAG_WIDTH 1 16331 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_MARK_OFST 20 16332 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_MARK_LBN 20 16333 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_MARK_WIDTH 1 16334 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 16335 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 16336 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 16337 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 16338 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 16339 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 16340 #define MC_CMD_GET_CAPABILITIES_V4_OUT_L3XUDP_SUPPORT_OFST 20 16341 #define MC_CMD_GET_CAPABILITIES_V4_OUT_L3XUDP_SUPPORT_LBN 22 16342 #define MC_CMD_GET_CAPABILITIES_V4_OUT_L3XUDP_SUPPORT_WIDTH 1 16343 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 16344 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 16345 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 16346 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_SPREADING_OFST 20 16347 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_SPREADING_LBN 24 16348 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_SPREADING_WIDTH 1 16349 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_HLB_IDLE_OFST 20 16350 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_HLB_IDLE_LBN 25 16351 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_HLB_IDLE_WIDTH 1 16352 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 16353 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 16354 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 16355 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 16356 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 16357 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 16358 #define MC_CMD_GET_CAPABILITIES_V4_OUT_BUNDLE_UPDATE_OFST 20 16359 #define MC_CMD_GET_CAPABILITIES_V4_OUT_BUNDLE_UPDATE_LBN 28 16360 #define MC_CMD_GET_CAPABILITIES_V4_OUT_BUNDLE_UPDATE_WIDTH 1 16361 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V3_OFST 20 16362 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V3_LBN 29 16363 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V3_WIDTH 1 16364 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DYNAMIC_SENSORS_OFST 20 16365 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DYNAMIC_SENSORS_LBN 30 16366 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DYNAMIC_SENSORS_WIDTH 1 16367 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 16368 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 16369 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 16370 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 16371 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 16372 */ 16373 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 16374 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 16375 /* One byte per PF containing the number of the external port assigned to this 16376 * PF, indexed by PF number. Special values indicate that a PF is either not 16377 * present or not assigned. 16378 */ 16379 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 16380 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 16381 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 16382 /* enum: The caller is not permitted to access information on this PF. */ 16383 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ACCESS_NOT_PERMITTED 0xff 16384 /* enum: PF does not exist. */ 16385 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PF_NOT_PRESENT 0xfe 16386 /* enum: PF does exist but is not assigned to any external port. */ 16387 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PF_NOT_ASSIGNED 0xfd 16388 /* enum: This value indicates that PF is assigned, but it cannot be expressed 16389 * in this field. It is intended for a possible future situation where a more 16390 * complex scheme of PFs to ports mapping is being used. The future driver 16391 * should look for a new field supporting the new scheme. The current/old 16392 * driver should treat this value as PF_NOT_ASSIGNED. 16393 */ 16394 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 16395 /* One byte per PF containing the number of its VFs, indexed by PF number. A 16396 * special value indicates that a PF is not present. 16397 */ 16398 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VFS_PER_PF_OFST 42 16399 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VFS_PER_PF_LEN 1 16400 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VFS_PER_PF_NUM 16 16401 /* enum: The caller is not permitted to access information on this PF. */ 16402 /* MC_CMD_GET_CAPABILITIES_V4_OUT_ACCESS_NOT_PERMITTED 0xff */ 16403 /* enum: PF does not exist. */ 16404 /* MC_CMD_GET_CAPABILITIES_V4_OUT_PF_NOT_PRESENT 0xfe */ 16405 /* Number of VIs available for each external port */ 16406 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VIS_PER_PORT_OFST 58 16407 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VIS_PER_PORT_LEN 2 16408 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VIS_PER_PORT_NUM 4 16409 /* Size of RX descriptor cache expressed as binary logarithm The actual size 16410 * equals (2 ^ RX_DESC_CACHE_SIZE) 16411 */ 16412 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DESC_CACHE_SIZE_OFST 66 16413 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DESC_CACHE_SIZE_LEN 1 16414 /* Size of TX descriptor cache expressed as binary logarithm The actual size 16415 * equals (2 ^ TX_DESC_CACHE_SIZE) 16416 */ 16417 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DESC_CACHE_SIZE_OFST 67 16418 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DESC_CACHE_SIZE_LEN 1 16419 /* Total number of available PIO buffers */ 16420 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_PIO_BUFFS_OFST 68 16421 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_PIO_BUFFS_LEN 2 16422 /* Size of a single PIO buffer */ 16423 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SIZE_PIO_BUFF_OFST 70 16424 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SIZE_PIO_BUFF_LEN 2 16425 /* On chips later than Medford the amount of address space assigned to each VI 16426 * is configurable. This is a global setting that the driver must query to 16427 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 16428 * with 8k VI windows. 16429 */ 16430 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_OFST 72 16431 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_LEN 1 16432 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 16433 * CTPIO is not mapped. 16434 */ 16435 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_8K 0x0 16436 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 16437 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_16K 0x1 16438 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 16439 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_64K 0x2 16440 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 16441 * (SF-115995-SW) in the present configuration of firmware and port mode. 16442 */ 16443 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 16444 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 16445 /* Number of buffers per adapter that can be used for VFIFO Stuffing 16446 * (SF-115995-SW) in the present configuration of firmware and port mode. 16447 */ 16448 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 16449 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 16450 /* Entry count in the MAC stats array, including the final GENERATION_END 16451 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 16452 * hold at least this many 64-bit stats values, if they wish to receive all 16453 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 16454 * stats array returned will be truncated. 16455 */ 16456 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_NUM_STATS_OFST 76 16457 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_NUM_STATS_LEN 2 16458 16459 /* MC_CMD_GET_CAPABILITIES_V5_OUT msgresponse */ 16460 #define MC_CMD_GET_CAPABILITIES_V5_OUT_LEN 84 16461 /* First word of flags. */ 16462 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS1_OFST 0 16463 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS1_LEN 4 16464 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VPORT_RECONFIGURE_OFST 0 16465 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VPORT_RECONFIGURE_LBN 3 16466 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VPORT_RECONFIGURE_WIDTH 1 16467 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_STRIPING_OFST 0 16468 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_STRIPING_LBN 4 16469 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_STRIPING_WIDTH 1 16470 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_QUERY_OFST 0 16471 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_QUERY_LBN 5 16472 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_QUERY_WIDTH 1 16473 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 16474 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 16475 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 16476 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DRV_ATTACH_PREBOOT_OFST 0 16477 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DRV_ATTACH_PREBOOT_LBN 7 16478 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 16479 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_FORCE_EVENT_MERGING_OFST 0 16480 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_FORCE_EVENT_MERGING_LBN 8 16481 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 16482 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SET_MAC_ENHANCED_OFST 0 16483 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SET_MAC_ENHANCED_LBN 9 16484 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SET_MAC_ENHANCED_WIDTH 1 16485 #define MC_CMD_GET_CAPABILITIES_V5_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 16486 #define MC_CMD_GET_CAPABILITIES_V5_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 16487 #define MC_CMD_GET_CAPABILITIES_V5_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 16488 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 16489 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 16490 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 16491 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 16492 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 16493 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 16494 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ADDITIONAL_RSS_MODES_OFST 0 16495 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ADDITIONAL_RSS_MODES_LBN 13 16496 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 16497 #define MC_CMD_GET_CAPABILITIES_V5_OUT_QBB_OFST 0 16498 #define MC_CMD_GET_CAPABILITIES_V5_OUT_QBB_LBN 14 16499 #define MC_CMD_GET_CAPABILITIES_V5_OUT_QBB_WIDTH 1 16500 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 16501 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 16502 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 16503 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_RSS_LIMITED_OFST 0 16504 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_RSS_LIMITED_LBN 16 16505 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_RSS_LIMITED_WIDTH 1 16506 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_OFST 0 16507 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_LBN 17 16508 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_WIDTH 1 16509 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_INCLUDE_FCS_OFST 0 16510 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_INCLUDE_FCS_LBN 18 16511 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_INCLUDE_FCS_WIDTH 1 16512 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VLAN_INSERTION_OFST 0 16513 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VLAN_INSERTION_LBN 19 16514 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VLAN_INSERTION_WIDTH 1 16515 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_VLAN_STRIPPING_OFST 0 16516 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_VLAN_STRIPPING_LBN 20 16517 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_VLAN_STRIPPING_WIDTH 1 16518 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_OFST 0 16519 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_LBN 21 16520 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_WIDTH 1 16521 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_0_OFST 0 16522 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_0_LBN 22 16523 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_0_WIDTH 1 16524 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_14_OFST 0 16525 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_14_LBN 23 16526 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_14_WIDTH 1 16527 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_TIMESTAMP_OFST 0 16528 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_TIMESTAMP_LBN 24 16529 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_TIMESTAMP_WIDTH 1 16530 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_BATCHING_OFST 0 16531 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_BATCHING_LBN 25 16532 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_BATCHING_WIDTH 1 16533 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCAST_FILTER_CHAINING_OFST 0 16534 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCAST_FILTER_CHAINING_LBN 26 16535 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCAST_FILTER_CHAINING_WIDTH 1 16536 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PM_AND_RXDP_COUNTERS_OFST 0 16537 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PM_AND_RXDP_COUNTERS_LBN 27 16538 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 16539 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DISABLE_SCATTER_OFST 0 16540 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DISABLE_SCATTER_LBN 28 16541 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DISABLE_SCATTER_WIDTH 1 16542 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 16543 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 16544 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 16545 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_OFST 0 16546 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_LBN 30 16547 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_WIDTH 1 16548 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VXLAN_NVGRE_OFST 0 16549 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VXLAN_NVGRE_LBN 31 16550 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VXLAN_NVGRE_WIDTH 1 16551 /* RxDPCPU firmware id. */ 16552 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DPCPU_FW_ID_OFST 4 16553 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DPCPU_FW_ID_LEN 2 16554 /* enum: Standard RXDP firmware */ 16555 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP 0x0 16556 /* enum: Low latency RXDP firmware */ 16557 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_LOW_LATENCY 0x1 16558 /* enum: Packed stream RXDP firmware */ 16559 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_PACKED_STREAM 0x2 16560 /* enum: Rules engine RXDP firmware */ 16561 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_RULES_ENGINE 0x5 16562 /* enum: DPDK RXDP firmware */ 16563 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_DPDK 0x6 16564 /* enum: BIST RXDP firmware */ 16565 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_BIST 0x10a 16566 /* enum: RXDP Test firmware image 1 */ 16567 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 16568 /* enum: RXDP Test firmware image 2 */ 16569 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 16570 /* enum: RXDP Test firmware image 3 */ 16571 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 16572 /* enum: RXDP Test firmware image 4 */ 16573 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 16574 /* enum: RXDP Test firmware image 5 */ 16575 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_BACKPRESSURE 0x105 16576 /* enum: RXDP Test firmware image 6 */ 16577 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 16578 /* enum: RXDP Test firmware image 7 */ 16579 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 16580 /* enum: RXDP Test firmware image 8 */ 16581 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 16582 /* enum: RXDP Test firmware image 9 */ 16583 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 16584 /* enum: RXDP Test firmware image 10 */ 16585 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_SLOW 0x10c 16586 /* TxDPCPU firmware id. */ 16587 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DPCPU_FW_ID_OFST 6 16588 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DPCPU_FW_ID_LEN 2 16589 /* enum: Standard TXDP firmware */ 16590 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP 0x0 16591 /* enum: Low latency TXDP firmware */ 16592 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_LOW_LATENCY 0x1 16593 /* enum: High packet rate TXDP firmware */ 16594 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_HIGH_PACKET_RATE 0x3 16595 /* enum: Rules engine TXDP firmware */ 16596 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_RULES_ENGINE 0x5 16597 /* enum: DPDK TXDP firmware */ 16598 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_DPDK 0x6 16599 /* enum: BIST TXDP firmware */ 16600 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_BIST 0x12d 16601 /* enum: TXDP Test firmware image 1 */ 16602 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 16603 /* enum: TXDP Test firmware image 2 */ 16604 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 16605 /* enum: TXDP CSR bus test firmware */ 16606 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_TEST_FW_CSR 0x103 16607 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_OFST 8 16608 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_LEN 2 16609 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_REV_OFST 8 16610 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_REV_LBN 0 16611 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_REV_WIDTH 12 16612 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_TYPE_OFST 8 16613 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_TYPE_LBN 12 16614 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 16615 /* enum: reserved value - do not use (may indicate alternative interpretation 16616 * of REV field in future) 16617 */ 16618 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_RESERVED 0x0 16619 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 16620 * development only) 16621 */ 16622 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 16623 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 16624 */ 16625 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 16626 /* enum: RX PD firmware with approximately Siena-compatible behaviour 16627 * (Huntington development only) 16628 */ 16629 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 16630 /* enum: Full featured RX PD production firmware */ 16631 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 16632 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 16633 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_VSWITCH 0x3 16634 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 16635 * (Huntington development only) 16636 */ 16637 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 16638 /* enum: Low latency RX PD production firmware */ 16639 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 16640 /* enum: Packed stream RX PD production firmware */ 16641 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 16642 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 16643 * tests (Medford development only) 16644 */ 16645 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 16646 /* enum: Rules engine RX PD production firmware */ 16647 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 16648 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 16649 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_L3XUDP 0x9 16650 /* enum: DPDK RX PD production firmware */ 16651 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_DPDK 0xa 16652 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 16653 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 16654 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 16655 * encapsulations (Medford development only) 16656 */ 16657 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 16658 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_OFST 10 16659 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_LEN 2 16660 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_REV_OFST 10 16661 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_REV_LBN 0 16662 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_REV_WIDTH 12 16663 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_TYPE_OFST 10 16664 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_TYPE_LBN 12 16665 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 16666 /* enum: reserved value - do not use (may indicate alternative interpretation 16667 * of REV field in future) 16668 */ 16669 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_RESERVED 0x0 16670 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 16671 * development only) 16672 */ 16673 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 16674 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 16675 */ 16676 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 16677 /* enum: TX PD firmware with approximately Siena-compatible behaviour 16678 * (Huntington development only) 16679 */ 16680 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 16681 /* enum: Full featured TX PD production firmware */ 16682 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 16683 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 16684 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_VSWITCH 0x3 16685 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 16686 * (Huntington development only) 16687 */ 16688 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 16689 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 16690 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 16691 * tests (Medford development only) 16692 */ 16693 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 16694 /* enum: Rules engine TX PD production firmware */ 16695 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 16696 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 16697 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_L3XUDP 0x9 16698 /* enum: DPDK TX PD production firmware */ 16699 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_DPDK 0xa 16700 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 16701 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 16702 /* Hardware capabilities of NIC */ 16703 #define MC_CMD_GET_CAPABILITIES_V5_OUT_HW_CAPABILITIES_OFST 12 16704 #define MC_CMD_GET_CAPABILITIES_V5_OUT_HW_CAPABILITIES_LEN 4 16705 /* Licensed capabilities */ 16706 #define MC_CMD_GET_CAPABILITIES_V5_OUT_LICENSE_CAPABILITIES_OFST 16 16707 #define MC_CMD_GET_CAPABILITIES_V5_OUT_LICENSE_CAPABILITIES_LEN 4 16708 /* Second word of flags. Not present on older firmware (check the length). */ 16709 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS2_OFST 20 16710 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS2_LEN 4 16711 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_OFST 20 16712 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_LBN 0 16713 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_WIDTH 1 16714 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_ENCAP_OFST 20 16715 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_ENCAP_LBN 1 16716 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_ENCAP_WIDTH 1 16717 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVQ_TIMER_CTRL_OFST 20 16718 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVQ_TIMER_CTRL_LBN 2 16719 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVQ_TIMER_CTRL_WIDTH 1 16720 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVENT_CUT_THROUGH_OFST 20 16721 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVENT_CUT_THROUGH_LBN 3 16722 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVENT_CUT_THROUGH_WIDTH 1 16723 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_CUT_THROUGH_OFST 20 16724 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_CUT_THROUGH_LBN 4 16725 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_CUT_THROUGH_WIDTH 1 16726 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VFIFO_ULL_MODE_OFST 20 16727 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VFIFO_ULL_MODE_LBN 5 16728 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 16729 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 16730 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 16731 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 16732 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 16733 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 16734 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 16735 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_V2_OFST 20 16736 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_V2_LBN 7 16737 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_V2_WIDTH 1 16738 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_TIMESTAMPING_OFST 20 16739 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_TIMESTAMPING_LBN 8 16740 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 16741 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TIMESTAMP_OFST 20 16742 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TIMESTAMP_LBN 9 16743 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TIMESTAMP_WIDTH 1 16744 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_SNIFF_OFST 20 16745 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_SNIFF_LBN 10 16746 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_SNIFF_WIDTH 1 16747 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_SNIFF_OFST 20 16748 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_SNIFF_LBN 11 16749 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_SNIFF_WIDTH 1 16750 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 16751 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 16752 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 16753 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_BACKGROUND_OFST 20 16754 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_BACKGROUND_LBN 13 16755 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_BACKGROUND_WIDTH 1 16756 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_DB_RETURN_OFST 20 16757 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_DB_RETURN_LBN 14 16758 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_DB_RETURN_WIDTH 1 16759 #define MC_CMD_GET_CAPABILITIES_V5_OUT_CTPIO_OFST 20 16760 #define MC_CMD_GET_CAPABILITIES_V5_OUT_CTPIO_LBN 15 16761 #define MC_CMD_GET_CAPABILITIES_V5_OUT_CTPIO_WIDTH 1 16762 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_SUPPORT_OFST 20 16763 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_SUPPORT_LBN 16 16764 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_SUPPORT_WIDTH 1 16765 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_BOUND_OFST 20 16766 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_BOUND_LBN 17 16767 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_BOUND_WIDTH 1 16768 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 16769 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 16770 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 16771 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_FLAG_OFST 20 16772 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_FLAG_LBN 19 16773 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_FLAG_WIDTH 1 16774 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_OFST 20 16775 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_LBN 20 16776 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_WIDTH 1 16777 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 16778 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 16779 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 16780 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 16781 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 16782 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 16783 #define MC_CMD_GET_CAPABILITIES_V5_OUT_L3XUDP_SUPPORT_OFST 20 16784 #define MC_CMD_GET_CAPABILITIES_V5_OUT_L3XUDP_SUPPORT_LBN 22 16785 #define MC_CMD_GET_CAPABILITIES_V5_OUT_L3XUDP_SUPPORT_WIDTH 1 16786 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 16787 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 16788 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 16789 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_SPREADING_OFST 20 16790 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_SPREADING_LBN 24 16791 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_SPREADING_WIDTH 1 16792 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_HLB_IDLE_OFST 20 16793 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_HLB_IDLE_LBN 25 16794 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_HLB_IDLE_WIDTH 1 16795 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 16796 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 16797 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 16798 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 16799 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 16800 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 16801 #define MC_CMD_GET_CAPABILITIES_V5_OUT_BUNDLE_UPDATE_OFST 20 16802 #define MC_CMD_GET_CAPABILITIES_V5_OUT_BUNDLE_UPDATE_LBN 28 16803 #define MC_CMD_GET_CAPABILITIES_V5_OUT_BUNDLE_UPDATE_WIDTH 1 16804 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V3_OFST 20 16805 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V3_LBN 29 16806 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V3_WIDTH 1 16807 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DYNAMIC_SENSORS_OFST 20 16808 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DYNAMIC_SENSORS_LBN 30 16809 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DYNAMIC_SENSORS_WIDTH 1 16810 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 16811 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 16812 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 16813 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 16814 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 16815 */ 16816 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 16817 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 16818 /* One byte per PF containing the number of the external port assigned to this 16819 * PF, indexed by PF number. Special values indicate that a PF is either not 16820 * present or not assigned. 16821 */ 16822 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 16823 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 16824 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 16825 /* enum: The caller is not permitted to access information on this PF. */ 16826 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ACCESS_NOT_PERMITTED 0xff 16827 /* enum: PF does not exist. */ 16828 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PF_NOT_PRESENT 0xfe 16829 /* enum: PF does exist but is not assigned to any external port. */ 16830 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PF_NOT_ASSIGNED 0xfd 16831 /* enum: This value indicates that PF is assigned, but it cannot be expressed 16832 * in this field. It is intended for a possible future situation where a more 16833 * complex scheme of PFs to ports mapping is being used. The future driver 16834 * should look for a new field supporting the new scheme. The current/old 16835 * driver should treat this value as PF_NOT_ASSIGNED. 16836 */ 16837 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 16838 /* One byte per PF containing the number of its VFs, indexed by PF number. A 16839 * special value indicates that a PF is not present. 16840 */ 16841 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VFS_PER_PF_OFST 42 16842 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VFS_PER_PF_LEN 1 16843 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VFS_PER_PF_NUM 16 16844 /* enum: The caller is not permitted to access information on this PF. */ 16845 /* MC_CMD_GET_CAPABILITIES_V5_OUT_ACCESS_NOT_PERMITTED 0xff */ 16846 /* enum: PF does not exist. */ 16847 /* MC_CMD_GET_CAPABILITIES_V5_OUT_PF_NOT_PRESENT 0xfe */ 16848 /* Number of VIs available for each external port */ 16849 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VIS_PER_PORT_OFST 58 16850 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VIS_PER_PORT_LEN 2 16851 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VIS_PER_PORT_NUM 4 16852 /* Size of RX descriptor cache expressed as binary logarithm The actual size 16853 * equals (2 ^ RX_DESC_CACHE_SIZE) 16854 */ 16855 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DESC_CACHE_SIZE_OFST 66 16856 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DESC_CACHE_SIZE_LEN 1 16857 /* Size of TX descriptor cache expressed as binary logarithm The actual size 16858 * equals (2 ^ TX_DESC_CACHE_SIZE) 16859 */ 16860 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DESC_CACHE_SIZE_OFST 67 16861 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DESC_CACHE_SIZE_LEN 1 16862 /* Total number of available PIO buffers */ 16863 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_PIO_BUFFS_OFST 68 16864 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_PIO_BUFFS_LEN 2 16865 /* Size of a single PIO buffer */ 16866 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SIZE_PIO_BUFF_OFST 70 16867 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SIZE_PIO_BUFF_LEN 2 16868 /* On chips later than Medford the amount of address space assigned to each VI 16869 * is configurable. This is a global setting that the driver must query to 16870 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 16871 * with 8k VI windows. 16872 */ 16873 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_OFST 72 16874 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_LEN 1 16875 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 16876 * CTPIO is not mapped. 16877 */ 16878 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_8K 0x0 16879 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 16880 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_16K 0x1 16881 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 16882 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_64K 0x2 16883 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 16884 * (SF-115995-SW) in the present configuration of firmware and port mode. 16885 */ 16886 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 16887 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 16888 /* Number of buffers per adapter that can be used for VFIFO Stuffing 16889 * (SF-115995-SW) in the present configuration of firmware and port mode. 16890 */ 16891 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 16892 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 16893 /* Entry count in the MAC stats array, including the final GENERATION_END 16894 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 16895 * hold at least this many 64-bit stats values, if they wish to receive all 16896 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 16897 * stats array returned will be truncated. 16898 */ 16899 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_NUM_STATS_OFST 76 16900 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_NUM_STATS_LEN 2 16901 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 16902 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 16903 */ 16904 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_MAX_OFST 80 16905 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_MAX_LEN 4 16906 16907 /* MC_CMD_GET_CAPABILITIES_V6_OUT msgresponse */ 16908 #define MC_CMD_GET_CAPABILITIES_V6_OUT_LEN 148 16909 /* First word of flags. */ 16910 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS1_OFST 0 16911 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS1_LEN 4 16912 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VPORT_RECONFIGURE_OFST 0 16913 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VPORT_RECONFIGURE_LBN 3 16914 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VPORT_RECONFIGURE_WIDTH 1 16915 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_STRIPING_OFST 0 16916 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_STRIPING_LBN 4 16917 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_STRIPING_WIDTH 1 16918 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_QUERY_OFST 0 16919 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_QUERY_LBN 5 16920 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_QUERY_WIDTH 1 16921 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 16922 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 16923 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 16924 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DRV_ATTACH_PREBOOT_OFST 0 16925 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DRV_ATTACH_PREBOOT_LBN 7 16926 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 16927 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_FORCE_EVENT_MERGING_OFST 0 16928 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_FORCE_EVENT_MERGING_LBN 8 16929 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 16930 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SET_MAC_ENHANCED_OFST 0 16931 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SET_MAC_ENHANCED_LBN 9 16932 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SET_MAC_ENHANCED_WIDTH 1 16933 #define MC_CMD_GET_CAPABILITIES_V6_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 16934 #define MC_CMD_GET_CAPABILITIES_V6_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 16935 #define MC_CMD_GET_CAPABILITIES_V6_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 16936 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 16937 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 16938 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 16939 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 16940 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 16941 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 16942 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ADDITIONAL_RSS_MODES_OFST 0 16943 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ADDITIONAL_RSS_MODES_LBN 13 16944 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 16945 #define MC_CMD_GET_CAPABILITIES_V6_OUT_QBB_OFST 0 16946 #define MC_CMD_GET_CAPABILITIES_V6_OUT_QBB_LBN 14 16947 #define MC_CMD_GET_CAPABILITIES_V6_OUT_QBB_WIDTH 1 16948 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 16949 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 16950 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 16951 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_RSS_LIMITED_OFST 0 16952 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_RSS_LIMITED_LBN 16 16953 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_RSS_LIMITED_WIDTH 1 16954 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_OFST 0 16955 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_LBN 17 16956 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_WIDTH 1 16957 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_INCLUDE_FCS_OFST 0 16958 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_INCLUDE_FCS_LBN 18 16959 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_INCLUDE_FCS_WIDTH 1 16960 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VLAN_INSERTION_OFST 0 16961 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VLAN_INSERTION_LBN 19 16962 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VLAN_INSERTION_WIDTH 1 16963 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_VLAN_STRIPPING_OFST 0 16964 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_VLAN_STRIPPING_LBN 20 16965 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_VLAN_STRIPPING_WIDTH 1 16966 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_OFST 0 16967 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_LBN 21 16968 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_WIDTH 1 16969 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_0_OFST 0 16970 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_0_LBN 22 16971 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_0_WIDTH 1 16972 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_14_OFST 0 16973 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_14_LBN 23 16974 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_14_WIDTH 1 16975 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_TIMESTAMP_OFST 0 16976 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_TIMESTAMP_LBN 24 16977 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_TIMESTAMP_WIDTH 1 16978 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_BATCHING_OFST 0 16979 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_BATCHING_LBN 25 16980 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_BATCHING_WIDTH 1 16981 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCAST_FILTER_CHAINING_OFST 0 16982 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCAST_FILTER_CHAINING_LBN 26 16983 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCAST_FILTER_CHAINING_WIDTH 1 16984 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PM_AND_RXDP_COUNTERS_OFST 0 16985 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PM_AND_RXDP_COUNTERS_LBN 27 16986 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 16987 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DISABLE_SCATTER_OFST 0 16988 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DISABLE_SCATTER_LBN 28 16989 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DISABLE_SCATTER_WIDTH 1 16990 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 16991 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 16992 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 16993 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_OFST 0 16994 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_LBN 30 16995 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_WIDTH 1 16996 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VXLAN_NVGRE_OFST 0 16997 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VXLAN_NVGRE_LBN 31 16998 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VXLAN_NVGRE_WIDTH 1 16999 /* RxDPCPU firmware id. */ 17000 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DPCPU_FW_ID_OFST 4 17001 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DPCPU_FW_ID_LEN 2 17002 /* enum: Standard RXDP firmware */ 17003 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP 0x0 17004 /* enum: Low latency RXDP firmware */ 17005 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_LOW_LATENCY 0x1 17006 /* enum: Packed stream RXDP firmware */ 17007 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_PACKED_STREAM 0x2 17008 /* enum: Rules engine RXDP firmware */ 17009 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_RULES_ENGINE 0x5 17010 /* enum: DPDK RXDP firmware */ 17011 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_DPDK 0x6 17012 /* enum: BIST RXDP firmware */ 17013 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_BIST 0x10a 17014 /* enum: RXDP Test firmware image 1 */ 17015 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 17016 /* enum: RXDP Test firmware image 2 */ 17017 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 17018 /* enum: RXDP Test firmware image 3 */ 17019 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 17020 /* enum: RXDP Test firmware image 4 */ 17021 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 17022 /* enum: RXDP Test firmware image 5 */ 17023 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_BACKPRESSURE 0x105 17024 /* enum: RXDP Test firmware image 6 */ 17025 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 17026 /* enum: RXDP Test firmware image 7 */ 17027 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 17028 /* enum: RXDP Test firmware image 8 */ 17029 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 17030 /* enum: RXDP Test firmware image 9 */ 17031 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 17032 /* enum: RXDP Test firmware image 10 */ 17033 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_SLOW 0x10c 17034 /* TxDPCPU firmware id. */ 17035 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DPCPU_FW_ID_OFST 6 17036 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DPCPU_FW_ID_LEN 2 17037 /* enum: Standard TXDP firmware */ 17038 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP 0x0 17039 /* enum: Low latency TXDP firmware */ 17040 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_LOW_LATENCY 0x1 17041 /* enum: High packet rate TXDP firmware */ 17042 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_HIGH_PACKET_RATE 0x3 17043 /* enum: Rules engine TXDP firmware */ 17044 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_RULES_ENGINE 0x5 17045 /* enum: DPDK TXDP firmware */ 17046 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_DPDK 0x6 17047 /* enum: BIST TXDP firmware */ 17048 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_BIST 0x12d 17049 /* enum: TXDP Test firmware image 1 */ 17050 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 17051 /* enum: TXDP Test firmware image 2 */ 17052 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 17053 /* enum: TXDP CSR bus test firmware */ 17054 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_TEST_FW_CSR 0x103 17055 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_OFST 8 17056 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_LEN 2 17057 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_REV_OFST 8 17058 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_REV_LBN 0 17059 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_REV_WIDTH 12 17060 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_TYPE_OFST 8 17061 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_TYPE_LBN 12 17062 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 17063 /* enum: reserved value - do not use (may indicate alternative interpretation 17064 * of REV field in future) 17065 */ 17066 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_RESERVED 0x0 17067 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 17068 * development only) 17069 */ 17070 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 17071 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 17072 */ 17073 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 17074 /* enum: RX PD firmware with approximately Siena-compatible behaviour 17075 * (Huntington development only) 17076 */ 17077 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 17078 /* enum: Full featured RX PD production firmware */ 17079 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 17080 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 17081 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_VSWITCH 0x3 17082 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 17083 * (Huntington development only) 17084 */ 17085 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 17086 /* enum: Low latency RX PD production firmware */ 17087 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 17088 /* enum: Packed stream RX PD production firmware */ 17089 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 17090 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 17091 * tests (Medford development only) 17092 */ 17093 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 17094 /* enum: Rules engine RX PD production firmware */ 17095 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 17096 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 17097 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_L3XUDP 0x9 17098 /* enum: DPDK RX PD production firmware */ 17099 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_DPDK 0xa 17100 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 17101 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 17102 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 17103 * encapsulations (Medford development only) 17104 */ 17105 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 17106 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_OFST 10 17107 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_LEN 2 17108 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_REV_OFST 10 17109 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_REV_LBN 0 17110 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_REV_WIDTH 12 17111 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_TYPE_OFST 10 17112 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_TYPE_LBN 12 17113 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 17114 /* enum: reserved value - do not use (may indicate alternative interpretation 17115 * of REV field in future) 17116 */ 17117 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_RESERVED 0x0 17118 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 17119 * development only) 17120 */ 17121 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 17122 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 17123 */ 17124 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 17125 /* enum: TX PD firmware with approximately Siena-compatible behaviour 17126 * (Huntington development only) 17127 */ 17128 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 17129 /* enum: Full featured TX PD production firmware */ 17130 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 17131 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 17132 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_VSWITCH 0x3 17133 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 17134 * (Huntington development only) 17135 */ 17136 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 17137 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 17138 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 17139 * tests (Medford development only) 17140 */ 17141 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 17142 /* enum: Rules engine TX PD production firmware */ 17143 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 17144 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 17145 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_L3XUDP 0x9 17146 /* enum: DPDK TX PD production firmware */ 17147 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_DPDK 0xa 17148 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 17149 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 17150 /* Hardware capabilities of NIC */ 17151 #define MC_CMD_GET_CAPABILITIES_V6_OUT_HW_CAPABILITIES_OFST 12 17152 #define MC_CMD_GET_CAPABILITIES_V6_OUT_HW_CAPABILITIES_LEN 4 17153 /* Licensed capabilities */ 17154 #define MC_CMD_GET_CAPABILITIES_V6_OUT_LICENSE_CAPABILITIES_OFST 16 17155 #define MC_CMD_GET_CAPABILITIES_V6_OUT_LICENSE_CAPABILITIES_LEN 4 17156 /* Second word of flags. Not present on older firmware (check the length). */ 17157 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS2_OFST 20 17158 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS2_LEN 4 17159 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_OFST 20 17160 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_LBN 0 17161 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_WIDTH 1 17162 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_ENCAP_OFST 20 17163 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_ENCAP_LBN 1 17164 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_ENCAP_WIDTH 1 17165 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVQ_TIMER_CTRL_OFST 20 17166 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVQ_TIMER_CTRL_LBN 2 17167 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVQ_TIMER_CTRL_WIDTH 1 17168 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVENT_CUT_THROUGH_OFST 20 17169 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVENT_CUT_THROUGH_LBN 3 17170 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVENT_CUT_THROUGH_WIDTH 1 17171 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_CUT_THROUGH_OFST 20 17172 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_CUT_THROUGH_LBN 4 17173 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_CUT_THROUGH_WIDTH 1 17174 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VFIFO_ULL_MODE_OFST 20 17175 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VFIFO_ULL_MODE_LBN 5 17176 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 17177 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 17178 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 17179 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 17180 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 17181 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 17182 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 17183 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_V2_OFST 20 17184 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_V2_LBN 7 17185 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_V2_WIDTH 1 17186 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_TIMESTAMPING_OFST 20 17187 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_TIMESTAMPING_LBN 8 17188 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 17189 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TIMESTAMP_OFST 20 17190 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TIMESTAMP_LBN 9 17191 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TIMESTAMP_WIDTH 1 17192 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_SNIFF_OFST 20 17193 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_SNIFF_LBN 10 17194 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_SNIFF_WIDTH 1 17195 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_SNIFF_OFST 20 17196 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_SNIFF_LBN 11 17197 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_SNIFF_WIDTH 1 17198 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 17199 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 17200 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 17201 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_BACKGROUND_OFST 20 17202 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_BACKGROUND_LBN 13 17203 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_BACKGROUND_WIDTH 1 17204 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_DB_RETURN_OFST 20 17205 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_DB_RETURN_LBN 14 17206 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_DB_RETURN_WIDTH 1 17207 #define MC_CMD_GET_CAPABILITIES_V6_OUT_CTPIO_OFST 20 17208 #define MC_CMD_GET_CAPABILITIES_V6_OUT_CTPIO_LBN 15 17209 #define MC_CMD_GET_CAPABILITIES_V6_OUT_CTPIO_WIDTH 1 17210 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_SUPPORT_OFST 20 17211 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_SUPPORT_LBN 16 17212 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_SUPPORT_WIDTH 1 17213 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_BOUND_OFST 20 17214 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_BOUND_LBN 17 17215 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_BOUND_WIDTH 1 17216 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 17217 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 17218 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 17219 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_FLAG_OFST 20 17220 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_FLAG_LBN 19 17221 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_FLAG_WIDTH 1 17222 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_OFST 20 17223 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_LBN 20 17224 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_WIDTH 1 17225 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 17226 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 17227 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 17228 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 17229 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 17230 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 17231 #define MC_CMD_GET_CAPABILITIES_V6_OUT_L3XUDP_SUPPORT_OFST 20 17232 #define MC_CMD_GET_CAPABILITIES_V6_OUT_L3XUDP_SUPPORT_LBN 22 17233 #define MC_CMD_GET_CAPABILITIES_V6_OUT_L3XUDP_SUPPORT_WIDTH 1 17234 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 17235 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 17236 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 17237 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_SPREADING_OFST 20 17238 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_SPREADING_LBN 24 17239 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_SPREADING_WIDTH 1 17240 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_HLB_IDLE_OFST 20 17241 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_HLB_IDLE_LBN 25 17242 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_HLB_IDLE_WIDTH 1 17243 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 17244 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 17245 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 17246 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 17247 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 17248 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 17249 #define MC_CMD_GET_CAPABILITIES_V6_OUT_BUNDLE_UPDATE_OFST 20 17250 #define MC_CMD_GET_CAPABILITIES_V6_OUT_BUNDLE_UPDATE_LBN 28 17251 #define MC_CMD_GET_CAPABILITIES_V6_OUT_BUNDLE_UPDATE_WIDTH 1 17252 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V3_OFST 20 17253 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V3_LBN 29 17254 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V3_WIDTH 1 17255 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DYNAMIC_SENSORS_OFST 20 17256 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DYNAMIC_SENSORS_LBN 30 17257 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DYNAMIC_SENSORS_WIDTH 1 17258 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 17259 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 17260 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 17261 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 17262 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 17263 */ 17264 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 17265 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 17266 /* One byte per PF containing the number of the external port assigned to this 17267 * PF, indexed by PF number. Special values indicate that a PF is either not 17268 * present or not assigned. 17269 */ 17270 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 17271 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 17272 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 17273 /* enum: The caller is not permitted to access information on this PF. */ 17274 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ACCESS_NOT_PERMITTED 0xff 17275 /* enum: PF does not exist. */ 17276 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PF_NOT_PRESENT 0xfe 17277 /* enum: PF does exist but is not assigned to any external port. */ 17278 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PF_NOT_ASSIGNED 0xfd 17279 /* enum: This value indicates that PF is assigned, but it cannot be expressed 17280 * in this field. It is intended for a possible future situation where a more 17281 * complex scheme of PFs to ports mapping is being used. The future driver 17282 * should look for a new field supporting the new scheme. The current/old 17283 * driver should treat this value as PF_NOT_ASSIGNED. 17284 */ 17285 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 17286 /* One byte per PF containing the number of its VFs, indexed by PF number. A 17287 * special value indicates that a PF is not present. 17288 */ 17289 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VFS_PER_PF_OFST 42 17290 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VFS_PER_PF_LEN 1 17291 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VFS_PER_PF_NUM 16 17292 /* enum: The caller is not permitted to access information on this PF. */ 17293 /* MC_CMD_GET_CAPABILITIES_V6_OUT_ACCESS_NOT_PERMITTED 0xff */ 17294 /* enum: PF does not exist. */ 17295 /* MC_CMD_GET_CAPABILITIES_V6_OUT_PF_NOT_PRESENT 0xfe */ 17296 /* Number of VIs available for each external port */ 17297 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VIS_PER_PORT_OFST 58 17298 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VIS_PER_PORT_LEN 2 17299 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VIS_PER_PORT_NUM 4 17300 /* Size of RX descriptor cache expressed as binary logarithm The actual size 17301 * equals (2 ^ RX_DESC_CACHE_SIZE) 17302 */ 17303 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DESC_CACHE_SIZE_OFST 66 17304 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DESC_CACHE_SIZE_LEN 1 17305 /* Size of TX descriptor cache expressed as binary logarithm The actual size 17306 * equals (2 ^ TX_DESC_CACHE_SIZE) 17307 */ 17308 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DESC_CACHE_SIZE_OFST 67 17309 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DESC_CACHE_SIZE_LEN 1 17310 /* Total number of available PIO buffers */ 17311 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_PIO_BUFFS_OFST 68 17312 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_PIO_BUFFS_LEN 2 17313 /* Size of a single PIO buffer */ 17314 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SIZE_PIO_BUFF_OFST 70 17315 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SIZE_PIO_BUFF_LEN 2 17316 /* On chips later than Medford the amount of address space assigned to each VI 17317 * is configurable. This is a global setting that the driver must query to 17318 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 17319 * with 8k VI windows. 17320 */ 17321 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_OFST 72 17322 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_LEN 1 17323 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 17324 * CTPIO is not mapped. 17325 */ 17326 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_8K 0x0 17327 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 17328 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_16K 0x1 17329 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 17330 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_64K 0x2 17331 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 17332 * (SF-115995-SW) in the present configuration of firmware and port mode. 17333 */ 17334 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 17335 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 17336 /* Number of buffers per adapter that can be used for VFIFO Stuffing 17337 * (SF-115995-SW) in the present configuration of firmware and port mode. 17338 */ 17339 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 17340 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 17341 /* Entry count in the MAC stats array, including the final GENERATION_END 17342 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 17343 * hold at least this many 64-bit stats values, if they wish to receive all 17344 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 17345 * stats array returned will be truncated. 17346 */ 17347 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_NUM_STATS_OFST 76 17348 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_NUM_STATS_LEN 2 17349 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 17350 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 17351 */ 17352 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_MAX_OFST 80 17353 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_MAX_LEN 4 17354 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 17355 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 17356 * they create an RX queue. Due to hardware limitations, only a small number of 17357 * different buffer sizes may be available concurrently. Nonzero entries in 17358 * this array are the sizes of buffers which the system guarantees will be 17359 * available for use. If the list is empty, there are no limitations on 17360 * concurrent buffer sizes. 17361 */ 17362 #define MC_CMD_GET_CAPABILITIES_V6_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 17363 #define MC_CMD_GET_CAPABILITIES_V6_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 17364 #define MC_CMD_GET_CAPABILITIES_V6_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 17365 17366 /* MC_CMD_GET_CAPABILITIES_V7_OUT msgresponse */ 17367 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LEN 152 17368 /* First word of flags. */ 17369 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS1_OFST 0 17370 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS1_LEN 4 17371 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VPORT_RECONFIGURE_OFST 0 17372 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VPORT_RECONFIGURE_LBN 3 17373 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VPORT_RECONFIGURE_WIDTH 1 17374 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_STRIPING_OFST 0 17375 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_STRIPING_LBN 4 17376 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_STRIPING_WIDTH 1 17377 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_QUERY_OFST 0 17378 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_QUERY_LBN 5 17379 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_QUERY_WIDTH 1 17380 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 17381 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 17382 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 17383 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DRV_ATTACH_PREBOOT_OFST 0 17384 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DRV_ATTACH_PREBOOT_LBN 7 17385 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 17386 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_FORCE_EVENT_MERGING_OFST 0 17387 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_FORCE_EVENT_MERGING_LBN 8 17388 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 17389 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SET_MAC_ENHANCED_OFST 0 17390 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SET_MAC_ENHANCED_LBN 9 17391 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SET_MAC_ENHANCED_WIDTH 1 17392 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 17393 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 17394 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 17395 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 17396 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 17397 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 17398 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 17399 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 17400 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 17401 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ADDITIONAL_RSS_MODES_OFST 0 17402 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ADDITIONAL_RSS_MODES_LBN 13 17403 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 17404 #define MC_CMD_GET_CAPABILITIES_V7_OUT_QBB_OFST 0 17405 #define MC_CMD_GET_CAPABILITIES_V7_OUT_QBB_LBN 14 17406 #define MC_CMD_GET_CAPABILITIES_V7_OUT_QBB_WIDTH 1 17407 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 17408 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 17409 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 17410 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_RSS_LIMITED_OFST 0 17411 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_RSS_LIMITED_LBN 16 17412 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_RSS_LIMITED_WIDTH 1 17413 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_OFST 0 17414 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_LBN 17 17415 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_WIDTH 1 17416 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_INCLUDE_FCS_OFST 0 17417 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_INCLUDE_FCS_LBN 18 17418 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_INCLUDE_FCS_WIDTH 1 17419 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VLAN_INSERTION_OFST 0 17420 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VLAN_INSERTION_LBN 19 17421 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VLAN_INSERTION_WIDTH 1 17422 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_OFST 0 17423 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_LBN 20 17424 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_WIDTH 1 17425 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_OFST 0 17426 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_LBN 21 17427 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_WIDTH 1 17428 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_0_OFST 0 17429 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_0_LBN 22 17430 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_0_WIDTH 1 17431 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_14_OFST 0 17432 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_14_LBN 23 17433 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_14_WIDTH 1 17434 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_TIMESTAMP_OFST 0 17435 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_TIMESTAMP_LBN 24 17436 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_TIMESTAMP_WIDTH 1 17437 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_BATCHING_OFST 0 17438 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_BATCHING_LBN 25 17439 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_BATCHING_WIDTH 1 17440 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCAST_FILTER_CHAINING_OFST 0 17441 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCAST_FILTER_CHAINING_LBN 26 17442 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCAST_FILTER_CHAINING_WIDTH 1 17443 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PM_AND_RXDP_COUNTERS_OFST 0 17444 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PM_AND_RXDP_COUNTERS_LBN 27 17445 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 17446 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DISABLE_SCATTER_OFST 0 17447 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DISABLE_SCATTER_LBN 28 17448 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DISABLE_SCATTER_WIDTH 1 17449 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 17450 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 17451 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 17452 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_OFST 0 17453 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_LBN 30 17454 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_WIDTH 1 17455 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VXLAN_NVGRE_OFST 0 17456 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VXLAN_NVGRE_LBN 31 17457 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VXLAN_NVGRE_WIDTH 1 17458 /* RxDPCPU firmware id. */ 17459 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DPCPU_FW_ID_OFST 4 17460 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DPCPU_FW_ID_LEN 2 17461 /* enum: Standard RXDP firmware */ 17462 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP 0x0 17463 /* enum: Low latency RXDP firmware */ 17464 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_LOW_LATENCY 0x1 17465 /* enum: Packed stream RXDP firmware */ 17466 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_PACKED_STREAM 0x2 17467 /* enum: Rules engine RXDP firmware */ 17468 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_RULES_ENGINE 0x5 17469 /* enum: DPDK RXDP firmware */ 17470 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_DPDK 0x6 17471 /* enum: BIST RXDP firmware */ 17472 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_BIST 0x10a 17473 /* enum: RXDP Test firmware image 1 */ 17474 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 17475 /* enum: RXDP Test firmware image 2 */ 17476 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 17477 /* enum: RXDP Test firmware image 3 */ 17478 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 17479 /* enum: RXDP Test firmware image 4 */ 17480 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 17481 /* enum: RXDP Test firmware image 5 */ 17482 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_BACKPRESSURE 0x105 17483 /* enum: RXDP Test firmware image 6 */ 17484 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 17485 /* enum: RXDP Test firmware image 7 */ 17486 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 17487 /* enum: RXDP Test firmware image 8 */ 17488 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 17489 /* enum: RXDP Test firmware image 9 */ 17490 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 17491 /* enum: RXDP Test firmware image 10 */ 17492 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_SLOW 0x10c 17493 /* TxDPCPU firmware id. */ 17494 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DPCPU_FW_ID_OFST 6 17495 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DPCPU_FW_ID_LEN 2 17496 /* enum: Standard TXDP firmware */ 17497 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP 0x0 17498 /* enum: Low latency TXDP firmware */ 17499 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_LOW_LATENCY 0x1 17500 /* enum: High packet rate TXDP firmware */ 17501 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_HIGH_PACKET_RATE 0x3 17502 /* enum: Rules engine TXDP firmware */ 17503 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_RULES_ENGINE 0x5 17504 /* enum: DPDK TXDP firmware */ 17505 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_DPDK 0x6 17506 /* enum: BIST TXDP firmware */ 17507 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_BIST 0x12d 17508 /* enum: TXDP Test firmware image 1 */ 17509 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 17510 /* enum: TXDP Test firmware image 2 */ 17511 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 17512 /* enum: TXDP CSR bus test firmware */ 17513 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_TEST_FW_CSR 0x103 17514 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_OFST 8 17515 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_LEN 2 17516 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_REV_OFST 8 17517 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_REV_LBN 0 17518 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_REV_WIDTH 12 17519 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_TYPE_OFST 8 17520 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_TYPE_LBN 12 17521 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 17522 /* enum: reserved value - do not use (may indicate alternative interpretation 17523 * of REV field in future) 17524 */ 17525 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_RESERVED 0x0 17526 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 17527 * development only) 17528 */ 17529 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 17530 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 17531 */ 17532 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 17533 /* enum: RX PD firmware with approximately Siena-compatible behaviour 17534 * (Huntington development only) 17535 */ 17536 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 17537 /* enum: Full featured RX PD production firmware */ 17538 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 17539 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 17540 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_VSWITCH 0x3 17541 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 17542 * (Huntington development only) 17543 */ 17544 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 17545 /* enum: Low latency RX PD production firmware */ 17546 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 17547 /* enum: Packed stream RX PD production firmware */ 17548 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 17549 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 17550 * tests (Medford development only) 17551 */ 17552 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 17553 /* enum: Rules engine RX PD production firmware */ 17554 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 17555 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 17556 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_L3XUDP 0x9 17557 /* enum: DPDK RX PD production firmware */ 17558 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_DPDK 0xa 17559 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 17560 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 17561 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 17562 * encapsulations (Medford development only) 17563 */ 17564 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 17565 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_OFST 10 17566 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_LEN 2 17567 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_REV_OFST 10 17568 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_REV_LBN 0 17569 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_REV_WIDTH 12 17570 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_TYPE_OFST 10 17571 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_TYPE_LBN 12 17572 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 17573 /* enum: reserved value - do not use (may indicate alternative interpretation 17574 * of REV field in future) 17575 */ 17576 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_RESERVED 0x0 17577 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 17578 * development only) 17579 */ 17580 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 17581 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 17582 */ 17583 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 17584 /* enum: TX PD firmware with approximately Siena-compatible behaviour 17585 * (Huntington development only) 17586 */ 17587 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 17588 /* enum: Full featured TX PD production firmware */ 17589 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 17590 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 17591 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_VSWITCH 0x3 17592 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 17593 * (Huntington development only) 17594 */ 17595 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 17596 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 17597 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 17598 * tests (Medford development only) 17599 */ 17600 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 17601 /* enum: Rules engine TX PD production firmware */ 17602 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 17603 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 17604 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_L3XUDP 0x9 17605 /* enum: DPDK TX PD production firmware */ 17606 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_DPDK 0xa 17607 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 17608 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 17609 /* Hardware capabilities of NIC */ 17610 #define MC_CMD_GET_CAPABILITIES_V7_OUT_HW_CAPABILITIES_OFST 12 17611 #define MC_CMD_GET_CAPABILITIES_V7_OUT_HW_CAPABILITIES_LEN 4 17612 /* Licensed capabilities */ 17613 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LICENSE_CAPABILITIES_OFST 16 17614 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LICENSE_CAPABILITIES_LEN 4 17615 /* Second word of flags. Not present on older firmware (check the length). */ 17616 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS2_OFST 20 17617 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS2_LEN 4 17618 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_OFST 20 17619 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_LBN 0 17620 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_WIDTH 1 17621 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_ENCAP_OFST 20 17622 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_ENCAP_LBN 1 17623 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_ENCAP_WIDTH 1 17624 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVQ_TIMER_CTRL_OFST 20 17625 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVQ_TIMER_CTRL_LBN 2 17626 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVQ_TIMER_CTRL_WIDTH 1 17627 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVENT_CUT_THROUGH_OFST 20 17628 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVENT_CUT_THROUGH_LBN 3 17629 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVENT_CUT_THROUGH_WIDTH 1 17630 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_CUT_THROUGH_OFST 20 17631 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_CUT_THROUGH_LBN 4 17632 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_CUT_THROUGH_WIDTH 1 17633 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VFIFO_ULL_MODE_OFST 20 17634 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VFIFO_ULL_MODE_LBN 5 17635 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 17636 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 17637 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 17638 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 17639 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 17640 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 17641 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 17642 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_V2_OFST 20 17643 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_V2_LBN 7 17644 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_V2_WIDTH 1 17645 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_TIMESTAMPING_OFST 20 17646 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_TIMESTAMPING_LBN 8 17647 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 17648 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TIMESTAMP_OFST 20 17649 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TIMESTAMP_LBN 9 17650 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TIMESTAMP_WIDTH 1 17651 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_SNIFF_OFST 20 17652 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_SNIFF_LBN 10 17653 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_SNIFF_WIDTH 1 17654 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_SNIFF_OFST 20 17655 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_SNIFF_LBN 11 17656 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_SNIFF_WIDTH 1 17657 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 17658 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 17659 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 17660 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_BACKGROUND_OFST 20 17661 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_BACKGROUND_LBN 13 17662 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_BACKGROUND_WIDTH 1 17663 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_DB_RETURN_OFST 20 17664 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_DB_RETURN_LBN 14 17665 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_DB_RETURN_WIDTH 1 17666 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CTPIO_OFST 20 17667 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CTPIO_LBN 15 17668 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CTPIO_WIDTH 1 17669 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_SUPPORT_OFST 20 17670 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_SUPPORT_LBN 16 17671 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_SUPPORT_WIDTH 1 17672 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_BOUND_OFST 20 17673 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_BOUND_LBN 17 17674 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_BOUND_WIDTH 1 17675 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 17676 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 17677 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 17678 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_FLAG_OFST 20 17679 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_FLAG_LBN 19 17680 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_FLAG_WIDTH 1 17681 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_OFST 20 17682 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_LBN 20 17683 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_WIDTH 1 17684 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 17685 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 17686 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 17687 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 17688 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 17689 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 17690 #define MC_CMD_GET_CAPABILITIES_V7_OUT_L3XUDP_SUPPORT_OFST 20 17691 #define MC_CMD_GET_CAPABILITIES_V7_OUT_L3XUDP_SUPPORT_LBN 22 17692 #define MC_CMD_GET_CAPABILITIES_V7_OUT_L3XUDP_SUPPORT_WIDTH 1 17693 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 17694 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 17695 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 17696 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_SPREADING_OFST 20 17697 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_SPREADING_LBN 24 17698 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_SPREADING_WIDTH 1 17699 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_HLB_IDLE_OFST 20 17700 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_HLB_IDLE_LBN 25 17701 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_HLB_IDLE_WIDTH 1 17702 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 17703 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 17704 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 17705 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 17706 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 17707 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 17708 #define MC_CMD_GET_CAPABILITIES_V7_OUT_BUNDLE_UPDATE_OFST 20 17709 #define MC_CMD_GET_CAPABILITIES_V7_OUT_BUNDLE_UPDATE_LBN 28 17710 #define MC_CMD_GET_CAPABILITIES_V7_OUT_BUNDLE_UPDATE_WIDTH 1 17711 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V3_OFST 20 17712 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V3_LBN 29 17713 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V3_WIDTH 1 17714 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_SENSORS_OFST 20 17715 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_SENSORS_LBN 30 17716 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_SENSORS_WIDTH 1 17717 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 17718 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 17719 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 17720 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 17721 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 17722 */ 17723 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 17724 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 17725 /* One byte per PF containing the number of the external port assigned to this 17726 * PF, indexed by PF number. Special values indicate that a PF is either not 17727 * present or not assigned. 17728 */ 17729 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 17730 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 17731 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 17732 /* enum: The caller is not permitted to access information on this PF. */ 17733 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ACCESS_NOT_PERMITTED 0xff 17734 /* enum: PF does not exist. */ 17735 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PF_NOT_PRESENT 0xfe 17736 /* enum: PF does exist but is not assigned to any external port. */ 17737 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PF_NOT_ASSIGNED 0xfd 17738 /* enum: This value indicates that PF is assigned, but it cannot be expressed 17739 * in this field. It is intended for a possible future situation where a more 17740 * complex scheme of PFs to ports mapping is being used. The future driver 17741 * should look for a new field supporting the new scheme. The current/old 17742 * driver should treat this value as PF_NOT_ASSIGNED. 17743 */ 17744 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 17745 /* One byte per PF containing the number of its VFs, indexed by PF number. A 17746 * special value indicates that a PF is not present. 17747 */ 17748 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VFS_PER_PF_OFST 42 17749 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VFS_PER_PF_LEN 1 17750 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VFS_PER_PF_NUM 16 17751 /* enum: The caller is not permitted to access information on this PF. */ 17752 /* MC_CMD_GET_CAPABILITIES_V7_OUT_ACCESS_NOT_PERMITTED 0xff */ 17753 /* enum: PF does not exist. */ 17754 /* MC_CMD_GET_CAPABILITIES_V7_OUT_PF_NOT_PRESENT 0xfe */ 17755 /* Number of VIs available for each external port */ 17756 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VIS_PER_PORT_OFST 58 17757 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VIS_PER_PORT_LEN 2 17758 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VIS_PER_PORT_NUM 4 17759 /* Size of RX descriptor cache expressed as binary logarithm The actual size 17760 * equals (2 ^ RX_DESC_CACHE_SIZE) 17761 */ 17762 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DESC_CACHE_SIZE_OFST 66 17763 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DESC_CACHE_SIZE_LEN 1 17764 /* Size of TX descriptor cache expressed as binary logarithm The actual size 17765 * equals (2 ^ TX_DESC_CACHE_SIZE) 17766 */ 17767 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DESC_CACHE_SIZE_OFST 67 17768 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DESC_CACHE_SIZE_LEN 1 17769 /* Total number of available PIO buffers */ 17770 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_PIO_BUFFS_OFST 68 17771 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_PIO_BUFFS_LEN 2 17772 /* Size of a single PIO buffer */ 17773 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SIZE_PIO_BUFF_OFST 70 17774 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SIZE_PIO_BUFF_LEN 2 17775 /* On chips later than Medford the amount of address space assigned to each VI 17776 * is configurable. This is a global setting that the driver must query to 17777 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 17778 * with 8k VI windows. 17779 */ 17780 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_OFST 72 17781 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_LEN 1 17782 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 17783 * CTPIO is not mapped. 17784 */ 17785 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_8K 0x0 17786 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 17787 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_16K 0x1 17788 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 17789 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_64K 0x2 17790 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 17791 * (SF-115995-SW) in the present configuration of firmware and port mode. 17792 */ 17793 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 17794 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 17795 /* Number of buffers per adapter that can be used for VFIFO Stuffing 17796 * (SF-115995-SW) in the present configuration of firmware and port mode. 17797 */ 17798 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 17799 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 17800 /* Entry count in the MAC stats array, including the final GENERATION_END 17801 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 17802 * hold at least this many 64-bit stats values, if they wish to receive all 17803 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 17804 * stats array returned will be truncated. 17805 */ 17806 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_NUM_STATS_OFST 76 17807 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_NUM_STATS_LEN 2 17808 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 17809 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 17810 */ 17811 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_MAX_OFST 80 17812 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_MAX_LEN 4 17813 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 17814 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 17815 * they create an RX queue. Due to hardware limitations, only a small number of 17816 * different buffer sizes may be available concurrently. Nonzero entries in 17817 * this array are the sizes of buffers which the system guarantees will be 17818 * available for use. If the list is empty, there are no limitations on 17819 * concurrent buffer sizes. 17820 */ 17821 #define MC_CMD_GET_CAPABILITIES_V7_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 17822 #define MC_CMD_GET_CAPABILITIES_V7_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 17823 #define MC_CMD_GET_CAPABILITIES_V7_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 17824 /* Third word of flags. Not present on older firmware (check the length). */ 17825 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS3_OFST 148 17826 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS3_LEN 4 17827 #define MC_CMD_GET_CAPABILITIES_V7_OUT_WOL_ETHERWAKE_OFST 148 17828 #define MC_CMD_GET_CAPABILITIES_V7_OUT_WOL_ETHERWAKE_LBN 0 17829 #define MC_CMD_GET_CAPABILITIES_V7_OUT_WOL_ETHERWAKE_WIDTH 1 17830 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_EVEN_SPREADING_OFST 148 17831 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_EVEN_SPREADING_LBN 1 17832 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_EVEN_SPREADING_WIDTH 1 17833 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 17834 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 17835 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 17836 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_SUPPORTED_OFST 148 17837 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_SUPPORTED_LBN 3 17838 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_SUPPORTED_WIDTH 1 17839 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VDPA_SUPPORTED_OFST 148 17840 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VDPA_SUPPORTED_LBN 4 17841 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VDPA_SUPPORTED_WIDTH 1 17842 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 17843 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 17844 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 17845 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 17846 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 17847 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 17848 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 17849 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 17850 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 17851 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 17852 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 17853 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 17854 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 17855 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 17856 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 17857 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 17858 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 17859 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 17860 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 17861 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 17862 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 17863 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 17864 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 17865 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 17866 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_OFST 148 17867 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_LBN 13 17868 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_WIDTH 1 17869 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_MPORT_JOURNAL_OFST 148 17870 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_MPORT_JOURNAL_LBN 14 17871 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1 17872 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CLIENT_CMD_VF_PROXY_OFST 148 17873 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CLIENT_CMD_VF_PROXY_LBN 15 17874 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CLIENT_CMD_VF_PROXY_WIDTH 1 17875 17876 /* MC_CMD_GET_CAPABILITIES_V8_OUT msgresponse */ 17877 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LEN 160 17878 /* First word of flags. */ 17879 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS1_OFST 0 17880 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS1_LEN 4 17881 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VPORT_RECONFIGURE_OFST 0 17882 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VPORT_RECONFIGURE_LBN 3 17883 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VPORT_RECONFIGURE_WIDTH 1 17884 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_STRIPING_OFST 0 17885 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_STRIPING_LBN 4 17886 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_STRIPING_WIDTH 1 17887 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_QUERY_OFST 0 17888 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_QUERY_LBN 5 17889 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_QUERY_WIDTH 1 17890 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 17891 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 17892 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 17893 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DRV_ATTACH_PREBOOT_OFST 0 17894 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DRV_ATTACH_PREBOOT_LBN 7 17895 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 17896 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_FORCE_EVENT_MERGING_OFST 0 17897 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_FORCE_EVENT_MERGING_LBN 8 17898 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 17899 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SET_MAC_ENHANCED_OFST 0 17900 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SET_MAC_ENHANCED_LBN 9 17901 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SET_MAC_ENHANCED_WIDTH 1 17902 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 17903 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 17904 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 17905 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 17906 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 17907 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 17908 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 17909 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 17910 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 17911 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ADDITIONAL_RSS_MODES_OFST 0 17912 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ADDITIONAL_RSS_MODES_LBN 13 17913 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 17914 #define MC_CMD_GET_CAPABILITIES_V8_OUT_QBB_OFST 0 17915 #define MC_CMD_GET_CAPABILITIES_V8_OUT_QBB_LBN 14 17916 #define MC_CMD_GET_CAPABILITIES_V8_OUT_QBB_WIDTH 1 17917 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 17918 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 17919 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 17920 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_RSS_LIMITED_OFST 0 17921 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_RSS_LIMITED_LBN 16 17922 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_RSS_LIMITED_WIDTH 1 17923 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_OFST 0 17924 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_LBN 17 17925 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_WIDTH 1 17926 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_INCLUDE_FCS_OFST 0 17927 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_INCLUDE_FCS_LBN 18 17928 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_INCLUDE_FCS_WIDTH 1 17929 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VLAN_INSERTION_OFST 0 17930 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VLAN_INSERTION_LBN 19 17931 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VLAN_INSERTION_WIDTH 1 17932 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_OFST 0 17933 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_LBN 20 17934 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_WIDTH 1 17935 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_OFST 0 17936 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_LBN 21 17937 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_WIDTH 1 17938 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_0_OFST 0 17939 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_0_LBN 22 17940 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_0_WIDTH 1 17941 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_14_OFST 0 17942 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_14_LBN 23 17943 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_14_WIDTH 1 17944 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_TIMESTAMP_OFST 0 17945 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_TIMESTAMP_LBN 24 17946 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_TIMESTAMP_WIDTH 1 17947 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_BATCHING_OFST 0 17948 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_BATCHING_LBN 25 17949 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_BATCHING_WIDTH 1 17950 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCAST_FILTER_CHAINING_OFST 0 17951 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCAST_FILTER_CHAINING_LBN 26 17952 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCAST_FILTER_CHAINING_WIDTH 1 17953 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PM_AND_RXDP_COUNTERS_OFST 0 17954 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PM_AND_RXDP_COUNTERS_LBN 27 17955 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 17956 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DISABLE_SCATTER_OFST 0 17957 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DISABLE_SCATTER_LBN 28 17958 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DISABLE_SCATTER_WIDTH 1 17959 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 17960 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 17961 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 17962 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_OFST 0 17963 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_LBN 30 17964 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_WIDTH 1 17965 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VXLAN_NVGRE_OFST 0 17966 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VXLAN_NVGRE_LBN 31 17967 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VXLAN_NVGRE_WIDTH 1 17968 /* RxDPCPU firmware id. */ 17969 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DPCPU_FW_ID_OFST 4 17970 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DPCPU_FW_ID_LEN 2 17971 /* enum: Standard RXDP firmware */ 17972 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP 0x0 17973 /* enum: Low latency RXDP firmware */ 17974 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_LOW_LATENCY 0x1 17975 /* enum: Packed stream RXDP firmware */ 17976 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_PACKED_STREAM 0x2 17977 /* enum: Rules engine RXDP firmware */ 17978 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_RULES_ENGINE 0x5 17979 /* enum: DPDK RXDP firmware */ 17980 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_DPDK 0x6 17981 /* enum: BIST RXDP firmware */ 17982 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_BIST 0x10a 17983 /* enum: RXDP Test firmware image 1 */ 17984 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 17985 /* enum: RXDP Test firmware image 2 */ 17986 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 17987 /* enum: RXDP Test firmware image 3 */ 17988 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 17989 /* enum: RXDP Test firmware image 4 */ 17990 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 17991 /* enum: RXDP Test firmware image 5 */ 17992 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_BACKPRESSURE 0x105 17993 /* enum: RXDP Test firmware image 6 */ 17994 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 17995 /* enum: RXDP Test firmware image 7 */ 17996 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 17997 /* enum: RXDP Test firmware image 8 */ 17998 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 17999 /* enum: RXDP Test firmware image 9 */ 18000 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 18001 /* enum: RXDP Test firmware image 10 */ 18002 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_SLOW 0x10c 18003 /* TxDPCPU firmware id. */ 18004 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DPCPU_FW_ID_OFST 6 18005 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DPCPU_FW_ID_LEN 2 18006 /* enum: Standard TXDP firmware */ 18007 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP 0x0 18008 /* enum: Low latency TXDP firmware */ 18009 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_LOW_LATENCY 0x1 18010 /* enum: High packet rate TXDP firmware */ 18011 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_HIGH_PACKET_RATE 0x3 18012 /* enum: Rules engine TXDP firmware */ 18013 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_RULES_ENGINE 0x5 18014 /* enum: DPDK TXDP firmware */ 18015 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_DPDK 0x6 18016 /* enum: BIST TXDP firmware */ 18017 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_BIST 0x12d 18018 /* enum: TXDP Test firmware image 1 */ 18019 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 18020 /* enum: TXDP Test firmware image 2 */ 18021 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 18022 /* enum: TXDP CSR bus test firmware */ 18023 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_TEST_FW_CSR 0x103 18024 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_OFST 8 18025 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_LEN 2 18026 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_REV_OFST 8 18027 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_REV_LBN 0 18028 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_REV_WIDTH 12 18029 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_TYPE_OFST 8 18030 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_TYPE_LBN 12 18031 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 18032 /* enum: reserved value - do not use (may indicate alternative interpretation 18033 * of REV field in future) 18034 */ 18035 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_RESERVED 0x0 18036 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 18037 * development only) 18038 */ 18039 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 18040 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 18041 */ 18042 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 18043 /* enum: RX PD firmware with approximately Siena-compatible behaviour 18044 * (Huntington development only) 18045 */ 18046 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 18047 /* enum: Full featured RX PD production firmware */ 18048 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 18049 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 18050 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_VSWITCH 0x3 18051 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 18052 * (Huntington development only) 18053 */ 18054 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 18055 /* enum: Low latency RX PD production firmware */ 18056 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 18057 /* enum: Packed stream RX PD production firmware */ 18058 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 18059 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 18060 * tests (Medford development only) 18061 */ 18062 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 18063 /* enum: Rules engine RX PD production firmware */ 18064 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 18065 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 18066 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_L3XUDP 0x9 18067 /* enum: DPDK RX PD production firmware */ 18068 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_DPDK 0xa 18069 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 18070 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 18071 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 18072 * encapsulations (Medford development only) 18073 */ 18074 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 18075 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_OFST 10 18076 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_LEN 2 18077 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_REV_OFST 10 18078 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_REV_LBN 0 18079 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_REV_WIDTH 12 18080 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_TYPE_OFST 10 18081 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_TYPE_LBN 12 18082 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 18083 /* enum: reserved value - do not use (may indicate alternative interpretation 18084 * of REV field in future) 18085 */ 18086 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_RESERVED 0x0 18087 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 18088 * development only) 18089 */ 18090 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 18091 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 18092 */ 18093 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 18094 /* enum: TX PD firmware with approximately Siena-compatible behaviour 18095 * (Huntington development only) 18096 */ 18097 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 18098 /* enum: Full featured TX PD production firmware */ 18099 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 18100 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 18101 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_VSWITCH 0x3 18102 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 18103 * (Huntington development only) 18104 */ 18105 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 18106 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 18107 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 18108 * tests (Medford development only) 18109 */ 18110 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 18111 /* enum: Rules engine TX PD production firmware */ 18112 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 18113 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 18114 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_L3XUDP 0x9 18115 /* enum: DPDK TX PD production firmware */ 18116 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_DPDK 0xa 18117 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 18118 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 18119 /* Hardware capabilities of NIC */ 18120 #define MC_CMD_GET_CAPABILITIES_V8_OUT_HW_CAPABILITIES_OFST 12 18121 #define MC_CMD_GET_CAPABILITIES_V8_OUT_HW_CAPABILITIES_LEN 4 18122 /* Licensed capabilities */ 18123 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LICENSE_CAPABILITIES_OFST 16 18124 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LICENSE_CAPABILITIES_LEN 4 18125 /* Second word of flags. Not present on older firmware (check the length). */ 18126 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS2_OFST 20 18127 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS2_LEN 4 18128 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_OFST 20 18129 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_LBN 0 18130 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_WIDTH 1 18131 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_ENCAP_OFST 20 18132 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_ENCAP_LBN 1 18133 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_ENCAP_WIDTH 1 18134 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVQ_TIMER_CTRL_OFST 20 18135 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVQ_TIMER_CTRL_LBN 2 18136 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVQ_TIMER_CTRL_WIDTH 1 18137 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVENT_CUT_THROUGH_OFST 20 18138 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVENT_CUT_THROUGH_LBN 3 18139 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVENT_CUT_THROUGH_WIDTH 1 18140 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_CUT_THROUGH_OFST 20 18141 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_CUT_THROUGH_LBN 4 18142 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_CUT_THROUGH_WIDTH 1 18143 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VFIFO_ULL_MODE_OFST 20 18144 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VFIFO_ULL_MODE_LBN 5 18145 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 18146 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 18147 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 18148 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 18149 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 18150 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 18151 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 18152 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_V2_OFST 20 18153 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_V2_LBN 7 18154 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_V2_WIDTH 1 18155 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_TIMESTAMPING_OFST 20 18156 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_TIMESTAMPING_LBN 8 18157 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 18158 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TIMESTAMP_OFST 20 18159 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TIMESTAMP_LBN 9 18160 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TIMESTAMP_WIDTH 1 18161 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_SNIFF_OFST 20 18162 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_SNIFF_LBN 10 18163 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_SNIFF_WIDTH 1 18164 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_SNIFF_OFST 20 18165 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_SNIFF_LBN 11 18166 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_SNIFF_WIDTH 1 18167 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 18168 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 18169 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 18170 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_BACKGROUND_OFST 20 18171 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_BACKGROUND_LBN 13 18172 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_BACKGROUND_WIDTH 1 18173 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_DB_RETURN_OFST 20 18174 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_DB_RETURN_LBN 14 18175 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_DB_RETURN_WIDTH 1 18176 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CTPIO_OFST 20 18177 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CTPIO_LBN 15 18178 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CTPIO_WIDTH 1 18179 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_SUPPORT_OFST 20 18180 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_SUPPORT_LBN 16 18181 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_SUPPORT_WIDTH 1 18182 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_BOUND_OFST 20 18183 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_BOUND_LBN 17 18184 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_BOUND_WIDTH 1 18185 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 18186 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 18187 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 18188 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_FLAG_OFST 20 18189 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_FLAG_LBN 19 18190 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_FLAG_WIDTH 1 18191 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_OFST 20 18192 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_LBN 20 18193 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_WIDTH 1 18194 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 18195 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 18196 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 18197 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 18198 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 18199 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 18200 #define MC_CMD_GET_CAPABILITIES_V8_OUT_L3XUDP_SUPPORT_OFST 20 18201 #define MC_CMD_GET_CAPABILITIES_V8_OUT_L3XUDP_SUPPORT_LBN 22 18202 #define MC_CMD_GET_CAPABILITIES_V8_OUT_L3XUDP_SUPPORT_WIDTH 1 18203 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 18204 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 18205 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 18206 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_SPREADING_OFST 20 18207 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_SPREADING_LBN 24 18208 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_SPREADING_WIDTH 1 18209 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_HLB_IDLE_OFST 20 18210 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_HLB_IDLE_LBN 25 18211 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_HLB_IDLE_WIDTH 1 18212 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 18213 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 18214 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 18215 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 18216 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 18217 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 18218 #define MC_CMD_GET_CAPABILITIES_V8_OUT_BUNDLE_UPDATE_OFST 20 18219 #define MC_CMD_GET_CAPABILITIES_V8_OUT_BUNDLE_UPDATE_LBN 28 18220 #define MC_CMD_GET_CAPABILITIES_V8_OUT_BUNDLE_UPDATE_WIDTH 1 18221 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V3_OFST 20 18222 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V3_LBN 29 18223 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V3_WIDTH 1 18224 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_SENSORS_OFST 20 18225 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_SENSORS_LBN 30 18226 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_SENSORS_WIDTH 1 18227 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 18228 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 18229 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 18230 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 18231 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 18232 */ 18233 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 18234 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 18235 /* One byte per PF containing the number of the external port assigned to this 18236 * PF, indexed by PF number. Special values indicate that a PF is either not 18237 * present or not assigned. 18238 */ 18239 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 18240 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 18241 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 18242 /* enum: The caller is not permitted to access information on this PF. */ 18243 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ACCESS_NOT_PERMITTED 0xff 18244 /* enum: PF does not exist. */ 18245 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PF_NOT_PRESENT 0xfe 18246 /* enum: PF does exist but is not assigned to any external port. */ 18247 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PF_NOT_ASSIGNED 0xfd 18248 /* enum: This value indicates that PF is assigned, but it cannot be expressed 18249 * in this field. It is intended for a possible future situation where a more 18250 * complex scheme of PFs to ports mapping is being used. The future driver 18251 * should look for a new field supporting the new scheme. The current/old 18252 * driver should treat this value as PF_NOT_ASSIGNED. 18253 */ 18254 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 18255 /* One byte per PF containing the number of its VFs, indexed by PF number. A 18256 * special value indicates that a PF is not present. 18257 */ 18258 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VFS_PER_PF_OFST 42 18259 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VFS_PER_PF_LEN 1 18260 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VFS_PER_PF_NUM 16 18261 /* enum: The caller is not permitted to access information on this PF. */ 18262 /* MC_CMD_GET_CAPABILITIES_V8_OUT_ACCESS_NOT_PERMITTED 0xff */ 18263 /* enum: PF does not exist. */ 18264 /* MC_CMD_GET_CAPABILITIES_V8_OUT_PF_NOT_PRESENT 0xfe */ 18265 /* Number of VIs available for each external port */ 18266 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VIS_PER_PORT_OFST 58 18267 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VIS_PER_PORT_LEN 2 18268 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VIS_PER_PORT_NUM 4 18269 /* Size of RX descriptor cache expressed as binary logarithm The actual size 18270 * equals (2 ^ RX_DESC_CACHE_SIZE) 18271 */ 18272 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DESC_CACHE_SIZE_OFST 66 18273 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DESC_CACHE_SIZE_LEN 1 18274 /* Size of TX descriptor cache expressed as binary logarithm The actual size 18275 * equals (2 ^ TX_DESC_CACHE_SIZE) 18276 */ 18277 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DESC_CACHE_SIZE_OFST 67 18278 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DESC_CACHE_SIZE_LEN 1 18279 /* Total number of available PIO buffers */ 18280 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_PIO_BUFFS_OFST 68 18281 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_PIO_BUFFS_LEN 2 18282 /* Size of a single PIO buffer */ 18283 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SIZE_PIO_BUFF_OFST 70 18284 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SIZE_PIO_BUFF_LEN 2 18285 /* On chips later than Medford the amount of address space assigned to each VI 18286 * is configurable. This is a global setting that the driver must query to 18287 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 18288 * with 8k VI windows. 18289 */ 18290 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_OFST 72 18291 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_LEN 1 18292 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 18293 * CTPIO is not mapped. 18294 */ 18295 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_8K 0x0 18296 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 18297 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_16K 0x1 18298 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 18299 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_64K 0x2 18300 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 18301 * (SF-115995-SW) in the present configuration of firmware and port mode. 18302 */ 18303 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 18304 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 18305 /* Number of buffers per adapter that can be used for VFIFO Stuffing 18306 * (SF-115995-SW) in the present configuration of firmware and port mode. 18307 */ 18308 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 18309 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 18310 /* Entry count in the MAC stats array, including the final GENERATION_END 18311 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 18312 * hold at least this many 64-bit stats values, if they wish to receive all 18313 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 18314 * stats array returned will be truncated. 18315 */ 18316 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_NUM_STATS_OFST 76 18317 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_NUM_STATS_LEN 2 18318 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 18319 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 18320 */ 18321 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_MAX_OFST 80 18322 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_MAX_LEN 4 18323 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 18324 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 18325 * they create an RX queue. Due to hardware limitations, only a small number of 18326 * different buffer sizes may be available concurrently. Nonzero entries in 18327 * this array are the sizes of buffers which the system guarantees will be 18328 * available for use. If the list is empty, there are no limitations on 18329 * concurrent buffer sizes. 18330 */ 18331 #define MC_CMD_GET_CAPABILITIES_V8_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 18332 #define MC_CMD_GET_CAPABILITIES_V8_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 18333 #define MC_CMD_GET_CAPABILITIES_V8_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 18334 /* Third word of flags. Not present on older firmware (check the length). */ 18335 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS3_OFST 148 18336 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS3_LEN 4 18337 #define MC_CMD_GET_CAPABILITIES_V8_OUT_WOL_ETHERWAKE_OFST 148 18338 #define MC_CMD_GET_CAPABILITIES_V8_OUT_WOL_ETHERWAKE_LBN 0 18339 #define MC_CMD_GET_CAPABILITIES_V8_OUT_WOL_ETHERWAKE_WIDTH 1 18340 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_EVEN_SPREADING_OFST 148 18341 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_EVEN_SPREADING_LBN 1 18342 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_EVEN_SPREADING_WIDTH 1 18343 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 18344 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 18345 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 18346 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_SUPPORTED_OFST 148 18347 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_SUPPORTED_LBN 3 18348 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_SUPPORTED_WIDTH 1 18349 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VDPA_SUPPORTED_OFST 148 18350 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VDPA_SUPPORTED_LBN 4 18351 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VDPA_SUPPORTED_WIDTH 1 18352 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 18353 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 18354 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 18355 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 18356 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 18357 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 18358 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 18359 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 18360 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 18361 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 18362 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 18363 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 18364 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 18365 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 18366 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 18367 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 18368 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 18369 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 18370 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 18371 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 18372 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 18373 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 18374 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 18375 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 18376 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_OFST 148 18377 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_LBN 13 18378 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_WIDTH 1 18379 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_MPORT_JOURNAL_OFST 148 18380 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_MPORT_JOURNAL_LBN 14 18381 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1 18382 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CLIENT_CMD_VF_PROXY_OFST 148 18383 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CLIENT_CMD_VF_PROXY_LBN 15 18384 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CLIENT_CMD_VF_PROXY_WIDTH 1 18385 /* These bits are reserved for communicating test-specific capabilities to 18386 * host-side test software. All production drivers should treat this field as 18387 * opaque. 18388 */ 18389 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_OFST 152 18390 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LEN 8 18391 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_OFST 152 18392 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_LEN 4 18393 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_LBN 1216 18394 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_WIDTH 32 18395 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_OFST 156 18396 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_LEN 4 18397 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_LBN 1248 18398 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_WIDTH 32 18399 18400 /* MC_CMD_GET_CAPABILITIES_V9_OUT msgresponse */ 18401 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LEN 184 18402 /* First word of flags. */ 18403 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS1_OFST 0 18404 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS1_LEN 4 18405 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VPORT_RECONFIGURE_OFST 0 18406 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VPORT_RECONFIGURE_LBN 3 18407 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VPORT_RECONFIGURE_WIDTH 1 18408 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_STRIPING_OFST 0 18409 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_STRIPING_LBN 4 18410 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_STRIPING_WIDTH 1 18411 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_QUERY_OFST 0 18412 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_QUERY_LBN 5 18413 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_QUERY_WIDTH 1 18414 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 18415 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 18416 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 18417 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DRV_ATTACH_PREBOOT_OFST 0 18418 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DRV_ATTACH_PREBOOT_LBN 7 18419 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 18420 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_FORCE_EVENT_MERGING_OFST 0 18421 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_FORCE_EVENT_MERGING_LBN 8 18422 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 18423 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SET_MAC_ENHANCED_OFST 0 18424 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SET_MAC_ENHANCED_LBN 9 18425 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SET_MAC_ENHANCED_WIDTH 1 18426 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 18427 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 18428 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 18429 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 18430 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 18431 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 18432 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 18433 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 18434 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 18435 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ADDITIONAL_RSS_MODES_OFST 0 18436 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ADDITIONAL_RSS_MODES_LBN 13 18437 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 18438 #define MC_CMD_GET_CAPABILITIES_V9_OUT_QBB_OFST 0 18439 #define MC_CMD_GET_CAPABILITIES_V9_OUT_QBB_LBN 14 18440 #define MC_CMD_GET_CAPABILITIES_V9_OUT_QBB_WIDTH 1 18441 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 18442 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 18443 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 18444 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_RSS_LIMITED_OFST 0 18445 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_RSS_LIMITED_LBN 16 18446 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_RSS_LIMITED_WIDTH 1 18447 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_OFST 0 18448 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_LBN 17 18449 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_WIDTH 1 18450 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_INCLUDE_FCS_OFST 0 18451 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_INCLUDE_FCS_LBN 18 18452 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_INCLUDE_FCS_WIDTH 1 18453 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VLAN_INSERTION_OFST 0 18454 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VLAN_INSERTION_LBN 19 18455 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VLAN_INSERTION_WIDTH 1 18456 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_OFST 0 18457 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_LBN 20 18458 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_WIDTH 1 18459 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_OFST 0 18460 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_LBN 21 18461 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_WIDTH 1 18462 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_0_OFST 0 18463 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_0_LBN 22 18464 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_0_WIDTH 1 18465 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_14_OFST 0 18466 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_14_LBN 23 18467 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_14_WIDTH 1 18468 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_TIMESTAMP_OFST 0 18469 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_TIMESTAMP_LBN 24 18470 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_TIMESTAMP_WIDTH 1 18471 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_BATCHING_OFST 0 18472 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_BATCHING_LBN 25 18473 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_BATCHING_WIDTH 1 18474 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCAST_FILTER_CHAINING_OFST 0 18475 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCAST_FILTER_CHAINING_LBN 26 18476 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCAST_FILTER_CHAINING_WIDTH 1 18477 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PM_AND_RXDP_COUNTERS_OFST 0 18478 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PM_AND_RXDP_COUNTERS_LBN 27 18479 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 18480 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DISABLE_SCATTER_OFST 0 18481 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DISABLE_SCATTER_LBN 28 18482 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DISABLE_SCATTER_WIDTH 1 18483 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 18484 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 18485 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 18486 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_OFST 0 18487 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_LBN 30 18488 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_WIDTH 1 18489 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VXLAN_NVGRE_OFST 0 18490 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VXLAN_NVGRE_LBN 31 18491 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VXLAN_NVGRE_WIDTH 1 18492 /* RxDPCPU firmware id. */ 18493 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DPCPU_FW_ID_OFST 4 18494 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DPCPU_FW_ID_LEN 2 18495 /* enum: Standard RXDP firmware */ 18496 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP 0x0 18497 /* enum: Low latency RXDP firmware */ 18498 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_LOW_LATENCY 0x1 18499 /* enum: Packed stream RXDP firmware */ 18500 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_PACKED_STREAM 0x2 18501 /* enum: Rules engine RXDP firmware */ 18502 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_RULES_ENGINE 0x5 18503 /* enum: DPDK RXDP firmware */ 18504 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_DPDK 0x6 18505 /* enum: BIST RXDP firmware */ 18506 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_BIST 0x10a 18507 /* enum: RXDP Test firmware image 1 */ 18508 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 18509 /* enum: RXDP Test firmware image 2 */ 18510 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 18511 /* enum: RXDP Test firmware image 3 */ 18512 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 18513 /* enum: RXDP Test firmware image 4 */ 18514 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 18515 /* enum: RXDP Test firmware image 5 */ 18516 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_BACKPRESSURE 0x105 18517 /* enum: RXDP Test firmware image 6 */ 18518 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 18519 /* enum: RXDP Test firmware image 7 */ 18520 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 18521 /* enum: RXDP Test firmware image 8 */ 18522 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 18523 /* enum: RXDP Test firmware image 9 */ 18524 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 18525 /* enum: RXDP Test firmware image 10 */ 18526 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_SLOW 0x10c 18527 /* TxDPCPU firmware id. */ 18528 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DPCPU_FW_ID_OFST 6 18529 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DPCPU_FW_ID_LEN 2 18530 /* enum: Standard TXDP firmware */ 18531 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP 0x0 18532 /* enum: Low latency TXDP firmware */ 18533 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_LOW_LATENCY 0x1 18534 /* enum: High packet rate TXDP firmware */ 18535 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_HIGH_PACKET_RATE 0x3 18536 /* enum: Rules engine TXDP firmware */ 18537 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_RULES_ENGINE 0x5 18538 /* enum: DPDK TXDP firmware */ 18539 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_DPDK 0x6 18540 /* enum: BIST TXDP firmware */ 18541 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_BIST 0x12d 18542 /* enum: TXDP Test firmware image 1 */ 18543 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 18544 /* enum: TXDP Test firmware image 2 */ 18545 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 18546 /* enum: TXDP CSR bus test firmware */ 18547 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_TEST_FW_CSR 0x103 18548 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_OFST 8 18549 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_LEN 2 18550 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_REV_OFST 8 18551 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_REV_LBN 0 18552 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_REV_WIDTH 12 18553 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_TYPE_OFST 8 18554 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_TYPE_LBN 12 18555 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 18556 /* enum: reserved value - do not use (may indicate alternative interpretation 18557 * of REV field in future) 18558 */ 18559 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_RESERVED 0x0 18560 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 18561 * development only) 18562 */ 18563 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 18564 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 18565 */ 18566 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 18567 /* enum: RX PD firmware with approximately Siena-compatible behaviour 18568 * (Huntington development only) 18569 */ 18570 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 18571 /* enum: Full featured RX PD production firmware */ 18572 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 18573 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 18574 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_VSWITCH 0x3 18575 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 18576 * (Huntington development only) 18577 */ 18578 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 18579 /* enum: Low latency RX PD production firmware */ 18580 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 18581 /* enum: Packed stream RX PD production firmware */ 18582 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 18583 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 18584 * tests (Medford development only) 18585 */ 18586 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 18587 /* enum: Rules engine RX PD production firmware */ 18588 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 18589 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 18590 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_L3XUDP 0x9 18591 /* enum: DPDK RX PD production firmware */ 18592 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_DPDK 0xa 18593 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 18594 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 18595 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 18596 * encapsulations (Medford development only) 18597 */ 18598 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 18599 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_OFST 10 18600 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_LEN 2 18601 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_REV_OFST 10 18602 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_REV_LBN 0 18603 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_REV_WIDTH 12 18604 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_TYPE_OFST 10 18605 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_TYPE_LBN 12 18606 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 18607 /* enum: reserved value - do not use (may indicate alternative interpretation 18608 * of REV field in future) 18609 */ 18610 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_RESERVED 0x0 18611 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 18612 * development only) 18613 */ 18614 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 18615 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 18616 */ 18617 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 18618 /* enum: TX PD firmware with approximately Siena-compatible behaviour 18619 * (Huntington development only) 18620 */ 18621 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 18622 /* enum: Full featured TX PD production firmware */ 18623 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 18624 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 18625 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_VSWITCH 0x3 18626 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 18627 * (Huntington development only) 18628 */ 18629 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 18630 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 18631 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 18632 * tests (Medford development only) 18633 */ 18634 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 18635 /* enum: Rules engine TX PD production firmware */ 18636 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 18637 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 18638 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_L3XUDP 0x9 18639 /* enum: DPDK TX PD production firmware */ 18640 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_DPDK 0xa 18641 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 18642 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 18643 /* Hardware capabilities of NIC */ 18644 #define MC_CMD_GET_CAPABILITIES_V9_OUT_HW_CAPABILITIES_OFST 12 18645 #define MC_CMD_GET_CAPABILITIES_V9_OUT_HW_CAPABILITIES_LEN 4 18646 /* Licensed capabilities */ 18647 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LICENSE_CAPABILITIES_OFST 16 18648 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LICENSE_CAPABILITIES_LEN 4 18649 /* Second word of flags. Not present on older firmware (check the length). */ 18650 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS2_OFST 20 18651 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS2_LEN 4 18652 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_OFST 20 18653 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_LBN 0 18654 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_WIDTH 1 18655 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_ENCAP_OFST 20 18656 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_ENCAP_LBN 1 18657 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_ENCAP_WIDTH 1 18658 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVQ_TIMER_CTRL_OFST 20 18659 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVQ_TIMER_CTRL_LBN 2 18660 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVQ_TIMER_CTRL_WIDTH 1 18661 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVENT_CUT_THROUGH_OFST 20 18662 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVENT_CUT_THROUGH_LBN 3 18663 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVENT_CUT_THROUGH_WIDTH 1 18664 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_CUT_THROUGH_OFST 20 18665 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_CUT_THROUGH_LBN 4 18666 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_CUT_THROUGH_WIDTH 1 18667 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VFIFO_ULL_MODE_OFST 20 18668 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VFIFO_ULL_MODE_LBN 5 18669 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 18670 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 18671 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 18672 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 18673 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 18674 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 18675 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 18676 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_V2_OFST 20 18677 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_V2_LBN 7 18678 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_V2_WIDTH 1 18679 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_TIMESTAMPING_OFST 20 18680 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_TIMESTAMPING_LBN 8 18681 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 18682 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TIMESTAMP_OFST 20 18683 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TIMESTAMP_LBN 9 18684 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TIMESTAMP_WIDTH 1 18685 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_SNIFF_OFST 20 18686 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_SNIFF_LBN 10 18687 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_SNIFF_WIDTH 1 18688 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_SNIFF_OFST 20 18689 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_SNIFF_LBN 11 18690 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_SNIFF_WIDTH 1 18691 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 18692 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 18693 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 18694 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_BACKGROUND_OFST 20 18695 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_BACKGROUND_LBN 13 18696 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_BACKGROUND_WIDTH 1 18697 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_DB_RETURN_OFST 20 18698 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_DB_RETURN_LBN 14 18699 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_DB_RETURN_WIDTH 1 18700 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CTPIO_OFST 20 18701 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CTPIO_LBN 15 18702 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CTPIO_WIDTH 1 18703 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_SUPPORT_OFST 20 18704 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_SUPPORT_LBN 16 18705 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_SUPPORT_WIDTH 1 18706 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_BOUND_OFST 20 18707 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_BOUND_LBN 17 18708 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_BOUND_WIDTH 1 18709 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 18710 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 18711 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 18712 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_FLAG_OFST 20 18713 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_FLAG_LBN 19 18714 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_FLAG_WIDTH 1 18715 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_OFST 20 18716 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_LBN 20 18717 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_WIDTH 1 18718 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 18719 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 18720 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 18721 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 18722 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 18723 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 18724 #define MC_CMD_GET_CAPABILITIES_V9_OUT_L3XUDP_SUPPORT_OFST 20 18725 #define MC_CMD_GET_CAPABILITIES_V9_OUT_L3XUDP_SUPPORT_LBN 22 18726 #define MC_CMD_GET_CAPABILITIES_V9_OUT_L3XUDP_SUPPORT_WIDTH 1 18727 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 18728 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 18729 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 18730 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_SPREADING_OFST 20 18731 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_SPREADING_LBN 24 18732 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_SPREADING_WIDTH 1 18733 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_HLB_IDLE_OFST 20 18734 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_HLB_IDLE_LBN 25 18735 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_HLB_IDLE_WIDTH 1 18736 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 18737 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 18738 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 18739 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 18740 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 18741 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 18742 #define MC_CMD_GET_CAPABILITIES_V9_OUT_BUNDLE_UPDATE_OFST 20 18743 #define MC_CMD_GET_CAPABILITIES_V9_OUT_BUNDLE_UPDATE_LBN 28 18744 #define MC_CMD_GET_CAPABILITIES_V9_OUT_BUNDLE_UPDATE_WIDTH 1 18745 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V3_OFST 20 18746 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V3_LBN 29 18747 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V3_WIDTH 1 18748 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_SENSORS_OFST 20 18749 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_SENSORS_LBN 30 18750 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_SENSORS_WIDTH 1 18751 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 18752 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 18753 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 18754 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 18755 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 18756 */ 18757 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 18758 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 18759 /* One byte per PF containing the number of the external port assigned to this 18760 * PF, indexed by PF number. Special values indicate that a PF is either not 18761 * present or not assigned. 18762 */ 18763 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 18764 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 18765 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 18766 /* enum: The caller is not permitted to access information on this PF. */ 18767 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ACCESS_NOT_PERMITTED 0xff 18768 /* enum: PF does not exist. */ 18769 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PF_NOT_PRESENT 0xfe 18770 /* enum: PF does exist but is not assigned to any external port. */ 18771 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PF_NOT_ASSIGNED 0xfd 18772 /* enum: This value indicates that PF is assigned, but it cannot be expressed 18773 * in this field. It is intended for a possible future situation where a more 18774 * complex scheme of PFs to ports mapping is being used. The future driver 18775 * should look for a new field supporting the new scheme. The current/old 18776 * driver should treat this value as PF_NOT_ASSIGNED. 18777 */ 18778 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 18779 /* One byte per PF containing the number of its VFs, indexed by PF number. A 18780 * special value indicates that a PF is not present. 18781 */ 18782 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VFS_PER_PF_OFST 42 18783 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VFS_PER_PF_LEN 1 18784 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VFS_PER_PF_NUM 16 18785 /* enum: The caller is not permitted to access information on this PF. */ 18786 /* MC_CMD_GET_CAPABILITIES_V9_OUT_ACCESS_NOT_PERMITTED 0xff */ 18787 /* enum: PF does not exist. */ 18788 /* MC_CMD_GET_CAPABILITIES_V9_OUT_PF_NOT_PRESENT 0xfe */ 18789 /* Number of VIs available for each external port */ 18790 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VIS_PER_PORT_OFST 58 18791 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VIS_PER_PORT_LEN 2 18792 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VIS_PER_PORT_NUM 4 18793 /* Size of RX descriptor cache expressed as binary logarithm The actual size 18794 * equals (2 ^ RX_DESC_CACHE_SIZE) 18795 */ 18796 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DESC_CACHE_SIZE_OFST 66 18797 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DESC_CACHE_SIZE_LEN 1 18798 /* Size of TX descriptor cache expressed as binary logarithm The actual size 18799 * equals (2 ^ TX_DESC_CACHE_SIZE) 18800 */ 18801 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DESC_CACHE_SIZE_OFST 67 18802 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DESC_CACHE_SIZE_LEN 1 18803 /* Total number of available PIO buffers */ 18804 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_PIO_BUFFS_OFST 68 18805 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_PIO_BUFFS_LEN 2 18806 /* Size of a single PIO buffer */ 18807 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SIZE_PIO_BUFF_OFST 70 18808 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SIZE_PIO_BUFF_LEN 2 18809 /* On chips later than Medford the amount of address space assigned to each VI 18810 * is configurable. This is a global setting that the driver must query to 18811 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 18812 * with 8k VI windows. 18813 */ 18814 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_OFST 72 18815 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_LEN 1 18816 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 18817 * CTPIO is not mapped. 18818 */ 18819 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_8K 0x0 18820 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 18821 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_16K 0x1 18822 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 18823 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_64K 0x2 18824 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 18825 * (SF-115995-SW) in the present configuration of firmware and port mode. 18826 */ 18827 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 18828 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 18829 /* Number of buffers per adapter that can be used for VFIFO Stuffing 18830 * (SF-115995-SW) in the present configuration of firmware and port mode. 18831 */ 18832 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 18833 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 18834 /* Entry count in the MAC stats array, including the final GENERATION_END 18835 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 18836 * hold at least this many 64-bit stats values, if they wish to receive all 18837 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 18838 * stats array returned will be truncated. 18839 */ 18840 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_NUM_STATS_OFST 76 18841 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_NUM_STATS_LEN 2 18842 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 18843 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 18844 */ 18845 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_MAX_OFST 80 18846 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_MAX_LEN 4 18847 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 18848 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 18849 * they create an RX queue. Due to hardware limitations, only a small number of 18850 * different buffer sizes may be available concurrently. Nonzero entries in 18851 * this array are the sizes of buffers which the system guarantees will be 18852 * available for use. If the list is empty, there are no limitations on 18853 * concurrent buffer sizes. 18854 */ 18855 #define MC_CMD_GET_CAPABILITIES_V9_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 18856 #define MC_CMD_GET_CAPABILITIES_V9_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 18857 #define MC_CMD_GET_CAPABILITIES_V9_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 18858 /* Third word of flags. Not present on older firmware (check the length). */ 18859 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS3_OFST 148 18860 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS3_LEN 4 18861 #define MC_CMD_GET_CAPABILITIES_V9_OUT_WOL_ETHERWAKE_OFST 148 18862 #define MC_CMD_GET_CAPABILITIES_V9_OUT_WOL_ETHERWAKE_LBN 0 18863 #define MC_CMD_GET_CAPABILITIES_V9_OUT_WOL_ETHERWAKE_WIDTH 1 18864 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_EVEN_SPREADING_OFST 148 18865 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_EVEN_SPREADING_LBN 1 18866 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_EVEN_SPREADING_WIDTH 1 18867 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 18868 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 18869 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 18870 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_SUPPORTED_OFST 148 18871 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_SUPPORTED_LBN 3 18872 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_SUPPORTED_WIDTH 1 18873 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VDPA_SUPPORTED_OFST 148 18874 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VDPA_SUPPORTED_LBN 4 18875 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VDPA_SUPPORTED_WIDTH 1 18876 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 18877 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 18878 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 18879 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 18880 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 18881 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 18882 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 18883 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 18884 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 18885 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 18886 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 18887 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 18888 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 18889 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 18890 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 18891 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 18892 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 18893 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 18894 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 18895 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 18896 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 18897 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 18898 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 18899 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 18900 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_OFST 148 18901 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_LBN 13 18902 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_WIDTH 1 18903 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_MPORT_JOURNAL_OFST 148 18904 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_MPORT_JOURNAL_LBN 14 18905 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1 18906 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CLIENT_CMD_VF_PROXY_OFST 148 18907 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CLIENT_CMD_VF_PROXY_LBN 15 18908 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CLIENT_CMD_VF_PROXY_WIDTH 1 18909 /* These bits are reserved for communicating test-specific capabilities to 18910 * host-side test software. All production drivers should treat this field as 18911 * opaque. 18912 */ 18913 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_OFST 152 18914 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LEN 8 18915 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_OFST 152 18916 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_LEN 4 18917 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_LBN 1216 18918 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_WIDTH 32 18919 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_OFST 156 18920 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_LEN 4 18921 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_LBN 1248 18922 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_WIDTH 32 18923 /* The minimum size (in table entries) of indirection table to be allocated 18924 * from the pool for an RSS context. Note that the table size used must be a 18925 * power of 2. 18926 */ 18927 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_OFST 160 18928 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_LEN 4 18929 /* The maximum size (in table entries) of indirection table to be allocated 18930 * from the pool for an RSS context. Note that the table size used must be a 18931 * power of 2. 18932 */ 18933 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_OFST 164 18934 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_LEN 4 18935 /* The maximum number of queues that can be used by an RSS context in exclusive 18936 * mode. In exclusive mode the context has a configurable indirection table and 18937 * a configurable RSS key. 18938 */ 18939 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_QUEUES_OFST 168 18940 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_QUEUES_LEN 4 18941 /* The maximum number of queues that can be used by an RSS context in even- 18942 * spreading mode. In even-spreading mode the context has no indirection table 18943 * but it does have a configurable RSS key. 18944 */ 18945 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_OFST 172 18946 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_LEN 4 18947 /* The total number of RSS contexts supported. Note that the number of 18948 * available contexts using indirection tables is also limited by the 18949 * availability of indirection table space allocated from a common pool. 18950 */ 18951 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_NUM_CONTEXTS_OFST 176 18952 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_NUM_CONTEXTS_LEN 4 18953 /* The total amount of indirection table space that can be shared between RSS 18954 * contexts. 18955 */ 18956 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_TABLE_POOL_SIZE_OFST 180 18957 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_TABLE_POOL_SIZE_LEN 4 18958 18959 /* MC_CMD_GET_CAPABILITIES_V10_OUT msgresponse */ 18960 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LEN 192 18961 /* First word of flags. */ 18962 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS1_OFST 0 18963 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS1_LEN 4 18964 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VPORT_RECONFIGURE_OFST 0 18965 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VPORT_RECONFIGURE_LBN 3 18966 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VPORT_RECONFIGURE_WIDTH 1 18967 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_OFST 0 18968 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_LBN 4 18969 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_WIDTH 1 18970 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_QUERY_OFST 0 18971 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_QUERY_LBN 5 18972 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_QUERY_WIDTH 1 18973 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 18974 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 18975 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 18976 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_OFST 0 18977 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_LBN 7 18978 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 18979 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_FORCE_EVENT_MERGING_OFST 0 18980 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_FORCE_EVENT_MERGING_LBN 8 18981 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 18982 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SET_MAC_ENHANCED_OFST 0 18983 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SET_MAC_ENHANCED_LBN 9 18984 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SET_MAC_ENHANCED_WIDTH 1 18985 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 18986 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 18987 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 18988 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 18989 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 18990 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 18991 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 18992 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 18993 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 18994 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ADDITIONAL_RSS_MODES_OFST 0 18995 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ADDITIONAL_RSS_MODES_LBN 13 18996 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 18997 #define MC_CMD_GET_CAPABILITIES_V10_OUT_QBB_OFST 0 18998 #define MC_CMD_GET_CAPABILITIES_V10_OUT_QBB_LBN 14 18999 #define MC_CMD_GET_CAPABILITIES_V10_OUT_QBB_WIDTH 1 19000 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 19001 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 19002 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 19003 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_RSS_LIMITED_OFST 0 19004 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_RSS_LIMITED_LBN 16 19005 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_RSS_LIMITED_WIDTH 1 19006 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_OFST 0 19007 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_LBN 17 19008 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_WIDTH 1 19009 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_INCLUDE_FCS_OFST 0 19010 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_INCLUDE_FCS_LBN 18 19011 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_INCLUDE_FCS_WIDTH 1 19012 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VLAN_INSERTION_OFST 0 19013 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VLAN_INSERTION_LBN 19 19014 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VLAN_INSERTION_WIDTH 1 19015 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_OFST 0 19016 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_LBN 20 19017 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_WIDTH 1 19018 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_OFST 0 19019 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_LBN 21 19020 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_WIDTH 1 19021 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_0_OFST 0 19022 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_0_LBN 22 19023 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_0_WIDTH 1 19024 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_14_OFST 0 19025 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_14_LBN 23 19026 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_14_WIDTH 1 19027 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_TIMESTAMP_OFST 0 19028 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_TIMESTAMP_LBN 24 19029 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_TIMESTAMP_WIDTH 1 19030 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_BATCHING_OFST 0 19031 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_BATCHING_LBN 25 19032 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_BATCHING_WIDTH 1 19033 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCAST_FILTER_CHAINING_OFST 0 19034 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCAST_FILTER_CHAINING_LBN 26 19035 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCAST_FILTER_CHAINING_WIDTH 1 19036 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PM_AND_RXDP_COUNTERS_OFST 0 19037 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PM_AND_RXDP_COUNTERS_LBN 27 19038 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 19039 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DISABLE_SCATTER_OFST 0 19040 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DISABLE_SCATTER_LBN 28 19041 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DISABLE_SCATTER_WIDTH 1 19042 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 19043 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 19044 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 19045 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_OFST 0 19046 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_LBN 30 19047 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_WIDTH 1 19048 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VXLAN_NVGRE_OFST 0 19049 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VXLAN_NVGRE_LBN 31 19050 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VXLAN_NVGRE_WIDTH 1 19051 /* RxDPCPU firmware id. */ 19052 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DPCPU_FW_ID_OFST 4 19053 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DPCPU_FW_ID_LEN 2 19054 /* enum: Standard RXDP firmware */ 19055 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP 0x0 19056 /* enum: Low latency RXDP firmware */ 19057 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_LOW_LATENCY 0x1 19058 /* enum: Packed stream RXDP firmware */ 19059 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_PACKED_STREAM 0x2 19060 /* enum: Rules engine RXDP firmware */ 19061 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_RULES_ENGINE 0x5 19062 /* enum: DPDK RXDP firmware */ 19063 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_DPDK 0x6 19064 /* enum: BIST RXDP firmware */ 19065 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_BIST 0x10a 19066 /* enum: RXDP Test firmware image 1 */ 19067 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 19068 /* enum: RXDP Test firmware image 2 */ 19069 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 19070 /* enum: RXDP Test firmware image 3 */ 19071 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 19072 /* enum: RXDP Test firmware image 4 */ 19073 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 19074 /* enum: RXDP Test firmware image 5 */ 19075 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_BACKPRESSURE 0x105 19076 /* enum: RXDP Test firmware image 6 */ 19077 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 19078 /* enum: RXDP Test firmware image 7 */ 19079 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 19080 /* enum: RXDP Test firmware image 8 */ 19081 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 19082 /* enum: RXDP Test firmware image 9 */ 19083 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 19084 /* enum: RXDP Test firmware image 10 */ 19085 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_SLOW 0x10c 19086 /* TxDPCPU firmware id. */ 19087 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DPCPU_FW_ID_OFST 6 19088 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DPCPU_FW_ID_LEN 2 19089 /* enum: Standard TXDP firmware */ 19090 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP 0x0 19091 /* enum: Low latency TXDP firmware */ 19092 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_LOW_LATENCY 0x1 19093 /* enum: High packet rate TXDP firmware */ 19094 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_HIGH_PACKET_RATE 0x3 19095 /* enum: Rules engine TXDP firmware */ 19096 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_RULES_ENGINE 0x5 19097 /* enum: DPDK TXDP firmware */ 19098 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_DPDK 0x6 19099 /* enum: BIST TXDP firmware */ 19100 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_BIST 0x12d 19101 /* enum: TXDP Test firmware image 1 */ 19102 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 19103 /* enum: TXDP Test firmware image 2 */ 19104 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 19105 /* enum: TXDP CSR bus test firmware */ 19106 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_TEST_FW_CSR 0x103 19107 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_OFST 8 19108 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_LEN 2 19109 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_REV_OFST 8 19110 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_REV_LBN 0 19111 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_REV_WIDTH 12 19112 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_TYPE_OFST 8 19113 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_TYPE_LBN 12 19114 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 19115 /* enum: reserved value - do not use (may indicate alternative interpretation 19116 * of REV field in future) 19117 */ 19118 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_RESERVED 0x0 19119 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 19120 * development only) 19121 */ 19122 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 19123 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 19124 */ 19125 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 19126 /* enum: RX PD firmware with approximately Siena-compatible behaviour 19127 * (Huntington development only) 19128 */ 19129 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 19130 /* enum: Full featured RX PD production firmware */ 19131 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 19132 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 19133 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_VSWITCH 0x3 19134 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 19135 * (Huntington development only) 19136 */ 19137 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 19138 /* enum: Low latency RX PD production firmware */ 19139 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 19140 /* enum: Packed stream RX PD production firmware */ 19141 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 19142 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 19143 * tests (Medford development only) 19144 */ 19145 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 19146 /* enum: Rules engine RX PD production firmware */ 19147 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 19148 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 19149 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_L3XUDP 0x9 19150 /* enum: DPDK RX PD production firmware */ 19151 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_DPDK 0xa 19152 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 19153 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 19154 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 19155 * encapsulations (Medford development only) 19156 */ 19157 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 19158 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_OFST 10 19159 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_LEN 2 19160 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_REV_OFST 10 19161 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_REV_LBN 0 19162 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_REV_WIDTH 12 19163 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_TYPE_OFST 10 19164 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_TYPE_LBN 12 19165 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 19166 /* enum: reserved value - do not use (may indicate alternative interpretation 19167 * of REV field in future) 19168 */ 19169 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_RESERVED 0x0 19170 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 19171 * development only) 19172 */ 19173 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 19174 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 19175 */ 19176 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 19177 /* enum: TX PD firmware with approximately Siena-compatible behaviour 19178 * (Huntington development only) 19179 */ 19180 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 19181 /* enum: Full featured TX PD production firmware */ 19182 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 19183 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 19184 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_VSWITCH 0x3 19185 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 19186 * (Huntington development only) 19187 */ 19188 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 19189 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 19190 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 19191 * tests (Medford development only) 19192 */ 19193 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 19194 /* enum: Rules engine TX PD production firmware */ 19195 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 19196 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 19197 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_L3XUDP 0x9 19198 /* enum: DPDK TX PD production firmware */ 19199 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_DPDK 0xa 19200 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 19201 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 19202 /* Hardware capabilities of NIC */ 19203 #define MC_CMD_GET_CAPABILITIES_V10_OUT_HW_CAPABILITIES_OFST 12 19204 #define MC_CMD_GET_CAPABILITIES_V10_OUT_HW_CAPABILITIES_LEN 4 19205 /* Licensed capabilities */ 19206 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LICENSE_CAPABILITIES_OFST 16 19207 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LICENSE_CAPABILITIES_LEN 4 19208 /* Second word of flags. Not present on older firmware (check the length). */ 19209 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS2_OFST 20 19210 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS2_LEN 4 19211 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_OFST 20 19212 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_LBN 0 19213 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_WIDTH 1 19214 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_OFST 20 19215 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_LBN 1 19216 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_WIDTH 1 19217 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVQ_TIMER_CTRL_OFST 20 19218 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVQ_TIMER_CTRL_LBN 2 19219 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVQ_TIMER_CTRL_WIDTH 1 19220 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVENT_CUT_THROUGH_OFST 20 19221 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVENT_CUT_THROUGH_LBN 3 19222 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVENT_CUT_THROUGH_WIDTH 1 19223 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_OFST 20 19224 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_LBN 4 19225 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_WIDTH 1 19226 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VFIFO_ULL_MODE_OFST 20 19227 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VFIFO_ULL_MODE_LBN 5 19228 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 19229 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 19230 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 19231 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 19232 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 19233 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 19234 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 19235 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_OFST 20 19236 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_LBN 7 19237 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_WIDTH 1 19238 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_TIMESTAMPING_OFST 20 19239 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_TIMESTAMPING_LBN 8 19240 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 19241 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TIMESTAMP_OFST 20 19242 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TIMESTAMP_LBN 9 19243 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TIMESTAMP_WIDTH 1 19244 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_SNIFF_OFST 20 19245 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_SNIFF_LBN 10 19246 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_SNIFF_WIDTH 1 19247 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_SNIFF_OFST 20 19248 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_SNIFF_LBN 11 19249 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_SNIFF_WIDTH 1 19250 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 19251 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 19252 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 19253 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_BACKGROUND_OFST 20 19254 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_BACKGROUND_LBN 13 19255 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_BACKGROUND_WIDTH 1 19256 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_DB_RETURN_OFST 20 19257 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_DB_RETURN_LBN 14 19258 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_DB_RETURN_WIDTH 1 19259 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CTPIO_OFST 20 19260 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CTPIO_LBN 15 19261 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CTPIO_WIDTH 1 19262 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_SUPPORT_OFST 20 19263 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_SUPPORT_LBN 16 19264 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_SUPPORT_WIDTH 1 19265 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_BOUND_OFST 20 19266 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_BOUND_LBN 17 19267 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_BOUND_WIDTH 1 19268 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 19269 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 19270 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 19271 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_FLAG_OFST 20 19272 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_FLAG_LBN 19 19273 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_FLAG_WIDTH 1 19274 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_OFST 20 19275 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_LBN 20 19276 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_WIDTH 1 19277 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 19278 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 19279 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 19280 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 19281 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 19282 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 19283 #define MC_CMD_GET_CAPABILITIES_V10_OUT_L3XUDP_SUPPORT_OFST 20 19284 #define MC_CMD_GET_CAPABILITIES_V10_OUT_L3XUDP_SUPPORT_LBN 22 19285 #define MC_CMD_GET_CAPABILITIES_V10_OUT_L3XUDP_SUPPORT_WIDTH 1 19286 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 19287 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 19288 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 19289 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_SPREADING_OFST 20 19290 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_SPREADING_LBN 24 19291 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_SPREADING_WIDTH 1 19292 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_HLB_IDLE_OFST 20 19293 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_HLB_IDLE_LBN 25 19294 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_HLB_IDLE_WIDTH 1 19295 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 19296 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 19297 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 19298 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 19299 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 19300 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 19301 #define MC_CMD_GET_CAPABILITIES_V10_OUT_BUNDLE_UPDATE_OFST 20 19302 #define MC_CMD_GET_CAPABILITIES_V10_OUT_BUNDLE_UPDATE_LBN 28 19303 #define MC_CMD_GET_CAPABILITIES_V10_OUT_BUNDLE_UPDATE_WIDTH 1 19304 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V3_OFST 20 19305 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V3_LBN 29 19306 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V3_WIDTH 1 19307 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_SENSORS_OFST 20 19308 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_SENSORS_LBN 30 19309 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_SENSORS_WIDTH 1 19310 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 19311 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 19312 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 19313 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 19314 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 19315 */ 19316 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 19317 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 19318 /* One byte per PF containing the number of the external port assigned to this 19319 * PF, indexed by PF number. Special values indicate that a PF is either not 19320 * present or not assigned. 19321 */ 19322 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 19323 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 19324 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 19325 /* enum: The caller is not permitted to access information on this PF. */ 19326 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ACCESS_NOT_PERMITTED 0xff 19327 /* enum: PF does not exist. */ 19328 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PF_NOT_PRESENT 0xfe 19329 /* enum: PF does exist but is not assigned to any external port. */ 19330 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PF_NOT_ASSIGNED 0xfd 19331 /* enum: This value indicates that PF is assigned, but it cannot be expressed 19332 * in this field. It is intended for a possible future situation where a more 19333 * complex scheme of PFs to ports mapping is being used. The future driver 19334 * should look for a new field supporting the new scheme. The current/old 19335 * driver should treat this value as PF_NOT_ASSIGNED. 19336 */ 19337 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 19338 /* One byte per PF containing the number of its VFs, indexed by PF number. A 19339 * special value indicates that a PF is not present. 19340 */ 19341 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VFS_PER_PF_OFST 42 19342 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VFS_PER_PF_LEN 1 19343 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VFS_PER_PF_NUM 16 19344 /* enum: The caller is not permitted to access information on this PF. */ 19345 /* MC_CMD_GET_CAPABILITIES_V10_OUT_ACCESS_NOT_PERMITTED 0xff */ 19346 /* enum: PF does not exist. */ 19347 /* MC_CMD_GET_CAPABILITIES_V10_OUT_PF_NOT_PRESENT 0xfe */ 19348 /* Number of VIs available for each external port */ 19349 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VIS_PER_PORT_OFST 58 19350 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VIS_PER_PORT_LEN 2 19351 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VIS_PER_PORT_NUM 4 19352 /* Size of RX descriptor cache expressed as binary logarithm The actual size 19353 * equals (2 ^ RX_DESC_CACHE_SIZE) 19354 */ 19355 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DESC_CACHE_SIZE_OFST 66 19356 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DESC_CACHE_SIZE_LEN 1 19357 /* Size of TX descriptor cache expressed as binary logarithm The actual size 19358 * equals (2 ^ TX_DESC_CACHE_SIZE) 19359 */ 19360 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DESC_CACHE_SIZE_OFST 67 19361 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DESC_CACHE_SIZE_LEN 1 19362 /* Total number of available PIO buffers */ 19363 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_PIO_BUFFS_OFST 68 19364 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_PIO_BUFFS_LEN 2 19365 /* Size of a single PIO buffer */ 19366 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SIZE_PIO_BUFF_OFST 70 19367 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SIZE_PIO_BUFF_LEN 2 19368 /* On chips later than Medford the amount of address space assigned to each VI 19369 * is configurable. This is a global setting that the driver must query to 19370 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 19371 * with 8k VI windows. 19372 */ 19373 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_OFST 72 19374 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_LEN 1 19375 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 19376 * CTPIO is not mapped. 19377 */ 19378 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_8K 0x0 19379 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 19380 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_16K 0x1 19381 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 19382 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_64K 0x2 19383 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 19384 * (SF-115995-SW) in the present configuration of firmware and port mode. 19385 */ 19386 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 19387 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 19388 /* Number of buffers per adapter that can be used for VFIFO Stuffing 19389 * (SF-115995-SW) in the present configuration of firmware and port mode. 19390 */ 19391 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 19392 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 19393 /* Entry count in the MAC stats array, including the final GENERATION_END 19394 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 19395 * hold at least this many 64-bit stats values, if they wish to receive all 19396 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 19397 * stats array returned will be truncated. 19398 */ 19399 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_NUM_STATS_OFST 76 19400 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_NUM_STATS_LEN 2 19401 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 19402 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 19403 */ 19404 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_MAX_OFST 80 19405 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_MAX_LEN 4 19406 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 19407 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 19408 * they create an RX queue. Due to hardware limitations, only a small number of 19409 * different buffer sizes may be available concurrently. Nonzero entries in 19410 * this array are the sizes of buffers which the system guarantees will be 19411 * available for use. If the list is empty, there are no limitations on 19412 * concurrent buffer sizes. 19413 */ 19414 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 19415 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 19416 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 19417 /* Third word of flags. Not present on older firmware (check the length). */ 19418 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS3_OFST 148 19419 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS3_LEN 4 19420 #define MC_CMD_GET_CAPABILITIES_V10_OUT_WOL_ETHERWAKE_OFST 148 19421 #define MC_CMD_GET_CAPABILITIES_V10_OUT_WOL_ETHERWAKE_LBN 0 19422 #define MC_CMD_GET_CAPABILITIES_V10_OUT_WOL_ETHERWAKE_WIDTH 1 19423 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_OFST 148 19424 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_LBN 1 19425 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_WIDTH 1 19426 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 19427 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 19428 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 19429 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_SUPPORTED_OFST 148 19430 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_SUPPORTED_LBN 3 19431 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_SUPPORTED_WIDTH 1 19432 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_OFST 148 19433 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_LBN 4 19434 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_WIDTH 1 19435 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 19436 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 19437 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 19438 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 19439 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 19440 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 19441 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 19442 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 19443 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 19444 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 19445 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 19446 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 19447 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 19448 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 19449 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 19450 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 19451 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 19452 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 19453 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 19454 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 19455 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 19456 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 19457 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 19458 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 19459 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_OFST 148 19460 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_LBN 13 19461 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_WIDTH 1 19462 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_MPORT_JOURNAL_OFST 148 19463 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_MPORT_JOURNAL_LBN 14 19464 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1 19465 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CLIENT_CMD_VF_PROXY_OFST 148 19466 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CLIENT_CMD_VF_PROXY_LBN 15 19467 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CLIENT_CMD_VF_PROXY_WIDTH 1 19468 /* These bits are reserved for communicating test-specific capabilities to 19469 * host-side test software. All production drivers should treat this field as 19470 * opaque. 19471 */ 19472 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_OFST 152 19473 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LEN 8 19474 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_OFST 152 19475 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_LEN 4 19476 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_LBN 1216 19477 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_WIDTH 32 19478 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_OFST 156 19479 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_LEN 4 19480 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_LBN 1248 19481 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_WIDTH 32 19482 /* The minimum size (in table entries) of indirection table to be allocated 19483 * from the pool for an RSS context. Note that the table size used must be a 19484 * power of 2. 19485 */ 19486 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_OFST 160 19487 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_LEN 4 19488 /* The maximum size (in table entries) of indirection table to be allocated 19489 * from the pool for an RSS context. Note that the table size used must be a 19490 * power of 2. 19491 */ 19492 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_OFST 164 19493 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_LEN 4 19494 /* The maximum number of queues that can be used by an RSS context in exclusive 19495 * mode. In exclusive mode the context has a configurable indirection table and 19496 * a configurable RSS key. 19497 */ 19498 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_QUEUES_OFST 168 19499 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_QUEUES_LEN 4 19500 /* The maximum number of queues that can be used by an RSS context in even- 19501 * spreading mode. In even-spreading mode the context has no indirection table 19502 * but it does have a configurable RSS key. 19503 */ 19504 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_OFST 172 19505 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_LEN 4 19506 /* The total number of RSS contexts supported. Note that the number of 19507 * available contexts using indirection tables is also limited by the 19508 * availability of indirection table space allocated from a common pool. 19509 */ 19510 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_NUM_CONTEXTS_OFST 176 19511 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_NUM_CONTEXTS_LEN 4 19512 /* The total amount of indirection table space that can be shared between RSS 19513 * contexts. 19514 */ 19515 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_TABLE_POOL_SIZE_OFST 180 19516 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_TABLE_POOL_SIZE_LEN 4 19517 /* A bitmap of the queue sizes the device can provide, where bit N being set 19518 * indicates that 2**N is a valid size. The device may be limited in the number 19519 * of different queue sizes that can exist simultaneously, so a bit being set 19520 * here does not guarantee that an attempt to create a queue of that size will 19521 * succeed. 19522 */ 19523 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SUPPORTED_QUEUE_SIZES_OFST 184 19524 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SUPPORTED_QUEUE_SIZES_LEN 4 19525 /* A bitmap of queue sizes that are always available, in the same format as 19526 * SUPPORTED_QUEUE_SIZES. Attempting to create a queue with one of these sizes 19527 * will never fail due to unavailability of the requested size. 19528 */ 19529 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_QUEUE_SIZES_OFST 188 19530 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_QUEUE_SIZES_LEN 4 19531 19532 19533 /***********************************/ 19534 /* MC_CMD_V2_EXTN 19535 * Encapsulation for a v2 extended command 19536 */ 19537 #define MC_CMD_V2_EXTN 0x7f 19538 #define MC_CMD_V2_EXTN_MSGSET 0x7f 19539 19540 /* MC_CMD_V2_EXTN_IN msgrequest */ 19541 #define MC_CMD_V2_EXTN_IN_LEN 4 19542 /* the extended command number */ 19543 #define MC_CMD_V2_EXTN_IN_EXTENDED_CMD_LBN 0 19544 #define MC_CMD_V2_EXTN_IN_EXTENDED_CMD_WIDTH 15 19545 #define MC_CMD_V2_EXTN_IN_UNUSED_LBN 15 19546 #define MC_CMD_V2_EXTN_IN_UNUSED_WIDTH 1 19547 /* the actual length of the encapsulated command (which is not in the v1 19548 * header) 19549 */ 19550 #define MC_CMD_V2_EXTN_IN_ACTUAL_LEN_LBN 16 19551 #define MC_CMD_V2_EXTN_IN_ACTUAL_LEN_WIDTH 10 19552 #define MC_CMD_V2_EXTN_IN_UNUSED2_LBN 26 19553 #define MC_CMD_V2_EXTN_IN_UNUSED2_WIDTH 2 19554 /* Type of command/response */ 19555 #define MC_CMD_V2_EXTN_IN_MESSAGE_TYPE_LBN 28 19556 #define MC_CMD_V2_EXTN_IN_MESSAGE_TYPE_WIDTH 4 19557 /* enum: MCDI command directed to or response originating from the MC. */ 19558 #define MC_CMD_V2_EXTN_IN_MCDI_MESSAGE_TYPE_MC 0x0 19559 /* enum: MCDI command directed to a TSA controller. MCDI responses of this type 19560 * are not defined. 19561 */ 19562 #define MC_CMD_V2_EXTN_IN_MCDI_MESSAGE_TYPE_TSA 0x1 19563 /* enum: MCDI command used for platform management. Typically, these commands 19564 * are used for low-level operations directed at the platform as a whole (e.g. 19565 * MMIO device enumeration) rather than individual functions and use a 19566 * dedicated comms channel (e.g. RPmsg/IPI). May be handled by the same or 19567 * different CPU as MCDI_MESSAGE_TYPE_MC. 19568 */ 19569 #define MC_CMD_V2_EXTN_IN_MCDI_MESSAGE_TYPE_PLATFORM 0x2 19570 19571 19572 /***********************************/ 19573 /* MC_CMD_TCM_BUCKET_ALLOC 19574 * Allocate a pacer bucket (for qau rp or a snapper test) 19575 */ 19576 #define MC_CMD_TCM_BUCKET_ALLOC 0xb2 19577 #define MC_CMD_TCM_BUCKET_ALLOC_MSGSET 0xb2 19578 #undef MC_CMD_0xb2_PRIVILEGE_CTG 19579 19580 #define MC_CMD_0xb2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19581 19582 /* MC_CMD_TCM_BUCKET_ALLOC_IN msgrequest */ 19583 #define MC_CMD_TCM_BUCKET_ALLOC_IN_LEN 0 19584 19585 /* MC_CMD_TCM_BUCKET_ALLOC_OUT msgresponse */ 19586 #define MC_CMD_TCM_BUCKET_ALLOC_OUT_LEN 4 19587 /* the bucket id */ 19588 #define MC_CMD_TCM_BUCKET_ALLOC_OUT_BUCKET_OFST 0 19589 #define MC_CMD_TCM_BUCKET_ALLOC_OUT_BUCKET_LEN 4 19590 19591 19592 /***********************************/ 19593 /* MC_CMD_TCM_BUCKET_FREE 19594 * Free a pacer bucket 19595 */ 19596 #define MC_CMD_TCM_BUCKET_FREE 0xb3 19597 #define MC_CMD_TCM_BUCKET_FREE_MSGSET 0xb3 19598 #undef MC_CMD_0xb3_PRIVILEGE_CTG 19599 19600 #define MC_CMD_0xb3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19601 19602 /* MC_CMD_TCM_BUCKET_FREE_IN msgrequest */ 19603 #define MC_CMD_TCM_BUCKET_FREE_IN_LEN 4 19604 /* the bucket id */ 19605 #define MC_CMD_TCM_BUCKET_FREE_IN_BUCKET_OFST 0 19606 #define MC_CMD_TCM_BUCKET_FREE_IN_BUCKET_LEN 4 19607 19608 /* MC_CMD_TCM_BUCKET_FREE_OUT msgresponse */ 19609 #define MC_CMD_TCM_BUCKET_FREE_OUT_LEN 0 19610 19611 19612 /***********************************/ 19613 /* MC_CMD_TCM_BUCKET_INIT 19614 * Initialise pacer bucket with a given rate 19615 */ 19616 #define MC_CMD_TCM_BUCKET_INIT 0xb4 19617 #define MC_CMD_TCM_BUCKET_INIT_MSGSET 0xb4 19618 #undef MC_CMD_0xb4_PRIVILEGE_CTG 19619 19620 #define MC_CMD_0xb4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19621 19622 /* MC_CMD_TCM_BUCKET_INIT_IN msgrequest */ 19623 #define MC_CMD_TCM_BUCKET_INIT_IN_LEN 8 19624 /* the bucket id */ 19625 #define MC_CMD_TCM_BUCKET_INIT_IN_BUCKET_OFST 0 19626 #define MC_CMD_TCM_BUCKET_INIT_IN_BUCKET_LEN 4 19627 /* the rate in mbps */ 19628 #define MC_CMD_TCM_BUCKET_INIT_IN_RATE_OFST 4 19629 #define MC_CMD_TCM_BUCKET_INIT_IN_RATE_LEN 4 19630 19631 /* MC_CMD_TCM_BUCKET_INIT_EXT_IN msgrequest */ 19632 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_LEN 12 19633 /* the bucket id */ 19634 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_BUCKET_OFST 0 19635 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_BUCKET_LEN 4 19636 /* the rate in mbps */ 19637 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_RATE_OFST 4 19638 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_RATE_LEN 4 19639 /* the desired maximum fill level */ 19640 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_MAX_FILL_OFST 8 19641 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_MAX_FILL_LEN 4 19642 19643 /* MC_CMD_TCM_BUCKET_INIT_OUT msgresponse */ 19644 #define MC_CMD_TCM_BUCKET_INIT_OUT_LEN 0 19645 19646 19647 /***********************************/ 19648 /* MC_CMD_TCM_TXQ_INIT 19649 * Initialise txq in pacer with given options or set options 19650 */ 19651 #define MC_CMD_TCM_TXQ_INIT 0xb5 19652 #define MC_CMD_TCM_TXQ_INIT_MSGSET 0xb5 19653 #undef MC_CMD_0xb5_PRIVILEGE_CTG 19654 19655 #define MC_CMD_0xb5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19656 19657 /* MC_CMD_TCM_TXQ_INIT_IN msgrequest */ 19658 #define MC_CMD_TCM_TXQ_INIT_IN_LEN 28 19659 /* the txq id */ 19660 #define MC_CMD_TCM_TXQ_INIT_IN_QID_OFST 0 19661 #define MC_CMD_TCM_TXQ_INIT_IN_QID_LEN 4 19662 /* the static priority associated with the txq */ 19663 #define MC_CMD_TCM_TXQ_INIT_IN_LABEL_OFST 4 19664 #define MC_CMD_TCM_TXQ_INIT_IN_LABEL_LEN 4 19665 /* bitmask of the priority queues this txq is inserted into when inserted. */ 19666 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAGS_OFST 8 19667 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAGS_LEN 4 19668 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_GUARANTEED_OFST 8 19669 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_GUARANTEED_LBN 0 19670 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_GUARANTEED_WIDTH 1 19671 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_NORMAL_OFST 8 19672 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_NORMAL_LBN 1 19673 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_NORMAL_WIDTH 1 19674 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_LOW_OFST 8 19675 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_LOW_LBN 2 19676 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_LOW_WIDTH 1 19677 /* the reaction point (RP) bucket */ 19678 #define MC_CMD_TCM_TXQ_INIT_IN_RP_BKT_OFST 12 19679 #define MC_CMD_TCM_TXQ_INIT_IN_RP_BKT_LEN 4 19680 /* an already reserved bucket (typically set to bucket associated with outer 19681 * vswitch) 19682 */ 19683 #define MC_CMD_TCM_TXQ_INIT_IN_MAX_BKT1_OFST 16 19684 #define MC_CMD_TCM_TXQ_INIT_IN_MAX_BKT1_LEN 4 19685 /* an already reserved bucket (typically set to bucket associated with inner 19686 * vswitch) 19687 */ 19688 #define MC_CMD_TCM_TXQ_INIT_IN_MAX_BKT2_OFST 20 19689 #define MC_CMD_TCM_TXQ_INIT_IN_MAX_BKT2_LEN 4 19690 /* the min bucket (typically for ETS/minimum bandwidth) */ 19691 #define MC_CMD_TCM_TXQ_INIT_IN_MIN_BKT_OFST 24 19692 #define MC_CMD_TCM_TXQ_INIT_IN_MIN_BKT_LEN 4 19693 19694 /* MC_CMD_TCM_TXQ_INIT_EXT_IN msgrequest */ 19695 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_LEN 32 19696 /* the txq id */ 19697 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_QID_OFST 0 19698 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_QID_LEN 4 19699 /* the static priority associated with the txq */ 19700 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_LABEL_NORMAL_OFST 4 19701 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_LABEL_NORMAL_LEN 4 19702 /* bitmask of the priority queues this txq is inserted into when inserted. */ 19703 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAGS_OFST 8 19704 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAGS_LEN 4 19705 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_GUARANTEED_OFST 8 19706 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_GUARANTEED_LBN 0 19707 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_GUARANTEED_WIDTH 1 19708 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_NORMAL_OFST 8 19709 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_NORMAL_LBN 1 19710 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_NORMAL_WIDTH 1 19711 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_LOW_OFST 8 19712 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_LOW_LBN 2 19713 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_LOW_WIDTH 1 19714 /* the reaction point (RP) bucket */ 19715 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_RP_BKT_OFST 12 19716 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_RP_BKT_LEN 4 19717 /* an already reserved bucket (typically set to bucket associated with outer 19718 * vswitch) 19719 */ 19720 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MAX_BKT1_OFST 16 19721 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MAX_BKT1_LEN 4 19722 /* an already reserved bucket (typically set to bucket associated with inner 19723 * vswitch) 19724 */ 19725 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MAX_BKT2_OFST 20 19726 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MAX_BKT2_LEN 4 19727 /* the min bucket (typically for ETS/minimum bandwidth) */ 19728 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MIN_BKT_OFST 24 19729 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MIN_BKT_LEN 4 19730 /* the static priority associated with the txq */ 19731 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_LABEL_GUARANTEED_OFST 28 19732 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_LABEL_GUARANTEED_LEN 4 19733 19734 /* MC_CMD_TCM_TXQ_INIT_OUT msgresponse */ 19735 #define MC_CMD_TCM_TXQ_INIT_OUT_LEN 0 19736 19737 19738 /***********************************/ 19739 /* MC_CMD_LINK_PIOBUF 19740 * Link a push I/O buffer to a TxQ 19741 */ 19742 #define MC_CMD_LINK_PIOBUF 0x92 19743 #define MC_CMD_LINK_PIOBUF_MSGSET 0x92 19744 #undef MC_CMD_0x92_PRIVILEGE_CTG 19745 19746 #define MC_CMD_0x92_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 19747 19748 /* MC_CMD_LINK_PIOBUF_IN msgrequest */ 19749 #define MC_CMD_LINK_PIOBUF_IN_LEN 8 19750 /* Handle for allocated push I/O buffer. */ 19751 #define MC_CMD_LINK_PIOBUF_IN_PIOBUF_HANDLE_OFST 0 19752 #define MC_CMD_LINK_PIOBUF_IN_PIOBUF_HANDLE_LEN 4 19753 /* Function Local Instance (VI) number which has a TxQ allocated to it. */ 19754 #define MC_CMD_LINK_PIOBUF_IN_TXQ_INSTANCE_OFST 4 19755 #define MC_CMD_LINK_PIOBUF_IN_TXQ_INSTANCE_LEN 4 19756 19757 /* MC_CMD_LINK_PIOBUF_OUT msgresponse */ 19758 #define MC_CMD_LINK_PIOBUF_OUT_LEN 0 19759 19760 19761 /***********************************/ 19762 /* MC_CMD_UNLINK_PIOBUF 19763 * Unlink a push I/O buffer from a TxQ 19764 */ 19765 #define MC_CMD_UNLINK_PIOBUF 0x93 19766 #define MC_CMD_UNLINK_PIOBUF_MSGSET 0x93 19767 #undef MC_CMD_0x93_PRIVILEGE_CTG 19768 19769 #define MC_CMD_0x93_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 19770 19771 /* MC_CMD_UNLINK_PIOBUF_IN msgrequest */ 19772 #define MC_CMD_UNLINK_PIOBUF_IN_LEN 4 19773 /* Function Local Instance (VI) number. */ 19774 #define MC_CMD_UNLINK_PIOBUF_IN_TXQ_INSTANCE_OFST 0 19775 #define MC_CMD_UNLINK_PIOBUF_IN_TXQ_INSTANCE_LEN 4 19776 19777 /* MC_CMD_UNLINK_PIOBUF_OUT msgresponse */ 19778 #define MC_CMD_UNLINK_PIOBUF_OUT_LEN 0 19779 19780 19781 /***********************************/ 19782 /* MC_CMD_VSWITCH_ALLOC 19783 * allocate and initialise a v-switch. 19784 */ 19785 #define MC_CMD_VSWITCH_ALLOC 0x94 19786 #define MC_CMD_VSWITCH_ALLOC_MSGSET 0x94 19787 #undef MC_CMD_0x94_PRIVILEGE_CTG 19788 19789 #define MC_CMD_0x94_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19790 19791 /* MC_CMD_VSWITCH_ALLOC_IN msgrequest */ 19792 #define MC_CMD_VSWITCH_ALLOC_IN_LEN 16 19793 /* The port to connect to the v-switch's upstream port. */ 19794 #define MC_CMD_VSWITCH_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 19795 #define MC_CMD_VSWITCH_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 19796 /* The type of v-switch to create. */ 19797 #define MC_CMD_VSWITCH_ALLOC_IN_TYPE_OFST 4 19798 #define MC_CMD_VSWITCH_ALLOC_IN_TYPE_LEN 4 19799 /* enum: VLAN */ 19800 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_VLAN 0x1 19801 /* enum: VEB */ 19802 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_VEB 0x2 19803 /* enum: VEPA (obsolete) */ 19804 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_VEPA 0x3 19805 /* enum: MUX */ 19806 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_MUX 0x4 19807 /* enum: Snapper specific; semantics TBD */ 19808 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_TEST 0x5 19809 /* Flags controlling v-port creation */ 19810 #define MC_CMD_VSWITCH_ALLOC_IN_FLAGS_OFST 8 19811 #define MC_CMD_VSWITCH_ALLOC_IN_FLAGS_LEN 4 19812 #define MC_CMD_VSWITCH_ALLOC_IN_FLAG_AUTO_PORT_OFST 8 19813 #define MC_CMD_VSWITCH_ALLOC_IN_FLAG_AUTO_PORT_LBN 0 19814 #define MC_CMD_VSWITCH_ALLOC_IN_FLAG_AUTO_PORT_WIDTH 1 19815 /* The number of VLAN tags to allow for attached v-ports. For VLAN aggregators, 19816 * this must be one or greated, and the attached v-ports must have exactly this 19817 * number of tags. For other v-switch types, this must be zero of greater, and 19818 * is an upper limit on the number of VLAN tags for attached v-ports. An error 19819 * will be returned if existing configuration means we can't support attached 19820 * v-ports with this number of tags. 19821 */ 19822 #define MC_CMD_VSWITCH_ALLOC_IN_NUM_VLAN_TAGS_OFST 12 19823 #define MC_CMD_VSWITCH_ALLOC_IN_NUM_VLAN_TAGS_LEN 4 19824 19825 /* MC_CMD_VSWITCH_ALLOC_OUT msgresponse */ 19826 #define MC_CMD_VSWITCH_ALLOC_OUT_LEN 0 19827 19828 19829 /***********************************/ 19830 /* MC_CMD_VSWITCH_FREE 19831 * de-allocate a v-switch. 19832 */ 19833 #define MC_CMD_VSWITCH_FREE 0x95 19834 #define MC_CMD_VSWITCH_FREE_MSGSET 0x95 19835 #undef MC_CMD_0x95_PRIVILEGE_CTG 19836 19837 #define MC_CMD_0x95_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19838 19839 /* MC_CMD_VSWITCH_FREE_IN msgrequest */ 19840 #define MC_CMD_VSWITCH_FREE_IN_LEN 4 19841 /* The port to which the v-switch is connected. */ 19842 #define MC_CMD_VSWITCH_FREE_IN_UPSTREAM_PORT_ID_OFST 0 19843 #define MC_CMD_VSWITCH_FREE_IN_UPSTREAM_PORT_ID_LEN 4 19844 19845 /* MC_CMD_VSWITCH_FREE_OUT msgresponse */ 19846 #define MC_CMD_VSWITCH_FREE_OUT_LEN 0 19847 19848 19849 /***********************************/ 19850 /* MC_CMD_VSWITCH_QUERY 19851 * read some config of v-switch. For now this command is an empty placeholder. 19852 * It may be used to check if a v-switch is connected to a given EVB port (if 19853 * not, then the command returns ENOENT). 19854 */ 19855 #define MC_CMD_VSWITCH_QUERY 0x63 19856 #define MC_CMD_VSWITCH_QUERY_MSGSET 0x63 19857 #undef MC_CMD_0x63_PRIVILEGE_CTG 19858 19859 #define MC_CMD_0x63_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19860 19861 /* MC_CMD_VSWITCH_QUERY_IN msgrequest */ 19862 #define MC_CMD_VSWITCH_QUERY_IN_LEN 4 19863 /* The port to which the v-switch is connected. */ 19864 #define MC_CMD_VSWITCH_QUERY_IN_UPSTREAM_PORT_ID_OFST 0 19865 #define MC_CMD_VSWITCH_QUERY_IN_UPSTREAM_PORT_ID_LEN 4 19866 19867 /* MC_CMD_VSWITCH_QUERY_OUT msgresponse */ 19868 #define MC_CMD_VSWITCH_QUERY_OUT_LEN 0 19869 19870 19871 /***********************************/ 19872 /* MC_CMD_VPORT_ALLOC 19873 * allocate a v-port. 19874 */ 19875 #define MC_CMD_VPORT_ALLOC 0x96 19876 #define MC_CMD_VPORT_ALLOC_MSGSET 0x96 19877 #undef MC_CMD_0x96_PRIVILEGE_CTG 19878 19879 #define MC_CMD_0x96_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19880 19881 /* MC_CMD_VPORT_ALLOC_IN msgrequest */ 19882 #define MC_CMD_VPORT_ALLOC_IN_LEN 20 19883 /* The port to which the v-switch is connected. */ 19884 #define MC_CMD_VPORT_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 19885 #define MC_CMD_VPORT_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 19886 /* The type of the new v-port. */ 19887 #define MC_CMD_VPORT_ALLOC_IN_TYPE_OFST 4 19888 #define MC_CMD_VPORT_ALLOC_IN_TYPE_LEN 4 19889 /* enum: VLAN (obsolete) */ 19890 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_VLAN 0x1 19891 /* enum: VEB (obsolete) */ 19892 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_VEB 0x2 19893 /* enum: VEPA (obsolete) */ 19894 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_VEPA 0x3 19895 /* enum: A normal v-port receives packets which match a specified MAC and/or 19896 * VLAN. 19897 */ 19898 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_NORMAL 0x4 19899 /* enum: An expansion v-port packets traffic which don't match any other 19900 * v-port. 19901 */ 19902 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_EXPANSION 0x5 19903 /* enum: An test v-port receives packets which match any filters installed by 19904 * its downstream components. 19905 */ 19906 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_TEST 0x6 19907 /* Flags controlling v-port creation */ 19908 #define MC_CMD_VPORT_ALLOC_IN_FLAGS_OFST 8 19909 #define MC_CMD_VPORT_ALLOC_IN_FLAGS_LEN 4 19910 #define MC_CMD_VPORT_ALLOC_IN_FLAG_AUTO_PORT_OFST 8 19911 #define MC_CMD_VPORT_ALLOC_IN_FLAG_AUTO_PORT_LBN 0 19912 #define MC_CMD_VPORT_ALLOC_IN_FLAG_AUTO_PORT_WIDTH 1 19913 #define MC_CMD_VPORT_ALLOC_IN_FLAG_VLAN_RESTRICT_OFST 8 19914 #define MC_CMD_VPORT_ALLOC_IN_FLAG_VLAN_RESTRICT_LBN 1 19915 #define MC_CMD_VPORT_ALLOC_IN_FLAG_VLAN_RESTRICT_WIDTH 1 19916 /* The number of VLAN tags to insert/remove. An error will be returned if 19917 * incompatible with the number of VLAN tags specified for the upstream 19918 * v-switch. 19919 */ 19920 #define MC_CMD_VPORT_ALLOC_IN_NUM_VLAN_TAGS_OFST 12 19921 #define MC_CMD_VPORT_ALLOC_IN_NUM_VLAN_TAGS_LEN 4 19922 /* The actual VLAN tags to insert/remove */ 19923 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAGS_OFST 16 19924 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAGS_LEN 4 19925 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_0_OFST 16 19926 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_0_LBN 0 19927 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_0_WIDTH 16 19928 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_1_OFST 16 19929 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_1_LBN 16 19930 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_1_WIDTH 16 19931 19932 /* MC_CMD_VPORT_ALLOC_OUT msgresponse */ 19933 #define MC_CMD_VPORT_ALLOC_OUT_LEN 4 19934 /* The handle of the new v-port */ 19935 #define MC_CMD_VPORT_ALLOC_OUT_VPORT_ID_OFST 0 19936 #define MC_CMD_VPORT_ALLOC_OUT_VPORT_ID_LEN 4 19937 19938 19939 /***********************************/ 19940 /* MC_CMD_VPORT_FREE 19941 * de-allocate a v-port. 19942 */ 19943 #define MC_CMD_VPORT_FREE 0x97 19944 #define MC_CMD_VPORT_FREE_MSGSET 0x97 19945 #undef MC_CMD_0x97_PRIVILEGE_CTG 19946 19947 #define MC_CMD_0x97_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19948 19949 /* MC_CMD_VPORT_FREE_IN msgrequest */ 19950 #define MC_CMD_VPORT_FREE_IN_LEN 4 19951 /* The handle of the v-port */ 19952 #define MC_CMD_VPORT_FREE_IN_VPORT_ID_OFST 0 19953 #define MC_CMD_VPORT_FREE_IN_VPORT_ID_LEN 4 19954 19955 /* MC_CMD_VPORT_FREE_OUT msgresponse */ 19956 #define MC_CMD_VPORT_FREE_OUT_LEN 0 19957 19958 19959 /***********************************/ 19960 /* MC_CMD_VADAPTOR_ALLOC 19961 * allocate a v-adaptor. 19962 */ 19963 #define MC_CMD_VADAPTOR_ALLOC 0x98 19964 #define MC_CMD_VADAPTOR_ALLOC_MSGSET 0x98 19965 #undef MC_CMD_0x98_PRIVILEGE_CTG 19966 19967 #define MC_CMD_0x98_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19968 19969 /* MC_CMD_VADAPTOR_ALLOC_IN msgrequest */ 19970 #define MC_CMD_VADAPTOR_ALLOC_IN_LEN 30 19971 /* The port to connect to the v-adaptor's port. */ 19972 #define MC_CMD_VADAPTOR_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 19973 #define MC_CMD_VADAPTOR_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 19974 /* Flags controlling v-adaptor creation */ 19975 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAGS_OFST 8 19976 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAGS_LEN 4 19977 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_AUTO_VADAPTOR_OFST 8 19978 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_AUTO_VADAPTOR_LBN 0 19979 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_AUTO_VADAPTOR_WIDTH 1 19980 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 8 19981 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 1 19982 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 19983 /* The number of VLAN tags to strip on receive */ 19984 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLANS_OFST 12 19985 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLANS_LEN 4 19986 /* The number of VLAN tags to transparently insert/remove. */ 19987 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLAN_TAGS_OFST 16 19988 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLAN_TAGS_LEN 4 19989 /* The actual VLAN tags to insert/remove */ 19990 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAGS_OFST 20 19991 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAGS_LEN 4 19992 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_0_OFST 20 19993 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_0_LBN 0 19994 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_0_WIDTH 16 19995 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_1_OFST 20 19996 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_1_LBN 16 19997 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_1_WIDTH 16 19998 /* The MAC address to assign to this v-adaptor */ 19999 #define MC_CMD_VADAPTOR_ALLOC_IN_MACADDR_OFST 24 20000 #define MC_CMD_VADAPTOR_ALLOC_IN_MACADDR_LEN 6 20001 /* enum: Derive the MAC address from the upstream port */ 20002 #define MC_CMD_VADAPTOR_ALLOC_IN_AUTO_MAC 0x0 20003 20004 /* MC_CMD_VADAPTOR_ALLOC_OUT msgresponse */ 20005 #define MC_CMD_VADAPTOR_ALLOC_OUT_LEN 0 20006 20007 20008 /***********************************/ 20009 /* MC_CMD_VADAPTOR_FREE 20010 * de-allocate a v-adaptor. 20011 */ 20012 #define MC_CMD_VADAPTOR_FREE 0x99 20013 #define MC_CMD_VADAPTOR_FREE_MSGSET 0x99 20014 #undef MC_CMD_0x99_PRIVILEGE_CTG 20015 20016 #define MC_CMD_0x99_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20017 20018 /* MC_CMD_VADAPTOR_FREE_IN msgrequest */ 20019 #define MC_CMD_VADAPTOR_FREE_IN_LEN 4 20020 /* The port to which the v-adaptor is connected. */ 20021 #define MC_CMD_VADAPTOR_FREE_IN_UPSTREAM_PORT_ID_OFST 0 20022 #define MC_CMD_VADAPTOR_FREE_IN_UPSTREAM_PORT_ID_LEN 4 20023 20024 /* MC_CMD_VADAPTOR_FREE_OUT msgresponse */ 20025 #define MC_CMD_VADAPTOR_FREE_OUT_LEN 0 20026 20027 20028 /***********************************/ 20029 /* MC_CMD_VADAPTOR_SET_MAC 20030 * assign a new MAC address to a v-adaptor. 20031 */ 20032 #define MC_CMD_VADAPTOR_SET_MAC 0x5d 20033 #define MC_CMD_VADAPTOR_SET_MAC_MSGSET 0x5d 20034 #undef MC_CMD_0x5d_PRIVILEGE_CTG 20035 20036 #define MC_CMD_0x5d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20037 20038 /* MC_CMD_VADAPTOR_SET_MAC_IN msgrequest */ 20039 #define MC_CMD_VADAPTOR_SET_MAC_IN_LEN 10 20040 /* The port to which the v-adaptor is connected. */ 20041 #define MC_CMD_VADAPTOR_SET_MAC_IN_UPSTREAM_PORT_ID_OFST 0 20042 #define MC_CMD_VADAPTOR_SET_MAC_IN_UPSTREAM_PORT_ID_LEN 4 20043 /* The new MAC address to assign to this v-adaptor */ 20044 #define MC_CMD_VADAPTOR_SET_MAC_IN_MACADDR_OFST 4 20045 #define MC_CMD_VADAPTOR_SET_MAC_IN_MACADDR_LEN 6 20046 20047 /* MC_CMD_VADAPTOR_SET_MAC_OUT msgresponse */ 20048 #define MC_CMD_VADAPTOR_SET_MAC_OUT_LEN 0 20049 20050 20051 /***********************************/ 20052 /* MC_CMD_VADAPTOR_GET_MAC 20053 * read the MAC address assigned to a v-adaptor. 20054 */ 20055 #define MC_CMD_VADAPTOR_GET_MAC 0x5e 20056 #define MC_CMD_VADAPTOR_GET_MAC_MSGSET 0x5e 20057 #undef MC_CMD_0x5e_PRIVILEGE_CTG 20058 20059 #define MC_CMD_0x5e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20060 20061 /* MC_CMD_VADAPTOR_GET_MAC_IN msgrequest */ 20062 #define MC_CMD_VADAPTOR_GET_MAC_IN_LEN 4 20063 /* The port to which the v-adaptor is connected. */ 20064 #define MC_CMD_VADAPTOR_GET_MAC_IN_UPSTREAM_PORT_ID_OFST 0 20065 #define MC_CMD_VADAPTOR_GET_MAC_IN_UPSTREAM_PORT_ID_LEN 4 20066 20067 /* MC_CMD_VADAPTOR_GET_MAC_OUT msgresponse */ 20068 #define MC_CMD_VADAPTOR_GET_MAC_OUT_LEN 6 20069 /* The MAC address assigned to this v-adaptor */ 20070 #define MC_CMD_VADAPTOR_GET_MAC_OUT_MACADDR_OFST 0 20071 #define MC_CMD_VADAPTOR_GET_MAC_OUT_MACADDR_LEN 6 20072 20073 20074 /***********************************/ 20075 /* MC_CMD_VADAPTOR_QUERY 20076 * read some config of v-adaptor. 20077 */ 20078 #define MC_CMD_VADAPTOR_QUERY 0x61 20079 #define MC_CMD_VADAPTOR_QUERY_MSGSET 0x61 20080 #undef MC_CMD_0x61_PRIVILEGE_CTG 20081 20082 #define MC_CMD_0x61_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20083 20084 /* MC_CMD_VADAPTOR_QUERY_IN msgrequest */ 20085 #define MC_CMD_VADAPTOR_QUERY_IN_LEN 4 20086 /* The port to which the v-adaptor is connected. */ 20087 #define MC_CMD_VADAPTOR_QUERY_IN_UPSTREAM_PORT_ID_OFST 0 20088 #define MC_CMD_VADAPTOR_QUERY_IN_UPSTREAM_PORT_ID_LEN 4 20089 20090 /* MC_CMD_VADAPTOR_QUERY_OUT msgresponse */ 20091 #define MC_CMD_VADAPTOR_QUERY_OUT_LEN 12 20092 /* The EVB port flags as defined at MC_CMD_VPORT_ALLOC. */ 20093 #define MC_CMD_VADAPTOR_QUERY_OUT_PORT_FLAGS_OFST 0 20094 #define MC_CMD_VADAPTOR_QUERY_OUT_PORT_FLAGS_LEN 4 20095 /* The v-adaptor flags as defined at MC_CMD_VADAPTOR_ALLOC. */ 20096 #define MC_CMD_VADAPTOR_QUERY_OUT_VADAPTOR_FLAGS_OFST 4 20097 #define MC_CMD_VADAPTOR_QUERY_OUT_VADAPTOR_FLAGS_LEN 4 20098 /* The number of VLAN tags that may still be added */ 20099 #define MC_CMD_VADAPTOR_QUERY_OUT_NUM_AVAILABLE_VLAN_TAGS_OFST 8 20100 #define MC_CMD_VADAPTOR_QUERY_OUT_NUM_AVAILABLE_VLAN_TAGS_LEN 4 20101 20102 20103 /***********************************/ 20104 /* MC_CMD_EVB_PORT_ASSIGN 20105 * assign a port to a PCI function. 20106 */ 20107 #define MC_CMD_EVB_PORT_ASSIGN 0x9a 20108 #define MC_CMD_EVB_PORT_ASSIGN_MSGSET 0x9a 20109 #undef MC_CMD_0x9a_PRIVILEGE_CTG 20110 20111 #define MC_CMD_0x9a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20112 20113 /* MC_CMD_EVB_PORT_ASSIGN_IN msgrequest */ 20114 #define MC_CMD_EVB_PORT_ASSIGN_IN_LEN 8 20115 /* The port to assign. */ 20116 #define MC_CMD_EVB_PORT_ASSIGN_IN_PORT_ID_OFST 0 20117 #define MC_CMD_EVB_PORT_ASSIGN_IN_PORT_ID_LEN 4 20118 /* The target function to modify. */ 20119 #define MC_CMD_EVB_PORT_ASSIGN_IN_FUNCTION_OFST 4 20120 #define MC_CMD_EVB_PORT_ASSIGN_IN_FUNCTION_LEN 4 20121 #define MC_CMD_EVB_PORT_ASSIGN_IN_PF_OFST 4 20122 #define MC_CMD_EVB_PORT_ASSIGN_IN_PF_LBN 0 20123 #define MC_CMD_EVB_PORT_ASSIGN_IN_PF_WIDTH 16 20124 #define MC_CMD_EVB_PORT_ASSIGN_IN_VF_OFST 4 20125 #define MC_CMD_EVB_PORT_ASSIGN_IN_VF_LBN 16 20126 #define MC_CMD_EVB_PORT_ASSIGN_IN_VF_WIDTH 16 20127 20128 /* MC_CMD_EVB_PORT_ASSIGN_OUT msgresponse */ 20129 #define MC_CMD_EVB_PORT_ASSIGN_OUT_LEN 0 20130 20131 20132 /***********************************/ 20133 /* MC_CMD_RDWR_A64_REGIONS 20134 * Assign the 64 bit region addresses. 20135 */ 20136 #define MC_CMD_RDWR_A64_REGIONS 0x9b 20137 #define MC_CMD_RDWR_A64_REGIONS_MSGSET 0x9b 20138 #undef MC_CMD_0x9b_PRIVILEGE_CTG 20139 20140 #define MC_CMD_0x9b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 20141 20142 /* MC_CMD_RDWR_A64_REGIONS_IN msgrequest */ 20143 #define MC_CMD_RDWR_A64_REGIONS_IN_LEN 17 20144 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION0_OFST 0 20145 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION0_LEN 4 20146 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION1_OFST 4 20147 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION1_LEN 4 20148 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION2_OFST 8 20149 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION2_LEN 4 20150 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION3_OFST 12 20151 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION3_LEN 4 20152 /* Write enable bits 0-3, set to write, clear to read. */ 20153 #define MC_CMD_RDWR_A64_REGIONS_IN_WRITE_MASK_LBN 128 20154 #define MC_CMD_RDWR_A64_REGIONS_IN_WRITE_MASK_WIDTH 4 20155 #define MC_CMD_RDWR_A64_REGIONS_IN_WRITE_MASK_BYTE_OFST 16 20156 #define MC_CMD_RDWR_A64_REGIONS_IN_WRITE_MASK_BYTE_LEN 1 20157 20158 /* MC_CMD_RDWR_A64_REGIONS_OUT msgresponse: This data always included 20159 * regardless of state of write bits in the request. 20160 */ 20161 #define MC_CMD_RDWR_A64_REGIONS_OUT_LEN 16 20162 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION0_OFST 0 20163 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION0_LEN 4 20164 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION1_OFST 4 20165 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION1_LEN 4 20166 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION2_OFST 8 20167 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION2_LEN 4 20168 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION3_OFST 12 20169 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION3_LEN 4 20170 20171 20172 /***********************************/ 20173 /* MC_CMD_ONLOAD_STACK_ALLOC 20174 * Allocate an Onload stack ID. 20175 */ 20176 #define MC_CMD_ONLOAD_STACK_ALLOC 0x9c 20177 #define MC_CMD_ONLOAD_STACK_ALLOC_MSGSET 0x9c 20178 #undef MC_CMD_0x9c_PRIVILEGE_CTG 20179 20180 #define MC_CMD_0x9c_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 20181 20182 /* MC_CMD_ONLOAD_STACK_ALLOC_IN msgrequest */ 20183 #define MC_CMD_ONLOAD_STACK_ALLOC_IN_LEN 4 20184 /* The handle of the owning upstream port */ 20185 #define MC_CMD_ONLOAD_STACK_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 20186 #define MC_CMD_ONLOAD_STACK_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 20187 20188 /* MC_CMD_ONLOAD_STACK_ALLOC_OUT msgresponse */ 20189 #define MC_CMD_ONLOAD_STACK_ALLOC_OUT_LEN 4 20190 /* The handle of the new Onload stack */ 20191 #define MC_CMD_ONLOAD_STACK_ALLOC_OUT_ONLOAD_STACK_ID_OFST 0 20192 #define MC_CMD_ONLOAD_STACK_ALLOC_OUT_ONLOAD_STACK_ID_LEN 4 20193 20194 20195 /***********************************/ 20196 /* MC_CMD_ONLOAD_STACK_FREE 20197 * Free an Onload stack ID. 20198 */ 20199 #define MC_CMD_ONLOAD_STACK_FREE 0x9d 20200 #define MC_CMD_ONLOAD_STACK_FREE_MSGSET 0x9d 20201 #undef MC_CMD_0x9d_PRIVILEGE_CTG 20202 20203 #define MC_CMD_0x9d_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 20204 20205 /* MC_CMD_ONLOAD_STACK_FREE_IN msgrequest */ 20206 #define MC_CMD_ONLOAD_STACK_FREE_IN_LEN 4 20207 /* The handle of the Onload stack */ 20208 #define MC_CMD_ONLOAD_STACK_FREE_IN_ONLOAD_STACK_ID_OFST 0 20209 #define MC_CMD_ONLOAD_STACK_FREE_IN_ONLOAD_STACK_ID_LEN 4 20210 20211 /* MC_CMD_ONLOAD_STACK_FREE_OUT msgresponse */ 20212 #define MC_CMD_ONLOAD_STACK_FREE_OUT_LEN 0 20213 20214 20215 /***********************************/ 20216 /* MC_CMD_RSS_CONTEXT_ALLOC 20217 * Allocate an RSS context. 20218 */ 20219 #define MC_CMD_RSS_CONTEXT_ALLOC 0x9e 20220 #define MC_CMD_RSS_CONTEXT_ALLOC_MSGSET 0x9e 20221 #undef MC_CMD_0x9e_PRIVILEGE_CTG 20222 20223 #define MC_CMD_0x9e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20224 20225 /* MC_CMD_RSS_CONTEXT_ALLOC_IN msgrequest */ 20226 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_LEN 12 20227 /* The handle of the owning upstream port */ 20228 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 20229 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 20230 /* The type of context to allocate */ 20231 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_OFST 4 20232 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_LEN 4 20233 /* enum: Allocate a context for exclusive use. The key and indirection table 20234 * must be explicitly configured. 20235 */ 20236 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_EXCLUSIVE 0x0 20237 /* enum: Allocate a context for shared use; this will spread across a range of 20238 * queues, but the key and indirection table are pre-configured and may not be 20239 * changed. For this mode, NUM_QUEUES must 2, 4, 8, 16, 32 or 64. 20240 */ 20241 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_SHARED 0x1 20242 /* enum: Allocate a context to spread evenly across an arbitrary number of 20243 * queues. No indirection table space is allocated for this context. (EF100 and 20244 * later) 20245 */ 20246 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_EVEN_SPREADING 0x2 20247 /* Number of queues spanned by this context. For exclusive contexts this must 20248 * be in the range 1 to RSS_MAX_INDIRECTION_QUEUES, where 20249 * RSS_MAX_INDIRECTION_QUEUES is queried from MC_CMD_GET_CAPABILITIES_V9 or if 20250 * V9 is not supported then RSS_MAX_INDIRECTION_QUEUES is 64. Valid entries in 20251 * the indirection table will be in the range 0 to NUM_QUEUES-1. For even- 20252 * spreading contexts this must be in the range 1 to 20253 * RSS_MAX_EVEN_SPREADING_QUEUES as queried from MC_CMD_GET_CAPABILITIES. Note 20254 * that specifying NUM_QUEUES = 1 will not perform any spreading but may still 20255 * be useful as a way of obtaining the Toeplitz hash. 20256 */ 20257 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_NUM_QUEUES_OFST 8 20258 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_NUM_QUEUES_LEN 4 20259 20260 /* MC_CMD_RSS_CONTEXT_ALLOC_V2_IN msgrequest */ 20261 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_LEN 16 20262 /* The handle of the owning upstream port */ 20263 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_UPSTREAM_PORT_ID_OFST 0 20264 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_UPSTREAM_PORT_ID_LEN 4 20265 /* The type of context to allocate */ 20266 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_OFST 4 20267 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_LEN 4 20268 /* enum: Allocate a context for exclusive use. The key and indirection table 20269 * must be explicitly configured. 20270 */ 20271 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_EXCLUSIVE 0x0 20272 /* enum: Allocate a context for shared use; this will spread across a range of 20273 * queues, but the key and indirection table are pre-configured and may not be 20274 * changed. For this mode, NUM_QUEUES must 2, 4, 8, 16, 32 or 64. 20275 */ 20276 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_SHARED 0x1 20277 /* enum: Allocate a context to spread evenly across an arbitrary number of 20278 * queues. No indirection table space is allocated for this context. (EF100 and 20279 * later) 20280 */ 20281 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_EVEN_SPREADING 0x2 20282 /* Number of queues spanned by this context. For exclusive contexts this must 20283 * be in the range 1 to RSS_MAX_INDIRECTION_QUEUES, where 20284 * RSS_MAX_INDIRECTION_QUEUES is queried from MC_CMD_GET_CAPABILITIES_V9 or if 20285 * V9 is not supported then RSS_MAX_INDIRECTION_QUEUES is 64. Valid entries in 20286 * the indirection table will be in the range 0 to NUM_QUEUES-1. For even- 20287 * spreading contexts this must be in the range 1 to 20288 * RSS_MAX_EVEN_SPREADING_QUEUES as queried from MC_CMD_GET_CAPABILITIES. Note 20289 * that specifying NUM_QUEUES = 1 will not perform any spreading but may still 20290 * be useful as a way of obtaining the Toeplitz hash. 20291 */ 20292 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_NUM_QUEUES_OFST 8 20293 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_NUM_QUEUES_LEN 4 20294 /* Size of indirection table to be allocated to this context from the pool. 20295 * Must be a power of 2. The minimum and maximum table size can be queried 20296 * using MC_CMD_GET_CAPABILITIES_V9. If there is not enough space remaining in 20297 * the common pool to allocate the requested table size, due to allocating 20298 * table space to other RSS contexts, then the command will fail with 20299 * MC_CMD_ERR_ENOSPC. 20300 */ 20301 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_INDIRECTION_TABLE_SIZE_OFST 12 20302 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_INDIRECTION_TABLE_SIZE_LEN 4 20303 20304 /* MC_CMD_RSS_CONTEXT_ALLOC_OUT msgresponse */ 20305 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_LEN 4 20306 /* The handle of the new RSS context. This should be considered opaque to the 20307 * host, although a value of 0xFFFFFFFF is guaranteed never to be a valid 20308 * handle. 20309 */ 20310 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_RSS_CONTEXT_ID_OFST 0 20311 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_RSS_CONTEXT_ID_LEN 4 20312 /* enum: guaranteed invalid RSS context handle value */ 20313 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_RSS_CONTEXT_ID_INVALID 0xffffffff 20314 20315 20316 /***********************************/ 20317 /* MC_CMD_RSS_CONTEXT_FREE 20318 * Free an RSS context. 20319 */ 20320 #define MC_CMD_RSS_CONTEXT_FREE 0x9f 20321 #define MC_CMD_RSS_CONTEXT_FREE_MSGSET 0x9f 20322 #undef MC_CMD_0x9f_PRIVILEGE_CTG 20323 20324 #define MC_CMD_0x9f_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20325 20326 /* MC_CMD_RSS_CONTEXT_FREE_IN msgrequest */ 20327 #define MC_CMD_RSS_CONTEXT_FREE_IN_LEN 4 20328 /* The handle of the RSS context */ 20329 #define MC_CMD_RSS_CONTEXT_FREE_IN_RSS_CONTEXT_ID_OFST 0 20330 #define MC_CMD_RSS_CONTEXT_FREE_IN_RSS_CONTEXT_ID_LEN 4 20331 20332 /* MC_CMD_RSS_CONTEXT_FREE_OUT msgresponse */ 20333 #define MC_CMD_RSS_CONTEXT_FREE_OUT_LEN 0 20334 20335 20336 /***********************************/ 20337 /* MC_CMD_RSS_CONTEXT_SET_KEY 20338 * Set the Toeplitz hash key for an RSS context. 20339 */ 20340 #define MC_CMD_RSS_CONTEXT_SET_KEY 0xa0 20341 #define MC_CMD_RSS_CONTEXT_SET_KEY_MSGSET 0xa0 20342 #undef MC_CMD_0xa0_PRIVILEGE_CTG 20343 20344 #define MC_CMD_0xa0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20345 20346 /* MC_CMD_RSS_CONTEXT_SET_KEY_IN msgrequest */ 20347 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_LEN 44 20348 /* The handle of the RSS context */ 20349 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_RSS_CONTEXT_ID_OFST 0 20350 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_RSS_CONTEXT_ID_LEN 4 20351 /* The 40-byte Toeplitz hash key (TBD endianness issues?) */ 20352 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_TOEPLITZ_KEY_OFST 4 20353 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_TOEPLITZ_KEY_LEN 40 20354 20355 /* MC_CMD_RSS_CONTEXT_SET_KEY_OUT msgresponse */ 20356 #define MC_CMD_RSS_CONTEXT_SET_KEY_OUT_LEN 0 20357 20358 20359 /***********************************/ 20360 /* MC_CMD_RSS_CONTEXT_GET_KEY 20361 * Get the Toeplitz hash key for an RSS context. 20362 */ 20363 #define MC_CMD_RSS_CONTEXT_GET_KEY 0xa1 20364 #define MC_CMD_RSS_CONTEXT_GET_KEY_MSGSET 0xa1 20365 #undef MC_CMD_0xa1_PRIVILEGE_CTG 20366 20367 #define MC_CMD_0xa1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20368 20369 /* MC_CMD_RSS_CONTEXT_GET_KEY_IN msgrequest */ 20370 #define MC_CMD_RSS_CONTEXT_GET_KEY_IN_LEN 4 20371 /* The handle of the RSS context */ 20372 #define MC_CMD_RSS_CONTEXT_GET_KEY_IN_RSS_CONTEXT_ID_OFST 0 20373 #define MC_CMD_RSS_CONTEXT_GET_KEY_IN_RSS_CONTEXT_ID_LEN 4 20374 20375 /* MC_CMD_RSS_CONTEXT_GET_KEY_OUT msgresponse */ 20376 #define MC_CMD_RSS_CONTEXT_GET_KEY_OUT_LEN 44 20377 /* The 40-byte Toeplitz hash key (TBD endianness issues?) */ 20378 #define MC_CMD_RSS_CONTEXT_GET_KEY_OUT_TOEPLITZ_KEY_OFST 4 20379 #define MC_CMD_RSS_CONTEXT_GET_KEY_OUT_TOEPLITZ_KEY_LEN 40 20380 20381 20382 /***********************************/ 20383 /* MC_CMD_RSS_CONTEXT_SET_TABLE 20384 * Set the indirection table for an RSS context. This command should only be 20385 * used with indirection tables containing 128 entries, which is the default 20386 * when the RSS context is allocated without specifying a table size. 20387 */ 20388 #define MC_CMD_RSS_CONTEXT_SET_TABLE 0xa2 20389 #define MC_CMD_RSS_CONTEXT_SET_TABLE_MSGSET 0xa2 20390 #undef MC_CMD_0xa2_PRIVILEGE_CTG 20391 20392 #define MC_CMD_0xa2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20393 20394 /* MC_CMD_RSS_CONTEXT_SET_TABLE_IN msgrequest */ 20395 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_LEN 132 20396 /* The handle of the RSS context */ 20397 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_RSS_CONTEXT_ID_OFST 0 20398 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_RSS_CONTEXT_ID_LEN 4 20399 /* The 128-byte indirection table (1 byte per entry) */ 20400 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_INDIRECTION_TABLE_OFST 4 20401 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_INDIRECTION_TABLE_LEN 128 20402 20403 /* MC_CMD_RSS_CONTEXT_SET_TABLE_OUT msgresponse */ 20404 #define MC_CMD_RSS_CONTEXT_SET_TABLE_OUT_LEN 0 20405 20406 20407 /***********************************/ 20408 /* MC_CMD_RSS_CONTEXT_GET_TABLE 20409 * Get the indirection table for an RSS context. This command should only be 20410 * used with indirection tables containing 128 entries, which is the default 20411 * when the RSS context is allocated without specifying a table size. 20412 */ 20413 #define MC_CMD_RSS_CONTEXT_GET_TABLE 0xa3 20414 #define MC_CMD_RSS_CONTEXT_GET_TABLE_MSGSET 0xa3 20415 #undef MC_CMD_0xa3_PRIVILEGE_CTG 20416 20417 #define MC_CMD_0xa3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20418 20419 /* MC_CMD_RSS_CONTEXT_GET_TABLE_IN msgrequest */ 20420 #define MC_CMD_RSS_CONTEXT_GET_TABLE_IN_LEN 4 20421 /* The handle of the RSS context */ 20422 #define MC_CMD_RSS_CONTEXT_GET_TABLE_IN_RSS_CONTEXT_ID_OFST 0 20423 #define MC_CMD_RSS_CONTEXT_GET_TABLE_IN_RSS_CONTEXT_ID_LEN 4 20424 20425 /* MC_CMD_RSS_CONTEXT_GET_TABLE_OUT msgresponse */ 20426 #define MC_CMD_RSS_CONTEXT_GET_TABLE_OUT_LEN 132 20427 /* The 128-byte indirection table (1 byte per entry) */ 20428 #define MC_CMD_RSS_CONTEXT_GET_TABLE_OUT_INDIRECTION_TABLE_OFST 4 20429 #define MC_CMD_RSS_CONTEXT_GET_TABLE_OUT_INDIRECTION_TABLE_LEN 128 20430 20431 20432 /***********************************/ 20433 /* MC_CMD_RSS_CONTEXT_WRITE_TABLE 20434 * Write a portion of a selectable-size indirection table for an RSS context. 20435 * This command must be used instead of MC_CMD_RSS_CONTEXT_SET_TABLE if the 20436 * RSS_SELECTABLE_TABLE_SIZE bit is set in MC_CMD_GET_CAPABILITIES. 20437 */ 20438 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE 0x13e 20439 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_MSGSET 0x13e 20440 #undef MC_CMD_0x13e_PRIVILEGE_CTG 20441 20442 #define MC_CMD_0x13e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20443 20444 /* MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN msgrequest */ 20445 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_LENMIN 8 20446 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_LENMAX 252 20447 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_LENMAX_MCDI2 1020 20448 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_LEN(num) (4+4*(num)) 20449 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_NUM(len) (((len)-4)/4) 20450 /* The handle of the RSS context */ 20451 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_RSS_CONTEXT_ID_OFST 0 20452 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_RSS_CONTEXT_ID_LEN 4 20453 /* An array of index-value pairs to be written to the table. Structure is 20454 * MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY. 20455 */ 20456 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_OFST 4 20457 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_LEN 4 20458 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_MINNUM 1 20459 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_MAXNUM 62 20460 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_MAXNUM_MCDI2 254 20461 20462 /* MC_CMD_RSS_CONTEXT_WRITE_TABLE_OUT msgresponse */ 20463 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_OUT_LEN 0 20464 20465 /* MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY structuredef */ 20466 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_LEN 4 20467 /* The index of the table entry to be written. */ 20468 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_INDEX_OFST 0 20469 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_INDEX_LEN 2 20470 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_INDEX_LBN 0 20471 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_INDEX_WIDTH 16 20472 /* The value to write into the table entry. */ 20473 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_VALUE_OFST 2 20474 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_VALUE_LEN 2 20475 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_VALUE_LBN 16 20476 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_VALUE_WIDTH 16 20477 20478 20479 /***********************************/ 20480 /* MC_CMD_RSS_CONTEXT_READ_TABLE 20481 * Read a portion of a selectable-size indirection table for an RSS context. 20482 * This command must be used instead of MC_CMD_RSS_CONTEXT_GET_TABLE if the 20483 * RSS_SELECTABLE_TABLE_SIZE bit is set in MC_CMD_GET_CAPABILITIES. 20484 */ 20485 #define MC_CMD_RSS_CONTEXT_READ_TABLE 0x13f 20486 #define MC_CMD_RSS_CONTEXT_READ_TABLE_MSGSET 0x13f 20487 #undef MC_CMD_0x13f_PRIVILEGE_CTG 20488 20489 #define MC_CMD_0x13f_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20490 20491 /* MC_CMD_RSS_CONTEXT_READ_TABLE_IN msgrequest */ 20492 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_LENMIN 6 20493 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_LENMAX 252 20494 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_LENMAX_MCDI2 1020 20495 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_LEN(num) (4+2*(num)) 20496 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_NUM(len) (((len)-4)/2) 20497 /* The handle of the RSS context */ 20498 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_RSS_CONTEXT_ID_OFST 0 20499 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_RSS_CONTEXT_ID_LEN 4 20500 /* An array containing the indices of the entries to be read. */ 20501 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_OFST 4 20502 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_LEN 2 20503 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_MINNUM 1 20504 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_MAXNUM 124 20505 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_MAXNUM_MCDI2 508 20506 20507 /* MC_CMD_RSS_CONTEXT_READ_TABLE_OUT msgresponse */ 20508 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_LENMIN 2 20509 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_LENMAX 252 20510 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_LENMAX_MCDI2 1020 20511 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_LEN(num) (0+2*(num)) 20512 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_NUM(len) (((len)-0)/2) 20513 /* A buffer containing the requested entries read from the table. */ 20514 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_OFST 0 20515 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_LEN 2 20516 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_MINNUM 1 20517 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_MAXNUM 126 20518 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_MAXNUM_MCDI2 510 20519 20520 20521 /***********************************/ 20522 /* MC_CMD_RSS_CONTEXT_SET_FLAGS 20523 * Set various control flags for an RSS context. 20524 */ 20525 #define MC_CMD_RSS_CONTEXT_SET_FLAGS 0xe1 20526 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_MSGSET 0xe1 20527 #undef MC_CMD_0xe1_PRIVILEGE_CTG 20528 20529 #define MC_CMD_0xe1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20530 20531 /* MC_CMD_RSS_CONTEXT_SET_FLAGS_IN msgrequest */ 20532 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_LEN 8 20533 /* The handle of the RSS context */ 20534 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RSS_CONTEXT_ID_OFST 0 20535 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RSS_CONTEXT_ID_LEN 4 20536 /* Hash control flags. The _EN bits are always supported, but new modes are 20537 * available when ADDITIONAL_RSS_MODES is reported by MC_CMD_GET_CAPABILITIES: 20538 * in this case, the MODE fields may be set to non-zero values, and will take 20539 * effect regardless of the settings of the _EN flags. See the RSS_MODE 20540 * structure for the meaning of the mode bits. Drivers must check the 20541 * capability before trying to set any _MODE fields, as older firmware will 20542 * reject any attempt to set the FLAGS field to a value > 0xff with EINVAL. In 20543 * the case where all the _MODE flags are zero, the _EN flags take effect, 20544 * providing backward compatibility for existing drivers. (Setting all _MODE 20545 * *and* all _EN flags to zero is valid, to disable RSS spreading for that 20546 * particular packet type.) 20547 */ 20548 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_FLAGS_OFST 4 20549 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_FLAGS_LEN 4 20550 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN_OFST 4 20551 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN_LBN 0 20552 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN_WIDTH 1 20553 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN_OFST 4 20554 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN_LBN 1 20555 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN_WIDTH 1 20556 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV6_EN_OFST 4 20557 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV6_EN_LBN 2 20558 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV6_EN_WIDTH 1 20559 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV6_EN_OFST 4 20560 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV6_EN_LBN 3 20561 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV6_EN_WIDTH 1 20562 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RESERVED_OFST 4 20563 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RESERVED_LBN 4 20564 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RESERVED_WIDTH 4 20565 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV4_RSS_MODE_OFST 4 20566 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV4_RSS_MODE_LBN 8 20567 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV4_RSS_MODE_WIDTH 4 20568 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV4_RSS_MODE_OFST 4 20569 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV4_RSS_MODE_LBN 12 20570 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV4_RSS_MODE_WIDTH 4 20571 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV4_RSS_MODE_OFST 4 20572 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV4_RSS_MODE_LBN 16 20573 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV4_RSS_MODE_WIDTH 4 20574 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV6_RSS_MODE_OFST 4 20575 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV6_RSS_MODE_LBN 20 20576 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV6_RSS_MODE_WIDTH 4 20577 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV6_RSS_MODE_OFST 4 20578 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV6_RSS_MODE_LBN 24 20579 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV6_RSS_MODE_WIDTH 4 20580 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV6_RSS_MODE_OFST 4 20581 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV6_RSS_MODE_LBN 28 20582 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV6_RSS_MODE_WIDTH 4 20583 20584 /* MC_CMD_RSS_CONTEXT_SET_FLAGS_OUT msgresponse */ 20585 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_OUT_LEN 0 20586 20587 20588 /***********************************/ 20589 /* MC_CMD_RSS_CONTEXT_GET_FLAGS 20590 * Get various control flags for an RSS context. 20591 */ 20592 #define MC_CMD_RSS_CONTEXT_GET_FLAGS 0xe2 20593 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_MSGSET 0xe2 20594 #undef MC_CMD_0xe2_PRIVILEGE_CTG 20595 20596 #define MC_CMD_0xe2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20597 20598 /* MC_CMD_RSS_CONTEXT_GET_FLAGS_IN msgrequest */ 20599 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_IN_LEN 4 20600 /* The handle of the RSS context */ 20601 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_IN_RSS_CONTEXT_ID_OFST 0 20602 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_IN_RSS_CONTEXT_ID_LEN 4 20603 20604 /* MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT msgresponse */ 20605 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_LEN 8 20606 /* Hash control flags. If all _MODE bits are zero (which will always be true 20607 * for older firmware which does not report the ADDITIONAL_RSS_MODES 20608 * capability), the _EN bits report the state. If any _MODE bits are non-zero 20609 * (which will only be true when the firmware reports ADDITIONAL_RSS_MODES) 20610 * then the _EN bits should be disregarded, although the _MODE flags are 20611 * guaranteed to be consistent with the _EN flags for a freshly-allocated RSS 20612 * context and in the case where the _EN flags were used in the SET. This 20613 * provides backward compatibility: old drivers will not be attempting to 20614 * derive any meaning from the _MODE bits (and can never set them to any value 20615 * not representable by the _EN bits); new drivers can always determine the 20616 * mode by looking only at the _MODE bits; the value returned by a GET can 20617 * always be used for a SET regardless of old/new driver vs. old/new firmware. 20618 */ 20619 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_FLAGS_OFST 4 20620 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_FLAGS_LEN 4 20621 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV4_EN_OFST 4 20622 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV4_EN_LBN 0 20623 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV4_EN_WIDTH 1 20624 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV4_EN_OFST 4 20625 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV4_EN_LBN 1 20626 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV4_EN_WIDTH 1 20627 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV6_EN_OFST 4 20628 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV6_EN_LBN 2 20629 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV6_EN_WIDTH 1 20630 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV6_EN_OFST 4 20631 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV6_EN_LBN 3 20632 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV6_EN_WIDTH 1 20633 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_RESERVED_OFST 4 20634 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_RESERVED_LBN 4 20635 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_RESERVED_WIDTH 4 20636 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV4_RSS_MODE_OFST 4 20637 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV4_RSS_MODE_LBN 8 20638 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV4_RSS_MODE_WIDTH 4 20639 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV4_RSS_MODE_OFST 4 20640 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV4_RSS_MODE_LBN 12 20641 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV4_RSS_MODE_WIDTH 4 20642 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV4_RSS_MODE_OFST 4 20643 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV4_RSS_MODE_LBN 16 20644 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV4_RSS_MODE_WIDTH 4 20645 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV6_RSS_MODE_OFST 4 20646 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV6_RSS_MODE_LBN 20 20647 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV6_RSS_MODE_WIDTH 4 20648 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV6_RSS_MODE_OFST 4 20649 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV6_RSS_MODE_LBN 24 20650 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV6_RSS_MODE_WIDTH 4 20651 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV6_RSS_MODE_OFST 4 20652 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV6_RSS_MODE_LBN 28 20653 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV6_RSS_MODE_WIDTH 4 20654 20655 20656 /***********************************/ 20657 /* MC_CMD_DOT1P_MAPPING_ALLOC 20658 * Allocate a .1p mapping. 20659 */ 20660 #define MC_CMD_DOT1P_MAPPING_ALLOC 0xa4 20661 #define MC_CMD_DOT1P_MAPPING_ALLOC_MSGSET 0xa4 20662 #undef MC_CMD_0xa4_PRIVILEGE_CTG 20663 20664 #define MC_CMD_0xa4_PRIVILEGE_CTG SRIOV_CTG_ADMIN 20665 20666 /* MC_CMD_DOT1P_MAPPING_ALLOC_IN msgrequest */ 20667 #define MC_CMD_DOT1P_MAPPING_ALLOC_IN_LEN 8 20668 /* The handle of the owning upstream port */ 20669 #define MC_CMD_DOT1P_MAPPING_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 20670 #define MC_CMD_DOT1P_MAPPING_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 20671 /* Number of queues spanned by this mapping, in the range 1-64; valid fixed 20672 * offsets in the mapping table will be in the range 0 to NUM_QUEUES-1, and 20673 * referenced RSS contexts must span no more than this number. 20674 */ 20675 #define MC_CMD_DOT1P_MAPPING_ALLOC_IN_NUM_QUEUES_OFST 4 20676 #define MC_CMD_DOT1P_MAPPING_ALLOC_IN_NUM_QUEUES_LEN 4 20677 20678 /* MC_CMD_DOT1P_MAPPING_ALLOC_OUT msgresponse */ 20679 #define MC_CMD_DOT1P_MAPPING_ALLOC_OUT_LEN 4 20680 /* The handle of the new .1p mapping. This should be considered opaque to the 20681 * host, although a value of 0xFFFFFFFF is guaranteed never to be a valid 20682 * handle. 20683 */ 20684 #define MC_CMD_DOT1P_MAPPING_ALLOC_OUT_DOT1P_MAPPING_ID_OFST 0 20685 #define MC_CMD_DOT1P_MAPPING_ALLOC_OUT_DOT1P_MAPPING_ID_LEN 4 20686 /* enum: guaranteed invalid .1p mapping handle value */ 20687 #define MC_CMD_DOT1P_MAPPING_ALLOC_OUT_DOT1P_MAPPING_ID_INVALID 0xffffffff 20688 20689 20690 /***********************************/ 20691 /* MC_CMD_DOT1P_MAPPING_FREE 20692 * Free a .1p mapping. 20693 */ 20694 #define MC_CMD_DOT1P_MAPPING_FREE 0xa5 20695 #define MC_CMD_DOT1P_MAPPING_FREE_MSGSET 0xa5 20696 #undef MC_CMD_0xa5_PRIVILEGE_CTG 20697 20698 #define MC_CMD_0xa5_PRIVILEGE_CTG SRIOV_CTG_ADMIN 20699 20700 /* MC_CMD_DOT1P_MAPPING_FREE_IN msgrequest */ 20701 #define MC_CMD_DOT1P_MAPPING_FREE_IN_LEN 4 20702 /* The handle of the .1p mapping */ 20703 #define MC_CMD_DOT1P_MAPPING_FREE_IN_DOT1P_MAPPING_ID_OFST 0 20704 #define MC_CMD_DOT1P_MAPPING_FREE_IN_DOT1P_MAPPING_ID_LEN 4 20705 20706 /* MC_CMD_DOT1P_MAPPING_FREE_OUT msgresponse */ 20707 #define MC_CMD_DOT1P_MAPPING_FREE_OUT_LEN 0 20708 20709 20710 /***********************************/ 20711 /* MC_CMD_DOT1P_MAPPING_SET_TABLE 20712 * Set the mapping table for a .1p mapping. 20713 */ 20714 #define MC_CMD_DOT1P_MAPPING_SET_TABLE 0xa6 20715 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_MSGSET 0xa6 20716 #undef MC_CMD_0xa6_PRIVILEGE_CTG 20717 20718 #define MC_CMD_0xa6_PRIVILEGE_CTG SRIOV_CTG_ADMIN 20719 20720 /* MC_CMD_DOT1P_MAPPING_SET_TABLE_IN msgrequest */ 20721 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_IN_LEN 36 20722 /* The handle of the .1p mapping */ 20723 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_IN_DOT1P_MAPPING_ID_OFST 0 20724 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_IN_DOT1P_MAPPING_ID_LEN 4 20725 /* Per-priority mappings (1 32-bit word per entry - an offset or RSS context 20726 * handle) 20727 */ 20728 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_IN_MAPPING_TABLE_OFST 4 20729 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_IN_MAPPING_TABLE_LEN 32 20730 20731 /* MC_CMD_DOT1P_MAPPING_SET_TABLE_OUT msgresponse */ 20732 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_OUT_LEN 0 20733 20734 20735 /***********************************/ 20736 /* MC_CMD_DOT1P_MAPPING_GET_TABLE 20737 * Get the mapping table for a .1p mapping. 20738 */ 20739 #define MC_CMD_DOT1P_MAPPING_GET_TABLE 0xa7 20740 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_MSGSET 0xa7 20741 #undef MC_CMD_0xa7_PRIVILEGE_CTG 20742 20743 #define MC_CMD_0xa7_PRIVILEGE_CTG SRIOV_CTG_ADMIN 20744 20745 /* MC_CMD_DOT1P_MAPPING_GET_TABLE_IN msgrequest */ 20746 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_IN_LEN 4 20747 /* The handle of the .1p mapping */ 20748 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_IN_DOT1P_MAPPING_ID_OFST 0 20749 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_IN_DOT1P_MAPPING_ID_LEN 4 20750 20751 /* MC_CMD_DOT1P_MAPPING_GET_TABLE_OUT msgresponse */ 20752 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_OUT_LEN 36 20753 /* Per-priority mappings (1 32-bit word per entry - an offset or RSS context 20754 * handle) 20755 */ 20756 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_OUT_MAPPING_TABLE_OFST 4 20757 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_OUT_MAPPING_TABLE_LEN 32 20758 20759 20760 /***********************************/ 20761 /* MC_CMD_GET_VECTOR_CFG 20762 * Get Interrupt Vector config for this PF. 20763 */ 20764 #define MC_CMD_GET_VECTOR_CFG 0xbf 20765 #define MC_CMD_GET_VECTOR_CFG_MSGSET 0xbf 20766 #undef MC_CMD_0xbf_PRIVILEGE_CTG 20767 20768 #define MC_CMD_0xbf_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20769 20770 /* MC_CMD_GET_VECTOR_CFG_IN msgrequest */ 20771 #define MC_CMD_GET_VECTOR_CFG_IN_LEN 0 20772 20773 /* MC_CMD_GET_VECTOR_CFG_OUT msgresponse */ 20774 #define MC_CMD_GET_VECTOR_CFG_OUT_LEN 12 20775 /* Base absolute interrupt vector number. */ 20776 #define MC_CMD_GET_VECTOR_CFG_OUT_VEC_BASE_OFST 0 20777 #define MC_CMD_GET_VECTOR_CFG_OUT_VEC_BASE_LEN 4 20778 /* Number of interrupt vectors allocate to this PF. */ 20779 #define MC_CMD_GET_VECTOR_CFG_OUT_VECS_PER_PF_OFST 4 20780 #define MC_CMD_GET_VECTOR_CFG_OUT_VECS_PER_PF_LEN 4 20781 /* Number of interrupt vectors to allocate per VF. */ 20782 #define MC_CMD_GET_VECTOR_CFG_OUT_VECS_PER_VF_OFST 8 20783 #define MC_CMD_GET_VECTOR_CFG_OUT_VECS_PER_VF_LEN 4 20784 20785 20786 /***********************************/ 20787 /* MC_CMD_SET_VECTOR_CFG 20788 * Set Interrupt Vector config for this PF. 20789 */ 20790 #define MC_CMD_SET_VECTOR_CFG 0xc0 20791 #define MC_CMD_SET_VECTOR_CFG_MSGSET 0xc0 20792 #undef MC_CMD_0xc0_PRIVILEGE_CTG 20793 20794 #define MC_CMD_0xc0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20795 20796 /* MC_CMD_SET_VECTOR_CFG_IN msgrequest */ 20797 #define MC_CMD_SET_VECTOR_CFG_IN_LEN 12 20798 /* Base absolute interrupt vector number, or MC_CMD_RESOURCE_INSTANCE_ANY to 20799 * let the system find a suitable base. 20800 */ 20801 #define MC_CMD_SET_VECTOR_CFG_IN_VEC_BASE_OFST 0 20802 #define MC_CMD_SET_VECTOR_CFG_IN_VEC_BASE_LEN 4 20803 /* Number of interrupt vectors allocate to this PF. */ 20804 #define MC_CMD_SET_VECTOR_CFG_IN_VECS_PER_PF_OFST 4 20805 #define MC_CMD_SET_VECTOR_CFG_IN_VECS_PER_PF_LEN 4 20806 /* Number of interrupt vectors to allocate per VF. */ 20807 #define MC_CMD_SET_VECTOR_CFG_IN_VECS_PER_VF_OFST 8 20808 #define MC_CMD_SET_VECTOR_CFG_IN_VECS_PER_VF_LEN 4 20809 20810 /* MC_CMD_SET_VECTOR_CFG_OUT msgresponse */ 20811 #define MC_CMD_SET_VECTOR_CFG_OUT_LEN 0 20812 20813 20814 /***********************************/ 20815 /* MC_CMD_VPORT_ADD_MAC_ADDRESS 20816 * Add a MAC address to a v-port 20817 */ 20818 #define MC_CMD_VPORT_ADD_MAC_ADDRESS 0xa8 20819 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_MSGSET 0xa8 20820 #undef MC_CMD_0xa8_PRIVILEGE_CTG 20821 20822 #define MC_CMD_0xa8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20823 20824 /* MC_CMD_VPORT_ADD_MAC_ADDRESS_IN msgrequest */ 20825 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_LEN 10 20826 /* The handle of the v-port */ 20827 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_VPORT_ID_OFST 0 20828 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_VPORT_ID_LEN 4 20829 /* MAC address to add */ 20830 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_MACADDR_OFST 4 20831 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_MACADDR_LEN 6 20832 20833 /* MC_CMD_VPORT_ADD_MAC_ADDRESS_OUT msgresponse */ 20834 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_OUT_LEN 0 20835 20836 20837 /***********************************/ 20838 /* MC_CMD_VPORT_DEL_MAC_ADDRESS 20839 * Delete a MAC address from a v-port 20840 */ 20841 #define MC_CMD_VPORT_DEL_MAC_ADDRESS 0xa9 20842 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_MSGSET 0xa9 20843 #undef MC_CMD_0xa9_PRIVILEGE_CTG 20844 20845 #define MC_CMD_0xa9_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20846 20847 /* MC_CMD_VPORT_DEL_MAC_ADDRESS_IN msgrequest */ 20848 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_LEN 10 20849 /* The handle of the v-port */ 20850 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_VPORT_ID_OFST 0 20851 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_VPORT_ID_LEN 4 20852 /* MAC address to add */ 20853 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_MACADDR_OFST 4 20854 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_MACADDR_LEN 6 20855 20856 /* MC_CMD_VPORT_DEL_MAC_ADDRESS_OUT msgresponse */ 20857 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_OUT_LEN 0 20858 20859 20860 /***********************************/ 20861 /* MC_CMD_VPORT_GET_MAC_ADDRESSES 20862 * Delete a MAC address from a v-port 20863 */ 20864 #define MC_CMD_VPORT_GET_MAC_ADDRESSES 0xaa 20865 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_MSGSET 0xaa 20866 #undef MC_CMD_0xaa_PRIVILEGE_CTG 20867 20868 #define MC_CMD_0xaa_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20869 20870 /* MC_CMD_VPORT_GET_MAC_ADDRESSES_IN msgrequest */ 20871 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_IN_LEN 4 20872 /* The handle of the v-port */ 20873 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_IN_VPORT_ID_OFST 0 20874 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_IN_VPORT_ID_LEN 4 20875 20876 /* MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT msgresponse */ 20877 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LENMIN 4 20878 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LENMAX 250 20879 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LENMAX_MCDI2 1018 20880 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LEN(num) (4+6*(num)) 20881 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_NUM(len) (((len)-4)/6) 20882 /* The number of MAC addresses returned */ 20883 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_COUNT_OFST 0 20884 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_COUNT_LEN 4 20885 /* Array of MAC addresses */ 20886 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_OFST 4 20887 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_LEN 6 20888 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_MINNUM 0 20889 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_MAXNUM 41 20890 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_MAXNUM_MCDI2 169 20891 20892 20893 /***********************************/ 20894 /* MC_CMD_VPORT_RECONFIGURE 20895 * Replace VLAN tags and/or MAC addresses of an existing v-port. If the v-port 20896 * has already been passed to another function (v-port's user), then that 20897 * function will be reset before applying the changes. 20898 */ 20899 #define MC_CMD_VPORT_RECONFIGURE 0xeb 20900 #define MC_CMD_VPORT_RECONFIGURE_MSGSET 0xeb 20901 #undef MC_CMD_0xeb_PRIVILEGE_CTG 20902 20903 #define MC_CMD_0xeb_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20904 20905 /* MC_CMD_VPORT_RECONFIGURE_IN msgrequest */ 20906 #define MC_CMD_VPORT_RECONFIGURE_IN_LEN 44 20907 /* The handle of the v-port */ 20908 #define MC_CMD_VPORT_RECONFIGURE_IN_VPORT_ID_OFST 0 20909 #define MC_CMD_VPORT_RECONFIGURE_IN_VPORT_ID_LEN 4 20910 /* Flags requesting what should be changed. */ 20911 #define MC_CMD_VPORT_RECONFIGURE_IN_FLAGS_OFST 4 20912 #define MC_CMD_VPORT_RECONFIGURE_IN_FLAGS_LEN 4 20913 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_VLAN_TAGS_OFST 4 20914 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_VLAN_TAGS_LBN 0 20915 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_VLAN_TAGS_WIDTH 1 20916 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_MACADDRS_OFST 4 20917 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_MACADDRS_LBN 1 20918 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_MACADDRS_WIDTH 1 20919 /* The number of VLAN tags to insert/remove. An error will be returned if 20920 * incompatible with the number of VLAN tags specified for the upstream 20921 * v-switch. 20922 */ 20923 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_VLAN_TAGS_OFST 8 20924 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_VLAN_TAGS_LEN 4 20925 /* The actual VLAN tags to insert/remove */ 20926 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAGS_OFST 12 20927 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAGS_LEN 4 20928 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_0_OFST 12 20929 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_0_LBN 0 20930 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_0_WIDTH 16 20931 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_1_OFST 12 20932 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_1_LBN 16 20933 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_1_WIDTH 16 20934 /* The number of MAC addresses to add */ 20935 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_MACADDRS_OFST 16 20936 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_MACADDRS_LEN 4 20937 /* MAC addresses to add */ 20938 #define MC_CMD_VPORT_RECONFIGURE_IN_MACADDRS_OFST 20 20939 #define MC_CMD_VPORT_RECONFIGURE_IN_MACADDRS_LEN 6 20940 #define MC_CMD_VPORT_RECONFIGURE_IN_MACADDRS_NUM 4 20941 20942 /* MC_CMD_VPORT_RECONFIGURE_OUT msgresponse */ 20943 #define MC_CMD_VPORT_RECONFIGURE_OUT_LEN 4 20944 #define MC_CMD_VPORT_RECONFIGURE_OUT_FLAGS_OFST 0 20945 #define MC_CMD_VPORT_RECONFIGURE_OUT_FLAGS_LEN 4 20946 #define MC_CMD_VPORT_RECONFIGURE_OUT_RESET_DONE_OFST 0 20947 #define MC_CMD_VPORT_RECONFIGURE_OUT_RESET_DONE_LBN 0 20948 #define MC_CMD_VPORT_RECONFIGURE_OUT_RESET_DONE_WIDTH 1 20949 20950 20951 /***********************************/ 20952 /* MC_CMD_EVB_PORT_QUERY 20953 * read some config of v-port. 20954 */ 20955 #define MC_CMD_EVB_PORT_QUERY 0x62 20956 #define MC_CMD_EVB_PORT_QUERY_MSGSET 0x62 20957 #undef MC_CMD_0x62_PRIVILEGE_CTG 20958 20959 #define MC_CMD_0x62_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20960 20961 /* MC_CMD_EVB_PORT_QUERY_IN msgrequest */ 20962 #define MC_CMD_EVB_PORT_QUERY_IN_LEN 4 20963 /* The handle of the v-port */ 20964 #define MC_CMD_EVB_PORT_QUERY_IN_PORT_ID_OFST 0 20965 #define MC_CMD_EVB_PORT_QUERY_IN_PORT_ID_LEN 4 20966 20967 /* MC_CMD_EVB_PORT_QUERY_OUT msgresponse */ 20968 #define MC_CMD_EVB_PORT_QUERY_OUT_LEN 8 20969 /* The EVB port flags as defined at MC_CMD_VPORT_ALLOC. */ 20970 #define MC_CMD_EVB_PORT_QUERY_OUT_PORT_FLAGS_OFST 0 20971 #define MC_CMD_EVB_PORT_QUERY_OUT_PORT_FLAGS_LEN 4 20972 /* The number of VLAN tags that may be used on a v-adaptor connected to this 20973 * EVB port. 20974 */ 20975 #define MC_CMD_EVB_PORT_QUERY_OUT_NUM_AVAILABLE_VLAN_TAGS_OFST 4 20976 #define MC_CMD_EVB_PORT_QUERY_OUT_NUM_AVAILABLE_VLAN_TAGS_LEN 4 20977 20978 20979 /***********************************/ 20980 /* MC_CMD_DUMP_BUFTBL_ENTRIES 20981 * Dump buffer table entries, mainly for command client debug use. Dumps 20982 * absolute entries, and does not use chunk handles. All entries must be in 20983 * range, and used for q page mapping, Although the latter restriction may be 20984 * lifted in future. 20985 */ 20986 #define MC_CMD_DUMP_BUFTBL_ENTRIES 0xab 20987 #define MC_CMD_DUMP_BUFTBL_ENTRIES_MSGSET 0xab 20988 #undef MC_CMD_0xab_PRIVILEGE_CTG 20989 20990 #define MC_CMD_0xab_PRIVILEGE_CTG SRIOV_CTG_INSECURE 20991 20992 /* MC_CMD_DUMP_BUFTBL_ENTRIES_IN msgrequest */ 20993 #define MC_CMD_DUMP_BUFTBL_ENTRIES_IN_LEN 8 20994 /* Index of the first buffer table entry. */ 20995 #define MC_CMD_DUMP_BUFTBL_ENTRIES_IN_FIRSTID_OFST 0 20996 #define MC_CMD_DUMP_BUFTBL_ENTRIES_IN_FIRSTID_LEN 4 20997 /* Number of buffer table entries to dump. */ 20998 #define MC_CMD_DUMP_BUFTBL_ENTRIES_IN_NUMENTRIES_OFST 4 20999 #define MC_CMD_DUMP_BUFTBL_ENTRIES_IN_NUMENTRIES_LEN 4 21000 21001 /* MC_CMD_DUMP_BUFTBL_ENTRIES_OUT msgresponse */ 21002 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_LENMIN 12 21003 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_LENMAX 252 21004 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_LENMAX_MCDI2 1020 21005 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_LEN(num) (0+12*(num)) 21006 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_NUM(len) (((len)-0)/12) 21007 /* Raw buffer table entries, layed out as BUFTBL_ENTRY. */ 21008 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_OFST 0 21009 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_LEN 12 21010 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_MINNUM 1 21011 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_MAXNUM 21 21012 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_MAXNUM_MCDI2 85 21013 21014 21015 /***********************************/ 21016 /* MC_CMD_SET_RXDP_CONFIG 21017 * Set global RXDP configuration settings 21018 */ 21019 #define MC_CMD_SET_RXDP_CONFIG 0xc1 21020 #define MC_CMD_SET_RXDP_CONFIG_MSGSET 0xc1 21021 #undef MC_CMD_0xc1_PRIVILEGE_CTG 21022 21023 #define MC_CMD_0xc1_PRIVILEGE_CTG SRIOV_CTG_ADMIN 21024 21025 /* MC_CMD_SET_RXDP_CONFIG_IN msgrequest */ 21026 #define MC_CMD_SET_RXDP_CONFIG_IN_LEN 4 21027 #define MC_CMD_SET_RXDP_CONFIG_IN_DATA_OFST 0 21028 #define MC_CMD_SET_RXDP_CONFIG_IN_DATA_LEN 4 21029 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_DMA_OFST 0 21030 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_DMA_LBN 0 21031 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_DMA_WIDTH 1 21032 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_LEN_OFST 0 21033 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_LEN_LBN 1 21034 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_LEN_WIDTH 2 21035 /* enum: pad to 64 bytes */ 21036 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_64 0x0 21037 /* enum: pad to 128 bytes (Medford only) */ 21038 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_128 0x1 21039 /* enum: pad to 256 bytes (Medford only) */ 21040 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_256 0x2 21041 21042 /* MC_CMD_SET_RXDP_CONFIG_OUT msgresponse */ 21043 #define MC_CMD_SET_RXDP_CONFIG_OUT_LEN 0 21044 21045 21046 /***********************************/ 21047 /* MC_CMD_GET_RXDP_CONFIG 21048 * Get global RXDP configuration settings 21049 */ 21050 #define MC_CMD_GET_RXDP_CONFIG 0xc2 21051 #define MC_CMD_GET_RXDP_CONFIG_MSGSET 0xc2 21052 #undef MC_CMD_0xc2_PRIVILEGE_CTG 21053 21054 #define MC_CMD_0xc2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21055 21056 /* MC_CMD_GET_RXDP_CONFIG_IN msgrequest */ 21057 #define MC_CMD_GET_RXDP_CONFIG_IN_LEN 0 21058 21059 /* MC_CMD_GET_RXDP_CONFIG_OUT msgresponse */ 21060 #define MC_CMD_GET_RXDP_CONFIG_OUT_LEN 4 21061 #define MC_CMD_GET_RXDP_CONFIG_OUT_DATA_OFST 0 21062 #define MC_CMD_GET_RXDP_CONFIG_OUT_DATA_LEN 4 21063 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_DMA_OFST 0 21064 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_DMA_LBN 0 21065 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_DMA_WIDTH 1 21066 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_LEN_OFST 0 21067 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_LEN_LBN 1 21068 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_LEN_WIDTH 2 21069 /* Enum values, see field(s): */ 21070 /* MC_CMD_SET_RXDP_CONFIG/MC_CMD_SET_RXDP_CONFIG_IN/PAD_HOST_LEN */ 21071 21072 21073 /***********************************/ 21074 /* MC_CMD_GET_CLOCK 21075 * Return the system and PDCPU clock frequencies. 21076 */ 21077 #define MC_CMD_GET_CLOCK 0xac 21078 #define MC_CMD_GET_CLOCK_MSGSET 0xac 21079 #undef MC_CMD_0xac_PRIVILEGE_CTG 21080 21081 #define MC_CMD_0xac_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21082 21083 /* MC_CMD_GET_CLOCK_IN msgrequest */ 21084 #define MC_CMD_GET_CLOCK_IN_LEN 0 21085 21086 /* MC_CMD_GET_CLOCK_OUT msgresponse */ 21087 #define MC_CMD_GET_CLOCK_OUT_LEN 8 21088 /* System frequency, MHz */ 21089 #define MC_CMD_GET_CLOCK_OUT_SYS_FREQ_OFST 0 21090 #define MC_CMD_GET_CLOCK_OUT_SYS_FREQ_LEN 4 21091 /* DPCPU frequency, MHz */ 21092 #define MC_CMD_GET_CLOCK_OUT_DPCPU_FREQ_OFST 4 21093 #define MC_CMD_GET_CLOCK_OUT_DPCPU_FREQ_LEN 4 21094 21095 21096 /***********************************/ 21097 /* MC_CMD_SET_CLOCK 21098 * Control the system and DPCPU clock frequencies. Changes are lost reboot. 21099 */ 21100 #define MC_CMD_SET_CLOCK 0xad 21101 #define MC_CMD_SET_CLOCK_MSGSET 0xad 21102 #undef MC_CMD_0xad_PRIVILEGE_CTG 21103 21104 #define MC_CMD_0xad_PRIVILEGE_CTG SRIOV_CTG_INSECURE 21105 21106 /* MC_CMD_SET_CLOCK_IN msgrequest */ 21107 #define MC_CMD_SET_CLOCK_IN_LEN 28 21108 /* Requested frequency in MHz for system clock domain */ 21109 #define MC_CMD_SET_CLOCK_IN_SYS_FREQ_OFST 0 21110 #define MC_CMD_SET_CLOCK_IN_SYS_FREQ_LEN 4 21111 /* enum: Leave the system clock domain frequency unchanged */ 21112 #define MC_CMD_SET_CLOCK_IN_SYS_DOMAIN_DONT_CHANGE 0x0 21113 /* Requested frequency in MHz for inter-core clock domain */ 21114 #define MC_CMD_SET_CLOCK_IN_ICORE_FREQ_OFST 4 21115 #define MC_CMD_SET_CLOCK_IN_ICORE_FREQ_LEN 4 21116 /* enum: Leave the inter-core clock domain frequency unchanged */ 21117 #define MC_CMD_SET_CLOCK_IN_ICORE_DOMAIN_DONT_CHANGE 0x0 21118 /* Requested frequency in MHz for DPCPU clock domain */ 21119 #define MC_CMD_SET_CLOCK_IN_DPCPU_FREQ_OFST 8 21120 #define MC_CMD_SET_CLOCK_IN_DPCPU_FREQ_LEN 4 21121 /* enum: Leave the DPCPU clock domain frequency unchanged */ 21122 #define MC_CMD_SET_CLOCK_IN_DPCPU_DOMAIN_DONT_CHANGE 0x0 21123 /* Requested frequency in MHz for PCS clock domain */ 21124 #define MC_CMD_SET_CLOCK_IN_PCS_FREQ_OFST 12 21125 #define MC_CMD_SET_CLOCK_IN_PCS_FREQ_LEN 4 21126 /* enum: Leave the PCS clock domain frequency unchanged */ 21127 #define MC_CMD_SET_CLOCK_IN_PCS_DOMAIN_DONT_CHANGE 0x0 21128 /* Requested frequency in MHz for MC clock domain */ 21129 #define MC_CMD_SET_CLOCK_IN_MC_FREQ_OFST 16 21130 #define MC_CMD_SET_CLOCK_IN_MC_FREQ_LEN 4 21131 /* enum: Leave the MC clock domain frequency unchanged */ 21132 #define MC_CMD_SET_CLOCK_IN_MC_DOMAIN_DONT_CHANGE 0x0 21133 /* Requested frequency in MHz for rmon clock domain */ 21134 #define MC_CMD_SET_CLOCK_IN_RMON_FREQ_OFST 20 21135 #define MC_CMD_SET_CLOCK_IN_RMON_FREQ_LEN 4 21136 /* enum: Leave the rmon clock domain frequency unchanged */ 21137 #define MC_CMD_SET_CLOCK_IN_RMON_DOMAIN_DONT_CHANGE 0x0 21138 /* Requested frequency in MHz for vswitch clock domain */ 21139 #define MC_CMD_SET_CLOCK_IN_VSWITCH_FREQ_OFST 24 21140 #define MC_CMD_SET_CLOCK_IN_VSWITCH_FREQ_LEN 4 21141 /* enum: Leave the vswitch clock domain frequency unchanged */ 21142 #define MC_CMD_SET_CLOCK_IN_VSWITCH_DOMAIN_DONT_CHANGE 0x0 21143 21144 /* MC_CMD_SET_CLOCK_OUT msgresponse */ 21145 #define MC_CMD_SET_CLOCK_OUT_LEN 28 21146 /* Resulting system frequency in MHz */ 21147 #define MC_CMD_SET_CLOCK_OUT_SYS_FREQ_OFST 0 21148 #define MC_CMD_SET_CLOCK_OUT_SYS_FREQ_LEN 4 21149 /* enum: The system clock domain doesn't exist */ 21150 #define MC_CMD_SET_CLOCK_OUT_SYS_DOMAIN_UNSUPPORTED 0x0 21151 /* Resulting inter-core frequency in MHz */ 21152 #define MC_CMD_SET_CLOCK_OUT_ICORE_FREQ_OFST 4 21153 #define MC_CMD_SET_CLOCK_OUT_ICORE_FREQ_LEN 4 21154 /* enum: The inter-core clock domain doesn't exist / isn't used */ 21155 #define MC_CMD_SET_CLOCK_OUT_ICORE_DOMAIN_UNSUPPORTED 0x0 21156 /* Resulting DPCPU frequency in MHz */ 21157 #define MC_CMD_SET_CLOCK_OUT_DPCPU_FREQ_OFST 8 21158 #define MC_CMD_SET_CLOCK_OUT_DPCPU_FREQ_LEN 4 21159 /* enum: The dpcpu clock domain doesn't exist */ 21160 #define MC_CMD_SET_CLOCK_OUT_DPCPU_DOMAIN_UNSUPPORTED 0x0 21161 /* Resulting PCS frequency in MHz */ 21162 #define MC_CMD_SET_CLOCK_OUT_PCS_FREQ_OFST 12 21163 #define MC_CMD_SET_CLOCK_OUT_PCS_FREQ_LEN 4 21164 /* enum: The PCS clock domain doesn't exist / isn't controlled */ 21165 #define MC_CMD_SET_CLOCK_OUT_PCS_DOMAIN_UNSUPPORTED 0x0 21166 /* Resulting MC frequency in MHz */ 21167 #define MC_CMD_SET_CLOCK_OUT_MC_FREQ_OFST 16 21168 #define MC_CMD_SET_CLOCK_OUT_MC_FREQ_LEN 4 21169 /* enum: The MC clock domain doesn't exist / isn't controlled */ 21170 #define MC_CMD_SET_CLOCK_OUT_MC_DOMAIN_UNSUPPORTED 0x0 21171 /* Resulting rmon frequency in MHz */ 21172 #define MC_CMD_SET_CLOCK_OUT_RMON_FREQ_OFST 20 21173 #define MC_CMD_SET_CLOCK_OUT_RMON_FREQ_LEN 4 21174 /* enum: The rmon clock domain doesn't exist / isn't controlled */ 21175 #define MC_CMD_SET_CLOCK_OUT_RMON_DOMAIN_UNSUPPORTED 0x0 21176 /* Resulting vswitch frequency in MHz */ 21177 #define MC_CMD_SET_CLOCK_OUT_VSWITCH_FREQ_OFST 24 21178 #define MC_CMD_SET_CLOCK_OUT_VSWITCH_FREQ_LEN 4 21179 /* enum: The vswitch clock domain doesn't exist / isn't controlled */ 21180 #define MC_CMD_SET_CLOCK_OUT_VSWITCH_DOMAIN_UNSUPPORTED 0x0 21181 21182 21183 /***********************************/ 21184 /* MC_CMD_DPCPU_RPC 21185 * Send an arbitrary DPCPU message. 21186 */ 21187 #define MC_CMD_DPCPU_RPC 0xae 21188 #define MC_CMD_DPCPU_RPC_MSGSET 0xae 21189 #undef MC_CMD_0xae_PRIVILEGE_CTG 21190 21191 #define MC_CMD_0xae_PRIVILEGE_CTG SRIOV_CTG_INSECURE 21192 21193 /* MC_CMD_DPCPU_RPC_IN msgrequest */ 21194 #define MC_CMD_DPCPU_RPC_IN_LEN 36 21195 #define MC_CMD_DPCPU_RPC_IN_CPU_OFST 0 21196 #define MC_CMD_DPCPU_RPC_IN_CPU_LEN 4 21197 /* enum: RxDPCPU0 */ 21198 #define MC_CMD_DPCPU_RPC_IN_DPCPU_RX0 0x0 21199 /* enum: TxDPCPU0 */ 21200 #define MC_CMD_DPCPU_RPC_IN_DPCPU_TX0 0x1 21201 /* enum: TxDPCPU1 */ 21202 #define MC_CMD_DPCPU_RPC_IN_DPCPU_TX1 0x2 21203 /* enum: RxDPCPU1 (Medford only) */ 21204 #define MC_CMD_DPCPU_RPC_IN_DPCPU_RX1 0x3 21205 /* enum: RxDPCPU (will be for the calling function; for now, just an alias of 21206 * DPCPU_RX0) 21207 */ 21208 #define MC_CMD_DPCPU_RPC_IN_DPCPU_RX 0x80 21209 /* enum: TxDPCPU (will be for the calling function; for now, just an alias of 21210 * DPCPU_TX0) 21211 */ 21212 #define MC_CMD_DPCPU_RPC_IN_DPCPU_TX 0x81 21213 /* First 8 bits [39:32] of DATA are consumed by MC-DPCPU protocol and must be 21214 * initialised to zero 21215 */ 21216 #define MC_CMD_DPCPU_RPC_IN_DATA_OFST 4 21217 #define MC_CMD_DPCPU_RPC_IN_DATA_LEN 32 21218 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_CMDNUM_OFST 4 21219 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_CMDNUM_LBN 8 21220 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_CMDNUM_WIDTH 8 21221 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_TXDPCPU_READ 0x6 /* enum */ 21222 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_TXDPCPU_WRITE 0x7 /* enum */ 21223 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_TXDPCPU_SELF_TEST 0xc /* enum */ 21224 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_TXDPCPU_CSR_ACCESS 0xe /* enum */ 21225 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_RXDPCPU_READ 0x46 /* enum */ 21226 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_RXDPCPU_WRITE 0x47 /* enum */ 21227 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_RXDPCPU_SELF_TEST 0x4a /* enum */ 21228 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_RXDPCPU_CSR_ACCESS 0x4c /* enum */ 21229 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_RXDPCPU_SET_MC_REPLAY_CNTXT 0x4d /* enum */ 21230 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_OBJID_OFST 4 21231 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_OBJID_LBN 16 21232 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_OBJID_WIDTH 16 21233 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_ADDR_OFST 4 21234 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_ADDR_LBN 16 21235 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_ADDR_WIDTH 16 21236 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_COUNT_OFST 4 21237 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_COUNT_LBN 48 21238 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_COUNT_WIDTH 16 21239 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_INFO_OFST 4 21240 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_INFO_LBN 16 21241 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_INFO_WIDTH 240 21242 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_OFST 4 21243 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_LBN 16 21244 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_WIDTH 16 21245 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_STOP_RETURN_RESULT 0x0 /* enum */ 21246 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_START_READ 0x1 /* enum */ 21247 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_START_WRITE 0x2 /* enum */ 21248 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_START_WRITE_READ 0x3 /* enum */ 21249 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_START_PIPELINED_READ 0x4 /* enum */ 21250 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_START_DELAY_OFST 4 21251 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_START_DELAY_LBN 48 21252 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_START_DELAY_WIDTH 16 21253 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_RPT_COUNT_OFST 4 21254 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_RPT_COUNT_LBN 64 21255 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_RPT_COUNT_WIDTH 16 21256 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_GAP_DELAY_OFST 4 21257 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_GAP_DELAY_LBN 80 21258 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_GAP_DELAY_WIDTH 16 21259 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_OFST 4 21260 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_LBN 16 21261 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_WIDTH 16 21262 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_CUT_THROUGH 0x1 /* enum */ 21263 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_STORE_FORWARD 0x2 /* enum */ 21264 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_STORE_FORWARD_FIRST 0x3 /* enum */ 21265 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_CNTXT_OFST 4 21266 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_CNTXT_LBN 64 21267 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_CNTXT_WIDTH 16 21268 #define MC_CMD_DPCPU_RPC_IN_WDATA_OFST 12 21269 #define MC_CMD_DPCPU_RPC_IN_WDATA_LEN 24 21270 /* Register data to write. Only valid in write/write-read. */ 21271 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_DATA_OFST 16 21272 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_DATA_LEN 4 21273 /* Register address. */ 21274 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_ADDRESS_OFST 20 21275 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_ADDRESS_LEN 4 21276 21277 /* MC_CMD_DPCPU_RPC_OUT msgresponse */ 21278 #define MC_CMD_DPCPU_RPC_OUT_LEN 36 21279 #define MC_CMD_DPCPU_RPC_OUT_RC_OFST 0 21280 #define MC_CMD_DPCPU_RPC_OUT_RC_LEN 4 21281 /* DATA */ 21282 #define MC_CMD_DPCPU_RPC_OUT_DATA_OFST 4 21283 #define MC_CMD_DPCPU_RPC_OUT_DATA_LEN 32 21284 #define MC_CMD_DPCPU_RPC_OUT_HDR_CMD_RESP_ERRCODE_OFST 4 21285 #define MC_CMD_DPCPU_RPC_OUT_HDR_CMD_RESP_ERRCODE_LBN 32 21286 #define MC_CMD_DPCPU_RPC_OUT_HDR_CMD_RESP_ERRCODE_WIDTH 16 21287 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_COUNT_OFST 4 21288 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_COUNT_LBN 48 21289 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_COUNT_WIDTH 16 21290 #define MC_CMD_DPCPU_RPC_OUT_RDATA_OFST 12 21291 #define MC_CMD_DPCPU_RPC_OUT_RDATA_LEN 24 21292 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_1_OFST 12 21293 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_1_LEN 4 21294 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_2_OFST 16 21295 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_2_LEN 4 21296 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_3_OFST 20 21297 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_3_LEN 4 21298 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_4_OFST 24 21299 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_4_LEN 4 21300 21301 21302 /***********************************/ 21303 /* MC_CMD_TRIGGER_INTERRUPT 21304 * Trigger an interrupt by prodding the BIU. 21305 */ 21306 #define MC_CMD_TRIGGER_INTERRUPT 0xe3 21307 #define MC_CMD_TRIGGER_INTERRUPT_MSGSET 0xe3 21308 #undef MC_CMD_0xe3_PRIVILEGE_CTG 21309 21310 #define MC_CMD_0xe3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21311 21312 /* MC_CMD_TRIGGER_INTERRUPT_IN msgrequest */ 21313 #define MC_CMD_TRIGGER_INTERRUPT_IN_LEN 4 21314 /* Interrupt level relative to base for function. */ 21315 #define MC_CMD_TRIGGER_INTERRUPT_IN_INTR_LEVEL_OFST 0 21316 #define MC_CMD_TRIGGER_INTERRUPT_IN_INTR_LEVEL_LEN 4 21317 21318 /* MC_CMD_TRIGGER_INTERRUPT_OUT msgresponse */ 21319 #define MC_CMD_TRIGGER_INTERRUPT_OUT_LEN 0 21320 21321 21322 /***********************************/ 21323 /* MC_CMD_SHMBOOT_OP 21324 * Special operations to support (for now) shmboot. 21325 */ 21326 #define MC_CMD_SHMBOOT_OP 0xe6 21327 #define MC_CMD_SHMBOOT_OP_MSGSET 0xe6 21328 #undef MC_CMD_0xe6_PRIVILEGE_CTG 21329 21330 #define MC_CMD_0xe6_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 21331 21332 /* MC_CMD_SHMBOOT_OP_IN msgrequest */ 21333 #define MC_CMD_SHMBOOT_OP_IN_LEN 4 21334 /* Identifies the operation to perform */ 21335 #define MC_CMD_SHMBOOT_OP_IN_SHMBOOT_OP_OFST 0 21336 #define MC_CMD_SHMBOOT_OP_IN_SHMBOOT_OP_LEN 4 21337 /* enum: Copy slave_data section to the slave core. (Greenport only) */ 21338 #define MC_CMD_SHMBOOT_OP_IN_PUSH_SLAVE_DATA 0x0 21339 21340 /* MC_CMD_SHMBOOT_OP_OUT msgresponse */ 21341 #define MC_CMD_SHMBOOT_OP_OUT_LEN 0 21342 21343 21344 /***********************************/ 21345 /* MC_CMD_CAP_BLK_READ 21346 * Read multiple 64bit words from capture block memory 21347 */ 21348 #define MC_CMD_CAP_BLK_READ 0xe7 21349 #define MC_CMD_CAP_BLK_READ_MSGSET 0xe7 21350 #undef MC_CMD_0xe7_PRIVILEGE_CTG 21351 21352 #define MC_CMD_0xe7_PRIVILEGE_CTG SRIOV_CTG_INSECURE 21353 21354 /* MC_CMD_CAP_BLK_READ_IN msgrequest */ 21355 #define MC_CMD_CAP_BLK_READ_IN_LEN 12 21356 #define MC_CMD_CAP_BLK_READ_IN_CAP_REG_OFST 0 21357 #define MC_CMD_CAP_BLK_READ_IN_CAP_REG_LEN 4 21358 #define MC_CMD_CAP_BLK_READ_IN_ADDR_OFST 4 21359 #define MC_CMD_CAP_BLK_READ_IN_ADDR_LEN 4 21360 #define MC_CMD_CAP_BLK_READ_IN_COUNT_OFST 8 21361 #define MC_CMD_CAP_BLK_READ_IN_COUNT_LEN 4 21362 21363 /* MC_CMD_CAP_BLK_READ_OUT msgresponse */ 21364 #define MC_CMD_CAP_BLK_READ_OUT_LENMIN 8 21365 #define MC_CMD_CAP_BLK_READ_OUT_LENMAX 248 21366 #define MC_CMD_CAP_BLK_READ_OUT_LENMAX_MCDI2 1016 21367 #define MC_CMD_CAP_BLK_READ_OUT_LEN(num) (0+8*(num)) 21368 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_NUM(len) (((len)-0)/8) 21369 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_OFST 0 21370 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LEN 8 21371 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LO_OFST 0 21372 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LO_LEN 4 21373 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LO_LBN 0 21374 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LO_WIDTH 32 21375 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_HI_OFST 4 21376 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_HI_LEN 4 21377 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_HI_LBN 32 21378 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_HI_WIDTH 32 21379 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_MINNUM 1 21380 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_MAXNUM 31 21381 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_MAXNUM_MCDI2 127 21382 21383 21384 /***********************************/ 21385 /* MC_CMD_DUMP_DO 21386 * Take a dump of the DUT state 21387 */ 21388 #define MC_CMD_DUMP_DO 0xe8 21389 #define MC_CMD_DUMP_DO_MSGSET 0xe8 21390 #undef MC_CMD_0xe8_PRIVILEGE_CTG 21391 21392 #define MC_CMD_0xe8_PRIVILEGE_CTG SRIOV_CTG_INSECURE 21393 21394 /* MC_CMD_DUMP_DO_IN msgrequest */ 21395 #define MC_CMD_DUMP_DO_IN_LEN 52 21396 #define MC_CMD_DUMP_DO_IN_PADDING_OFST 0 21397 #define MC_CMD_DUMP_DO_IN_PADDING_LEN 4 21398 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_OFST 4 21399 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_LEN 4 21400 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM 0x0 /* enum */ 21401 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_DEFAULT 0x1 /* enum */ 21402 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_TYPE_OFST 8 21403 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_TYPE_LEN 4 21404 #define MC_CMD_DUMP_DO_IN_DUMP_LOCATION_NVRAM 0x1 /* enum */ 21405 #define MC_CMD_DUMP_DO_IN_DUMP_LOCATION_HOST_MEMORY 0x2 /* enum */ 21406 #define MC_CMD_DUMP_DO_IN_DUMP_LOCATION_HOST_MEMORY_MLI 0x3 /* enum */ 21407 #define MC_CMD_DUMP_DO_IN_DUMP_LOCATION_UART 0x4 /* enum */ 21408 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_OFST 12 21409 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4 21410 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_OFST 16 21411 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_LEN 4 21412 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_OFST 12 21413 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4 21414 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_OFST 16 21415 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4 21416 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_OFST 12 21417 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4 21418 #define MC_CMD_DUMP_DO_IN_HOST_MEMORY_MLI_PAGE_SIZE 0x1000 /* enum */ 21419 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_OFST 16 21420 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4 21421 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_OFST 20 21422 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4 21423 #define MC_CMD_DUMP_DO_IN_HOST_MEMORY_MLI_MAX_DEPTH 0x2 /* enum */ 21424 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_OFST 12 21425 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_LEN 4 21426 /* enum: The uart port this command was received over (if using a uart 21427 * transport) 21428 */ 21429 #define MC_CMD_DUMP_DO_IN_UART_PORT_SRC 0xff 21430 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_SIZE_OFST 24 21431 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_SIZE_LEN 4 21432 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_OFST 28 21433 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_LEN 4 21434 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM 0x0 /* enum */ 21435 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_NVRAM_DUMP_PARTITION 0x1 /* enum */ 21436 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_TYPE_OFST 32 21437 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_TYPE_LEN 4 21438 /* Enum values, see field(s): */ 21439 /* MC_CMD_DUMP_DO_IN/DUMPSPEC_SRC_CUSTOM_TYPE */ 21440 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_OFST 36 21441 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4 21442 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_OFST 40 21443 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_LEN 4 21444 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_OFST 36 21445 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4 21446 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_OFST 40 21447 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4 21448 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_OFST 36 21449 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4 21450 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_OFST 40 21451 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4 21452 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_OFST 44 21453 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4 21454 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_UART_PORT_OFST 36 21455 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_UART_PORT_LEN 4 21456 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_SIZE_OFST 48 21457 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_SIZE_LEN 4 21458 21459 /* MC_CMD_DUMP_DO_OUT msgresponse */ 21460 #define MC_CMD_DUMP_DO_OUT_LEN 4 21461 #define MC_CMD_DUMP_DO_OUT_DUMPFILE_SIZE_OFST 0 21462 #define MC_CMD_DUMP_DO_OUT_DUMPFILE_SIZE_LEN 4 21463 21464 21465 /***********************************/ 21466 /* MC_CMD_DUMP_CONFIGURE_UNSOLICITED 21467 * Configure unsolicited dumps 21468 */ 21469 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED 0xe9 21470 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_MSGSET 0xe9 21471 #undef MC_CMD_0xe9_PRIVILEGE_CTG 21472 21473 #define MC_CMD_0xe9_PRIVILEGE_CTG SRIOV_CTG_INSECURE 21474 21475 /* MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN msgrequest */ 21476 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_LEN 52 21477 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_ENABLE_OFST 0 21478 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_ENABLE_LEN 4 21479 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_OFST 4 21480 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_LEN 4 21481 /* Enum values, see field(s): */ 21482 /* MC_CMD_DUMP_DO/MC_CMD_DUMP_DO_IN/DUMPSPEC_SRC */ 21483 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_TYPE_OFST 8 21484 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_TYPE_LEN 4 21485 /* Enum values, see field(s): */ 21486 /* MC_CMD_DUMP_DO/MC_CMD_DUMP_DO_IN/DUMPSPEC_SRC_CUSTOM_TYPE */ 21487 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_OFST 12 21488 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4 21489 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_OFST 16 21490 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_LEN 4 21491 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_OFST 12 21492 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4 21493 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_OFST 16 21494 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4 21495 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_OFST 12 21496 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4 21497 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_OFST 16 21498 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4 21499 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_OFST 20 21500 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4 21501 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_OFST 12 21502 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_LEN 4 21503 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_SIZE_OFST 24 21504 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_SIZE_LEN 4 21505 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_OFST 28 21506 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_LEN 4 21507 /* Enum values, see field(s): */ 21508 /* MC_CMD_DUMP_DO/MC_CMD_DUMP_DO_IN/DUMPFILE_DST */ 21509 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_TYPE_OFST 32 21510 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_TYPE_LEN 4 21511 /* Enum values, see field(s): */ 21512 /* MC_CMD_DUMP_DO/MC_CMD_DUMP_DO_IN/DUMPSPEC_SRC_CUSTOM_TYPE */ 21513 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_OFST 36 21514 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4 21515 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_OFST 40 21516 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_LEN 4 21517 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_OFST 36 21518 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4 21519 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_OFST 40 21520 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4 21521 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_OFST 36 21522 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4 21523 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_OFST 40 21524 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4 21525 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_OFST 44 21526 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4 21527 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_UART_PORT_OFST 36 21528 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_UART_PORT_LEN 4 21529 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_SIZE_OFST 48 21530 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_SIZE_LEN 4 21531 21532 21533 /***********************************/ 21534 /* MC_CMD_SET_PSU 21535 * Adjusts power supply parameters. This is a warranty-voiding operation. 21536 * Returns: ENOENT if the parameter or rail specified does not exist, EINVAL if 21537 * the parameter is out of range. 21538 */ 21539 #define MC_CMD_SET_PSU 0xea 21540 #define MC_CMD_SET_PSU_MSGSET 0xea 21541 #undef MC_CMD_0xea_PRIVILEGE_CTG 21542 21543 #define MC_CMD_0xea_PRIVILEGE_CTG SRIOV_CTG_INSECURE 21544 21545 /* MC_CMD_SET_PSU_IN msgrequest */ 21546 #define MC_CMD_SET_PSU_IN_LEN 12 21547 #define MC_CMD_SET_PSU_IN_PARAM_OFST 0 21548 #define MC_CMD_SET_PSU_IN_PARAM_LEN 4 21549 #define MC_CMD_SET_PSU_IN_PARAM_SUPPLY_VOLTAGE 0x0 /* enum */ 21550 #define MC_CMD_SET_PSU_IN_RAIL_OFST 4 21551 #define MC_CMD_SET_PSU_IN_RAIL_LEN 4 21552 #define MC_CMD_SET_PSU_IN_RAIL_0V9 0x0 /* enum */ 21553 #define MC_CMD_SET_PSU_IN_RAIL_1V2 0x1 /* enum */ 21554 /* desired value, eg voltage in mV */ 21555 #define MC_CMD_SET_PSU_IN_VALUE_OFST 8 21556 #define MC_CMD_SET_PSU_IN_VALUE_LEN 4 21557 21558 /* MC_CMD_SET_PSU_OUT msgresponse */ 21559 #define MC_CMD_SET_PSU_OUT_LEN 0 21560 21561 21562 /***********************************/ 21563 /* MC_CMD_GET_FUNCTION_INFO 21564 * Get function information. PF and VF number. 21565 */ 21566 #define MC_CMD_GET_FUNCTION_INFO 0xec 21567 #define MC_CMD_GET_FUNCTION_INFO_MSGSET 0xec 21568 #undef MC_CMD_0xec_PRIVILEGE_CTG 21569 21570 #define MC_CMD_0xec_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21571 21572 /* MC_CMD_GET_FUNCTION_INFO_IN msgrequest */ 21573 #define MC_CMD_GET_FUNCTION_INFO_IN_LEN 0 21574 21575 /* MC_CMD_GET_FUNCTION_INFO_OUT msgresponse */ 21576 #define MC_CMD_GET_FUNCTION_INFO_OUT_LEN 8 21577 #define MC_CMD_GET_FUNCTION_INFO_OUT_PF_OFST 0 21578 #define MC_CMD_GET_FUNCTION_INFO_OUT_PF_LEN 4 21579 #define MC_CMD_GET_FUNCTION_INFO_OUT_VF_OFST 4 21580 #define MC_CMD_GET_FUNCTION_INFO_OUT_VF_LEN 4 21581 21582 /* MC_CMD_GET_FUNCTION_INFO_OUT_V2 msgresponse */ 21583 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_LEN 12 21584 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_PF_OFST 0 21585 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_PF_LEN 4 21586 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_VF_OFST 4 21587 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_VF_LEN 4 21588 /* Values from PCIE_INTERFACE enumeration. For NICs with a single interface, or 21589 * in the case of a V1 response, this should be HOST_PRIMARY. 21590 */ 21591 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_INTF_OFST 8 21592 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_INTF_LEN 4 21593 21594 21595 /***********************************/ 21596 /* MC_CMD_ENABLE_OFFLINE_BIST 21597 * Enters offline BIST mode. All queues are torn down, chip enters quiescent 21598 * mode, calling function gets exclusive MCDI ownership. The only way out is 21599 * reboot. 21600 */ 21601 #define MC_CMD_ENABLE_OFFLINE_BIST 0xed 21602 #define MC_CMD_ENABLE_OFFLINE_BIST_MSGSET 0xed 21603 #undef MC_CMD_0xed_PRIVILEGE_CTG 21604 21605 #define MC_CMD_0xed_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 21606 21607 /* MC_CMD_ENABLE_OFFLINE_BIST_IN msgrequest */ 21608 #define MC_CMD_ENABLE_OFFLINE_BIST_IN_LEN 0 21609 21610 /* MC_CMD_ENABLE_OFFLINE_BIST_OUT msgresponse */ 21611 #define MC_CMD_ENABLE_OFFLINE_BIST_OUT_LEN 0 21612 21613 21614 /***********************************/ 21615 /* MC_CMD_UART_SEND_DATA 21616 * Send checksummed[sic] block of data over the uart. Response is a placeholder 21617 * should we wish to make this reliable; currently requests are fire-and- 21618 * forget. 21619 */ 21620 #define MC_CMD_UART_SEND_DATA 0xee 21621 #define MC_CMD_UART_SEND_DATA_MSGSET 0xee 21622 #undef MC_CMD_0xee_PRIVILEGE_CTG 21623 21624 #define MC_CMD_0xee_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21625 21626 /* MC_CMD_UART_SEND_DATA_OUT msgrequest */ 21627 #define MC_CMD_UART_SEND_DATA_OUT_LENMIN 16 21628 #define MC_CMD_UART_SEND_DATA_OUT_LENMAX 252 21629 #define MC_CMD_UART_SEND_DATA_OUT_LENMAX_MCDI2 1020 21630 #define MC_CMD_UART_SEND_DATA_OUT_LEN(num) (16+1*(num)) 21631 #define MC_CMD_UART_SEND_DATA_OUT_DATA_NUM(len) (((len)-16)/1) 21632 /* CRC32 over OFFSET, LENGTH, RESERVED, DATA */ 21633 #define MC_CMD_UART_SEND_DATA_OUT_CHECKSUM_OFST 0 21634 #define MC_CMD_UART_SEND_DATA_OUT_CHECKSUM_LEN 4 21635 /* Offset at which to write the data */ 21636 #define MC_CMD_UART_SEND_DATA_OUT_OFFSET_OFST 4 21637 #define MC_CMD_UART_SEND_DATA_OUT_OFFSET_LEN 4 21638 /* Length of data */ 21639 #define MC_CMD_UART_SEND_DATA_OUT_LENGTH_OFST 8 21640 #define MC_CMD_UART_SEND_DATA_OUT_LENGTH_LEN 4 21641 /* Reserved for future use */ 21642 #define MC_CMD_UART_SEND_DATA_OUT_RESERVED_OFST 12 21643 #define MC_CMD_UART_SEND_DATA_OUT_RESERVED_LEN 4 21644 #define MC_CMD_UART_SEND_DATA_OUT_DATA_OFST 16 21645 #define MC_CMD_UART_SEND_DATA_OUT_DATA_LEN 1 21646 #define MC_CMD_UART_SEND_DATA_OUT_DATA_MINNUM 0 21647 #define MC_CMD_UART_SEND_DATA_OUT_DATA_MAXNUM 236 21648 #define MC_CMD_UART_SEND_DATA_OUT_DATA_MAXNUM_MCDI2 1004 21649 21650 /* MC_CMD_UART_SEND_DATA_IN msgresponse */ 21651 #define MC_CMD_UART_SEND_DATA_IN_LEN 0 21652 21653 21654 /***********************************/ 21655 /* MC_CMD_UART_RECV_DATA 21656 * Request checksummed[sic] block of data over the uart. Only a placeholder, 21657 * subject to change and not currently implemented. 21658 */ 21659 #define MC_CMD_UART_RECV_DATA 0xef 21660 #define MC_CMD_UART_RECV_DATA_MSGSET 0xef 21661 #undef MC_CMD_0xef_PRIVILEGE_CTG 21662 21663 #define MC_CMD_0xef_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21664 21665 /* MC_CMD_UART_RECV_DATA_OUT msgrequest */ 21666 #define MC_CMD_UART_RECV_DATA_OUT_LEN 16 21667 /* CRC32 over OFFSET, LENGTH, RESERVED */ 21668 #define MC_CMD_UART_RECV_DATA_OUT_CHECKSUM_OFST 0 21669 #define MC_CMD_UART_RECV_DATA_OUT_CHECKSUM_LEN 4 21670 /* Offset from which to read the data */ 21671 #define MC_CMD_UART_RECV_DATA_OUT_OFFSET_OFST 4 21672 #define MC_CMD_UART_RECV_DATA_OUT_OFFSET_LEN 4 21673 /* Length of data */ 21674 #define MC_CMD_UART_RECV_DATA_OUT_LENGTH_OFST 8 21675 #define MC_CMD_UART_RECV_DATA_OUT_LENGTH_LEN 4 21676 /* Reserved for future use */ 21677 #define MC_CMD_UART_RECV_DATA_OUT_RESERVED_OFST 12 21678 #define MC_CMD_UART_RECV_DATA_OUT_RESERVED_LEN 4 21679 21680 /* MC_CMD_UART_RECV_DATA_IN msgresponse */ 21681 #define MC_CMD_UART_RECV_DATA_IN_LENMIN 16 21682 #define MC_CMD_UART_RECV_DATA_IN_LENMAX 252 21683 #define MC_CMD_UART_RECV_DATA_IN_LENMAX_MCDI2 1020 21684 #define MC_CMD_UART_RECV_DATA_IN_LEN(num) (16+1*(num)) 21685 #define MC_CMD_UART_RECV_DATA_IN_DATA_NUM(len) (((len)-16)/1) 21686 /* CRC32 over RESERVED1, RESERVED2, RESERVED3, DATA */ 21687 #define MC_CMD_UART_RECV_DATA_IN_CHECKSUM_OFST 0 21688 #define MC_CMD_UART_RECV_DATA_IN_CHECKSUM_LEN 4 21689 /* Offset at which to write the data */ 21690 #define MC_CMD_UART_RECV_DATA_IN_RESERVED1_OFST 4 21691 #define MC_CMD_UART_RECV_DATA_IN_RESERVED1_LEN 4 21692 /* Length of data */ 21693 #define MC_CMD_UART_RECV_DATA_IN_RESERVED2_OFST 8 21694 #define MC_CMD_UART_RECV_DATA_IN_RESERVED2_LEN 4 21695 /* Reserved for future use */ 21696 #define MC_CMD_UART_RECV_DATA_IN_RESERVED3_OFST 12 21697 #define MC_CMD_UART_RECV_DATA_IN_RESERVED3_LEN 4 21698 #define MC_CMD_UART_RECV_DATA_IN_DATA_OFST 16 21699 #define MC_CMD_UART_RECV_DATA_IN_DATA_LEN 1 21700 #define MC_CMD_UART_RECV_DATA_IN_DATA_MINNUM 0 21701 #define MC_CMD_UART_RECV_DATA_IN_DATA_MAXNUM 236 21702 #define MC_CMD_UART_RECV_DATA_IN_DATA_MAXNUM_MCDI2 1004 21703 21704 21705 /***********************************/ 21706 /* MC_CMD_READ_FUSES 21707 * Read data programmed into the device One-Time-Programmable (OTP) Fuses 21708 */ 21709 #define MC_CMD_READ_FUSES 0xf0 21710 #define MC_CMD_READ_FUSES_MSGSET 0xf0 21711 #undef MC_CMD_0xf0_PRIVILEGE_CTG 21712 21713 #define MC_CMD_0xf0_PRIVILEGE_CTG SRIOV_CTG_INSECURE 21714 21715 /* MC_CMD_READ_FUSES_IN msgrequest */ 21716 #define MC_CMD_READ_FUSES_IN_LEN 8 21717 /* Offset in OTP to read */ 21718 #define MC_CMD_READ_FUSES_IN_OFFSET_OFST 0 21719 #define MC_CMD_READ_FUSES_IN_OFFSET_LEN 4 21720 /* Length of data to read in bytes */ 21721 #define MC_CMD_READ_FUSES_IN_LENGTH_OFST 4 21722 #define MC_CMD_READ_FUSES_IN_LENGTH_LEN 4 21723 21724 /* MC_CMD_READ_FUSES_OUT msgresponse */ 21725 #define MC_CMD_READ_FUSES_OUT_LENMIN 4 21726 #define MC_CMD_READ_FUSES_OUT_LENMAX 252 21727 #define MC_CMD_READ_FUSES_OUT_LENMAX_MCDI2 1020 21728 #define MC_CMD_READ_FUSES_OUT_LEN(num) (4+1*(num)) 21729 #define MC_CMD_READ_FUSES_OUT_DATA_NUM(len) (((len)-4)/1) 21730 /* Length of returned OTP data in bytes */ 21731 #define MC_CMD_READ_FUSES_OUT_LENGTH_OFST 0 21732 #define MC_CMD_READ_FUSES_OUT_LENGTH_LEN 4 21733 /* Returned data */ 21734 #define MC_CMD_READ_FUSES_OUT_DATA_OFST 4 21735 #define MC_CMD_READ_FUSES_OUT_DATA_LEN 1 21736 #define MC_CMD_READ_FUSES_OUT_DATA_MINNUM 0 21737 #define MC_CMD_READ_FUSES_OUT_DATA_MAXNUM 248 21738 #define MC_CMD_READ_FUSES_OUT_DATA_MAXNUM_MCDI2 1016 21739 21740 21741 /***********************************/ 21742 /* MC_CMD_KR_TUNE 21743 * Get or set KR Serdes RXEQ and TX Driver settings 21744 */ 21745 #define MC_CMD_KR_TUNE 0xf1 21746 #define MC_CMD_KR_TUNE_MSGSET 0xf1 21747 #undef MC_CMD_0xf1_PRIVILEGE_CTG 21748 21749 #define MC_CMD_0xf1_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 21750 21751 /* MC_CMD_KR_TUNE_IN msgrequest */ 21752 #define MC_CMD_KR_TUNE_IN_LENMIN 4 21753 #define MC_CMD_KR_TUNE_IN_LENMAX 252 21754 #define MC_CMD_KR_TUNE_IN_LENMAX_MCDI2 1020 21755 #define MC_CMD_KR_TUNE_IN_LEN(num) (4+4*(num)) 21756 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_NUM(len) (((len)-4)/4) 21757 /* Requested operation */ 21758 #define MC_CMD_KR_TUNE_IN_KR_TUNE_OP_OFST 0 21759 #define MC_CMD_KR_TUNE_IN_KR_TUNE_OP_LEN 1 21760 /* enum: Get current RXEQ settings */ 21761 #define MC_CMD_KR_TUNE_IN_RXEQ_GET 0x0 21762 /* enum: Override RXEQ settings */ 21763 #define MC_CMD_KR_TUNE_IN_RXEQ_SET 0x1 21764 /* enum: Get current TX Driver settings */ 21765 #define MC_CMD_KR_TUNE_IN_TXEQ_GET 0x2 21766 /* enum: Override TX Driver settings */ 21767 #define MC_CMD_KR_TUNE_IN_TXEQ_SET 0x3 21768 /* enum: Force KR Serdes reset / recalibration */ 21769 #define MC_CMD_KR_TUNE_IN_RECAL 0x4 21770 /* enum: Start KR Serdes Eye diagram plot on a given lane. Lane must have valid 21771 * signal. 21772 */ 21773 #define MC_CMD_KR_TUNE_IN_START_EYE_PLOT 0x5 21774 /* enum: Poll KR Serdes Eye diagram plot. Returns one row of BER data. The 21775 * caller should call this command repeatedly after starting eye plot, until no 21776 * more data is returned. 21777 */ 21778 #define MC_CMD_KR_TUNE_IN_POLL_EYE_PLOT 0x6 21779 /* enum: Read Figure Of Merit (eye quality, higher is better). */ 21780 #define MC_CMD_KR_TUNE_IN_READ_FOM 0x7 21781 /* enum: Start/stop link training frames */ 21782 #define MC_CMD_KR_TUNE_IN_LINK_TRAIN_RUN 0x8 21783 /* enum: Issue KR link training command (control training coefficients) */ 21784 #define MC_CMD_KR_TUNE_IN_LINK_TRAIN_CMD 0x9 21785 /* Align the arguments to 32 bits */ 21786 #define MC_CMD_KR_TUNE_IN_KR_TUNE_RSVD_OFST 1 21787 #define MC_CMD_KR_TUNE_IN_KR_TUNE_RSVD_LEN 3 21788 /* Arguments specific to the operation */ 21789 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_OFST 4 21790 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_LEN 4 21791 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_MINNUM 0 21792 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_MAXNUM 62 21793 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_MAXNUM_MCDI2 254 21794 21795 /* MC_CMD_KR_TUNE_OUT msgresponse */ 21796 #define MC_CMD_KR_TUNE_OUT_LEN 0 21797 21798 /* MC_CMD_KR_TUNE_RXEQ_GET_IN msgrequest */ 21799 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_LEN 4 21800 /* Requested operation */ 21801 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_OP_OFST 0 21802 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_OP_LEN 1 21803 /* Align the arguments to 32 bits */ 21804 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_RSVD_OFST 1 21805 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_RSVD_LEN 3 21806 21807 /* MC_CMD_KR_TUNE_RXEQ_GET_OUT msgresponse */ 21808 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LENMIN 4 21809 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LENMAX 252 21810 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LENMAX_MCDI2 1020 21811 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LEN(num) (0+4*(num)) 21812 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4) 21813 /* RXEQ Parameter */ 21814 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_OFST 0 21815 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LEN 4 21816 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_MINNUM 1 21817 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_MAXNUM 63 21818 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_MAXNUM_MCDI2 255 21819 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_ID_OFST 0 21820 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_ID_LBN 0 21821 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_ID_WIDTH 8 21822 /* enum: Attenuation (0-15, Huntington) */ 21823 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_ATT 0x0 21824 /* enum: CTLE Boost (0-15, Huntington) */ 21825 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_BOOST 0x1 21826 /* enum: Edge DFE Tap1 (Huntington - 0 - max negative, 64 - zero, 127 - max 21827 * positive, Medford - 0-31) 21828 */ 21829 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP1 0x2 21830 /* enum: Edge DFE Tap2 (Huntington - 0 - max negative, 32 - zero, 63 - max 21831 * positive, Medford - 0-31) 21832 */ 21833 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP2 0x3 21834 /* enum: Edge DFE Tap3 (Huntington - 0 - max negative, 32 - zero, 63 - max 21835 * positive, Medford - 0-16) 21836 */ 21837 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP3 0x4 21838 /* enum: Edge DFE Tap4 (Huntington - 0 - max negative, 32 - zero, 63 - max 21839 * positive, Medford - 0-16) 21840 */ 21841 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP4 0x5 21842 /* enum: Edge DFE Tap5 (Huntington - 0 - max negative, 32 - zero, 63 - max 21843 * positive, Medford - 0-16) 21844 */ 21845 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP5 0x6 21846 /* enum: Edge DFE DLEV (0-128 for Medford) */ 21847 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_DLEV 0x7 21848 /* enum: Variable Gain Amplifier (0-15, Medford) */ 21849 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_VGA 0x8 21850 /* enum: CTLE EQ Capacitor (0-15, Medford) */ 21851 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_EQC 0x9 21852 /* enum: CTLE EQ Resistor (0-7, Medford) */ 21853 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_EQRES 0xa 21854 /* enum: CTLE gain (0-31, Medford2) */ 21855 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_GAIN 0xb 21856 /* enum: CTLE pole (0-31, Medford2) */ 21857 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_POLE 0xc 21858 /* enum: CTLE peaking (0-31, Medford2) */ 21859 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_PEAK 0xd 21860 /* enum: DFE Tap1 - even path (Medford2 - 6 bit signed (-29 - +29)) */ 21861 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP1_EVEN 0xe 21862 /* enum: DFE Tap1 - odd path (Medford2 - 6 bit signed (-29 - +29)) */ 21863 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP1_ODD 0xf 21864 /* enum: DFE Tap2 (Medford2 - 6 bit signed (-20 - +20)) */ 21865 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP2 0x10 21866 /* enum: DFE Tap3 (Medford2 - 6 bit signed (-20 - +20)) */ 21867 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP3 0x11 21868 /* enum: DFE Tap4 (Medford2 - 6 bit signed (-20 - +20)) */ 21869 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP4 0x12 21870 /* enum: DFE Tap5 (Medford2 - 6 bit signed (-24 - +24)) */ 21871 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP5 0x13 21872 /* enum: DFE Tap6 (Medford2 - 6 bit signed (-24 - +24)) */ 21873 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP6 0x14 21874 /* enum: DFE Tap7 (Medford2 - 6 bit signed (-24 - +24)) */ 21875 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP7 0x15 21876 /* enum: DFE Tap8 (Medford2 - 6 bit signed (-24 - +24)) */ 21877 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP8 0x16 21878 /* enum: DFE Tap9 (Medford2 - 6 bit signed (-24 - +24)) */ 21879 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP9 0x17 21880 /* enum: DFE Tap10 (Medford2 - 6 bit signed (-24 - +24)) */ 21881 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP10 0x18 21882 /* enum: DFE Tap11 (Medford2 - 6 bit signed (-24 - +24)) */ 21883 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP11 0x19 21884 /* enum: DFE Tap12 (Medford2 - 6 bit signed (-24 - +24)) */ 21885 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP12 0x1a 21886 /* enum: I/Q clk offset (Medford2 - 4 bit signed (-5 - +5))) */ 21887 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_IQ_OFF 0x1b 21888 /* enum: Negative h1 polarity data sampler offset calibration code, even path 21889 * (Medford2 - 6 bit signed (-29 - +29))) 21890 */ 21891 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_H1N_OFF_EVEN 0x1c 21892 /* enum: Negative h1 polarity data sampler offset calibration code, odd path 21893 * (Medford2 - 6 bit signed (-29 - +29))) 21894 */ 21895 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_H1N_OFF_ODD 0x1d 21896 /* enum: Positive h1 polarity data sampler offset calibration code, even path 21897 * (Medford2 - 6 bit signed (-29 - +29))) 21898 */ 21899 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_H1P_OFF_EVEN 0x1e 21900 /* enum: Positive h1 polarity data sampler offset calibration code, odd path 21901 * (Medford2 - 6 bit signed (-29 - +29))) 21902 */ 21903 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_H1P_OFF_ODD 0x1f 21904 /* enum: CDR calibration loop code (Medford2) */ 21905 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CDR_PVT 0x20 21906 /* enum: CDR integral loop code (Medford2) */ 21907 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CDR_INTEG 0x21 21908 /* enum: CTLE Boost stages - retimer lineside (Medford2 with DS250x retimer - 4 21909 * stages, 2 bits per stage) 21910 */ 21911 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_BOOST_RT_LS 0x22 21912 /* enum: DFE Tap1 - retimer lineside (Medford2 with DS250x retimer (-31 - 31)) 21913 */ 21914 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP1_RT_LS 0x23 21915 /* enum: DFE Tap2 - retimer lineside (Medford2 with DS250x retimer (-15 - 15)) 21916 */ 21917 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP2_RT_LS 0x24 21918 /* enum: DFE Tap3 - retimer lineside (Medford2 with DS250x retimer (-15 - 15)) 21919 */ 21920 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP3_RT_LS 0x25 21921 /* enum: DFE Tap4 - retimer lineside (Medford2 with DS250x retimer (-15 - 15)) 21922 */ 21923 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP4_RT_LS 0x26 21924 /* enum: DFE Tap5 - retimer lineside (Medford2 with DS250x retimer (-15 - 15)) 21925 */ 21926 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP5_RT_LS 0x27 21927 /* enum: CTLE Boost stages - retimer hostside (Medford2 with DS250x retimer - 4 21928 * stages, 2 bits per stage) 21929 */ 21930 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_BOOST_RT_HS 0x28 21931 /* enum: DFE Tap1 - retimer hostside (Medford2 with DS250x retimer (-31 - 31)) 21932 */ 21933 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP1_RT_HS 0x29 21934 /* enum: DFE Tap2 - retimer hostside (Medford2 with DS250x retimer (-15 - 15)) 21935 */ 21936 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP2_RT_HS 0x2a 21937 /* enum: DFE Tap3 - retimer hostside (Medford2 with DS250x retimer (-15 - 15)) 21938 */ 21939 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP3_RT_HS 0x2b 21940 /* enum: DFE Tap4 - retimer hostside (Medford2 with DS250x retimer (-15 - 15)) 21941 */ 21942 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP4_RT_HS 0x2c 21943 /* enum: DFE Tap5 - retimer hostside (Medford2 with DS250x retimer (-15 - 15)) 21944 */ 21945 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP5_RT_HS 0x2d 21946 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LANE_OFST 0 21947 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LANE_LBN 8 21948 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LANE_WIDTH 3 21949 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_0 0x0 /* enum */ 21950 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_1 0x1 /* enum */ 21951 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_2 0x2 /* enum */ 21952 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_3 0x3 /* enum */ 21953 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_ALL 0x4 /* enum */ 21954 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_OFST 0 21955 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_LBN 11 21956 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_WIDTH 1 21957 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_RESERVED_OFST 0 21958 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_RESERVED_LBN 12 21959 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_RESERVED_WIDTH 4 21960 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_INITIAL_OFST 0 21961 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_INITIAL_LBN 16 21962 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_INITIAL_WIDTH 8 21963 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_OFST 0 21964 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_LBN 24 21965 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_WIDTH 8 21966 21967 /* MC_CMD_KR_TUNE_RXEQ_SET_IN msgrequest */ 21968 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LENMIN 8 21969 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LENMAX 252 21970 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LENMAX_MCDI2 1020 21971 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LEN(num) (4+4*(num)) 21972 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_NUM(len) (((len)-4)/4) 21973 /* Requested operation */ 21974 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_OP_OFST 0 21975 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_OP_LEN 1 21976 /* Align the arguments to 32 bits */ 21977 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_RSVD_OFST 1 21978 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_RSVD_LEN 3 21979 /* RXEQ Parameter */ 21980 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_OFST 4 21981 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LEN 4 21982 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_MINNUM 1 21983 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_MAXNUM 62 21984 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_MAXNUM_MCDI2 254 21985 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_ID_OFST 4 21986 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_ID_LBN 0 21987 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_ID_WIDTH 8 21988 /* Enum values, see field(s): */ 21989 /* MC_CMD_KR_TUNE_RXEQ_GET_OUT/PARAM_ID */ 21990 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LANE_OFST 4 21991 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LANE_LBN 8 21992 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LANE_WIDTH 3 21993 /* Enum values, see field(s): */ 21994 /* MC_CMD_KR_TUNE_RXEQ_GET_OUT/PARAM_LANE */ 21995 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_OFST 4 21996 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_LBN 11 21997 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_WIDTH 1 21998 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED_OFST 4 21999 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED_LBN 12 22000 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED_WIDTH 4 22001 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_INITIAL_OFST 4 22002 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_INITIAL_LBN 16 22003 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_INITIAL_WIDTH 8 22004 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED2_OFST 4 22005 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED2_LBN 24 22006 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED2_WIDTH 8 22007 22008 /* MC_CMD_KR_TUNE_RXEQ_SET_OUT msgresponse */ 22009 #define MC_CMD_KR_TUNE_RXEQ_SET_OUT_LEN 0 22010 22011 /* MC_CMD_KR_TUNE_TXEQ_GET_IN msgrequest */ 22012 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_LEN 4 22013 /* Requested operation */ 22014 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_OP_OFST 0 22015 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_OP_LEN 1 22016 /* Align the arguments to 32 bits */ 22017 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_RSVD_OFST 1 22018 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_RSVD_LEN 3 22019 22020 /* MC_CMD_KR_TUNE_TXEQ_GET_OUT msgresponse */ 22021 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LENMIN 4 22022 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LENMAX 252 22023 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LENMAX_MCDI2 1020 22024 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LEN(num) (0+4*(num)) 22025 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4) 22026 /* TXEQ Parameter */ 22027 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_OFST 0 22028 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LEN 4 22029 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_MINNUM 1 22030 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_MAXNUM 63 22031 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_MAXNUM_MCDI2 255 22032 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_ID_OFST 0 22033 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_ID_LBN 0 22034 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_ID_WIDTH 8 22035 /* enum: TX Amplitude (Huntington, Medford, Medford2) */ 22036 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_LEV 0x0 22037 /* enum: De-Emphasis Tap1 Magnitude (0-7) (Huntington) */ 22038 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_MODE 0x1 22039 /* enum: De-Emphasis Tap1 Fine */ 22040 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_DTLEV 0x2 22041 /* enum: De-Emphasis Tap2 Magnitude (0-6) (Huntington) */ 22042 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_D2 0x3 22043 /* enum: De-Emphasis Tap2 Fine (Huntington) */ 22044 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_D2TLEV 0x4 22045 /* enum: Pre-Emphasis Magnitude (Huntington) */ 22046 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_E 0x5 22047 /* enum: Pre-Emphasis Fine (Huntington) */ 22048 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_ETLEV 0x6 22049 /* enum: TX Slew Rate Coarse control (Huntington) */ 22050 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_PREDRV_DLY 0x7 22051 /* enum: TX Slew Rate Fine control (Huntington) */ 22052 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_SR_SET 0x8 22053 /* enum: TX Termination Impedance control (Huntington) */ 22054 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_RT_SET 0x9 22055 /* enum: TX Amplitude Fine control (Medford) */ 22056 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_LEV_FINE 0xa 22057 /* enum: Pre-cursor Tap (Medford, Medford2) */ 22058 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_ADV 0xb 22059 /* enum: Post-cursor Tap (Medford, Medford2) */ 22060 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_DLY 0xc 22061 /* enum: TX Amplitude (Retimer Lineside) */ 22062 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_LEV_RT_LS 0xd 22063 /* enum: Pre-cursor Tap (Retimer Lineside) */ 22064 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_ADV_RT_LS 0xe 22065 /* enum: Post-cursor Tap (Retimer Lineside) */ 22066 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_DLY_RT_LS 0xf 22067 /* enum: TX Amplitude (Retimer Hostside) */ 22068 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_LEV_RT_HS 0x10 22069 /* enum: Pre-cursor Tap (Retimer Hostside) */ 22070 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_ADV_RT_HS 0x11 22071 /* enum: Post-cursor Tap (Retimer Hostside) */ 22072 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_DLY_RT_HS 0x12 22073 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LANE_OFST 0 22074 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LANE_LBN 8 22075 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LANE_WIDTH 3 22076 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_0 0x0 /* enum */ 22077 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_1 0x1 /* enum */ 22078 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_2 0x2 /* enum */ 22079 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_3 0x3 /* enum */ 22080 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_ALL 0x4 /* enum */ 22081 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED_OFST 0 22082 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED_LBN 11 22083 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED_WIDTH 5 22084 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_INITIAL_OFST 0 22085 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_INITIAL_LBN 16 22086 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_INITIAL_WIDTH 8 22087 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED2_OFST 0 22088 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED2_LBN 24 22089 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED2_WIDTH 8 22090 22091 /* MC_CMD_KR_TUNE_TXEQ_SET_IN msgrequest */ 22092 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LENMIN 8 22093 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LENMAX 252 22094 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LENMAX_MCDI2 1020 22095 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LEN(num) (4+4*(num)) 22096 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_NUM(len) (((len)-4)/4) 22097 /* Requested operation */ 22098 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_OP_OFST 0 22099 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_OP_LEN 1 22100 /* Align the arguments to 32 bits */ 22101 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_RSVD_OFST 1 22102 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_RSVD_LEN 3 22103 /* TXEQ Parameter */ 22104 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_OFST 4 22105 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LEN 4 22106 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_MINNUM 1 22107 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_MAXNUM 62 22108 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_MAXNUM_MCDI2 254 22109 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_ID_OFST 4 22110 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_ID_LBN 0 22111 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_ID_WIDTH 8 22112 /* Enum values, see field(s): */ 22113 /* MC_CMD_KR_TUNE_TXEQ_GET_OUT/PARAM_ID */ 22114 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LANE_OFST 4 22115 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LANE_LBN 8 22116 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LANE_WIDTH 3 22117 /* Enum values, see field(s): */ 22118 /* MC_CMD_KR_TUNE_TXEQ_GET_OUT/PARAM_LANE */ 22119 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED_OFST 4 22120 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED_LBN 11 22121 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED_WIDTH 5 22122 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_INITIAL_OFST 4 22123 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_INITIAL_LBN 16 22124 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_INITIAL_WIDTH 8 22125 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED2_OFST 4 22126 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED2_LBN 24 22127 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED2_WIDTH 8 22128 22129 /* MC_CMD_KR_TUNE_TXEQ_SET_OUT msgresponse */ 22130 #define MC_CMD_KR_TUNE_TXEQ_SET_OUT_LEN 0 22131 22132 /* MC_CMD_KR_TUNE_RECAL_IN msgrequest */ 22133 #define MC_CMD_KR_TUNE_RECAL_IN_LEN 4 22134 /* Requested operation */ 22135 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_OP_OFST 0 22136 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_OP_LEN 1 22137 /* Align the arguments to 32 bits */ 22138 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_RSVD_OFST 1 22139 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_RSVD_LEN 3 22140 22141 /* MC_CMD_KR_TUNE_RECAL_OUT msgresponse */ 22142 #define MC_CMD_KR_TUNE_RECAL_OUT_LEN 0 22143 22144 /* MC_CMD_KR_TUNE_START_EYE_PLOT_IN msgrequest */ 22145 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_LEN 8 22146 /* Requested operation */ 22147 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_OP_OFST 0 22148 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_OP_LEN 1 22149 /* Align the arguments to 32 bits */ 22150 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_RSVD_OFST 1 22151 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_RSVD_LEN 3 22152 /* Port-relative lane to scan eye on */ 22153 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_LANE_OFST 4 22154 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_LANE_LEN 4 22155 22156 /* MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN msgrequest */ 22157 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LEN 12 22158 /* Requested operation */ 22159 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_OP_OFST 0 22160 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_OP_LEN 1 22161 /* Align the arguments to 32 bits */ 22162 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_RSVD_OFST 1 22163 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_RSVD_LEN 3 22164 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_OFST 4 22165 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_LEN 4 22166 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_NUM_OFST 4 22167 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_NUM_LBN 0 22168 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_NUM_WIDTH 8 22169 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_ABS_REL_OFST 4 22170 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_ABS_REL_LBN 31 22171 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_ABS_REL_WIDTH 1 22172 /* Scan duration / cycle count */ 22173 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_BER_OFST 8 22174 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_BER_LEN 4 22175 22176 /* MC_CMD_KR_TUNE_START_EYE_PLOT_OUT msgresponse */ 22177 #define MC_CMD_KR_TUNE_START_EYE_PLOT_OUT_LEN 0 22178 22179 /* MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN msgrequest */ 22180 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_LEN 4 22181 /* Requested operation */ 22182 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_OP_OFST 0 22183 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_OP_LEN 1 22184 /* Align the arguments to 32 bits */ 22185 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_RSVD_OFST 1 22186 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_RSVD_LEN 3 22187 22188 /* MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT msgresponse */ 22189 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_LENMIN 0 22190 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_LENMAX 252 22191 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_LENMAX_MCDI2 1020 22192 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_LEN(num) (0+2*(num)) 22193 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_NUM(len) (((len)-0)/2) 22194 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_OFST 0 22195 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_LEN 2 22196 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MINNUM 0 22197 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MAXNUM 126 22198 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MAXNUM_MCDI2 510 22199 22200 /* MC_CMD_KR_TUNE_READ_FOM_IN msgrequest */ 22201 #define MC_CMD_KR_TUNE_READ_FOM_IN_LEN 8 22202 /* Requested operation */ 22203 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_OP_OFST 0 22204 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_OP_LEN 1 22205 /* Align the arguments to 32 bits */ 22206 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_RSVD_OFST 1 22207 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_RSVD_LEN 3 22208 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_OFST 4 22209 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_LEN 4 22210 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_NUM_OFST 4 22211 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_NUM_LBN 0 22212 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_NUM_WIDTH 8 22213 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_ABS_REL_OFST 4 22214 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_ABS_REL_LBN 31 22215 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_ABS_REL_WIDTH 1 22216 22217 /* MC_CMD_KR_TUNE_READ_FOM_OUT msgresponse */ 22218 #define MC_CMD_KR_TUNE_READ_FOM_OUT_LEN 4 22219 #define MC_CMD_KR_TUNE_READ_FOM_OUT_FOM_OFST 0 22220 #define MC_CMD_KR_TUNE_READ_FOM_OUT_FOM_LEN 4 22221 22222 /* MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN msgrequest */ 22223 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_LEN 8 22224 /* Requested operation */ 22225 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_OP_OFST 0 22226 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_OP_LEN 1 22227 /* Align the arguments to 32 bits */ 22228 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_RSVD_OFST 1 22229 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_RSVD_LEN 3 22230 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_RUN_OFST 4 22231 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_RUN_LEN 4 22232 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_STOP 0x0 /* enum */ 22233 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_START 0x1 /* enum */ 22234 22235 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN msgrequest */ 22236 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_LEN 28 22237 /* Requested operation */ 22238 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_OP_OFST 0 22239 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_OP_LEN 1 22240 /* Align the arguments to 32 bits */ 22241 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_RSVD_OFST 1 22242 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_RSVD_LEN 3 22243 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_LANE_OFST 4 22244 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_LANE_LEN 4 22245 /* Set INITIALIZE state */ 22246 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_INITIALIZE_OFST 8 22247 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_INITIALIZE_LEN 4 22248 /* Set PRESET state */ 22249 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_PRESET_OFST 12 22250 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_PRESET_LEN 4 22251 /* C(-1) request */ 22252 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CM1_OFST 16 22253 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CM1_LEN 4 22254 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_REQ_HOLD 0x0 /* enum */ 22255 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_REQ_INCREMENT 0x1 /* enum */ 22256 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_REQ_DECREMENT 0x2 /* enum */ 22257 /* C(0) request */ 22258 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_C0_OFST 20 22259 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_C0_LEN 4 22260 /* Enum values, see field(s): */ 22261 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN/CM1 */ 22262 /* C(+1) request */ 22263 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CP1_OFST 24 22264 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CP1_LEN 4 22265 /* Enum values, see field(s): */ 22266 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN/CM1 */ 22267 22268 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT msgresponse */ 22269 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_LEN 24 22270 /* C(-1) status */ 22271 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_STATUS_OFST 0 22272 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_STATUS_LEN 4 22273 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_STATUS_NOT_UPDATED 0x0 /* enum */ 22274 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_STATUS_UPDATED 0x1 /* enum */ 22275 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_STATUS_MINIMUM 0x2 /* enum */ 22276 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_STATUS_MAXIMUM 0x3 /* enum */ 22277 /* C(0) status */ 22278 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_STATUS_OFST 4 22279 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_STATUS_LEN 4 22280 /* Enum values, see field(s): */ 22281 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN/CM1 */ 22282 /* C(+1) status */ 22283 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_STATUS_OFST 8 22284 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_STATUS_LEN 4 22285 /* Enum values, see field(s): */ 22286 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN/CM1 */ 22287 /* C(-1) value */ 22288 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_VALUE_OFST 12 22289 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_VALUE_LEN 4 22290 /* C(0) value */ 22291 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_VALUE_OFST 16 22292 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_VALUE_LEN 4 22293 /* C(+1) status */ 22294 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_VALUE_OFST 20 22295 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_VALUE_LEN 4 22296 22297 22298 /***********************************/ 22299 /* MC_CMD_PCIE_TUNE 22300 * Get or set PCIE Serdes RXEQ and TX Driver settings 22301 */ 22302 #define MC_CMD_PCIE_TUNE 0xf2 22303 #define MC_CMD_PCIE_TUNE_MSGSET 0xf2 22304 #undef MC_CMD_0xf2_PRIVILEGE_CTG 22305 22306 #define MC_CMD_0xf2_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 22307 22308 /* MC_CMD_PCIE_TUNE_IN msgrequest */ 22309 #define MC_CMD_PCIE_TUNE_IN_LENMIN 4 22310 #define MC_CMD_PCIE_TUNE_IN_LENMAX 252 22311 #define MC_CMD_PCIE_TUNE_IN_LENMAX_MCDI2 1020 22312 #define MC_CMD_PCIE_TUNE_IN_LEN(num) (4+4*(num)) 22313 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_NUM(len) (((len)-4)/4) 22314 /* Requested operation */ 22315 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_OP_OFST 0 22316 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_OP_LEN 1 22317 /* enum: Get current RXEQ settings */ 22318 #define MC_CMD_PCIE_TUNE_IN_RXEQ_GET 0x0 22319 /* enum: Override RXEQ settings */ 22320 #define MC_CMD_PCIE_TUNE_IN_RXEQ_SET 0x1 22321 /* enum: Get current TX Driver settings */ 22322 #define MC_CMD_PCIE_TUNE_IN_TXEQ_GET 0x2 22323 /* enum: Override TX Driver settings */ 22324 #define MC_CMD_PCIE_TUNE_IN_TXEQ_SET 0x3 22325 /* enum: Start PCIe Serdes Eye diagram plot on a given lane. */ 22326 #define MC_CMD_PCIE_TUNE_IN_START_EYE_PLOT 0x5 22327 /* enum: Poll PCIe Serdes Eye diagram plot. Returns one row of BER data. The 22328 * caller should call this command repeatedly after starting eye plot, until no 22329 * more data is returned. 22330 */ 22331 #define MC_CMD_PCIE_TUNE_IN_POLL_EYE_PLOT 0x6 22332 /* enum: Enable the SERDES BIST and set it to generate a 200MHz square wave */ 22333 #define MC_CMD_PCIE_TUNE_IN_BIST_SQUARE_WAVE 0x7 22334 /* Align the arguments to 32 bits */ 22335 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_RSVD_OFST 1 22336 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_RSVD_LEN 3 22337 /* Arguments specific to the operation */ 22338 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_OFST 4 22339 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_LEN 4 22340 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_MINNUM 0 22341 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_MAXNUM 62 22342 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_MAXNUM_MCDI2 254 22343 22344 /* MC_CMD_PCIE_TUNE_OUT msgresponse */ 22345 #define MC_CMD_PCIE_TUNE_OUT_LEN 0 22346 22347 /* MC_CMD_PCIE_TUNE_RXEQ_GET_IN msgrequest */ 22348 #define MC_CMD_PCIE_TUNE_RXEQ_GET_IN_LEN 4 22349 /* Requested operation */ 22350 #define MC_CMD_PCIE_TUNE_RXEQ_GET_IN_PCIE_TUNE_OP_OFST 0 22351 #define MC_CMD_PCIE_TUNE_RXEQ_GET_IN_PCIE_TUNE_OP_LEN 1 22352 /* Align the arguments to 32 bits */ 22353 #define MC_CMD_PCIE_TUNE_RXEQ_GET_IN_PCIE_TUNE_RSVD_OFST 1 22354 #define MC_CMD_PCIE_TUNE_RXEQ_GET_IN_PCIE_TUNE_RSVD_LEN 3 22355 22356 /* MC_CMD_PCIE_TUNE_RXEQ_GET_OUT msgresponse */ 22357 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LENMIN 4 22358 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LENMAX 252 22359 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LENMAX_MCDI2 1020 22360 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LEN(num) (0+4*(num)) 22361 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4) 22362 /* RXEQ Parameter */ 22363 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_OFST 0 22364 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_LEN 4 22365 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_MINNUM 1 22366 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_MAXNUM 63 22367 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_MAXNUM_MCDI2 255 22368 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_ID_OFST 0 22369 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_ID_LBN 0 22370 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_ID_WIDTH 8 22371 /* enum: Attenuation (0-15) */ 22372 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_ATT 0x0 22373 /* enum: CTLE Boost (0-15) */ 22374 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_BOOST 0x1 22375 /* enum: DFE Tap1 (0 - max negative, 64 - zero, 127 - max positive) */ 22376 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_TAP1 0x2 22377 /* enum: DFE Tap2 (0 - max negative, 32 - zero, 63 - max positive) */ 22378 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_TAP2 0x3 22379 /* enum: DFE Tap3 (0 - max negative, 32 - zero, 63 - max positive) */ 22380 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_TAP3 0x4 22381 /* enum: DFE Tap4 (0 - max negative, 32 - zero, 63 - max positive) */ 22382 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_TAP4 0x5 22383 /* enum: DFE Tap5 (0 - max negative, 32 - zero, 63 - max positive) */ 22384 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_TAP5 0x6 22385 /* enum: DFE DLev */ 22386 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_DLEV 0x7 22387 /* enum: Figure of Merit */ 22388 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_FOM 0x8 22389 /* enum: CTLE EQ Capacitor (HF Gain) */ 22390 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_CTLE_EQC 0x9 22391 /* enum: CTLE EQ Resistor (DC Gain) */ 22392 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_CTLE_EQRES 0xa 22393 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_LANE_OFST 0 22394 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_LANE_LBN 8 22395 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_LANE_WIDTH 5 22396 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_0 0x0 /* enum */ 22397 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_1 0x1 /* enum */ 22398 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_2 0x2 /* enum */ 22399 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_3 0x3 /* enum */ 22400 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_4 0x4 /* enum */ 22401 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_5 0x5 /* enum */ 22402 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_6 0x6 /* enum */ 22403 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_7 0x7 /* enum */ 22404 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_8 0x8 /* enum */ 22405 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_9 0x9 /* enum */ 22406 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_10 0xa /* enum */ 22407 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_11 0xb /* enum */ 22408 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_12 0xc /* enum */ 22409 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_13 0xd /* enum */ 22410 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_14 0xe /* enum */ 22411 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_15 0xf /* enum */ 22412 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_ALL 0x10 /* enum */ 22413 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_OFST 0 22414 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_LBN 13 22415 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_WIDTH 1 22416 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_RESERVED_OFST 0 22417 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_RESERVED_LBN 14 22418 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_RESERVED_WIDTH 10 22419 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_OFST 0 22420 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_LBN 24 22421 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_WIDTH 8 22422 22423 /* MC_CMD_PCIE_TUNE_RXEQ_SET_IN msgrequest */ 22424 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_LENMIN 8 22425 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_LENMAX 252 22426 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_LENMAX_MCDI2 1020 22427 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_LEN(num) (4+4*(num)) 22428 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_NUM(len) (((len)-4)/4) 22429 /* Requested operation */ 22430 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PCIE_TUNE_OP_OFST 0 22431 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PCIE_TUNE_OP_LEN 1 22432 /* Align the arguments to 32 bits */ 22433 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PCIE_TUNE_RSVD_OFST 1 22434 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PCIE_TUNE_RSVD_LEN 3 22435 /* RXEQ Parameter */ 22436 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_OFST 4 22437 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_LEN 4 22438 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_MINNUM 1 22439 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_MAXNUM 62 22440 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_MAXNUM_MCDI2 254 22441 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_ID_OFST 4 22442 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_ID_LBN 0 22443 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_ID_WIDTH 8 22444 /* Enum values, see field(s): */ 22445 /* MC_CMD_PCIE_TUNE_RXEQ_GET_OUT/PARAM_ID */ 22446 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_LANE_OFST 4 22447 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_LANE_LBN 8 22448 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_LANE_WIDTH 5 22449 /* Enum values, see field(s): */ 22450 /* MC_CMD_PCIE_TUNE_RXEQ_GET_OUT/PARAM_LANE */ 22451 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_OFST 4 22452 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_LBN 13 22453 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_WIDTH 1 22454 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED_OFST 4 22455 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED_LBN 14 22456 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED_WIDTH 2 22457 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_INITIAL_OFST 4 22458 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_INITIAL_LBN 16 22459 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_INITIAL_WIDTH 8 22460 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED2_OFST 4 22461 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED2_LBN 24 22462 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED2_WIDTH 8 22463 22464 /* MC_CMD_PCIE_TUNE_RXEQ_SET_OUT msgresponse */ 22465 #define MC_CMD_PCIE_TUNE_RXEQ_SET_OUT_LEN 0 22466 22467 /* MC_CMD_PCIE_TUNE_TXEQ_GET_IN msgrequest */ 22468 #define MC_CMD_PCIE_TUNE_TXEQ_GET_IN_LEN 4 22469 /* Requested operation */ 22470 #define MC_CMD_PCIE_TUNE_TXEQ_GET_IN_PCIE_TUNE_OP_OFST 0 22471 #define MC_CMD_PCIE_TUNE_TXEQ_GET_IN_PCIE_TUNE_OP_LEN 1 22472 /* Align the arguments to 32 bits */ 22473 #define MC_CMD_PCIE_TUNE_TXEQ_GET_IN_PCIE_TUNE_RSVD_OFST 1 22474 #define MC_CMD_PCIE_TUNE_TXEQ_GET_IN_PCIE_TUNE_RSVD_LEN 3 22475 22476 /* MC_CMD_PCIE_TUNE_TXEQ_GET_OUT msgresponse */ 22477 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_LENMIN 4 22478 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_LENMAX 252 22479 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_LENMAX_MCDI2 1020 22480 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_LEN(num) (0+4*(num)) 22481 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4) 22482 /* RXEQ Parameter */ 22483 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_OFST 0 22484 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_LEN 4 22485 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_MINNUM 1 22486 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_MAXNUM 63 22487 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_MAXNUM_MCDI2 255 22488 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_ID_OFST 0 22489 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_ID_LBN 0 22490 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_ID_WIDTH 8 22491 /* enum: TxMargin (PIPE) */ 22492 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_TXMARGIN 0x0 22493 /* enum: TxSwing (PIPE) */ 22494 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_TXSWING 0x1 22495 /* enum: De-emphasis coefficient C(-1) (PIPE) */ 22496 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_CM1 0x2 22497 /* enum: De-emphasis coefficient C(0) (PIPE) */ 22498 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_C0 0x3 22499 /* enum: De-emphasis coefficient C(+1) (PIPE) */ 22500 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_CP1 0x4 22501 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_LANE_OFST 0 22502 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_LANE_LBN 8 22503 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_LANE_WIDTH 4 22504 /* Enum values, see field(s): */ 22505 /* MC_CMD_PCIE_TUNE_RXEQ_GET_OUT/PARAM_LANE */ 22506 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_RESERVED_OFST 0 22507 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_RESERVED_LBN 12 22508 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_RESERVED_WIDTH 12 22509 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_CURRENT_OFST 0 22510 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_CURRENT_LBN 24 22511 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_CURRENT_WIDTH 8 22512 22513 /* MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN msgrequest */ 22514 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_LEN 8 22515 /* Requested operation */ 22516 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_PCIE_TUNE_OP_OFST 0 22517 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_PCIE_TUNE_OP_LEN 1 22518 /* Align the arguments to 32 bits */ 22519 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_PCIE_TUNE_RSVD_OFST 1 22520 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_PCIE_TUNE_RSVD_LEN 3 22521 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_LANE_OFST 4 22522 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_LANE_LEN 4 22523 22524 /* MC_CMD_PCIE_TUNE_START_EYE_PLOT_OUT msgresponse */ 22525 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_OUT_LEN 0 22526 22527 /* MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN msgrequest */ 22528 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN_LEN 4 22529 /* Requested operation */ 22530 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN_PCIE_TUNE_OP_OFST 0 22531 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN_PCIE_TUNE_OP_LEN 1 22532 /* Align the arguments to 32 bits */ 22533 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN_PCIE_TUNE_RSVD_OFST 1 22534 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN_PCIE_TUNE_RSVD_LEN 3 22535 22536 /* MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT msgresponse */ 22537 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_LENMIN 0 22538 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_LENMAX 252 22539 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_LENMAX_MCDI2 1020 22540 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_LEN(num) (0+2*(num)) 22541 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_NUM(len) (((len)-0)/2) 22542 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_OFST 0 22543 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_LEN 2 22544 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MINNUM 0 22545 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MAXNUM 126 22546 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MAXNUM_MCDI2 510 22547 22548 /* MC_CMD_PCIE_TUNE_BIST_SQUARE_WAVE_IN msgrequest */ 22549 #define MC_CMD_PCIE_TUNE_BIST_SQUARE_WAVE_IN_LEN 0 22550 22551 /* MC_CMD_PCIE_TUNE_BIST_SQUARE_WAVE_OUT msgrequest */ 22552 #define MC_CMD_PCIE_TUNE_BIST_SQUARE_WAVE_OUT_LEN 0 22553 22554 22555 /***********************************/ 22556 /* MC_CMD_LICENSING 22557 * Operations on the NVRAM_PARTITION_TYPE_LICENSE application license partition 22558 * - not used for V3 licensing 22559 */ 22560 #define MC_CMD_LICENSING 0xf3 22561 #define MC_CMD_LICENSING_MSGSET 0xf3 22562 #undef MC_CMD_0xf3_PRIVILEGE_CTG 22563 22564 #define MC_CMD_0xf3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22565 22566 /* MC_CMD_LICENSING_IN msgrequest */ 22567 #define MC_CMD_LICENSING_IN_LEN 4 22568 /* identifies the type of operation requested */ 22569 #define MC_CMD_LICENSING_IN_OP_OFST 0 22570 #define MC_CMD_LICENSING_IN_OP_LEN 4 22571 /* enum: re-read and apply licenses after a license key partition update; note 22572 * that this operation returns a zero-length response 22573 */ 22574 #define MC_CMD_LICENSING_IN_OP_UPDATE_LICENSE 0x0 22575 /* enum: report counts of installed licenses */ 22576 #define MC_CMD_LICENSING_IN_OP_GET_KEY_STATS 0x1 22577 22578 /* MC_CMD_LICENSING_OUT msgresponse */ 22579 #define MC_CMD_LICENSING_OUT_LEN 28 22580 /* count of application keys which are valid */ 22581 #define MC_CMD_LICENSING_OUT_VALID_APP_KEYS_OFST 0 22582 #define MC_CMD_LICENSING_OUT_VALID_APP_KEYS_LEN 4 22583 /* sum of UNVERIFIABLE_APP_KEYS + WRONG_NODE_APP_KEYS (for compatibility with 22584 * MC_CMD_FC_OP_LICENSE) 22585 */ 22586 #define MC_CMD_LICENSING_OUT_INVALID_APP_KEYS_OFST 4 22587 #define MC_CMD_LICENSING_OUT_INVALID_APP_KEYS_LEN 4 22588 /* count of application keys which are invalid due to being blacklisted */ 22589 #define MC_CMD_LICENSING_OUT_BLACKLISTED_APP_KEYS_OFST 8 22590 #define MC_CMD_LICENSING_OUT_BLACKLISTED_APP_KEYS_LEN 4 22591 /* count of application keys which are invalid due to being unverifiable */ 22592 #define MC_CMD_LICENSING_OUT_UNVERIFIABLE_APP_KEYS_OFST 12 22593 #define MC_CMD_LICENSING_OUT_UNVERIFIABLE_APP_KEYS_LEN 4 22594 /* count of application keys which are invalid due to being for the wrong node 22595 */ 22596 #define MC_CMD_LICENSING_OUT_WRONG_NODE_APP_KEYS_OFST 16 22597 #define MC_CMD_LICENSING_OUT_WRONG_NODE_APP_KEYS_LEN 4 22598 /* licensing state (for diagnostics; the exact meaning of the bits in this 22599 * field are private to the firmware) 22600 */ 22601 #define MC_CMD_LICENSING_OUT_LICENSING_STATE_OFST 20 22602 #define MC_CMD_LICENSING_OUT_LICENSING_STATE_LEN 4 22603 /* licensing subsystem self-test report (for manftest) */ 22604 #define MC_CMD_LICENSING_OUT_LICENSING_SELF_TEST_OFST 24 22605 #define MC_CMD_LICENSING_OUT_LICENSING_SELF_TEST_LEN 4 22606 /* enum: licensing subsystem self-test failed */ 22607 #define MC_CMD_LICENSING_OUT_SELF_TEST_FAIL 0x0 22608 /* enum: licensing subsystem self-test passed */ 22609 #define MC_CMD_LICENSING_OUT_SELF_TEST_PASS 0x1 22610 22611 22612 /***********************************/ 22613 /* MC_CMD_LICENSING_V3 22614 * Operations on the NVRAM_PARTITION_TYPE_LICENSE application license partition 22615 * - V3 licensing (Medford) 22616 */ 22617 #define MC_CMD_LICENSING_V3 0xd0 22618 #define MC_CMD_LICENSING_V3_MSGSET 0xd0 22619 #undef MC_CMD_0xd0_PRIVILEGE_CTG 22620 22621 #define MC_CMD_0xd0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22622 22623 /* MC_CMD_LICENSING_V3_IN msgrequest */ 22624 #define MC_CMD_LICENSING_V3_IN_LEN 4 22625 /* identifies the type of operation requested */ 22626 #define MC_CMD_LICENSING_V3_IN_OP_OFST 0 22627 #define MC_CMD_LICENSING_V3_IN_OP_LEN 4 22628 /* enum: re-read and apply licenses after a license key partition update; note 22629 * that this operation returns a zero-length response 22630 */ 22631 #define MC_CMD_LICENSING_V3_IN_OP_UPDATE_LICENSE 0x0 22632 /* enum: report counts of installed licenses Returns EAGAIN if license 22633 * processing (updating) has been started but not yet completed. 22634 */ 22635 #define MC_CMD_LICENSING_V3_IN_OP_REPORT_LICENSE 0x1 22636 22637 /* MC_CMD_LICENSING_V3_OUT msgresponse */ 22638 #define MC_CMD_LICENSING_V3_OUT_LEN 88 22639 /* count of keys which are valid */ 22640 #define MC_CMD_LICENSING_V3_OUT_VALID_KEYS_OFST 0 22641 #define MC_CMD_LICENSING_V3_OUT_VALID_KEYS_LEN 4 22642 /* sum of UNVERIFIABLE_KEYS + WRONG_NODE_KEYS (for compatibility with 22643 * MC_CMD_FC_OP_LICENSE) 22644 */ 22645 #define MC_CMD_LICENSING_V3_OUT_INVALID_KEYS_OFST 4 22646 #define MC_CMD_LICENSING_V3_OUT_INVALID_KEYS_LEN 4 22647 /* count of keys which are invalid due to being unverifiable */ 22648 #define MC_CMD_LICENSING_V3_OUT_UNVERIFIABLE_KEYS_OFST 8 22649 #define MC_CMD_LICENSING_V3_OUT_UNVERIFIABLE_KEYS_LEN 4 22650 /* count of keys which are invalid due to being for the wrong node */ 22651 #define MC_CMD_LICENSING_V3_OUT_WRONG_NODE_KEYS_OFST 12 22652 #define MC_CMD_LICENSING_V3_OUT_WRONG_NODE_KEYS_LEN 4 22653 /* licensing state (for diagnostics; the exact meaning of the bits in this 22654 * field are private to the firmware) 22655 */ 22656 #define MC_CMD_LICENSING_V3_OUT_LICENSING_STATE_OFST 16 22657 #define MC_CMD_LICENSING_V3_OUT_LICENSING_STATE_LEN 4 22658 /* licensing subsystem self-test report (for manftest) */ 22659 #define MC_CMD_LICENSING_V3_OUT_LICENSING_SELF_TEST_OFST 20 22660 #define MC_CMD_LICENSING_V3_OUT_LICENSING_SELF_TEST_LEN 4 22661 /* enum: licensing subsystem self-test failed */ 22662 #define MC_CMD_LICENSING_V3_OUT_SELF_TEST_FAIL 0x0 22663 /* enum: licensing subsystem self-test passed */ 22664 #define MC_CMD_LICENSING_V3_OUT_SELF_TEST_PASS 0x1 22665 /* bitmask of licensed applications */ 22666 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_OFST 24 22667 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LEN 8 22668 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_OFST 24 22669 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_LEN 4 22670 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_LBN 192 22671 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_WIDTH 32 22672 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_OFST 28 22673 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_LEN 4 22674 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_LBN 224 22675 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_WIDTH 32 22676 /* reserved for future use */ 22677 #define MC_CMD_LICENSING_V3_OUT_RESERVED_0_OFST 32 22678 #define MC_CMD_LICENSING_V3_OUT_RESERVED_0_LEN 24 22679 /* bitmask of licensed features */ 22680 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_OFST 56 22681 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LEN 8 22682 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_OFST 56 22683 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_LEN 4 22684 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_LBN 448 22685 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_WIDTH 32 22686 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_OFST 60 22687 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_LEN 4 22688 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_LBN 480 22689 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_WIDTH 32 22690 /* reserved for future use */ 22691 #define MC_CMD_LICENSING_V3_OUT_RESERVED_1_OFST 64 22692 #define MC_CMD_LICENSING_V3_OUT_RESERVED_1_LEN 24 22693 22694 22695 /***********************************/ 22696 /* MC_CMD_LICENSING_GET_ID_V3 22697 * Get ID and type from the NVRAM_PARTITION_TYPE_LICENSE application license 22698 * partition - V3 licensing (Medford) 22699 */ 22700 #define MC_CMD_LICENSING_GET_ID_V3 0xd1 22701 #define MC_CMD_LICENSING_GET_ID_V3_MSGSET 0xd1 22702 #undef MC_CMD_0xd1_PRIVILEGE_CTG 22703 22704 #define MC_CMD_0xd1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22705 22706 /* MC_CMD_LICENSING_GET_ID_V3_IN msgrequest */ 22707 #define MC_CMD_LICENSING_GET_ID_V3_IN_LEN 0 22708 22709 /* MC_CMD_LICENSING_GET_ID_V3_OUT msgresponse */ 22710 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LENMIN 8 22711 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LENMAX 252 22712 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LENMAX_MCDI2 1020 22713 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LEN(num) (8+1*(num)) 22714 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_NUM(len) (((len)-8)/1) 22715 /* type of license (eg 3) */ 22716 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_TYPE_OFST 0 22717 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_TYPE_LEN 4 22718 /* length of the license ID (in bytes) */ 22719 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_LENGTH_OFST 4 22720 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_LENGTH_LEN 4 22721 /* the unique license ID of the adapter */ 22722 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_OFST 8 22723 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_LEN 1 22724 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_MINNUM 0 22725 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_MAXNUM 244 22726 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_MAXNUM_MCDI2 1012 22727 22728 22729 /***********************************/ 22730 /* MC_CMD_MC2MC_PROXY 22731 * Execute an arbitrary MCDI command on the slave MC of a dual-core device. 22732 * This will fail on a single-core system. 22733 */ 22734 #define MC_CMD_MC2MC_PROXY 0xf4 22735 #define MC_CMD_MC2MC_PROXY_MSGSET 0xf4 22736 #undef MC_CMD_0xf4_PRIVILEGE_CTG 22737 22738 #define MC_CMD_0xf4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22739 22740 /* MC_CMD_MC2MC_PROXY_IN msgrequest */ 22741 #define MC_CMD_MC2MC_PROXY_IN_LEN 0 22742 22743 /* MC_CMD_MC2MC_PROXY_OUT msgresponse */ 22744 #define MC_CMD_MC2MC_PROXY_OUT_LEN 0 22745 22746 22747 /***********************************/ 22748 /* MC_CMD_GET_LICENSED_APP_STATE 22749 * Query the state of an individual licensed application. (Note that the actual 22750 * state may be invalidated by the MC_CMD_LICENSING OP_UPDATE_LICENSE operation 22751 * or a reboot of the MC.) Not used for V3 licensing 22752 */ 22753 #define MC_CMD_GET_LICENSED_APP_STATE 0xf5 22754 #define MC_CMD_GET_LICENSED_APP_STATE_MSGSET 0xf5 22755 #undef MC_CMD_0xf5_PRIVILEGE_CTG 22756 22757 #define MC_CMD_0xf5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22758 22759 /* MC_CMD_GET_LICENSED_APP_STATE_IN msgrequest */ 22760 #define MC_CMD_GET_LICENSED_APP_STATE_IN_LEN 4 22761 /* application ID to query (LICENSED_APP_ID_xxx) */ 22762 #define MC_CMD_GET_LICENSED_APP_STATE_IN_APP_ID_OFST 0 22763 #define MC_CMD_GET_LICENSED_APP_STATE_IN_APP_ID_LEN 4 22764 22765 /* MC_CMD_GET_LICENSED_APP_STATE_OUT msgresponse */ 22766 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_LEN 4 22767 /* state of this application */ 22768 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_STATE_OFST 0 22769 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_STATE_LEN 4 22770 /* enum: no (or invalid) license is present for the application */ 22771 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_NOT_LICENSED 0x0 22772 /* enum: a valid license is present for the application */ 22773 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_LICENSED 0x1 22774 22775 22776 /***********************************/ 22777 /* MC_CMD_GET_LICENSED_V3_APP_STATE 22778 * Query the state of an individual licensed application. (Note that the actual 22779 * state may be invalidated by the MC_CMD_LICENSING_V3 OP_UPDATE_LICENSE 22780 * operation or a reboot of the MC.) Used for V3 licensing (Medford) 22781 */ 22782 #define MC_CMD_GET_LICENSED_V3_APP_STATE 0xd2 22783 #define MC_CMD_GET_LICENSED_V3_APP_STATE_MSGSET 0xd2 22784 #undef MC_CMD_0xd2_PRIVILEGE_CTG 22785 22786 #define MC_CMD_0xd2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22787 22788 /* MC_CMD_GET_LICENSED_V3_APP_STATE_IN msgrequest */ 22789 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_LEN 8 22790 /* application ID to query (LICENSED_V3_APPS_xxx) expressed as a single bit 22791 * mask 22792 */ 22793 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_OFST 0 22794 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LEN 8 22795 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LO_OFST 0 22796 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LO_LEN 4 22797 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LO_LBN 0 22798 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LO_WIDTH 32 22799 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_HI_OFST 4 22800 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_HI_LEN 4 22801 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_HI_LBN 32 22802 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_HI_WIDTH 32 22803 22804 /* MC_CMD_GET_LICENSED_V3_APP_STATE_OUT msgresponse */ 22805 #define MC_CMD_GET_LICENSED_V3_APP_STATE_OUT_LEN 4 22806 /* state of this application */ 22807 #define MC_CMD_GET_LICENSED_V3_APP_STATE_OUT_STATE_OFST 0 22808 #define MC_CMD_GET_LICENSED_V3_APP_STATE_OUT_STATE_LEN 4 22809 /* enum: no (or invalid) license is present for the application */ 22810 #define MC_CMD_GET_LICENSED_V3_APP_STATE_OUT_NOT_LICENSED 0x0 22811 /* enum: a valid license is present for the application */ 22812 #define MC_CMD_GET_LICENSED_V3_APP_STATE_OUT_LICENSED 0x1 22813 22814 22815 /***********************************/ 22816 /* MC_CMD_GET_LICENSED_V3_FEATURE_STATES 22817 * Query the state of an one or more licensed features. (Note that the actual 22818 * state may be invalidated by the MC_CMD_LICENSING_V3 OP_UPDATE_LICENSE 22819 * operation or a reboot of the MC.) Used for V3 licensing (Medford) 22820 */ 22821 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES 0xd3 22822 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_MSGSET 0xd3 22823 #undef MC_CMD_0xd3_PRIVILEGE_CTG 22824 22825 #define MC_CMD_0xd3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22826 22827 /* MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN msgrequest */ 22828 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_LEN 8 22829 /* features to query (LICENSED_V3_FEATURES_xxx) expressed as a mask with one or 22830 * more bits set 22831 */ 22832 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_OFST 0 22833 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LEN 8 22834 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LO_OFST 0 22835 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LO_LEN 4 22836 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LO_LBN 0 22837 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LO_WIDTH 32 22838 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_HI_OFST 4 22839 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_HI_LEN 4 22840 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_HI_LBN 32 22841 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_HI_WIDTH 32 22842 22843 /* MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT msgresponse */ 22844 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_LEN 8 22845 /* states of these features - bit set for licensed, clear for not licensed */ 22846 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_OFST 0 22847 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LEN 8 22848 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LO_OFST 0 22849 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LO_LEN 4 22850 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LO_LBN 0 22851 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LO_WIDTH 32 22852 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_HI_OFST 4 22853 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_HI_LEN 4 22854 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_HI_LBN 32 22855 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_HI_WIDTH 32 22856 22857 22858 /***********************************/ 22859 /* MC_CMD_LICENSED_APP_OP 22860 * Perform an action for an individual licensed application - not used for V3 22861 * licensing. 22862 */ 22863 #define MC_CMD_LICENSED_APP_OP 0xf6 22864 #define MC_CMD_LICENSED_APP_OP_MSGSET 0xf6 22865 #undef MC_CMD_0xf6_PRIVILEGE_CTG 22866 22867 #define MC_CMD_0xf6_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22868 22869 /* MC_CMD_LICENSED_APP_OP_IN msgrequest */ 22870 #define MC_CMD_LICENSED_APP_OP_IN_LENMIN 8 22871 #define MC_CMD_LICENSED_APP_OP_IN_LENMAX 252 22872 #define MC_CMD_LICENSED_APP_OP_IN_LENMAX_MCDI2 1020 22873 #define MC_CMD_LICENSED_APP_OP_IN_LEN(num) (8+4*(num)) 22874 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_NUM(len) (((len)-8)/4) 22875 /* application ID */ 22876 #define MC_CMD_LICENSED_APP_OP_IN_APP_ID_OFST 0 22877 #define MC_CMD_LICENSED_APP_OP_IN_APP_ID_LEN 4 22878 /* the type of operation requested */ 22879 #define MC_CMD_LICENSED_APP_OP_IN_OP_OFST 4 22880 #define MC_CMD_LICENSED_APP_OP_IN_OP_LEN 4 22881 /* enum: validate application */ 22882 #define MC_CMD_LICENSED_APP_OP_IN_OP_VALIDATE 0x0 22883 /* enum: mask application */ 22884 #define MC_CMD_LICENSED_APP_OP_IN_OP_MASK 0x1 22885 /* arguments specific to this particular operation */ 22886 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_OFST 8 22887 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_LEN 4 22888 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_MINNUM 0 22889 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_MAXNUM 61 22890 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_MAXNUM_MCDI2 253 22891 22892 /* MC_CMD_LICENSED_APP_OP_OUT msgresponse */ 22893 #define MC_CMD_LICENSED_APP_OP_OUT_LENMIN 0 22894 #define MC_CMD_LICENSED_APP_OP_OUT_LENMAX 252 22895 #define MC_CMD_LICENSED_APP_OP_OUT_LENMAX_MCDI2 1020 22896 #define MC_CMD_LICENSED_APP_OP_OUT_LEN(num) (0+4*(num)) 22897 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_NUM(len) (((len)-0)/4) 22898 /* result specific to this particular operation */ 22899 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_OFST 0 22900 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_LEN 4 22901 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_MINNUM 0 22902 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_MAXNUM 63 22903 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_MAXNUM_MCDI2 255 22904 22905 /* MC_CMD_LICENSED_APP_OP_VALIDATE_IN msgrequest */ 22906 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_LEN 72 22907 /* application ID */ 22908 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_APP_ID_OFST 0 22909 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_APP_ID_LEN 4 22910 /* the type of operation requested */ 22911 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_OP_OFST 4 22912 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_OP_LEN 4 22913 /* validation challenge */ 22914 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_CHALLENGE_OFST 8 22915 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_CHALLENGE_LEN 64 22916 22917 /* MC_CMD_LICENSED_APP_OP_VALIDATE_OUT msgresponse */ 22918 #define MC_CMD_LICENSED_APP_OP_VALIDATE_OUT_LEN 68 22919 /* feature expiry (time_t) */ 22920 #define MC_CMD_LICENSED_APP_OP_VALIDATE_OUT_EXPIRY_OFST 0 22921 #define MC_CMD_LICENSED_APP_OP_VALIDATE_OUT_EXPIRY_LEN 4 22922 /* validation response */ 22923 #define MC_CMD_LICENSED_APP_OP_VALIDATE_OUT_RESPONSE_OFST 4 22924 #define MC_CMD_LICENSED_APP_OP_VALIDATE_OUT_RESPONSE_LEN 64 22925 22926 /* MC_CMD_LICENSED_APP_OP_MASK_IN msgrequest */ 22927 #define MC_CMD_LICENSED_APP_OP_MASK_IN_LEN 12 22928 /* application ID */ 22929 #define MC_CMD_LICENSED_APP_OP_MASK_IN_APP_ID_OFST 0 22930 #define MC_CMD_LICENSED_APP_OP_MASK_IN_APP_ID_LEN 4 22931 /* the type of operation requested */ 22932 #define MC_CMD_LICENSED_APP_OP_MASK_IN_OP_OFST 4 22933 #define MC_CMD_LICENSED_APP_OP_MASK_IN_OP_LEN 4 22934 /* flag */ 22935 #define MC_CMD_LICENSED_APP_OP_MASK_IN_FLAG_OFST 8 22936 #define MC_CMD_LICENSED_APP_OP_MASK_IN_FLAG_LEN 4 22937 22938 /* MC_CMD_LICENSED_APP_OP_MASK_OUT msgresponse */ 22939 #define MC_CMD_LICENSED_APP_OP_MASK_OUT_LEN 0 22940 22941 22942 /***********************************/ 22943 /* MC_CMD_LICENSED_V3_VALIDATE_APP 22944 * Perform validation for an individual licensed application - V3 licensing 22945 * (Medford) 22946 */ 22947 #define MC_CMD_LICENSED_V3_VALIDATE_APP 0xd4 22948 #define MC_CMD_LICENSED_V3_VALIDATE_APP_MSGSET 0xd4 22949 #undef MC_CMD_0xd4_PRIVILEGE_CTG 22950 22951 #define MC_CMD_0xd4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22952 22953 /* MC_CMD_LICENSED_V3_VALIDATE_APP_IN msgrequest */ 22954 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_LEN 56 22955 /* challenge for validation (384 bits) */ 22956 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_CHALLENGE_OFST 0 22957 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_CHALLENGE_LEN 48 22958 /* application ID expressed as a single bit mask */ 22959 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_OFST 48 22960 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LEN 8 22961 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LO_OFST 48 22962 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LO_LEN 4 22963 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LO_LBN 384 22964 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LO_WIDTH 32 22965 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_HI_OFST 52 22966 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_HI_LEN 4 22967 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_HI_LBN 416 22968 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_HI_WIDTH 32 22969 22970 /* MC_CMD_LICENSED_V3_VALIDATE_APP_OUT msgresponse */ 22971 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_LEN 116 22972 /* validation response to challenge in the form of ECDSA signature consisting 22973 * of two 384-bit integers, r and s, in big-endian order. The signature signs a 22974 * SHA-384 digest of a message constructed from the concatenation of the input 22975 * message and the remaining fields of this output message, e.g. challenge[48 22976 * bytes] ... expiry_time[4 bytes] ... 22977 */ 22978 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_RESPONSE_OFST 0 22979 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_RESPONSE_LEN 96 22980 /* application expiry time */ 22981 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_TIME_OFST 96 22982 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_TIME_LEN 4 22983 /* application expiry units */ 22984 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_UNITS_OFST 100 22985 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_UNITS_LEN 4 22986 /* enum: expiry units are accounting units */ 22987 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_UNIT_ACC 0x0 22988 /* enum: expiry units are calendar days */ 22989 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_UNIT_DAYS 0x1 22990 /* base MAC address of the NIC stored in NVRAM (note that this is a constant 22991 * value for a given NIC regardless which function is calling, effectively this 22992 * is PF0 base MAC address) 22993 */ 22994 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_BASE_MACADDR_OFST 104 22995 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_BASE_MACADDR_LEN 6 22996 /* MAC address of v-adaptor associated with the client. If no such v-adapator 22997 * exists, then the field is filled with 0xFF. 22998 */ 22999 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_VADAPTOR_MACADDR_OFST 110 23000 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_VADAPTOR_MACADDR_LEN 6 23001 23002 23003 /***********************************/ 23004 /* MC_CMD_LICENSED_V3_MASK_FEATURES 23005 * Mask features - V3 licensing (Medford) 23006 */ 23007 #define MC_CMD_LICENSED_V3_MASK_FEATURES 0xd5 23008 #define MC_CMD_LICENSED_V3_MASK_FEATURES_MSGSET 0xd5 23009 #undef MC_CMD_0xd5_PRIVILEGE_CTG 23010 23011 #define MC_CMD_0xd5_PRIVILEGE_CTG SRIOV_CTG_ADMIN 23012 23013 /* MC_CMD_LICENSED_V3_MASK_FEATURES_IN msgrequest */ 23014 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_LEN 12 23015 /* mask to be applied to features to be changed */ 23016 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_OFST 0 23017 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LEN 8 23018 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LO_OFST 0 23019 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LO_LEN 4 23020 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LO_LBN 0 23021 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LO_WIDTH 32 23022 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_HI_OFST 4 23023 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_HI_LEN 4 23024 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_HI_LBN 32 23025 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_HI_WIDTH 32 23026 /* whether to turn on or turn off the masked features */ 23027 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_FLAG_OFST 8 23028 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_FLAG_LEN 4 23029 /* enum: turn the features off */ 23030 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_OFF 0x0 23031 /* enum: turn the features back on */ 23032 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_ON 0x1 23033 23034 /* MC_CMD_LICENSED_V3_MASK_FEATURES_OUT msgresponse */ 23035 #define MC_CMD_LICENSED_V3_MASK_FEATURES_OUT_LEN 0 23036 23037 23038 /***********************************/ 23039 /* MC_CMD_LICENSING_V3_TEMPORARY 23040 * Perform operations to support installation of a single temporary license in 23041 * the adapter, in addition to those found in the licensing partition. See 23042 * SF-116124-SW for an overview of how this could be used. The license is 23043 * stored in MC persistent data and so will survive a MC reboot, but will be 23044 * erased when the adapter is power cycled 23045 */ 23046 #define MC_CMD_LICENSING_V3_TEMPORARY 0xd6 23047 #define MC_CMD_LICENSING_V3_TEMPORARY_MSGSET 0xd6 23048 #undef MC_CMD_0xd6_PRIVILEGE_CTG 23049 23050 #define MC_CMD_0xd6_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 23051 23052 /* MC_CMD_LICENSING_V3_TEMPORARY_IN msgrequest */ 23053 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_LEN 4 23054 /* operation code */ 23055 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_OP_OFST 0 23056 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_OP_LEN 4 23057 /* enum: install a new license, overwriting any existing temporary license. 23058 * This is an asynchronous operation owing to the time taken to validate an 23059 * ECDSA license 23060 */ 23061 #define MC_CMD_LICENSING_V3_TEMPORARY_SET 0x0 23062 /* enum: clear the license immediately rather than waiting for the next power 23063 * cycle 23064 */ 23065 #define MC_CMD_LICENSING_V3_TEMPORARY_CLEAR 0x1 23066 /* enum: get the status of the asynchronous MC_CMD_LICENSING_V3_TEMPORARY_SET 23067 * operation 23068 */ 23069 #define MC_CMD_LICENSING_V3_TEMPORARY_STATUS 0x2 23070 23071 /* MC_CMD_LICENSING_V3_TEMPORARY_IN_SET msgrequest */ 23072 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_SET_LEN 164 23073 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_SET_OP_OFST 0 23074 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_SET_OP_LEN 4 23075 /* ECDSA license and signature */ 23076 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_SET_LICENSE_OFST 4 23077 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_SET_LICENSE_LEN 160 23078 23079 /* MC_CMD_LICENSING_V3_TEMPORARY_IN_CLEAR msgrequest */ 23080 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_CLEAR_LEN 4 23081 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_CLEAR_OP_OFST 0 23082 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_CLEAR_OP_LEN 4 23083 23084 /* MC_CMD_LICENSING_V3_TEMPORARY_IN_STATUS msgrequest */ 23085 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_STATUS_LEN 4 23086 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_STATUS_OP_OFST 0 23087 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_STATUS_OP_LEN 4 23088 23089 /* MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS msgresponse */ 23090 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LEN 12 23091 /* status code */ 23092 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_STATUS_OFST 0 23093 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_STATUS_LEN 4 23094 /* enum: finished validating and installing license */ 23095 #define MC_CMD_LICENSING_V3_TEMPORARY_STATUS_OK 0x0 23096 /* enum: license validation and installation in progress */ 23097 #define MC_CMD_LICENSING_V3_TEMPORARY_STATUS_IN_PROGRESS 0x1 23098 /* enum: licensing error. More specific error messages are not provided to 23099 * avoid exposing details of the licensing system to the client 23100 */ 23101 #define MC_CMD_LICENSING_V3_TEMPORARY_STATUS_ERROR 0x2 23102 /* bitmask of licensed features */ 23103 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_OFST 4 23104 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LEN 8 23105 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LO_OFST 4 23106 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LO_LEN 4 23107 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LO_LBN 32 23108 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LO_WIDTH 32 23109 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_HI_OFST 8 23110 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_HI_LEN 4 23111 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_HI_LBN 64 23112 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_HI_WIDTH 32 23113 23114 23115 /***********************************/ 23116 /* MC_CMD_SET_PORT_SNIFF_CONFIG 23117 * Configure RX port sniffing for the physical port associated with the calling 23118 * function. Only a privileged function may change the port sniffing 23119 * configuration. A copy of all traffic delivered to the host (non-promiscuous 23120 * mode) or all traffic arriving at the port (promiscuous mode) may be 23121 * delivered to a specific queue, or a set of queues with RSS. 23122 */ 23123 #define MC_CMD_SET_PORT_SNIFF_CONFIG 0xf7 23124 #define MC_CMD_SET_PORT_SNIFF_CONFIG_MSGSET 0xf7 23125 #undef MC_CMD_0xf7_PRIVILEGE_CTG 23126 23127 #define MC_CMD_0xf7_PRIVILEGE_CTG SRIOV_CTG_ADMIN 23128 23129 /* MC_CMD_SET_PORT_SNIFF_CONFIG_IN msgrequest */ 23130 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_LEN 16 23131 /* configuration flags */ 23132 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_FLAGS_OFST 0 23133 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_FLAGS_LEN 4 23134 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_ENABLE_OFST 0 23135 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_ENABLE_LBN 0 23136 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_ENABLE_WIDTH 1 23137 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_PROMISCUOUS_OFST 0 23138 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_PROMISCUOUS_LBN 1 23139 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_PROMISCUOUS_WIDTH 1 23140 /* receive queue handle (for RSS mode, this is the base queue) */ 23141 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_QUEUE_OFST 4 23142 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_QUEUE_LEN 4 23143 /* receive mode */ 23144 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_MODE_OFST 8 23145 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_MODE_LEN 4 23146 /* enum: receive to just the specified queue */ 23147 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_MODE_SIMPLE 0x0 23148 /* enum: receive to multiple queues using RSS context */ 23149 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_MODE_RSS 0x1 23150 /* RSS context (for RX_MODE_RSS) as returned by MC_CMD_RSS_CONTEXT_ALLOC. Note 23151 * that these handles should be considered opaque to the host, although a value 23152 * of 0xFFFFFFFF is guaranteed never to be a valid handle. 23153 */ 23154 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_CONTEXT_OFST 12 23155 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_CONTEXT_LEN 4 23156 23157 /* MC_CMD_SET_PORT_SNIFF_CONFIG_OUT msgresponse */ 23158 #define MC_CMD_SET_PORT_SNIFF_CONFIG_OUT_LEN 0 23159 23160 23161 /***********************************/ 23162 /* MC_CMD_GET_PORT_SNIFF_CONFIG 23163 * Obtain the current RX port sniffing configuration for the physical port 23164 * associated with the calling function. Only a privileged function may read 23165 * the configuration. 23166 */ 23167 #define MC_CMD_GET_PORT_SNIFF_CONFIG 0xf8 23168 #define MC_CMD_GET_PORT_SNIFF_CONFIG_MSGSET 0xf8 23169 #undef MC_CMD_0xf8_PRIVILEGE_CTG 23170 23171 #define MC_CMD_0xf8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23172 23173 /* MC_CMD_GET_PORT_SNIFF_CONFIG_IN msgrequest */ 23174 #define MC_CMD_GET_PORT_SNIFF_CONFIG_IN_LEN 0 23175 23176 /* MC_CMD_GET_PORT_SNIFF_CONFIG_OUT msgresponse */ 23177 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_LEN 16 23178 /* configuration flags */ 23179 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_FLAGS_OFST 0 23180 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_FLAGS_LEN 4 23181 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_ENABLE_OFST 0 23182 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_ENABLE_LBN 0 23183 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_ENABLE_WIDTH 1 23184 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_PROMISCUOUS_OFST 0 23185 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_PROMISCUOUS_LBN 1 23186 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_PROMISCUOUS_WIDTH 1 23187 /* receiving queue handle (for RSS mode, this is the base queue) */ 23188 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_QUEUE_OFST 4 23189 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_QUEUE_LEN 4 23190 /* receive mode */ 23191 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_MODE_OFST 8 23192 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_MODE_LEN 4 23193 /* enum: receiving to just the specified queue */ 23194 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_MODE_SIMPLE 0x0 23195 /* enum: receiving to multiple queues using RSS context */ 23196 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_MODE_RSS 0x1 23197 /* RSS context (for RX_MODE_RSS) */ 23198 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_CONTEXT_OFST 12 23199 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_CONTEXT_LEN 4 23200 23201 23202 /***********************************/ 23203 /* MC_CMD_SET_PARSER_DISP_CONFIG 23204 * Change configuration related to the parser-dispatcher subsystem. 23205 */ 23206 #define MC_CMD_SET_PARSER_DISP_CONFIG 0xf9 23207 #define MC_CMD_SET_PARSER_DISP_CONFIG_MSGSET 0xf9 23208 #undef MC_CMD_0xf9_PRIVILEGE_CTG 23209 23210 #define MC_CMD_0xf9_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23211 23212 /* MC_CMD_SET_PARSER_DISP_CONFIG_IN msgrequest */ 23213 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LENMIN 12 23214 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LENMAX 252 23215 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LENMAX_MCDI2 1020 23216 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LEN(num) (8+4*(num)) 23217 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_NUM(len) (((len)-8)/4) 23218 /* the type of configuration setting to change */ 23219 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_TYPE_OFST 0 23220 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_TYPE_LEN 4 23221 /* enum: Per-TXQ enable for multicast UDP destination lookup for possible 23222 * internal loopback. (ENTITY is a queue handle, VALUE is a single boolean.) 23223 */ 23224 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_TXQ_MCAST_UDP_DST_LOOKUP_EN 0x0 23225 /* enum: Per-v-adaptor enable for suppression of self-transmissions on the 23226 * internal loopback path. (ENTITY is an EVB_PORT_ID, VALUE is a single 23227 * boolean.) 23228 */ 23229 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VADAPTOR_SUPPRESS_SELF_TX 0x1 23230 /* handle for the entity to update: queue handle, EVB port ID, etc. depending 23231 * on the type of configuration setting being changed 23232 */ 23233 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_ENTITY_OFST 4 23234 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_ENTITY_LEN 4 23235 /* new value: the details depend on the type of configuration setting being 23236 * changed 23237 */ 23238 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_OFST 8 23239 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_LEN 4 23240 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_MINNUM 1 23241 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_MAXNUM 61 23242 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_MAXNUM_MCDI2 253 23243 23244 /* MC_CMD_SET_PARSER_DISP_CONFIG_OUT msgresponse */ 23245 #define MC_CMD_SET_PARSER_DISP_CONFIG_OUT_LEN 0 23246 23247 23248 /***********************************/ 23249 /* MC_CMD_GET_PARSER_DISP_CONFIG 23250 * Read configuration related to the parser-dispatcher subsystem. 23251 */ 23252 #define MC_CMD_GET_PARSER_DISP_CONFIG 0xfa 23253 #define MC_CMD_GET_PARSER_DISP_CONFIG_MSGSET 0xfa 23254 #undef MC_CMD_0xfa_PRIVILEGE_CTG 23255 23256 #define MC_CMD_0xfa_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23257 23258 /* MC_CMD_GET_PARSER_DISP_CONFIG_IN msgrequest */ 23259 #define MC_CMD_GET_PARSER_DISP_CONFIG_IN_LEN 8 23260 /* the type of configuration setting to read */ 23261 #define MC_CMD_GET_PARSER_DISP_CONFIG_IN_TYPE_OFST 0 23262 #define MC_CMD_GET_PARSER_DISP_CONFIG_IN_TYPE_LEN 4 23263 /* Enum values, see field(s): */ 23264 /* MC_CMD_SET_PARSER_DISP_CONFIG/MC_CMD_SET_PARSER_DISP_CONFIG_IN/TYPE */ 23265 /* handle for the entity to query: queue handle, EVB port ID, etc. depending on 23266 * the type of configuration setting being read 23267 */ 23268 #define MC_CMD_GET_PARSER_DISP_CONFIG_IN_ENTITY_OFST 4 23269 #define MC_CMD_GET_PARSER_DISP_CONFIG_IN_ENTITY_LEN 4 23270 23271 /* MC_CMD_GET_PARSER_DISP_CONFIG_OUT msgresponse */ 23272 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_LENMIN 4 23273 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_LENMAX 252 23274 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_LENMAX_MCDI2 1020 23275 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_LEN(num) (0+4*(num)) 23276 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_NUM(len) (((len)-0)/4) 23277 /* current value: the details depend on the type of configuration setting being 23278 * read 23279 */ 23280 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_OFST 0 23281 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_LEN 4 23282 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_MINNUM 1 23283 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_MAXNUM 63 23284 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_MAXNUM_MCDI2 255 23285 23286 23287 /***********************************/ 23288 /* MC_CMD_SET_TX_PORT_SNIFF_CONFIG 23289 * Configure TX port sniffing for the physical port associated with the calling 23290 * function. Only a privileged function may change the port sniffing 23291 * configuration. A copy of all traffic transmitted through the port may be 23292 * delivered to a specific queue, or a set of queues with RSS. Note that these 23293 * packets are delivered with transmit timestamps in the packet prefix, not 23294 * receive timestamps, so it is likely that the queue(s) will need to be 23295 * dedicated as TX sniff receivers. 23296 */ 23297 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG 0xfb 23298 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_MSGSET 0xfb 23299 #undef MC_CMD_0xfb_PRIVILEGE_CTG 23300 23301 #define MC_CMD_0xfb_PRIVILEGE_CTG SRIOV_CTG_ADMIN 23302 23303 /* MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN msgrequest */ 23304 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_LEN 16 23305 /* configuration flags */ 23306 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_FLAGS_OFST 0 23307 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_FLAGS_LEN 4 23308 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_ENABLE_OFST 0 23309 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_ENABLE_LBN 0 23310 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_ENABLE_WIDTH 1 23311 /* receive queue handle (for RSS mode, this is the base queue) */ 23312 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_QUEUE_OFST 4 23313 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_QUEUE_LEN 4 23314 /* receive mode */ 23315 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_MODE_OFST 8 23316 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_MODE_LEN 4 23317 /* enum: receive to just the specified queue */ 23318 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_MODE_SIMPLE 0x0 23319 /* enum: receive to multiple queues using RSS context */ 23320 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_MODE_RSS 0x1 23321 /* RSS context (for RX_MODE_RSS) as returned by MC_CMD_RSS_CONTEXT_ALLOC. Note 23322 * that these handles should be considered opaque to the host, although a value 23323 * of 0xFFFFFFFF is guaranteed never to be a valid handle. 23324 */ 23325 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_CONTEXT_OFST 12 23326 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_CONTEXT_LEN 4 23327 23328 /* MC_CMD_SET_TX_PORT_SNIFF_CONFIG_OUT msgresponse */ 23329 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_OUT_LEN 0 23330 23331 23332 /***********************************/ 23333 /* MC_CMD_GET_TX_PORT_SNIFF_CONFIG 23334 * Obtain the current TX port sniffing configuration for the physical port 23335 * associated with the calling function. Only a privileged function may read 23336 * the configuration. 23337 */ 23338 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG 0xfc 23339 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_MSGSET 0xfc 23340 #undef MC_CMD_0xfc_PRIVILEGE_CTG 23341 23342 #define MC_CMD_0xfc_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23343 23344 /* MC_CMD_GET_TX_PORT_SNIFF_CONFIG_IN msgrequest */ 23345 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_IN_LEN 0 23346 23347 /* MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT msgresponse */ 23348 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_LEN 16 23349 /* configuration flags */ 23350 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_FLAGS_OFST 0 23351 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_FLAGS_LEN 4 23352 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_ENABLE_OFST 0 23353 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_ENABLE_LBN 0 23354 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_ENABLE_WIDTH 1 23355 /* receiving queue handle (for RSS mode, this is the base queue) */ 23356 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_QUEUE_OFST 4 23357 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_QUEUE_LEN 4 23358 /* receive mode */ 23359 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_MODE_OFST 8 23360 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_MODE_LEN 4 23361 /* enum: receiving to just the specified queue */ 23362 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_MODE_SIMPLE 0x0 23363 /* enum: receiving to multiple queues using RSS context */ 23364 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_MODE_RSS 0x1 23365 /* RSS context (for RX_MODE_RSS) */ 23366 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_CONTEXT_OFST 12 23367 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_CONTEXT_LEN 4 23368 23369 23370 /***********************************/ 23371 /* MC_CMD_RMON_STATS_RX_ERRORS 23372 * Per queue rx error stats. 23373 */ 23374 #define MC_CMD_RMON_STATS_RX_ERRORS 0xfe 23375 #define MC_CMD_RMON_STATS_RX_ERRORS_MSGSET 0xfe 23376 #undef MC_CMD_0xfe_PRIVILEGE_CTG 23377 23378 #define MC_CMD_0xfe_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23379 23380 /* MC_CMD_RMON_STATS_RX_ERRORS_IN msgrequest */ 23381 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_LEN 8 23382 /* The rx queue to get stats for. */ 23383 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_RX_QUEUE_OFST 0 23384 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_RX_QUEUE_LEN 4 23385 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_FLAGS_OFST 4 23386 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_FLAGS_LEN 4 23387 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_RST_OFST 4 23388 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_RST_LBN 0 23389 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_RST_WIDTH 1 23390 23391 /* MC_CMD_RMON_STATS_RX_ERRORS_OUT msgresponse */ 23392 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_LEN 16 23393 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_CRC_ERRORS_OFST 0 23394 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_CRC_ERRORS_LEN 4 23395 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_TRUNC_ERRORS_OFST 4 23396 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_TRUNC_ERRORS_LEN 4 23397 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_RX_NO_DESC_DROPS_OFST 8 23398 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_RX_NO_DESC_DROPS_LEN 4 23399 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_RX_ABORT_OFST 12 23400 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_RX_ABORT_LEN 4 23401 23402 23403 /***********************************/ 23404 /* MC_CMD_GET_PCIE_RESOURCE_INFO 23405 * Find out about available PCIE resources 23406 */ 23407 #define MC_CMD_GET_PCIE_RESOURCE_INFO 0xfd 23408 #define MC_CMD_GET_PCIE_RESOURCE_INFO_MSGSET 0xfd 23409 #undef MC_CMD_0xfd_PRIVILEGE_CTG 23410 23411 #define MC_CMD_0xfd_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23412 23413 /* MC_CMD_GET_PCIE_RESOURCE_INFO_IN msgrequest */ 23414 #define MC_CMD_GET_PCIE_RESOURCE_INFO_IN_LEN 0 23415 23416 /* MC_CMD_GET_PCIE_RESOURCE_INFO_OUT msgresponse */ 23417 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_LEN 28 23418 /* The maximum number of PFs the device can expose */ 23419 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_PFS_OFST 0 23420 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_PFS_LEN 4 23421 /* The maximum number of VFs the device can expose in total */ 23422 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VFS_OFST 4 23423 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VFS_LEN 4 23424 /* The maximum number of MSI-X vectors the device can provide in total */ 23425 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VECTORS_OFST 8 23426 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VECTORS_LEN 4 23427 /* the number of MSI-X vectors the device will allocate by default to each PF 23428 */ 23429 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_DEFAULT_PF_VECTORS_OFST 12 23430 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_DEFAULT_PF_VECTORS_LEN 4 23431 /* the number of MSI-X vectors the device will allocate by default to each VF 23432 */ 23433 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_DEFAULT_VF_VECTORS_OFST 16 23434 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_DEFAULT_VF_VECTORS_LEN 4 23435 /* the maximum number of MSI-X vectors the device can allocate to any one PF */ 23436 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_PF_VECTORS_OFST 20 23437 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_PF_VECTORS_LEN 4 23438 /* the maximum number of MSI-X vectors the device can allocate to any one VF */ 23439 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VF_VECTORS_OFST 24 23440 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VF_VECTORS_LEN 4 23441 23442 23443 /***********************************/ 23444 /* MC_CMD_GET_PORT_MODES 23445 * Find out about available port modes 23446 */ 23447 #define MC_CMD_GET_PORT_MODES 0xff 23448 #define MC_CMD_GET_PORT_MODES_MSGSET 0xff 23449 #undef MC_CMD_0xff_PRIVILEGE_CTG 23450 23451 #define MC_CMD_0xff_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23452 23453 /* MC_CMD_GET_PORT_MODES_IN msgrequest */ 23454 #define MC_CMD_GET_PORT_MODES_IN_LEN 0 23455 23456 /* MC_CMD_GET_PORT_MODES_OUT msgresponse */ 23457 #define MC_CMD_GET_PORT_MODES_OUT_LEN 12 23458 /* Bitmask of port modes available on the board (indexed by TLV_PORT_MODE_*) 23459 * that are supported for customer use in production firmware. 23460 */ 23461 #define MC_CMD_GET_PORT_MODES_OUT_MODES_OFST 0 23462 #define MC_CMD_GET_PORT_MODES_OUT_MODES_LEN 4 23463 /* Default (canonical) board mode */ 23464 #define MC_CMD_GET_PORT_MODES_OUT_DEFAULT_MODE_OFST 4 23465 #define MC_CMD_GET_PORT_MODES_OUT_DEFAULT_MODE_LEN 4 23466 /* Current board mode */ 23467 #define MC_CMD_GET_PORT_MODES_OUT_CURRENT_MODE_OFST 8 23468 #define MC_CMD_GET_PORT_MODES_OUT_CURRENT_MODE_LEN 4 23469 23470 /* MC_CMD_GET_PORT_MODES_OUT_V2 msgresponse */ 23471 #define MC_CMD_GET_PORT_MODES_OUT_V2_LEN 16 23472 /* Bitmask of port modes available on the board (indexed by TLV_PORT_MODE_*) 23473 * that are supported for customer use in production firmware. 23474 */ 23475 #define MC_CMD_GET_PORT_MODES_OUT_V2_MODES_OFST 0 23476 #define MC_CMD_GET_PORT_MODES_OUT_V2_MODES_LEN 4 23477 /* Default (canonical) board mode */ 23478 #define MC_CMD_GET_PORT_MODES_OUT_V2_DEFAULT_MODE_OFST 4 23479 #define MC_CMD_GET_PORT_MODES_OUT_V2_DEFAULT_MODE_LEN 4 23480 /* Current board mode */ 23481 #define MC_CMD_GET_PORT_MODES_OUT_V2_CURRENT_MODE_OFST 8 23482 #define MC_CMD_GET_PORT_MODES_OUT_V2_CURRENT_MODE_LEN 4 23483 /* Bitmask of engineering port modes available on the board (indexed by 23484 * TLV_PORT_MODE_*). A superset of MC_CMD_GET_PORT_MODES_OUT/MODES that 23485 * contains all modes implemented in firmware for a particular board. Modes 23486 * listed in MODES are considered production modes and should be exposed in 23487 * userland tools. Modes listed in ENGINEERING_MODES, but not in MODES should 23488 * be considered hidden (not to be exposed in userland tools) and for 23489 * engineering use only. There are no other semantic differences and any mode 23490 * listed in either MODES or ENGINEERING_MODES can be set on the board. 23491 */ 23492 #define MC_CMD_GET_PORT_MODES_OUT_V2_ENGINEERING_MODES_OFST 12 23493 #define MC_CMD_GET_PORT_MODES_OUT_V2_ENGINEERING_MODES_LEN 4 23494 23495 23496 /***********************************/ 23497 /* MC_CMD_OVERRIDE_PORT_MODE 23498 * Override flash config port mode for subsequent MC reboot(s). Override data 23499 * is stored in the presistent data section of DMEM and activated on next MC 23500 * warm reboot. A cold reboot resets the override. It is assumed that a 23501 * sufficient number of PFs are available and that port mapping is valid for 23502 * the new port mode, as the override does not affect PF configuration. 23503 */ 23504 #define MC_CMD_OVERRIDE_PORT_MODE 0x137 23505 #define MC_CMD_OVERRIDE_PORT_MODE_MSGSET 0x137 23506 #undef MC_CMD_0x137_PRIVILEGE_CTG 23507 23508 #define MC_CMD_0x137_PRIVILEGE_CTG SRIOV_CTG_ADMIN 23509 23510 /* MC_CMD_OVERRIDE_PORT_MODE_IN msgrequest */ 23511 #define MC_CMD_OVERRIDE_PORT_MODE_IN_LEN 8 23512 #define MC_CMD_OVERRIDE_PORT_MODE_IN_FLAGS_OFST 0 23513 #define MC_CMD_OVERRIDE_PORT_MODE_IN_FLAGS_LEN 4 23514 #define MC_CMD_OVERRIDE_PORT_MODE_IN_ENABLE_OFST 0 23515 #define MC_CMD_OVERRIDE_PORT_MODE_IN_ENABLE_LBN 0 23516 #define MC_CMD_OVERRIDE_PORT_MODE_IN_ENABLE_WIDTH 1 23517 /* New mode (TLV_PORT_MODE_*) to set, if override enabled */ 23518 #define MC_CMD_OVERRIDE_PORT_MODE_IN_MODE_OFST 4 23519 #define MC_CMD_OVERRIDE_PORT_MODE_IN_MODE_LEN 4 23520 23521 /* MC_CMD_OVERRIDE_PORT_MODE_OUT msgresponse */ 23522 #define MC_CMD_OVERRIDE_PORT_MODE_OUT_LEN 0 23523 23524 23525 /***********************************/ 23526 /* MC_CMD_READ_ATB 23527 * Sample voltages on the ATB 23528 */ 23529 #define MC_CMD_READ_ATB 0x100 23530 #define MC_CMD_READ_ATB_MSGSET 0x100 23531 #undef MC_CMD_0x100_PRIVILEGE_CTG 23532 23533 #define MC_CMD_0x100_PRIVILEGE_CTG SRIOV_CTG_INSECURE 23534 23535 /* MC_CMD_READ_ATB_IN msgrequest */ 23536 #define MC_CMD_READ_ATB_IN_LEN 16 23537 #define MC_CMD_READ_ATB_IN_SIGNAL_BUS_OFST 0 23538 #define MC_CMD_READ_ATB_IN_SIGNAL_BUS_LEN 4 23539 #define MC_CMD_READ_ATB_IN_BUS_CCOM 0x0 /* enum */ 23540 #define MC_CMD_READ_ATB_IN_BUS_CKR 0x1 /* enum */ 23541 #define MC_CMD_READ_ATB_IN_BUS_CPCIE 0x8 /* enum */ 23542 #define MC_CMD_READ_ATB_IN_SIGNAL_EN_BITNO_OFST 4 23543 #define MC_CMD_READ_ATB_IN_SIGNAL_EN_BITNO_LEN 4 23544 #define MC_CMD_READ_ATB_IN_SIGNAL_SEL_OFST 8 23545 #define MC_CMD_READ_ATB_IN_SIGNAL_SEL_LEN 4 23546 #define MC_CMD_READ_ATB_IN_SETTLING_TIME_US_OFST 12 23547 #define MC_CMD_READ_ATB_IN_SETTLING_TIME_US_LEN 4 23548 23549 /* MC_CMD_READ_ATB_OUT msgresponse */ 23550 #define MC_CMD_READ_ATB_OUT_LEN 4 23551 #define MC_CMD_READ_ATB_OUT_SAMPLE_MV_OFST 0 23552 #define MC_CMD_READ_ATB_OUT_SAMPLE_MV_LEN 4 23553 23554 23555 /***********************************/ 23556 /* MC_CMD_GET_WORKAROUNDS 23557 * Read the list of all implemented and all currently enabled workarounds. The 23558 * enums here must correspond with those in MC_CMD_WORKAROUND. 23559 */ 23560 #define MC_CMD_GET_WORKAROUNDS 0x59 23561 #define MC_CMD_GET_WORKAROUNDS_MSGSET 0x59 23562 #undef MC_CMD_0x59_PRIVILEGE_CTG 23563 23564 #define MC_CMD_0x59_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23565 23566 /* MC_CMD_GET_WORKAROUNDS_OUT msgresponse */ 23567 #define MC_CMD_GET_WORKAROUNDS_OUT_LEN 8 23568 /* Each workaround is represented by a single bit according to the enums below. 23569 */ 23570 #define MC_CMD_GET_WORKAROUNDS_OUT_IMPLEMENTED_OFST 0 23571 #define MC_CMD_GET_WORKAROUNDS_OUT_IMPLEMENTED_LEN 4 23572 #define MC_CMD_GET_WORKAROUNDS_OUT_ENABLED_OFST 4 23573 #define MC_CMD_GET_WORKAROUNDS_OUT_ENABLED_LEN 4 23574 /* enum: Bug 17230 work around. */ 23575 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG17230 0x2 23576 /* enum: Bug 35388 work around (unsafe EVQ writes). */ 23577 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG35388 0x4 23578 /* enum: Bug35017 workaround (A64 tables must be identity map) */ 23579 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG35017 0x8 23580 /* enum: Bug 41750 present (MC_CMD_TRIGGER_INTERRUPT won't work) */ 23581 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG41750 0x10 23582 /* enum: Bug 42008 present (Interrupts can overtake associated events). Caution 23583 * - before adding code that queries this workaround, remember that there's 23584 * released Monza firmware that doesn't understand MC_CMD_WORKAROUND_BUG42008, 23585 * and will hence (incorrectly) report that the bug doesn't exist. 23586 */ 23587 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG42008 0x20 23588 /* enum: Bug 26807 features present in firmware (multicast filter chaining) */ 23589 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG26807 0x40 23590 /* enum: Bug 61265 work around (broken EVQ TMR writes). */ 23591 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG61265 0x80 23592 23593 23594 /***********************************/ 23595 /* MC_CMD_PRIVILEGE_MASK 23596 * Read/set privileges of an arbitrary PCIe function 23597 */ 23598 #define MC_CMD_PRIVILEGE_MASK 0x5a 23599 #define MC_CMD_PRIVILEGE_MASK_MSGSET 0x5a 23600 #undef MC_CMD_0x5a_PRIVILEGE_CTG 23601 23602 #define MC_CMD_0x5a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23603 23604 /* MC_CMD_PRIVILEGE_MASK_IN msgrequest */ 23605 #define MC_CMD_PRIVILEGE_MASK_IN_LEN 8 23606 /* The target function to have its mask read or set e.g. PF 0 = 0xFFFF0000, VF 23607 * 1,3 = 0x00030001 23608 */ 23609 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_OFST 0 23610 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_LEN 4 23611 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_PF_OFST 0 23612 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_PF_LBN 0 23613 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_PF_WIDTH 16 23614 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_VF_OFST 0 23615 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_VF_LBN 16 23616 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_VF_WIDTH 16 23617 #define MC_CMD_PRIVILEGE_MASK_IN_VF_NULL 0xffff /* enum */ 23618 /* New privilege mask to be set. The mask will only be changed if the MSB is 23619 * set to 1. 23620 */ 23621 #define MC_CMD_PRIVILEGE_MASK_IN_NEW_MASK_OFST 4 23622 #define MC_CMD_PRIVILEGE_MASK_IN_NEW_MASK_LEN 4 23623 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ADMIN 0x1 /* enum */ 23624 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_LINK 0x2 /* enum */ 23625 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ONLOAD 0x4 /* enum */ 23626 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_PTP 0x8 /* enum */ 23627 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_INSECURE_FILTERS 0x10 /* enum */ 23628 /* enum: Deprecated. Equivalent to MAC_SPOOFING_TX combined with CHANGE_MAC. */ 23629 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_MAC_SPOOFING 0x20 23630 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_UNICAST 0x40 /* enum */ 23631 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_MULTICAST 0x80 /* enum */ 23632 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_BROADCAST 0x100 /* enum */ 23633 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ALL_MULTICAST 0x200 /* enum */ 23634 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_PROMISCUOUS 0x400 /* enum */ 23635 /* enum: Allows to set the TX packets' source MAC address to any arbitrary MAC 23636 * adress. 23637 */ 23638 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_MAC_SPOOFING_TX 0x800 23639 /* enum: Privilege that allows a Function to change the MAC address configured 23640 * in its associated vAdapter/vPort. 23641 */ 23642 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_CHANGE_MAC 0x1000 23643 /* enum: Privilege that allows a Function to install filters that specify VLANs 23644 * that are not in the permit list for the associated vPort. This privilege is 23645 * primarily to support ESX where vPorts are created that restrict traffic to 23646 * only a set of permitted VLANs. See the vPort flag FLAG_VLAN_RESTRICT. 23647 */ 23648 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_UNRESTRICTED_VLAN 0x2000 23649 /* enum: Privilege for insecure commands. Commands that belong to this group 23650 * are not permitted on secure adapters regardless of the privilege mask. 23651 */ 23652 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_INSECURE 0x4000 23653 /* enum: Trusted Server Adapter (TSA) / ServerLock. Privilege for 23654 * administrator-level operations that are not allowed from the local host once 23655 * an adapter has Bound to a remote ServerLock Controller (see doxbox 23656 * SF-117064-DG for background). 23657 */ 23658 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ADMIN_TSA_UNBOUND 0x8000 23659 /* enum: Control the Match-Action Engine if present. See mcdi_mae.yml. */ 23660 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_MAE 0x10000 23661 /* enum: This Function/client may call MC_CMD_CLIENT_ALLOC to create new 23662 * dynamic client children of itself. 23663 */ 23664 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ALLOC_CLIENT 0x20000 23665 /* enum: A dynamic client with this privilege may perform all the same DMA 23666 * operations as the function client from which it is descended. 23667 */ 23668 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_FUNC_DMA 0x40000 23669 /* enum: A client with this privilege may perform DMA as any PCIe function on 23670 * the device and to on-device DDR. It allows clients to use TX-DESC2CMPT-DESC 23671 * descriptors, and to use TX-SEG-DESC and TX-MEM2MEM-DESC with an address 23672 * space override (i.e. with the ADDR_SPC_EN bit set). 23673 */ 23674 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ARBITRARY_DMA 0x80000 23675 /* enum: Set this bit to indicate that a new privilege mask is to be set, 23676 * otherwise the command will only read the existing mask. 23677 */ 23678 #define MC_CMD_PRIVILEGE_MASK_IN_DO_CHANGE 0x80000000 23679 23680 /* MC_CMD_PRIVILEGE_MASK_OUT msgresponse */ 23681 #define MC_CMD_PRIVILEGE_MASK_OUT_LEN 4 23682 /* For an admin function, always all the privileges are reported. */ 23683 #define MC_CMD_PRIVILEGE_MASK_OUT_OLD_MASK_OFST 0 23684 #define MC_CMD_PRIVILEGE_MASK_OUT_OLD_MASK_LEN 4 23685 23686 23687 /***********************************/ 23688 /* MC_CMD_LINK_STATE_MODE 23689 * Read/set link state mode of a VF 23690 */ 23691 #define MC_CMD_LINK_STATE_MODE 0x5c 23692 #define MC_CMD_LINK_STATE_MODE_MSGSET 0x5c 23693 #undef MC_CMD_0x5c_PRIVILEGE_CTG 23694 23695 #define MC_CMD_0x5c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23696 23697 /* MC_CMD_LINK_STATE_MODE_IN msgrequest */ 23698 #define MC_CMD_LINK_STATE_MODE_IN_LEN 8 23699 /* The target function to have its link state mode read or set, must be a VF 23700 * e.g. VF 1,3 = 0x00030001 23701 */ 23702 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_OFST 0 23703 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_LEN 4 23704 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_PF_OFST 0 23705 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_PF_LBN 0 23706 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_PF_WIDTH 16 23707 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_VF_OFST 0 23708 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_VF_LBN 16 23709 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_VF_WIDTH 16 23710 /* New link state mode to be set */ 23711 #define MC_CMD_LINK_STATE_MODE_IN_NEW_MODE_OFST 4 23712 #define MC_CMD_LINK_STATE_MODE_IN_NEW_MODE_LEN 4 23713 #define MC_CMD_LINK_STATE_MODE_IN_LINK_STATE_AUTO 0x0 /* enum */ 23714 #define MC_CMD_LINK_STATE_MODE_IN_LINK_STATE_UP 0x1 /* enum */ 23715 #define MC_CMD_LINK_STATE_MODE_IN_LINK_STATE_DOWN 0x2 /* enum */ 23716 /* enum: Use this value to just read the existing setting without modifying it. 23717 */ 23718 #define MC_CMD_LINK_STATE_MODE_IN_DO_NOT_CHANGE 0xffffffff 23719 23720 /* MC_CMD_LINK_STATE_MODE_OUT msgresponse */ 23721 #define MC_CMD_LINK_STATE_MODE_OUT_LEN 4 23722 #define MC_CMD_LINK_STATE_MODE_OUT_OLD_MODE_OFST 0 23723 #define MC_CMD_LINK_STATE_MODE_OUT_OLD_MODE_LEN 4 23724 23725 23726 /***********************************/ 23727 /* MC_CMD_GET_SNAPSHOT_LENGTH 23728 * Obtain the current range of allowable values for the SNAPSHOT_LENGTH 23729 * parameter to MC_CMD_INIT_RXQ. 23730 */ 23731 #define MC_CMD_GET_SNAPSHOT_LENGTH 0x101 23732 #define MC_CMD_GET_SNAPSHOT_LENGTH_MSGSET 0x101 23733 #undef MC_CMD_0x101_PRIVILEGE_CTG 23734 23735 #define MC_CMD_0x101_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23736 23737 /* MC_CMD_GET_SNAPSHOT_LENGTH_IN msgrequest */ 23738 #define MC_CMD_GET_SNAPSHOT_LENGTH_IN_LEN 0 23739 23740 /* MC_CMD_GET_SNAPSHOT_LENGTH_OUT msgresponse */ 23741 #define MC_CMD_GET_SNAPSHOT_LENGTH_OUT_LEN 8 23742 /* Minimum acceptable snapshot length. */ 23743 #define MC_CMD_GET_SNAPSHOT_LENGTH_OUT_RX_SNAPLEN_MIN_OFST 0 23744 #define MC_CMD_GET_SNAPSHOT_LENGTH_OUT_RX_SNAPLEN_MIN_LEN 4 23745 /* Maximum acceptable snapshot length. */ 23746 #define MC_CMD_GET_SNAPSHOT_LENGTH_OUT_RX_SNAPLEN_MAX_OFST 4 23747 #define MC_CMD_GET_SNAPSHOT_LENGTH_OUT_RX_SNAPLEN_MAX_LEN 4 23748 23749 23750 /***********************************/ 23751 /* MC_CMD_FUSE_DIAGS 23752 * Additional fuse diagnostics 23753 */ 23754 #define MC_CMD_FUSE_DIAGS 0x102 23755 #define MC_CMD_FUSE_DIAGS_MSGSET 0x102 23756 #undef MC_CMD_0x102_PRIVILEGE_CTG 23757 23758 #define MC_CMD_0x102_PRIVILEGE_CTG SRIOV_CTG_INSECURE 23759 23760 /* MC_CMD_FUSE_DIAGS_IN msgrequest */ 23761 #define MC_CMD_FUSE_DIAGS_IN_LEN 0 23762 23763 /* MC_CMD_FUSE_DIAGS_OUT msgresponse */ 23764 #define MC_CMD_FUSE_DIAGS_OUT_LEN 48 23765 /* Total number of mismatched bits between pairs in area 0 */ 23766 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_MISMATCH_BITS_OFST 0 23767 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_MISMATCH_BITS_LEN 4 23768 /* Total number of unexpectedly clear (set in B but not A) bits in area 0 */ 23769 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_PAIR_A_BAD_BITS_OFST 4 23770 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_PAIR_A_BAD_BITS_LEN 4 23771 /* Total number of unexpectedly clear (set in A but not B) bits in area 0 */ 23772 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_PAIR_B_BAD_BITS_OFST 8 23773 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_PAIR_B_BAD_BITS_LEN 4 23774 /* Checksum of data after logical OR of pairs in area 0 */ 23775 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_CHECKSUM_OFST 12 23776 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_CHECKSUM_LEN 4 23777 /* Total number of mismatched bits between pairs in area 1 */ 23778 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_MISMATCH_BITS_OFST 16 23779 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_MISMATCH_BITS_LEN 4 23780 /* Total number of unexpectedly clear (set in B but not A) bits in area 1 */ 23781 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_PAIR_A_BAD_BITS_OFST 20 23782 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_PAIR_A_BAD_BITS_LEN 4 23783 /* Total number of unexpectedly clear (set in A but not B) bits in area 1 */ 23784 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_PAIR_B_BAD_BITS_OFST 24 23785 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_PAIR_B_BAD_BITS_LEN 4 23786 /* Checksum of data after logical OR of pairs in area 1 */ 23787 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_CHECKSUM_OFST 28 23788 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_CHECKSUM_LEN 4 23789 /* Total number of mismatched bits between pairs in area 2 */ 23790 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_MISMATCH_BITS_OFST 32 23791 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_MISMATCH_BITS_LEN 4 23792 /* Total number of unexpectedly clear (set in B but not A) bits in area 2 */ 23793 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_PAIR_A_BAD_BITS_OFST 36 23794 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_PAIR_A_BAD_BITS_LEN 4 23795 /* Total number of unexpectedly clear (set in A but not B) bits in area 2 */ 23796 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_PAIR_B_BAD_BITS_OFST 40 23797 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_PAIR_B_BAD_BITS_LEN 4 23798 /* Checksum of data after logical OR of pairs in area 2 */ 23799 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_CHECKSUM_OFST 44 23800 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_CHECKSUM_LEN 4 23801 23802 23803 /***********************************/ 23804 /* MC_CMD_PRIVILEGE_MODIFY 23805 * Modify the privileges of a set of PCIe functions. Note that this operation 23806 * only effects non-admin functions unless the admin privilege itself is 23807 * included in one of the masks provided. 23808 */ 23809 #define MC_CMD_PRIVILEGE_MODIFY 0x60 23810 #define MC_CMD_PRIVILEGE_MODIFY_MSGSET 0x60 23811 #undef MC_CMD_0x60_PRIVILEGE_CTG 23812 23813 #define MC_CMD_0x60_PRIVILEGE_CTG SRIOV_CTG_ADMIN 23814 23815 /* MC_CMD_PRIVILEGE_MODIFY_IN msgrequest */ 23816 #define MC_CMD_PRIVILEGE_MODIFY_IN_LEN 16 23817 /* The groups of functions to have their privilege masks modified. */ 23818 #define MC_CMD_PRIVILEGE_MODIFY_IN_FN_GROUP_OFST 0 23819 #define MC_CMD_PRIVILEGE_MODIFY_IN_FN_GROUP_LEN 4 23820 #define MC_CMD_PRIVILEGE_MODIFY_IN_NONE 0x0 /* enum */ 23821 #define MC_CMD_PRIVILEGE_MODIFY_IN_ALL 0x1 /* enum */ 23822 #define MC_CMD_PRIVILEGE_MODIFY_IN_PFS_ONLY 0x2 /* enum */ 23823 #define MC_CMD_PRIVILEGE_MODIFY_IN_VFS_ONLY 0x3 /* enum */ 23824 #define MC_CMD_PRIVILEGE_MODIFY_IN_VFS_OF_PF 0x4 /* enum */ 23825 #define MC_CMD_PRIVILEGE_MODIFY_IN_ONE 0x5 /* enum */ 23826 /* For VFS_OF_PF specify the PF, for ONE specify the target function */ 23827 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_OFST 4 23828 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_LEN 4 23829 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_PF_OFST 4 23830 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_PF_LBN 0 23831 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_PF_WIDTH 16 23832 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_VF_OFST 4 23833 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_VF_LBN 16 23834 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_VF_WIDTH 16 23835 /* Privileges to be added to the target functions. For privilege definitions 23836 * refer to the command MC_CMD_PRIVILEGE_MASK 23837 */ 23838 #define MC_CMD_PRIVILEGE_MODIFY_IN_ADD_MASK_OFST 8 23839 #define MC_CMD_PRIVILEGE_MODIFY_IN_ADD_MASK_LEN 4 23840 /* Privileges to be removed from the target functions. For privilege 23841 * definitions refer to the command MC_CMD_PRIVILEGE_MASK 23842 */ 23843 #define MC_CMD_PRIVILEGE_MODIFY_IN_REMOVE_MASK_OFST 12 23844 #define MC_CMD_PRIVILEGE_MODIFY_IN_REMOVE_MASK_LEN 4 23845 23846 /* MC_CMD_PRIVILEGE_MODIFY_OUT msgresponse */ 23847 #define MC_CMD_PRIVILEGE_MODIFY_OUT_LEN 0 23848 23849 23850 /***********************************/ 23851 /* MC_CMD_XPM_READ_BYTES 23852 * Read XPM memory 23853 */ 23854 #define MC_CMD_XPM_READ_BYTES 0x103 23855 #define MC_CMD_XPM_READ_BYTES_MSGSET 0x103 23856 #undef MC_CMD_0x103_PRIVILEGE_CTG 23857 23858 #define MC_CMD_0x103_PRIVILEGE_CTG SRIOV_CTG_ADMIN 23859 23860 /* MC_CMD_XPM_READ_BYTES_IN msgrequest */ 23861 #define MC_CMD_XPM_READ_BYTES_IN_LEN 8 23862 /* Start address (byte) */ 23863 #define MC_CMD_XPM_READ_BYTES_IN_ADDR_OFST 0 23864 #define MC_CMD_XPM_READ_BYTES_IN_ADDR_LEN 4 23865 /* Count (bytes) */ 23866 #define MC_CMD_XPM_READ_BYTES_IN_COUNT_OFST 4 23867 #define MC_CMD_XPM_READ_BYTES_IN_COUNT_LEN 4 23868 23869 /* MC_CMD_XPM_READ_BYTES_OUT msgresponse */ 23870 #define MC_CMD_XPM_READ_BYTES_OUT_LENMIN 0 23871 #define MC_CMD_XPM_READ_BYTES_OUT_LENMAX 252 23872 #define MC_CMD_XPM_READ_BYTES_OUT_LENMAX_MCDI2 1020 23873 #define MC_CMD_XPM_READ_BYTES_OUT_LEN(num) (0+1*(num)) 23874 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_NUM(len) (((len)-0)/1) 23875 /* Data */ 23876 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_OFST 0 23877 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_LEN 1 23878 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_MINNUM 0 23879 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_MAXNUM 252 23880 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_MAXNUM_MCDI2 1020 23881 23882 23883 /***********************************/ 23884 /* MC_CMD_XPM_WRITE_BYTES 23885 * Write XPM memory 23886 */ 23887 #define MC_CMD_XPM_WRITE_BYTES 0x104 23888 #define MC_CMD_XPM_WRITE_BYTES_MSGSET 0x104 23889 #undef MC_CMD_0x104_PRIVILEGE_CTG 23890 23891 #define MC_CMD_0x104_PRIVILEGE_CTG SRIOV_CTG_INSECURE 23892 23893 /* MC_CMD_XPM_WRITE_BYTES_IN msgrequest */ 23894 #define MC_CMD_XPM_WRITE_BYTES_IN_LENMIN 8 23895 #define MC_CMD_XPM_WRITE_BYTES_IN_LENMAX 252 23896 #define MC_CMD_XPM_WRITE_BYTES_IN_LENMAX_MCDI2 1020 23897 #define MC_CMD_XPM_WRITE_BYTES_IN_LEN(num) (8+1*(num)) 23898 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_NUM(len) (((len)-8)/1) 23899 /* Start address (byte) */ 23900 #define MC_CMD_XPM_WRITE_BYTES_IN_ADDR_OFST 0 23901 #define MC_CMD_XPM_WRITE_BYTES_IN_ADDR_LEN 4 23902 /* Count (bytes) */ 23903 #define MC_CMD_XPM_WRITE_BYTES_IN_COUNT_OFST 4 23904 #define MC_CMD_XPM_WRITE_BYTES_IN_COUNT_LEN 4 23905 /* Data */ 23906 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_OFST 8 23907 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_LEN 1 23908 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_MINNUM 0 23909 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_MAXNUM 244 23910 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_MAXNUM_MCDI2 1012 23911 23912 /* MC_CMD_XPM_WRITE_BYTES_OUT msgresponse */ 23913 #define MC_CMD_XPM_WRITE_BYTES_OUT_LEN 0 23914 23915 23916 /***********************************/ 23917 /* MC_CMD_XPM_READ_SECTOR 23918 * Read XPM sector 23919 */ 23920 #define MC_CMD_XPM_READ_SECTOR 0x105 23921 #define MC_CMD_XPM_READ_SECTOR_MSGSET 0x105 23922 #undef MC_CMD_0x105_PRIVILEGE_CTG 23923 23924 #define MC_CMD_0x105_PRIVILEGE_CTG SRIOV_CTG_INSECURE 23925 23926 /* MC_CMD_XPM_READ_SECTOR_IN msgrequest */ 23927 #define MC_CMD_XPM_READ_SECTOR_IN_LEN 8 23928 /* Sector index */ 23929 #define MC_CMD_XPM_READ_SECTOR_IN_INDEX_OFST 0 23930 #define MC_CMD_XPM_READ_SECTOR_IN_INDEX_LEN 4 23931 /* Sector size */ 23932 #define MC_CMD_XPM_READ_SECTOR_IN_SIZE_OFST 4 23933 #define MC_CMD_XPM_READ_SECTOR_IN_SIZE_LEN 4 23934 23935 /* MC_CMD_XPM_READ_SECTOR_OUT msgresponse */ 23936 #define MC_CMD_XPM_READ_SECTOR_OUT_LENMIN 4 23937 #define MC_CMD_XPM_READ_SECTOR_OUT_LENMAX 36 23938 #define MC_CMD_XPM_READ_SECTOR_OUT_LENMAX_MCDI2 36 23939 #define MC_CMD_XPM_READ_SECTOR_OUT_LEN(num) (4+1*(num)) 23940 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_NUM(len) (((len)-4)/1) 23941 /* Sector type */ 23942 #define MC_CMD_XPM_READ_SECTOR_OUT_TYPE_OFST 0 23943 #define MC_CMD_XPM_READ_SECTOR_OUT_TYPE_LEN 4 23944 #define MC_CMD_XPM_READ_SECTOR_OUT_BLANK 0x0 /* enum */ 23945 #define MC_CMD_XPM_READ_SECTOR_OUT_CRYPTO_KEY_128 0x1 /* enum */ 23946 #define MC_CMD_XPM_READ_SECTOR_OUT_CRYPTO_KEY_256 0x2 /* enum */ 23947 #define MC_CMD_XPM_READ_SECTOR_OUT_CRYPTO_DATA 0x3 /* enum */ 23948 #define MC_CMD_XPM_READ_SECTOR_OUT_INVALID 0xff /* enum */ 23949 /* Sector data */ 23950 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_OFST 4 23951 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_LEN 1 23952 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_MINNUM 0 23953 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_MAXNUM 32 23954 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_MAXNUM_MCDI2 32 23955 23956 23957 /***********************************/ 23958 /* MC_CMD_XPM_WRITE_SECTOR 23959 * Write XPM sector 23960 */ 23961 #define MC_CMD_XPM_WRITE_SECTOR 0x106 23962 #define MC_CMD_XPM_WRITE_SECTOR_MSGSET 0x106 23963 #undef MC_CMD_0x106_PRIVILEGE_CTG 23964 23965 #define MC_CMD_0x106_PRIVILEGE_CTG SRIOV_CTG_INSECURE 23966 23967 /* MC_CMD_XPM_WRITE_SECTOR_IN msgrequest */ 23968 #define MC_CMD_XPM_WRITE_SECTOR_IN_LENMIN 12 23969 #define MC_CMD_XPM_WRITE_SECTOR_IN_LENMAX 44 23970 #define MC_CMD_XPM_WRITE_SECTOR_IN_LENMAX_MCDI2 44 23971 #define MC_CMD_XPM_WRITE_SECTOR_IN_LEN(num) (12+1*(num)) 23972 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_NUM(len) (((len)-12)/1) 23973 /* If writing fails due to an uncorrectable error, try up to RETRIES following 23974 * sectors (or until no more space available). If 0, only one write attempt is 23975 * made. Note that uncorrectable errors are unlikely, thanks to XPM self-repair 23976 * mechanism. 23977 */ 23978 #define MC_CMD_XPM_WRITE_SECTOR_IN_RETRIES_OFST 0 23979 #define MC_CMD_XPM_WRITE_SECTOR_IN_RETRIES_LEN 1 23980 #define MC_CMD_XPM_WRITE_SECTOR_IN_RESERVED_OFST 1 23981 #define MC_CMD_XPM_WRITE_SECTOR_IN_RESERVED_LEN 3 23982 /* Sector type */ 23983 #define MC_CMD_XPM_WRITE_SECTOR_IN_TYPE_OFST 4 23984 #define MC_CMD_XPM_WRITE_SECTOR_IN_TYPE_LEN 4 23985 /* Enum values, see field(s): */ 23986 /* MC_CMD_XPM_READ_SECTOR/MC_CMD_XPM_READ_SECTOR_OUT/TYPE */ 23987 /* Sector size */ 23988 #define MC_CMD_XPM_WRITE_SECTOR_IN_SIZE_OFST 8 23989 #define MC_CMD_XPM_WRITE_SECTOR_IN_SIZE_LEN 4 23990 /* Sector data */ 23991 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_OFST 12 23992 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_LEN 1 23993 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_MINNUM 0 23994 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_MAXNUM 32 23995 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_MAXNUM_MCDI2 32 23996 23997 /* MC_CMD_XPM_WRITE_SECTOR_OUT msgresponse */ 23998 #define MC_CMD_XPM_WRITE_SECTOR_OUT_LEN 4 23999 /* New sector index */ 24000 #define MC_CMD_XPM_WRITE_SECTOR_OUT_INDEX_OFST 0 24001 #define MC_CMD_XPM_WRITE_SECTOR_OUT_INDEX_LEN 4 24002 24003 24004 /***********************************/ 24005 /* MC_CMD_XPM_INVALIDATE_SECTOR 24006 * Invalidate XPM sector 24007 */ 24008 #define MC_CMD_XPM_INVALIDATE_SECTOR 0x107 24009 #define MC_CMD_XPM_INVALIDATE_SECTOR_MSGSET 0x107 24010 #undef MC_CMD_0x107_PRIVILEGE_CTG 24011 24012 #define MC_CMD_0x107_PRIVILEGE_CTG SRIOV_CTG_INSECURE 24013 24014 /* MC_CMD_XPM_INVALIDATE_SECTOR_IN msgrequest */ 24015 #define MC_CMD_XPM_INVALIDATE_SECTOR_IN_LEN 4 24016 /* Sector index */ 24017 #define MC_CMD_XPM_INVALIDATE_SECTOR_IN_INDEX_OFST 0 24018 #define MC_CMD_XPM_INVALIDATE_SECTOR_IN_INDEX_LEN 4 24019 24020 /* MC_CMD_XPM_INVALIDATE_SECTOR_OUT msgresponse */ 24021 #define MC_CMD_XPM_INVALIDATE_SECTOR_OUT_LEN 0 24022 24023 24024 /***********************************/ 24025 /* MC_CMD_XPM_BLANK_CHECK 24026 * Blank-check XPM memory and report bad locations 24027 */ 24028 #define MC_CMD_XPM_BLANK_CHECK 0x108 24029 #define MC_CMD_XPM_BLANK_CHECK_MSGSET 0x108 24030 #undef MC_CMD_0x108_PRIVILEGE_CTG 24031 24032 #define MC_CMD_0x108_PRIVILEGE_CTG SRIOV_CTG_INSECURE 24033 24034 /* MC_CMD_XPM_BLANK_CHECK_IN msgrequest */ 24035 #define MC_CMD_XPM_BLANK_CHECK_IN_LEN 8 24036 /* Start address (byte) */ 24037 #define MC_CMD_XPM_BLANK_CHECK_IN_ADDR_OFST 0 24038 #define MC_CMD_XPM_BLANK_CHECK_IN_ADDR_LEN 4 24039 /* Count (bytes) */ 24040 #define MC_CMD_XPM_BLANK_CHECK_IN_COUNT_OFST 4 24041 #define MC_CMD_XPM_BLANK_CHECK_IN_COUNT_LEN 4 24042 24043 /* MC_CMD_XPM_BLANK_CHECK_OUT msgresponse */ 24044 #define MC_CMD_XPM_BLANK_CHECK_OUT_LENMIN 4 24045 #define MC_CMD_XPM_BLANK_CHECK_OUT_LENMAX 252 24046 #define MC_CMD_XPM_BLANK_CHECK_OUT_LENMAX_MCDI2 1020 24047 #define MC_CMD_XPM_BLANK_CHECK_OUT_LEN(num) (4+2*(num)) 24048 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_NUM(len) (((len)-4)/2) 24049 /* Total number of bad (non-blank) locations */ 24050 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_COUNT_OFST 0 24051 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_COUNT_LEN 4 24052 /* Addresses of bad locations (may be less than BAD_COUNT, if all cannot fit 24053 * into MCDI response) 24054 */ 24055 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_OFST 4 24056 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_LEN 2 24057 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_MINNUM 0 24058 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_MAXNUM 124 24059 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_MAXNUM_MCDI2 508 24060 24061 24062 /***********************************/ 24063 /* MC_CMD_XPM_REPAIR 24064 * Blank-check and repair XPM memory 24065 */ 24066 #define MC_CMD_XPM_REPAIR 0x109 24067 #define MC_CMD_XPM_REPAIR_MSGSET 0x109 24068 #undef MC_CMD_0x109_PRIVILEGE_CTG 24069 24070 #define MC_CMD_0x109_PRIVILEGE_CTG SRIOV_CTG_INSECURE 24071 24072 /* MC_CMD_XPM_REPAIR_IN msgrequest */ 24073 #define MC_CMD_XPM_REPAIR_IN_LEN 8 24074 /* Start address (byte) */ 24075 #define MC_CMD_XPM_REPAIR_IN_ADDR_OFST 0 24076 #define MC_CMD_XPM_REPAIR_IN_ADDR_LEN 4 24077 /* Count (bytes) */ 24078 #define MC_CMD_XPM_REPAIR_IN_COUNT_OFST 4 24079 #define MC_CMD_XPM_REPAIR_IN_COUNT_LEN 4 24080 24081 /* MC_CMD_XPM_REPAIR_OUT msgresponse */ 24082 #define MC_CMD_XPM_REPAIR_OUT_LEN 0 24083 24084 24085 /***********************************/ 24086 /* MC_CMD_XPM_DECODER_TEST 24087 * Test XPM memory address decoders for gross manufacturing defects. Can only 24088 * be performed on an unprogrammed part. 24089 */ 24090 #define MC_CMD_XPM_DECODER_TEST 0x10a 24091 #define MC_CMD_XPM_DECODER_TEST_MSGSET 0x10a 24092 #undef MC_CMD_0x10a_PRIVILEGE_CTG 24093 24094 #define MC_CMD_0x10a_PRIVILEGE_CTG SRIOV_CTG_INSECURE 24095 24096 /* MC_CMD_XPM_DECODER_TEST_IN msgrequest */ 24097 #define MC_CMD_XPM_DECODER_TEST_IN_LEN 0 24098 24099 /* MC_CMD_XPM_DECODER_TEST_OUT msgresponse */ 24100 #define MC_CMD_XPM_DECODER_TEST_OUT_LEN 0 24101 24102 24103 /***********************************/ 24104 /* MC_CMD_XPM_WRITE_TEST 24105 * XPM memory write test. Test XPM write logic for gross manufacturing defects 24106 * by writing to a dedicated test row. There are 16 locations in the test row 24107 * and the test can only be performed on locations that have not been 24108 * previously used (i.e. can be run at most 16 times). The test will pick the 24109 * first available location to use, or fail with ENOSPC if none left. 24110 */ 24111 #define MC_CMD_XPM_WRITE_TEST 0x10b 24112 #define MC_CMD_XPM_WRITE_TEST_MSGSET 0x10b 24113 #undef MC_CMD_0x10b_PRIVILEGE_CTG 24114 24115 #define MC_CMD_0x10b_PRIVILEGE_CTG SRIOV_CTG_INSECURE 24116 24117 /* MC_CMD_XPM_WRITE_TEST_IN msgrequest */ 24118 #define MC_CMD_XPM_WRITE_TEST_IN_LEN 0 24119 24120 /* MC_CMD_XPM_WRITE_TEST_OUT msgresponse */ 24121 #define MC_CMD_XPM_WRITE_TEST_OUT_LEN 0 24122 24123 24124 /***********************************/ 24125 /* MC_CMD_EXEC_SIGNED 24126 * Check the CMAC of the contents of IMEM and DMEM against the value supplied 24127 * and if correct begin execution from the start of IMEM. The caller supplies a 24128 * key ID, the length of IMEM and DMEM to validate and the expected CMAC. CMAC 24129 * computation runs from the start of IMEM, and from the start of DMEM + 16k, 24130 * to match flash booting. The command will respond with EINVAL if the CMAC 24131 * does match, otherwise it will respond with success before it jumps to IMEM. 24132 */ 24133 #define MC_CMD_EXEC_SIGNED 0x10c 24134 #define MC_CMD_EXEC_SIGNED_MSGSET 0x10c 24135 #undef MC_CMD_0x10c_PRIVILEGE_CTG 24136 24137 #define MC_CMD_0x10c_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 24138 24139 /* MC_CMD_EXEC_SIGNED_IN msgrequest */ 24140 #define MC_CMD_EXEC_SIGNED_IN_LEN 28 24141 /* the length of code to include in the CMAC */ 24142 #define MC_CMD_EXEC_SIGNED_IN_CODELEN_OFST 0 24143 #define MC_CMD_EXEC_SIGNED_IN_CODELEN_LEN 4 24144 /* the length of date to include in the CMAC */ 24145 #define MC_CMD_EXEC_SIGNED_IN_DATALEN_OFST 4 24146 #define MC_CMD_EXEC_SIGNED_IN_DATALEN_LEN 4 24147 /* the XPM sector containing the key to use */ 24148 #define MC_CMD_EXEC_SIGNED_IN_KEYSECTOR_OFST 8 24149 #define MC_CMD_EXEC_SIGNED_IN_KEYSECTOR_LEN 4 24150 /* the expected CMAC value */ 24151 #define MC_CMD_EXEC_SIGNED_IN_CMAC_OFST 12 24152 #define MC_CMD_EXEC_SIGNED_IN_CMAC_LEN 16 24153 24154 /* MC_CMD_EXEC_SIGNED_OUT msgresponse */ 24155 #define MC_CMD_EXEC_SIGNED_OUT_LEN 0 24156 24157 24158 /***********************************/ 24159 /* MC_CMD_PREPARE_SIGNED 24160 * Prepare to upload a signed image. This will scrub the specified length of 24161 * the data region, which must be at least as large as the DATALEN supplied to 24162 * MC_CMD_EXEC_SIGNED. 24163 */ 24164 #define MC_CMD_PREPARE_SIGNED 0x10d 24165 #define MC_CMD_PREPARE_SIGNED_MSGSET 0x10d 24166 #undef MC_CMD_0x10d_PRIVILEGE_CTG 24167 24168 #define MC_CMD_0x10d_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 24169 24170 /* MC_CMD_PREPARE_SIGNED_IN msgrequest */ 24171 #define MC_CMD_PREPARE_SIGNED_IN_LEN 4 24172 /* the length of data area to clear */ 24173 #define MC_CMD_PREPARE_SIGNED_IN_DATALEN_OFST 0 24174 #define MC_CMD_PREPARE_SIGNED_IN_DATALEN_LEN 4 24175 24176 /* MC_CMD_PREPARE_SIGNED_OUT msgresponse */ 24177 #define MC_CMD_PREPARE_SIGNED_OUT_LEN 0 24178 24179 24180 /***********************************/ 24181 /* MC_CMD_SET_SECURITY_RULE 24182 * Set blacklist and/or whitelist action for a particular match criteria. 24183 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See 24184 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 24185 * been used in any released code and may change during development. This note 24186 * will be removed once it is regarded as stable. 24187 */ 24188 #define MC_CMD_SET_SECURITY_RULE 0x10f 24189 #define MC_CMD_SET_SECURITY_RULE_MSGSET 0x10f 24190 #undef MC_CMD_0x10f_PRIVILEGE_CTG 24191 24192 #define MC_CMD_0x10f_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 24193 24194 /* MC_CMD_SET_SECURITY_RULE_IN msgrequest */ 24195 #define MC_CMD_SET_SECURITY_RULE_IN_LEN 92 24196 /* fields to include in match criteria */ 24197 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_FIELDS_OFST 0 24198 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_FIELDS_LEN 4 24199 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_IP_OFST 0 24200 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_IP_LBN 0 24201 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_IP_WIDTH 1 24202 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_IP_OFST 0 24203 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_IP_LBN 1 24204 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_IP_WIDTH 1 24205 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_MAC_OFST 0 24206 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_MAC_LBN 2 24207 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_MAC_WIDTH 1 24208 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORT_OFST 0 24209 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORT_LBN 3 24210 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORT_WIDTH 1 24211 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_MAC_OFST 0 24212 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_MAC_LBN 4 24213 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_MAC_WIDTH 1 24214 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORT_OFST 0 24215 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORT_LBN 5 24216 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORT_WIDTH 1 24217 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_ETHER_TYPE_OFST 0 24218 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_ETHER_TYPE_LBN 6 24219 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_ETHER_TYPE_WIDTH 1 24220 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_INNER_VLAN_OFST 0 24221 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_INNER_VLAN_LBN 7 24222 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_INNER_VLAN_WIDTH 1 24223 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_OUTER_VLAN_OFST 0 24224 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_OUTER_VLAN_LBN 8 24225 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_OUTER_VLAN_WIDTH 1 24226 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_IP_PROTO_OFST 0 24227 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_IP_PROTO_LBN 9 24228 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_IP_PROTO_WIDTH 1 24229 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_PHYSICAL_PORT_OFST 0 24230 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_PHYSICAL_PORT_LBN 10 24231 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_PHYSICAL_PORT_WIDTH 1 24232 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_RESERVED_OFST 0 24233 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_RESERVED_LBN 11 24234 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_RESERVED_WIDTH 1 24235 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_SUBNET_ID_OFST 0 24236 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_SUBNET_ID_LBN 12 24237 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_SUBNET_ID_WIDTH 1 24238 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORTRANGE_ID_OFST 0 24239 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORTRANGE_ID_LBN 13 24240 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORTRANGE_ID_WIDTH 1 24241 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORTRANGE_ID_OFST 0 24242 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORTRANGE_ID_LBN 14 24243 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORTRANGE_ID_WIDTH 1 24244 /* remote MAC address to match (as bytes in network order) */ 24245 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_MAC_OFST 4 24246 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_MAC_LEN 6 24247 /* remote port to match (as bytes in network order) */ 24248 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_PORT_OFST 10 24249 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_PORT_LEN 2 24250 /* local MAC address to match (as bytes in network order) */ 24251 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_MAC_OFST 12 24252 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_MAC_LEN 6 24253 /* local port to match (as bytes in network order) */ 24254 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_PORT_OFST 18 24255 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_PORT_LEN 2 24256 /* Ethernet type to match (as bytes in network order) */ 24257 #define MC_CMD_SET_SECURITY_RULE_IN_ETHER_TYPE_OFST 20 24258 #define MC_CMD_SET_SECURITY_RULE_IN_ETHER_TYPE_LEN 2 24259 /* Inner VLAN tag to match (as bytes in network order) */ 24260 #define MC_CMD_SET_SECURITY_RULE_IN_INNER_VLAN_OFST 22 24261 #define MC_CMD_SET_SECURITY_RULE_IN_INNER_VLAN_LEN 2 24262 /* Outer VLAN tag to match (as bytes in network order) */ 24263 #define MC_CMD_SET_SECURITY_RULE_IN_OUTER_VLAN_OFST 24 24264 #define MC_CMD_SET_SECURITY_RULE_IN_OUTER_VLAN_LEN 2 24265 /* IP protocol to match (in low byte; set high byte to 0) */ 24266 #define MC_CMD_SET_SECURITY_RULE_IN_IP_PROTO_OFST 26 24267 #define MC_CMD_SET_SECURITY_RULE_IN_IP_PROTO_LEN 2 24268 /* Physical port to match (as little-endian 32-bit value) */ 24269 #define MC_CMD_SET_SECURITY_RULE_IN_PHYSICAL_PORT_OFST 28 24270 #define MC_CMD_SET_SECURITY_RULE_IN_PHYSICAL_PORT_LEN 4 24271 /* Reserved; set to 0 */ 24272 #define MC_CMD_SET_SECURITY_RULE_IN_RESERVED_OFST 32 24273 #define MC_CMD_SET_SECURITY_RULE_IN_RESERVED_LEN 4 24274 /* remote IP address to match (as bytes in network order; set last 12 bytes to 24275 * 0 for IPv4 address) 24276 */ 24277 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_IP_OFST 36 24278 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_IP_LEN 16 24279 /* local IP address to match (as bytes in network order; set last 12 bytes to 0 24280 * for IPv4 address) 24281 */ 24282 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_IP_OFST 52 24283 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_IP_LEN 16 24284 /* remote subnet ID to match (as little-endian 32-bit value); note that remote 24285 * subnets are matched by mapping the remote IP address to a "subnet ID" via a 24286 * data structure which must already have been configured using 24287 * MC_CMD_SUBNET_MAP_SET_NODE appropriately 24288 */ 24289 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_SUBNET_ID_OFST 68 24290 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_SUBNET_ID_LEN 4 24291 /* remote portrange ID to match (as little-endian 32-bit value); note that 24292 * remote port ranges are matched by mapping the remote port to a "portrange 24293 * ID" via a data structure which must already have been configured using 24294 * MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE 24295 */ 24296 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_PORTRANGE_ID_OFST 72 24297 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_PORTRANGE_ID_LEN 4 24298 /* local portrange ID to match (as little-endian 32-bit value); note that local 24299 * port ranges are matched by mapping the local port to a "portrange ID" via a 24300 * data structure which must already have been configured using 24301 * MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE 24302 */ 24303 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_PORTRANGE_ID_OFST 76 24304 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_PORTRANGE_ID_LEN 4 24305 /* set the action for transmitted packets matching this rule */ 24306 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_OFST 80 24307 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_LEN 4 24308 /* enum: make no decision */ 24309 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_NONE 0x0 24310 /* enum: decide to accept the packet */ 24311 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_WHITELIST 0x1 24312 /* enum: decide to drop the packet */ 24313 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_BLACKLIST 0x2 24314 /* enum: inform the TSA controller about some sample of packets matching this 24315 * rule (via MC_CMD_TSA_INFO_IN_PKT_SAMPLE messages); may be bitwise-ORed with 24316 * either the WHITELIST or BLACKLIST action 24317 */ 24318 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_SAMPLE 0x4 24319 /* enum: do not change the current TX action */ 24320 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_UNCHANGED 0xffffffff 24321 /* set the action for received packets matching this rule */ 24322 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_OFST 84 24323 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_LEN 4 24324 /* enum: make no decision */ 24325 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_NONE 0x0 24326 /* enum: decide to accept the packet */ 24327 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_WHITELIST 0x1 24328 /* enum: decide to drop the packet */ 24329 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_BLACKLIST 0x2 24330 /* enum: inform the TSA controller about some sample of packets matching this 24331 * rule (via MC_CMD_TSA_INFO_IN_PKT_SAMPLE messages); may be bitwise-ORed with 24332 * either the WHITELIST or BLACKLIST action 24333 */ 24334 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_SAMPLE 0x4 24335 /* enum: do not change the current RX action */ 24336 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_UNCHANGED 0xffffffff 24337 /* counter ID to associate with this rule; IDs are allocated using 24338 * MC_CMD_SECURITY_RULE_COUNTER_ALLOC 24339 */ 24340 #define MC_CMD_SET_SECURITY_RULE_IN_COUNTER_ID_OFST 88 24341 #define MC_CMD_SET_SECURITY_RULE_IN_COUNTER_ID_LEN 4 24342 /* enum: special value for the null counter ID */ 24343 #define MC_CMD_SET_SECURITY_RULE_IN_COUNTER_ID_NONE 0x0 24344 /* enum: special value to tell the MC to allocate an available counter */ 24345 #define MC_CMD_SET_SECURITY_RULE_IN_COUNTER_ID_SW_AUTO 0xeeeeeeee 24346 /* enum: special value to request use of hardware counter (Medford2 only) */ 24347 #define MC_CMD_SET_SECURITY_RULE_IN_COUNTER_ID_HW 0xffffffff 24348 24349 /* MC_CMD_SET_SECURITY_RULE_OUT msgresponse */ 24350 #define MC_CMD_SET_SECURITY_RULE_OUT_LEN 32 24351 /* new reference count for uses of counter ID */ 24352 #define MC_CMD_SET_SECURITY_RULE_OUT_COUNTER_REFCNT_OFST 0 24353 #define MC_CMD_SET_SECURITY_RULE_OUT_COUNTER_REFCNT_LEN 4 24354 /* constructed match bits for this rule (as a tracing aid only) */ 24355 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_MATCH_BITS_OFST 4 24356 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_MATCH_BITS_LEN 12 24357 /* constructed discriminator bits for this rule (as a tracing aid only) */ 24358 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_DISCRIMINATOR_OFST 16 24359 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_DISCRIMINATOR_LEN 4 24360 /* base location for probes for this rule (as a tracing aid only) */ 24361 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_PROBE_BASE_OFST 20 24362 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_PROBE_BASE_LEN 4 24363 /* step for probes for this rule (as a tracing aid only) */ 24364 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_PROBE_STEP_OFST 24 24365 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_PROBE_STEP_LEN 4 24366 /* ID for reading back the counter */ 24367 #define MC_CMD_SET_SECURITY_RULE_OUT_COUNTER_ID_OFST 28 24368 #define MC_CMD_SET_SECURITY_RULE_OUT_COUNTER_ID_LEN 4 24369 24370 24371 /***********************************/ 24372 /* MC_CMD_RESET_SECURITY_RULES 24373 * Reset all blacklist and whitelist actions for a particular physical port, or 24374 * all ports. (Medford-only; for use by SolarSecure apps, not directly by 24375 * drivers. See SF-114946-SW.) NOTE - this message definition is provisional. 24376 * It has not yet been used in any released code and may change during 24377 * development. This note will be removed once it is regarded as stable. 24378 */ 24379 #define MC_CMD_RESET_SECURITY_RULES 0x110 24380 #define MC_CMD_RESET_SECURITY_RULES_MSGSET 0x110 24381 #undef MC_CMD_0x110_PRIVILEGE_CTG 24382 24383 #define MC_CMD_0x110_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 24384 24385 /* MC_CMD_RESET_SECURITY_RULES_IN msgrequest */ 24386 #define MC_CMD_RESET_SECURITY_RULES_IN_LEN 4 24387 /* index of physical port to reset (or ALL_PHYSICAL_PORTS to reset all) */ 24388 #define MC_CMD_RESET_SECURITY_RULES_IN_PHYSICAL_PORT_OFST 0 24389 #define MC_CMD_RESET_SECURITY_RULES_IN_PHYSICAL_PORT_LEN 4 24390 /* enum: special value to reset all physical ports */ 24391 #define MC_CMD_RESET_SECURITY_RULES_IN_ALL_PHYSICAL_PORTS 0xffffffff 24392 24393 /* MC_CMD_RESET_SECURITY_RULES_OUT msgresponse */ 24394 #define MC_CMD_RESET_SECURITY_RULES_OUT_LEN 0 24395 24396 24397 /***********************************/ 24398 /* MC_CMD_GET_SECURITY_RULESET_VERSION 24399 * Return a large hash value representing a "version" of the complete set of 24400 * currently active blacklist / whitelist rules and associated data structures. 24401 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See 24402 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 24403 * been used in any released code and may change during development. This note 24404 * will be removed once it is regarded as stable. 24405 */ 24406 #define MC_CMD_GET_SECURITY_RULESET_VERSION 0x111 24407 #define MC_CMD_GET_SECURITY_RULESET_VERSION_MSGSET 0x111 24408 #undef MC_CMD_0x111_PRIVILEGE_CTG 24409 24410 #define MC_CMD_0x111_PRIVILEGE_CTG SRIOV_CTG_ADMIN 24411 24412 /* MC_CMD_GET_SECURITY_RULESET_VERSION_IN msgrequest */ 24413 #define MC_CMD_GET_SECURITY_RULESET_VERSION_IN_LEN 0 24414 24415 /* MC_CMD_GET_SECURITY_RULESET_VERSION_OUT msgresponse */ 24416 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_LENMIN 1 24417 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_LENMAX 252 24418 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_LENMAX_MCDI2 1020 24419 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_LEN(num) (0+1*(num)) 24420 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_NUM(len) (((len)-0)/1) 24421 /* Opaque hash value; length may vary depending on the hash scheme used */ 24422 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_OFST 0 24423 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_LEN 1 24424 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_MINNUM 1 24425 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_MAXNUM 252 24426 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_MAXNUM_MCDI2 1020 24427 24428 24429 /***********************************/ 24430 /* MC_CMD_SECURITY_RULE_COUNTER_ALLOC 24431 * Allocate counters for use with blacklist / whitelist rules. (Medford-only; 24432 * for use by SolarSecure apps, not directly by drivers. See SF-114946-SW.) 24433 * NOTE - this message definition is provisional. It has not yet been used in 24434 * any released code and may change during development. This note will be 24435 * removed once it is regarded as stable. 24436 */ 24437 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC 0x112 24438 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_MSGSET 0x112 24439 #undef MC_CMD_0x112_PRIVILEGE_CTG 24440 24441 #define MC_CMD_0x112_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 24442 24443 /* MC_CMD_SECURITY_RULE_COUNTER_ALLOC_IN msgrequest */ 24444 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_IN_LEN 4 24445 /* the number of new counter IDs to request */ 24446 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_IN_NUM_COUNTERS_OFST 0 24447 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_IN_NUM_COUNTERS_LEN 4 24448 24449 /* MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT msgresponse */ 24450 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_LENMIN 4 24451 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_LENMAX 252 24452 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_LENMAX_MCDI2 1020 24453 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_LEN(num) (4+4*(num)) 24454 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_NUM(len) (((len)-4)/4) 24455 /* the number of new counter IDs allocated (may be less than the number 24456 * requested if resources are unavailable) 24457 */ 24458 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_NUM_COUNTERS_OFST 0 24459 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_NUM_COUNTERS_LEN 4 24460 /* new counter ID(s) */ 24461 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_OFST 4 24462 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_LEN 4 24463 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_MINNUM 0 24464 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_MAXNUM 62 24465 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_MAXNUM_MCDI2 254 24466 24467 24468 /***********************************/ 24469 /* MC_CMD_SECURITY_RULE_COUNTER_FREE 24470 * Allocate counters for use with blacklist / whitelist rules. (Medford-only; 24471 * for use by SolarSecure apps, not directly by drivers. See SF-114946-SW.) 24472 * NOTE - this message definition is provisional. It has not yet been used in 24473 * any released code and may change during development. This note will be 24474 * removed once it is regarded as stable. 24475 */ 24476 #define MC_CMD_SECURITY_RULE_COUNTER_FREE 0x113 24477 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_MSGSET 0x113 24478 #undef MC_CMD_0x113_PRIVILEGE_CTG 24479 24480 #define MC_CMD_0x113_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 24481 24482 /* MC_CMD_SECURITY_RULE_COUNTER_FREE_IN msgrequest */ 24483 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_LENMIN 4 24484 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_LENMAX 252 24485 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_LENMAX_MCDI2 1020 24486 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_LEN(num) (4+4*(num)) 24487 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_NUM(len) (((len)-4)/4) 24488 /* the number of counter IDs to free */ 24489 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_NUM_COUNTERS_OFST 0 24490 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_NUM_COUNTERS_LEN 4 24491 /* the counter ID(s) to free */ 24492 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_OFST 4 24493 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_LEN 4 24494 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_MINNUM 0 24495 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_MAXNUM 62 24496 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_MAXNUM_MCDI2 254 24497 24498 /* MC_CMD_SECURITY_RULE_COUNTER_FREE_OUT msgresponse */ 24499 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_OUT_LEN 0 24500 24501 24502 /***********************************/ 24503 /* MC_CMD_SUBNET_MAP_SET_NODE 24504 * Atomically update a trie node in the map of subnets to subnet IDs. The 24505 * constants in the descriptions of the fields of this message may be retrieved 24506 * by the GET_SECURITY_RULE_INFO op of MC_CMD_GET_PARSER_DISP_INFO. (Medford- 24507 * only; for use by SolarSecure apps, not directly by drivers. See 24508 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 24509 * been used in any released code and may change during development. This note 24510 * will be removed once it is regarded as stable. 24511 */ 24512 #define MC_CMD_SUBNET_MAP_SET_NODE 0x114 24513 #define MC_CMD_SUBNET_MAP_SET_NODE_MSGSET 0x114 24514 #undef MC_CMD_0x114_PRIVILEGE_CTG 24515 24516 #define MC_CMD_0x114_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 24517 24518 /* MC_CMD_SUBNET_MAP_SET_NODE_IN msgrequest */ 24519 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_LENMIN 6 24520 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_LENMAX 252 24521 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_LENMAX_MCDI2 1020 24522 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_LEN(num) (4+2*(num)) 24523 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_NUM(len) (((len)-4)/2) 24524 /* node to update in the range 0 .. SUBNET_MAP_NUM_NODES-1 */ 24525 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_NODE_ID_OFST 0 24526 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_NODE_ID_LEN 4 24527 /* SUBNET_MAP_NUM_ENTRIES_PER_NODE new entries; each entry is either a pointer 24528 * to the next node, expressed as an offset in the trie memory (i.e. node ID 24529 * multiplied by SUBNET_MAP_NUM_ENTRIES_PER_NODE), or a leaf value in the range 24530 * SUBNET_ID_MIN .. SUBNET_ID_MAX 24531 */ 24532 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_OFST 4 24533 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_LEN 2 24534 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_MINNUM 1 24535 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_MAXNUM 124 24536 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_MAXNUM_MCDI2 508 24537 24538 /* MC_CMD_SUBNET_MAP_SET_NODE_OUT msgresponse */ 24539 #define MC_CMD_SUBNET_MAP_SET_NODE_OUT_LEN 0 24540 24541 /* PORTRANGE_TREE_ENTRY structuredef */ 24542 #define PORTRANGE_TREE_ENTRY_LEN 4 24543 /* key for branch nodes (<= key takes left branch, > key takes right branch), 24544 * or magic value for leaf nodes 24545 */ 24546 #define PORTRANGE_TREE_ENTRY_BRANCH_KEY_OFST 0 24547 #define PORTRANGE_TREE_ENTRY_BRANCH_KEY_LEN 2 24548 #define PORTRANGE_TREE_ENTRY_LEAF_NODE_KEY 0xffff /* enum */ 24549 #define PORTRANGE_TREE_ENTRY_BRANCH_KEY_LBN 0 24550 #define PORTRANGE_TREE_ENTRY_BRANCH_KEY_WIDTH 16 24551 /* final portrange ID for leaf nodes (don't care for branch nodes) */ 24552 #define PORTRANGE_TREE_ENTRY_LEAF_PORTRANGE_ID_OFST 2 24553 #define PORTRANGE_TREE_ENTRY_LEAF_PORTRANGE_ID_LEN 2 24554 #define PORTRANGE_TREE_ENTRY_LEAF_PORTRANGE_ID_LBN 16 24555 #define PORTRANGE_TREE_ENTRY_LEAF_PORTRANGE_ID_WIDTH 16 24556 24557 24558 /***********************************/ 24559 /* MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE 24560 * Atomically update the entire tree mapping remote port ranges to portrange 24561 * IDs. The constants in the descriptions of the fields of this message may be 24562 * retrieved by the GET_SECURITY_RULE_INFO op of MC_CMD_GET_PARSER_DISP_INFO. 24563 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See 24564 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 24565 * been used in any released code and may change during development. This note 24566 * will be removed once it is regarded as stable. 24567 */ 24568 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE 0x115 24569 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_MSGSET 0x115 24570 #undef MC_CMD_0x115_PRIVILEGE_CTG 24571 24572 #define MC_CMD_0x115_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 24573 24574 /* MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN msgrequest */ 24575 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_LENMIN 4 24576 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_LENMAX 252 24577 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_LENMAX_MCDI2 1020 24578 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_LEN(num) (0+4*(num)) 24579 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_NUM(len) (((len)-0)/4) 24580 /* PORTRANGE_TREE_NUM_ENTRIES new entries, each laid out as a 24581 * PORTRANGE_TREE_ENTRY 24582 */ 24583 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_OFST 0 24584 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_LEN 4 24585 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MINNUM 1 24586 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MAXNUM 63 24587 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MAXNUM_MCDI2 255 24588 24589 /* MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_OUT msgresponse */ 24590 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_OUT_LEN 0 24591 24592 24593 /***********************************/ 24594 /* MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE 24595 * Atomically update the entire tree mapping remote port ranges to portrange 24596 * IDs. The constants in the descriptions of the fields of this message may be 24597 * retrieved by the GET_SECURITY_RULE_INFO op of MC_CMD_GET_PARSER_DISP_INFO. 24598 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See 24599 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 24600 * been used in any released code and may change during development. This note 24601 * will be removed once it is regarded as stable. 24602 */ 24603 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE 0x116 24604 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_MSGSET 0x116 24605 #undef MC_CMD_0x116_PRIVILEGE_CTG 24606 24607 #define MC_CMD_0x116_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 24608 24609 /* MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN msgrequest */ 24610 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_LENMIN 4 24611 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_LENMAX 252 24612 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_LENMAX_MCDI2 1020 24613 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_LEN(num) (0+4*(num)) 24614 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_NUM(len) (((len)-0)/4) 24615 /* PORTRANGE_TREE_NUM_ENTRIES new entries, each laid out as a 24616 * PORTRANGE_TREE_ENTRY 24617 */ 24618 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_OFST 0 24619 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_LEN 4 24620 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MINNUM 1 24621 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MAXNUM 63 24622 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MAXNUM_MCDI2 255 24623 24624 /* MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_OUT msgresponse */ 24625 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_OUT_LEN 0 24626 24627 /* TUNNEL_ENCAP_UDP_PORT_ENTRY structuredef */ 24628 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_LEN 4 24629 /* UDP port (the standard ports are named below but any port may be used) */ 24630 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_UDP_PORT_OFST 0 24631 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_UDP_PORT_LEN 2 24632 /* enum: the IANA allocated UDP port for VXLAN */ 24633 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_IANA_VXLAN_UDP_PORT 0x12b5 24634 /* enum: the IANA allocated UDP port for Geneve */ 24635 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_IANA_GENEVE_UDP_PORT 0x17c1 24636 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_UDP_PORT_LBN 0 24637 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_UDP_PORT_WIDTH 16 24638 /* tunnel encapsulation protocol (only those named below are supported) */ 24639 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_PROTOCOL_OFST 2 24640 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_PROTOCOL_LEN 2 24641 /* enum: This port will be used for VXLAN on both IPv4 and IPv6 */ 24642 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_VXLAN 0x0 24643 /* enum: This port will be used for Geneve on both IPv4 and IPv6 */ 24644 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_GENEVE 0x1 24645 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_PROTOCOL_LBN 16 24646 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_PROTOCOL_WIDTH 16 24647 24648 24649 /***********************************/ 24650 /* MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS 24651 * Configure UDP ports for tunnel encapsulation hardware acceleration. The 24652 * parser-dispatcher will attempt to parse traffic on these ports as tunnel 24653 * encapsulation PDUs and filter them using the tunnel encapsulation filter 24654 * chain rather than the standard filter chain. Note that this command can 24655 * cause all functions to see a reset. (Available on Medford only.) 24656 */ 24657 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS 0x117 24658 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_MSGSET 0x117 24659 #undef MC_CMD_0x117_PRIVILEGE_CTG 24660 24661 #define MC_CMD_0x117_PRIVILEGE_CTG SRIOV_CTG_ADMIN 24662 24663 /* MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN msgrequest */ 24664 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LENMIN 4 24665 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LENMAX 68 24666 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LENMAX_MCDI2 68 24667 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LEN(num) (4+4*(num)) 24668 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_NUM(len) (((len)-4)/4) 24669 /* Flags */ 24670 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_FLAGS_OFST 0 24671 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_FLAGS_LEN 2 24672 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_UNLOADING_OFST 0 24673 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_UNLOADING_LBN 0 24674 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_UNLOADING_WIDTH 1 24675 /* The number of entries in the ENTRIES array */ 24676 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_NUM_ENTRIES_OFST 2 24677 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_NUM_ENTRIES_LEN 2 24678 /* Entries defining the UDP port to protocol mapping, each laid out as a 24679 * TUNNEL_ENCAP_UDP_PORT_ENTRY 24680 */ 24681 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_OFST 4 24682 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_LEN 4 24683 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_MINNUM 0 24684 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_MAXNUM 16 24685 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_MAXNUM_MCDI2 16 24686 24687 /* MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT msgresponse */ 24688 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_LEN 2 24689 /* Flags */ 24690 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_FLAGS_OFST 0 24691 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_FLAGS_LEN 2 24692 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_RESETTING_OFST 0 24693 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_RESETTING_LBN 0 24694 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_RESETTING_WIDTH 1 24695 24696 24697 /***********************************/ 24698 /* MC_CMD_RX_BALANCING 24699 * Configure a port upconverter to distribute the packets on both RX engines. 24700 * Packets are distributed based on a table with the destination vFIFO. The 24701 * index of the table is a hash of source and destination of IPV4 and VLAN 24702 * priority. 24703 */ 24704 #define MC_CMD_RX_BALANCING 0x118 24705 #define MC_CMD_RX_BALANCING_MSGSET 0x118 24706 #undef MC_CMD_0x118_PRIVILEGE_CTG 24707 24708 #define MC_CMD_0x118_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 24709 24710 /* MC_CMD_RX_BALANCING_IN msgrequest */ 24711 #define MC_CMD_RX_BALANCING_IN_LEN 16 24712 /* The RX port whose upconverter table will be modified */ 24713 #define MC_CMD_RX_BALANCING_IN_PORT_OFST 0 24714 #define MC_CMD_RX_BALANCING_IN_PORT_LEN 4 24715 /* The VLAN priority associated to the table index and vFIFO */ 24716 #define MC_CMD_RX_BALANCING_IN_PRIORITY_OFST 4 24717 #define MC_CMD_RX_BALANCING_IN_PRIORITY_LEN 4 24718 /* The resulting bit of SRC^DST for indexing the table */ 24719 #define MC_CMD_RX_BALANCING_IN_SRC_DST_OFST 8 24720 #define MC_CMD_RX_BALANCING_IN_SRC_DST_LEN 4 24721 /* The RX engine to which the vFIFO in the table entry will point to */ 24722 #define MC_CMD_RX_BALANCING_IN_ENG_OFST 12 24723 #define MC_CMD_RX_BALANCING_IN_ENG_LEN 4 24724 24725 /* MC_CMD_RX_BALANCING_OUT msgresponse */ 24726 #define MC_CMD_RX_BALANCING_OUT_LEN 0 24727 24728 24729 /***********************************/ 24730 /* MC_CMD_TSA_BIND 24731 * TSAN - TSAC binding communication protocol. Refer to SF-115479-TC for more 24732 * info in respect to the binding protocol. 24733 */ 24734 #define MC_CMD_TSA_BIND 0x119 24735 #define MC_CMD_TSA_BIND_MSGSET 0x119 24736 #undef MC_CMD_0x119_PRIVILEGE_CTG 24737 24738 #define MC_CMD_0x119_PRIVILEGE_CTG SRIOV_CTG_ADMIN 24739 24740 /* MC_CMD_TSA_BIND_IN msgrequest: Protocol operation code */ 24741 #define MC_CMD_TSA_BIND_IN_LEN 4 24742 #define MC_CMD_TSA_BIND_IN_OP_OFST 0 24743 #define MC_CMD_TSA_BIND_IN_OP_LEN 4 24744 /* enum: Obsolete. Use MC_CMD_SECURE_NIC_INFO_IN_STATUS. */ 24745 #define MC_CMD_TSA_BIND_OP_GET_ID 0x1 24746 /* enum: Get a binding ticket from the TSAN. The binding ticket is used as part 24747 * of the binding procedure to authorize the binding of an adapter to a TSAID. 24748 * Refer to SF-114946-SW for more information. This sub-command is only 24749 * available over a TLS secure connection between the TSAN and TSAC. 24750 */ 24751 #define MC_CMD_TSA_BIND_OP_GET_TICKET 0x2 24752 /* enum: Opcode associated with the propagation of a private key that TSAN uses 24753 * as part of post-binding authentication procedure. More specifically, TSAN 24754 * uses this key for a signing operation. TSAC uses the counterpart public key 24755 * to verify the signature. Note - The post-binding authentication occurs when 24756 * the TSAN-TSAC connection terminates and TSAN tries to reconnect. Refer to 24757 * SF-114946-SW for more information. This sub-command is only available over a 24758 * TLS secure connection between the TSAN and TSAC. 24759 */ 24760 #define MC_CMD_TSA_BIND_OP_SET_KEY 0x3 24761 /* enum: Request an insecure unbinding operation. This sub-command is available 24762 * for any privileged client. 24763 */ 24764 #define MC_CMD_TSA_BIND_OP_UNBIND 0x4 24765 /* enum: Obsolete. Use MC_CMD_TSA_BIND_OP_SECURE_UNBIND. */ 24766 #define MC_CMD_TSA_BIND_OP_UNBIND_EXT 0x5 24767 /* enum: Opcode associated with the propagation of the unbinding secret token. 24768 * TSAN persists the unbinding secret token. Refer to SF-115479-TC for more 24769 * information. This sub-command is only available over a TLS secure connection 24770 * between the TSAN and TSAC. 24771 */ 24772 #define MC_CMD_TSA_BIND_OP_SET_UNBINDTOKEN 0x6 24773 /* enum: Obsolete. Use MC_CMD_TSA_BIND_OP_SECURE_DECOMMISSION. */ 24774 #define MC_CMD_TSA_BIND_OP_DECOMMISSION 0x7 24775 /* enum: Obsolete. Use MC_CMD_GET_CERTIFICATE. */ 24776 #define MC_CMD_TSA_BIND_OP_GET_CERTIFICATE 0x8 24777 /* enum: Request a secure unbinding operation using unbinding token. This sub- 24778 * command is available for any privileged client. 24779 */ 24780 #define MC_CMD_TSA_BIND_OP_SECURE_UNBIND 0x9 24781 /* enum: Request a secure decommissioning operation. This sub-command is 24782 * available for any privileged client. 24783 */ 24784 #define MC_CMD_TSA_BIND_OP_SECURE_DECOMMISSION 0xa 24785 /* enum: Test facility that allows an adapter to be configured to behave as if 24786 * Bound to a TSA controller with restricted MCDI administrator operations. 24787 * This operation is primarily intended to aid host driver development. 24788 */ 24789 #define MC_CMD_TSA_BIND_OP_TEST_MCDI 0xb 24790 24791 /* MC_CMD_TSA_BIND_IN_GET_ID msgrequest: Obsolete. Use 24792 * MC_CMD_SECURE_NIC_INFO_IN_STATUS. 24793 */ 24794 #define MC_CMD_TSA_BIND_IN_GET_ID_LEN 20 24795 /* The operation requested. */ 24796 #define MC_CMD_TSA_BIND_IN_GET_ID_OP_OFST 0 24797 #define MC_CMD_TSA_BIND_IN_GET_ID_OP_LEN 4 24798 /* Cryptographic nonce that TSAC generates and sends to TSAN. TSAC generates 24799 * the nonce every time as part of the TSAN post-binding authentication 24800 * procedure when the TSAN-TSAC connection terminates and TSAN does need to re- 24801 * connect to the TSAC. Refer to SF-114946-SW for more information. 24802 */ 24803 #define MC_CMD_TSA_BIND_IN_GET_ID_NONCE_OFST 4 24804 #define MC_CMD_TSA_BIND_IN_GET_ID_NONCE_LEN 16 24805 24806 /* MC_CMD_TSA_BIND_IN_GET_TICKET msgrequest */ 24807 #define MC_CMD_TSA_BIND_IN_GET_TICKET_LEN 4 24808 /* The operation requested. */ 24809 #define MC_CMD_TSA_BIND_IN_GET_TICKET_OP_OFST 0 24810 #define MC_CMD_TSA_BIND_IN_GET_TICKET_OP_LEN 4 24811 24812 /* MC_CMD_TSA_BIND_IN_SET_KEY msgrequest */ 24813 #define MC_CMD_TSA_BIND_IN_SET_KEY_LENMIN 5 24814 #define MC_CMD_TSA_BIND_IN_SET_KEY_LENMAX 252 24815 #define MC_CMD_TSA_BIND_IN_SET_KEY_LENMAX_MCDI2 1020 24816 #define MC_CMD_TSA_BIND_IN_SET_KEY_LEN(num) (4+1*(num)) 24817 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_NUM(len) (((len)-4)/1) 24818 /* The operation requested. */ 24819 #define MC_CMD_TSA_BIND_IN_SET_KEY_OP_OFST 0 24820 #define MC_CMD_TSA_BIND_IN_SET_KEY_OP_LEN 4 24821 /* This data blob contains the private key generated by the TSAC. TSAN uses 24822 * this key for a signing operation. Note- This private key is used in 24823 * conjunction with the post-binding TSAN authentication procedure that occurs 24824 * when the TSAN-TSAC connection terminates and TSAN tries to reconnect. Refer 24825 * to SF-114946-SW for more information. 24826 */ 24827 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_OFST 4 24828 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_LEN 1 24829 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_MINNUM 1 24830 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_MAXNUM 248 24831 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_MAXNUM_MCDI2 1016 24832 24833 /* MC_CMD_TSA_BIND_IN_UNBIND msgrequest: Request an insecure unbinding 24834 * operation. 24835 */ 24836 #define MC_CMD_TSA_BIND_IN_UNBIND_LEN 10 24837 /* The operation requested. */ 24838 #define MC_CMD_TSA_BIND_IN_UNBIND_OP_OFST 0 24839 #define MC_CMD_TSA_BIND_IN_UNBIND_OP_LEN 4 24840 /* TSAN unique identifier for the network adapter */ 24841 #define MC_CMD_TSA_BIND_IN_UNBIND_TSANID_OFST 4 24842 #define MC_CMD_TSA_BIND_IN_UNBIND_TSANID_LEN 6 24843 24844 /* MC_CMD_TSA_BIND_IN_UNBIND_EXT msgrequest: Obsolete. Use 24845 * MC_CMD_TSA_BIND_IN_SECURE_UNBIND. 24846 */ 24847 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_LENMIN 93 24848 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_LENMAX 252 24849 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_LENMAX_MCDI2 1020 24850 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_LEN(num) (92+1*(num)) 24851 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_NUM(len) (((len)-92)/1) 24852 /* The operation requested. */ 24853 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_OP_OFST 0 24854 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_OP_LEN 4 24855 /* TSAN unique identifier for the network adapter */ 24856 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSANID_OFST 4 24857 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSANID_LEN 6 24858 /* Align the arguments to 32 bits */ 24859 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSANID_RSVD_OFST 10 24860 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSANID_RSVD_LEN 2 24861 /* This attribute identifies the TSA infrastructure domain. The length of the 24862 * TSAID attribute is limited to 64 bytes. This is how TSA SDK defines the max 24863 * length. Note- The TSAID is the Organizational Unit Name filed as part of the 24864 * root and server certificates. 24865 */ 24866 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSAID_OFST 12 24867 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSAID_LEN 1 24868 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSAID_NUM 64 24869 /* Unbinding secret token. The adapter validates this unbinding token by 24870 * comparing it against the one stored on the adapter as part of the 24871 * MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN msgrequest. Refer to SF-115479-TC for 24872 * more information. 24873 */ 24874 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_UNBINDTOKEN_OFST 76 24875 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_UNBINDTOKEN_LEN 16 24876 /* This is the signature of the above mentioned fields- TSANID, TSAID and 24877 * UNBINDTOKEN. As per current requirements, the SIG opaque data blob contains 24878 * ECDSA ECC-384 based signature. The ECC curve is secp384r1. The signature is 24879 * also ASN-1 encoded. Note- The signature is verified based on the public key 24880 * stored into the root certificate that is provisioned on the adapter side. 24881 * This key is known as the PUKtsaid. Refer to SF-115479-TC for more 24882 * information. 24883 */ 24884 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_OFST 92 24885 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_LEN 1 24886 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_MINNUM 1 24887 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_MAXNUM 160 24888 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_MAXNUM_MCDI2 928 24889 24890 /* MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN msgrequest */ 24891 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_LEN 20 24892 /* The operation requested. */ 24893 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_OP_OFST 0 24894 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_OP_LEN 4 24895 /* Unbinding secret token. TSAN persists the unbinding secret token. Refer to 24896 * SF-115479-TC for more information. 24897 */ 24898 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_UNBINDTOKEN_OFST 4 24899 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_UNBINDTOKEN_LEN 16 24900 /* enum: There are situations when the binding process does not complete 24901 * successfully due to key, other attributes corruption at the database level 24902 * (Controller). Adapter can't connect to the controller anymore. To recover, 24903 * make usage of the decommission command that forces the adapter into 24904 * unbinding state. 24905 */ 24906 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_ADAPTER_BINDING_FAILURE 0x1 24907 24908 /* MC_CMD_TSA_BIND_IN_DECOMMISSION msgrequest: Obsolete. Use 24909 * MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION. 24910 */ 24911 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_LENMIN 109 24912 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_LENMAX 252 24913 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_LENMAX_MCDI2 1020 24914 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_LEN(num) (108+1*(num)) 24915 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_NUM(len) (((len)-108)/1) 24916 /* This is the signature of the above mentioned fields- TSAID, USER and REASON. 24917 * As per current requirements, the SIG opaque data blob contains ECDSA ECC-384 24918 * based signature. The ECC curve is secp384r1. The signature is also ASN-1 24919 * encoded . Note- The signature is verified based on the public key stored 24920 * into the root certificate that is provisioned on the adapter side. This key 24921 * is known as the PUKtsaid. Refer to SF-115479-TC for more information. 24922 */ 24923 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_OFST 108 24924 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_LEN 1 24925 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_MINNUM 1 24926 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_MAXNUM 144 24927 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_MAXNUM_MCDI2 912 24928 /* The operation requested. */ 24929 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_OP_OFST 0 24930 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_OP_LEN 4 24931 /* This attribute identifies the TSA infrastructure domain. The length of the 24932 * TSAID attribute is limited to 64 bytes. This is how TSA SDK defines the max 24933 * length. Note- The TSAID is the Organizational Unit Name filed as part of the 24934 * root and server certificates. 24935 */ 24936 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_TSAID_OFST 4 24937 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_TSAID_LEN 1 24938 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_TSAID_NUM 64 24939 /* User ID that comes, as an example, from the Controller. Note- The 33 byte 24940 * length of this attribute is max length of the linux user name plus null 24941 * character. 24942 */ 24943 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_USER_OFST 68 24944 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_USER_LEN 1 24945 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_USER_NUM 33 24946 /* Align the arguments to 32 bits */ 24947 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_USER_RSVD_OFST 101 24948 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_USER_RSVD_LEN 3 24949 /* Reason of why decommissioning happens Note- The list of reasons, defined as 24950 * part of the enumeration below, can be extended. 24951 */ 24952 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_REASON_OFST 104 24953 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_REASON_LEN 4 24954 24955 /* MC_CMD_TSA_BIND_IN_GET_CERTIFICATE msgrequest: Obsolete. Use 24956 * MC_CMD_GET_CERTIFICATE. 24957 */ 24958 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_LEN 8 24959 /* The operation requested, must be MC_CMD_TSA_BIND_OP_GET_CERTIFICATE. */ 24960 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_OP_OFST 0 24961 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_OP_LEN 4 24962 /* Type of the certificate to be retrieved. */ 24963 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_TYPE_OFST 4 24964 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_TYPE_LEN 4 24965 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_UNUSED 0x0 /* enum */ 24966 /* enum: Adapter Authentication Certificate (AAC). The AAC is used by the 24967 * controller to verify the authenticity of the adapter. 24968 */ 24969 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_AAC 0x1 24970 /* enum: Adapter Authentication Signing Certificate (AASC). The AASC is used by 24971 * the controller to verify the validity of AAC. 24972 */ 24973 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_AASC 0x2 24974 24975 /* MC_CMD_TSA_BIND_IN_SECURE_UNBIND msgrequest: Request a secure unbinding 24976 * operation using unbinding token. 24977 */ 24978 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_LENMIN 97 24979 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_LENMAX 200 24980 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_LENMAX_MCDI2 200 24981 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_LEN(num) (96+1*(num)) 24982 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_NUM(len) (((len)-96)/1) 24983 /* The operation requested, must be MC_CMD_TSA_BIND_OP_SECURE_UNBIND. */ 24984 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_OP_OFST 0 24985 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_OP_LEN 4 24986 /* Type of the message. (MESSAGE_TYPE_xxx) Must be 24987 * MESSAGE_TYPE_TSA_SECURE_UNBIND. 24988 */ 24989 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_MESSAGE_TYPE_OFST 4 24990 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_MESSAGE_TYPE_LEN 4 24991 /* TSAN unique identifier for the network adapter */ 24992 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSANID_OFST 8 24993 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSANID_LEN 6 24994 /* Align the arguments to 32 bits */ 24995 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSANID_RSVD_OFST 14 24996 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSANID_RSVD_LEN 2 24997 /* A NUL padded US-ASCII string identifying the TSA infrastructure domain. This 24998 * field is for information only, and not used by the firmware. Note- The TSAID 24999 * is the Organizational Unit Name field as part of the root and server 25000 * certificates. 25001 */ 25002 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSAID_OFST 16 25003 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSAID_LEN 1 25004 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSAID_NUM 64 25005 /* Unbinding secret token. The adapter validates this unbinding token by 25006 * comparing it against the one stored on the adapter as part of the 25007 * MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN msgrequest. Refer to SF-115479-TC for 25008 * more information. 25009 */ 25010 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_UNBINDTOKEN_OFST 80 25011 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_UNBINDTOKEN_LEN 16 25012 /* The signature computed and encoded as specified by MESSAGE_TYPE. */ 25013 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_OFST 96 25014 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_LEN 1 25015 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_MINNUM 1 25016 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_MAXNUM 104 25017 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_MAXNUM_MCDI2 104 25018 25019 /* MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION msgrequest: Request a secure 25020 * decommissioning operation. 25021 */ 25022 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_LENMIN 113 25023 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_LENMAX 216 25024 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_LENMAX_MCDI2 216 25025 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_LEN(num) (112+1*(num)) 25026 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_NUM(len) (((len)-112)/1) 25027 /* The operation requested, must be MC_CMD_TSA_BIND_OP_SECURE_DECOMMISSION. */ 25028 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_OP_OFST 0 25029 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_OP_LEN 4 25030 /* Type of the message. (MESSAGE_TYPE_xxx) Must be 25031 * MESSAGE_TYPE_SECURE_DECOMMISSION. 25032 */ 25033 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_MESSAGE_TYPE_OFST 4 25034 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_MESSAGE_TYPE_LEN 4 25035 /* A NUL padded US-ASCII string identifying the TSA infrastructure domain. This 25036 * field is for information only, and not used by the firmware. Note- The TSAID 25037 * is the Organizational Unit Name field as part of the root and server 25038 * certificates. 25039 */ 25040 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_TSAID_OFST 8 25041 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_TSAID_LEN 1 25042 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_TSAID_NUM 64 25043 /* A NUL padded US-ASCII string containing user name of the creator of the 25044 * decommissioning ticket. This field is for information only, and not used by 25045 * the firmware. 25046 */ 25047 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_USER_OFST 72 25048 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_USER_LEN 1 25049 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_USER_NUM 36 25050 /* Reason of why decommissioning happens */ 25051 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_REASON_OFST 108 25052 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_REASON_LEN 4 25053 /* enum: There are situations when the binding process does not complete 25054 * successfully due to key, other attributes corruption at the database level 25055 * (Controller). Adapter can't connect to the controller anymore. To recover, 25056 * use the decommission command to force the adapter into unbound state. 25057 */ 25058 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_ADAPTER_BINDING_FAILURE 0x1 25059 /* The signature computed and encoded as specified by MESSAGE_TYPE. */ 25060 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_OFST 112 25061 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_LEN 1 25062 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_MINNUM 1 25063 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_MAXNUM 104 25064 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_MAXNUM_MCDI2 104 25065 25066 /* MC_CMD_TSA_BIND_IN_TEST_MCDI msgrequest: Test mode that emulates MCDI 25067 * interface restrictions of a bound adapter. This operation is intended for 25068 * test use on adapters that are not deployed and bound to a TSA Controller. 25069 * Using it on a Bound adapter will succeed but will not alter the MCDI 25070 * privileges as MCDI operations will already be restricted. 25071 */ 25072 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_LEN 8 25073 /* The operation requested must be MC_CMD_TSA_BIND_OP_TEST_MCDI. */ 25074 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_OP_OFST 0 25075 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_OP_LEN 4 25076 /* Enable or disable emulation of bound adapter */ 25077 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_CTRL_OFST 4 25078 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_CTRL_LEN 4 25079 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_DISABLE 0x0 /* enum */ 25080 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_ENABLE 0x1 /* enum */ 25081 25082 /* MC_CMD_TSA_BIND_OUT_GET_ID msgresponse: Obsolete. Use 25083 * MC_CMD_SECURE_NIC_INFO_OUT_STATUS. 25084 */ 25085 #define MC_CMD_TSA_BIND_OUT_GET_ID_LENMIN 15 25086 #define MC_CMD_TSA_BIND_OUT_GET_ID_LENMAX 252 25087 #define MC_CMD_TSA_BIND_OUT_GET_ID_LENMAX_MCDI2 1020 25088 #define MC_CMD_TSA_BIND_OUT_GET_ID_LEN(num) (14+1*(num)) 25089 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_NUM(len) (((len)-14)/1) 25090 /* The protocol operation code MC_CMD_TSA_BIND_OP_GET_ID that is sent back to 25091 * the caller. 25092 */ 25093 #define MC_CMD_TSA_BIND_OUT_GET_ID_OP_OFST 0 25094 #define MC_CMD_TSA_BIND_OUT_GET_ID_OP_LEN 4 25095 /* Rules engine type. Note- The rules engine type allows TSAC to further 25096 * identify the connected endpoint (e.g. TSAN, NIC Emulator) type and take the 25097 * proper action accordingly. As an example, TSAC uses the rules engine type to 25098 * select the SF key that differs in the case of TSAN vs. NIC Emulator. 25099 */ 25100 #define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_OFST 4 25101 #define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_LEN 4 25102 /* enum: Hardware rules engine. */ 25103 #define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_TSAN 0x1 25104 /* enum: Nic emulator rules engine. */ 25105 #define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_NEMU 0x2 25106 /* enum: SSFE. */ 25107 #define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_SSFE 0x3 25108 /* TSAN unique identifier for the network adapter */ 25109 #define MC_CMD_TSA_BIND_OUT_GET_ID_TSANID_OFST 8 25110 #define MC_CMD_TSA_BIND_OUT_GET_ID_TSANID_LEN 6 25111 /* The signature data blob. The signature is computed against the message 25112 * formed by TSAN ID concatenated with the NONCE value. Refer to SF-115479-TC 25113 * for more information also in respect to the private keys that are used to 25114 * sign the message based on TSAN pre/post-binding authentication procedure. 25115 */ 25116 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_OFST 14 25117 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_LEN 1 25118 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_MINNUM 1 25119 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_MAXNUM 238 25120 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_MAXNUM_MCDI2 1006 25121 25122 /* MC_CMD_TSA_BIND_OUT_GET_TICKET msgresponse */ 25123 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_LENMIN 5 25124 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_LENMAX 252 25125 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_LENMAX_MCDI2 1020 25126 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_LEN(num) (4+1*(num)) 25127 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_NUM(len) (((len)-4)/1) 25128 /* The protocol operation code MC_CMD_TSA_BIND_OP_GET_TICKET that is sent back 25129 * to the caller. 25130 */ 25131 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_OP_OFST 0 25132 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_OP_LEN 4 25133 /* The ticket represents the data blob construct that TSAN sends to TSAC as 25134 * part of the binding protocol. From the TSAN perspective the ticket is an 25135 * opaque construct. For more info refer to SF-115479-TC. 25136 */ 25137 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_OFST 4 25138 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_LEN 1 25139 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_MINNUM 1 25140 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_MAXNUM 248 25141 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_MAXNUM_MCDI2 1016 25142 25143 /* MC_CMD_TSA_BIND_OUT_SET_KEY msgresponse */ 25144 #define MC_CMD_TSA_BIND_OUT_SET_KEY_LEN 4 25145 /* The protocol operation code MC_CMD_TSA_BIND_OP_SET_KEY that is sent back to 25146 * the caller. 25147 */ 25148 #define MC_CMD_TSA_BIND_OUT_SET_KEY_OP_OFST 0 25149 #define MC_CMD_TSA_BIND_OUT_SET_KEY_OP_LEN 4 25150 25151 /* MC_CMD_TSA_BIND_OUT_UNBIND msgresponse: Response to insecure unbind request. 25152 */ 25153 #define MC_CMD_TSA_BIND_OUT_UNBIND_LEN 8 25154 /* Same as MC_CMD_ERR field, but included as 0 in success cases */ 25155 #define MC_CMD_TSA_BIND_OUT_UNBIND_RESULT_OFST 0 25156 #define MC_CMD_TSA_BIND_OUT_UNBIND_RESULT_LEN 4 25157 /* Extra status information */ 25158 #define MC_CMD_TSA_BIND_OUT_UNBIND_INFO_OFST 4 25159 #define MC_CMD_TSA_BIND_OUT_UNBIND_INFO_LEN 4 25160 /* enum: Unbind successful. */ 25161 #define MC_CMD_TSA_BIND_OUT_UNBIND_OK_UNBOUND 0x0 25162 /* enum: TSANID mismatch */ 25163 #define MC_CMD_TSA_BIND_OUT_UNBIND_ERR_BAD_TSANID 0x1 25164 /* enum: Unable to remove the binding ticket from persistent storage. */ 25165 #define MC_CMD_TSA_BIND_OUT_UNBIND_ERR_REMOVE_TICKET 0x2 25166 /* enum: TSAN is not bound to a binding ticket. */ 25167 #define MC_CMD_TSA_BIND_OUT_UNBIND_ERR_NOT_BOUND 0x3 25168 25169 /* MC_CMD_TSA_BIND_OUT_UNBIND_EXT msgresponse: Obsolete. Use 25170 * MC_CMD_TSA_BIND_OUT_SECURE_UNBIND. 25171 */ 25172 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_LEN 8 25173 /* Same as MC_CMD_ERR field, but included as 0 in success cases */ 25174 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_RESULT_OFST 0 25175 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_RESULT_LEN 4 25176 /* Extra status information */ 25177 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_INFO_OFST 4 25178 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_INFO_LEN 4 25179 /* enum: Unbind successful. */ 25180 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_OK_UNBOUND 0x0 25181 /* enum: TSANID mismatch */ 25182 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_ERR_BAD_TSANID 0x1 25183 /* enum: Unable to remove the binding ticket from persistent storage. */ 25184 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_ERR_REMOVE_TICKET 0x2 25185 /* enum: TSAN is not bound to a binding ticket. */ 25186 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_ERR_NOT_BOUND 0x3 25187 /* enum: Invalid unbind token */ 25188 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_ERR_BAD_TOKEN 0x4 25189 /* enum: Invalid signature */ 25190 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_ERR_BAD_SIGNATURE 0x5 25191 25192 /* MC_CMD_TSA_BIND_OUT_SET_UNBINDTOKEN msgresponse */ 25193 #define MC_CMD_TSA_BIND_OUT_SET_UNBINDTOKEN_LEN 4 25194 /* The protocol operation code MC_CMD_TSA_BIND_OP_SET_UNBINDTOKEN that is sent 25195 * back to the caller. 25196 */ 25197 #define MC_CMD_TSA_BIND_OUT_SET_UNBINDTOKEN_OP_OFST 0 25198 #define MC_CMD_TSA_BIND_OUT_SET_UNBINDTOKEN_OP_LEN 4 25199 25200 /* MC_CMD_TSA_BIND_OUT_DECOMMISSION msgresponse: Obsolete. Use 25201 * MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION. 25202 */ 25203 #define MC_CMD_TSA_BIND_OUT_DECOMMISSION_LEN 4 25204 /* The protocol operation code MC_CMD_TSA_BIND_OP_DECOMMISSION that is sent 25205 * back to the caller. 25206 */ 25207 #define MC_CMD_TSA_BIND_OUT_DECOMMISSION_OP_OFST 0 25208 #define MC_CMD_TSA_BIND_OUT_DECOMMISSION_OP_LEN 4 25209 25210 /* MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE msgresponse */ 25211 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_LENMIN 9 25212 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_LENMAX 252 25213 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_LENMAX_MCDI2 1020 25214 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_LEN(num) (8+1*(num)) 25215 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_NUM(len) (((len)-8)/1) 25216 /* The protocol operation code MC_CMD_TSA_BIND_OP_GET_CERTIFICATE that is sent 25217 * back to the caller. 25218 */ 25219 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_OP_OFST 0 25220 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_OP_LEN 4 25221 /* Type of the certificate. */ 25222 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_TYPE_OFST 4 25223 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_TYPE_LEN 4 25224 /* Enum values, see field(s): */ 25225 /* MC_CMD_TSA_BIND_IN_GET_CERTIFICATE/TYPE */ 25226 /* The certificate data. */ 25227 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_OFST 8 25228 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_LEN 1 25229 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_MINNUM 1 25230 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_MAXNUM 244 25231 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_MAXNUM_MCDI2 1012 25232 25233 /* MC_CMD_TSA_BIND_OUT_SECURE_UNBIND msgresponse: Response to secure unbind 25234 * request. 25235 */ 25236 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_LEN 8 25237 /* The protocol operation code that is sent back to the caller. */ 25238 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_OP_OFST 0 25239 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_OP_LEN 4 25240 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_RESULT_OFST 4 25241 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_RESULT_LEN 4 25242 /* enum: Unbind successful. */ 25243 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_OK_UNBOUND 0x0 25244 /* enum: TSANID mismatch */ 25245 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_ERR_BAD_TSANID 0x1 25246 /* enum: Unable to remove the binding ticket from persistent storage. */ 25247 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_ERR_REMOVE_TICKET 0x2 25248 /* enum: TSAN is not bound to a domain. */ 25249 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_ERR_NOT_BOUND 0x3 25250 /* enum: Invalid unbind token */ 25251 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_ERR_BAD_TOKEN 0x4 25252 /* enum: Invalid signature */ 25253 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_ERR_BAD_SIGNATURE 0x5 25254 25255 /* MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION msgresponse: Response to secure 25256 * decommission request. 25257 */ 25258 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_LEN 8 25259 /* The protocol operation code that is sent back to the caller. */ 25260 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_OP_OFST 0 25261 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_OP_LEN 4 25262 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_RESULT_OFST 4 25263 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_RESULT_LEN 4 25264 /* enum: Unbind successful. */ 25265 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_OK_UNBOUND 0x0 25266 /* enum: TSANID mismatch */ 25267 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_ERR_BAD_TSANID 0x1 25268 /* enum: Unable to remove the binding ticket from persistent storage. */ 25269 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_ERR_REMOVE_TICKET 0x2 25270 /* enum: TSAN is not bound to a domain. */ 25271 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_ERR_NOT_BOUND 0x3 25272 /* enum: Invalid unbind token */ 25273 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_ERR_BAD_TOKEN 0x4 25274 /* enum: Invalid signature */ 25275 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_ERR_BAD_SIGNATURE 0x5 25276 25277 /* MC_CMD_TSA_BIND_OUT_TEST_MCDI msgrequest */ 25278 #define MC_CMD_TSA_BIND_OUT_TEST_MCDI_LEN 4 25279 /* The protocol operation code MC_CMD_TSA_BIND_OP_TEST_MCDI that is sent back 25280 * to the caller. 25281 */ 25282 #define MC_CMD_TSA_BIND_OUT_TEST_MCDI_OP_OFST 0 25283 #define MC_CMD_TSA_BIND_OUT_TEST_MCDI_OP_LEN 4 25284 25285 25286 /***********************************/ 25287 /* MC_CMD_MANAGE_SECURITY_RULESET_CACHE 25288 * Manage the persistent NVRAM cache of security rules created with 25289 * MC_CMD_SET_SECURITY_RULE. Note that the cache is not automatically updated 25290 * as rules are added or removed; the active ruleset must be explicitly 25291 * committed to the cache. The cache may also be explicitly invalidated, 25292 * without affecting the currently active ruleset. When the cache is valid, it 25293 * will be loaded at power on or MC reboot, instead of the default ruleset. 25294 * Rollback of the currently active ruleset to the cached version (when it is 25295 * valid) is also supported. (Medford-only; for use by SolarSecure apps, not 25296 * directly by drivers. See SF-114946-SW.) NOTE - The only sub-operation 25297 * allowed in an adapter bound to a TSA controller from the local host is 25298 * OP_GET_CACHED_VERSION. All other sub-operations are prohibited. 25299 */ 25300 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE 0x11a 25301 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_MSGSET 0x11a 25302 #undef MC_CMD_0x11a_PRIVILEGE_CTG 25303 25304 #define MC_CMD_0x11a_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25305 25306 /* MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN msgrequest */ 25307 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_LEN 4 25308 /* the operation to perform */ 25309 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_OFST 0 25310 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_LEN 4 25311 /* enum: reports the ruleset version that is cached in persistent storage but 25312 * performs no other action 25313 */ 25314 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_GET_CACHED_VERSION 0x0 25315 /* enum: rolls back the active state to the cached version. (May fail with 25316 * ENOENT if there is no valid cached version.) 25317 */ 25318 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_ROLLBACK 0x1 25319 /* enum: commits the active state to the persistent cache */ 25320 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_COMMIT 0x2 25321 /* enum: invalidates the persistent cache without affecting the active state */ 25322 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_INVALIDATE 0x3 25323 25324 /* MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT msgresponse */ 25325 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_LENMIN 5 25326 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_LENMAX 252 25327 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_LENMAX_MCDI2 1020 25328 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_LEN(num) (4+1*(num)) 25329 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_NUM(len) (((len)-4)/1) 25330 /* indicates whether the persistent cache is valid (after completion of the 25331 * requested operation in the case of rollback, commit, or invalidate) 25332 */ 25333 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_STATE_OFST 0 25334 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_STATE_LEN 4 25335 /* enum: persistent cache is invalid (the VERSION field will be empty in this 25336 * case) 25337 */ 25338 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_STATE_INVALID 0x0 25339 /* enum: persistent cache is valid */ 25340 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_STATE_VALID 0x1 25341 /* cached ruleset version (after completion of the requested operation, in the 25342 * case of rollback, commit, or invalidate) as an opaque hash value in the same 25343 * form as MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION 25344 */ 25345 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_OFST 4 25346 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_LEN 1 25347 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_MINNUM 1 25348 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_MAXNUM 248 25349 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_MAXNUM_MCDI2 1016 25350 25351 25352 /***********************************/ 25353 /* MC_CMD_NVRAM_PRIVATE_APPEND 25354 * Append a single TLV to the MC_USAGE_TLV partition. Returns MC_CMD_ERR_EEXIST 25355 * if the tag is already present. 25356 */ 25357 #define MC_CMD_NVRAM_PRIVATE_APPEND 0x11c 25358 #define MC_CMD_NVRAM_PRIVATE_APPEND_MSGSET 0x11c 25359 #undef MC_CMD_0x11c_PRIVILEGE_CTG 25360 25361 #define MC_CMD_0x11c_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 25362 25363 /* MC_CMD_NVRAM_PRIVATE_APPEND_IN msgrequest */ 25364 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LENMIN 9 25365 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LENMAX 252 25366 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LENMAX_MCDI2 1020 25367 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LEN(num) (8+1*(num)) 25368 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_NUM(len) (((len)-8)/1) 25369 /* The tag to be appended */ 25370 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_TAG_OFST 0 25371 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_TAG_LEN 4 25372 /* The length of the data */ 25373 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LENGTH_OFST 4 25374 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LENGTH_LEN 4 25375 /* The data to be contained in the TLV structure */ 25376 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_OFST 8 25377 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_LEN 1 25378 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_MINNUM 1 25379 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_MAXNUM 244 25380 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_MAXNUM_MCDI2 1012 25381 25382 /* MC_CMD_NVRAM_PRIVATE_APPEND_OUT msgresponse */ 25383 #define MC_CMD_NVRAM_PRIVATE_APPEND_OUT_LEN 0 25384 25385 25386 /***********************************/ 25387 /* MC_CMD_XPM_VERIFY_CONTENTS 25388 * Verify that the contents of the XPM memory is correct (Medford only). This 25389 * is used during manufacture to check that the XPM memory has been programmed 25390 * correctly at ATE. 25391 */ 25392 #define MC_CMD_XPM_VERIFY_CONTENTS 0x11b 25393 #define MC_CMD_XPM_VERIFY_CONTENTS_MSGSET 0x11b 25394 #undef MC_CMD_0x11b_PRIVILEGE_CTG 25395 25396 #define MC_CMD_0x11b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25397 25398 /* MC_CMD_XPM_VERIFY_CONTENTS_IN msgrequest */ 25399 #define MC_CMD_XPM_VERIFY_CONTENTS_IN_LEN 4 25400 /* Data type to be checked */ 25401 #define MC_CMD_XPM_VERIFY_CONTENTS_IN_DATA_TYPE_OFST 0 25402 #define MC_CMD_XPM_VERIFY_CONTENTS_IN_DATA_TYPE_LEN 4 25403 25404 /* MC_CMD_XPM_VERIFY_CONTENTS_OUT msgresponse */ 25405 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_LENMIN 12 25406 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_LENMAX 252 25407 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_LENMAX_MCDI2 1020 25408 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_LEN(num) (12+1*(num)) 25409 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_NUM(len) (((len)-12)/1) 25410 /* Number of sectors found (test builds only) */ 25411 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_NUM_SECTORS_OFST 0 25412 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_NUM_SECTORS_LEN 4 25413 /* Number of bytes found (test builds only) */ 25414 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_NUM_BYTES_OFST 4 25415 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_NUM_BYTES_LEN 4 25416 /* Length of signature */ 25417 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIG_LENGTH_OFST 8 25418 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIG_LENGTH_LEN 4 25419 /* Signature */ 25420 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_OFST 12 25421 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_LEN 1 25422 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_MINNUM 0 25423 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_MAXNUM 240 25424 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_MAXNUM_MCDI2 1008 25425 25426 25427 /***********************************/ 25428 /* MC_CMD_SET_EVQ_TMR 25429 * Update the timer load, timer reload and timer mode values for a given EVQ. 25430 * The requested timer values (in TMR_LOAD_REQ_NS and TMR_RELOAD_REQ_NS) will 25431 * be rounded up to the granularity supported by the hardware, then truncated 25432 * to the range supported by the hardware. The resulting value after the 25433 * rounding and truncation will be returned to the caller (in TMR_LOAD_ACT_NS 25434 * and TMR_RELOAD_ACT_NS). 25435 */ 25436 #define MC_CMD_SET_EVQ_TMR 0x120 25437 #define MC_CMD_SET_EVQ_TMR_MSGSET 0x120 25438 #undef MC_CMD_0x120_PRIVILEGE_CTG 25439 25440 #define MC_CMD_0x120_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25441 25442 /* MC_CMD_SET_EVQ_TMR_IN msgrequest */ 25443 #define MC_CMD_SET_EVQ_TMR_IN_LEN 16 25444 /* Function-relative queue instance */ 25445 #define MC_CMD_SET_EVQ_TMR_IN_INSTANCE_OFST 0 25446 #define MC_CMD_SET_EVQ_TMR_IN_INSTANCE_LEN 4 25447 /* Requested value for timer load (in nanoseconds) */ 25448 #define MC_CMD_SET_EVQ_TMR_IN_TMR_LOAD_REQ_NS_OFST 4 25449 #define MC_CMD_SET_EVQ_TMR_IN_TMR_LOAD_REQ_NS_LEN 4 25450 /* Requested value for timer reload (in nanoseconds) */ 25451 #define MC_CMD_SET_EVQ_TMR_IN_TMR_RELOAD_REQ_NS_OFST 8 25452 #define MC_CMD_SET_EVQ_TMR_IN_TMR_RELOAD_REQ_NS_LEN 4 25453 /* Timer mode. Meanings as per EVQ_TMR_REG.TC_TIMER_VAL */ 25454 #define MC_CMD_SET_EVQ_TMR_IN_TMR_MODE_OFST 12 25455 #define MC_CMD_SET_EVQ_TMR_IN_TMR_MODE_LEN 4 25456 #define MC_CMD_SET_EVQ_TMR_IN_TIMER_MODE_DIS 0x0 /* enum */ 25457 #define MC_CMD_SET_EVQ_TMR_IN_TIMER_MODE_IMMED_START 0x1 /* enum */ 25458 #define MC_CMD_SET_EVQ_TMR_IN_TIMER_MODE_TRIG_START 0x2 /* enum */ 25459 #define MC_CMD_SET_EVQ_TMR_IN_TIMER_MODE_INT_HLDOFF 0x3 /* enum */ 25460 25461 /* MC_CMD_SET_EVQ_TMR_OUT msgresponse */ 25462 #define MC_CMD_SET_EVQ_TMR_OUT_LEN 8 25463 /* Actual value for timer load (in nanoseconds) */ 25464 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_LOAD_ACT_NS_OFST 0 25465 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_LOAD_ACT_NS_LEN 4 25466 /* Actual value for timer reload (in nanoseconds) */ 25467 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_RELOAD_ACT_NS_OFST 4 25468 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_RELOAD_ACT_NS_LEN 4 25469 25470 25471 /***********************************/ 25472 /* MC_CMD_GET_EVQ_TMR_PROPERTIES 25473 * Query properties about the event queue timers. 25474 */ 25475 #define MC_CMD_GET_EVQ_TMR_PROPERTIES 0x122 25476 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_MSGSET 0x122 25477 #undef MC_CMD_0x122_PRIVILEGE_CTG 25478 25479 #define MC_CMD_0x122_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25480 25481 /* MC_CMD_GET_EVQ_TMR_PROPERTIES_IN msgrequest */ 25482 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_IN_LEN 0 25483 25484 /* MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT msgresponse */ 25485 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_LEN 36 25486 /* Reserved for future use. */ 25487 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_FLAGS_OFST 0 25488 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_FLAGS_LEN 4 25489 /* For timers updated via writes to EVQ_TMR_REG, this is the time interval (in 25490 * nanoseconds) for each increment of the timer load/reload count. The 25491 * requested duration of a timer is this value multiplied by the timer 25492 * load/reload count. 25493 */ 25494 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_NS_PER_COUNT_OFST 4 25495 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_NS_PER_COUNT_LEN 4 25496 /* For timers updated via writes to EVQ_TMR_REG, this is the maximum value 25497 * allowed for timer load/reload counts. 25498 */ 25499 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_MAX_COUNT_OFST 8 25500 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_MAX_COUNT_LEN 4 25501 /* For timers updated via writes to EVQ_TMR_REG, timer load/reload counts not a 25502 * multiple of this step size will be rounded in an implementation defined 25503 * manner. 25504 */ 25505 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_STEP_OFST 12 25506 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_STEP_LEN 4 25507 /* Maximum timer duration (in nanoseconds) for timers updated via MCDI. Only 25508 * meaningful if MC_CMD_SET_EVQ_TMR is implemented. 25509 */ 25510 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_MAX_NS_OFST 16 25511 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_MAX_NS_LEN 4 25512 /* Timer durations requested via MCDI that are not a multiple of this step size 25513 * will be rounded up. Only meaningful if MC_CMD_SET_EVQ_TMR is implemented. 25514 */ 25515 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_STEP_NS_OFST 20 25516 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_STEP_NS_LEN 4 25517 /* For timers updated using the bug35388 workaround, this is the time interval 25518 * (in nanoseconds) for each increment of the timer load/reload count. The 25519 * requested duration of a timer is this value multiplied by the timer 25520 * load/reload count. This field is only meaningful if the bug35388 workaround 25521 * is enabled. 25522 */ 25523 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_NS_PER_COUNT_OFST 24 25524 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_NS_PER_COUNT_LEN 4 25525 /* For timers updated using the bug35388 workaround, this is the maximum value 25526 * allowed for timer load/reload counts. This field is only meaningful if the 25527 * bug35388 workaround is enabled. 25528 */ 25529 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_MAX_COUNT_OFST 28 25530 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_MAX_COUNT_LEN 4 25531 /* For timers updated using the bug35388 workaround, timer load/reload counts 25532 * not a multiple of this step size will be rounded in an implementation 25533 * defined manner. This field is only meaningful if the bug35388 workaround is 25534 * enabled. 25535 */ 25536 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_STEP_OFST 32 25537 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_STEP_LEN 4 25538 25539 25540 /***********************************/ 25541 /* MC_CMD_ALLOCATE_TX_VFIFO_CP 25542 * When we use the TX_vFIFO_ULL mode, we can allocate common pools using the 25543 * non used switch buffers. 25544 */ 25545 #define MC_CMD_ALLOCATE_TX_VFIFO_CP 0x11d 25546 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_MSGSET 0x11d 25547 #undef MC_CMD_0x11d_PRIVILEGE_CTG 25548 25549 #define MC_CMD_0x11d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25550 25551 /* MC_CMD_ALLOCATE_TX_VFIFO_CP_IN msgrequest */ 25552 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_LEN 20 25553 /* Desired instance. Must be set to a specific instance, which is a function 25554 * local queue index. The calling client must be the currently-assigned user of 25555 * this VI (see MC_CMD_SET_VI_USER). 25556 */ 25557 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_INSTANCE_OFST 0 25558 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_INSTANCE_LEN 4 25559 /* Will the common pool be used as TX_vFIFO_ULL (1) */ 25560 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_MODE_OFST 4 25561 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_MODE_LEN 4 25562 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_ENABLED 0x1 /* enum */ 25563 /* enum: Using this interface without TX_vFIFO_ULL is not supported for now */ 25564 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_DISABLED 0x0 25565 /* Number of buffers to reserve for the common pool */ 25566 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_SIZE_OFST 8 25567 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_SIZE_LEN 4 25568 /* TX datapath to which the Common Pool is connected to. */ 25569 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_INGRESS_OFST 12 25570 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_INGRESS_LEN 4 25571 /* enum: Extracts information from function */ 25572 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_USE_FUNCTION_VALUE -0x1 25573 /* Network port or RX Engine to which the common pool connects. */ 25574 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_EGRESS_OFST 16 25575 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_EGRESS_LEN 4 25576 /* enum: Extracts information from function */ 25577 /* MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_USE_FUNCTION_VALUE -0x1 */ 25578 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_PORT0 0x0 /* enum */ 25579 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_PORT1 0x1 /* enum */ 25580 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_PORT2 0x2 /* enum */ 25581 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_PORT3 0x3 /* enum */ 25582 /* enum: To enable Switch loopback with Rx engine 0 */ 25583 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_RX_ENGINE0 0x4 25584 /* enum: To enable Switch loopback with Rx engine 1 */ 25585 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_RX_ENGINE1 0x5 25586 25587 /* MC_CMD_ALLOCATE_TX_VFIFO_CP_OUT msgresponse */ 25588 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_OUT_LEN 4 25589 /* ID of the common pool allocated */ 25590 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_OUT_CP_ID_OFST 0 25591 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_OUT_CP_ID_LEN 4 25592 25593 25594 /***********************************/ 25595 /* MC_CMD_ALLOCATE_TX_VFIFO_VFIFO 25596 * When we use the TX_vFIFO_ULL mode, we can allocate vFIFOs using the 25597 * previously allocated common pools. 25598 */ 25599 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO 0x11e 25600 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_MSGSET 0x11e 25601 #undef MC_CMD_0x11e_PRIVILEGE_CTG 25602 25603 #define MC_CMD_0x11e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25604 25605 /* MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN msgrequest */ 25606 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_LEN 20 25607 /* Common pool previously allocated to which the new vFIFO will be associated 25608 */ 25609 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_CP_OFST 0 25610 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_CP_LEN 4 25611 /* Port or RX engine to associate the vFIFO egress */ 25612 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_EGRESS_OFST 4 25613 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_EGRESS_LEN 4 25614 /* enum: Extracts information from common pool */ 25615 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_USE_CP_VALUE -0x1 25616 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PORT0 0x0 /* enum */ 25617 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PORT1 0x1 /* enum */ 25618 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PORT2 0x2 /* enum */ 25619 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PORT3 0x3 /* enum */ 25620 /* enum: To enable Switch loopback with Rx engine 0 */ 25621 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_RX_ENGINE0 0x4 25622 /* enum: To enable Switch loopback with Rx engine 1 */ 25623 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_RX_ENGINE1 0x5 25624 /* Minimum number of buffers that the pool must have */ 25625 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_SIZE_OFST 8 25626 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_SIZE_LEN 4 25627 /* enum: Do not check the space available */ 25628 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_NO_MINIMUM 0x0 25629 /* Will the vFIFO be used as TX_vFIFO_ULL */ 25630 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_MODE_OFST 12 25631 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_MODE_LEN 4 25632 /* Network priority of the vFIFO,if applicable */ 25633 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PRIORITY_OFST 16 25634 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PRIORITY_LEN 4 25635 /* enum: Search for the lowest unused priority */ 25636 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_LOWEST_AVAILABLE -0x1 25637 25638 /* MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT msgresponse */ 25639 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT_LEN 8 25640 /* Short vFIFO ID */ 25641 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT_VID_OFST 0 25642 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT_VID_LEN 4 25643 /* Network priority of the vFIFO */ 25644 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT_PRIORITY_OFST 4 25645 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT_PRIORITY_LEN 4 25646 25647 25648 /***********************************/ 25649 /* MC_CMD_TEARDOWN_TX_VFIFO_VF 25650 * This interface clears the configuration of the given vFIFO and leaves it 25651 * ready to be re-used. 25652 */ 25653 #define MC_CMD_TEARDOWN_TX_VFIFO_VF 0x11f 25654 #define MC_CMD_TEARDOWN_TX_VFIFO_VF_MSGSET 0x11f 25655 #undef MC_CMD_0x11f_PRIVILEGE_CTG 25656 25657 #define MC_CMD_0x11f_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25658 25659 /* MC_CMD_TEARDOWN_TX_VFIFO_VF_IN msgrequest */ 25660 #define MC_CMD_TEARDOWN_TX_VFIFO_VF_IN_LEN 4 25661 /* Short vFIFO ID */ 25662 #define MC_CMD_TEARDOWN_TX_VFIFO_VF_IN_VFIFO_OFST 0 25663 #define MC_CMD_TEARDOWN_TX_VFIFO_VF_IN_VFIFO_LEN 4 25664 25665 /* MC_CMD_TEARDOWN_TX_VFIFO_VF_OUT msgresponse */ 25666 #define MC_CMD_TEARDOWN_TX_VFIFO_VF_OUT_LEN 0 25667 25668 25669 /***********************************/ 25670 /* MC_CMD_DEALLOCATE_TX_VFIFO_CP 25671 * This interface clears the configuration of the given common pool and leaves 25672 * it ready to be re-used. 25673 */ 25674 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP 0x121 25675 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP_MSGSET 0x121 25676 #undef MC_CMD_0x121_PRIVILEGE_CTG 25677 25678 #define MC_CMD_0x121_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25679 25680 /* MC_CMD_DEALLOCATE_TX_VFIFO_CP_IN msgrequest */ 25681 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP_IN_LEN 4 25682 /* Common pool ID given when pool allocated */ 25683 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP_IN_POOL_ID_OFST 0 25684 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP_IN_POOL_ID_LEN 4 25685 25686 /* MC_CMD_DEALLOCATE_TX_VFIFO_CP_OUT msgresponse */ 25687 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP_OUT_LEN 0 25688 25689 25690 /***********************************/ 25691 /* MC_CMD_REKEY 25692 * This request causes the NIC to generate a new per-NIC key and program it 25693 * into the write-once memory. During the process all flash partitions that are 25694 * protected with a CMAC are verified with the old per-NIC key and then signed 25695 * with the new per-NIC key. If the NIC has already reached its rekey limit the 25696 * REKEY op will return MC_CMD_ERR_ERANGE. The REKEY op may block until 25697 * completion or it may return 0 and continue processing, therefore the caller 25698 * must poll at least once to confirm that the rekeying has completed. The POLL 25699 * operation returns MC_CMD_ERR_EBUSY if the rekey process is still running 25700 * otherwise it will return the result of the last completed rekey operation, 25701 * or 0 if there has not been a previous rekey. 25702 */ 25703 #define MC_CMD_REKEY 0x123 25704 #define MC_CMD_REKEY_MSGSET 0x123 25705 #undef MC_CMD_0x123_PRIVILEGE_CTG 25706 25707 #define MC_CMD_0x123_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 25708 25709 /* MC_CMD_REKEY_IN msgrequest */ 25710 #define MC_CMD_REKEY_IN_LEN 4 25711 /* the type of operation requested */ 25712 #define MC_CMD_REKEY_IN_OP_OFST 0 25713 #define MC_CMD_REKEY_IN_OP_LEN 4 25714 /* enum: Start the rekeying operation */ 25715 #define MC_CMD_REKEY_IN_OP_REKEY 0x0 25716 /* enum: Poll for completion of the rekeying operation */ 25717 #define MC_CMD_REKEY_IN_OP_POLL 0x1 25718 25719 /* MC_CMD_REKEY_OUT msgresponse */ 25720 #define MC_CMD_REKEY_OUT_LEN 0 25721 25722 25723 /***********************************/ 25724 /* MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS 25725 * This interface allows the host to find out how many common pool buffers are 25726 * not yet assigned. 25727 */ 25728 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS 0x124 25729 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_MSGSET 0x124 25730 #undef MC_CMD_0x124_PRIVILEGE_CTG 25731 25732 #define MC_CMD_0x124_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25733 25734 /* MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_IN msgrequest */ 25735 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_IN_LEN 0 25736 25737 /* MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT msgresponse */ 25738 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_LEN 8 25739 /* Available buffers for the ENG to NET vFIFOs. */ 25740 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_NET_OFST 0 25741 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_NET_LEN 4 25742 /* Available buffers for the ENG to ENG and NET to ENG vFIFOs. */ 25743 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_ENG_OFST 4 25744 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_ENG_LEN 4 25745 25746 25747 /***********************************/ 25748 /* MC_CMD_SET_SECURITY_FUSES 25749 * Change the security level of the adapter by setting bits in the write-once 25750 * memory. The firmware maps each flag in the message to a set of one or more 25751 * hardware-defined or software-defined bits and sets these bits in the write- 25752 * once memory. For Medford the hardware-defined bits are defined in 25753 * SF-112079-PS 5.3, the software-defined bits are defined in xpm.h. Returns 0 25754 * if all of the required bits were set and returns MC_CMD_ERR_EIO if any of 25755 * the required bits were not set. 25756 */ 25757 #define MC_CMD_SET_SECURITY_FUSES 0x126 25758 #define MC_CMD_SET_SECURITY_FUSES_MSGSET 0x126 25759 #undef MC_CMD_0x126_PRIVILEGE_CTG 25760 25761 #define MC_CMD_0x126_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 25762 25763 /* MC_CMD_SET_SECURITY_FUSES_IN msgrequest */ 25764 #define MC_CMD_SET_SECURITY_FUSES_IN_LEN 4 25765 /* Flags specifying what type of security features are being set */ 25766 #define MC_CMD_SET_SECURITY_FUSES_IN_FLAGS_OFST 0 25767 #define MC_CMD_SET_SECURITY_FUSES_IN_FLAGS_LEN 4 25768 #define MC_CMD_SET_SECURITY_FUSES_IN_SECURE_BOOT_OFST 0 25769 #define MC_CMD_SET_SECURITY_FUSES_IN_SECURE_BOOT_LBN 0 25770 #define MC_CMD_SET_SECURITY_FUSES_IN_SECURE_BOOT_WIDTH 1 25771 #define MC_CMD_SET_SECURITY_FUSES_IN_REJECT_TEST_SIGNED_OFST 0 25772 #define MC_CMD_SET_SECURITY_FUSES_IN_REJECT_TEST_SIGNED_LBN 1 25773 #define MC_CMD_SET_SECURITY_FUSES_IN_REJECT_TEST_SIGNED_WIDTH 1 25774 #define MC_CMD_SET_SECURITY_FUSES_IN_SOFT_CONFIG_OFST 0 25775 #define MC_CMD_SET_SECURITY_FUSES_IN_SOFT_CONFIG_LBN 31 25776 #define MC_CMD_SET_SECURITY_FUSES_IN_SOFT_CONFIG_WIDTH 1 25777 25778 /* MC_CMD_SET_SECURITY_FUSES_OUT msgresponse */ 25779 #define MC_CMD_SET_SECURITY_FUSES_OUT_LEN 0 25780 25781 /* MC_CMD_SET_SECURITY_FUSES_V2_OUT msgresponse */ 25782 #define MC_CMD_SET_SECURITY_FUSES_V2_OUT_LEN 4 25783 /* Flags specifying which security features are enforced on the NIC after the 25784 * flags in the request have been applied. See 25785 * MC_CMD_SET_SECURITY_FUSES_IN/FLAGS for flag definitions. 25786 */ 25787 #define MC_CMD_SET_SECURITY_FUSES_V2_OUT_FLAGS_OFST 0 25788 #define MC_CMD_SET_SECURITY_FUSES_V2_OUT_FLAGS_LEN 4 25789 25790 25791 /***********************************/ 25792 /* MC_CMD_TSA_INFO 25793 * Messages sent from TSA adapter to TSA controller. This command is only valid 25794 * when the MCDI header has MESSAGE_TYPE set to MCDI_MESSAGE_TYPE_TSA. This 25795 * command is not sent by the driver to the MC; it is sent from the MC to a TSA 25796 * controller, being treated more like an alert message rather than a command; 25797 * hence the MC does not expect a response in return. Doxbox reference 25798 * SF-117371-SW 25799 */ 25800 #define MC_CMD_TSA_INFO 0x127 25801 #define MC_CMD_TSA_INFO_MSGSET 0x127 25802 #undef MC_CMD_0x127_PRIVILEGE_CTG 25803 25804 #define MC_CMD_0x127_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 25805 25806 /* MC_CMD_TSA_INFO_IN msgrequest */ 25807 #define MC_CMD_TSA_INFO_IN_LEN 4 25808 #define MC_CMD_TSA_INFO_IN_OP_HDR_OFST 0 25809 #define MC_CMD_TSA_INFO_IN_OP_HDR_LEN 4 25810 #define MC_CMD_TSA_INFO_IN_OP_OFST 0 25811 #define MC_CMD_TSA_INFO_IN_OP_LBN 0 25812 #define MC_CMD_TSA_INFO_IN_OP_WIDTH 16 25813 /* enum: Information about recently discovered local IP address of the adapter 25814 */ 25815 #define MC_CMD_TSA_INFO_OP_LOCAL_IP 0x1 25816 /* enum: Information about a sampled packet that either - did not match any 25817 * black/white-list filters and was allowed by the default filter or - did not 25818 * match any black/white-list filters and was denied by the default filter 25819 */ 25820 #define MC_CMD_TSA_INFO_OP_PKT_SAMPLE 0x2 25821 /* enum: Information about an unbind or decommission attempt. */ 25822 #define MC_CMD_TSA_INFO_OP_UNBIND 0x3 25823 25824 /* MC_CMD_TSA_INFO_IN_LOCAL_IP msgrequest: 25825 * 25826 * The TSA controller maintains a list of IP addresses valid for each port of a 25827 * TSA adapter. The TSA controller requires information from the adapter 25828 * inorder to learn new IP addresses assigned to a physical port and to 25829 * identify those that are no longer assigned to the physical port. For this 25830 * purpose, the TSA adapter snoops ARP replys, gratuitous ARP requests and ARP 25831 * probe packets seen on each physical port. This definition describes the 25832 * format of the notification message sent from a TSA adapter to a TSA 25833 * controller related to any information related to a change in IP address 25834 * assignment for a port. Doxbox reference SF-117371. 25835 * 25836 * There may be a possibility of combining multiple notifications in a single 25837 * message in future. When that happens, a new flag can be defined using the 25838 * reserved bits to describe the extended format of this notification. 25839 */ 25840 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_LEN 18 25841 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_OP_HDR_OFST 0 25842 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_OP_HDR_LEN 4 25843 /* Additional metadata describing the IP address information such as source of 25844 * information retrieval, type of IP address, physical port number. 25845 */ 25846 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_OFST 4 25847 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_LEN 4 25848 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_PORT_INDEX_OFST 4 25849 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_PORT_INDEX_LBN 0 25850 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_PORT_INDEX_WIDTH 8 25851 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED_OFST 4 25852 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED_LBN 8 25853 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED_WIDTH 8 25854 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_REASON_OFST 4 25855 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_REASON_LBN 16 25856 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_REASON_WIDTH 8 25857 /* enum: ARP reply sent out of the physical port */ 25858 #define MC_CMD_TSA_INFO_IP_REASON_TX_ARP 0x0 25859 /* enum: ARP probe packet received on the physical port */ 25860 #define MC_CMD_TSA_INFO_IP_REASON_RX_ARP_PROBE 0x1 25861 /* enum: Gratuitous ARP packet received on the physical port */ 25862 #define MC_CMD_TSA_INFO_IP_REASON_RX_GRATUITOUS_ARP 0x2 25863 /* enum: DHCP ACK packet received on the physical port */ 25864 #define MC_CMD_TSA_INFO_IP_REASON_RX_DHCP_ACK 0x3 25865 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_IPV4_OFST 4 25866 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_IPV4_LBN 24 25867 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_IPV4_WIDTH 1 25868 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED1_OFST 4 25869 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED1_LBN 25 25870 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED1_WIDTH 7 25871 /* IPV4 address retrieved from the sampled packets. This field is relevant only 25872 * when META_IPV4 is set to 1. 25873 */ 25874 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_IPV4_ADDR_OFST 8 25875 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_IPV4_ADDR_LEN 4 25876 /* Target MAC address retrieved from the sampled packet. */ 25877 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_MAC_ADDR_OFST 12 25878 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_MAC_ADDR_LEN 1 25879 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_MAC_ADDR_NUM 6 25880 25881 /* MC_CMD_TSA_INFO_IN_PKT_SAMPLE msgrequest: 25882 * 25883 * It is desireable for the TSA controller to learn the traffic pattern of 25884 * packets seen at the network port being monitored. In order to learn about 25885 * the traffic pattern, the TSA controller may want to sample packets seen at 25886 * the network port. Based on the packet samples that the TSA controller 25887 * receives from the adapter, the controller may choose to configure additional 25888 * black-list or white-list rules to allow or block packets as required. 25889 * 25890 * Although the entire sampled packet as seen on the network port is available 25891 * to the MC the length of sampled packet sent to controller is restricted by 25892 * MCDI payload size. Besides, the TSA controller does not require the entire 25893 * packet to make decisions about filter updates. Hence the packet sample being 25894 * passed to the controller is truncated to 128 bytes. This length is large 25895 * enough to hold the ethernet header, IP header and maximum length of 25896 * supported L4 protocol headers (IPv4 only, but can hold IPv6 header too, if 25897 * required in future). 25898 * 25899 * The intention is that any future changes to this message format that are not 25900 * backwards compatible will be defined with a new operation code. 25901 */ 25902 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_LEN 136 25903 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_OP_HDR_OFST 0 25904 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_OP_HDR_LEN 4 25905 /* Additional metadata describing the sampled packet */ 25906 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_OFST 4 25907 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_LEN 4 25908 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_PORT_INDEX_OFST 4 25909 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_PORT_INDEX_LBN 0 25910 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_PORT_INDEX_WIDTH 8 25911 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_DIRECTION_OFST 4 25912 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_DIRECTION_LBN 8 25913 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_DIRECTION_WIDTH 1 25914 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_RESERVED_OFST 4 25915 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_RESERVED_LBN 9 25916 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_RESERVED_WIDTH 7 25917 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_MASK_OFST 4 25918 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_MASK_LBN 16 25919 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_MASK_WIDTH 4 25920 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_ALLOW_OFST 4 25921 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_ALLOW_LBN 16 25922 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_ALLOW_WIDTH 1 25923 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_DENY_OFST 4 25924 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_DENY_LBN 17 25925 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_DENY_WIDTH 1 25926 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_COUNT_OFST 4 25927 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_COUNT_LBN 18 25928 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_COUNT_WIDTH 1 25929 /* 128-byte raw prefix of the sampled packet which includes the ethernet 25930 * header, IP header and L4 protocol header (only IPv4 supported initially). 25931 * This provides the controller enough information about the packet sample to 25932 * report traffic patterns seen on a network port and to make decisions 25933 * concerning rule-set updates. 25934 */ 25935 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_PACKET_DATA_OFST 8 25936 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_PACKET_DATA_LEN 1 25937 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_PACKET_DATA_NUM 128 25938 25939 /* MC_CMD_TSA_INFO_IN_UNBIND msgrequest: Information about an unbind or 25940 * decommission attempt. The purpose of this event is to let the controller 25941 * know about unbind and decommission attempts (both successful and failed) 25942 * received from the adapter host. The event is not sent if the unbind or 25943 * decommission request was received from the controller. 25944 */ 25945 #define MC_CMD_TSA_INFO_IN_UNBIND_LEN 12 25946 #define MC_CMD_TSA_INFO_IN_UNBIND_OP_HDR_OFST 0 25947 #define MC_CMD_TSA_INFO_IN_UNBIND_OP_HDR_LEN 4 25948 #define MC_CMD_TSA_INFO_IN_UNBIND_OP_OFST 0 25949 #define MC_CMD_TSA_INFO_IN_UNBIND_OP_LBN 0 25950 #define MC_CMD_TSA_INFO_IN_UNBIND_OP_WIDTH 16 25951 /* Type of the unbind attempt. */ 25952 #define MC_CMD_TSA_INFO_IN_UNBIND_TYPE_OFST 4 25953 #define MC_CMD_TSA_INFO_IN_UNBIND_TYPE_LEN 4 25954 /* enum: This event is sent because MC_CMD_TSA_BIND_OP_SECURE_UNBIND was 25955 * received from the adapter local host. 25956 */ 25957 #define MC_CMD_TSA_INFO_UNBIND_TYPE_SECURE_UNBIND 0x1 25958 /* enum: This event is sent because MC_CMD_TSA_BIND_OP_SECURE_DECOMMISSION was 25959 * received from the adapter local host. 25960 */ 25961 #define MC_CMD_TSA_INFO_UNBIND_TYPE_SECURE_DECOMMISSION 0x2 25962 /* Result of the attempt. */ 25963 #define MC_CMD_TSA_INFO_IN_UNBIND_RESULT_OFST 8 25964 #define MC_CMD_TSA_INFO_IN_UNBIND_RESULT_LEN 4 25965 /* Enum values, see field(s): */ 25966 /* MC_CMD_TSA_BIND/MC_CMD_TSA_BIND_OUT_SECURE_UNBIND/RESULT */ 25967 25968 /* MC_CMD_TSA_INFO_OUT msgresponse */ 25969 #define MC_CMD_TSA_INFO_OUT_LEN 0 25970 25971 25972 /***********************************/ 25973 /* MC_CMD_HOST_INFO 25974 * Commands to appply or retrieve host-related information from an adapter. 25975 * Doxbox reference SF-117371-SW 25976 */ 25977 #define MC_CMD_HOST_INFO 0x128 25978 #define MC_CMD_HOST_INFO_MSGSET 0x128 25979 #undef MC_CMD_0x128_PRIVILEGE_CTG 25980 25981 #define MC_CMD_0x128_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25982 25983 /* MC_CMD_HOST_INFO_IN msgrequest */ 25984 #define MC_CMD_HOST_INFO_IN_LEN 4 25985 /* sub-operation code info */ 25986 #define MC_CMD_HOST_INFO_IN_OP_HDR_OFST 0 25987 #define MC_CMD_HOST_INFO_IN_OP_HDR_LEN 4 25988 #define MC_CMD_HOST_INFO_IN_OP_OFST 0 25989 #define MC_CMD_HOST_INFO_IN_OP_LBN 0 25990 #define MC_CMD_HOST_INFO_IN_OP_WIDTH 16 25991 /* enum: Read a 16-byte unique host identifier from the adapter. This UUID 25992 * helps to identify the host that an adapter is plugged into. This identifier 25993 * is ideally the system UUID retrieved and set by the UEFI driver. If the UEFI 25994 * driver is unable to extract the system UUID, it would still set a random 25995 * 16-byte value into each supported SF adapter plugged into it. Host UUIDs may 25996 * change if the system is power-cycled, however, they persist across adapter 25997 * resets. If the host UUID was not set on an adapter, due to an unsupported 25998 * version of UEFI driver, then this command returns an error. Doxbox reference 25999 * - SF-117371-SW section 'Host UUID'. 26000 */ 26001 #define MC_CMD_HOST_INFO_OP_GET_UUID 0x0 26002 /* enum: Set a 16-byte unique host identifier on the adapter to identify the 26003 * host that the adapter is plugged into. See MC_CMD_HOST_INFO_OP_GET_UUID for 26004 * further details. 26005 */ 26006 #define MC_CMD_HOST_INFO_OP_SET_UUID 0x1 26007 26008 /* MC_CMD_HOST_INFO_IN_GET_UUID msgrequest */ 26009 #define MC_CMD_HOST_INFO_IN_GET_UUID_LEN 4 26010 /* sub-operation code info */ 26011 #define MC_CMD_HOST_INFO_IN_GET_UUID_OP_HDR_OFST 0 26012 #define MC_CMD_HOST_INFO_IN_GET_UUID_OP_HDR_LEN 4 26013 26014 /* MC_CMD_HOST_INFO_OUT_GET_UUID msgresponse */ 26015 #define MC_CMD_HOST_INFO_OUT_GET_UUID_LEN 16 26016 /* 16-byte host UUID read out of the adapter. See MC_CMD_HOST_INFO_OP_GET_UUID 26017 * for further details. 26018 */ 26019 #define MC_CMD_HOST_INFO_OUT_GET_UUID_HOST_UUID_OFST 0 26020 #define MC_CMD_HOST_INFO_OUT_GET_UUID_HOST_UUID_LEN 1 26021 #define MC_CMD_HOST_INFO_OUT_GET_UUID_HOST_UUID_NUM 16 26022 26023 /* MC_CMD_HOST_INFO_IN_SET_UUID msgrequest */ 26024 #define MC_CMD_HOST_INFO_IN_SET_UUID_LEN 20 26025 /* sub-operation code info */ 26026 #define MC_CMD_HOST_INFO_IN_SET_UUID_OP_HDR_OFST 0 26027 #define MC_CMD_HOST_INFO_IN_SET_UUID_OP_HDR_LEN 4 26028 /* 16-byte host UUID set on the adapter. See MC_CMD_HOST_INFO_OP_GET_UUID for 26029 * further details. 26030 */ 26031 #define MC_CMD_HOST_INFO_IN_SET_UUID_HOST_UUID_OFST 4 26032 #define MC_CMD_HOST_INFO_IN_SET_UUID_HOST_UUID_LEN 1 26033 #define MC_CMD_HOST_INFO_IN_SET_UUID_HOST_UUID_NUM 16 26034 26035 /* MC_CMD_HOST_INFO_OUT_SET_UUID msgresponse */ 26036 #define MC_CMD_HOST_INFO_OUT_SET_UUID_LEN 0 26037 26038 26039 /***********************************/ 26040 /* MC_CMD_TSAN_INFO 26041 * Get TSA adapter information. TSA controllers query each TSA adapter to learn 26042 * some configuration parameters of each adapter. Doxbox reference SF-117371-SW 26043 * section 'Adapter Information' 26044 */ 26045 #define MC_CMD_TSAN_INFO 0x129 26046 #define MC_CMD_TSAN_INFO_MSGSET 0x129 26047 #undef MC_CMD_0x129_PRIVILEGE_CTG 26048 26049 #define MC_CMD_0x129_PRIVILEGE_CTG SRIOV_CTG_ADMIN 26050 26051 /* MC_CMD_TSAN_INFO_IN msgrequest */ 26052 #define MC_CMD_TSAN_INFO_IN_LEN 4 26053 /* sub-operation code info */ 26054 #define MC_CMD_TSAN_INFO_IN_OP_HDR_OFST 0 26055 #define MC_CMD_TSAN_INFO_IN_OP_HDR_LEN 4 26056 #define MC_CMD_TSAN_INFO_IN_OP_OFST 0 26057 #define MC_CMD_TSAN_INFO_IN_OP_LBN 0 26058 #define MC_CMD_TSAN_INFO_IN_OP_WIDTH 16 26059 /* enum: Read configuration parameters and IDs that uniquely identify an 26060 * adapter. The parameters include - host identification, adapter 26061 * identification string and number of physical ports on the adapter. 26062 */ 26063 #define MC_CMD_TSAN_INFO_OP_GET_CFG 0x0 26064 26065 /* MC_CMD_TSAN_INFO_IN_GET_CFG msgrequest */ 26066 #define MC_CMD_TSAN_INFO_IN_GET_CFG_LEN 4 26067 /* sub-operation code info */ 26068 #define MC_CMD_TSAN_INFO_IN_GET_CFG_OP_HDR_OFST 0 26069 #define MC_CMD_TSAN_INFO_IN_GET_CFG_OP_HDR_LEN 4 26070 26071 /* MC_CMD_TSAN_INFO_OUT_GET_CFG msgresponse */ 26072 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_LEN 26 26073 /* Information about the configuration parameters returned in this response. */ 26074 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_CONFIG_WORD_OFST 0 26075 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_CONFIG_WORD_LEN 4 26076 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_CAP_FLAGS_OFST 0 26077 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_CAP_FLAGS_LBN 0 26078 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_CAP_FLAGS_WIDTH 16 26079 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_FLAG_HOST_UUID_VALID_OFST 0 26080 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_FLAG_HOST_UUID_VALID_LBN 0 26081 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_FLAG_HOST_UUID_VALID_WIDTH 1 26082 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_NUM_PORTS_OFST 0 26083 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_NUM_PORTS_LBN 16 26084 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_NUM_PORTS_WIDTH 8 26085 /* 16-byte host UUID read out of the adapter. See MC_CMD_HOST_INFO_OP_GET_UUID 26086 * for further details. 26087 */ 26088 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_HOST_UUID_OFST 4 26089 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_HOST_UUID_LEN 1 26090 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_HOST_UUID_NUM 16 26091 /* A unique identifier per adapter. The base MAC address of the card is used 26092 * for this purpose. 26093 */ 26094 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_GUID_OFST 20 26095 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_GUID_LEN 1 26096 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_GUID_NUM 6 26097 26098 /* MC_CMD_TSAN_INFO_OUT_GET_CFG_V2 msgresponse */ 26099 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_LEN 36 26100 /* Information about the configuration parameters returned in this response. */ 26101 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_CONFIG_WORD_OFST 0 26102 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_CONFIG_WORD_LEN 4 26103 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_CAP_FLAGS_OFST 0 26104 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_CAP_FLAGS_LBN 0 26105 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_CAP_FLAGS_WIDTH 16 26106 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_FLAG_HOST_UUID_VALID_OFST 0 26107 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_FLAG_HOST_UUID_VALID_LBN 0 26108 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_FLAG_HOST_UUID_VALID_WIDTH 1 26109 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_NUM_PORTS_OFST 0 26110 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_NUM_PORTS_LBN 16 26111 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_NUM_PORTS_WIDTH 8 26112 /* 16-byte host UUID read out of the adapter. See MC_CMD_HOST_INFO_OP_GET_UUID 26113 * for further details. 26114 */ 26115 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_HOST_UUID_OFST 4 26116 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_HOST_UUID_LEN 1 26117 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_HOST_UUID_NUM 16 26118 /* A unique identifier per adapter. The base MAC address of the card is used 26119 * for this purpose. 26120 */ 26121 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_GUID_OFST 20 26122 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_GUID_LEN 1 26123 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_GUID_NUM 6 26124 /* Unused bytes, defined for 32-bit alignment of new fields. */ 26125 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_UNUSED_OFST 26 26126 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_UNUSED_LEN 2 26127 /* Maximum number of TSA statistics counters in each direction of dataflow 26128 * supported on the card. Note that the statistics counters are always 26129 * allocated in pairs, i.e. a counter ID is associated with one Tx and one Rx 26130 * counter. 26131 */ 26132 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_MAX_STATS_OFST 28 26133 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_MAX_STATS_LEN 4 26134 /* Width of each statistics counter (represented in bits). This gives an 26135 * indication of wrap point to the user. 26136 */ 26137 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_STATS_WIDTH_OFST 32 26138 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_STATS_WIDTH_LEN 4 26139 26140 26141 /***********************************/ 26142 /* MC_CMD_TSA_STATISTICS 26143 * TSA adapter statistics operations. 26144 */ 26145 #define MC_CMD_TSA_STATISTICS 0x130 26146 #define MC_CMD_TSA_STATISTICS_MSGSET 0x130 26147 #undef MC_CMD_0x130_PRIVILEGE_CTG 26148 26149 #define MC_CMD_0x130_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 26150 26151 /* MC_CMD_TSA_STATISTICS_IN msgrequest */ 26152 #define MC_CMD_TSA_STATISTICS_IN_LEN 4 26153 /* TSA statistics sub-operation code */ 26154 #define MC_CMD_TSA_STATISTICS_IN_OP_CODE_OFST 0 26155 #define MC_CMD_TSA_STATISTICS_IN_OP_CODE_LEN 4 26156 /* enum: Get the configuration parameters that describe the TSA statistics 26157 * layout on the adapter. 26158 */ 26159 #define MC_CMD_TSA_STATISTICS_OP_GET_CONFIG 0x0 26160 /* enum: Read and/or clear TSA statistics counters. */ 26161 #define MC_CMD_TSA_STATISTICS_OP_READ_CLEAR 0x1 26162 26163 /* MC_CMD_TSA_STATISTICS_IN_GET_CONFIG msgrequest */ 26164 #define MC_CMD_TSA_STATISTICS_IN_GET_CONFIG_LEN 4 26165 /* TSA statistics sub-operation code */ 26166 #define MC_CMD_TSA_STATISTICS_IN_GET_CONFIG_OP_CODE_OFST 0 26167 #define MC_CMD_TSA_STATISTICS_IN_GET_CONFIG_OP_CODE_LEN 4 26168 26169 /* MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG msgresponse */ 26170 #define MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG_LEN 8 26171 /* Maximum number of TSA statistics counters in each direction of dataflow 26172 * supported on the card. Note that the statistics counters are always 26173 * allocated in pairs, i.e. a counter ID is associated with one Tx and one Rx 26174 * counter. 26175 */ 26176 #define MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG_MAX_STATS_OFST 0 26177 #define MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG_MAX_STATS_LEN 4 26178 /* Width of each statistics counter (represented in bits). This gives an 26179 * indication of wrap point to the user. 26180 */ 26181 #define MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG_STATS_WIDTH_OFST 4 26182 #define MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG_STATS_WIDTH_LEN 4 26183 26184 /* MC_CMD_TSA_STATISTICS_IN_READ_CLEAR msgrequest */ 26185 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_LENMIN 20 26186 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_LENMAX 252 26187 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_LENMAX_MCDI2 1020 26188 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_LEN(num) (16+4*(num)) 26189 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_NUM(len) (((len)-16)/4) 26190 /* TSA statistics sub-operation code */ 26191 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_OP_CODE_OFST 0 26192 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_OP_CODE_LEN 4 26193 /* Parameters describing the statistics operation */ 26194 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_FLAGS_OFST 4 26195 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_FLAGS_LEN 4 26196 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_READ_OFST 4 26197 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_READ_LBN 0 26198 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_READ_WIDTH 1 26199 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_CLEAR_OFST 4 26200 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_CLEAR_LBN 1 26201 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_CLEAR_WIDTH 1 26202 /* Counter ID list specification type */ 26203 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_MODE_OFST 8 26204 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_MODE_LEN 4 26205 /* enum: The statistics counters are specified as an unordered list of 26206 * individual counter ID. 26207 */ 26208 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_LIST 0x0 26209 /* enum: The statistics counters are specified as a range of consecutive 26210 * counter IDs. 26211 */ 26212 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_RANGE 0x1 26213 /* Number of statistics counters */ 26214 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_NUM_STATS_OFST 12 26215 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_NUM_STATS_LEN 4 26216 /* Counter IDs to be read/cleared. When mode is set to LIST, this entry holds a 26217 * list of counter IDs to be operated on. When mode is set to RANGE, this entry 26218 * holds a single counter ID representing the start of the range of counter IDs 26219 * to be operated on. 26220 */ 26221 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_OFST 16 26222 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_LEN 4 26223 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_MINNUM 1 26224 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_MAXNUM 59 26225 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_MAXNUM_MCDI2 251 26226 26227 /* MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR msgresponse */ 26228 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_LENMIN 24 26229 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_LENMAX 248 26230 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_LENMAX_MCDI2 1016 26231 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_LEN(num) (8+16*(num)) 26232 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_NUM(len) (((len)-8)/16) 26233 /* Number of statistics counters returned in this response */ 26234 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_NUM_STATS_OFST 0 26235 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_NUM_STATS_LEN 4 26236 /* MC_TSA_STATISTICS_ENTRY Note that this field is expected to start at a 26237 * 64-bit aligned offset 26238 */ 26239 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_OFST 8 26240 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_LEN 16 26241 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_MINNUM 1 26242 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_MAXNUM 15 26243 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_MAXNUM_MCDI2 63 26244 26245 /* MC_TSA_STATISTICS_ENTRY structuredef */ 26246 #define MC_TSA_STATISTICS_ENTRY_LEN 16 26247 /* Tx statistics counter */ 26248 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_OFST 0 26249 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_LEN 8 26250 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_LO_OFST 0 26251 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_LO_LEN 4 26252 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_LO_LBN 0 26253 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_LO_WIDTH 32 26254 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_HI_OFST 4 26255 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_HI_LEN 4 26256 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_HI_LBN 32 26257 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_HI_WIDTH 32 26258 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_LBN 0 26259 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_WIDTH 64 26260 /* Rx statistics counter */ 26261 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_OFST 8 26262 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_LEN 8 26263 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_LO_OFST 8 26264 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_LO_LEN 4 26265 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_LO_LBN 64 26266 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_LO_WIDTH 32 26267 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_HI_OFST 12 26268 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_HI_LEN 4 26269 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_HI_LBN 96 26270 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_HI_WIDTH 32 26271 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_LBN 64 26272 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_WIDTH 64 26273 26274 26275 /***********************************/ 26276 /* MC_CMD_ERASE_INITIAL_NIC_SECRET 26277 * This request causes the NIC to find the initial NIC secret (programmed 26278 * during ATE) in XPM memory and if and only if the NIC has already been 26279 * rekeyed with MC_CMD_REKEY, erase it. This is used by manftest after 26280 * installing TSA binding certificates. See SF-117631-TC. 26281 */ 26282 #define MC_CMD_ERASE_INITIAL_NIC_SECRET 0x131 26283 #define MC_CMD_ERASE_INITIAL_NIC_SECRET_MSGSET 0x131 26284 #undef MC_CMD_0x131_PRIVILEGE_CTG 26285 26286 #define MC_CMD_0x131_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 26287 26288 /* MC_CMD_ERASE_INITIAL_NIC_SECRET_IN msgrequest */ 26289 #define MC_CMD_ERASE_INITIAL_NIC_SECRET_IN_LEN 0 26290 26291 /* MC_CMD_ERASE_INITIAL_NIC_SECRET_OUT msgresponse */ 26292 #define MC_CMD_ERASE_INITIAL_NIC_SECRET_OUT_LEN 0 26293 26294 26295 /***********************************/ 26296 /* MC_CMD_TSA_CONFIG 26297 * TSA adapter configuration operations. This command is used to prepare the 26298 * NIC for TSA binding. 26299 */ 26300 #define MC_CMD_TSA_CONFIG 0x64 26301 #define MC_CMD_TSA_CONFIG_MSGSET 0x64 26302 #undef MC_CMD_0x64_PRIVILEGE_CTG 26303 26304 #define MC_CMD_0x64_PRIVILEGE_CTG SRIOV_CTG_ADMIN 26305 26306 /* MC_CMD_TSA_CONFIG_IN msgrequest */ 26307 #define MC_CMD_TSA_CONFIG_IN_LEN 4 26308 /* TSA configuration sub-operation code */ 26309 #define MC_CMD_TSA_CONFIG_IN_OP_OFST 0 26310 #define MC_CMD_TSA_CONFIG_IN_OP_LEN 4 26311 /* enum: Append a single item to the tsa_config partition. Items will be 26312 * encrypted unless they are declared as non-sensitive. Returns 26313 * MC_CMD_ERR_EEXIST if the tag is already present. 26314 */ 26315 #define MC_CMD_TSA_CONFIG_OP_APPEND 0x1 26316 /* enum: Reset the tsa_config partition to a clean state. */ 26317 #define MC_CMD_TSA_CONFIG_OP_RESET 0x2 26318 /* enum: Read back a configured item from tsa_config partition. Returns 26319 * MC_CMD_ERR_ENOENT if the item doesn't exist, or MC_CMD_ERR_EPERM if the item 26320 * is declared as sensitive (i.e. is encrypted). 26321 */ 26322 #define MC_CMD_TSA_CONFIG_OP_READ 0x3 26323 26324 /* MC_CMD_TSA_CONFIG_IN_APPEND msgrequest */ 26325 #define MC_CMD_TSA_CONFIG_IN_APPEND_LENMIN 12 26326 #define MC_CMD_TSA_CONFIG_IN_APPEND_LENMAX 252 26327 #define MC_CMD_TSA_CONFIG_IN_APPEND_LENMAX_MCDI2 1020 26328 #define MC_CMD_TSA_CONFIG_IN_APPEND_LEN(num) (12+1*(num)) 26329 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_NUM(len) (((len)-12)/1) 26330 /* TSA configuration sub-operation code. The value shall be 26331 * MC_CMD_TSA_CONFIG_OP_APPEND. 26332 */ 26333 #define MC_CMD_TSA_CONFIG_IN_APPEND_OP_OFST 0 26334 #define MC_CMD_TSA_CONFIG_IN_APPEND_OP_LEN 4 26335 /* The tag to be appended */ 26336 #define MC_CMD_TSA_CONFIG_IN_APPEND_TAG_OFST 4 26337 #define MC_CMD_TSA_CONFIG_IN_APPEND_TAG_LEN 4 26338 /* The length of the data in bytes */ 26339 #define MC_CMD_TSA_CONFIG_IN_APPEND_LENGTH_OFST 8 26340 #define MC_CMD_TSA_CONFIG_IN_APPEND_LENGTH_LEN 4 26341 /* The item data */ 26342 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_OFST 12 26343 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_LEN 1 26344 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_MINNUM 0 26345 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_MAXNUM 240 26346 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_MAXNUM_MCDI2 1008 26347 26348 /* MC_CMD_TSA_CONFIG_OUT_APPEND msgresponse */ 26349 #define MC_CMD_TSA_CONFIG_OUT_APPEND_LEN 0 26350 26351 /* MC_CMD_TSA_CONFIG_IN_RESET msgrequest */ 26352 #define MC_CMD_TSA_CONFIG_IN_RESET_LEN 4 26353 /* TSA configuration sub-operation code. The value shall be 26354 * MC_CMD_TSA_CONFIG_OP_RESET. 26355 */ 26356 #define MC_CMD_TSA_CONFIG_IN_RESET_OP_OFST 0 26357 #define MC_CMD_TSA_CONFIG_IN_RESET_OP_LEN 4 26358 26359 /* MC_CMD_TSA_CONFIG_OUT_RESET msgresponse */ 26360 #define MC_CMD_TSA_CONFIG_OUT_RESET_LEN 0 26361 26362 /* MC_CMD_TSA_CONFIG_IN_READ msgrequest */ 26363 #define MC_CMD_TSA_CONFIG_IN_READ_LEN 8 26364 /* TSA configuration sub-operation code. The value shall be 26365 * MC_CMD_TSA_CONFIG_OP_READ. 26366 */ 26367 #define MC_CMD_TSA_CONFIG_IN_READ_OP_OFST 0 26368 #define MC_CMD_TSA_CONFIG_IN_READ_OP_LEN 4 26369 /* The tag to be read */ 26370 #define MC_CMD_TSA_CONFIG_IN_READ_TAG_OFST 4 26371 #define MC_CMD_TSA_CONFIG_IN_READ_TAG_LEN 4 26372 26373 /* MC_CMD_TSA_CONFIG_OUT_READ msgresponse */ 26374 #define MC_CMD_TSA_CONFIG_OUT_READ_LENMIN 8 26375 #define MC_CMD_TSA_CONFIG_OUT_READ_LENMAX 252 26376 #define MC_CMD_TSA_CONFIG_OUT_READ_LENMAX_MCDI2 1020 26377 #define MC_CMD_TSA_CONFIG_OUT_READ_LEN(num) (8+1*(num)) 26378 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_NUM(len) (((len)-8)/1) 26379 /* The tag that was read */ 26380 #define MC_CMD_TSA_CONFIG_OUT_READ_TAG_OFST 0 26381 #define MC_CMD_TSA_CONFIG_OUT_READ_TAG_LEN 4 26382 /* The length of the data in bytes */ 26383 #define MC_CMD_TSA_CONFIG_OUT_READ_LENGTH_OFST 4 26384 #define MC_CMD_TSA_CONFIG_OUT_READ_LENGTH_LEN 4 26385 /* The data of the item. */ 26386 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_OFST 8 26387 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_LEN 1 26388 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_MINNUM 0 26389 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_MAXNUM 244 26390 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_MAXNUM_MCDI2 1012 26391 26392 /* MC_TSA_IPV4_ITEM structuredef */ 26393 #define MC_TSA_IPV4_ITEM_LEN 8 26394 /* Additional metadata describing the IP address information such as the 26395 * physical port number the address is being used on. Unused space in this 26396 * field is reserved for future expansion. 26397 */ 26398 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_META_OFST 0 26399 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_META_LEN 4 26400 #define MC_TSA_IPV4_ITEM_PORT_IDX_OFST 0 26401 #define MC_TSA_IPV4_ITEM_PORT_IDX_LBN 0 26402 #define MC_TSA_IPV4_ITEM_PORT_IDX_WIDTH 8 26403 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_META_LBN 0 26404 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_META_WIDTH 32 26405 /* The IPv4 address in little endian byte order. */ 26406 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_OFST 4 26407 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_LEN 4 26408 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_LBN 32 26409 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_WIDTH 32 26410 26411 26412 /***********************************/ 26413 /* MC_CMD_TSA_IPADDR 26414 * TSA operations relating to the monitoring and expiry of local IP addresses 26415 * discovered by the controller. These commands are sent from a TSA controller 26416 * to a TSA adapter. 26417 */ 26418 #define MC_CMD_TSA_IPADDR 0x65 26419 #define MC_CMD_TSA_IPADDR_MSGSET 0x65 26420 #undef MC_CMD_0x65_PRIVILEGE_CTG 26421 26422 #define MC_CMD_0x65_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 26423 26424 /* MC_CMD_TSA_IPADDR_IN msgrequest */ 26425 #define MC_CMD_TSA_IPADDR_IN_LEN 4 26426 /* Header containing information to identify which sub-operation of this 26427 * command to perform. The header contains a 16-bit op-code. Unused space in 26428 * this field is reserved for future expansion. 26429 */ 26430 #define MC_CMD_TSA_IPADDR_IN_OP_HDR_OFST 0 26431 #define MC_CMD_TSA_IPADDR_IN_OP_HDR_LEN 4 26432 #define MC_CMD_TSA_IPADDR_IN_OP_OFST 0 26433 #define MC_CMD_TSA_IPADDR_IN_OP_LBN 0 26434 #define MC_CMD_TSA_IPADDR_IN_OP_WIDTH 16 26435 /* enum: Request that the adapter verifies that the IPv4 addresses supplied are 26436 * still in use by the host by sending ARP probes to the host. The MC does not 26437 * wait for a response to the probes and sends an MCDI response to the 26438 * controller once the probes have been sent to the host. The response to the 26439 * probes (if there are any) will be forwarded to the controller using 26440 * MC_CMD_TSA_INFO alerts. 26441 */ 26442 #define MC_CMD_TSA_IPADDR_OP_VALIDATE_IPV4 0x1 26443 /* enum: Notify the adapter that one or more IPv4 addresses are no longer valid 26444 * for the host of the adapter. The adapter should remove the IPv4 addresses 26445 * from its local cache. 26446 */ 26447 #define MC_CMD_TSA_IPADDR_OP_REMOVE_IPV4 0x2 26448 26449 /* MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4 msgrequest */ 26450 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_LENMIN 16 26451 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_LENMAX 248 26452 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_LENMAX_MCDI2 1016 26453 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_LEN(num) (8+8*(num)) 26454 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_NUM(len) (((len)-8)/8) 26455 /* Header containing information to identify which sub-operation of this 26456 * command to perform. The header contains a 16-bit op-code. Unused space in 26457 * this field is reserved for future expansion. 26458 */ 26459 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_OP_HDR_OFST 0 26460 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_OP_HDR_LEN 4 26461 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_OP_OFST 0 26462 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_OP_LBN 0 26463 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_OP_WIDTH 16 26464 /* Number of IPv4 addresses to validate. */ 26465 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_NUM_ITEMS_OFST 4 26466 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_NUM_ITEMS_LEN 4 26467 /* The IPv4 addresses to validate, in struct MC_TSA_IPV4_ITEM format. */ 26468 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_OFST 8 26469 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_LEN 8 26470 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_LO_OFST 8 26471 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_LO_LEN 4 26472 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_LO_LBN 64 26473 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_LO_WIDTH 32 26474 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_HI_OFST 12 26475 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_HI_LEN 4 26476 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_HI_LBN 96 26477 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_HI_WIDTH 32 26478 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_MINNUM 1 26479 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_MAXNUM 30 26480 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_MAXNUM_MCDI2 126 26481 26482 /* MC_CMD_TSA_IPADDR_OUT_VALIDATE_IPV4 msgresponse */ 26483 #define MC_CMD_TSA_IPADDR_OUT_VALIDATE_IPV4_LEN 0 26484 26485 /* MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4 msgrequest */ 26486 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_LENMIN 16 26487 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_LENMAX 248 26488 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_LENMAX_MCDI2 1016 26489 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_LEN(num) (8+8*(num)) 26490 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_NUM(len) (((len)-8)/8) 26491 /* Header containing information to identify which sub-operation of this 26492 * command to perform. The header contains a 16-bit op-code. Unused space in 26493 * this field is reserved for future expansion. 26494 */ 26495 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_OP_HDR_OFST 0 26496 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_OP_HDR_LEN 4 26497 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_OP_OFST 0 26498 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_OP_LBN 0 26499 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_OP_WIDTH 16 26500 /* Number of IPv4 addresses to remove. */ 26501 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_NUM_ITEMS_OFST 4 26502 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_NUM_ITEMS_LEN 4 26503 /* The IPv4 addresses that have expired, in struct MC_TSA_IPV4_ITEM format. */ 26504 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_OFST 8 26505 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_LEN 8 26506 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_LO_OFST 8 26507 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_LO_LEN 4 26508 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_LO_LBN 64 26509 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_LO_WIDTH 32 26510 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_HI_OFST 12 26511 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_HI_LEN 4 26512 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_HI_LBN 96 26513 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_HI_WIDTH 32 26514 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_MINNUM 1 26515 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_MAXNUM 30 26516 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_MAXNUM_MCDI2 126 26517 26518 /* MC_CMD_TSA_IPADDR_OUT_REMOVE_IPV4 msgresponse */ 26519 #define MC_CMD_TSA_IPADDR_OUT_REMOVE_IPV4_LEN 0 26520 26521 26522 /***********************************/ 26523 /* MC_CMD_SECURE_NIC_INFO 26524 * Get secure NIC information. While many of the features reported by these 26525 * commands are related to TSA, they must be supported in firmware where TSA is 26526 * disabled. 26527 */ 26528 #define MC_CMD_SECURE_NIC_INFO 0x132 26529 #define MC_CMD_SECURE_NIC_INFO_MSGSET 0x132 26530 #undef MC_CMD_0x132_PRIVILEGE_CTG 26531 26532 #define MC_CMD_0x132_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26533 26534 /* MC_CMD_SECURE_NIC_INFO_IN msgrequest */ 26535 #define MC_CMD_SECURE_NIC_INFO_IN_LEN 4 26536 /* sub-operation code info */ 26537 #define MC_CMD_SECURE_NIC_INFO_IN_OP_HDR_OFST 0 26538 #define MC_CMD_SECURE_NIC_INFO_IN_OP_HDR_LEN 4 26539 #define MC_CMD_SECURE_NIC_INFO_IN_OP_OFST 0 26540 #define MC_CMD_SECURE_NIC_INFO_IN_OP_LBN 0 26541 #define MC_CMD_SECURE_NIC_INFO_IN_OP_WIDTH 16 26542 /* enum: Get the status of various security settings, all signed along with a 26543 * challenge chosen by the host. 26544 */ 26545 #define MC_CMD_SECURE_NIC_INFO_OP_STATUS 0x0 26546 26547 /* MC_CMD_SECURE_NIC_INFO_IN_STATUS msgrequest */ 26548 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_LEN 24 26549 /* sub-operation code, must be MC_CMD_SECURE_NIC_INFO_OP_STATUS */ 26550 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_OP_HDR_OFST 0 26551 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_OP_HDR_LEN 4 26552 /* Type of key to be used to sign response. */ 26553 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_KEY_TYPE_OFST 4 26554 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_KEY_TYPE_LEN 4 26555 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_UNUSED 0x0 /* enum */ 26556 /* enum: Solarflare adapter authentication key, installed by Manftest. */ 26557 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_SF_ADAPTER_AUTH 0x1 26558 /* enum: TSA binding key, installed after adapter is bound to a TSA controller. 26559 * This is not supported in firmware which does not support TSA. 26560 */ 26561 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_TSA_BINDING 0x2 26562 /* enum: Customer adapter authentication key. Installed by the customer in the 26563 * field, but otherwise similar to the Solarflare adapter authentication key. 26564 */ 26565 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_CUSTOMER_ADAPTER_AUTH 0x3 26566 /* Random challenge generated by the host. */ 26567 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_CHALLENGE_OFST 8 26568 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_CHALLENGE_LEN 16 26569 26570 /* MC_CMD_SECURE_NIC_INFO_OUT_STATUS msgresponse */ 26571 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_LEN 420 26572 /* Length of the signature in MSG_SIGNATURE. */ 26573 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MSG_SIGNATURE_LEN_OFST 0 26574 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MSG_SIGNATURE_LEN_LEN 4 26575 /* Signature over the message, starting at MESSAGE_TYPE and continuing to the 26576 * end of the MCDI response, allowing the message format to be extended. The 26577 * signature uses ECDSA 384 encoding in ASN.1 format. It has variable length, 26578 * with a maximum of 384 bytes. 26579 */ 26580 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MSG_SIGNATURE_OFST 4 26581 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MSG_SIGNATURE_LEN 384 26582 /* Enum value indicating the type of response. This protects against chosen 26583 * message attacks. The enum values are random rather than sequential to make 26584 * it unlikely that values will be reused should other commands in a different 26585 * namespace need to create signed messages. 26586 */ 26587 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MESSAGE_TYPE_OFST 388 26588 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MESSAGE_TYPE_LEN 4 26589 /* enum: Message type value for the response to a 26590 * MC_CMD_SECURE_NIC_INFO_IN_STATUS message. 26591 */ 26592 #define MC_CMD_SECURE_NIC_INFO_STATUS 0xdb4 26593 /* The challenge provided by the host in the MC_CMD_SECURE_NIC_INFO_IN_STATUS 26594 * message 26595 */ 26596 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_CHALLENGE_OFST 392 26597 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_CHALLENGE_LEN 16 26598 /* The first 32 bits of XPM memory, which include security and flag bits, die 26599 * ID and chip ID revision. The meaning of these bits is defined in 26600 * mc/include/mc/xpm.h in the firmwaresrc repository. 26601 */ 26602 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_XPM_STATUS_BITS_OFST 408 26603 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_XPM_STATUS_BITS_LEN 4 26604 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_A_OFST 412 26605 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_A_LEN 2 26606 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_B_OFST 414 26607 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_B_LEN 2 26608 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_C_OFST 416 26609 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_C_LEN 2 26610 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_D_OFST 418 26611 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_D_LEN 2 26612 26613 26614 /***********************************/ 26615 /* MC_CMD_TSA_TEST 26616 * A simple ping-pong command just to test the adapter<>controller MCDI 26617 * communication channel. This command makes not changes to the TSA adapter's 26618 * internal state. It is used by the controller just to verify that the MCDI 26619 * communication channel is working fine. This command takes no additonal 26620 * parameters in request or response. 26621 */ 26622 #define MC_CMD_TSA_TEST 0x125 26623 #define MC_CMD_TSA_TEST_MSGSET 0x125 26624 #undef MC_CMD_0x125_PRIVILEGE_CTG 26625 26626 #define MC_CMD_0x125_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 26627 26628 /* MC_CMD_TSA_TEST_IN msgrequest */ 26629 #define MC_CMD_TSA_TEST_IN_LEN 0 26630 26631 /* MC_CMD_TSA_TEST_OUT msgresponse */ 26632 #define MC_CMD_TSA_TEST_OUT_LEN 0 26633 26634 26635 /***********************************/ 26636 /* MC_CMD_TSA_RULESET_OVERRIDE 26637 * Override TSA ruleset that is currently active on the adapter. This operation 26638 * does not modify the ruleset itself. This operation provides a mechanism to 26639 * apply an allow-all or deny-all operation on all packets, thereby completely 26640 * ignoring the rule-set configured on the adapter. The main purpose of this 26641 * operation is to provide a deterministic state to the TSA firewall during 26642 * rule-set transitions. 26643 */ 26644 #define MC_CMD_TSA_RULESET_OVERRIDE 0x12a 26645 #define MC_CMD_TSA_RULESET_OVERRIDE_MSGSET 0x12a 26646 #undef MC_CMD_0x12a_PRIVILEGE_CTG 26647 26648 #define MC_CMD_0x12a_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 26649 26650 /* MC_CMD_TSA_RULESET_OVERRIDE_IN msgrequest */ 26651 #define MC_CMD_TSA_RULESET_OVERRIDE_IN_LEN 4 26652 /* The override state to apply. */ 26653 #define MC_CMD_TSA_RULESET_OVERRIDE_IN_STATE_OFST 0 26654 #define MC_CMD_TSA_RULESET_OVERRIDE_IN_STATE_LEN 4 26655 /* enum: No override in place - the existing ruleset is in operation. */ 26656 #define MC_CMD_TSA_RULESET_OVERRIDE_NONE 0x0 26657 /* enum: Block all packets seen on all datapath channel except those packets 26658 * required for basic configuration of the TSA NIC such as ARPs and TSA- 26659 * communication traffic. Such exceptional traffic is handled differently 26660 * compared to TSA rulesets. 26661 */ 26662 #define MC_CMD_TSA_RULESET_OVERRIDE_BLOCK 0x1 26663 /* enum: Allow all packets through all datapath channel. The TSA adapter 26664 * behaves like a normal NIC without any firewalls. 26665 */ 26666 #define MC_CMD_TSA_RULESET_OVERRIDE_ALLOW 0x2 26667 26668 /* MC_CMD_TSA_RULESET_OVERRIDE_OUT msgresponse */ 26669 #define MC_CMD_TSA_RULESET_OVERRIDE_OUT_LEN 0 26670 26671 26672 /***********************************/ 26673 /* MC_CMD_TSAC_REQUEST 26674 * Generic command to send requests from a TSA controller to a TSA adapter. 26675 * Specific usage is determined by the TYPE field. 26676 */ 26677 #define MC_CMD_TSAC_REQUEST 0x12b 26678 #define MC_CMD_TSAC_REQUEST_MSGSET 0x12b 26679 #undef MC_CMD_0x12b_PRIVILEGE_CTG 26680 26681 #define MC_CMD_0x12b_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 26682 26683 /* MC_CMD_TSAC_REQUEST_IN msgrequest */ 26684 #define MC_CMD_TSAC_REQUEST_IN_LEN 4 26685 /* The type of request from the controller. */ 26686 #define MC_CMD_TSAC_REQUEST_IN_TYPE_OFST 0 26687 #define MC_CMD_TSAC_REQUEST_IN_TYPE_LEN 4 26688 /* enum: Request the adapter to resend localIP information from it's cache. The 26689 * command does not return any IP address information; IP addresses are sent as 26690 * TSA notifications as descibed in MC_CMD_TSA_INFO_IN_LOCAL_IP. 26691 */ 26692 #define MC_CMD_TSAC_REQUEST_LOCALIP 0x0 26693 26694 /* MC_CMD_TSAC_REQUEST_OUT msgresponse */ 26695 #define MC_CMD_TSAC_REQUEST_OUT_LEN 0 26696 26697 26698 /***********************************/ 26699 /* MC_CMD_SUC_VERSION 26700 * Get the version of the SUC 26701 */ 26702 #define MC_CMD_SUC_VERSION 0x134 26703 #define MC_CMD_SUC_VERSION_MSGSET 0x134 26704 #undef MC_CMD_0x134_PRIVILEGE_CTG 26705 26706 #define MC_CMD_0x134_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26707 26708 /* MC_CMD_SUC_VERSION_IN msgrequest */ 26709 #define MC_CMD_SUC_VERSION_IN_LEN 0 26710 26711 /* MC_CMD_SUC_VERSION_OUT msgresponse */ 26712 #define MC_CMD_SUC_VERSION_OUT_LEN 24 26713 /* The SUC firmware version as four numbers - a.b.c.d */ 26714 #define MC_CMD_SUC_VERSION_OUT_VERSION_OFST 0 26715 #define MC_CMD_SUC_VERSION_OUT_VERSION_LEN 4 26716 #define MC_CMD_SUC_VERSION_OUT_VERSION_NUM 4 26717 /* The date, in seconds since the Unix epoch, when the firmware image was 26718 * built. 26719 */ 26720 #define MC_CMD_SUC_VERSION_OUT_BUILD_DATE_OFST 16 26721 #define MC_CMD_SUC_VERSION_OUT_BUILD_DATE_LEN 4 26722 /* The ID of the SUC chip. This is specific to the platform but typically 26723 * indicates family, memory sizes etc. See SF-116728-SW for further details. 26724 */ 26725 #define MC_CMD_SUC_VERSION_OUT_CHIP_ID_OFST 20 26726 #define MC_CMD_SUC_VERSION_OUT_CHIP_ID_LEN 4 26727 26728 /* MC_CMD_SUC_BOOT_VERSION_IN msgrequest: Get the version of the SUC boot 26729 * loader. 26730 */ 26731 #define MC_CMD_SUC_BOOT_VERSION_IN_LEN 4 26732 #define MC_CMD_SUC_BOOT_VERSION_IN_MAGIC_OFST 0 26733 #define MC_CMD_SUC_BOOT_VERSION_IN_MAGIC_LEN 4 26734 /* enum: Requests the SUC boot version. */ 26735 #define MC_CMD_SUC_VERSION_GET_BOOT_VERSION 0xb007700b 26736 26737 /* MC_CMD_SUC_BOOT_VERSION_OUT msgresponse */ 26738 #define MC_CMD_SUC_BOOT_VERSION_OUT_LEN 4 26739 /* The SUC boot version */ 26740 #define MC_CMD_SUC_BOOT_VERSION_OUT_VERSION_OFST 0 26741 #define MC_CMD_SUC_BOOT_VERSION_OUT_VERSION_LEN 4 26742 26743 26744 /***********************************/ 26745 /* MC_CMD_SUC_MANFTEST 26746 * Operations to support manftest on SUC based systems. 26747 */ 26748 #define MC_CMD_SUC_MANFTEST 0x135 26749 #define MC_CMD_SUC_MANFTEST_MSGSET 0x135 26750 #undef MC_CMD_0x135_PRIVILEGE_CTG 26751 26752 #define MC_CMD_0x135_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 26753 26754 /* MC_CMD_SUC_MANFTEST_IN msgrequest */ 26755 #define MC_CMD_SUC_MANFTEST_IN_LEN 4 26756 /* The manftest operation to be performed. */ 26757 #define MC_CMD_SUC_MANFTEST_IN_OP_OFST 0 26758 #define MC_CMD_SUC_MANFTEST_IN_OP_LEN 4 26759 /* enum: Read serial number and use count. */ 26760 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ 0x0 26761 /* enum: Update use count on wearout adapter. */ 26762 #define MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE 0x1 26763 /* enum: Start an ADC calibration. */ 26764 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START 0x2 26765 /* enum: Read the status of an ADC calibration. */ 26766 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS 0x3 26767 /* enum: Read the results of an ADC calibration. */ 26768 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT 0x4 26769 /* enum: Read the PCIe configuration. */ 26770 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ 0x5 26771 /* enum: Write the PCIe configuration. */ 26772 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE 0x6 26773 /* enum: Write FRU information to SUC. The FRU information is taken from the 26774 * FRU_INFORMATION partition. Attempts to write to read-only FRUs are rejected. 26775 */ 26776 #define MC_CMD_SUC_MANFTEST_FRU_WRITE 0x7 26777 /* enum: Read UDID Vendor Specific ID from SUC persistent storage. */ 26778 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ 0x8 26779 /* enum: Write UDID Vendor Specific ID to SUC persistent storage for use in 26780 * SMBus ARP. 26781 */ 26782 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE 0x9 26783 26784 /* MC_CMD_SUC_MANFTEST_OUT msgresponse */ 26785 #define MC_CMD_SUC_MANFTEST_OUT_LEN 0 26786 26787 /* MC_CMD_SUC_MANFTEST_WEAROUT_READ_IN msgrequest */ 26788 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_IN_LEN 4 26789 /* The manftest operation to be performed. This must be 26790 * MC_CMD_SUC_MANFTEST_WEAROUT_READ. 26791 */ 26792 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_IN_OP_OFST 0 26793 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_IN_OP_LEN 4 26794 26795 /* MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT msgresponse */ 26796 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT_LEN 20 26797 /* The serial number of the wearout adapter, see SF-112717-PR for format. */ 26798 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT_SERIAL_NUMBER_OFST 0 26799 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT_SERIAL_NUMBER_LEN 16 26800 /* The use count of the wearout adapter. */ 26801 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT_USE_COUNT_OFST 16 26802 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT_USE_COUNT_LEN 4 26803 26804 /* MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_IN msgrequest */ 26805 #define MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_IN_LEN 4 26806 /* The manftest operation to be performed. This must be 26807 * MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE. 26808 */ 26809 #define MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_IN_OP_OFST 0 26810 #define MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_IN_OP_LEN 4 26811 26812 /* MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_OUT msgresponse */ 26813 #define MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_OUT_LEN 0 26814 26815 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_IN msgrequest */ 26816 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_IN_LEN 4 26817 /* The manftest operation to be performed. This must be 26818 * MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START. 26819 */ 26820 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_IN_OP_OFST 0 26821 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_IN_OP_LEN 4 26822 26823 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_OUT msgresponse */ 26824 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_OUT_LEN 0 26825 26826 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_IN msgrequest */ 26827 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_IN_LEN 4 26828 /* The manftest operation to be performed. This must be 26829 * MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS. 26830 */ 26831 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_IN_OP_OFST 0 26832 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_IN_OP_LEN 4 26833 26834 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT msgresponse */ 26835 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_LEN 4 26836 /* The combined status of the calibration operation. */ 26837 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_FLAGS_OFST 0 26838 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_FLAGS_LEN 4 26839 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_CALIBRATING_OFST 0 26840 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_CALIBRATING_LBN 0 26841 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_CALIBRATING_WIDTH 1 26842 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_FAILED_OFST 0 26843 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_FAILED_LBN 1 26844 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_FAILED_WIDTH 1 26845 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_RESULT_OFST 0 26846 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_RESULT_LBN 2 26847 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_RESULT_WIDTH 4 26848 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_INDEX_OFST 0 26849 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_INDEX_LBN 6 26850 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_INDEX_WIDTH 2 26851 26852 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_IN msgrequest */ 26853 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_IN_LEN 4 26854 /* The manftest operation to be performed. This must be 26855 * MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT. 26856 */ 26857 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_IN_OP_OFST 0 26858 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_IN_OP_LEN 4 26859 26860 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_OUT msgresponse */ 26861 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_OUT_LEN 12 26862 /* The set of calibration results. */ 26863 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_OUT_VALUE_OFST 0 26864 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_OUT_VALUE_LEN 4 26865 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_OUT_VALUE_NUM 3 26866 26867 /* MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_IN msgrequest */ 26868 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_IN_LEN 4 26869 /* The manftest operation to be performed. This must be 26870 * MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ. 26871 */ 26872 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_IN_OP_OFST 0 26873 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_IN_OP_LEN 4 26874 26875 /* MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT msgresponse */ 26876 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT_LEN 4 26877 /* The PCIe vendor ID. */ 26878 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT_VENDOR_ID_OFST 0 26879 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT_VENDOR_ID_LEN 2 26880 /* The PCIe device ID. */ 26881 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT_DEVICE_ID_OFST 2 26882 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT_DEVICE_ID_LEN 2 26883 26884 /* MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN msgrequest */ 26885 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_LEN 8 26886 /* The manftest operation to be performed. This must be 26887 * MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE. 26888 */ 26889 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_OP_OFST 0 26890 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_OP_LEN 4 26891 /* The PCIe vendor ID. */ 26892 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_VENDOR_ID_OFST 4 26893 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_VENDOR_ID_LEN 2 26894 /* The PCIe device ID. */ 26895 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_DEVICE_ID_OFST 6 26896 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_DEVICE_ID_LEN 2 26897 26898 /* MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_OUT msgresponse */ 26899 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_OUT_LEN 0 26900 26901 /* MC_CMD_SUC_MANFTEST_FRU_WRITE_IN msgrequest */ 26902 #define MC_CMD_SUC_MANFTEST_FRU_WRITE_IN_LEN 4 26903 /* The manftest operation to be performed. This must be 26904 * MC_CMD_SUC_MANFTEST_FRU_WRITE 26905 */ 26906 #define MC_CMD_SUC_MANFTEST_FRU_WRITE_IN_OP_OFST 0 26907 #define MC_CMD_SUC_MANFTEST_FRU_WRITE_IN_OP_LEN 4 26908 26909 /* MC_CMD_SUC_MANFTEST_FRU_WRITE_OUT msgresponse */ 26910 #define MC_CMD_SUC_MANFTEST_FRU_WRITE_OUT_LEN 0 26911 26912 /* MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_IN msgrequest */ 26913 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_IN_LEN 4 26914 /* The manftest operation to be performed. This must be 26915 * MC_CMD_SUC_MANFTEST_SMBUS_ID_READ. 26916 */ 26917 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_IN_OP_OFST 0 26918 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_IN_OP_LEN 4 26919 26920 /* MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_OUT msgresponse */ 26921 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_OUT_LEN 4 26922 /* The SMBus ID. */ 26923 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_OUT_SMBUS_ID_OFST 0 26924 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_OUT_SMBUS_ID_LEN 4 26925 26926 /* MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN msgrequest */ 26927 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN_LEN 8 26928 /* The manftest operation to be performed. This must be 26929 * MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE. 26930 */ 26931 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN_OP_OFST 0 26932 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN_OP_LEN 4 26933 /* The SMBus ID. */ 26934 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN_SMBUS_ID_OFST 4 26935 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN_SMBUS_ID_LEN 4 26936 26937 /* MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_OUT msgresponse */ 26938 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_OUT_LEN 0 26939 26940 26941 /***********************************/ 26942 /* MC_CMD_GET_CERTIFICATE 26943 * Request a certificate. 26944 */ 26945 #define MC_CMD_GET_CERTIFICATE 0x12c 26946 #define MC_CMD_GET_CERTIFICATE_MSGSET 0x12c 26947 #undef MC_CMD_0x12c_PRIVILEGE_CTG 26948 26949 #define MC_CMD_0x12c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26950 26951 /* MC_CMD_GET_CERTIFICATE_IN msgrequest */ 26952 #define MC_CMD_GET_CERTIFICATE_IN_LEN 8 26953 /* Type of the certificate to be retrieved. */ 26954 #define MC_CMD_GET_CERTIFICATE_IN_TYPE_OFST 0 26955 #define MC_CMD_GET_CERTIFICATE_IN_TYPE_LEN 4 26956 #define MC_CMD_GET_CERTIFICATE_IN_UNUSED 0x0 /* enum */ 26957 #define MC_CMD_GET_CERTIFICATE_IN_AAC 0x1 /* enum */ 26958 /* enum: Adapter Authentication Certificate (AAC). The AAC is unique to each 26959 * adapter and is used to verify its authenticity. It is installed by Manftest. 26960 */ 26961 #define MC_CMD_GET_CERTIFICATE_IN_ADAPTER_AUTH 0x1 26962 #define MC_CMD_GET_CERTIFICATE_IN_AASC 0x2 /* enum */ 26963 /* enum: Adapter Authentication Signing Certificate (AASC). The AASC is shared 26964 * by a group of adapters (typically a purchase order) and is used to verify 26965 * the validity of AAC along with the SF root certificate. It is installed by 26966 * Manftest. 26967 */ 26968 #define MC_CMD_GET_CERTIFICATE_IN_ADAPTER_AUTH_SIGNING 0x2 26969 #define MC_CMD_GET_CERTIFICATE_IN_CUSTOMER_AAC 0x3 /* enum */ 26970 /* enum: Customer Adapter Authentication Certificate. The Customer AAC is 26971 * unique to each adapter and is used to verify its authenticity in cases where 26972 * either the AAC is not installed or a customer desires to use their own 26973 * certificate chain. It is installed by the customer. 26974 */ 26975 #define MC_CMD_GET_CERTIFICATE_IN_CUSTOMER_ADAPTER_AUTH 0x3 26976 #define MC_CMD_GET_CERTIFICATE_IN_CUSTOMER_AASC 0x4 /* enum */ 26977 /* enum: Customer Adapter Authentication Certificate. The Customer AASC is 26978 * shared by a group of adapters and is used to verify the validity of the 26979 * Customer AAC along with the customers root certificate. It is installed by 26980 * the customer. 26981 */ 26982 #define MC_CMD_GET_CERTIFICATE_IN_CUSTOMER_ADAPTER_AUTH_SIGNING 0x4 26983 /* Offset, measured in bytes, relative to the start of the certificate data 26984 * from which the certificate is to be retrieved. 26985 */ 26986 #define MC_CMD_GET_CERTIFICATE_IN_OFFSET_OFST 4 26987 #define MC_CMD_GET_CERTIFICATE_IN_OFFSET_LEN 4 26988 26989 /* MC_CMD_GET_CERTIFICATE_OUT msgresponse */ 26990 #define MC_CMD_GET_CERTIFICATE_OUT_LENMIN 13 26991 #define MC_CMD_GET_CERTIFICATE_OUT_LENMAX 252 26992 #define MC_CMD_GET_CERTIFICATE_OUT_LENMAX_MCDI2 1020 26993 #define MC_CMD_GET_CERTIFICATE_OUT_LEN(num) (12+1*(num)) 26994 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_NUM(len) (((len)-12)/1) 26995 /* Type of the certificate. */ 26996 #define MC_CMD_GET_CERTIFICATE_OUT_TYPE_OFST 0 26997 #define MC_CMD_GET_CERTIFICATE_OUT_TYPE_LEN 4 26998 /* Enum values, see field(s): */ 26999 /* MC_CMD_GET_CERTIFICATE_IN/TYPE */ 27000 /* Offset, measured in bytes, relative to the start of the certificate data 27001 * from which data in this message starts. 27002 */ 27003 #define MC_CMD_GET_CERTIFICATE_OUT_OFFSET_OFST 4 27004 #define MC_CMD_GET_CERTIFICATE_OUT_OFFSET_LEN 4 27005 /* Total length of the certificate data. */ 27006 #define MC_CMD_GET_CERTIFICATE_OUT_TOTAL_LENGTH_OFST 8 27007 #define MC_CMD_GET_CERTIFICATE_OUT_TOTAL_LENGTH_LEN 4 27008 /* The certificate data. */ 27009 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_OFST 12 27010 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_LEN 1 27011 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_MINNUM 1 27012 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_MAXNUM 240 27013 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_MAXNUM_MCDI2 1008 27014 27015 27016 /***********************************/ 27017 /* MC_CMD_GET_NIC_GLOBAL 27018 * Get a global value which applies to all PCI functions 27019 */ 27020 #define MC_CMD_GET_NIC_GLOBAL 0x12d 27021 #define MC_CMD_GET_NIC_GLOBAL_MSGSET 0x12d 27022 #undef MC_CMD_0x12d_PRIVILEGE_CTG 27023 27024 #define MC_CMD_0x12d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27025 27026 /* MC_CMD_GET_NIC_GLOBAL_IN msgrequest */ 27027 #define MC_CMD_GET_NIC_GLOBAL_IN_LEN 4 27028 /* Key to request value for, see enum values in MC_CMD_SET_NIC_GLOBAL. If the 27029 * given key is unknown to the current firmware, the call will fail with 27030 * ENOENT. 27031 */ 27032 #define MC_CMD_GET_NIC_GLOBAL_IN_KEY_OFST 0 27033 #define MC_CMD_GET_NIC_GLOBAL_IN_KEY_LEN 4 27034 27035 /* MC_CMD_GET_NIC_GLOBAL_OUT msgresponse */ 27036 #define MC_CMD_GET_NIC_GLOBAL_OUT_LEN 4 27037 /* Value of requested key, see key descriptions below. */ 27038 #define MC_CMD_GET_NIC_GLOBAL_OUT_VALUE_OFST 0 27039 #define MC_CMD_GET_NIC_GLOBAL_OUT_VALUE_LEN 4 27040 27041 27042 /***********************************/ 27043 /* MC_CMD_SET_NIC_GLOBAL 27044 * Set a global value which applies to all PCI functions. Most global values 27045 * can only be changed under specific conditions, and this call will return an 27046 * appropriate error otherwise (see key descriptions). 27047 */ 27048 #define MC_CMD_SET_NIC_GLOBAL 0x12e 27049 #define MC_CMD_SET_NIC_GLOBAL_MSGSET 0x12e 27050 #undef MC_CMD_0x12e_PRIVILEGE_CTG 27051 27052 #define MC_CMD_0x12e_PRIVILEGE_CTG SRIOV_CTG_ADMIN 27053 27054 /* MC_CMD_SET_NIC_GLOBAL_IN msgrequest */ 27055 #define MC_CMD_SET_NIC_GLOBAL_IN_LEN 8 27056 /* Key to change value of. Firmware will return ENOENT for keys it doesn't know 27057 * about. 27058 */ 27059 #define MC_CMD_SET_NIC_GLOBAL_IN_KEY_OFST 0 27060 #define MC_CMD_SET_NIC_GLOBAL_IN_KEY_LEN 4 27061 /* enum: Request switching the datapath firmware sub-variant. Currently only 27062 * useful when running the DPDK f/w variant. See key values below, and the DPDK 27063 * section of the EF10 Driver Writers Guide. Note that any driver attaching 27064 * with the SUBVARIANT_AWARE flag cleared is implicitly considered as a request 27065 * to switch back to the default sub-variant, and will thus reset this value. 27066 * If a sub-variant switch happens, all other PCI functions will get their 27067 * resources reset (they will see an MC reboot). 27068 */ 27069 #define MC_CMD_SET_NIC_GLOBAL_IN_FIRMWARE_SUBVARIANT 0x1 27070 /* New value to set, see key descriptions above. */ 27071 #define MC_CMD_SET_NIC_GLOBAL_IN_VALUE_OFST 4 27072 #define MC_CMD_SET_NIC_GLOBAL_IN_VALUE_LEN 4 27073 /* enum: Only if KEY = FIRMWARE_SUBVARIANT. Default sub-variant with support 27074 * for maximum features for the current f/w variant. A request from a 27075 * privileged function to set this particular value will always succeed. 27076 */ 27077 #define MC_CMD_SET_NIC_GLOBAL_IN_FW_SUBVARIANT_DEFAULT 0x0 27078 /* enum: Only if KEY = FIRMWARE_SUBVARIANT. Increases packet rate at the cost 27079 * of not supporting any TX checksum offloads. Only supported when running some 27080 * f/w variants, others will return ENOTSUP (as reported by the homonymous bit 27081 * in MC_CMD_GET_CAPABILITIES_V2). Can only be set when no other drivers are 27082 * attached, and the calling driver must have no resources allocated. See the 27083 * DPDK section of the EF10 Driver Writers Guide for a more detailed 27084 * description with possible error codes. 27085 */ 27086 #define MC_CMD_SET_NIC_GLOBAL_IN_FW_SUBVARIANT_NO_TX_CSUM 0x1 27087 27088 27089 /***********************************/ 27090 /* MC_CMD_LTSSM_TRACE_POLL 27091 * Medford2 hardware has support for logging all LTSSM state transitions to a 27092 * hardware buffer. When built with WITH_LTSSM_TRACE=1, the firmware will 27093 * periodially dump the contents of this hardware buffer to an internal 27094 * firmware buffer for later extraction. 27095 */ 27096 #define MC_CMD_LTSSM_TRACE_POLL 0x12f 27097 #define MC_CMD_LTSSM_TRACE_POLL_MSGSET 0x12f 27098 #undef MC_CMD_0x12f_PRIVILEGE_CTG 27099 27100 #define MC_CMD_0x12f_PRIVILEGE_CTG SRIOV_CTG_ADMIN 27101 27102 /* MC_CMD_LTSSM_TRACE_POLL_IN msgrequest: Read transitions from the firmware 27103 * internal buffer. 27104 */ 27105 #define MC_CMD_LTSSM_TRACE_POLL_IN_LEN 4 27106 /* The maximum number of row that the caller can accept. The format of each row 27107 * is defined in MC_CMD_LTSSM_TRACE_POLL_OUT. 27108 */ 27109 #define MC_CMD_LTSSM_TRACE_POLL_IN_MAX_ROW_COUNT_OFST 0 27110 #define MC_CMD_LTSSM_TRACE_POLL_IN_MAX_ROW_COUNT_LEN 4 27111 27112 /* MC_CMD_LTSSM_TRACE_POLL_OUT msgresponse */ 27113 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LENMIN 16 27114 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LENMAX 248 27115 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LENMAX_MCDI2 1016 27116 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LEN(num) (8+8*(num)) 27117 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_NUM(len) (((len)-8)/8) 27118 #define MC_CMD_LTSSM_TRACE_POLL_OUT_FLAGS_OFST 0 27119 #define MC_CMD_LTSSM_TRACE_POLL_OUT_FLAGS_LEN 4 27120 #define MC_CMD_LTSSM_TRACE_POLL_OUT_HW_BUFFER_OVERFLOW_OFST 0 27121 #define MC_CMD_LTSSM_TRACE_POLL_OUT_HW_BUFFER_OVERFLOW_LBN 0 27122 #define MC_CMD_LTSSM_TRACE_POLL_OUT_HW_BUFFER_OVERFLOW_WIDTH 1 27123 #define MC_CMD_LTSSM_TRACE_POLL_OUT_FW_BUFFER_OVERFLOW_OFST 0 27124 #define MC_CMD_LTSSM_TRACE_POLL_OUT_FW_BUFFER_OVERFLOW_LBN 1 27125 #define MC_CMD_LTSSM_TRACE_POLL_OUT_FW_BUFFER_OVERFLOW_WIDTH 1 27126 #define MC_CMD_LTSSM_TRACE_POLL_OUT_CONTINUES_OFST 0 27127 #define MC_CMD_LTSSM_TRACE_POLL_OUT_CONTINUES_LBN 31 27128 #define MC_CMD_LTSSM_TRACE_POLL_OUT_CONTINUES_WIDTH 1 27129 /* The number of rows present in this response. */ 27130 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROW_COUNT_OFST 4 27131 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROW_COUNT_LEN 4 27132 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_OFST 8 27133 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_LEN 8 27134 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_LO_OFST 8 27135 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_LO_LEN 4 27136 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_LO_LBN 64 27137 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_LO_WIDTH 32 27138 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_HI_OFST 12 27139 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_HI_LEN 4 27140 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_HI_LBN 96 27141 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_HI_WIDTH 32 27142 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_MINNUM 0 27143 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_MAXNUM 30 27144 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_MAXNUM_MCDI2 126 27145 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LTSSM_STATE_OFST 8 27146 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LTSSM_STATE_LBN 0 27147 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LTSSM_STATE_WIDTH 6 27148 #define MC_CMD_LTSSM_TRACE_POLL_OUT_RDLH_LINK_UP_OFST 8 27149 #define MC_CMD_LTSSM_TRACE_POLL_OUT_RDLH_LINK_UP_LBN 6 27150 #define MC_CMD_LTSSM_TRACE_POLL_OUT_RDLH_LINK_UP_WIDTH 1 27151 #define MC_CMD_LTSSM_TRACE_POLL_OUT_WAKE_N_OFST 8 27152 #define MC_CMD_LTSSM_TRACE_POLL_OUT_WAKE_N_LBN 7 27153 #define MC_CMD_LTSSM_TRACE_POLL_OUT_WAKE_N_WIDTH 1 27154 #define MC_CMD_LTSSM_TRACE_POLL_OUT_TIMESTAMP_PS_OFST 8 27155 #define MC_CMD_LTSSM_TRACE_POLL_OUT_TIMESTAMP_PS_LBN 8 27156 #define MC_CMD_LTSSM_TRACE_POLL_OUT_TIMESTAMP_PS_WIDTH 24 27157 /* The time of the LTSSM transition. Times are reported as fractional 27158 * microseconds since MC boot (wrapping at 2^32us). The fractional part is 27159 * reported in picoseconds. 0 <= TIMESTAMP_PS < 1000000 timestamp in seconds = 27160 * ((TIMESTAMP_US + TIMESTAMP_PS / 1000000) / 1000000) 27161 */ 27162 #define MC_CMD_LTSSM_TRACE_POLL_OUT_TIMESTAMP_US_OFST 12 27163 #define MC_CMD_LTSSM_TRACE_POLL_OUT_TIMESTAMP_US_LEN 4 27164 27165 27166 /***********************************/ 27167 /* MC_CMD_TELEMETRY_ENABLE 27168 * This command enables telemetry processing of packets, allowing a remote host 27169 * to gather information and analytics passing on the card. Enabling telemetry 27170 * will have a performance cost. Not supported on all hardware and datapath 27171 * variants. As of writing, only supported on Medford2 running full-featured 27172 * firmware variant. 27173 */ 27174 #define MC_CMD_TELEMETRY_ENABLE 0x138 27175 #define MC_CMD_TELEMETRY_ENABLE_MSGSET 0x138 27176 #undef MC_CMD_0x138_PRIVILEGE_CTG 27177 27178 #define MC_CMD_0x138_PRIVILEGE_CTG SRIOV_CTG_ADMIN 27179 27180 /* MC_CMD_TELEMETRY_ENABLE_IN msgrequest */ 27181 #define MC_CMD_TELEMETRY_ENABLE_IN_LEN 4 27182 #define MC_CMD_TELEMETRY_ENABLE_IN_STATE_OFST 0 27183 #define MC_CMD_TELEMETRY_ENABLE_IN_STATE_LEN 4 27184 /* enum: Disables telemetry functionality, returns the card to default 27185 * behaviour of the configured datapath variant. 27186 */ 27187 #define MC_CMD_TELEMETRY_ENABLE_IN_DISABLE 0x0 27188 /* enum: Enables telemetry functionality on the currently configured datapath 27189 * variant if supported. 27190 */ 27191 #define MC_CMD_TELEMETRY_ENABLE_IN_ENABLE 0x1 27192 27193 /* MC_CMD_TELEMETRY_ENABLE_OUT msgresponse */ 27194 #define MC_CMD_TELEMETRY_ENABLE_OUT_LEN 0 27195 27196 /* TELEMETRY_CONFIG structuredef */ 27197 #define TELEMETRY_CONFIG_LEN 36 27198 /* Bitfields to identify the list of config parameters included in the command. 27199 * A bit-value of 1 indicates that the relevant config parameter field is 27200 * valid; 0 indicates invalid and the config parameter field must be ignored by 27201 * firmware. Firmware may however apply some default values for certain 27202 * parameters. 27203 */ 27204 #define TELEMETRY_CONFIG_FLAGS_OFST 0 27205 #define TELEMETRY_CONFIG_FLAGS_LEN 4 27206 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_VALID_OFST 0 27207 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_VALID_LBN 0 27208 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_VALID_WIDTH 1 27209 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_VALID_OFST 0 27210 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_VALID_LBN 1 27211 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_VALID_WIDTH 1 27212 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_VALID_OFST 0 27213 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_VALID_LBN 2 27214 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_VALID_WIDTH 1 27215 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_VALID_OFST 0 27216 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_VALID_LBN 3 27217 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_VALID_WIDTH 1 27218 #define TELEMETRY_CONFIG_RESERVED1_OFST 0 27219 #define TELEMETRY_CONFIG_RESERVED1_LBN 4 27220 #define TELEMETRY_CONFIG_RESERVED1_WIDTH 28 27221 #define TELEMETRY_CONFIG_FLAGS_LBN 0 27222 #define TELEMETRY_CONFIG_FLAGS_WIDTH 32 27223 /* Collector IPv4/IPv6 address to which latency measurements are forwarded from 27224 * the adapter (as bytes in network order; set last 12 bytes to 0 for IPv4 27225 * address). 27226 */ 27227 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_OFST 4 27228 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_LEN 16 27229 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_LBN 32 27230 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_WIDTH 128 27231 /* Collector Port number to which latency measurements are forwarded from the 27232 * adapter (as bytes in network order). 27233 */ 27234 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_OFST 20 27235 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_LEN 2 27236 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_LBN 160 27237 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_WIDTH 16 27238 /* Unused - set to 0. */ 27239 #define TELEMETRY_CONFIG_RESERVED2_OFST 22 27240 #define TELEMETRY_CONFIG_RESERVED2_LEN 2 27241 #define TELEMETRY_CONFIG_RESERVED2_LBN 176 27242 #define TELEMETRY_CONFIG_RESERVED2_WIDTH 16 27243 /* MAC address of the collector (as bytes in network order). */ 27244 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_MAC_ADDR_OFST 24 27245 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_MAC_ADDR_LEN 6 27246 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_MAC_ADDR_LBN 192 27247 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_MAC_ADDR_WIDTH 48 27248 /* Maximum number of latency measurements to be made on a telemetry flow. */ 27249 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_OFST 30 27250 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_LEN 2 27251 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_LBN 240 27252 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_WIDTH 16 27253 /* Maximum duration for which a telemetry flow is monitored (in millisecs). */ 27254 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_OFST 32 27255 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_LEN 4 27256 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_LBN 256 27257 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_WIDTH 32 27258 27259 27260 /***********************************/ 27261 /* MC_CMD_TELEMETRY_CONFIG 27262 * This top-level command includes various sub-opcodes that are used to apply 27263 * (and read-back) telemetry related configuration parameters on the NIC. 27264 * Reference - SF-120569-SW Telemetry Firmware Design. 27265 */ 27266 #define MC_CMD_TELEMETRY_CONFIG 0x139 27267 #define MC_CMD_TELEMETRY_CONFIG_MSGSET 0x139 27268 #undef MC_CMD_0x139_PRIVILEGE_CTG 27269 27270 #define MC_CMD_0x139_PRIVILEGE_CTG SRIOV_CTG_ADMIN 27271 27272 /* MC_CMD_TELEMETRY_CONFIG_IN msgrequest */ 27273 #define MC_CMD_TELEMETRY_CONFIG_IN_LEN 4 27274 /* Telemetry configuration sub-operation code */ 27275 #define MC_CMD_TELEMETRY_CONFIG_IN_OP_OFST 0 27276 #define MC_CMD_TELEMETRY_CONFIG_IN_OP_LEN 4 27277 /* enum: Configure parameters for telemetry measurements. */ 27278 #define MC_CMD_TELEMETRY_CONFIG_OP_SET 0x1 27279 /* enum: Read current values of parameters for telemetry measurements. */ 27280 #define MC_CMD_TELEMETRY_CONFIG_OP_GET 0x2 27281 27282 /* MC_CMD_TELEMETRY_CONFIG_IN_SET msgrequest: This command configures the 27283 * parameters necessary for tcp-latency measurements. The adapter adds a filter 27284 * for every new tcp flow seen in both tx and rx directions and tracks the 27285 * telemetry measurements related to the flow in a tracking table. Entries in 27286 * the tracking table live as long as N measurements are made on the flow or 27287 * the flow has been in the tracking table for the maximum configured duration. 27288 * Telemetry measurements in this command refer to tcp-latency measurements for 27289 * data-to-ack latency as well as data-to-data latency. All telemetry 27290 * measurements are bundled into a UDP packet and forwarded to a collector 27291 * whose IP address is configured using this command. 27292 */ 27293 #define MC_CMD_TELEMETRY_CONFIG_IN_SET_LEN 40 27294 /* Telemetry configuration sub-operation code. Must be set to 27295 * MC_CMD_TELEMETRY_CONFIG_OP_SET. 27296 */ 27297 #define MC_CMD_TELEMETRY_CONFIG_IN_SET_OP_OFST 0 27298 #define MC_CMD_TELEMETRY_CONFIG_IN_SET_OP_LEN 4 27299 /* struct of type TELEMETRY_CONFIG. */ 27300 #define MC_CMD_TELEMETRY_CONFIG_IN_SET_PARAMETERS_OFST 4 27301 #define MC_CMD_TELEMETRY_CONFIG_IN_SET_PARAMETERS_LEN 36 27302 27303 /* MC_CMD_TELEMETRY_CONFIG_OUT_SET msgresponse */ 27304 #define MC_CMD_TELEMETRY_CONFIG_OUT_SET_LEN 0 27305 27306 /* MC_CMD_TELEMETRY_CONFIG_IN_GET msgrequest: This command reads out the 27307 * current values of config parameters necessary for tcp-latency measurements. 27308 * See MC_CMD_TELEMETRY_SET_CONFIG for more information about the configuration 27309 * parameters. 27310 */ 27311 #define MC_CMD_TELEMETRY_CONFIG_IN_GET_LEN 4 27312 /* Telemetry configuration sub-operation code. Must be set to 27313 * MC_CMD_TELEMETRY_CONFIG_OP_GET. 27314 */ 27315 #define MC_CMD_TELEMETRY_CONFIG_IN_GET_OP_OFST 0 27316 #define MC_CMD_TELEMETRY_CONFIG_IN_GET_OP_LEN 4 27317 27318 /* MC_CMD_TELEMETRY_CONFIG_OUT_GET msgresponse */ 27319 #define MC_CMD_TELEMETRY_CONFIG_OUT_GET_LEN 36 27320 /* struct of type TELEMETRY_CONFIG. */ 27321 #define MC_CMD_TELEMETRY_CONFIG_OUT_GET_PARAMETERS_OFST 0 27322 #define MC_CMD_TELEMETRY_CONFIG_OUT_GET_PARAMETERS_LEN 36 27323 27324 27325 /***********************************/ 27326 /* MC_CMD_GET_RX_PREFIX_ID 27327 * This command is part of the mechanism for configuring the format of the RX 27328 * packet prefix. It takes as input a bitmask of the fields the host would like 27329 * to be in the prefix. If the hardware supports RX prefixes with that 27330 * combination of fields, then this command returns a list of prefix-ids, 27331 * opaque identifiers suitable for use in the RX_PREFIX_ID field of a 27332 * MC_CMD_INIT_RXQ_V5_IN message. If the combination of fields is not 27333 * supported, returns ENOTSUP. If the firmware can't create any new prefix-ids 27334 * due to resource constraints, returns ENOSPC. 27335 */ 27336 #define MC_CMD_GET_RX_PREFIX_ID 0x13b 27337 #define MC_CMD_GET_RX_PREFIX_ID_MSGSET 0x13b 27338 #undef MC_CMD_0x13b_PRIVILEGE_CTG 27339 27340 #define MC_CMD_0x13b_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27341 27342 /* MC_CMD_GET_RX_PREFIX_ID_IN msgrequest */ 27343 #define MC_CMD_GET_RX_PREFIX_ID_IN_LEN 8 27344 /* Field bitmask. */ 27345 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_OFST 0 27346 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LEN 8 27347 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LO_OFST 0 27348 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LO_LEN 4 27349 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LO_LBN 0 27350 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LO_WIDTH 32 27351 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_HI_OFST 4 27352 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_HI_LEN 4 27353 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_HI_LBN 32 27354 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_HI_WIDTH 32 27355 #define MC_CMD_GET_RX_PREFIX_ID_IN_LENGTH_OFST 0 27356 #define MC_CMD_GET_RX_PREFIX_ID_IN_LENGTH_LBN 0 27357 #define MC_CMD_GET_RX_PREFIX_ID_IN_LENGTH_WIDTH 1 27358 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_VALID_OFST 0 27359 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_VALID_LBN 1 27360 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_VALID_WIDTH 1 27361 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_FLAG_OFST 0 27362 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_FLAG_LBN 2 27363 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_FLAG_WIDTH 1 27364 #define MC_CMD_GET_RX_PREFIX_ID_IN_CLASS_OFST 0 27365 #define MC_CMD_GET_RX_PREFIX_ID_IN_CLASS_LBN 3 27366 #define MC_CMD_GET_RX_PREFIX_ID_IN_CLASS_WIDTH 1 27367 #define MC_CMD_GET_RX_PREFIX_ID_IN_PARTIAL_TSTAMP_OFST 0 27368 #define MC_CMD_GET_RX_PREFIX_ID_IN_PARTIAL_TSTAMP_LBN 4 27369 #define MC_CMD_GET_RX_PREFIX_ID_IN_PARTIAL_TSTAMP_WIDTH 1 27370 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_OFST 0 27371 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_LBN 5 27372 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_WIDTH 1 27373 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_MARK_OFST 0 27374 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_MARK_LBN 6 27375 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_MARK_WIDTH 1 27376 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_MPORT_OFST 0 27377 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_MPORT_LBN 7 27378 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_MPORT_WIDTH 1 27379 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_VPORT_OFST 0 27380 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_VPORT_LBN 7 27381 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_VPORT_WIDTH 1 27382 #define MC_CMD_GET_RX_PREFIX_ID_IN_CSUM_FRAME_OFST 0 27383 #define MC_CMD_GET_RX_PREFIX_ID_IN_CSUM_FRAME_LBN 8 27384 #define MC_CMD_GET_RX_PREFIX_ID_IN_CSUM_FRAME_WIDTH 1 27385 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIP_TCI_OFST 0 27386 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIP_TCI_LBN 9 27387 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIP_TCI_WIDTH 1 27388 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIPPED_OFST 0 27389 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIPPED_LBN 10 27390 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIPPED_WIDTH 1 27391 #define MC_CMD_GET_RX_PREFIX_ID_IN_VSWITCH_STATUS_OFST 0 27392 #define MC_CMD_GET_RX_PREFIX_ID_IN_VSWITCH_STATUS_LBN 11 27393 #define MC_CMD_GET_RX_PREFIX_ID_IN_VSWITCH_STATUS_WIDTH 1 27394 27395 /* MC_CMD_GET_RX_PREFIX_ID_OUT msgresponse */ 27396 #define MC_CMD_GET_RX_PREFIX_ID_OUT_LENMIN 8 27397 #define MC_CMD_GET_RX_PREFIX_ID_OUT_LENMAX 252 27398 #define MC_CMD_GET_RX_PREFIX_ID_OUT_LENMAX_MCDI2 1020 27399 #define MC_CMD_GET_RX_PREFIX_ID_OUT_LEN(num) (4+4*(num)) 27400 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_NUM(len) (((len)-4)/4) 27401 /* Number of prefix-ids returned */ 27402 #define MC_CMD_GET_RX_PREFIX_ID_OUT_NUM_RX_PREFIX_IDS_OFST 0 27403 #define MC_CMD_GET_RX_PREFIX_ID_OUT_NUM_RX_PREFIX_IDS_LEN 4 27404 /* Opaque prefix identifiers which can be passed into MC_CMD_INIT_RXQ_V5 or 27405 * MC_CMD_QUERY_PREFIX_ID 27406 */ 27407 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_OFST 4 27408 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_LEN 4 27409 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_MINNUM 1 27410 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_MAXNUM 62 27411 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_MAXNUM_MCDI2 254 27412 27413 /* RX_PREFIX_FIELD_INFO structuredef: Information about a single RX prefix 27414 * field 27415 */ 27416 #define RX_PREFIX_FIELD_INFO_LEN 4 27417 /* The offset of the field from the start of the prefix, in bits */ 27418 #define RX_PREFIX_FIELD_INFO_OFFSET_BITS_OFST 0 27419 #define RX_PREFIX_FIELD_INFO_OFFSET_BITS_LEN 2 27420 #define RX_PREFIX_FIELD_INFO_OFFSET_BITS_LBN 0 27421 #define RX_PREFIX_FIELD_INFO_OFFSET_BITS_WIDTH 16 27422 /* The width of the field, in bits */ 27423 #define RX_PREFIX_FIELD_INFO_WIDTH_BITS_OFST 2 27424 #define RX_PREFIX_FIELD_INFO_WIDTH_BITS_LEN 1 27425 #define RX_PREFIX_FIELD_INFO_WIDTH_BITS_LBN 16 27426 #define RX_PREFIX_FIELD_INFO_WIDTH_BITS_WIDTH 8 27427 /* The type of the field. These enum values are in the same order as the fields 27428 * in the MC_CMD_GET_RX_PREFIX_ID_IN bitmask 27429 */ 27430 #define RX_PREFIX_FIELD_INFO_TYPE_OFST 3 27431 #define RX_PREFIX_FIELD_INFO_TYPE_LEN 1 27432 #define RX_PREFIX_FIELD_INFO_LENGTH 0x0 /* enum */ 27433 #define RX_PREFIX_FIELD_INFO_RSS_HASH_VALID 0x1 /* enum */ 27434 #define RX_PREFIX_FIELD_INFO_USER_FLAG 0x2 /* enum */ 27435 #define RX_PREFIX_FIELD_INFO_CLASS 0x3 /* enum */ 27436 #define RX_PREFIX_FIELD_INFO_PARTIAL_TSTAMP 0x4 /* enum */ 27437 #define RX_PREFIX_FIELD_INFO_RSS_HASH 0x5 /* enum */ 27438 #define RX_PREFIX_FIELD_INFO_USER_MARK 0x6 /* enum */ 27439 #define RX_PREFIX_FIELD_INFO_INGRESS_MPORT 0x7 /* enum */ 27440 #define RX_PREFIX_FIELD_INFO_INGRESS_VPORT 0x7 /* enum */ 27441 #define RX_PREFIX_FIELD_INFO_CSUM_FRAME 0x8 /* enum */ 27442 #define RX_PREFIX_FIELD_INFO_VLAN_STRIP_TCI 0x9 /* enum */ 27443 #define RX_PREFIX_FIELD_INFO_VLAN_STRIPPED 0xa /* enum */ 27444 #define RX_PREFIX_FIELD_INFO_VSWITCH_STATUS 0xb /* enum */ 27445 #define RX_PREFIX_FIELD_INFO_TYPE_LBN 24 27446 #define RX_PREFIX_FIELD_INFO_TYPE_WIDTH 8 27447 27448 /* RX_PREFIX_FIXED_RESPONSE structuredef: Information about an RX prefix in 27449 * which every field has a fixed offset and width 27450 */ 27451 #define RX_PREFIX_FIXED_RESPONSE_LENMIN 4 27452 #define RX_PREFIX_FIXED_RESPONSE_LENMAX 252 27453 #define RX_PREFIX_FIXED_RESPONSE_LENMAX_MCDI2 1020 27454 #define RX_PREFIX_FIXED_RESPONSE_LEN(num) (4+4*(num)) 27455 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_NUM(len) (((len)-4)/4) 27456 /* Length of the RX prefix in bytes */ 27457 #define RX_PREFIX_FIXED_RESPONSE_PREFIX_LENGTH_BYTES_OFST 0 27458 #define RX_PREFIX_FIXED_RESPONSE_PREFIX_LENGTH_BYTES_LEN 1 27459 #define RX_PREFIX_FIXED_RESPONSE_PREFIX_LENGTH_BYTES_LBN 0 27460 #define RX_PREFIX_FIXED_RESPONSE_PREFIX_LENGTH_BYTES_WIDTH 8 27461 /* Number of fields present in the prefix */ 27462 #define RX_PREFIX_FIXED_RESPONSE_FIELD_COUNT_OFST 1 27463 #define RX_PREFIX_FIXED_RESPONSE_FIELD_COUNT_LEN 1 27464 #define RX_PREFIX_FIXED_RESPONSE_FIELD_COUNT_LBN 8 27465 #define RX_PREFIX_FIXED_RESPONSE_FIELD_COUNT_WIDTH 8 27466 #define RX_PREFIX_FIXED_RESPONSE_RESERVED_OFST 2 27467 #define RX_PREFIX_FIXED_RESPONSE_RESERVED_LEN 2 27468 #define RX_PREFIX_FIXED_RESPONSE_RESERVED_LBN 16 27469 #define RX_PREFIX_FIXED_RESPONSE_RESERVED_WIDTH 16 27470 /* Array of RX_PREFIX_FIELD_INFO structures, of length FIELD_COUNT */ 27471 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_OFST 4 27472 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_LEN 4 27473 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_MINNUM 0 27474 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_MAXNUM 62 27475 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_MAXNUM_MCDI2 254 27476 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_LBN 32 27477 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_WIDTH 32 27478 27479 27480 /***********************************/ 27481 /* MC_CMD_QUERY_RX_PREFIX_ID 27482 * This command takes an RX prefix id (obtained from MC_CMD_GET_RX_PREFIX_ID) 27483 * and returns a description of the RX prefix of packets delievered to an RXQ 27484 * created with that prefix id 27485 */ 27486 #define MC_CMD_QUERY_RX_PREFIX_ID 0x13c 27487 #define MC_CMD_QUERY_RX_PREFIX_ID_MSGSET 0x13c 27488 #undef MC_CMD_0x13c_PRIVILEGE_CTG 27489 27490 #define MC_CMD_0x13c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27491 27492 /* MC_CMD_QUERY_RX_PREFIX_ID_IN msgrequest */ 27493 #define MC_CMD_QUERY_RX_PREFIX_ID_IN_LEN 4 27494 /* Prefix id to query */ 27495 #define MC_CMD_QUERY_RX_PREFIX_ID_IN_RX_PREFIX_ID_OFST 0 27496 #define MC_CMD_QUERY_RX_PREFIX_ID_IN_RX_PREFIX_ID_LEN 4 27497 27498 /* MC_CMD_QUERY_RX_PREFIX_ID_OUT msgresponse */ 27499 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_LENMIN 4 27500 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_LENMAX 252 27501 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_LENMAX_MCDI2 1020 27502 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_LEN(num) (4+1*(num)) 27503 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_NUM(len) (((len)-4)/1) 27504 /* An enum describing the structure of this response. */ 27505 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_TYPE_OFST 0 27506 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_TYPE_LEN 1 27507 /* enum: The response is of format RX_PREFIX_FIXED_RESPONSE */ 27508 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_TYPE_FIXED 0x0 27509 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESERVED_OFST 1 27510 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESERVED_LEN 3 27511 /* The response. Its format is as defined by the RESPONSE_TYPE value */ 27512 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_OFST 4 27513 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_LEN 1 27514 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_MINNUM 0 27515 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_MAXNUM 248 27516 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_MAXNUM_MCDI2 1016 27517 27518 27519 /***********************************/ 27520 /* MC_CMD_BUNDLE 27521 * A command to perform various bundle-related operations on insecure cards. 27522 */ 27523 #define MC_CMD_BUNDLE 0x13d 27524 #define MC_CMD_BUNDLE_MSGSET 0x13d 27525 #undef MC_CMD_0x13d_PRIVILEGE_CTG 27526 27527 #define MC_CMD_0x13d_PRIVILEGE_CTG SRIOV_CTG_INSECURE 27528 27529 /* MC_CMD_BUNDLE_IN msgrequest */ 27530 #define MC_CMD_BUNDLE_IN_LEN 4 27531 /* Sub-command code */ 27532 #define MC_CMD_BUNDLE_IN_OP_OFST 0 27533 #define MC_CMD_BUNDLE_IN_OP_LEN 4 27534 /* enum: Get the current host access mode set on component partitions. */ 27535 #define MC_CMD_BUNDLE_IN_OP_COMPONENT_ACCESS_GET 0x0 27536 /* enum: Set the host access mode set on component partitions. */ 27537 #define MC_CMD_BUNDLE_IN_OP_COMPONENT_ACCESS_SET 0x1 27538 27539 /* MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_IN msgrequest: Retrieve the current 27540 * access mode on component partitions such as MC_FIRMWARE, SUC_FIRMWARE and 27541 * EXPANSION_UEFI. This command only works on engineering (insecure) cards. On 27542 * secure adapters, this command returns MC_CMD_ERR_EPERM. 27543 */ 27544 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_IN_LEN 4 27545 /* Sub-command code. Must be OP_COMPONENT_ACCESS_GET. */ 27546 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_IN_OP_OFST 0 27547 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_IN_OP_LEN 4 27548 27549 /* MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_OUT msgresponse: Returns the access 27550 * control mode. 27551 */ 27552 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_OUT_LEN 4 27553 /* Access mode of component partitions. */ 27554 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_OUT_ACCESS_MODE_OFST 0 27555 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_OUT_ACCESS_MODE_LEN 4 27556 /* enum: Component partitions are read-only from the host. */ 27557 #define MC_CMD_BUNDLE_COMPONENTS_READ_ONLY 0x0 27558 /* enum: Component partitions can read read-from written-to by the host. */ 27559 #define MC_CMD_BUNDLE_COMPONENTS_READ_WRITE 0x1 27560 27561 /* MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN msgrequest: The component 27562 * partitions such as MC_FIRMWARE, SUC_FIRMWARE, EXPANSION_UEFI are set as 27563 * read-only on firmware built with bundle support. This command marks these 27564 * partitions as read/writeable. The access status set by this command does not 27565 * persist across MC reboots. This command only works on engineering (insecure) 27566 * cards. On secure adapters, this command returns MC_CMD_ERR_EPERM. 27567 */ 27568 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN_LEN 8 27569 /* Sub-command code. Must be OP_COMPONENT_ACCESS_SET. */ 27570 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN_OP_OFST 0 27571 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN_OP_LEN 4 27572 /* Access mode of component partitions. */ 27573 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN_ACCESS_MODE_OFST 4 27574 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN_ACCESS_MODE_LEN 4 27575 /* Enum values, see field(s): */ 27576 /* MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_OUT/ACCESS_MODE */ 27577 27578 /* MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_OUT msgresponse */ 27579 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_OUT_LEN 0 27580 27581 27582 /***********************************/ 27583 /* MC_CMD_GET_VPD 27584 * Read all VPD starting from a given address 27585 */ 27586 #define MC_CMD_GET_VPD 0x165 27587 #define MC_CMD_GET_VPD_MSGSET 0x165 27588 #undef MC_CMD_0x165_PRIVILEGE_CTG 27589 27590 #define MC_CMD_0x165_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27591 27592 /* MC_CMD_GET_VPD_IN msgresponse */ 27593 #define MC_CMD_GET_VPD_IN_LEN 4 27594 /* VPD address to start from. In case VPD is longer than MCDI buffer 27595 * (unlikely), user can make multiple calls with different starting addresses. 27596 */ 27597 #define MC_CMD_GET_VPD_IN_ADDR_OFST 0 27598 #define MC_CMD_GET_VPD_IN_ADDR_LEN 4 27599 27600 /* MC_CMD_GET_VPD_OUT msgresponse */ 27601 #define MC_CMD_GET_VPD_OUT_LENMIN 0 27602 #define MC_CMD_GET_VPD_OUT_LENMAX 252 27603 #define MC_CMD_GET_VPD_OUT_LENMAX_MCDI2 1020 27604 #define MC_CMD_GET_VPD_OUT_LEN(num) (0+1*(num)) 27605 #define MC_CMD_GET_VPD_OUT_DATA_NUM(len) (((len)-0)/1) 27606 /* VPD data returned. */ 27607 #define MC_CMD_GET_VPD_OUT_DATA_OFST 0 27608 #define MC_CMD_GET_VPD_OUT_DATA_LEN 1 27609 #define MC_CMD_GET_VPD_OUT_DATA_MINNUM 0 27610 #define MC_CMD_GET_VPD_OUT_DATA_MAXNUM 252 27611 #define MC_CMD_GET_VPD_OUT_DATA_MAXNUM_MCDI2 1020 27612 27613 27614 /***********************************/ 27615 /* MC_CMD_GET_NCSI_INFO 27616 * Provide information about the NC-SI stack 27617 */ 27618 #define MC_CMD_GET_NCSI_INFO 0x167 27619 #define MC_CMD_GET_NCSI_INFO_MSGSET 0x167 27620 #undef MC_CMD_0x167_PRIVILEGE_CTG 27621 27622 #define MC_CMD_0x167_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27623 27624 /* MC_CMD_GET_NCSI_INFO_IN msgrequest */ 27625 #define MC_CMD_GET_NCSI_INFO_IN_LEN 8 27626 /* Operation to be performed */ 27627 #define MC_CMD_GET_NCSI_INFO_IN_OP_OFST 0 27628 #define MC_CMD_GET_NCSI_INFO_IN_OP_LEN 4 27629 /* enum: Information on the link settings. */ 27630 #define MC_CMD_GET_NCSI_INFO_IN_OP_LINK 0x0 27631 /* enum: Statistics associated with the channel */ 27632 #define MC_CMD_GET_NCSI_INFO_IN_OP_STATISTICS 0x1 27633 /* The NC-SI channel on which the operation is to be performed */ 27634 #define MC_CMD_GET_NCSI_INFO_IN_CHANNEL_OFST 4 27635 #define MC_CMD_GET_NCSI_INFO_IN_CHANNEL_LEN 4 27636 27637 /* MC_CMD_GET_NCSI_INFO_LINK_OUT msgresponse */ 27638 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_LEN 12 27639 /* Settings as received from BMC. */ 27640 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_SETTINGS_OFST 0 27641 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_SETTINGS_LEN 4 27642 /* Advertised capabilities applied to channel. */ 27643 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ADV_CAP_OFST 4 27644 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ADV_CAP_LEN 4 27645 /* General status */ 27646 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_STATUS_OFST 8 27647 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_STATUS_LEN 4 27648 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_STATE_OFST 8 27649 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_STATE_LBN 0 27650 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_STATE_WIDTH 2 27651 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ENABLE_OFST 8 27652 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ENABLE_LBN 2 27653 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ENABLE_WIDTH 1 27654 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_NETWORK_TX_OFST 8 27655 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_NETWORK_TX_LBN 3 27656 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_NETWORK_TX_WIDTH 1 27657 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ATTACHED_OFST 8 27658 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ATTACHED_LBN 4 27659 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ATTACHED_WIDTH 1 27660 27661 /* MC_CMD_GET_NCSI_INFO_STATISTICS_OUT msgresponse */ 27662 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_LEN 28 27663 /* The number of NC-SI commands received. */ 27664 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMDS_RX_OFST 0 27665 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMDS_RX_LEN 4 27666 /* The number of NC-SI commands dropped. */ 27667 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_PKTS_DROPPED_OFST 4 27668 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_PKTS_DROPPED_LEN 4 27669 /* The number of invalid NC-SI commands received. */ 27670 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMD_TYPE_ERRS_OFST 8 27671 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMD_TYPE_ERRS_LEN 4 27672 /* The number of checksum errors seen. */ 27673 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMD_CSUM_ERRS_OFST 12 27674 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMD_CSUM_ERRS_LEN 4 27675 /* The number of NC-SI requests received. */ 27676 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_RX_PKTS_OFST 16 27677 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_RX_PKTS_LEN 4 27678 /* The number of NC-SI responses sent (includes AENs) */ 27679 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_TX_PKTS_OFST 20 27680 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_TX_PKTS_LEN 4 27681 /* The number of NC-SI AENs sent */ 27682 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_AENS_SENT_OFST 24 27683 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_AENS_SENT_LEN 4 27684 27685 27686 /***********************************/ 27687 /* MC_CMD_FIRMWARE_SET_LOCKDOWN 27688 * System lockdown, when enabled firmware updates are blocked. 27689 */ 27690 #define MC_CMD_FIRMWARE_SET_LOCKDOWN 0x16f 27691 #define MC_CMD_FIRMWARE_SET_LOCKDOWN_MSGSET 0x16f 27692 #undef MC_CMD_0x16f_PRIVILEGE_CTG 27693 27694 #define MC_CMD_0x16f_PRIVILEGE_CTG SRIOV_CTG_ADMIN 27695 27696 /* MC_CMD_FIRMWARE_SET_LOCKDOWN_IN msgrequest: This MCDI command is to enable 27697 * only because lockdown can only be disabled by a PMCI command or a cold reset 27698 * of the system. 27699 */ 27700 #define MC_CMD_FIRMWARE_SET_LOCKDOWN_IN_LEN 0 27701 27702 /* MC_CMD_FIRMWARE_SET_LOCKDOWN_OUT msgresponse */ 27703 #define MC_CMD_FIRMWARE_SET_LOCKDOWN_OUT_LEN 0 27704 27705 27706 /***********************************/ 27707 /* MC_CMD_GET_TEST_FEATURES 27708 * This command returns device details knowledge of which may be required by 27709 * test infrastructure. Although safe, it is not intended to be used by 27710 * production drivers, and the structure returned intentionally has no public 27711 * documentation. 27712 */ 27713 #define MC_CMD_GET_TEST_FEATURES 0x1ac 27714 #define MC_CMD_GET_TEST_FEATURES_MSGSET 0x1ac 27715 #undef MC_CMD_0x1ac_PRIVILEGE_CTG 27716 27717 #define MC_CMD_0x1ac_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27718 27719 /* MC_CMD_GET_TEST_FEATURES_IN msgrequest: Request test features. */ 27720 #define MC_CMD_GET_TEST_FEATURES_IN_LEN 0 27721 27722 /* MC_CMD_GET_TEST_FEATURE_OUT msgresponse */ 27723 #define MC_CMD_GET_TEST_FEATURE_OUT_LENMIN 4 27724 #define MC_CMD_GET_TEST_FEATURE_OUT_LENMAX 252 27725 #define MC_CMD_GET_TEST_FEATURE_OUT_LENMAX_MCDI2 1020 27726 #define MC_CMD_GET_TEST_FEATURE_OUT_LEN(num) (0+4*(num)) 27727 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_NUM(len) (((len)-0)/4) 27728 /* Test-specific NIC information. Production drivers must treat this as opaque. 27729 * The layout is defined in the private TEST_FEATURES_LAYOUT structure. 27730 */ 27731 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_OFST 0 27732 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_LEN 4 27733 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_MINNUM 1 27734 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_MAXNUM 63 27735 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_MAXNUM_MCDI2 255 27736 27737 27738 /***********************************/ 27739 /* MC_CMD_FPGA 27740 * A command to perform various fpga-related operations on platforms that 27741 * include FPGAs. Note that some platforms may only support a subset of these 27742 * operations. 27743 */ 27744 #define MC_CMD_FPGA 0x1bf 27745 #define MC_CMD_FPGA_MSGSET 0x1bf 27746 #undef MC_CMD_0x1bf_PRIVILEGE_CTG 27747 27748 #define MC_CMD_0x1bf_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27749 27750 /* MC_CMD_FPGA_IN msgrequest */ 27751 #define MC_CMD_FPGA_IN_LEN 4 27752 /* Sub-command code */ 27753 #define MC_CMD_FPGA_IN_OP_OFST 0 27754 #define MC_CMD_FPGA_IN_OP_LEN 4 27755 /* enum: Get the FPGA version string. */ 27756 #define MC_CMD_FPGA_IN_OP_GET_VERSION 0x0 27757 /* enum: Read bitmask of features supported in the FPGA image. */ 27758 #define MC_CMD_FPGA_IN_OP_GET_CAPABILITIES 0x1 27759 /* enum: Perform a FPGA reset. */ 27760 #define MC_CMD_FPGA_IN_OP_RESET 0x2 27761 /* enum: Set active flash device. */ 27762 #define MC_CMD_FPGA_IN_OP_SELECT_FLASH 0x3 27763 /* enum: Get active flash device. */ 27764 #define MC_CMD_FPGA_IN_OP_GET_ACTIVE_FLASH 0x4 27765 /* enum: Configure internal link i.e. the FPGA port facing the ASIC. */ 27766 #define MC_CMD_FPGA_IN_OP_SET_INTERNAL_LINK 0x5 27767 /* enum: Read internal link configuration. */ 27768 #define MC_CMD_FPGA_IN_OP_GET_INTERNAL_LINK 0x6 27769 /* enum: Get MAC statistics of FPGA external port. */ 27770 #define MC_CMD_FPGA_IN_OP_GET_MAC_STATS 0x7 27771 /* enum: Set configuration on internal FPGA MAC. */ 27772 #define MC_CMD_FPGA_IN_OP_SET_INTERNAL_MAC 0x8 27773 27774 /* MC_CMD_FPGA_OP_GET_VERSION_IN msgrequest: Get the FPGA version string. A 27775 * free-format string is returned in response to this command. Any checks on 27776 * supported FPGA operations are based on the response to 27777 * MC_CMD_FPGA_OP_GET_CAPABILITIES. 27778 */ 27779 #define MC_CMD_FPGA_OP_GET_VERSION_IN_LEN 4 27780 /* Sub-command code. Must be OP_GET_VERSION */ 27781 #define MC_CMD_FPGA_OP_GET_VERSION_IN_OP_OFST 0 27782 #define MC_CMD_FPGA_OP_GET_VERSION_IN_OP_LEN 4 27783 27784 /* MC_CMD_FPGA_OP_GET_VERSION_OUT msgresponse: Returns the version string. */ 27785 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_LENMIN 0 27786 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_LENMAX 252 27787 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_LENMAX_MCDI2 1020 27788 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_LEN(num) (0+1*(num)) 27789 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_VERSION_NUM(len) (((len)-0)/1) 27790 /* Null-terminated string containing version information. */ 27791 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_VERSION_OFST 0 27792 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_VERSION_LEN 1 27793 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_VERSION_MINNUM 0 27794 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_VERSION_MAXNUM 252 27795 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_VERSION_MAXNUM_MCDI2 1020 27796 27797 /* MC_CMD_FPGA_OP_GET_CAPABILITIES_IN msgrequest: Read bitmask of features 27798 * supported in the FPGA image. 27799 */ 27800 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_IN_LEN 4 27801 /* Sub-command code. Must be OP_GET_CAPABILITIES */ 27802 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_IN_OP_OFST 0 27803 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_IN_OP_LEN 4 27804 27805 /* MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT msgresponse: Returns the version string. 27806 */ 27807 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_LEN 4 27808 /* Bit-mask of supported features. */ 27809 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_CAPABILITIES_OFST 0 27810 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_CAPABILITIES_LEN 4 27811 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_MAC_OFST 0 27812 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_MAC_LBN 0 27813 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_MAC_WIDTH 1 27814 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_MAE_OFST 0 27815 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_MAE_LBN 1 27816 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_MAE_WIDTH 1 27817 27818 /* MC_CMD_FPGA_OP_RESET_IN msgrequest: Perform a FPGA reset operation where 27819 * supported. 27820 */ 27821 #define MC_CMD_FPGA_OP_RESET_IN_LEN 4 27822 /* Sub-command code. Must be OP_RESET */ 27823 #define MC_CMD_FPGA_OP_RESET_IN_OP_OFST 0 27824 #define MC_CMD_FPGA_OP_RESET_IN_OP_LEN 4 27825 27826 /* MC_CMD_FPGA_OP_RESET_OUT msgresponse */ 27827 #define MC_CMD_FPGA_OP_RESET_OUT_LEN 0 27828 27829 /* MC_CMD_FPGA_OP_SELECT_FLASH_IN msgrequest: Set active FPGA flash device. 27830 * Returns EINVAL if selected flash index does not exist on the platform under 27831 * test. 27832 */ 27833 #define MC_CMD_FPGA_OP_SELECT_FLASH_IN_LEN 8 27834 /* Sub-command code. Must be OP_SELECT_FLASH */ 27835 #define MC_CMD_FPGA_OP_SELECT_FLASH_IN_OP_OFST 0 27836 #define MC_CMD_FPGA_OP_SELECT_FLASH_IN_OP_LEN 4 27837 /* Flash device identifier. */ 27838 #define MC_CMD_FPGA_OP_SELECT_FLASH_IN_FLASH_ID_OFST 4 27839 #define MC_CMD_FPGA_OP_SELECT_FLASH_IN_FLASH_ID_LEN 4 27840 /* Enum values, see field(s): */ 27841 /* MC_CMD_FPGA_FLASH_INDEX */ 27842 27843 /* MC_CMD_FPGA_OP_SELECT_FLASH_OUT msgresponse */ 27844 #define MC_CMD_FPGA_OP_SELECT_FLASH_OUT_LEN 0 27845 27846 /* MC_CMD_FPGA_OP_GET_ACTIVE_FLASH_IN msgrequest: Get active FPGA flash device. 27847 */ 27848 #define MC_CMD_FPGA_OP_GET_ACTIVE_FLASH_IN_LEN 4 27849 /* Sub-command code. Must be OP_GET_ACTIVE_FLASH */ 27850 #define MC_CMD_FPGA_OP_GET_ACTIVE_FLASH_IN_OP_OFST 0 27851 #define MC_CMD_FPGA_OP_GET_ACTIVE_FLASH_IN_OP_LEN 4 27852 27853 /* MC_CMD_FPGA_OP_GET_ACTIVE_FLASH_OUT msgresponse: Returns flash identifier 27854 * for current active flash. 27855 */ 27856 #define MC_CMD_FPGA_OP_GET_ACTIVE_FLASH_OUT_LEN 4 27857 /* Flash device identifier. */ 27858 #define MC_CMD_FPGA_OP_GET_ACTIVE_FLASH_OUT_FLASH_ID_OFST 0 27859 #define MC_CMD_FPGA_OP_GET_ACTIVE_FLASH_OUT_FLASH_ID_LEN 4 27860 /* Enum values, see field(s): */ 27861 /* MC_CMD_FPGA_FLASH_INDEX */ 27862 27863 /* MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN msgrequest: Configure FPGA internal 27864 * port, facing the ASIC 27865 */ 27866 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_LEN 12 27867 /* Sub-command code. Must be OP_SET_INTERNAL_LINK */ 27868 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_OP_OFST 0 27869 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_OP_LEN 4 27870 /* Flags */ 27871 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_FLAGS_OFST 4 27872 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_FLAGS_LEN 4 27873 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_LINK_STATE_OFST 4 27874 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_LINK_STATE_LBN 0 27875 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_LINK_STATE_WIDTH 2 27876 /* enum: Unmodified, same as last state set by firmware */ 27877 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_AUTO 0x0 27878 /* enum: Configure link-up */ 27879 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_UP 0x1 27880 /* enum: Configure link-down */ 27881 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_DOWN 0x2 27882 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_FLUSH_OFST 4 27883 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_FLUSH_LBN 2 27884 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_FLUSH_WIDTH 1 27885 /* Link speed to be applied on FPGA internal port MAC. */ 27886 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_SPEED_OFST 8 27887 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_SPEED_LEN 4 27888 27889 /* MC_CMD_FPGA_OP_SET_INTERNAL_LINK_OUT msgresponse */ 27890 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_OUT_LEN 0 27891 27892 /* MC_CMD_FPGA_OP_GET_INTERNAL_LINK_IN msgrequest: Read FPGA internal port 27893 * configuration and status 27894 */ 27895 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_IN_LEN 4 27896 /* Sub-command code. Must be OP_GET_INTERNAL_LINK */ 27897 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_IN_OP_OFST 0 27898 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_IN_OP_LEN 4 27899 27900 /* MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT msgresponse: Response format for read 27901 * FPGA internal port configuration and status 27902 */ 27903 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT_LEN 8 27904 /* Flags */ 27905 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT_FLAGS_OFST 0 27906 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT_FLAGS_LEN 4 27907 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT_LINK_STATE_OFST 0 27908 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT_LINK_STATE_LBN 0 27909 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT_LINK_STATE_WIDTH 2 27910 /* Enum values, see field(s): */ 27911 /* MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN/FLAGS */ 27912 /* Link speed set on FPGA internal port MAC. */ 27913 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT_SPEED_OFST 4 27914 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT_SPEED_LEN 4 27915 27916 /* MC_CMD_FPGA_OP_GET_MAC_STATS_IN msgrequest: Get FPGA external port MAC 27917 * statistics. 27918 */ 27919 #define MC_CMD_FPGA_OP_GET_MAC_STATS_IN_LEN 4 27920 /* Sub-command code. Must be OP_GET_MAC_STATS. */ 27921 #define MC_CMD_FPGA_OP_GET_MAC_STATS_IN_OP_OFST 0 27922 #define MC_CMD_FPGA_OP_GET_MAC_STATS_IN_OP_LEN 4 27923 27924 /* MC_CMD_FPGA_OP_GET_MAC_STATS_OUT msgresponse */ 27925 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_LENMIN 4 27926 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_LENMAX 252 27927 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_LENMAX_MCDI2 1020 27928 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_LEN(num) (4+8*(num)) 27929 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_NUM(len) (((len)-4)/8) 27930 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_NUM_STATS_OFST 0 27931 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_NUM_STATS_LEN 4 27932 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_OFST 4 27933 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_LEN 8 27934 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_LO_OFST 4 27935 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_LO_LEN 4 27936 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_LO_LBN 32 27937 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_LO_WIDTH 32 27938 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_HI_OFST 8 27939 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_HI_LEN 4 27940 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_HI_LBN 64 27941 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_HI_WIDTH 32 27942 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_MINNUM 0 27943 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_MAXNUM 31 27944 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_MAXNUM_MCDI2 127 27945 /* enum property: index */ 27946 #define MC_CMD_FPGA_MAC_TX_TOTAL_PACKETS 0x0 /* enum */ 27947 #define MC_CMD_FPGA_MAC_TX_TOTAL_BYTES 0x1 /* enum */ 27948 #define MC_CMD_FPGA_MAC_TX_TOTAL_GOOD_PACKETS 0x2 /* enum */ 27949 #define MC_CMD_FPGA_MAC_TX_TOTAL_GOOD_BYTES 0x3 /* enum */ 27950 #define MC_CMD_FPGA_MAC_TX_BAD_FCS 0x4 /* enum */ 27951 #define MC_CMD_FPGA_MAC_TX_PAUSE 0x5 /* enum */ 27952 #define MC_CMD_FPGA_MAC_TX_USER_PAUSE 0x6 /* enum */ 27953 #define MC_CMD_FPGA_MAC_RX_TOTAL_PACKETS 0x7 /* enum */ 27954 #define MC_CMD_FPGA_MAC_RX_TOTAL_BYTES 0x8 /* enum */ 27955 #define MC_CMD_FPGA_MAC_RX_TOTAL_GOOD_PACKETS 0x9 /* enum */ 27956 #define MC_CMD_FPGA_MAC_RX_TOTAL_GOOD_BYTES 0xa /* enum */ 27957 #define MC_CMD_FPGA_MAC_RX_BAD_FCS 0xb /* enum */ 27958 #define MC_CMD_FPGA_MAC_RX_PAUSE 0xc /* enum */ 27959 #define MC_CMD_FPGA_MAC_RX_USER_PAUSE 0xd /* enum */ 27960 #define MC_CMD_FPGA_MAC_RX_UNDERSIZE 0xe /* enum */ 27961 #define MC_CMD_FPGA_MAC_RX_OVERSIZE 0xf /* enum */ 27962 #define MC_CMD_FPGA_MAC_RX_FRAMING_ERR 0x10 /* enum */ 27963 #define MC_CMD_FPGA_MAC_FEC_UNCORRECTED_ERRORS 0x11 /* enum */ 27964 #define MC_CMD_FPGA_MAC_FEC_CORRECTED_ERRORS 0x12 /* enum */ 27965 27966 /* MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN msgrequest: Configures the internal port 27967 * MAC on the FPGA. 27968 */ 27969 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_LEN 20 27970 /* Sub-command code. Must be OP_SET_INTERNAL_MAC. */ 27971 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_OP_OFST 0 27972 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_OP_LEN 4 27973 /* Select which parameters to configure. */ 27974 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CONTROL_OFST 4 27975 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CONTROL_LEN 4 27976 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_MTU_OFST 4 27977 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_MTU_LBN 0 27978 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_MTU_WIDTH 1 27979 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_DRAIN_OFST 4 27980 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_DRAIN_LBN 1 27981 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_DRAIN_WIDTH 1 27982 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_FCNTL_OFST 4 27983 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_FCNTL_LBN 2 27984 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_FCNTL_WIDTH 1 27985 /* The MTU to be programmed into the MAC. */ 27986 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_MTU_OFST 8 27987 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_MTU_LEN 4 27988 /* Drain Tx FIFO */ 27989 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_DRAIN_OFST 12 27990 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_DRAIN_LEN 4 27991 /* flow control configuration. See MC_CMD_SET_MAC/MC_CMD_SET_MAC_IN/FCNTL. */ 27992 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_FCNTL_OFST 16 27993 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_FCNTL_LEN 4 27994 27995 /* MC_CMD_FPGA_OP_SET_INTERNAL_MAC_OUT msgresponse */ 27996 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_OUT_LEN 0 27997 27998 27999 /***********************************/ 28000 /* MC_CMD_EXTERNAL_MAE_GET_LINK_MODE 28001 * This command is expected to be used on a U25 board with an MAE in the FPGA. 28002 * It does not modify the operational state of the NIC. The modes are described 28003 * in XN-200039-TC - U25 OVS packet formats. 28004 */ 28005 #define MC_CMD_EXTERNAL_MAE_GET_LINK_MODE 0x1c0 28006 #define MC_CMD_EXTERNAL_MAE_GET_LINK_MODE_MSGSET 0x1c0 28007 #undef MC_CMD_0x1c0_PRIVILEGE_CTG 28008 28009 #define MC_CMD_0x1c0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28010 28011 /* MC_CMD_EXTERNAL_MAE_GET_LINK_MODE_IN msgrequest */ 28012 #define MC_CMD_EXTERNAL_MAE_GET_LINK_MODE_IN_LEN 0 28013 28014 /* MC_CMD_EXTERNAL_MAE_GET_LINK_MODE_OUT msgresponse */ 28015 #define MC_CMD_EXTERNAL_MAE_GET_LINK_MODE_OUT_LEN 4 28016 /* The current link mode */ 28017 #define MC_CMD_EXTERNAL_MAE_GET_LINK_MODE_OUT_MODE_OFST 0 28018 #define MC_CMD_EXTERNAL_MAE_GET_LINK_MODE_OUT_MODE_LEN 4 28019 /* Enum values, see field(s): */ 28020 /* MC_CMD_EXTERNAL_MAE_LINK_MODE */ 28021 28022 28023 /***********************************/ 28024 /* MC_CMD_EXTERNAL_MAE_SET_LINK_MODE 28025 * This command is expected to be used on a U25 board with an MAE in the FPGA. 28026 * The modes are described in XN-200039-TC - U25 OVS packet formats. This 28027 * command will set the link between the FPGA and the X2 to the specified new 28028 * mode. It will first enter bootstrap mode, make sure there are no packets in 28029 * flight and then enter the requested mode. In order to make sure there are no 28030 * packets in flight, it will flush the X2 TX path, the FPGA RX path from the 28031 * X2, the FPGA TX path to the X2 and the X2 RX path. The driver is responsible 28032 * for making sure there are no TX or RX descriptors posted on any TXQ or RXQ 28033 * associated with the affected port before invoking this command. This command 28034 * is run implicitly with MODE set to LEGACY when MC_CMD_DRV_ATTACH is 28035 * executed. 28036 */ 28037 #define MC_CMD_EXTERNAL_MAE_SET_LINK_MODE 0x1c1 28038 #define MC_CMD_EXTERNAL_MAE_SET_LINK_MODE_MSGSET 0x1c1 28039 #undef MC_CMD_0x1c1_PRIVILEGE_CTG 28040 28041 #define MC_CMD_0x1c1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28042 28043 /* MC_CMD_EXTERNAL_MAE_SET_LINK_MODE_IN msgrequest */ 28044 #define MC_CMD_EXTERNAL_MAE_SET_LINK_MODE_IN_LEN 4 28045 /* The new link mode. */ 28046 #define MC_CMD_EXTERNAL_MAE_SET_LINK_MODE_IN_MODE_OFST 0 28047 #define MC_CMD_EXTERNAL_MAE_SET_LINK_MODE_IN_MODE_LEN 4 28048 /* Enum values, see field(s): */ 28049 /* MC_CMD_EXTERNAL_MAE_LINK_MODE */ 28050 28051 /* MC_CMD_EXTERNAL_MAE_SET_LINK_MODE_OUT msgresponse */ 28052 #define MC_CMD_EXTERNAL_MAE_SET_LINK_MODE_OUT_LEN 0 28053 28054 28055 /***********************************/ 28056 /* MC_CMD_GET_BUFTBL_STATS 28057 * Currently EF10 only. Read usage and limits for Buffer Table 28058 */ 28059 #define MC_CMD_GET_BUFTBL_STATS 0x6a 28060 #define MC_CMD_GET_BUFTBL_STATS_MSGSET 0x6a 28061 #undef MC_CMD_0x6a_PRIVILEGE_CTG 28062 28063 #define MC_CMD_0x6a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28064 28065 /* MC_CMD_GET_BUFTBL_STATS_IN msgrequest */ 28066 #define MC_CMD_GET_BUFTBL_STATS_IN_LEN 0 28067 28068 /* MC_CMD_GET_BUFTBL_STATS_OUT msgresponse */ 28069 #define MC_CMD_GET_BUFTBL_STATS_OUT_LEN 40 28070 /* number of buffer table entries per set */ 28071 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_ENTRIES_PER_SET_OFST 0 28072 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_ENTRIES_PER_SET_LEN 4 28073 /* number of buffer table entries per cluster */ 28074 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_ENTRIES_PER_CLUSTER_OFST 4 28075 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_ENTRIES_PER_CLUSTER_LEN 4 28076 /* Maximum size buffer table can grow to, in clusters. On EF10, this can 28077 * potentially vary depending on the size of the Descriptor Cache. 28078 */ 28079 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_MAX_CLUSTERS_OFST 8 28080 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_MAX_CLUSTERS_LEN 4 28081 /* High water mark for number of buffer table clusters which have been 28082 * allocated. 28083 */ 28084 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_HIGH_WATER_CLUSTERS_OFST 12 28085 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_HIGH_WATER_CLUSTERS_LEN 4 28086 /* Number of free buffer table clusters on the free cluster list. */ 28087 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_FREE_CLUSTERS_OFST 16 28088 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_FREE_CLUSTERS_LEN 4 28089 /* Number of free buffer table sets on the free set list. */ 28090 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_FREE_SETS_OFST 20 28091 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_FREE_SETS_LEN 4 28092 /* Number of chunks of fully-used clusters allocated to the MC for EVQ, RXQ and 28093 * TXQs. 28094 */ 28095 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_MC_FULL_CLUSTERS_OFST 24 28096 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_MC_FULL_CLUSTERS_LEN 4 28097 /* Number of chunks in partially-used clusters allocated to the MC for EVQ, RXQ 28098 * and TXQs. 28099 */ 28100 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_MC_PART_CLUSTERS_OFST 28 28101 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_MC_PART_CLUSTERS_LEN 4 28102 /* Number of buffer table sets (chunks) allocated to the host via 28103 * MC_CMD_ALLOC_BUFTBL_CHUNK. 28104 */ 28105 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_HOST_SETS_OFST 32 28106 #define MC_CMD_GET_BUFTBL_STATS_OUT_BUFTBL_HOST_SETS_LEN 4 28107 /* Maximum number of VIs per NIC. On EF10 this is the current value as used to 28108 * size the Descriptor Cache in hardware. 28109 */ 28110 #define MC_CMD_GET_BUFTBL_STATS_OUT_VI_MAX_OFST 36 28111 #define MC_CMD_GET_BUFTBL_STATS_OUT_VI_MAX_LEN 4 28112 28113 /* CLIENT_HANDLE structuredef: A client is an abstract entity that can make 28114 * requests of the device and that can own resources managed by the device. 28115 * Examples of clients include PCIe functions and dynamic clients. A client 28116 * handle is a 32b opaque value used to refer to a client. Further details can 28117 * be found within XN-200418-TC. 28118 */ 28119 #define CLIENT_HANDLE_LEN 4 28120 #define CLIENT_HANDLE_OPAQUE_OFST 0 28121 #define CLIENT_HANDLE_OPAQUE_LEN 4 28122 /* enum: A client handle guaranteed never to refer to a real client. */ 28123 #define CLIENT_HANDLE_NULL 0xffffffff 28124 /* enum: Used to refer to the calling client. */ 28125 #define CLIENT_HANDLE_SELF 0xfffffffe 28126 #define CLIENT_HANDLE_OPAQUE_LBN 0 28127 #define CLIENT_HANDLE_OPAQUE_WIDTH 32 28128 28129 /* CLOCK_INFO structuredef: Information about a single hardware clock */ 28130 #define CLOCK_INFO_LEN 28 28131 /* Enumeration that uniquely identifies the clock */ 28132 #define CLOCK_INFO_CLOCK_ID_OFST 0 28133 #define CLOCK_INFO_CLOCK_ID_LEN 2 28134 /* enum: The Riverhead CMC (card MC) */ 28135 #define CLOCK_INFO_CLOCK_CMC 0x0 28136 /* enum: The Riverhead NMC (network MC) */ 28137 #define CLOCK_INFO_CLOCK_NMC 0x1 28138 /* enum: The Riverhead SDNET slice main logic */ 28139 #define CLOCK_INFO_CLOCK_SDNET 0x2 28140 /* enum: The Riverhead SDNET LUT */ 28141 #define CLOCK_INFO_CLOCK_SDNET_LUT 0x3 28142 /* enum: The Riverhead SDNET control logic */ 28143 #define CLOCK_INFO_CLOCK_SDNET_CTRL 0x4 28144 /* enum: The Riverhead Streaming SubSystem */ 28145 #define CLOCK_INFO_CLOCK_SSS 0x5 28146 /* enum: The Riverhead network MAC and associated CSR registers */ 28147 #define CLOCK_INFO_CLOCK_MAC 0x6 28148 #define CLOCK_INFO_CLOCK_ID_LBN 0 28149 #define CLOCK_INFO_CLOCK_ID_WIDTH 16 28150 /* Assorted flags */ 28151 #define CLOCK_INFO_FLAGS_OFST 2 28152 #define CLOCK_INFO_FLAGS_LEN 2 28153 #define CLOCK_INFO_SETTABLE_OFST 2 28154 #define CLOCK_INFO_SETTABLE_LBN 0 28155 #define CLOCK_INFO_SETTABLE_WIDTH 1 28156 #define CLOCK_INFO_FLAGS_LBN 16 28157 #define CLOCK_INFO_FLAGS_WIDTH 16 28158 /* The frequency in HZ */ 28159 #define CLOCK_INFO_FREQUENCY_OFST 4 28160 #define CLOCK_INFO_FREQUENCY_LEN 8 28161 #define CLOCK_INFO_FREQUENCY_LO_OFST 4 28162 #define CLOCK_INFO_FREQUENCY_LO_LEN 4 28163 #define CLOCK_INFO_FREQUENCY_LO_LBN 32 28164 #define CLOCK_INFO_FREQUENCY_LO_WIDTH 32 28165 #define CLOCK_INFO_FREQUENCY_HI_OFST 8 28166 #define CLOCK_INFO_FREQUENCY_HI_LEN 4 28167 #define CLOCK_INFO_FREQUENCY_HI_LBN 64 28168 #define CLOCK_INFO_FREQUENCY_HI_WIDTH 32 28169 #define CLOCK_INFO_FREQUENCY_LBN 32 28170 #define CLOCK_INFO_FREQUENCY_WIDTH 64 28171 /* Human-readable ASCII name for clock, with NUL termination */ 28172 #define CLOCK_INFO_NAME_OFST 12 28173 #define CLOCK_INFO_NAME_LEN 1 28174 #define CLOCK_INFO_NAME_NUM 16 28175 #define CLOCK_INFO_NAME_LBN 96 28176 #define CLOCK_INFO_NAME_WIDTH 8 28177 28178 /* SCHED_CREDIT_CHECK_RESULT structuredef */ 28179 #define SCHED_CREDIT_CHECK_RESULT_LEN 16 28180 /* The instance of the scheduler. Refer to XN-200389-AW (snic/hnic) and 28181 * XN-200425-TC (cdx) for the location of these schedulers in the hardware. 28182 */ 28183 #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_OFST 0 28184 #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_LEN 1 28185 #define SCHED_CREDIT_CHECK_RESULT_HUB_HOST_A 0x0 /* enum */ 28186 #define SCHED_CREDIT_CHECK_RESULT_HUB_NET_A 0x1 /* enum */ 28187 #define SCHED_CREDIT_CHECK_RESULT_HUB_B 0x2 /* enum */ 28188 #define SCHED_CREDIT_CHECK_RESULT_HUB_HOST_C 0x3 /* enum */ 28189 #define SCHED_CREDIT_CHECK_RESULT_HUB_NET_TX 0x4 /* enum */ 28190 #define SCHED_CREDIT_CHECK_RESULT_HUB_HOST_D 0x5 /* enum */ 28191 #define SCHED_CREDIT_CHECK_RESULT_HUB_REPLAY 0x6 /* enum */ 28192 #define SCHED_CREDIT_CHECK_RESULT_DMAC_H2C 0x7 /* enum */ 28193 #define SCHED_CREDIT_CHECK_RESULT_HUB_NET_B 0x8 /* enum */ 28194 #define SCHED_CREDIT_CHECK_RESULT_HUB_NET_REPLAY 0x9 /* enum */ 28195 #define SCHED_CREDIT_CHECK_RESULT_ADAPTER_C2H_C 0xa /* enum */ 28196 #define SCHED_CREDIT_CHECK_RESULT_A2_H2C_C 0xb /* enum */ 28197 #define SCHED_CREDIT_CHECK_RESULT_A3_SOFT_ADAPTOR_C 0xc /* enum */ 28198 #define SCHED_CREDIT_CHECK_RESULT_A4_DPU_WRITE_C 0xd /* enum */ 28199 #define SCHED_CREDIT_CHECK_RESULT_JRC_RRU 0xe /* enum */ 28200 #define SCHED_CREDIT_CHECK_RESULT_CDM_SINK 0xf /* enum */ 28201 #define SCHED_CREDIT_CHECK_RESULT_PCIE_SINK 0x10 /* enum */ 28202 #define SCHED_CREDIT_CHECK_RESULT_UPORT_SINK 0x11 /* enum */ 28203 #define SCHED_CREDIT_CHECK_RESULT_PSX_SINK 0x12 /* enum */ 28204 #define SCHED_CREDIT_CHECK_RESULT_A5_DPU_READ_C 0x13 /* enum */ 28205 #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_LBN 0 28206 #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_WIDTH 8 28207 /* The type of node that this result refers to. */ 28208 #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_OFST 1 28209 #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_LEN 1 28210 /* enum: Destination node */ 28211 #define SCHED_CREDIT_CHECK_RESULT_DEST 0x0 28212 /* enum: Source node */ 28213 #define SCHED_CREDIT_CHECK_RESULT_SOURCE 0x1 28214 /* enum: Destination node credit type 1 (new to the Keystone schedulers, see 28215 * SF-120268-TC) 28216 */ 28217 #define SCHED_CREDIT_CHECK_RESULT_DEST_CREDIT1 0x2 28218 #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_LBN 8 28219 #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_WIDTH 8 28220 /* Level of node in scheduler hierarchy (level 0 is the bottom of the 28221 * hierarchy, increasing towards the root node). 28222 */ 28223 #define SCHED_CREDIT_CHECK_RESULT_NODE_LEVEL_OFST 2 28224 #define SCHED_CREDIT_CHECK_RESULT_NODE_LEVEL_LEN 2 28225 #define SCHED_CREDIT_CHECK_RESULT_NODE_LEVEL_LBN 16 28226 #define SCHED_CREDIT_CHECK_RESULT_NODE_LEVEL_WIDTH 16 28227 /* Node index */ 28228 #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_OFST 4 28229 #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_LEN 4 28230 #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_LBN 32 28231 #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_WIDTH 32 28232 /* The number of credits the node is expected to have. */ 28233 #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_OFST 8 28234 #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_LEN 4 28235 #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_LBN 64 28236 #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_WIDTH 32 28237 /* The number of credits the node actually had. */ 28238 #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_OFST 12 28239 #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_LEN 4 28240 #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_LBN 96 28241 #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_WIDTH 32 28242 28243 28244 /***********************************/ 28245 /* MC_CMD_GET_CLOCKS_INFO 28246 * Get information about the device clocks 28247 */ 28248 #define MC_CMD_GET_CLOCKS_INFO 0x166 28249 #define MC_CMD_GET_CLOCKS_INFO_MSGSET 0x166 28250 #undef MC_CMD_0x166_PRIVILEGE_CTG 28251 28252 #define MC_CMD_0x166_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28253 28254 /* MC_CMD_GET_CLOCKS_INFO_IN msgrequest */ 28255 #define MC_CMD_GET_CLOCKS_INFO_IN_LEN 0 28256 28257 /* MC_CMD_GET_CLOCKS_INFO_OUT msgresponse */ 28258 #define MC_CMD_GET_CLOCKS_INFO_OUT_LENMIN 0 28259 #define MC_CMD_GET_CLOCKS_INFO_OUT_LENMAX 252 28260 #define MC_CMD_GET_CLOCKS_INFO_OUT_LENMAX_MCDI2 1008 28261 #define MC_CMD_GET_CLOCKS_INFO_OUT_LEN(num) (0+28*(num)) 28262 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_NUM(len) (((len)-0)/28) 28263 /* An array of CLOCK_INFO structures. */ 28264 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_OFST 0 28265 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_LEN 28 28266 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_MINNUM 0 28267 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_MAXNUM 9 28268 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_MAXNUM_MCDI2 36 28269 28270 28271 /***********************************/ 28272 /* MC_CMD_VNIC_ENCAP_RULE_ADD 28273 * Add a rule for detecting encapsulations in the VNIC stage. Currently this 28274 * only affects checksum validation in VNIC RX - on TX the send descriptor 28275 * explicitly specifies encapsulation. These rules are per-VNIC, i.e. only 28276 * apply to the current driver. If a rule matches, then the packet is 28277 * considered to have the corresponding encapsulation type, and the inner 28278 * packet is parsed. It is up to the driver to ensure that overlapping rules 28279 * are not inserted. (If a packet would match multiple rules, a random one of 28280 * them will be used.) A rule with the exact same match criteria may not be 28281 * inserted twice (EALREADY). Only a limited number MATCH_FLAGS values are 28282 * supported, use MC_CMD_GET_PARSER_DISP_INFO with OP 28283 * OP_GET_SUPPORTED_VNIC_ENCAP_RULE_MATCHES to get a list of supported 28284 * combinations. Each driver may only have a limited set of active rules - 28285 * returns ENOSPC if the caller's table is full. 28286 */ 28287 #define MC_CMD_VNIC_ENCAP_RULE_ADD 0x16d 28288 #define MC_CMD_VNIC_ENCAP_RULE_ADD_MSGSET 0x16d 28289 #undef MC_CMD_0x16d_PRIVILEGE_CTG 28290 28291 #define MC_CMD_0x16d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28292 28293 /* MC_CMD_VNIC_ENCAP_RULE_ADD_IN msgrequest */ 28294 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_LEN 36 28295 /* Set to MAE_MPORT_SELECTOR_ASSIGNED. In the future this may be relaxed. */ 28296 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MPORT_SELECTOR_OFST 0 28297 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MPORT_SELECTOR_LEN 4 28298 /* Any non-zero bits other than the ones named below or an unsupported 28299 * combination will cause the NIC to return EOPNOTSUPP. In the future more 28300 * flags may be added. 28301 */ 28302 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_FLAGS_OFST 4 28303 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_FLAGS_LEN 4 28304 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_ETHER_TYPE_OFST 4 28305 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_ETHER_TYPE_LBN 0 28306 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_ETHER_TYPE_WIDTH 1 28307 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_OUTER_VLAN_OFST 4 28308 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_OUTER_VLAN_LBN 1 28309 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_OUTER_VLAN_WIDTH 1 28310 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_IP_OFST 4 28311 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_IP_LBN 2 28312 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_IP_WIDTH 1 28313 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_IP_PROTO_OFST 4 28314 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_IP_PROTO_LBN 3 28315 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_IP_PROTO_WIDTH 1 28316 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_PORT_OFST 4 28317 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_PORT_LBN 4 28318 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_PORT_WIDTH 1 28319 /* Only if MATCH_ETHER_TYPE is set. Ethertype value as bytes in network order. 28320 * Currently only IPv4 (0x0800) and IPv6 (0x86DD) ethertypes may be used. 28321 */ 28322 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ETHER_TYPE_OFST 8 28323 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ETHER_TYPE_LEN 2 28324 /* Only if MATCH_OUTER_VLAN is set. VID value as bytes in network order. 28325 * (Deprecated) 28326 */ 28327 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_LBN 80 28328 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_WIDTH 12 28329 /* Only if MATCH_OUTER_VLAN is set. Aligned wrapper for OUTER_VLAN_VID. */ 28330 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_WORD_OFST 10 28331 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_WORD_LEN 2 28332 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_VID_OFST 10 28333 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_VID_LBN 0 28334 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_VID_WIDTH 12 28335 /* Only if MATCH_DST_IP is set. IP address as bytes in network order. In the 28336 * case of IPv4, the IP should be in the first 4 bytes and all other bytes 28337 * should be zero. 28338 */ 28339 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_DST_IP_OFST 12 28340 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_DST_IP_LEN 16 28341 /* Only if MATCH_IP_PROTO is set. Currently only UDP proto (17) may be used. */ 28342 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_IP_PROTO_OFST 28 28343 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_IP_PROTO_LEN 1 28344 /* Actions that should be applied to packets match the rule. */ 28345 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ACTION_FLAGS_OFST 29 28346 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ACTION_FLAGS_LEN 1 28347 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STRIP_OUTER_VLAN_OFST 29 28348 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STRIP_OUTER_VLAN_LBN 0 28349 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STRIP_OUTER_VLAN_WIDTH 1 28350 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_RSS_ON_OUTER_OFST 29 28351 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_RSS_ON_OUTER_LBN 1 28352 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_RSS_ON_OUTER_WIDTH 1 28353 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STEER_ON_OUTER_OFST 29 28354 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STEER_ON_OUTER_LBN 2 28355 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STEER_ON_OUTER_WIDTH 1 28356 /* Only if MATCH_DST_PORT is set. Port number as bytes in network order. */ 28357 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_DST_PORT_OFST 30 28358 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_DST_PORT_LEN 2 28359 /* Resulting encapsulation type, as per MAE_MCDI_ENCAP_TYPE enumeration. */ 28360 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ENCAP_TYPE_OFST 32 28361 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ENCAP_TYPE_LEN 4 28362 28363 /* MC_CMD_VNIC_ENCAP_RULE_ADD_OUT msgresponse */ 28364 #define MC_CMD_VNIC_ENCAP_RULE_ADD_OUT_LEN 4 28365 /* Handle to inserted rule. Used for removing the rule. */ 28366 #define MC_CMD_VNIC_ENCAP_RULE_ADD_OUT_HANDLE_OFST 0 28367 #define MC_CMD_VNIC_ENCAP_RULE_ADD_OUT_HANDLE_LEN 4 28368 28369 28370 /***********************************/ 28371 /* MC_CMD_VNIC_ENCAP_RULE_REMOVE 28372 * Remove a VNIC encapsulation rule. Packets which would have previously 28373 * matched the rule will then be considered as unencapsulated. Returns EALREADY 28374 * if the input HANDLE doesn't correspond to an existing rule. 28375 */ 28376 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE 0x16e 28377 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE_MSGSET 0x16e 28378 #undef MC_CMD_0x16e_PRIVILEGE_CTG 28379 28380 #define MC_CMD_0x16e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28381 28382 /* MC_CMD_VNIC_ENCAP_RULE_REMOVE_IN msgrequest */ 28383 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE_IN_LEN 4 28384 /* Handle which was returned by MC_CMD_VNIC_ENCAP_RULE_ADD. */ 28385 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE_IN_HANDLE_OFST 0 28386 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE_IN_HANDLE_LEN 4 28387 28388 /* MC_CMD_VNIC_ENCAP_RULE_REMOVE_OUT msgresponse */ 28389 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE_OUT_LEN 0 28390 28391 /* UUID structuredef: An RFC4122 standard UUID. The values here are stored in 28392 * the endianness specified by the RFC; users should ignore the broken-out 28393 * fields and instead do straight memory copies to ensure correct ordering. 28394 */ 28395 #define UUID_LEN 16 28396 #define UUID_TIME_LOW_OFST 0 28397 #define UUID_TIME_LOW_LEN 4 28398 #define UUID_TIME_LOW_LBN 0 28399 #define UUID_TIME_LOW_WIDTH 32 28400 #define UUID_TIME_MID_OFST 4 28401 #define UUID_TIME_MID_LEN 2 28402 #define UUID_TIME_MID_LBN 32 28403 #define UUID_TIME_MID_WIDTH 16 28404 #define UUID_TIME_HI_LBN 52 28405 #define UUID_TIME_HI_WIDTH 12 28406 #define UUID_VERSION_LBN 48 28407 #define UUID_VERSION_WIDTH 4 28408 #define UUID_RESERVED_LBN 64 28409 #define UUID_RESERVED_WIDTH 2 28410 #define UUID_CLK_SEQ_LBN 66 28411 #define UUID_CLK_SEQ_WIDTH 14 28412 #define UUID_NODE_OFST 10 28413 #define UUID_NODE_LEN 6 28414 #define UUID_NODE_LBN 80 28415 #define UUID_NODE_WIDTH 48 28416 28417 28418 /***********************************/ 28419 /* MC_CMD_PLUGIN_ALLOC 28420 * Create a handle to a datapath plugin's extension. This involves finding a 28421 * currently-loaded plugin offering the given functionality (as identified by 28422 * the UUID) and allocating a handle to track the usage of it. Plugin 28423 * functionality is identified by 'extension' rather than any other identifier 28424 * so that a single plugin bitfile may offer more than one piece of independent 28425 * functionality. If two bitfiles are loaded which both offer the same 28426 * extension, then the metadata is interrogated further to determine which is 28427 * the newest and that is the one opened. See SF-123625-SW for architectural 28428 * detail on datapath plugins. 28429 */ 28430 #define MC_CMD_PLUGIN_ALLOC 0x1ad 28431 #define MC_CMD_PLUGIN_ALLOC_MSGSET 0x1ad 28432 #undef MC_CMD_0x1ad_PRIVILEGE_CTG 28433 28434 #define MC_CMD_0x1ad_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28435 28436 /* MC_CMD_PLUGIN_ALLOC_IN msgrequest */ 28437 #define MC_CMD_PLUGIN_ALLOC_IN_LEN 24 28438 /* The functionality requested of the plugin, as a UUID structure */ 28439 #define MC_CMD_PLUGIN_ALLOC_IN_UUID_OFST 0 28440 #define MC_CMD_PLUGIN_ALLOC_IN_UUID_LEN 16 28441 /* Additional options for opening the handle */ 28442 #define MC_CMD_PLUGIN_ALLOC_IN_FLAGS_OFST 16 28443 #define MC_CMD_PLUGIN_ALLOC_IN_FLAGS_LEN 4 28444 #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_INFO_ONLY_OFST 16 28445 #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_INFO_ONLY_LBN 0 28446 #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_INFO_ONLY_WIDTH 1 28447 #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_ALLOW_DISABLED_OFST 16 28448 #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_ALLOW_DISABLED_LBN 1 28449 #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_ALLOW_DISABLED_WIDTH 1 28450 /* Load the extension only if it is in the specified administrative group. 28451 * Specify ANY to load the extension wherever it is found (if there are 28452 * multiple choices then the extension with the highest MINOR_VER/PATCH_VER 28453 * will be loaded). See MC_CMD_PLUGIN_GET_META_GLOBAL for a description of 28454 * administrative groups. 28455 */ 28456 #define MC_CMD_PLUGIN_ALLOC_IN_ADMIN_GROUP_OFST 20 28457 #define MC_CMD_PLUGIN_ALLOC_IN_ADMIN_GROUP_LEN 2 28458 /* enum: Load the extension from any ADMIN_GROUP. */ 28459 #define MC_CMD_PLUGIN_ALLOC_IN_ANY 0xffff 28460 /* Reserved */ 28461 #define MC_CMD_PLUGIN_ALLOC_IN_RESERVED_OFST 22 28462 #define MC_CMD_PLUGIN_ALLOC_IN_RESERVED_LEN 2 28463 28464 /* MC_CMD_PLUGIN_ALLOC_OUT msgresponse */ 28465 #define MC_CMD_PLUGIN_ALLOC_OUT_LEN 4 28466 /* Unique identifier of this usage */ 28467 #define MC_CMD_PLUGIN_ALLOC_OUT_HANDLE_OFST 0 28468 #define MC_CMD_PLUGIN_ALLOC_OUT_HANDLE_LEN 4 28469 28470 28471 /***********************************/ 28472 /* MC_CMD_PLUGIN_FREE 28473 * Delete a handle to a plugin's extension. 28474 */ 28475 #define MC_CMD_PLUGIN_FREE 0x1ae 28476 #define MC_CMD_PLUGIN_FREE_MSGSET 0x1ae 28477 #undef MC_CMD_0x1ae_PRIVILEGE_CTG 28478 28479 #define MC_CMD_0x1ae_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28480 28481 /* MC_CMD_PLUGIN_FREE_IN msgrequest */ 28482 #define MC_CMD_PLUGIN_FREE_IN_LEN 4 28483 /* Handle returned by MC_CMD_PLUGIN_ALLOC_OUT */ 28484 #define MC_CMD_PLUGIN_FREE_IN_HANDLE_OFST 0 28485 #define MC_CMD_PLUGIN_FREE_IN_HANDLE_LEN 4 28486 28487 /* MC_CMD_PLUGIN_FREE_OUT msgresponse */ 28488 #define MC_CMD_PLUGIN_FREE_OUT_LEN 0 28489 28490 28491 /***********************************/ 28492 /* MC_CMD_PLUGIN_GET_META_GLOBAL 28493 * Returns the global metadata applying to the whole plugin extension. See the 28494 * other metadata calls for subtypes of data. 28495 */ 28496 #define MC_CMD_PLUGIN_GET_META_GLOBAL 0x1af 28497 #define MC_CMD_PLUGIN_GET_META_GLOBAL_MSGSET 0x1af 28498 #undef MC_CMD_0x1af_PRIVILEGE_CTG 28499 28500 #define MC_CMD_0x1af_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28501 28502 /* MC_CMD_PLUGIN_GET_META_GLOBAL_IN msgrequest */ 28503 #define MC_CMD_PLUGIN_GET_META_GLOBAL_IN_LEN 4 28504 /* Handle returned by MC_CMD_PLUGIN_ALLOC_OUT */ 28505 #define MC_CMD_PLUGIN_GET_META_GLOBAL_IN_HANDLE_OFST 0 28506 #define MC_CMD_PLUGIN_GET_META_GLOBAL_IN_HANDLE_LEN 4 28507 28508 /* MC_CMD_PLUGIN_GET_META_GLOBAL_OUT msgresponse */ 28509 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_LEN 36 28510 /* Unique identifier of this plugin extension. This is identical to the value 28511 * which was requested when the handle was allocated. 28512 */ 28513 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_UUID_OFST 0 28514 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_UUID_LEN 16 28515 /* semver sub-version of this plugin extension */ 28516 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MINOR_VER_OFST 16 28517 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MINOR_VER_LEN 2 28518 /* semver micro-version of this plugin extension */ 28519 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_PATCH_VER_OFST 18 28520 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_PATCH_VER_LEN 2 28521 /* Number of different messages which can be sent to this extension */ 28522 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_NUM_MSGS_OFST 20 28523 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_NUM_MSGS_LEN 4 28524 /* Byte offset within the VI window of the plugin's mapped CSR window. */ 28525 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_OFFSET_OFST 24 28526 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_OFFSET_LEN 2 28527 /* Number of bytes mapped through to the plugin's CSRs. 0 if that feature was 28528 * not requested by the plugin (in which case MAPPED_CSR_OFFSET and 28529 * MAPPED_CSR_FLAGS are ignored). 28530 */ 28531 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_SIZE_OFST 26 28532 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_SIZE_LEN 2 28533 /* Flags indicating how to perform the CSR window mapping. */ 28534 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAGS_OFST 28 28535 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAGS_LEN 4 28536 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_READ_OFST 28 28537 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_READ_LBN 0 28538 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_READ_WIDTH 1 28539 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_WRITE_OFST 28 28540 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_WRITE_LBN 1 28541 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_WRITE_WIDTH 1 28542 /* Identifier of the set of extensions which all change state together. 28543 * Extensions having the same ADMIN_GROUP will always load and unload at the 28544 * same time. ADMIN_GROUP values themselves are arbitrary (but they contain a 28545 * generation number as an implementation detail to ensure that they're not 28546 * reused rapidly). 28547 */ 28548 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_ADMIN_GROUP_OFST 32 28549 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_ADMIN_GROUP_LEN 1 28550 /* Bitshift in MC_CMD_DEVEL_CLIENT_PRIVILEGE_MODIFY's MASK parameters 28551 * corresponding to this extension, i.e. set the bit 1<<PRIVILEGE_BIT to permit 28552 * access to this extension. 28553 */ 28554 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_PRIVILEGE_BIT_OFST 33 28555 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_PRIVILEGE_BIT_LEN 1 28556 /* Reserved */ 28557 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_RESERVED_OFST 34 28558 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_RESERVED_LEN 2 28559 28560 28561 /***********************************/ 28562 /* MC_CMD_PLUGIN_GET_META_PUBLISHER 28563 * Returns metadata supplied by the plugin author which describes this 28564 * extension in a human-readable way. Contrast with 28565 * MC_CMD_PLUGIN_GET_META_GLOBAL, which returns information needed for software 28566 * to operate. 28567 */ 28568 #define MC_CMD_PLUGIN_GET_META_PUBLISHER 0x1b0 28569 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_MSGSET 0x1b0 28570 #undef MC_CMD_0x1b0_PRIVILEGE_CTG 28571 28572 #define MC_CMD_0x1b0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28573 28574 /* MC_CMD_PLUGIN_GET_META_PUBLISHER_IN msgrequest */ 28575 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_LEN 12 28576 /* Handle returned by MC_CMD_PLUGIN_ALLOC_OUT */ 28577 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_HANDLE_OFST 0 28578 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_HANDLE_LEN 4 28579 /* Category of data to return */ 28580 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_SUBTYPE_OFST 4 28581 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_SUBTYPE_LEN 4 28582 /* enum: Top-level information about the extension. The returned data is an 28583 * array of key/value pairs using the keys in RFC5013 (Dublin Core) to describe 28584 * the extension. The data is a back-to-back list of zero-terminated strings; 28585 * the even-numbered fields (0,2,4,...) are keys and their following odd- 28586 * numbered fields are the corresponding values. Both keys and values are 28587 * nominally UTF-8. Per RFC5013, the same key may be repeated any number of 28588 * times. Note that all information (including the key/value structure itself 28589 * and the UTF-8 encoding) may have been provided by the plugin author, so 28590 * callers must be cautious about parsing it. Callers should parse only the 28591 * top-level structure to separate out the keys and values; the contents of the 28592 * values is not expected to be machine-readable. 28593 */ 28594 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_EXTENSION_KVS 0x0 28595 /* Byte position of the data to be returned within the full data block of the 28596 * given SUBTYPE. 28597 */ 28598 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_OFFSET_OFST 8 28599 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_OFFSET_LEN 4 28600 28601 /* MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT msgresponse */ 28602 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_LENMIN 4 28603 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_LENMAX 252 28604 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_LENMAX_MCDI2 1020 28605 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_LEN(num) (4+1*(num)) 28606 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_NUM(len) (((len)-4)/1) 28607 /* Full length of the data block of the requested SUBTYPE, in bytes. */ 28608 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_TOTAL_SIZE_OFST 0 28609 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_TOTAL_SIZE_LEN 4 28610 /* The information requested by SUBTYPE. */ 28611 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_OFST 4 28612 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_LEN 1 28613 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_MINNUM 0 28614 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_MAXNUM 248 28615 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_MAXNUM_MCDI2 1016 28616 28617 28618 /***********************************/ 28619 /* MC_CMD_PLUGIN_GET_META_MSG 28620 * Returns the simple metadata for a specific plugin request message. This 28621 * supplies information necessary for the host to know how to build an 28622 * MC_CMD_PLUGIN_REQ request. 28623 */ 28624 #define MC_CMD_PLUGIN_GET_META_MSG 0x1b1 28625 #define MC_CMD_PLUGIN_GET_META_MSG_MSGSET 0x1b1 28626 #undef MC_CMD_0x1b1_PRIVILEGE_CTG 28627 28628 #define MC_CMD_0x1b1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28629 28630 /* MC_CMD_PLUGIN_GET_META_MSG_IN msgrequest */ 28631 #define MC_CMD_PLUGIN_GET_META_MSG_IN_LEN 8 28632 /* Handle returned by MC_CMD_PLUGIN_ALLOC_OUT */ 28633 #define MC_CMD_PLUGIN_GET_META_MSG_IN_HANDLE_OFST 0 28634 #define MC_CMD_PLUGIN_GET_META_MSG_IN_HANDLE_LEN 4 28635 /* Unique message ID to obtain */ 28636 #define MC_CMD_PLUGIN_GET_META_MSG_IN_ID_OFST 4 28637 #define MC_CMD_PLUGIN_GET_META_MSG_IN_ID_LEN 4 28638 28639 /* MC_CMD_PLUGIN_GET_META_MSG_OUT msgresponse */ 28640 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_LEN 44 28641 /* Unique message ID. This is the same value as the input parameter; it exists 28642 * to allow future MCDI extensions which enumerate all messages. 28643 */ 28644 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_ID_OFST 0 28645 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_ID_LEN 4 28646 /* Packed index number of this message, assigned by the MC to give each message 28647 * a unique ID in an array to allow for more efficient storage/management. 28648 */ 28649 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_INDEX_OFST 4 28650 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_INDEX_LEN 4 28651 /* Short human-readable codename for this message. This is conventionally 28652 * formatted as a C identifier in the basic ASCII character set with any spare 28653 * bytes at the end set to 0, however this convention is not enforced by the MC 28654 * so consumers must check for all potential malformations before using it for 28655 * a trusted purpose. 28656 */ 28657 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_NAME_OFST 8 28658 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_NAME_LEN 32 28659 /* Number of bytes of data which must be passed from the host kernel to the MC 28660 * for this message's payload, and which are passed back again in the response. 28661 * The MC's plugin metadata loader will have validated that the number of bytes 28662 * specified here will fit in to MC_CMD_PLUGIN_REQ_IN_DATA in a single MCDI 28663 * message. 28664 */ 28665 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_DATA_SIZE_OFST 40 28666 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_DATA_SIZE_LEN 4 28667 28668 /* PLUGIN_EXTENSION structuredef: Used within MC_CMD_PLUGIN_GET_ALL to describe 28669 * an individual extension. 28670 */ 28671 #define PLUGIN_EXTENSION_LEN 20 28672 #define PLUGIN_EXTENSION_UUID_OFST 0 28673 #define PLUGIN_EXTENSION_UUID_LEN 16 28674 #define PLUGIN_EXTENSION_UUID_LBN 0 28675 #define PLUGIN_EXTENSION_UUID_WIDTH 128 28676 #define PLUGIN_EXTENSION_ADMIN_GROUP_OFST 16 28677 #define PLUGIN_EXTENSION_ADMIN_GROUP_LEN 1 28678 #define PLUGIN_EXTENSION_ADMIN_GROUP_LBN 128 28679 #define PLUGIN_EXTENSION_ADMIN_GROUP_WIDTH 8 28680 #define PLUGIN_EXTENSION_FLAG_ENABLED_LBN 136 28681 #define PLUGIN_EXTENSION_FLAG_ENABLED_WIDTH 1 28682 #define PLUGIN_EXTENSION_RESERVED_LBN 137 28683 #define PLUGIN_EXTENSION_RESERVED_WIDTH 23 28684 28685 28686 /***********************************/ 28687 /* MC_CMD_PLUGIN_GET_ALL 28688 * Returns a list of all plugin extensions currently loaded and available. The 28689 * UUIDs returned can be passed to MC_CMD_PLUGIN_ALLOC in order to obtain more 28690 * detailed metadata via the MC_CMD_PLUGIN_GET_META_* family of requests. The 28691 * ADMIN_GROUP field collects how extensions are grouped in to units which are 28692 * loaded/unloaded together; extensions with the same value are in the same 28693 * group. 28694 */ 28695 #define MC_CMD_PLUGIN_GET_ALL 0x1b2 28696 #define MC_CMD_PLUGIN_GET_ALL_MSGSET 0x1b2 28697 #undef MC_CMD_0x1b2_PRIVILEGE_CTG 28698 28699 #define MC_CMD_0x1b2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28700 28701 /* MC_CMD_PLUGIN_GET_ALL_IN msgrequest */ 28702 #define MC_CMD_PLUGIN_GET_ALL_IN_LEN 4 28703 /* Additional options for querying. Note that if neither FLAG_INCLUDE_ENABLED 28704 * nor FLAG_INCLUDE_DISABLED are specified then the result set will be empty. 28705 */ 28706 #define MC_CMD_PLUGIN_GET_ALL_IN_FLAGS_OFST 0 28707 #define MC_CMD_PLUGIN_GET_ALL_IN_FLAGS_LEN 4 28708 #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_ENABLED_OFST 0 28709 #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_ENABLED_LBN 0 28710 #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_ENABLED_WIDTH 1 28711 #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_DISABLED_OFST 0 28712 #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_DISABLED_LBN 1 28713 #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_DISABLED_WIDTH 1 28714 28715 /* MC_CMD_PLUGIN_GET_ALL_OUT msgresponse */ 28716 #define MC_CMD_PLUGIN_GET_ALL_OUT_LENMIN 0 28717 #define MC_CMD_PLUGIN_GET_ALL_OUT_LENMAX 240 28718 #define MC_CMD_PLUGIN_GET_ALL_OUT_LENMAX_MCDI2 1020 28719 #define MC_CMD_PLUGIN_GET_ALL_OUT_LEN(num) (0+20*(num)) 28720 #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_NUM(len) (((len)-0)/20) 28721 /* The list of available plugin extensions, as an array of PLUGIN_EXTENSION 28722 * structs. 28723 */ 28724 #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_OFST 0 28725 #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_LEN 20 28726 #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_MINNUM 0 28727 #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_MAXNUM 12 28728 #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_MAXNUM_MCDI2 51 28729 28730 28731 /***********************************/ 28732 /* MC_CMD_PLUGIN_REQ 28733 * Send a command to a plugin. A plugin may define an arbitrary number of 28734 * 'messages' which it allows applications on the host system to send, each 28735 * identified by a 32-bit ID. 28736 */ 28737 #define MC_CMD_PLUGIN_REQ 0x1b3 28738 #define MC_CMD_PLUGIN_REQ_MSGSET 0x1b3 28739 #undef MC_CMD_0x1b3_PRIVILEGE_CTG 28740 28741 #define MC_CMD_0x1b3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28742 28743 /* MC_CMD_PLUGIN_REQ_IN msgrequest */ 28744 #define MC_CMD_PLUGIN_REQ_IN_LENMIN 8 28745 #define MC_CMD_PLUGIN_REQ_IN_LENMAX 252 28746 #define MC_CMD_PLUGIN_REQ_IN_LENMAX_MCDI2 1020 28747 #define MC_CMD_PLUGIN_REQ_IN_LEN(num) (8+1*(num)) 28748 #define MC_CMD_PLUGIN_REQ_IN_DATA_NUM(len) (((len)-8)/1) 28749 /* Handle returned by MC_CMD_PLUGIN_ALLOC_OUT */ 28750 #define MC_CMD_PLUGIN_REQ_IN_HANDLE_OFST 0 28751 #define MC_CMD_PLUGIN_REQ_IN_HANDLE_LEN 4 28752 /* Message ID defined by the plugin author */ 28753 #define MC_CMD_PLUGIN_REQ_IN_ID_OFST 4 28754 #define MC_CMD_PLUGIN_REQ_IN_ID_LEN 4 28755 /* Data blob being the parameter to the message. This must be of the length 28756 * specified by MC_CMD_PLUGIN_GET_META_MSG_IN_MCDI_PARAM_SIZE. 28757 */ 28758 #define MC_CMD_PLUGIN_REQ_IN_DATA_OFST 8 28759 #define MC_CMD_PLUGIN_REQ_IN_DATA_LEN 1 28760 #define MC_CMD_PLUGIN_REQ_IN_DATA_MINNUM 0 28761 #define MC_CMD_PLUGIN_REQ_IN_DATA_MAXNUM 244 28762 #define MC_CMD_PLUGIN_REQ_IN_DATA_MAXNUM_MCDI2 1012 28763 28764 /* MC_CMD_PLUGIN_REQ_OUT msgresponse */ 28765 #define MC_CMD_PLUGIN_REQ_OUT_LENMIN 0 28766 #define MC_CMD_PLUGIN_REQ_OUT_LENMAX 252 28767 #define MC_CMD_PLUGIN_REQ_OUT_LENMAX_MCDI2 1020 28768 #define MC_CMD_PLUGIN_REQ_OUT_LEN(num) (0+1*(num)) 28769 #define MC_CMD_PLUGIN_REQ_OUT_DATA_NUM(len) (((len)-0)/1) 28770 /* The input data, as transformed and/or updated by the plugin's eBPF. Will be 28771 * the same size as the input DATA parameter. 28772 */ 28773 #define MC_CMD_PLUGIN_REQ_OUT_DATA_OFST 0 28774 #define MC_CMD_PLUGIN_REQ_OUT_DATA_LEN 1 28775 #define MC_CMD_PLUGIN_REQ_OUT_DATA_MINNUM 0 28776 #define MC_CMD_PLUGIN_REQ_OUT_DATA_MAXNUM 252 28777 #define MC_CMD_PLUGIN_REQ_OUT_DATA_MAXNUM_MCDI2 1020 28778 28779 /* DESC_ADDR_REGION structuredef: Describes a contiguous region of DESC_ADDR 28780 * space that maps to a contiguous region of TRGT_ADDR space. Addresses 28781 * DESC_ADDR in the range [DESC_ADDR_BASE:DESC_ADDR_BASE + 1 << 28782 * WINDOW_SIZE_LOG2) map to TRGT_ADDR = DESC_ADDR - DESC_ADDR_BASE + 28783 * TRGT_ADDR_BASE. 28784 */ 28785 #define DESC_ADDR_REGION_LEN 32 28786 /* The start of the region in DESC_ADDR space. */ 28787 #define DESC_ADDR_REGION_DESC_ADDR_BASE_OFST 0 28788 #define DESC_ADDR_REGION_DESC_ADDR_BASE_LEN 8 28789 #define DESC_ADDR_REGION_DESC_ADDR_BASE_LO_OFST 0 28790 #define DESC_ADDR_REGION_DESC_ADDR_BASE_LO_LEN 4 28791 #define DESC_ADDR_REGION_DESC_ADDR_BASE_LO_LBN 0 28792 #define DESC_ADDR_REGION_DESC_ADDR_BASE_LO_WIDTH 32 28793 #define DESC_ADDR_REGION_DESC_ADDR_BASE_HI_OFST 4 28794 #define DESC_ADDR_REGION_DESC_ADDR_BASE_HI_LEN 4 28795 #define DESC_ADDR_REGION_DESC_ADDR_BASE_HI_LBN 32 28796 #define DESC_ADDR_REGION_DESC_ADDR_BASE_HI_WIDTH 32 28797 #define DESC_ADDR_REGION_DESC_ADDR_BASE_LBN 0 28798 #define DESC_ADDR_REGION_DESC_ADDR_BASE_WIDTH 64 28799 /* The start of the region in TRGT_ADDR space. Drivers can set this via 28800 * MC_CMD_SET_DESC_ADDR_REGIONS. 28801 */ 28802 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_OFST 8 28803 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LEN 8 28804 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LO_OFST 8 28805 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LO_LEN 4 28806 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LO_LBN 64 28807 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LO_WIDTH 32 28808 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_HI_OFST 12 28809 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_HI_LEN 4 28810 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_HI_LBN 96 28811 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_HI_WIDTH 32 28812 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LBN 64 28813 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_WIDTH 64 28814 /* The size of the region. */ 28815 #define DESC_ADDR_REGION_WINDOW_SIZE_LOG2_OFST 16 28816 #define DESC_ADDR_REGION_WINDOW_SIZE_LOG2_LEN 4 28817 #define DESC_ADDR_REGION_WINDOW_SIZE_LOG2_LBN 128 28818 #define DESC_ADDR_REGION_WINDOW_SIZE_LOG2_WIDTH 32 28819 /* The alignment restriction on TRGT_ADDR. TRGT_ADDR values set by the driver 28820 * must be a multiple of 1 << TRGT_ADDR_ALIGN_LOG2. 28821 */ 28822 #define DESC_ADDR_REGION_TRGT_ADDR_ALIGN_LOG2_OFST 20 28823 #define DESC_ADDR_REGION_TRGT_ADDR_ALIGN_LOG2_LEN 4 28824 #define DESC_ADDR_REGION_TRGT_ADDR_ALIGN_LOG2_LBN 160 28825 #define DESC_ADDR_REGION_TRGT_ADDR_ALIGN_LOG2_WIDTH 32 28826 #define DESC_ADDR_REGION_RSVD_OFST 24 28827 #define DESC_ADDR_REGION_RSVD_LEN 8 28828 #define DESC_ADDR_REGION_RSVD_LO_OFST 24 28829 #define DESC_ADDR_REGION_RSVD_LO_LEN 4 28830 #define DESC_ADDR_REGION_RSVD_LO_LBN 192 28831 #define DESC_ADDR_REGION_RSVD_LO_WIDTH 32 28832 #define DESC_ADDR_REGION_RSVD_HI_OFST 28 28833 #define DESC_ADDR_REGION_RSVD_HI_LEN 4 28834 #define DESC_ADDR_REGION_RSVD_HI_LBN 224 28835 #define DESC_ADDR_REGION_RSVD_HI_WIDTH 32 28836 #define DESC_ADDR_REGION_RSVD_LBN 192 28837 #define DESC_ADDR_REGION_RSVD_WIDTH 64 28838 28839 28840 /***********************************/ 28841 /* MC_CMD_GET_DESC_ADDR_INFO 28842 * Returns a description of the mapping from DESC_ADDR to TRGT_ADDR for the calling function's address space. 28843 */ 28844 #define MC_CMD_GET_DESC_ADDR_INFO 0x1b7 28845 #define MC_CMD_GET_DESC_ADDR_INFO_MSGSET 0x1b7 28846 #undef MC_CMD_0x1b7_PRIVILEGE_CTG 28847 28848 #define MC_CMD_0x1b7_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28849 28850 /* MC_CMD_GET_DESC_ADDR_INFO_IN msgrequest */ 28851 #define MC_CMD_GET_DESC_ADDR_INFO_IN_LEN 0 28852 28853 /* MC_CMD_GET_DESC_ADDR_INFO_OUT msgresponse */ 28854 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_LEN 4 28855 /* The type of mapping; see SF-nnnnnn-xx (EF100 driver writer's guide, once 28856 * written) for details of each type. 28857 */ 28858 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_TYPE_OFST 0 28859 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_TYPE_LEN 4 28860 /* enum: TRGT_ADDR = DESC_ADDR */ 28861 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_FLAT 0x0 28862 /* enum: DESC_ADDR has one or more regions that map into TRGT_ADDR. The base 28863 * TRGT_ADDR for each region is programmable via MCDI. 28864 */ 28865 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_REGIONED 0x1 28866 28867 28868 /***********************************/ 28869 /* MC_CMD_GET_DESC_ADDR_REGIONS 28870 * 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. 28871 */ 28872 #define MC_CMD_GET_DESC_ADDR_REGIONS 0x1b8 28873 #define MC_CMD_GET_DESC_ADDR_REGIONS_MSGSET 0x1b8 28874 #undef MC_CMD_0x1b8_PRIVILEGE_CTG 28875 28876 #define MC_CMD_0x1b8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28877 28878 /* MC_CMD_GET_DESC_ADDR_REGIONS_IN msgrequest */ 28879 #define MC_CMD_GET_DESC_ADDR_REGIONS_IN_LEN 0 28880 28881 /* MC_CMD_GET_DESC_ADDR_REGIONS_OUT msgresponse */ 28882 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_LENMIN 32 28883 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_LENMAX 224 28884 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_LENMAX_MCDI2 992 28885 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_LEN(num) (0+32*(num)) 28886 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_NUM(len) (((len)-0)/32) 28887 /* An array of DESC_ADDR_REGION strutures. The number of entries in the array 28888 * indicates the number of available regions. 28889 */ 28890 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_OFST 0 28891 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_LEN 32 28892 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_MINNUM 1 28893 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_MAXNUM 7 28894 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_MAXNUM_MCDI2 31 28895 28896 28897 /***********************************/ 28898 /* MC_CMD_SET_DESC_ADDR_REGIONS 28899 * 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. 28900 */ 28901 #define MC_CMD_SET_DESC_ADDR_REGIONS 0x1b9 28902 #define MC_CMD_SET_DESC_ADDR_REGIONS_MSGSET 0x1b9 28903 #undef MC_CMD_0x1b9_PRIVILEGE_CTG 28904 28905 #define MC_CMD_0x1b9_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28906 28907 /* MC_CMD_SET_DESC_ADDR_REGIONS_IN msgrequest */ 28908 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_LENMIN 16 28909 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_LENMAX 248 28910 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_LENMAX_MCDI2 1016 28911 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_LEN(num) (8+8*(num)) 28912 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_NUM(len) (((len)-8)/8) 28913 /* A bitmask indicating which regions should have their base TRGT_ADDR updated. 28914 * To update the base TRGR_ADDR for a DESC_ADDR region, the corresponding bit 28915 * should be set to 1. 28916 */ 28917 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_SET_REGION_MASK_OFST 0 28918 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_SET_REGION_MASK_LEN 4 28919 /* Reserved field; must be set to zero. */ 28920 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_RSVD_OFST 4 28921 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_RSVD_LEN 4 28922 /* An array of values used to updated the base TRGT_ADDR for DESC_ADDR regions. 28923 * Array indices corresponding to region numbers (i.e. the array is sparse, and 28924 * included entries for regions even if the corresponding SET_REGION_MASK bit 28925 * is zero). 28926 */ 28927 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_OFST 8 28928 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LEN 8 28929 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_OFST 8 28930 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_LEN 4 28931 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_LBN 64 28932 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_WIDTH 32 28933 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_OFST 12 28934 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_LEN 4 28935 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_LBN 96 28936 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_WIDTH 32 28937 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_MINNUM 1 28938 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_MAXNUM 30 28939 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_MAXNUM_MCDI2 126 28940 28941 /* MC_CMD_SET_DESC_ADDR_REGIONS_OUT msgresponse */ 28942 #define MC_CMD_SET_DESC_ADDR_REGIONS_OUT_LEN 0 28943 28944 28945 /***********************************/ 28946 /* MC_CMD_CLIENT_CMD 28947 * Execute an arbitrary MCDI command on behalf of a different client. The 28948 * consequences of the command (e.g. ownership of any resources created) apply 28949 * to the indicated client rather than the function client which actually sent 28950 * this command. All inherent permission checks are also performed on the 28951 * indicated client. The given client must be a descendant of the requestor. 28952 * The command to be proxied follows immediately afterward in the host buffer 28953 * (or on the UART). Chaining multiple MC_CMD_CLIENT_CMD is unnecessary and not 28954 * supported. New dynamic clients may be created with MC_CMD_CLIENT_ALLOC. 28955 */ 28956 #define MC_CMD_CLIENT_CMD 0x1ba 28957 #define MC_CMD_CLIENT_CMD_MSGSET 0x1ba 28958 #undef MC_CMD_0x1ba_PRIVILEGE_CTG 28959 28960 #define MC_CMD_0x1ba_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28961 28962 /* MC_CMD_CLIENT_CMD_IN msgrequest */ 28963 #define MC_CMD_CLIENT_CMD_IN_LEN 4 28964 /* The client as which to execute the following command. */ 28965 #define MC_CMD_CLIENT_CMD_IN_CLIENT_ID_OFST 0 28966 #define MC_CMD_CLIENT_CMD_IN_CLIENT_ID_LEN 4 28967 28968 /* MC_CMD_CLIENT_CMD_OUT msgresponse */ 28969 #define MC_CMD_CLIENT_CMD_OUT_LEN 0 28970 28971 28972 /***********************************/ 28973 /* MC_CMD_CLIENT_ALLOC 28974 * Create a new client object. Clients are a system for delineating NIC 28975 * resource ownership, such that groups of resources may be torn down as a 28976 * unit. See also MC_CMD_CLIENT_CMD. See XN-200265-TC for background, concepts 28977 * and a glossary. Clients created by this command are known as "dynamic 28978 * clients". The newly-created client is a child of the client which sent this 28979 * command. The caller must have the GRP_ALLOC_CLIENT privilege. The new client 28980 * initially has no permission to do anything; see 28981 * MC_CMD_DEVEL_CLIENT_PRIVILEGE_MODIFY. 28982 */ 28983 #define MC_CMD_CLIENT_ALLOC 0x1bb 28984 #define MC_CMD_CLIENT_ALLOC_MSGSET 0x1bb 28985 #undef MC_CMD_0x1bb_PRIVILEGE_CTG 28986 28987 #define MC_CMD_0x1bb_PRIVILEGE_CTG SRIOV_CTG_ALLOC_CLIENT 28988 28989 /* MC_CMD_CLIENT_ALLOC_IN msgrequest */ 28990 #define MC_CMD_CLIENT_ALLOC_IN_LEN 0 28991 28992 /* MC_CMD_CLIENT_ALLOC_OUT msgresponse */ 28993 #define MC_CMD_CLIENT_ALLOC_OUT_LEN 4 28994 /* The ID of the new client object which has been created. */ 28995 #define MC_CMD_CLIENT_ALLOC_OUT_CLIENT_ID_OFST 0 28996 #define MC_CMD_CLIENT_ALLOC_OUT_CLIENT_ID_LEN 4 28997 28998 28999 /***********************************/ 29000 /* MC_CMD_CLIENT_FREE 29001 * Destroy and release an existing client object. All resources owned by that 29002 * client (including its child clients, and thus all resources owned by the 29003 * entire family tree) are freed. 29004 */ 29005 #define MC_CMD_CLIENT_FREE 0x1bc 29006 #define MC_CMD_CLIENT_FREE_MSGSET 0x1bc 29007 #undef MC_CMD_0x1bc_PRIVILEGE_CTG 29008 29009 #define MC_CMD_0x1bc_PRIVILEGE_CTG SRIOV_CTG_GENERAL 29010 29011 /* MC_CMD_CLIENT_FREE_IN msgrequest */ 29012 #define MC_CMD_CLIENT_FREE_IN_LEN 4 29013 /* The ID of the client to be freed. This client must be a descendant of the 29014 * requestor. A client cannot free itself. 29015 */ 29016 #define MC_CMD_CLIENT_FREE_IN_CLIENT_ID_OFST 0 29017 #define MC_CMD_CLIENT_FREE_IN_CLIENT_ID_LEN 4 29018 29019 /* MC_CMD_CLIENT_FREE_OUT msgresponse */ 29020 #define MC_CMD_CLIENT_FREE_OUT_LEN 0 29021 29022 29023 /***********************************/ 29024 /* MC_CMD_SET_VI_USER 29025 * Assign partial rights over this VI to another client. VIs have an 'owner' 29026 * and a 'user'. The owner is the client which allocated the VI 29027 * (MC_CMD_ALLOC_VIS) and cannot be changed. The user is the client which has 29028 * permission to create queues and other resources on that VI. Initially 29029 * user==owner, but the user can be changed by this command; the resources thus 29030 * created are then owned by the user-client. Only the VI owner can call this 29031 * command, and the request will fail if there are any outstanding child 29032 * resources (e.g. queues) currently allocated from this VI. 29033 */ 29034 #define MC_CMD_SET_VI_USER 0x1be 29035 #define MC_CMD_SET_VI_USER_MSGSET 0x1be 29036 #undef MC_CMD_0x1be_PRIVILEGE_CTG 29037 29038 #define MC_CMD_0x1be_PRIVILEGE_CTG SRIOV_CTG_GENERAL 29039 29040 /* MC_CMD_SET_VI_USER_IN msgrequest */ 29041 #define MC_CMD_SET_VI_USER_IN_LEN 8 29042 /* Function-relative VI number to modify. */ 29043 #define MC_CMD_SET_VI_USER_IN_INSTANCE_OFST 0 29044 #define MC_CMD_SET_VI_USER_IN_INSTANCE_LEN 4 29045 /* Client ID to become the new user. This must be a descendant of the owning 29046 * client, the owning client itself, or the special value MC_CMD_CLIENT_ID_SELF 29047 * which is synonymous with the owning client. 29048 */ 29049 #define MC_CMD_SET_VI_USER_IN_CLIENT_ID_OFST 4 29050 #define MC_CMD_SET_VI_USER_IN_CLIENT_ID_LEN 4 29051 29052 /* MC_CMD_SET_VI_USER_OUT msgresponse */ 29053 #define MC_CMD_SET_VI_USER_OUT_LEN 0 29054 29055 29056 /***********************************/ 29057 /* MC_CMD_GET_CLIENT_MAC_ADDRESSES 29058 * A device reports a set of MAC addresses for each client to use, known as the 29059 * "permanent MAC addresses". Those MAC addresses are provided by the client's 29060 * administrator, e.g. via MC_CMD_SET_CLIENT_MAC_ADDRESSES, and are intended as 29061 * a hint to that client which MAC address its administrator would like to use 29062 * to identity itself. This API exists solely to allow communication of MAC 29063 * address from administrator to adminstree, and has no inherent interaction 29064 * with switching within the device. There is no guarantee that a client will 29065 * be able to send traffic with a source MAC address taken from the list of MAC 29066 * address reported, nor is there a guarantee that a client will be able to 29067 * resource traffic with a destination MAC taken from the list of MAC 29068 * addresses. Likewise, there is no guarantee that a client will not be able to 29069 * use a MAC address not present in the list. Restrictions on switching are 29070 * controlled either through the EVB API if operating in EVB mode, or via MAE 29071 * rules if host software is directly managing the MAE. In order to allow 29072 * tenants to use this API whilst a provider is using the EVB API, the MAC 29073 * addresses reported by MC_CMD_GET_CLIENT_MAC_ADDRESSES will be augmented with 29074 * any MAC addresses associated with the vPort assigned to the caller. In order 29075 * to allow tenants to use the EVB API whilst a provider is using this API, if 29076 * a client queries the MAC addresses for a vPort using the host_evb_port_id 29077 * EVB_PORT_ASSIGNED, that list of MAC addresses will be augmented with the MAC 29078 * addresses assigned to the calling client. This query can either be explicit 29079 * (i.e. MC_CMD_VPORT_GET_MAC_ADDRESSES) or implicit (e.g. creation of a 29080 * vAdaptor with a NULL/automatic MAC address). Changing the MAC address on a 29081 * vAdaptor only affects VNIC steering filters; it has no effect on the MAC 29082 * addresses assigned to the vAdaptor's owner. VirtIO clients behave as EVB 29083 * clients. On VirtIO device reset, a vAdaptor is created with an automatic MAC 29084 * address. Querying the VirtIO device's MAC address queries the underlying 29085 * vAdaptor's MAC address. Setting the VirtIO device's MAC address sets the 29086 * underlying vAdaptor's MAC addresses. 29087 */ 29088 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES 0x1c4 29089 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_MSGSET 0x1c4 29090 #undef MC_CMD_0x1c4_PRIVILEGE_CTG 29091 29092 #define MC_CMD_0x1c4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 29093 29094 /* MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN msgrequest */ 29095 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN_LEN 4 29096 /* A handle for the client for whom MAC address should be obtained. Use 29097 * CLIENT_HANDLE_SELF to obtain the MAC addresses assigned to the calling 29098 * client. 29099 */ 29100 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_OFST 0 29101 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_LEN 4 29102 29103 /* MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT msgresponse */ 29104 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_LENMIN 0 29105 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_LENMAX 252 29106 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_LENMAX_MCDI2 1020 29107 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_LEN(num) (0+6*(num)) 29108 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_NUM(len) (((len)-0)/6) 29109 /* An array of MAC addresses assigned to the client. */ 29110 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_OFST 0 29111 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_LEN 6 29112 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_MINNUM 0 29113 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_MAXNUM 42 29114 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_MAXNUM_MCDI2 170 29115 29116 29117 /***********************************/ 29118 /* MC_CMD_SET_CLIENT_MAC_ADDRESSES 29119 * Set the permanent MAC addresses for a client. The caller must by an 29120 * administrator of the target client. See MC_CMD_GET_CLIENT_MAC_ADDRESSES for 29121 * additional detail. 29122 */ 29123 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES 0x1c5 29124 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_MSGSET 0x1c5 29125 #undef MC_CMD_0x1c5_PRIVILEGE_CTG 29126 29127 #define MC_CMD_0x1c5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 29128 29129 /* MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN msgrequest */ 29130 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LENMIN 4 29131 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LENMAX 250 29132 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LENMAX_MCDI2 1018 29133 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LEN(num) (4+6*(num)) 29134 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_NUM(len) (((len)-4)/6) 29135 /* A handle for the client for whom MAC addresses should be set */ 29136 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_OFST 0 29137 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_LEN 4 29138 /* An array of MAC addresses to assign to the client. */ 29139 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_OFST 4 29140 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_LEN 6 29141 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_MINNUM 0 29142 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_MAXNUM 41 29143 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_MAXNUM_MCDI2 169 29144 29145 /* MC_CMD_SET_CLIENT_MAC_ADDRESSES_OUT msgresponse */ 29146 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_OUT_LEN 0 29147 29148 29149 /***********************************/ 29150 /* MC_CMD_GET_BOARD_ATTR 29151 * Retrieve physical build-level board attributes as configured at 29152 * manufacturing stage. Fields originate from EEPROM and per-platform constants 29153 * in firmware. Fields are used in development to identify/ differentiate 29154 * boards based on build levels/parameters, and also in manufacturing to cross 29155 * check "what was programmed in manufacturing" is same as "what firmware 29156 * thinks has been programmed" as there are two layers to translation within 29157 * firmware before the attributes reach this MCDI handler. Some parameters are 29158 * retrieved as part of other commands and therefore not replicated here. See 29159 * GET_VERSION_OUT. 29160 */ 29161 #define MC_CMD_GET_BOARD_ATTR 0x1c6 29162 #define MC_CMD_GET_BOARD_ATTR_MSGSET 0x1c6 29163 #undef MC_CMD_0x1c6_PRIVILEGE_CTG 29164 29165 #define MC_CMD_0x1c6_PRIVILEGE_CTG SRIOV_CTG_GENERAL 29166 29167 /* MC_CMD_GET_BOARD_ATTR_IN msgrequest */ 29168 #define MC_CMD_GET_BOARD_ATTR_IN_LEN 0 29169 29170 /* MC_CMD_GET_BOARD_ATTR_OUT msgresponse */ 29171 #define MC_CMD_GET_BOARD_ATTR_OUT_LEN 16 29172 /* Defines board capabilities and validity of attributes returned in this 29173 * response-message. 29174 */ 29175 #define MC_CMD_GET_BOARD_ATTR_OUT_FLAGS_OFST 0 29176 #define MC_CMD_GET_BOARD_ATTR_OUT_FLAGS_LEN 4 29177 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_FAN_OFST 0 29178 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_FAN_LBN 0 29179 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_FAN_WIDTH 1 29180 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_SOC_OFST 0 29181 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_SOC_LBN 1 29182 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_SOC_WIDTH 1 29183 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_AUX_POWER_OFST 0 29184 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_AUX_POWER_LBN 2 29185 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_AUX_POWER_WIDTH 1 29186 #define MC_CMD_GET_BOARD_ATTR_OUT_ATTRIBUTES_OFST 4 29187 #define MC_CMD_GET_BOARD_ATTR_OUT_ATTRIBUTES_LEN 4 29188 #define MC_CMD_GET_BOARD_ATTR_OUT_SOC_EE_OFST 4 29189 #define MC_CMD_GET_BOARD_ATTR_OUT_SOC_EE_LBN 0 29190 #define MC_CMD_GET_BOARD_ATTR_OUT_SOC_EE_WIDTH 1 29191 #define MC_CMD_GET_BOARD_ATTR_OUT_SUC_EE_OFST 4 29192 #define MC_CMD_GET_BOARD_ATTR_OUT_SUC_EE_LBN 1 29193 #define MC_CMD_GET_BOARD_ATTR_OUT_SUC_EE_WIDTH 1 29194 #define MC_CMD_GET_BOARD_ATTR_OUT_FPGA_VOLTAGES_SUPPORTED_OFST 4 29195 #define MC_CMD_GET_BOARD_ATTR_OUT_FPGA_VOLTAGES_SUPPORTED_LBN 16 29196 #define MC_CMD_GET_BOARD_ATTR_OUT_FPGA_VOLTAGES_SUPPORTED_WIDTH 8 29197 /* enum: The FPGA voltage on the adapter can be set to low */ 29198 #define MC_CMD_FPGA_VOLTAGE_LOW 0x0 29199 /* enum: The FPGA voltage on the adapter can be set to regular */ 29200 #define MC_CMD_FPGA_VOLTAGE_REG 0x1 29201 /* enum: The FPGA voltage on the adapter can be set to high */ 29202 #define MC_CMD_FPGA_VOLTAGE_HIGH 0x2 29203 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_COUNT_OFST 4 29204 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_COUNT_LBN 24 29205 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_COUNT_WIDTH 8 29206 /* An array of cage types on the board */ 29207 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_OFST 8 29208 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_LEN 1 29209 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_NUM 8 29210 /* enum: The cages are not known */ 29211 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_UNKNOWN 0x0 29212 /* enum: The cages are SFP/SFP+ */ 29213 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_SFP 0x1 29214 /* enum: The cages are QSFP/QSFP+ */ 29215 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_QSFP 0x2 29216 29217 29218 /***********************************/ 29219 /* MC_CMD_GET_SOC_STATE 29220 * Retrieve current state of the System-on-Chip. This command is valid when 29221 * MC_CMD_GET_BOARD_ATTR:HAS_SOC is set. 29222 */ 29223 #define MC_CMD_GET_SOC_STATE 0x1c7 29224 #define MC_CMD_GET_SOC_STATE_MSGSET 0x1c7 29225 #undef MC_CMD_0x1c7_PRIVILEGE_CTG 29226 29227 #define MC_CMD_0x1c7_PRIVILEGE_CTG SRIOV_CTG_GENERAL 29228 29229 /* MC_CMD_GET_SOC_STATE_IN msgrequest */ 29230 #define MC_CMD_GET_SOC_STATE_IN_LEN 0 29231 29232 /* MC_CMD_GET_SOC_STATE_OUT msgresponse */ 29233 #define MC_CMD_GET_SOC_STATE_OUT_LEN 12 29234 /* Status flags for the SoC */ 29235 #define MC_CMD_GET_SOC_STATE_OUT_FLAGS_OFST 0 29236 #define MC_CMD_GET_SOC_STATE_OUT_FLAGS_LEN 4 29237 #define MC_CMD_GET_SOC_STATE_OUT_SHOULD_THROTTLE_OFST 0 29238 #define MC_CMD_GET_SOC_STATE_OUT_SHOULD_THROTTLE_LBN 0 29239 #define MC_CMD_GET_SOC_STATE_OUT_SHOULD_THROTTLE_WIDTH 1 29240 #define MC_CMD_GET_SOC_STATE_OUT_OS_RECOVERY_REQUIRED_OFST 0 29241 #define MC_CMD_GET_SOC_STATE_OUT_OS_RECOVERY_REQUIRED_LBN 1 29242 #define MC_CMD_GET_SOC_STATE_OUT_OS_RECOVERY_REQUIRED_WIDTH 1 29243 #define MC_CMD_GET_SOC_STATE_OUT_WDT_FIRED_OFST 0 29244 #define MC_CMD_GET_SOC_STATE_OUT_WDT_FIRED_LBN 2 29245 #define MC_CMD_GET_SOC_STATE_OUT_WDT_FIRED_WIDTH 1 29246 /* Status fields for the SoC */ 29247 #define MC_CMD_GET_SOC_STATE_OUT_ATTRIBUTES_OFST 4 29248 #define MC_CMD_GET_SOC_STATE_OUT_ATTRIBUTES_LEN 4 29249 #define MC_CMD_GET_SOC_STATE_OUT_RUN_STATE_OFST 4 29250 #define MC_CMD_GET_SOC_STATE_OUT_RUN_STATE_LBN 0 29251 #define MC_CMD_GET_SOC_STATE_OUT_RUN_STATE_WIDTH 8 29252 /* enum: Power on (set by SUC on power up) */ 29253 #define MC_CMD_GET_SOC_STATE_OUT_SOC_BOOT 0x0 29254 /* enum: Running bootloader */ 29255 #define MC_CMD_GET_SOC_STATE_OUT_SOC_BOOTLOADER 0x1 29256 /* enum: Bootloader has started OS. OS is booting */ 29257 #define MC_CMD_GET_SOC_STATE_OUT_SOC_OS_START 0x2 29258 /* enum: OS is running */ 29259 #define MC_CMD_GET_SOC_STATE_OUT_SOC_OS_RUNNING 0x3 29260 /* enum: Maintenance OS is running */ 29261 #define MC_CMD_GET_SOC_STATE_OUT_SOC_OS_MAINTENANCE 0x4 29262 /* Number of SoC resets since power on */ 29263 #define MC_CMD_GET_SOC_STATE_OUT_RESET_COUNT_OFST 8 29264 #define MC_CMD_GET_SOC_STATE_OUT_RESET_COUNT_LEN 4 29265 29266 29267 /***********************************/ 29268 /* MC_CMD_CHECK_SCHEDULER_CREDITS 29269 * For debugging purposes. For each source and destination node in the hardware 29270 * schedulers, check whether the number of credits is as it should be. This 29271 * should only be used when the NIC is idle, because collection is not atomic 29272 * and because the expected credit counts are only meaningful when no traffic 29273 * is flowing. 29274 */ 29275 #define MC_CMD_CHECK_SCHEDULER_CREDITS 0x1c8 29276 #define MC_CMD_CHECK_SCHEDULER_CREDITS_MSGSET 0x1c8 29277 #undef MC_CMD_0x1c8_PRIVILEGE_CTG 29278 29279 #define MC_CMD_0x1c8_PRIVILEGE_CTG SRIOV_CTG_ADMIN 29280 29281 /* MC_CMD_CHECK_SCHEDULER_CREDITS_IN msgrequest */ 29282 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_LEN 8 29283 /* Flags for the request */ 29284 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_FLAGS_OFST 0 29285 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_FLAGS_LEN 4 29286 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_REPORT_ALL_OFST 0 29287 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_REPORT_ALL_LBN 0 29288 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_REPORT_ALL_WIDTH 1 29289 /* If there are too many results to fit into an MCDI response, they're split 29290 * into pages. This field specifies which (0-indexed) page to request. A 29291 * request with PAGE=0 will snapshot the results, and subsequent requests with 29292 * PAGE>0 will return data from the most recent snapshot. The GENERATION field 29293 * in the response allows callers to verify that all responses correspond to 29294 * the same snapshot. 29295 */ 29296 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_PAGE_OFST 4 29297 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_PAGE_LEN 4 29298 29299 /* MC_CMD_CHECK_SCHEDULER_CREDITS_OUT msgresponse */ 29300 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_LENMIN 16 29301 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_LENMAX 240 29302 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_LENMAX_MCDI2 1008 29303 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_LEN(num) (16+16*(num)) 29304 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_NUM(len) (((len)-16)/16) 29305 /* The total number of results (across all pages). */ 29306 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_TOTAL_RESULTS_OFST 0 29307 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_TOTAL_RESULTS_LEN 4 29308 /* The number of pages that the response is split across. */ 29309 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_NUM_PAGES_OFST 4 29310 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_NUM_PAGES_LEN 4 29311 /* The number of results in this response. */ 29312 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_THIS_PAGE_OFST 8 29313 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_THIS_PAGE_LEN 4 29314 /* Result generation count. Incremented any time a request is made with PAGE=0. 29315 */ 29316 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_GENERATION_OFST 12 29317 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_GENERATION_LEN 4 29318 /* The results, as an array of SCHED_CREDIT_CHECK_RESULT structures. */ 29319 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_OFST 16 29320 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_LEN 16 29321 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_MINNUM 0 29322 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_MAXNUM 14 29323 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_MAXNUM_MCDI2 62 29324 29325 29326 /***********************************/ 29327 /* MC_CMD_TXQ_STATS 29328 * Query per-TXQ statistics. 29329 */ 29330 #define MC_CMD_TXQ_STATS 0x1d5 29331 #define MC_CMD_TXQ_STATS_MSGSET 0x1d5 29332 #undef MC_CMD_0x1d5_PRIVILEGE_CTG 29333 29334 #define MC_CMD_0x1d5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 29335 29336 /* MC_CMD_TXQ_STATS_IN msgrequest */ 29337 #define MC_CMD_TXQ_STATS_IN_LEN 8 29338 /* Instance of TXQ to retrieve statistics for */ 29339 #define MC_CMD_TXQ_STATS_IN_INSTANCE_OFST 0 29340 #define MC_CMD_TXQ_STATS_IN_INSTANCE_LEN 4 29341 /* Flags for the request */ 29342 #define MC_CMD_TXQ_STATS_IN_FLAGS_OFST 4 29343 #define MC_CMD_TXQ_STATS_IN_FLAGS_LEN 4 29344 #define MC_CMD_TXQ_STATS_IN_CLEAR_OFST 4 29345 #define MC_CMD_TXQ_STATS_IN_CLEAR_LBN 0 29346 #define MC_CMD_TXQ_STATS_IN_CLEAR_WIDTH 1 29347 29348 /* MC_CMD_TXQ_STATS_OUT msgresponse */ 29349 #define MC_CMD_TXQ_STATS_OUT_LENMIN 0 29350 #define MC_CMD_TXQ_STATS_OUT_LENMAX 248 29351 #define MC_CMD_TXQ_STATS_OUT_LENMAX_MCDI2 1016 29352 #define MC_CMD_TXQ_STATS_OUT_LEN(num) (0+8*(num)) 29353 #define MC_CMD_TXQ_STATS_OUT_STATISTICS_NUM(len) (((len)-0)/8) 29354 #define MC_CMD_TXQ_STATS_OUT_STATISTICS_OFST 0 29355 #define MC_CMD_TXQ_STATS_OUT_STATISTICS_LEN 8 29356 #define MC_CMD_TXQ_STATS_OUT_STATISTICS_LO_OFST 0 29357 #define MC_CMD_TXQ_STATS_OUT_STATISTICS_LO_LEN 4 29358 #define MC_CMD_TXQ_STATS_OUT_STATISTICS_LO_LBN 0 29359 #define MC_CMD_TXQ_STATS_OUT_STATISTICS_LO_WIDTH 32 29360 #define MC_CMD_TXQ_STATS_OUT_STATISTICS_HI_OFST 4 29361 #define MC_CMD_TXQ_STATS_OUT_STATISTICS_HI_LEN 4 29362 #define MC_CMD_TXQ_STATS_OUT_STATISTICS_HI_LBN 32 29363 #define MC_CMD_TXQ_STATS_OUT_STATISTICS_HI_WIDTH 32 29364 #define MC_CMD_TXQ_STATS_OUT_STATISTICS_MINNUM 0 29365 #define MC_CMD_TXQ_STATS_OUT_STATISTICS_MAXNUM 31 29366 #define MC_CMD_TXQ_STATS_OUT_STATISTICS_MAXNUM_MCDI2 127 29367 /* enum property: index */ 29368 #define MC_CMD_TXQ_STATS_CTPIO_MAX_FILL 0x0 /* enum */ 29369 29370 /* FUNCTION_PERSONALITY structuredef: The meanings of the personalities are 29371 * defined in SF-120734-TC with more information in SF-122717-TC. 29372 */ 29373 #define FUNCTION_PERSONALITY_LEN 4 29374 #define FUNCTION_PERSONALITY_ID_OFST 0 29375 #define FUNCTION_PERSONALITY_ID_LEN 4 29376 /* enum: Function has no assigned personality */ 29377 #define FUNCTION_PERSONALITY_NULL 0x0 29378 /* enum: Function has an EF100-style function control window and VI windows 29379 * with both EF100 and vDPA doorbells. 29380 */ 29381 #define FUNCTION_PERSONALITY_EF100 0x1 29382 /* enum: Function has virtio net device configuration registers and doorbells 29383 * for virtio queue pairs. 29384 */ 29385 #define FUNCTION_PERSONALITY_VIRTIO_NET 0x2 29386 /* enum: Function has virtio block device configuration registers and a 29387 * doorbell for a single virtqueue. 29388 */ 29389 #define FUNCTION_PERSONALITY_VIRTIO_BLK 0x3 29390 /* enum: Function is a Xilinx acceleration device - management function */ 29391 #define FUNCTION_PERSONALITY_ACCEL_MGMT 0x4 29392 /* enum: Function is a Xilinx acceleration device - user function */ 29393 #define FUNCTION_PERSONALITY_ACCEL_USR 0x5 29394 #define FUNCTION_PERSONALITY_ID_LBN 0 29395 #define FUNCTION_PERSONALITY_ID_WIDTH 32 29396 29397 29398 /***********************************/ 29399 /* MC_CMD_VIRTIO_GET_FEATURES 29400 * Get a list of the virtio features supported by the device. 29401 */ 29402 #define MC_CMD_VIRTIO_GET_FEATURES 0x168 29403 #define MC_CMD_VIRTIO_GET_FEATURES_MSGSET 0x168 29404 #undef MC_CMD_0x168_PRIVILEGE_CTG 29405 29406 #define MC_CMD_0x168_PRIVILEGE_CTG SRIOV_CTG_GENERAL 29407 29408 /* MC_CMD_VIRTIO_GET_FEATURES_IN msgrequest */ 29409 #define MC_CMD_VIRTIO_GET_FEATURES_IN_LEN 4 29410 /* Type of device to get features for. Matches the device id as defined by the 29411 * virtio spec. 29412 */ 29413 #define MC_CMD_VIRTIO_GET_FEATURES_IN_DEVICE_ID_OFST 0 29414 #define MC_CMD_VIRTIO_GET_FEATURES_IN_DEVICE_ID_LEN 4 29415 /* enum: Reserved. Do not use. */ 29416 #define MC_CMD_VIRTIO_GET_FEATURES_IN_RESERVED 0x0 29417 /* enum: Net device. */ 29418 #define MC_CMD_VIRTIO_GET_FEATURES_IN_NET 0x1 29419 /* enum: Block device. */ 29420 #define MC_CMD_VIRTIO_GET_FEATURES_IN_BLOCK 0x2 29421 29422 /* MC_CMD_VIRTIO_GET_FEATURES_OUT msgresponse */ 29423 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_LEN 8 29424 /* Features supported by the device. The result is a bitfield in the format of 29425 * the feature bits of the specified device type as defined in the virtIO 1.1 29426 * specification ( https://docs.oasis- 29427 * open.org/virtio/virtio/v1.1/csprd01/virtio-v1.1-csprd01.pdf ) 29428 */ 29429 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_OFST 0 29430 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LEN 8 29431 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_OFST 0 29432 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_LEN 4 29433 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_LBN 0 29434 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_WIDTH 32 29435 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_OFST 4 29436 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_LEN 4 29437 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_LBN 32 29438 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_WIDTH 32 29439 29440 29441 /***********************************/ 29442 /* MC_CMD_VIRTIO_TEST_FEATURES 29443 * Query whether a given set of features is supported. Fails with ENOSUP if the 29444 * driver requests a feature the device doesn't support. Fails with EINVAL if 29445 * the driver fails to request a feature which the device requires. 29446 */ 29447 #define MC_CMD_VIRTIO_TEST_FEATURES 0x169 29448 #define MC_CMD_VIRTIO_TEST_FEATURES_MSGSET 0x169 29449 #undef MC_CMD_0x169_PRIVILEGE_CTG 29450 29451 #define MC_CMD_0x169_PRIVILEGE_CTG SRIOV_CTG_GENERAL 29452 29453 /* MC_CMD_VIRTIO_TEST_FEATURES_IN msgrequest */ 29454 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_LEN 16 29455 /* Type of device to test features for. Matches the device id as defined by the 29456 * virtio spec. 29457 */ 29458 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_DEVICE_ID_OFST 0 29459 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_DEVICE_ID_LEN 4 29460 /* Enum values, see field(s): */ 29461 /* MC_CMD_VIRTIO_GET_FEATURES/MC_CMD_VIRTIO_GET_FEATURES_IN/DEVICE_ID */ 29462 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_RESERVED_OFST 4 29463 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_RESERVED_LEN 4 29464 /* Features requested. Same format as the returned value from 29465 * MC_CMD_VIRTIO_GET_FEATURES. 29466 */ 29467 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_OFST 8 29468 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LEN 8 29469 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_OFST 8 29470 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_LEN 4 29471 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_LBN 64 29472 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_WIDTH 32 29473 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_OFST 12 29474 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_LEN 4 29475 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_LBN 96 29476 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_WIDTH 32 29477 29478 /* MC_CMD_VIRTIO_TEST_FEATURES_OUT msgresponse */ 29479 #define MC_CMD_VIRTIO_TEST_FEATURES_OUT_LEN 0 29480 29481 29482 /***********************************/ 29483 /* MC_CMD_VIRTIO_GET_CAPABILITIES 29484 * Get virtio capabilities supported by the device. Returns general virtio 29485 * capabilities and limitations of the hardware / firmware implementation 29486 * (hardware device as a whole), rather than that of individual configured 29487 * virtio devices. At present, only the absolute maximum number of queues 29488 * allowed on multi-queue devices is returned. Response is expected to be 29489 * extended as necessary in the future. 29490 */ 29491 #define MC_CMD_VIRTIO_GET_CAPABILITIES 0x1d3 29492 #define MC_CMD_VIRTIO_GET_CAPABILITIES_MSGSET 0x1d3 29493 #undef MC_CMD_0x1d3_PRIVILEGE_CTG 29494 29495 #define MC_CMD_0x1d3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 29496 29497 /* MC_CMD_VIRTIO_GET_CAPABILITIES_IN msgrequest */ 29498 #define MC_CMD_VIRTIO_GET_CAPABILITIES_IN_LEN 4 29499 /* Type of device to get capabilities for. Matches the device id as defined by 29500 * the virtio spec. 29501 */ 29502 #define MC_CMD_VIRTIO_GET_CAPABILITIES_IN_DEVICE_ID_OFST 0 29503 #define MC_CMD_VIRTIO_GET_CAPABILITIES_IN_DEVICE_ID_LEN 4 29504 /* Enum values, see field(s): */ 29505 /* MC_CMD_VIRTIO_GET_FEATURES/MC_CMD_VIRTIO_GET_FEATURES_IN/DEVICE_ID */ 29506 29507 /* MC_CMD_VIRTIO_GET_CAPABILITIES_OUT msgresponse */ 29508 #define MC_CMD_VIRTIO_GET_CAPABILITIES_OUT_LEN 4 29509 /* Maximum number of queues supported for a single device instance */ 29510 #define MC_CMD_VIRTIO_GET_CAPABILITIES_OUT_MAX_QUEUES_OFST 0 29511 #define MC_CMD_VIRTIO_GET_CAPABILITIES_OUT_MAX_QUEUES_LEN 4 29512 29513 29514 /***********************************/ 29515 /* MC_CMD_VIRTIO_INIT_QUEUE 29516 * Create a virtio virtqueue. Fails with EALREADY if the queue already exists. 29517 * Fails with ENOSUP if a feature is requested that isn't supported. Fails with 29518 * EINVAL if a required feature isn't requested, or any other parameter is 29519 * invalid. 29520 */ 29521 #define MC_CMD_VIRTIO_INIT_QUEUE 0x16a 29522 #define MC_CMD_VIRTIO_INIT_QUEUE_MSGSET 0x16a 29523 #undef MC_CMD_0x16a_PRIVILEGE_CTG 29524 29525 #define MC_CMD_0x16a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 29526 29527 /* MC_CMD_VIRTIO_INIT_QUEUE_REQ msgrequest */ 29528 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_LEN 68 29529 /* Type of virtqueue to create. A network rxq and a txq can exist at the same 29530 * time on a single VI. 29531 */ 29532 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_QUEUE_TYPE_OFST 0 29533 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_QUEUE_TYPE_LEN 1 29534 /* enum: A network device receive queue */ 29535 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_NET_RXQ 0x0 29536 /* enum: A network device transmit queue */ 29537 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_NET_TXQ 0x1 29538 /* enum: A block device request queue */ 29539 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_BLOCK 0x2 29540 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED_OFST 1 29541 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED_LEN 1 29542 /* If the calling function is a PF and this field is not VF_NULL, create the 29543 * queue on the specified child VF instead of on the PF. 29544 */ 29545 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_TARGET_VF_OFST 2 29546 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_TARGET_VF_LEN 2 29547 /* enum: No VF, create queue on the PF. */ 29548 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_VF_NULL 0xffff 29549 /* Desired instance. This is the function-local index of the associated VI, not 29550 * the virtqueue number as counted by the virtqueue spec. 29551 */ 29552 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INSTANCE_OFST 4 29553 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INSTANCE_LEN 4 29554 /* Queue size, in entries. Must be a power of two. */ 29555 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_SIZE_OFST 8 29556 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_SIZE_LEN 4 29557 /* Flags */ 29558 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FLAGS_OFST 12 29559 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FLAGS_LEN 4 29560 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USE_PASID_OFST 12 29561 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USE_PASID_LBN 0 29562 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USE_PASID_WIDTH 1 29563 /* Address of the descriptor table in the virtqueue. */ 29564 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_OFST 16 29565 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LEN 8 29566 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_OFST 16 29567 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_LEN 4 29568 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_LBN 128 29569 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_WIDTH 32 29570 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_OFST 20 29571 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_LEN 4 29572 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_LBN 160 29573 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_WIDTH 32 29574 /* Address of the available ring in the virtqueue. */ 29575 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_OFST 24 29576 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LEN 8 29577 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_OFST 24 29578 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_LEN 4 29579 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_LBN 192 29580 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_WIDTH 32 29581 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_OFST 28 29582 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_LEN 4 29583 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_LBN 224 29584 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_WIDTH 32 29585 /* Address of the used ring in the virtqueue. */ 29586 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_OFST 32 29587 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LEN 8 29588 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_OFST 32 29589 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_LEN 4 29590 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_LBN 256 29591 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_WIDTH 32 29592 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_OFST 36 29593 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_LEN 4 29594 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_LBN 288 29595 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_WIDTH 32 29596 /* PASID to use on PCIe transactions involving this queue. Ignored if the 29597 * USE_PASID flag is not set. 29598 */ 29599 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_PASID_OFST 40 29600 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_PASID_LEN 4 29601 /* Which MSIX vector to use for this virtqueue, or NO_VECTOR if MSIX should not 29602 * be used. 29603 */ 29604 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MSIX_VECTOR_OFST 44 29605 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MSIX_VECTOR_LEN 2 29606 /* enum: Do not enable interrupts for this virtqueue */ 29607 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_NO_VECTOR 0xffff 29608 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED2_OFST 46 29609 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED2_LEN 2 29610 /* Virtio features to apply to this queue. Same format as the in the virtio 29611 * spec and in the return from MC_CMD_VIRTIO_GET_FEATURES. Must be a subset of 29612 * the features returned from MC_CMD_VIRTIO_GET_FEATURES. Features are per- 29613 * queue because with vDPA multiple queues on the same function can be passed 29614 * through to different virtual hosts as independent devices. 29615 */ 29616 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_OFST 48 29617 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LEN 8 29618 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_OFST 48 29619 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_LEN 4 29620 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_LBN 384 29621 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_WIDTH 32 29622 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_OFST 52 29623 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_LEN 4 29624 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_LBN 416 29625 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_WIDTH 32 29626 /* Enum values, see field(s): */ 29627 /* MC_CMD_VIRTIO_GET_FEATURES/MC_CMD_VIRTIO_GET_FEATURES_OUT/FEATURES */ 29628 /* The initial available index for this virtqueue. If this queue is being 29629 * created to be migrated into, this should be the FINAL_AVAIL_IDX value 29630 * returned by MC_CMD_VIRTIO_FINI_QUEUE of the queue being migrated from (or 29631 * equivalent if the original queue was on a thirdparty device). Otherwise, it 29632 * should be zero. 29633 */ 29634 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_AVAIL_IDX_OFST 56 29635 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_AVAIL_IDX_LEN 4 29636 /* Alias of INITIAL_AVAIL_IDX, kept for compatibility. */ 29637 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_PIDX_OFST 56 29638 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_PIDX_LEN 4 29639 /* The initial used index for this virtqueue. If this queue is being created to 29640 * be migrated into, this should be the FINAL_USED_IDX value returned by 29641 * MC_CMD_VIRTIO_FINI_QUEUE of the queue being migrated from (or equivalent if 29642 * the original queue was on a thirdparty device). Otherwise, it should be 29643 * zero. 29644 */ 29645 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_USED_IDX_OFST 60 29646 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_USED_IDX_LEN 4 29647 /* Alias of INITIAL_USED_IDX, kept for compatibility. */ 29648 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_CIDX_OFST 60 29649 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_CIDX_LEN 4 29650 /* A MAE_MPORT_SELECTOR defining which mport this queue should be associated 29651 * with. Use MAE_MPORT_SELECTOR_ASSIGNED to request the default mport for the 29652 * function this queue is being created on. 29653 */ 29654 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MPORT_SELECTOR_OFST 64 29655 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MPORT_SELECTOR_LEN 4 29656 29657 /* MC_CMD_VIRTIO_INIT_QUEUE_RESP msgresponse */ 29658 #define MC_CMD_VIRTIO_INIT_QUEUE_RESP_LEN 0 29659 29660 29661 /***********************************/ 29662 /* MC_CMD_VIRTIO_FINI_QUEUE 29663 * Destroy a virtio virtqueue 29664 */ 29665 #define MC_CMD_VIRTIO_FINI_QUEUE 0x16b 29666 #define MC_CMD_VIRTIO_FINI_QUEUE_MSGSET 0x16b 29667 #undef MC_CMD_0x16b_PRIVILEGE_CTG 29668 29669 #define MC_CMD_0x16b_PRIVILEGE_CTG SRIOV_CTG_GENERAL 29670 29671 /* MC_CMD_VIRTIO_FINI_QUEUE_REQ msgrequest */ 29672 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_LEN 8 29673 /* Type of virtqueue to destroy. */ 29674 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_QUEUE_TYPE_OFST 0 29675 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_QUEUE_TYPE_LEN 1 29676 /* Enum values, see field(s): */ 29677 /* MC_CMD_VIRTIO_INIT_QUEUE/MC_CMD_VIRTIO_INIT_QUEUE_REQ/QUEUE_TYPE */ 29678 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_RESERVED_OFST 1 29679 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_RESERVED_LEN 1 29680 /* If the calling function is a PF and this field is not VF_NULL, destroy the 29681 * queue on the specified child VF instead of on the PF. 29682 */ 29683 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_TARGET_VF_OFST 2 29684 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_TARGET_VF_LEN 2 29685 /* enum: No VF, destroy the queue on the PF. */ 29686 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_VF_NULL 0xffff 29687 /* Instance to destroy */ 29688 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_INSTANCE_OFST 4 29689 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_INSTANCE_LEN 4 29690 29691 /* MC_CMD_VIRTIO_FINI_QUEUE_RESP msgresponse */ 29692 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_LEN 8 29693 /* The available index of the virtqueue when the queue was stopped. */ 29694 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_AVAIL_IDX_OFST 0 29695 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_AVAIL_IDX_LEN 4 29696 /* Alias of FINAL_AVAIL_IDX, kept for compatibility. */ 29697 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_PIDX_OFST 0 29698 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_PIDX_LEN 4 29699 /* The used index of the virtqueue when the queue was stopped. */ 29700 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_USED_IDX_OFST 4 29701 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_USED_IDX_LEN 4 29702 /* Alias of FINAL_USED_IDX, kept for compatibility. */ 29703 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_CIDX_OFST 4 29704 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_CIDX_LEN 4 29705 29706 29707 /***********************************/ 29708 /* MC_CMD_VIRTIO_GET_DOORBELL_OFFSET 29709 * Get the offset in the BAR of the doorbells for a VI. Doesn't require the 29710 * queue(s) to be allocated. 29711 */ 29712 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET 0x16c 29713 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_MSGSET 0x16c 29714 #undef MC_CMD_0x16c_PRIVILEGE_CTG 29715 29716 #define MC_CMD_0x16c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 29717 29718 /* MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ msgrequest */ 29719 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_LEN 8 29720 /* Type of device to get information for. Matches the device id as defined by 29721 * the virtio spec. 29722 */ 29723 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_DEVICE_ID_OFST 0 29724 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_DEVICE_ID_LEN 1 29725 /* Enum values, see field(s): */ 29726 /* MC_CMD_VIRTIO_GET_FEATURES/MC_CMD_VIRTIO_GET_FEATURES_IN/DEVICE_ID */ 29727 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_RESERVED_OFST 1 29728 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_RESERVED_LEN 1 29729 /* If the calling function is a PF and this field is not VF_NULL, query the VI 29730 * on the specified child VF instead of on the PF. 29731 */ 29732 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_TARGET_VF_OFST 2 29733 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_TARGET_VF_LEN 2 29734 /* enum: No VF, query the PF. */ 29735 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_VF_NULL 0xffff 29736 /* VI instance to query */ 29737 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_INSTANCE_OFST 4 29738 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_INSTANCE_LEN 4 29739 29740 /* MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP msgresponse */ 29741 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_LEN 8 29742 /* Offset of RX doorbell in BAR */ 29743 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_RX_DBL_OFFSET_OFST 0 29744 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_RX_DBL_OFFSET_LEN 4 29745 /* Offset of TX doorbell in BAR */ 29746 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_TX_DBL_OFFSET_OFST 4 29747 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_TX_DBL_OFFSET_LEN 4 29748 29749 /* MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP msgresponse */ 29750 #define MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP_LEN 4 29751 /* Offset of request doorbell in BAR */ 29752 #define MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP_DBL_OFFSET_OFST 0 29753 #define MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP_DBL_OFFSET_LEN 4 29754 29755 /* PCIE_FUNCTION structuredef: Structure representing a PCIe function ID 29756 * (interface/PF/VF tuple) 29757 */ 29758 #define PCIE_FUNCTION_LEN 8 29759 /* PCIe PF function number */ 29760 #define PCIE_FUNCTION_PF_OFST 0 29761 #define PCIE_FUNCTION_PF_LEN 2 29762 /* enum: Wildcard value representing any available function (e.g in resource 29763 * allocation requests) 29764 */ 29765 #define PCIE_FUNCTION_PF_ANY 0xfffe 29766 /* enum: Value representing invalid (null) function */ 29767 #define PCIE_FUNCTION_PF_NULL 0xffff 29768 #define PCIE_FUNCTION_PF_LBN 0 29769 #define PCIE_FUNCTION_PF_WIDTH 16 29770 /* PCIe VF Function number (PF relative) */ 29771 #define PCIE_FUNCTION_VF_OFST 2 29772 #define PCIE_FUNCTION_VF_LEN 2 29773 /* enum: Wildcard value representing any available function (e.g in resource 29774 * allocation requests) 29775 */ 29776 #define PCIE_FUNCTION_VF_ANY 0xfffe 29777 /* enum: Function is a PF (when PF != PF_NULL) or invalid function (when PF == 29778 * PF_NULL) 29779 */ 29780 #define PCIE_FUNCTION_VF_NULL 0xffff 29781 #define PCIE_FUNCTION_VF_LBN 16 29782 #define PCIE_FUNCTION_VF_WIDTH 16 29783 /* PCIe interface of the function. Values should be taken from the 29784 * PCIE_INTERFACE enum 29785 */ 29786 #define PCIE_FUNCTION_INTF_OFST 4 29787 #define PCIE_FUNCTION_INTF_LEN 4 29788 /* enum: Host PCIe interface. (Alias for HOST_PRIMARY, provided for backwards 29789 * compatibility) 29790 */ 29791 #define PCIE_FUNCTION_INTF_HOST 0x0 29792 /* enum: Application Processor interface (alias for NIC_EMBEDDED, provided for 29793 * backwards compatibility) 29794 */ 29795 #define PCIE_FUNCTION_INTF_AP 0x1 29796 #define PCIE_FUNCTION_INTF_LBN 32 29797 #define PCIE_FUNCTION_INTF_WIDTH 32 29798 29799 /* QUEUE_ID structuredef: Structure representing an absolute queue identifier 29800 * (absolute VI number + VI relative queue number). On Keystone, a VI can 29801 * contain multiple queues (at present, up to 2), each with separate controls 29802 * for direction. This structure is required to uniquely identify the absolute 29803 * source queue for descriptor proxy functions. 29804 */ 29805 #define QUEUE_ID_LEN 4 29806 /* Absolute VI number */ 29807 #define QUEUE_ID_ABS_VI_OFST 0 29808 #define QUEUE_ID_ABS_VI_LEN 2 29809 #define QUEUE_ID_ABS_VI_LBN 0 29810 #define QUEUE_ID_ABS_VI_WIDTH 16 29811 /* Relative queue number within the VI */ 29812 #define QUEUE_ID_REL_QUEUE_LBN 16 29813 #define QUEUE_ID_REL_QUEUE_WIDTH 1 29814 #define QUEUE_ID_RESERVED_LBN 17 29815 #define QUEUE_ID_RESERVED_WIDTH 15 29816 29817 29818 /***********************************/ 29819 /* MC_CMD_DESC_PROXY_FUNC_CREATE 29820 * Descriptor proxy functions are abstract devices that forward all request 29821 * submitted to the host PCIe function (descriptors submitted to Virtio or 29822 * EF100 queues) to be handled on another function (most commonly on the 29823 * embedded Application Processor), via EF100 descriptor proxy, memory-to- 29824 * memory and descriptor-to-completion mechanisms. Primary user is Virtio-blk 29825 * subsystem, see SF-122927-TC. This function allocates a new descriptor proxy 29826 * function on the host and assigns a user-defined label. The actual function 29827 * configuration is not persisted until the caller configures it with 29828 * MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN and commits with 29829 * MC_CMD_DESC_PROXY_FUNC_COMMIT_IN. 29830 */ 29831 #define MC_CMD_DESC_PROXY_FUNC_CREATE 0x172 29832 #define MC_CMD_DESC_PROXY_FUNC_CREATE_MSGSET 0x172 29833 #undef MC_CMD_0x172_PRIVILEGE_CTG 29834 29835 #define MC_CMD_0x172_PRIVILEGE_CTG SRIOV_CTG_ADMIN 29836 29837 /* MC_CMD_DESC_PROXY_FUNC_CREATE_IN msgrequest */ 29838 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_LEN 52 29839 /* PCIe Function ID to allocate (as struct PCIE_FUNCTION). Set to 29840 * {PF_ANY,VF_ANY,interface} for "any available function" Set to 29841 * {PF_ANY,VF_NULL,interface} for "any available PF" 29842 */ 29843 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_OFST 0 29844 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LEN 8 29845 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LO_OFST 0 29846 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LO_LEN 4 29847 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LO_LBN 0 29848 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LO_WIDTH 32 29849 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_HI_OFST 4 29850 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_HI_LEN 4 29851 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_HI_LBN 32 29852 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_HI_WIDTH 32 29853 /* See structuredef: PCIE_FUNCTION */ 29854 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_PF_OFST 0 29855 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_PF_LEN 2 29856 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_VF_OFST 2 29857 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_VF_LEN 2 29858 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_INTF_OFST 4 29859 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_INTF_LEN 4 29860 /* The personality to set. The meanings of the personalities are defined in 29861 * SF-120734-TC with more information in SF-122717-TC. At present, we only 29862 * support proxying for VIRTIO_BLK 29863 */ 29864 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_PERSONALITY_OFST 8 29865 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_PERSONALITY_LEN 4 29866 /* Enum values, see field(s): */ 29867 /* FUNCTION_PERSONALITY/ID */ 29868 /* User-defined label (zero-terminated ASCII string) to uniquely identify the 29869 * function 29870 */ 29871 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_LABEL_OFST 12 29872 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_LABEL_LEN 40 29873 29874 /* MC_CMD_DESC_PROXY_FUNC_CREATE_OUT msgresponse */ 29875 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_LEN 12 29876 /* Handle to the descriptor proxy function */ 29877 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_HANDLE_OFST 0 29878 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_HANDLE_LEN 4 29879 /* Allocated function ID (as struct PCIE_FUNCTION) */ 29880 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_OFST 4 29881 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LEN 8 29882 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LO_OFST 4 29883 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LO_LEN 4 29884 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LO_LBN 32 29885 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LO_WIDTH 32 29886 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_HI_OFST 8 29887 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_HI_LEN 4 29888 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_HI_LBN 64 29889 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_HI_WIDTH 32 29890 /* See structuredef: PCIE_FUNCTION */ 29891 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_PF_OFST 4 29892 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_PF_LEN 2 29893 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_VF_OFST 6 29894 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_VF_LEN 2 29895 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_INTF_OFST 8 29896 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_INTF_LEN 4 29897 29898 29899 /***********************************/ 29900 /* MC_CMD_DESC_PROXY_FUNC_DESTROY 29901 * Remove an existing descriptor proxy function. Underlying function 29902 * personality and configuration reverts back to factory default. Function 29903 * configuration is committed immediately to specified store and any function 29904 * ownership is released. 29905 */ 29906 #define MC_CMD_DESC_PROXY_FUNC_DESTROY 0x173 29907 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_MSGSET 0x173 29908 #undef MC_CMD_0x173_PRIVILEGE_CTG 29909 29910 #define MC_CMD_0x173_PRIVILEGE_CTG SRIOV_CTG_ADMIN 29911 29912 /* MC_CMD_DESC_PROXY_FUNC_DESTROY_IN msgrequest */ 29913 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_IN_LEN 44 29914 /* User-defined label (zero-terminated ASCII string) to uniquely identify the 29915 * function 29916 */ 29917 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_IN_LABEL_OFST 0 29918 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_IN_LABEL_LEN 40 29919 /* Store from which to remove function configuration */ 29920 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_IN_STORE_OFST 40 29921 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_IN_STORE_LEN 4 29922 /* Enum values, see field(s): */ 29923 /* MC_CMD_DESC_PROXY_FUNC_COMMIT/MC_CMD_DESC_PROXY_FUNC_COMMIT_IN/STORE */ 29924 29925 /* MC_CMD_DESC_PROXY_FUNC_DESTROY_OUT msgresponse */ 29926 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_OUT_LEN 0 29927 29928 /* VIRTIO_BLK_CONFIG structuredef: Virtio block device configuration. See 29929 * Virtio specification v1.1, Sections 5.2.3 and 6 for definition of feature 29930 * bits. See Virtio specification v1.1, Section 5.2.4 (struct 29931 * virtio_blk_config) for definition of remaining configuration fields 29932 */ 29933 #define VIRTIO_BLK_CONFIG_LEN 68 29934 /* Virtio block device features to advertise, per Virtio 1.1, 5.2.3 and 6 */ 29935 #define VIRTIO_BLK_CONFIG_FEATURES_OFST 0 29936 #define VIRTIO_BLK_CONFIG_FEATURES_LEN 8 29937 #define VIRTIO_BLK_CONFIG_FEATURES_LO_OFST 0 29938 #define VIRTIO_BLK_CONFIG_FEATURES_LO_LEN 4 29939 #define VIRTIO_BLK_CONFIG_FEATURES_LO_LBN 0 29940 #define VIRTIO_BLK_CONFIG_FEATURES_LO_WIDTH 32 29941 #define VIRTIO_BLK_CONFIG_FEATURES_HI_OFST 4 29942 #define VIRTIO_BLK_CONFIG_FEATURES_HI_LEN 4 29943 #define VIRTIO_BLK_CONFIG_FEATURES_HI_LBN 32 29944 #define VIRTIO_BLK_CONFIG_FEATURES_HI_WIDTH 32 29945 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BARRIER_OFST 0 29946 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BARRIER_LBN 0 29947 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BARRIER_WIDTH 1 29948 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SIZE_MAX_OFST 0 29949 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SIZE_MAX_LBN 1 29950 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SIZE_MAX_WIDTH 1 29951 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SEG_MAX_OFST 0 29952 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SEG_MAX_LBN 2 29953 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SEG_MAX_WIDTH 1 29954 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_GEOMETRY_OFST 0 29955 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_GEOMETRY_LBN 4 29956 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_GEOMETRY_WIDTH 1 29957 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_RO_OFST 0 29958 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_RO_LBN 5 29959 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_RO_WIDTH 1 29960 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BLK_SIZE_OFST 0 29961 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BLK_SIZE_LBN 6 29962 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BLK_SIZE_WIDTH 1 29963 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SCSI_OFST 0 29964 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SCSI_LBN 7 29965 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SCSI_WIDTH 1 29966 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_FLUSH_OFST 0 29967 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_FLUSH_LBN 9 29968 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_FLUSH_WIDTH 1 29969 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_TOPOLOGY_OFST 0 29970 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_TOPOLOGY_LBN 10 29971 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_TOPOLOGY_WIDTH 1 29972 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_CONFIG_WCE_OFST 0 29973 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_CONFIG_WCE_LBN 11 29974 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_CONFIG_WCE_WIDTH 1 29975 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_MQ_OFST 0 29976 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_MQ_LBN 12 29977 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_MQ_WIDTH 1 29978 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_DISCARD_OFST 0 29979 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_DISCARD_LBN 13 29980 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_DISCARD_WIDTH 1 29981 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_WRITE_ZEROES_OFST 0 29982 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_WRITE_ZEROES_LBN 14 29983 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_WRITE_ZEROES_WIDTH 1 29984 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_INDIRECT_DESC_OFST 0 29985 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_INDIRECT_DESC_LBN 28 29986 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_INDIRECT_DESC_WIDTH 1 29987 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_EVENT_IDX_OFST 0 29988 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_EVENT_IDX_LBN 29 29989 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_EVENT_IDX_WIDTH 1 29990 #define VIRTIO_BLK_CONFIG_VIRTIO_F_VERSION_1_OFST 0 29991 #define VIRTIO_BLK_CONFIG_VIRTIO_F_VERSION_1_LBN 32 29992 #define VIRTIO_BLK_CONFIG_VIRTIO_F_VERSION_1_WIDTH 1 29993 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ACCESS_PLATFORM_OFST 0 29994 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ACCESS_PLATFORM_LBN 33 29995 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ACCESS_PLATFORM_WIDTH 1 29996 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_PACKED_OFST 0 29997 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_PACKED_LBN 34 29998 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_PACKED_WIDTH 1 29999 #define VIRTIO_BLK_CONFIG_VIRTIO_F_IN_ORDER_OFST 0 30000 #define VIRTIO_BLK_CONFIG_VIRTIO_F_IN_ORDER_LBN 35 30001 #define VIRTIO_BLK_CONFIG_VIRTIO_F_IN_ORDER_WIDTH 1 30002 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ORDER_PLATFORM_OFST 0 30003 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ORDER_PLATFORM_LBN 36 30004 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ORDER_PLATFORM_WIDTH 1 30005 #define VIRTIO_BLK_CONFIG_VIRTIO_F_SR_IOV_OFST 0 30006 #define VIRTIO_BLK_CONFIG_VIRTIO_F_SR_IOV_LBN 37 30007 #define VIRTIO_BLK_CONFIG_VIRTIO_F_SR_IOV_WIDTH 1 30008 #define VIRTIO_BLK_CONFIG_VIRTIO_F_NOTIFICATION_DATA_OFST 0 30009 #define VIRTIO_BLK_CONFIG_VIRTIO_F_NOTIFICATION_DATA_LBN 38 30010 #define VIRTIO_BLK_CONFIG_VIRTIO_F_NOTIFICATION_DATA_WIDTH 1 30011 #define VIRTIO_BLK_CONFIG_FEATURES_LBN 0 30012 #define VIRTIO_BLK_CONFIG_FEATURES_WIDTH 64 30013 /* The capacity of the device (expressed in 512-byte sectors) */ 30014 #define VIRTIO_BLK_CONFIG_CAPACITY_OFST 8 30015 #define VIRTIO_BLK_CONFIG_CAPACITY_LEN 8 30016 #define VIRTIO_BLK_CONFIG_CAPACITY_LO_OFST 8 30017 #define VIRTIO_BLK_CONFIG_CAPACITY_LO_LEN 4 30018 #define VIRTIO_BLK_CONFIG_CAPACITY_LO_LBN 64 30019 #define VIRTIO_BLK_CONFIG_CAPACITY_LO_WIDTH 32 30020 #define VIRTIO_BLK_CONFIG_CAPACITY_HI_OFST 12 30021 #define VIRTIO_BLK_CONFIG_CAPACITY_HI_LEN 4 30022 #define VIRTIO_BLK_CONFIG_CAPACITY_HI_LBN 96 30023 #define VIRTIO_BLK_CONFIG_CAPACITY_HI_WIDTH 32 30024 #define VIRTIO_BLK_CONFIG_CAPACITY_LBN 64 30025 #define VIRTIO_BLK_CONFIG_CAPACITY_WIDTH 64 30026 /* Maximum size of any single segment. Only valid when VIRTIO_BLK_F_SIZE_MAX is 30027 * set. 30028 */ 30029 #define VIRTIO_BLK_CONFIG_SIZE_MAX_OFST 16 30030 #define VIRTIO_BLK_CONFIG_SIZE_MAX_LEN 4 30031 #define VIRTIO_BLK_CONFIG_SIZE_MAX_LBN 128 30032 #define VIRTIO_BLK_CONFIG_SIZE_MAX_WIDTH 32 30033 /* Maximum number of segments in a request. Only valid when 30034 * VIRTIO_BLK_F_SEG_MAX is set. 30035 */ 30036 #define VIRTIO_BLK_CONFIG_SEG_MAX_OFST 20 30037 #define VIRTIO_BLK_CONFIG_SEG_MAX_LEN 4 30038 #define VIRTIO_BLK_CONFIG_SEG_MAX_LBN 160 30039 #define VIRTIO_BLK_CONFIG_SEG_MAX_WIDTH 32 30040 /* Disk-style geometry - cylinders. Only valid when VIRTIO_BLK_F_GEOMETRY is 30041 * set. 30042 */ 30043 #define VIRTIO_BLK_CONFIG_CYLINDERS_OFST 24 30044 #define VIRTIO_BLK_CONFIG_CYLINDERS_LEN 2 30045 #define VIRTIO_BLK_CONFIG_CYLINDERS_LBN 192 30046 #define VIRTIO_BLK_CONFIG_CYLINDERS_WIDTH 16 30047 /* Disk-style geometry - heads. Only valid when VIRTIO_BLK_F_GEOMETRY is set. 30048 */ 30049 #define VIRTIO_BLK_CONFIG_HEADS_OFST 26 30050 #define VIRTIO_BLK_CONFIG_HEADS_LEN 1 30051 #define VIRTIO_BLK_CONFIG_HEADS_LBN 208 30052 #define VIRTIO_BLK_CONFIG_HEADS_WIDTH 8 30053 /* Disk-style geometry - sectors. Only valid when VIRTIO_BLK_F_GEOMETRY is set. 30054 */ 30055 #define VIRTIO_BLK_CONFIG_SECTORS_OFST 27 30056 #define VIRTIO_BLK_CONFIG_SECTORS_LEN 1 30057 #define VIRTIO_BLK_CONFIG_SECTORS_LBN 216 30058 #define VIRTIO_BLK_CONFIG_SECTORS_WIDTH 8 30059 /* Block size of disk. Only valid when VIRTIO_BLK_F_BLK_SIZE is set. */ 30060 #define VIRTIO_BLK_CONFIG_BLK_SIZE_OFST 28 30061 #define VIRTIO_BLK_CONFIG_BLK_SIZE_LEN 4 30062 #define VIRTIO_BLK_CONFIG_BLK_SIZE_LBN 224 30063 #define VIRTIO_BLK_CONFIG_BLK_SIZE_WIDTH 32 30064 /* Block topology - number of logical blocks per physical block (log2). Only 30065 * valid when VIRTIO_BLK_F_TOPOLOGY is set. 30066 */ 30067 #define VIRTIO_BLK_CONFIG_PHYSICAL_BLOCK_EXP_OFST 32 30068 #define VIRTIO_BLK_CONFIG_PHYSICAL_BLOCK_EXP_LEN 1 30069 #define VIRTIO_BLK_CONFIG_PHYSICAL_BLOCK_EXP_LBN 256 30070 #define VIRTIO_BLK_CONFIG_PHYSICAL_BLOCK_EXP_WIDTH 8 30071 /* Block topology - offset of first aligned logical block. Only valid when 30072 * VIRTIO_BLK_F_TOPOLOGY is set. 30073 */ 30074 #define VIRTIO_BLK_CONFIG_ALIGNMENT_OFFSET_OFST 33 30075 #define VIRTIO_BLK_CONFIG_ALIGNMENT_OFFSET_LEN 1 30076 #define VIRTIO_BLK_CONFIG_ALIGNMENT_OFFSET_LBN 264 30077 #define VIRTIO_BLK_CONFIG_ALIGNMENT_OFFSET_WIDTH 8 30078 /* Block topology - suggested minimum I/O size in blocks. Only valid when 30079 * VIRTIO_BLK_F_TOPOLOGY is set. 30080 */ 30081 #define VIRTIO_BLK_CONFIG_MIN_IO_SIZE_OFST 34 30082 #define VIRTIO_BLK_CONFIG_MIN_IO_SIZE_LEN 2 30083 #define VIRTIO_BLK_CONFIG_MIN_IO_SIZE_LBN 272 30084 #define VIRTIO_BLK_CONFIG_MIN_IO_SIZE_WIDTH 16 30085 /* Block topology - optimal (suggested maximum) I/O size in blocks. Only valid 30086 * when VIRTIO_BLK_F_TOPOLOGY is set. 30087 */ 30088 #define VIRTIO_BLK_CONFIG_OPT_IO_SIZE_OFST 36 30089 #define VIRTIO_BLK_CONFIG_OPT_IO_SIZE_LEN 4 30090 #define VIRTIO_BLK_CONFIG_OPT_IO_SIZE_LBN 288 30091 #define VIRTIO_BLK_CONFIG_OPT_IO_SIZE_WIDTH 32 30092 /* Unused, set to zero. Note that virtio_blk_config.writeback is volatile and 30093 * not carried in config data. 30094 */ 30095 #define VIRTIO_BLK_CONFIG_UNUSED0_OFST 40 30096 #define VIRTIO_BLK_CONFIG_UNUSED0_LEN 2 30097 #define VIRTIO_BLK_CONFIG_UNUSED0_LBN 320 30098 #define VIRTIO_BLK_CONFIG_UNUSED0_WIDTH 16 30099 /* Number of queues. Only valid if the VIRTIO_BLK_F_MQ feature is negotiated. 30100 */ 30101 #define VIRTIO_BLK_CONFIG_NUM_QUEUES_OFST 42 30102 #define VIRTIO_BLK_CONFIG_NUM_QUEUES_LEN 2 30103 #define VIRTIO_BLK_CONFIG_NUM_QUEUES_LBN 336 30104 #define VIRTIO_BLK_CONFIG_NUM_QUEUES_WIDTH 16 30105 /* Maximum discard sectors size, in 512-byte units. Only valid if 30106 * VIRTIO_BLK_F_DISCARD is set. 30107 */ 30108 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SECTORS_OFST 44 30109 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SECTORS_LEN 4 30110 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SECTORS_LBN 352 30111 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SECTORS_WIDTH 32 30112 /* Maximum discard segment number. Only valid if VIRTIO_BLK_F_DISCARD is set. 30113 */ 30114 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SEG_OFST 48 30115 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SEG_LEN 4 30116 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SEG_LBN 384 30117 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SEG_WIDTH 32 30118 /* Discard sector alignment, in 512-byte units. Only valid if 30119 * VIRTIO_BLK_F_DISCARD is set. 30120 */ 30121 #define VIRTIO_BLK_CONFIG_DISCARD_SECTOR_ALIGNMENT_OFST 52 30122 #define VIRTIO_BLK_CONFIG_DISCARD_SECTOR_ALIGNMENT_LEN 4 30123 #define VIRTIO_BLK_CONFIG_DISCARD_SECTOR_ALIGNMENT_LBN 416 30124 #define VIRTIO_BLK_CONFIG_DISCARD_SECTOR_ALIGNMENT_WIDTH 32 30125 /* Maximum write zeroes sectors size, in 512-byte units. Only valid if 30126 * VIRTIO_BLK_F_WRITE_ZEROES is set. 30127 */ 30128 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SECTORS_OFST 56 30129 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SECTORS_LEN 4 30130 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SECTORS_LBN 448 30131 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SECTORS_WIDTH 32 30132 /* Maximum write zeroes segment number. Only valid if VIRTIO_BLK_F_WRITE_ZEROES 30133 * is set. 30134 */ 30135 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SEG_OFST 60 30136 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SEG_LEN 4 30137 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SEG_LBN 480 30138 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SEG_WIDTH 32 30139 /* Write zeroes request can result in deallocating one or more sectors. Only 30140 * valid if VIRTIO_BLK_F_WRITE_ZEROES is set. 30141 */ 30142 #define VIRTIO_BLK_CONFIG_WRITE_ZEROES_MAY_UNMAP_OFST 64 30143 #define VIRTIO_BLK_CONFIG_WRITE_ZEROES_MAY_UNMAP_LEN 1 30144 #define VIRTIO_BLK_CONFIG_WRITE_ZEROES_MAY_UNMAP_LBN 512 30145 #define VIRTIO_BLK_CONFIG_WRITE_ZEROES_MAY_UNMAP_WIDTH 8 30146 /* Unused, set to zero. */ 30147 #define VIRTIO_BLK_CONFIG_UNUSED1_OFST 65 30148 #define VIRTIO_BLK_CONFIG_UNUSED1_LEN 3 30149 #define VIRTIO_BLK_CONFIG_UNUSED1_LBN 520 30150 #define VIRTIO_BLK_CONFIG_UNUSED1_WIDTH 24 30151 30152 30153 /***********************************/ 30154 /* MC_CMD_DESC_PROXY_FUNC_CONFIG_SET 30155 * Set configuration for an existing descriptor proxy function. Configuration 30156 * data must match function personality. The actual function configuration is 30157 * not persisted until the caller commits with MC_CMD_DESC_PROXY_FUNC_COMMIT_IN 30158 */ 30159 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET 0x174 30160 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_MSGSET 0x174 30161 #undef MC_CMD_0x174_PRIVILEGE_CTG 30162 30163 #define MC_CMD_0x174_PRIVILEGE_CTG SRIOV_CTG_ADMIN 30164 30165 /* MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN msgrequest */ 30166 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_LENMIN 20 30167 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_LENMAX 252 30168 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_LENMAX_MCDI2 1020 30169 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_LEN(num) (20+1*(num)) 30170 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_NUM(len) (((len)-20)/1) 30171 /* Handle to descriptor proxy function (as returned by 30172 * MC_CMD_DESC_PROXY_FUNC_OPEN) 30173 */ 30174 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_HANDLE_OFST 0 30175 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_HANDLE_LEN 4 30176 /* Reserved for future extension, set to zero. */ 30177 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_RESERVED_OFST 4 30178 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_RESERVED_LEN 16 30179 /* Configuration data. Format of configuration data is determined implicitly 30180 * from function personality referred to by HANDLE. Currently, only supported 30181 * format is VIRTIO_BLK_CONFIG. 30182 */ 30183 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_OFST 20 30184 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_LEN 1 30185 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_MINNUM 0 30186 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_MAXNUM 232 30187 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_MAXNUM_MCDI2 1000 30188 30189 /* MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_OUT msgresponse */ 30190 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_OUT_LEN 0 30191 30192 30193 /***********************************/ 30194 /* MC_CMD_DESC_PROXY_FUNC_COMMIT 30195 * Commit function configuration to non-volatile or volatile store. Once 30196 * configuration is applied to hardware (which may happen immediately or on 30197 * next function/device reset) a DESC_PROXY_FUNC_CONFIG_SET MCDI event will be 30198 * delivered to callers MCDI event queue. 30199 */ 30200 #define MC_CMD_DESC_PROXY_FUNC_COMMIT 0x175 30201 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_MSGSET 0x175 30202 #undef MC_CMD_0x175_PRIVILEGE_CTG 30203 30204 #define MC_CMD_0x175_PRIVILEGE_CTG SRIOV_CTG_ADMIN 30205 30206 /* MC_CMD_DESC_PROXY_FUNC_COMMIT_IN msgrequest */ 30207 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_LEN 8 30208 /* Handle to descriptor proxy function (as returned by 30209 * MC_CMD_DESC_PROXY_FUNC_OPEN) 30210 */ 30211 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_HANDLE_OFST 0 30212 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_HANDLE_LEN 4 30213 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_STORE_OFST 4 30214 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_STORE_LEN 4 30215 /* enum: Store into non-volatile (dynamic) config */ 30216 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_NON_VOLATILE 0x0 30217 /* enum: Store into volatile (ephemeral) config */ 30218 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_VOLATILE 0x1 30219 30220 /* MC_CMD_DESC_PROXY_FUNC_COMMIT_OUT msgresponse */ 30221 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_OUT_LEN 4 30222 /* Generation count to be delivered in an event once configuration becomes live 30223 */ 30224 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_OUT_CONFIG_GENERATION_OFST 0 30225 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_OUT_CONFIG_GENERATION_LEN 4 30226 30227 30228 /***********************************/ 30229 /* MC_CMD_DESC_PROXY_FUNC_OPEN 30230 * Retrieve a handle for an existing descriptor proxy function. Returns an 30231 * integer handle, valid until function is deallocated, MC rebooted or power- 30232 * cycle. Returns ENODEV if no function with given label exists. 30233 */ 30234 #define MC_CMD_DESC_PROXY_FUNC_OPEN 0x176 30235 #define MC_CMD_DESC_PROXY_FUNC_OPEN_MSGSET 0x176 30236 #undef MC_CMD_0x176_PRIVILEGE_CTG 30237 30238 #define MC_CMD_0x176_PRIVILEGE_CTG SRIOV_CTG_ADMIN 30239 30240 /* MC_CMD_DESC_PROXY_FUNC_OPEN_IN msgrequest */ 30241 #define MC_CMD_DESC_PROXY_FUNC_OPEN_IN_LEN 40 30242 /* User-defined label (zero-terminated ASCII string) to uniquely identify the 30243 * function 30244 */ 30245 #define MC_CMD_DESC_PROXY_FUNC_OPEN_IN_LABEL_OFST 0 30246 #define MC_CMD_DESC_PROXY_FUNC_OPEN_IN_LABEL_LEN 40 30247 30248 /* MC_CMD_DESC_PROXY_FUNC_OPEN_OUT msgresponse */ 30249 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_LENMIN 40 30250 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_LENMAX 252 30251 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_LENMAX_MCDI2 1020 30252 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_LEN(num) (40+1*(num)) 30253 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_NUM(len) (((len)-40)/1) 30254 /* Handle to the descriptor proxy function */ 30255 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_HANDLE_OFST 0 30256 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_HANDLE_LEN 4 30257 /* PCIe Function ID (as struct PCIE_FUNCTION) */ 30258 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_OFST 4 30259 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LEN 8 30260 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LO_OFST 4 30261 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LO_LEN 4 30262 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LO_LBN 32 30263 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LO_WIDTH 32 30264 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_HI_OFST 8 30265 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_HI_LEN 4 30266 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_HI_LBN 64 30267 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_HI_WIDTH 32 30268 /* See structuredef: PCIE_FUNCTION */ 30269 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_PF_OFST 4 30270 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_PF_LEN 2 30271 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_VF_OFST 6 30272 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_VF_LEN 2 30273 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_INTF_OFST 8 30274 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_INTF_LEN 4 30275 /* Function personality */ 30276 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_PERSONALITY_OFST 12 30277 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_PERSONALITY_LEN 4 30278 /* Enum values, see field(s): */ 30279 /* FUNCTION_PERSONALITY/ID */ 30280 /* Function configuration state */ 30281 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_STATUS_OFST 16 30282 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_STATUS_LEN 4 30283 /* enum: Function configuration is visible to the host (live) */ 30284 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_LIVE 0x0 30285 /* enum: Function configuration is pending reset */ 30286 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_PENDING 0x1 30287 /* enum: Function configuration is missing (created, but no configuration 30288 * committed) 30289 */ 30290 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_UNCONFIGURED 0x2 30291 /* Generation count to be delivered in an event once the configuration becomes 30292 * live (if status is "pending") 30293 */ 30294 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_GENERATION_OFST 20 30295 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_GENERATION_LEN 4 30296 /* Reserved for future extension, set to zero. */ 30297 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_RESERVED_OFST 24 30298 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_RESERVED_LEN 16 30299 /* Configuration data corresponding to function personality. Currently, only 30300 * supported format is VIRTIO_BLK_CONFIG. Not valid if status is UNCONFIGURED. 30301 */ 30302 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_OFST 40 30303 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_LEN 1 30304 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_MINNUM 0 30305 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_MAXNUM 212 30306 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_MAXNUM_MCDI2 980 30307 30308 30309 /***********************************/ 30310 /* MC_CMD_DESC_PROXY_FUNC_CLOSE 30311 * Releases a handle for an open descriptor proxy function. If proxying was 30312 * enabled on the device, the caller is expected to gracefully stop it using 30313 * MC_CMD_DESC_PROXY_FUNC_DISABLE prior to calling this function. Closing an 30314 * active device without disabling proxying will result in forced close, which 30315 * will put the device into a failed state and signal the host driver of the 30316 * error (for virtio, DEVICE_NEEDS_RESET flag would be set on the host side) 30317 */ 30318 #define MC_CMD_DESC_PROXY_FUNC_CLOSE 0x1a1 30319 #define MC_CMD_DESC_PROXY_FUNC_CLOSE_MSGSET 0x1a1 30320 #undef MC_CMD_0x1a1_PRIVILEGE_CTG 30321 30322 #define MC_CMD_0x1a1_PRIVILEGE_CTG SRIOV_CTG_ADMIN 30323 30324 /* MC_CMD_DESC_PROXY_FUNC_CLOSE_IN msgrequest */ 30325 #define MC_CMD_DESC_PROXY_FUNC_CLOSE_IN_LEN 4 30326 /* Handle to the descriptor proxy function */ 30327 #define MC_CMD_DESC_PROXY_FUNC_CLOSE_IN_HANDLE_OFST 0 30328 #define MC_CMD_DESC_PROXY_FUNC_CLOSE_IN_HANDLE_LEN 4 30329 30330 /* MC_CMD_DESC_PROXY_FUNC_CLOSE_OUT msgresponse */ 30331 #define MC_CMD_DESC_PROXY_FUNC_CLOSE_OUT_LEN 0 30332 30333 /* DESC_PROXY_FUNC_MAP structuredef */ 30334 #define DESC_PROXY_FUNC_MAP_LEN 52 30335 /* PCIe function ID (as struct PCIE_FUNCTION) */ 30336 #define DESC_PROXY_FUNC_MAP_FUNC_OFST 0 30337 #define DESC_PROXY_FUNC_MAP_FUNC_LEN 8 30338 #define DESC_PROXY_FUNC_MAP_FUNC_LO_OFST 0 30339 #define DESC_PROXY_FUNC_MAP_FUNC_LO_LEN 4 30340 #define DESC_PROXY_FUNC_MAP_FUNC_LO_LBN 0 30341 #define DESC_PROXY_FUNC_MAP_FUNC_LO_WIDTH 32 30342 #define DESC_PROXY_FUNC_MAP_FUNC_HI_OFST 4 30343 #define DESC_PROXY_FUNC_MAP_FUNC_HI_LEN 4 30344 #define DESC_PROXY_FUNC_MAP_FUNC_HI_LBN 32 30345 #define DESC_PROXY_FUNC_MAP_FUNC_HI_WIDTH 32 30346 #define DESC_PROXY_FUNC_MAP_FUNC_LBN 0 30347 #define DESC_PROXY_FUNC_MAP_FUNC_WIDTH 64 30348 /* See structuredef: PCIE_FUNCTION */ 30349 #define DESC_PROXY_FUNC_MAP_FUNC_PF_OFST 0 30350 #define DESC_PROXY_FUNC_MAP_FUNC_PF_LEN 2 30351 #define DESC_PROXY_FUNC_MAP_FUNC_PF_LBN 0 30352 #define DESC_PROXY_FUNC_MAP_FUNC_PF_WIDTH 16 30353 #define DESC_PROXY_FUNC_MAP_FUNC_VF_OFST 2 30354 #define DESC_PROXY_FUNC_MAP_FUNC_VF_LEN 2 30355 #define DESC_PROXY_FUNC_MAP_FUNC_VF_LBN 16 30356 #define DESC_PROXY_FUNC_MAP_FUNC_VF_WIDTH 16 30357 #define DESC_PROXY_FUNC_MAP_FUNC_INTF_OFST 4 30358 #define DESC_PROXY_FUNC_MAP_FUNC_INTF_LEN 4 30359 #define DESC_PROXY_FUNC_MAP_FUNC_INTF_LBN 32 30360 #define DESC_PROXY_FUNC_MAP_FUNC_INTF_WIDTH 32 30361 /* Function personality */ 30362 #define DESC_PROXY_FUNC_MAP_PERSONALITY_OFST 8 30363 #define DESC_PROXY_FUNC_MAP_PERSONALITY_LEN 4 30364 /* Enum values, see field(s): */ 30365 /* FUNCTION_PERSONALITY/ID */ 30366 #define DESC_PROXY_FUNC_MAP_PERSONALITY_LBN 64 30367 #define DESC_PROXY_FUNC_MAP_PERSONALITY_WIDTH 32 30368 /* User-defined label (zero-terminated ASCII string) to uniquely identify the 30369 * function 30370 */ 30371 #define DESC_PROXY_FUNC_MAP_LABEL_OFST 12 30372 #define DESC_PROXY_FUNC_MAP_LABEL_LEN 40 30373 #define DESC_PROXY_FUNC_MAP_LABEL_LBN 96 30374 #define DESC_PROXY_FUNC_MAP_LABEL_WIDTH 320 30375 30376 30377 /***********************************/ 30378 /* MC_CMD_DESC_PROXY_FUNC_ENUM 30379 * Enumerate existing descriptor proxy functions 30380 */ 30381 #define MC_CMD_DESC_PROXY_FUNC_ENUM 0x177 30382 #define MC_CMD_DESC_PROXY_FUNC_ENUM_MSGSET 0x177 30383 #undef MC_CMD_0x177_PRIVILEGE_CTG 30384 30385 #define MC_CMD_0x177_PRIVILEGE_CTG SRIOV_CTG_ADMIN 30386 30387 /* MC_CMD_DESC_PROXY_FUNC_ENUM_IN msgrequest */ 30388 #define MC_CMD_DESC_PROXY_FUNC_ENUM_IN_LEN 4 30389 /* Starting index, set to 0 on first request. See 30390 * MC_CMD_DESC_PROXY_FUNC_ENUM_OUT/FLAGS. 30391 */ 30392 #define MC_CMD_DESC_PROXY_FUNC_ENUM_IN_START_IDX_OFST 0 30393 #define MC_CMD_DESC_PROXY_FUNC_ENUM_IN_START_IDX_LEN 4 30394 30395 /* MC_CMD_DESC_PROXY_FUNC_ENUM_OUT msgresponse */ 30396 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_LENMIN 4 30397 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_LENMAX 212 30398 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_LENMAX_MCDI2 992 30399 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_LEN(num) (4+52*(num)) 30400 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_NUM(len) (((len)-4)/52) 30401 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FLAGS_OFST 0 30402 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FLAGS_LEN 4 30403 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_MORE_DATA_OFST 0 30404 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_MORE_DATA_LBN 0 30405 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_MORE_DATA_WIDTH 1 30406 /* Function map, as array of DESC_PROXY_FUNC_MAP */ 30407 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_OFST 4 30408 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_LEN 52 30409 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_MINNUM 0 30410 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_MAXNUM 4 30411 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_MAXNUM_MCDI2 19 30412 /* See structuredef: DESC_PROXY_FUNC_MAP */ 30413 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_FUNC_OFST 4 30414 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_FUNC_LEN 8 30415 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_FUNC_LO_OFST 4 30416 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_FUNC_LO_LEN 4 30417 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_FUNC_LO_LBN 32 30418 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_FUNC_LO_WIDTH 32 30419 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_FUNC_HI_OFST 8 30420 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_FUNC_HI_LEN 4 30421 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_FUNC_HI_LBN 64 30422 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_FUNC_HI_WIDTH 32 30423 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_FUNC_PF_OFST 4 30424 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_FUNC_PF_LEN 2 30425 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_FUNC_VF_OFST 6 30426 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_FUNC_VF_LEN 2 30427 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_FUNC_INTF_OFST 8 30428 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_FUNC_INTF_LEN 4 30429 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_PERSONALITY_OFST 12 30430 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_PERSONALITY_LEN 4 30431 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_LABEL_OFST 16 30432 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_LABEL_LEN 40 30433 30434 30435 /***********************************/ 30436 /* MC_CMD_DESC_PROXY_FUNC_ENABLE 30437 * Enable descriptor proxying for function into target event queue. Returns VI 30438 * allocation info for the proxy source function, so that the caller can map 30439 * absolute VI IDs from descriptor proxy events back to the originating 30440 * function. This is a legacy function that only supports single queue proxy 30441 * devices. It is also limited in that it can only be called after host driver 30442 * attach (once VI allocation is known) and will return MC_CMD_ERR_ENOTCONN 30443 * otherwise. For new code, see MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE which 30444 * supports multi-queue devices and has no dependency on host driver attach. 30445 */ 30446 #define MC_CMD_DESC_PROXY_FUNC_ENABLE 0x178 30447 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_MSGSET 0x178 30448 #undef MC_CMD_0x178_PRIVILEGE_CTG 30449 30450 #define MC_CMD_0x178_PRIVILEGE_CTG SRIOV_CTG_ADMIN 30451 30452 /* MC_CMD_DESC_PROXY_FUNC_ENABLE_IN msgrequest */ 30453 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_IN_LEN 8 30454 /* Handle to descriptor proxy function (as returned by 30455 * MC_CMD_DESC_PROXY_FUNC_OPEN) 30456 */ 30457 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_IN_HANDLE_OFST 0 30458 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_IN_HANDLE_LEN 4 30459 /* Descriptor proxy sink queue (caller function relative). Must be extended 30460 * width event queue 30461 */ 30462 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_IN_TARGET_EVQ_OFST 4 30463 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_IN_TARGET_EVQ_LEN 4 30464 30465 /* MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT msgresponse */ 30466 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT_LEN 8 30467 /* The number of VIs allocated on the function */ 30468 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT_VI_COUNT_OFST 0 30469 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT_VI_COUNT_LEN 4 30470 /* The base absolute VI number allocated to the function. */ 30471 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT_VI_BASE_OFST 4 30472 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT_VI_BASE_LEN 4 30473 30474 30475 /***********************************/ 30476 /* MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE 30477 * Enable descriptor proxying for a source queue on a host function into target 30478 * event queue. Source queue number is a relative virtqueue number on the 30479 * source function (0 to max_virtqueues-1). For a multi-queue device, the 30480 * caller must enable all source queues individually. To retrieve absolute VI 30481 * information for the source function (so that VI IDs from descriptor proxy 30482 * events can be mapped back to source function / queue) see 30483 * MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO 30484 */ 30485 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE 0x1d0 30486 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_MSGSET 0x1d0 30487 #undef MC_CMD_0x1d0_PRIVILEGE_CTG 30488 30489 #define MC_CMD_0x1d0_PRIVILEGE_CTG SRIOV_CTG_ADMIN 30490 30491 /* MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN msgrequest */ 30492 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_LEN 12 30493 /* Handle to descriptor proxy function (as returned by 30494 * MC_CMD_DESC_PROXY_FUNC_OPEN) 30495 */ 30496 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_HANDLE_OFST 0 30497 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_HANDLE_LEN 4 30498 /* Source relative queue number to enable proxying on */ 30499 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_SOURCE_QUEUE_OFST 4 30500 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_SOURCE_QUEUE_LEN 4 30501 /* Descriptor proxy sink queue (caller function relative). Must be extended 30502 * width event queue 30503 */ 30504 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_TARGET_EVQ_OFST 8 30505 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_TARGET_EVQ_LEN 4 30506 30507 /* MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_OUT msgresponse */ 30508 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_OUT_LEN 0 30509 30510 30511 /***********************************/ 30512 /* MC_CMD_DESC_PROXY_FUNC_DISABLE 30513 * Disable descriptor proxying for function. For multi-queue functions, 30514 * disables all queues. 30515 */ 30516 #define MC_CMD_DESC_PROXY_FUNC_DISABLE 0x179 30517 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_MSGSET 0x179 30518 #undef MC_CMD_0x179_PRIVILEGE_CTG 30519 30520 #define MC_CMD_0x179_PRIVILEGE_CTG SRIOV_CTG_ADMIN 30521 30522 /* MC_CMD_DESC_PROXY_FUNC_DISABLE_IN msgrequest */ 30523 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_IN_LEN 4 30524 /* Handle to descriptor proxy function (as returned by 30525 * MC_CMD_DESC_PROXY_FUNC_OPEN) 30526 */ 30527 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_IN_HANDLE_OFST 0 30528 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_IN_HANDLE_LEN 4 30529 30530 /* MC_CMD_DESC_PROXY_FUNC_DISABLE_OUT msgresponse */ 30531 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_OUT_LEN 0 30532 30533 30534 /***********************************/ 30535 /* MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE 30536 * Disable descriptor proxying for a specific source queue on a function. 30537 */ 30538 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE 0x1d1 30539 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_MSGSET 0x1d1 30540 #undef MC_CMD_0x1d1_PRIVILEGE_CTG 30541 30542 #define MC_CMD_0x1d1_PRIVILEGE_CTG SRIOV_CTG_ADMIN 30543 30544 /* MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN msgrequest */ 30545 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN_LEN 8 30546 /* Handle to descriptor proxy function (as returned by 30547 * MC_CMD_DESC_PROXY_FUNC_OPEN) 30548 */ 30549 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN_HANDLE_OFST 0 30550 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN_HANDLE_LEN 4 30551 /* Source relative queue number to disable proxying on */ 30552 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN_SOURCE_QUEUE_OFST 4 30553 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN_SOURCE_QUEUE_LEN 4 30554 30555 /* MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_OUT msgresponse */ 30556 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_OUT_LEN 0 30557 30558 30559 /***********************************/ 30560 /* MC_CMD_DESC_PROXY_GET_VI_INFO 30561 * Returns absolute VI allocation information for the descriptor proxy source 30562 * function referenced by HANDLE, so that the caller can map absolute VI IDs 30563 * from descriptor proxy events back to the originating function and queue. The 30564 * call is only valid after the host driver for the source function has 30565 * attached (after receiving a driver attach event for the descriptor proxy 30566 * function) and will fail with ENOTCONN otherwise. 30567 */ 30568 #define MC_CMD_DESC_PROXY_GET_VI_INFO 0x1d2 30569 #define MC_CMD_DESC_PROXY_GET_VI_INFO_MSGSET 0x1d2 30570 #undef MC_CMD_0x1d2_PRIVILEGE_CTG 30571 30572 #define MC_CMD_0x1d2_PRIVILEGE_CTG SRIOV_CTG_ADMIN 30573 30574 /* MC_CMD_DESC_PROXY_GET_VI_INFO_IN msgrequest */ 30575 #define MC_CMD_DESC_PROXY_GET_VI_INFO_IN_LEN 4 30576 /* Handle to descriptor proxy function (as returned by 30577 * MC_CMD_DESC_PROXY_FUNC_OPEN) 30578 */ 30579 #define MC_CMD_DESC_PROXY_GET_VI_INFO_IN_HANDLE_OFST 0 30580 #define MC_CMD_DESC_PROXY_GET_VI_INFO_IN_HANDLE_LEN 4 30581 30582 /* MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT msgresponse */ 30583 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_LENMIN 0 30584 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_LENMAX 252 30585 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_LENMAX_MCDI2 1020 30586 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_LEN(num) (0+4*(num)) 30587 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_NUM(len) (((len)-0)/4) 30588 /* VI information (VI ID + VI relative queue number) for each of the source 30589 * queues (in order from 0 to max_virtqueues-1), as array of QUEUE_ID 30590 * structures. 30591 */ 30592 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_OFST 0 30593 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_LEN 4 30594 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_MINNUM 0 30595 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_MAXNUM 63 30596 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_MAXNUM_MCDI2 255 30597 /* See structuredef: QUEUE_ID */ 30598 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_ABS_VI_OFST 0 30599 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_ABS_VI_LEN 2 30600 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_REL_QUEUE_LBN 16 30601 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_REL_QUEUE_WIDTH 1 30602 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_RESERVED_LBN 17 30603 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_RESERVED_WIDTH 15 30604 30605 30606 /***********************************/ 30607 /* MC_CMD_GET_ADDR_SPC_ID 30608 * Get Address space identifier for use in mem2mem descriptors for a given 30609 * target. See SF-120734-TC for details on ADDR_SPC_IDs and mem2mem 30610 * descriptors. 30611 */ 30612 #define MC_CMD_GET_ADDR_SPC_ID 0x1a0 30613 #define MC_CMD_GET_ADDR_SPC_ID_MSGSET 0x1a0 30614 #undef MC_CMD_0x1a0_PRIVILEGE_CTG 30615 30616 #define MC_CMD_0x1a0_PRIVILEGE_CTG SRIOV_CTG_ADMIN 30617 30618 /* MC_CMD_GET_ADDR_SPC_ID_IN msgrequest */ 30619 #define MC_CMD_GET_ADDR_SPC_ID_IN_LEN 16 30620 /* Resource type to get ADDR_SPC_ID for */ 30621 #define MC_CMD_GET_ADDR_SPC_ID_IN_TYPE_OFST 0 30622 #define MC_CMD_GET_ADDR_SPC_ID_IN_TYPE_LEN 4 30623 /* enum: Address space ID for host/AP memory DMA over the same interface this 30624 * MCDI was called on 30625 */ 30626 #define MC_CMD_GET_ADDR_SPC_ID_IN_SELF 0x0 30627 /* enum: Address space ID for host/AP memory DMA via PCI interface and function 30628 * specified by FUNC 30629 */ 30630 #define MC_CMD_GET_ADDR_SPC_ID_IN_PCI_FUNC 0x1 30631 /* enum: Address space ID for host/AP memory DMA via PCI interface and function 30632 * specified by FUNC with PASID value specified by PASID 30633 */ 30634 #define MC_CMD_GET_ADDR_SPC_ID_IN_PCI_FUNC_PASID 0x2 30635 /* enum: Address space ID for host/AP memory DMA via PCI interface and function 30636 * specified by FUNC with PASID value of relative VI specified by VI 30637 */ 30638 #define MC_CMD_GET_ADDR_SPC_ID_IN_REL_VI 0x3 30639 /* enum: Address space ID for host/AP memory DMA via PCI interface, function 30640 * and PASID value of absolute VI specified by VI 30641 */ 30642 #define MC_CMD_GET_ADDR_SPC_ID_IN_ABS_VI 0x4 30643 /* enum: Address space ID for host memory DMA via PCI interface and function of 30644 * descriptor proxy function specified by HANDLE 30645 */ 30646 #define MC_CMD_GET_ADDR_SPC_ID_IN_DESC_PROXY_HANDLE 0x5 30647 /* enum: Address space ID for DMA to/from MC memory */ 30648 #define MC_CMD_GET_ADDR_SPC_ID_IN_MC_MEM 0x6 30649 /* enum: Address space ID for DMA to/from other SmartNIC memory (on-chip, DDR) 30650 */ 30651 #define MC_CMD_GET_ADDR_SPC_ID_IN_NIC_MEM 0x7 30652 /* PCIe Function ID (as struct PCIE_FUNCTION). Only valid if TYPE is PCI_FUNC, 30653 * PCI_FUNC_PASID or REL_VI. 30654 */ 30655 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_OFST 4 30656 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LEN 8 30657 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LO_OFST 4 30658 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LO_LEN 4 30659 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LO_LBN 32 30660 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LO_WIDTH 32 30661 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_HI_OFST 8 30662 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_HI_LEN 4 30663 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_HI_LBN 64 30664 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_HI_WIDTH 32 30665 /* See structuredef: PCIE_FUNCTION */ 30666 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_PF_OFST 4 30667 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_PF_LEN 2 30668 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_VF_OFST 6 30669 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_VF_LEN 2 30670 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_INTF_OFST 8 30671 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_INTF_LEN 4 30672 /* PASID value. Only valid if TYPE is PCI_FUNC_PASID. */ 30673 #define MC_CMD_GET_ADDR_SPC_ID_IN_PASID_OFST 12 30674 #define MC_CMD_GET_ADDR_SPC_ID_IN_PASID_LEN 4 30675 /* Relative or absolute VI number. Only valid if TYPE is REL_VI or ABS_VI */ 30676 #define MC_CMD_GET_ADDR_SPC_ID_IN_VI_OFST 12 30677 #define MC_CMD_GET_ADDR_SPC_ID_IN_VI_LEN 4 30678 /* Descriptor proxy function handle. Only valid if TYPE is DESC_PROXY_HANDLE. 30679 */ 30680 #define MC_CMD_GET_ADDR_SPC_ID_IN_HANDLE_OFST 4 30681 #define MC_CMD_GET_ADDR_SPC_ID_IN_HANDLE_LEN 4 30682 30683 /* MC_CMD_GET_ADDR_SPC_ID_OUT msgresponse */ 30684 #define MC_CMD_GET_ADDR_SPC_ID_OUT_LEN 8 30685 /* Address Space ID for the requested target. Only the lower 36 bits are valid 30686 * in the current SmartNIC implementation. 30687 */ 30688 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_OFST 0 30689 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LEN 8 30690 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LO_OFST 0 30691 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LO_LEN 4 30692 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LO_LBN 0 30693 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LO_WIDTH 32 30694 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_HI_OFST 4 30695 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_HI_LEN 4 30696 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_HI_LBN 32 30697 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_HI_WIDTH 32 30698 30699 30700 /***********************************/ 30701 /* MC_CMD_GET_CLIENT_HANDLE 30702 * Obtain a handle for a client given a description of that client. N.B. this 30703 * command is subject to change given the open discussion about how PCIe 30704 * functions should be referenced on an iEP (integrated endpoint: functions 30705 * span multiple buses) and multihost (multiple PCIe interfaces) system. 30706 */ 30707 #define MC_CMD_GET_CLIENT_HANDLE 0x1c3 30708 #define MC_CMD_GET_CLIENT_HANDLE_MSGSET 0x1c3 30709 #undef MC_CMD_0x1c3_PRIVILEGE_CTG 30710 30711 #define MC_CMD_0x1c3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 30712 30713 /* MC_CMD_GET_CLIENT_HANDLE_IN msgrequest */ 30714 #define MC_CMD_GET_CLIENT_HANDLE_IN_LEN 12 30715 /* Type of client to get a client handle for */ 30716 #define MC_CMD_GET_CLIENT_HANDLE_IN_TYPE_OFST 0 30717 #define MC_CMD_GET_CLIENT_HANDLE_IN_TYPE_LEN 4 30718 /* enum: Obtain a client handle for a PCIe function-type client. */ 30719 #define MC_CMD_GET_CLIENT_HANDLE_IN_TYPE_FUNC 0x0 30720 /* PCIe Function ID (as struct PCIE_FUNCTION). Valid when TYPE==FUNC. Use: - 30721 * INTF=CALLER, PF=PF_NULL, VF=VF_NULL to refer to the calling function - 30722 * INTF=CALLER, PF=PF_NULL, VF=... to refer to a VF child of the calling PF or 30723 * a sibling VF of the calling VF. - INTF=CALLER, PF=..., VF=VF_NULL to refer 30724 * to a PF on the calling interface - INTF=CALLER, PF=..., VF=... to refer to a 30725 * VF on the calling interface - INTF=..., PF=..., VF=VF_NULL to refer to a PF 30726 * on a named interface - INTF=..., PF=..., VF=... to refer to a VF on a named 30727 * interface where ... refers to a small integer for the VF/PF fields, and to 30728 * values from the PCIE_INTERFACE enum for for the INTF field. It's only 30729 * meaningful to use INTF=CALLER within a structure that's an argument to 30730 * MC_CMD_DEVEL_GET_CLIENT_HANDLE. 30731 */ 30732 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_OFST 4 30733 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LEN 8 30734 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_OFST 4 30735 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_LEN 4 30736 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_LBN 32 30737 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_WIDTH 32 30738 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_OFST 8 30739 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_LEN 4 30740 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_LBN 64 30741 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_WIDTH 32 30742 /* enum: NULL value for the INTF field of struct PCIE_FUNCTION. Provided for 30743 * backwards compatibility only, callers should use PCIE_INTERFACE_CALLER. 30744 */ 30745 #define MC_CMD_GET_CLIENT_HANDLE_IN_PCIE_FUNCTION_INTF_NULL 0xffffffff 30746 /* See structuredef: PCIE_FUNCTION */ 30747 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_PF_OFST 4 30748 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_PF_LEN 2 30749 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_VF_OFST 6 30750 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_VF_LEN 2 30751 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_INTF_OFST 8 30752 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_INTF_LEN 4 30753 30754 /* MC_CMD_GET_CLIENT_HANDLE_OUT msgresponse */ 30755 #define MC_CMD_GET_CLIENT_HANDLE_OUT_LEN 4 30756 #define MC_CMD_GET_CLIENT_HANDLE_OUT_HANDLE_OFST 0 30757 #define MC_CMD_GET_CLIENT_HANDLE_OUT_HANDLE_LEN 4 30758 30759 /* MAE_FIELD_FLAGS structuredef */ 30760 #define MAE_FIELD_FLAGS_LEN 4 30761 #define MAE_FIELD_FLAGS_FLAT_OFST 0 30762 #define MAE_FIELD_FLAGS_FLAT_LEN 4 30763 #define MAE_FIELD_FLAGS_SUPPORT_STATUS_OFST 0 30764 #define MAE_FIELD_FLAGS_SUPPORT_STATUS_LBN 0 30765 #define MAE_FIELD_FLAGS_SUPPORT_STATUS_WIDTH 6 30766 #define MAE_FIELD_FLAGS_MASK_AFFECTS_CLASS_OFST 0 30767 #define MAE_FIELD_FLAGS_MASK_AFFECTS_CLASS_LBN 6 30768 #define MAE_FIELD_FLAGS_MASK_AFFECTS_CLASS_WIDTH 1 30769 #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_OFST 0 30770 #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_LBN 7 30771 #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_WIDTH 1 30772 #define MAE_FIELD_FLAGS_FLAT_LBN 0 30773 #define MAE_FIELD_FLAGS_FLAT_WIDTH 32 30774 30775 /* MAE_ENC_FIELD_PAIRS structuredef: Mask and value pairs for all fields that 30776 * it makes sense to use to determine the encapsulation type of a packet. Its 30777 * intended use is to keep a common packing of fields across multiple MCDI 30778 * commands, keeping things inherently sychronised and allowing code shared. To 30779 * use in an MCDI command, the command should end with a variable length byte 30780 * array populated with this structure. Do not extend this structure. Instead, 30781 * create _Vx versions with the necessary fields appended. That way, the 30782 * existing semantics for extending MCDI commands are preserved. 30783 */ 30784 #define MAE_ENC_FIELD_PAIRS_LEN 156 30785 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_OFST 0 30786 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_LEN 4 30787 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_LBN 0 30788 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_WIDTH 32 30789 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_OFST 4 30790 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LEN 4 30791 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LBN 32 30792 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_WIDTH 32 30793 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_OFST 8 30794 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_LEN 2 30795 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_LBN 64 30796 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_WIDTH 16 30797 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_OFST 10 30798 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_LEN 2 30799 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_LBN 80 30800 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_WIDTH 16 30801 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_OFST 12 30802 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_LEN 2 30803 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_LBN 96 30804 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_WIDTH 16 30805 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_OFST 14 30806 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_LEN 2 30807 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_LBN 112 30808 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_WIDTH 16 30809 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_OFST 16 30810 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_LEN 2 30811 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_LBN 128 30812 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_WIDTH 16 30813 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_OFST 18 30814 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LEN 2 30815 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LBN 144 30816 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_WIDTH 16 30817 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_OFST 20 30818 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_LEN 2 30819 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_LBN 160 30820 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_WIDTH 16 30821 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_OFST 22 30822 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_LEN 2 30823 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_LBN 176 30824 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_WIDTH 16 30825 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_OFST 24 30826 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_LEN 2 30827 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_LBN 192 30828 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_WIDTH 16 30829 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_OFST 26 30830 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LEN 2 30831 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LBN 208 30832 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_WIDTH 16 30833 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_OFST 28 30834 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_LEN 6 30835 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_LBN 224 30836 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_WIDTH 48 30837 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_OFST 34 30838 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_LEN 6 30839 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_LBN 272 30840 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_WIDTH 48 30841 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_OFST 40 30842 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_LEN 6 30843 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_LBN 320 30844 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_WIDTH 48 30845 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_OFST 46 30846 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_LEN 6 30847 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_LBN 368 30848 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_WIDTH 48 30849 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_OFST 52 30850 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_LEN 4 30851 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_LBN 416 30852 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_WIDTH 32 30853 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_OFST 56 30854 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_LEN 4 30855 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_LBN 448 30856 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_WIDTH 32 30857 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_OFST 60 30858 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_LEN 16 30859 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_LBN 480 30860 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_WIDTH 128 30861 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_OFST 76 30862 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_LEN 16 30863 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_LBN 608 30864 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_WIDTH 128 30865 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_OFST 92 30866 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_LEN 4 30867 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_LBN 736 30868 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_WIDTH 32 30869 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_OFST 96 30870 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_LEN 4 30871 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_LBN 768 30872 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_WIDTH 32 30873 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_OFST 100 30874 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_LEN 16 30875 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_LBN 800 30876 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_WIDTH 128 30877 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_OFST 116 30878 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_LEN 16 30879 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_LBN 928 30880 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_WIDTH 128 30881 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_OFST 132 30882 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_LEN 1 30883 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_LBN 1056 30884 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_WIDTH 8 30885 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_OFST 133 30886 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_LEN 1 30887 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_LBN 1064 30888 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_WIDTH 8 30889 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_OFST 134 30890 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_LEN 1 30891 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_LBN 1072 30892 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_WIDTH 8 30893 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_OFST 135 30894 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_LEN 1 30895 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_LBN 1080 30896 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_WIDTH 8 30897 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_OFST 136 30898 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_LEN 1 30899 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_LBN 1088 30900 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_WIDTH 8 30901 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_OFST 137 30902 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_LEN 1 30903 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_LBN 1096 30904 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_WIDTH 8 30905 /* Deprecated in favour of ENC_FLAGS alias. */ 30906 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_OFST 138 30907 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_LEN 1 30908 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_OFST 138 30909 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_LBN 0 30910 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_WIDTH 1 30911 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_OFST 138 30912 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_LBN 1 30913 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_WIDTH 1 30914 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_OFST 138 30915 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_LBN 2 30916 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_WIDTH 1 30917 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_LBN 1104 30918 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_WIDTH 8 30919 /* More generic alias for ENC_VLAN_FLAGS. */ 30920 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_OFST 138 30921 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_LEN 1 30922 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_LBN 1104 30923 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_WIDTH 8 30924 /* Deprecated in favour of ENC_FLAGS_MASK alias. */ 30925 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_OFST 139 30926 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_LEN 1 30927 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_MASK_OFST 139 30928 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_MASK_LBN 0 30929 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_MASK_WIDTH 1 30930 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_MASK_OFST 139 30931 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_MASK_LBN 1 30932 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_MASK_WIDTH 1 30933 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_MASK_OFST 139 30934 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_MASK_LBN 2 30935 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_MASK_WIDTH 1 30936 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_LBN 1112 30937 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_WIDTH 8 30938 /* More generic alias for ENC_FLAGS_MASK. */ 30939 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_OFST 139 30940 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_LEN 1 30941 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_LBN 1112 30942 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_WIDTH 8 30943 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_OFST 140 30944 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_LEN 4 30945 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_LBN 1120 30946 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_WIDTH 32 30947 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_OFST 144 30948 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_LEN 4 30949 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_LBN 1152 30950 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_WIDTH 32 30951 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_OFST 148 30952 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_LEN 2 30953 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_LBN 1184 30954 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_WIDTH 16 30955 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_OFST 150 30956 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_LEN 2 30957 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_LBN 1200 30958 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_WIDTH 16 30959 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_OFST 152 30960 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_LEN 2 30961 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_LBN 1216 30962 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_WIDTH 16 30963 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_OFST 154 30964 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_LEN 2 30965 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_LBN 1232 30966 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_WIDTH 16 30967 30968 /* MAE_FIELD_MASK_VALUE_PAIRS structuredef: Mask and value pairs for all fields 30969 * currently defined. Same semantics as MAE_ENC_FIELD_PAIRS. 30970 */ 30971 #define MAE_FIELD_MASK_VALUE_PAIRS_LEN 344 30972 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_OFST 0 30973 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_LEN 4 30974 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_LBN 0 30975 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_WIDTH 32 30976 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_OFST 4 30977 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LEN 4 30978 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LBN 32 30979 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_WIDTH 32 30980 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_OFST 8 30981 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_LEN 4 30982 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_LBN 64 30983 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_WIDTH 32 30984 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_OFST 12 30985 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_LEN 4 30986 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_LBN 96 30987 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_WIDTH 32 30988 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_OFST 16 30989 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_LEN 2 30990 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_LBN 128 30991 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_WIDTH 16 30992 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_OFST 18 30993 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_LEN 2 30994 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_LBN 144 30995 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_WIDTH 16 30996 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_OFST 20 30997 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_LEN 2 30998 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_LBN 160 30999 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_WIDTH 16 31000 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_OFST 22 31001 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_LEN 2 31002 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_LBN 176 31003 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_WIDTH 16 31004 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_OFST 24 31005 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_LEN 2 31006 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_LBN 192 31007 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_WIDTH 16 31008 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_OFST 26 31009 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_LEN 2 31010 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_LBN 208 31011 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_WIDTH 16 31012 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_OFST 28 31013 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_LEN 2 31014 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_LBN 224 31015 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_WIDTH 16 31016 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_OFST 30 31017 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_LEN 2 31018 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_LBN 240 31019 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_WIDTH 16 31020 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_OFST 32 31021 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_LEN 2 31022 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_LBN 256 31023 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_WIDTH 16 31024 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_OFST 34 31025 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_LEN 2 31026 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_LBN 272 31027 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_WIDTH 16 31028 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_OFST 36 31029 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_LEN 6 31030 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_LBN 288 31031 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_WIDTH 48 31032 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_OFST 42 31033 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_LEN 6 31034 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_LBN 336 31035 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_WIDTH 48 31036 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_OFST 48 31037 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_LEN 6 31038 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_LBN 384 31039 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_WIDTH 48 31040 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_OFST 54 31041 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_LEN 6 31042 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_LBN 432 31043 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_WIDTH 48 31044 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_OFST 60 31045 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_LEN 4 31046 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_LBN 480 31047 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_WIDTH 32 31048 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_OFST 64 31049 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_LEN 4 31050 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_LBN 512 31051 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_WIDTH 32 31052 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_OFST 68 31053 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_LEN 16 31054 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_LBN 544 31055 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_WIDTH 128 31056 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_OFST 84 31057 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_LEN 16 31058 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_LBN 672 31059 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_WIDTH 128 31060 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_OFST 100 31061 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_LEN 4 31062 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_LBN 800 31063 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_WIDTH 32 31064 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_OFST 104 31065 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_LEN 4 31066 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_LBN 832 31067 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_WIDTH 32 31068 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_OFST 108 31069 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_LEN 16 31070 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_LBN 864 31071 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_WIDTH 128 31072 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_OFST 124 31073 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_LEN 16 31074 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_LBN 992 31075 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_WIDTH 128 31076 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_OFST 140 31077 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_LEN 1 31078 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_LBN 1120 31079 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_WIDTH 8 31080 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_OFST 141 31081 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_LEN 1 31082 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_LBN 1128 31083 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_WIDTH 8 31084 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_OFST 142 31085 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_LEN 1 31086 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_LBN 1136 31087 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_WIDTH 8 31088 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_OFST 143 31089 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_LEN 1 31090 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_LBN 1144 31091 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_WIDTH 8 31092 /* Due to hardware limitations, firmware may return 31093 * MC_CMD_ERR_EINVAL(BAD_IP_TTL) when attempting to match on an IP_TTL value 31094 * other than 1. 31095 */ 31096 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_OFST 144 31097 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_LEN 1 31098 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_LBN 1152 31099 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_WIDTH 8 31100 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_OFST 145 31101 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_LEN 1 31102 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_LBN 1160 31103 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_WIDTH 8 31104 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_OFST 148 31105 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_LEN 4 31106 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_LBN 1184 31107 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_WIDTH 32 31108 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_OFST 152 31109 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_LEN 4 31110 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_LBN 1216 31111 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_WIDTH 32 31112 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_OFST 156 31113 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_LEN 2 31114 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_LBN 1248 31115 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_WIDTH 16 31116 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_OFST 158 31117 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_LEN 2 31118 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_LBN 1264 31119 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_WIDTH 16 31120 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_OFST 160 31121 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_LEN 2 31122 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_LBN 1280 31123 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_WIDTH 16 31124 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_OFST 162 31125 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_LEN 2 31126 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_LBN 1296 31127 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_WIDTH 16 31128 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_OFST 164 31129 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_LEN 2 31130 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_LBN 1312 31131 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_WIDTH 16 31132 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_OFST 166 31133 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_LEN 2 31134 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_LBN 1328 31135 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_WIDTH 16 31136 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_OFST 168 31137 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_LEN 4 31138 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_LBN 1344 31139 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_WIDTH 32 31140 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_OFST 172 31141 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_LEN 4 31142 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_LBN 1376 31143 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_WIDTH 32 31144 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_OFST 176 31145 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_LEN 4 31146 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_LBN 1408 31147 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_WIDTH 32 31148 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_OFST 180 31149 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_LEN 4 31150 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_LBN 1440 31151 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_WIDTH 32 31152 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_OFST 184 31153 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_LEN 2 31154 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_LBN 1472 31155 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_WIDTH 16 31156 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_OFST 188 31157 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_LEN 2 31158 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_LBN 1504 31159 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_WIDTH 16 31160 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_OFST 192 31161 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_LEN 2 31162 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_LBN 1536 31163 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_WIDTH 16 31164 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_OFST 194 31165 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_LEN 2 31166 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_LBN 1552 31167 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_WIDTH 16 31168 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_OFST 196 31169 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_LEN 2 31170 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_LBN 1568 31171 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_WIDTH 16 31172 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_OFST 198 31173 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LEN 2 31174 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LBN 1584 31175 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_WIDTH 16 31176 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_OFST 200 31177 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_LEN 2 31178 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_LBN 1600 31179 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_WIDTH 16 31180 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_OFST 202 31181 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_LEN 2 31182 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_LBN 1616 31183 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_WIDTH 16 31184 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_OFST 204 31185 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_LEN 2 31186 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_LBN 1632 31187 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_WIDTH 16 31188 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_OFST 206 31189 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LEN 2 31190 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LBN 1648 31191 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_WIDTH 16 31192 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_OFST 208 31193 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_LEN 6 31194 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_LBN 1664 31195 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_WIDTH 48 31196 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_OFST 214 31197 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_LEN 6 31198 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_LBN 1712 31199 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_WIDTH 48 31200 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_OFST 220 31201 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_LEN 6 31202 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_LBN 1760 31203 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_WIDTH 48 31204 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_OFST 226 31205 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_LEN 6 31206 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_LBN 1808 31207 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_WIDTH 48 31208 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_OFST 232 31209 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_LEN 4 31210 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_LBN 1856 31211 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_WIDTH 32 31212 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_OFST 236 31213 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_LEN 4 31214 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_LBN 1888 31215 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_WIDTH 32 31216 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_OFST 240 31217 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_LEN 16 31218 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_LBN 1920 31219 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_WIDTH 128 31220 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_OFST 256 31221 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_LEN 16 31222 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_LBN 2048 31223 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_WIDTH 128 31224 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_OFST 272 31225 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_LEN 4 31226 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_LBN 2176 31227 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_WIDTH 32 31228 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_OFST 276 31229 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_LEN 4 31230 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_LBN 2208 31231 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_WIDTH 32 31232 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_OFST 280 31233 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_LEN 16 31234 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_LBN 2240 31235 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_WIDTH 128 31236 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_OFST 296 31237 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_LEN 16 31238 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_LBN 2368 31239 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_WIDTH 128 31240 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_OFST 312 31241 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_LEN 1 31242 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_LBN 2496 31243 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_WIDTH 8 31244 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_OFST 313 31245 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_LEN 1 31246 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_LBN 2504 31247 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_WIDTH 8 31248 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_OFST 314 31249 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_LEN 1 31250 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_LBN 2512 31251 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_WIDTH 8 31252 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_OFST 315 31253 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_LEN 1 31254 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_LBN 2520 31255 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_WIDTH 8 31256 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_OFST 316 31257 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_LEN 1 31258 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_LBN 2528 31259 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_WIDTH 8 31260 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_OFST 317 31261 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_LEN 1 31262 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_LBN 2536 31263 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_WIDTH 8 31264 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_OFST 320 31265 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_LEN 4 31266 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_LBN 2560 31267 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_WIDTH 32 31268 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_OFST 324 31269 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_LEN 4 31270 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_LBN 2592 31271 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_WIDTH 32 31272 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_OFST 328 31273 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_LEN 2 31274 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_LBN 2624 31275 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_WIDTH 16 31276 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_OFST 330 31277 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_LEN 2 31278 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_LBN 2640 31279 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_WIDTH 16 31280 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_OFST 332 31281 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_LEN 2 31282 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_LBN 2656 31283 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_WIDTH 16 31284 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_OFST 334 31285 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_LEN 2 31286 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_LBN 2672 31287 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_WIDTH 16 31288 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_OFST 336 31289 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_LEN 4 31290 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_LBN 2688 31291 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_WIDTH 32 31292 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_OFST 340 31293 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_LEN 4 31294 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_LBN 2720 31295 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_WIDTH 32 31296 31297 /* MAE_FIELD_MASK_VALUE_PAIRS_V2 structuredef */ 31298 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_LEN 372 31299 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_OFST 0 31300 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_LEN 4 31301 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_LBN 0 31302 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_WIDTH 32 31303 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_OFST 4 31304 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_LEN 4 31305 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_LBN 32 31306 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_WIDTH 32 31307 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_OFST 8 31308 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_LEN 4 31309 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_LBN 64 31310 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_WIDTH 32 31311 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_OFST 12 31312 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_LEN 4 31313 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_LBN 96 31314 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_WIDTH 32 31315 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_OFST 16 31316 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_LEN 2 31317 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_LBN 128 31318 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_WIDTH 16 31319 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_OFST 18 31320 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_LEN 2 31321 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_LBN 144 31322 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_WIDTH 16 31323 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_OFST 20 31324 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_LEN 2 31325 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_LBN 160 31326 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_WIDTH 16 31327 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_OFST 22 31328 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_LEN 2 31329 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_LBN 176 31330 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_WIDTH 16 31331 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_OFST 24 31332 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_LEN 2 31333 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_LBN 192 31334 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_WIDTH 16 31335 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_OFST 26 31336 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_LEN 2 31337 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_LBN 208 31338 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_WIDTH 16 31339 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_OFST 28 31340 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_LEN 2 31341 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_LBN 224 31342 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_WIDTH 16 31343 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_OFST 30 31344 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_LEN 2 31345 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_LBN 240 31346 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_WIDTH 16 31347 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_OFST 32 31348 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_LEN 2 31349 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_LBN 256 31350 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_WIDTH 16 31351 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_OFST 34 31352 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_LEN 2 31353 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_LBN 272 31354 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_WIDTH 16 31355 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_OFST 36 31356 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_LEN 6 31357 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_LBN 288 31358 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_WIDTH 48 31359 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_OFST 42 31360 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_LEN 6 31361 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_LBN 336 31362 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_WIDTH 48 31363 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_OFST 48 31364 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_LEN 6 31365 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_LBN 384 31366 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_WIDTH 48 31367 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_OFST 54 31368 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_LEN 6 31369 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_LBN 432 31370 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_WIDTH 48 31371 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_OFST 60 31372 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_LEN 4 31373 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_LBN 480 31374 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_WIDTH 32 31375 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_OFST 64 31376 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_LEN 4 31377 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_LBN 512 31378 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_WIDTH 32 31379 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_OFST 68 31380 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_LEN 16 31381 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_LBN 544 31382 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_WIDTH 128 31383 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_OFST 84 31384 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_LEN 16 31385 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_LBN 672 31386 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_WIDTH 128 31387 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_OFST 100 31388 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_LEN 4 31389 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_LBN 800 31390 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_WIDTH 32 31391 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_OFST 104 31392 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_LEN 4 31393 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_LBN 832 31394 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_WIDTH 32 31395 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_OFST 108 31396 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_LEN 16 31397 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_LBN 864 31398 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_WIDTH 128 31399 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_OFST 124 31400 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_LEN 16 31401 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_LBN 992 31402 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_WIDTH 128 31403 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_OFST 140 31404 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_LEN 1 31405 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_LBN 1120 31406 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_WIDTH 8 31407 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_OFST 141 31408 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_LEN 1 31409 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_LBN 1128 31410 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_WIDTH 8 31411 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_OFST 142 31412 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_LEN 1 31413 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_LBN 1136 31414 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_WIDTH 8 31415 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_OFST 143 31416 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_LEN 1 31417 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_LBN 1144 31418 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_WIDTH 8 31419 /* Due to hardware limitations, firmware may return 31420 * MC_CMD_ERR_EINVAL(BAD_IP_TTL) when attempting to match on an IP_TTL value 31421 * other than 1. 31422 */ 31423 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_OFST 144 31424 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_LEN 1 31425 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_LBN 1152 31426 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_WIDTH 8 31427 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_OFST 145 31428 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_LEN 1 31429 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_LBN 1160 31430 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_WIDTH 8 31431 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_OFST 148 31432 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_LEN 4 31433 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_LBN 1184 31434 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_WIDTH 32 31435 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_OFST 152 31436 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_LEN 4 31437 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_LBN 1216 31438 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_WIDTH 32 31439 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_OFST 156 31440 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_LEN 2 31441 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_LBN 1248 31442 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_WIDTH 16 31443 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_OFST 158 31444 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_LEN 2 31445 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_LBN 1264 31446 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_WIDTH 16 31447 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_OFST 160 31448 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_LEN 2 31449 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_LBN 1280 31450 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_WIDTH 16 31451 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_OFST 162 31452 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_LEN 2 31453 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_LBN 1296 31454 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_WIDTH 16 31455 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_OFST 164 31456 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_LEN 2 31457 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_LBN 1312 31458 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_WIDTH 16 31459 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_OFST 166 31460 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_LEN 2 31461 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_LBN 1328 31462 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_WIDTH 16 31463 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_OFST 168 31464 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_LEN 4 31465 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_LBN 1344 31466 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_WIDTH 32 31467 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_OFST 172 31468 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_LEN 4 31469 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_LBN 1376 31470 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_WIDTH 32 31471 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_OFST 176 31472 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_LEN 4 31473 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_LBN 1408 31474 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_WIDTH 32 31475 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_OFST 180 31476 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_LEN 4 31477 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_LBN 1440 31478 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_WIDTH 32 31479 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_OFST 184 31480 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_LEN 2 31481 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_LBN 1472 31482 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_WIDTH 16 31483 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_OFST 188 31484 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_LEN 2 31485 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_LBN 1504 31486 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_WIDTH 16 31487 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_OFST 192 31488 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_LEN 2 31489 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_LBN 1536 31490 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_WIDTH 16 31491 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_OFST 194 31492 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_LEN 2 31493 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_LBN 1552 31494 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_WIDTH 16 31495 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_OFST 196 31496 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_LEN 2 31497 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_LBN 1568 31498 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_WIDTH 16 31499 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_OFST 198 31500 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_LEN 2 31501 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_LBN 1584 31502 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_WIDTH 16 31503 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_OFST 200 31504 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_LEN 2 31505 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_LBN 1600 31506 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_WIDTH 16 31507 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_OFST 202 31508 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_LEN 2 31509 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_LBN 1616 31510 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_WIDTH 16 31511 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_OFST 204 31512 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_LEN 2 31513 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_LBN 1632 31514 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_WIDTH 16 31515 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_OFST 206 31516 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_LEN 2 31517 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_LBN 1648 31518 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_WIDTH 16 31519 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_OFST 208 31520 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_LEN 6 31521 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_LBN 1664 31522 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_WIDTH 48 31523 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_OFST 214 31524 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_LEN 6 31525 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_LBN 1712 31526 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_WIDTH 48 31527 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_OFST 220 31528 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_LEN 6 31529 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_LBN 1760 31530 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_WIDTH 48 31531 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_OFST 226 31532 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_LEN 6 31533 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_LBN 1808 31534 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_WIDTH 48 31535 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_OFST 232 31536 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_LEN 4 31537 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_LBN 1856 31538 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_WIDTH 32 31539 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_OFST 236 31540 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_LEN 4 31541 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_LBN 1888 31542 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_WIDTH 32 31543 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_OFST 240 31544 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_LEN 16 31545 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_LBN 1920 31546 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_WIDTH 128 31547 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_OFST 256 31548 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_LEN 16 31549 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_LBN 2048 31550 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_WIDTH 128 31551 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_OFST 272 31552 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_LEN 4 31553 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_LBN 2176 31554 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_WIDTH 32 31555 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_OFST 276 31556 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_LEN 4 31557 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_LBN 2208 31558 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_WIDTH 32 31559 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_OFST 280 31560 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_LEN 16 31561 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_LBN 2240 31562 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_WIDTH 128 31563 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_OFST 296 31564 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_LEN 16 31565 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_LBN 2368 31566 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_WIDTH 128 31567 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_OFST 312 31568 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_LEN 1 31569 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_LBN 2496 31570 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_WIDTH 8 31571 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_OFST 313 31572 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_LEN 1 31573 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_LBN 2504 31574 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_WIDTH 8 31575 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_OFST 314 31576 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_LEN 1 31577 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_LBN 2512 31578 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_WIDTH 8 31579 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_OFST 315 31580 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_LEN 1 31581 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_LBN 2520 31582 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_WIDTH 8 31583 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_OFST 316 31584 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_LEN 1 31585 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_LBN 2528 31586 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_WIDTH 8 31587 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_OFST 317 31588 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_LEN 1 31589 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_LBN 2536 31590 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_WIDTH 8 31591 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_OFST 320 31592 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_LEN 4 31593 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_LBN 2560 31594 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_WIDTH 32 31595 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_OFST 324 31596 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_LEN 4 31597 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_LBN 2592 31598 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_WIDTH 32 31599 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_OFST 328 31600 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_LEN 2 31601 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_LBN 2624 31602 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_WIDTH 16 31603 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_OFST 330 31604 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_LEN 2 31605 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_LBN 2640 31606 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_WIDTH 16 31607 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_OFST 332 31608 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_LEN 2 31609 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_LBN 2656 31610 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_WIDTH 16 31611 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_OFST 334 31612 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_LEN 2 31613 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_LBN 2672 31614 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_WIDTH 16 31615 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_OFST 336 31616 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_LEN 4 31617 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_LBN 2688 31618 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_WIDTH 32 31619 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_OFST 340 31620 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_LEN 4 31621 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_LBN 2720 31622 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_WIDTH 32 31623 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_OFST 344 31624 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_LEN 4 31625 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_IP_FRAG_OFST 344 31626 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_IP_FRAG_LBN 0 31627 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_IP_FRAG_WIDTH 1 31628 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_OFST 344 31629 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_LBN 1 31630 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_WIDTH 1 31631 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_HIT_OFST 344 31632 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_HIT_LBN 2 31633 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_HIT_WIDTH 1 31634 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_FROM_NETWORK_OFST 344 31635 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_FROM_NETWORK_LBN 3 31636 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_FROM_NETWORK_WIDTH 1 31637 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_OVLAN_OFST 344 31638 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_OVLAN_LBN 4 31639 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_OVLAN_WIDTH 1 31640 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_IVLAN_OFST 344 31641 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_IVLAN_LBN 5 31642 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_IVLAN_WIDTH 1 31643 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_OVLAN_OFST 344 31644 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_OVLAN_LBN 6 31645 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_OVLAN_WIDTH 1 31646 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_IVLAN_OFST 344 31647 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_IVLAN_LBN 7 31648 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_IVLAN_WIDTH 1 31649 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_SYN_FIN_RST_OFST 344 31650 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_SYN_FIN_RST_LBN 8 31651 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_SYN_FIN_RST_WIDTH 1 31652 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FIRST_FRAG_OFST 344 31653 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FIRST_FRAG_LBN 9 31654 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FIRST_FRAG_WIDTH 1 31655 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_LBN 2752 31656 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_WIDTH 32 31657 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_OFST 348 31658 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_LEN 4 31659 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_LBN 2784 31660 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_WIDTH 32 31661 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_OFST 352 31662 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_LEN 2 31663 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_LBN 2816 31664 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_WIDTH 16 31665 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_OFST 354 31666 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_LEN 2 31667 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_LBN 2832 31668 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_WIDTH 16 31669 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_OFST 356 31670 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_LEN 4 31671 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_LBN 2848 31672 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_WIDTH 32 31673 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_OFST 360 31674 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_LEN 4 31675 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_LBN 2880 31676 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_WIDTH 32 31677 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_OFST 364 31678 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_LEN 1 31679 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_LBN 2912 31680 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_WIDTH 8 31681 /* Set to zero. */ 31682 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_OFST 365 31683 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_LEN 1 31684 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_LBN 2920 31685 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_WIDTH 8 31686 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_OFST 366 31687 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_LEN 1 31688 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_LBN 2928 31689 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_WIDTH 8 31690 /* Set to zero. */ 31691 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_OFST 367 31692 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_LEN 1 31693 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_LBN 2936 31694 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_WIDTH 8 31695 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_OFST 368 31696 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_LEN 1 31697 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_LBN 2944 31698 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_WIDTH 8 31699 /* Set to zero */ 31700 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_OFST 369 31701 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_LEN 1 31702 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_LBN 2952 31703 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_WIDTH 8 31704 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_OFST 370 31705 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_LEN 1 31706 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_LBN 2960 31707 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_WIDTH 8 31708 /* Set to zero */ 31709 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_OFST 371 31710 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_LEN 1 31711 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_LBN 2968 31712 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_WIDTH 8 31713 31714 /* MAE_MPORT_SELECTOR structuredef: MPORTS are identified by an opaque unsigned 31715 * integer value (mport_id) that is guaranteed to be representable within 31716 * 32-bits or within any NIC interface field that needs store the value 31717 * (whichever is narrower). This selector structure provides a stable way to 31718 * refer to m-ports. 31719 */ 31720 #define MAE_MPORT_SELECTOR_LEN 4 31721 /* Used to force the tools to output bitfield-style defines for this structure. 31722 */ 31723 #define MAE_MPORT_SELECTOR_FLAT_OFST 0 31724 #define MAE_MPORT_SELECTOR_FLAT_LEN 4 31725 /* enum: An m-port selector value that is guaranteed never to represent a real 31726 * mport 31727 */ 31728 #define MAE_MPORT_SELECTOR_NULL 0x0 31729 /* enum: The m-port assigned to the calling client. */ 31730 #define MAE_MPORT_SELECTOR_ASSIGNED 0x1000000 31731 #define MAE_MPORT_SELECTOR_TYPE_OFST 0 31732 #define MAE_MPORT_SELECTOR_TYPE_LBN 24 31733 #define MAE_MPORT_SELECTOR_TYPE_WIDTH 8 31734 /* enum: The MPORT connected to a given physical port */ 31735 #define MAE_MPORT_SELECTOR_TYPE_PPORT 0x2 31736 /* enum: The MPORT assigned to a given PCIe function. Deprecated in favour of 31737 * MH_FUNC. 31738 */ 31739 #define MAE_MPORT_SELECTOR_TYPE_FUNC 0x3 31740 /* enum: An mport_id */ 31741 #define MAE_MPORT_SELECTOR_TYPE_MPORT_ID 0x4 31742 /* enum: The MPORT assigned to a given PCIe function (see also FWRIVERHD-1108) 31743 */ 31744 #define MAE_MPORT_SELECTOR_TYPE_MH_FUNC 0x5 31745 /* enum: This is guaranteed never to be a valid selector type */ 31746 #define MAE_MPORT_SELECTOR_TYPE_INVALID 0xff 31747 #define MAE_MPORT_SELECTOR_MPORT_ID_OFST 0 31748 #define MAE_MPORT_SELECTOR_MPORT_ID_LBN 0 31749 #define MAE_MPORT_SELECTOR_MPORT_ID_WIDTH 24 31750 #define MAE_MPORT_SELECTOR_PPORT_ID_OFST 0 31751 #define MAE_MPORT_SELECTOR_PPORT_ID_LBN 0 31752 #define MAE_MPORT_SELECTOR_PPORT_ID_WIDTH 4 31753 #define MAE_MPORT_SELECTOR_FUNC_INTF_ID_OFST 0 31754 #define MAE_MPORT_SELECTOR_FUNC_INTF_ID_LBN 20 31755 #define MAE_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 31756 #define MAE_MPORT_SELECTOR_HOST_PRIMARY 0x1 /* enum */ 31757 #define MAE_MPORT_SELECTOR_NIC_EMBEDDED 0x2 /* enum */ 31758 /* enum: Deprecated, use CALLER_INTF instead. */ 31759 #define MAE_MPORT_SELECTOR_CALLER 0xf 31760 #define MAE_MPORT_SELECTOR_CALLER_INTF 0xf /* enum */ 31761 #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_OFST 0 31762 #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 16 31763 #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 31764 #define MAE_MPORT_SELECTOR_FUNC_PF_ID_OFST 0 31765 #define MAE_MPORT_SELECTOR_FUNC_PF_ID_LBN 16 31766 #define MAE_MPORT_SELECTOR_FUNC_PF_ID_WIDTH 8 31767 #define MAE_MPORT_SELECTOR_FUNC_VF_ID_OFST 0 31768 #define MAE_MPORT_SELECTOR_FUNC_VF_ID_LBN 0 31769 #define MAE_MPORT_SELECTOR_FUNC_VF_ID_WIDTH 16 31770 /* enum: Used for VF_ID to indicate a physical function. */ 31771 #define MAE_MPORT_SELECTOR_FUNC_VF_ID_NULL 0xffff 31772 /* enum: Used for PF_ID to indicate the physical function of the calling 31773 * client. - When used by a PF with VF_ID == VF_ID_NULL, the mport selector 31774 * relates to the calling function. (For clarity, it is recommended that 31775 * clients use ASSIGNED to achieve this behaviour). - When used by a PF with 31776 * VF_ID != VF_ID_NULL, the mport selector relates to a VF child of the calling 31777 * function. - When used by a VF with VF_ID == VF_ID_NULL, the mport selector 31778 * relates to the PF owning the calling function. - When used by a VF with 31779 * VF_ID != VF_ID_NULL, the mport selector relates to a sibling VF of the 31780 * calling function. - Not meaningful used by a client that is not a PCIe 31781 * function. 31782 */ 31783 #define MAE_MPORT_SELECTOR_FUNC_PF_ID_CALLER 0xff 31784 /* enum: Same as PF_ID_CALLER, but for use in the smaller MH_PF_ID field. Only 31785 * valid if FUNC_INTF_ID is CALLER. 31786 */ 31787 #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_CALLER 0xf 31788 #define MAE_MPORT_SELECTOR_FLAT_LBN 0 31789 #define MAE_MPORT_SELECTOR_FLAT_WIDTH 32 31790 31791 /* MAE_LINK_ENDPOINT_SELECTOR structuredef: Structure that identifies a real or 31792 * virtual network port by MAE port and link end. Intended to be used by 31793 * network port MCDI commands. Setting FLAT to MAE_LINK_ENDPOINT_COMPAT is 31794 * equivalent to using the previous version of the command. Not all possible 31795 * combinations of MPORT_END and MPORT_SELECTOR in MAE_LINK_ENDPOINT_SELECTOR 31796 * will work in all circumstances. 1. Some will always work (e.g. a VF can 31797 * always address its logical MAC using MPORT_SELECTOR=ASSIGNED,LINK_END=VNIC), 31798 * 2. Some are not meaningful and will always fail with EINVAL (e.g. attempting 31799 * to address the VNIC end of a link to a physical port), 3. Some are 31800 * meaningful but require the MCDI client to have the required permission and 31801 * fail with EPERM otherwise (e.g. trying to set the MAC on a VF the caller 31802 * cannot administer), and 4. Some could be implementation-specific and fail 31803 * with ENOTSUP if not available (no examples exist right now). See 31804 * SF-123581-TC section 4.3 for more details. 31805 */ 31806 #define MAE_LINK_ENDPOINT_SELECTOR_LEN 8 31807 /* Identifier for the MAE MPORT of interest */ 31808 #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_OFST 0 31809 #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_LEN 4 31810 #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_LBN 0 31811 #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_WIDTH 32 31812 /* Which end of the link identified by MPORT to consider */ 31813 #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_OFST 4 31814 #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_LEN 4 31815 /* Enum values, see field(s): */ 31816 /* MAE_MPORT_END */ 31817 #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_LBN 32 31818 #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_WIDTH 32 31819 /* A field for accessing the endpoint selector as a collection of bits */ 31820 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_OFST 0 31821 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LEN 8 31822 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_OFST 0 31823 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_LEN 4 31824 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_LBN 0 31825 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_WIDTH 32 31826 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_OFST 4 31827 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_LEN 4 31828 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_LBN 32 31829 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_WIDTH 32 31830 /* enum: Set FLAT to this value to obtain backward-compatible behaviour in 31831 * commands that have been extended to take a MAE_LINK_ENDPOINT_SELECTOR 31832 * argument. New commands that are designed to take such an argument from the 31833 * start will not support this. 31834 */ 31835 #define MAE_LINK_ENDPOINT_SELECTOR_MAE_LINK_ENDPOINT_COMPAT 0x0 31836 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LBN 0 31837 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_WIDTH 64 31838 31839 31840 /***********************************/ 31841 /* MC_CMD_MAE_GET_CAPS 31842 * Describes capabilities of the MAE (Match-Action Engine) 31843 */ 31844 #define MC_CMD_MAE_GET_CAPS 0x140 31845 #define MC_CMD_MAE_GET_CAPS_MSGSET 0x140 31846 #undef MC_CMD_0x140_PRIVILEGE_CTG 31847 31848 #define MC_CMD_0x140_PRIVILEGE_CTG SRIOV_CTG_GENERAL 31849 31850 /* MC_CMD_MAE_GET_CAPS_IN msgrequest */ 31851 #define MC_CMD_MAE_GET_CAPS_IN_LEN 0 31852 31853 /* MC_CMD_MAE_GET_CAPS_OUT msgresponse */ 31854 #define MC_CMD_MAE_GET_CAPS_OUT_LEN 52 31855 /* The number of field IDs that the NIC supports. Any field with a ID greater 31856 * than or equal to the value returned in this field must be treated as having 31857 * a support level of MAE_FIELD_UNSUPPORTED in all requests. 31858 */ 31859 #define MC_CMD_MAE_GET_CAPS_OUT_MATCH_FIELD_COUNT_OFST 0 31860 #define MC_CMD_MAE_GET_CAPS_OUT_MATCH_FIELD_COUNT_LEN 4 31861 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPES_SUPPORTED_OFST 4 31862 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPES_SUPPORTED_LEN 4 31863 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_OFST 4 31864 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_LBN 0 31865 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_WIDTH 1 31866 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_OFST 4 31867 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_LBN 1 31868 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_WIDTH 1 31869 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_OFST 4 31870 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_LBN 2 31871 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_WIDTH 1 31872 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_L2GRE_OFST 4 31873 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_L2GRE_LBN 3 31874 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_L2GRE_WIDTH 1 31875 /* Deprecated alias for AR_COUNTERS. */ 31876 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTERS_OFST 8 31877 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTERS_LEN 4 31878 /* The total number of AR counters available to allocate. */ 31879 #define MC_CMD_MAE_GET_CAPS_OUT_AR_COUNTERS_OFST 8 31880 #define MC_CMD_MAE_GET_CAPS_OUT_AR_COUNTERS_LEN 4 31881 /* The total number of counters lists available to allocate. A value of zero 31882 * indicates that counter lists are not supported by the NIC. (But single 31883 * counters may still be.) 31884 */ 31885 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTER_LISTS_OFST 12 31886 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTER_LISTS_LEN 4 31887 /* The total number of encap header structures available to allocate. */ 31888 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_HEADER_LIMIT_OFST 16 31889 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_HEADER_LIMIT_LEN 4 31890 /* Reserved. Should be zero. */ 31891 #define MC_CMD_MAE_GET_CAPS_OUT_RSVD_OFST 20 31892 #define MC_CMD_MAE_GET_CAPS_OUT_RSVD_LEN 4 31893 /* The total number of action sets available to allocate. */ 31894 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SETS_OFST 24 31895 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SETS_LEN 4 31896 /* The total number of action set lists available to allocate. */ 31897 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SET_LISTS_OFST 28 31898 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SET_LISTS_LEN 4 31899 /* The total number of outer rules available to allocate. */ 31900 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_RULES_OFST 32 31901 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_RULES_LEN 4 31902 /* The total number of action rules available to allocate. */ 31903 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_RULES_OFST 36 31904 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_RULES_LEN 4 31905 /* The number of priorities available for ACTION_RULE filters. It is invalid to 31906 * install a MATCH_ACTION filter with a priority number >= ACTION_PRIOS. 31907 */ 31908 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_PRIOS_OFST 40 31909 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_PRIOS_LEN 4 31910 /* The number of priorities available for OUTER_RULE filters. It is invalid to 31911 * install an OUTER_RULE filter with a priority number >= OUTER_PRIOS. 31912 */ 31913 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_PRIOS_OFST 44 31914 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_PRIOS_LEN 4 31915 /* MAE API major version. Currently 1. If this field is not present in the 31916 * response (i.e. response shorter than 384 bits), then its value is zero. If 31917 * the value does not match the client's expectations, the client should raise 31918 * a fatal error. 31919 */ 31920 #define MC_CMD_MAE_GET_CAPS_OUT_API_VER_OFST 48 31921 #define MC_CMD_MAE_GET_CAPS_OUT_API_VER_LEN 4 31922 31923 /* MC_CMD_MAE_GET_CAPS_V2_OUT msgresponse */ 31924 #define MC_CMD_MAE_GET_CAPS_V2_OUT_LEN 60 31925 /* The number of field IDs that the NIC supports. Any field with a ID greater 31926 * than or equal to the value returned in this field must be treated as having 31927 * a support level of MAE_FIELD_UNSUPPORTED in all requests. 31928 */ 31929 #define MC_CMD_MAE_GET_CAPS_V2_OUT_MATCH_FIELD_COUNT_OFST 0 31930 #define MC_CMD_MAE_GET_CAPS_V2_OUT_MATCH_FIELD_COUNT_LEN 4 31931 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPES_SUPPORTED_OFST 4 31932 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPES_SUPPORTED_LEN 4 31933 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_VXLAN_OFST 4 31934 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_VXLAN_LBN 0 31935 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_VXLAN_WIDTH 1 31936 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_NVGRE_OFST 4 31937 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_NVGRE_LBN 1 31938 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_NVGRE_WIDTH 1 31939 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_GENEVE_OFST 4 31940 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_GENEVE_LBN 2 31941 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_GENEVE_WIDTH 1 31942 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_L2GRE_OFST 4 31943 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_L2GRE_LBN 3 31944 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_L2GRE_WIDTH 1 31945 /* Deprecated alias for AR_COUNTERS. */ 31946 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTERS_OFST 8 31947 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTERS_LEN 4 31948 /* The total number of AR counters available to allocate. */ 31949 #define MC_CMD_MAE_GET_CAPS_V2_OUT_AR_COUNTERS_OFST 8 31950 #define MC_CMD_MAE_GET_CAPS_V2_OUT_AR_COUNTERS_LEN 4 31951 /* The total number of counters lists available to allocate. A value of zero 31952 * indicates that counter lists are not supported by the NIC. (But single 31953 * counters may still be.) 31954 */ 31955 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_LISTS_OFST 12 31956 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_LISTS_LEN 4 31957 /* The total number of encap header structures available to allocate. */ 31958 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_HEADER_LIMIT_OFST 16 31959 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_HEADER_LIMIT_LEN 4 31960 /* Reserved. Should be zero. */ 31961 #define MC_CMD_MAE_GET_CAPS_V2_OUT_RSVD_OFST 20 31962 #define MC_CMD_MAE_GET_CAPS_V2_OUT_RSVD_LEN 4 31963 /* The total number of action sets available to allocate. */ 31964 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SETS_OFST 24 31965 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SETS_LEN 4 31966 /* The total number of action set lists available to allocate. */ 31967 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SET_LISTS_OFST 28 31968 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SET_LISTS_LEN 4 31969 /* The total number of outer rules available to allocate. */ 31970 #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_RULES_OFST 32 31971 #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_RULES_LEN 4 31972 /* The total number of action rules available to allocate. */ 31973 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_RULES_OFST 36 31974 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_RULES_LEN 4 31975 /* The number of priorities available for ACTION_RULE filters. It is invalid to 31976 * install a MATCH_ACTION filter with a priority number >= ACTION_PRIOS. 31977 */ 31978 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_PRIOS_OFST 40 31979 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_PRIOS_LEN 4 31980 /* The number of priorities available for OUTER_RULE filters. It is invalid to 31981 * install an OUTER_RULE filter with a priority number >= OUTER_PRIOS. 31982 */ 31983 #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_PRIOS_OFST 44 31984 #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_PRIOS_LEN 4 31985 /* MAE API major version. Currently 1. If this field is not present in the 31986 * response (i.e. response shorter than 384 bits), then its value is zero. If 31987 * the value does not match the client's expectations, the client should raise 31988 * a fatal error. 31989 */ 31990 #define MC_CMD_MAE_GET_CAPS_V2_OUT_API_VER_OFST 48 31991 #define MC_CMD_MAE_GET_CAPS_V2_OUT_API_VER_LEN 4 31992 /* Mask of supported counter types. Each bit position corresponds to a value of 31993 * the MAE_COUNTER_TYPE enum. If this field is missing (i.e. V1 response), 31994 * clients must assume that only AR counters are supported (i.e. 31995 * COUNTER_TYPES_SUPPORTED==0x1). See also 31996 * MC_CMD_MAE_COUNTERS_STREAM_START/COUNTER_TYPES_MASK. 31997 */ 31998 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_TYPES_SUPPORTED_OFST 52 31999 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_TYPES_SUPPORTED_LEN 4 32000 /* The total number of conntrack counters available to allocate. */ 32001 #define MC_CMD_MAE_GET_CAPS_V2_OUT_CT_COUNTERS_OFST 56 32002 #define MC_CMD_MAE_GET_CAPS_V2_OUT_CT_COUNTERS_LEN 4 32003 32004 /* MC_CMD_MAE_GET_CAPS_V3_OUT msgresponse */ 32005 #define MC_CMD_MAE_GET_CAPS_V3_OUT_LEN 64 32006 /* The number of field IDs that the NIC supports. Any field with a ID greater 32007 * than or equal to the value returned in this field must be treated as having 32008 * a support level of MAE_FIELD_UNSUPPORTED in all requests. 32009 */ 32010 #define MC_CMD_MAE_GET_CAPS_V3_OUT_MATCH_FIELD_COUNT_OFST 0 32011 #define MC_CMD_MAE_GET_CAPS_V3_OUT_MATCH_FIELD_COUNT_LEN 4 32012 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPES_SUPPORTED_OFST 4 32013 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPES_SUPPORTED_LEN 4 32014 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_VXLAN_OFST 4 32015 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_VXLAN_LBN 0 32016 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_VXLAN_WIDTH 1 32017 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_NVGRE_OFST 4 32018 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_NVGRE_LBN 1 32019 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_NVGRE_WIDTH 1 32020 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_GENEVE_OFST 4 32021 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_GENEVE_LBN 2 32022 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_GENEVE_WIDTH 1 32023 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_L2GRE_OFST 4 32024 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_L2GRE_LBN 3 32025 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_L2GRE_WIDTH 1 32026 /* Deprecated alias for AR_COUNTERS. */ 32027 #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTERS_OFST 8 32028 #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTERS_LEN 4 32029 /* The total number of AR counters available to allocate. */ 32030 #define MC_CMD_MAE_GET_CAPS_V3_OUT_AR_COUNTERS_OFST 8 32031 #define MC_CMD_MAE_GET_CAPS_V3_OUT_AR_COUNTERS_LEN 4 32032 /* The total number of counters lists available to allocate. A value of zero 32033 * indicates that counter lists are not supported by the NIC. (But single 32034 * counters may still be.) 32035 */ 32036 #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTER_LISTS_OFST 12 32037 #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTER_LISTS_LEN 4 32038 /* The total number of encap header structures available to allocate. */ 32039 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_HEADER_LIMIT_OFST 16 32040 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_HEADER_LIMIT_LEN 4 32041 /* Reserved. Should be zero. */ 32042 #define MC_CMD_MAE_GET_CAPS_V3_OUT_RSVD_OFST 20 32043 #define MC_CMD_MAE_GET_CAPS_V3_OUT_RSVD_LEN 4 32044 /* The total number of action sets available to allocate. */ 32045 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_SETS_OFST 24 32046 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_SETS_LEN 4 32047 /* The total number of action set lists available to allocate. */ 32048 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_SET_LISTS_OFST 28 32049 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_SET_LISTS_LEN 4 32050 /* The total number of outer rules available to allocate. */ 32051 #define MC_CMD_MAE_GET_CAPS_V3_OUT_OUTER_RULES_OFST 32 32052 #define MC_CMD_MAE_GET_CAPS_V3_OUT_OUTER_RULES_LEN 4 32053 /* The total number of action rules available to allocate. */ 32054 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_RULES_OFST 36 32055 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_RULES_LEN 4 32056 /* The number of priorities available for ACTION_RULE filters. It is invalid to 32057 * install a MATCH_ACTION filter with a priority number >= ACTION_PRIOS. 32058 */ 32059 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_PRIOS_OFST 40 32060 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_PRIOS_LEN 4 32061 /* The number of priorities available for OUTER_RULE filters. It is invalid to 32062 * install an OUTER_RULE filter with a priority number >= OUTER_PRIOS. 32063 */ 32064 #define MC_CMD_MAE_GET_CAPS_V3_OUT_OUTER_PRIOS_OFST 44 32065 #define MC_CMD_MAE_GET_CAPS_V3_OUT_OUTER_PRIOS_LEN 4 32066 /* MAE API major version. Currently 1. If this field is not present in the 32067 * response (i.e. response shorter than 384 bits), then its value is zero. If 32068 * the value does not match the client's expectations, the client should raise 32069 * a fatal error. 32070 */ 32071 #define MC_CMD_MAE_GET_CAPS_V3_OUT_API_VER_OFST 48 32072 #define MC_CMD_MAE_GET_CAPS_V3_OUT_API_VER_LEN 4 32073 /* Mask of supported counter types. Each bit position corresponds to a value of 32074 * the MAE_COUNTER_TYPE enum. If this field is missing (i.e. V1 response), 32075 * clients must assume that only AR counters are supported (i.e. 32076 * COUNTER_TYPES_SUPPORTED==0x1). See also 32077 * MC_CMD_MAE_COUNTERS_STREAM_START/COUNTER_TYPES_MASK. 32078 */ 32079 #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTER_TYPES_SUPPORTED_OFST 52 32080 #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTER_TYPES_SUPPORTED_LEN 4 32081 /* The total number of conntrack counters available to allocate. */ 32082 #define MC_CMD_MAE_GET_CAPS_V3_OUT_CT_COUNTERS_OFST 56 32083 #define MC_CMD_MAE_GET_CAPS_V3_OUT_CT_COUNTERS_LEN 4 32084 /* The total number of Outer Rule counters available to allocate. */ 32085 #define MC_CMD_MAE_GET_CAPS_V3_OUT_OR_COUNTERS_OFST 60 32086 #define MC_CMD_MAE_GET_CAPS_V3_OUT_OR_COUNTERS_LEN 4 32087 32088 32089 /***********************************/ 32090 /* MC_CMD_MAE_GET_AR_CAPS 32091 * Get a level of support for match fields when used in match-action rules 32092 */ 32093 #define MC_CMD_MAE_GET_AR_CAPS 0x141 32094 #define MC_CMD_MAE_GET_AR_CAPS_MSGSET 0x141 32095 #undef MC_CMD_0x141_PRIVILEGE_CTG 32096 32097 #define MC_CMD_0x141_PRIVILEGE_CTG SRIOV_CTG_MAE 32098 32099 /* MC_CMD_MAE_GET_AR_CAPS_IN msgrequest */ 32100 #define MC_CMD_MAE_GET_AR_CAPS_IN_LEN 0 32101 32102 /* MC_CMD_MAE_GET_AR_CAPS_OUT msgresponse */ 32103 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LENMIN 4 32104 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LENMAX 252 32105 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LENMAX_MCDI2 1020 32106 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LEN(num) (4+4*(num)) 32107 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_NUM(len) (((len)-4)/4) 32108 /* Number of fields actually returned in FIELD_FLAGS. */ 32109 #define MC_CMD_MAE_GET_AR_CAPS_OUT_COUNT_OFST 0 32110 #define MC_CMD_MAE_GET_AR_CAPS_OUT_COUNT_LEN 4 32111 /* Array of values indicating the NIC's support for a given field, indexed by 32112 * field id. The driver must ensure space for 32113 * MC_CMD_MAE_GET_CAPS.MATCH_FIELD_COUNT entries in the array.. 32114 */ 32115 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_OFST 4 32116 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_LEN 4 32117 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_MINNUM 0 32118 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_MAXNUM 62 32119 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_MAXNUM_MCDI2 254 32120 32121 32122 /***********************************/ 32123 /* MC_CMD_MAE_GET_OR_CAPS 32124 * Get a level of support for fields used in outer rule keys. 32125 */ 32126 #define MC_CMD_MAE_GET_OR_CAPS 0x142 32127 #define MC_CMD_MAE_GET_OR_CAPS_MSGSET 0x142 32128 #undef MC_CMD_0x142_PRIVILEGE_CTG 32129 32130 #define MC_CMD_0x142_PRIVILEGE_CTG SRIOV_CTG_MAE 32131 32132 /* MC_CMD_MAE_GET_OR_CAPS_IN msgrequest */ 32133 #define MC_CMD_MAE_GET_OR_CAPS_IN_LEN 0 32134 32135 /* MC_CMD_MAE_GET_OR_CAPS_OUT msgresponse */ 32136 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LENMIN 4 32137 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LENMAX 252 32138 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LENMAX_MCDI2 1020 32139 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LEN(num) (4+4*(num)) 32140 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_NUM(len) (((len)-4)/4) 32141 /* Number of fields actually returned in FIELD_FLAGS. */ 32142 #define MC_CMD_MAE_GET_OR_CAPS_OUT_COUNT_OFST 0 32143 #define MC_CMD_MAE_GET_OR_CAPS_OUT_COUNT_LEN 4 32144 /* Same semantics as MC_CMD_MAE_GET_AR_CAPS.MAE_FIELD_FLAGS */ 32145 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_OFST 4 32146 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_LEN 4 32147 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_MINNUM 0 32148 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_MAXNUM 62 32149 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_MAXNUM_MCDI2 254 32150 32151 32152 /***********************************/ 32153 /* MC_CMD_MAE_COUNTER_ALLOC 32154 * Allocate match-action-engine counters, which can be referenced in various 32155 * tables. 32156 */ 32157 #define MC_CMD_MAE_COUNTER_ALLOC 0x143 32158 #define MC_CMD_MAE_COUNTER_ALLOC_MSGSET 0x143 32159 #undef MC_CMD_0x143_PRIVILEGE_CTG 32160 32161 #define MC_CMD_0x143_PRIVILEGE_CTG SRIOV_CTG_MAE 32162 32163 /* MC_CMD_MAE_COUNTER_ALLOC_IN msgrequest: Using this is equivalent to using V2 32164 * with COUNTER_TYPE=AR. 32165 */ 32166 #define MC_CMD_MAE_COUNTER_ALLOC_IN_LEN 4 32167 /* The number of counters that the driver would like allocated */ 32168 #define MC_CMD_MAE_COUNTER_ALLOC_IN_REQUESTED_COUNT_OFST 0 32169 #define MC_CMD_MAE_COUNTER_ALLOC_IN_REQUESTED_COUNT_LEN 4 32170 32171 /* MC_CMD_MAE_COUNTER_ALLOC_V2_IN msgrequest */ 32172 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_LEN 8 32173 /* The number of counters that the driver would like allocated */ 32174 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_REQUESTED_COUNT_OFST 0 32175 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_REQUESTED_COUNT_LEN 4 32176 /* Which type of counter to allocate. */ 32177 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_COUNTER_TYPE_OFST 4 32178 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_COUNTER_TYPE_LEN 4 32179 /* Enum values, see field(s): */ 32180 /* MAE_COUNTER_TYPE */ 32181 32182 /* MC_CMD_MAE_COUNTER_ALLOC_OUT msgresponse */ 32183 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LENMIN 12 32184 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LENMAX 252 32185 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LENMAX_MCDI2 1020 32186 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LEN(num) (8+4*(num)) 32187 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_NUM(len) (((len)-8)/4) 32188 /* Generation count. Packets with generation count >= GENERATION_COUNT will 32189 * contain valid counter values for counter IDs allocated in this call, unless 32190 * the counter values are zero and zero squash is enabled. Note that there is 32191 * an independent GENERATION_COUNT object per counter type, and that generation 32192 * counts wrap from 0xffffffff to 1. 32193 */ 32194 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_GENERATION_COUNT_OFST 0 32195 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_GENERATION_COUNT_LEN 4 32196 /* enum: Generation counter 0 is reserved and unused. */ 32197 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_GENERATION_COUNT_INVALID 0x0 32198 /* The number of counter IDs that the NIC allocated. It is never less than 1; 32199 * failure to allocate a single counter will cause an error to be returned. It 32200 * is never greater than REQUESTED_COUNT, but may be less. 32201 */ 32202 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_COUNT_OFST 4 32203 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_COUNT_LEN 4 32204 /* An array containing the IDs for the counters allocated. */ 32205 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_OFST 8 32206 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_LEN 4 32207 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_MINNUM 1 32208 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_MAXNUM 61 32209 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_MAXNUM_MCDI2 253 32210 /* enum: A counter ID that is guaranteed never to represent a real counter */ 32211 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_NULL 0xffffffff 32212 /* Other enum values, see field(s): */ 32213 /* MAE_COUNTER_ID */ 32214 32215 32216 /***********************************/ 32217 /* MC_CMD_MAE_COUNTER_FREE 32218 * Free match-action-engine counters 32219 */ 32220 #define MC_CMD_MAE_COUNTER_FREE 0x144 32221 #define MC_CMD_MAE_COUNTER_FREE_MSGSET 0x144 32222 #undef MC_CMD_0x144_PRIVILEGE_CTG 32223 32224 #define MC_CMD_0x144_PRIVILEGE_CTG SRIOV_CTG_MAE 32225 32226 /* MC_CMD_MAE_COUNTER_FREE_IN msgrequest: Using this is equivalent to using V2 32227 * with COUNTER_TYPE=AR. 32228 */ 32229 #define MC_CMD_MAE_COUNTER_FREE_IN_LENMIN 8 32230 #define MC_CMD_MAE_COUNTER_FREE_IN_LENMAX 132 32231 #define MC_CMD_MAE_COUNTER_FREE_IN_LENMAX_MCDI2 132 32232 #define MC_CMD_MAE_COUNTER_FREE_IN_LEN(num) (4+4*(num)) 32233 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_NUM(len) (((len)-4)/4) 32234 /* The number of counter IDs to be freed. */ 32235 #define MC_CMD_MAE_COUNTER_FREE_IN_COUNTER_ID_COUNT_OFST 0 32236 #define MC_CMD_MAE_COUNTER_FREE_IN_COUNTER_ID_COUNT_LEN 4 32237 /* An array containing the counter IDs to be freed. */ 32238 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_OFST 4 32239 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_LEN 4 32240 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_MINNUM 1 32241 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_MAXNUM 32 32242 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_MAXNUM_MCDI2 32 32243 32244 /* MC_CMD_MAE_COUNTER_FREE_V2_IN msgrequest */ 32245 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_LEN 136 32246 /* The number of counter IDs to be freed. */ 32247 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_ID_COUNT_OFST 0 32248 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_ID_COUNT_LEN 4 32249 /* An array containing the counter IDs to be freed. */ 32250 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_OFST 4 32251 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_LEN 4 32252 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_MINNUM 1 32253 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_MAXNUM 32 32254 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_MAXNUM_MCDI2 32 32255 /* Which type of counter to free. */ 32256 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_TYPE_OFST 132 32257 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_TYPE_LEN 4 32258 /* Enum values, see field(s): */ 32259 /* MAE_COUNTER_TYPE */ 32260 32261 /* MC_CMD_MAE_COUNTER_FREE_OUT msgresponse */ 32262 #define MC_CMD_MAE_COUNTER_FREE_OUT_LENMIN 12 32263 #define MC_CMD_MAE_COUNTER_FREE_OUT_LENMAX 136 32264 #define MC_CMD_MAE_COUNTER_FREE_OUT_LENMAX_MCDI2 136 32265 #define MC_CMD_MAE_COUNTER_FREE_OUT_LEN(num) (8+4*(num)) 32266 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_NUM(len) (((len)-8)/4) 32267 /* Generation count. A packet with generation count == GENERATION_COUNT will 32268 * contain the final values for these counter IDs, unless the counter values 32269 * are zero and zero squash is enabled. Note that the GENERATION_COUNT value is 32270 * specific to the COUNTER_TYPE (IDENTIFIER field in packet header). Receiving 32271 * a packet with generation count > GENERATION_COUNT guarantees that no more 32272 * values will be written for these counters. If values for these counter IDs 32273 * are present, the counter ID has been reallocated. A counter ID will not be 32274 * reallocated within a single read cycle as this would merge increments from 32275 * the 'old' and 'new' counters. GENERATION_COUNT_INVALID is reserved and 32276 * unused. 32277 */ 32278 #define MC_CMD_MAE_COUNTER_FREE_OUT_GENERATION_COUNT_OFST 0 32279 #define MC_CMD_MAE_COUNTER_FREE_OUT_GENERATION_COUNT_LEN 4 32280 /* The number of counter IDs actually freed. It is never less than 1; failure 32281 * to free a single counter will cause an error to be returned. It is never 32282 * greater than the number that were requested to be freed, but may be less if 32283 * counters could not be freed. 32284 */ 32285 #define MC_CMD_MAE_COUNTER_FREE_OUT_COUNTER_ID_COUNT_OFST 4 32286 #define MC_CMD_MAE_COUNTER_FREE_OUT_COUNTER_ID_COUNT_LEN 4 32287 /* An array containing the IDs for the counters to that were freed. Note, 32288 * failure to free a counter can only occur on incorrect driver behaviour, so 32289 * asserting that the expected counters were freed is reasonable. When 32290 * debugging, attempting to free a single counter at a time will provide a 32291 * reason for the failure to free said counter. 32292 */ 32293 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_OFST 8 32294 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_LEN 4 32295 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_MINNUM 1 32296 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_MAXNUM 32 32297 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_MAXNUM_MCDI2 32 32298 32299 32300 /***********************************/ 32301 /* MC_CMD_MAE_COUNTERS_STREAM_START 32302 * Start streaming counter values, specifying an RxQ to deliver packets to. 32303 * Counters allocated to the calling function will be written in a round robin 32304 * at a fixed cycle rate, assuming sufficient credits are available. The driver 32305 * may cause the counter values to be written at a slower rate by constraining 32306 * the availability of credits. Note that if the driver wishes to deliver 32307 * packets to a different queue, it must call MAE_COUNTERS_STREAM_STOP to stop 32308 * delivering packets to the current queue first. 32309 */ 32310 #define MC_CMD_MAE_COUNTERS_STREAM_START 0x151 32311 #define MC_CMD_MAE_COUNTERS_STREAM_START_MSGSET 0x151 32312 #undef MC_CMD_0x151_PRIVILEGE_CTG 32313 32314 #define MC_CMD_0x151_PRIVILEGE_CTG SRIOV_CTG_MAE 32315 32316 /* MC_CMD_MAE_COUNTERS_STREAM_START_IN msgrequest: Using V1 is equivalent to V2 32317 * with COUNTER_TYPES_MASK=0x1 (i.e. AR counters only). 32318 */ 32319 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_LEN 8 32320 /* The RxQ to write packets to. */ 32321 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_QID_OFST 0 32322 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_QID_LEN 2 32323 /* Maximum size in bytes of packets that may be written to the RxQ. */ 32324 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_PACKET_SIZE_OFST 2 32325 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_PACKET_SIZE_LEN 2 32326 /* Optional flags. */ 32327 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_FLAGS_OFST 4 32328 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_FLAGS_LEN 4 32329 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_OFST 4 32330 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_LBN 0 32331 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_WIDTH 1 32332 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_OFST 4 32333 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_LBN 1 32334 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_WIDTH 1 32335 32336 /* MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN msgrequest */ 32337 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_LEN 12 32338 /* The RxQ to write packets to. */ 32339 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_QID_OFST 0 32340 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_QID_LEN 2 32341 /* Maximum size in bytes of packets that may be written to the RxQ. */ 32342 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_PACKET_SIZE_OFST 2 32343 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_PACKET_SIZE_LEN 2 32344 /* Optional flags. */ 32345 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_FLAGS_OFST 4 32346 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_FLAGS_LEN 4 32347 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_ZERO_SQUASH_DISABLE_OFST 4 32348 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_ZERO_SQUASH_DISABLE_LBN 0 32349 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_ZERO_SQUASH_DISABLE_WIDTH 1 32350 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_STALL_EN_OFST 4 32351 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_STALL_EN_LBN 1 32352 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_STALL_EN_WIDTH 1 32353 /* Mask of which counter types should be reported. Each bit position 32354 * corresponds to a value of the MAE_COUNTER_TYPE enum. For example a value of 32355 * 0x3 requests both AR and CT counters. A value of zero is invalid. Counter 32356 * types not selected by the mask value won't be included in the stream. If a 32357 * client wishes to change which counter types are reported, it must first call 32358 * MAE_COUNTERS_STREAM_STOP, then restart it with the new mask value. 32359 * Requesting a counter type which isn't supported by firmware (reported in 32360 * MC_CMD_MAE_GET_CAPS/COUNTER_TYPES_SUPPORTED) will result in ENOTSUP. 32361 */ 32362 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_TYPES_MASK_OFST 8 32363 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_TYPES_MASK_LEN 4 32364 32365 /* MC_CMD_MAE_COUNTERS_STREAM_START_OUT msgresponse */ 32366 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_LEN 4 32367 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_FLAGS_OFST 0 32368 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_FLAGS_LEN 4 32369 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_USES_CREDITS_OFST 0 32370 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_USES_CREDITS_LBN 0 32371 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_USES_CREDITS_WIDTH 1 32372 32373 32374 /***********************************/ 32375 /* MC_CMD_MAE_COUNTERS_STREAM_STOP 32376 * Stop streaming counter values to the specified RxQ. 32377 */ 32378 #define MC_CMD_MAE_COUNTERS_STREAM_STOP 0x152 32379 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_MSGSET 0x152 32380 #undef MC_CMD_0x152_PRIVILEGE_CTG 32381 32382 #define MC_CMD_0x152_PRIVILEGE_CTG SRIOV_CTG_MAE 32383 32384 /* MC_CMD_MAE_COUNTERS_STREAM_STOP_IN msgrequest */ 32385 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_IN_LEN 2 32386 /* The RxQ to stop writing packets to. */ 32387 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_IN_QID_OFST 0 32388 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_IN_QID_LEN 2 32389 32390 /* MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT msgresponse */ 32391 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_LEN 4 32392 /* Generation count for AR counters. The final set of AR counter values will be 32393 * written out in packets with count == GENERATION_COUNT. An empty packet with 32394 * count > GENERATION_COUNT indicates that no more counter values of this type 32395 * will be written to this stream. GENERATION_COUNT_INVALID is reserved and 32396 * unused. 32397 */ 32398 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_GENERATION_COUNT_OFST 0 32399 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_GENERATION_COUNT_LEN 4 32400 32401 /* MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT msgresponse */ 32402 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LENMIN 4 32403 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LENMAX 32 32404 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LENMAX_MCDI2 32 32405 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LEN(num) (0+4*(num)) 32406 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_NUM(len) (((len)-0)/4) 32407 /* Array of generation counts, indexed by MAE_COUNTER_TYPE. Note that since 32408 * MAE_COUNTER_TYPE_AR==0, this response is backwards-compatible with V1. The 32409 * final set of counter values will be written out in packets with count == 32410 * GENERATION_COUNT. An empty packet with count > GENERATION_COUNT indicates 32411 * that no more counter values of this type will be written to this stream. 32412 * GENERATION_COUNT_INVALID is reserved and unused. 32413 */ 32414 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_OFST 0 32415 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_LEN 4 32416 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_MINNUM 1 32417 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_MAXNUM 8 32418 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_MAXNUM_MCDI2 8 32419 32420 32421 /***********************************/ 32422 /* MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS 32423 * Give a number of credits to the packetiser. Each credit received allows the 32424 * MC to write one packet to the RxQ, therefore for each credit the driver must 32425 * have written sufficient descriptors for a packet of length 32426 * MAE_COUNTERS_PACKETISER_STREAM_START/PACKET_SIZE and rung the doorbell. 32427 */ 32428 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS 0x153 32429 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_MSGSET 0x153 32430 #undef MC_CMD_0x153_PRIVILEGE_CTG 32431 32432 #define MC_CMD_0x153_PRIVILEGE_CTG SRIOV_CTG_MAE 32433 32434 /* MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN msgrequest */ 32435 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_LEN 4 32436 /* Number of credits to give to the packetiser. */ 32437 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_NUM_CREDITS_OFST 0 32438 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_NUM_CREDITS_LEN 4 32439 32440 /* MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_OUT msgresponse */ 32441 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_OUT_LEN 0 32442 32443 32444 /***********************************/ 32445 /* MC_CMD_MAE_ENCAP_HEADER_ALLOC 32446 * Allocate an encapsulation header to be used in an Action Rule response. The 32447 * header must be constructed as a valid packet with 0-length payload. 32448 * Specifically, the L3/L4 lengths & checksums will only be incrementally fixed 32449 * by the NIC, rather than recomputed entirely. Currently only IPv4, IPv6 and 32450 * UDP are supported. If the maximum number of headers have already been 32451 * allocated then the command will fail with MC_CMD_ERR_ENOSPC. 32452 */ 32453 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC 0x148 32454 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_MSGSET 0x148 32455 #undef MC_CMD_0x148_PRIVILEGE_CTG 32456 32457 #define MC_CMD_0x148_PRIVILEGE_CTG SRIOV_CTG_MAE 32458 32459 /* MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN msgrequest */ 32460 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMIN 4 32461 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMAX 252 32462 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMAX_MCDI2 1020 32463 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LEN(num) (4+1*(num)) 32464 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_NUM(len) (((len)-4)/1) 32465 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_ENCAP_TYPE_OFST 0 32466 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_ENCAP_TYPE_LEN 4 32467 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_OFST 4 32468 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_LEN 1 32469 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_MINNUM 0 32470 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_MAXNUM 248 32471 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_MAXNUM_MCDI2 1016 32472 32473 /* MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT msgresponse */ 32474 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_LEN 4 32475 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_ENCAP_HEADER_ID_OFST 0 32476 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_ENCAP_HEADER_ID_LEN 4 32477 /* enum: An encap metadata ID that is guaranteed never to represent real encap 32478 * metadata 32479 */ 32480 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_ENCAP_HEADER_ID_NULL 0xffffffff 32481 32482 32483 /***********************************/ 32484 /* MC_CMD_MAE_ENCAP_HEADER_UPDATE 32485 * Update encap action metadata. See comments for MAE_ENCAP_HEADER_ALLOC. 32486 */ 32487 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE 0x149 32488 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_MSGSET 0x149 32489 #undef MC_CMD_0x149_PRIVILEGE_CTG 32490 32491 #define MC_CMD_0x149_PRIVILEGE_CTG SRIOV_CTG_MAE 32492 32493 /* MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN msgrequest */ 32494 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LENMIN 8 32495 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LENMAX 252 32496 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LENMAX_MCDI2 1020 32497 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LEN(num) (8+1*(num)) 32498 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_NUM(len) (((len)-8)/1) 32499 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_EH_ID_OFST 0 32500 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_EH_ID_LEN 4 32501 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_ENCAP_TYPE_OFST 4 32502 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_ENCAP_TYPE_LEN 4 32503 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_OFST 8 32504 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_LEN 1 32505 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_MINNUM 0 32506 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_MAXNUM 244 32507 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_MAXNUM_MCDI2 1012 32508 32509 /* MC_CMD_MAE_ENCAP_HEADER_UPDATE_OUT msgresponse */ 32510 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_OUT_LEN 0 32511 32512 32513 /***********************************/ 32514 /* MC_CMD_MAE_ENCAP_HEADER_FREE 32515 * Free encap action metadata 32516 */ 32517 #define MC_CMD_MAE_ENCAP_HEADER_FREE 0x14a 32518 #define MC_CMD_MAE_ENCAP_HEADER_FREE_MSGSET 0x14a 32519 #undef MC_CMD_0x14a_PRIVILEGE_CTG 32520 32521 #define MC_CMD_0x14a_PRIVILEGE_CTG SRIOV_CTG_MAE 32522 32523 /* MC_CMD_MAE_ENCAP_HEADER_FREE_IN msgrequest */ 32524 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMIN 4 32525 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMAX 128 32526 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMAX_MCDI2 128 32527 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LEN(num) (0+4*(num)) 32528 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_NUM(len) (((len)-0)/4) 32529 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 32530 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_OFST 0 32531 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_LEN 4 32532 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_MINNUM 1 32533 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_MAXNUM 32 32534 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_MAXNUM_MCDI2 32 32535 32536 /* MC_CMD_MAE_ENCAP_HEADER_FREE_OUT msgresponse */ 32537 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LENMIN 4 32538 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LENMAX 128 32539 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LENMAX_MCDI2 128 32540 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LEN(num) (0+4*(num)) 32541 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_NUM(len) (((len)-0)/4) 32542 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 32543 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_OFST 0 32544 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_LEN 4 32545 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_MINNUM 1 32546 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_MAXNUM 32 32547 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_MAXNUM_MCDI2 32 32548 32549 32550 /***********************************/ 32551 /* MC_CMD_MAE_MAC_ADDR_ALLOC 32552 * Allocate MAC address. Hardware implementations have MAC addresses programmed 32553 * into an indirection table, and clients should take care not to allocate the 32554 * same MAC address twice (but instead reuse its ID). If the maximum number of 32555 * MAC addresses have already been allocated then the command will fail with 32556 * MC_CMD_ERR_ENOSPC. 32557 */ 32558 #define MC_CMD_MAE_MAC_ADDR_ALLOC 0x15e 32559 #define MC_CMD_MAE_MAC_ADDR_ALLOC_MSGSET 0x15e 32560 #undef MC_CMD_0x15e_PRIVILEGE_CTG 32561 32562 #define MC_CMD_0x15e_PRIVILEGE_CTG SRIOV_CTG_MAE 32563 32564 /* MC_CMD_MAE_MAC_ADDR_ALLOC_IN msgrequest */ 32565 #define MC_CMD_MAE_MAC_ADDR_ALLOC_IN_LEN 6 32566 /* MAC address as bytes in network order. */ 32567 #define MC_CMD_MAE_MAC_ADDR_ALLOC_IN_MAC_ADDR_OFST 0 32568 #define MC_CMD_MAE_MAC_ADDR_ALLOC_IN_MAC_ADDR_LEN 6 32569 32570 /* MC_CMD_MAE_MAC_ADDR_ALLOC_OUT msgresponse */ 32571 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_LEN 4 32572 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_MAC_ID_OFST 0 32573 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_MAC_ID_LEN 4 32574 /* enum: An MAC address ID that is guaranteed never to represent a real MAC 32575 * address. 32576 */ 32577 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_MAC_ID_NULL 0xffffffff 32578 32579 32580 /***********************************/ 32581 /* MC_CMD_MAE_MAC_ADDR_FREE 32582 * Free MAC address. 32583 */ 32584 #define MC_CMD_MAE_MAC_ADDR_FREE 0x15f 32585 #define MC_CMD_MAE_MAC_ADDR_FREE_MSGSET 0x15f 32586 #undef MC_CMD_0x15f_PRIVILEGE_CTG 32587 32588 #define MC_CMD_0x15f_PRIVILEGE_CTG SRIOV_CTG_MAE 32589 32590 /* MC_CMD_MAE_MAC_ADDR_FREE_IN msgrequest */ 32591 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMIN 4 32592 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMAX 128 32593 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMAX_MCDI2 128 32594 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LEN(num) (0+4*(num)) 32595 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_NUM(len) (((len)-0)/4) 32596 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 32597 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_OFST 0 32598 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_LEN 4 32599 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_MINNUM 1 32600 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_MAXNUM 32 32601 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_MAXNUM_MCDI2 32 32602 32603 /* MC_CMD_MAE_MAC_ADDR_FREE_OUT msgresponse */ 32604 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LENMIN 4 32605 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LENMAX 128 32606 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LENMAX_MCDI2 128 32607 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LEN(num) (0+4*(num)) 32608 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_NUM(len) (((len)-0)/4) 32609 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 32610 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_OFST 0 32611 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_LEN 4 32612 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_MINNUM 1 32613 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_MAXNUM 32 32614 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_MAXNUM_MCDI2 32 32615 32616 32617 /***********************************/ 32618 /* MC_CMD_MAE_ACTION_SET_ALLOC 32619 * Allocate an action set, which can be referenced either in response to an 32620 * Action Rule, or as part of an Action Set List. If the maxmimum number of 32621 * action sets have already been allocated then the command will fail with 32622 * MC_CMD_ERR_ENOSPC. 32623 */ 32624 #define MC_CMD_MAE_ACTION_SET_ALLOC 0x14d 32625 #define MC_CMD_MAE_ACTION_SET_ALLOC_MSGSET 0x14d 32626 #undef MC_CMD_0x14d_PRIVILEGE_CTG 32627 32628 #define MC_CMD_0x14d_PRIVILEGE_CTG SRIOV_CTG_MAE 32629 32630 /* MC_CMD_MAE_ACTION_SET_ALLOC_IN msgrequest */ 32631 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LEN 44 32632 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAGS_OFST 0 32633 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAGS_LEN 4 32634 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_PUSH_OFST 0 32635 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_PUSH_LBN 0 32636 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_PUSH_WIDTH 2 32637 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_POP_OFST 0 32638 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_POP_LBN 4 32639 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_POP_WIDTH 2 32640 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DECAP_OFST 0 32641 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DECAP_LBN 8 32642 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DECAP_WIDTH 1 32643 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_OFST 0 32644 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_LBN 9 32645 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_WIDTH 1 32646 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAG_OFST 0 32647 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAG_LBN 10 32648 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAG_WIDTH 1 32649 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_NAT_OFST 0 32650 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_NAT_LBN 11 32651 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_NAT_WIDTH 1 32652 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_DECR_IP_TTL_OFST 0 32653 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_DECR_IP_TTL_LBN 12 32654 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_DECR_IP_TTL_WIDTH 1 32655 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_SRC_MPORT_OFST 0 32656 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_SRC_MPORT_LBN 13 32657 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_SRC_MPORT_WIDTH 1 32658 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SUPPRESS_SELF_DELIVERY_OFST 0 32659 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SUPPRESS_SELF_DELIVERY_LBN 14 32660 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SUPPRESS_SELF_DELIVERY_WIDTH 1 32661 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_C_PL_OFST 0 32662 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_C_PL_LBN 15 32663 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_C_PL_WIDTH 1 32664 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_D_PL_OFST 0 32665 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_D_PL_LBN 16 32666 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_D_PL_WIDTH 1 32667 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_OFST 0 32668 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_LBN 17 32669 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_WIDTH 1 32670 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_NET_CHAN_OFST 0 32671 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_NET_CHAN_LBN 18 32672 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_NET_CHAN_WIDTH 1 32673 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LACP_PLUGIN_OFST 0 32674 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LACP_PLUGIN_LBN 19 32675 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LACP_PLUGIN_WIDTH 1 32676 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LACP_INC_L4_OFST 0 32677 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LACP_INC_L4_LBN 20 32678 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LACP_INC_L4_WIDTH 1 32679 /* If VLAN_PUSH >= 1, TCI value to be inserted as outermost VLAN. */ 32680 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_TCI_BE_OFST 4 32681 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_TCI_BE_LEN 2 32682 /* If VLAN_PUSH >= 1, TPID value to be inserted as outermost VLAN. */ 32683 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_PROTO_BE_OFST 6 32684 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_PROTO_BE_LEN 2 32685 /* If VLAN_PUSH == 2, inner TCI value to be inserted. */ 32686 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_TCI_BE_OFST 8 32687 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_TCI_BE_LEN 2 32688 /* If VLAN_PUSH == 2, inner TPID value to be inserted. */ 32689 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_PROTO_BE_OFST 10 32690 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_PROTO_BE_LEN 2 32691 /* Reserved. Ignored by firmware. Should be set to zero or 0xffffffff. */ 32692 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_RSVD_OFST 12 32693 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_RSVD_LEN 4 32694 /* Set to ENCAP_HEADER_ID_NULL to request no encap action */ 32695 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_ENCAP_HEADER_ID_OFST 16 32696 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_ENCAP_HEADER_ID_LEN 4 32697 /* An m-port selector identifying the m-port that the modified packet should be 32698 * delivered to. Set to MPORT_SELECTOR_NULL to request no delivery of the 32699 * packet. 32700 */ 32701 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DELIVER_OFST 20 32702 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DELIVER_LEN 4 32703 /* Allows an action set to trigger several counter updates. Set to 32704 * MAE_COUNTER_ID_NULL to request no counter action. 32705 */ 32706 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_LIST_ID_OFST 24 32707 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_LIST_ID_LEN 4 32708 /* Enum values, see field(s): */ 32709 /* MAE_COUNTER_ID */ 32710 /* If a driver only wished to update one counter within this action set, then 32711 * it can supply a COUNTER_ID instead of allocating a single-element counter 32712 * list. The ID must have been allocated with COUNTER_TYPE=AR. This field 32713 * should be set to MAE_COUNTER_ID_NULL if this behaviour is not required. It 32714 * is not valid to supply a non-NULL value for both COUNTER_LIST_ID and 32715 * COUNTER_ID. 32716 */ 32717 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_ID_OFST 28 32718 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_ID_LEN 4 32719 /* Enum values, see field(s): */ 32720 /* MAE_COUNTER_ID */ 32721 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_VALUE_OFST 32 32722 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_VALUE_LEN 4 32723 /* Set to MAC_ID_NULL to request no source MAC replacement. */ 32724 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SRC_MAC_ID_OFST 36 32725 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SRC_MAC_ID_LEN 4 32726 /* Set to MAC_ID_NULL to request no destination MAC replacement. */ 32727 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DST_MAC_ID_OFST 40 32728 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DST_MAC_ID_LEN 4 32729 32730 /* MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN msgrequest: Only supported if 32731 * MAE_ACTION_SET_ALLOC_V2_SUPPORTED is advertised in 32732 * MC_CMD_GET_CAPABILITIES_V7_OUT. 32733 */ 32734 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LEN 51 32735 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAGS_OFST 0 32736 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAGS_LEN 4 32737 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_PUSH_OFST 0 32738 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_PUSH_LBN 0 32739 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_PUSH_WIDTH 2 32740 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_POP_OFST 0 32741 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_POP_LBN 4 32742 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_POP_WIDTH 2 32743 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DECAP_OFST 0 32744 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DECAP_LBN 8 32745 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DECAP_WIDTH 1 32746 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_OFST 0 32747 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_LBN 9 32748 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_WIDTH 1 32749 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAG_OFST 0 32750 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAG_LBN 10 32751 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAG_WIDTH 1 32752 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_NAT_OFST 0 32753 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_NAT_LBN 11 32754 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_NAT_WIDTH 1 32755 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DECR_IP_TTL_OFST 0 32756 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DECR_IP_TTL_LBN 12 32757 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DECR_IP_TTL_WIDTH 1 32758 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_SRC_MPORT_OFST 0 32759 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_SRC_MPORT_LBN 13 32760 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_SRC_MPORT_WIDTH 1 32761 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SUPPRESS_SELF_DELIVERY_OFST 0 32762 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SUPPRESS_SELF_DELIVERY_LBN 14 32763 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SUPPRESS_SELF_DELIVERY_WIDTH 1 32764 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_C_PL_OFST 0 32765 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_C_PL_LBN 15 32766 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_C_PL_WIDTH 1 32767 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_D_PL_OFST 0 32768 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_D_PL_LBN 16 32769 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_D_PL_WIDTH 1 32770 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_OFST 0 32771 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_LBN 17 32772 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_WIDTH 1 32773 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_NET_CHAN_OFST 0 32774 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_NET_CHAN_LBN 18 32775 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_NET_CHAN_WIDTH 1 32776 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LACP_PLUGIN_OFST 0 32777 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LACP_PLUGIN_LBN 19 32778 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LACP_PLUGIN_WIDTH 1 32779 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LACP_INC_L4_OFST 0 32780 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LACP_INC_L4_LBN 20 32781 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LACP_INC_L4_WIDTH 1 32782 /* If VLAN_PUSH >= 1, TCI value to be inserted as outermost VLAN. */ 32783 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_TCI_BE_OFST 4 32784 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_TCI_BE_LEN 2 32785 /* If VLAN_PUSH >= 1, TPID value to be inserted as outermost VLAN. */ 32786 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_PROTO_BE_OFST 6 32787 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_PROTO_BE_LEN 2 32788 /* If VLAN_PUSH == 2, inner TCI value to be inserted. */ 32789 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN1_TCI_BE_OFST 8 32790 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN1_TCI_BE_LEN 2 32791 /* If VLAN_PUSH == 2, inner TPID value to be inserted. */ 32792 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN1_PROTO_BE_OFST 10 32793 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN1_PROTO_BE_LEN 2 32794 /* Reserved. Ignored by firmware. Should be set to zero or 0xffffffff. */ 32795 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_RSVD_OFST 12 32796 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_RSVD_LEN 4 32797 /* Set to ENCAP_HEADER_ID_NULL to request no encap action */ 32798 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ENCAP_HEADER_ID_OFST 16 32799 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ENCAP_HEADER_ID_LEN 4 32800 /* An m-port selector identifying the m-port that the modified packet should be 32801 * delivered to. Set to MPORT_SELECTOR_NULL to request no delivery of the 32802 * packet. 32803 */ 32804 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DELIVER_OFST 20 32805 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DELIVER_LEN 4 32806 /* Allows an action set to trigger several counter updates. Set to 32807 * MAE_COUNTER_ID_NULL to request no counter action. 32808 */ 32809 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_LIST_ID_OFST 24 32810 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_LIST_ID_LEN 4 32811 /* Enum values, see field(s): */ 32812 /* MAE_COUNTER_ID */ 32813 /* If a driver only wished to update one counter within this action set, then 32814 * it can supply a COUNTER_ID instead of allocating a single-element counter 32815 * list. The ID must have been allocated with COUNTER_TYPE=AR. This field 32816 * should be set to MAE_COUNTER_ID_NULL if this behaviour is not required. It 32817 * is not valid to supply a non-NULL value for both COUNTER_LIST_ID and 32818 * COUNTER_ID. 32819 */ 32820 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_ID_OFST 28 32821 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_ID_LEN 4 32822 /* Enum values, see field(s): */ 32823 /* MAE_COUNTER_ID */ 32824 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_VALUE_OFST 32 32825 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_VALUE_LEN 4 32826 /* Set to MAC_ID_NULL to request no source MAC replacement. */ 32827 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SRC_MAC_ID_OFST 36 32828 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SRC_MAC_ID_LEN 4 32829 /* Set to MAC_ID_NULL to request no destination MAC replacement. */ 32830 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DST_MAC_ID_OFST 40 32831 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DST_MAC_ID_LEN 4 32832 /* Source m-port ID to be reported for DO_SET_SRC_MPORT action. */ 32833 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_REPORTED_SRC_MPORT_OFST 44 32834 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_REPORTED_SRC_MPORT_LEN 4 32835 /* Actions for modifying the Differentiated Services Code-Point (DSCP) bits 32836 * within IPv4 and IPv6 headers. 32837 */ 32838 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_CONTROL_OFST 48 32839 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_CONTROL_LEN 2 32840 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_ENCAP_COPY_OFST 48 32841 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_ENCAP_COPY_LBN 0 32842 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_ENCAP_COPY_WIDTH 1 32843 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_DECAP_COPY_OFST 48 32844 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_DECAP_COPY_LBN 1 32845 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_DECAP_COPY_WIDTH 1 32846 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_DSCP_OFST 48 32847 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_DSCP_LBN 2 32848 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_DSCP_WIDTH 1 32849 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_VALUE_OFST 48 32850 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_VALUE_LBN 3 32851 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_VALUE_WIDTH 6 32852 /* Actions for modifying the Explicit Congestion Notification (ECN) bits within 32853 * IPv4 and IPv6 headers. 32854 */ 32855 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_CONTROL_OFST 50 32856 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_CONTROL_LEN 1 32857 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_ENCAP_COPY_OFST 50 32858 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_ENCAP_COPY_LBN 0 32859 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_ENCAP_COPY_WIDTH 1 32860 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_DECAP_COPY_OFST 50 32861 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_DECAP_COPY_LBN 1 32862 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_DECAP_COPY_WIDTH 1 32863 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_ECN_OFST 50 32864 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_ECN_LBN 2 32865 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_ECN_WIDTH 1 32866 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_VALUE_OFST 50 32867 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_VALUE_LBN 3 32868 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_VALUE_WIDTH 2 32869 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_0_TO_CE_OFST 50 32870 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_0_TO_CE_LBN 5 32871 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_0_TO_CE_WIDTH 1 32872 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_1_TO_CE_OFST 50 32873 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_1_TO_CE_LBN 6 32874 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_1_TO_CE_WIDTH 1 32875 32876 /* MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN msgrequest: Only supported if 32877 * MAE_ACTION_SET_ALLOC_V3_SUPPORTED is advertised in 32878 * MC_CMD_GET_CAPABILITIES_V10_OUT. 32879 */ 32880 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_LEN 53 32881 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_FLAGS_OFST 0 32882 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_FLAGS_LEN 4 32883 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN_PUSH_OFST 0 32884 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN_PUSH_LBN 0 32885 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN_PUSH_WIDTH 2 32886 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN_POP_OFST 0 32887 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN_POP_LBN 4 32888 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN_POP_WIDTH 2 32889 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DECAP_OFST 0 32890 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DECAP_LBN 8 32891 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DECAP_WIDTH 1 32892 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_MARK_OFST 0 32893 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_MARK_LBN 9 32894 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_MARK_WIDTH 1 32895 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_FLAG_OFST 0 32896 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_FLAG_LBN 10 32897 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_FLAG_WIDTH 1 32898 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_NAT_OFST 0 32899 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_NAT_LBN 11 32900 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_NAT_WIDTH 1 32901 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DECR_IP_TTL_OFST 0 32902 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DECR_IP_TTL_LBN 12 32903 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DECR_IP_TTL_WIDTH 1 32904 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_SET_SRC_MPORT_OFST 0 32905 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_SET_SRC_MPORT_LBN 13 32906 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_SET_SRC_MPORT_WIDTH 1 32907 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_SUPPRESS_SELF_DELIVERY_OFST 0 32908 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_SUPPRESS_SELF_DELIVERY_LBN 14 32909 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_SUPPRESS_SELF_DELIVERY_WIDTH 1 32910 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_C_PL_OFST 0 32911 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_C_PL_LBN 15 32912 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_C_PL_WIDTH 1 32913 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_D_PL_OFST 0 32914 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_D_PL_LBN 16 32915 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_D_PL_WIDTH 1 32916 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_OFST 0 32917 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_LBN 17 32918 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_WIDTH 1 32919 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_SET_NET_CHAN_OFST 0 32920 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_SET_NET_CHAN_LBN 18 32921 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_SET_NET_CHAN_WIDTH 1 32922 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_LACP_PLUGIN_OFST 0 32923 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_LACP_PLUGIN_LBN 19 32924 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_LACP_PLUGIN_WIDTH 1 32925 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_LACP_INC_L4_OFST 0 32926 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_LACP_INC_L4_LBN 20 32927 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_LACP_INC_L4_WIDTH 1 32928 /* If VLAN_PUSH >= 1, TCI value to be inserted as outermost VLAN. */ 32929 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN0_TCI_BE_OFST 4 32930 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN0_TCI_BE_LEN 2 32931 /* If VLAN_PUSH >= 1, TPID value to be inserted as outermost VLAN. */ 32932 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN0_PROTO_BE_OFST 6 32933 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN0_PROTO_BE_LEN 2 32934 /* If VLAN_PUSH == 2, inner TCI value to be inserted. */ 32935 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN1_TCI_BE_OFST 8 32936 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN1_TCI_BE_LEN 2 32937 /* If VLAN_PUSH == 2, inner TPID value to be inserted. */ 32938 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN1_PROTO_BE_OFST 10 32939 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN1_PROTO_BE_LEN 2 32940 /* Reserved. Ignored by firmware. Should be set to zero or 0xffffffff. */ 32941 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RSVD_OFST 12 32942 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RSVD_LEN 4 32943 /* Set to ENCAP_HEADER_ID_NULL to request no encap action */ 32944 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ENCAP_HEADER_ID_OFST 16 32945 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ENCAP_HEADER_ID_LEN 4 32946 /* An m-port selector identifying the m-port that the modified packet should be 32947 * delivered to. Set to MPORT_SELECTOR_NULL to request no delivery of the 32948 * packet. 32949 */ 32950 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DELIVER_OFST 20 32951 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DELIVER_LEN 4 32952 /* Allows an action set to trigger several counter updates. Set to 32953 * MAE_COUNTER_ID_NULL to request no counter action. 32954 */ 32955 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_COUNTER_LIST_ID_OFST 24 32956 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_COUNTER_LIST_ID_LEN 4 32957 /* Enum values, see field(s): */ 32958 /* MAE_COUNTER_ID */ 32959 /* If a driver only wished to update one counter within this action set, then 32960 * it can supply a COUNTER_ID instead of allocating a single-element counter 32961 * list. The ID must have been allocated with COUNTER_TYPE=AR. This field 32962 * should be set to MAE_COUNTER_ID_NULL if this behaviour is not required. It 32963 * is not valid to supply a non-NULL value for both COUNTER_LIST_ID and 32964 * COUNTER_ID. 32965 */ 32966 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_COUNTER_ID_OFST 28 32967 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_COUNTER_ID_LEN 4 32968 /* Enum values, see field(s): */ 32969 /* MAE_COUNTER_ID */ 32970 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_MARK_VALUE_OFST 32 32971 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_MARK_VALUE_LEN 4 32972 /* Set to MAC_ID_NULL to request no source MAC replacement. */ 32973 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_SRC_MAC_ID_OFST 36 32974 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_SRC_MAC_ID_LEN 4 32975 /* Set to MAC_ID_NULL to request no destination MAC replacement. */ 32976 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DST_MAC_ID_OFST 40 32977 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DST_MAC_ID_LEN 4 32978 /* Source m-port ID to be reported for DO_SET_SRC_MPORT action. */ 32979 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_REPORTED_SRC_MPORT_OFST 44 32980 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_REPORTED_SRC_MPORT_LEN 4 32981 /* Actions for modifying the Differentiated Services Code-Point (DSCP) bits 32982 * within IPv4 and IPv6 headers. 32983 */ 32984 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DSCP_CONTROL_OFST 48 32985 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DSCP_CONTROL_LEN 2 32986 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DSCP_ENCAP_COPY_OFST 48 32987 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DSCP_ENCAP_COPY_LBN 0 32988 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DSCP_ENCAP_COPY_WIDTH 1 32989 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DSCP_DECAP_COPY_OFST 48 32990 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DSCP_DECAP_COPY_LBN 1 32991 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DSCP_DECAP_COPY_WIDTH 1 32992 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_DSCP_OFST 48 32993 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_DSCP_LBN 2 32994 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_DSCP_WIDTH 1 32995 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DSCP_VALUE_OFST 48 32996 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DSCP_VALUE_LBN 3 32997 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DSCP_VALUE_WIDTH 6 32998 /* Actions for modifying the Explicit Congestion Notification (ECN) bits within 32999 * IPv4 and IPv6 headers. 33000 */ 33001 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_CONTROL_OFST 50 33002 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_CONTROL_LEN 1 33003 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_ECN_ENCAP_COPY_OFST 50 33004 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_ECN_ENCAP_COPY_LBN 0 33005 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_ECN_ENCAP_COPY_WIDTH 1 33006 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_ECN_DECAP_COPY_OFST 50 33007 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_ECN_DECAP_COPY_LBN 1 33008 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_ECN_DECAP_COPY_WIDTH 1 33009 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_ECN_OFST 50 33010 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_ECN_LBN 2 33011 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_ECN_WIDTH 1 33012 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_VALUE_OFST 50 33013 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_VALUE_LBN 3 33014 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_VALUE_WIDTH 2 33015 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_ECT_0_TO_CE_OFST 50 33016 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_ECT_0_TO_CE_LBN 5 33017 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_ECT_0_TO_CE_WIDTH 1 33018 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_ECT_1_TO_CE_OFST 50 33019 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_ECT_1_TO_CE_LBN 6 33020 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_ECT_1_TO_CE_WIDTH 1 33021 /* Actions for overwriting CH_ROUTE subfields. */ 33022 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_OVERWRITE_OFST 51 33023 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_OVERWRITE_LEN 1 33024 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_C_PL_OFST 51 33025 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_C_PL_LBN 0 33026 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_C_PL_WIDTH 1 33027 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_D_PL_OFST 51 33028 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_D_PL_LBN 1 33029 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_D_PL_WIDTH 1 33030 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_PL_CHAN_OFST 51 33031 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_PL_CHAN_LBN 2 33032 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_PL_CHAN_WIDTH 1 33033 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_OUT_HOST_CHAN_OFST 51 33034 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_OUT_HOST_CHAN_LBN 3 33035 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_OUT_HOST_CHAN_WIDTH 1 33036 /* Override outgoing CH_VC to network port for DO_SET_NET_CHAN action. Cannot 33037 * be used in conjunction with DO_SET_SRC_MPORT action. 33038 */ 33039 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_NET_CHAN_OFST 52 33040 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_NET_CHAN_LEN 1 33041 33042 /* MC_CMD_MAE_ACTION_SET_ALLOC_OUT msgresponse */ 33043 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_LEN 4 33044 /* The MSB of the AS_ID is guaranteed to be clear if the ID is not 33045 * ACTION_SET_ID_NULL. This allows an AS_ID to be distinguished from an ASL_ID 33046 * returned from MC_CMD_MAE_ACTION_SET_LIST_ALLOC. 33047 */ 33048 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_AS_ID_OFST 0 33049 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_AS_ID_LEN 4 33050 /* enum: An action set ID that is guaranteed never to represent an action set 33051 */ 33052 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_ACTION_SET_ID_NULL 0xffffffff 33053 33054 33055 /***********************************/ 33056 /* MC_CMD_MAE_ACTION_SET_FREE 33057 */ 33058 #define MC_CMD_MAE_ACTION_SET_FREE 0x14e 33059 #define MC_CMD_MAE_ACTION_SET_FREE_MSGSET 0x14e 33060 #undef MC_CMD_0x14e_PRIVILEGE_CTG 33061 33062 #define MC_CMD_0x14e_PRIVILEGE_CTG SRIOV_CTG_MAE 33063 33064 /* MC_CMD_MAE_ACTION_SET_FREE_IN msgrequest */ 33065 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMIN 4 33066 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMAX 128 33067 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMAX_MCDI2 128 33068 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LEN(num) (0+4*(num)) 33069 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_NUM(len) (((len)-0)/4) 33070 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 33071 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_OFST 0 33072 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_LEN 4 33073 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_MINNUM 1 33074 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_MAXNUM 32 33075 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_MAXNUM_MCDI2 32 33076 33077 /* MC_CMD_MAE_ACTION_SET_FREE_OUT msgresponse */ 33078 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LENMIN 4 33079 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LENMAX 128 33080 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LENMAX_MCDI2 128 33081 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LEN(num) (0+4*(num)) 33082 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_NUM(len) (((len)-0)/4) 33083 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 33084 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_OFST 0 33085 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_LEN 4 33086 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_MINNUM 1 33087 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_MAXNUM 32 33088 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_MAXNUM_MCDI2 32 33089 33090 33091 /***********************************/ 33092 /* MC_CMD_MAE_ACTION_SET_LIST_ALLOC 33093 * Allocate an action set list (ASL) that can be referenced by an ID. The ASL 33094 * ID can be used when inserting an action rule, so that for each packet 33095 * matching the rule every action set in the list is applied. If the maximum 33096 * number of ASLs have already been allocated then the command will fail with 33097 * MC_CMD_ERR_ENOSPC. 33098 */ 33099 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC 0x14f 33100 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_MSGSET 0x14f 33101 #undef MC_CMD_0x14f_PRIVILEGE_CTG 33102 33103 #define MC_CMD_0x14f_PRIVILEGE_CTG SRIOV_CTG_MAE 33104 33105 /* MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN msgrequest */ 33106 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LENMIN 8 33107 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LENMAX 252 33108 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LENMAX_MCDI2 1020 33109 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LEN(num) (4+4*(num)) 33110 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_NUM(len) (((len)-4)/4) 33111 /* Number of elements in the AS_IDS field. */ 33112 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_COUNT_OFST 0 33113 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_COUNT_LEN 4 33114 /* The IDs of the action sets in this list. The last element of this list may 33115 * be the ID of an already allocated ASL. In this case the action sets from the 33116 * already allocated ASL will be applied after the action sets supplied by this 33117 * request. This mechanism can be used to reduce resource usage in the case 33118 * where one ASL is a sublist of another ASL. The sublist should be allocated 33119 * first, then the superlist should be allocated by supplying all required 33120 * action set IDs that are not in the sublist followed by the ID of the 33121 * sublist. One sublist can be referenced by multiple superlists. 33122 */ 33123 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_OFST 4 33124 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_LEN 4 33125 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_MINNUM 1 33126 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_MAXNUM 62 33127 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_MAXNUM_MCDI2 254 33128 33129 /* MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT msgresponse */ 33130 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_LEN 4 33131 /* The MSB of the ASL_ID is guaranteed to be set. This allows an ASL_ID to be 33132 * distinguished from an AS_ID returned from MC_CMD_MAE_ACTION_SET_ALLOC. 33133 */ 33134 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_ASL_ID_OFST 0 33135 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_ASL_ID_LEN 4 33136 /* enum: An action set list ID that is guaranteed never to represent an action 33137 * set list 33138 */ 33139 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_ACTION_SET_LIST_ID_NULL 0xffffffff 33140 33141 33142 /***********************************/ 33143 /* MC_CMD_MAE_ACTION_SET_LIST_FREE 33144 * Free match-action-engine redirect_lists 33145 */ 33146 #define MC_CMD_MAE_ACTION_SET_LIST_FREE 0x150 33147 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_MSGSET 0x150 33148 #undef MC_CMD_0x150_PRIVILEGE_CTG 33149 33150 #define MC_CMD_0x150_PRIVILEGE_CTG SRIOV_CTG_MAE 33151 33152 /* MC_CMD_MAE_ACTION_SET_LIST_FREE_IN msgrequest */ 33153 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMIN 4 33154 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMAX 128 33155 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMAX_MCDI2 128 33156 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LEN(num) (0+4*(num)) 33157 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_NUM(len) (((len)-0)/4) 33158 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 33159 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_OFST 0 33160 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_LEN 4 33161 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_MINNUM 1 33162 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_MAXNUM 32 33163 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_MAXNUM_MCDI2 32 33164 33165 /* MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT msgresponse */ 33166 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LENMIN 4 33167 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LENMAX 128 33168 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LENMAX_MCDI2 128 33169 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LEN(num) (0+4*(num)) 33170 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_NUM(len) (((len)-0)/4) 33171 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 33172 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_OFST 0 33173 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_LEN 4 33174 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_MINNUM 1 33175 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_MAXNUM 32 33176 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_MAXNUM_MCDI2 32 33177 33178 33179 /***********************************/ 33180 /* MC_CMD_MAE_OUTER_RULE_INSERT 33181 * Inserts an Outer Rule, which controls encapsulation parsing, and may 33182 * influence the Lookup Sequence. If the maximum number of rules have already 33183 * been inserted then the command will fail with MC_CMD_ERR_ENOSPC. 33184 */ 33185 #define MC_CMD_MAE_OUTER_RULE_INSERT 0x15a 33186 #define MC_CMD_MAE_OUTER_RULE_INSERT_MSGSET 0x15a 33187 #undef MC_CMD_0x15a_PRIVILEGE_CTG 33188 33189 #define MC_CMD_0x15a_PRIVILEGE_CTG SRIOV_CTG_MAE 33190 33191 /* MC_CMD_MAE_OUTER_RULE_INSERT_IN msgrequest */ 33192 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LENMIN 16 33193 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LENMAX 252 33194 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LENMAX_MCDI2 1020 33195 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LEN(num) (16+1*(num)) 33196 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_NUM(len) (((len)-16)/1) 33197 /* Packets matching the rule will be parsed with this encapsulation. */ 33198 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ENCAP_TYPE_OFST 0 33199 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ENCAP_TYPE_LEN 4 33200 /* Enum values, see field(s): */ 33201 /* MAE_MCDI_ENCAP_TYPE */ 33202 /* Match priority. Lower values have higher priority. Must be less than 33203 * MC_CMD_MAE_GET_CAPS_OUT.ENCAP_PRIOS If a packet matches two filters with 33204 * equal priority then it is unspecified which takes priority. 33205 */ 33206 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_PRIO_OFST 4 33207 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_PRIO_LEN 4 33208 /* Deprecated alias for ACTION_CONTROL. */ 33209 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LOOKUP_CONTROL_OFST 8 33210 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LOOKUP_CONTROL_LEN 4 33211 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_CT_OFST 8 33212 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_CT_LBN 0 33213 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_CT_WIDTH 1 33214 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_VNI_MODE_OFST 8 33215 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_VNI_MODE_LBN 1 33216 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_VNI_MODE_WIDTH 2 33217 /* Enum values, see field(s): */ 33218 /* MAE_CT_VNI_MODE */ 33219 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_COUNT_OFST 8 33220 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_COUNT_LBN 3 33221 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_COUNT_WIDTH 1 33222 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_TCP_FLAGS_INHIBIT_OFST 8 33223 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_TCP_FLAGS_INHIBIT_LBN 4 33224 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_TCP_FLAGS_INHIBIT_WIDTH 1 33225 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RECIRC_ID_OFST 8 33226 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RECIRC_ID_LBN 8 33227 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RECIRC_ID_WIDTH 8 33228 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_DOMAIN_OFST 8 33229 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_DOMAIN_LBN 16 33230 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_DOMAIN_WIDTH 16 33231 /* This field controls the actions that are performed when a rule is hit. */ 33232 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ACTION_CONTROL_OFST 8 33233 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ACTION_CONTROL_LEN 4 33234 /* ID of counter to increment when the rule is hit. Only used if the DO_COUNT 33235 * flag is set. The ID must have been allocated with COUNTER_TYPE=OR. 33236 */ 33237 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_COUNTER_ID_OFST 12 33238 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_COUNTER_ID_LEN 4 33239 /* Structure of the format MAE_ENC_FIELD_PAIRS. */ 33240 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_OFST 16 33241 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_LEN 1 33242 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_MINNUM 0 33243 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_MAXNUM 236 33244 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_MAXNUM_MCDI2 1004 33245 33246 /* MC_CMD_MAE_OUTER_RULE_INSERT_OUT msgresponse */ 33247 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_LEN 4 33248 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_OR_ID_OFST 0 33249 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_OR_ID_LEN 4 33250 /* enum: An outer match ID that is guaranteed never to represent an outer match 33251 */ 33252 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_OUTER_RULE_ID_NULL 0xffffffff 33253 33254 33255 /***********************************/ 33256 /* MC_CMD_MAE_OUTER_RULE_REMOVE 33257 */ 33258 #define MC_CMD_MAE_OUTER_RULE_REMOVE 0x15b 33259 #define MC_CMD_MAE_OUTER_RULE_REMOVE_MSGSET 0x15b 33260 #undef MC_CMD_0x15b_PRIVILEGE_CTG 33261 33262 #define MC_CMD_0x15b_PRIVILEGE_CTG SRIOV_CTG_MAE 33263 33264 /* MC_CMD_MAE_OUTER_RULE_REMOVE_IN msgrequest */ 33265 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMIN 4 33266 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMAX 128 33267 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMAX_MCDI2 128 33268 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LEN(num) (0+4*(num)) 33269 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_NUM(len) (((len)-0)/4) 33270 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 33271 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_OFST 0 33272 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_LEN 4 33273 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_MINNUM 1 33274 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_MAXNUM 32 33275 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_MAXNUM_MCDI2 32 33276 33277 /* MC_CMD_MAE_OUTER_RULE_REMOVE_OUT msgresponse */ 33278 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LENMIN 4 33279 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LENMAX 128 33280 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LENMAX_MCDI2 128 33281 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LEN(num) (0+4*(num)) 33282 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_NUM(len) (((len)-0)/4) 33283 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 33284 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_OFST 0 33285 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_LEN 4 33286 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_MINNUM 1 33287 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_MAXNUM 32 33288 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_MAXNUM_MCDI2 32 33289 33290 33291 /***********************************/ 33292 /* MC_CMD_MAE_OUTER_RULE_UPDATE 33293 * Atomically change the response of an Outer Rule. 33294 */ 33295 #define MC_CMD_MAE_OUTER_RULE_UPDATE 0x17d 33296 #define MC_CMD_MAE_OUTER_RULE_UPDATE_MSGSET 0x17d 33297 #undef MC_CMD_0x17d_PRIVILEGE_CTG 33298 33299 #define MC_CMD_0x17d_PRIVILEGE_CTG SRIOV_CTG_MAE 33300 33301 /* MC_CMD_MAE_OUTER_RULE_UPDATE_IN msgrequest */ 33302 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_LEN 16 33303 /* ID of outer rule to update */ 33304 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_OR_ID_OFST 0 33305 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_OR_ID_LEN 4 33306 /* Packets matching the rule will be parsed with this encapsulation. */ 33307 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_ENCAP_TYPE_OFST 4 33308 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_ENCAP_TYPE_LEN 4 33309 /* Enum values, see field(s): */ 33310 /* MAE_MCDI_ENCAP_TYPE */ 33311 /* This field controls the actions that are performed when a rule is hit. */ 33312 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_ACTION_CONTROL_OFST 8 33313 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_ACTION_CONTROL_LEN 4 33314 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_DO_CT_OFST 8 33315 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_DO_CT_LBN 0 33316 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_DO_CT_WIDTH 1 33317 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_VNI_MODE_OFST 8 33318 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_VNI_MODE_LBN 1 33319 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_VNI_MODE_WIDTH 2 33320 /* Enum values, see field(s): */ 33321 /* MAE_CT_VNI_MODE */ 33322 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_DO_COUNT_OFST 8 33323 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_DO_COUNT_LBN 3 33324 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_DO_COUNT_WIDTH 1 33325 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_TCP_FLAGS_INHIBIT_OFST 8 33326 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_TCP_FLAGS_INHIBIT_LBN 4 33327 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_TCP_FLAGS_INHIBIT_WIDTH 1 33328 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_RECIRC_ID_OFST 8 33329 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_RECIRC_ID_LBN 8 33330 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_RECIRC_ID_WIDTH 8 33331 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_DOMAIN_OFST 8 33332 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_DOMAIN_LBN 16 33333 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_CT_DOMAIN_WIDTH 16 33334 /* ID of counter to increment when the rule is hit. Only used if the DO_COUNT 33335 * flag is set. The ID must have been allocated with COUNTER_TYPE=OR. 33336 */ 33337 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_COUNTER_ID_OFST 12 33338 #define MC_CMD_MAE_OUTER_RULE_UPDATE_IN_COUNTER_ID_LEN 4 33339 33340 /* MC_CMD_MAE_OUTER_RULE_UPDATE_OUT msgresponse */ 33341 #define MC_CMD_MAE_OUTER_RULE_UPDATE_OUT_LEN 0 33342 33343 /* MAE_ACTION_RULE_RESPONSE structuredef */ 33344 #define MAE_ACTION_RULE_RESPONSE_LEN 16 33345 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_OFST 0 33346 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_LEN 4 33347 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_LBN 0 33348 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_WIDTH 32 33349 /* Only one of ASL_ID or AS_ID may have a non-NULL value. */ 33350 #define MAE_ACTION_RULE_RESPONSE_AS_ID_OFST 4 33351 #define MAE_ACTION_RULE_RESPONSE_AS_ID_LEN 4 33352 #define MAE_ACTION_RULE_RESPONSE_AS_ID_LBN 32 33353 #define MAE_ACTION_RULE_RESPONSE_AS_ID_WIDTH 32 33354 /* Controls lookup flow when this rule is hit. See sub-fields for details. More 33355 * info on the lookup sequence can be found in SF-122976-TC. It is an error to 33356 * set both DO_CT and DO_RECIRC. 33357 */ 33358 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_OFST 8 33359 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_LEN 4 33360 #define MAE_ACTION_RULE_RESPONSE_DO_CT_OFST 8 33361 #define MAE_ACTION_RULE_RESPONSE_DO_CT_LBN 0 33362 #define MAE_ACTION_RULE_RESPONSE_DO_CT_WIDTH 1 33363 #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_OFST 8 33364 #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_LBN 1 33365 #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_WIDTH 1 33366 #define MAE_ACTION_RULE_RESPONSE_CT_VNI_MODE_OFST 8 33367 #define MAE_ACTION_RULE_RESPONSE_CT_VNI_MODE_LBN 2 33368 #define MAE_ACTION_RULE_RESPONSE_CT_VNI_MODE_WIDTH 2 33369 /* Enum values, see field(s): */ 33370 /* MAE_CT_VNI_MODE */ 33371 #define MAE_ACTION_RULE_RESPONSE_RECIRC_ID_OFST 8 33372 #define MAE_ACTION_RULE_RESPONSE_RECIRC_ID_LBN 8 33373 #define MAE_ACTION_RULE_RESPONSE_RECIRC_ID_WIDTH 8 33374 #define MAE_ACTION_RULE_RESPONSE_CT_DOMAIN_OFST 8 33375 #define MAE_ACTION_RULE_RESPONSE_CT_DOMAIN_LBN 16 33376 #define MAE_ACTION_RULE_RESPONSE_CT_DOMAIN_WIDTH 16 33377 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_LBN 64 33378 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_WIDTH 32 33379 /* Counter ID to increment if DO_CT or DO_RECIRC is set. Must be set to 33380 * COUNTER_ID_NULL otherwise. Counter ID must have been allocated with 33381 * COUNTER_TYPE=AR. 33382 */ 33383 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_OFST 12 33384 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_LEN 4 33385 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_LBN 96 33386 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_WIDTH 32 33387 33388 33389 /***********************************/ 33390 /* MC_CMD_MAE_ACTION_RULE_INSERT 33391 * Insert a rule specify that packets matching a filter be processed according 33392 * to a previous allocated action. Masks can be set as indicated by 33393 * MC_CMD_MAE_GET_MATCH_FIELD_CAPABILITIES. If the maximum number of rules have 33394 * already been inserted then the command will fail with MC_CMD_ERR_ENOSPC. 33395 */ 33396 #define MC_CMD_MAE_ACTION_RULE_INSERT 0x15c 33397 #define MC_CMD_MAE_ACTION_RULE_INSERT_MSGSET 0x15c 33398 #undef MC_CMD_0x15c_PRIVILEGE_CTG 33399 33400 #define MC_CMD_0x15c_PRIVILEGE_CTG SRIOV_CTG_MAE 33401 33402 /* MC_CMD_MAE_ACTION_RULE_INSERT_IN msgrequest */ 33403 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LENMIN 28 33404 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LENMAX 252 33405 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LENMAX_MCDI2 1020 33406 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LEN(num) (28+1*(num)) 33407 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_NUM(len) (((len)-28)/1) 33408 /* See MC_CMD_MAE_OUTER_RULE_REGISTER_IN/PRIO. */ 33409 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_PRIO_OFST 0 33410 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_PRIO_LEN 4 33411 /* Structure of the format MAE_ACTION_RULE_RESPONSE */ 33412 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RESPONSE_OFST 4 33413 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RESPONSE_LEN 20 33414 /* Reserved for future use. Must be set to zero. */ 33415 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RSVD_OFST 24 33416 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RSVD_LEN 4 33417 /* Structure of the format MAE_FIELD_MASK_VALUE_PAIRS */ 33418 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_OFST 28 33419 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_LEN 1 33420 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_MINNUM 0 33421 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_MAXNUM 224 33422 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_MAXNUM_MCDI2 992 33423 33424 /* MC_CMD_MAE_ACTION_RULE_INSERT_OUT msgresponse */ 33425 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_LEN 4 33426 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_AR_ID_OFST 0 33427 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_AR_ID_LEN 4 33428 /* enum: An action rule ID that is guaranteed never to represent an action rule 33429 */ 33430 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_ACTION_RULE_ID_NULL 0xffffffff 33431 33432 33433 /***********************************/ 33434 /* MC_CMD_MAE_ACTION_RULE_UPDATE 33435 * Atomically change the response of an action rule. Firmware may return 33436 * ENOTSUP, in which case the driver should DELETE/INSERT. 33437 */ 33438 #define MC_CMD_MAE_ACTION_RULE_UPDATE 0x15d 33439 #define MC_CMD_MAE_ACTION_RULE_UPDATE_MSGSET 0x15d 33440 #undef MC_CMD_0x15d_PRIVILEGE_CTG 33441 33442 #define MC_CMD_0x15d_PRIVILEGE_CTG SRIOV_CTG_MAE 33443 33444 /* MC_CMD_MAE_ACTION_RULE_UPDATE_IN msgrequest */ 33445 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_LEN 24 33446 /* ID of action rule to update */ 33447 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_AR_ID_OFST 0 33448 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_AR_ID_LEN 4 33449 /* Structure of the format MAE_ACTION_RULE_RESPONSE */ 33450 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_RESPONSE_OFST 4 33451 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_RESPONSE_LEN 20 33452 33453 /* MC_CMD_MAE_ACTION_RULE_UPDATE_OUT msgresponse */ 33454 #define MC_CMD_MAE_ACTION_RULE_UPDATE_OUT_LEN 0 33455 33456 33457 /***********************************/ 33458 /* MC_CMD_MAE_ACTION_RULE_DELETE 33459 */ 33460 #define MC_CMD_MAE_ACTION_RULE_DELETE 0x155 33461 #define MC_CMD_MAE_ACTION_RULE_DELETE_MSGSET 0x155 33462 #undef MC_CMD_0x155_PRIVILEGE_CTG 33463 33464 #define MC_CMD_0x155_PRIVILEGE_CTG SRIOV_CTG_MAE 33465 33466 /* MC_CMD_MAE_ACTION_RULE_DELETE_IN msgrequest */ 33467 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMIN 4 33468 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMAX 128 33469 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMAX_MCDI2 128 33470 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LEN(num) (0+4*(num)) 33471 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_NUM(len) (((len)-0)/4) 33472 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 33473 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_OFST 0 33474 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_LEN 4 33475 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_MINNUM 1 33476 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_MAXNUM 32 33477 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_MAXNUM_MCDI2 32 33478 33479 /* MC_CMD_MAE_ACTION_RULE_DELETE_OUT msgresponse */ 33480 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LENMIN 4 33481 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LENMAX 128 33482 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LENMAX_MCDI2 128 33483 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LEN(num) (0+4*(num)) 33484 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_NUM(len) (((len)-0)/4) 33485 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 33486 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_OFST 0 33487 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_LEN 4 33488 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_MINNUM 1 33489 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_MAXNUM 32 33490 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_MAXNUM_MCDI2 32 33491 33492 33493 /***********************************/ 33494 /* MC_CMD_MAE_MPORT_LOOKUP 33495 * Return the m-port corresponding to a selector. 33496 */ 33497 #define MC_CMD_MAE_MPORT_LOOKUP 0x160 33498 #define MC_CMD_MAE_MPORT_LOOKUP_MSGSET 0x160 33499 #undef MC_CMD_0x160_PRIVILEGE_CTG 33500 33501 #define MC_CMD_0x160_PRIVILEGE_CTG SRIOV_CTG_GENERAL 33502 33503 /* MC_CMD_MAE_MPORT_LOOKUP_IN msgrequest */ 33504 #define MC_CMD_MAE_MPORT_LOOKUP_IN_LEN 4 33505 #define MC_CMD_MAE_MPORT_LOOKUP_IN_MPORT_SELECTOR_OFST 0 33506 #define MC_CMD_MAE_MPORT_LOOKUP_IN_MPORT_SELECTOR_LEN 4 33507 33508 /* MC_CMD_MAE_MPORT_LOOKUP_OUT msgresponse */ 33509 #define MC_CMD_MAE_MPORT_LOOKUP_OUT_LEN 4 33510 #define MC_CMD_MAE_MPORT_LOOKUP_OUT_MPORT_ID_OFST 0 33511 #define MC_CMD_MAE_MPORT_LOOKUP_OUT_MPORT_ID_LEN 4 33512 33513 33514 /***********************************/ 33515 /* MC_CMD_MAE_MPORT_ALLOC 33516 * Allocates a m-port, which can subsequently be used in action rules as a 33517 * match or delivery argument. 33518 */ 33519 #define MC_CMD_MAE_MPORT_ALLOC 0x163 33520 #define MC_CMD_MAE_MPORT_ALLOC_MSGSET 0x163 33521 #undef MC_CMD_0x163_PRIVILEGE_CTG 33522 33523 #define MC_CMD_0x163_PRIVILEGE_CTG SRIOV_CTG_MAE 33524 33525 /* MC_CMD_MAE_MPORT_ALLOC_IN msgrequest */ 33526 #define MC_CMD_MAE_MPORT_ALLOC_IN_LEN 20 33527 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain 33528 * types. 33529 */ 33530 #define MC_CMD_MAE_MPORT_ALLOC_IN_TYPE_OFST 0 33531 #define MC_CMD_MAE_MPORT_ALLOC_IN_TYPE_LEN 4 33532 /* enum: Traffic can be sent to this type of m-port using an override 33533 * descriptor. Traffic received on this type of m-port will go to the VNIC on a 33534 * nominated m-port, and will be delivered with metadata identifying the alias 33535 * m-port. 33536 */ 33537 #define MC_CMD_MAE_MPORT_ALLOC_IN_MPORT_TYPE_ALIAS 0x1 33538 /* enum: This type of m-port has a VNIC attached. Queues can be created on this 33539 * VNIC by specifying the created m-port as an m-port selector at queue 33540 * creation time. 33541 */ 33542 #define MC_CMD_MAE_MPORT_ALLOC_IN_MPORT_TYPE_VNIC 0x2 33543 /* 128-bit value for use by the driver. */ 33544 #define MC_CMD_MAE_MPORT_ALLOC_IN_UUID_OFST 4 33545 #define MC_CMD_MAE_MPORT_ALLOC_IN_UUID_LEN 16 33546 33547 /* MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN msgrequest */ 33548 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_LEN 24 33549 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain 33550 * types. 33551 */ 33552 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_TYPE_OFST 0 33553 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_TYPE_LEN 4 33554 /* enum: Traffic can be sent to this type of m-port using an override 33555 * descriptor. Traffic received on this type of m-port will go to the VNIC on a 33556 * nominated m-port, and will be delivered with metadata identifying the alias 33557 * m-port. 33558 */ 33559 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_MPORT_TYPE_ALIAS 0x1 33560 /* enum: This type of m-port has a VNIC attached. Queues can be created on this 33561 * VNIC by specifying the created m-port as an m-port selector at queue 33562 * creation time. 33563 */ 33564 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_MPORT_TYPE_VNIC 0x2 33565 /* 128-bit value for use by the driver. */ 33566 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_UUID_OFST 4 33567 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_UUID_LEN 16 33568 /* An m-port selector identifying the VNIC to which traffic should be 33569 * delivered. This must currently be set to MAE_MPORT_SELECTOR_ASSIGNED (i.e. 33570 * the m-port assigned to the calling client). 33571 */ 33572 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_DELIVER_MPORT_OFST 20 33573 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_DELIVER_MPORT_LEN 4 33574 33575 /* MC_CMD_MAE_MPORT_ALLOC_VNIC_IN msgrequest */ 33576 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_LEN 20 33577 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain 33578 * types. 33579 */ 33580 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_TYPE_OFST 0 33581 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_TYPE_LEN 4 33582 /* enum: Traffic can be sent to this type of m-port using an override 33583 * descriptor. Traffic received on this type of m-port will go to the VNIC on a 33584 * nominated m-port, and will be delivered with metadata identifying the alias 33585 * m-port. 33586 */ 33587 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_MPORT_TYPE_ALIAS 0x1 33588 /* enum: This type of m-port has a VNIC attached. Queues can be created on this 33589 * VNIC by specifying the created m-port as an m-port selector at queue 33590 * creation time. 33591 */ 33592 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_MPORT_TYPE_VNIC 0x2 33593 /* 128-bit value for use by the driver. */ 33594 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_UUID_OFST 4 33595 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_UUID_LEN 16 33596 33597 /* MC_CMD_MAE_MPORT_ALLOC_OUT msgresponse */ 33598 #define MC_CMD_MAE_MPORT_ALLOC_OUT_LEN 4 33599 /* ID of newly-allocated m-port. */ 33600 #define MC_CMD_MAE_MPORT_ALLOC_OUT_MPORT_ID_OFST 0 33601 #define MC_CMD_MAE_MPORT_ALLOC_OUT_MPORT_ID_LEN 4 33602 33603 /* MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT msgrequest */ 33604 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_LEN 24 33605 /* ID of newly-allocated m-port. */ 33606 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_MPORT_ID_OFST 0 33607 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_MPORT_ID_LEN 4 33608 /* A value that will appear in the packet metadata for any packets delivered 33609 * using an alias type m-port. This value is guaranteed unique on the VNIC 33610 * being delivered to, and is guaranteed not to exceed the range of values 33611 * representable in the relevant metadata field. 33612 */ 33613 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_LABEL_OFST 20 33614 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_LABEL_LEN 4 33615 33616 /* MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT msgrequest */ 33617 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_LEN 4 33618 /* ID of newly-allocated m-port. */ 33619 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_MPORT_ID_OFST 0 33620 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_MPORT_ID_LEN 4 33621 33622 33623 /***********************************/ 33624 /* MC_CMD_MAE_MPORT_FREE 33625 * Free a m-port which was previously allocated by the driver. 33626 */ 33627 #define MC_CMD_MAE_MPORT_FREE 0x164 33628 #define MC_CMD_MAE_MPORT_FREE_MSGSET 0x164 33629 #undef MC_CMD_0x164_PRIVILEGE_CTG 33630 33631 #define MC_CMD_0x164_PRIVILEGE_CTG SRIOV_CTG_MAE 33632 33633 /* MC_CMD_MAE_MPORT_FREE_IN msgrequest */ 33634 #define MC_CMD_MAE_MPORT_FREE_IN_LEN 4 33635 /* MPORT_ID as returned by MC_CMD_MAE_MPORT_ALLOC. */ 33636 #define MC_CMD_MAE_MPORT_FREE_IN_MPORT_ID_OFST 0 33637 #define MC_CMD_MAE_MPORT_FREE_IN_MPORT_ID_LEN 4 33638 33639 /* MC_CMD_MAE_MPORT_FREE_OUT msgresponse */ 33640 #define MC_CMD_MAE_MPORT_FREE_OUT_LEN 0 33641 33642 /* MAE_MPORT_DESC structuredef */ 33643 #define MAE_MPORT_DESC_LEN 52 33644 #define MAE_MPORT_DESC_MPORT_ID_OFST 0 33645 #define MAE_MPORT_DESC_MPORT_ID_LEN 4 33646 #define MAE_MPORT_DESC_MPORT_ID_LBN 0 33647 #define MAE_MPORT_DESC_MPORT_ID_WIDTH 32 33648 /* Reserved for future purposes, contains information independent of caller */ 33649 #define MAE_MPORT_DESC_FLAGS_OFST 4 33650 #define MAE_MPORT_DESC_FLAGS_LEN 4 33651 #define MAE_MPORT_DESC_FLAGS_LBN 32 33652 #define MAE_MPORT_DESC_FLAGS_WIDTH 32 33653 #define MAE_MPORT_DESC_CALLER_FLAGS_OFST 8 33654 #define MAE_MPORT_DESC_CALLER_FLAGS_LEN 4 33655 #define MAE_MPORT_DESC_CAN_RECEIVE_ON_OFST 8 33656 #define MAE_MPORT_DESC_CAN_RECEIVE_ON_LBN 0 33657 #define MAE_MPORT_DESC_CAN_RECEIVE_ON_WIDTH 1 33658 #define MAE_MPORT_DESC_CAN_DELIVER_TO_OFST 8 33659 #define MAE_MPORT_DESC_CAN_DELIVER_TO_LBN 1 33660 #define MAE_MPORT_DESC_CAN_DELIVER_TO_WIDTH 1 33661 #define MAE_MPORT_DESC_CAN_DELETE_OFST 8 33662 #define MAE_MPORT_DESC_CAN_DELETE_LBN 2 33663 #define MAE_MPORT_DESC_CAN_DELETE_WIDTH 1 33664 #define MAE_MPORT_DESC_IS_ZOMBIE_OFST 8 33665 #define MAE_MPORT_DESC_IS_ZOMBIE_LBN 3 33666 #define MAE_MPORT_DESC_IS_ZOMBIE_WIDTH 1 33667 #define MAE_MPORT_DESC_CALLER_FLAGS_LBN 64 33668 #define MAE_MPORT_DESC_CALLER_FLAGS_WIDTH 32 33669 /* Not the ideal name; it's really the type of thing connected to the m-port */ 33670 #define MAE_MPORT_DESC_MPORT_TYPE_OFST 12 33671 #define MAE_MPORT_DESC_MPORT_TYPE_LEN 4 33672 /* enum: Connected to a MAC... */ 33673 #define MAE_MPORT_DESC_MPORT_TYPE_NET_PORT 0x0 33674 /* enum: Adds metadata and delivers to another m-port */ 33675 #define MAE_MPORT_DESC_MPORT_TYPE_ALIAS 0x1 33676 /* enum: Connected to a VNIC. */ 33677 #define MAE_MPORT_DESC_MPORT_TYPE_VNIC 0x2 33678 #define MAE_MPORT_DESC_MPORT_TYPE_LBN 96 33679 #define MAE_MPORT_DESC_MPORT_TYPE_WIDTH 32 33680 /* 128-bit value available to drivers for m-port identification. */ 33681 #define MAE_MPORT_DESC_UUID_OFST 16 33682 #define MAE_MPORT_DESC_UUID_LEN 16 33683 #define MAE_MPORT_DESC_UUID_LBN 128 33684 #define MAE_MPORT_DESC_UUID_WIDTH 128 33685 /* Big wadge of space reserved for other common properties */ 33686 #define MAE_MPORT_DESC_RESERVED_OFST 32 33687 #define MAE_MPORT_DESC_RESERVED_LEN 8 33688 #define MAE_MPORT_DESC_RESERVED_LO_OFST 32 33689 #define MAE_MPORT_DESC_RESERVED_LO_LEN 4 33690 #define MAE_MPORT_DESC_RESERVED_LO_LBN 256 33691 #define MAE_MPORT_DESC_RESERVED_LO_WIDTH 32 33692 #define MAE_MPORT_DESC_RESERVED_HI_OFST 36 33693 #define MAE_MPORT_DESC_RESERVED_HI_LEN 4 33694 #define MAE_MPORT_DESC_RESERVED_HI_LBN 288 33695 #define MAE_MPORT_DESC_RESERVED_HI_WIDTH 32 33696 #define MAE_MPORT_DESC_RESERVED_LBN 256 33697 #define MAE_MPORT_DESC_RESERVED_WIDTH 64 33698 /* Logical port index. Only valid when type NET Port. */ 33699 #define MAE_MPORT_DESC_NET_PORT_IDX_OFST 40 33700 #define MAE_MPORT_DESC_NET_PORT_IDX_LEN 4 33701 #define MAE_MPORT_DESC_NET_PORT_IDX_LBN 320 33702 #define MAE_MPORT_DESC_NET_PORT_IDX_WIDTH 32 33703 /* The m-port delivered to */ 33704 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_OFST 40 33705 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_LEN 4 33706 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_LBN 320 33707 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_WIDTH 32 33708 /* The type of thing that owns the VNIC */ 33709 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_OFST 40 33710 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_LEN 4 33711 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_FUNCTION 0x1 /* enum */ 33712 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_PLUGIN 0x2 /* enum */ 33713 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_LBN 320 33714 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_WIDTH 32 33715 /* The PCIe interface on which the function lives. CJK: We need an enumeration 33716 * of interfaces that we extend as new interface (types) appear. This belongs 33717 * elsewhere and should be referenced from here 33718 */ 33719 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_OFST 44 33720 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_LEN 4 33721 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_LBN 352 33722 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_WIDTH 32 33723 #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_OFST 48 33724 #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_LEN 2 33725 #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_LBN 384 33726 #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_WIDTH 16 33727 #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_OFST 50 33728 #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_LEN 2 33729 /* enum: Indicates that the function is a PF */ 33730 #define MAE_MPORT_DESC_VF_IDX_NULL 0xffff 33731 #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_LBN 400 33732 #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_WIDTH 16 33733 /* Reserved. Should be ignored for now. */ 33734 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_OFST 44 33735 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_LEN 4 33736 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_LBN 352 33737 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_WIDTH 32 33738 33739 /* MAE_MPORT_DESC_V2 structuredef */ 33740 #define MAE_MPORT_DESC_V2_LEN 56 33741 #define MAE_MPORT_DESC_V2_MPORT_ID_OFST 0 33742 #define MAE_MPORT_DESC_V2_MPORT_ID_LEN 4 33743 #define MAE_MPORT_DESC_V2_MPORT_ID_LBN 0 33744 #define MAE_MPORT_DESC_V2_MPORT_ID_WIDTH 32 33745 /* Reserved for future purposes, contains information independent of caller */ 33746 #define MAE_MPORT_DESC_V2_FLAGS_OFST 4 33747 #define MAE_MPORT_DESC_V2_FLAGS_LEN 4 33748 #define MAE_MPORT_DESC_V2_FLAGS_LBN 32 33749 #define MAE_MPORT_DESC_V2_FLAGS_WIDTH 32 33750 #define MAE_MPORT_DESC_V2_CALLER_FLAGS_OFST 8 33751 #define MAE_MPORT_DESC_V2_CALLER_FLAGS_LEN 4 33752 #define MAE_MPORT_DESC_V2_CAN_RECEIVE_ON_OFST 8 33753 #define MAE_MPORT_DESC_V2_CAN_RECEIVE_ON_LBN 0 33754 #define MAE_MPORT_DESC_V2_CAN_RECEIVE_ON_WIDTH 1 33755 #define MAE_MPORT_DESC_V2_CAN_DELIVER_TO_OFST 8 33756 #define MAE_MPORT_DESC_V2_CAN_DELIVER_TO_LBN 1 33757 #define MAE_MPORT_DESC_V2_CAN_DELIVER_TO_WIDTH 1 33758 #define MAE_MPORT_DESC_V2_CAN_DELETE_OFST 8 33759 #define MAE_MPORT_DESC_V2_CAN_DELETE_LBN 2 33760 #define MAE_MPORT_DESC_V2_CAN_DELETE_WIDTH 1 33761 #define MAE_MPORT_DESC_V2_IS_ZOMBIE_OFST 8 33762 #define MAE_MPORT_DESC_V2_IS_ZOMBIE_LBN 3 33763 #define MAE_MPORT_DESC_V2_IS_ZOMBIE_WIDTH 1 33764 #define MAE_MPORT_DESC_V2_CALLER_FLAGS_LBN 64 33765 #define MAE_MPORT_DESC_V2_CALLER_FLAGS_WIDTH 32 33766 /* Not the ideal name; it's really the type of thing connected to the m-port */ 33767 #define MAE_MPORT_DESC_V2_MPORT_TYPE_OFST 12 33768 #define MAE_MPORT_DESC_V2_MPORT_TYPE_LEN 4 33769 /* enum: Connected to a MAC... */ 33770 #define MAE_MPORT_DESC_V2_MPORT_TYPE_NET_PORT 0x0 33771 /* enum: Adds metadata and delivers to another m-port */ 33772 #define MAE_MPORT_DESC_V2_MPORT_TYPE_ALIAS 0x1 33773 /* enum: Connected to a VNIC. */ 33774 #define MAE_MPORT_DESC_V2_MPORT_TYPE_VNIC 0x2 33775 #define MAE_MPORT_DESC_V2_MPORT_TYPE_LBN 96 33776 #define MAE_MPORT_DESC_V2_MPORT_TYPE_WIDTH 32 33777 /* 128-bit value available to drivers for m-port identification. */ 33778 #define MAE_MPORT_DESC_V2_UUID_OFST 16 33779 #define MAE_MPORT_DESC_V2_UUID_LEN 16 33780 #define MAE_MPORT_DESC_V2_UUID_LBN 128 33781 #define MAE_MPORT_DESC_V2_UUID_WIDTH 128 33782 /* Big wadge of space reserved for other common properties */ 33783 #define MAE_MPORT_DESC_V2_RESERVED_OFST 32 33784 #define MAE_MPORT_DESC_V2_RESERVED_LEN 8 33785 #define MAE_MPORT_DESC_V2_RESERVED_LO_OFST 32 33786 #define MAE_MPORT_DESC_V2_RESERVED_LO_LEN 4 33787 #define MAE_MPORT_DESC_V2_RESERVED_LO_LBN 256 33788 #define MAE_MPORT_DESC_V2_RESERVED_LO_WIDTH 32 33789 #define MAE_MPORT_DESC_V2_RESERVED_HI_OFST 36 33790 #define MAE_MPORT_DESC_V2_RESERVED_HI_LEN 4 33791 #define MAE_MPORT_DESC_V2_RESERVED_HI_LBN 288 33792 #define MAE_MPORT_DESC_V2_RESERVED_HI_WIDTH 32 33793 #define MAE_MPORT_DESC_V2_RESERVED_LBN 256 33794 #define MAE_MPORT_DESC_V2_RESERVED_WIDTH 64 33795 /* Logical port index. Only valid when type NET Port. */ 33796 #define MAE_MPORT_DESC_V2_NET_PORT_IDX_OFST 40 33797 #define MAE_MPORT_DESC_V2_NET_PORT_IDX_LEN 4 33798 #define MAE_MPORT_DESC_V2_NET_PORT_IDX_LBN 320 33799 #define MAE_MPORT_DESC_V2_NET_PORT_IDX_WIDTH 32 33800 /* The m-port delivered to */ 33801 #define MAE_MPORT_DESC_V2_ALIAS_DELIVER_MPORT_ID_OFST 40 33802 #define MAE_MPORT_DESC_V2_ALIAS_DELIVER_MPORT_ID_LEN 4 33803 #define MAE_MPORT_DESC_V2_ALIAS_DELIVER_MPORT_ID_LBN 320 33804 #define MAE_MPORT_DESC_V2_ALIAS_DELIVER_MPORT_ID_WIDTH 32 33805 /* The type of thing that owns the VNIC */ 33806 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_OFST 40 33807 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_LEN 4 33808 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_FUNCTION 0x1 /* enum */ 33809 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_PLUGIN 0x2 /* enum */ 33810 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_LBN 320 33811 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_WIDTH 32 33812 /* The PCIe interface on which the function lives. CJK: We need an enumeration 33813 * of interfaces that we extend as new interface (types) appear. This belongs 33814 * elsewhere and should be referenced from here 33815 */ 33816 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_INTERFACE_OFST 44 33817 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_INTERFACE_LEN 4 33818 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_INTERFACE_LBN 352 33819 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_INTERFACE_WIDTH 32 33820 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_PF_IDX_OFST 48 33821 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_PF_IDX_LEN 2 33822 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_PF_IDX_LBN 384 33823 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_PF_IDX_WIDTH 16 33824 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_VF_IDX_OFST 50 33825 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_VF_IDX_LEN 2 33826 /* enum: Indicates that the function is a PF */ 33827 #define MAE_MPORT_DESC_V2_VF_IDX_NULL 0xffff 33828 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_VF_IDX_LBN 400 33829 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_VF_IDX_WIDTH 16 33830 /* Reserved. Should be ignored for now. */ 33831 #define MAE_MPORT_DESC_V2_VNIC_PLUGIN_TBD_OFST 44 33832 #define MAE_MPORT_DESC_V2_VNIC_PLUGIN_TBD_LEN 4 33833 #define MAE_MPORT_DESC_V2_VNIC_PLUGIN_TBD_LBN 352 33834 #define MAE_MPORT_DESC_V2_VNIC_PLUGIN_TBD_WIDTH 32 33835 /* A client handle for the VNIC's owner. Only valid for type VNIC. */ 33836 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_HANDLE_OFST 52 33837 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_HANDLE_LEN 4 33838 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_HANDLE_LBN 416 33839 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_HANDLE_WIDTH 32 33840 33841 33842 /***********************************/ 33843 /* MC_CMD_MAE_MPORT_ENUMERATE 33844 * Deprecated in favour of MAE_MPORT_READ_JOURNAL. Support for this command 33845 * will be removed at some future point. 33846 */ 33847 #define MC_CMD_MAE_MPORT_ENUMERATE 0x17c 33848 #define MC_CMD_MAE_MPORT_ENUMERATE_MSGSET 0x17c 33849 #undef MC_CMD_0x17c_PRIVILEGE_CTG 33850 33851 #define MC_CMD_0x17c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 33852 33853 /* MC_CMD_MAE_MPORT_ENUMERATE_IN msgrequest */ 33854 #define MC_CMD_MAE_MPORT_ENUMERATE_IN_LEN 0 33855 33856 /* MC_CMD_MAE_MPORT_ENUMERATE_OUT msgresponse */ 33857 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_LENMIN 8 33858 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_LENMAX 252 33859 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_LENMAX_MCDI2 1020 33860 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_LEN(num) (8+1*(num)) 33861 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_NUM(len) (((len)-8)/1) 33862 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_COUNT_OFST 0 33863 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_COUNT_LEN 4 33864 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_SIZEOF_MPORT_DESC_OFST 4 33865 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_SIZEOF_MPORT_DESC_LEN 4 33866 /* Any array of MAE_MPORT_DESC structures. The MAE_MPORT_DESC structure may 33867 * grow in future version of this command. Drivers should use a stride of 33868 * SIZEOF_MPORT_DESC. Fields beyond SIZEOF_MPORT_DESC are not present. 33869 */ 33870 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_OFST 8 33871 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_LEN 1 33872 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_MINNUM 0 33873 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_MAXNUM 244 33874 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_MAXNUM_MCDI2 1012 33875 33876 33877 /***********************************/ 33878 /* MC_CMD_MAE_MPORT_READ_JOURNAL 33879 * Firmware maintains a per-client journal of mport creations and deletions. 33880 * This journal is clear-on-read, i.e. repeated calls of this command will 33881 * drain the buffer. Whenever the caller resets its function via FLR or 33882 * MC_CMD_ENTITY_RESET, the journal is regenerated from a blank start. 33883 */ 33884 #define MC_CMD_MAE_MPORT_READ_JOURNAL 0x147 33885 #define MC_CMD_MAE_MPORT_READ_JOURNAL_MSGSET 0x147 33886 #undef MC_CMD_0x147_PRIVILEGE_CTG 33887 33888 #define MC_CMD_0x147_PRIVILEGE_CTG SRIOV_CTG_MAE 33889 33890 /* MC_CMD_MAE_MPORT_READ_JOURNAL_IN msgrequest */ 33891 #define MC_CMD_MAE_MPORT_READ_JOURNAL_IN_LEN 4 33892 /* Any unused flags are reserved and must be set to zero. */ 33893 #define MC_CMD_MAE_MPORT_READ_JOURNAL_IN_FLAGS_OFST 0 33894 #define MC_CMD_MAE_MPORT_READ_JOURNAL_IN_FLAGS_LEN 4 33895 33896 /* MC_CMD_MAE_MPORT_READ_JOURNAL_OUT msgresponse */ 33897 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LENMIN 12 33898 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LENMAX 252 33899 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LENMAX_MCDI2 1020 33900 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LEN(num) (12+1*(num)) 33901 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_NUM(len) (((len)-12)/1) 33902 /* Any unused flags are reserved and must be ignored. */ 33903 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_FLAGS_OFST 0 33904 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_FLAGS_LEN 4 33905 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MORE_OFST 0 33906 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MORE_LBN 0 33907 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MORE_WIDTH 1 33908 /* The number of MAE_MPORT_DESC structures in MPORT_DESC_DATA. May be zero. */ 33909 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_COUNT_OFST 4 33910 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_COUNT_LEN 4 33911 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_SIZEOF_MPORT_DESC_OFST 8 33912 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_SIZEOF_MPORT_DESC_LEN 4 33913 /* Any array of MAE_MPORT_DESC structures. The MAE_MPORT_DESC structure may 33914 * grow in future version of this command. Drivers should use a stride of 33915 * SIZEOF_MPORT_DESC. Fields beyond SIZEOF_MPORT_DESC are not present. 33916 */ 33917 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_OFST 12 33918 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_LEN 1 33919 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_MINNUM 0 33920 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_MAXNUM 240 33921 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_MAXNUM_MCDI2 1008 33922 33923 /* TABLE_FIELD_DESCR structuredef: An individual table field descriptor. This 33924 * describes the location and properties of one N-bit field within a wider 33925 * M-bit key/mask/response value. 33926 */ 33927 #define TABLE_FIELD_DESCR_LEN 8 33928 /* Identifier for this field. */ 33929 #define TABLE_FIELD_DESCR_FIELD_ID_OFST 0 33930 #define TABLE_FIELD_DESCR_FIELD_ID_LEN 2 33931 /* Enum values, see field(s): */ 33932 /* TABLE_FIELD_ID */ 33933 #define TABLE_FIELD_DESCR_FIELD_ID_LBN 0 33934 #define TABLE_FIELD_DESCR_FIELD_ID_WIDTH 16 33935 /* Lowest (least significant) bit number of the bits of this field. */ 33936 #define TABLE_FIELD_DESCR_LBN_OFST 2 33937 #define TABLE_FIELD_DESCR_LBN_LEN 2 33938 #define TABLE_FIELD_DESCR_LBN_LBN 16 33939 #define TABLE_FIELD_DESCR_LBN_WIDTH 16 33940 /* Width of this field in bits. */ 33941 #define TABLE_FIELD_DESCR_WIDTH_OFST 4 33942 #define TABLE_FIELD_DESCR_WIDTH_LEN 2 33943 #define TABLE_FIELD_DESCR_WIDTH_LBN 32 33944 #define TABLE_FIELD_DESCR_WIDTH_WIDTH 16 33945 /* The mask type for this field. (Note that masking is relevant to keys; fields 33946 * of responses are always reported with the EXACT type.) 33947 */ 33948 #define TABLE_FIELD_DESCR_MASK_TYPE_OFST 6 33949 #define TABLE_FIELD_DESCR_MASK_TYPE_LEN 1 33950 /* enum: Field must never be selected in the mask. */ 33951 #define TABLE_FIELD_DESCR_MASK_NEVER 0x0 33952 /* enum: Exact match: field must always be selected in the mask. */ 33953 #define TABLE_FIELD_DESCR_MASK_EXACT 0x1 33954 /* enum: Ternary match: arbitrary mask bits are allowed. */ 33955 #define TABLE_FIELD_DESCR_MASK_TERNARY 0x2 33956 /* enum: Whole field match: mask must be all 1 bits, or all 0 bits. */ 33957 #define TABLE_FIELD_DESCR_MASK_WHOLE_FIELD 0x3 33958 /* enum: Longest prefix match: mask must be 1 bit(s) followed by 0 bit(s). */ 33959 #define TABLE_FIELD_DESCR_MASK_LPM 0x4 33960 #define TABLE_FIELD_DESCR_MASK_TYPE_LBN 48 33961 #define TABLE_FIELD_DESCR_MASK_TYPE_WIDTH 8 33962 /* A version code that allows field semantics to be extended. All fields 33963 * currently use version 0. 33964 */ 33965 #define TABLE_FIELD_DESCR_SCHEME_OFST 7 33966 #define TABLE_FIELD_DESCR_SCHEME_LEN 1 33967 #define TABLE_FIELD_DESCR_SCHEME_LBN 56 33968 #define TABLE_FIELD_DESCR_SCHEME_WIDTH 8 33969 33970 33971 /***********************************/ 33972 /* MC_CMD_TABLE_LIST 33973 * Return the list of tables which may be accessed via this table API. 33974 */ 33975 #define MC_CMD_TABLE_LIST 0x1c9 33976 #define MC_CMD_TABLE_LIST_MSGSET 0x1c9 33977 #undef MC_CMD_0x1c9_PRIVILEGE_CTG 33978 33979 #define MC_CMD_0x1c9_PRIVILEGE_CTG SRIOV_CTG_GENERAL 33980 33981 /* MC_CMD_TABLE_LIST_IN msgrequest */ 33982 #define MC_CMD_TABLE_LIST_IN_LEN 4 33983 /* Index of the first item to be returned in the TABLE_ID sequence. (Set to 0 33984 * for the first call; further calls are only required if the whole sequence 33985 * does not fit within the maximum MCDI message size.) 33986 */ 33987 #define MC_CMD_TABLE_LIST_IN_FIRST_TABLE_ID_INDEX_OFST 0 33988 #define MC_CMD_TABLE_LIST_IN_FIRST_TABLE_ID_INDEX_LEN 4 33989 33990 /* MC_CMD_TABLE_LIST_OUT msgresponse */ 33991 #define MC_CMD_TABLE_LIST_OUT_LENMIN 4 33992 #define MC_CMD_TABLE_LIST_OUT_LENMAX 252 33993 #define MC_CMD_TABLE_LIST_OUT_LENMAX_MCDI2 1020 33994 #define MC_CMD_TABLE_LIST_OUT_LEN(num) (4+4*(num)) 33995 #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_NUM(len) (((len)-4)/4) 33996 /* The total number of tables. */ 33997 #define MC_CMD_TABLE_LIST_OUT_N_TABLES_OFST 0 33998 #define MC_CMD_TABLE_LIST_OUT_N_TABLES_LEN 4 33999 /* A sequence of table identifiers. If all N_TABLES items do not fit, further 34000 * items can be obtained by repeating the call with a non-zero 34001 * FIRST_TABLE_ID_INDEX. 34002 */ 34003 #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_OFST 4 34004 #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_LEN 4 34005 #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_MINNUM 0 34006 #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_MAXNUM 62 34007 #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_MAXNUM_MCDI2 254 34008 /* Enum values, see field(s): */ 34009 /* TABLE_ID */ 34010 34011 34012 /***********************************/ 34013 /* MC_CMD_TABLE_DESCRIPTOR 34014 * Request the table descriptor for a particular table. This describes 34015 * properties of the table and the format of the key and response. May return 34016 * EINVAL for unknown table ID. 34017 */ 34018 #define MC_CMD_TABLE_DESCRIPTOR 0x1ca 34019 #define MC_CMD_TABLE_DESCRIPTOR_MSGSET 0x1ca 34020 #undef MC_CMD_0x1ca_PRIVILEGE_CTG 34021 34022 #define MC_CMD_0x1ca_PRIVILEGE_CTG SRIOV_CTG_GENERAL 34023 34024 /* MC_CMD_TABLE_DESCRIPTOR_IN msgrequest */ 34025 #define MC_CMD_TABLE_DESCRIPTOR_IN_LEN 8 34026 /* Identifier for this field. */ 34027 #define MC_CMD_TABLE_DESCRIPTOR_IN_TABLE_ID_OFST 0 34028 #define MC_CMD_TABLE_DESCRIPTOR_IN_TABLE_ID_LEN 4 34029 /* Enum values, see field(s): */ 34030 /* TABLE_ID */ 34031 /* Index of the first item to be returned in the FIELDS sequence. (Set to 0 for 34032 * the first call; further calls are only required if the whole sequence does 34033 * not fit within the maximum MCDI message size.) 34034 */ 34035 #define MC_CMD_TABLE_DESCRIPTOR_IN_FIRST_FIELDS_INDEX_OFST 4 34036 #define MC_CMD_TABLE_DESCRIPTOR_IN_FIRST_FIELDS_INDEX_LEN 4 34037 34038 /* MC_CMD_TABLE_DESCRIPTOR_OUT msgresponse */ 34039 #define MC_CMD_TABLE_DESCRIPTOR_OUT_LENMIN 28 34040 #define MC_CMD_TABLE_DESCRIPTOR_OUT_LENMAX 252 34041 #define MC_CMD_TABLE_DESCRIPTOR_OUT_LENMAX_MCDI2 1020 34042 #define MC_CMD_TABLE_DESCRIPTOR_OUT_LEN(num) (20+8*(num)) 34043 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_NUM(len) (((len)-20)/8) 34044 /* Maximum number of entries in this table. */ 34045 #define MC_CMD_TABLE_DESCRIPTOR_OUT_MAX_ENTRIES_OFST 0 34046 #define MC_CMD_TABLE_DESCRIPTOR_OUT_MAX_ENTRIES_LEN 4 34047 /* The type of table. (This is really just informational; the important 34048 * properties of a table that affect programming can be deduced from other 34049 * items in the table or field descriptor.) 34050 */ 34051 #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_OFST 4 34052 #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_LEN 2 34053 /* enum: Direct table (essentially just an array). Behaves like a BCAM for 34054 * programming purposes, where the fact that the key is actually used as an 34055 * array index is really just an implementation detail. 34056 */ 34057 #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_DIRECT 0x1 34058 /* enum: BCAM (binary CAM) table: exact match on all key fields." */ 34059 #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_BCAM 0x2 34060 /* enum: TCAM (ternary CAM) table: matches fields with a mask. Each entry may 34061 * have its own different mask. 34062 */ 34063 #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_TCAM 0x3 34064 /* enum: STCAM (semi-TCAM) table: like a TCAM but entries shared a limited 34065 * number of unique masks. 34066 */ 34067 #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_STCAM 0x4 34068 /* Width of key (and corresponding mask, for TCAM or STCAM) in bits. */ 34069 #define MC_CMD_TABLE_DESCRIPTOR_OUT_KEY_WIDTH_OFST 6 34070 #define MC_CMD_TABLE_DESCRIPTOR_OUT_KEY_WIDTH_LEN 2 34071 /* Width of response in bits. */ 34072 #define MC_CMD_TABLE_DESCRIPTOR_OUT_RESP_WIDTH_OFST 8 34073 #define MC_CMD_TABLE_DESCRIPTOR_OUT_RESP_WIDTH_LEN 2 34074 /* The total number of fields in the key. */ 34075 #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_KEY_FIELDS_OFST 10 34076 #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_KEY_FIELDS_LEN 2 34077 /* The total number of fields in the response. */ 34078 #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_RESP_FIELDS_OFST 12 34079 #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_RESP_FIELDS_LEN 2 34080 /* Number of priorities for STCAM or TCAM; otherwise 0. The priority of a table 34081 * entry (relevant when more than one masked entry matches) ranges from 34082 * 0=highest to N_PRIORITIES-1=lowest. 34083 */ 34084 #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_PRIORITIES_OFST 14 34085 #define MC_CMD_TABLE_DESCRIPTOR_OUT_N_PRIORITIES_LEN 2 34086 /* Maximum number of masks for STCAM; otherwise 0. */ 34087 #define MC_CMD_TABLE_DESCRIPTOR_OUT_MAX_MASKS_OFST 16 34088 #define MC_CMD_TABLE_DESCRIPTOR_OUT_MAX_MASKS_LEN 2 34089 /* Flags. */ 34090 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FLAGS_OFST 18 34091 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FLAGS_LEN 1 34092 #define MC_CMD_TABLE_DESCRIPTOR_OUT_ALLOC_MASKS_OFST 18 34093 #define MC_CMD_TABLE_DESCRIPTOR_OUT_ALLOC_MASKS_LBN 0 34094 #define MC_CMD_TABLE_DESCRIPTOR_OUT_ALLOC_MASKS_WIDTH 1 34095 /* Access scheme version code, allowing the method of accessing table entries 34096 * to change semantics in future. A client which does not understand the value 34097 * of this field should assume that it cannot program this table. Currently 34098 * always set to 0 indicating the original MC_CMD_TABLE_INSERT/UPDATE/DELETE 34099 * semantics. 34100 */ 34101 #define MC_CMD_TABLE_DESCRIPTOR_OUT_SCHEME_OFST 19 34102 #define MC_CMD_TABLE_DESCRIPTOR_OUT_SCHEME_LEN 1 34103 /* A sequence of TABLE_FIELD_DESCR structures: N_KEY_FIELDS items describing 34104 * the key, followed by N_RESP_FIELDS items describing the response. If all 34105 * N_KEY_FIELDS+N_RESP_FIELDS items do not fit, further items can be obtained 34106 * by repeating the call with a non-zero FIRST_FIELDS_INDEX. 34107 */ 34108 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_OFST 20 34109 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_LEN 8 34110 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_LO_OFST 20 34111 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_LO_LEN 4 34112 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_LO_LBN 160 34113 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_LO_WIDTH 32 34114 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_HI_OFST 24 34115 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_HI_LEN 4 34116 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_HI_LBN 192 34117 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_HI_WIDTH 32 34118 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_MINNUM 1 34119 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_MAXNUM 29 34120 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_MAXNUM_MCDI2 125 34121 34122 34123 /***********************************/ 34124 /* MC_CMD_TABLE_INSERT 34125 * Insert a new entry into a table. The entry must not currently exist. May 34126 * return EINVAL for unknown table ID or other bad request parameters, EEXIST 34127 * if the entry already exists, ENOSPC if there is no space or EPERM if the 34128 * operation is not permitted. In case of an error, the additional MCDI error 34129 * argument field returns the raw error code from the underlying CAM driver. 34130 */ 34131 #define MC_CMD_TABLE_INSERT 0x1cd 34132 #define MC_CMD_TABLE_INSERT_MSGSET 0x1cd 34133 #undef MC_CMD_0x1cd_PRIVILEGE_CTG 34134 34135 #define MC_CMD_0x1cd_PRIVILEGE_CTG SRIOV_CTG_GENERAL 34136 34137 /* MC_CMD_TABLE_INSERT_IN msgrequest */ 34138 #define MC_CMD_TABLE_INSERT_IN_LENMIN 16 34139 #define MC_CMD_TABLE_INSERT_IN_LENMAX 252 34140 #define MC_CMD_TABLE_INSERT_IN_LENMAX_MCDI2 1020 34141 #define MC_CMD_TABLE_INSERT_IN_LEN(num) (12+4*(num)) 34142 #define MC_CMD_TABLE_INSERT_IN_DATA_NUM(len) (((len)-12)/4) 34143 /* Table identifier. */ 34144 #define MC_CMD_TABLE_INSERT_IN_TABLE_ID_OFST 0 34145 #define MC_CMD_TABLE_INSERT_IN_TABLE_ID_LEN 4 34146 /* Enum values, see field(s): */ 34147 /* TABLE_ID */ 34148 /* Width in bits of supplied key data (must match table properties). */ 34149 #define MC_CMD_TABLE_INSERT_IN_KEY_WIDTH_OFST 4 34150 #define MC_CMD_TABLE_INSERT_IN_KEY_WIDTH_LEN 2 34151 /* Width in bits of supplied mask data (0 for direct/BCAM tables, or for STCAM 34152 * when allocated MASK_ID is used instead). 34153 */ 34154 #define MC_CMD_TABLE_INSERT_IN_MASK_WIDTH_OFST 6 34155 #define MC_CMD_TABLE_INSERT_IN_MASK_WIDTH_LEN 2 34156 /* Width in bits of supplied response data (for INSERT and UPDATE operations 34157 * this must match the table properties; for DELETE operations, no response 34158 * data is required and this must be 0). 34159 */ 34160 #define MC_CMD_TABLE_INSERT_IN_RESP_WIDTH_OFST 8 34161 #define MC_CMD_TABLE_INSERT_IN_RESP_WIDTH_LEN 2 34162 /* Mask ID for STCAM table - used instead of mask data if the table descriptor 34163 * reports ALLOC_MASKS==1. Otherwise set to 0. 34164 */ 34165 #define MC_CMD_TABLE_INSERT_IN_MASK_ID_OFST 6 34166 #define MC_CMD_TABLE_INSERT_IN_MASK_ID_LEN 2 34167 /* Priority for TCAM or STCAM, in range 0..N_PRIORITIES-1, otherwise 0. */ 34168 #define MC_CMD_TABLE_INSERT_IN_PRIORITY_OFST 8 34169 #define MC_CMD_TABLE_INSERT_IN_PRIORITY_LEN 2 34170 /* (32-bit alignment padding - set to 0) */ 34171 #define MC_CMD_TABLE_INSERT_IN_RESERVED_OFST 10 34172 #define MC_CMD_TABLE_INSERT_IN_RESERVED_LEN 2 34173 /* Sequence of key, mask (if MASK_WIDTH > 0), and response (if RESP_WIDTH > 0) 34174 * data values. Each of these items is logically treated as a single wide N-bit 34175 * value, in which the individual fields have been placed within that value per 34176 * the LBN and WIDTH information from the table field descriptors. The wide 34177 * N-bit value is padded with 0 bits at the MSB end if necessary to make a 34178 * multiple of 32 bits. The value is then packed into this command as a 34179 * sequence of 32-bit words, bits [31:0] first, then bits [63:32], etc. 34180 */ 34181 #define MC_CMD_TABLE_INSERT_IN_DATA_OFST 12 34182 #define MC_CMD_TABLE_INSERT_IN_DATA_LEN 4 34183 #define MC_CMD_TABLE_INSERT_IN_DATA_MINNUM 1 34184 #define MC_CMD_TABLE_INSERT_IN_DATA_MAXNUM 60 34185 #define MC_CMD_TABLE_INSERT_IN_DATA_MAXNUM_MCDI2 252 34186 34187 /* MC_CMD_TABLE_INSERT_OUT msgresponse */ 34188 #define MC_CMD_TABLE_INSERT_OUT_LEN 0 34189 34190 34191 /***********************************/ 34192 /* MC_CMD_TABLE_UPDATE 34193 * Update an existing entry in a table with a new response value. May return 34194 * EINVAL for unknown table ID or other bad request parameters, ENOENT if the 34195 * entry does not already exist, or EPERM if the operation is not permitted. In 34196 * case of an error, the additional MCDI error argument field returns the raw 34197 * error code from the underlying CAM driver. 34198 */ 34199 #define MC_CMD_TABLE_UPDATE 0x1ce 34200 #define MC_CMD_TABLE_UPDATE_MSGSET 0x1ce 34201 #undef MC_CMD_0x1ce_PRIVILEGE_CTG 34202 34203 #define MC_CMD_0x1ce_PRIVILEGE_CTG SRIOV_CTG_GENERAL 34204 34205 /* MC_CMD_TABLE_UPDATE_IN msgrequest */ 34206 #define MC_CMD_TABLE_UPDATE_IN_LENMIN 16 34207 #define MC_CMD_TABLE_UPDATE_IN_LENMAX 252 34208 #define MC_CMD_TABLE_UPDATE_IN_LENMAX_MCDI2 1020 34209 #define MC_CMD_TABLE_UPDATE_IN_LEN(num) (12+4*(num)) 34210 #define MC_CMD_TABLE_UPDATE_IN_DATA_NUM(len) (((len)-12)/4) 34211 /* Table identifier. */ 34212 #define MC_CMD_TABLE_UPDATE_IN_TABLE_ID_OFST 0 34213 #define MC_CMD_TABLE_UPDATE_IN_TABLE_ID_LEN 4 34214 /* Enum values, see field(s): */ 34215 /* TABLE_ID */ 34216 /* Width in bits of supplied key data (must match table properties). */ 34217 #define MC_CMD_TABLE_UPDATE_IN_KEY_WIDTH_OFST 4 34218 #define MC_CMD_TABLE_UPDATE_IN_KEY_WIDTH_LEN 2 34219 /* Width in bits of supplied mask data (0 for direct/BCAM tables, or for STCAM 34220 * when allocated MASK_ID is used instead). 34221 */ 34222 #define MC_CMD_TABLE_UPDATE_IN_MASK_WIDTH_OFST 6 34223 #define MC_CMD_TABLE_UPDATE_IN_MASK_WIDTH_LEN 2 34224 /* Width in bits of supplied response data (for INSERT and UPDATE operations 34225 * this must match the table properties; for DELETE operations, no response 34226 * data is required and this must be 0). 34227 */ 34228 #define MC_CMD_TABLE_UPDATE_IN_RESP_WIDTH_OFST 8 34229 #define MC_CMD_TABLE_UPDATE_IN_RESP_WIDTH_LEN 2 34230 /* Mask ID for STCAM table - used instead of mask data if the table descriptor 34231 * reports ALLOC_MASKS==1. Otherwise set to 0. 34232 */ 34233 #define MC_CMD_TABLE_UPDATE_IN_MASK_ID_OFST 6 34234 #define MC_CMD_TABLE_UPDATE_IN_MASK_ID_LEN 2 34235 /* Priority for TCAM or STCAM, in range 0..N_PRIORITIES-1, otherwise 0. */ 34236 #define MC_CMD_TABLE_UPDATE_IN_PRIORITY_OFST 8 34237 #define MC_CMD_TABLE_UPDATE_IN_PRIORITY_LEN 2 34238 /* (32-bit alignment padding - set to 0) */ 34239 #define MC_CMD_TABLE_UPDATE_IN_RESERVED_OFST 10 34240 #define MC_CMD_TABLE_UPDATE_IN_RESERVED_LEN 2 34241 /* Sequence of key, mask (if MASK_WIDTH > 0), and response (if RESP_WIDTH > 0) 34242 * data values. Each of these items is logically treated as a single wide N-bit 34243 * value, in which the individual fields have been placed within that value per 34244 * the LBN and WIDTH information from the table field descriptors. The wide 34245 * N-bit value is padded with 0 bits at the MSB end if necessary to make a 34246 * multiple of 32 bits. The value is then packed into this command as a 34247 * sequence of 32-bit words, bits [31:0] first, then bits [63:32], etc. 34248 */ 34249 #define MC_CMD_TABLE_UPDATE_IN_DATA_OFST 12 34250 #define MC_CMD_TABLE_UPDATE_IN_DATA_LEN 4 34251 #define MC_CMD_TABLE_UPDATE_IN_DATA_MINNUM 1 34252 #define MC_CMD_TABLE_UPDATE_IN_DATA_MAXNUM 60 34253 #define MC_CMD_TABLE_UPDATE_IN_DATA_MAXNUM_MCDI2 252 34254 34255 /* MC_CMD_TABLE_UPDATE_OUT msgresponse */ 34256 #define MC_CMD_TABLE_UPDATE_OUT_LEN 0 34257 34258 34259 /***********************************/ 34260 /* MC_CMD_TABLE_DELETE 34261 * Delete an existing entry in a table. May return EINVAL for unknown table ID 34262 * or other bad request parameters, ENOENT if the entry does not exist, or 34263 * EPERM if the operation is not permitted. In case of an error, the additional 34264 * MCDI error argument field returns the raw error code from the underlying CAM 34265 * driver. 34266 */ 34267 #define MC_CMD_TABLE_DELETE 0x1cf 34268 #define MC_CMD_TABLE_DELETE_MSGSET 0x1cf 34269 #undef MC_CMD_0x1cf_PRIVILEGE_CTG 34270 34271 #define MC_CMD_0x1cf_PRIVILEGE_CTG SRIOV_CTG_GENERAL 34272 34273 /* MC_CMD_TABLE_DELETE_IN msgrequest */ 34274 #define MC_CMD_TABLE_DELETE_IN_LENMIN 16 34275 #define MC_CMD_TABLE_DELETE_IN_LENMAX 252 34276 #define MC_CMD_TABLE_DELETE_IN_LENMAX_MCDI2 1020 34277 #define MC_CMD_TABLE_DELETE_IN_LEN(num) (12+4*(num)) 34278 #define MC_CMD_TABLE_DELETE_IN_DATA_NUM(len) (((len)-12)/4) 34279 /* Table identifier. */ 34280 #define MC_CMD_TABLE_DELETE_IN_TABLE_ID_OFST 0 34281 #define MC_CMD_TABLE_DELETE_IN_TABLE_ID_LEN 4 34282 /* Enum values, see field(s): */ 34283 /* TABLE_ID */ 34284 /* Width in bits of supplied key data (must match table properties). */ 34285 #define MC_CMD_TABLE_DELETE_IN_KEY_WIDTH_OFST 4 34286 #define MC_CMD_TABLE_DELETE_IN_KEY_WIDTH_LEN 2 34287 /* Width in bits of supplied mask data (0 for direct/BCAM tables, or for STCAM 34288 * when allocated MASK_ID is used instead). 34289 */ 34290 #define MC_CMD_TABLE_DELETE_IN_MASK_WIDTH_OFST 6 34291 #define MC_CMD_TABLE_DELETE_IN_MASK_WIDTH_LEN 2 34292 /* Width in bits of supplied response data (for INSERT and UPDATE operations 34293 * this must match the table properties; for DELETE operations, no response 34294 * data is required and this must be 0). 34295 */ 34296 #define MC_CMD_TABLE_DELETE_IN_RESP_WIDTH_OFST 8 34297 #define MC_CMD_TABLE_DELETE_IN_RESP_WIDTH_LEN 2 34298 /* Mask ID for STCAM table - used instead of mask data if the table descriptor 34299 * reports ALLOC_MASKS==1. Otherwise set to 0. 34300 */ 34301 #define MC_CMD_TABLE_DELETE_IN_MASK_ID_OFST 6 34302 #define MC_CMD_TABLE_DELETE_IN_MASK_ID_LEN 2 34303 /* Priority for TCAM or STCAM, in range 0..N_PRIORITIES-1, otherwise 0. */ 34304 #define MC_CMD_TABLE_DELETE_IN_PRIORITY_OFST 8 34305 #define MC_CMD_TABLE_DELETE_IN_PRIORITY_LEN 2 34306 /* (32-bit alignment padding - set to 0) */ 34307 #define MC_CMD_TABLE_DELETE_IN_RESERVED_OFST 10 34308 #define MC_CMD_TABLE_DELETE_IN_RESERVED_LEN 2 34309 /* Sequence of key, mask (if MASK_WIDTH > 0), and response (if RESP_WIDTH > 0) 34310 * data values. Each of these items is logically treated as a single wide N-bit 34311 * value, in which the individual fields have been placed within that value per 34312 * the LBN and WIDTH information from the table field descriptors. The wide 34313 * N-bit value is padded with 0 bits at the MSB end if necessary to make a 34314 * multiple of 32 bits. The value is then packed into this command as a 34315 * sequence of 32-bit words, bits [31:0] first, then bits [63:32], etc. 34316 */ 34317 #define MC_CMD_TABLE_DELETE_IN_DATA_OFST 12 34318 #define MC_CMD_TABLE_DELETE_IN_DATA_LEN 4 34319 #define MC_CMD_TABLE_DELETE_IN_DATA_MINNUM 1 34320 #define MC_CMD_TABLE_DELETE_IN_DATA_MAXNUM 60 34321 #define MC_CMD_TABLE_DELETE_IN_DATA_MAXNUM_MCDI2 252 34322 34323 /* MC_CMD_TABLE_DELETE_OUT msgresponse */ 34324 #define MC_CMD_TABLE_DELETE_OUT_LEN 0 34325 34326 #endif /* _SIENA_MC_DRIVER_PCOL_H */ 34327