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. DO NOT EDIT IT. 9 * To make changes, edit the .yml files in smartnic_registry under doc/mcdi/ and 10 * rebuild this file with "make mcdi_headers_v5". 11 */ 12 13 #ifndef _SIENA_MC_DRIVER_PCOL_H 14 #define _SIENA_MC_DRIVER_PCOL_H 15 16 17 /* Values to be written into FMCR_CZ_RESET_STATE_REG to control boot. */ 18 /* Power-on reset state */ 19 #define MC_FW_STATE_POR (1) 20 /* If this is set in MC_RESET_STATE_REG then it should be 21 * possible to jump into IMEM without loading code from flash. */ 22 #define MC_FW_WARM_BOOT_OK (2) 23 /* The MC main image has started to boot. */ 24 #define MC_FW_STATE_BOOTING (4) 25 /* The Scheduler has started. */ 26 #define MC_FW_STATE_SCHED (8) 27 /* If this is set in MC_RESET_STATE_REG then it should be 28 * possible to jump into IMEM without loading code from flash. 29 * Unlike a warm boot, assume DMEM has been reloaded, so that 30 * the MC persistent data must be reinitialised. */ 31 #define MC_FW_TEPID_BOOT_OK (16) 32 /* We have entered the main firmware via recovery mode. This 33 * means that MC persistent data must be reinitialised, but that 34 * we shouldn't touch PCIe config. */ 35 #define MC_FW_RECOVERY_MODE_PCIE_INIT_OK (32) 36 /* BIST state has been initialized */ 37 #define MC_FW_BIST_INIT_OK (128) 38 39 /* Siena MC shared memmory offsets */ 40 /* The 'doorbell' addresses are hard-wired to alert the MC when written */ 41 #define MC_SMEM_P0_DOORBELL_OFST 0x000 42 #define MC_SMEM_P1_DOORBELL_OFST 0x004 43 /* The rest of these are firmware-defined */ 44 #define MC_SMEM_P0_PDU_OFST 0x008 45 #define MC_SMEM_P1_PDU_OFST 0x108 46 #define MC_SMEM_PDU_LEN 0x100 47 #define MC_SMEM_P0_PTP_TIME_OFST 0x7f0 48 #define MC_SMEM_P0_STATUS_OFST 0x7f8 49 #define MC_SMEM_P1_STATUS_OFST 0x7fc 50 51 /* Values to be written to the per-port status dword in shared 52 * memory on reboot and assert */ 53 #define MC_STATUS_DWORD_REBOOT (0xb007b007) 54 #define MC_STATUS_DWORD_ASSERT (0xdeaddead) 55 56 /* Check whether an mcfw version (in host order) belongs to a bootloader */ 57 #define MC_FW_VERSION_IS_BOOTLOADER(_v) (((_v) >> 16) == 0xb007) 58 59 /* The current version of the MCDI protocol. 60 * 61 * Note that the ROM burnt into the card only talks V0, so at the very 62 * least every driver must support version 0 and MCDI_PCOL_VERSION 63 */ 64 #ifdef WITH_MCDI_V2 65 #define MCDI_PCOL_VERSION 2 66 #else 67 #define MCDI_PCOL_VERSION 1 68 #endif 69 70 /* Unused commands: 0x23, 0x27, 0x30, 0x31 */ 71 72 /* MCDI version 1 73 * 74 * Each MCDI request starts with an MCDI_HEADER, which is a 32bit 75 * structure, filled in by the client. 76 * 77 * 0 7 8 16 20 22 23 24 31 78 * | CODE | R | LEN | SEQ | Rsvd | E | R | XFLAGS | 79 * | | | 80 * | | \--- Response 81 * | \------- Error 82 * \------------------------------ Resync (always set) 83 * 84 * The client writes it's request into MC shared memory, and rings the 85 * doorbell. Each request is completed by either by the MC writting 86 * back into shared memory, or by writting out an event. 87 * 88 * All MCDI commands support completion by shared memory response. Each 89 * request may also contain additional data (accounted for by HEADER.LEN), 90 * and some response's may also contain additional data (again, accounted 91 * for by HEADER.LEN). 92 * 93 * Some MCDI commands support completion by event, in which any associated 94 * response data is included in the event. 95 * 96 * The protocol requires one response to be delivered for every request, a 97 * request should not be sent unless the response for the previous request 98 * has been received (either by polling shared memory, or by receiving 99 * an event). 100 */ 101 102 /** Request/Response structure */ 103 #define MCDI_HEADER_OFST 0 104 #define MCDI_HEADER_CODE_LBN 0 105 #define MCDI_HEADER_CODE_WIDTH 7 106 #define MCDI_HEADER_RESYNC_LBN 7 107 #define MCDI_HEADER_RESYNC_WIDTH 1 108 #define MCDI_HEADER_DATALEN_LBN 8 109 #define MCDI_HEADER_DATALEN_WIDTH 8 110 #define MCDI_HEADER_SEQ_LBN 16 111 #define MCDI_HEADER_SEQ_WIDTH 4 112 #define MCDI_HEADER_RSVD_LBN 20 113 #define MCDI_HEADER_RSVD_WIDTH 1 114 #define MCDI_HEADER_NOT_EPOCH_LBN 21 115 #define MCDI_HEADER_NOT_EPOCH_WIDTH 1 116 #define MCDI_HEADER_ERROR_LBN 22 117 #define MCDI_HEADER_ERROR_WIDTH 1 118 #define MCDI_HEADER_RESPONSE_LBN 23 119 #define MCDI_HEADER_RESPONSE_WIDTH 1 120 #define MCDI_HEADER_XFLAGS_LBN 24 121 #define MCDI_HEADER_XFLAGS_WIDTH 8 122 /* Request response using event */ 123 #define MCDI_HEADER_XFLAGS_EVREQ 0x01 124 /* Request (and signal) early doorbell return */ 125 #define MCDI_HEADER_XFLAGS_DBRET 0x02 126 127 /* Maximum number of payload bytes */ 128 #define MCDI_CTL_SDU_LEN_MAX_V1 0xfc 129 #define MCDI_CTL_SDU_LEN_MAX_V2 0x400 130 131 #ifdef WITH_MCDI_V2 132 #define MCDI_CTL_SDU_LEN_MAX MCDI_CTL_SDU_LEN_MAX_V2 133 #else 134 #define MCDI_CTL_SDU_LEN_MAX MCDI_CTL_SDU_LEN_MAX_V1 135 #endif 136 137 138 /* The MC can generate events for two reasons: 139 * - To advance a shared memory request if XFLAGS_EVREQ was set 140 * - As a notification (link state, i2c event), controlled 141 * via MC_CMD_LOG_CTRL 142 * 143 * Both events share a common structure: 144 * 145 * 0 32 33 36 44 52 60 146 * | Data | Cont | Level | Src | Code | Rsvd | 147 * | 148 * \ There is another event pending in this notification 149 * 150 * If Code==CMDDONE, then the fields are further interpreted as: 151 * 152 * - LEVEL==INFO Command succeeded 153 * - LEVEL==ERR Command failed 154 * 155 * 0 8 16 24 32 156 * | Seq | Datalen | Errno | Rsvd | 157 * 158 * These fields are taken directly out of the standard MCDI header, i.e., 159 * LEVEL==ERR, Datalen == 0 => Reboot 160 * 161 * Events can be squirted out of the UART (using LOG_CTRL) without a 162 * MCDI header. An event can be distinguished from a MCDI response by 163 * examining the first byte which is 0xc0. This corresponds to the 164 * non-existent MCDI command MC_CMD_DEBUG_LOG. 165 * 166 * 0 7 8 167 * | command | Resync | = 0xc0 168 * 169 * Since the event is written in big-endian byte order, this works 170 * providing bits 56-63 of the event are 0xc0. 171 * 172 * 56 60 63 173 * | Rsvd | Code | = 0xc0 174 * 175 * Which means for convenience the event code is 0xc for all MC 176 * generated events. 177 */ 178 #define FSE_AZ_EV_CODE_MCDI_EVRESPONSE 0xc 179 180 181 182 #define MC_CMD_ERR_CODE_OFST 0 183 #define MC_CMD_ERR_PROXY_PENDING_HANDLE_OFST 4 184 185 /* We define 8 "escape" commands to allow 186 for command number space extension */ 187 188 #define MC_CMD_CMD_SPACE_ESCAPE_0 0x78 189 #define MC_CMD_CMD_SPACE_ESCAPE_1 0x79 190 #define MC_CMD_CMD_SPACE_ESCAPE_2 0x7A 191 #define MC_CMD_CMD_SPACE_ESCAPE_3 0x7B 192 #define MC_CMD_CMD_SPACE_ESCAPE_4 0x7C 193 #define MC_CMD_CMD_SPACE_ESCAPE_5 0x7D 194 #define MC_CMD_CMD_SPACE_ESCAPE_6 0x7E 195 #define MC_CMD_CMD_SPACE_ESCAPE_7 0x7F 196 197 /* Vectors in the boot ROM */ 198 /* Point to the copycode entry point. */ 199 #define SIENA_MC_BOOTROM_COPYCODE_VEC (0x800 - 3 * 0x4) 200 #define HUNT_MC_BOOTROM_COPYCODE_VEC (0x8000 - 3 * 0x4) 201 #define MEDFORD_MC_BOOTROM_COPYCODE_VEC (0x10000 - 3 * 0x4) 202 /* Points to the recovery mode entry point. Misnamed but kept for compatibility. */ 203 #define SIENA_MC_BOOTROM_NOFLASH_VEC (0x800 - 2 * 0x4) 204 #define HUNT_MC_BOOTROM_NOFLASH_VEC (0x8000 - 2 * 0x4) 205 #define MEDFORD_MC_BOOTROM_NOFLASH_VEC (0x10000 - 2 * 0x4) 206 /* Points to the recovery mode entry point. Same as above, but the right name. */ 207 #define SIENA_MC_BOOTROM_RECOVERY_VEC (0x800 - 2 * 0x4) 208 #define HUNT_MC_BOOTROM_RECOVERY_VEC (0x8000 - 2 * 0x4) 209 #define MEDFORD_MC_BOOTROM_RECOVERY_VEC (0x10000 - 2 * 0x4) 210 211 /* Points to noflash mode entry point. */ 212 #define MEDFORD_MC_BOOTROM_REAL_NOFLASH_VEC (0x10000 - 4 * 0x4) 213 214 /* The command set exported by the boot ROM (MCDI v0) */ 215 #define MC_CMD_GET_VERSION_V0_SUPPORTED_FUNCS { \ 216 (1 << MC_CMD_READ32) | \ 217 (1 << MC_CMD_WRITE32) | \ 218 (1 << MC_CMD_COPYCODE) | \ 219 (1 << MC_CMD_GET_VERSION), \ 220 0, 0, 0 } 221 222 #define MC_CMD_SENSOR_INFO_OUT_OFFSET_OFST(_x) \ 223 (MC_CMD_SENSOR_ENTRY_OFST + (_x)) 224 225 #define MC_CMD_DBI_WRITE_IN_ADDRESS_OFST(n) \ 226 (MC_CMD_DBI_WRITE_IN_DBIWROP_OFST + \ 227 MC_CMD_DBIWROP_TYPEDEF_ADDRESS_OFST + \ 228 (n) * MC_CMD_DBIWROP_TYPEDEF_LEN) 229 230 #define MC_CMD_DBI_WRITE_IN_BYTE_MASK_OFST(n) \ 231 (MC_CMD_DBI_WRITE_IN_DBIWROP_OFST + \ 232 MC_CMD_DBIWROP_TYPEDEF_BYTE_MASK_OFST + \ 233 (n) * MC_CMD_DBIWROP_TYPEDEF_LEN) 234 235 #define MC_CMD_DBI_WRITE_IN_VALUE_OFST(n) \ 236 (MC_CMD_DBI_WRITE_IN_DBIWROP_OFST + \ 237 MC_CMD_DBIWROP_TYPEDEF_VALUE_OFST + \ 238 (n) * MC_CMD_DBIWROP_TYPEDEF_LEN) 239 240 /* This may be ORed with an EVB_PORT_ID_xxx constant to pass a non-default 241 * stack ID (which must be in the range 1-255) along with an EVB port ID. 242 */ 243 #define EVB_STACK_ID(n) (((n) & 0xff) << 16) 244 245 246 #ifdef WITH_MCDI_V2 247 248 /* Version 2 adds an optional argument to error returns: the errno value 249 * may be followed by the (0-based) number of the first argument that 250 * could not be processed. 251 */ 252 #define MC_CMD_ERR_ARG_OFST 4 253 254 #endif 255 256 /* MC_CMD_ERR enum: Public MCDI error codes. Error codes that correspond to 257 * POSIX errnos should use the same numeric values that linux does. Error codes 258 * specific to Solarflare firmware should use values in the range 0x1000 - 259 * 0x10ff. The range 0x2000 - 0x20ff is reserved for private error codes (see 260 * MC_CMD_ERR_PRIV below). 261 */ 262 /* enum: Operation not permitted. */ 263 #define MC_CMD_ERR_EPERM 0x1 264 /* enum: Non-existent command target */ 265 #define MC_CMD_ERR_ENOENT 0x2 266 /* enum: assert() has killed the MC */ 267 #define MC_CMD_ERR_EINTR 0x4 268 /* enum: I/O failure */ 269 #define MC_CMD_ERR_EIO 0x5 270 /* enum: Already exists */ 271 #define MC_CMD_ERR_EEXIST 0x6 272 /* enum: Try again */ 273 #define MC_CMD_ERR_EAGAIN 0xb 274 /* enum: Out of memory */ 275 #define MC_CMD_ERR_ENOMEM 0xc 276 /* enum: Caller does not hold required locks */ 277 #define MC_CMD_ERR_EACCES 0xd 278 /* enum: Resource is currently unavailable (e.g. lock contention) */ 279 #define MC_CMD_ERR_EBUSY 0x10 280 /* enum: No such device */ 281 #define MC_CMD_ERR_ENODEV 0x13 282 /* enum: Invalid argument to target */ 283 #define MC_CMD_ERR_EINVAL 0x16 284 /* enum: No space */ 285 #define MC_CMD_ERR_ENOSPC 0x1c 286 /* enum: Read-only */ 287 #define MC_CMD_ERR_EROFS 0x1e 288 /* enum: Broken pipe */ 289 #define MC_CMD_ERR_EPIPE 0x20 290 /* enum: Out of range */ 291 #define MC_CMD_ERR_ERANGE 0x22 292 /* enum: Non-recursive resource is already acquired */ 293 #define MC_CMD_ERR_EDEADLK 0x23 294 /* enum: Operation not implemented */ 295 #define MC_CMD_ERR_ENOSYS 0x26 296 /* enum: Operation timed out */ 297 #define MC_CMD_ERR_ETIME 0x3e 298 /* enum: Link has been severed */ 299 #define MC_CMD_ERR_ENOLINK 0x43 300 /* enum: Protocol error */ 301 #define MC_CMD_ERR_EPROTO 0x47 302 /* enum: Bad message */ 303 #define MC_CMD_ERR_EBADMSG 0x4a 304 /* enum: Operation not supported */ 305 #define MC_CMD_ERR_ENOTSUP 0x5f 306 /* enum: Address not available */ 307 #define MC_CMD_ERR_EADDRNOTAVAIL 0x63 308 /* enum: Not connected */ 309 #define MC_CMD_ERR_ENOTCONN 0x6b 310 /* enum: Operation already in progress */ 311 #define MC_CMD_ERR_EALREADY 0x72 312 /* enum: Stale handle. The handle references a resource that no longer exists. 313 */ 314 #define MC_CMD_ERR_ESTALE 0x74 315 /* enum: Resource allocation failed. */ 316 #define MC_CMD_ERR_ALLOC_FAIL 0x1000 317 /* enum: V-adaptor not found. */ 318 #define MC_CMD_ERR_NO_VADAPTOR 0x1001 319 /* enum: EVB port not found. */ 320 #define MC_CMD_ERR_NO_EVB_PORT 0x1002 321 /* enum: V-switch not found. */ 322 #define MC_CMD_ERR_NO_VSWITCH 0x1003 323 /* enum: Too many VLAN tags. */ 324 #define MC_CMD_ERR_VLAN_LIMIT 0x1004 325 /* enum: Bad PCI function number. */ 326 #define MC_CMD_ERR_BAD_PCI_FUNC 0x1005 327 /* enum: Invalid VLAN mode. */ 328 #define MC_CMD_ERR_BAD_VLAN_MODE 0x1006 329 /* enum: Invalid v-switch type. */ 330 #define MC_CMD_ERR_BAD_VSWITCH_TYPE 0x1007 331 /* enum: Invalid v-port type. */ 332 #define MC_CMD_ERR_BAD_VPORT_TYPE 0x1008 333 /* enum: MAC address exists. */ 334 #define MC_CMD_ERR_MAC_EXIST 0x1009 335 /* enum: Slave core not present */ 336 #define MC_CMD_ERR_SLAVE_NOT_PRESENT 0x100a 337 /* enum: The datapath is disabled. */ 338 #define MC_CMD_ERR_DATAPATH_DISABLED 0x100b 339 /* enum: The requesting client is not a function */ 340 #define MC_CMD_ERR_CLIENT_NOT_FN 0x100c 341 /* enum: The requested operation might require the command to be passed between 342 * MCs, and thetransport doesn't support that. Should only ever been seen over 343 * the UART. 344 */ 345 #define MC_CMD_ERR_TRANSPORT_NOPROXY 0x100d 346 /* enum: VLAN tag(s) exists */ 347 #define MC_CMD_ERR_VLAN_EXIST 0x100e 348 /* enum: No MAC address assigned to an EVB port */ 349 #define MC_CMD_ERR_NO_MAC_ADDR 0x100f 350 /* enum: Notifies the driver that the request has been relayed to an admin 351 * function for authorization. The driver should wait for a PROXY_RESPONSE 352 * event and then resend its request. This error code is followed by a 32-bit 353 * handle that helps matching it with the respective PROXY_RESPONSE event. 354 */ 355 #define MC_CMD_ERR_PROXY_PENDING 0x1010 356 /* enum: The request cannot be passed for authorization because another request 357 * from the same function is currently being authorized. The drvier should try 358 * again later. 359 */ 360 #define MC_CMD_ERR_PROXY_INPROGRESS 0x1011 361 /* enum: Returned by MC_CMD_PROXY_COMPLETE if the caller is not the function 362 * that has enabled proxying or BLOCK_INDEX points to a function that doesn't 363 * await an authorization. 364 */ 365 #define MC_CMD_ERR_PROXY_UNEXPECTED 0x1012 366 /* enum: This code is currently only used internally in FW. Its meaning is that 367 * an operation failed due to lack of SR-IOV privilege. Normally it is 368 * translated to EPERM by send_cmd_err(), but it may also be used to trigger 369 * some special mechanism for handling such case, e.g. to relay the failed 370 * request to a designated admin function for authorization. 371 */ 372 #define MC_CMD_ERR_NO_PRIVILEGE 0x1013 373 /* enum: Workaround 26807 could not be turned on/off because some functions 374 * have already installed filters. See the comment at 375 * MC_CMD_WORKAROUND_BUG26807. May also returned for other operations such as 376 * sub-variant switching. 377 */ 378 #define MC_CMD_ERR_FILTERS_PRESENT 0x1014 379 /* enum: The clock whose frequency you've attempted to set set doesn't exist on 380 * this NIC 381 */ 382 #define MC_CMD_ERR_NO_CLOCK 0x1015 383 /* enum: Returned by MC_CMD_TESTASSERT if the action that should have caused an 384 * assertion failed to do so. 385 */ 386 #define MC_CMD_ERR_UNREACHABLE 0x1016 387 /* enum: This command needs to be processed in the background but there were no 388 * resources to do so. Send it again after a command has completed. 389 */ 390 #define MC_CMD_ERR_QUEUE_FULL 0x1017 391 /* enum: The operation could not be completed because the PCIe link has gone 392 * away. This error code is never expected to be returned over the TLP 393 * transport. 394 */ 395 #define MC_CMD_ERR_NO_PCIE 0x1018 396 /* enum: The operation could not be completed because the datapath has gone 397 * away. This is distinct from MC_CMD_ERR_DATAPATH_DISABLED in that the 398 * datapath absence may be temporary 399 */ 400 #define MC_CMD_ERR_NO_DATAPATH 0x1019 401 /* enum: The operation could not complete because some VIs are allocated */ 402 #define MC_CMD_ERR_VIS_PRESENT 0x101a 403 /* enum: The operation could not complete because some PIO buffers are 404 * allocated 405 */ 406 #define MC_CMD_ERR_PIOBUFS_PRESENT 0x101b 407 408 /* MC_CMD_RESOURCE_SPECIFIER enum */ 409 /* enum: Any */ 410 #define MC_CMD_RESOURCE_INSTANCE_ANY 0xffffffff 411 #define MC_CMD_RESOURCE_INSTANCE_NONE 0xfffffffe /* enum */ 412 413 /* MC_CMD_FPGA_FLASH_INDEX enum */ 414 #define MC_CMD_FPGA_FLASH_PRIMARY 0x0 /* enum */ 415 #define MC_CMD_FPGA_FLASH_SECONDARY 0x1 /* enum */ 416 417 /* MC_CMD_EXTERNAL_MAE_LINK_MODE enum */ 418 /* enum: Legacy mode as described in XN-200039-TC. */ 419 #define MC_CMD_EXTERNAL_MAE_LINK_MODE_LEGACY 0x0 420 /* enum: Switchdev mode as described in XN-200039-TC. */ 421 #define MC_CMD_EXTERNAL_MAE_LINK_MODE_SWITCHDEV 0x1 422 /* enum: Bootstrap mode as described in XN-200039-TC. */ 423 #define MC_CMD_EXTERNAL_MAE_LINK_MODE_BOOTSTRAP 0x2 424 /* enum: Link-mode change is in-progress as described in XN-200039-TC. */ 425 #define MC_CMD_EXTERNAL_MAE_LINK_MODE_PENDING 0xf 426 427 /* PCIE_INTERFACE enum: From EF100 onwards, SFC products can have multiple PCIe 428 * interfaces. There is a need to refer to interfaces explicitly from drivers 429 * (for example, a management driver on one interface administering a function 430 * on another interface). This enumeration provides stable identifiers to all 431 * interfaces present on a product. Product documentation will specify which 432 * interfaces exist and their associated identifier. In general, drivers, 433 * should not assign special meanings to specific values. Instead, behaviour 434 * should be determined by NIC configuration, which will identify interfaces 435 * where appropriate. 436 */ 437 /* enum: Primary host interfaces. Typically (i.e. for all known SFC products) 438 * the interface exposed on the edge connector (or form factor equivalent). 439 */ 440 #define PCIE_INTERFACE_HOST_PRIMARY 0x0 441 /* enum: Riverhead and keystone products have a second PCIe interface to which 442 * an on-NIC ARM module is expected to be connected. 443 */ 444 #define PCIE_INTERFACE_NIC_EMBEDDED 0x1 445 /* enum: For MCDI commands issued over a PCIe interface, this value is 446 * translated into the interface over which the command was issued. Not 447 * meaningful for other MCDI transports. 448 */ 449 #define PCIE_INTERFACE_CALLER 0xffffffff 450 451 /* MC_CLIENT_ID_SPECIFIER enum */ 452 /* enum: Equivalent to the caller's client ID */ 453 #define MC_CMD_CLIENT_ID_SELF 0xffffffff 454 455 /* MAE_FIELD_SUPPORT_STATUS enum */ 456 /* enum: The NIC does not support this field. The driver must ensure that any 457 * mask associated with this field in a match rule is zeroed. The NIC may 458 * either reject requests with an invalid mask for such a field, or may assume 459 * that the mask is zero. (This category only exists to describe behaviour for 460 * fields that a newer driver might know about but that older firmware does 461 * not. It is recommended that firmware report MAE_FIELD_FIELD_MATCH_NEVER for 462 * all match fields defined at the time of its compilation. If a driver see a 463 * field support status value that it does not recognise, it must treat that 464 * field as thought the field was reported as MAE_FIELD_SUPPORTED_MATCH_NEVER, 465 * and must never set a non-zero mask value for this field. 466 */ 467 #define MAE_FIELD_UNSUPPORTED 0x0 468 /* enum: The NIC supports this field, but cannot use it in a match rule. The 469 * driver must ensure that any mask for such a field in a match rule is zeroed. 470 * The NIC will reject requests with an invalid mask for such a field. 471 */ 472 #define MAE_FIELD_SUPPORTED_MATCH_NEVER 0x1 473 /* enum: The NIC supports this field, and must use it in all match rules. The 474 * driver must ensure that any mask for such a field is all ones. The NIC will 475 * reject requests with an invalid mask for such a field. 476 */ 477 #define MAE_FIELD_SUPPORTED_MATCH_ALWAYS 0x2 478 /* enum: The NIC supports this field, and may optionally use it in match rules. 479 * The driver must ensure that any mask for such a field is either all zeroes 480 * or all ones. The NIC will reject requests with an invalid mask for such a 481 * field. 482 */ 483 #define MAE_FIELD_SUPPORTED_MATCH_OPTIONAL 0x3 484 /* enum: The NIC supports this field, and may optionally use it in match rules. 485 * The driver must ensure that any mask for such a field is either all zeroes 486 * or a consecutive set of ones following by all zeroes (starting from MSB). 487 * The NIC will reject requests with an invalid mask for such a field. 488 */ 489 #define MAE_FIELD_SUPPORTED_MATCH_PREFIX 0x4 490 /* enum: The NIC supports this field, and may optionally use it in match rules. 491 * The driver may provide an arbitrary mask for such a field. 492 */ 493 #define MAE_FIELD_SUPPORTED_MATCH_MASK 0x5 494 495 /* MAE_CT_VNI_MODE enum: Controls the layout of the VNI input to the conntrack 496 * lookup. (Values are not arbitrary - constrained by table access ABI.) 497 */ 498 /* enum: The VNI input to the conntrack lookup will be zero. */ 499 #define MAE_CT_VNI_MODE_ZERO 0x0 500 /* enum: The VNI input to the conntrack lookup will be the VNI (VXLAN/Geneve) 501 * or VSID (NVGRE) field from the packet. 502 */ 503 #define MAE_CT_VNI_MODE_VNI 0x1 504 /* enum: The VNI input to the conntrack lookup will be the VLAN ID from the 505 * outermost VLAN tag (in bottom 12 bits; top 12 bits zero). 506 */ 507 #define MAE_CT_VNI_MODE_1VLAN 0x2 508 /* enum: The VNI input to the conntrack lookup will be the VLAN IDs from both 509 * VLAN tags (outermost in bottom 12 bits, innermost in top 12 bits). 510 */ 511 #define MAE_CT_VNI_MODE_2VLAN 0x3 512 513 /* MAE_FIELD enum: NB: this enum shares namespace with the support status enum. 514 */ 515 /* enum: Source mport upon entering the MAE. */ 516 #define MAE_FIELD_INGRESS_PORT 0x0 517 #define MAE_FIELD_MARK 0x1 /* enum */ 518 /* enum: Table ID used in action rule. Initially zero, can be changed in action 519 * rule response. 520 */ 521 #define MAE_FIELD_RECIRC_ID 0x2 522 #define MAE_FIELD_IS_IP_FRAG 0x3 /* enum */ 523 #define MAE_FIELD_DO_CT 0x4 /* enum */ 524 #define MAE_FIELD_CT_HIT 0x5 /* enum */ 525 /* enum: Undefined unless CT_HIT=1. */ 526 #define MAE_FIELD_CT_MARK 0x6 527 /* enum: Undefined unless DO_CT=1. */ 528 #define MAE_FIELD_CT_DOMAIN 0x7 529 /* enum: Undefined unless CT_HIT=1. */ 530 #define MAE_FIELD_CT_PRIVATE_FLAGS 0x8 531 /* enum: 1 if the packet ingressed the NIC from one of the MACs, else 0. */ 532 #define MAE_FIELD_IS_FROM_NETWORK 0x9 533 /* enum: 1 if the packet has 1 or more VLAN tags, else 0. */ 534 #define MAE_FIELD_HAS_OVLAN 0xa 535 /* enum: 1 if the packet has 2 or more VLAN tags, else 0. */ 536 #define MAE_FIELD_HAS_IVLAN 0xb 537 /* enum: 1 if the outer packet has 1 or more VLAN tags, else 0; only present 538 * when encap 539 */ 540 #define MAE_FIELD_ENC_HAS_OVLAN 0xc 541 /* enum: 1 if the outer packet has 2 or more VLAN tags, else 0; only present 542 * when encap 543 */ 544 #define MAE_FIELD_ENC_HAS_IVLAN 0xd 545 /* enum: Packet is IP fragment */ 546 #define MAE_FIELD_ENC_IP_FRAG 0xe 547 #define MAE_FIELD_ETHER_TYPE 0x21 /* enum */ 548 #define MAE_FIELD_VLAN0_TCI 0x22 /* enum */ 549 #define MAE_FIELD_VLAN0_PROTO 0x23 /* enum */ 550 #define MAE_FIELD_VLAN1_TCI 0x24 /* enum */ 551 #define MAE_FIELD_VLAN1_PROTO 0x25 /* enum */ 552 /* enum: Inner when encap */ 553 #define MAE_FIELD_ETH_SADDR 0x28 554 /* enum: Inner when encap */ 555 #define MAE_FIELD_ETH_DADDR 0x29 556 /* enum: Inner when encap. NB: IPv4 and IPv6 fields are mutually exclusive. */ 557 #define MAE_FIELD_SRC_IP4 0x2a 558 /* enum: Inner when encap */ 559 #define MAE_FIELD_SRC_IP6 0x2b 560 /* enum: Inner when encap */ 561 #define MAE_FIELD_DST_IP4 0x2c 562 /* enum: Inner when encap */ 563 #define MAE_FIELD_DST_IP6 0x2d 564 /* enum: Inner when encap */ 565 #define MAE_FIELD_IP_PROTO 0x2e 566 /* enum: Inner when encap */ 567 #define MAE_FIELD_IP_TOS 0x2f 568 /* enum: Inner when encap */ 569 #define MAE_FIELD_IP_TTL 0x30 570 /* enum: Inner when encap TODO: how this is defined? The raw flags + 571 * frag_offset from the packet, or some derived value more amenable to ternary 572 * matching? TODO: there was a proposal for driver-allocation fields. The 573 * driver would provide some instruction for how to extract given field values, 574 * and would be given a field id in return. It could then use that field id in 575 * its matches. This feels like it would be extremely hard to implement in 576 * hardware, but I mention it for completeness. 577 */ 578 #define MAE_FIELD_IP_FLAGS 0x31 579 /* enum: Ports (UDP, TCP) Inner when encap */ 580 #define MAE_FIELD_L4_SPORT 0x32 581 /* enum: Ports (UDP, TCP) Inner when encap */ 582 #define MAE_FIELD_L4_DPORT 0x33 583 /* enum: Inner when encap */ 584 #define MAE_FIELD_TCP_FLAGS 0x34 585 /* enum: TCP packet with any of SYN, FIN or RST flag set */ 586 #define MAE_FIELD_TCP_SYN_FIN_RST 0x35 587 /* enum: Packet is IP fragment with fragment offset 0 */ 588 #define MAE_FIELD_IP_FIRST_FRAG 0x36 589 /* enum: The type of encapsulated used for this packet. Value as per 590 * ENCAP_TYPE_*. 591 */ 592 #define MAE_FIELD_ENCAP_TYPE 0x3f 593 /* enum: The ID of the outer rule that marked this packet as encapsulated. 594 * Useful for implicitly matching on outer fields. 595 */ 596 #define MAE_FIELD_OUTER_RULE_ID 0x40 597 /* enum: Outer; only present when encap */ 598 #define MAE_FIELD_ENC_ETHER_TYPE 0x41 599 /* enum: Outer; only present when encap */ 600 #define MAE_FIELD_ENC_VLAN0_TCI 0x42 601 /* enum: Outer; only present when encap */ 602 #define MAE_FIELD_ENC_VLAN0_PROTO 0x43 603 /* enum: Outer; only present when encap */ 604 #define MAE_FIELD_ENC_VLAN1_TCI 0x44 605 /* enum: Outer; only present when encap */ 606 #define MAE_FIELD_ENC_VLAN1_PROTO 0x45 607 /* enum: Outer; only present when encap */ 608 #define MAE_FIELD_ENC_ETH_SADDR 0x48 609 /* enum: Outer; only present when encap */ 610 #define MAE_FIELD_ENC_ETH_DADDR 0x49 611 /* enum: Outer; only present when encap */ 612 #define MAE_FIELD_ENC_SRC_IP4 0x4a 613 /* enum: Outer; only present when encap */ 614 #define MAE_FIELD_ENC_SRC_IP6 0x4b 615 /* enum: Outer; only present when encap */ 616 #define MAE_FIELD_ENC_DST_IP4 0x4c 617 /* enum: Outer; only present when encap */ 618 #define MAE_FIELD_ENC_DST_IP6 0x4d 619 /* enum: Outer; only present when encap */ 620 #define MAE_FIELD_ENC_IP_PROTO 0x4e 621 /* enum: Outer; only present when encap */ 622 #define MAE_FIELD_ENC_IP_TOS 0x4f 623 /* enum: Outer; only present when encap */ 624 #define MAE_FIELD_ENC_IP_TTL 0x50 625 /* enum: Outer; only present when encap */ 626 #define MAE_FIELD_ENC_IP_FLAGS 0x51 627 /* enum: Outer; only present when encap */ 628 #define MAE_FIELD_ENC_L4_SPORT 0x52 629 /* enum: Outer; only present when encap */ 630 #define MAE_FIELD_ENC_L4_DPORT 0x53 631 /* enum: VNI (when VXLAN or GENEVE) VSID (when NVGRE) Bottom 24 bits of Key 632 * (when L2GRE) Outer; only present when encap 633 */ 634 #define MAE_FIELD_ENC_VNET_ID 0x54 635 636 /* MAE_MCDI_ENCAP_TYPE enum: Encapsulation type. Defines how the payload will 637 * be parsed to an inner frame. Other values are reserved. Unknown values 638 * should be treated same as NONE. (Values are not arbitrary - constrained by 639 * table access ABI.) 640 */ 641 #define MAE_MCDI_ENCAP_TYPE_NONE 0x0 /* enum */ 642 /* enum: Don't assume enum aligns with support bitmask... */ 643 #define MAE_MCDI_ENCAP_TYPE_VXLAN 0x1 644 #define MAE_MCDI_ENCAP_TYPE_NVGRE 0x2 /* enum */ 645 #define MAE_MCDI_ENCAP_TYPE_GENEVE 0x3 /* enum */ 646 #define MAE_MCDI_ENCAP_TYPE_L2GRE 0x4 /* enum */ 647 648 /* MAE_MPORT_END enum: Selects which end of the logical link identified by an 649 * MPORT_SELECTOR is targeted by an operation. 650 */ 651 /* enum: Selects the port on the MAE virtual switch */ 652 #define MAE_MPORT_END_MAE 0x1 653 /* enum: Selects the virtual NIC plugged into the MAE switch */ 654 #define MAE_MPORT_END_VNIC 0x2 655 656 /* MAE_COUNTER_TYPE enum: The datapath maintains several sets of counters, each 657 * being associated with a different table. Note that the same counter ID may 658 * be allocated by different counter blocks, so e.g. AR counter 42 is different 659 * from CT counter 42. Generation counts are also type-specific. This value is 660 * also present in the header of streaming counter packets, in the IDENTIFIER 661 * field (see packetiser packet format definitions). 662 */ 663 /* enum: Action Rule counters - can be referenced in AR response. */ 664 #define MAE_COUNTER_TYPE_AR 0x0 665 /* enum: Conntrack counters - can be referenced in CT response. */ 666 #define MAE_COUNTER_TYPE_CT 0x1 667 668 /* MCDI_EVENT structuredef: The structure of an MCDI_EVENT on Siena/EF10/EF100 669 * platforms 670 */ 671 #define MCDI_EVENT_LEN 8 672 #define MCDI_EVENT_CONT_LBN 32 673 #define MCDI_EVENT_CONT_WIDTH 1 674 #define MCDI_EVENT_LEVEL_LBN 33 675 #define MCDI_EVENT_LEVEL_WIDTH 3 676 /* enum: Info. */ 677 #define MCDI_EVENT_LEVEL_INFO 0x0 678 /* enum: Warning. */ 679 #define MCDI_EVENT_LEVEL_WARN 0x1 680 /* enum: Error. */ 681 #define MCDI_EVENT_LEVEL_ERR 0x2 682 /* enum: Fatal. */ 683 #define MCDI_EVENT_LEVEL_FATAL 0x3 684 #define MCDI_EVENT_DATA_OFST 0 685 #define MCDI_EVENT_DATA_LEN 4 686 #define MCDI_EVENT_CMDDONE_SEQ_OFST 0 687 #define MCDI_EVENT_CMDDONE_SEQ_LBN 0 688 #define MCDI_EVENT_CMDDONE_SEQ_WIDTH 8 689 #define MCDI_EVENT_CMDDONE_DATALEN_OFST 0 690 #define MCDI_EVENT_CMDDONE_DATALEN_LBN 8 691 #define MCDI_EVENT_CMDDONE_DATALEN_WIDTH 8 692 #define MCDI_EVENT_CMDDONE_ERRNO_OFST 0 693 #define MCDI_EVENT_CMDDONE_ERRNO_LBN 16 694 #define MCDI_EVENT_CMDDONE_ERRNO_WIDTH 8 695 #define MCDI_EVENT_LINKCHANGE_LP_CAP_OFST 0 696 #define MCDI_EVENT_LINKCHANGE_LP_CAP_LBN 0 697 #define MCDI_EVENT_LINKCHANGE_LP_CAP_WIDTH 16 698 #define MCDI_EVENT_LINKCHANGE_SPEED_OFST 0 699 #define MCDI_EVENT_LINKCHANGE_SPEED_LBN 16 700 #define MCDI_EVENT_LINKCHANGE_SPEED_WIDTH 4 701 /* enum: Link is down or link speed could not be determined */ 702 #define MCDI_EVENT_LINKCHANGE_SPEED_UNKNOWN 0x0 703 /* enum: 100Mbs */ 704 #define MCDI_EVENT_LINKCHANGE_SPEED_100M 0x1 705 /* enum: 1Gbs */ 706 #define MCDI_EVENT_LINKCHANGE_SPEED_1G 0x2 707 /* enum: 10Gbs */ 708 #define MCDI_EVENT_LINKCHANGE_SPEED_10G 0x3 709 /* enum: 40Gbs */ 710 #define MCDI_EVENT_LINKCHANGE_SPEED_40G 0x4 711 /* enum: 25Gbs */ 712 #define MCDI_EVENT_LINKCHANGE_SPEED_25G 0x5 713 /* enum: 50Gbs */ 714 #define MCDI_EVENT_LINKCHANGE_SPEED_50G 0x6 715 /* enum: 100Gbs */ 716 #define MCDI_EVENT_LINKCHANGE_SPEED_100G 0x7 717 #define MCDI_EVENT_LINKCHANGE_FCNTL_OFST 0 718 #define MCDI_EVENT_LINKCHANGE_FCNTL_LBN 20 719 #define MCDI_EVENT_LINKCHANGE_FCNTL_WIDTH 4 720 #define MCDI_EVENT_LINKCHANGE_LINK_FLAGS_OFST 0 721 #define MCDI_EVENT_LINKCHANGE_LINK_FLAGS_LBN 24 722 #define MCDI_EVENT_LINKCHANGE_LINK_FLAGS_WIDTH 8 723 #define MCDI_EVENT_SENSOREVT_MONITOR_OFST 0 724 #define MCDI_EVENT_SENSOREVT_MONITOR_LBN 0 725 #define MCDI_EVENT_SENSOREVT_MONITOR_WIDTH 8 726 #define MCDI_EVENT_SENSOREVT_STATE_OFST 0 727 #define MCDI_EVENT_SENSOREVT_STATE_LBN 8 728 #define MCDI_EVENT_SENSOREVT_STATE_WIDTH 8 729 #define MCDI_EVENT_SENSOREVT_VALUE_OFST 0 730 #define MCDI_EVENT_SENSOREVT_VALUE_LBN 16 731 #define MCDI_EVENT_SENSOREVT_VALUE_WIDTH 16 732 #define MCDI_EVENT_FWALERT_DATA_OFST 0 733 #define MCDI_EVENT_FWALERT_DATA_LBN 8 734 #define MCDI_EVENT_FWALERT_DATA_WIDTH 24 735 #define MCDI_EVENT_FWALERT_REASON_OFST 0 736 #define MCDI_EVENT_FWALERT_REASON_LBN 0 737 #define MCDI_EVENT_FWALERT_REASON_WIDTH 8 738 /* enum: SRAM Access. */ 739 #define MCDI_EVENT_FWALERT_REASON_SRAM_ACCESS 0x1 740 #define MCDI_EVENT_FLR_VF_OFST 0 741 #define MCDI_EVENT_FLR_VF_LBN 0 742 #define MCDI_EVENT_FLR_VF_WIDTH 8 743 #define MCDI_EVENT_TX_ERR_TXQ_OFST 0 744 #define MCDI_EVENT_TX_ERR_TXQ_LBN 0 745 #define MCDI_EVENT_TX_ERR_TXQ_WIDTH 12 746 #define MCDI_EVENT_TX_ERR_TYPE_OFST 0 747 #define MCDI_EVENT_TX_ERR_TYPE_LBN 12 748 #define MCDI_EVENT_TX_ERR_TYPE_WIDTH 4 749 /* enum: Descriptor loader reported failure. Specific to EF10-family NICs. */ 750 #define MCDI_EVENT_TX_ERR_DL_FAIL 0x1 751 /* enum: Descriptor ring empty and no EOP seen for packet. Specific to 752 * EF10-family NICs 753 */ 754 #define MCDI_EVENT_TX_ERR_NO_EOP 0x2 755 /* enum: Overlength packet. Specific to EF10-family NICs. */ 756 #define MCDI_EVENT_TX_ERR_2BIG 0x3 757 /* enum: Malformed option descriptor. Specific to EF10-family NICs. */ 758 #define MCDI_EVENT_TX_BAD_OPTDESC 0x5 759 /* enum: Option descriptor part way through a packet. Specific to EF10-family 760 * NICs. 761 */ 762 #define MCDI_EVENT_TX_OPT_IN_PKT 0x8 763 /* enum: DMA or PIO data access error. Specific to EF10-family NICs */ 764 #define MCDI_EVENT_TX_ERR_BAD_DMA_OR_PIO 0x9 765 #define MCDI_EVENT_TX_ERR_INFO_OFST 0 766 #define MCDI_EVENT_TX_ERR_INFO_LBN 16 767 #define MCDI_EVENT_TX_ERR_INFO_WIDTH 16 768 #define MCDI_EVENT_TX_FLUSH_TO_DRIVER_OFST 0 769 #define MCDI_EVENT_TX_FLUSH_TO_DRIVER_LBN 12 770 #define MCDI_EVENT_TX_FLUSH_TO_DRIVER_WIDTH 1 771 #define MCDI_EVENT_TX_FLUSH_TXQ_OFST 0 772 #define MCDI_EVENT_TX_FLUSH_TXQ_LBN 0 773 #define MCDI_EVENT_TX_FLUSH_TXQ_WIDTH 12 774 #define MCDI_EVENT_PTP_ERR_TYPE_OFST 0 775 #define MCDI_EVENT_PTP_ERR_TYPE_LBN 0 776 #define MCDI_EVENT_PTP_ERR_TYPE_WIDTH 8 777 /* enum: PLL lost lock */ 778 #define MCDI_EVENT_PTP_ERR_PLL_LOST 0x1 779 /* enum: Filter overflow (PDMA) */ 780 #define MCDI_EVENT_PTP_ERR_FILTER 0x2 781 /* enum: FIFO overflow (FPGA) */ 782 #define MCDI_EVENT_PTP_ERR_FIFO 0x3 783 /* enum: Merge queue overflow */ 784 #define MCDI_EVENT_PTP_ERR_QUEUE 0x4 785 #define MCDI_EVENT_AOE_ERR_TYPE_OFST 0 786 #define MCDI_EVENT_AOE_ERR_TYPE_LBN 0 787 #define MCDI_EVENT_AOE_ERR_TYPE_WIDTH 8 788 /* enum: AOE failed to load - no valid image? */ 789 #define MCDI_EVENT_AOE_NO_LOAD 0x1 790 /* enum: AOE FC reported an exception */ 791 #define MCDI_EVENT_AOE_FC_ASSERT 0x2 792 /* enum: AOE FC watchdogged */ 793 #define MCDI_EVENT_AOE_FC_WATCHDOG 0x3 794 /* enum: AOE FC failed to start */ 795 #define MCDI_EVENT_AOE_FC_NO_START 0x4 796 /* enum: Generic AOE fault - likely to have been reported via other means too 797 * but intended for use by aoex driver. 798 */ 799 #define MCDI_EVENT_AOE_FAULT 0x5 800 /* enum: Results of reprogramming the CPLD (status in AOE_ERR_DATA) */ 801 #define MCDI_EVENT_AOE_CPLD_REPROGRAMMED 0x6 802 /* enum: AOE loaded successfully */ 803 #define MCDI_EVENT_AOE_LOAD 0x7 804 /* enum: AOE DMA operation completed (LSB of HOST_HANDLE in AOE_ERR_DATA) */ 805 #define MCDI_EVENT_AOE_DMA 0x8 806 /* enum: AOE byteblaster connected/disconnected (Connection status in 807 * AOE_ERR_DATA) 808 */ 809 #define MCDI_EVENT_AOE_BYTEBLASTER 0x9 810 /* enum: DDR ECC status update */ 811 #define MCDI_EVENT_AOE_DDR_ECC_STATUS 0xa 812 /* enum: PTP status update */ 813 #define MCDI_EVENT_AOE_PTP_STATUS 0xb 814 /* enum: FPGA header incorrect */ 815 #define MCDI_EVENT_AOE_FPGA_LOAD_HEADER_ERR 0xc 816 /* enum: FPGA Powered Off due to error in powering up FPGA */ 817 #define MCDI_EVENT_AOE_FPGA_POWER_OFF 0xd 818 /* enum: AOE FPGA load failed due to MC to MUM communication failure */ 819 #define MCDI_EVENT_AOE_FPGA_LOAD_FAILED 0xe 820 /* enum: Notify that invalid flash type detected */ 821 #define MCDI_EVENT_AOE_INVALID_FPGA_FLASH_TYPE 0xf 822 /* enum: Notify that the attempt to run FPGA Controller firmware timedout */ 823 #define MCDI_EVENT_AOE_FC_RUN_TIMEDOUT 0x10 824 /* enum: Failure to probe one or more FPGA boot flash chips */ 825 #define MCDI_EVENT_AOE_FPGA_BOOT_FLASH_INVALID 0x11 826 /* enum: FPGA boot-flash contains an invalid image header */ 827 #define MCDI_EVENT_AOE_FPGA_BOOT_FLASH_HDR_INVALID 0x12 828 /* enum: Failed to program clocks required by the FPGA */ 829 #define MCDI_EVENT_AOE_FPGA_CLOCKS_PROGRAM_FAILED 0x13 830 /* enum: Notify that FPGA Controller is alive to serve MCDI requests */ 831 #define MCDI_EVENT_AOE_FC_RUNNING 0x14 832 #define MCDI_EVENT_AOE_ERR_DATA_OFST 0 833 #define MCDI_EVENT_AOE_ERR_DATA_LBN 8 834 #define MCDI_EVENT_AOE_ERR_DATA_WIDTH 8 835 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_INFO_OFST 0 836 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_INFO_LBN 8 837 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_INFO_WIDTH 8 838 /* enum: FC Assert happened, but the register information is not available */ 839 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_SEEN 0x0 840 /* enum: The register information for FC Assert is ready for readinng by driver 841 */ 842 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_DATA_READY 0x1 843 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_OFST 0 844 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_LBN 8 845 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_WIDTH 8 846 /* enum: Reading from NV failed */ 847 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_NV_READ_FAIL 0x0 848 /* enum: Invalid Magic Number if FPGA header */ 849 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_MAGIC_FAIL 0x1 850 /* enum: Invalid Silicon type detected in header */ 851 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_SILICON_TYPE 0x2 852 /* enum: Unsupported VRatio */ 853 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_VRATIO 0x3 854 /* enum: Unsupported DDR Type */ 855 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_TYPE 0x4 856 /* enum: DDR Voltage out of supported range */ 857 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_VOLTAGE 0x5 858 /* enum: Unsupported DDR speed */ 859 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_SPEED 0x6 860 /* enum: Unsupported DDR size */ 861 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_SIZE 0x7 862 /* enum: Unsupported DDR rank */ 863 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_RANK 0x8 864 #define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_OFST 0 865 #define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_LBN 8 866 #define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_WIDTH 8 867 /* enum: Primary boot flash */ 868 #define MCDI_EVENT_AOE_FLASH_TYPE_BOOT_PRIMARY 0x0 869 /* enum: Secondary boot flash */ 870 #define MCDI_EVENT_AOE_FLASH_TYPE_BOOT_SECONDARY 0x1 871 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_OFST 0 872 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_LBN 8 873 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_WIDTH 8 874 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_OFST 0 875 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_LBN 8 876 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_WIDTH 8 877 #define MCDI_EVENT_RX_ERR_RXQ_OFST 0 878 #define MCDI_EVENT_RX_ERR_RXQ_LBN 0 879 #define MCDI_EVENT_RX_ERR_RXQ_WIDTH 12 880 #define MCDI_EVENT_RX_ERR_TYPE_OFST 0 881 #define MCDI_EVENT_RX_ERR_TYPE_LBN 12 882 #define MCDI_EVENT_RX_ERR_TYPE_WIDTH 4 883 #define MCDI_EVENT_RX_ERR_INFO_OFST 0 884 #define MCDI_EVENT_RX_ERR_INFO_LBN 16 885 #define MCDI_EVENT_RX_ERR_INFO_WIDTH 16 886 #define MCDI_EVENT_RX_FLUSH_TO_DRIVER_OFST 0 887 #define MCDI_EVENT_RX_FLUSH_TO_DRIVER_LBN 12 888 #define MCDI_EVENT_RX_FLUSH_TO_DRIVER_WIDTH 1 889 #define MCDI_EVENT_RX_FLUSH_RXQ_OFST 0 890 #define MCDI_EVENT_RX_FLUSH_RXQ_LBN 0 891 #define MCDI_EVENT_RX_FLUSH_RXQ_WIDTH 12 892 #define MCDI_EVENT_MC_REBOOT_COUNT_OFST 0 893 #define MCDI_EVENT_MC_REBOOT_COUNT_LBN 0 894 #define MCDI_EVENT_MC_REBOOT_COUNT_WIDTH 16 895 #define MCDI_EVENT_MUM_ERR_TYPE_OFST 0 896 #define MCDI_EVENT_MUM_ERR_TYPE_LBN 0 897 #define MCDI_EVENT_MUM_ERR_TYPE_WIDTH 8 898 /* enum: MUM failed to load - no valid image? */ 899 #define MCDI_EVENT_MUM_NO_LOAD 0x1 900 /* enum: MUM f/w reported an exception */ 901 #define MCDI_EVENT_MUM_ASSERT 0x2 902 /* enum: MUM not kicking watchdog */ 903 #define MCDI_EVENT_MUM_WATCHDOG 0x3 904 #define MCDI_EVENT_MUM_ERR_DATA_OFST 0 905 #define MCDI_EVENT_MUM_ERR_DATA_LBN 8 906 #define MCDI_EVENT_MUM_ERR_DATA_WIDTH 8 907 #define MCDI_EVENT_DBRET_SEQ_OFST 0 908 #define MCDI_EVENT_DBRET_SEQ_LBN 0 909 #define MCDI_EVENT_DBRET_SEQ_WIDTH 8 910 #define MCDI_EVENT_SUC_ERR_TYPE_OFST 0 911 #define MCDI_EVENT_SUC_ERR_TYPE_LBN 0 912 #define MCDI_EVENT_SUC_ERR_TYPE_WIDTH 8 913 /* enum: Corrupted or bad SUC application. */ 914 #define MCDI_EVENT_SUC_BAD_APP 0x1 915 /* enum: SUC application reported an assert. */ 916 #define MCDI_EVENT_SUC_ASSERT 0x2 917 /* enum: SUC application reported an exception. */ 918 #define MCDI_EVENT_SUC_EXCEPTION 0x3 919 /* enum: SUC watchdog timer expired. */ 920 #define MCDI_EVENT_SUC_WATCHDOG 0x4 921 #define MCDI_EVENT_SUC_ERR_ADDRESS_OFST 0 922 #define MCDI_EVENT_SUC_ERR_ADDRESS_LBN 8 923 #define MCDI_EVENT_SUC_ERR_ADDRESS_WIDTH 24 924 #define MCDI_EVENT_SUC_ERR_DATA_OFST 0 925 #define MCDI_EVENT_SUC_ERR_DATA_LBN 8 926 #define MCDI_EVENT_SUC_ERR_DATA_WIDTH 24 927 #define MCDI_EVENT_LINKCHANGE_V2_LP_CAP_OFST 0 928 #define MCDI_EVENT_LINKCHANGE_V2_LP_CAP_LBN 0 929 #define MCDI_EVENT_LINKCHANGE_V2_LP_CAP_WIDTH 24 930 #define MCDI_EVENT_LINKCHANGE_V2_SPEED_OFST 0 931 #define MCDI_EVENT_LINKCHANGE_V2_SPEED_LBN 24 932 #define MCDI_EVENT_LINKCHANGE_V2_SPEED_WIDTH 4 933 /* Enum values, see field(s): */ 934 /* MCDI_EVENT/LINKCHANGE_SPEED */ 935 #define MCDI_EVENT_LINKCHANGE_V2_FLAGS_LINK_UP_OFST 0 936 #define MCDI_EVENT_LINKCHANGE_V2_FLAGS_LINK_UP_LBN 28 937 #define MCDI_EVENT_LINKCHANGE_V2_FLAGS_LINK_UP_WIDTH 1 938 #define MCDI_EVENT_LINKCHANGE_V2_FCNTL_OFST 0 939 #define MCDI_EVENT_LINKCHANGE_V2_FCNTL_LBN 29 940 #define MCDI_EVENT_LINKCHANGE_V2_FCNTL_WIDTH 3 941 /* Enum values, see field(s): */ 942 /* MC_CMD_SET_MAC/MC_CMD_SET_MAC_IN/FCNTL */ 943 #define MCDI_EVENT_MODULECHANGE_LD_CAP_OFST 0 944 #define MCDI_EVENT_MODULECHANGE_LD_CAP_LBN 0 945 #define MCDI_EVENT_MODULECHANGE_LD_CAP_WIDTH 30 946 #define MCDI_EVENT_MODULECHANGE_SEQ_OFST 0 947 #define MCDI_EVENT_MODULECHANGE_SEQ_LBN 30 948 #define MCDI_EVENT_MODULECHANGE_SEQ_WIDTH 2 949 #define MCDI_EVENT_DATA_LBN 0 950 #define MCDI_EVENT_DATA_WIDTH 32 951 /* Alias for PTP_DATA. */ 952 #define MCDI_EVENT_SRC_LBN 36 953 #define MCDI_EVENT_SRC_WIDTH 8 954 /* Data associated with PTP events which doesn't fit into the main DATA field 955 */ 956 #define MCDI_EVENT_PTP_DATA_LBN 36 957 #define MCDI_EVENT_PTP_DATA_WIDTH 8 958 /* EF100 specific. Defined by QDMA. The phase bit, changes each time round the 959 * event ring 960 */ 961 #define MCDI_EVENT_EV_EVQ_PHASE_LBN 59 962 #define MCDI_EVENT_EV_EVQ_PHASE_WIDTH 1 963 #define MCDI_EVENT_EV_CODE_LBN 60 964 #define MCDI_EVENT_EV_CODE_WIDTH 4 965 #define MCDI_EVENT_CODE_LBN 44 966 #define MCDI_EVENT_CODE_WIDTH 8 967 /* enum: Event generated by host software */ 968 #define MCDI_EVENT_SW_EVENT 0x0 969 /* enum: Bad assert. */ 970 #define MCDI_EVENT_CODE_BADSSERT 0x1 971 /* enum: PM Notice. */ 972 #define MCDI_EVENT_CODE_PMNOTICE 0x2 973 /* enum: Command done. */ 974 #define MCDI_EVENT_CODE_CMDDONE 0x3 975 /* enum: Link change. */ 976 #define MCDI_EVENT_CODE_LINKCHANGE 0x4 977 /* enum: Sensor Event. */ 978 #define MCDI_EVENT_CODE_SENSOREVT 0x5 979 /* enum: Schedule error. */ 980 #define MCDI_EVENT_CODE_SCHEDERR 0x6 981 /* enum: Reboot. */ 982 #define MCDI_EVENT_CODE_REBOOT 0x7 983 /* enum: Mac stats DMA. */ 984 #define MCDI_EVENT_CODE_MAC_STATS_DMA 0x8 985 /* enum: Firmware alert. */ 986 #define MCDI_EVENT_CODE_FWALERT 0x9 987 /* enum: Function level reset. */ 988 #define MCDI_EVENT_CODE_FLR 0xa 989 /* enum: Transmit error */ 990 #define MCDI_EVENT_CODE_TX_ERR 0xb 991 /* enum: Tx flush has completed */ 992 #define MCDI_EVENT_CODE_TX_FLUSH 0xc 993 /* enum: PTP packet received timestamp */ 994 #define MCDI_EVENT_CODE_PTP_RX 0xd 995 /* enum: PTP NIC failure */ 996 #define MCDI_EVENT_CODE_PTP_FAULT 0xe 997 /* enum: PTP PPS event */ 998 #define MCDI_EVENT_CODE_PTP_PPS 0xf 999 /* enum: Rx flush has completed */ 1000 #define MCDI_EVENT_CODE_RX_FLUSH 0x10 1001 /* enum: Receive error */ 1002 #define MCDI_EVENT_CODE_RX_ERR 0x11 1003 /* enum: AOE fault */ 1004 #define MCDI_EVENT_CODE_AOE 0x12 1005 /* enum: Network port calibration failed (VCAL). */ 1006 #define MCDI_EVENT_CODE_VCAL_FAIL 0x13 1007 /* enum: HW PPS event */ 1008 #define MCDI_EVENT_CODE_HW_PPS 0x14 1009 /* enum: The MC has rebooted (huntington and later, siena uses CODE_REBOOT and 1010 * a different format) 1011 */ 1012 #define MCDI_EVENT_CODE_MC_REBOOT 0x15 1013 /* enum: the MC has detected a parity error */ 1014 #define MCDI_EVENT_CODE_PAR_ERR 0x16 1015 /* enum: the MC has detected a correctable error */ 1016 #define MCDI_EVENT_CODE_ECC_CORR_ERR 0x17 1017 /* enum: the MC has detected an uncorrectable error */ 1018 #define MCDI_EVENT_CODE_ECC_FATAL_ERR 0x18 1019 /* enum: The MC has entered offline BIST mode */ 1020 #define MCDI_EVENT_CODE_MC_BIST 0x19 1021 /* enum: PTP tick event providing current NIC time */ 1022 #define MCDI_EVENT_CODE_PTP_TIME 0x1a 1023 /* enum: MUM fault */ 1024 #define MCDI_EVENT_CODE_MUM 0x1b 1025 /* enum: notify the designated PF of a new authorization request */ 1026 #define MCDI_EVENT_CODE_PROXY_REQUEST 0x1c 1027 /* enum: notify a function that awaits an authorization that its request has 1028 * been processed and it may now resend the command 1029 */ 1030 #define MCDI_EVENT_CODE_PROXY_RESPONSE 0x1d 1031 /* enum: MCDI command accepted. New commands can be issued but this command is 1032 * not done yet. 1033 */ 1034 #define MCDI_EVENT_CODE_DBRET 0x1e 1035 /* enum: The MC has detected a fault on the SUC */ 1036 #define MCDI_EVENT_CODE_SUC 0x1f 1037 /* enum: Link change. This event is sent instead of LINKCHANGE if 1038 * WANT_V2_LINKCHANGES was set on driver attach. 1039 */ 1040 #define MCDI_EVENT_CODE_LINKCHANGE_V2 0x20 1041 /* enum: This event is sent if WANT_V2_LINKCHANGES was set on driver attach 1042 * when the local device capabilities changes. This will usually correspond to 1043 * a module change. 1044 */ 1045 #define MCDI_EVENT_CODE_MODULECHANGE 0x21 1046 /* enum: Notification that the sensors have been added and/or removed from the 1047 * sensor table. This event includes the new sensor table generation count, if 1048 * this does not match the driver's local copy it is expected to call 1049 * DYNAMIC_SENSORS_LIST to refresh it. 1050 */ 1051 #define MCDI_EVENT_CODE_DYNAMIC_SENSORS_CHANGE 0x22 1052 /* enum: Notification that a sensor has changed state as a result of a reading 1053 * crossing a threshold. This is sent as two events, the first event contains 1054 * the handle and the sensor's state (in the SRC field), and the second 1055 * contains the value. 1056 */ 1057 #define MCDI_EVENT_CODE_DYNAMIC_SENSORS_STATE_CHANGE 0x23 1058 /* enum: Notification that a descriptor proxy function configuration has been 1059 * pushed to "live" status (visible to host). SRC field contains the handle of 1060 * the affected descriptor proxy function. DATA field contains the generation 1061 * count of configuration set applied. See MC_CMD_DESC_PROXY_FUNC_CONFIG_SET / 1062 * MC_CMD_DESC_PROXY_FUNC_CONFIG_COMMIT and SF-122927-TC for details. 1063 */ 1064 #define MCDI_EVENT_CODE_DESC_PROXY_FUNC_CONFIG_COMMITTED 0x24 1065 /* enum: Notification that a descriptor proxy function has been reset. SRC 1066 * field contains the handle of the affected descriptor proxy function. See 1067 * SF-122927-TC for details. 1068 */ 1069 #define MCDI_EVENT_CODE_DESC_PROXY_FUNC_RESET 0x25 1070 /* enum: Notification that a driver attached to a descriptor proxy function. 1071 * SRC field contains the handle of the affected descriptor proxy function. For 1072 * Virtio proxy functions this message consists of two MCDI events, where the 1073 * first event's (CONT=1) DATA field carries negotiated virtio feature bits 0 1074 * to 31 and the second (CONT=0) carries bits 32 to 63. For EF100 proxy 1075 * functions event length and meaning of DATA field is not yet defined. See 1076 * SF-122927-TC for details. 1077 */ 1078 #define MCDI_EVENT_CODE_DESC_PROXY_FUNC_DRIVER_ATTACH 0x26 1079 /* enum: Artificial event generated by host and posted via MC for test 1080 * purposes. 1081 */ 1082 #define MCDI_EVENT_CODE_TESTGEN 0xfa 1083 #define MCDI_EVENT_CMDDONE_DATA_OFST 0 1084 #define MCDI_EVENT_CMDDONE_DATA_LEN 4 1085 #define MCDI_EVENT_CMDDONE_DATA_LBN 0 1086 #define MCDI_EVENT_CMDDONE_DATA_WIDTH 32 1087 #define MCDI_EVENT_LINKCHANGE_DATA_OFST 0 1088 #define MCDI_EVENT_LINKCHANGE_DATA_LEN 4 1089 #define MCDI_EVENT_LINKCHANGE_DATA_LBN 0 1090 #define MCDI_EVENT_LINKCHANGE_DATA_WIDTH 32 1091 #define MCDI_EVENT_SENSOREVT_DATA_OFST 0 1092 #define MCDI_EVENT_SENSOREVT_DATA_LEN 4 1093 #define MCDI_EVENT_SENSOREVT_DATA_LBN 0 1094 #define MCDI_EVENT_SENSOREVT_DATA_WIDTH 32 1095 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_OFST 0 1096 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_LEN 4 1097 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_LBN 0 1098 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_WIDTH 32 1099 #define MCDI_EVENT_TX_ERR_DATA_OFST 0 1100 #define MCDI_EVENT_TX_ERR_DATA_LEN 4 1101 #define MCDI_EVENT_TX_ERR_DATA_LBN 0 1102 #define MCDI_EVENT_TX_ERR_DATA_WIDTH 32 1103 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the seconds field of 1104 * timestamp 1105 */ 1106 #define MCDI_EVENT_PTP_SECONDS_OFST 0 1107 #define MCDI_EVENT_PTP_SECONDS_LEN 4 1108 #define MCDI_EVENT_PTP_SECONDS_LBN 0 1109 #define MCDI_EVENT_PTP_SECONDS_WIDTH 32 1110 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the major field of 1111 * timestamp 1112 */ 1113 #define MCDI_EVENT_PTP_MAJOR_OFST 0 1114 #define MCDI_EVENT_PTP_MAJOR_LEN 4 1115 #define MCDI_EVENT_PTP_MAJOR_LBN 0 1116 #define MCDI_EVENT_PTP_MAJOR_WIDTH 32 1117 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the nanoseconds field 1118 * of timestamp 1119 */ 1120 #define MCDI_EVENT_PTP_NANOSECONDS_OFST 0 1121 #define MCDI_EVENT_PTP_NANOSECONDS_LEN 4 1122 #define MCDI_EVENT_PTP_NANOSECONDS_LBN 0 1123 #define MCDI_EVENT_PTP_NANOSECONDS_WIDTH 32 1124 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the minor field of 1125 * timestamp 1126 */ 1127 #define MCDI_EVENT_PTP_MINOR_OFST 0 1128 #define MCDI_EVENT_PTP_MINOR_LEN 4 1129 #define MCDI_EVENT_PTP_MINOR_LBN 0 1130 #define MCDI_EVENT_PTP_MINOR_WIDTH 32 1131 /* For CODE_PTP_RX events, the lowest four bytes of sourceUUID from PTP packet 1132 */ 1133 #define MCDI_EVENT_PTP_UUID_OFST 0 1134 #define MCDI_EVENT_PTP_UUID_LEN 4 1135 #define MCDI_EVENT_PTP_UUID_LBN 0 1136 #define MCDI_EVENT_PTP_UUID_WIDTH 32 1137 #define MCDI_EVENT_RX_ERR_DATA_OFST 0 1138 #define MCDI_EVENT_RX_ERR_DATA_LEN 4 1139 #define MCDI_EVENT_RX_ERR_DATA_LBN 0 1140 #define MCDI_EVENT_RX_ERR_DATA_WIDTH 32 1141 #define MCDI_EVENT_PAR_ERR_DATA_OFST 0 1142 #define MCDI_EVENT_PAR_ERR_DATA_LEN 4 1143 #define MCDI_EVENT_PAR_ERR_DATA_LBN 0 1144 #define MCDI_EVENT_PAR_ERR_DATA_WIDTH 32 1145 #define MCDI_EVENT_ECC_CORR_ERR_DATA_OFST 0 1146 #define MCDI_EVENT_ECC_CORR_ERR_DATA_LEN 4 1147 #define MCDI_EVENT_ECC_CORR_ERR_DATA_LBN 0 1148 #define MCDI_EVENT_ECC_CORR_ERR_DATA_WIDTH 32 1149 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_OFST 0 1150 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_LEN 4 1151 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_LBN 0 1152 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_WIDTH 32 1153 /* For CODE_PTP_TIME events, the major value of the PTP clock */ 1154 #define MCDI_EVENT_PTP_TIME_MAJOR_OFST 0 1155 #define MCDI_EVENT_PTP_TIME_MAJOR_LEN 4 1156 #define MCDI_EVENT_PTP_TIME_MAJOR_LBN 0 1157 #define MCDI_EVENT_PTP_TIME_MAJOR_WIDTH 32 1158 /* For CODE_PTP_TIME events, bits 19-26 of the minor value of the PTP clock */ 1159 #define MCDI_EVENT_PTP_TIME_MINOR_26_19_LBN 36 1160 #define MCDI_EVENT_PTP_TIME_MINOR_26_19_WIDTH 8 1161 /* For CODE_PTP_TIME events, most significant bits of the minor value of the 1162 * PTP clock. This is a more generic equivalent of PTP_TIME_MINOR_26_19. 1163 */ 1164 #define MCDI_EVENT_PTP_TIME_MINOR_MS_8BITS_LBN 36 1165 #define MCDI_EVENT_PTP_TIME_MINOR_MS_8BITS_WIDTH 8 1166 /* For CODE_PTP_TIME events where report sync status is enabled, indicates 1167 * whether the NIC clock has ever been set 1168 */ 1169 #define MCDI_EVENT_PTP_TIME_NIC_CLOCK_VALID_LBN 36 1170 #define MCDI_EVENT_PTP_TIME_NIC_CLOCK_VALID_WIDTH 1 1171 /* For CODE_PTP_TIME events where report sync status is enabled, indicates 1172 * whether the NIC and System clocks are in sync 1173 */ 1174 #define MCDI_EVENT_PTP_TIME_HOST_NIC_IN_SYNC_LBN 37 1175 #define MCDI_EVENT_PTP_TIME_HOST_NIC_IN_SYNC_WIDTH 1 1176 /* For CODE_PTP_TIME events where report sync status is enabled, bits 21-26 of 1177 * the minor value of the PTP clock 1178 */ 1179 #define MCDI_EVENT_PTP_TIME_MINOR_26_21_LBN 38 1180 #define MCDI_EVENT_PTP_TIME_MINOR_26_21_WIDTH 6 1181 /* For CODE_PTP_TIME events, most significant bits of the minor value of the 1182 * PTP clock. This is a more generic equivalent of PTP_TIME_MINOR_26_21. 1183 */ 1184 #define MCDI_EVENT_PTP_TIME_MINOR_MS_6BITS_LBN 38 1185 #define MCDI_EVENT_PTP_TIME_MINOR_MS_6BITS_WIDTH 6 1186 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_OFST 0 1187 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_LEN 4 1188 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_LBN 0 1189 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_WIDTH 32 1190 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_OFST 0 1191 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_LEN 4 1192 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_LBN 0 1193 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_WIDTH 32 1194 /* Zero means that the request has been completed or authorized, and the driver 1195 * should resend it. A non-zero value means that the authorization has been 1196 * denied, and gives the reason. Typically it will be EPERM. 1197 */ 1198 #define MCDI_EVENT_PROXY_RESPONSE_RC_LBN 36 1199 #define MCDI_EVENT_PROXY_RESPONSE_RC_WIDTH 8 1200 #define MCDI_EVENT_DBRET_DATA_OFST 0 1201 #define MCDI_EVENT_DBRET_DATA_LEN 4 1202 #define MCDI_EVENT_DBRET_DATA_LBN 0 1203 #define MCDI_EVENT_DBRET_DATA_WIDTH 32 1204 #define MCDI_EVENT_LINKCHANGE_V2_DATA_OFST 0 1205 #define MCDI_EVENT_LINKCHANGE_V2_DATA_LEN 4 1206 #define MCDI_EVENT_LINKCHANGE_V2_DATA_LBN 0 1207 #define MCDI_EVENT_LINKCHANGE_V2_DATA_WIDTH 32 1208 #define MCDI_EVENT_MODULECHANGE_DATA_OFST 0 1209 #define MCDI_EVENT_MODULECHANGE_DATA_LEN 4 1210 #define MCDI_EVENT_MODULECHANGE_DATA_LBN 0 1211 #define MCDI_EVENT_MODULECHANGE_DATA_WIDTH 32 1212 /* The new generation count after a sensor has been added or deleted. */ 1213 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_OFST 0 1214 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_LEN 4 1215 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_LBN 0 1216 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_WIDTH 32 1217 /* The handle of a dynamic sensor. */ 1218 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_OFST 0 1219 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_LEN 4 1220 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_LBN 0 1221 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_WIDTH 32 1222 /* The current values of a sensor. */ 1223 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_OFST 0 1224 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_LEN 4 1225 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_LBN 0 1226 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_WIDTH 32 1227 /* The current state of a sensor. */ 1228 #define MCDI_EVENT_DYNAMIC_SENSORS_STATE_LBN 36 1229 #define MCDI_EVENT_DYNAMIC_SENSORS_STATE_WIDTH 8 1230 #define MCDI_EVENT_DESC_PROXY_DATA_OFST 0 1231 #define MCDI_EVENT_DESC_PROXY_DATA_LEN 4 1232 #define MCDI_EVENT_DESC_PROXY_DATA_LBN 0 1233 #define MCDI_EVENT_DESC_PROXY_DATA_WIDTH 32 1234 /* Generation count of applied configuration set */ 1235 #define MCDI_EVENT_DESC_PROXY_GENERATION_OFST 0 1236 #define MCDI_EVENT_DESC_PROXY_GENERATION_LEN 4 1237 #define MCDI_EVENT_DESC_PROXY_GENERATION_LBN 0 1238 #define MCDI_EVENT_DESC_PROXY_GENERATION_WIDTH 32 1239 /* Virtio features negotiated with the host driver. First event (CONT=1) 1240 * carries bits 0 to 31. Second event (CONT=0) carries bits 32 to 63. 1241 */ 1242 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_OFST 0 1243 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_LEN 4 1244 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_LBN 0 1245 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_WIDTH 32 1246 1247 /* FCDI_EVENT structuredef */ 1248 #define FCDI_EVENT_LEN 8 1249 #define FCDI_EVENT_CONT_LBN 32 1250 #define FCDI_EVENT_CONT_WIDTH 1 1251 #define FCDI_EVENT_LEVEL_LBN 33 1252 #define FCDI_EVENT_LEVEL_WIDTH 3 1253 /* enum: Info. */ 1254 #define FCDI_EVENT_LEVEL_INFO 0x0 1255 /* enum: Warning. */ 1256 #define FCDI_EVENT_LEVEL_WARN 0x1 1257 /* enum: Error. */ 1258 #define FCDI_EVENT_LEVEL_ERR 0x2 1259 /* enum: Fatal. */ 1260 #define FCDI_EVENT_LEVEL_FATAL 0x3 1261 #define FCDI_EVENT_DATA_OFST 0 1262 #define FCDI_EVENT_DATA_LEN 4 1263 #define FCDI_EVENT_LINK_STATE_STATUS_OFST 0 1264 #define FCDI_EVENT_LINK_STATE_STATUS_LBN 0 1265 #define FCDI_EVENT_LINK_STATE_STATUS_WIDTH 1 1266 #define FCDI_EVENT_LINK_DOWN 0x0 /* enum */ 1267 #define FCDI_EVENT_LINK_UP 0x1 /* enum */ 1268 #define FCDI_EVENT_DATA_LBN 0 1269 #define FCDI_EVENT_DATA_WIDTH 32 1270 #define FCDI_EVENT_SRC_LBN 36 1271 #define FCDI_EVENT_SRC_WIDTH 8 1272 #define FCDI_EVENT_EV_CODE_LBN 60 1273 #define FCDI_EVENT_EV_CODE_WIDTH 4 1274 #define FCDI_EVENT_CODE_LBN 44 1275 #define FCDI_EVENT_CODE_WIDTH 8 1276 /* enum: The FC was rebooted. */ 1277 #define FCDI_EVENT_CODE_REBOOT 0x1 1278 /* enum: Bad assert. */ 1279 #define FCDI_EVENT_CODE_ASSERT 0x2 1280 /* enum: DDR3 test result. */ 1281 #define FCDI_EVENT_CODE_DDR_TEST_RESULT 0x3 1282 /* enum: Link status. */ 1283 #define FCDI_EVENT_CODE_LINK_STATE 0x4 1284 /* enum: A timed read is ready to be serviced. */ 1285 #define FCDI_EVENT_CODE_TIMED_READ 0x5 1286 /* enum: One or more PPS IN events */ 1287 #define FCDI_EVENT_CODE_PPS_IN 0x6 1288 /* enum: Tick event from PTP clock */ 1289 #define FCDI_EVENT_CODE_PTP_TICK 0x7 1290 /* enum: ECC error counters */ 1291 #define FCDI_EVENT_CODE_DDR_ECC_STATUS 0x8 1292 /* enum: Current status of PTP */ 1293 #define FCDI_EVENT_CODE_PTP_STATUS 0x9 1294 /* enum: Port id config to map MC-FC port idx */ 1295 #define FCDI_EVENT_CODE_PORT_CONFIG 0xa 1296 /* enum: Boot result or error code */ 1297 #define FCDI_EVENT_CODE_BOOT_RESULT 0xb 1298 #define FCDI_EVENT_REBOOT_SRC_LBN 36 1299 #define FCDI_EVENT_REBOOT_SRC_WIDTH 8 1300 #define FCDI_EVENT_REBOOT_FC_FW 0x0 /* enum */ 1301 #define FCDI_EVENT_REBOOT_FC_BOOTLOADER 0x1 /* enum */ 1302 #define FCDI_EVENT_ASSERT_INSTR_ADDRESS_OFST 0 1303 #define FCDI_EVENT_ASSERT_INSTR_ADDRESS_LEN 4 1304 #define FCDI_EVENT_ASSERT_INSTR_ADDRESS_LBN 0 1305 #define FCDI_EVENT_ASSERT_INSTR_ADDRESS_WIDTH 32 1306 #define FCDI_EVENT_ASSERT_TYPE_LBN 36 1307 #define FCDI_EVENT_ASSERT_TYPE_WIDTH 8 1308 #define FCDI_EVENT_DDR_TEST_RESULT_STATUS_CODE_LBN 36 1309 #define FCDI_EVENT_DDR_TEST_RESULT_STATUS_CODE_WIDTH 8 1310 #define FCDI_EVENT_DDR_TEST_RESULT_RESULT_OFST 0 1311 #define FCDI_EVENT_DDR_TEST_RESULT_RESULT_LEN 4 1312 #define FCDI_EVENT_DDR_TEST_RESULT_RESULT_LBN 0 1313 #define FCDI_EVENT_DDR_TEST_RESULT_RESULT_WIDTH 32 1314 #define FCDI_EVENT_LINK_STATE_DATA_OFST 0 1315 #define FCDI_EVENT_LINK_STATE_DATA_LEN 4 1316 #define FCDI_EVENT_LINK_STATE_DATA_LBN 0 1317 #define FCDI_EVENT_LINK_STATE_DATA_WIDTH 32 1318 #define FCDI_EVENT_PTP_STATE_OFST 0 1319 #define FCDI_EVENT_PTP_STATE_LEN 4 1320 #define FCDI_EVENT_PTP_UNDEFINED 0x0 /* enum */ 1321 #define FCDI_EVENT_PTP_SETUP_FAILED 0x1 /* enum */ 1322 #define FCDI_EVENT_PTP_OPERATIONAL 0x2 /* enum */ 1323 #define FCDI_EVENT_PTP_STATE_LBN 0 1324 #define FCDI_EVENT_PTP_STATE_WIDTH 32 1325 #define FCDI_EVENT_DDR_ECC_STATUS_BANK_ID_LBN 36 1326 #define FCDI_EVENT_DDR_ECC_STATUS_BANK_ID_WIDTH 8 1327 #define FCDI_EVENT_DDR_ECC_STATUS_STATUS_OFST 0 1328 #define FCDI_EVENT_DDR_ECC_STATUS_STATUS_LEN 4 1329 #define FCDI_EVENT_DDR_ECC_STATUS_STATUS_LBN 0 1330 #define FCDI_EVENT_DDR_ECC_STATUS_STATUS_WIDTH 32 1331 /* Index of MC port being referred to */ 1332 #define FCDI_EVENT_PORT_CONFIG_SRC_LBN 36 1333 #define FCDI_EVENT_PORT_CONFIG_SRC_WIDTH 8 1334 /* FC Port index that matches the MC port index in SRC */ 1335 #define FCDI_EVENT_PORT_CONFIG_DATA_OFST 0 1336 #define FCDI_EVENT_PORT_CONFIG_DATA_LEN 4 1337 #define FCDI_EVENT_PORT_CONFIG_DATA_LBN 0 1338 #define FCDI_EVENT_PORT_CONFIG_DATA_WIDTH 32 1339 #define FCDI_EVENT_BOOT_RESULT_OFST 0 1340 #define FCDI_EVENT_BOOT_RESULT_LEN 4 1341 /* Enum values, see field(s): */ 1342 /* MC_CMD_AOE/MC_CMD_AOE_OUT_INFO/FC_BOOT_RESULT */ 1343 #define FCDI_EVENT_BOOT_RESULT_LBN 0 1344 #define FCDI_EVENT_BOOT_RESULT_WIDTH 32 1345 1346 /* FCDI_EXTENDED_EVENT_PPS structuredef: Extended FCDI event to send PPS events 1347 * to the MC. Note that this structure | is overlayed over a normal FCDI event 1348 * such that bits 32-63 containing | event code, level, source etc remain the 1349 * same. In this case the data | field of the header is defined to be the 1350 * number of timestamps 1351 */ 1352 #define FCDI_EXTENDED_EVENT_PPS_LENMIN 16 1353 #define FCDI_EXTENDED_EVENT_PPS_LENMAX 248 1354 #define FCDI_EXTENDED_EVENT_PPS_LENMAX_MCDI2 1016 1355 #define FCDI_EXTENDED_EVENT_PPS_LEN(num) (8+8*(num)) 1356 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_NUM(len) (((len)-8)/8) 1357 /* Number of timestamps following */ 1358 #define FCDI_EXTENDED_EVENT_PPS_COUNT_OFST 0 1359 #define FCDI_EXTENDED_EVENT_PPS_COUNT_LEN 4 1360 #define FCDI_EXTENDED_EVENT_PPS_COUNT_LBN 0 1361 #define FCDI_EXTENDED_EVENT_PPS_COUNT_WIDTH 32 1362 /* Seconds field of a timestamp record */ 1363 #define FCDI_EXTENDED_EVENT_PPS_SECONDS_OFST 8 1364 #define FCDI_EXTENDED_EVENT_PPS_SECONDS_LEN 4 1365 #define FCDI_EXTENDED_EVENT_PPS_SECONDS_LBN 64 1366 #define FCDI_EXTENDED_EVENT_PPS_SECONDS_WIDTH 32 1367 /* Nanoseconds field of a timestamp record */ 1368 #define FCDI_EXTENDED_EVENT_PPS_NANOSECONDS_OFST 12 1369 #define FCDI_EXTENDED_EVENT_PPS_NANOSECONDS_LEN 4 1370 #define FCDI_EXTENDED_EVENT_PPS_NANOSECONDS_LBN 96 1371 #define FCDI_EXTENDED_EVENT_PPS_NANOSECONDS_WIDTH 32 1372 /* Timestamp records comprising the event */ 1373 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_OFST 8 1374 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LEN 8 1375 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LO_OFST 8 1376 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LO_LEN 4 1377 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LO_LBN 64 1378 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LO_WIDTH 32 1379 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_HI_OFST 12 1380 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_HI_LEN 4 1381 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_HI_LBN 96 1382 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_HI_WIDTH 32 1383 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_MINNUM 1 1384 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_MAXNUM 30 1385 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_MAXNUM_MCDI2 126 1386 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LBN 64 1387 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_WIDTH 64 1388 1389 /* MUM_EVENT structuredef */ 1390 #define MUM_EVENT_LEN 8 1391 #define MUM_EVENT_CONT_LBN 32 1392 #define MUM_EVENT_CONT_WIDTH 1 1393 #define MUM_EVENT_LEVEL_LBN 33 1394 #define MUM_EVENT_LEVEL_WIDTH 3 1395 /* enum: Info. */ 1396 #define MUM_EVENT_LEVEL_INFO 0x0 1397 /* enum: Warning. */ 1398 #define MUM_EVENT_LEVEL_WARN 0x1 1399 /* enum: Error. */ 1400 #define MUM_EVENT_LEVEL_ERR 0x2 1401 /* enum: Fatal. */ 1402 #define MUM_EVENT_LEVEL_FATAL 0x3 1403 #define MUM_EVENT_DATA_OFST 0 1404 #define MUM_EVENT_DATA_LEN 4 1405 #define MUM_EVENT_SENSOR_ID_OFST 0 1406 #define MUM_EVENT_SENSOR_ID_LBN 0 1407 #define MUM_EVENT_SENSOR_ID_WIDTH 8 1408 /* Enum values, see field(s): */ 1409 /* MC_CMD_SENSOR_INFO/MC_CMD_SENSOR_INFO_OUT/MASK */ 1410 #define MUM_EVENT_SENSOR_STATE_OFST 0 1411 #define MUM_EVENT_SENSOR_STATE_LBN 8 1412 #define MUM_EVENT_SENSOR_STATE_WIDTH 8 1413 #define MUM_EVENT_PORT_PHY_READY_OFST 0 1414 #define MUM_EVENT_PORT_PHY_READY_LBN 0 1415 #define MUM_EVENT_PORT_PHY_READY_WIDTH 1 1416 #define MUM_EVENT_PORT_PHY_LINK_UP_OFST 0 1417 #define MUM_EVENT_PORT_PHY_LINK_UP_LBN 1 1418 #define MUM_EVENT_PORT_PHY_LINK_UP_WIDTH 1 1419 #define MUM_EVENT_PORT_PHY_TX_LOL_OFST 0 1420 #define MUM_EVENT_PORT_PHY_TX_LOL_LBN 2 1421 #define MUM_EVENT_PORT_PHY_TX_LOL_WIDTH 1 1422 #define MUM_EVENT_PORT_PHY_RX_LOL_OFST 0 1423 #define MUM_EVENT_PORT_PHY_RX_LOL_LBN 3 1424 #define MUM_EVENT_PORT_PHY_RX_LOL_WIDTH 1 1425 #define MUM_EVENT_PORT_PHY_TX_LOS_OFST 0 1426 #define MUM_EVENT_PORT_PHY_TX_LOS_LBN 4 1427 #define MUM_EVENT_PORT_PHY_TX_LOS_WIDTH 1 1428 #define MUM_EVENT_PORT_PHY_RX_LOS_OFST 0 1429 #define MUM_EVENT_PORT_PHY_RX_LOS_LBN 5 1430 #define MUM_EVENT_PORT_PHY_RX_LOS_WIDTH 1 1431 #define MUM_EVENT_PORT_PHY_TX_FAULT_OFST 0 1432 #define MUM_EVENT_PORT_PHY_TX_FAULT_LBN 6 1433 #define MUM_EVENT_PORT_PHY_TX_FAULT_WIDTH 1 1434 #define MUM_EVENT_DATA_LBN 0 1435 #define MUM_EVENT_DATA_WIDTH 32 1436 #define MUM_EVENT_SRC_LBN 36 1437 #define MUM_EVENT_SRC_WIDTH 8 1438 #define MUM_EVENT_EV_CODE_LBN 60 1439 #define MUM_EVENT_EV_CODE_WIDTH 4 1440 #define MUM_EVENT_CODE_LBN 44 1441 #define MUM_EVENT_CODE_WIDTH 8 1442 /* enum: The MUM was rebooted. */ 1443 #define MUM_EVENT_CODE_REBOOT 0x1 1444 /* enum: Bad assert. */ 1445 #define MUM_EVENT_CODE_ASSERT 0x2 1446 /* enum: Sensor failure. */ 1447 #define MUM_EVENT_CODE_SENSOR 0x3 1448 /* enum: Link fault has been asserted, or has cleared. */ 1449 #define MUM_EVENT_CODE_QSFP_LASI_INTERRUPT 0x4 1450 #define MUM_EVENT_SENSOR_DATA_OFST 0 1451 #define MUM_EVENT_SENSOR_DATA_LEN 4 1452 #define MUM_EVENT_SENSOR_DATA_LBN 0 1453 #define MUM_EVENT_SENSOR_DATA_WIDTH 32 1454 #define MUM_EVENT_PORT_PHY_FLAGS_OFST 0 1455 #define MUM_EVENT_PORT_PHY_FLAGS_LEN 4 1456 #define MUM_EVENT_PORT_PHY_FLAGS_LBN 0 1457 #define MUM_EVENT_PORT_PHY_FLAGS_WIDTH 32 1458 #define MUM_EVENT_PORT_PHY_COPPER_LEN_OFST 0 1459 #define MUM_EVENT_PORT_PHY_COPPER_LEN_LEN 4 1460 #define MUM_EVENT_PORT_PHY_COPPER_LEN_LBN 0 1461 #define MUM_EVENT_PORT_PHY_COPPER_LEN_WIDTH 32 1462 #define MUM_EVENT_PORT_PHY_CAPS_OFST 0 1463 #define MUM_EVENT_PORT_PHY_CAPS_LEN 4 1464 #define MUM_EVENT_PORT_PHY_CAPS_LBN 0 1465 #define MUM_EVENT_PORT_PHY_CAPS_WIDTH 32 1466 #define MUM_EVENT_PORT_PHY_TECH_OFST 0 1467 #define MUM_EVENT_PORT_PHY_TECH_LEN 4 1468 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_UNKNOWN 0x0 /* enum */ 1469 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_OPTICAL 0x1 /* enum */ 1470 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_COPPER_PASSIVE 0x2 /* enum */ 1471 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_COPPER_PASSIVE_EQUALIZED 0x3 /* enum */ 1472 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_COPPER_ACTIVE_LIMITING 0x4 /* enum */ 1473 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_COPPER_ACTIVE_LINEAR 0x5 /* enum */ 1474 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_BASE_T 0x6 /* enum */ 1475 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_LOOPBACK_PASSIVE 0x7 /* enum */ 1476 #define MUM_EVENT_PORT_PHY_TECH_LBN 0 1477 #define MUM_EVENT_PORT_PHY_TECH_WIDTH 32 1478 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_LBN 36 1479 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_WIDTH 4 1480 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_FLAGS 0x0 /* enum */ 1481 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_COPPER_LEN 0x1 /* enum */ 1482 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_CAPS 0x2 /* enum */ 1483 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_TECH 0x3 /* enum */ 1484 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_MAX 0x4 /* enum */ 1485 #define MUM_EVENT_PORT_PHY_SRC_PORT_NO_LBN 40 1486 #define MUM_EVENT_PORT_PHY_SRC_PORT_NO_WIDTH 4 1487 1488 1489 /***********************************/ 1490 /* MC_CMD_READ32 1491 * Read multiple 32byte words from MC memory. Note - this command really 1492 * belongs to INSECURE category but is required by shmboot. The command handler 1493 * has additional checks to reject insecure calls. 1494 */ 1495 #define MC_CMD_READ32 0x1 1496 #define MC_CMD_READ32_MSGSET 0x1 1497 #undef MC_CMD_0x1_PRIVILEGE_CTG 1498 1499 #define MC_CMD_0x1_PRIVILEGE_CTG SRIOV_CTG_ADMIN 1500 1501 /* MC_CMD_READ32_IN msgrequest */ 1502 #define MC_CMD_READ32_IN_LEN 8 1503 #define MC_CMD_READ32_IN_ADDR_OFST 0 1504 #define MC_CMD_READ32_IN_ADDR_LEN 4 1505 #define MC_CMD_READ32_IN_NUMWORDS_OFST 4 1506 #define MC_CMD_READ32_IN_NUMWORDS_LEN 4 1507 1508 /* MC_CMD_READ32_OUT msgresponse */ 1509 #define MC_CMD_READ32_OUT_LENMIN 4 1510 #define MC_CMD_READ32_OUT_LENMAX 252 1511 #define MC_CMD_READ32_OUT_LENMAX_MCDI2 1020 1512 #define MC_CMD_READ32_OUT_LEN(num) (0+4*(num)) 1513 #define MC_CMD_READ32_OUT_BUFFER_NUM(len) (((len)-0)/4) 1514 #define MC_CMD_READ32_OUT_BUFFER_OFST 0 1515 #define MC_CMD_READ32_OUT_BUFFER_LEN 4 1516 #define MC_CMD_READ32_OUT_BUFFER_MINNUM 1 1517 #define MC_CMD_READ32_OUT_BUFFER_MAXNUM 63 1518 #define MC_CMD_READ32_OUT_BUFFER_MAXNUM_MCDI2 255 1519 1520 1521 /***********************************/ 1522 /* MC_CMD_WRITE32 1523 * Write multiple 32byte words to MC memory. 1524 */ 1525 #define MC_CMD_WRITE32 0x2 1526 #define MC_CMD_WRITE32_MSGSET 0x2 1527 #undef MC_CMD_0x2_PRIVILEGE_CTG 1528 1529 #define MC_CMD_0x2_PRIVILEGE_CTG SRIOV_CTG_INSECURE 1530 1531 /* MC_CMD_WRITE32_IN msgrequest */ 1532 #define MC_CMD_WRITE32_IN_LENMIN 8 1533 #define MC_CMD_WRITE32_IN_LENMAX 252 1534 #define MC_CMD_WRITE32_IN_LENMAX_MCDI2 1020 1535 #define MC_CMD_WRITE32_IN_LEN(num) (4+4*(num)) 1536 #define MC_CMD_WRITE32_IN_BUFFER_NUM(len) (((len)-4)/4) 1537 #define MC_CMD_WRITE32_IN_ADDR_OFST 0 1538 #define MC_CMD_WRITE32_IN_ADDR_LEN 4 1539 #define MC_CMD_WRITE32_IN_BUFFER_OFST 4 1540 #define MC_CMD_WRITE32_IN_BUFFER_LEN 4 1541 #define MC_CMD_WRITE32_IN_BUFFER_MINNUM 1 1542 #define MC_CMD_WRITE32_IN_BUFFER_MAXNUM 62 1543 #define MC_CMD_WRITE32_IN_BUFFER_MAXNUM_MCDI2 254 1544 1545 /* MC_CMD_WRITE32_OUT msgresponse */ 1546 #define MC_CMD_WRITE32_OUT_LEN 0 1547 1548 1549 /***********************************/ 1550 /* MC_CMD_COPYCODE 1551 * Copy MC code between two locations and jump. Note - this command really 1552 * belongs to INSECURE category but is required by shmboot. The command handler 1553 * has additional checks to reject insecure calls. 1554 */ 1555 #define MC_CMD_COPYCODE 0x3 1556 #define MC_CMD_COPYCODE_MSGSET 0x3 1557 #undef MC_CMD_0x3_PRIVILEGE_CTG 1558 1559 #define MC_CMD_0x3_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 1560 1561 /* MC_CMD_COPYCODE_IN msgrequest */ 1562 #define MC_CMD_COPYCODE_IN_LEN 16 1563 /* Source address 1564 * 1565 * The main image should be entered via a copy of a single word from and to a 1566 * magic address, which controls various aspects of the boot. The magic address 1567 * is a bitfield, with each bit as documented below. 1568 */ 1569 #define MC_CMD_COPYCODE_IN_SRC_ADDR_OFST 0 1570 #define MC_CMD_COPYCODE_IN_SRC_ADDR_LEN 4 1571 /* enum: Deprecated; equivalent to setting BOOT_MAGIC_PRESENT (see below) */ 1572 #define MC_CMD_COPYCODE_HUNT_NO_MAGIC_ADDR 0x10000 1573 /* enum: Deprecated; equivalent to setting BOOT_MAGIC_PRESENT and 1574 * BOOT_MAGIC_SATELLITE_CPUS_NOT_LOADED (see below) 1575 */ 1576 #define MC_CMD_COPYCODE_HUNT_NO_DATAPATH_MAGIC_ADDR 0x1d0d0 1577 /* enum: Deprecated; equivalent to setting BOOT_MAGIC_PRESENT, 1578 * BOOT_MAGIC_SATELLITE_CPUS_NOT_LOADED and BOOT_MAGIC_IGNORE_CONFIG (see 1579 * below) 1580 */ 1581 #define MC_CMD_COPYCODE_HUNT_IGNORE_CONFIG_MAGIC_ADDR 0x1badc 1582 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_PRESENT_OFST 0 1583 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_PRESENT_LBN 17 1584 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_PRESENT_WIDTH 1 1585 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SATELLITE_CPUS_NOT_LOADED_OFST 0 1586 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SATELLITE_CPUS_NOT_LOADED_LBN 2 1587 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SATELLITE_CPUS_NOT_LOADED_WIDTH 1 1588 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_IGNORE_CONFIG_OFST 0 1589 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_IGNORE_CONFIG_LBN 3 1590 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_IGNORE_CONFIG_WIDTH 1 1591 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SKIP_BOOT_ICORE_SYNC_OFST 0 1592 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SKIP_BOOT_ICORE_SYNC_LBN 4 1593 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SKIP_BOOT_ICORE_SYNC_WIDTH 1 1594 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_FORCE_STANDALONE_OFST 0 1595 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_FORCE_STANDALONE_LBN 5 1596 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_FORCE_STANDALONE_WIDTH 1 1597 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_DISABLE_XIP_OFST 0 1598 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_DISABLE_XIP_LBN 6 1599 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_DISABLE_XIP_WIDTH 1 1600 /* Destination address */ 1601 #define MC_CMD_COPYCODE_IN_DEST_ADDR_OFST 4 1602 #define MC_CMD_COPYCODE_IN_DEST_ADDR_LEN 4 1603 #define MC_CMD_COPYCODE_IN_NUMWORDS_OFST 8 1604 #define MC_CMD_COPYCODE_IN_NUMWORDS_LEN 4 1605 /* Address of where to jump after copy. */ 1606 #define MC_CMD_COPYCODE_IN_JUMP_OFST 12 1607 #define MC_CMD_COPYCODE_IN_JUMP_LEN 4 1608 /* enum: Control should return to the caller rather than jumping */ 1609 #define MC_CMD_COPYCODE_JUMP_NONE 0x1 1610 1611 /* MC_CMD_COPYCODE_OUT msgresponse */ 1612 #define MC_CMD_COPYCODE_OUT_LEN 0 1613 1614 1615 /***********************************/ 1616 /* MC_CMD_SET_FUNC 1617 * Select function for function-specific commands. 1618 */ 1619 #define MC_CMD_SET_FUNC 0x4 1620 #define MC_CMD_SET_FUNC_MSGSET 0x4 1621 #undef MC_CMD_0x4_PRIVILEGE_CTG 1622 1623 #define MC_CMD_0x4_PRIVILEGE_CTG SRIOV_CTG_INSECURE 1624 1625 /* MC_CMD_SET_FUNC_IN msgrequest */ 1626 #define MC_CMD_SET_FUNC_IN_LEN 4 1627 /* Set function */ 1628 #define MC_CMD_SET_FUNC_IN_FUNC_OFST 0 1629 #define MC_CMD_SET_FUNC_IN_FUNC_LEN 4 1630 1631 /* MC_CMD_SET_FUNC_OUT msgresponse */ 1632 #define MC_CMD_SET_FUNC_OUT_LEN 0 1633 1634 1635 /***********************************/ 1636 /* MC_CMD_GET_BOOT_STATUS 1637 * Get the instruction address from which the MC booted. 1638 */ 1639 #define MC_CMD_GET_BOOT_STATUS 0x5 1640 #define MC_CMD_GET_BOOT_STATUS_MSGSET 0x5 1641 #undef MC_CMD_0x5_PRIVILEGE_CTG 1642 1643 #define MC_CMD_0x5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 1644 1645 /* MC_CMD_GET_BOOT_STATUS_IN msgrequest */ 1646 #define MC_CMD_GET_BOOT_STATUS_IN_LEN 0 1647 1648 /* MC_CMD_GET_BOOT_STATUS_OUT msgresponse */ 1649 #define MC_CMD_GET_BOOT_STATUS_OUT_LEN 8 1650 /* ?? */ 1651 #define MC_CMD_GET_BOOT_STATUS_OUT_BOOT_OFFSET_OFST 0 1652 #define MC_CMD_GET_BOOT_STATUS_OUT_BOOT_OFFSET_LEN 4 1653 /* enum: indicates that the MC wasn't flash booted */ 1654 #define MC_CMD_GET_BOOT_STATUS_OUT_BOOT_OFFSET_NULL 0xdeadbeef 1655 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_OFST 4 1656 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_LEN 4 1657 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_WATCHDOG_OFST 4 1658 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_WATCHDOG_LBN 0 1659 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_WATCHDOG_WIDTH 1 1660 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_PRIMARY_OFST 4 1661 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_PRIMARY_LBN 1 1662 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_PRIMARY_WIDTH 1 1663 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_BACKUP_OFST 4 1664 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_BACKUP_LBN 2 1665 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_BACKUP_WIDTH 1 1666 1667 1668 /***********************************/ 1669 /* MC_CMD_GET_ASSERTS 1670 * Get (and optionally clear) the current assertion status. Only 1671 * OUT.GLOBAL_FLAGS is guaranteed to exist in the completion payload. The other 1672 * fields will only be present if OUT.GLOBAL_FLAGS != NO_FAILS 1673 */ 1674 #define MC_CMD_GET_ASSERTS 0x6 1675 #define MC_CMD_GET_ASSERTS_MSGSET 0x6 1676 #undef MC_CMD_0x6_PRIVILEGE_CTG 1677 1678 #define MC_CMD_0x6_PRIVILEGE_CTG SRIOV_CTG_ADMIN 1679 1680 /* MC_CMD_GET_ASSERTS_IN msgrequest */ 1681 #define MC_CMD_GET_ASSERTS_IN_LEN 4 1682 /* Set to clear assertion */ 1683 #define MC_CMD_GET_ASSERTS_IN_CLEAR_OFST 0 1684 #define MC_CMD_GET_ASSERTS_IN_CLEAR_LEN 4 1685 1686 /* MC_CMD_GET_ASSERTS_OUT msgresponse */ 1687 #define MC_CMD_GET_ASSERTS_OUT_LEN 140 1688 /* Assertion status flag. */ 1689 #define MC_CMD_GET_ASSERTS_OUT_GLOBAL_FLAGS_OFST 0 1690 #define MC_CMD_GET_ASSERTS_OUT_GLOBAL_FLAGS_LEN 4 1691 /* enum: No assertions have failed. */ 1692 #define MC_CMD_GET_ASSERTS_FLAGS_NO_FAILS 0x1 1693 /* enum: A system-level assertion has failed. */ 1694 #define MC_CMD_GET_ASSERTS_FLAGS_SYS_FAIL 0x2 1695 /* enum: A thread-level assertion has failed. */ 1696 #define MC_CMD_GET_ASSERTS_FLAGS_THR_FAIL 0x3 1697 /* enum: The system was reset by the watchdog. */ 1698 #define MC_CMD_GET_ASSERTS_FLAGS_WDOG_FIRED 0x4 1699 /* enum: An illegal address trap stopped the system (huntington and later) */ 1700 #define MC_CMD_GET_ASSERTS_FLAGS_ADDR_TRAP 0x5 1701 /* Failing PC value */ 1702 #define MC_CMD_GET_ASSERTS_OUT_SAVED_PC_OFFS_OFST 4 1703 #define MC_CMD_GET_ASSERTS_OUT_SAVED_PC_OFFS_LEN 4 1704 /* Saved GP regs */ 1705 #define MC_CMD_GET_ASSERTS_OUT_GP_REGS_OFFS_OFST 8 1706 #define MC_CMD_GET_ASSERTS_OUT_GP_REGS_OFFS_LEN 4 1707 #define MC_CMD_GET_ASSERTS_OUT_GP_REGS_OFFS_NUM 31 1708 /* enum: A magic value hinting that the value in this register at the time of 1709 * the failure has likely been lost. 1710 */ 1711 #define MC_CMD_GET_ASSERTS_REG_NO_DATA 0xda7a1057 1712 /* Failing thread address */ 1713 #define MC_CMD_GET_ASSERTS_OUT_THREAD_OFFS_OFST 132 1714 #define MC_CMD_GET_ASSERTS_OUT_THREAD_OFFS_LEN 4 1715 #define MC_CMD_GET_ASSERTS_OUT_RESERVED_OFST 136 1716 #define MC_CMD_GET_ASSERTS_OUT_RESERVED_LEN 4 1717 1718 /* MC_CMD_GET_ASSERTS_OUT_V2 msgresponse: Extended response for MicroBlaze CPUs 1719 * found on Riverhead designs 1720 */ 1721 #define MC_CMD_GET_ASSERTS_OUT_V2_LEN 240 1722 /* Assertion status flag. */ 1723 #define MC_CMD_GET_ASSERTS_OUT_V2_GLOBAL_FLAGS_OFST 0 1724 #define MC_CMD_GET_ASSERTS_OUT_V2_GLOBAL_FLAGS_LEN 4 1725 /* enum: No assertions have failed. */ 1726 /* MC_CMD_GET_ASSERTS_FLAGS_NO_FAILS 0x1 */ 1727 /* enum: A system-level assertion has failed. */ 1728 /* MC_CMD_GET_ASSERTS_FLAGS_SYS_FAIL 0x2 */ 1729 /* enum: A thread-level assertion has failed. */ 1730 /* MC_CMD_GET_ASSERTS_FLAGS_THR_FAIL 0x3 */ 1731 /* enum: The system was reset by the watchdog. */ 1732 /* MC_CMD_GET_ASSERTS_FLAGS_WDOG_FIRED 0x4 */ 1733 /* enum: An illegal address trap stopped the system (huntington and later) */ 1734 /* MC_CMD_GET_ASSERTS_FLAGS_ADDR_TRAP 0x5 */ 1735 /* Failing PC value */ 1736 #define MC_CMD_GET_ASSERTS_OUT_V2_SAVED_PC_OFFS_OFST 4 1737 #define MC_CMD_GET_ASSERTS_OUT_V2_SAVED_PC_OFFS_LEN 4 1738 /* Saved GP regs */ 1739 #define MC_CMD_GET_ASSERTS_OUT_V2_GP_REGS_OFFS_OFST 8 1740 #define MC_CMD_GET_ASSERTS_OUT_V2_GP_REGS_OFFS_LEN 4 1741 #define MC_CMD_GET_ASSERTS_OUT_V2_GP_REGS_OFFS_NUM 31 1742 /* enum: A magic value hinting that the value in this register at the time of 1743 * the failure has likely been lost. 1744 */ 1745 /* MC_CMD_GET_ASSERTS_REG_NO_DATA 0xda7a1057 */ 1746 /* Failing thread address */ 1747 #define MC_CMD_GET_ASSERTS_OUT_V2_THREAD_OFFS_OFST 132 1748 #define MC_CMD_GET_ASSERTS_OUT_V2_THREAD_OFFS_LEN 4 1749 #define MC_CMD_GET_ASSERTS_OUT_V2_RESERVED_OFST 136 1750 #define MC_CMD_GET_ASSERTS_OUT_V2_RESERVED_LEN 4 1751 /* Saved Special Function Registers */ 1752 #define MC_CMD_GET_ASSERTS_OUT_V2_SF_REGS_OFFS_OFST 136 1753 #define MC_CMD_GET_ASSERTS_OUT_V2_SF_REGS_OFFS_LEN 4 1754 #define MC_CMD_GET_ASSERTS_OUT_V2_SF_REGS_OFFS_NUM 26 1755 1756 /* MC_CMD_GET_ASSERTS_OUT_V3 msgresponse: Extended response with asserted 1757 * firmware version information 1758 */ 1759 #define MC_CMD_GET_ASSERTS_OUT_V3_LEN 360 1760 /* Assertion status flag. */ 1761 #define MC_CMD_GET_ASSERTS_OUT_V3_GLOBAL_FLAGS_OFST 0 1762 #define MC_CMD_GET_ASSERTS_OUT_V3_GLOBAL_FLAGS_LEN 4 1763 /* enum: No assertions have failed. */ 1764 /* MC_CMD_GET_ASSERTS_FLAGS_NO_FAILS 0x1 */ 1765 /* enum: A system-level assertion has failed. */ 1766 /* MC_CMD_GET_ASSERTS_FLAGS_SYS_FAIL 0x2 */ 1767 /* enum: A thread-level assertion has failed. */ 1768 /* MC_CMD_GET_ASSERTS_FLAGS_THR_FAIL 0x3 */ 1769 /* enum: The system was reset by the watchdog. */ 1770 /* MC_CMD_GET_ASSERTS_FLAGS_WDOG_FIRED 0x4 */ 1771 /* enum: An illegal address trap stopped the system (huntington and later) */ 1772 /* MC_CMD_GET_ASSERTS_FLAGS_ADDR_TRAP 0x5 */ 1773 /* Failing PC value */ 1774 #define MC_CMD_GET_ASSERTS_OUT_V3_SAVED_PC_OFFS_OFST 4 1775 #define MC_CMD_GET_ASSERTS_OUT_V3_SAVED_PC_OFFS_LEN 4 1776 /* Saved GP regs */ 1777 #define MC_CMD_GET_ASSERTS_OUT_V3_GP_REGS_OFFS_OFST 8 1778 #define MC_CMD_GET_ASSERTS_OUT_V3_GP_REGS_OFFS_LEN 4 1779 #define MC_CMD_GET_ASSERTS_OUT_V3_GP_REGS_OFFS_NUM 31 1780 /* enum: A magic value hinting that the value in this register at the time of 1781 * the failure has likely been lost. 1782 */ 1783 /* MC_CMD_GET_ASSERTS_REG_NO_DATA 0xda7a1057 */ 1784 /* Failing thread address */ 1785 #define MC_CMD_GET_ASSERTS_OUT_V3_THREAD_OFFS_OFST 132 1786 #define MC_CMD_GET_ASSERTS_OUT_V3_THREAD_OFFS_LEN 4 1787 #define MC_CMD_GET_ASSERTS_OUT_V3_RESERVED_OFST 136 1788 #define MC_CMD_GET_ASSERTS_OUT_V3_RESERVED_LEN 4 1789 /* Saved Special Function Registers */ 1790 #define MC_CMD_GET_ASSERTS_OUT_V3_SF_REGS_OFFS_OFST 136 1791 #define MC_CMD_GET_ASSERTS_OUT_V3_SF_REGS_OFFS_LEN 4 1792 #define MC_CMD_GET_ASSERTS_OUT_V3_SF_REGS_OFFS_NUM 26 1793 /* MC firmware unique build ID (as binary SHA-1 value) */ 1794 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_ID_OFST 240 1795 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_ID_LEN 20 1796 /* MC firmware build date (as Unix timestamp) */ 1797 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_OFST 260 1798 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LEN 8 1799 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_OFST 260 1800 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_LEN 4 1801 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_LBN 2080 1802 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_WIDTH 32 1803 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_OFST 264 1804 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_LEN 4 1805 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_LBN 2112 1806 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_WIDTH 32 1807 /* MC firmware version number */ 1808 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_OFST 268 1809 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LEN 8 1810 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_OFST 268 1811 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_LEN 4 1812 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_LBN 2144 1813 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_WIDTH 32 1814 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_OFST 272 1815 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_LEN 4 1816 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_LBN 2176 1817 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_WIDTH 32 1818 /* MC firmware security level */ 1819 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_SECURITY_LEVEL_OFST 276 1820 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_SECURITY_LEVEL_LEN 4 1821 /* MC firmware extra version info (as null-terminated US-ASCII string) */ 1822 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_EXTRA_INFO_OFST 280 1823 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_EXTRA_INFO_LEN 16 1824 /* MC firmware build name (as null-terminated US-ASCII string) */ 1825 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_NAME_OFST 296 1826 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_NAME_LEN 64 1827 1828 1829 /***********************************/ 1830 /* MC_CMD_LOG_CTRL 1831 * Configure the output stream for log events such as link state changes, 1832 * sensor notifications and MCDI completions 1833 */ 1834 #define MC_CMD_LOG_CTRL 0x7 1835 #define MC_CMD_LOG_CTRL_MSGSET 0x7 1836 #undef MC_CMD_0x7_PRIVILEGE_CTG 1837 1838 #define MC_CMD_0x7_PRIVILEGE_CTG SRIOV_CTG_GENERAL 1839 1840 /* MC_CMD_LOG_CTRL_IN msgrequest */ 1841 #define MC_CMD_LOG_CTRL_IN_LEN 8 1842 /* Log destination */ 1843 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_OFST 0 1844 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_LEN 4 1845 /* enum: UART. */ 1846 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_UART 0x1 1847 /* enum: Event queue. */ 1848 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_EVQ 0x2 1849 /* Legacy argument. Must be zero. */ 1850 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_EVQ_OFST 4 1851 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_EVQ_LEN 4 1852 1853 /* MC_CMD_LOG_CTRL_OUT msgresponse */ 1854 #define MC_CMD_LOG_CTRL_OUT_LEN 0 1855 1856 1857 /***********************************/ 1858 /* MC_CMD_GET_VERSION 1859 * Get version information about adapter components. 1860 */ 1861 #define MC_CMD_GET_VERSION 0x8 1862 #define MC_CMD_GET_VERSION_MSGSET 0x8 1863 #undef MC_CMD_0x8_PRIVILEGE_CTG 1864 1865 #define MC_CMD_0x8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 1866 1867 /* MC_CMD_GET_VERSION_IN msgrequest */ 1868 #define MC_CMD_GET_VERSION_IN_LEN 0 1869 1870 /* MC_CMD_GET_VERSION_EXT_IN msgrequest: Asks for the extended version */ 1871 #define MC_CMD_GET_VERSION_EXT_IN_LEN 4 1872 /* placeholder, set to 0 */ 1873 #define MC_CMD_GET_VERSION_EXT_IN_EXT_FLAGS_OFST 0 1874 #define MC_CMD_GET_VERSION_EXT_IN_EXT_FLAGS_LEN 4 1875 1876 /* MC_CMD_GET_VERSION_V0_OUT msgresponse: deprecated version format */ 1877 #define MC_CMD_GET_VERSION_V0_OUT_LEN 4 1878 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 1879 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 1880 /* enum: Reserved version number to indicate "any" version. */ 1881 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_ANY 0xffffffff 1882 /* enum: Bootrom version value for Siena. */ 1883 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_SIENA_BOOTROM 0xb0070000 1884 /* enum: Bootrom version value for Huntington. */ 1885 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_HUNT_BOOTROM 0xb0070001 1886 /* enum: Bootrom version value for Medford2. */ 1887 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_MEDFORD2_BOOTROM 0xb0070002 1888 1889 /* MC_CMD_GET_VERSION_OUT msgresponse */ 1890 #define MC_CMD_GET_VERSION_OUT_LEN 32 1891 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 1892 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 1893 /* Enum values, see field(s): */ 1894 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 1895 #define MC_CMD_GET_VERSION_OUT_PCOL_OFST 4 1896 #define MC_CMD_GET_VERSION_OUT_PCOL_LEN 4 1897 /* 128bit mask of functions supported by the current firmware */ 1898 #define MC_CMD_GET_VERSION_OUT_SUPPORTED_FUNCS_OFST 8 1899 #define MC_CMD_GET_VERSION_OUT_SUPPORTED_FUNCS_LEN 16 1900 #define MC_CMD_GET_VERSION_OUT_VERSION_OFST 24 1901 #define MC_CMD_GET_VERSION_OUT_VERSION_LEN 8 1902 #define MC_CMD_GET_VERSION_OUT_VERSION_LO_OFST 24 1903 #define MC_CMD_GET_VERSION_OUT_VERSION_LO_LEN 4 1904 #define MC_CMD_GET_VERSION_OUT_VERSION_LO_LBN 192 1905 #define MC_CMD_GET_VERSION_OUT_VERSION_LO_WIDTH 32 1906 #define MC_CMD_GET_VERSION_OUT_VERSION_HI_OFST 28 1907 #define MC_CMD_GET_VERSION_OUT_VERSION_HI_LEN 4 1908 #define MC_CMD_GET_VERSION_OUT_VERSION_HI_LBN 224 1909 #define MC_CMD_GET_VERSION_OUT_VERSION_HI_WIDTH 32 1910 1911 /* MC_CMD_GET_VERSION_EXT_OUT msgresponse */ 1912 #define MC_CMD_GET_VERSION_EXT_OUT_LEN 48 1913 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 1914 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 1915 /* Enum values, see field(s): */ 1916 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 1917 #define MC_CMD_GET_VERSION_EXT_OUT_PCOL_OFST 4 1918 #define MC_CMD_GET_VERSION_EXT_OUT_PCOL_LEN 4 1919 /* 128bit mask of functions supported by the current firmware */ 1920 #define MC_CMD_GET_VERSION_EXT_OUT_SUPPORTED_FUNCS_OFST 8 1921 #define MC_CMD_GET_VERSION_EXT_OUT_SUPPORTED_FUNCS_LEN 16 1922 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_OFST 24 1923 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LEN 8 1924 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_OFST 24 1925 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_LEN 4 1926 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_LBN 192 1927 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_WIDTH 32 1928 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_OFST 28 1929 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_LEN 4 1930 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_LBN 224 1931 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_WIDTH 32 1932 /* extra info */ 1933 #define MC_CMD_GET_VERSION_EXT_OUT_EXTRA_OFST 32 1934 #define MC_CMD_GET_VERSION_EXT_OUT_EXTRA_LEN 16 1935 1936 /* MC_CMD_GET_VERSION_V2_OUT msgresponse: Extended response providing version 1937 * information for all adapter components. For Riverhead based designs, base MC 1938 * firmware version fields refer to NMC firmware, while CMC firmware data is in 1939 * dedicated CMC fields. Flags indicate which data is present in the response 1940 * (depending on which components exist on a particular adapter) 1941 */ 1942 #define MC_CMD_GET_VERSION_V2_OUT_LEN 304 1943 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 1944 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 1945 /* Enum values, see field(s): */ 1946 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 1947 #define MC_CMD_GET_VERSION_V2_OUT_PCOL_OFST 4 1948 #define MC_CMD_GET_VERSION_V2_OUT_PCOL_LEN 4 1949 /* 128bit mask of functions supported by the current firmware */ 1950 #define MC_CMD_GET_VERSION_V2_OUT_SUPPORTED_FUNCS_OFST 8 1951 #define MC_CMD_GET_VERSION_V2_OUT_SUPPORTED_FUNCS_LEN 16 1952 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_OFST 24 1953 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LEN 8 1954 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_OFST 24 1955 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_LEN 4 1956 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_LBN 192 1957 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_WIDTH 32 1958 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_OFST 28 1959 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_LEN 4 1960 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_LBN 224 1961 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_WIDTH 32 1962 /* extra info */ 1963 #define MC_CMD_GET_VERSION_V2_OUT_EXTRA_OFST 32 1964 #define MC_CMD_GET_VERSION_V2_OUT_EXTRA_LEN 16 1965 /* Flags indicating which extended fields are valid */ 1966 #define MC_CMD_GET_VERSION_V2_OUT_FLAGS_OFST 48 1967 #define MC_CMD_GET_VERSION_V2_OUT_FLAGS_LEN 4 1968 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_EXT_INFO_PRESENT_OFST 48 1969 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_EXT_INFO_PRESENT_LBN 0 1970 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1 1971 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_EXT_INFO_PRESENT_OFST 48 1972 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1 1973 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1 1974 #define MC_CMD_GET_VERSION_V2_OUT_CMC_EXT_INFO_PRESENT_OFST 48 1975 #define MC_CMD_GET_VERSION_V2_OUT_CMC_EXT_INFO_PRESENT_LBN 2 1976 #define MC_CMD_GET_VERSION_V2_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1 1977 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXT_INFO_PRESENT_OFST 48 1978 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXT_INFO_PRESENT_LBN 3 1979 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1 1980 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 1981 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 1982 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 1983 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_HW_VERSION_PRESENT_OFST 48 1984 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_HW_VERSION_PRESENT_LBN 5 1985 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1 1986 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_FW_VERSION_PRESENT_OFST 48 1987 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_FW_VERSION_PRESENT_LBN 6 1988 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1 1989 #define MC_CMD_GET_VERSION_V2_OUT_SOC_BOOT_VERSION_PRESENT_OFST 48 1990 #define MC_CMD_GET_VERSION_V2_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7 1991 #define MC_CMD_GET_VERSION_V2_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1 1992 #define MC_CMD_GET_VERSION_V2_OUT_SOC_UBOOT_VERSION_PRESENT_OFST 48 1993 #define MC_CMD_GET_VERSION_V2_OUT_SOC_UBOOT_VERSION_PRESENT_LBN 8 1994 #define MC_CMD_GET_VERSION_V2_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1 1995 #define MC_CMD_GET_VERSION_V2_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_OFST 48 1996 #define MC_CMD_GET_VERSION_V2_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_LBN 9 1997 #define MC_CMD_GET_VERSION_V2_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1 1998 #define MC_CMD_GET_VERSION_V2_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_OFST 48 1999 #define MC_CMD_GET_VERSION_V2_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_LBN 10 2000 #define MC_CMD_GET_VERSION_V2_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1 2001 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_PRESENT_OFST 48 2002 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_PRESENT_LBN 11 2003 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_PRESENT_WIDTH 1 2004 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_VERSION_PRESENT_OFST 48 2005 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_VERSION_PRESENT_LBN 12 2006 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_VERSION_PRESENT_WIDTH 1 2007 #define MC_CMD_GET_VERSION_V2_OUT_BUNDLE_VERSION_PRESENT_OFST 48 2008 #define MC_CMD_GET_VERSION_V2_OUT_BUNDLE_VERSION_PRESENT_LBN 13 2009 #define MC_CMD_GET_VERSION_V2_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1 2010 /* MC firmware unique build ID (as binary SHA-1 value) */ 2011 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_ID_OFST 52 2012 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_ID_LEN 20 2013 /* MC firmware security level */ 2014 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_SECURITY_LEVEL_OFST 72 2015 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_SECURITY_LEVEL_LEN 4 2016 /* MC firmware build name (as null-terminated US-ASCII string) */ 2017 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_NAME_OFST 76 2018 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_NAME_LEN 64 2019 /* The SUC firmware version as four numbers - a.b.c.d */ 2020 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_OFST 140 2021 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_LEN 4 2022 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_NUM 4 2023 /* SUC firmware build date (as 64-bit Unix timestamp) */ 2024 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_OFST 156 2025 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LEN 8 2026 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_OFST 156 2027 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_LEN 4 2028 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_LBN 1248 2029 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_WIDTH 32 2030 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_OFST 160 2031 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_LEN 4 2032 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_LBN 1280 2033 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_WIDTH 32 2034 /* The ID of the SUC chip. This is specific to the platform but typically 2035 * indicates family, memory sizes etc. See SF-116728-SW for further details. 2036 */ 2037 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_CHIP_ID_OFST 164 2038 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_CHIP_ID_LEN 4 2039 /* The CMC firmware version as four numbers - a.b.c.d */ 2040 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_VERSION_OFST 168 2041 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_VERSION_LEN 4 2042 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_VERSION_NUM 4 2043 /* CMC firmware build date (as 64-bit Unix timestamp) */ 2044 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_OFST 184 2045 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LEN 8 2046 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_OFST 184 2047 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_LEN 4 2048 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_LBN 1472 2049 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_WIDTH 32 2050 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_OFST 188 2051 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_LEN 4 2052 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_LBN 1504 2053 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_WIDTH 32 2054 /* FPGA version as three numbers. On Riverhead based systems this field uses 2055 * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 2056 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 2057 * => B, ...) FPGA_VERSION[2]: Sub-revision number 2058 */ 2059 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_VERSION_OFST 192 2060 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_VERSION_LEN 4 2061 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_VERSION_NUM 3 2062 /* Extra FPGA revision information (as null-terminated US-ASCII string) */ 2063 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXTRA_OFST 204 2064 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXTRA_LEN 16 2065 /* Board name / adapter model (as null-terminated US-ASCII string) */ 2066 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_NAME_OFST 220 2067 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_NAME_LEN 16 2068 /* Board revision number */ 2069 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_REVISION_OFST 236 2070 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_REVISION_LEN 4 2071 /* Board serial number (as null-terminated US-ASCII string) */ 2072 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_SERIAL_OFST 240 2073 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_SERIAL_LEN 64 2074 2075 /* MC_CMD_GET_VERSION_V3_OUT msgresponse: Extended response providing version 2076 * information for all adapter components. For Riverhead based designs, base MC 2077 * firmware version fields refer to NMC firmware, while CMC firmware data is in 2078 * dedicated CMC fields. Flags indicate which data is present in the response 2079 * (depending on which components exist on a particular adapter) 2080 */ 2081 #define MC_CMD_GET_VERSION_V3_OUT_LEN 328 2082 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 2083 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 2084 /* Enum values, see field(s): */ 2085 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 2086 #define MC_CMD_GET_VERSION_V3_OUT_PCOL_OFST 4 2087 #define MC_CMD_GET_VERSION_V3_OUT_PCOL_LEN 4 2088 /* 128bit mask of functions supported by the current firmware */ 2089 #define MC_CMD_GET_VERSION_V3_OUT_SUPPORTED_FUNCS_OFST 8 2090 #define MC_CMD_GET_VERSION_V3_OUT_SUPPORTED_FUNCS_LEN 16 2091 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_OFST 24 2092 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LEN 8 2093 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_OFST 24 2094 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_LEN 4 2095 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_LBN 192 2096 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_WIDTH 32 2097 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_OFST 28 2098 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_LEN 4 2099 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_LBN 224 2100 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_WIDTH 32 2101 /* extra info */ 2102 #define MC_CMD_GET_VERSION_V3_OUT_EXTRA_OFST 32 2103 #define MC_CMD_GET_VERSION_V3_OUT_EXTRA_LEN 16 2104 /* Flags indicating which extended fields are valid */ 2105 #define MC_CMD_GET_VERSION_V3_OUT_FLAGS_OFST 48 2106 #define MC_CMD_GET_VERSION_V3_OUT_FLAGS_LEN 4 2107 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_EXT_INFO_PRESENT_OFST 48 2108 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_EXT_INFO_PRESENT_LBN 0 2109 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1 2110 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_EXT_INFO_PRESENT_OFST 48 2111 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1 2112 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1 2113 #define MC_CMD_GET_VERSION_V3_OUT_CMC_EXT_INFO_PRESENT_OFST 48 2114 #define MC_CMD_GET_VERSION_V3_OUT_CMC_EXT_INFO_PRESENT_LBN 2 2115 #define MC_CMD_GET_VERSION_V3_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1 2116 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXT_INFO_PRESENT_OFST 48 2117 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXT_INFO_PRESENT_LBN 3 2118 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1 2119 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 2120 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 2121 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 2122 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_PRESENT_OFST 48 2123 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_PRESENT_LBN 5 2124 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1 2125 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_PRESENT_OFST 48 2126 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_PRESENT_LBN 6 2127 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1 2128 #define MC_CMD_GET_VERSION_V3_OUT_SOC_BOOT_VERSION_PRESENT_OFST 48 2129 #define MC_CMD_GET_VERSION_V3_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7 2130 #define MC_CMD_GET_VERSION_V3_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1 2131 #define MC_CMD_GET_VERSION_V3_OUT_SOC_UBOOT_VERSION_PRESENT_OFST 48 2132 #define MC_CMD_GET_VERSION_V3_OUT_SOC_UBOOT_VERSION_PRESENT_LBN 8 2133 #define MC_CMD_GET_VERSION_V3_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1 2134 #define MC_CMD_GET_VERSION_V3_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_OFST 48 2135 #define MC_CMD_GET_VERSION_V3_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_LBN 9 2136 #define MC_CMD_GET_VERSION_V3_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1 2137 #define MC_CMD_GET_VERSION_V3_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_OFST 48 2138 #define MC_CMD_GET_VERSION_V3_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_LBN 10 2139 #define MC_CMD_GET_VERSION_V3_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1 2140 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_PRESENT_OFST 48 2141 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_PRESENT_LBN 11 2142 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_PRESENT_WIDTH 1 2143 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_VERSION_PRESENT_OFST 48 2144 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_VERSION_PRESENT_LBN 12 2145 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_VERSION_PRESENT_WIDTH 1 2146 #define MC_CMD_GET_VERSION_V3_OUT_BUNDLE_VERSION_PRESENT_OFST 48 2147 #define MC_CMD_GET_VERSION_V3_OUT_BUNDLE_VERSION_PRESENT_LBN 13 2148 #define MC_CMD_GET_VERSION_V3_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1 2149 /* MC firmware unique build ID (as binary SHA-1 value) */ 2150 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_BUILD_ID_OFST 52 2151 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_BUILD_ID_LEN 20 2152 /* MC firmware security level */ 2153 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_SECURITY_LEVEL_OFST 72 2154 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_SECURITY_LEVEL_LEN 4 2155 /* MC firmware build name (as null-terminated US-ASCII string) */ 2156 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_BUILD_NAME_OFST 76 2157 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_BUILD_NAME_LEN 64 2158 /* The SUC firmware version as four numbers - a.b.c.d */ 2159 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_OFST 140 2160 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_LEN 4 2161 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_NUM 4 2162 /* SUC firmware build date (as 64-bit Unix timestamp) */ 2163 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_OFST 156 2164 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LEN 8 2165 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_OFST 156 2166 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_LEN 4 2167 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_LBN 1248 2168 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_WIDTH 32 2169 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_OFST 160 2170 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_LEN 4 2171 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_LBN 1280 2172 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_WIDTH 32 2173 /* The ID of the SUC chip. This is specific to the platform but typically 2174 * indicates family, memory sizes etc. See SF-116728-SW for further details. 2175 */ 2176 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_CHIP_ID_OFST 164 2177 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_CHIP_ID_LEN 4 2178 /* The CMC firmware version as four numbers - a.b.c.d */ 2179 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_VERSION_OFST 168 2180 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_VERSION_LEN 4 2181 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_VERSION_NUM 4 2182 /* CMC firmware build date (as 64-bit Unix timestamp) */ 2183 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_OFST 184 2184 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LEN 8 2185 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_OFST 184 2186 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_LEN 4 2187 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_LBN 1472 2188 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_WIDTH 32 2189 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_OFST 188 2190 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_LEN 4 2191 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_LBN 1504 2192 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_WIDTH 32 2193 /* FPGA version as three numbers. On Riverhead based systems this field uses 2194 * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 2195 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 2196 * => B, ...) FPGA_VERSION[2]: Sub-revision number 2197 */ 2198 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_VERSION_OFST 192 2199 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_VERSION_LEN 4 2200 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_VERSION_NUM 3 2201 /* Extra FPGA revision information (as null-terminated US-ASCII string) */ 2202 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXTRA_OFST 204 2203 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXTRA_LEN 16 2204 /* Board name / adapter model (as null-terminated US-ASCII string) */ 2205 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_NAME_OFST 220 2206 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_NAME_LEN 16 2207 /* Board revision number */ 2208 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_REVISION_OFST 236 2209 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_REVISION_LEN 4 2210 /* Board serial number (as null-terminated US-ASCII string) */ 2211 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_SERIAL_OFST 240 2212 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_SERIAL_LEN 64 2213 /* The version of the datapath hardware design as three number - a.b.c */ 2214 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_OFST 304 2215 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_LEN 4 2216 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_NUM 3 2217 /* The version of the firmware library used to control the datapath as three 2218 * number - a.b.c 2219 */ 2220 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_OFST 316 2221 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_LEN 4 2222 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_NUM 3 2223 2224 /* MC_CMD_GET_VERSION_V4_OUT msgresponse: Extended response providing SoC 2225 * version information 2226 */ 2227 #define MC_CMD_GET_VERSION_V4_OUT_LEN 392 2228 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 2229 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 2230 /* Enum values, see field(s): */ 2231 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 2232 #define MC_CMD_GET_VERSION_V4_OUT_PCOL_OFST 4 2233 #define MC_CMD_GET_VERSION_V4_OUT_PCOL_LEN 4 2234 /* 128bit mask of functions supported by the current firmware */ 2235 #define MC_CMD_GET_VERSION_V4_OUT_SUPPORTED_FUNCS_OFST 8 2236 #define MC_CMD_GET_VERSION_V4_OUT_SUPPORTED_FUNCS_LEN 16 2237 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_OFST 24 2238 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LEN 8 2239 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_OFST 24 2240 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_LEN 4 2241 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_LBN 192 2242 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_WIDTH 32 2243 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_OFST 28 2244 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_LEN 4 2245 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_LBN 224 2246 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_WIDTH 32 2247 /* extra info */ 2248 #define MC_CMD_GET_VERSION_V4_OUT_EXTRA_OFST 32 2249 #define MC_CMD_GET_VERSION_V4_OUT_EXTRA_LEN 16 2250 /* Flags indicating which extended fields are valid */ 2251 #define MC_CMD_GET_VERSION_V4_OUT_FLAGS_OFST 48 2252 #define MC_CMD_GET_VERSION_V4_OUT_FLAGS_LEN 4 2253 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_EXT_INFO_PRESENT_OFST 48 2254 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_EXT_INFO_PRESENT_LBN 0 2255 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1 2256 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_EXT_INFO_PRESENT_OFST 48 2257 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1 2258 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1 2259 #define MC_CMD_GET_VERSION_V4_OUT_CMC_EXT_INFO_PRESENT_OFST 48 2260 #define MC_CMD_GET_VERSION_V4_OUT_CMC_EXT_INFO_PRESENT_LBN 2 2261 #define MC_CMD_GET_VERSION_V4_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1 2262 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXT_INFO_PRESENT_OFST 48 2263 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXT_INFO_PRESENT_LBN 3 2264 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1 2265 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 2266 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 2267 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 2268 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_PRESENT_OFST 48 2269 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_PRESENT_LBN 5 2270 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1 2271 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_PRESENT_OFST 48 2272 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_PRESENT_LBN 6 2273 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1 2274 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_PRESENT_OFST 48 2275 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7 2276 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1 2277 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_PRESENT_OFST 48 2278 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_PRESENT_LBN 8 2279 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1 2280 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_OFST 48 2281 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_LBN 9 2282 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1 2283 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_OFST 48 2284 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_LBN 10 2285 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1 2286 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_PRESENT_OFST 48 2287 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_PRESENT_LBN 11 2288 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_PRESENT_WIDTH 1 2289 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_VERSION_PRESENT_OFST 48 2290 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_VERSION_PRESENT_LBN 12 2291 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_VERSION_PRESENT_WIDTH 1 2292 #define MC_CMD_GET_VERSION_V4_OUT_BUNDLE_VERSION_PRESENT_OFST 48 2293 #define MC_CMD_GET_VERSION_V4_OUT_BUNDLE_VERSION_PRESENT_LBN 13 2294 #define MC_CMD_GET_VERSION_V4_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1 2295 /* MC firmware unique build ID (as binary SHA-1 value) */ 2296 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_BUILD_ID_OFST 52 2297 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_BUILD_ID_LEN 20 2298 /* MC firmware security level */ 2299 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_SECURITY_LEVEL_OFST 72 2300 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_SECURITY_LEVEL_LEN 4 2301 /* MC firmware build name (as null-terminated US-ASCII string) */ 2302 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_BUILD_NAME_OFST 76 2303 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_BUILD_NAME_LEN 64 2304 /* The SUC firmware version as four numbers - a.b.c.d */ 2305 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_OFST 140 2306 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_LEN 4 2307 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_NUM 4 2308 /* SUC firmware build date (as 64-bit Unix timestamp) */ 2309 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_OFST 156 2310 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LEN 8 2311 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_OFST 156 2312 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_LEN 4 2313 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_LBN 1248 2314 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_WIDTH 32 2315 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_OFST 160 2316 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_LEN 4 2317 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_LBN 1280 2318 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_WIDTH 32 2319 /* The ID of the SUC chip. This is specific to the platform but typically 2320 * indicates family, memory sizes etc. See SF-116728-SW for further details. 2321 */ 2322 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_CHIP_ID_OFST 164 2323 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_CHIP_ID_LEN 4 2324 /* The CMC firmware version as four numbers - a.b.c.d */ 2325 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_VERSION_OFST 168 2326 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_VERSION_LEN 4 2327 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_VERSION_NUM 4 2328 /* CMC firmware build date (as 64-bit Unix timestamp) */ 2329 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_OFST 184 2330 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LEN 8 2331 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_OFST 184 2332 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_LEN 4 2333 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_LBN 1472 2334 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_WIDTH 32 2335 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_OFST 188 2336 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_LEN 4 2337 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_LBN 1504 2338 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_WIDTH 32 2339 /* FPGA version as three numbers. On Riverhead based systems this field uses 2340 * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 2341 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 2342 * => B, ...) FPGA_VERSION[2]: Sub-revision number 2343 */ 2344 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_VERSION_OFST 192 2345 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_VERSION_LEN 4 2346 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_VERSION_NUM 3 2347 /* Extra FPGA revision information (as null-terminated US-ASCII string) */ 2348 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXTRA_OFST 204 2349 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXTRA_LEN 16 2350 /* Board name / adapter model (as null-terminated US-ASCII string) */ 2351 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_NAME_OFST 220 2352 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_NAME_LEN 16 2353 /* Board revision number */ 2354 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_REVISION_OFST 236 2355 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_REVISION_LEN 4 2356 /* Board serial number (as null-terminated US-ASCII string) */ 2357 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_SERIAL_OFST 240 2358 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_SERIAL_LEN 64 2359 /* The version of the datapath hardware design as three number - a.b.c */ 2360 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_OFST 304 2361 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_LEN 4 2362 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_NUM 3 2363 /* The version of the firmware library used to control the datapath as three 2364 * number - a.b.c 2365 */ 2366 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_OFST 316 2367 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_LEN 4 2368 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_NUM 3 2369 /* The SOC boot version as four numbers - a.b.c.d */ 2370 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_OFST 328 2371 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_LEN 4 2372 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_NUM 4 2373 /* The SOC uboot version as four numbers - a.b.c.d */ 2374 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_OFST 344 2375 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_LEN 4 2376 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_NUM 4 2377 /* The SOC main rootfs version as four numbers - a.b.c.d */ 2378 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_OFST 360 2379 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_LEN 4 2380 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_NUM 4 2381 /* The SOC recovery buildroot version as four numbers - a.b.c.d */ 2382 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_OFST 376 2383 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_LEN 4 2384 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_NUM 4 2385 2386 /* MC_CMD_GET_VERSION_V5_OUT msgresponse: Extended response providing bundle 2387 * and board version information 2388 */ 2389 #define MC_CMD_GET_VERSION_V5_OUT_LEN 424 2390 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 2391 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 2392 /* Enum values, see field(s): */ 2393 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 2394 #define MC_CMD_GET_VERSION_V5_OUT_PCOL_OFST 4 2395 #define MC_CMD_GET_VERSION_V5_OUT_PCOL_LEN 4 2396 /* 128bit mask of functions supported by the current firmware */ 2397 #define MC_CMD_GET_VERSION_V5_OUT_SUPPORTED_FUNCS_OFST 8 2398 #define MC_CMD_GET_VERSION_V5_OUT_SUPPORTED_FUNCS_LEN 16 2399 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_OFST 24 2400 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LEN 8 2401 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_OFST 24 2402 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_LEN 4 2403 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_LBN 192 2404 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_WIDTH 32 2405 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_OFST 28 2406 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_LEN 4 2407 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_LBN 224 2408 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_WIDTH 32 2409 /* extra info */ 2410 #define MC_CMD_GET_VERSION_V5_OUT_EXTRA_OFST 32 2411 #define MC_CMD_GET_VERSION_V5_OUT_EXTRA_LEN 16 2412 /* Flags indicating which extended fields are valid */ 2413 #define MC_CMD_GET_VERSION_V5_OUT_FLAGS_OFST 48 2414 #define MC_CMD_GET_VERSION_V5_OUT_FLAGS_LEN 4 2415 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_EXT_INFO_PRESENT_OFST 48 2416 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_EXT_INFO_PRESENT_LBN 0 2417 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1 2418 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_EXT_INFO_PRESENT_OFST 48 2419 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1 2420 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1 2421 #define MC_CMD_GET_VERSION_V5_OUT_CMC_EXT_INFO_PRESENT_OFST 48 2422 #define MC_CMD_GET_VERSION_V5_OUT_CMC_EXT_INFO_PRESENT_LBN 2 2423 #define MC_CMD_GET_VERSION_V5_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1 2424 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXT_INFO_PRESENT_OFST 48 2425 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXT_INFO_PRESENT_LBN 3 2426 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1 2427 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 2428 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 2429 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 2430 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_PRESENT_OFST 48 2431 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_PRESENT_LBN 5 2432 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1 2433 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_PRESENT_OFST 48 2434 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_PRESENT_LBN 6 2435 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1 2436 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_PRESENT_OFST 48 2437 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7 2438 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1 2439 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_PRESENT_OFST 48 2440 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_PRESENT_LBN 8 2441 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1 2442 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_OFST 48 2443 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_LBN 9 2444 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1 2445 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_OFST 48 2446 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_LBN 10 2447 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1 2448 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_PRESENT_OFST 48 2449 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_PRESENT_LBN 11 2450 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_PRESENT_WIDTH 1 2451 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_PRESENT_OFST 48 2452 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_PRESENT_LBN 12 2453 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_PRESENT_WIDTH 1 2454 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_PRESENT_OFST 48 2455 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_PRESENT_LBN 13 2456 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1 2457 /* MC firmware unique build ID (as binary SHA-1 value) */ 2458 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_BUILD_ID_OFST 52 2459 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_BUILD_ID_LEN 20 2460 /* MC firmware security level */ 2461 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_SECURITY_LEVEL_OFST 72 2462 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_SECURITY_LEVEL_LEN 4 2463 /* MC firmware build name (as null-terminated US-ASCII string) */ 2464 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_BUILD_NAME_OFST 76 2465 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_BUILD_NAME_LEN 64 2466 /* The SUC firmware version as four numbers - a.b.c.d */ 2467 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_OFST 140 2468 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_LEN 4 2469 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_NUM 4 2470 /* SUC firmware build date (as 64-bit Unix timestamp) */ 2471 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_OFST 156 2472 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LEN 8 2473 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_OFST 156 2474 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_LEN 4 2475 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_LBN 1248 2476 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_WIDTH 32 2477 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_OFST 160 2478 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_LEN 4 2479 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_LBN 1280 2480 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_WIDTH 32 2481 /* The ID of the SUC chip. This is specific to the platform but typically 2482 * indicates family, memory sizes etc. See SF-116728-SW for further details. 2483 */ 2484 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_CHIP_ID_OFST 164 2485 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_CHIP_ID_LEN 4 2486 /* The CMC firmware version as four numbers - a.b.c.d */ 2487 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_VERSION_OFST 168 2488 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_VERSION_LEN 4 2489 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_VERSION_NUM 4 2490 /* CMC firmware build date (as 64-bit Unix timestamp) */ 2491 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_OFST 184 2492 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LEN 8 2493 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_OFST 184 2494 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_LEN 4 2495 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_LBN 1472 2496 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_WIDTH 32 2497 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_OFST 188 2498 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_LEN 4 2499 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_LBN 1504 2500 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_WIDTH 32 2501 /* FPGA version as three numbers. On Riverhead based systems this field uses 2502 * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 2503 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 2504 * => B, ...) FPGA_VERSION[2]: Sub-revision number 2505 */ 2506 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_VERSION_OFST 192 2507 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_VERSION_LEN 4 2508 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_VERSION_NUM 3 2509 /* Extra FPGA revision information (as null-terminated US-ASCII string) */ 2510 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXTRA_OFST 204 2511 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXTRA_LEN 16 2512 /* Board name / adapter model (as null-terminated US-ASCII string) */ 2513 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_NAME_OFST 220 2514 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_NAME_LEN 16 2515 /* Board revision number */ 2516 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_REVISION_OFST 236 2517 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_REVISION_LEN 4 2518 /* Board serial number (as null-terminated US-ASCII string) */ 2519 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_SERIAL_OFST 240 2520 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_SERIAL_LEN 64 2521 /* The version of the datapath hardware design as three number - a.b.c */ 2522 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_OFST 304 2523 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_LEN 4 2524 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_NUM 3 2525 /* The version of the firmware library used to control the datapath as three 2526 * number - a.b.c 2527 */ 2528 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_OFST 316 2529 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_LEN 4 2530 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_NUM 3 2531 /* The SOC boot version as four numbers - a.b.c.d */ 2532 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_OFST 328 2533 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_LEN 4 2534 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_NUM 4 2535 /* The SOC uboot version as four numbers - a.b.c.d */ 2536 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_OFST 344 2537 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_LEN 4 2538 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_NUM 4 2539 /* The SOC main rootfs version as four numbers - a.b.c.d */ 2540 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_OFST 360 2541 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_LEN 4 2542 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_NUM 4 2543 /* The SOC recovery buildroot version as four numbers - a.b.c.d */ 2544 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_OFST 376 2545 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_LEN 4 2546 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_NUM 4 2547 /* Board version as four numbers - a.b.c.d. BOARD_VERSION[0] duplicates the 2548 * BOARD_REVISION field 2549 */ 2550 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_OFST 392 2551 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_LEN 4 2552 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_NUM 4 2553 /* Bundle version as four numbers - a.b.c.d */ 2554 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_OFST 408 2555 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_LEN 4 2556 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_NUM 4 2557 2558 2559 /***********************************/ 2560 /* MC_CMD_PTP 2561 * Perform PTP operation 2562 */ 2563 #define MC_CMD_PTP 0xb 2564 #define MC_CMD_PTP_MSGSET 0xb 2565 #undef MC_CMD_0xb_PRIVILEGE_CTG 2566 2567 #define MC_CMD_0xb_PRIVILEGE_CTG SRIOV_CTG_GENERAL 2568 2569 /* MC_CMD_PTP_IN msgrequest */ 2570 #define MC_CMD_PTP_IN_LEN 1 2571 /* PTP operation code */ 2572 #define MC_CMD_PTP_IN_OP_OFST 0 2573 #define MC_CMD_PTP_IN_OP_LEN 1 2574 /* enum: Enable PTP packet timestamping operation. */ 2575 #define MC_CMD_PTP_OP_ENABLE 0x1 2576 /* enum: Disable PTP packet timestamping operation. */ 2577 #define MC_CMD_PTP_OP_DISABLE 0x2 2578 /* enum: Send a PTP packet. This operation is used on Siena and Huntington. 2579 * From Medford onwards it is not supported: on those platforms PTP transmit 2580 * timestamping is done using the fast path. 2581 */ 2582 #define MC_CMD_PTP_OP_TRANSMIT 0x3 2583 /* enum: Read the current NIC time. */ 2584 #define MC_CMD_PTP_OP_READ_NIC_TIME 0x4 2585 /* enum: Get the current PTP status. Note that the clock frequency returned (in 2586 * Hz) is rounded to the nearest MHz (e.g. 666000000 for 666666666). 2587 */ 2588 #define MC_CMD_PTP_OP_STATUS 0x5 2589 /* enum: Adjust the PTP NIC's time. */ 2590 #define MC_CMD_PTP_OP_ADJUST 0x6 2591 /* enum: Synchronize host and NIC time. */ 2592 #define MC_CMD_PTP_OP_SYNCHRONIZE 0x7 2593 /* enum: Basic manufacturing tests. Siena PTP adapters only. */ 2594 #define MC_CMD_PTP_OP_MANFTEST_BASIC 0x8 2595 /* enum: Packet based manufacturing tests. Siena PTP adapters only. */ 2596 #define MC_CMD_PTP_OP_MANFTEST_PACKET 0x9 2597 /* enum: Reset some of the PTP related statistics */ 2598 #define MC_CMD_PTP_OP_RESET_STATS 0xa 2599 /* enum: Debug operations to MC. */ 2600 #define MC_CMD_PTP_OP_DEBUG 0xb 2601 /* enum: Read an FPGA register. Siena PTP adapters only. */ 2602 #define MC_CMD_PTP_OP_FPGAREAD 0xc 2603 /* enum: Write an FPGA register. Siena PTP adapters only. */ 2604 #define MC_CMD_PTP_OP_FPGAWRITE 0xd 2605 /* enum: Apply an offset to the NIC clock */ 2606 #define MC_CMD_PTP_OP_CLOCK_OFFSET_ADJUST 0xe 2607 /* enum: Change the frequency correction applied to the NIC clock */ 2608 #define MC_CMD_PTP_OP_CLOCK_FREQ_ADJUST 0xf 2609 /* enum: Set the MC packet filter VLAN tags for received PTP packets. 2610 * Deprecated for Huntington onwards. 2611 */ 2612 #define MC_CMD_PTP_OP_RX_SET_VLAN_FILTER 0x10 2613 /* enum: Set the MC packet filter UUID for received PTP packets. Deprecated for 2614 * Huntington onwards. 2615 */ 2616 #define MC_CMD_PTP_OP_RX_SET_UUID_FILTER 0x11 2617 /* enum: Set the MC packet filter Domain for received PTP packets. Deprecated 2618 * for Huntington onwards. 2619 */ 2620 #define MC_CMD_PTP_OP_RX_SET_DOMAIN_FILTER 0x12 2621 /* enum: Set the clock source. Required for snapper tests on Huntington and 2622 * Medford. Not implemented for Siena or Medford2. 2623 */ 2624 #define MC_CMD_PTP_OP_SET_CLK_SRC 0x13 2625 /* enum: Reset value of Timer Reg. Not implemented. */ 2626 #define MC_CMD_PTP_OP_RST_CLK 0x14 2627 /* enum: Enable the forwarding of PPS events to the host */ 2628 #define MC_CMD_PTP_OP_PPS_ENABLE 0x15 2629 /* enum: Get the time format used by this NIC for PTP operations */ 2630 #define MC_CMD_PTP_OP_GET_TIME_FORMAT 0x16 2631 /* enum: Get the clock attributes. NOTE- extended version of 2632 * MC_CMD_PTP_OP_GET_TIME_FORMAT 2633 */ 2634 #define MC_CMD_PTP_OP_GET_ATTRIBUTES 0x16 2635 /* enum: Get corrections that should be applied to the various different 2636 * timestamps 2637 */ 2638 #define MC_CMD_PTP_OP_GET_TIMESTAMP_CORRECTIONS 0x17 2639 /* enum: Subscribe to receive periodic time events indicating the current NIC 2640 * time 2641 */ 2642 #define MC_CMD_PTP_OP_TIME_EVENT_SUBSCRIBE 0x18 2643 /* enum: Unsubscribe to stop receiving time events */ 2644 #define MC_CMD_PTP_OP_TIME_EVENT_UNSUBSCRIBE 0x19 2645 /* enum: PPS based manfacturing tests. Requires PPS output to be looped to PPS 2646 * input on the same NIC. Siena PTP adapters only. 2647 */ 2648 #define MC_CMD_PTP_OP_MANFTEST_PPS 0x1a 2649 /* enum: Set the PTP sync status. Status is used by firmware to report to event 2650 * subscribers. 2651 */ 2652 #define MC_CMD_PTP_OP_SET_SYNC_STATUS 0x1b 2653 /* enum: Above this for future use. */ 2654 #define MC_CMD_PTP_OP_MAX 0x1c 2655 2656 /* MC_CMD_PTP_IN_ENABLE msgrequest */ 2657 #define MC_CMD_PTP_IN_ENABLE_LEN 16 2658 #define MC_CMD_PTP_IN_CMD_OFST 0 2659 #define MC_CMD_PTP_IN_CMD_LEN 4 2660 #define MC_CMD_PTP_IN_PERIPH_ID_OFST 4 2661 #define MC_CMD_PTP_IN_PERIPH_ID_LEN 4 2662 /* Not used. Events are always sent to function relative queue 0. */ 2663 #define MC_CMD_PTP_IN_ENABLE_QUEUE_OFST 8 2664 #define MC_CMD_PTP_IN_ENABLE_QUEUE_LEN 4 2665 /* PTP timestamping mode. Not used from Huntington onwards. */ 2666 #define MC_CMD_PTP_IN_ENABLE_MODE_OFST 12 2667 #define MC_CMD_PTP_IN_ENABLE_MODE_LEN 4 2668 /* enum: PTP, version 1 */ 2669 #define MC_CMD_PTP_MODE_V1 0x0 2670 /* enum: PTP, version 1, with VLAN headers - deprecated */ 2671 #define MC_CMD_PTP_MODE_V1_VLAN 0x1 2672 /* enum: PTP, version 2 */ 2673 #define MC_CMD_PTP_MODE_V2 0x2 2674 /* enum: PTP, version 2, with VLAN headers - deprecated */ 2675 #define MC_CMD_PTP_MODE_V2_VLAN 0x3 2676 /* enum: PTP, version 2, with improved UUID filtering */ 2677 #define MC_CMD_PTP_MODE_V2_ENHANCED 0x4 2678 /* enum: FCoE (seconds and microseconds) */ 2679 #define MC_CMD_PTP_MODE_FCOE 0x5 2680 2681 /* MC_CMD_PTP_IN_DISABLE msgrequest */ 2682 #define MC_CMD_PTP_IN_DISABLE_LEN 8 2683 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2684 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2685 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2686 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2687 2688 /* MC_CMD_PTP_IN_TRANSMIT msgrequest */ 2689 #define MC_CMD_PTP_IN_TRANSMIT_LENMIN 13 2690 #define MC_CMD_PTP_IN_TRANSMIT_LENMAX 252 2691 #define MC_CMD_PTP_IN_TRANSMIT_LENMAX_MCDI2 1020 2692 #define MC_CMD_PTP_IN_TRANSMIT_LEN(num) (12+1*(num)) 2693 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_NUM(len) (((len)-12)/1) 2694 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2695 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2696 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2697 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2698 /* Transmit packet length */ 2699 #define MC_CMD_PTP_IN_TRANSMIT_LENGTH_OFST 8 2700 #define MC_CMD_PTP_IN_TRANSMIT_LENGTH_LEN 4 2701 /* Transmit packet data */ 2702 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_OFST 12 2703 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_LEN 1 2704 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_MINNUM 1 2705 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_MAXNUM 240 2706 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_MAXNUM_MCDI2 1008 2707 2708 /* MC_CMD_PTP_IN_READ_NIC_TIME msgrequest */ 2709 #define MC_CMD_PTP_IN_READ_NIC_TIME_LEN 8 2710 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2711 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2712 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2713 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2714 2715 /* MC_CMD_PTP_IN_READ_NIC_TIME_V2 msgrequest */ 2716 #define MC_CMD_PTP_IN_READ_NIC_TIME_V2_LEN 8 2717 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2718 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2719 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2720 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2721 2722 /* MC_CMD_PTP_IN_STATUS msgrequest */ 2723 #define MC_CMD_PTP_IN_STATUS_LEN 8 2724 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2725 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2726 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2727 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2728 2729 /* MC_CMD_PTP_IN_ADJUST msgrequest */ 2730 #define MC_CMD_PTP_IN_ADJUST_LEN 24 2731 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2732 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2733 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2734 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2735 /* Frequency adjustment 40 bit fixed point ns */ 2736 #define MC_CMD_PTP_IN_ADJUST_FREQ_OFST 8 2737 #define MC_CMD_PTP_IN_ADJUST_FREQ_LEN 8 2738 #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_OFST 8 2739 #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_LEN 4 2740 #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_LBN 64 2741 #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_WIDTH 32 2742 #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_OFST 12 2743 #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_LEN 4 2744 #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_LBN 96 2745 #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_WIDTH 32 2746 /* enum: Number of fractional bits in frequency adjustment */ 2747 #define MC_CMD_PTP_IN_ADJUST_BITS 0x28 2748 /* enum: Number of fractional bits in frequency adjustment when FP44_FREQ_ADJ 2749 * is indicated in the MC_CMD_PTP_OUT_GET_ATTRIBUTES command CAPABILITIES 2750 * field. 2751 */ 2752 #define MC_CMD_PTP_IN_ADJUST_BITS_FP44 0x2c 2753 /* Time adjustment in seconds */ 2754 #define MC_CMD_PTP_IN_ADJUST_SECONDS_OFST 16 2755 #define MC_CMD_PTP_IN_ADJUST_SECONDS_LEN 4 2756 /* Time adjustment major value */ 2757 #define MC_CMD_PTP_IN_ADJUST_MAJOR_OFST 16 2758 #define MC_CMD_PTP_IN_ADJUST_MAJOR_LEN 4 2759 /* Time adjustment in nanoseconds */ 2760 #define MC_CMD_PTP_IN_ADJUST_NANOSECONDS_OFST 20 2761 #define MC_CMD_PTP_IN_ADJUST_NANOSECONDS_LEN 4 2762 /* Time adjustment minor value */ 2763 #define MC_CMD_PTP_IN_ADJUST_MINOR_OFST 20 2764 #define MC_CMD_PTP_IN_ADJUST_MINOR_LEN 4 2765 2766 /* MC_CMD_PTP_IN_ADJUST_V2 msgrequest */ 2767 #define MC_CMD_PTP_IN_ADJUST_V2_LEN 28 2768 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2769 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2770 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2771 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2772 /* Frequency adjustment 40 bit fixed point ns */ 2773 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_OFST 8 2774 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LEN 8 2775 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_OFST 8 2776 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_LEN 4 2777 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_LBN 64 2778 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_WIDTH 32 2779 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_OFST 12 2780 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_LEN 4 2781 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_LBN 96 2782 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_WIDTH 32 2783 /* enum: Number of fractional bits in frequency adjustment */ 2784 /* MC_CMD_PTP_IN_ADJUST_BITS 0x28 */ 2785 /* enum: Number of fractional bits in frequency adjustment when FP44_FREQ_ADJ 2786 * is indicated in the MC_CMD_PTP_OUT_GET_ATTRIBUTES command CAPABILITIES 2787 * field. 2788 */ 2789 /* MC_CMD_PTP_IN_ADJUST_BITS_FP44 0x2c */ 2790 /* Time adjustment in seconds */ 2791 #define MC_CMD_PTP_IN_ADJUST_V2_SECONDS_OFST 16 2792 #define MC_CMD_PTP_IN_ADJUST_V2_SECONDS_LEN 4 2793 /* Time adjustment major value */ 2794 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_OFST 16 2795 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_LEN 4 2796 /* Time adjustment in nanoseconds */ 2797 #define MC_CMD_PTP_IN_ADJUST_V2_NANOSECONDS_OFST 20 2798 #define MC_CMD_PTP_IN_ADJUST_V2_NANOSECONDS_LEN 4 2799 /* Time adjustment minor value */ 2800 #define MC_CMD_PTP_IN_ADJUST_V2_MINOR_OFST 20 2801 #define MC_CMD_PTP_IN_ADJUST_V2_MINOR_LEN 4 2802 /* Upper 32bits of major time offset adjustment */ 2803 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_HI_OFST 24 2804 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_HI_LEN 4 2805 2806 /* MC_CMD_PTP_IN_SYNCHRONIZE msgrequest */ 2807 #define MC_CMD_PTP_IN_SYNCHRONIZE_LEN 20 2808 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2809 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2810 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2811 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2812 /* Number of time readings to capture */ 2813 #define MC_CMD_PTP_IN_SYNCHRONIZE_NUMTIMESETS_OFST 8 2814 #define MC_CMD_PTP_IN_SYNCHRONIZE_NUMTIMESETS_LEN 4 2815 /* Host address in which to write "synchronization started" indication (64 2816 * bits) 2817 */ 2818 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_OFST 12 2819 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LEN 8 2820 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_OFST 12 2821 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_LEN 4 2822 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_LBN 96 2823 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_WIDTH 32 2824 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_OFST 16 2825 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_LEN 4 2826 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_LBN 128 2827 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_WIDTH 32 2828 2829 /* MC_CMD_PTP_IN_MANFTEST_BASIC msgrequest */ 2830 #define MC_CMD_PTP_IN_MANFTEST_BASIC_LEN 8 2831 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2832 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2833 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2834 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2835 2836 /* MC_CMD_PTP_IN_MANFTEST_PACKET msgrequest */ 2837 #define MC_CMD_PTP_IN_MANFTEST_PACKET_LEN 12 2838 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2839 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2840 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2841 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2842 /* Enable or disable packet testing */ 2843 #define MC_CMD_PTP_IN_MANFTEST_PACKET_TEST_ENABLE_OFST 8 2844 #define MC_CMD_PTP_IN_MANFTEST_PACKET_TEST_ENABLE_LEN 4 2845 2846 /* MC_CMD_PTP_IN_RESET_STATS msgrequest: Reset PTP statistics */ 2847 #define MC_CMD_PTP_IN_RESET_STATS_LEN 8 2848 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2849 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2850 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2851 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2852 2853 /* MC_CMD_PTP_IN_DEBUG msgrequest */ 2854 #define MC_CMD_PTP_IN_DEBUG_LEN 12 2855 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2856 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2857 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2858 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2859 /* Debug operations */ 2860 #define MC_CMD_PTP_IN_DEBUG_DEBUG_PARAM_OFST 8 2861 #define MC_CMD_PTP_IN_DEBUG_DEBUG_PARAM_LEN 4 2862 2863 /* MC_CMD_PTP_IN_FPGAREAD msgrequest */ 2864 #define MC_CMD_PTP_IN_FPGAREAD_LEN 16 2865 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2866 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2867 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2868 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2869 #define MC_CMD_PTP_IN_FPGAREAD_ADDR_OFST 8 2870 #define MC_CMD_PTP_IN_FPGAREAD_ADDR_LEN 4 2871 #define MC_CMD_PTP_IN_FPGAREAD_NUMBYTES_OFST 12 2872 #define MC_CMD_PTP_IN_FPGAREAD_NUMBYTES_LEN 4 2873 2874 /* MC_CMD_PTP_IN_FPGAWRITE msgrequest */ 2875 #define MC_CMD_PTP_IN_FPGAWRITE_LENMIN 13 2876 #define MC_CMD_PTP_IN_FPGAWRITE_LENMAX 252 2877 #define MC_CMD_PTP_IN_FPGAWRITE_LENMAX_MCDI2 1020 2878 #define MC_CMD_PTP_IN_FPGAWRITE_LEN(num) (12+1*(num)) 2879 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_NUM(len) (((len)-12)/1) 2880 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2881 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2882 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2883 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2884 #define MC_CMD_PTP_IN_FPGAWRITE_ADDR_OFST 8 2885 #define MC_CMD_PTP_IN_FPGAWRITE_ADDR_LEN 4 2886 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_OFST 12 2887 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_LEN 1 2888 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_MINNUM 1 2889 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_MAXNUM 240 2890 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_MAXNUM_MCDI2 1008 2891 2892 /* MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST msgrequest */ 2893 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_LEN 16 2894 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2895 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2896 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2897 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2898 /* Time adjustment in seconds */ 2899 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_SECONDS_OFST 8 2900 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_SECONDS_LEN 4 2901 /* Time adjustment major value */ 2902 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MAJOR_OFST 8 2903 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MAJOR_LEN 4 2904 /* Time adjustment in nanoseconds */ 2905 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_NANOSECONDS_OFST 12 2906 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_NANOSECONDS_LEN 4 2907 /* Time adjustment minor value */ 2908 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MINOR_OFST 12 2909 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MINOR_LEN 4 2910 2911 /* MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2 msgrequest */ 2912 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_LEN 20 2913 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2914 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2915 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2916 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2917 /* Time adjustment in seconds */ 2918 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_SECONDS_OFST 8 2919 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_SECONDS_LEN 4 2920 /* Time adjustment major value */ 2921 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_OFST 8 2922 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_LEN 4 2923 /* Time adjustment in nanoseconds */ 2924 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_NANOSECONDS_OFST 12 2925 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_NANOSECONDS_LEN 4 2926 /* Time adjustment minor value */ 2927 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MINOR_OFST 12 2928 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MINOR_LEN 4 2929 /* Upper 32bits of major time offset adjustment */ 2930 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_HI_OFST 16 2931 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_HI_LEN 4 2932 2933 /* MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST msgrequest */ 2934 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_LEN 16 2935 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2936 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2937 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2938 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2939 /* Frequency adjustment 40 bit fixed point ns */ 2940 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_OFST 8 2941 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LEN 8 2942 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_OFST 8 2943 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_LEN 4 2944 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_LBN 64 2945 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_WIDTH 32 2946 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_OFST 12 2947 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_LEN 4 2948 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_LBN 96 2949 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_WIDTH 32 2950 /* Enum values, see field(s): */ 2951 /* MC_CMD_PTP/MC_CMD_PTP_IN_ADJUST/FREQ */ 2952 2953 /* MC_CMD_PTP_IN_RX_SET_VLAN_FILTER msgrequest */ 2954 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_LEN 24 2955 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2956 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2957 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2958 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2959 /* Number of VLAN tags, 0 if not VLAN */ 2960 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_NUM_VLAN_TAGS_OFST 8 2961 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_NUM_VLAN_TAGS_LEN 4 2962 /* Set of VLAN tags to filter against */ 2963 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_VLAN_TAG_OFST 12 2964 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_VLAN_TAG_LEN 4 2965 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_VLAN_TAG_NUM 3 2966 2967 /* MC_CMD_PTP_IN_RX_SET_UUID_FILTER msgrequest */ 2968 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_LEN 20 2969 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2970 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2971 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2972 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2973 /* 1 to enable UUID filtering, 0 to disable */ 2974 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_ENABLE_OFST 8 2975 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_ENABLE_LEN 4 2976 /* UUID to filter against */ 2977 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_OFST 12 2978 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LEN 8 2979 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_OFST 12 2980 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_LEN 4 2981 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_LBN 96 2982 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_WIDTH 32 2983 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_OFST 16 2984 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_LEN 4 2985 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_LBN 128 2986 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_WIDTH 32 2987 2988 /* MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER msgrequest */ 2989 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_LEN 16 2990 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2991 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2992 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2993 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2994 /* 1 to enable Domain filtering, 0 to disable */ 2995 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_ENABLE_OFST 8 2996 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_ENABLE_LEN 4 2997 /* Domain number to filter against */ 2998 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_DOMAIN_OFST 12 2999 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_DOMAIN_LEN 4 3000 3001 /* MC_CMD_PTP_IN_SET_CLK_SRC msgrequest */ 3002 #define MC_CMD_PTP_IN_SET_CLK_SRC_LEN 12 3003 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3004 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3005 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3006 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3007 /* Set the clock source. */ 3008 #define MC_CMD_PTP_IN_SET_CLK_SRC_CLK_OFST 8 3009 #define MC_CMD_PTP_IN_SET_CLK_SRC_CLK_LEN 4 3010 /* enum: Internal. */ 3011 #define MC_CMD_PTP_CLK_SRC_INTERNAL 0x0 3012 /* enum: External. */ 3013 #define MC_CMD_PTP_CLK_SRC_EXTERNAL 0x1 3014 3015 /* MC_CMD_PTP_IN_RST_CLK msgrequest: Reset value of Timer Reg. */ 3016 #define MC_CMD_PTP_IN_RST_CLK_LEN 8 3017 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3018 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3019 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3020 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3021 3022 /* MC_CMD_PTP_IN_PPS_ENABLE msgrequest */ 3023 #define MC_CMD_PTP_IN_PPS_ENABLE_LEN 12 3024 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3025 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3026 /* Enable or disable */ 3027 #define MC_CMD_PTP_IN_PPS_ENABLE_OP_OFST 4 3028 #define MC_CMD_PTP_IN_PPS_ENABLE_OP_LEN 4 3029 /* enum: Enable */ 3030 #define MC_CMD_PTP_ENABLE_PPS 0x0 3031 /* enum: Disable */ 3032 #define MC_CMD_PTP_DISABLE_PPS 0x1 3033 /* Not used. Events are always sent to function relative queue 0. */ 3034 #define MC_CMD_PTP_IN_PPS_ENABLE_QUEUE_ID_OFST 8 3035 #define MC_CMD_PTP_IN_PPS_ENABLE_QUEUE_ID_LEN 4 3036 3037 /* MC_CMD_PTP_IN_GET_TIME_FORMAT msgrequest */ 3038 #define MC_CMD_PTP_IN_GET_TIME_FORMAT_LEN 8 3039 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3040 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3041 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3042 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3043 3044 /* MC_CMD_PTP_IN_GET_ATTRIBUTES msgrequest */ 3045 #define MC_CMD_PTP_IN_GET_ATTRIBUTES_LEN 8 3046 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3047 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3048 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3049 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3050 3051 /* MC_CMD_PTP_IN_GET_TIMESTAMP_CORRECTIONS msgrequest */ 3052 #define MC_CMD_PTP_IN_GET_TIMESTAMP_CORRECTIONS_LEN 8 3053 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3054 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3055 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3056 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3057 3058 /* MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE msgrequest */ 3059 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_LEN 12 3060 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3061 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3062 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3063 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3064 /* Original field containing queue ID. Now extended to include flags. */ 3065 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_OFST 8 3066 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_LEN 4 3067 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_ID_OFST 8 3068 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_ID_LBN 0 3069 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_ID_WIDTH 16 3070 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_REPORT_SYNC_STATUS_OFST 8 3071 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_REPORT_SYNC_STATUS_LBN 31 3072 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_REPORT_SYNC_STATUS_WIDTH 1 3073 3074 /* MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE msgrequest */ 3075 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_LEN 16 3076 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3077 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3078 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3079 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3080 /* Unsubscribe options */ 3081 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_CONTROL_OFST 8 3082 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_CONTROL_LEN 4 3083 /* enum: Unsubscribe a single queue */ 3084 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_SINGLE 0x0 3085 /* enum: Unsubscribe all queues */ 3086 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_ALL 0x1 3087 /* Event queue ID */ 3088 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_QUEUE_OFST 12 3089 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_QUEUE_LEN 4 3090 3091 /* MC_CMD_PTP_IN_MANFTEST_PPS msgrequest */ 3092 #define MC_CMD_PTP_IN_MANFTEST_PPS_LEN 12 3093 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3094 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3095 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3096 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3097 /* 1 to enable PPS test mode, 0 to disable and return result. */ 3098 #define MC_CMD_PTP_IN_MANFTEST_PPS_TEST_ENABLE_OFST 8 3099 #define MC_CMD_PTP_IN_MANFTEST_PPS_TEST_ENABLE_LEN 4 3100 3101 /* MC_CMD_PTP_IN_SET_SYNC_STATUS msgrequest */ 3102 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_LEN 24 3103 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 3104 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 3105 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 3106 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 3107 /* NIC - Host System Clock Synchronization status */ 3108 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_STATUS_OFST 8 3109 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_STATUS_LEN 4 3110 /* enum: Host System clock and NIC clock are not in sync */ 3111 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_NOT_IN_SYNC 0x0 3112 /* enum: Host System clock and NIC clock are synchronized */ 3113 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_IN_SYNC 0x1 3114 /* If synchronized, number of seconds until clocks should be considered to be 3115 * no longer in sync. 3116 */ 3117 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_TIMEOUT_OFST 12 3118 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_TIMEOUT_LEN 4 3119 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED0_OFST 16 3120 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED0_LEN 4 3121 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED1_OFST 20 3122 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED1_LEN 4 3123 3124 /* MC_CMD_PTP_OUT msgresponse */ 3125 #define MC_CMD_PTP_OUT_LEN 0 3126 3127 /* MC_CMD_PTP_OUT_TRANSMIT msgresponse */ 3128 #define MC_CMD_PTP_OUT_TRANSMIT_LEN 8 3129 /* Value of seconds timestamp */ 3130 #define MC_CMD_PTP_OUT_TRANSMIT_SECONDS_OFST 0 3131 #define MC_CMD_PTP_OUT_TRANSMIT_SECONDS_LEN 4 3132 /* Timestamp major value */ 3133 #define MC_CMD_PTP_OUT_TRANSMIT_MAJOR_OFST 0 3134 #define MC_CMD_PTP_OUT_TRANSMIT_MAJOR_LEN 4 3135 /* Value of nanoseconds timestamp */ 3136 #define MC_CMD_PTP_OUT_TRANSMIT_NANOSECONDS_OFST 4 3137 #define MC_CMD_PTP_OUT_TRANSMIT_NANOSECONDS_LEN 4 3138 /* Timestamp minor value */ 3139 #define MC_CMD_PTP_OUT_TRANSMIT_MINOR_OFST 4 3140 #define MC_CMD_PTP_OUT_TRANSMIT_MINOR_LEN 4 3141 3142 /* MC_CMD_PTP_OUT_TIME_EVENT_SUBSCRIBE msgresponse */ 3143 #define MC_CMD_PTP_OUT_TIME_EVENT_SUBSCRIBE_LEN 0 3144 3145 /* MC_CMD_PTP_OUT_TIME_EVENT_UNSUBSCRIBE msgresponse */ 3146 #define MC_CMD_PTP_OUT_TIME_EVENT_UNSUBSCRIBE_LEN 0 3147 3148 /* MC_CMD_PTP_OUT_READ_NIC_TIME msgresponse */ 3149 #define MC_CMD_PTP_OUT_READ_NIC_TIME_LEN 8 3150 /* Value of seconds timestamp */ 3151 #define MC_CMD_PTP_OUT_READ_NIC_TIME_SECONDS_OFST 0 3152 #define MC_CMD_PTP_OUT_READ_NIC_TIME_SECONDS_LEN 4 3153 /* Timestamp major value */ 3154 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MAJOR_OFST 0 3155 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MAJOR_LEN 4 3156 /* Value of nanoseconds timestamp */ 3157 #define MC_CMD_PTP_OUT_READ_NIC_TIME_NANOSECONDS_OFST 4 3158 #define MC_CMD_PTP_OUT_READ_NIC_TIME_NANOSECONDS_LEN 4 3159 /* Timestamp minor value */ 3160 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MINOR_OFST 4 3161 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MINOR_LEN 4 3162 3163 /* MC_CMD_PTP_OUT_READ_NIC_TIME_V2 msgresponse */ 3164 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_LEN 12 3165 /* Value of seconds timestamp */ 3166 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_SECONDS_OFST 0 3167 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_SECONDS_LEN 4 3168 /* Timestamp major value */ 3169 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_OFST 0 3170 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_LEN 4 3171 /* Value of nanoseconds timestamp */ 3172 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_NANOSECONDS_OFST 4 3173 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_NANOSECONDS_LEN 4 3174 /* Timestamp minor value */ 3175 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MINOR_OFST 4 3176 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MINOR_LEN 4 3177 /* Upper 32bits of major timestamp value */ 3178 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_HI_OFST 8 3179 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_HI_LEN 4 3180 3181 /* MC_CMD_PTP_OUT_STATUS msgresponse */ 3182 #define MC_CMD_PTP_OUT_STATUS_LEN 64 3183 /* Frequency of NIC's hardware clock */ 3184 #define MC_CMD_PTP_OUT_STATUS_CLOCK_FREQ_OFST 0 3185 #define MC_CMD_PTP_OUT_STATUS_CLOCK_FREQ_LEN 4 3186 /* Number of packets transmitted and timestamped */ 3187 #define MC_CMD_PTP_OUT_STATUS_STATS_TX_OFST 4 3188 #define MC_CMD_PTP_OUT_STATUS_STATS_TX_LEN 4 3189 /* Number of packets received and timestamped */ 3190 #define MC_CMD_PTP_OUT_STATUS_STATS_RX_OFST 8 3191 #define MC_CMD_PTP_OUT_STATUS_STATS_RX_LEN 4 3192 /* Number of packets timestamped by the FPGA */ 3193 #define MC_CMD_PTP_OUT_STATUS_STATS_TS_OFST 12 3194 #define MC_CMD_PTP_OUT_STATUS_STATS_TS_LEN 4 3195 /* Number of packets filter matched */ 3196 #define MC_CMD_PTP_OUT_STATUS_STATS_FM_OFST 16 3197 #define MC_CMD_PTP_OUT_STATUS_STATS_FM_LEN 4 3198 /* Number of packets not filter matched */ 3199 #define MC_CMD_PTP_OUT_STATUS_STATS_NFM_OFST 20 3200 #define MC_CMD_PTP_OUT_STATUS_STATS_NFM_LEN 4 3201 /* Number of PPS overflows (noise on input?) */ 3202 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFLOW_OFST 24 3203 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFLOW_LEN 4 3204 /* Number of PPS bad periods */ 3205 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_BAD_OFST 28 3206 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_BAD_LEN 4 3207 /* Minimum period of PPS pulse in nanoseconds */ 3208 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MIN_OFST 32 3209 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MIN_LEN 4 3210 /* Maximum period of PPS pulse in nanoseconds */ 3211 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MAX_OFST 36 3212 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MAX_LEN 4 3213 /* Last period of PPS pulse in nanoseconds */ 3214 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_LAST_OFST 40 3215 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_LAST_LEN 4 3216 /* Mean period of PPS pulse in nanoseconds */ 3217 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MEAN_OFST 44 3218 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MEAN_LEN 4 3219 /* Minimum offset of PPS pulse in nanoseconds (signed) */ 3220 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MIN_OFST 48 3221 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MIN_LEN 4 3222 /* Maximum offset of PPS pulse in nanoseconds (signed) */ 3223 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MAX_OFST 52 3224 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MAX_LEN 4 3225 /* Last offset of PPS pulse in nanoseconds (signed) */ 3226 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_LAST_OFST 56 3227 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_LAST_LEN 4 3228 /* Mean offset of PPS pulse in nanoseconds (signed) */ 3229 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MEAN_OFST 60 3230 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MEAN_LEN 4 3231 3232 /* MC_CMD_PTP_OUT_SYNCHRONIZE msgresponse */ 3233 #define MC_CMD_PTP_OUT_SYNCHRONIZE_LENMIN 20 3234 #define MC_CMD_PTP_OUT_SYNCHRONIZE_LENMAX 240 3235 #define MC_CMD_PTP_OUT_SYNCHRONIZE_LENMAX_MCDI2 1020 3236 #define MC_CMD_PTP_OUT_SYNCHRONIZE_LEN(num) (0+20*(num)) 3237 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_NUM(len) (((len)-0)/20) 3238 /* A set of host and NIC times */ 3239 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_OFST 0 3240 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_LEN 20 3241 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_MINNUM 1 3242 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_MAXNUM 12 3243 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_MAXNUM_MCDI2 51 3244 /* Host time immediately before NIC's hardware clock read */ 3245 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTSTART_OFST 0 3246 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTSTART_LEN 4 3247 /* Value of seconds timestamp */ 3248 #define MC_CMD_PTP_OUT_SYNCHRONIZE_SECONDS_OFST 4 3249 #define MC_CMD_PTP_OUT_SYNCHRONIZE_SECONDS_LEN 4 3250 /* Timestamp major value */ 3251 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MAJOR_OFST 4 3252 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MAJOR_LEN 4 3253 /* Value of nanoseconds timestamp */ 3254 #define MC_CMD_PTP_OUT_SYNCHRONIZE_NANOSECONDS_OFST 8 3255 #define MC_CMD_PTP_OUT_SYNCHRONIZE_NANOSECONDS_LEN 4 3256 /* Timestamp minor value */ 3257 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MINOR_OFST 8 3258 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MINOR_LEN 4 3259 /* Host time immediately after NIC's hardware clock read */ 3260 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTEND_OFST 12 3261 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTEND_LEN 4 3262 /* Number of nanoseconds waited after reading NIC's hardware clock */ 3263 #define MC_CMD_PTP_OUT_SYNCHRONIZE_WAITNS_OFST 16 3264 #define MC_CMD_PTP_OUT_SYNCHRONIZE_WAITNS_LEN 4 3265 3266 /* MC_CMD_PTP_OUT_MANFTEST_BASIC msgresponse */ 3267 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_LEN 8 3268 /* Results of testing */ 3269 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_RESULT_OFST 0 3270 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_RESULT_LEN 4 3271 /* enum: Successful test */ 3272 #define MC_CMD_PTP_MANF_SUCCESS 0x0 3273 /* enum: FPGA load failed */ 3274 #define MC_CMD_PTP_MANF_FPGA_LOAD 0x1 3275 /* enum: FPGA version invalid */ 3276 #define MC_CMD_PTP_MANF_FPGA_VERSION 0x2 3277 /* enum: FPGA registers incorrect */ 3278 #define MC_CMD_PTP_MANF_FPGA_REGISTERS 0x3 3279 /* enum: Oscillator possibly not working? */ 3280 #define MC_CMD_PTP_MANF_OSCILLATOR 0x4 3281 /* enum: Timestamps not increasing */ 3282 #define MC_CMD_PTP_MANF_TIMESTAMPS 0x5 3283 /* enum: Mismatched packet count */ 3284 #define MC_CMD_PTP_MANF_PACKET_COUNT 0x6 3285 /* enum: Mismatched packet count (Siena filter and FPGA) */ 3286 #define MC_CMD_PTP_MANF_FILTER_COUNT 0x7 3287 /* enum: Not enough packets to perform timestamp check */ 3288 #define MC_CMD_PTP_MANF_PACKET_ENOUGH 0x8 3289 /* enum: Timestamp trigger GPIO not working */ 3290 #define MC_CMD_PTP_MANF_GPIO_TRIGGER 0x9 3291 /* enum: Insufficient PPS events to perform checks */ 3292 #define MC_CMD_PTP_MANF_PPS_ENOUGH 0xa 3293 /* enum: PPS time event period not sufficiently close to 1s. */ 3294 #define MC_CMD_PTP_MANF_PPS_PERIOD 0xb 3295 /* enum: PPS time event nS reading not sufficiently close to zero. */ 3296 #define MC_CMD_PTP_MANF_PPS_NS 0xc 3297 /* enum: PTP peripheral registers incorrect */ 3298 #define MC_CMD_PTP_MANF_REGISTERS 0xd 3299 /* enum: Failed to read time from PTP peripheral */ 3300 #define MC_CMD_PTP_MANF_CLOCK_READ 0xe 3301 /* Presence of external oscillator */ 3302 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_EXTOSC_OFST 4 3303 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_EXTOSC_LEN 4 3304 3305 /* MC_CMD_PTP_OUT_MANFTEST_PACKET msgresponse */ 3306 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_LEN 12 3307 /* Results of testing */ 3308 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_RESULT_OFST 0 3309 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_RESULT_LEN 4 3310 /* Number of packets received by FPGA */ 3311 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FPGACOUNT_OFST 4 3312 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FPGACOUNT_LEN 4 3313 /* Number of packets received by Siena filters */ 3314 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FILTERCOUNT_OFST 8 3315 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FILTERCOUNT_LEN 4 3316 3317 /* MC_CMD_PTP_OUT_FPGAREAD msgresponse */ 3318 #define MC_CMD_PTP_OUT_FPGAREAD_LENMIN 1 3319 #define MC_CMD_PTP_OUT_FPGAREAD_LENMAX 252 3320 #define MC_CMD_PTP_OUT_FPGAREAD_LENMAX_MCDI2 1020 3321 #define MC_CMD_PTP_OUT_FPGAREAD_LEN(num) (0+1*(num)) 3322 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_NUM(len) (((len)-0)/1) 3323 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_OFST 0 3324 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_LEN 1 3325 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_MINNUM 1 3326 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_MAXNUM 252 3327 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_MAXNUM_MCDI2 1020 3328 3329 /* MC_CMD_PTP_OUT_GET_TIME_FORMAT msgresponse */ 3330 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_LEN 4 3331 /* Time format required/used by for this NIC. Applies to all PTP MCDI 3332 * operations that pass times between the host and firmware. If this operation 3333 * is not supported (older firmware) a format of seconds and nanoseconds should 3334 * be assumed. Note this enum is deprecated. Do not add to it- use the 3335 * TIME_FORMAT field in MC_CMD_PTP_OUT_GET_ATTRIBUTES instead. 3336 */ 3337 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_FORMAT_OFST 0 3338 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_FORMAT_LEN 4 3339 /* enum: Times are in seconds and nanoseconds */ 3340 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_SECONDS_NANOSECONDS 0x0 3341 /* enum: Major register has units of 16 second per tick, minor 8 ns per tick */ 3342 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_16SECONDS_8NANOSECONDS 0x1 3343 /* enum: Major register has units of seconds, minor 2^-27s per tick */ 3344 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_SECONDS_27FRACTION 0x2 3345 3346 /* MC_CMD_PTP_OUT_GET_ATTRIBUTES msgresponse */ 3347 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_LEN 24 3348 /* Time format required/used by for this NIC. Applies to all PTP MCDI 3349 * operations that pass times between the host and firmware. If this operation 3350 * is not supported (older firmware) a format of seconds and nanoseconds should 3351 * be assumed. 3352 */ 3353 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_TIME_FORMAT_OFST 0 3354 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_TIME_FORMAT_LEN 4 3355 /* enum: Times are in seconds and nanoseconds */ 3356 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SECONDS_NANOSECONDS 0x0 3357 /* enum: Major register has units of 16 second per tick, minor 8 ns per tick */ 3358 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_16SECONDS_8NANOSECONDS 0x1 3359 /* enum: Major register has units of seconds, minor 2^-27s per tick */ 3360 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SECONDS_27FRACTION 0x2 3361 /* enum: Major register units are seconds, minor units are quarter nanoseconds 3362 */ 3363 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SECONDS_QTR_NANOSECONDS 0x3 3364 /* Minimum acceptable value for a corrected synchronization timeset. When 3365 * comparing host and NIC clock times, the MC returns a set of samples that 3366 * contain the host start and end time, the MC time when the host start was 3367 * detected and the time the MC waited between reading the time and detecting 3368 * the host end. The corrected sync window is the difference between the host 3369 * end and start times minus the time that the MC waited for host end. 3370 */ 3371 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SYNC_WINDOW_MIN_OFST 4 3372 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SYNC_WINDOW_MIN_LEN 4 3373 /* Various PTP capabilities */ 3374 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_CAPABILITIES_OFST 8 3375 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_CAPABILITIES_LEN 4 3376 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_REPORT_SYNC_STATUS_OFST 8 3377 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_REPORT_SYNC_STATUS_LBN 0 3378 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_REPORT_SYNC_STATUS_WIDTH 1 3379 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RX_TSTAMP_OOB_OFST 8 3380 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RX_TSTAMP_OOB_LBN 1 3381 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RX_TSTAMP_OOB_WIDTH 1 3382 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_64BIT_SECONDS_OFST 8 3383 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_64BIT_SECONDS_LBN 2 3384 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_64BIT_SECONDS_WIDTH 1 3385 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_FP44_FREQ_ADJ_OFST 8 3386 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_FP44_FREQ_ADJ_LBN 3 3387 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_FP44_FREQ_ADJ_WIDTH 1 3388 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED0_OFST 12 3389 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED0_LEN 4 3390 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED1_OFST 16 3391 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED1_LEN 4 3392 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED2_OFST 20 3393 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED2_LEN 4 3394 3395 /* MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS msgresponse */ 3396 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_LEN 16 3397 /* Uncorrected error on PTP transmit timestamps in NIC clock format */ 3398 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_TRANSMIT_OFST 0 3399 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_TRANSMIT_LEN 4 3400 /* Uncorrected error on PTP receive timestamps in NIC clock format */ 3401 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_RECEIVE_OFST 4 3402 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_RECEIVE_LEN 4 3403 /* Uncorrected error on PPS output in NIC clock format */ 3404 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_OUT_OFST 8 3405 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_OUT_LEN 4 3406 /* Uncorrected error on PPS input in NIC clock format */ 3407 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_IN_OFST 12 3408 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_IN_LEN 4 3409 3410 /* MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2 msgresponse */ 3411 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_LEN 24 3412 /* Uncorrected error on PTP transmit timestamps in NIC clock format */ 3413 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_TX_OFST 0 3414 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_TX_LEN 4 3415 /* Uncorrected error on PTP receive timestamps in NIC clock format */ 3416 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_RX_OFST 4 3417 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_RX_LEN 4 3418 /* Uncorrected error on PPS output in NIC clock format */ 3419 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_OUT_OFST 8 3420 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_OUT_LEN 4 3421 /* Uncorrected error on PPS input in NIC clock format */ 3422 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_IN_OFST 12 3423 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_IN_LEN 4 3424 /* Uncorrected error on non-PTP transmit timestamps in NIC clock format */ 3425 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_TX_OFST 16 3426 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_TX_LEN 4 3427 /* Uncorrected error on non-PTP receive timestamps in NIC clock format */ 3428 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_RX_OFST 20 3429 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_RX_LEN 4 3430 3431 /* MC_CMD_PTP_OUT_MANFTEST_PPS msgresponse */ 3432 #define MC_CMD_PTP_OUT_MANFTEST_PPS_LEN 4 3433 /* Results of testing */ 3434 #define MC_CMD_PTP_OUT_MANFTEST_PPS_TEST_RESULT_OFST 0 3435 #define MC_CMD_PTP_OUT_MANFTEST_PPS_TEST_RESULT_LEN 4 3436 /* Enum values, see field(s): */ 3437 /* MC_CMD_PTP_OUT_MANFTEST_BASIC/TEST_RESULT */ 3438 3439 /* MC_CMD_PTP_OUT_SET_SYNC_STATUS msgresponse */ 3440 #define MC_CMD_PTP_OUT_SET_SYNC_STATUS_LEN 0 3441 3442 3443 /***********************************/ 3444 /* MC_CMD_CSR_READ32 3445 * Read 32bit words from the indirect memory map. 3446 */ 3447 #define MC_CMD_CSR_READ32 0xc 3448 #define MC_CMD_CSR_READ32_MSGSET 0xc 3449 #undef MC_CMD_0xc_PRIVILEGE_CTG 3450 3451 #define MC_CMD_0xc_PRIVILEGE_CTG SRIOV_CTG_INSECURE 3452 3453 /* MC_CMD_CSR_READ32_IN msgrequest */ 3454 #define MC_CMD_CSR_READ32_IN_LEN 12 3455 /* Address */ 3456 #define MC_CMD_CSR_READ32_IN_ADDR_OFST 0 3457 #define MC_CMD_CSR_READ32_IN_ADDR_LEN 4 3458 #define MC_CMD_CSR_READ32_IN_STEP_OFST 4 3459 #define MC_CMD_CSR_READ32_IN_STEP_LEN 4 3460 #define MC_CMD_CSR_READ32_IN_NUMWORDS_OFST 8 3461 #define MC_CMD_CSR_READ32_IN_NUMWORDS_LEN 4 3462 3463 /* MC_CMD_CSR_READ32_OUT msgresponse */ 3464 #define MC_CMD_CSR_READ32_OUT_LENMIN 4 3465 #define MC_CMD_CSR_READ32_OUT_LENMAX 252 3466 #define MC_CMD_CSR_READ32_OUT_LENMAX_MCDI2 1020 3467 #define MC_CMD_CSR_READ32_OUT_LEN(num) (0+4*(num)) 3468 #define MC_CMD_CSR_READ32_OUT_BUFFER_NUM(len) (((len)-0)/4) 3469 /* The last dword is the status, not a value read */ 3470 #define MC_CMD_CSR_READ32_OUT_BUFFER_OFST 0 3471 #define MC_CMD_CSR_READ32_OUT_BUFFER_LEN 4 3472 #define MC_CMD_CSR_READ32_OUT_BUFFER_MINNUM 1 3473 #define MC_CMD_CSR_READ32_OUT_BUFFER_MAXNUM 63 3474 #define MC_CMD_CSR_READ32_OUT_BUFFER_MAXNUM_MCDI2 255 3475 3476 3477 /***********************************/ 3478 /* MC_CMD_CSR_WRITE32 3479 * Write 32bit dwords to the indirect memory map. 3480 */ 3481 #define MC_CMD_CSR_WRITE32 0xd 3482 #define MC_CMD_CSR_WRITE32_MSGSET 0xd 3483 #undef MC_CMD_0xd_PRIVILEGE_CTG 3484 3485 #define MC_CMD_0xd_PRIVILEGE_CTG SRIOV_CTG_INSECURE 3486 3487 /* MC_CMD_CSR_WRITE32_IN msgrequest */ 3488 #define MC_CMD_CSR_WRITE32_IN_LENMIN 12 3489 #define MC_CMD_CSR_WRITE32_IN_LENMAX 252 3490 #define MC_CMD_CSR_WRITE32_IN_LENMAX_MCDI2 1020 3491 #define MC_CMD_CSR_WRITE32_IN_LEN(num) (8+4*(num)) 3492 #define MC_CMD_CSR_WRITE32_IN_BUFFER_NUM(len) (((len)-8)/4) 3493 /* Address */ 3494 #define MC_CMD_CSR_WRITE32_IN_ADDR_OFST 0 3495 #define MC_CMD_CSR_WRITE32_IN_ADDR_LEN 4 3496 #define MC_CMD_CSR_WRITE32_IN_STEP_OFST 4 3497 #define MC_CMD_CSR_WRITE32_IN_STEP_LEN 4 3498 #define MC_CMD_CSR_WRITE32_IN_BUFFER_OFST 8 3499 #define MC_CMD_CSR_WRITE32_IN_BUFFER_LEN 4 3500 #define MC_CMD_CSR_WRITE32_IN_BUFFER_MINNUM 1 3501 #define MC_CMD_CSR_WRITE32_IN_BUFFER_MAXNUM 61 3502 #define MC_CMD_CSR_WRITE32_IN_BUFFER_MAXNUM_MCDI2 253 3503 3504 /* MC_CMD_CSR_WRITE32_OUT msgresponse */ 3505 #define MC_CMD_CSR_WRITE32_OUT_LEN 4 3506 #define MC_CMD_CSR_WRITE32_OUT_STATUS_OFST 0 3507 #define MC_CMD_CSR_WRITE32_OUT_STATUS_LEN 4 3508 3509 3510 /***********************************/ 3511 /* MC_CMD_HP 3512 * These commands are used for HP related features. They are grouped under one 3513 * MCDI command to avoid creating too many MCDI commands. 3514 */ 3515 #define MC_CMD_HP 0x54 3516 #define MC_CMD_HP_MSGSET 0x54 3517 #undef MC_CMD_0x54_PRIVILEGE_CTG 3518 3519 #define MC_CMD_0x54_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 3520 3521 /* MC_CMD_HP_IN msgrequest */ 3522 #define MC_CMD_HP_IN_LEN 16 3523 /* HP OCSD sub-command. When address is not NULL, request activation of OCSD at 3524 * the specified address with the specified interval.When address is NULL, 3525 * INTERVAL is interpreted as a command: 0: stop OCSD / 1: Report OCSD current 3526 * state / 2: (debug) Show temperature reported by one of the supported 3527 * sensors. 3528 */ 3529 #define MC_CMD_HP_IN_SUBCMD_OFST 0 3530 #define MC_CMD_HP_IN_SUBCMD_LEN 4 3531 /* enum: OCSD (Option Card Sensor Data) sub-command. */ 3532 #define MC_CMD_HP_IN_OCSD_SUBCMD 0x0 3533 /* enum: Last known valid HP sub-command. */ 3534 #define MC_CMD_HP_IN_LAST_SUBCMD 0x0 3535 /* The address to the array of sensor fields. (Or NULL to use a sub-command.) 3536 */ 3537 #define MC_CMD_HP_IN_OCSD_ADDR_OFST 4 3538 #define MC_CMD_HP_IN_OCSD_ADDR_LEN 8 3539 #define MC_CMD_HP_IN_OCSD_ADDR_LO_OFST 4 3540 #define MC_CMD_HP_IN_OCSD_ADDR_LO_LEN 4 3541 #define MC_CMD_HP_IN_OCSD_ADDR_LO_LBN 32 3542 #define MC_CMD_HP_IN_OCSD_ADDR_LO_WIDTH 32 3543 #define MC_CMD_HP_IN_OCSD_ADDR_HI_OFST 8 3544 #define MC_CMD_HP_IN_OCSD_ADDR_HI_LEN 4 3545 #define MC_CMD_HP_IN_OCSD_ADDR_HI_LBN 64 3546 #define MC_CMD_HP_IN_OCSD_ADDR_HI_WIDTH 32 3547 /* The requested update interval, in seconds. (Or the sub-command if ADDR is 3548 * NULL.) 3549 */ 3550 #define MC_CMD_HP_IN_OCSD_INTERVAL_OFST 12 3551 #define MC_CMD_HP_IN_OCSD_INTERVAL_LEN 4 3552 3553 /* MC_CMD_HP_OUT msgresponse */ 3554 #define MC_CMD_HP_OUT_LEN 4 3555 #define MC_CMD_HP_OUT_OCSD_STATUS_OFST 0 3556 #define MC_CMD_HP_OUT_OCSD_STATUS_LEN 4 3557 /* enum: OCSD stopped for this card. */ 3558 #define MC_CMD_HP_OUT_OCSD_STOPPED 0x1 3559 /* enum: OCSD was successfully started with the address provided. */ 3560 #define MC_CMD_HP_OUT_OCSD_STARTED 0x2 3561 /* enum: OCSD was already started for this card. */ 3562 #define MC_CMD_HP_OUT_OCSD_ALREADY_STARTED 0x3 3563 3564 3565 /***********************************/ 3566 /* MC_CMD_STACKINFO 3567 * Get stack information. 3568 */ 3569 #define MC_CMD_STACKINFO 0xf 3570 #define MC_CMD_STACKINFO_MSGSET 0xf 3571 #undef MC_CMD_0xf_PRIVILEGE_CTG 3572 3573 #define MC_CMD_0xf_PRIVILEGE_CTG SRIOV_CTG_ADMIN 3574 3575 /* MC_CMD_STACKINFO_IN msgrequest */ 3576 #define MC_CMD_STACKINFO_IN_LEN 0 3577 3578 /* MC_CMD_STACKINFO_OUT msgresponse */ 3579 #define MC_CMD_STACKINFO_OUT_LENMIN 12 3580 #define MC_CMD_STACKINFO_OUT_LENMAX 252 3581 #define MC_CMD_STACKINFO_OUT_LENMAX_MCDI2 1020 3582 #define MC_CMD_STACKINFO_OUT_LEN(num) (0+12*(num)) 3583 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_NUM(len) (((len)-0)/12) 3584 /* (thread ptr, stack size, free space) for each thread in system */ 3585 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_OFST 0 3586 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_LEN 12 3587 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_MINNUM 1 3588 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_MAXNUM 21 3589 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_MAXNUM_MCDI2 85 3590 3591 3592 /***********************************/ 3593 /* MC_CMD_MDIO_READ 3594 * MDIO register read. 3595 */ 3596 #define MC_CMD_MDIO_READ 0x10 3597 #define MC_CMD_MDIO_READ_MSGSET 0x10 3598 #undef MC_CMD_0x10_PRIVILEGE_CTG 3599 3600 #define MC_CMD_0x10_PRIVILEGE_CTG SRIOV_CTG_GENERAL 3601 3602 /* MC_CMD_MDIO_READ_IN msgrequest */ 3603 #define MC_CMD_MDIO_READ_IN_LEN 16 3604 /* Bus number; there are two MDIO buses: one for the internal PHY, and one for 3605 * external devices. 3606 */ 3607 #define MC_CMD_MDIO_READ_IN_BUS_OFST 0 3608 #define MC_CMD_MDIO_READ_IN_BUS_LEN 4 3609 /* enum: Internal. */ 3610 #define MC_CMD_MDIO_BUS_INTERNAL 0x0 3611 /* enum: External. */ 3612 #define MC_CMD_MDIO_BUS_EXTERNAL 0x1 3613 /* Port address */ 3614 #define MC_CMD_MDIO_READ_IN_PRTAD_OFST 4 3615 #define MC_CMD_MDIO_READ_IN_PRTAD_LEN 4 3616 /* Device Address or clause 22. */ 3617 #define MC_CMD_MDIO_READ_IN_DEVAD_OFST 8 3618 #define MC_CMD_MDIO_READ_IN_DEVAD_LEN 4 3619 /* enum: By default all the MCDI MDIO operations perform clause45 mode. If you 3620 * want to use clause22 then set DEVAD = MC_CMD_MDIO_CLAUSE22. 3621 */ 3622 #define MC_CMD_MDIO_CLAUSE22 0x20 3623 /* Address */ 3624 #define MC_CMD_MDIO_READ_IN_ADDR_OFST 12 3625 #define MC_CMD_MDIO_READ_IN_ADDR_LEN 4 3626 3627 /* MC_CMD_MDIO_READ_OUT msgresponse */ 3628 #define MC_CMD_MDIO_READ_OUT_LEN 8 3629 /* Value */ 3630 #define MC_CMD_MDIO_READ_OUT_VALUE_OFST 0 3631 #define MC_CMD_MDIO_READ_OUT_VALUE_LEN 4 3632 /* Status the MDIO commands return the raw status bits from the MDIO block. A 3633 * "good" transaction should have the DONE bit set and all other bits clear. 3634 */ 3635 #define MC_CMD_MDIO_READ_OUT_STATUS_OFST 4 3636 #define MC_CMD_MDIO_READ_OUT_STATUS_LEN 4 3637 /* enum: Good. */ 3638 #define MC_CMD_MDIO_STATUS_GOOD 0x8 3639 3640 3641 /***********************************/ 3642 /* MC_CMD_MDIO_WRITE 3643 * MDIO register write. 3644 */ 3645 #define MC_CMD_MDIO_WRITE 0x11 3646 #define MC_CMD_MDIO_WRITE_MSGSET 0x11 3647 #undef MC_CMD_0x11_PRIVILEGE_CTG 3648 3649 #define MC_CMD_0x11_PRIVILEGE_CTG SRIOV_CTG_ADMIN 3650 3651 /* MC_CMD_MDIO_WRITE_IN msgrequest */ 3652 #define MC_CMD_MDIO_WRITE_IN_LEN 20 3653 /* Bus number; there are two MDIO buses: one for the internal PHY, and one for 3654 * external devices. 3655 */ 3656 #define MC_CMD_MDIO_WRITE_IN_BUS_OFST 0 3657 #define MC_CMD_MDIO_WRITE_IN_BUS_LEN 4 3658 /* enum: Internal. */ 3659 /* MC_CMD_MDIO_BUS_INTERNAL 0x0 */ 3660 /* enum: External. */ 3661 /* MC_CMD_MDIO_BUS_EXTERNAL 0x1 */ 3662 /* Port address */ 3663 #define MC_CMD_MDIO_WRITE_IN_PRTAD_OFST 4 3664 #define MC_CMD_MDIO_WRITE_IN_PRTAD_LEN 4 3665 /* Device Address or clause 22. */ 3666 #define MC_CMD_MDIO_WRITE_IN_DEVAD_OFST 8 3667 #define MC_CMD_MDIO_WRITE_IN_DEVAD_LEN 4 3668 /* enum: By default all the MCDI MDIO operations perform clause45 mode. If you 3669 * want to use clause22 then set DEVAD = MC_CMD_MDIO_CLAUSE22. 3670 */ 3671 /* MC_CMD_MDIO_CLAUSE22 0x20 */ 3672 /* Address */ 3673 #define MC_CMD_MDIO_WRITE_IN_ADDR_OFST 12 3674 #define MC_CMD_MDIO_WRITE_IN_ADDR_LEN 4 3675 /* Value */ 3676 #define MC_CMD_MDIO_WRITE_IN_VALUE_OFST 16 3677 #define MC_CMD_MDIO_WRITE_IN_VALUE_LEN 4 3678 3679 /* MC_CMD_MDIO_WRITE_OUT msgresponse */ 3680 #define MC_CMD_MDIO_WRITE_OUT_LEN 4 3681 /* Status; the MDIO commands return the raw status bits from the MDIO block. A 3682 * "good" transaction should have the DONE bit set and all other bits clear. 3683 */ 3684 #define MC_CMD_MDIO_WRITE_OUT_STATUS_OFST 0 3685 #define MC_CMD_MDIO_WRITE_OUT_STATUS_LEN 4 3686 /* enum: Good. */ 3687 /* MC_CMD_MDIO_STATUS_GOOD 0x8 */ 3688 3689 3690 /***********************************/ 3691 /* MC_CMD_DBI_WRITE 3692 * Write DBI register(s). 3693 */ 3694 #define MC_CMD_DBI_WRITE 0x12 3695 #define MC_CMD_DBI_WRITE_MSGSET 0x12 3696 #undef MC_CMD_0x12_PRIVILEGE_CTG 3697 3698 #define MC_CMD_0x12_PRIVILEGE_CTG SRIOV_CTG_INSECURE 3699 3700 /* MC_CMD_DBI_WRITE_IN msgrequest */ 3701 #define MC_CMD_DBI_WRITE_IN_LENMIN 12 3702 #define MC_CMD_DBI_WRITE_IN_LENMAX 252 3703 #define MC_CMD_DBI_WRITE_IN_LENMAX_MCDI2 1020 3704 #define MC_CMD_DBI_WRITE_IN_LEN(num) (0+12*(num)) 3705 #define MC_CMD_DBI_WRITE_IN_DBIWROP_NUM(len) (((len)-0)/12) 3706 /* Each write op consists of an address (offset 0), byte enable/VF/CS2 (offset 3707 * 32) and value (offset 64). See MC_CMD_DBIWROP_TYPEDEF. 3708 */ 3709 #define MC_CMD_DBI_WRITE_IN_DBIWROP_OFST 0 3710 #define MC_CMD_DBI_WRITE_IN_DBIWROP_LEN 12 3711 #define MC_CMD_DBI_WRITE_IN_DBIWROP_MINNUM 1 3712 #define MC_CMD_DBI_WRITE_IN_DBIWROP_MAXNUM 21 3713 #define MC_CMD_DBI_WRITE_IN_DBIWROP_MAXNUM_MCDI2 85 3714 3715 /* MC_CMD_DBI_WRITE_OUT msgresponse */ 3716 #define MC_CMD_DBI_WRITE_OUT_LEN 0 3717 3718 /* MC_CMD_DBIWROP_TYPEDEF structuredef */ 3719 #define MC_CMD_DBIWROP_TYPEDEF_LEN 12 3720 #define MC_CMD_DBIWROP_TYPEDEF_ADDRESS_OFST 0 3721 #define MC_CMD_DBIWROP_TYPEDEF_ADDRESS_LEN 4 3722 #define MC_CMD_DBIWROP_TYPEDEF_ADDRESS_LBN 0 3723 #define MC_CMD_DBIWROP_TYPEDEF_ADDRESS_WIDTH 32 3724 #define MC_CMD_DBIWROP_TYPEDEF_PARMS_OFST 4 3725 #define MC_CMD_DBIWROP_TYPEDEF_PARMS_LEN 4 3726 #define MC_CMD_DBIWROP_TYPEDEF_VF_NUM_OFST 4 3727 #define MC_CMD_DBIWROP_TYPEDEF_VF_NUM_LBN 16 3728 #define MC_CMD_DBIWROP_TYPEDEF_VF_NUM_WIDTH 16 3729 #define MC_CMD_DBIWROP_TYPEDEF_VF_ACTIVE_OFST 4 3730 #define MC_CMD_DBIWROP_TYPEDEF_VF_ACTIVE_LBN 15 3731 #define MC_CMD_DBIWROP_TYPEDEF_VF_ACTIVE_WIDTH 1 3732 #define MC_CMD_DBIWROP_TYPEDEF_CS2_OFST 4 3733 #define MC_CMD_DBIWROP_TYPEDEF_CS2_LBN 14 3734 #define MC_CMD_DBIWROP_TYPEDEF_CS2_WIDTH 1 3735 #define MC_CMD_DBIWROP_TYPEDEF_PARMS_LBN 32 3736 #define MC_CMD_DBIWROP_TYPEDEF_PARMS_WIDTH 32 3737 #define MC_CMD_DBIWROP_TYPEDEF_VALUE_OFST 8 3738 #define MC_CMD_DBIWROP_TYPEDEF_VALUE_LEN 4 3739 #define MC_CMD_DBIWROP_TYPEDEF_VALUE_LBN 64 3740 #define MC_CMD_DBIWROP_TYPEDEF_VALUE_WIDTH 32 3741 3742 3743 /***********************************/ 3744 /* MC_CMD_PORT_READ32 3745 * Read a 32-bit register from the indirect port register map. The port to 3746 * access is implied by the Shared memory channel used. 3747 */ 3748 #define MC_CMD_PORT_READ32 0x14 3749 #define MC_CMD_PORT_READ32_MSGSET 0x14 3750 3751 /* MC_CMD_PORT_READ32_IN msgrequest */ 3752 #define MC_CMD_PORT_READ32_IN_LEN 4 3753 /* Address */ 3754 #define MC_CMD_PORT_READ32_IN_ADDR_OFST 0 3755 #define MC_CMD_PORT_READ32_IN_ADDR_LEN 4 3756 3757 /* MC_CMD_PORT_READ32_OUT msgresponse */ 3758 #define MC_CMD_PORT_READ32_OUT_LEN 8 3759 /* Value */ 3760 #define MC_CMD_PORT_READ32_OUT_VALUE_OFST 0 3761 #define MC_CMD_PORT_READ32_OUT_VALUE_LEN 4 3762 /* Status */ 3763 #define MC_CMD_PORT_READ32_OUT_STATUS_OFST 4 3764 #define MC_CMD_PORT_READ32_OUT_STATUS_LEN 4 3765 3766 3767 /***********************************/ 3768 /* MC_CMD_PORT_WRITE32 3769 * Write a 32-bit register to the indirect port register map. The port to 3770 * access is implied by the Shared memory channel used. 3771 */ 3772 #define MC_CMD_PORT_WRITE32 0x15 3773 #define MC_CMD_PORT_WRITE32_MSGSET 0x15 3774 3775 /* MC_CMD_PORT_WRITE32_IN msgrequest */ 3776 #define MC_CMD_PORT_WRITE32_IN_LEN 8 3777 /* Address */ 3778 #define MC_CMD_PORT_WRITE32_IN_ADDR_OFST 0 3779 #define MC_CMD_PORT_WRITE32_IN_ADDR_LEN 4 3780 /* Value */ 3781 #define MC_CMD_PORT_WRITE32_IN_VALUE_OFST 4 3782 #define MC_CMD_PORT_WRITE32_IN_VALUE_LEN 4 3783 3784 /* MC_CMD_PORT_WRITE32_OUT msgresponse */ 3785 #define MC_CMD_PORT_WRITE32_OUT_LEN 4 3786 /* Status */ 3787 #define MC_CMD_PORT_WRITE32_OUT_STATUS_OFST 0 3788 #define MC_CMD_PORT_WRITE32_OUT_STATUS_LEN 4 3789 3790 3791 /***********************************/ 3792 /* MC_CMD_PORT_READ128 3793 * Read a 128-bit register from the indirect port register map. The port to 3794 * access is implied by the Shared memory channel used. 3795 */ 3796 #define MC_CMD_PORT_READ128 0x16 3797 #define MC_CMD_PORT_READ128_MSGSET 0x16 3798 3799 /* MC_CMD_PORT_READ128_IN msgrequest */ 3800 #define MC_CMD_PORT_READ128_IN_LEN 4 3801 /* Address */ 3802 #define MC_CMD_PORT_READ128_IN_ADDR_OFST 0 3803 #define MC_CMD_PORT_READ128_IN_ADDR_LEN 4 3804 3805 /* MC_CMD_PORT_READ128_OUT msgresponse */ 3806 #define MC_CMD_PORT_READ128_OUT_LEN 20 3807 /* Value */ 3808 #define MC_CMD_PORT_READ128_OUT_VALUE_OFST 0 3809 #define MC_CMD_PORT_READ128_OUT_VALUE_LEN 16 3810 /* Status */ 3811 #define MC_CMD_PORT_READ128_OUT_STATUS_OFST 16 3812 #define MC_CMD_PORT_READ128_OUT_STATUS_LEN 4 3813 3814 3815 /***********************************/ 3816 /* MC_CMD_PORT_WRITE128 3817 * Write a 128-bit register to the indirect port register map. The port to 3818 * access is implied by the Shared memory channel used. 3819 */ 3820 #define MC_CMD_PORT_WRITE128 0x17 3821 #define MC_CMD_PORT_WRITE128_MSGSET 0x17 3822 3823 /* MC_CMD_PORT_WRITE128_IN msgrequest */ 3824 #define MC_CMD_PORT_WRITE128_IN_LEN 20 3825 /* Address */ 3826 #define MC_CMD_PORT_WRITE128_IN_ADDR_OFST 0 3827 #define MC_CMD_PORT_WRITE128_IN_ADDR_LEN 4 3828 /* Value */ 3829 #define MC_CMD_PORT_WRITE128_IN_VALUE_OFST 4 3830 #define MC_CMD_PORT_WRITE128_IN_VALUE_LEN 16 3831 3832 /* MC_CMD_PORT_WRITE128_OUT msgresponse */ 3833 #define MC_CMD_PORT_WRITE128_OUT_LEN 4 3834 /* Status */ 3835 #define MC_CMD_PORT_WRITE128_OUT_STATUS_OFST 0 3836 #define MC_CMD_PORT_WRITE128_OUT_STATUS_LEN 4 3837 3838 /* MC_CMD_CAPABILITIES structuredef */ 3839 #define MC_CMD_CAPABILITIES_LEN 4 3840 /* Small buf table. */ 3841 #define MC_CMD_CAPABILITIES_SMALL_BUF_TBL_LBN 0 3842 #define MC_CMD_CAPABILITIES_SMALL_BUF_TBL_WIDTH 1 3843 /* Turbo mode (for Maranello). */ 3844 #define MC_CMD_CAPABILITIES_TURBO_LBN 1 3845 #define MC_CMD_CAPABILITIES_TURBO_WIDTH 1 3846 /* Turbo mode active (for Maranello). */ 3847 #define MC_CMD_CAPABILITIES_TURBO_ACTIVE_LBN 2 3848 #define MC_CMD_CAPABILITIES_TURBO_ACTIVE_WIDTH 1 3849 /* PTP offload. */ 3850 #define MC_CMD_CAPABILITIES_PTP_LBN 3 3851 #define MC_CMD_CAPABILITIES_PTP_WIDTH 1 3852 /* AOE mode. */ 3853 #define MC_CMD_CAPABILITIES_AOE_LBN 4 3854 #define MC_CMD_CAPABILITIES_AOE_WIDTH 1 3855 /* AOE mode active. */ 3856 #define MC_CMD_CAPABILITIES_AOE_ACTIVE_LBN 5 3857 #define MC_CMD_CAPABILITIES_AOE_ACTIVE_WIDTH 1 3858 /* AOE mode active. */ 3859 #define MC_CMD_CAPABILITIES_FC_ACTIVE_LBN 6 3860 #define MC_CMD_CAPABILITIES_FC_ACTIVE_WIDTH 1 3861 #define MC_CMD_CAPABILITIES_RESERVED_LBN 7 3862 #define MC_CMD_CAPABILITIES_RESERVED_WIDTH 25 3863 3864 3865 /***********************************/ 3866 /* MC_CMD_GET_BOARD_CFG 3867 * Returns the MC firmware configuration structure. 3868 */ 3869 #define MC_CMD_GET_BOARD_CFG 0x18 3870 #define MC_CMD_GET_BOARD_CFG_MSGSET 0x18 3871 #undef MC_CMD_0x18_PRIVILEGE_CTG 3872 3873 #define MC_CMD_0x18_PRIVILEGE_CTG SRIOV_CTG_GENERAL 3874 3875 /* MC_CMD_GET_BOARD_CFG_IN msgrequest */ 3876 #define MC_CMD_GET_BOARD_CFG_IN_LEN 0 3877 3878 /* MC_CMD_GET_BOARD_CFG_OUT msgresponse */ 3879 #define MC_CMD_GET_BOARD_CFG_OUT_LENMIN 96 3880 #define MC_CMD_GET_BOARD_CFG_OUT_LENMAX 136 3881 #define MC_CMD_GET_BOARD_CFG_OUT_LENMAX_MCDI2 136 3882 #define MC_CMD_GET_BOARD_CFG_OUT_LEN(num) (72+2*(num)) 3883 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_NUM(len) (((len)-72)/2) 3884 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_TYPE_OFST 0 3885 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_TYPE_LEN 4 3886 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_NAME_OFST 4 3887 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_NAME_LEN 32 3888 /* Capabilities for Siena Port0 (see struct MC_CMD_CAPABILITIES). Unused on 3889 * EF10 and later (use MC_CMD_GET_CAPABILITIES). 3890 */ 3891 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT0_OFST 36 3892 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT0_LEN 4 3893 /* Capabilities for Siena Port1 (see struct MC_CMD_CAPABILITIES). Unused on 3894 * EF10 and later (use MC_CMD_GET_CAPABILITIES). 3895 */ 3896 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT1_OFST 40 3897 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT1_LEN 4 3898 /* Base MAC address for Siena Port0. Unused on EF10 and later (use 3899 * MC_CMD_GET_MAC_ADDRESSES). 3900 */ 3901 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT0_OFST 44 3902 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT0_LEN 6 3903 /* Base MAC address for Siena Port1. Unused on EF10 and later (use 3904 * MC_CMD_GET_MAC_ADDRESSES). 3905 */ 3906 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT1_OFST 50 3907 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT1_LEN 6 3908 /* Size of MAC address pool for Siena Port0. Unused on EF10 and later (use 3909 * MC_CMD_GET_MAC_ADDRESSES). 3910 */ 3911 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT0_OFST 56 3912 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT0_LEN 4 3913 /* Size of MAC address pool for Siena Port1. Unused on EF10 and later (use 3914 * MC_CMD_GET_MAC_ADDRESSES). 3915 */ 3916 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT1_OFST 60 3917 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT1_LEN 4 3918 /* Increment between addresses in MAC address pool for Siena Port0. Unused on 3919 * EF10 and later (use MC_CMD_GET_MAC_ADDRESSES). 3920 */ 3921 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT0_OFST 64 3922 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT0_LEN 4 3923 /* Increment between addresses in MAC address pool for Siena Port1. Unused on 3924 * EF10 and later (use MC_CMD_GET_MAC_ADDRESSES). 3925 */ 3926 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT1_OFST 68 3927 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT1_LEN 4 3928 /* Siena only. This field contains a 16-bit value for each of the types of 3929 * NVRAM area. The values are defined in the firmware/mc/platform/.c file for a 3930 * specific board type, but otherwise have no meaning to the MC; they are used 3931 * by the driver to manage selection of appropriate firmware updates. Unused on 3932 * EF10 and later (use MC_CMD_NVRAM_METADATA). 3933 */ 3934 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_OFST 72 3935 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_LEN 2 3936 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_MINNUM 12 3937 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_MAXNUM 32 3938 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_MAXNUM_MCDI2 32 3939 3940 3941 /***********************************/ 3942 /* MC_CMD_DBI_READX 3943 * Read DBI register(s) -- extended functionality 3944 */ 3945 #define MC_CMD_DBI_READX 0x19 3946 #define MC_CMD_DBI_READX_MSGSET 0x19 3947 #undef MC_CMD_0x19_PRIVILEGE_CTG 3948 3949 #define MC_CMD_0x19_PRIVILEGE_CTG SRIOV_CTG_INSECURE 3950 3951 /* MC_CMD_DBI_READX_IN msgrequest */ 3952 #define MC_CMD_DBI_READX_IN_LENMIN 8 3953 #define MC_CMD_DBI_READX_IN_LENMAX 248 3954 #define MC_CMD_DBI_READX_IN_LENMAX_MCDI2 1016 3955 #define MC_CMD_DBI_READX_IN_LEN(num) (0+8*(num)) 3956 #define MC_CMD_DBI_READX_IN_DBIRDOP_NUM(len) (((len)-0)/8) 3957 /* Each Read op consists of an address (offset 0), VF/CS2) */ 3958 #define MC_CMD_DBI_READX_IN_DBIRDOP_OFST 0 3959 #define MC_CMD_DBI_READX_IN_DBIRDOP_LEN 8 3960 #define MC_CMD_DBI_READX_IN_DBIRDOP_LO_OFST 0 3961 #define MC_CMD_DBI_READX_IN_DBIRDOP_LO_LEN 4 3962 #define MC_CMD_DBI_READX_IN_DBIRDOP_LO_LBN 0 3963 #define MC_CMD_DBI_READX_IN_DBIRDOP_LO_WIDTH 32 3964 #define MC_CMD_DBI_READX_IN_DBIRDOP_HI_OFST 4 3965 #define MC_CMD_DBI_READX_IN_DBIRDOP_HI_LEN 4 3966 #define MC_CMD_DBI_READX_IN_DBIRDOP_HI_LBN 32 3967 #define MC_CMD_DBI_READX_IN_DBIRDOP_HI_WIDTH 32 3968 #define MC_CMD_DBI_READX_IN_DBIRDOP_MINNUM 1 3969 #define MC_CMD_DBI_READX_IN_DBIRDOP_MAXNUM 31 3970 #define MC_CMD_DBI_READX_IN_DBIRDOP_MAXNUM_MCDI2 127 3971 3972 /* MC_CMD_DBI_READX_OUT msgresponse */ 3973 #define MC_CMD_DBI_READX_OUT_LENMIN 4 3974 #define MC_CMD_DBI_READX_OUT_LENMAX 252 3975 #define MC_CMD_DBI_READX_OUT_LENMAX_MCDI2 1020 3976 #define MC_CMD_DBI_READX_OUT_LEN(num) (0+4*(num)) 3977 #define MC_CMD_DBI_READX_OUT_VALUE_NUM(len) (((len)-0)/4) 3978 /* Value */ 3979 #define MC_CMD_DBI_READX_OUT_VALUE_OFST 0 3980 #define MC_CMD_DBI_READX_OUT_VALUE_LEN 4 3981 #define MC_CMD_DBI_READX_OUT_VALUE_MINNUM 1 3982 #define MC_CMD_DBI_READX_OUT_VALUE_MAXNUM 63 3983 #define MC_CMD_DBI_READX_OUT_VALUE_MAXNUM_MCDI2 255 3984 3985 /* MC_CMD_DBIRDOP_TYPEDEF structuredef */ 3986 #define MC_CMD_DBIRDOP_TYPEDEF_LEN 8 3987 #define MC_CMD_DBIRDOP_TYPEDEF_ADDRESS_OFST 0 3988 #define MC_CMD_DBIRDOP_TYPEDEF_ADDRESS_LEN 4 3989 #define MC_CMD_DBIRDOP_TYPEDEF_ADDRESS_LBN 0 3990 #define MC_CMD_DBIRDOP_TYPEDEF_ADDRESS_WIDTH 32 3991 #define MC_CMD_DBIRDOP_TYPEDEF_PARMS_OFST 4 3992 #define MC_CMD_DBIRDOP_TYPEDEF_PARMS_LEN 4 3993 #define MC_CMD_DBIRDOP_TYPEDEF_VF_NUM_OFST 4 3994 #define MC_CMD_DBIRDOP_TYPEDEF_VF_NUM_LBN 16 3995 #define MC_CMD_DBIRDOP_TYPEDEF_VF_NUM_WIDTH 16 3996 #define MC_CMD_DBIRDOP_TYPEDEF_VF_ACTIVE_OFST 4 3997 #define MC_CMD_DBIRDOP_TYPEDEF_VF_ACTIVE_LBN 15 3998 #define MC_CMD_DBIRDOP_TYPEDEF_VF_ACTIVE_WIDTH 1 3999 #define MC_CMD_DBIRDOP_TYPEDEF_CS2_OFST 4 4000 #define MC_CMD_DBIRDOP_TYPEDEF_CS2_LBN 14 4001 #define MC_CMD_DBIRDOP_TYPEDEF_CS2_WIDTH 1 4002 #define MC_CMD_DBIRDOP_TYPEDEF_PARMS_LBN 32 4003 #define MC_CMD_DBIRDOP_TYPEDEF_PARMS_WIDTH 32 4004 4005 4006 /***********************************/ 4007 /* MC_CMD_SET_RAND_SEED 4008 * Set the 16byte seed for the MC pseudo-random generator. 4009 */ 4010 #define MC_CMD_SET_RAND_SEED 0x1a 4011 #define MC_CMD_SET_RAND_SEED_MSGSET 0x1a 4012 #undef MC_CMD_0x1a_PRIVILEGE_CTG 4013 4014 #define MC_CMD_0x1a_PRIVILEGE_CTG SRIOV_CTG_INSECURE 4015 4016 /* MC_CMD_SET_RAND_SEED_IN msgrequest */ 4017 #define MC_CMD_SET_RAND_SEED_IN_LEN 16 4018 /* Seed value. */ 4019 #define MC_CMD_SET_RAND_SEED_IN_SEED_OFST 0 4020 #define MC_CMD_SET_RAND_SEED_IN_SEED_LEN 16 4021 4022 /* MC_CMD_SET_RAND_SEED_OUT msgresponse */ 4023 #define MC_CMD_SET_RAND_SEED_OUT_LEN 0 4024 4025 4026 /***********************************/ 4027 /* MC_CMD_LTSSM_HIST 4028 * Retrieve the history of the LTSSM, if the build supports it. 4029 */ 4030 #define MC_CMD_LTSSM_HIST 0x1b 4031 #define MC_CMD_LTSSM_HIST_MSGSET 0x1b 4032 4033 /* MC_CMD_LTSSM_HIST_IN msgrequest */ 4034 #define MC_CMD_LTSSM_HIST_IN_LEN 0 4035 4036 /* MC_CMD_LTSSM_HIST_OUT msgresponse */ 4037 #define MC_CMD_LTSSM_HIST_OUT_LENMIN 0 4038 #define MC_CMD_LTSSM_HIST_OUT_LENMAX 252 4039 #define MC_CMD_LTSSM_HIST_OUT_LENMAX_MCDI2 1020 4040 #define MC_CMD_LTSSM_HIST_OUT_LEN(num) (0+4*(num)) 4041 #define MC_CMD_LTSSM_HIST_OUT_DATA_NUM(len) (((len)-0)/4) 4042 /* variable number of LTSSM values, as bytes. The history is read-to-clear. */ 4043 #define MC_CMD_LTSSM_HIST_OUT_DATA_OFST 0 4044 #define MC_CMD_LTSSM_HIST_OUT_DATA_LEN 4 4045 #define MC_CMD_LTSSM_HIST_OUT_DATA_MINNUM 0 4046 #define MC_CMD_LTSSM_HIST_OUT_DATA_MAXNUM 63 4047 #define MC_CMD_LTSSM_HIST_OUT_DATA_MAXNUM_MCDI2 255 4048 4049 4050 /***********************************/ 4051 /* MC_CMD_DRV_ATTACH 4052 * Inform MCPU that this port is managed on the host (i.e. driver active). For 4053 * Huntington, also request the preferred datapath firmware to use if possible 4054 * (it may not be possible for this request to be fulfilled; the driver must 4055 * issue a subsequent MC_CMD_GET_CAPABILITIES command to determine which 4056 * features are actually available). The FIRMWARE_ID field is ignored by older 4057 * platforms. 4058 */ 4059 #define MC_CMD_DRV_ATTACH 0x1c 4060 #define MC_CMD_DRV_ATTACH_MSGSET 0x1c 4061 #undef MC_CMD_0x1c_PRIVILEGE_CTG 4062 4063 #define MC_CMD_0x1c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 4064 4065 /* MC_CMD_DRV_ATTACH_IN msgrequest */ 4066 #define MC_CMD_DRV_ATTACH_IN_LEN 12 4067 /* new state to set if UPDATE=1 */ 4068 #define MC_CMD_DRV_ATTACH_IN_NEW_STATE_OFST 0 4069 #define MC_CMD_DRV_ATTACH_IN_NEW_STATE_LEN 4 4070 #define MC_CMD_DRV_ATTACH_OFST 0 4071 #define MC_CMD_DRV_ATTACH_LBN 0 4072 #define MC_CMD_DRV_ATTACH_WIDTH 1 4073 #define MC_CMD_DRV_ATTACH_IN_ATTACH_OFST 0 4074 #define MC_CMD_DRV_ATTACH_IN_ATTACH_LBN 0 4075 #define MC_CMD_DRV_ATTACH_IN_ATTACH_WIDTH 1 4076 #define MC_CMD_DRV_PREBOOT_OFST 0 4077 #define MC_CMD_DRV_PREBOOT_LBN 1 4078 #define MC_CMD_DRV_PREBOOT_WIDTH 1 4079 #define MC_CMD_DRV_ATTACH_IN_PREBOOT_OFST 0 4080 #define MC_CMD_DRV_ATTACH_IN_PREBOOT_LBN 1 4081 #define MC_CMD_DRV_ATTACH_IN_PREBOOT_WIDTH 1 4082 #define MC_CMD_DRV_ATTACH_IN_SUBVARIANT_AWARE_OFST 0 4083 #define MC_CMD_DRV_ATTACH_IN_SUBVARIANT_AWARE_LBN 2 4084 #define MC_CMD_DRV_ATTACH_IN_SUBVARIANT_AWARE_WIDTH 1 4085 #define MC_CMD_DRV_ATTACH_IN_WANT_VI_SPREADING_OFST 0 4086 #define MC_CMD_DRV_ATTACH_IN_WANT_VI_SPREADING_LBN 3 4087 #define MC_CMD_DRV_ATTACH_IN_WANT_VI_SPREADING_WIDTH 1 4088 #define MC_CMD_DRV_ATTACH_IN_WANT_V2_LINKCHANGES_OFST 0 4089 #define MC_CMD_DRV_ATTACH_IN_WANT_V2_LINKCHANGES_LBN 4 4090 #define MC_CMD_DRV_ATTACH_IN_WANT_V2_LINKCHANGES_WIDTH 1 4091 #define MC_CMD_DRV_ATTACH_IN_WANT_RX_VI_SPREADING_INHIBIT_OFST 0 4092 #define MC_CMD_DRV_ATTACH_IN_WANT_RX_VI_SPREADING_INHIBIT_LBN 5 4093 #define MC_CMD_DRV_ATTACH_IN_WANT_RX_VI_SPREADING_INHIBIT_WIDTH 1 4094 #define MC_CMD_DRV_ATTACH_IN_WANT_TX_ONLY_SPREADING_OFST 0 4095 #define MC_CMD_DRV_ATTACH_IN_WANT_TX_ONLY_SPREADING_LBN 5 4096 #define MC_CMD_DRV_ATTACH_IN_WANT_TX_ONLY_SPREADING_WIDTH 1 4097 /* 1 to set new state, or 0 to just report the existing state */ 4098 #define MC_CMD_DRV_ATTACH_IN_UPDATE_OFST 4 4099 #define MC_CMD_DRV_ATTACH_IN_UPDATE_LEN 4 4100 /* preferred datapath firmware (for Huntington; ignored for Siena) */ 4101 #define MC_CMD_DRV_ATTACH_IN_FIRMWARE_ID_OFST 8 4102 #define MC_CMD_DRV_ATTACH_IN_FIRMWARE_ID_LEN 4 4103 /* enum: Prefer to use full featured firmware */ 4104 #define MC_CMD_FW_FULL_FEATURED 0x0 4105 /* enum: Prefer to use firmware with fewer features but lower latency */ 4106 #define MC_CMD_FW_LOW_LATENCY 0x1 4107 /* enum: Prefer to use firmware for SolarCapture packed stream mode */ 4108 #define MC_CMD_FW_PACKED_STREAM 0x2 4109 /* enum: Prefer to use firmware with fewer features and simpler TX event 4110 * batching but higher TX packet rate 4111 */ 4112 #define MC_CMD_FW_HIGH_TX_RATE 0x3 4113 /* enum: Reserved value */ 4114 #define MC_CMD_FW_PACKED_STREAM_HASH_MODE_1 0x4 4115 /* enum: Prefer to use firmware with additional "rules engine" filtering 4116 * support 4117 */ 4118 #define MC_CMD_FW_RULES_ENGINE 0x5 4119 /* enum: Prefer to use firmware with additional DPDK support */ 4120 #define MC_CMD_FW_DPDK 0x6 4121 /* enum: Prefer to use "l3xudp" custom datapath firmware (see SF-119495-PD and 4122 * bug69716) 4123 */ 4124 #define MC_CMD_FW_L3XUDP 0x7 4125 /* enum: Requests that the MC keep whatever datapath firmware is currently 4126 * running. It's used for test purposes, where we want to be able to shmboot 4127 * special test firmware variants. This option is only recognised in eftest 4128 * (i.e. non-production) builds. 4129 */ 4130 #define MC_CMD_FW_KEEP_CURRENT_EFTEST_ONLY 0xfffffffe 4131 /* enum: Only this option is allowed for non-admin functions */ 4132 #define MC_CMD_FW_DONT_CARE 0xffffffff 4133 4134 /* MC_CMD_DRV_ATTACH_IN_V2 msgrequest: Updated DRV_ATTACH to include driver 4135 * version 4136 */ 4137 #define MC_CMD_DRV_ATTACH_IN_V2_LEN 32 4138 /* new state to set if UPDATE=1 */ 4139 #define MC_CMD_DRV_ATTACH_IN_V2_NEW_STATE_OFST 0 4140 #define MC_CMD_DRV_ATTACH_IN_V2_NEW_STATE_LEN 4 4141 /* MC_CMD_DRV_ATTACH_OFST 0 */ 4142 /* MC_CMD_DRV_ATTACH_LBN 0 */ 4143 /* MC_CMD_DRV_ATTACH_WIDTH 1 */ 4144 #define MC_CMD_DRV_ATTACH_IN_V2_ATTACH_OFST 0 4145 #define MC_CMD_DRV_ATTACH_IN_V2_ATTACH_LBN 0 4146 #define MC_CMD_DRV_ATTACH_IN_V2_ATTACH_WIDTH 1 4147 /* MC_CMD_DRV_PREBOOT_OFST 0 */ 4148 /* MC_CMD_DRV_PREBOOT_LBN 1 */ 4149 /* MC_CMD_DRV_PREBOOT_WIDTH 1 */ 4150 #define MC_CMD_DRV_ATTACH_IN_V2_PREBOOT_OFST 0 4151 #define MC_CMD_DRV_ATTACH_IN_V2_PREBOOT_LBN 1 4152 #define MC_CMD_DRV_ATTACH_IN_V2_PREBOOT_WIDTH 1 4153 #define MC_CMD_DRV_ATTACH_IN_V2_SUBVARIANT_AWARE_OFST 0 4154 #define MC_CMD_DRV_ATTACH_IN_V2_SUBVARIANT_AWARE_LBN 2 4155 #define MC_CMD_DRV_ATTACH_IN_V2_SUBVARIANT_AWARE_WIDTH 1 4156 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_VI_SPREADING_OFST 0 4157 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_VI_SPREADING_LBN 3 4158 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_VI_SPREADING_WIDTH 1 4159 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_V2_LINKCHANGES_OFST 0 4160 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_V2_LINKCHANGES_LBN 4 4161 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_V2_LINKCHANGES_WIDTH 1 4162 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_RX_VI_SPREADING_INHIBIT_OFST 0 4163 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_RX_VI_SPREADING_INHIBIT_LBN 5 4164 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_RX_VI_SPREADING_INHIBIT_WIDTH 1 4165 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_TX_ONLY_SPREADING_OFST 0 4166 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_TX_ONLY_SPREADING_LBN 5 4167 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_TX_ONLY_SPREADING_WIDTH 1 4168 /* 1 to set new state, or 0 to just report the existing state */ 4169 #define MC_CMD_DRV_ATTACH_IN_V2_UPDATE_OFST 4 4170 #define MC_CMD_DRV_ATTACH_IN_V2_UPDATE_LEN 4 4171 /* preferred datapath firmware (for Huntington; ignored for Siena) */ 4172 #define MC_CMD_DRV_ATTACH_IN_V2_FIRMWARE_ID_OFST 8 4173 #define MC_CMD_DRV_ATTACH_IN_V2_FIRMWARE_ID_LEN 4 4174 /* enum: Prefer to use full featured firmware */ 4175 /* MC_CMD_FW_FULL_FEATURED 0x0 */ 4176 /* enum: Prefer to use firmware with fewer features but lower latency */ 4177 /* MC_CMD_FW_LOW_LATENCY 0x1 */ 4178 /* enum: Prefer to use firmware for SolarCapture packed stream mode */ 4179 /* MC_CMD_FW_PACKED_STREAM 0x2 */ 4180 /* enum: Prefer to use firmware with fewer features and simpler TX event 4181 * batching but higher TX packet rate 4182 */ 4183 /* MC_CMD_FW_HIGH_TX_RATE 0x3 */ 4184 /* enum: Reserved value */ 4185 /* MC_CMD_FW_PACKED_STREAM_HASH_MODE_1 0x4 */ 4186 /* enum: Prefer to use firmware with additional "rules engine" filtering 4187 * support 4188 */ 4189 /* MC_CMD_FW_RULES_ENGINE 0x5 */ 4190 /* enum: Prefer to use firmware with additional DPDK support */ 4191 /* MC_CMD_FW_DPDK 0x6 */ 4192 /* enum: Prefer to use "l3xudp" custom datapath firmware (see SF-119495-PD and 4193 * bug69716) 4194 */ 4195 /* MC_CMD_FW_L3XUDP 0x7 */ 4196 /* enum: Requests that the MC keep whatever datapath firmware is currently 4197 * running. It's used for test purposes, where we want to be able to shmboot 4198 * special test firmware variants. This option is only recognised in eftest 4199 * (i.e. non-production) builds. 4200 */ 4201 /* MC_CMD_FW_KEEP_CURRENT_EFTEST_ONLY 0xfffffffe */ 4202 /* enum: Only this option is allowed for non-admin functions */ 4203 /* MC_CMD_FW_DONT_CARE 0xffffffff */ 4204 /* Version of the driver to be reported by management protocols (e.g. NC-SI) 4205 * handled by the NIC. This is a zero-terminated ASCII string. 4206 */ 4207 #define MC_CMD_DRV_ATTACH_IN_V2_DRIVER_VERSION_OFST 12 4208 #define MC_CMD_DRV_ATTACH_IN_V2_DRIVER_VERSION_LEN 20 4209 4210 /* MC_CMD_DRV_ATTACH_OUT msgresponse */ 4211 #define MC_CMD_DRV_ATTACH_OUT_LEN 4 4212 /* previous or existing state, see the bitmask at NEW_STATE */ 4213 #define MC_CMD_DRV_ATTACH_OUT_OLD_STATE_OFST 0 4214 #define MC_CMD_DRV_ATTACH_OUT_OLD_STATE_LEN 4 4215 4216 /* MC_CMD_DRV_ATTACH_EXT_OUT msgresponse */ 4217 #define MC_CMD_DRV_ATTACH_EXT_OUT_LEN 8 4218 /* previous or existing state, see the bitmask at NEW_STATE */ 4219 #define MC_CMD_DRV_ATTACH_EXT_OUT_OLD_STATE_OFST 0 4220 #define MC_CMD_DRV_ATTACH_EXT_OUT_OLD_STATE_LEN 4 4221 /* Flags associated with this function */ 4222 #define MC_CMD_DRV_ATTACH_EXT_OUT_FUNC_FLAGS_OFST 4 4223 #define MC_CMD_DRV_ATTACH_EXT_OUT_FUNC_FLAGS_LEN 4 4224 /* enum: Labels the lowest-numbered function visible to the OS */ 4225 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_PRIMARY 0x0 4226 /* enum: The function can control the link state of the physical port it is 4227 * bound to. 4228 */ 4229 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_LINKCTRL 0x1 4230 /* enum: The function can perform privileged operations */ 4231 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_TRUSTED 0x2 4232 /* enum: The function does not have an active port associated with it. The port 4233 * refers to the Sorrento external FPGA port. 4234 */ 4235 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_NO_ACTIVE_PORT 0x3 4236 /* enum: If set, indicates that VI spreading is currently enabled. Will always 4237 * indicate the current state, regardless of the value in the WANT_VI_SPREADING 4238 * input. 4239 */ 4240 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_VI_SPREADING_ENABLED 0x4 4241 /* enum: Used during development only. Should no longer be used. */ 4242 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_RX_VI_SPREADING_INHIBITED 0x5 4243 /* enum: If set, indicates that TX only spreading is enabled. Even-numbered 4244 * TXQs will use one engine, and odd-numbered TXQs will use the other. This 4245 * also has the effect that only even-numbered RXQs will receive traffic. 4246 */ 4247 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_TX_ONLY_VI_SPREADING_ENABLED 0x5 4248 4249 4250 /***********************************/ 4251 /* MC_CMD_SHMUART 4252 * Route UART output to circular buffer in shared memory instead. 4253 */ 4254 #define MC_CMD_SHMUART 0x1f 4255 #define MC_CMD_SHMUART_MSGSET 0x1f 4256 4257 /* MC_CMD_SHMUART_IN msgrequest */ 4258 #define MC_CMD_SHMUART_IN_LEN 4 4259 /* ??? */ 4260 #define MC_CMD_SHMUART_IN_FLAG_OFST 0 4261 #define MC_CMD_SHMUART_IN_FLAG_LEN 4 4262 4263 /* MC_CMD_SHMUART_OUT msgresponse */ 4264 #define MC_CMD_SHMUART_OUT_LEN 0 4265 4266 4267 /***********************************/ 4268 /* MC_CMD_PORT_RESET 4269 * Generic per-port reset. There is no equivalent for per-board reset. Locks 4270 * required: None; Return code: 0, ETIME. NOTE: This command is deprecated - 4271 * use MC_CMD_ENTITY_RESET instead. 4272 */ 4273 #define MC_CMD_PORT_RESET 0x20 4274 #define MC_CMD_PORT_RESET_MSGSET 0x20 4275 #undef MC_CMD_0x20_PRIVILEGE_CTG 4276 4277 #define MC_CMD_0x20_PRIVILEGE_CTG SRIOV_CTG_GENERAL 4278 4279 /* MC_CMD_PORT_RESET_IN msgrequest */ 4280 #define MC_CMD_PORT_RESET_IN_LEN 0 4281 4282 /* MC_CMD_PORT_RESET_OUT msgresponse */ 4283 #define MC_CMD_PORT_RESET_OUT_LEN 0 4284 4285 4286 /***********************************/ 4287 /* MC_CMD_ENTITY_RESET 4288 * Generic per-resource reset. There is no equivalent for per-board reset. 4289 * Locks required: None; Return code: 0, ETIME. NOTE: This command is an 4290 * extended version of the deprecated MC_CMD_PORT_RESET with added fields. 4291 */ 4292 #define MC_CMD_ENTITY_RESET 0x20 4293 #define MC_CMD_ENTITY_RESET_MSGSET 0x20 4294 /* MC_CMD_0x20_PRIVILEGE_CTG SRIOV_CTG_GENERAL */ 4295 4296 /* MC_CMD_ENTITY_RESET_IN msgrequest */ 4297 #define MC_CMD_ENTITY_RESET_IN_LEN 4 4298 /* Optional flags field. Omitting this will perform a "legacy" reset action 4299 * (TBD). 4300 */ 4301 #define MC_CMD_ENTITY_RESET_IN_FLAG_OFST 0 4302 #define MC_CMD_ENTITY_RESET_IN_FLAG_LEN 4 4303 #define MC_CMD_ENTITY_RESET_IN_FUNCTION_RESOURCE_RESET_OFST 0 4304 #define MC_CMD_ENTITY_RESET_IN_FUNCTION_RESOURCE_RESET_LBN 0 4305 #define MC_CMD_ENTITY_RESET_IN_FUNCTION_RESOURCE_RESET_WIDTH 1 4306 4307 /* MC_CMD_ENTITY_RESET_OUT msgresponse */ 4308 #define MC_CMD_ENTITY_RESET_OUT_LEN 0 4309 4310 4311 /***********************************/ 4312 /* MC_CMD_PCIE_CREDITS 4313 * Read instantaneous and minimum flow control thresholds. 4314 */ 4315 #define MC_CMD_PCIE_CREDITS 0x21 4316 #define MC_CMD_PCIE_CREDITS_MSGSET 0x21 4317 4318 /* MC_CMD_PCIE_CREDITS_IN msgrequest */ 4319 #define MC_CMD_PCIE_CREDITS_IN_LEN 8 4320 /* poll period. 0 is disabled */ 4321 #define MC_CMD_PCIE_CREDITS_IN_POLL_PERIOD_OFST 0 4322 #define MC_CMD_PCIE_CREDITS_IN_POLL_PERIOD_LEN 4 4323 /* wipe statistics */ 4324 #define MC_CMD_PCIE_CREDITS_IN_WIPE_OFST 4 4325 #define MC_CMD_PCIE_CREDITS_IN_WIPE_LEN 4 4326 4327 /* MC_CMD_PCIE_CREDITS_OUT msgresponse */ 4328 #define MC_CMD_PCIE_CREDITS_OUT_LEN 16 4329 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_P_HDR_OFST 0 4330 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_P_HDR_LEN 2 4331 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_P_DATA_OFST 2 4332 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_P_DATA_LEN 2 4333 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_NP_HDR_OFST 4 4334 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_NP_HDR_LEN 2 4335 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_NP_DATA_OFST 6 4336 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_NP_DATA_LEN 2 4337 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_P_HDR_OFST 8 4338 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_P_HDR_LEN 2 4339 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_P_DATA_OFST 10 4340 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_P_DATA_LEN 2 4341 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_NP_HDR_OFST 12 4342 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_NP_HDR_LEN 2 4343 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_NP_DATA_OFST 14 4344 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_NP_DATA_LEN 2 4345 4346 4347 /***********************************/ 4348 /* MC_CMD_RXD_MONITOR 4349 * Get histogram of RX queue fill level. 4350 */ 4351 #define MC_CMD_RXD_MONITOR 0x22 4352 #define MC_CMD_RXD_MONITOR_MSGSET 0x22 4353 4354 /* MC_CMD_RXD_MONITOR_IN msgrequest */ 4355 #define MC_CMD_RXD_MONITOR_IN_LEN 12 4356 #define MC_CMD_RXD_MONITOR_IN_QID_OFST 0 4357 #define MC_CMD_RXD_MONITOR_IN_QID_LEN 4 4358 #define MC_CMD_RXD_MONITOR_IN_POLL_PERIOD_OFST 4 4359 #define MC_CMD_RXD_MONITOR_IN_POLL_PERIOD_LEN 4 4360 #define MC_CMD_RXD_MONITOR_IN_WIPE_OFST 8 4361 #define MC_CMD_RXD_MONITOR_IN_WIPE_LEN 4 4362 4363 /* MC_CMD_RXD_MONITOR_OUT msgresponse */ 4364 #define MC_CMD_RXD_MONITOR_OUT_LEN 80 4365 #define MC_CMD_RXD_MONITOR_OUT_QID_OFST 0 4366 #define MC_CMD_RXD_MONITOR_OUT_QID_LEN 4 4367 #define MC_CMD_RXD_MONITOR_OUT_RING_FILL_OFST 4 4368 #define MC_CMD_RXD_MONITOR_OUT_RING_FILL_LEN 4 4369 #define MC_CMD_RXD_MONITOR_OUT_CACHE_FILL_OFST 8 4370 #define MC_CMD_RXD_MONITOR_OUT_CACHE_FILL_LEN 4 4371 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_1_OFST 12 4372 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_1_LEN 4 4373 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_2_OFST 16 4374 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_2_LEN 4 4375 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_4_OFST 20 4376 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_4_LEN 4 4377 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_8_OFST 24 4378 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_8_LEN 4 4379 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_16_OFST 28 4380 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_16_LEN 4 4381 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_32_OFST 32 4382 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_32_LEN 4 4383 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_64_OFST 36 4384 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_64_LEN 4 4385 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_128_OFST 40 4386 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_128_LEN 4 4387 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_256_OFST 44 4388 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_256_LEN 4 4389 #define MC_CMD_RXD_MONITOR_OUT_RING_GE_256_OFST 48 4390 #define MC_CMD_RXD_MONITOR_OUT_RING_GE_256_LEN 4 4391 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_1_OFST 52 4392 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_1_LEN 4 4393 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_2_OFST 56 4394 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_2_LEN 4 4395 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_4_OFST 60 4396 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_4_LEN 4 4397 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_8_OFST 64 4398 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_8_LEN 4 4399 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_16_OFST 68 4400 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_16_LEN 4 4401 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_32_OFST 72 4402 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_32_LEN 4 4403 #define MC_CMD_RXD_MONITOR_OUT_CACHE_GE_32_OFST 76 4404 #define MC_CMD_RXD_MONITOR_OUT_CACHE_GE_32_LEN 4 4405 4406 4407 /***********************************/ 4408 /* MC_CMD_PUTS 4409 * Copy the given ASCII string out onto UART and/or out of the network port. 4410 */ 4411 #define MC_CMD_PUTS 0x23 4412 #define MC_CMD_PUTS_MSGSET 0x23 4413 #undef MC_CMD_0x23_PRIVILEGE_CTG 4414 4415 #define MC_CMD_0x23_PRIVILEGE_CTG SRIOV_CTG_INSECURE 4416 4417 /* MC_CMD_PUTS_IN msgrequest */ 4418 #define MC_CMD_PUTS_IN_LENMIN 13 4419 #define MC_CMD_PUTS_IN_LENMAX 252 4420 #define MC_CMD_PUTS_IN_LENMAX_MCDI2 1020 4421 #define MC_CMD_PUTS_IN_LEN(num) (12+1*(num)) 4422 #define MC_CMD_PUTS_IN_STRING_NUM(len) (((len)-12)/1) 4423 #define MC_CMD_PUTS_IN_DEST_OFST 0 4424 #define MC_CMD_PUTS_IN_DEST_LEN 4 4425 #define MC_CMD_PUTS_IN_UART_OFST 0 4426 #define MC_CMD_PUTS_IN_UART_LBN 0 4427 #define MC_CMD_PUTS_IN_UART_WIDTH 1 4428 #define MC_CMD_PUTS_IN_PORT_OFST 0 4429 #define MC_CMD_PUTS_IN_PORT_LBN 1 4430 #define MC_CMD_PUTS_IN_PORT_WIDTH 1 4431 #define MC_CMD_PUTS_IN_DHOST_OFST 4 4432 #define MC_CMD_PUTS_IN_DHOST_LEN 6 4433 #define MC_CMD_PUTS_IN_STRING_OFST 12 4434 #define MC_CMD_PUTS_IN_STRING_LEN 1 4435 #define MC_CMD_PUTS_IN_STRING_MINNUM 1 4436 #define MC_CMD_PUTS_IN_STRING_MAXNUM 240 4437 #define MC_CMD_PUTS_IN_STRING_MAXNUM_MCDI2 1008 4438 4439 /* MC_CMD_PUTS_OUT msgresponse */ 4440 #define MC_CMD_PUTS_OUT_LEN 0 4441 4442 4443 /***********************************/ 4444 /* MC_CMD_GET_PHY_CFG 4445 * Report PHY configuration. This guarantees to succeed even if the PHY is in a 4446 * 'zombie' state. Locks required: None 4447 */ 4448 #define MC_CMD_GET_PHY_CFG 0x24 4449 #define MC_CMD_GET_PHY_CFG_MSGSET 0x24 4450 #undef MC_CMD_0x24_PRIVILEGE_CTG 4451 4452 #define MC_CMD_0x24_PRIVILEGE_CTG SRIOV_CTG_GENERAL 4453 4454 /* MC_CMD_GET_PHY_CFG_IN msgrequest */ 4455 #define MC_CMD_GET_PHY_CFG_IN_LEN 0 4456 4457 /* MC_CMD_GET_PHY_CFG_OUT msgresponse */ 4458 #define MC_CMD_GET_PHY_CFG_OUT_LEN 72 4459 /* flags */ 4460 #define MC_CMD_GET_PHY_CFG_OUT_FLAGS_OFST 0 4461 #define MC_CMD_GET_PHY_CFG_OUT_FLAGS_LEN 4 4462 #define MC_CMD_GET_PHY_CFG_OUT_PRESENT_OFST 0 4463 #define MC_CMD_GET_PHY_CFG_OUT_PRESENT_LBN 0 4464 #define MC_CMD_GET_PHY_CFG_OUT_PRESENT_WIDTH 1 4465 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_SHORT_OFST 0 4466 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_SHORT_LBN 1 4467 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_SHORT_WIDTH 1 4468 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_LONG_OFST 0 4469 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_LONG_LBN 2 4470 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_LONG_WIDTH 1 4471 #define MC_CMD_GET_PHY_CFG_OUT_LOWPOWER_OFST 0 4472 #define MC_CMD_GET_PHY_CFG_OUT_LOWPOWER_LBN 3 4473 #define MC_CMD_GET_PHY_CFG_OUT_LOWPOWER_WIDTH 1 4474 #define MC_CMD_GET_PHY_CFG_OUT_POWEROFF_OFST 0 4475 #define MC_CMD_GET_PHY_CFG_OUT_POWEROFF_LBN 4 4476 #define MC_CMD_GET_PHY_CFG_OUT_POWEROFF_WIDTH 1 4477 #define MC_CMD_GET_PHY_CFG_OUT_TXDIS_OFST 0 4478 #define MC_CMD_GET_PHY_CFG_OUT_TXDIS_LBN 5 4479 #define MC_CMD_GET_PHY_CFG_OUT_TXDIS_WIDTH 1 4480 #define MC_CMD_GET_PHY_CFG_OUT_BIST_OFST 0 4481 #define MC_CMD_GET_PHY_CFG_OUT_BIST_LBN 6 4482 #define MC_CMD_GET_PHY_CFG_OUT_BIST_WIDTH 1 4483 /* ?? */ 4484 #define MC_CMD_GET_PHY_CFG_OUT_TYPE_OFST 4 4485 #define MC_CMD_GET_PHY_CFG_OUT_TYPE_LEN 4 4486 /* Bitmask of supported capabilities */ 4487 #define MC_CMD_GET_PHY_CFG_OUT_SUPPORTED_CAP_OFST 8 4488 #define MC_CMD_GET_PHY_CFG_OUT_SUPPORTED_CAP_LEN 4 4489 #define MC_CMD_PHY_CAP_10HDX_OFST 8 4490 #define MC_CMD_PHY_CAP_10HDX_LBN 1 4491 #define MC_CMD_PHY_CAP_10HDX_WIDTH 1 4492 #define MC_CMD_PHY_CAP_10FDX_OFST 8 4493 #define MC_CMD_PHY_CAP_10FDX_LBN 2 4494 #define MC_CMD_PHY_CAP_10FDX_WIDTH 1 4495 #define MC_CMD_PHY_CAP_100HDX_OFST 8 4496 #define MC_CMD_PHY_CAP_100HDX_LBN 3 4497 #define MC_CMD_PHY_CAP_100HDX_WIDTH 1 4498 #define MC_CMD_PHY_CAP_100FDX_OFST 8 4499 #define MC_CMD_PHY_CAP_100FDX_LBN 4 4500 #define MC_CMD_PHY_CAP_100FDX_WIDTH 1 4501 #define MC_CMD_PHY_CAP_1000HDX_OFST 8 4502 #define MC_CMD_PHY_CAP_1000HDX_LBN 5 4503 #define MC_CMD_PHY_CAP_1000HDX_WIDTH 1 4504 #define MC_CMD_PHY_CAP_1000FDX_OFST 8 4505 #define MC_CMD_PHY_CAP_1000FDX_LBN 6 4506 #define MC_CMD_PHY_CAP_1000FDX_WIDTH 1 4507 #define MC_CMD_PHY_CAP_10000FDX_OFST 8 4508 #define MC_CMD_PHY_CAP_10000FDX_LBN 7 4509 #define MC_CMD_PHY_CAP_10000FDX_WIDTH 1 4510 #define MC_CMD_PHY_CAP_PAUSE_OFST 8 4511 #define MC_CMD_PHY_CAP_PAUSE_LBN 8 4512 #define MC_CMD_PHY_CAP_PAUSE_WIDTH 1 4513 #define MC_CMD_PHY_CAP_ASYM_OFST 8 4514 #define MC_CMD_PHY_CAP_ASYM_LBN 9 4515 #define MC_CMD_PHY_CAP_ASYM_WIDTH 1 4516 #define MC_CMD_PHY_CAP_AN_OFST 8 4517 #define MC_CMD_PHY_CAP_AN_LBN 10 4518 #define MC_CMD_PHY_CAP_AN_WIDTH 1 4519 #define MC_CMD_PHY_CAP_40000FDX_OFST 8 4520 #define MC_CMD_PHY_CAP_40000FDX_LBN 11 4521 #define MC_CMD_PHY_CAP_40000FDX_WIDTH 1 4522 #define MC_CMD_PHY_CAP_DDM_OFST 8 4523 #define MC_CMD_PHY_CAP_DDM_LBN 12 4524 #define MC_CMD_PHY_CAP_DDM_WIDTH 1 4525 #define MC_CMD_PHY_CAP_100000FDX_OFST 8 4526 #define MC_CMD_PHY_CAP_100000FDX_LBN 13 4527 #define MC_CMD_PHY_CAP_100000FDX_WIDTH 1 4528 #define MC_CMD_PHY_CAP_25000FDX_OFST 8 4529 #define MC_CMD_PHY_CAP_25000FDX_LBN 14 4530 #define MC_CMD_PHY_CAP_25000FDX_WIDTH 1 4531 #define MC_CMD_PHY_CAP_50000FDX_OFST 8 4532 #define MC_CMD_PHY_CAP_50000FDX_LBN 15 4533 #define MC_CMD_PHY_CAP_50000FDX_WIDTH 1 4534 #define MC_CMD_PHY_CAP_BASER_FEC_OFST 8 4535 #define MC_CMD_PHY_CAP_BASER_FEC_LBN 16 4536 #define MC_CMD_PHY_CAP_BASER_FEC_WIDTH 1 4537 #define MC_CMD_PHY_CAP_BASER_FEC_REQUESTED_OFST 8 4538 #define MC_CMD_PHY_CAP_BASER_FEC_REQUESTED_LBN 17 4539 #define MC_CMD_PHY_CAP_BASER_FEC_REQUESTED_WIDTH 1 4540 #define MC_CMD_PHY_CAP_RS_FEC_OFST 8 4541 #define MC_CMD_PHY_CAP_RS_FEC_LBN 18 4542 #define MC_CMD_PHY_CAP_RS_FEC_WIDTH 1 4543 #define MC_CMD_PHY_CAP_RS_FEC_REQUESTED_OFST 8 4544 #define MC_CMD_PHY_CAP_RS_FEC_REQUESTED_LBN 19 4545 #define MC_CMD_PHY_CAP_RS_FEC_REQUESTED_WIDTH 1 4546 #define MC_CMD_PHY_CAP_25G_BASER_FEC_OFST 8 4547 #define MC_CMD_PHY_CAP_25G_BASER_FEC_LBN 20 4548 #define MC_CMD_PHY_CAP_25G_BASER_FEC_WIDTH 1 4549 #define MC_CMD_PHY_CAP_25G_BASER_FEC_REQUESTED_OFST 8 4550 #define MC_CMD_PHY_CAP_25G_BASER_FEC_REQUESTED_LBN 21 4551 #define MC_CMD_PHY_CAP_25G_BASER_FEC_REQUESTED_WIDTH 1 4552 /* ?? */ 4553 #define MC_CMD_GET_PHY_CFG_OUT_CHANNEL_OFST 12 4554 #define MC_CMD_GET_PHY_CFG_OUT_CHANNEL_LEN 4 4555 /* ?? */ 4556 #define MC_CMD_GET_PHY_CFG_OUT_PRT_OFST 16 4557 #define MC_CMD_GET_PHY_CFG_OUT_PRT_LEN 4 4558 /* ?? */ 4559 #define MC_CMD_GET_PHY_CFG_OUT_STATS_MASK_OFST 20 4560 #define MC_CMD_GET_PHY_CFG_OUT_STATS_MASK_LEN 4 4561 /* ?? */ 4562 #define MC_CMD_GET_PHY_CFG_OUT_NAME_OFST 24 4563 #define MC_CMD_GET_PHY_CFG_OUT_NAME_LEN 20 4564 /* ?? */ 4565 #define MC_CMD_GET_PHY_CFG_OUT_MEDIA_TYPE_OFST 44 4566 #define MC_CMD_GET_PHY_CFG_OUT_MEDIA_TYPE_LEN 4 4567 /* enum: Xaui. */ 4568 #define MC_CMD_MEDIA_XAUI 0x1 4569 /* enum: CX4. */ 4570 #define MC_CMD_MEDIA_CX4 0x2 4571 /* enum: KX4. */ 4572 #define MC_CMD_MEDIA_KX4 0x3 4573 /* enum: XFP Far. */ 4574 #define MC_CMD_MEDIA_XFP 0x4 4575 /* enum: SFP+. */ 4576 #define MC_CMD_MEDIA_SFP_PLUS 0x5 4577 /* enum: 10GBaseT. */ 4578 #define MC_CMD_MEDIA_BASE_T 0x6 4579 /* enum: QSFP+. */ 4580 #define MC_CMD_MEDIA_QSFP_PLUS 0x7 4581 /* enum: DSFP. */ 4582 #define MC_CMD_MEDIA_DSFP 0x8 4583 #define MC_CMD_GET_PHY_CFG_OUT_MMD_MASK_OFST 48 4584 #define MC_CMD_GET_PHY_CFG_OUT_MMD_MASK_LEN 4 4585 /* enum: Native clause 22 */ 4586 #define MC_CMD_MMD_CLAUSE22 0x0 4587 #define MC_CMD_MMD_CLAUSE45_PMAPMD 0x1 /* enum */ 4588 #define MC_CMD_MMD_CLAUSE45_WIS 0x2 /* enum */ 4589 #define MC_CMD_MMD_CLAUSE45_PCS 0x3 /* enum */ 4590 #define MC_CMD_MMD_CLAUSE45_PHYXS 0x4 /* enum */ 4591 #define MC_CMD_MMD_CLAUSE45_DTEXS 0x5 /* enum */ 4592 #define MC_CMD_MMD_CLAUSE45_TC 0x6 /* enum */ 4593 #define MC_CMD_MMD_CLAUSE45_AN 0x7 /* enum */ 4594 /* enum: Clause22 proxied over clause45 by PHY. */ 4595 #define MC_CMD_MMD_CLAUSE45_C22EXT 0x1d 4596 #define MC_CMD_MMD_CLAUSE45_VEND1 0x1e /* enum */ 4597 #define MC_CMD_MMD_CLAUSE45_VEND2 0x1f /* enum */ 4598 #define MC_CMD_GET_PHY_CFG_OUT_REVISION_OFST 52 4599 #define MC_CMD_GET_PHY_CFG_OUT_REVISION_LEN 20 4600 4601 4602 /***********************************/ 4603 /* MC_CMD_START_BIST 4604 * Start a BIST test on the PHY. Locks required: PHY_LOCK if doing a PHY BIST 4605 * Return code: 0, EINVAL, EACCES (if PHY_LOCK is not held) 4606 */ 4607 #define MC_CMD_START_BIST 0x25 4608 #define MC_CMD_START_BIST_MSGSET 0x25 4609 #undef MC_CMD_0x25_PRIVILEGE_CTG 4610 4611 #define MC_CMD_0x25_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 4612 4613 /* MC_CMD_START_BIST_IN msgrequest */ 4614 #define MC_CMD_START_BIST_IN_LEN 4 4615 /* Type of test. */ 4616 #define MC_CMD_START_BIST_IN_TYPE_OFST 0 4617 #define MC_CMD_START_BIST_IN_TYPE_LEN 4 4618 /* enum: Run the PHY's short cable BIST. */ 4619 #define MC_CMD_PHY_BIST_CABLE_SHORT 0x1 4620 /* enum: Run the PHY's long cable BIST. */ 4621 #define MC_CMD_PHY_BIST_CABLE_LONG 0x2 4622 /* enum: Run BIST on the currently selected BPX Serdes (XAUI or XFI) . */ 4623 #define MC_CMD_BPX_SERDES_BIST 0x3 4624 /* enum: Run the MC loopback tests. */ 4625 #define MC_CMD_MC_LOOPBACK_BIST 0x4 4626 /* enum: Run the PHY's standard BIST. */ 4627 #define MC_CMD_PHY_BIST 0x5 4628 /* enum: Run MC RAM test. */ 4629 #define MC_CMD_MC_MEM_BIST 0x6 4630 /* enum: Run Port RAM test. */ 4631 #define MC_CMD_PORT_MEM_BIST 0x7 4632 /* enum: Run register test. */ 4633 #define MC_CMD_REG_BIST 0x8 4634 4635 /* MC_CMD_START_BIST_OUT msgresponse */ 4636 #define MC_CMD_START_BIST_OUT_LEN 0 4637 4638 4639 /***********************************/ 4640 /* MC_CMD_POLL_BIST 4641 * Poll for BIST completion. Returns a single status code, and optionally some 4642 * PHY specific bist output. The driver should only consume the BIST output 4643 * after validating OUTLEN and MC_CMD_GET_PHY_CFG.TYPE. If a driver can't 4644 * successfully parse the BIST output, it should still respect the pass/Fail in 4645 * OUT.RESULT. Locks required: PHY_LOCK if doing a PHY BIST. Return code: 0, 4646 * EACCES (if PHY_LOCK is not held). 4647 */ 4648 #define MC_CMD_POLL_BIST 0x26 4649 #define MC_CMD_POLL_BIST_MSGSET 0x26 4650 #undef MC_CMD_0x26_PRIVILEGE_CTG 4651 4652 #define MC_CMD_0x26_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 4653 4654 /* MC_CMD_POLL_BIST_IN msgrequest */ 4655 #define MC_CMD_POLL_BIST_IN_LEN 0 4656 4657 /* MC_CMD_POLL_BIST_OUT msgresponse */ 4658 #define MC_CMD_POLL_BIST_OUT_LEN 8 4659 /* result */ 4660 #define MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 4661 #define MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 4662 /* enum: Running. */ 4663 #define MC_CMD_POLL_BIST_RUNNING 0x1 4664 /* enum: Passed. */ 4665 #define MC_CMD_POLL_BIST_PASSED 0x2 4666 /* enum: Failed. */ 4667 #define MC_CMD_POLL_BIST_FAILED 0x3 4668 /* enum: Timed-out. */ 4669 #define MC_CMD_POLL_BIST_TIMEOUT 0x4 4670 #define MC_CMD_POLL_BIST_OUT_PRIVATE_OFST 4 4671 #define MC_CMD_POLL_BIST_OUT_PRIVATE_LEN 4 4672 4673 /* MC_CMD_POLL_BIST_OUT_SFT9001 msgresponse */ 4674 #define MC_CMD_POLL_BIST_OUT_SFT9001_LEN 36 4675 /* result */ 4676 /* MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 */ 4677 /* MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 */ 4678 /* Enum values, see field(s): */ 4679 /* MC_CMD_POLL_BIST_OUT/MC_CMD_POLL_BIST_OUT_RESULT */ 4680 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_A_OFST 4 4681 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_A_LEN 4 4682 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_B_OFST 8 4683 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_B_LEN 4 4684 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_C_OFST 12 4685 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_C_LEN 4 4686 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_D_OFST 16 4687 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_D_LEN 4 4688 /* Status of each channel A */ 4689 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_A_OFST 20 4690 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_A_LEN 4 4691 /* enum: Ok. */ 4692 #define MC_CMD_POLL_BIST_SFT9001_PAIR_OK 0x1 4693 /* enum: Open. */ 4694 #define MC_CMD_POLL_BIST_SFT9001_PAIR_OPEN 0x2 4695 /* enum: Intra-pair short. */ 4696 #define MC_CMD_POLL_BIST_SFT9001_INTRA_PAIR_SHORT 0x3 4697 /* enum: Inter-pair short. */ 4698 #define MC_CMD_POLL_BIST_SFT9001_INTER_PAIR_SHORT 0x4 4699 /* enum: Busy. */ 4700 #define MC_CMD_POLL_BIST_SFT9001_PAIR_BUSY 0x9 4701 /* Status of each channel B */ 4702 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_B_OFST 24 4703 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_B_LEN 4 4704 /* Enum values, see field(s): */ 4705 /* CABLE_STATUS_A */ 4706 /* Status of each channel C */ 4707 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_C_OFST 28 4708 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_C_LEN 4 4709 /* Enum values, see field(s): */ 4710 /* CABLE_STATUS_A */ 4711 /* Status of each channel D */ 4712 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_D_OFST 32 4713 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_D_LEN 4 4714 /* Enum values, see field(s): */ 4715 /* CABLE_STATUS_A */ 4716 4717 /* MC_CMD_POLL_BIST_OUT_MRSFP msgresponse */ 4718 #define MC_CMD_POLL_BIST_OUT_MRSFP_LEN 8 4719 /* result */ 4720 /* MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 */ 4721 /* MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 */ 4722 /* Enum values, see field(s): */ 4723 /* MC_CMD_POLL_BIST_OUT/MC_CMD_POLL_BIST_OUT_RESULT */ 4724 #define MC_CMD_POLL_BIST_OUT_MRSFP_TEST_OFST 4 4725 #define MC_CMD_POLL_BIST_OUT_MRSFP_TEST_LEN 4 4726 /* enum: Complete. */ 4727 #define MC_CMD_POLL_BIST_MRSFP_TEST_COMPLETE 0x0 4728 /* enum: Bus switch off I2C write. */ 4729 #define MC_CMD_POLL_BIST_MRSFP_TEST_BUS_SWITCH_OFF_I2C_WRITE 0x1 4730 /* enum: Bus switch off I2C no access IO exp. */ 4731 #define MC_CMD_POLL_BIST_MRSFP_TEST_BUS_SWITCH_OFF_I2C_NO_ACCESS_IO_EXP 0x2 4732 /* enum: Bus switch off I2C no access module. */ 4733 #define MC_CMD_POLL_BIST_MRSFP_TEST_BUS_SWITCH_OFF_I2C_NO_ACCESS_MODULE 0x3 4734 /* enum: IO exp I2C configure. */ 4735 #define MC_CMD_POLL_BIST_MRSFP_TEST_IO_EXP_I2C_CONFIGURE 0x4 4736 /* enum: Bus switch I2C no cross talk. */ 4737 #define MC_CMD_POLL_BIST_MRSFP_TEST_BUS_SWITCH_I2C_NO_CROSSTALK 0x5 4738 /* enum: Module presence. */ 4739 #define MC_CMD_POLL_BIST_MRSFP_TEST_MODULE_PRESENCE 0x6 4740 /* enum: Module ID I2C access. */ 4741 #define MC_CMD_POLL_BIST_MRSFP_TEST_MODULE_ID_I2C_ACCESS 0x7 4742 /* enum: Module ID sane value. */ 4743 #define MC_CMD_POLL_BIST_MRSFP_TEST_MODULE_ID_SANE_VALUE 0x8 4744 4745 /* MC_CMD_POLL_BIST_OUT_MEM msgresponse */ 4746 #define MC_CMD_POLL_BIST_OUT_MEM_LEN 36 4747 /* result */ 4748 /* MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 */ 4749 /* MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 */ 4750 /* Enum values, see field(s): */ 4751 /* MC_CMD_POLL_BIST_OUT/MC_CMD_POLL_BIST_OUT_RESULT */ 4752 #define MC_CMD_POLL_BIST_OUT_MEM_TEST_OFST 4 4753 #define MC_CMD_POLL_BIST_OUT_MEM_TEST_LEN 4 4754 /* enum: Test has completed. */ 4755 #define MC_CMD_POLL_BIST_MEM_COMPLETE 0x0 4756 /* enum: RAM test - walk ones. */ 4757 #define MC_CMD_POLL_BIST_MEM_MEM_WALK_ONES 0x1 4758 /* enum: RAM test - walk zeros. */ 4759 #define MC_CMD_POLL_BIST_MEM_MEM_WALK_ZEROS 0x2 4760 /* enum: RAM test - walking inversions zeros/ones. */ 4761 #define MC_CMD_POLL_BIST_MEM_MEM_INV_ZERO_ONE 0x3 4762 /* enum: RAM test - walking inversions checkerboard. */ 4763 #define MC_CMD_POLL_BIST_MEM_MEM_INV_CHKBOARD 0x4 4764 /* enum: Register test - set / clear individual bits. */ 4765 #define MC_CMD_POLL_BIST_MEM_REG 0x5 4766 /* enum: ECC error detected. */ 4767 #define MC_CMD_POLL_BIST_MEM_ECC 0x6 4768 /* Failure address, only valid if result is POLL_BIST_FAILED */ 4769 #define MC_CMD_POLL_BIST_OUT_MEM_ADDR_OFST 8 4770 #define MC_CMD_POLL_BIST_OUT_MEM_ADDR_LEN 4 4771 /* Bus or address space to which the failure address corresponds */ 4772 #define MC_CMD_POLL_BIST_OUT_MEM_BUS_OFST 12 4773 #define MC_CMD_POLL_BIST_OUT_MEM_BUS_LEN 4 4774 /* enum: MC MIPS bus. */ 4775 #define MC_CMD_POLL_BIST_MEM_BUS_MC 0x0 4776 /* enum: CSR IREG bus. */ 4777 #define MC_CMD_POLL_BIST_MEM_BUS_CSR 0x1 4778 /* enum: RX0 DPCPU bus. */ 4779 #define MC_CMD_POLL_BIST_MEM_BUS_DPCPU_RX 0x2 4780 /* enum: TX0 DPCPU bus. */ 4781 #define MC_CMD_POLL_BIST_MEM_BUS_DPCPU_TX0 0x3 4782 /* enum: TX1 DPCPU bus. */ 4783 #define MC_CMD_POLL_BIST_MEM_BUS_DPCPU_TX1 0x4 4784 /* enum: RX0 DICPU bus. */ 4785 #define MC_CMD_POLL_BIST_MEM_BUS_DICPU_RX 0x5 4786 /* enum: TX DICPU bus. */ 4787 #define MC_CMD_POLL_BIST_MEM_BUS_DICPU_TX 0x6 4788 /* enum: RX1 DPCPU bus. */ 4789 #define MC_CMD_POLL_BIST_MEM_BUS_DPCPU_RX1 0x7 4790 /* enum: RX1 DICPU bus. */ 4791 #define MC_CMD_POLL_BIST_MEM_BUS_DICPU_RX1 0x8 4792 /* Pattern written to RAM / register */ 4793 #define MC_CMD_POLL_BIST_OUT_MEM_EXPECT_OFST 16 4794 #define MC_CMD_POLL_BIST_OUT_MEM_EXPECT_LEN 4 4795 /* Actual value read from RAM / register */ 4796 #define MC_CMD_POLL_BIST_OUT_MEM_ACTUAL_OFST 20 4797 #define MC_CMD_POLL_BIST_OUT_MEM_ACTUAL_LEN 4 4798 /* ECC error mask */ 4799 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_OFST 24 4800 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_LEN 4 4801 /* ECC parity error mask */ 4802 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_PARITY_OFST 28 4803 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_PARITY_LEN 4 4804 /* ECC fatal error mask */ 4805 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_FATAL_OFST 32 4806 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_FATAL_LEN 4 4807 4808 4809 /***********************************/ 4810 /* MC_CMD_FLUSH_RX_QUEUES 4811 * Flush receive queue(s). If SRIOV is enabled (via MC_CMD_SRIOV), then RXQ 4812 * flushes should be initiated via this MCDI operation, rather than via 4813 * directly writing FLUSH_CMD. 4814 * 4815 * The flush is completed (either done/fail) asynchronously (after this command 4816 * returns). The driver must still wait for flush done/failure events as usual. 4817 */ 4818 #define MC_CMD_FLUSH_RX_QUEUES 0x27 4819 #define MC_CMD_FLUSH_RX_QUEUES_MSGSET 0x27 4820 4821 /* MC_CMD_FLUSH_RX_QUEUES_IN msgrequest */ 4822 #define MC_CMD_FLUSH_RX_QUEUES_IN_LENMIN 4 4823 #define MC_CMD_FLUSH_RX_QUEUES_IN_LENMAX 252 4824 #define MC_CMD_FLUSH_RX_QUEUES_IN_LENMAX_MCDI2 1020 4825 #define MC_CMD_FLUSH_RX_QUEUES_IN_LEN(num) (0+4*(num)) 4826 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_NUM(len) (((len)-0)/4) 4827 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_OFST 0 4828 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_LEN 4 4829 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_MINNUM 1 4830 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_MAXNUM 63 4831 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_MAXNUM_MCDI2 255 4832 4833 /* MC_CMD_FLUSH_RX_QUEUES_OUT msgresponse */ 4834 #define MC_CMD_FLUSH_RX_QUEUES_OUT_LEN 0 4835 4836 4837 /***********************************/ 4838 /* MC_CMD_GET_LOOPBACK_MODES 4839 * Returns a bitmask of loopback modes available at each speed. 4840 */ 4841 #define MC_CMD_GET_LOOPBACK_MODES 0x28 4842 #define MC_CMD_GET_LOOPBACK_MODES_MSGSET 0x28 4843 #undef MC_CMD_0x28_PRIVILEGE_CTG 4844 4845 #define MC_CMD_0x28_PRIVILEGE_CTG SRIOV_CTG_GENERAL 4846 4847 /* MC_CMD_GET_LOOPBACK_MODES_IN msgrequest */ 4848 #define MC_CMD_GET_LOOPBACK_MODES_IN_LEN 0 4849 4850 /* MC_CMD_GET_LOOPBACK_MODES_OUT msgresponse */ 4851 #define MC_CMD_GET_LOOPBACK_MODES_OUT_LEN 40 4852 /* Supported loopbacks. */ 4853 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_OFST 0 4854 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LEN 8 4855 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_OFST 0 4856 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_LEN 4 4857 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_LBN 0 4858 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_WIDTH 32 4859 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_OFST 4 4860 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_LEN 4 4861 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_LBN 32 4862 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_WIDTH 32 4863 /* enum: None. */ 4864 #define MC_CMD_LOOPBACK_NONE 0x0 4865 /* enum: Data. */ 4866 #define MC_CMD_LOOPBACK_DATA 0x1 4867 /* enum: GMAC. */ 4868 #define MC_CMD_LOOPBACK_GMAC 0x2 4869 /* enum: XGMII. */ 4870 #define MC_CMD_LOOPBACK_XGMII 0x3 4871 /* enum: XGXS. */ 4872 #define MC_CMD_LOOPBACK_XGXS 0x4 4873 /* enum: XAUI. */ 4874 #define MC_CMD_LOOPBACK_XAUI 0x5 4875 /* enum: GMII. */ 4876 #define MC_CMD_LOOPBACK_GMII 0x6 4877 /* enum: SGMII. */ 4878 #define MC_CMD_LOOPBACK_SGMII 0x7 4879 /* enum: XGBR. */ 4880 #define MC_CMD_LOOPBACK_XGBR 0x8 4881 /* enum: XFI. */ 4882 #define MC_CMD_LOOPBACK_XFI 0x9 4883 /* enum: XAUI Far. */ 4884 #define MC_CMD_LOOPBACK_XAUI_FAR 0xa 4885 /* enum: GMII Far. */ 4886 #define MC_CMD_LOOPBACK_GMII_FAR 0xb 4887 /* enum: SGMII Far. */ 4888 #define MC_CMD_LOOPBACK_SGMII_FAR 0xc 4889 /* enum: XFI Far. */ 4890 #define MC_CMD_LOOPBACK_XFI_FAR 0xd 4891 /* enum: GPhy. */ 4892 #define MC_CMD_LOOPBACK_GPHY 0xe 4893 /* enum: PhyXS. */ 4894 #define MC_CMD_LOOPBACK_PHYXS 0xf 4895 /* enum: PCS. */ 4896 #define MC_CMD_LOOPBACK_PCS 0x10 4897 /* enum: PMA-PMD. */ 4898 #define MC_CMD_LOOPBACK_PMAPMD 0x11 4899 /* enum: Cross-Port. */ 4900 #define MC_CMD_LOOPBACK_XPORT 0x12 4901 /* enum: XGMII-Wireside. */ 4902 #define MC_CMD_LOOPBACK_XGMII_WS 0x13 4903 /* enum: XAUI Wireside. */ 4904 #define MC_CMD_LOOPBACK_XAUI_WS 0x14 4905 /* enum: XAUI Wireside Far. */ 4906 #define MC_CMD_LOOPBACK_XAUI_WS_FAR 0x15 4907 /* enum: XAUI Wireside near. */ 4908 #define MC_CMD_LOOPBACK_XAUI_WS_NEAR 0x16 4909 /* enum: GMII Wireside. */ 4910 #define MC_CMD_LOOPBACK_GMII_WS 0x17 4911 /* enum: XFI Wireside. */ 4912 #define MC_CMD_LOOPBACK_XFI_WS 0x18 4913 /* enum: XFI Wireside Far. */ 4914 #define MC_CMD_LOOPBACK_XFI_WS_FAR 0x19 4915 /* enum: PhyXS Wireside. */ 4916 #define MC_CMD_LOOPBACK_PHYXS_WS 0x1a 4917 /* enum: PMA lanes MAC-Serdes. */ 4918 #define MC_CMD_LOOPBACK_PMA_INT 0x1b 4919 /* enum: KR Serdes Parallel (Encoder). */ 4920 #define MC_CMD_LOOPBACK_SD_NEAR 0x1c 4921 /* enum: KR Serdes Serial. */ 4922 #define MC_CMD_LOOPBACK_SD_FAR 0x1d 4923 /* enum: PMA lanes MAC-Serdes Wireside. */ 4924 #define MC_CMD_LOOPBACK_PMA_INT_WS 0x1e 4925 /* enum: KR Serdes Parallel Wireside (Full PCS). */ 4926 #define MC_CMD_LOOPBACK_SD_FEP2_WS 0x1f 4927 /* enum: KR Serdes Parallel Wireside (Sym Aligner to TX). */ 4928 #define MC_CMD_LOOPBACK_SD_FEP1_5_WS 0x20 4929 /* enum: KR Serdes Parallel Wireside (Deserializer to Serializer). */ 4930 #define MC_CMD_LOOPBACK_SD_FEP_WS 0x21 4931 /* enum: KR Serdes Serial Wireside. */ 4932 #define MC_CMD_LOOPBACK_SD_FES_WS 0x22 4933 /* enum: Near side of AOE Siena side port */ 4934 #define MC_CMD_LOOPBACK_AOE_INT_NEAR 0x23 4935 /* enum: Medford Wireside datapath loopback */ 4936 #define MC_CMD_LOOPBACK_DATA_WS 0x24 4937 /* enum: Force link up without setting up any physical loopback (snapper use 4938 * only) 4939 */ 4940 #define MC_CMD_LOOPBACK_FORCE_EXT_LINK 0x25 4941 /* Supported loopbacks. */ 4942 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_OFST 8 4943 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LEN 8 4944 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_OFST 8 4945 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_LEN 4 4946 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_LBN 64 4947 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_WIDTH 32 4948 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_OFST 12 4949 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_LEN 4 4950 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_LBN 96 4951 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_WIDTH 32 4952 /* Enum values, see field(s): */ 4953 /* 100M */ 4954 /* Supported loopbacks. */ 4955 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_OFST 16 4956 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LEN 8 4957 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_OFST 16 4958 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_LEN 4 4959 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_LBN 128 4960 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_WIDTH 32 4961 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_OFST 20 4962 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_LEN 4 4963 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_LBN 160 4964 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_WIDTH 32 4965 /* Enum values, see field(s): */ 4966 /* 100M */ 4967 /* Supported loopbacks. */ 4968 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_OFST 24 4969 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LEN 8 4970 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_OFST 24 4971 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_LEN 4 4972 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_LBN 192 4973 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_WIDTH 32 4974 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_OFST 28 4975 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_LEN 4 4976 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_LBN 224 4977 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_WIDTH 32 4978 /* Enum values, see field(s): */ 4979 /* 100M */ 4980 /* Supported loopbacks. */ 4981 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_OFST 32 4982 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LEN 8 4983 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_OFST 32 4984 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_LEN 4 4985 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_LBN 256 4986 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_WIDTH 32 4987 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_OFST 36 4988 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_LEN 4 4989 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_LBN 288 4990 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_WIDTH 32 4991 /* Enum values, see field(s): */ 4992 /* 100M */ 4993 4994 /* MC_CMD_GET_LOOPBACK_MODES_OUT_V2 msgresponse: Supported loopback modes for 4995 * newer NICs with 25G/50G/100G support 4996 */ 4997 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_LEN 64 4998 /* Supported loopbacks. */ 4999 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_OFST 0 5000 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LEN 8 5001 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_OFST 0 5002 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_LEN 4 5003 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_LBN 0 5004 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_WIDTH 32 5005 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_OFST 4 5006 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_LEN 4 5007 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_LBN 32 5008 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_WIDTH 32 5009 /* enum: None. */ 5010 /* MC_CMD_LOOPBACK_NONE 0x0 */ 5011 /* enum: Data. */ 5012 /* MC_CMD_LOOPBACK_DATA 0x1 */ 5013 /* enum: GMAC. */ 5014 /* MC_CMD_LOOPBACK_GMAC 0x2 */ 5015 /* enum: XGMII. */ 5016 /* MC_CMD_LOOPBACK_XGMII 0x3 */ 5017 /* enum: XGXS. */ 5018 /* MC_CMD_LOOPBACK_XGXS 0x4 */ 5019 /* enum: XAUI. */ 5020 /* MC_CMD_LOOPBACK_XAUI 0x5 */ 5021 /* enum: GMII. */ 5022 /* MC_CMD_LOOPBACK_GMII 0x6 */ 5023 /* enum: SGMII. */ 5024 /* MC_CMD_LOOPBACK_SGMII 0x7 */ 5025 /* enum: XGBR. */ 5026 /* MC_CMD_LOOPBACK_XGBR 0x8 */ 5027 /* enum: XFI. */ 5028 /* MC_CMD_LOOPBACK_XFI 0x9 */ 5029 /* enum: XAUI Far. */ 5030 /* MC_CMD_LOOPBACK_XAUI_FAR 0xa */ 5031 /* enum: GMII Far. */ 5032 /* MC_CMD_LOOPBACK_GMII_FAR 0xb */ 5033 /* enum: SGMII Far. */ 5034 /* MC_CMD_LOOPBACK_SGMII_FAR 0xc */ 5035 /* enum: XFI Far. */ 5036 /* MC_CMD_LOOPBACK_XFI_FAR 0xd */ 5037 /* enum: GPhy. */ 5038 /* MC_CMD_LOOPBACK_GPHY 0xe */ 5039 /* enum: PhyXS. */ 5040 /* MC_CMD_LOOPBACK_PHYXS 0xf */ 5041 /* enum: PCS. */ 5042 /* MC_CMD_LOOPBACK_PCS 0x10 */ 5043 /* enum: PMA-PMD. */ 5044 /* MC_CMD_LOOPBACK_PMAPMD 0x11 */ 5045 /* enum: Cross-Port. */ 5046 /* MC_CMD_LOOPBACK_XPORT 0x12 */ 5047 /* enum: XGMII-Wireside. */ 5048 /* MC_CMD_LOOPBACK_XGMII_WS 0x13 */ 5049 /* enum: XAUI Wireside. */ 5050 /* MC_CMD_LOOPBACK_XAUI_WS 0x14 */ 5051 /* enum: XAUI Wireside Far. */ 5052 /* MC_CMD_LOOPBACK_XAUI_WS_FAR 0x15 */ 5053 /* enum: XAUI Wireside near. */ 5054 /* MC_CMD_LOOPBACK_XAUI_WS_NEAR 0x16 */ 5055 /* enum: GMII Wireside. */ 5056 /* MC_CMD_LOOPBACK_GMII_WS 0x17 */ 5057 /* enum: XFI Wireside. */ 5058 /* MC_CMD_LOOPBACK_XFI_WS 0x18 */ 5059 /* enum: XFI Wireside Far. */ 5060 /* MC_CMD_LOOPBACK_XFI_WS_FAR 0x19 */ 5061 /* enum: PhyXS Wireside. */ 5062 /* MC_CMD_LOOPBACK_PHYXS_WS 0x1a */ 5063 /* enum: PMA lanes MAC-Serdes. */ 5064 /* MC_CMD_LOOPBACK_PMA_INT 0x1b */ 5065 /* enum: KR Serdes Parallel (Encoder). */ 5066 /* MC_CMD_LOOPBACK_SD_NEAR 0x1c */ 5067 /* enum: KR Serdes Serial. */ 5068 /* MC_CMD_LOOPBACK_SD_FAR 0x1d */ 5069 /* enum: PMA lanes MAC-Serdes Wireside. */ 5070 /* MC_CMD_LOOPBACK_PMA_INT_WS 0x1e */ 5071 /* enum: KR Serdes Parallel Wireside (Full PCS). */ 5072 /* MC_CMD_LOOPBACK_SD_FEP2_WS 0x1f */ 5073 /* enum: KR Serdes Parallel Wireside (Sym Aligner to TX). */ 5074 /* MC_CMD_LOOPBACK_SD_FEP1_5_WS 0x20 */ 5075 /* enum: KR Serdes Parallel Wireside (Deserializer to Serializer). */ 5076 /* MC_CMD_LOOPBACK_SD_FEP_WS 0x21 */ 5077 /* enum: KR Serdes Serial Wireside. */ 5078 /* MC_CMD_LOOPBACK_SD_FES_WS 0x22 */ 5079 /* enum: Near side of AOE Siena side port */ 5080 /* MC_CMD_LOOPBACK_AOE_INT_NEAR 0x23 */ 5081 /* enum: Medford Wireside datapath loopback */ 5082 /* MC_CMD_LOOPBACK_DATA_WS 0x24 */ 5083 /* enum: Force link up without setting up any physical loopback (snapper use 5084 * only) 5085 */ 5086 /* MC_CMD_LOOPBACK_FORCE_EXT_LINK 0x25 */ 5087 /* Supported loopbacks. */ 5088 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_OFST 8 5089 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LEN 8 5090 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_OFST 8 5091 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_LEN 4 5092 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_LBN 64 5093 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_WIDTH 32 5094 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_OFST 12 5095 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_LEN 4 5096 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_LBN 96 5097 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_WIDTH 32 5098 /* Enum values, see field(s): */ 5099 /* 100M */ 5100 /* Supported loopbacks. */ 5101 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_OFST 16 5102 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LEN 8 5103 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_OFST 16 5104 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_LEN 4 5105 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_LBN 128 5106 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_WIDTH 32 5107 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_OFST 20 5108 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_LEN 4 5109 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_LBN 160 5110 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_WIDTH 32 5111 /* Enum values, see field(s): */ 5112 /* 100M */ 5113 /* Supported loopbacks. */ 5114 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_OFST 24 5115 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LEN 8 5116 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_OFST 24 5117 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_LEN 4 5118 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_LBN 192 5119 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_WIDTH 32 5120 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_OFST 28 5121 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_LEN 4 5122 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_LBN 224 5123 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_WIDTH 32 5124 /* Enum values, see field(s): */ 5125 /* 100M */ 5126 /* Supported loopbacks. */ 5127 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_OFST 32 5128 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LEN 8 5129 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_OFST 32 5130 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_LEN 4 5131 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_LBN 256 5132 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_WIDTH 32 5133 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_OFST 36 5134 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_LEN 4 5135 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_LBN 288 5136 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_WIDTH 32 5137 /* Enum values, see field(s): */ 5138 /* 100M */ 5139 /* Supported 25G loopbacks. */ 5140 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_OFST 40 5141 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LEN 8 5142 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_OFST 40 5143 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_LEN 4 5144 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_LBN 320 5145 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_WIDTH 32 5146 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_OFST 44 5147 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_LEN 4 5148 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_LBN 352 5149 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_WIDTH 32 5150 /* Enum values, see field(s): */ 5151 /* 100M */ 5152 /* Supported 50 loopbacks. */ 5153 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_OFST 48 5154 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LEN 8 5155 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_OFST 48 5156 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_LEN 4 5157 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_LBN 384 5158 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_WIDTH 32 5159 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_OFST 52 5160 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_LEN 4 5161 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_LBN 416 5162 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_WIDTH 32 5163 /* Enum values, see field(s): */ 5164 /* 100M */ 5165 /* Supported 100G loopbacks. */ 5166 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_OFST 56 5167 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LEN 8 5168 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_OFST 56 5169 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_LEN 4 5170 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_LBN 448 5171 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_WIDTH 32 5172 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_OFST 60 5173 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_LEN 4 5174 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_LBN 480 5175 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_WIDTH 32 5176 /* Enum values, see field(s): */ 5177 /* 100M */ 5178 5179 /* AN_TYPE structuredef: Auto-negotiation types defined in IEEE802.3 */ 5180 #define AN_TYPE_LEN 4 5181 #define AN_TYPE_TYPE_OFST 0 5182 #define AN_TYPE_TYPE_LEN 4 5183 /* enum: None, AN disabled or not supported */ 5184 #define MC_CMD_AN_NONE 0x0 5185 /* enum: Clause 28 - BASE-T */ 5186 #define MC_CMD_AN_CLAUSE28 0x1 5187 /* enum: Clause 37 - BASE-X */ 5188 #define MC_CMD_AN_CLAUSE37 0x2 5189 /* enum: Clause 73 - BASE-R startup protocol for backplane and copper cable 5190 * assemblies. Includes Clause 72/Clause 92 link-training. 5191 */ 5192 #define MC_CMD_AN_CLAUSE73 0x3 5193 #define AN_TYPE_TYPE_LBN 0 5194 #define AN_TYPE_TYPE_WIDTH 32 5195 5196 /* FEC_TYPE structuredef: Forward error correction types defined in IEEE802.3 5197 */ 5198 #define FEC_TYPE_LEN 4 5199 #define FEC_TYPE_TYPE_OFST 0 5200 #define FEC_TYPE_TYPE_LEN 4 5201 /* enum: No FEC */ 5202 #define MC_CMD_FEC_NONE 0x0 5203 /* enum: Clause 74 BASE-R FEC (a.k.a Firecode) */ 5204 #define MC_CMD_FEC_BASER 0x1 5205 /* enum: Clause 91/Clause 108 Reed-Solomon FEC */ 5206 #define MC_CMD_FEC_RS 0x2 5207 #define FEC_TYPE_TYPE_LBN 0 5208 #define FEC_TYPE_TYPE_WIDTH 32 5209 5210 5211 /***********************************/ 5212 /* MC_CMD_GET_LINK 5213 * Read the unified MAC/PHY link state. Locks required: None Return code: 0, 5214 * ETIME. 5215 */ 5216 #define MC_CMD_GET_LINK 0x29 5217 #define MC_CMD_GET_LINK_MSGSET 0x29 5218 #undef MC_CMD_0x29_PRIVILEGE_CTG 5219 5220 #define MC_CMD_0x29_PRIVILEGE_CTG SRIOV_CTG_GENERAL 5221 5222 /* MC_CMD_GET_LINK_IN msgrequest */ 5223 #define MC_CMD_GET_LINK_IN_LEN 0 5224 5225 /* MC_CMD_GET_LINK_OUT msgresponse */ 5226 #define MC_CMD_GET_LINK_OUT_LEN 28 5227 /* Near-side advertised capabilities. Refer to 5228 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 5229 */ 5230 #define MC_CMD_GET_LINK_OUT_CAP_OFST 0 5231 #define MC_CMD_GET_LINK_OUT_CAP_LEN 4 5232 /* Link-partner advertised capabilities. Refer to 5233 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 5234 */ 5235 #define MC_CMD_GET_LINK_OUT_LP_CAP_OFST 4 5236 #define MC_CMD_GET_LINK_OUT_LP_CAP_LEN 4 5237 /* Autonegotiated speed in mbit/s. The link may still be down even if this 5238 * reads non-zero. 5239 */ 5240 #define MC_CMD_GET_LINK_OUT_LINK_SPEED_OFST 8 5241 #define MC_CMD_GET_LINK_OUT_LINK_SPEED_LEN 4 5242 /* Current loopback setting. */ 5243 #define MC_CMD_GET_LINK_OUT_LOOPBACK_MODE_OFST 12 5244 #define MC_CMD_GET_LINK_OUT_LOOPBACK_MODE_LEN 4 5245 /* Enum values, see field(s): */ 5246 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 5247 #define MC_CMD_GET_LINK_OUT_FLAGS_OFST 16 5248 #define MC_CMD_GET_LINK_OUT_FLAGS_LEN 4 5249 #define MC_CMD_GET_LINK_OUT_LINK_UP_OFST 16 5250 #define MC_CMD_GET_LINK_OUT_LINK_UP_LBN 0 5251 #define MC_CMD_GET_LINK_OUT_LINK_UP_WIDTH 1 5252 #define MC_CMD_GET_LINK_OUT_FULL_DUPLEX_OFST 16 5253 #define MC_CMD_GET_LINK_OUT_FULL_DUPLEX_LBN 1 5254 #define MC_CMD_GET_LINK_OUT_FULL_DUPLEX_WIDTH 1 5255 #define MC_CMD_GET_LINK_OUT_BPX_LINK_OFST 16 5256 #define MC_CMD_GET_LINK_OUT_BPX_LINK_LBN 2 5257 #define MC_CMD_GET_LINK_OUT_BPX_LINK_WIDTH 1 5258 #define MC_CMD_GET_LINK_OUT_PHY_LINK_OFST 16 5259 #define MC_CMD_GET_LINK_OUT_PHY_LINK_LBN 3 5260 #define MC_CMD_GET_LINK_OUT_PHY_LINK_WIDTH 1 5261 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_RX_OFST 16 5262 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_RX_LBN 6 5263 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_RX_WIDTH 1 5264 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_TX_OFST 16 5265 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_TX_LBN 7 5266 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_TX_WIDTH 1 5267 #define MC_CMD_GET_LINK_OUT_MODULE_UP_VALID_OFST 16 5268 #define MC_CMD_GET_LINK_OUT_MODULE_UP_VALID_LBN 8 5269 #define MC_CMD_GET_LINK_OUT_MODULE_UP_VALID_WIDTH 1 5270 #define MC_CMD_GET_LINK_OUT_MODULE_UP_OFST 16 5271 #define MC_CMD_GET_LINK_OUT_MODULE_UP_LBN 9 5272 #define MC_CMD_GET_LINK_OUT_MODULE_UP_WIDTH 1 5273 /* This returns the negotiated flow control value. */ 5274 #define MC_CMD_GET_LINK_OUT_FCNTL_OFST 20 5275 #define MC_CMD_GET_LINK_OUT_FCNTL_LEN 4 5276 /* Enum values, see field(s): */ 5277 /* MC_CMD_SET_MAC/MC_CMD_SET_MAC_IN/FCNTL */ 5278 #define MC_CMD_GET_LINK_OUT_MAC_FAULT_OFST 24 5279 #define MC_CMD_GET_LINK_OUT_MAC_FAULT_LEN 4 5280 #define MC_CMD_MAC_FAULT_XGMII_LOCAL_OFST 24 5281 #define MC_CMD_MAC_FAULT_XGMII_LOCAL_LBN 0 5282 #define MC_CMD_MAC_FAULT_XGMII_LOCAL_WIDTH 1 5283 #define MC_CMD_MAC_FAULT_XGMII_REMOTE_OFST 24 5284 #define MC_CMD_MAC_FAULT_XGMII_REMOTE_LBN 1 5285 #define MC_CMD_MAC_FAULT_XGMII_REMOTE_WIDTH 1 5286 #define MC_CMD_MAC_FAULT_SGMII_REMOTE_OFST 24 5287 #define MC_CMD_MAC_FAULT_SGMII_REMOTE_LBN 2 5288 #define MC_CMD_MAC_FAULT_SGMII_REMOTE_WIDTH 1 5289 #define MC_CMD_MAC_FAULT_PENDING_RECONFIG_OFST 24 5290 #define MC_CMD_MAC_FAULT_PENDING_RECONFIG_LBN 3 5291 #define MC_CMD_MAC_FAULT_PENDING_RECONFIG_WIDTH 1 5292 5293 /* MC_CMD_GET_LINK_OUT_V2 msgresponse: Extended link state information */ 5294 #define MC_CMD_GET_LINK_OUT_V2_LEN 44 5295 /* Near-side advertised capabilities. Refer to 5296 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 5297 */ 5298 #define MC_CMD_GET_LINK_OUT_V2_CAP_OFST 0 5299 #define MC_CMD_GET_LINK_OUT_V2_CAP_LEN 4 5300 /* Link-partner advertised capabilities. Refer to 5301 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 5302 */ 5303 #define MC_CMD_GET_LINK_OUT_V2_LP_CAP_OFST 4 5304 #define MC_CMD_GET_LINK_OUT_V2_LP_CAP_LEN 4 5305 /* Autonegotiated speed in mbit/s. The link may still be down even if this 5306 * reads non-zero. 5307 */ 5308 #define MC_CMD_GET_LINK_OUT_V2_LINK_SPEED_OFST 8 5309 #define MC_CMD_GET_LINK_OUT_V2_LINK_SPEED_LEN 4 5310 /* Current loopback setting. */ 5311 #define MC_CMD_GET_LINK_OUT_V2_LOOPBACK_MODE_OFST 12 5312 #define MC_CMD_GET_LINK_OUT_V2_LOOPBACK_MODE_LEN 4 5313 /* Enum values, see field(s): */ 5314 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 5315 #define MC_CMD_GET_LINK_OUT_V2_FLAGS_OFST 16 5316 #define MC_CMD_GET_LINK_OUT_V2_FLAGS_LEN 4 5317 #define MC_CMD_GET_LINK_OUT_V2_LINK_UP_OFST 16 5318 #define MC_CMD_GET_LINK_OUT_V2_LINK_UP_LBN 0 5319 #define MC_CMD_GET_LINK_OUT_V2_LINK_UP_WIDTH 1 5320 #define MC_CMD_GET_LINK_OUT_V2_FULL_DUPLEX_OFST 16 5321 #define MC_CMD_GET_LINK_OUT_V2_FULL_DUPLEX_LBN 1 5322 #define MC_CMD_GET_LINK_OUT_V2_FULL_DUPLEX_WIDTH 1 5323 #define MC_CMD_GET_LINK_OUT_V2_BPX_LINK_OFST 16 5324 #define MC_CMD_GET_LINK_OUT_V2_BPX_LINK_LBN 2 5325 #define MC_CMD_GET_LINK_OUT_V2_BPX_LINK_WIDTH 1 5326 #define MC_CMD_GET_LINK_OUT_V2_PHY_LINK_OFST 16 5327 #define MC_CMD_GET_LINK_OUT_V2_PHY_LINK_LBN 3 5328 #define MC_CMD_GET_LINK_OUT_V2_PHY_LINK_WIDTH 1 5329 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_RX_OFST 16 5330 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_RX_LBN 6 5331 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_RX_WIDTH 1 5332 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_TX_OFST 16 5333 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_TX_LBN 7 5334 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_TX_WIDTH 1 5335 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_VALID_OFST 16 5336 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_VALID_LBN 8 5337 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_VALID_WIDTH 1 5338 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_OFST 16 5339 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_LBN 9 5340 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_WIDTH 1 5341 /* This returns the negotiated flow control value. */ 5342 #define MC_CMD_GET_LINK_OUT_V2_FCNTL_OFST 20 5343 #define MC_CMD_GET_LINK_OUT_V2_FCNTL_LEN 4 5344 /* Enum values, see field(s): */ 5345 /* MC_CMD_SET_MAC/MC_CMD_SET_MAC_IN/FCNTL */ 5346 #define MC_CMD_GET_LINK_OUT_V2_MAC_FAULT_OFST 24 5347 #define MC_CMD_GET_LINK_OUT_V2_MAC_FAULT_LEN 4 5348 /* MC_CMD_MAC_FAULT_XGMII_LOCAL_OFST 24 */ 5349 /* MC_CMD_MAC_FAULT_XGMII_LOCAL_LBN 0 */ 5350 /* MC_CMD_MAC_FAULT_XGMII_LOCAL_WIDTH 1 */ 5351 /* MC_CMD_MAC_FAULT_XGMII_REMOTE_OFST 24 */ 5352 /* MC_CMD_MAC_FAULT_XGMII_REMOTE_LBN 1 */ 5353 /* MC_CMD_MAC_FAULT_XGMII_REMOTE_WIDTH 1 */ 5354 /* MC_CMD_MAC_FAULT_SGMII_REMOTE_OFST 24 */ 5355 /* MC_CMD_MAC_FAULT_SGMII_REMOTE_LBN 2 */ 5356 /* MC_CMD_MAC_FAULT_SGMII_REMOTE_WIDTH 1 */ 5357 /* MC_CMD_MAC_FAULT_PENDING_RECONFIG_OFST 24 */ 5358 /* MC_CMD_MAC_FAULT_PENDING_RECONFIG_LBN 3 */ 5359 /* MC_CMD_MAC_FAULT_PENDING_RECONFIG_WIDTH 1 */ 5360 /* True local device capabilities (taking into account currently used PMD/MDI, 5361 * e.g. plugged-in module). In general, subset of 5362 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP, but may include extra _FEC_REQUEST 5363 * bits, if the PMD requires FEC. 0 if unknown (e.g. module unplugged). Equal 5364 * to SUPPORTED_CAP for non-pluggable PMDs. Refer to 5365 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 5366 */ 5367 #define MC_CMD_GET_LINK_OUT_V2_LD_CAP_OFST 28 5368 #define MC_CMD_GET_LINK_OUT_V2_LD_CAP_LEN 4 5369 /* Auto-negotiation type used on the link */ 5370 #define MC_CMD_GET_LINK_OUT_V2_AN_TYPE_OFST 32 5371 #define MC_CMD_GET_LINK_OUT_V2_AN_TYPE_LEN 4 5372 /* Enum values, see field(s): */ 5373 /* AN_TYPE/TYPE */ 5374 /* Forward error correction used on the link */ 5375 #define MC_CMD_GET_LINK_OUT_V2_FEC_TYPE_OFST 36 5376 #define MC_CMD_GET_LINK_OUT_V2_FEC_TYPE_LEN 4 5377 /* Enum values, see field(s): */ 5378 /* FEC_TYPE/TYPE */ 5379 #define MC_CMD_GET_LINK_OUT_V2_EXT_FLAGS_OFST 40 5380 #define MC_CMD_GET_LINK_OUT_V2_EXT_FLAGS_LEN 4 5381 #define MC_CMD_GET_LINK_OUT_V2_PMD_MDI_CONNECTED_OFST 40 5382 #define MC_CMD_GET_LINK_OUT_V2_PMD_MDI_CONNECTED_LBN 0 5383 #define MC_CMD_GET_LINK_OUT_V2_PMD_MDI_CONNECTED_WIDTH 1 5384 #define MC_CMD_GET_LINK_OUT_V2_PMD_READY_OFST 40 5385 #define MC_CMD_GET_LINK_OUT_V2_PMD_READY_LBN 1 5386 #define MC_CMD_GET_LINK_OUT_V2_PMD_READY_WIDTH 1 5387 #define MC_CMD_GET_LINK_OUT_V2_PMD_LINK_UP_OFST 40 5388 #define MC_CMD_GET_LINK_OUT_V2_PMD_LINK_UP_LBN 2 5389 #define MC_CMD_GET_LINK_OUT_V2_PMD_LINK_UP_WIDTH 1 5390 #define MC_CMD_GET_LINK_OUT_V2_PMA_LINK_UP_OFST 40 5391 #define MC_CMD_GET_LINK_OUT_V2_PMA_LINK_UP_LBN 3 5392 #define MC_CMD_GET_LINK_OUT_V2_PMA_LINK_UP_WIDTH 1 5393 #define MC_CMD_GET_LINK_OUT_V2_PCS_LOCK_OFST 40 5394 #define MC_CMD_GET_LINK_OUT_V2_PCS_LOCK_LBN 4 5395 #define MC_CMD_GET_LINK_OUT_V2_PCS_LOCK_WIDTH 1 5396 #define MC_CMD_GET_LINK_OUT_V2_ALIGN_LOCK_OFST 40 5397 #define MC_CMD_GET_LINK_OUT_V2_ALIGN_LOCK_LBN 5 5398 #define MC_CMD_GET_LINK_OUT_V2_ALIGN_LOCK_WIDTH 1 5399 #define MC_CMD_GET_LINK_OUT_V2_HI_BER_OFST 40 5400 #define MC_CMD_GET_LINK_OUT_V2_HI_BER_LBN 6 5401 #define MC_CMD_GET_LINK_OUT_V2_HI_BER_WIDTH 1 5402 #define MC_CMD_GET_LINK_OUT_V2_FEC_LOCK_OFST 40 5403 #define MC_CMD_GET_LINK_OUT_V2_FEC_LOCK_LBN 7 5404 #define MC_CMD_GET_LINK_OUT_V2_FEC_LOCK_WIDTH 1 5405 #define MC_CMD_GET_LINK_OUT_V2_AN_DONE_OFST 40 5406 #define MC_CMD_GET_LINK_OUT_V2_AN_DONE_LBN 8 5407 #define MC_CMD_GET_LINK_OUT_V2_AN_DONE_WIDTH 1 5408 #define MC_CMD_GET_LINK_OUT_V2_PORT_SHUTDOWN_OFST 40 5409 #define MC_CMD_GET_LINK_OUT_V2_PORT_SHUTDOWN_LBN 9 5410 #define MC_CMD_GET_LINK_OUT_V2_PORT_SHUTDOWN_WIDTH 1 5411 5412 5413 /***********************************/ 5414 /* MC_CMD_SET_LINK 5415 * Write the unified MAC/PHY link configuration. Locks required: None. Return 5416 * code: 0, EINVAL, ETIME, EAGAIN 5417 */ 5418 #define MC_CMD_SET_LINK 0x2a 5419 #define MC_CMD_SET_LINK_MSGSET 0x2a 5420 #undef MC_CMD_0x2a_PRIVILEGE_CTG 5421 5422 #define MC_CMD_0x2a_PRIVILEGE_CTG SRIOV_CTG_LINK 5423 5424 /* MC_CMD_SET_LINK_IN msgrequest */ 5425 #define MC_CMD_SET_LINK_IN_LEN 16 5426 /* Near-side advertised capabilities. Refer to 5427 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 5428 */ 5429 #define MC_CMD_SET_LINK_IN_CAP_OFST 0 5430 #define MC_CMD_SET_LINK_IN_CAP_LEN 4 5431 /* Flags */ 5432 #define MC_CMD_SET_LINK_IN_FLAGS_OFST 4 5433 #define MC_CMD_SET_LINK_IN_FLAGS_LEN 4 5434 #define MC_CMD_SET_LINK_IN_LOWPOWER_OFST 4 5435 #define MC_CMD_SET_LINK_IN_LOWPOWER_LBN 0 5436 #define MC_CMD_SET_LINK_IN_LOWPOWER_WIDTH 1 5437 #define MC_CMD_SET_LINK_IN_POWEROFF_OFST 4 5438 #define MC_CMD_SET_LINK_IN_POWEROFF_LBN 1 5439 #define MC_CMD_SET_LINK_IN_POWEROFF_WIDTH 1 5440 #define MC_CMD_SET_LINK_IN_TXDIS_OFST 4 5441 #define MC_CMD_SET_LINK_IN_TXDIS_LBN 2 5442 #define MC_CMD_SET_LINK_IN_TXDIS_WIDTH 1 5443 #define MC_CMD_SET_LINK_IN_LINKDOWN_OFST 4 5444 #define MC_CMD_SET_LINK_IN_LINKDOWN_LBN 3 5445 #define MC_CMD_SET_LINK_IN_LINKDOWN_WIDTH 1 5446 /* Loopback mode. */ 5447 #define MC_CMD_SET_LINK_IN_LOOPBACK_MODE_OFST 8 5448 #define MC_CMD_SET_LINK_IN_LOOPBACK_MODE_LEN 4 5449 /* Enum values, see field(s): */ 5450 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 5451 /* A loopback speed of "0" is supported, and means (choose any available 5452 * speed). 5453 */ 5454 #define MC_CMD_SET_LINK_IN_LOOPBACK_SPEED_OFST 12 5455 #define MC_CMD_SET_LINK_IN_LOOPBACK_SPEED_LEN 4 5456 5457 /* MC_CMD_SET_LINK_IN_V2 msgrequest: Updated SET_LINK to include sequence 5458 * number to ensure this SET_LINK command corresponds to the latest 5459 * MODULECHANGE event. 5460 */ 5461 #define MC_CMD_SET_LINK_IN_V2_LEN 17 5462 /* Near-side advertised capabilities. Refer to 5463 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 5464 */ 5465 #define MC_CMD_SET_LINK_IN_V2_CAP_OFST 0 5466 #define MC_CMD_SET_LINK_IN_V2_CAP_LEN 4 5467 /* Flags */ 5468 #define MC_CMD_SET_LINK_IN_V2_FLAGS_OFST 4 5469 #define MC_CMD_SET_LINK_IN_V2_FLAGS_LEN 4 5470 #define MC_CMD_SET_LINK_IN_V2_LOWPOWER_OFST 4 5471 #define MC_CMD_SET_LINK_IN_V2_LOWPOWER_LBN 0 5472 #define MC_CMD_SET_LINK_IN_V2_LOWPOWER_WIDTH 1 5473 #define MC_CMD_SET_LINK_IN_V2_POWEROFF_OFST 4 5474 #define MC_CMD_SET_LINK_IN_V2_POWEROFF_LBN 1 5475 #define MC_CMD_SET_LINK_IN_V2_POWEROFF_WIDTH 1 5476 #define MC_CMD_SET_LINK_IN_V2_TXDIS_OFST 4 5477 #define MC_CMD_SET_LINK_IN_V2_TXDIS_LBN 2 5478 #define MC_CMD_SET_LINK_IN_V2_TXDIS_WIDTH 1 5479 #define MC_CMD_SET_LINK_IN_V2_LINKDOWN_OFST 4 5480 #define MC_CMD_SET_LINK_IN_V2_LINKDOWN_LBN 3 5481 #define MC_CMD_SET_LINK_IN_V2_LINKDOWN_WIDTH 1 5482 /* Loopback mode. */ 5483 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_MODE_OFST 8 5484 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_MODE_LEN 4 5485 /* Enum values, see field(s): */ 5486 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 5487 /* A loopback speed of "0" is supported, and means (choose any available 5488 * speed). 5489 */ 5490 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_SPEED_OFST 12 5491 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_SPEED_LEN 4 5492 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_OFST 16 5493 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_LEN 1 5494 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_NUMBER_OFST 16 5495 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_NUMBER_LBN 0 5496 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_NUMBER_WIDTH 7 5497 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_IGNORE_OFST 16 5498 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_IGNORE_LBN 7 5499 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_IGNORE_WIDTH 1 5500 5501 /* MC_CMD_SET_LINK_OUT msgresponse */ 5502 #define MC_CMD_SET_LINK_OUT_LEN 0 5503 5504 5505 /***********************************/ 5506 /* MC_CMD_SET_ID_LED 5507 * Set identification LED state. Locks required: None. Return code: 0, EINVAL 5508 */ 5509 #define MC_CMD_SET_ID_LED 0x2b 5510 #define MC_CMD_SET_ID_LED_MSGSET 0x2b 5511 #undef MC_CMD_0x2b_PRIVILEGE_CTG 5512 5513 #define MC_CMD_0x2b_PRIVILEGE_CTG SRIOV_CTG_LINK 5514 5515 /* MC_CMD_SET_ID_LED_IN msgrequest */ 5516 #define MC_CMD_SET_ID_LED_IN_LEN 4 5517 /* Set LED state. */ 5518 #define MC_CMD_SET_ID_LED_IN_STATE_OFST 0 5519 #define MC_CMD_SET_ID_LED_IN_STATE_LEN 4 5520 #define MC_CMD_LED_OFF 0x0 /* enum */ 5521 #define MC_CMD_LED_ON 0x1 /* enum */ 5522 #define MC_CMD_LED_DEFAULT 0x2 /* enum */ 5523 5524 /* MC_CMD_SET_ID_LED_OUT msgresponse */ 5525 #define MC_CMD_SET_ID_LED_OUT_LEN 0 5526 5527 5528 /***********************************/ 5529 /* MC_CMD_SET_MAC 5530 * Set MAC configuration. Locks required: None. Return code: 0, EINVAL 5531 */ 5532 #define MC_CMD_SET_MAC 0x2c 5533 #define MC_CMD_SET_MAC_MSGSET 0x2c 5534 #undef MC_CMD_0x2c_PRIVILEGE_CTG 5535 5536 #define MC_CMD_0x2c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 5537 5538 /* MC_CMD_SET_MAC_IN msgrequest */ 5539 #define MC_CMD_SET_MAC_IN_LEN 28 5540 /* The MTU is the MTU programmed directly into the XMAC/GMAC (inclusive of 5541 * EtherII, VLAN, bug16011 padding). 5542 */ 5543 #define MC_CMD_SET_MAC_IN_MTU_OFST 0 5544 #define MC_CMD_SET_MAC_IN_MTU_LEN 4 5545 #define MC_CMD_SET_MAC_IN_DRAIN_OFST 4 5546 #define MC_CMD_SET_MAC_IN_DRAIN_LEN 4 5547 #define MC_CMD_SET_MAC_IN_ADDR_OFST 8 5548 #define MC_CMD_SET_MAC_IN_ADDR_LEN 8 5549 #define MC_CMD_SET_MAC_IN_ADDR_LO_OFST 8 5550 #define MC_CMD_SET_MAC_IN_ADDR_LO_LEN 4 5551 #define MC_CMD_SET_MAC_IN_ADDR_LO_LBN 64 5552 #define MC_CMD_SET_MAC_IN_ADDR_LO_WIDTH 32 5553 #define MC_CMD_SET_MAC_IN_ADDR_HI_OFST 12 5554 #define MC_CMD_SET_MAC_IN_ADDR_HI_LEN 4 5555 #define MC_CMD_SET_MAC_IN_ADDR_HI_LBN 96 5556 #define MC_CMD_SET_MAC_IN_ADDR_HI_WIDTH 32 5557 #define MC_CMD_SET_MAC_IN_REJECT_OFST 16 5558 #define MC_CMD_SET_MAC_IN_REJECT_LEN 4 5559 #define MC_CMD_SET_MAC_IN_REJECT_UNCST_OFST 16 5560 #define MC_CMD_SET_MAC_IN_REJECT_UNCST_LBN 0 5561 #define MC_CMD_SET_MAC_IN_REJECT_UNCST_WIDTH 1 5562 #define MC_CMD_SET_MAC_IN_REJECT_BRDCST_OFST 16 5563 #define MC_CMD_SET_MAC_IN_REJECT_BRDCST_LBN 1 5564 #define MC_CMD_SET_MAC_IN_REJECT_BRDCST_WIDTH 1 5565 #define MC_CMD_SET_MAC_IN_FCNTL_OFST 20 5566 #define MC_CMD_SET_MAC_IN_FCNTL_LEN 4 5567 /* enum: Flow control is off. */ 5568 #define MC_CMD_FCNTL_OFF 0x0 5569 /* enum: Respond to flow control. */ 5570 #define MC_CMD_FCNTL_RESPOND 0x1 5571 /* enum: Respond to and Issue flow control. */ 5572 #define MC_CMD_FCNTL_BIDIR 0x2 5573 /* enum: Auto neg flow control. */ 5574 #define MC_CMD_FCNTL_AUTO 0x3 5575 /* enum: Priority flow control (eftest builds only). */ 5576 #define MC_CMD_FCNTL_QBB 0x4 5577 /* enum: Issue flow control. */ 5578 #define MC_CMD_FCNTL_GENERATE 0x5 5579 #define MC_CMD_SET_MAC_IN_FLAGS_OFST 24 5580 #define MC_CMD_SET_MAC_IN_FLAGS_LEN 4 5581 #define MC_CMD_SET_MAC_IN_FLAG_INCLUDE_FCS_OFST 24 5582 #define MC_CMD_SET_MAC_IN_FLAG_INCLUDE_FCS_LBN 0 5583 #define MC_CMD_SET_MAC_IN_FLAG_INCLUDE_FCS_WIDTH 1 5584 5585 /* MC_CMD_SET_MAC_EXT_IN msgrequest */ 5586 #define MC_CMD_SET_MAC_EXT_IN_LEN 32 5587 /* The MTU is the MTU programmed directly into the XMAC/GMAC (inclusive of 5588 * EtherII, VLAN, bug16011 padding). 5589 */ 5590 #define MC_CMD_SET_MAC_EXT_IN_MTU_OFST 0 5591 #define MC_CMD_SET_MAC_EXT_IN_MTU_LEN 4 5592 #define MC_CMD_SET_MAC_EXT_IN_DRAIN_OFST 4 5593 #define MC_CMD_SET_MAC_EXT_IN_DRAIN_LEN 4 5594 #define MC_CMD_SET_MAC_EXT_IN_ADDR_OFST 8 5595 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LEN 8 5596 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_OFST 8 5597 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_LEN 4 5598 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_LBN 64 5599 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_WIDTH 32 5600 #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_OFST 12 5601 #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_LEN 4 5602 #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_LBN 96 5603 #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_WIDTH 32 5604 #define MC_CMD_SET_MAC_EXT_IN_REJECT_OFST 16 5605 #define MC_CMD_SET_MAC_EXT_IN_REJECT_LEN 4 5606 #define MC_CMD_SET_MAC_EXT_IN_REJECT_UNCST_OFST 16 5607 #define MC_CMD_SET_MAC_EXT_IN_REJECT_UNCST_LBN 0 5608 #define MC_CMD_SET_MAC_EXT_IN_REJECT_UNCST_WIDTH 1 5609 #define MC_CMD_SET_MAC_EXT_IN_REJECT_BRDCST_OFST 16 5610 #define MC_CMD_SET_MAC_EXT_IN_REJECT_BRDCST_LBN 1 5611 #define MC_CMD_SET_MAC_EXT_IN_REJECT_BRDCST_WIDTH 1 5612 #define MC_CMD_SET_MAC_EXT_IN_FCNTL_OFST 20 5613 #define MC_CMD_SET_MAC_EXT_IN_FCNTL_LEN 4 5614 /* enum: Flow control is off. */ 5615 /* MC_CMD_FCNTL_OFF 0x0 */ 5616 /* enum: Respond to flow control. */ 5617 /* MC_CMD_FCNTL_RESPOND 0x1 */ 5618 /* enum: Respond to and Issue flow control. */ 5619 /* MC_CMD_FCNTL_BIDIR 0x2 */ 5620 /* enum: Auto neg flow control. */ 5621 /* MC_CMD_FCNTL_AUTO 0x3 */ 5622 /* enum: Priority flow control (eftest builds only). */ 5623 /* MC_CMD_FCNTL_QBB 0x4 */ 5624 /* enum: Issue flow control. */ 5625 /* MC_CMD_FCNTL_GENERATE 0x5 */ 5626 #define MC_CMD_SET_MAC_EXT_IN_FLAGS_OFST 24 5627 #define MC_CMD_SET_MAC_EXT_IN_FLAGS_LEN 4 5628 #define MC_CMD_SET_MAC_EXT_IN_FLAG_INCLUDE_FCS_OFST 24 5629 #define MC_CMD_SET_MAC_EXT_IN_FLAG_INCLUDE_FCS_LBN 0 5630 #define MC_CMD_SET_MAC_EXT_IN_FLAG_INCLUDE_FCS_WIDTH 1 5631 /* Select which parameters to configure. A parameter will only be modified if 5632 * the corresponding control flag is set. If SET_MAC_ENHANCED is not set in 5633 * capabilities then this field is ignored (and all flags are assumed to be 5634 * set). 5635 */ 5636 #define MC_CMD_SET_MAC_EXT_IN_CONTROL_OFST 28 5637 #define MC_CMD_SET_MAC_EXT_IN_CONTROL_LEN 4 5638 #define MC_CMD_SET_MAC_EXT_IN_CFG_MTU_OFST 28 5639 #define MC_CMD_SET_MAC_EXT_IN_CFG_MTU_LBN 0 5640 #define MC_CMD_SET_MAC_EXT_IN_CFG_MTU_WIDTH 1 5641 #define MC_CMD_SET_MAC_EXT_IN_CFG_DRAIN_OFST 28 5642 #define MC_CMD_SET_MAC_EXT_IN_CFG_DRAIN_LBN 1 5643 #define MC_CMD_SET_MAC_EXT_IN_CFG_DRAIN_WIDTH 1 5644 #define MC_CMD_SET_MAC_EXT_IN_CFG_REJECT_OFST 28 5645 #define MC_CMD_SET_MAC_EXT_IN_CFG_REJECT_LBN 2 5646 #define MC_CMD_SET_MAC_EXT_IN_CFG_REJECT_WIDTH 1 5647 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCNTL_OFST 28 5648 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCNTL_LBN 3 5649 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCNTL_WIDTH 1 5650 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCS_OFST 28 5651 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCS_LBN 4 5652 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCS_WIDTH 1 5653 5654 /* MC_CMD_SET_MAC_V3_IN msgrequest */ 5655 #define MC_CMD_SET_MAC_V3_IN_LEN 40 5656 /* The MTU is the MTU programmed directly into the XMAC/GMAC (inclusive of 5657 * EtherII, VLAN, bug16011 padding). 5658 */ 5659 #define MC_CMD_SET_MAC_V3_IN_MTU_OFST 0 5660 #define MC_CMD_SET_MAC_V3_IN_MTU_LEN 4 5661 #define MC_CMD_SET_MAC_V3_IN_DRAIN_OFST 4 5662 #define MC_CMD_SET_MAC_V3_IN_DRAIN_LEN 4 5663 #define MC_CMD_SET_MAC_V3_IN_ADDR_OFST 8 5664 #define MC_CMD_SET_MAC_V3_IN_ADDR_LEN 8 5665 #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_OFST 8 5666 #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_LEN 4 5667 #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_LBN 64 5668 #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_WIDTH 32 5669 #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_OFST 12 5670 #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_LEN 4 5671 #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_LBN 96 5672 #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_WIDTH 32 5673 #define MC_CMD_SET_MAC_V3_IN_REJECT_OFST 16 5674 #define MC_CMD_SET_MAC_V3_IN_REJECT_LEN 4 5675 #define MC_CMD_SET_MAC_V3_IN_REJECT_UNCST_OFST 16 5676 #define MC_CMD_SET_MAC_V3_IN_REJECT_UNCST_LBN 0 5677 #define MC_CMD_SET_MAC_V3_IN_REJECT_UNCST_WIDTH 1 5678 #define MC_CMD_SET_MAC_V3_IN_REJECT_BRDCST_OFST 16 5679 #define MC_CMD_SET_MAC_V3_IN_REJECT_BRDCST_LBN 1 5680 #define MC_CMD_SET_MAC_V3_IN_REJECT_BRDCST_WIDTH 1 5681 #define MC_CMD_SET_MAC_V3_IN_FCNTL_OFST 20 5682 #define MC_CMD_SET_MAC_V3_IN_FCNTL_LEN 4 5683 /* enum: Flow control is off. */ 5684 /* MC_CMD_FCNTL_OFF 0x0 */ 5685 /* enum: Respond to flow control. */ 5686 /* MC_CMD_FCNTL_RESPOND 0x1 */ 5687 /* enum: Respond to and Issue flow control. */ 5688 /* MC_CMD_FCNTL_BIDIR 0x2 */ 5689 /* enum: Auto neg flow control. */ 5690 /* MC_CMD_FCNTL_AUTO 0x3 */ 5691 /* enum: Priority flow control (eftest builds only). */ 5692 /* MC_CMD_FCNTL_QBB 0x4 */ 5693 /* enum: Issue flow control. */ 5694 /* MC_CMD_FCNTL_GENERATE 0x5 */ 5695 #define MC_CMD_SET_MAC_V3_IN_FLAGS_OFST 24 5696 #define MC_CMD_SET_MAC_V3_IN_FLAGS_LEN 4 5697 #define MC_CMD_SET_MAC_V3_IN_FLAG_INCLUDE_FCS_OFST 24 5698 #define MC_CMD_SET_MAC_V3_IN_FLAG_INCLUDE_FCS_LBN 0 5699 #define MC_CMD_SET_MAC_V3_IN_FLAG_INCLUDE_FCS_WIDTH 1 5700 /* Select which parameters to configure. A parameter will only be modified if 5701 * the corresponding control flag is set. If SET_MAC_ENHANCED is not set in 5702 * capabilities then this field is ignored (and all flags are assumed to be 5703 * set). 5704 */ 5705 #define MC_CMD_SET_MAC_V3_IN_CONTROL_OFST 28 5706 #define MC_CMD_SET_MAC_V3_IN_CONTROL_LEN 4 5707 #define MC_CMD_SET_MAC_V3_IN_CFG_MTU_OFST 28 5708 #define MC_CMD_SET_MAC_V3_IN_CFG_MTU_LBN 0 5709 #define MC_CMD_SET_MAC_V3_IN_CFG_MTU_WIDTH 1 5710 #define MC_CMD_SET_MAC_V3_IN_CFG_DRAIN_OFST 28 5711 #define MC_CMD_SET_MAC_V3_IN_CFG_DRAIN_LBN 1 5712 #define MC_CMD_SET_MAC_V3_IN_CFG_DRAIN_WIDTH 1 5713 #define MC_CMD_SET_MAC_V3_IN_CFG_REJECT_OFST 28 5714 #define MC_CMD_SET_MAC_V3_IN_CFG_REJECT_LBN 2 5715 #define MC_CMD_SET_MAC_V3_IN_CFG_REJECT_WIDTH 1 5716 #define MC_CMD_SET_MAC_V3_IN_CFG_FCNTL_OFST 28 5717 #define MC_CMD_SET_MAC_V3_IN_CFG_FCNTL_LBN 3 5718 #define MC_CMD_SET_MAC_V3_IN_CFG_FCNTL_WIDTH 1 5719 #define MC_CMD_SET_MAC_V3_IN_CFG_FCS_OFST 28 5720 #define MC_CMD_SET_MAC_V3_IN_CFG_FCS_LBN 4 5721 #define MC_CMD_SET_MAC_V3_IN_CFG_FCS_WIDTH 1 5722 /* Identifies the MAC to update by the specifying the end of a logical MAE 5723 * link. Setting TARGET to MAE_LINK_ENDPOINT_COMPAT is equivalent to using the 5724 * previous version of the command (MC_CMD_SET_MAC_EXT). Not all possible 5725 * combinations of MPORT_END and MPORT_SELECTOR in TARGET will work in all 5726 * circumstances. 1. Some will always work (e.g. a VF can always address its 5727 * logical MAC using MPORT_SELECTOR=ASSIGNED,LINK_END=VNIC), 2. Some are not 5728 * meaningful and will always fail with EINVAL (e.g. attempting to address the 5729 * VNIC end of a link to a physical port), 3. Some are meaningful but require 5730 * the MCDI client to have the required permission and fail with EPERM 5731 * otherwise (e.g. trying to set the MAC on a VF the caller cannot administer), 5732 * and 4. Some could be implementation-specific and fail with ENOTSUP if not 5733 * available (no examples exist right now). See SF-123581-TC section 4.3 for 5734 * more details. 5735 */ 5736 #define MC_CMD_SET_MAC_V3_IN_TARGET_OFST 32 5737 #define MC_CMD_SET_MAC_V3_IN_TARGET_LEN 8 5738 #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_OFST 32 5739 #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_LEN 4 5740 #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_LBN 256 5741 #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_WIDTH 32 5742 #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_OFST 36 5743 #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_LEN 4 5744 #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_LBN 288 5745 #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_WIDTH 32 5746 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_OFST 32 5747 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_LEN 4 5748 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FLAT_OFST 32 5749 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FLAT_LEN 4 5750 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_TYPE_OFST 35 5751 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_TYPE_LEN 1 5752 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 32 5753 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_MPORT_ID_LEN 3 5754 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_PPORT_ID_LBN 256 5755 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4 5756 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_LBN 276 5757 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 5758 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 272 5759 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 5760 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_PF_ID_OFST 34 5761 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1 5762 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 32 5763 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_VF_ID_LEN 2 5764 #define MC_CMD_SET_MAC_V3_IN_TARGET_LINK_END_OFST 36 5765 #define MC_CMD_SET_MAC_V3_IN_TARGET_LINK_END_LEN 4 5766 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_OFST 32 5767 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LEN 8 5768 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_OFST 32 5769 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_LEN 4 5770 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_LBN 256 5771 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_WIDTH 32 5772 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_OFST 36 5773 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_LEN 4 5774 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_LBN 288 5775 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_WIDTH 32 5776 5777 /* MC_CMD_SET_MAC_OUT msgresponse */ 5778 #define MC_CMD_SET_MAC_OUT_LEN 0 5779 5780 /* MC_CMD_SET_MAC_V2_OUT msgresponse */ 5781 #define MC_CMD_SET_MAC_V2_OUT_LEN 4 5782 /* MTU as configured after processing the request. See comment at 5783 * MC_CMD_SET_MAC_IN/MTU. To query MTU without doing any changes, set CONTROL 5784 * to 0. 5785 */ 5786 #define MC_CMD_SET_MAC_V2_OUT_MTU_OFST 0 5787 #define MC_CMD_SET_MAC_V2_OUT_MTU_LEN 4 5788 5789 5790 /***********************************/ 5791 /* MC_CMD_PHY_STATS 5792 * Get generic PHY statistics. This call returns the statistics for a generic 5793 * PHY in a sparse array (indexed by the enumerate). Each value is represented 5794 * by a 32bit number. If the DMA_ADDR is 0, then no DMA is performed, and the 5795 * statistics may be read from the message response. If DMA_ADDR != 0, then the 5796 * statistics are dmad to that (page-aligned location). Locks required: None. 5797 * Returns: 0, ETIME 5798 */ 5799 #define MC_CMD_PHY_STATS 0x2d 5800 #define MC_CMD_PHY_STATS_MSGSET 0x2d 5801 #undef MC_CMD_0x2d_PRIVILEGE_CTG 5802 5803 #define MC_CMD_0x2d_PRIVILEGE_CTG SRIOV_CTG_LINK 5804 5805 /* MC_CMD_PHY_STATS_IN msgrequest */ 5806 #define MC_CMD_PHY_STATS_IN_LEN 8 5807 /* ??? */ 5808 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_OFST 0 5809 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LEN 8 5810 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_OFST 0 5811 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_LEN 4 5812 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_LBN 0 5813 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_WIDTH 32 5814 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_OFST 4 5815 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_LEN 4 5816 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_LBN 32 5817 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_WIDTH 32 5818 5819 /* MC_CMD_PHY_STATS_OUT_DMA msgresponse */ 5820 #define MC_CMD_PHY_STATS_OUT_DMA_LEN 0 5821 5822 /* MC_CMD_PHY_STATS_OUT_NO_DMA msgresponse */ 5823 #define MC_CMD_PHY_STATS_OUT_NO_DMA_LEN (((MC_CMD_PHY_NSTATS*32))>>3) 5824 #define MC_CMD_PHY_STATS_OUT_NO_DMA_STATISTICS_OFST 0 5825 #define MC_CMD_PHY_STATS_OUT_NO_DMA_STATISTICS_LEN 4 5826 #define MC_CMD_PHY_STATS_OUT_NO_DMA_STATISTICS_NUM MC_CMD_PHY_NSTATS 5827 /* enum: OUI. */ 5828 #define MC_CMD_OUI 0x0 5829 /* enum: PMA-PMD Link Up. */ 5830 #define MC_CMD_PMA_PMD_LINK_UP 0x1 5831 /* enum: PMA-PMD RX Fault. */ 5832 #define MC_CMD_PMA_PMD_RX_FAULT 0x2 5833 /* enum: PMA-PMD TX Fault. */ 5834 #define MC_CMD_PMA_PMD_TX_FAULT 0x3 5835 /* enum: PMA-PMD Signal */ 5836 #define MC_CMD_PMA_PMD_SIGNAL 0x4 5837 /* enum: PMA-PMD SNR A. */ 5838 #define MC_CMD_PMA_PMD_SNR_A 0x5 5839 /* enum: PMA-PMD SNR B. */ 5840 #define MC_CMD_PMA_PMD_SNR_B 0x6 5841 /* enum: PMA-PMD SNR C. */ 5842 #define MC_CMD_PMA_PMD_SNR_C 0x7 5843 /* enum: PMA-PMD SNR D. */ 5844 #define MC_CMD_PMA_PMD_SNR_D 0x8 5845 /* enum: PCS Link Up. */ 5846 #define MC_CMD_PCS_LINK_UP 0x9 5847 /* enum: PCS RX Fault. */ 5848 #define MC_CMD_PCS_RX_FAULT 0xa 5849 /* enum: PCS TX Fault. */ 5850 #define MC_CMD_PCS_TX_FAULT 0xb 5851 /* enum: PCS BER. */ 5852 #define MC_CMD_PCS_BER 0xc 5853 /* enum: PCS Block Errors. */ 5854 #define MC_CMD_PCS_BLOCK_ERRORS 0xd 5855 /* enum: PhyXS Link Up. */ 5856 #define MC_CMD_PHYXS_LINK_UP 0xe 5857 /* enum: PhyXS RX Fault. */ 5858 #define MC_CMD_PHYXS_RX_FAULT 0xf 5859 /* enum: PhyXS TX Fault. */ 5860 #define MC_CMD_PHYXS_TX_FAULT 0x10 5861 /* enum: PhyXS Align. */ 5862 #define MC_CMD_PHYXS_ALIGN 0x11 5863 /* enum: PhyXS Sync. */ 5864 #define MC_CMD_PHYXS_SYNC 0x12 5865 /* enum: AN link-up. */ 5866 #define MC_CMD_AN_LINK_UP 0x13 5867 /* enum: AN Complete. */ 5868 #define MC_CMD_AN_COMPLETE 0x14 5869 /* enum: AN 10GBaseT Status. */ 5870 #define MC_CMD_AN_10GBT_STATUS 0x15 5871 /* enum: Clause 22 Link-Up. */ 5872 #define MC_CMD_CL22_LINK_UP 0x16 5873 /* enum: (Last entry) */ 5874 #define MC_CMD_PHY_NSTATS 0x17 5875 5876 5877 /***********************************/ 5878 /* MC_CMD_MAC_STATS 5879 * Get generic MAC statistics. This call returns unified statistics maintained 5880 * by the MC as it switches between the GMAC and XMAC. The MC will write out 5881 * all supported stats. The driver should zero initialise the buffer to 5882 * guarantee consistent results. If the DMA_ADDR is 0, then no DMA is 5883 * performed, and the statistics may be read from the message response. If 5884 * DMA_ADDR != 0, then the statistics are dmad to that (page-aligned location). 5885 * Locks required: None. The PERIODIC_CLEAR option is not used and now has no 5886 * effect. Returns: 0, ETIME 5887 */ 5888 #define MC_CMD_MAC_STATS 0x2e 5889 #define MC_CMD_MAC_STATS_MSGSET 0x2e 5890 #undef MC_CMD_0x2e_PRIVILEGE_CTG 5891 5892 #define MC_CMD_0x2e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 5893 5894 /* MC_CMD_MAC_STATS_IN msgrequest */ 5895 #define MC_CMD_MAC_STATS_IN_LEN 20 5896 /* ??? */ 5897 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_OFST 0 5898 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LEN 8 5899 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_OFST 0 5900 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_LEN 4 5901 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_LBN 0 5902 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_WIDTH 32 5903 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_OFST 4 5904 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_LEN 4 5905 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_LBN 32 5906 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_WIDTH 32 5907 #define MC_CMD_MAC_STATS_IN_CMD_OFST 8 5908 #define MC_CMD_MAC_STATS_IN_CMD_LEN 4 5909 #define MC_CMD_MAC_STATS_IN_DMA_OFST 8 5910 #define MC_CMD_MAC_STATS_IN_DMA_LBN 0 5911 #define MC_CMD_MAC_STATS_IN_DMA_WIDTH 1 5912 #define MC_CMD_MAC_STATS_IN_CLEAR_OFST 8 5913 #define MC_CMD_MAC_STATS_IN_CLEAR_LBN 1 5914 #define MC_CMD_MAC_STATS_IN_CLEAR_WIDTH 1 5915 #define MC_CMD_MAC_STATS_IN_PERIODIC_CHANGE_OFST 8 5916 #define MC_CMD_MAC_STATS_IN_PERIODIC_CHANGE_LBN 2 5917 #define MC_CMD_MAC_STATS_IN_PERIODIC_CHANGE_WIDTH 1 5918 #define MC_CMD_MAC_STATS_IN_PERIODIC_ENABLE_OFST 8 5919 #define MC_CMD_MAC_STATS_IN_PERIODIC_ENABLE_LBN 3 5920 #define MC_CMD_MAC_STATS_IN_PERIODIC_ENABLE_WIDTH 1 5921 #define MC_CMD_MAC_STATS_IN_PERIODIC_CLEAR_OFST 8 5922 #define MC_CMD_MAC_STATS_IN_PERIODIC_CLEAR_LBN 4 5923 #define MC_CMD_MAC_STATS_IN_PERIODIC_CLEAR_WIDTH 1 5924 #define MC_CMD_MAC_STATS_IN_PERIODIC_NOEVENT_OFST 8 5925 #define MC_CMD_MAC_STATS_IN_PERIODIC_NOEVENT_LBN 5 5926 #define MC_CMD_MAC_STATS_IN_PERIODIC_NOEVENT_WIDTH 1 5927 #define MC_CMD_MAC_STATS_IN_PERIOD_MS_OFST 8 5928 #define MC_CMD_MAC_STATS_IN_PERIOD_MS_LBN 16 5929 #define MC_CMD_MAC_STATS_IN_PERIOD_MS_WIDTH 16 5930 /* DMA length. Should be set to MAC_STATS_NUM_STATS * sizeof(uint64_t), as 5931 * returned by MC_CMD_GET_CAPABILITIES_V4_OUT. For legacy firmware not 5932 * supporting MC_CMD_GET_CAPABILITIES_V4_OUT, DMA_LEN should be set to 5933 * MC_CMD_MAC_NSTATS * sizeof(uint64_t) 5934 */ 5935 #define MC_CMD_MAC_STATS_IN_DMA_LEN_OFST 12 5936 #define MC_CMD_MAC_STATS_IN_DMA_LEN_LEN 4 5937 /* port id so vadapter stats can be provided */ 5938 #define MC_CMD_MAC_STATS_IN_PORT_ID_OFST 16 5939 #define MC_CMD_MAC_STATS_IN_PORT_ID_LEN 4 5940 5941 /* MC_CMD_MAC_STATS_OUT_DMA msgresponse */ 5942 #define MC_CMD_MAC_STATS_OUT_DMA_LEN 0 5943 5944 /* MC_CMD_MAC_STATS_OUT_NO_DMA msgresponse */ 5945 #define MC_CMD_MAC_STATS_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS*64))>>3) 5946 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_OFST 0 5947 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LEN 8 5948 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_OFST 0 5949 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_LEN 4 5950 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_LBN 0 5951 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 5952 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_OFST 4 5953 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_LEN 4 5954 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_LBN 32 5955 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 5956 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS 5957 #define MC_CMD_MAC_GENERATION_START 0x0 /* enum */ 5958 #define MC_CMD_MAC_DMABUF_START 0x1 /* enum */ 5959 #define MC_CMD_MAC_TX_PKTS 0x1 /* enum */ 5960 #define MC_CMD_MAC_TX_PAUSE_PKTS 0x2 /* enum */ 5961 #define MC_CMD_MAC_TX_CONTROL_PKTS 0x3 /* enum */ 5962 #define MC_CMD_MAC_TX_UNICAST_PKTS 0x4 /* enum */ 5963 #define MC_CMD_MAC_TX_MULTICAST_PKTS 0x5 /* enum */ 5964 #define MC_CMD_MAC_TX_BROADCAST_PKTS 0x6 /* enum */ 5965 #define MC_CMD_MAC_TX_BYTES 0x7 /* enum */ 5966 #define MC_CMD_MAC_TX_BAD_BYTES 0x8 /* enum */ 5967 #define MC_CMD_MAC_TX_LT64_PKTS 0x9 /* enum */ 5968 #define MC_CMD_MAC_TX_64_PKTS 0xa /* enum */ 5969 #define MC_CMD_MAC_TX_65_TO_127_PKTS 0xb /* enum */ 5970 #define MC_CMD_MAC_TX_128_TO_255_PKTS 0xc /* enum */ 5971 #define MC_CMD_MAC_TX_256_TO_511_PKTS 0xd /* enum */ 5972 #define MC_CMD_MAC_TX_512_TO_1023_PKTS 0xe /* enum */ 5973 #define MC_CMD_MAC_TX_1024_TO_15XX_PKTS 0xf /* enum */ 5974 #define MC_CMD_MAC_TX_15XX_TO_JUMBO_PKTS 0x10 /* enum */ 5975 #define MC_CMD_MAC_TX_GTJUMBO_PKTS 0x11 /* enum */ 5976 #define MC_CMD_MAC_TX_BAD_FCS_PKTS 0x12 /* enum */ 5977 #define MC_CMD_MAC_TX_SINGLE_COLLISION_PKTS 0x13 /* enum */ 5978 #define MC_CMD_MAC_TX_MULTIPLE_COLLISION_PKTS 0x14 /* enum */ 5979 #define MC_CMD_MAC_TX_EXCESSIVE_COLLISION_PKTS 0x15 /* enum */ 5980 #define MC_CMD_MAC_TX_LATE_COLLISION_PKTS 0x16 /* enum */ 5981 #define MC_CMD_MAC_TX_DEFERRED_PKTS 0x17 /* enum */ 5982 #define MC_CMD_MAC_TX_EXCESSIVE_DEFERRED_PKTS 0x18 /* enum */ 5983 #define MC_CMD_MAC_TX_NON_TCPUDP_PKTS 0x19 /* enum */ 5984 #define MC_CMD_MAC_TX_MAC_SRC_ERR_PKTS 0x1a /* enum */ 5985 #define MC_CMD_MAC_TX_IP_SRC_ERR_PKTS 0x1b /* enum */ 5986 #define MC_CMD_MAC_RX_PKTS 0x1c /* enum */ 5987 #define MC_CMD_MAC_RX_PAUSE_PKTS 0x1d /* enum */ 5988 #define MC_CMD_MAC_RX_GOOD_PKTS 0x1e /* enum */ 5989 #define MC_CMD_MAC_RX_CONTROL_PKTS 0x1f /* enum */ 5990 #define MC_CMD_MAC_RX_UNICAST_PKTS 0x20 /* enum */ 5991 #define MC_CMD_MAC_RX_MULTICAST_PKTS 0x21 /* enum */ 5992 #define MC_CMD_MAC_RX_BROADCAST_PKTS 0x22 /* enum */ 5993 #define MC_CMD_MAC_RX_BYTES 0x23 /* enum */ 5994 #define MC_CMD_MAC_RX_BAD_BYTES 0x24 /* enum */ 5995 #define MC_CMD_MAC_RX_64_PKTS 0x25 /* enum */ 5996 #define MC_CMD_MAC_RX_65_TO_127_PKTS 0x26 /* enum */ 5997 #define MC_CMD_MAC_RX_128_TO_255_PKTS 0x27 /* enum */ 5998 #define MC_CMD_MAC_RX_256_TO_511_PKTS 0x28 /* enum */ 5999 #define MC_CMD_MAC_RX_512_TO_1023_PKTS 0x29 /* enum */ 6000 #define MC_CMD_MAC_RX_1024_TO_15XX_PKTS 0x2a /* enum */ 6001 #define MC_CMD_MAC_RX_15XX_TO_JUMBO_PKTS 0x2b /* enum */ 6002 #define MC_CMD_MAC_RX_GTJUMBO_PKTS 0x2c /* enum */ 6003 #define MC_CMD_MAC_RX_UNDERSIZE_PKTS 0x2d /* enum */ 6004 #define MC_CMD_MAC_RX_BAD_FCS_PKTS 0x2e /* enum */ 6005 #define MC_CMD_MAC_RX_OVERFLOW_PKTS 0x2f /* enum */ 6006 #define MC_CMD_MAC_RX_FALSE_CARRIER_PKTS 0x30 /* enum */ 6007 #define MC_CMD_MAC_RX_SYMBOL_ERROR_PKTS 0x31 /* enum */ 6008 #define MC_CMD_MAC_RX_ALIGN_ERROR_PKTS 0x32 /* enum */ 6009 #define MC_CMD_MAC_RX_LENGTH_ERROR_PKTS 0x33 /* enum */ 6010 #define MC_CMD_MAC_RX_INTERNAL_ERROR_PKTS 0x34 /* enum */ 6011 #define MC_CMD_MAC_RX_JABBER_PKTS 0x35 /* enum */ 6012 #define MC_CMD_MAC_RX_NODESC_DROPS 0x36 /* enum */ 6013 #define MC_CMD_MAC_RX_LANES01_CHAR_ERR 0x37 /* enum */ 6014 #define MC_CMD_MAC_RX_LANES23_CHAR_ERR 0x38 /* enum */ 6015 #define MC_CMD_MAC_RX_LANES01_DISP_ERR 0x39 /* enum */ 6016 #define MC_CMD_MAC_RX_LANES23_DISP_ERR 0x3a /* enum */ 6017 #define MC_CMD_MAC_RX_MATCH_FAULT 0x3b /* enum */ 6018 /* enum: PM trunc_bb_overflow counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 6019 * capability only. 6020 */ 6021 #define MC_CMD_MAC_PM_TRUNC_BB_OVERFLOW 0x3c 6022 /* enum: PM discard_bb_overflow counter. Valid for EF10 with 6023 * PM_AND_RXDP_COUNTERS capability only. 6024 */ 6025 #define MC_CMD_MAC_PM_DISCARD_BB_OVERFLOW 0x3d 6026 /* enum: PM trunc_vfifo_full counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 6027 * capability only. 6028 */ 6029 #define MC_CMD_MAC_PM_TRUNC_VFIFO_FULL 0x3e 6030 /* enum: PM discard_vfifo_full counter. Valid for EF10 with 6031 * PM_AND_RXDP_COUNTERS capability only. 6032 */ 6033 #define MC_CMD_MAC_PM_DISCARD_VFIFO_FULL 0x3f 6034 /* enum: PM trunc_qbb counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 6035 * capability only. 6036 */ 6037 #define MC_CMD_MAC_PM_TRUNC_QBB 0x40 6038 /* enum: PM discard_qbb counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 6039 * capability only. 6040 */ 6041 #define MC_CMD_MAC_PM_DISCARD_QBB 0x41 6042 /* enum: PM discard_mapping counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 6043 * capability only. 6044 */ 6045 #define MC_CMD_MAC_PM_DISCARD_MAPPING 0x42 6046 /* enum: RXDP counter: Number of packets dropped due to the queue being 6047 * disabled. Valid for EF10 with PM_AND_RXDP_COUNTERS capability only. 6048 */ 6049 #define MC_CMD_MAC_RXDP_Q_DISABLED_PKTS 0x43 6050 /* enum: RXDP counter: Number of packets dropped by the DICPU. Valid for EF10 6051 * with PM_AND_RXDP_COUNTERS capability only. 6052 */ 6053 #define MC_CMD_MAC_RXDP_DI_DROPPED_PKTS 0x45 6054 /* enum: RXDP counter: Number of non-host packets. Valid for EF10 with 6055 * PM_AND_RXDP_COUNTERS capability only. 6056 */ 6057 #define MC_CMD_MAC_RXDP_STREAMING_PKTS 0x46 6058 /* enum: RXDP counter: Number of times an hlb descriptor fetch was performed. 6059 * Valid for EF10 with PM_AND_RXDP_COUNTERS capability only. 6060 */ 6061 #define MC_CMD_MAC_RXDP_HLB_FETCH_CONDITIONS 0x47 6062 /* enum: RXDP counter: Number of times the DPCPU waited for an existing 6063 * descriptor fetch. Valid for EF10 with PM_AND_RXDP_COUNTERS capability only. 6064 */ 6065 #define MC_CMD_MAC_RXDP_HLB_WAIT_CONDITIONS 0x48 6066 #define MC_CMD_MAC_VADAPTER_RX_DMABUF_START 0x4c /* enum */ 6067 #define MC_CMD_MAC_VADAPTER_RX_UNICAST_PACKETS 0x4c /* enum */ 6068 #define MC_CMD_MAC_VADAPTER_RX_UNICAST_BYTES 0x4d /* enum */ 6069 #define MC_CMD_MAC_VADAPTER_RX_MULTICAST_PACKETS 0x4e /* enum */ 6070 #define MC_CMD_MAC_VADAPTER_RX_MULTICAST_BYTES 0x4f /* enum */ 6071 #define MC_CMD_MAC_VADAPTER_RX_BROADCAST_PACKETS 0x50 /* enum */ 6072 #define MC_CMD_MAC_VADAPTER_RX_BROADCAST_BYTES 0x51 /* enum */ 6073 #define MC_CMD_MAC_VADAPTER_RX_BAD_PACKETS 0x52 /* enum */ 6074 #define MC_CMD_MAC_VADAPTER_RX_BAD_BYTES 0x53 /* enum */ 6075 #define MC_CMD_MAC_VADAPTER_RX_OVERFLOW 0x54 /* enum */ 6076 #define MC_CMD_MAC_VADAPTER_TX_DMABUF_START 0x57 /* enum */ 6077 #define MC_CMD_MAC_VADAPTER_TX_UNICAST_PACKETS 0x57 /* enum */ 6078 #define MC_CMD_MAC_VADAPTER_TX_UNICAST_BYTES 0x58 /* enum */ 6079 #define MC_CMD_MAC_VADAPTER_TX_MULTICAST_PACKETS 0x59 /* enum */ 6080 #define MC_CMD_MAC_VADAPTER_TX_MULTICAST_BYTES 0x5a /* enum */ 6081 #define MC_CMD_MAC_VADAPTER_TX_BROADCAST_PACKETS 0x5b /* enum */ 6082 #define MC_CMD_MAC_VADAPTER_TX_BROADCAST_BYTES 0x5c /* enum */ 6083 #define MC_CMD_MAC_VADAPTER_TX_BAD_PACKETS 0x5d /* enum */ 6084 #define MC_CMD_MAC_VADAPTER_TX_BAD_BYTES 0x5e /* enum */ 6085 #define MC_CMD_MAC_VADAPTER_TX_OVERFLOW 0x5f /* enum */ 6086 /* enum: Start of GMAC stats buffer space, for Siena only. */ 6087 #define MC_CMD_GMAC_DMABUF_START 0x40 6088 /* enum: End of GMAC stats buffer space, for Siena only. */ 6089 #define MC_CMD_GMAC_DMABUF_END 0x5f 6090 /* enum: GENERATION_END value, used together with GENERATION_START to verify 6091 * consistency of DMAd data. For legacy firmware / drivers without extended 6092 * stats (more precisely, when DMA_LEN == MC_CMD_MAC_NSTATS * 6093 * sizeof(uint64_t)), this entry holds the GENERATION_END value. Otherwise, 6094 * this value is invalid/ reserved and GENERATION_END is written as the last 6095 * 64-bit word of the DMA buffer (at DMA_LEN - sizeof(uint64_t)). Note that 6096 * this is consistent with the legacy behaviour, in the sense that entry 96 is 6097 * the last 64-bit word in the buffer when DMA_LEN == MC_CMD_MAC_NSTATS * 6098 * sizeof(uint64_t). See SF-109306-TC, Section 9.2 for details. 6099 */ 6100 #define MC_CMD_MAC_GENERATION_END 0x60 6101 #define MC_CMD_MAC_NSTATS 0x61 /* enum */ 6102 6103 /* MC_CMD_MAC_STATS_V2_OUT_DMA msgresponse */ 6104 #define MC_CMD_MAC_STATS_V2_OUT_DMA_LEN 0 6105 6106 /* MC_CMD_MAC_STATS_V2_OUT_NO_DMA msgresponse */ 6107 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS_V2*64))>>3) 6108 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_OFST 0 6109 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LEN 8 6110 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_OFST 0 6111 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_LEN 4 6112 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_LBN 0 6113 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 6114 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_OFST 4 6115 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_LEN 4 6116 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_LBN 32 6117 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 6118 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS_V2 6119 /* enum: Start of FEC stats buffer space, Medford2 and up */ 6120 #define MC_CMD_MAC_FEC_DMABUF_START 0x61 6121 /* enum: Number of uncorrected FEC codewords on link (RS-FEC only for Medford2) 6122 */ 6123 #define MC_CMD_MAC_FEC_UNCORRECTED_ERRORS 0x61 6124 /* enum: Number of corrected FEC codewords on link (RS-FEC only for Medford2) 6125 */ 6126 #define MC_CMD_MAC_FEC_CORRECTED_ERRORS 0x62 6127 /* enum: Number of corrected 10-bit symbol errors, lane 0 (RS-FEC only) */ 6128 #define MC_CMD_MAC_FEC_CORRECTED_SYMBOLS_LANE0 0x63 6129 /* enum: Number of corrected 10-bit symbol errors, lane 1 (RS-FEC only) */ 6130 #define MC_CMD_MAC_FEC_CORRECTED_SYMBOLS_LANE1 0x64 6131 /* enum: Number of corrected 10-bit symbol errors, lane 2 (RS-FEC only) */ 6132 #define MC_CMD_MAC_FEC_CORRECTED_SYMBOLS_LANE2 0x65 6133 /* enum: Number of corrected 10-bit symbol errors, lane 3 (RS-FEC only) */ 6134 #define MC_CMD_MAC_FEC_CORRECTED_SYMBOLS_LANE3 0x66 6135 /* enum: This includes the space at offset 103 which is the final 6136 * GENERATION_END in a MAC_STATS_V2 response and otherwise unused. 6137 */ 6138 #define MC_CMD_MAC_NSTATS_V2 0x68 6139 /* Other enum values, see field(s): */ 6140 /* MC_CMD_MAC_STATS_OUT_NO_DMA/STATISTICS */ 6141 6142 /* MC_CMD_MAC_STATS_V3_OUT_DMA msgresponse */ 6143 #define MC_CMD_MAC_STATS_V3_OUT_DMA_LEN 0 6144 6145 /* MC_CMD_MAC_STATS_V3_OUT_NO_DMA msgresponse */ 6146 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS_V3*64))>>3) 6147 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_OFST 0 6148 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LEN 8 6149 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_OFST 0 6150 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_LEN 4 6151 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_LBN 0 6152 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 6153 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_OFST 4 6154 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_LEN 4 6155 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_LBN 32 6156 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 6157 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS_V3 6158 /* enum: Start of CTPIO stats buffer space, Medford2 and up */ 6159 #define MC_CMD_MAC_CTPIO_DMABUF_START 0x68 6160 /* enum: Number of CTPIO fallbacks because a DMA packet was in progress on the 6161 * target VI 6162 */ 6163 #define MC_CMD_MAC_CTPIO_VI_BUSY_FALLBACK 0x68 6164 /* enum: Number of times a CTPIO send wrote beyond frame end (informational 6165 * only) 6166 */ 6167 #define MC_CMD_MAC_CTPIO_LONG_WRITE_SUCCESS 0x69 6168 /* enum: Number of CTPIO failures because the TX doorbell was written before 6169 * the end of the frame data 6170 */ 6171 #define MC_CMD_MAC_CTPIO_MISSING_DBELL_FAIL 0x6a 6172 /* enum: Number of CTPIO failures because the internal FIFO overflowed */ 6173 #define MC_CMD_MAC_CTPIO_OVERFLOW_FAIL 0x6b 6174 /* enum: Number of CTPIO failures because the host did not deliver data fast 6175 * enough to avoid MAC underflow 6176 */ 6177 #define MC_CMD_MAC_CTPIO_UNDERFLOW_FAIL 0x6c 6178 /* enum: Number of CTPIO failures because the host did not deliver all the 6179 * frame data within the timeout 6180 */ 6181 #define MC_CMD_MAC_CTPIO_TIMEOUT_FAIL 0x6d 6182 /* enum: Number of CTPIO failures because the frame data arrived out of order 6183 * or with gaps 6184 */ 6185 #define MC_CMD_MAC_CTPIO_NONCONTIG_WR_FAIL 0x6e 6186 /* enum: Number of CTPIO failures because the host started a new frame before 6187 * completing the previous one 6188 */ 6189 #define MC_CMD_MAC_CTPIO_FRM_CLOBBER_FAIL 0x6f 6190 /* enum: Number of CTPIO failures because a write was not a multiple of 32 bits 6191 * or not 32-bit aligned 6192 */ 6193 #define MC_CMD_MAC_CTPIO_INVALID_WR_FAIL 0x70 6194 /* enum: Number of CTPIO fallbacks because another VI on the same port was 6195 * sending a CTPIO frame 6196 */ 6197 #define MC_CMD_MAC_CTPIO_VI_CLOBBER_FALLBACK 0x71 6198 /* enum: Number of CTPIO fallbacks because target VI did not have CTPIO enabled 6199 */ 6200 #define MC_CMD_MAC_CTPIO_UNQUALIFIED_FALLBACK 0x72 6201 /* enum: Number of CTPIO fallbacks because length in header was less than 29 6202 * bytes 6203 */ 6204 #define MC_CMD_MAC_CTPIO_RUNT_FALLBACK 0x73 6205 /* enum: Total number of successful CTPIO sends on this port */ 6206 #define MC_CMD_MAC_CTPIO_SUCCESS 0x74 6207 /* enum: Total number of CTPIO fallbacks on this port */ 6208 #define MC_CMD_MAC_CTPIO_FALLBACK 0x75 6209 /* enum: Total number of CTPIO poisoned frames on this port, whether erased or 6210 * not 6211 */ 6212 #define MC_CMD_MAC_CTPIO_POISON 0x76 6213 /* enum: Total number of CTPIO erased frames on this port */ 6214 #define MC_CMD_MAC_CTPIO_ERASE 0x77 6215 /* enum: This includes the space at offset 120 which is the final 6216 * GENERATION_END in a MAC_STATS_V3 response and otherwise unused. 6217 */ 6218 #define MC_CMD_MAC_NSTATS_V3 0x79 6219 /* Other enum values, see field(s): */ 6220 /* MC_CMD_MAC_STATS_V2_OUT_NO_DMA/STATISTICS */ 6221 6222 /* MC_CMD_MAC_STATS_V4_OUT_DMA msgresponse */ 6223 #define MC_CMD_MAC_STATS_V4_OUT_DMA_LEN 0 6224 6225 /* MC_CMD_MAC_STATS_V4_OUT_NO_DMA msgresponse */ 6226 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS_V4*64))>>3) 6227 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_OFST 0 6228 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LEN 8 6229 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_OFST 0 6230 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_LEN 4 6231 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_LBN 0 6232 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_WIDTH 32 6233 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_OFST 4 6234 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_LEN 4 6235 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_LBN 32 6236 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_WIDTH 32 6237 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS_V4 6238 /* enum: Start of V4 stats buffer space */ 6239 #define MC_CMD_MAC_V4_DMABUF_START 0x79 6240 /* enum: RXDP counter: Number of packets truncated because scattering was 6241 * disabled. 6242 */ 6243 #define MC_CMD_MAC_RXDP_SCATTER_DISABLED_TRUNC 0x79 6244 /* enum: RXDP counter: Number of times the RXDP head of line blocked waiting 6245 * for descriptors. Will be zero unless RXDP_HLB_IDLE capability is set. 6246 */ 6247 #define MC_CMD_MAC_RXDP_HLB_IDLE 0x7a 6248 /* enum: RXDP counter: Number of times the RXDP timed out while head of line 6249 * blocking. Will be zero unless RXDP_HLB_IDLE capability is set. 6250 */ 6251 #define MC_CMD_MAC_RXDP_HLB_TIMEOUT 0x7b 6252 /* enum: This includes the space at offset 124 which is the final 6253 * GENERATION_END in a MAC_STATS_V4 response and otherwise unused. 6254 */ 6255 #define MC_CMD_MAC_NSTATS_V4 0x7d 6256 /* Other enum values, see field(s): */ 6257 /* MC_CMD_MAC_STATS_V3_OUT_NO_DMA/STATISTICS */ 6258 6259 6260 /***********************************/ 6261 /* MC_CMD_SRIOV 6262 * to be documented 6263 */ 6264 #define MC_CMD_SRIOV 0x30 6265 #define MC_CMD_SRIOV_MSGSET 0x30 6266 6267 /* MC_CMD_SRIOV_IN msgrequest */ 6268 #define MC_CMD_SRIOV_IN_LEN 12 6269 #define MC_CMD_SRIOV_IN_ENABLE_OFST 0 6270 #define MC_CMD_SRIOV_IN_ENABLE_LEN 4 6271 #define MC_CMD_SRIOV_IN_VI_BASE_OFST 4 6272 #define MC_CMD_SRIOV_IN_VI_BASE_LEN 4 6273 #define MC_CMD_SRIOV_IN_VF_COUNT_OFST 8 6274 #define MC_CMD_SRIOV_IN_VF_COUNT_LEN 4 6275 6276 /* MC_CMD_SRIOV_OUT msgresponse */ 6277 #define MC_CMD_SRIOV_OUT_LEN 8 6278 #define MC_CMD_SRIOV_OUT_VI_SCALE_OFST 0 6279 #define MC_CMD_SRIOV_OUT_VI_SCALE_LEN 4 6280 #define MC_CMD_SRIOV_OUT_VF_TOTAL_OFST 4 6281 #define MC_CMD_SRIOV_OUT_VF_TOTAL_LEN 4 6282 6283 /* MC_CMD_MEMCPY_RECORD_TYPEDEF structuredef */ 6284 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_LEN 32 6285 /* this is only used for the first record */ 6286 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_NUM_RECORDS_OFST 0 6287 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_NUM_RECORDS_LEN 4 6288 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_NUM_RECORDS_LBN 0 6289 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_NUM_RECORDS_WIDTH 32 6290 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_RID_OFST 4 6291 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_RID_LEN 4 6292 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_RID_LBN 32 6293 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_RID_WIDTH 32 6294 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_OFST 8 6295 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LEN 8 6296 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LO_OFST 8 6297 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LO_LEN 4 6298 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LO_LBN 64 6299 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LO_WIDTH 32 6300 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_HI_OFST 12 6301 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_HI_LEN 4 6302 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_HI_LBN 96 6303 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_HI_WIDTH 32 6304 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LBN 64 6305 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_WIDTH 64 6306 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_RID_OFST 16 6307 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_RID_LEN 4 6308 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_RID_INLINE 0x100 /* enum */ 6309 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_RID_LBN 128 6310 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_RID_WIDTH 32 6311 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_OFST 20 6312 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LEN 8 6313 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LO_OFST 20 6314 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LO_LEN 4 6315 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LO_LBN 160 6316 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LO_WIDTH 32 6317 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_HI_OFST 24 6318 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_HI_LEN 4 6319 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_HI_LBN 192 6320 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_HI_WIDTH 32 6321 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LBN 160 6322 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_WIDTH 64 6323 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_LENGTH_OFST 28 6324 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_LENGTH_LEN 4 6325 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_LENGTH_LBN 224 6326 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_LENGTH_WIDTH 32 6327 6328 6329 /***********************************/ 6330 /* MC_CMD_MEMCPY 6331 * DMA write data into (Rid,Addr), either by dma reading (Rid,Addr), or by data 6332 * embedded directly in the command. 6333 * 6334 * A common pattern is for a client to use generation counts to signal a dma 6335 * update of a datastructure. To facilitate this, this MCDI operation can 6336 * contain multiple requests which are executed in strict order. Requests take 6337 * the form of duplicating the entire MCDI request continuously (including the 6338 * requests record, which is ignored in all but the first structure) 6339 * 6340 * The source data can either come from a DMA from the host, or it can be 6341 * embedded within the request directly, thereby eliminating a DMA read. To 6342 * indicate this, the client sets FROM_RID=%RID_INLINE, ADDR_HI=0, and 6343 * ADDR_LO=offset, and inserts the data at %offset from the start of the 6344 * payload. It's the callers responsibility to ensure that the embedded data 6345 * doesn't overlap the records. 6346 * 6347 * Returns: 0, EINVAL (invalid RID) 6348 */ 6349 #define MC_CMD_MEMCPY 0x31 6350 #define MC_CMD_MEMCPY_MSGSET 0x31 6351 6352 /* MC_CMD_MEMCPY_IN msgrequest */ 6353 #define MC_CMD_MEMCPY_IN_LENMIN 32 6354 #define MC_CMD_MEMCPY_IN_LENMAX 224 6355 #define MC_CMD_MEMCPY_IN_LENMAX_MCDI2 992 6356 #define MC_CMD_MEMCPY_IN_LEN(num) (0+32*(num)) 6357 #define MC_CMD_MEMCPY_IN_RECORD_NUM(len) (((len)-0)/32) 6358 /* see MC_CMD_MEMCPY_RECORD_TYPEDEF */ 6359 #define MC_CMD_MEMCPY_IN_RECORD_OFST 0 6360 #define MC_CMD_MEMCPY_IN_RECORD_LEN 32 6361 #define MC_CMD_MEMCPY_IN_RECORD_MINNUM 1 6362 #define MC_CMD_MEMCPY_IN_RECORD_MAXNUM 7 6363 #define MC_CMD_MEMCPY_IN_RECORD_MAXNUM_MCDI2 31 6364 6365 /* MC_CMD_MEMCPY_OUT msgresponse */ 6366 #define MC_CMD_MEMCPY_OUT_LEN 0 6367 6368 6369 /***********************************/ 6370 /* MC_CMD_WOL_FILTER_SET 6371 * Set a WoL filter. 6372 */ 6373 #define MC_CMD_WOL_FILTER_SET 0x32 6374 #define MC_CMD_WOL_FILTER_SET_MSGSET 0x32 6375 #undef MC_CMD_0x32_PRIVILEGE_CTG 6376 6377 #define MC_CMD_0x32_PRIVILEGE_CTG SRIOV_CTG_LINK 6378 6379 /* MC_CMD_WOL_FILTER_SET_IN msgrequest */ 6380 #define MC_CMD_WOL_FILTER_SET_IN_LEN 192 6381 #define MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 6382 #define MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 6383 #define MC_CMD_FILTER_MODE_SIMPLE 0x0 /* enum */ 6384 #define MC_CMD_FILTER_MODE_STRUCTURED 0xffffffff /* enum */ 6385 /* A type value of 1 is unused. */ 6386 #define MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 6387 #define MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 6388 /* enum: Magic */ 6389 #define MC_CMD_WOL_TYPE_MAGIC 0x0 6390 /* enum: MS Windows Magic */ 6391 #define MC_CMD_WOL_TYPE_WIN_MAGIC 0x2 6392 /* enum: IPv4 Syn */ 6393 #define MC_CMD_WOL_TYPE_IPV4_SYN 0x3 6394 /* enum: IPv6 Syn */ 6395 #define MC_CMD_WOL_TYPE_IPV6_SYN 0x4 6396 /* enum: Bitmap */ 6397 #define MC_CMD_WOL_TYPE_BITMAP 0x5 6398 /* enum: Link */ 6399 #define MC_CMD_WOL_TYPE_LINK 0x6 6400 /* enum: (Above this for future use) */ 6401 #define MC_CMD_WOL_TYPE_MAX 0x7 6402 #define MC_CMD_WOL_FILTER_SET_IN_DATA_OFST 8 6403 #define MC_CMD_WOL_FILTER_SET_IN_DATA_LEN 4 6404 #define MC_CMD_WOL_FILTER_SET_IN_DATA_NUM 46 6405 6406 /* MC_CMD_WOL_FILTER_SET_IN_MAGIC msgrequest */ 6407 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_LEN 16 6408 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 6409 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 6410 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 6411 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 6412 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_OFST 8 6413 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LEN 8 6414 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_OFST 8 6415 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_LEN 4 6416 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_LBN 64 6417 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_WIDTH 32 6418 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_OFST 12 6419 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_LEN 4 6420 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_LBN 96 6421 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_WIDTH 32 6422 6423 /* MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN msgrequest */ 6424 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_LEN 20 6425 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 6426 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 6427 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 6428 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 6429 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_IP_OFST 8 6430 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_IP_LEN 4 6431 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_IP_OFST 12 6432 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_IP_LEN 4 6433 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_PORT_OFST 16 6434 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_PORT_LEN 2 6435 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_PORT_OFST 18 6436 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_PORT_LEN 2 6437 6438 /* MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN msgrequest */ 6439 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_LEN 44 6440 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 6441 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 6442 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 6443 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 6444 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_SRC_IP_OFST 8 6445 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_SRC_IP_LEN 16 6446 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_DST_IP_OFST 24 6447 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_DST_IP_LEN 16 6448 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_SRC_PORT_OFST 40 6449 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_SRC_PORT_LEN 2 6450 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_DST_PORT_OFST 42 6451 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_DST_PORT_LEN 2 6452 6453 /* MC_CMD_WOL_FILTER_SET_IN_BITMAP msgrequest */ 6454 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LEN 187 6455 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 6456 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 6457 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 6458 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 6459 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_MASK_OFST 8 6460 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_MASK_LEN 48 6461 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_BITMAP_OFST 56 6462 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_BITMAP_LEN 128 6463 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LEN_OFST 184 6464 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LEN_LEN 1 6465 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER3_OFST 185 6466 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER3_LEN 1 6467 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER4_OFST 186 6468 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER4_LEN 1 6469 6470 /* MC_CMD_WOL_FILTER_SET_IN_LINK msgrequest */ 6471 #define MC_CMD_WOL_FILTER_SET_IN_LINK_LEN 12 6472 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 6473 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 6474 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 6475 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 6476 #define MC_CMD_WOL_FILTER_SET_IN_LINK_MASK_OFST 8 6477 #define MC_CMD_WOL_FILTER_SET_IN_LINK_MASK_LEN 4 6478 #define MC_CMD_WOL_FILTER_SET_IN_LINK_UP_OFST 8 6479 #define MC_CMD_WOL_FILTER_SET_IN_LINK_UP_LBN 0 6480 #define MC_CMD_WOL_FILTER_SET_IN_LINK_UP_WIDTH 1 6481 #define MC_CMD_WOL_FILTER_SET_IN_LINK_DOWN_OFST 8 6482 #define MC_CMD_WOL_FILTER_SET_IN_LINK_DOWN_LBN 1 6483 #define MC_CMD_WOL_FILTER_SET_IN_LINK_DOWN_WIDTH 1 6484 6485 /* MC_CMD_WOL_FILTER_SET_OUT msgresponse */ 6486 #define MC_CMD_WOL_FILTER_SET_OUT_LEN 4 6487 #define MC_CMD_WOL_FILTER_SET_OUT_FILTER_ID_OFST 0 6488 #define MC_CMD_WOL_FILTER_SET_OUT_FILTER_ID_LEN 4 6489 6490 6491 /***********************************/ 6492 /* MC_CMD_WOL_FILTER_REMOVE 6493 * Remove a WoL filter. Locks required: None. Returns: 0, EINVAL, ENOSYS 6494 */ 6495 #define MC_CMD_WOL_FILTER_REMOVE 0x33 6496 #define MC_CMD_WOL_FILTER_REMOVE_MSGSET 0x33 6497 #undef MC_CMD_0x33_PRIVILEGE_CTG 6498 6499 #define MC_CMD_0x33_PRIVILEGE_CTG SRIOV_CTG_LINK 6500 6501 /* MC_CMD_WOL_FILTER_REMOVE_IN msgrequest */ 6502 #define MC_CMD_WOL_FILTER_REMOVE_IN_LEN 4 6503 #define MC_CMD_WOL_FILTER_REMOVE_IN_FILTER_ID_OFST 0 6504 #define MC_CMD_WOL_FILTER_REMOVE_IN_FILTER_ID_LEN 4 6505 6506 /* MC_CMD_WOL_FILTER_REMOVE_OUT msgresponse */ 6507 #define MC_CMD_WOL_FILTER_REMOVE_OUT_LEN 0 6508 6509 6510 /***********************************/ 6511 /* MC_CMD_WOL_FILTER_RESET 6512 * Reset (i.e. remove all) WoL filters. Locks required: None. Returns: 0, 6513 * ENOSYS 6514 */ 6515 #define MC_CMD_WOL_FILTER_RESET 0x34 6516 #define MC_CMD_WOL_FILTER_RESET_MSGSET 0x34 6517 #undef MC_CMD_0x34_PRIVILEGE_CTG 6518 6519 #define MC_CMD_0x34_PRIVILEGE_CTG SRIOV_CTG_LINK 6520 6521 /* MC_CMD_WOL_FILTER_RESET_IN msgrequest */ 6522 #define MC_CMD_WOL_FILTER_RESET_IN_LEN 4 6523 #define MC_CMD_WOL_FILTER_RESET_IN_MASK_OFST 0 6524 #define MC_CMD_WOL_FILTER_RESET_IN_MASK_LEN 4 6525 #define MC_CMD_WOL_FILTER_RESET_IN_WAKE_FILTERS 0x1 /* enum */ 6526 #define MC_CMD_WOL_FILTER_RESET_IN_LIGHTSOUT_OFFLOADS 0x2 /* enum */ 6527 6528 /* MC_CMD_WOL_FILTER_RESET_OUT msgresponse */ 6529 #define MC_CMD_WOL_FILTER_RESET_OUT_LEN 0 6530 6531 6532 /***********************************/ 6533 /* MC_CMD_SET_MCAST_HASH 6534 * Set the MCAST hash value without otherwise reconfiguring the MAC 6535 */ 6536 #define MC_CMD_SET_MCAST_HASH 0x35 6537 #define MC_CMD_SET_MCAST_HASH_MSGSET 0x35 6538 6539 /* MC_CMD_SET_MCAST_HASH_IN msgrequest */ 6540 #define MC_CMD_SET_MCAST_HASH_IN_LEN 32 6541 #define MC_CMD_SET_MCAST_HASH_IN_HASH0_OFST 0 6542 #define MC_CMD_SET_MCAST_HASH_IN_HASH0_LEN 16 6543 #define MC_CMD_SET_MCAST_HASH_IN_HASH1_OFST 16 6544 #define MC_CMD_SET_MCAST_HASH_IN_HASH1_LEN 16 6545 6546 /* MC_CMD_SET_MCAST_HASH_OUT msgresponse */ 6547 #define MC_CMD_SET_MCAST_HASH_OUT_LEN 0 6548 6549 6550 /***********************************/ 6551 /* MC_CMD_NVRAM_TYPES 6552 * Return bitfield indicating available types of virtual NVRAM partitions. 6553 * Locks required: none. Returns: 0 6554 */ 6555 #define MC_CMD_NVRAM_TYPES 0x36 6556 #define MC_CMD_NVRAM_TYPES_MSGSET 0x36 6557 #undef MC_CMD_0x36_PRIVILEGE_CTG 6558 6559 #define MC_CMD_0x36_PRIVILEGE_CTG SRIOV_CTG_ADMIN 6560 6561 /* MC_CMD_NVRAM_TYPES_IN msgrequest */ 6562 #define MC_CMD_NVRAM_TYPES_IN_LEN 0 6563 6564 /* MC_CMD_NVRAM_TYPES_OUT msgresponse */ 6565 #define MC_CMD_NVRAM_TYPES_OUT_LEN 4 6566 /* Bit mask of supported types. */ 6567 #define MC_CMD_NVRAM_TYPES_OUT_TYPES_OFST 0 6568 #define MC_CMD_NVRAM_TYPES_OUT_TYPES_LEN 4 6569 /* enum: Disabled callisto. */ 6570 #define MC_CMD_NVRAM_TYPE_DISABLED_CALLISTO 0x0 6571 /* enum: MC firmware. */ 6572 #define MC_CMD_NVRAM_TYPE_MC_FW 0x1 6573 /* enum: MC backup firmware. */ 6574 #define MC_CMD_NVRAM_TYPE_MC_FW_BACKUP 0x2 6575 /* enum: Static configuration Port0. */ 6576 #define MC_CMD_NVRAM_TYPE_STATIC_CFG_PORT0 0x3 6577 /* enum: Static configuration Port1. */ 6578 #define MC_CMD_NVRAM_TYPE_STATIC_CFG_PORT1 0x4 6579 /* enum: Dynamic configuration Port0. */ 6580 #define MC_CMD_NVRAM_TYPE_DYNAMIC_CFG_PORT0 0x5 6581 /* enum: Dynamic configuration Port1. */ 6582 #define MC_CMD_NVRAM_TYPE_DYNAMIC_CFG_PORT1 0x6 6583 /* enum: Expansion Rom. */ 6584 #define MC_CMD_NVRAM_TYPE_EXP_ROM 0x7 6585 /* enum: Expansion Rom Configuration Port0. */ 6586 #define MC_CMD_NVRAM_TYPE_EXP_ROM_CFG_PORT0 0x8 6587 /* enum: Expansion Rom Configuration Port1. */ 6588 #define MC_CMD_NVRAM_TYPE_EXP_ROM_CFG_PORT1 0x9 6589 /* enum: Phy Configuration Port0. */ 6590 #define MC_CMD_NVRAM_TYPE_PHY_PORT0 0xa 6591 /* enum: Phy Configuration Port1. */ 6592 #define MC_CMD_NVRAM_TYPE_PHY_PORT1 0xb 6593 /* enum: Log. */ 6594 #define MC_CMD_NVRAM_TYPE_LOG 0xc 6595 /* enum: FPGA image. */ 6596 #define MC_CMD_NVRAM_TYPE_FPGA 0xd 6597 /* enum: FPGA backup image */ 6598 #define MC_CMD_NVRAM_TYPE_FPGA_BACKUP 0xe 6599 /* enum: FC firmware. */ 6600 #define MC_CMD_NVRAM_TYPE_FC_FW 0xf 6601 /* enum: FC backup firmware. */ 6602 #define MC_CMD_NVRAM_TYPE_FC_FW_BACKUP 0x10 6603 /* enum: CPLD image. */ 6604 #define MC_CMD_NVRAM_TYPE_CPLD 0x11 6605 /* enum: Licensing information. */ 6606 #define MC_CMD_NVRAM_TYPE_LICENSE 0x12 6607 /* enum: FC Log. */ 6608 #define MC_CMD_NVRAM_TYPE_FC_LOG 0x13 6609 /* enum: Additional flash on FPGA. */ 6610 #define MC_CMD_NVRAM_TYPE_FC_EXTRA 0x14 6611 6612 6613 /***********************************/ 6614 /* MC_CMD_NVRAM_INFO 6615 * Read info about a virtual NVRAM partition. Locks required: none. Returns: 0, 6616 * EINVAL (bad type). 6617 */ 6618 #define MC_CMD_NVRAM_INFO 0x37 6619 #define MC_CMD_NVRAM_INFO_MSGSET 0x37 6620 #undef MC_CMD_0x37_PRIVILEGE_CTG 6621 6622 #define MC_CMD_0x37_PRIVILEGE_CTG SRIOV_CTG_ADMIN 6623 6624 /* MC_CMD_NVRAM_INFO_IN msgrequest */ 6625 #define MC_CMD_NVRAM_INFO_IN_LEN 4 6626 #define MC_CMD_NVRAM_INFO_IN_TYPE_OFST 0 6627 #define MC_CMD_NVRAM_INFO_IN_TYPE_LEN 4 6628 /* Enum values, see field(s): */ 6629 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 6630 6631 /* MC_CMD_NVRAM_INFO_OUT msgresponse */ 6632 #define MC_CMD_NVRAM_INFO_OUT_LEN 24 6633 #define MC_CMD_NVRAM_INFO_OUT_TYPE_OFST 0 6634 #define MC_CMD_NVRAM_INFO_OUT_TYPE_LEN 4 6635 /* Enum values, see field(s): */ 6636 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 6637 #define MC_CMD_NVRAM_INFO_OUT_SIZE_OFST 4 6638 #define MC_CMD_NVRAM_INFO_OUT_SIZE_LEN 4 6639 #define MC_CMD_NVRAM_INFO_OUT_ERASESIZE_OFST 8 6640 #define MC_CMD_NVRAM_INFO_OUT_ERASESIZE_LEN 4 6641 #define MC_CMD_NVRAM_INFO_OUT_FLAGS_OFST 12 6642 #define MC_CMD_NVRAM_INFO_OUT_FLAGS_LEN 4 6643 #define MC_CMD_NVRAM_INFO_OUT_PROTECTED_OFST 12 6644 #define MC_CMD_NVRAM_INFO_OUT_PROTECTED_LBN 0 6645 #define MC_CMD_NVRAM_INFO_OUT_PROTECTED_WIDTH 1 6646 #define MC_CMD_NVRAM_INFO_OUT_TLV_OFST 12 6647 #define MC_CMD_NVRAM_INFO_OUT_TLV_LBN 1 6648 #define MC_CMD_NVRAM_INFO_OUT_TLV_WIDTH 1 6649 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_IF_TSA_BOUND_OFST 12 6650 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_IF_TSA_BOUND_LBN 2 6651 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_IF_TSA_BOUND_WIDTH 1 6652 #define MC_CMD_NVRAM_INFO_OUT_CRC_OFST 12 6653 #define MC_CMD_NVRAM_INFO_OUT_CRC_LBN 3 6654 #define MC_CMD_NVRAM_INFO_OUT_CRC_WIDTH 1 6655 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_OFST 12 6656 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_LBN 5 6657 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_WIDTH 1 6658 #define MC_CMD_NVRAM_INFO_OUT_CMAC_OFST 12 6659 #define MC_CMD_NVRAM_INFO_OUT_CMAC_LBN 6 6660 #define MC_CMD_NVRAM_INFO_OUT_CMAC_WIDTH 1 6661 #define MC_CMD_NVRAM_INFO_OUT_A_B_OFST 12 6662 #define MC_CMD_NVRAM_INFO_OUT_A_B_LBN 7 6663 #define MC_CMD_NVRAM_INFO_OUT_A_B_WIDTH 1 6664 #define MC_CMD_NVRAM_INFO_OUT_PHYSDEV_OFST 16 6665 #define MC_CMD_NVRAM_INFO_OUT_PHYSDEV_LEN 4 6666 #define MC_CMD_NVRAM_INFO_OUT_PHYSADDR_OFST 20 6667 #define MC_CMD_NVRAM_INFO_OUT_PHYSADDR_LEN 4 6668 6669 /* MC_CMD_NVRAM_INFO_V2_OUT msgresponse */ 6670 #define MC_CMD_NVRAM_INFO_V2_OUT_LEN 28 6671 #define MC_CMD_NVRAM_INFO_V2_OUT_TYPE_OFST 0 6672 #define MC_CMD_NVRAM_INFO_V2_OUT_TYPE_LEN 4 6673 /* Enum values, see field(s): */ 6674 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 6675 #define MC_CMD_NVRAM_INFO_V2_OUT_SIZE_OFST 4 6676 #define MC_CMD_NVRAM_INFO_V2_OUT_SIZE_LEN 4 6677 #define MC_CMD_NVRAM_INFO_V2_OUT_ERASESIZE_OFST 8 6678 #define MC_CMD_NVRAM_INFO_V2_OUT_ERASESIZE_LEN 4 6679 #define MC_CMD_NVRAM_INFO_V2_OUT_FLAGS_OFST 12 6680 #define MC_CMD_NVRAM_INFO_V2_OUT_FLAGS_LEN 4 6681 #define MC_CMD_NVRAM_INFO_V2_OUT_PROTECTED_OFST 12 6682 #define MC_CMD_NVRAM_INFO_V2_OUT_PROTECTED_LBN 0 6683 #define MC_CMD_NVRAM_INFO_V2_OUT_PROTECTED_WIDTH 1 6684 #define MC_CMD_NVRAM_INFO_V2_OUT_TLV_OFST 12 6685 #define MC_CMD_NVRAM_INFO_V2_OUT_TLV_LBN 1 6686 #define MC_CMD_NVRAM_INFO_V2_OUT_TLV_WIDTH 1 6687 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_IF_TSA_BOUND_OFST 12 6688 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_IF_TSA_BOUND_LBN 2 6689 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_IF_TSA_BOUND_WIDTH 1 6690 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_OFST 12 6691 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_LBN 5 6692 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_WIDTH 1 6693 #define MC_CMD_NVRAM_INFO_V2_OUT_A_B_OFST 12 6694 #define MC_CMD_NVRAM_INFO_V2_OUT_A_B_LBN 7 6695 #define MC_CMD_NVRAM_INFO_V2_OUT_A_B_WIDTH 1 6696 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSDEV_OFST 16 6697 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSDEV_LEN 4 6698 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSADDR_OFST 20 6699 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSADDR_LEN 4 6700 /* Writes must be multiples of this size. Added to support the MUM on Sorrento. 6701 */ 6702 #define MC_CMD_NVRAM_INFO_V2_OUT_WRITESIZE_OFST 24 6703 #define MC_CMD_NVRAM_INFO_V2_OUT_WRITESIZE_LEN 4 6704 6705 6706 /***********************************/ 6707 /* MC_CMD_NVRAM_UPDATE_START 6708 * Start a group of update operations on a virtual NVRAM partition. Locks 6709 * required: PHY_LOCK if type==*PHY*. Returns: 0, EINVAL (bad type), EACCES (if 6710 * PHY_LOCK required and not held). In an adapter bound to a TSA controller, 6711 * MC_CMD_NVRAM_UPDATE_START can only be used on a subset of partition types 6712 * i.e. static config, dynamic config and expansion ROM config. Attempting to 6713 * perform this operation on a restricted partition will return the error 6714 * EPERM. 6715 */ 6716 #define MC_CMD_NVRAM_UPDATE_START 0x38 6717 #define MC_CMD_NVRAM_UPDATE_START_MSGSET 0x38 6718 #undef MC_CMD_0x38_PRIVILEGE_CTG 6719 6720 #define MC_CMD_0x38_PRIVILEGE_CTG SRIOV_CTG_ADMIN 6721 6722 /* MC_CMD_NVRAM_UPDATE_START_IN msgrequest: Legacy NVRAM_UPDATE_START request. 6723 * Use NVRAM_UPDATE_START_V2_IN in new code 6724 */ 6725 #define MC_CMD_NVRAM_UPDATE_START_IN_LEN 4 6726 #define MC_CMD_NVRAM_UPDATE_START_IN_TYPE_OFST 0 6727 #define MC_CMD_NVRAM_UPDATE_START_IN_TYPE_LEN 4 6728 /* Enum values, see field(s): */ 6729 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 6730 6731 /* MC_CMD_NVRAM_UPDATE_START_V2_IN msgrequest: Extended NVRAM_UPDATE_START 6732 * request with additional flags indicating version of command in use. See 6733 * MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT for details of extended functionality. Use 6734 * paired up with NVRAM_UPDATE_FINISH_V2_IN. 6735 */ 6736 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_LEN 8 6737 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_TYPE_OFST 0 6738 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_TYPE_LEN 4 6739 /* Enum values, see field(s): */ 6740 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 6741 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAGS_OFST 4 6742 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAGS_LEN 4 6743 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT_OFST 4 6744 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT_LBN 0 6745 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT_WIDTH 1 6746 6747 /* MC_CMD_NVRAM_UPDATE_START_OUT msgresponse */ 6748 #define MC_CMD_NVRAM_UPDATE_START_OUT_LEN 0 6749 6750 6751 /***********************************/ 6752 /* MC_CMD_NVRAM_READ 6753 * Read data from a virtual NVRAM partition. Locks required: PHY_LOCK if 6754 * type==*PHY*. Returns: 0, EINVAL (bad type/offset/length), EACCES (if 6755 * PHY_LOCK required and not held) 6756 */ 6757 #define MC_CMD_NVRAM_READ 0x39 6758 #define MC_CMD_NVRAM_READ_MSGSET 0x39 6759 #undef MC_CMD_0x39_PRIVILEGE_CTG 6760 6761 #define MC_CMD_0x39_PRIVILEGE_CTG SRIOV_CTG_ADMIN 6762 6763 /* MC_CMD_NVRAM_READ_IN msgrequest */ 6764 #define MC_CMD_NVRAM_READ_IN_LEN 12 6765 #define MC_CMD_NVRAM_READ_IN_TYPE_OFST 0 6766 #define MC_CMD_NVRAM_READ_IN_TYPE_LEN 4 6767 /* Enum values, see field(s): */ 6768 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 6769 #define MC_CMD_NVRAM_READ_IN_OFFSET_OFST 4 6770 #define MC_CMD_NVRAM_READ_IN_OFFSET_LEN 4 6771 /* amount to read in bytes */ 6772 #define MC_CMD_NVRAM_READ_IN_LENGTH_OFST 8 6773 #define MC_CMD_NVRAM_READ_IN_LENGTH_LEN 4 6774 6775 /* MC_CMD_NVRAM_READ_IN_V2 msgrequest */ 6776 #define MC_CMD_NVRAM_READ_IN_V2_LEN 16 6777 #define MC_CMD_NVRAM_READ_IN_V2_TYPE_OFST 0 6778 #define MC_CMD_NVRAM_READ_IN_V2_TYPE_LEN 4 6779 /* Enum values, see field(s): */ 6780 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 6781 #define MC_CMD_NVRAM_READ_IN_V2_OFFSET_OFST 4 6782 #define MC_CMD_NVRAM_READ_IN_V2_OFFSET_LEN 4 6783 /* amount to read in bytes */ 6784 #define MC_CMD_NVRAM_READ_IN_V2_LENGTH_OFST 8 6785 #define MC_CMD_NVRAM_READ_IN_V2_LENGTH_LEN 4 6786 /* Optional control info. If a partition is stored with an A/B versioning 6787 * scheme (i.e. in more than one physical partition in NVRAM) the host can set 6788 * this to control which underlying physical partition is used to read data 6789 * from. This allows it to perform a read-modify-write-verify with the write 6790 * lock continuously held by calling NVRAM_UPDATE_START, reading the old 6791 * contents using MODE=TARGET_CURRENT, overwriting the old partition and then 6792 * verifying by reading with MODE=TARGET_BACKUP. 6793 */ 6794 #define MC_CMD_NVRAM_READ_IN_V2_MODE_OFST 12 6795 #define MC_CMD_NVRAM_READ_IN_V2_MODE_LEN 4 6796 /* enum: Same as omitting MODE: caller sees data in current partition unless it 6797 * holds the write lock in which case it sees data in the partition it is 6798 * updating. 6799 */ 6800 #define MC_CMD_NVRAM_READ_IN_V2_DEFAULT 0x0 6801 /* enum: Read from the current partition of an A/B pair, even if holding the 6802 * write lock. 6803 */ 6804 #define MC_CMD_NVRAM_READ_IN_V2_TARGET_CURRENT 0x1 6805 /* enum: Read from the non-current (i.e. to be updated) partition of an A/B 6806 * pair 6807 */ 6808 #define MC_CMD_NVRAM_READ_IN_V2_TARGET_BACKUP 0x2 6809 6810 /* MC_CMD_NVRAM_READ_OUT msgresponse */ 6811 #define MC_CMD_NVRAM_READ_OUT_LENMIN 1 6812 #define MC_CMD_NVRAM_READ_OUT_LENMAX 252 6813 #define MC_CMD_NVRAM_READ_OUT_LENMAX_MCDI2 1020 6814 #define MC_CMD_NVRAM_READ_OUT_LEN(num) (0+1*(num)) 6815 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_NUM(len) (((len)-0)/1) 6816 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_OFST 0 6817 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_LEN 1 6818 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_MINNUM 1 6819 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_MAXNUM 252 6820 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_MAXNUM_MCDI2 1020 6821 6822 6823 /***********************************/ 6824 /* MC_CMD_NVRAM_WRITE 6825 * Write data to a virtual NVRAM partition. Locks required: PHY_LOCK if 6826 * type==*PHY*. Returns: 0, EINVAL (bad type/offset/length), EACCES (if 6827 * PHY_LOCK required and not held) 6828 */ 6829 #define MC_CMD_NVRAM_WRITE 0x3a 6830 #define MC_CMD_NVRAM_WRITE_MSGSET 0x3a 6831 #undef MC_CMD_0x3a_PRIVILEGE_CTG 6832 6833 #define MC_CMD_0x3a_PRIVILEGE_CTG SRIOV_CTG_ADMIN 6834 6835 /* MC_CMD_NVRAM_WRITE_IN msgrequest */ 6836 #define MC_CMD_NVRAM_WRITE_IN_LENMIN 13 6837 #define MC_CMD_NVRAM_WRITE_IN_LENMAX 252 6838 #define MC_CMD_NVRAM_WRITE_IN_LENMAX_MCDI2 1020 6839 #define MC_CMD_NVRAM_WRITE_IN_LEN(num) (12+1*(num)) 6840 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_NUM(len) (((len)-12)/1) 6841 #define MC_CMD_NVRAM_WRITE_IN_TYPE_OFST 0 6842 #define MC_CMD_NVRAM_WRITE_IN_TYPE_LEN 4 6843 /* Enum values, see field(s): */ 6844 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 6845 #define MC_CMD_NVRAM_WRITE_IN_OFFSET_OFST 4 6846 #define MC_CMD_NVRAM_WRITE_IN_OFFSET_LEN 4 6847 #define MC_CMD_NVRAM_WRITE_IN_LENGTH_OFST 8 6848 #define MC_CMD_NVRAM_WRITE_IN_LENGTH_LEN 4 6849 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_OFST 12 6850 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_LEN 1 6851 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_MINNUM 1 6852 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_MAXNUM 240 6853 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_MAXNUM_MCDI2 1008 6854 6855 /* MC_CMD_NVRAM_WRITE_OUT msgresponse */ 6856 #define MC_CMD_NVRAM_WRITE_OUT_LEN 0 6857 6858 6859 /***********************************/ 6860 /* MC_CMD_NVRAM_ERASE 6861 * Erase sector(s) from a virtual NVRAM partition. Locks required: PHY_LOCK if 6862 * type==*PHY*. Returns: 0, EINVAL (bad type/offset/length), EACCES (if 6863 * PHY_LOCK required and not held) 6864 */ 6865 #define MC_CMD_NVRAM_ERASE 0x3b 6866 #define MC_CMD_NVRAM_ERASE_MSGSET 0x3b 6867 #undef MC_CMD_0x3b_PRIVILEGE_CTG 6868 6869 #define MC_CMD_0x3b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 6870 6871 /* MC_CMD_NVRAM_ERASE_IN msgrequest */ 6872 #define MC_CMD_NVRAM_ERASE_IN_LEN 12 6873 #define MC_CMD_NVRAM_ERASE_IN_TYPE_OFST 0 6874 #define MC_CMD_NVRAM_ERASE_IN_TYPE_LEN 4 6875 /* Enum values, see field(s): */ 6876 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 6877 #define MC_CMD_NVRAM_ERASE_IN_OFFSET_OFST 4 6878 #define MC_CMD_NVRAM_ERASE_IN_OFFSET_LEN 4 6879 #define MC_CMD_NVRAM_ERASE_IN_LENGTH_OFST 8 6880 #define MC_CMD_NVRAM_ERASE_IN_LENGTH_LEN 4 6881 6882 /* MC_CMD_NVRAM_ERASE_OUT msgresponse */ 6883 #define MC_CMD_NVRAM_ERASE_OUT_LEN 0 6884 6885 6886 /***********************************/ 6887 /* MC_CMD_NVRAM_UPDATE_FINISH 6888 * Finish a group of update operations on a virtual NVRAM partition. Locks 6889 * required: PHY_LOCK if type==*PHY*. Returns: 0, EINVAL (bad type/offset/ 6890 * length), EACCES (if PHY_LOCK required and not held). In an adapter bound to 6891 * a TSA controller, MC_CMD_NVRAM_UPDATE_FINISH can only be used on a subset of 6892 * partition types i.e. static config, dynamic config and expansion ROM config. 6893 * Attempting to perform this operation on a restricted partition will return 6894 * the error EPERM. 6895 */ 6896 #define MC_CMD_NVRAM_UPDATE_FINISH 0x3c 6897 #define MC_CMD_NVRAM_UPDATE_FINISH_MSGSET 0x3c 6898 #undef MC_CMD_0x3c_PRIVILEGE_CTG 6899 6900 #define MC_CMD_0x3c_PRIVILEGE_CTG SRIOV_CTG_ADMIN 6901 6902 /* MC_CMD_NVRAM_UPDATE_FINISH_IN msgrequest: Legacy NVRAM_UPDATE_FINISH 6903 * request. Use NVRAM_UPDATE_FINISH_V2_IN in new code 6904 */ 6905 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_LEN 8 6906 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_TYPE_OFST 0 6907 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_TYPE_LEN 4 6908 /* Enum values, see field(s): */ 6909 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 6910 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_REBOOT_OFST 4 6911 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_REBOOT_LEN 4 6912 6913 /* MC_CMD_NVRAM_UPDATE_FINISH_V2_IN msgrequest: Extended NVRAM_UPDATE_FINISH 6914 * request with additional flags indicating version of NVRAM_UPDATE commands in 6915 * use. See MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT for details of extended 6916 * functionality. Use paired up with NVRAM_UPDATE_START_V2_IN. 6917 */ 6918 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_LEN 12 6919 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_TYPE_OFST 0 6920 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_TYPE_LEN 4 6921 /* Enum values, see field(s): */ 6922 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 6923 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_REBOOT_OFST 4 6924 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_REBOOT_LEN 4 6925 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAGS_OFST 8 6926 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAGS_LEN 4 6927 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_REPORT_VERIFY_RESULT_OFST 8 6928 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_REPORT_VERIFY_RESULT_LBN 0 6929 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_REPORT_VERIFY_RESULT_WIDTH 1 6930 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_RUN_IN_BACKGROUND_OFST 8 6931 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_RUN_IN_BACKGROUND_LBN 1 6932 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_RUN_IN_BACKGROUND_WIDTH 1 6933 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_POLL_VERIFY_RESULT_OFST 8 6934 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_POLL_VERIFY_RESULT_LBN 2 6935 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_POLL_VERIFY_RESULT_WIDTH 1 6936 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_ABORT_OFST 8 6937 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_ABORT_LBN 3 6938 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_ABORT_WIDTH 1 6939 6940 /* MC_CMD_NVRAM_UPDATE_FINISH_OUT msgresponse: Legacy NVRAM_UPDATE_FINISH 6941 * response. Use NVRAM_UPDATE_FINISH_V2_OUT in new code 6942 */ 6943 #define MC_CMD_NVRAM_UPDATE_FINISH_OUT_LEN 0 6944 6945 /* MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT msgresponse: 6946 * 6947 * Extended NVRAM_UPDATE_FINISH response that communicates the result of secure 6948 * firmware validation where applicable back to the host. 6949 * 6950 * Medford only: For signed firmware images, such as those for medford, the MC 6951 * firmware verifies the signature before marking the firmware image as valid. 6952 * This process takes a few seconds to complete. So is likely to take more than 6953 * the MCDI timeout. Hence signature verification is initiated when 6954 * MC_CMD_NVRAM_UPDATE_FINISH_V2_IN is received by the firmware, however, the 6955 * MCDI command is run in a background MCDI processing thread. This response 6956 * payload includes the results of the signature verification. Note that the 6957 * per-partition nvram lock in firmware is only released after the verification 6958 * has completed. 6959 */ 6960 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_LEN 4 6961 /* Result of nvram update completion processing. Result codes that indicate an 6962 * internal build failure and therefore not expected to be seen by customers in 6963 * the field are marked with a prefix 'Internal-error'. 6964 */ 6965 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_RESULT_CODE_OFST 0 6966 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_RESULT_CODE_LEN 4 6967 /* enum: Invalid return code; only non-zero values are defined. Defined as 6968 * unknown for backwards compatibility with NVRAM_UPDATE_FINISH_OUT. 6969 */ 6970 #define MC_CMD_NVRAM_VERIFY_RC_UNKNOWN 0x0 6971 /* enum: Verify succeeded without any errors. */ 6972 #define MC_CMD_NVRAM_VERIFY_RC_SUCCESS 0x1 6973 /* enum: CMS format verification failed due to an internal error. */ 6974 #define MC_CMD_NVRAM_VERIFY_RC_CMS_CHECK_FAILED 0x2 6975 /* enum: Invalid CMS format in image metadata. */ 6976 #define MC_CMD_NVRAM_VERIFY_RC_INVALID_CMS_FORMAT 0x3 6977 /* enum: Message digest verification failed due to an internal error. */ 6978 #define MC_CMD_NVRAM_VERIFY_RC_MESSAGE_DIGEST_CHECK_FAILED 0x4 6979 /* enum: Error in message digest calculated over the reflash-header, payload 6980 * and reflash-trailer. 6981 */ 6982 #define MC_CMD_NVRAM_VERIFY_RC_BAD_MESSAGE_DIGEST 0x5 6983 /* enum: Signature verification failed due to an internal error. */ 6984 #define MC_CMD_NVRAM_VERIFY_RC_SIGNATURE_CHECK_FAILED 0x6 6985 /* enum: There are no valid signatures in the image. */ 6986 #define MC_CMD_NVRAM_VERIFY_RC_NO_VALID_SIGNATURES 0x7 6987 /* enum: Trusted approvers verification failed due to an internal error. */ 6988 #define MC_CMD_NVRAM_VERIFY_RC_TRUSTED_APPROVERS_CHECK_FAILED 0x8 6989 /* enum: The Trusted approver's list is empty. */ 6990 #define MC_CMD_NVRAM_VERIFY_RC_NO_TRUSTED_APPROVERS 0x9 6991 /* enum: Signature chain verification failed due to an internal error. */ 6992 #define MC_CMD_NVRAM_VERIFY_RC_SIGNATURE_CHAIN_CHECK_FAILED 0xa 6993 /* enum: The signers of the signatures in the image are not listed in the 6994 * Trusted approver's list. 6995 */ 6996 #define MC_CMD_NVRAM_VERIFY_RC_NO_SIGNATURE_MATCH 0xb 6997 /* enum: The image contains a test-signed certificate, but the adapter accepts 6998 * only production signed images. 6999 */ 7000 #define MC_CMD_NVRAM_VERIFY_RC_REJECT_TEST_SIGNED 0xc 7001 /* enum: The image has a lower security level than the current firmware. */ 7002 #define MC_CMD_NVRAM_VERIFY_RC_SECURITY_LEVEL_DOWNGRADE 0xd 7003 /* enum: Internal-error. The signed image is missing the 'contents' section, 7004 * where the 'contents' section holds the actual image payload to be applied. 7005 */ 7006 #define MC_CMD_NVRAM_VERIFY_RC_CONTENT_NOT_FOUND 0xe 7007 /* enum: Internal-error. The bundle header is invalid. */ 7008 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_CONTENT_HEADER_INVALID 0xf 7009 /* enum: Internal-error. The bundle does not have a valid reflash image layout. 7010 */ 7011 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_REFLASH_IMAGE_INVALID 0x10 7012 /* enum: Internal-error. The bundle has an inconsistent layout of components or 7013 * incorrect checksum. 7014 */ 7015 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_IMAGE_LAYOUT_INVALID 0x11 7016 /* enum: Internal-error. The bundle manifest is inconsistent with components in 7017 * the bundle. 7018 */ 7019 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_INVALID 0x12 7020 /* enum: Internal-error. The number of components in a bundle do not match the 7021 * number of components advertised by the bundle manifest. 7022 */ 7023 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_NUM_COMPONENTS_MISMATCH 0x13 7024 /* enum: Internal-error. The bundle contains too many components for the MC 7025 * firmware to process 7026 */ 7027 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_TOO_MANY_COMPONENTS 0x14 7028 /* enum: Internal-error. The bundle manifest has an invalid/inconsistent 7029 * component. 7030 */ 7031 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_COMPONENT_INVALID 0x15 7032 /* enum: Internal-error. The hash of a component does not match the hash stored 7033 * in the bundle manifest. 7034 */ 7035 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_COMPONENT_HASH_MISMATCH 0x16 7036 /* enum: Internal-error. Component hash calculation failed. */ 7037 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_COMPONENT_HASH_FAILED 0x17 7038 /* enum: Internal-error. The component does not have a valid reflash image 7039 * layout. 7040 */ 7041 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_COMPONENT_REFLASH_IMAGE_INVALID 0x18 7042 /* enum: The bundle processing code failed to copy a component to its target 7043 * partition. 7044 */ 7045 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_COMPONENT_COPY_FAILED 0x19 7046 /* enum: The update operation is in-progress. */ 7047 #define MC_CMD_NVRAM_VERIFY_RC_PENDING 0x1a 7048 7049 7050 /***********************************/ 7051 /* MC_CMD_REBOOT 7052 * Reboot the MC. 7053 * 7054 * The AFTER_ASSERTION flag is intended to be used when the driver notices an 7055 * assertion failure (at which point it is expected to perform a complete tear 7056 * down and reinitialise), to allow both ports to reset the MC once in an 7057 * atomic fashion. 7058 * 7059 * Production mc firmwares are generally compiled with REBOOT_ON_ASSERT=1, 7060 * which means that they will automatically reboot out of the assertion 7061 * handler, so this is in practise an optional operation. It is still 7062 * recommended that drivers execute this to support custom firmwares with 7063 * REBOOT_ON_ASSERT=0. 7064 * 7065 * Locks required: NONE Returns: Nothing. You get back a response with ERR=1, 7066 * DATALEN=0 7067 */ 7068 #define MC_CMD_REBOOT 0x3d 7069 #define MC_CMD_REBOOT_MSGSET 0x3d 7070 #undef MC_CMD_0x3d_PRIVILEGE_CTG 7071 7072 #define MC_CMD_0x3d_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 7073 7074 /* MC_CMD_REBOOT_IN msgrequest */ 7075 #define MC_CMD_REBOOT_IN_LEN 4 7076 #define MC_CMD_REBOOT_IN_FLAGS_OFST 0 7077 #define MC_CMD_REBOOT_IN_FLAGS_LEN 4 7078 #define MC_CMD_REBOOT_FLAGS_AFTER_ASSERTION 0x1 /* enum */ 7079 7080 /* MC_CMD_REBOOT_OUT msgresponse */ 7081 #define MC_CMD_REBOOT_OUT_LEN 0 7082 7083 7084 /***********************************/ 7085 /* MC_CMD_SCHEDINFO 7086 * Request scheduler info. Locks required: NONE. Returns: An array of 7087 * (timeslice,maximum overrun), one for each thread, in ascending order of 7088 * thread address. 7089 */ 7090 #define MC_CMD_SCHEDINFO 0x3e 7091 #define MC_CMD_SCHEDINFO_MSGSET 0x3e 7092 #undef MC_CMD_0x3e_PRIVILEGE_CTG 7093 7094 #define MC_CMD_0x3e_PRIVILEGE_CTG SRIOV_CTG_ADMIN 7095 7096 /* MC_CMD_SCHEDINFO_IN msgrequest */ 7097 #define MC_CMD_SCHEDINFO_IN_LEN 0 7098 7099 /* MC_CMD_SCHEDINFO_OUT msgresponse */ 7100 #define MC_CMD_SCHEDINFO_OUT_LENMIN 4 7101 #define MC_CMD_SCHEDINFO_OUT_LENMAX 252 7102 #define MC_CMD_SCHEDINFO_OUT_LENMAX_MCDI2 1020 7103 #define MC_CMD_SCHEDINFO_OUT_LEN(num) (0+4*(num)) 7104 #define MC_CMD_SCHEDINFO_OUT_DATA_NUM(len) (((len)-0)/4) 7105 #define MC_CMD_SCHEDINFO_OUT_DATA_OFST 0 7106 #define MC_CMD_SCHEDINFO_OUT_DATA_LEN 4 7107 #define MC_CMD_SCHEDINFO_OUT_DATA_MINNUM 1 7108 #define MC_CMD_SCHEDINFO_OUT_DATA_MAXNUM 63 7109 #define MC_CMD_SCHEDINFO_OUT_DATA_MAXNUM_MCDI2 255 7110 7111 7112 /***********************************/ 7113 /* MC_CMD_REBOOT_MODE 7114 * Set the mode for the next MC reboot. Locks required: NONE. Sets the reboot 7115 * mode to the specified value. Returns the old mode. 7116 */ 7117 #define MC_CMD_REBOOT_MODE 0x3f 7118 #define MC_CMD_REBOOT_MODE_MSGSET 0x3f 7119 #undef MC_CMD_0x3f_PRIVILEGE_CTG 7120 7121 #define MC_CMD_0x3f_PRIVILEGE_CTG SRIOV_CTG_INSECURE 7122 7123 /* MC_CMD_REBOOT_MODE_IN msgrequest */ 7124 #define MC_CMD_REBOOT_MODE_IN_LEN 4 7125 #define MC_CMD_REBOOT_MODE_IN_VALUE_OFST 0 7126 #define MC_CMD_REBOOT_MODE_IN_VALUE_LEN 4 7127 /* enum: Normal. */ 7128 #define MC_CMD_REBOOT_MODE_NORMAL 0x0 7129 /* enum: Power-on Reset. */ 7130 #define MC_CMD_REBOOT_MODE_POR 0x2 7131 /* enum: Snapper. */ 7132 #define MC_CMD_REBOOT_MODE_SNAPPER 0x3 7133 /* enum: snapper fake POR */ 7134 #define MC_CMD_REBOOT_MODE_SNAPPER_POR 0x4 7135 #define MC_CMD_REBOOT_MODE_IN_FAKE_OFST 0 7136 #define MC_CMD_REBOOT_MODE_IN_FAKE_LBN 7 7137 #define MC_CMD_REBOOT_MODE_IN_FAKE_WIDTH 1 7138 7139 /* MC_CMD_REBOOT_MODE_OUT msgresponse */ 7140 #define MC_CMD_REBOOT_MODE_OUT_LEN 4 7141 #define MC_CMD_REBOOT_MODE_OUT_VALUE_OFST 0 7142 #define MC_CMD_REBOOT_MODE_OUT_VALUE_LEN 4 7143 7144 7145 /***********************************/ 7146 /* MC_CMD_SENSOR_INFO 7147 * Returns information about every available sensor. 7148 * 7149 * Each sensor has a single (16bit) value, and a corresponding state. The 7150 * mapping between value and state is nominally determined by the MC, but may 7151 * be implemented using up to 2 ranges per sensor. 7152 * 7153 * This call returns a mask (32bit) of the sensors that are supported by this 7154 * platform, then an array of sensor information structures, in order of sensor 7155 * type (but without gaps for unimplemented sensors). Each structure defines 7156 * the ranges for the corresponding sensor. An unused range is indicated by 7157 * equal limit values. If one range is used, a value outside that range results 7158 * in STATE_FATAL. If two ranges are used, a value outside the second range 7159 * results in STATE_FATAL while a value outside the first and inside the second 7160 * range results in STATE_WARNING. 7161 * 7162 * Sensor masks and sensor information arrays are organised into pages. For 7163 * backward compatibility, older host software can only use sensors in page 0. 7164 * Bit 32 in the sensor mask was previously unused, and is no reserved for use 7165 * as the next page flag. 7166 * 7167 * If the request does not contain a PAGE value then firmware will only return 7168 * page 0 of sensor information, with bit 31 in the sensor mask cleared. 7169 * 7170 * If the request contains a PAGE value then firmware responds with the sensor 7171 * mask and sensor information array for that page of sensors. In this case bit 7172 * 31 in the mask is set if another page exists. 7173 * 7174 * Locks required: None Returns: 0 7175 */ 7176 #define MC_CMD_SENSOR_INFO 0x41 7177 #define MC_CMD_SENSOR_INFO_MSGSET 0x41 7178 #undef MC_CMD_0x41_PRIVILEGE_CTG 7179 7180 #define MC_CMD_0x41_PRIVILEGE_CTG SRIOV_CTG_GENERAL 7181 7182 /* MC_CMD_SENSOR_INFO_IN msgrequest */ 7183 #define MC_CMD_SENSOR_INFO_IN_LEN 0 7184 7185 /* MC_CMD_SENSOR_INFO_EXT_IN msgrequest */ 7186 #define MC_CMD_SENSOR_INFO_EXT_IN_LEN 4 7187 /* Which page of sensors to report. 7188 * 7189 * Page 0 contains sensors 0 to 30 (sensor 31 is the next page bit). 7190 * 7191 * Page 1 contains sensors 32 to 62 (sensor 63 is the next page bit). etc. 7192 */ 7193 #define MC_CMD_SENSOR_INFO_EXT_IN_PAGE_OFST 0 7194 #define MC_CMD_SENSOR_INFO_EXT_IN_PAGE_LEN 4 7195 7196 /* MC_CMD_SENSOR_INFO_EXT_IN_V2 msgrequest */ 7197 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_LEN 8 7198 /* Which page of sensors to report. 7199 * 7200 * Page 0 contains sensors 0 to 30 (sensor 31 is the next page bit). 7201 * 7202 * Page 1 contains sensors 32 to 62 (sensor 63 is the next page bit). etc. 7203 */ 7204 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_PAGE_OFST 0 7205 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_PAGE_LEN 4 7206 /* Flags controlling information retrieved */ 7207 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_FLAGS_OFST 4 7208 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_FLAGS_LEN 4 7209 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_ENGINEERING_OFST 4 7210 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_ENGINEERING_LBN 0 7211 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_ENGINEERING_WIDTH 1 7212 7213 /* MC_CMD_SENSOR_INFO_OUT msgresponse */ 7214 #define MC_CMD_SENSOR_INFO_OUT_LENMIN 4 7215 #define MC_CMD_SENSOR_INFO_OUT_LENMAX 252 7216 #define MC_CMD_SENSOR_INFO_OUT_LENMAX_MCDI2 1020 7217 #define MC_CMD_SENSOR_INFO_OUT_LEN(num) (4+8*(num)) 7218 #define MC_CMD_SENSOR_INFO_OUT_MC_CMD_SENSOR_ENTRY_NUM(len) (((len)-4)/8) 7219 #define MC_CMD_SENSOR_INFO_OUT_MASK_OFST 0 7220 #define MC_CMD_SENSOR_INFO_OUT_MASK_LEN 4 7221 /* enum: Controller temperature: degC */ 7222 #define MC_CMD_SENSOR_CONTROLLER_TEMP 0x0 7223 /* enum: Phy common temperature: degC */ 7224 #define MC_CMD_SENSOR_PHY_COMMON_TEMP 0x1 7225 /* enum: Controller cooling: bool */ 7226 #define MC_CMD_SENSOR_CONTROLLER_COOLING 0x2 7227 /* enum: Phy 0 temperature: degC */ 7228 #define MC_CMD_SENSOR_PHY0_TEMP 0x3 7229 /* enum: Phy 0 cooling: bool */ 7230 #define MC_CMD_SENSOR_PHY0_COOLING 0x4 7231 /* enum: Phy 1 temperature: degC */ 7232 #define MC_CMD_SENSOR_PHY1_TEMP 0x5 7233 /* enum: Phy 1 cooling: bool */ 7234 #define MC_CMD_SENSOR_PHY1_COOLING 0x6 7235 /* enum: 1.0v power: mV */ 7236 #define MC_CMD_SENSOR_IN_1V0 0x7 7237 /* enum: 1.2v power: mV */ 7238 #define MC_CMD_SENSOR_IN_1V2 0x8 7239 /* enum: 1.8v power: mV */ 7240 #define MC_CMD_SENSOR_IN_1V8 0x9 7241 /* enum: 2.5v power: mV */ 7242 #define MC_CMD_SENSOR_IN_2V5 0xa 7243 /* enum: 3.3v power: mV */ 7244 #define MC_CMD_SENSOR_IN_3V3 0xb 7245 /* enum: 12v power: mV */ 7246 #define MC_CMD_SENSOR_IN_12V0 0xc 7247 /* enum: 1.2v analogue power: mV */ 7248 #define MC_CMD_SENSOR_IN_1V2A 0xd 7249 /* enum: reference voltage: mV */ 7250 #define MC_CMD_SENSOR_IN_VREF 0xe 7251 /* enum: AOE FPGA power: mV */ 7252 #define MC_CMD_SENSOR_OUT_VAOE 0xf 7253 /* enum: AOE FPGA temperature: degC */ 7254 #define MC_CMD_SENSOR_AOE_TEMP 0x10 7255 /* enum: AOE FPGA PSU temperature: degC */ 7256 #define MC_CMD_SENSOR_PSU_AOE_TEMP 0x11 7257 /* enum: AOE PSU temperature: degC */ 7258 #define MC_CMD_SENSOR_PSU_TEMP 0x12 7259 /* enum: Fan 0 speed: RPM */ 7260 #define MC_CMD_SENSOR_FAN_0 0x13 7261 /* enum: Fan 1 speed: RPM */ 7262 #define MC_CMD_SENSOR_FAN_1 0x14 7263 /* enum: Fan 2 speed: RPM */ 7264 #define MC_CMD_SENSOR_FAN_2 0x15 7265 /* enum: Fan 3 speed: RPM */ 7266 #define MC_CMD_SENSOR_FAN_3 0x16 7267 /* enum: Fan 4 speed: RPM */ 7268 #define MC_CMD_SENSOR_FAN_4 0x17 7269 /* enum: AOE FPGA input power: mV */ 7270 #define MC_CMD_SENSOR_IN_VAOE 0x18 7271 /* enum: AOE FPGA current: mA */ 7272 #define MC_CMD_SENSOR_OUT_IAOE 0x19 7273 /* enum: AOE FPGA input current: mA */ 7274 #define MC_CMD_SENSOR_IN_IAOE 0x1a 7275 /* enum: NIC power consumption: W */ 7276 #define MC_CMD_SENSOR_NIC_POWER 0x1b 7277 /* enum: 0.9v power voltage: mV */ 7278 #define MC_CMD_SENSOR_IN_0V9 0x1c 7279 /* enum: 0.9v power current: mA */ 7280 #define MC_CMD_SENSOR_IN_I0V9 0x1d 7281 /* enum: 1.2v power current: mA */ 7282 #define MC_CMD_SENSOR_IN_I1V2 0x1e 7283 /* enum: Not a sensor: reserved for the next page flag */ 7284 #define MC_CMD_SENSOR_PAGE0_NEXT 0x1f 7285 /* enum: 0.9v power voltage (at ADC): mV */ 7286 #define MC_CMD_SENSOR_IN_0V9_ADC 0x20 7287 /* enum: Controller temperature 2: degC */ 7288 #define MC_CMD_SENSOR_CONTROLLER_2_TEMP 0x21 7289 /* enum: Voltage regulator internal temperature: degC */ 7290 #define MC_CMD_SENSOR_VREG_INTERNAL_TEMP 0x22 7291 /* enum: 0.9V voltage regulator temperature: degC */ 7292 #define MC_CMD_SENSOR_VREG_0V9_TEMP 0x23 7293 /* enum: 1.2V voltage regulator temperature: degC */ 7294 #define MC_CMD_SENSOR_VREG_1V2_TEMP 0x24 7295 /* enum: controller internal temperature sensor voltage (internal ADC): mV */ 7296 #define MC_CMD_SENSOR_CONTROLLER_VPTAT 0x25 7297 /* enum: controller internal temperature (internal ADC): degC */ 7298 #define MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP 0x26 7299 /* enum: controller internal temperature sensor voltage (external ADC): mV */ 7300 #define MC_CMD_SENSOR_CONTROLLER_VPTAT_EXTADC 0x27 7301 /* enum: controller internal temperature (external ADC): degC */ 7302 #define MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP_EXTADC 0x28 7303 /* enum: ambient temperature: degC */ 7304 #define MC_CMD_SENSOR_AMBIENT_TEMP 0x29 7305 /* enum: air flow: bool */ 7306 #define MC_CMD_SENSOR_AIRFLOW 0x2a 7307 /* enum: voltage between VSS08D and VSS08D at CSR: mV */ 7308 #define MC_CMD_SENSOR_VDD08D_VSS08D_CSR 0x2b 7309 /* enum: voltage between VSS08D and VSS08D at CSR (external ADC): mV */ 7310 #define MC_CMD_SENSOR_VDD08D_VSS08D_CSR_EXTADC 0x2c 7311 /* enum: Hotpoint temperature: degC */ 7312 #define MC_CMD_SENSOR_HOTPOINT_TEMP 0x2d 7313 /* enum: Port 0 PHY power switch over-current: bool */ 7314 #define MC_CMD_SENSOR_PHY_POWER_PORT0 0x2e 7315 /* enum: Port 1 PHY power switch over-current: bool */ 7316 #define MC_CMD_SENSOR_PHY_POWER_PORT1 0x2f 7317 /* enum: Mop-up microcontroller reference voltage: mV */ 7318 #define MC_CMD_SENSOR_MUM_VCC 0x30 7319 /* enum: 0.9v power phase A voltage: mV */ 7320 #define MC_CMD_SENSOR_IN_0V9_A 0x31 7321 /* enum: 0.9v power phase A current: mA */ 7322 #define MC_CMD_SENSOR_IN_I0V9_A 0x32 7323 /* enum: 0.9V voltage regulator phase A temperature: degC */ 7324 #define MC_CMD_SENSOR_VREG_0V9_A_TEMP 0x33 7325 /* enum: 0.9v power phase B voltage: mV */ 7326 #define MC_CMD_SENSOR_IN_0V9_B 0x34 7327 /* enum: 0.9v power phase B current: mA */ 7328 #define MC_CMD_SENSOR_IN_I0V9_B 0x35 7329 /* enum: 0.9V voltage regulator phase B temperature: degC */ 7330 #define MC_CMD_SENSOR_VREG_0V9_B_TEMP 0x36 7331 /* enum: CCOM AVREG 1v2 supply (interval ADC): mV */ 7332 #define MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY 0x37 7333 /* enum: CCOM AVREG 1v2 supply (external ADC): mV */ 7334 #define MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY_EXTADC 0x38 7335 /* enum: CCOM AVREG 1v8 supply (interval ADC): mV */ 7336 #define MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY 0x39 7337 /* enum: CCOM AVREG 1v8 supply (external ADC): mV */ 7338 #define MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY_EXTADC 0x3a 7339 /* enum: CCOM RTS temperature: degC */ 7340 #define MC_CMD_SENSOR_CONTROLLER_RTS 0x3b 7341 /* enum: Not a sensor: reserved for the next page flag */ 7342 #define MC_CMD_SENSOR_PAGE1_NEXT 0x3f 7343 /* enum: controller internal temperature sensor voltage on master core 7344 * (internal ADC): mV 7345 */ 7346 #define MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT 0x40 7347 /* enum: controller internal temperature on master core (internal ADC): degC */ 7348 #define MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP 0x41 7349 /* enum: controller internal temperature sensor voltage on master core 7350 * (external ADC): mV 7351 */ 7352 #define MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT_EXTADC 0x42 7353 /* enum: controller internal temperature on master core (external ADC): degC */ 7354 #define MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC 0x43 7355 /* enum: controller internal temperature on slave core sensor voltage (internal 7356 * ADC): mV 7357 */ 7358 #define MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT 0x44 7359 /* enum: controller internal temperature on slave core (internal ADC): degC */ 7360 #define MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP 0x45 7361 /* enum: controller internal temperature on slave core sensor voltage (external 7362 * ADC): mV 7363 */ 7364 #define MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT_EXTADC 0x46 7365 /* enum: controller internal temperature on slave core (external ADC): degC */ 7366 #define MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC 0x47 7367 /* enum: Voltage supplied to the SODIMMs from their power supply: mV */ 7368 #define MC_CMD_SENSOR_SODIMM_VOUT 0x49 7369 /* enum: Temperature of SODIMM 0 (if installed): degC */ 7370 #define MC_CMD_SENSOR_SODIMM_0_TEMP 0x4a 7371 /* enum: Temperature of SODIMM 1 (if installed): degC */ 7372 #define MC_CMD_SENSOR_SODIMM_1_TEMP 0x4b 7373 /* enum: Voltage supplied to the QSFP #0 from their power supply: mV */ 7374 #define MC_CMD_SENSOR_PHY0_VCC 0x4c 7375 /* enum: Voltage supplied to the QSFP #1 from their power supply: mV */ 7376 #define MC_CMD_SENSOR_PHY1_VCC 0x4d 7377 /* enum: Controller die temperature (TDIODE): degC */ 7378 #define MC_CMD_SENSOR_CONTROLLER_TDIODE_TEMP 0x4e 7379 /* enum: Board temperature (front): degC */ 7380 #define MC_CMD_SENSOR_BOARD_FRONT_TEMP 0x4f 7381 /* enum: Board temperature (back): degC */ 7382 #define MC_CMD_SENSOR_BOARD_BACK_TEMP 0x50 7383 /* enum: 1.8v power current: mA */ 7384 #define MC_CMD_SENSOR_IN_I1V8 0x51 7385 /* enum: 2.5v power current: mA */ 7386 #define MC_CMD_SENSOR_IN_I2V5 0x52 7387 /* enum: 3.3v power current: mA */ 7388 #define MC_CMD_SENSOR_IN_I3V3 0x53 7389 /* enum: 12v power current: mA */ 7390 #define MC_CMD_SENSOR_IN_I12V0 0x54 7391 /* enum: 1.3v power: mV */ 7392 #define MC_CMD_SENSOR_IN_1V3 0x55 7393 /* enum: 1.3v power current: mA */ 7394 #define MC_CMD_SENSOR_IN_I1V3 0x56 7395 /* enum: Engineering sensor 1 */ 7396 #define MC_CMD_SENSOR_ENGINEERING_1 0x57 7397 /* enum: Engineering sensor 2 */ 7398 #define MC_CMD_SENSOR_ENGINEERING_2 0x58 7399 /* enum: Engineering sensor 3 */ 7400 #define MC_CMD_SENSOR_ENGINEERING_3 0x59 7401 /* enum: Engineering sensor 4 */ 7402 #define MC_CMD_SENSOR_ENGINEERING_4 0x5a 7403 /* enum: Engineering sensor 5 */ 7404 #define MC_CMD_SENSOR_ENGINEERING_5 0x5b 7405 /* enum: Engineering sensor 6 */ 7406 #define MC_CMD_SENSOR_ENGINEERING_6 0x5c 7407 /* enum: Engineering sensor 7 */ 7408 #define MC_CMD_SENSOR_ENGINEERING_7 0x5d 7409 /* enum: Engineering sensor 8 */ 7410 #define MC_CMD_SENSOR_ENGINEERING_8 0x5e 7411 /* enum: Not a sensor: reserved for the next page flag */ 7412 #define MC_CMD_SENSOR_PAGE2_NEXT 0x5f 7413 /* MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF */ 7414 #define MC_CMD_SENSOR_ENTRY_OFST 4 7415 #define MC_CMD_SENSOR_ENTRY_LEN 8 7416 #define MC_CMD_SENSOR_ENTRY_LO_OFST 4 7417 #define MC_CMD_SENSOR_ENTRY_LO_LEN 4 7418 #define MC_CMD_SENSOR_ENTRY_LO_LBN 32 7419 #define MC_CMD_SENSOR_ENTRY_LO_WIDTH 32 7420 #define MC_CMD_SENSOR_ENTRY_HI_OFST 8 7421 #define MC_CMD_SENSOR_ENTRY_HI_LEN 4 7422 #define MC_CMD_SENSOR_ENTRY_HI_LBN 64 7423 #define MC_CMD_SENSOR_ENTRY_HI_WIDTH 32 7424 #define MC_CMD_SENSOR_ENTRY_MINNUM 0 7425 #define MC_CMD_SENSOR_ENTRY_MAXNUM 31 7426 #define MC_CMD_SENSOR_ENTRY_MAXNUM_MCDI2 127 7427 7428 /* MC_CMD_SENSOR_INFO_EXT_OUT msgresponse */ 7429 #define MC_CMD_SENSOR_INFO_EXT_OUT_LENMIN 4 7430 #define MC_CMD_SENSOR_INFO_EXT_OUT_LENMAX 252 7431 #define MC_CMD_SENSOR_INFO_EXT_OUT_LENMAX_MCDI2 1020 7432 #define MC_CMD_SENSOR_INFO_EXT_OUT_LEN(num) (4+8*(num)) 7433 #define MC_CMD_SENSOR_INFO_EXT_OUT_MC_CMD_SENSOR_ENTRY_NUM(len) (((len)-4)/8) 7434 #define MC_CMD_SENSOR_INFO_EXT_OUT_MASK_OFST 0 7435 #define MC_CMD_SENSOR_INFO_EXT_OUT_MASK_LEN 4 7436 /* Enum values, see field(s): */ 7437 /* MC_CMD_SENSOR_INFO_OUT */ 7438 #define MC_CMD_SENSOR_INFO_EXT_OUT_NEXT_PAGE_OFST 0 7439 #define MC_CMD_SENSOR_INFO_EXT_OUT_NEXT_PAGE_LBN 31 7440 #define MC_CMD_SENSOR_INFO_EXT_OUT_NEXT_PAGE_WIDTH 1 7441 /* MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF */ 7442 /* MC_CMD_SENSOR_ENTRY_OFST 4 */ 7443 /* MC_CMD_SENSOR_ENTRY_LEN 8 */ 7444 /* MC_CMD_SENSOR_ENTRY_LO_OFST 4 */ 7445 /* MC_CMD_SENSOR_ENTRY_LO_LEN 4 */ 7446 /* MC_CMD_SENSOR_ENTRY_LO_LBN 32 */ 7447 /* MC_CMD_SENSOR_ENTRY_LO_WIDTH 32 */ 7448 /* MC_CMD_SENSOR_ENTRY_HI_OFST 8 */ 7449 /* MC_CMD_SENSOR_ENTRY_HI_LEN 4 */ 7450 /* MC_CMD_SENSOR_ENTRY_HI_LBN 64 */ 7451 /* MC_CMD_SENSOR_ENTRY_HI_WIDTH 32 */ 7452 /* MC_CMD_SENSOR_ENTRY_MINNUM 0 */ 7453 /* MC_CMD_SENSOR_ENTRY_MAXNUM 31 */ 7454 /* MC_CMD_SENSOR_ENTRY_MAXNUM_MCDI2 127 */ 7455 7456 /* MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF structuredef */ 7457 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_LEN 8 7458 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN1_OFST 0 7459 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN1_LEN 2 7460 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN1_LBN 0 7461 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN1_WIDTH 16 7462 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX1_OFST 2 7463 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX1_LEN 2 7464 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX1_LBN 16 7465 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX1_WIDTH 16 7466 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_OFST 4 7467 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_LEN 2 7468 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_LBN 32 7469 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_WIDTH 16 7470 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX2_OFST 6 7471 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX2_LEN 2 7472 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX2_LBN 48 7473 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX2_WIDTH 16 7474 7475 7476 /***********************************/ 7477 /* MC_CMD_READ_SENSORS 7478 * Returns the current reading from each sensor. DMAs an array of sensor 7479 * readings, in order of sensor type (but without gaps for unimplemented 7480 * sensors), into host memory. Each array element is a 7481 * MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF dword. 7482 * 7483 * If the request does not contain the LENGTH field then only sensors 0 to 30 7484 * are reported, to avoid DMA buffer overflow in older host software. If the 7485 * sensor reading require more space than the LENGTH allows, then return 7486 * EINVAL. 7487 * 7488 * The MC will send a SENSOREVT event every time any sensor changes state. The 7489 * driver is responsible for ensuring that it doesn't miss any events. The 7490 * board will function normally if all sensors are in STATE_OK or 7491 * STATE_WARNING. Otherwise the board should not be expected to function. 7492 */ 7493 #define MC_CMD_READ_SENSORS 0x42 7494 #define MC_CMD_READ_SENSORS_MSGSET 0x42 7495 #undef MC_CMD_0x42_PRIVILEGE_CTG 7496 7497 #define MC_CMD_0x42_PRIVILEGE_CTG SRIOV_CTG_GENERAL 7498 7499 /* MC_CMD_READ_SENSORS_IN msgrequest */ 7500 #define MC_CMD_READ_SENSORS_IN_LEN 8 7501 /* DMA address of host buffer for sensor readings (must be 4Kbyte aligned). 7502 * 7503 * If the address is 0xffffffffffffffff send the readings in the response (used 7504 * by cmdclient). 7505 */ 7506 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_OFST 0 7507 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LEN 8 7508 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_OFST 0 7509 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_LEN 4 7510 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_LBN 0 7511 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_WIDTH 32 7512 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_OFST 4 7513 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_LEN 4 7514 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_LBN 32 7515 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_WIDTH 32 7516 7517 /* MC_CMD_READ_SENSORS_EXT_IN msgrequest */ 7518 #define MC_CMD_READ_SENSORS_EXT_IN_LEN 12 7519 /* DMA address of host buffer for sensor readings (must be 4Kbyte aligned). 7520 * 7521 * If the address is 0xffffffffffffffff send the readings in the response (used 7522 * by cmdclient). 7523 */ 7524 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_OFST 0 7525 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LEN 8 7526 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_OFST 0 7527 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_LEN 4 7528 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_LBN 0 7529 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_WIDTH 32 7530 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_OFST 4 7531 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_LEN 4 7532 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_LBN 32 7533 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_WIDTH 32 7534 /* Size in bytes of host buffer. */ 7535 #define MC_CMD_READ_SENSORS_EXT_IN_LENGTH_OFST 8 7536 #define MC_CMD_READ_SENSORS_EXT_IN_LENGTH_LEN 4 7537 7538 /* MC_CMD_READ_SENSORS_EXT_IN_V2 msgrequest */ 7539 #define MC_CMD_READ_SENSORS_EXT_IN_V2_LEN 16 7540 /* DMA address of host buffer for sensor readings (must be 4Kbyte aligned). 7541 * 7542 * If the address is 0xffffffffffffffff send the readings in the response (used 7543 * by cmdclient). 7544 */ 7545 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_OFST 0 7546 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LEN 8 7547 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_OFST 0 7548 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_LEN 4 7549 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_LBN 0 7550 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_WIDTH 32 7551 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_OFST 4 7552 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_LEN 4 7553 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_LBN 32 7554 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_WIDTH 32 7555 /* Size in bytes of host buffer. */ 7556 #define MC_CMD_READ_SENSORS_EXT_IN_V2_LENGTH_OFST 8 7557 #define MC_CMD_READ_SENSORS_EXT_IN_V2_LENGTH_LEN 4 7558 /* Flags controlling information retrieved */ 7559 #define MC_CMD_READ_SENSORS_EXT_IN_V2_FLAGS_OFST 12 7560 #define MC_CMD_READ_SENSORS_EXT_IN_V2_FLAGS_LEN 4 7561 #define MC_CMD_READ_SENSORS_EXT_IN_V2_ENGINEERING_OFST 12 7562 #define MC_CMD_READ_SENSORS_EXT_IN_V2_ENGINEERING_LBN 0 7563 #define MC_CMD_READ_SENSORS_EXT_IN_V2_ENGINEERING_WIDTH 1 7564 7565 /* MC_CMD_READ_SENSORS_OUT msgresponse */ 7566 #define MC_CMD_READ_SENSORS_OUT_LEN 0 7567 7568 /* MC_CMD_READ_SENSORS_EXT_OUT msgresponse */ 7569 #define MC_CMD_READ_SENSORS_EXT_OUT_LEN 0 7570 7571 /* MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF structuredef */ 7572 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_LEN 4 7573 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_VALUE_OFST 0 7574 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_VALUE_LEN 2 7575 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_VALUE_LBN 0 7576 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_VALUE_WIDTH 16 7577 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_OFST 2 7578 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_LEN 1 7579 /* enum: Ok. */ 7580 #define MC_CMD_SENSOR_STATE_OK 0x0 7581 /* enum: Breached warning threshold. */ 7582 #define MC_CMD_SENSOR_STATE_WARNING 0x1 7583 /* enum: Breached fatal threshold. */ 7584 #define MC_CMD_SENSOR_STATE_FATAL 0x2 7585 /* enum: Fault with sensor. */ 7586 #define MC_CMD_SENSOR_STATE_BROKEN 0x3 7587 /* enum: Sensor is working but does not currently have a reading. */ 7588 #define MC_CMD_SENSOR_STATE_NO_READING 0x4 7589 /* enum: Sensor initialisation failed. */ 7590 #define MC_CMD_SENSOR_STATE_INIT_FAILED 0x5 7591 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_LBN 16 7592 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_WIDTH 8 7593 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_OFST 3 7594 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_LEN 1 7595 /* Enum values, see field(s): */ 7596 /* MC_CMD_SENSOR_INFO/MC_CMD_SENSOR_INFO_OUT/MASK */ 7597 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_LBN 24 7598 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_WIDTH 8 7599 7600 7601 /***********************************/ 7602 /* MC_CMD_GET_PHY_STATE 7603 * Report current state of PHY. A 'zombie' PHY is a PHY that has failed to boot 7604 * (e.g. due to missing or corrupted firmware). Locks required: None. Return 7605 * code: 0 7606 */ 7607 #define MC_CMD_GET_PHY_STATE 0x43 7608 #define MC_CMD_GET_PHY_STATE_MSGSET 0x43 7609 #undef MC_CMD_0x43_PRIVILEGE_CTG 7610 7611 #define MC_CMD_0x43_PRIVILEGE_CTG SRIOV_CTG_GENERAL 7612 7613 /* MC_CMD_GET_PHY_STATE_IN msgrequest */ 7614 #define MC_CMD_GET_PHY_STATE_IN_LEN 0 7615 7616 /* MC_CMD_GET_PHY_STATE_OUT msgresponse */ 7617 #define MC_CMD_GET_PHY_STATE_OUT_LEN 4 7618 #define MC_CMD_GET_PHY_STATE_OUT_STATE_OFST 0 7619 #define MC_CMD_GET_PHY_STATE_OUT_STATE_LEN 4 7620 /* enum: Ok. */ 7621 #define MC_CMD_PHY_STATE_OK 0x1 7622 /* enum: Faulty. */ 7623 #define MC_CMD_PHY_STATE_ZOMBIE 0x2 7624 7625 7626 /***********************************/ 7627 /* MC_CMD_SETUP_8021QBB 7628 * 802.1Qbb control. 8 Tx queues that map to priorities 0 - 7. Use all 1s to 7629 * disable 802.Qbb for a given priority. 7630 */ 7631 #define MC_CMD_SETUP_8021QBB 0x44 7632 #define MC_CMD_SETUP_8021QBB_MSGSET 0x44 7633 7634 /* MC_CMD_SETUP_8021QBB_IN msgrequest */ 7635 #define MC_CMD_SETUP_8021QBB_IN_LEN 32 7636 #define MC_CMD_SETUP_8021QBB_IN_TXQS_OFST 0 7637 #define MC_CMD_SETUP_8021QBB_IN_TXQS_LEN 32 7638 7639 /* MC_CMD_SETUP_8021QBB_OUT msgresponse */ 7640 #define MC_CMD_SETUP_8021QBB_OUT_LEN 0 7641 7642 7643 /***********************************/ 7644 /* MC_CMD_WOL_FILTER_GET 7645 * Retrieve ID of any WoL filters. Locks required: None. Returns: 0, ENOSYS 7646 */ 7647 #define MC_CMD_WOL_FILTER_GET 0x45 7648 #define MC_CMD_WOL_FILTER_GET_MSGSET 0x45 7649 #undef MC_CMD_0x45_PRIVILEGE_CTG 7650 7651 #define MC_CMD_0x45_PRIVILEGE_CTG SRIOV_CTG_LINK 7652 7653 /* MC_CMD_WOL_FILTER_GET_IN msgrequest */ 7654 #define MC_CMD_WOL_FILTER_GET_IN_LEN 0 7655 7656 /* MC_CMD_WOL_FILTER_GET_OUT msgresponse */ 7657 #define MC_CMD_WOL_FILTER_GET_OUT_LEN 4 7658 #define MC_CMD_WOL_FILTER_GET_OUT_FILTER_ID_OFST 0 7659 #define MC_CMD_WOL_FILTER_GET_OUT_FILTER_ID_LEN 4 7660 7661 7662 /***********************************/ 7663 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD 7664 * Add a protocol offload to NIC for lights-out state. Locks required: None. 7665 * Returns: 0, ENOSYS 7666 */ 7667 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD 0x46 7668 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_MSGSET 0x46 7669 #undef MC_CMD_0x46_PRIVILEGE_CTG 7670 7671 #define MC_CMD_0x46_PRIVILEGE_CTG SRIOV_CTG_LINK 7672 7673 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN msgrequest */ 7674 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_LENMIN 8 7675 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_LENMAX 252 7676 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_LENMAX_MCDI2 1020 7677 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_LEN(num) (4+4*(num)) 7678 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_NUM(len) (((len)-4)/4) 7679 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_OFST 0 7680 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_LEN 4 7681 #define MC_CMD_LIGHTSOUT_OFFLOAD_PROTOCOL_ARP 0x1 /* enum */ 7682 #define MC_CMD_LIGHTSOUT_OFFLOAD_PROTOCOL_NS 0x2 /* enum */ 7683 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_OFST 4 7684 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_LEN 4 7685 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_MINNUM 1 7686 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_MAXNUM 62 7687 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_MAXNUM_MCDI2 254 7688 7689 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP msgrequest */ 7690 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_LEN 14 7691 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_OFST 0 */ 7692 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_LEN 4 */ 7693 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_MAC_OFST 4 7694 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_MAC_LEN 6 7695 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_IP_OFST 10 7696 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_IP_LEN 4 7697 7698 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS msgrequest */ 7699 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_LEN 42 7700 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_OFST 0 */ 7701 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_LEN 4 */ 7702 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_MAC_OFST 4 7703 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_MAC_LEN 6 7704 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_SNIPV6_OFST 10 7705 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_SNIPV6_LEN 16 7706 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_IPV6_OFST 26 7707 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_IPV6_LEN 16 7708 7709 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_OUT msgresponse */ 7710 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_OUT_LEN 4 7711 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_OUT_FILTER_ID_OFST 0 7712 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_OUT_FILTER_ID_LEN 4 7713 7714 7715 /***********************************/ 7716 /* MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD 7717 * Remove a protocol offload from NIC for lights-out state. Locks required: 7718 * None. Returns: 0, ENOSYS 7719 */ 7720 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD 0x47 7721 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_MSGSET 0x47 7722 #undef MC_CMD_0x47_PRIVILEGE_CTG 7723 7724 #define MC_CMD_0x47_PRIVILEGE_CTG SRIOV_CTG_LINK 7725 7726 /* MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN msgrequest */ 7727 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_LEN 8 7728 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_OFST 0 7729 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_LEN 4 7730 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_FILTER_ID_OFST 4 7731 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_FILTER_ID_LEN 4 7732 7733 /* MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_OUT msgresponse */ 7734 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_OUT_LEN 0 7735 7736 7737 /***********************************/ 7738 /* MC_CMD_MAC_RESET_RESTORE 7739 * Restore MAC after block reset. Locks required: None. Returns: 0. 7740 */ 7741 #define MC_CMD_MAC_RESET_RESTORE 0x48 7742 #define MC_CMD_MAC_RESET_RESTORE_MSGSET 0x48 7743 7744 /* MC_CMD_MAC_RESET_RESTORE_IN msgrequest */ 7745 #define MC_CMD_MAC_RESET_RESTORE_IN_LEN 0 7746 7747 /* MC_CMD_MAC_RESET_RESTORE_OUT msgresponse */ 7748 #define MC_CMD_MAC_RESET_RESTORE_OUT_LEN 0 7749 7750 7751 /***********************************/ 7752 /* MC_CMD_TESTASSERT 7753 * Deliberately trigger an assert-detonation in the firmware for testing 7754 * purposes (i.e. to allow tests that the driver copes gracefully). Locks 7755 * required: None Returns: 0 7756 */ 7757 #define MC_CMD_TESTASSERT 0x49 7758 #define MC_CMD_TESTASSERT_MSGSET 0x49 7759 #undef MC_CMD_0x49_PRIVILEGE_CTG 7760 7761 #define MC_CMD_0x49_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 7762 7763 /* MC_CMD_TESTASSERT_IN msgrequest */ 7764 #define MC_CMD_TESTASSERT_IN_LEN 0 7765 7766 /* MC_CMD_TESTASSERT_OUT msgresponse */ 7767 #define MC_CMD_TESTASSERT_OUT_LEN 0 7768 7769 /* MC_CMD_TESTASSERT_V2_IN msgrequest */ 7770 #define MC_CMD_TESTASSERT_V2_IN_LEN 4 7771 /* How to provoke the assertion */ 7772 #define MC_CMD_TESTASSERT_V2_IN_TYPE_OFST 0 7773 #define MC_CMD_TESTASSERT_V2_IN_TYPE_LEN 4 7774 /* enum: Assert using the FAIL_ASSERTION_WITH_USEFUL_VALUES macro. Unless 7775 * you're testing firmware, this is what you want. 7776 */ 7777 #define MC_CMD_TESTASSERT_V2_IN_FAIL_ASSERTION_WITH_USEFUL_VALUES 0x0 7778 /* enum: Assert using assert(0); */ 7779 #define MC_CMD_TESTASSERT_V2_IN_ASSERT_FALSE 0x1 7780 /* enum: Deliberately trigger a watchdog */ 7781 #define MC_CMD_TESTASSERT_V2_IN_WATCHDOG 0x2 7782 /* enum: Deliberately trigger a trap by loading from an invalid address */ 7783 #define MC_CMD_TESTASSERT_V2_IN_LOAD_TRAP 0x3 7784 /* enum: Deliberately trigger a trap by storing to an invalid address */ 7785 #define MC_CMD_TESTASSERT_V2_IN_STORE_TRAP 0x4 7786 /* enum: Jump to an invalid address */ 7787 #define MC_CMD_TESTASSERT_V2_IN_JUMP_TRAP 0x5 7788 7789 /* MC_CMD_TESTASSERT_V2_OUT msgresponse */ 7790 #define MC_CMD_TESTASSERT_V2_OUT_LEN 0 7791 7792 7793 /***********************************/ 7794 /* MC_CMD_WORKAROUND 7795 * Enable/Disable a given workaround. The mcfw will return EINVAL if it doesn't 7796 * understand the given workaround number - which should not be treated as a 7797 * hard error by client code. This op does not imply any semantics about each 7798 * workaround, that's between the driver and the mcfw on a per-workaround 7799 * basis. Locks required: None. Returns: 0, EINVAL . 7800 */ 7801 #define MC_CMD_WORKAROUND 0x4a 7802 #define MC_CMD_WORKAROUND_MSGSET 0x4a 7803 #undef MC_CMD_0x4a_PRIVILEGE_CTG 7804 7805 #define MC_CMD_0x4a_PRIVILEGE_CTG SRIOV_CTG_ADMIN 7806 7807 /* MC_CMD_WORKAROUND_IN msgrequest */ 7808 #define MC_CMD_WORKAROUND_IN_LEN 8 7809 /* The enums here must correspond with those in MC_CMD_GET_WORKAROUND. */ 7810 #define MC_CMD_WORKAROUND_IN_TYPE_OFST 0 7811 #define MC_CMD_WORKAROUND_IN_TYPE_LEN 4 7812 /* enum: Bug 17230 work around. */ 7813 #define MC_CMD_WORKAROUND_BUG17230 0x1 7814 /* enum: Bug 35388 work around (unsafe EVQ writes). */ 7815 #define MC_CMD_WORKAROUND_BUG35388 0x2 7816 /* enum: Bug35017 workaround (A64 tables must be identity map) */ 7817 #define MC_CMD_WORKAROUND_BUG35017 0x3 7818 /* enum: Bug 41750 present (MC_CMD_TRIGGER_INTERRUPT won't work) */ 7819 #define MC_CMD_WORKAROUND_BUG41750 0x4 7820 /* enum: Bug 42008 present (Interrupts can overtake associated events). Caution 7821 * - before adding code that queries this workaround, remember that there's 7822 * released Monza firmware that doesn't understand MC_CMD_WORKAROUND_BUG42008, 7823 * and will hence (incorrectly) report that the bug doesn't exist. 7824 */ 7825 #define MC_CMD_WORKAROUND_BUG42008 0x5 7826 /* enum: Bug 26807 features present in firmware (multicast filter chaining) 7827 * This feature cannot be turned on/off while there are any filters already 7828 * present. The behaviour in such case depends on the acting client's privilege 7829 * level. If the client has the admin privilege, then all functions that have 7830 * filters installed will be FLRed and the FLR_DONE flag will be set. Otherwise 7831 * the command will fail with MC_CMD_ERR_FILTERS_PRESENT. 7832 */ 7833 #define MC_CMD_WORKAROUND_BUG26807 0x6 7834 /* enum: Bug 61265 work around (broken EVQ TMR writes). */ 7835 #define MC_CMD_WORKAROUND_BUG61265 0x7 7836 /* 0 = disable the workaround indicated by TYPE; any non-zero value = enable 7837 * the workaround 7838 */ 7839 #define MC_CMD_WORKAROUND_IN_ENABLED_OFST 4 7840 #define MC_CMD_WORKAROUND_IN_ENABLED_LEN 4 7841 7842 /* MC_CMD_WORKAROUND_OUT msgresponse */ 7843 #define MC_CMD_WORKAROUND_OUT_LEN 0 7844 7845 /* MC_CMD_WORKAROUND_EXT_OUT msgresponse: This response format will be used 7846 * when (TYPE == MC_CMD_WORKAROUND_BUG26807) 7847 */ 7848 #define MC_CMD_WORKAROUND_EXT_OUT_LEN 4 7849 #define MC_CMD_WORKAROUND_EXT_OUT_FLAGS_OFST 0 7850 #define MC_CMD_WORKAROUND_EXT_OUT_FLAGS_LEN 4 7851 #define MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_OFST 0 7852 #define MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_LBN 0 7853 #define MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_WIDTH 1 7854 7855 7856 /***********************************/ 7857 /* MC_CMD_GET_PHY_MEDIA_INFO 7858 * Read media-specific data from PHY (e.g. SFP/SFP+ module ID information for 7859 * SFP+ PHYs). The "media type" can be found via GET_PHY_CFG 7860 * (GET_PHY_CFG_OUT_MEDIA_TYPE); the valid "page number" input values, and the 7861 * output data, are interpreted on a per-type basis. For SFP+, PAGE=0 or 1 7862 * returns a 128-byte block read from module I2C address 0xA0 offset 0 or 0x80. 7863 * For QSFP, PAGE=-1 is the lower (unbanked) page. PAGE=2 is the EEPROM and 7864 * PAGE=3 is the module limits. For DSFP, module addressing requires a 7865 * "BANK:PAGE". Not every bank has the same number of pages. See the Common 7866 * Management Interface Specification (CMIS) for further details. A BANK:PAGE 7867 * of "0xffff:0xffff" retrieves the lower (unbanked) page. Locks required - 7868 * None. Return code - 0. 7869 */ 7870 #define MC_CMD_GET_PHY_MEDIA_INFO 0x4b 7871 #define MC_CMD_GET_PHY_MEDIA_INFO_MSGSET 0x4b 7872 #undef MC_CMD_0x4b_PRIVILEGE_CTG 7873 7874 #define MC_CMD_0x4b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 7875 7876 /* MC_CMD_GET_PHY_MEDIA_INFO_IN msgrequest */ 7877 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_LEN 4 7878 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_PAGE_OFST 0 7879 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_PAGE_LEN 4 7880 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_PAGE_OFST 0 7881 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_PAGE_LBN 0 7882 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_PAGE_WIDTH 16 7883 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_BANK_OFST 0 7884 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_BANK_LBN 16 7885 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_DSFP_BANK_WIDTH 16 7886 7887 /* MC_CMD_GET_PHY_MEDIA_INFO_OUT msgresponse */ 7888 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LENMIN 5 7889 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LENMAX 252 7890 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LENMAX_MCDI2 1020 7891 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LEN(num) (4+1*(num)) 7892 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_NUM(len) (((len)-4)/1) 7893 /* in bytes */ 7894 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATALEN_OFST 0 7895 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATALEN_LEN 4 7896 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_OFST 4 7897 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_LEN 1 7898 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_MINNUM 1 7899 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_MAXNUM 248 7900 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_MAXNUM_MCDI2 1016 7901 7902 7903 /***********************************/ 7904 /* MC_CMD_NVRAM_TEST 7905 * Test a particular NVRAM partition for valid contents (where "valid" depends 7906 * on the type of partition). 7907 */ 7908 #define MC_CMD_NVRAM_TEST 0x4c 7909 #define MC_CMD_NVRAM_TEST_MSGSET 0x4c 7910 #undef MC_CMD_0x4c_PRIVILEGE_CTG 7911 7912 #define MC_CMD_0x4c_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 7913 7914 /* MC_CMD_NVRAM_TEST_IN msgrequest */ 7915 #define MC_CMD_NVRAM_TEST_IN_LEN 4 7916 #define MC_CMD_NVRAM_TEST_IN_TYPE_OFST 0 7917 #define MC_CMD_NVRAM_TEST_IN_TYPE_LEN 4 7918 /* Enum values, see field(s): */ 7919 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 7920 7921 /* MC_CMD_NVRAM_TEST_OUT msgresponse */ 7922 #define MC_CMD_NVRAM_TEST_OUT_LEN 4 7923 #define MC_CMD_NVRAM_TEST_OUT_RESULT_OFST 0 7924 #define MC_CMD_NVRAM_TEST_OUT_RESULT_LEN 4 7925 /* enum: Passed. */ 7926 #define MC_CMD_NVRAM_TEST_PASS 0x0 7927 /* enum: Failed. */ 7928 #define MC_CMD_NVRAM_TEST_FAIL 0x1 7929 /* enum: Not supported. */ 7930 #define MC_CMD_NVRAM_TEST_NOTSUPP 0x2 7931 7932 7933 /***********************************/ 7934 /* MC_CMD_MRSFP_TWEAK 7935 * Read status and/or set parameters for the 'mrsfp' driver in mr_rusty builds. 7936 * I2C I/O expander bits are always read; if equaliser parameters are supplied, 7937 * they are configured first. Locks required: None. Return code: 0, EINVAL. 7938 */ 7939 #define MC_CMD_MRSFP_TWEAK 0x4d 7940 #define MC_CMD_MRSFP_TWEAK_MSGSET 0x4d 7941 7942 /* MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG msgrequest */ 7943 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_LEN 16 7944 /* 0-6 low->high de-emph. */ 7945 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_TXEQ_LEVEL_OFST 0 7946 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_TXEQ_LEVEL_LEN 4 7947 /* 0-8 low->high ref.V */ 7948 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_TXEQ_DT_CFG_OFST 4 7949 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_TXEQ_DT_CFG_LEN 4 7950 /* 0-8 0-8 low->high boost */ 7951 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_RXEQ_BOOST_OFST 8 7952 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_RXEQ_BOOST_LEN 4 7953 /* 0-8 low->high ref.V */ 7954 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_RXEQ_DT_CFG_OFST 12 7955 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_RXEQ_DT_CFG_LEN 4 7956 7957 /* MC_CMD_MRSFP_TWEAK_IN_READ_ONLY msgrequest */ 7958 #define MC_CMD_MRSFP_TWEAK_IN_READ_ONLY_LEN 0 7959 7960 /* MC_CMD_MRSFP_TWEAK_OUT msgresponse */ 7961 #define MC_CMD_MRSFP_TWEAK_OUT_LEN 12 7962 /* input bits */ 7963 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_INPUTS_OFST 0 7964 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_INPUTS_LEN 4 7965 /* output bits */ 7966 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_OUTPUTS_OFST 4 7967 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_OUTPUTS_LEN 4 7968 /* direction */ 7969 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_DIRECTION_OFST 8 7970 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_DIRECTION_LEN 4 7971 /* enum: Out. */ 7972 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_DIRECTION_OUT 0x0 7973 /* enum: In. */ 7974 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_DIRECTION_IN 0x1 7975 7976 7977 /***********************************/ 7978 /* MC_CMD_SENSOR_SET_LIMS 7979 * Adjusts the sensor limits. This is a warranty-voiding operation. Returns: 7980 * ENOENT if the sensor specified does not exist, EINVAL if the limits are out 7981 * of range. 7982 */ 7983 #define MC_CMD_SENSOR_SET_LIMS 0x4e 7984 #define MC_CMD_SENSOR_SET_LIMS_MSGSET 0x4e 7985 #undef MC_CMD_0x4e_PRIVILEGE_CTG 7986 7987 #define MC_CMD_0x4e_PRIVILEGE_CTG SRIOV_CTG_INSECURE 7988 7989 /* MC_CMD_SENSOR_SET_LIMS_IN msgrequest */ 7990 #define MC_CMD_SENSOR_SET_LIMS_IN_LEN 20 7991 #define MC_CMD_SENSOR_SET_LIMS_IN_SENSOR_OFST 0 7992 #define MC_CMD_SENSOR_SET_LIMS_IN_SENSOR_LEN 4 7993 /* Enum values, see field(s): */ 7994 /* MC_CMD_SENSOR_INFO/MC_CMD_SENSOR_INFO_OUT/MASK */ 7995 /* interpretation is is sensor-specific. */ 7996 #define MC_CMD_SENSOR_SET_LIMS_IN_LOW0_OFST 4 7997 #define MC_CMD_SENSOR_SET_LIMS_IN_LOW0_LEN 4 7998 /* interpretation is is sensor-specific. */ 7999 #define MC_CMD_SENSOR_SET_LIMS_IN_HI0_OFST 8 8000 #define MC_CMD_SENSOR_SET_LIMS_IN_HI0_LEN 4 8001 /* interpretation is is sensor-specific. */ 8002 #define MC_CMD_SENSOR_SET_LIMS_IN_LOW1_OFST 12 8003 #define MC_CMD_SENSOR_SET_LIMS_IN_LOW1_LEN 4 8004 /* interpretation is is sensor-specific. */ 8005 #define MC_CMD_SENSOR_SET_LIMS_IN_HI1_OFST 16 8006 #define MC_CMD_SENSOR_SET_LIMS_IN_HI1_LEN 4 8007 8008 /* MC_CMD_SENSOR_SET_LIMS_OUT msgresponse */ 8009 #define MC_CMD_SENSOR_SET_LIMS_OUT_LEN 0 8010 8011 8012 /***********************************/ 8013 /* MC_CMD_GET_RESOURCE_LIMITS 8014 */ 8015 #define MC_CMD_GET_RESOURCE_LIMITS 0x4f 8016 #define MC_CMD_GET_RESOURCE_LIMITS_MSGSET 0x4f 8017 8018 /* MC_CMD_GET_RESOURCE_LIMITS_IN msgrequest */ 8019 #define MC_CMD_GET_RESOURCE_LIMITS_IN_LEN 0 8020 8021 /* MC_CMD_GET_RESOURCE_LIMITS_OUT msgresponse */ 8022 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_LEN 16 8023 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_BUFTBL_OFST 0 8024 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_BUFTBL_LEN 4 8025 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_EVQ_OFST 4 8026 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_EVQ_LEN 4 8027 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_RXQ_OFST 8 8028 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_RXQ_LEN 4 8029 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_TXQ_OFST 12 8030 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_TXQ_LEN 4 8031 8032 8033 /***********************************/ 8034 /* MC_CMD_NVRAM_PARTITIONS 8035 * Reads the list of available virtual NVRAM partition types. Locks required: 8036 * none. Returns: 0, EINVAL (bad type). 8037 */ 8038 #define MC_CMD_NVRAM_PARTITIONS 0x51 8039 #define MC_CMD_NVRAM_PARTITIONS_MSGSET 0x51 8040 #undef MC_CMD_0x51_PRIVILEGE_CTG 8041 8042 #define MC_CMD_0x51_PRIVILEGE_CTG SRIOV_CTG_ADMIN 8043 8044 /* MC_CMD_NVRAM_PARTITIONS_IN msgrequest */ 8045 #define MC_CMD_NVRAM_PARTITIONS_IN_LEN 0 8046 8047 /* MC_CMD_NVRAM_PARTITIONS_OUT msgresponse */ 8048 #define MC_CMD_NVRAM_PARTITIONS_OUT_LENMIN 4 8049 #define MC_CMD_NVRAM_PARTITIONS_OUT_LENMAX 252 8050 #define MC_CMD_NVRAM_PARTITIONS_OUT_LENMAX_MCDI2 1020 8051 #define MC_CMD_NVRAM_PARTITIONS_OUT_LEN(num) (4+4*(num)) 8052 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_NUM(len) (((len)-4)/4) 8053 /* total number of partitions */ 8054 #define MC_CMD_NVRAM_PARTITIONS_OUT_NUM_PARTITIONS_OFST 0 8055 #define MC_CMD_NVRAM_PARTITIONS_OUT_NUM_PARTITIONS_LEN 4 8056 /* type ID code for each of NUM_PARTITIONS partitions */ 8057 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_OFST 4 8058 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_LEN 4 8059 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_MINNUM 0 8060 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_MAXNUM 62 8061 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_MAXNUM_MCDI2 254 8062 8063 8064 /***********************************/ 8065 /* MC_CMD_NVRAM_METADATA 8066 * Reads soft metadata for a virtual NVRAM partition type. Locks required: 8067 * none. Returns: 0, EINVAL (bad type). 8068 */ 8069 #define MC_CMD_NVRAM_METADATA 0x52 8070 #define MC_CMD_NVRAM_METADATA_MSGSET 0x52 8071 #undef MC_CMD_0x52_PRIVILEGE_CTG 8072 8073 #define MC_CMD_0x52_PRIVILEGE_CTG SRIOV_CTG_ADMIN 8074 8075 /* MC_CMD_NVRAM_METADATA_IN msgrequest */ 8076 #define MC_CMD_NVRAM_METADATA_IN_LEN 4 8077 /* Partition type ID code */ 8078 #define MC_CMD_NVRAM_METADATA_IN_TYPE_OFST 0 8079 #define MC_CMD_NVRAM_METADATA_IN_TYPE_LEN 4 8080 8081 /* MC_CMD_NVRAM_METADATA_OUT msgresponse */ 8082 #define MC_CMD_NVRAM_METADATA_OUT_LENMIN 20 8083 #define MC_CMD_NVRAM_METADATA_OUT_LENMAX 252 8084 #define MC_CMD_NVRAM_METADATA_OUT_LENMAX_MCDI2 1020 8085 #define MC_CMD_NVRAM_METADATA_OUT_LEN(num) (20+1*(num)) 8086 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_NUM(len) (((len)-20)/1) 8087 /* Partition type ID code */ 8088 #define MC_CMD_NVRAM_METADATA_OUT_TYPE_OFST 0 8089 #define MC_CMD_NVRAM_METADATA_OUT_TYPE_LEN 4 8090 #define MC_CMD_NVRAM_METADATA_OUT_FLAGS_OFST 4 8091 #define MC_CMD_NVRAM_METADATA_OUT_FLAGS_LEN 4 8092 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_VALID_OFST 4 8093 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_VALID_LBN 0 8094 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_VALID_WIDTH 1 8095 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_VALID_OFST 4 8096 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_VALID_LBN 1 8097 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_VALID_WIDTH 1 8098 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_VALID_OFST 4 8099 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_VALID_LBN 2 8100 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_VALID_WIDTH 1 8101 /* Subtype ID code for content of this partition */ 8102 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_OFST 8 8103 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_LEN 4 8104 /* 1st component of W.X.Y.Z version number for content of this partition */ 8105 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_W_OFST 12 8106 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_W_LEN 2 8107 /* 2nd component of W.X.Y.Z version number for content of this partition */ 8108 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_X_OFST 14 8109 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_X_LEN 2 8110 /* 3rd component of W.X.Y.Z version number for content of this partition */ 8111 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_Y_OFST 16 8112 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_Y_LEN 2 8113 /* 4th component of W.X.Y.Z version number for content of this partition */ 8114 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_Z_OFST 18 8115 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_Z_LEN 2 8116 /* Zero-terminated string describing the content of this partition */ 8117 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_OFST 20 8118 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_LEN 1 8119 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_MINNUM 0 8120 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_MAXNUM 232 8121 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_MAXNUM_MCDI2 1000 8122 8123 8124 /***********************************/ 8125 /* MC_CMD_GET_MAC_ADDRESSES 8126 * Returns the base MAC, count and stride for the requesting function 8127 */ 8128 #define MC_CMD_GET_MAC_ADDRESSES 0x55 8129 #define MC_CMD_GET_MAC_ADDRESSES_MSGSET 0x55 8130 #undef MC_CMD_0x55_PRIVILEGE_CTG 8131 8132 #define MC_CMD_0x55_PRIVILEGE_CTG SRIOV_CTG_GENERAL 8133 8134 /* MC_CMD_GET_MAC_ADDRESSES_IN msgrequest */ 8135 #define MC_CMD_GET_MAC_ADDRESSES_IN_LEN 0 8136 8137 /* MC_CMD_GET_MAC_ADDRESSES_OUT msgresponse */ 8138 #define MC_CMD_GET_MAC_ADDRESSES_OUT_LEN 16 8139 /* Base MAC address */ 8140 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_ADDR_BASE_OFST 0 8141 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_ADDR_BASE_LEN 6 8142 /* Padding */ 8143 #define MC_CMD_GET_MAC_ADDRESSES_OUT_RESERVED_OFST 6 8144 #define MC_CMD_GET_MAC_ADDRESSES_OUT_RESERVED_LEN 2 8145 /* Number of allocated MAC addresses */ 8146 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_COUNT_OFST 8 8147 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_COUNT_LEN 4 8148 /* Spacing of allocated MAC addresses */ 8149 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_STRIDE_OFST 12 8150 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_STRIDE_LEN 4 8151 8152 8153 /***********************************/ 8154 /* MC_CMD_CLP 8155 * Perform a CLP related operation, see SF-110495-PS for details of CLP 8156 * processing. This command has been extended to accomodate the requirements of 8157 * different manufacturers which are to be found in SF-119187-TC, SF-119186-TC, 8158 * SF-120509-TC and SF-117282-PS. 8159 */ 8160 #define MC_CMD_CLP 0x56 8161 #define MC_CMD_CLP_MSGSET 0x56 8162 #undef MC_CMD_0x56_PRIVILEGE_CTG 8163 8164 #define MC_CMD_0x56_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 8165 8166 /* MC_CMD_CLP_IN msgrequest */ 8167 #define MC_CMD_CLP_IN_LEN 4 8168 /* Sub operation */ 8169 #define MC_CMD_CLP_IN_OP_OFST 0 8170 #define MC_CMD_CLP_IN_OP_LEN 4 8171 /* enum: Return to factory default settings */ 8172 #define MC_CMD_CLP_OP_DEFAULT 0x1 8173 /* enum: Set MAC address */ 8174 #define MC_CMD_CLP_OP_SET_MAC 0x2 8175 /* enum: Get MAC address */ 8176 #define MC_CMD_CLP_OP_GET_MAC 0x3 8177 /* enum: Set UEFI/GPXE boot mode */ 8178 #define MC_CMD_CLP_OP_SET_BOOT 0x4 8179 /* enum: Get UEFI/GPXE boot mode */ 8180 #define MC_CMD_CLP_OP_GET_BOOT 0x5 8181 8182 /* MC_CMD_CLP_OUT msgresponse */ 8183 #define MC_CMD_CLP_OUT_LEN 0 8184 8185 /* MC_CMD_CLP_IN_DEFAULT msgrequest */ 8186 #define MC_CMD_CLP_IN_DEFAULT_LEN 4 8187 /* MC_CMD_CLP_IN_OP_OFST 0 */ 8188 /* MC_CMD_CLP_IN_OP_LEN 4 */ 8189 8190 /* MC_CMD_CLP_OUT_DEFAULT msgresponse */ 8191 #define MC_CMD_CLP_OUT_DEFAULT_LEN 0 8192 8193 /* MC_CMD_CLP_IN_SET_MAC msgrequest */ 8194 #define MC_CMD_CLP_IN_SET_MAC_LEN 12 8195 /* MC_CMD_CLP_IN_OP_OFST 0 */ 8196 /* MC_CMD_CLP_IN_OP_LEN 4 */ 8197 /* The MAC address assigned to port. A zero MAC address of 00:00:00:00:00:00 8198 * restores the permanent (factory-programmed) MAC address associated with the 8199 * port. A non-zero MAC address persists until a PCIe reset or a power cycle. 8200 */ 8201 #define MC_CMD_CLP_IN_SET_MAC_ADDR_OFST 4 8202 #define MC_CMD_CLP_IN_SET_MAC_ADDR_LEN 6 8203 /* Padding */ 8204 #define MC_CMD_CLP_IN_SET_MAC_RESERVED_OFST 10 8205 #define MC_CMD_CLP_IN_SET_MAC_RESERVED_LEN 2 8206 8207 /* MC_CMD_CLP_OUT_SET_MAC msgresponse */ 8208 #define MC_CMD_CLP_OUT_SET_MAC_LEN 0 8209 8210 /* MC_CMD_CLP_IN_SET_MAC_V2 msgrequest */ 8211 #define MC_CMD_CLP_IN_SET_MAC_V2_LEN 16 8212 /* MC_CMD_CLP_IN_OP_OFST 0 */ 8213 /* MC_CMD_CLP_IN_OP_LEN 4 */ 8214 /* The MAC address assigned to port. A zero MAC address of 00:00:00:00:00:00 8215 * restores the permanent (factory-programmed) MAC address associated with the 8216 * port. A non-zero MAC address persists until a PCIe reset or a power cycle. 8217 */ 8218 #define MC_CMD_CLP_IN_SET_MAC_V2_ADDR_OFST 4 8219 #define MC_CMD_CLP_IN_SET_MAC_V2_ADDR_LEN 6 8220 /* Padding */ 8221 #define MC_CMD_CLP_IN_SET_MAC_V2_RESERVED_OFST 10 8222 #define MC_CMD_CLP_IN_SET_MAC_V2_RESERVED_LEN 2 8223 #define MC_CMD_CLP_IN_SET_MAC_V2_FLAGS_OFST 12 8224 #define MC_CMD_CLP_IN_SET_MAC_V2_FLAGS_LEN 4 8225 #define MC_CMD_CLP_IN_SET_MAC_V2_VIRTUAL_OFST 12 8226 #define MC_CMD_CLP_IN_SET_MAC_V2_VIRTUAL_LBN 0 8227 #define MC_CMD_CLP_IN_SET_MAC_V2_VIRTUAL_WIDTH 1 8228 8229 /* MC_CMD_CLP_IN_GET_MAC msgrequest */ 8230 #define MC_CMD_CLP_IN_GET_MAC_LEN 4 8231 /* MC_CMD_CLP_IN_OP_OFST 0 */ 8232 /* MC_CMD_CLP_IN_OP_LEN 4 */ 8233 8234 /* MC_CMD_CLP_IN_GET_MAC_V2 msgrequest */ 8235 #define MC_CMD_CLP_IN_GET_MAC_V2_LEN 8 8236 /* MC_CMD_CLP_IN_OP_OFST 0 */ 8237 /* MC_CMD_CLP_IN_OP_LEN 4 */ 8238 #define MC_CMD_CLP_IN_GET_MAC_V2_FLAGS_OFST 4 8239 #define MC_CMD_CLP_IN_GET_MAC_V2_FLAGS_LEN 4 8240 #define MC_CMD_CLP_IN_GET_MAC_V2_PERMANENT_OFST 4 8241 #define MC_CMD_CLP_IN_GET_MAC_V2_PERMANENT_LBN 0 8242 #define MC_CMD_CLP_IN_GET_MAC_V2_PERMANENT_WIDTH 1 8243 8244 /* MC_CMD_CLP_OUT_GET_MAC msgresponse */ 8245 #define MC_CMD_CLP_OUT_GET_MAC_LEN 8 8246 /* MAC address assigned to port */ 8247 #define MC_CMD_CLP_OUT_GET_MAC_ADDR_OFST 0 8248 #define MC_CMD_CLP_OUT_GET_MAC_ADDR_LEN 6 8249 /* Padding */ 8250 #define MC_CMD_CLP_OUT_GET_MAC_RESERVED_OFST 6 8251 #define MC_CMD_CLP_OUT_GET_MAC_RESERVED_LEN 2 8252 8253 /* MC_CMD_CLP_IN_SET_BOOT msgrequest */ 8254 #define MC_CMD_CLP_IN_SET_BOOT_LEN 5 8255 /* MC_CMD_CLP_IN_OP_OFST 0 */ 8256 /* MC_CMD_CLP_IN_OP_LEN 4 */ 8257 /* Boot flag */ 8258 #define MC_CMD_CLP_IN_SET_BOOT_FLAG_OFST 4 8259 #define MC_CMD_CLP_IN_SET_BOOT_FLAG_LEN 1 8260 8261 /* MC_CMD_CLP_OUT_SET_BOOT msgresponse */ 8262 #define MC_CMD_CLP_OUT_SET_BOOT_LEN 0 8263 8264 /* MC_CMD_CLP_IN_GET_BOOT msgrequest */ 8265 #define MC_CMD_CLP_IN_GET_BOOT_LEN 4 8266 /* MC_CMD_CLP_IN_OP_OFST 0 */ 8267 /* MC_CMD_CLP_IN_OP_LEN 4 */ 8268 8269 /* MC_CMD_CLP_OUT_GET_BOOT msgresponse */ 8270 #define MC_CMD_CLP_OUT_GET_BOOT_LEN 4 8271 /* Boot flag */ 8272 #define MC_CMD_CLP_OUT_GET_BOOT_FLAG_OFST 0 8273 #define MC_CMD_CLP_OUT_GET_BOOT_FLAG_LEN 1 8274 /* Padding */ 8275 #define MC_CMD_CLP_OUT_GET_BOOT_RESERVED_OFST 1 8276 #define MC_CMD_CLP_OUT_GET_BOOT_RESERVED_LEN 3 8277 8278 8279 /***********************************/ 8280 /* MC_CMD_MUM 8281 * Perform a MUM operation 8282 */ 8283 #define MC_CMD_MUM 0x57 8284 #define MC_CMD_MUM_MSGSET 0x57 8285 #undef MC_CMD_0x57_PRIVILEGE_CTG 8286 8287 #define MC_CMD_0x57_PRIVILEGE_CTG SRIOV_CTG_INSECURE 8288 8289 /* MC_CMD_MUM_IN msgrequest */ 8290 #define MC_CMD_MUM_IN_LEN 4 8291 #define MC_CMD_MUM_IN_OP_HDR_OFST 0 8292 #define MC_CMD_MUM_IN_OP_HDR_LEN 4 8293 #define MC_CMD_MUM_IN_OP_OFST 0 8294 #define MC_CMD_MUM_IN_OP_LBN 0 8295 #define MC_CMD_MUM_IN_OP_WIDTH 8 8296 /* enum: NULL MCDI command to MUM */ 8297 #define MC_CMD_MUM_OP_NULL 0x1 8298 /* enum: Get MUM version */ 8299 #define MC_CMD_MUM_OP_GET_VERSION 0x2 8300 /* enum: Issue raw I2C command to MUM */ 8301 #define MC_CMD_MUM_OP_RAW_CMD 0x3 8302 /* enum: Read from registers on devices connected to MUM. */ 8303 #define MC_CMD_MUM_OP_READ 0x4 8304 /* enum: Write to registers on devices connected to MUM. */ 8305 #define MC_CMD_MUM_OP_WRITE 0x5 8306 /* enum: Control UART logging. */ 8307 #define MC_CMD_MUM_OP_LOG 0x6 8308 /* enum: Operations on MUM GPIO lines */ 8309 #define MC_CMD_MUM_OP_GPIO 0x7 8310 /* enum: Get sensor readings from MUM */ 8311 #define MC_CMD_MUM_OP_READ_SENSORS 0x8 8312 /* enum: Initiate clock programming on the MUM */ 8313 #define MC_CMD_MUM_OP_PROGRAM_CLOCKS 0x9 8314 /* enum: Initiate FPGA load from flash on the MUM */ 8315 #define MC_CMD_MUM_OP_FPGA_LOAD 0xa 8316 /* enum: Request sensor reading from MUM ADC resulting from earlier request via 8317 * MUM ATB 8318 */ 8319 #define MC_CMD_MUM_OP_READ_ATB_SENSOR 0xb 8320 /* enum: Send commands relating to the QSFP ports via the MUM for PHY 8321 * operations 8322 */ 8323 #define MC_CMD_MUM_OP_QSFP 0xc 8324 /* enum: Request discrete and SODIMM DDR info (type, size, speed grade, voltage 8325 * level) from MUM 8326 */ 8327 #define MC_CMD_MUM_OP_READ_DDR_INFO 0xd 8328 8329 /* MC_CMD_MUM_IN_NULL msgrequest */ 8330 #define MC_CMD_MUM_IN_NULL_LEN 4 8331 /* MUM cmd header */ 8332 #define MC_CMD_MUM_IN_CMD_OFST 0 8333 #define MC_CMD_MUM_IN_CMD_LEN 4 8334 8335 /* MC_CMD_MUM_IN_GET_VERSION msgrequest */ 8336 #define MC_CMD_MUM_IN_GET_VERSION_LEN 4 8337 /* MUM cmd header */ 8338 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8339 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8340 8341 /* MC_CMD_MUM_IN_READ msgrequest */ 8342 #define MC_CMD_MUM_IN_READ_LEN 16 8343 /* MUM cmd header */ 8344 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8345 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8346 /* ID of (device connected to MUM) to read from registers of */ 8347 #define MC_CMD_MUM_IN_READ_DEVICE_OFST 4 8348 #define MC_CMD_MUM_IN_READ_DEVICE_LEN 4 8349 /* enum: Hittite HMC1035 clock generator on Sorrento board */ 8350 #define MC_CMD_MUM_DEV_HITTITE 0x1 8351 /* enum: Hittite HMC1035 clock generator for NIC-side on Sorrento board */ 8352 #define MC_CMD_MUM_DEV_HITTITE_NIC 0x2 8353 /* 32-bit address to read from */ 8354 #define MC_CMD_MUM_IN_READ_ADDR_OFST 8 8355 #define MC_CMD_MUM_IN_READ_ADDR_LEN 4 8356 /* Number of words to read. */ 8357 #define MC_CMD_MUM_IN_READ_NUMWORDS_OFST 12 8358 #define MC_CMD_MUM_IN_READ_NUMWORDS_LEN 4 8359 8360 /* MC_CMD_MUM_IN_WRITE msgrequest */ 8361 #define MC_CMD_MUM_IN_WRITE_LENMIN 16 8362 #define MC_CMD_MUM_IN_WRITE_LENMAX 252 8363 #define MC_CMD_MUM_IN_WRITE_LENMAX_MCDI2 1020 8364 #define MC_CMD_MUM_IN_WRITE_LEN(num) (12+4*(num)) 8365 #define MC_CMD_MUM_IN_WRITE_BUFFER_NUM(len) (((len)-12)/4) 8366 /* MUM cmd header */ 8367 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8368 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8369 /* ID of (device connected to MUM) to write to registers of */ 8370 #define MC_CMD_MUM_IN_WRITE_DEVICE_OFST 4 8371 #define MC_CMD_MUM_IN_WRITE_DEVICE_LEN 4 8372 /* enum: Hittite HMC1035 clock generator on Sorrento board */ 8373 /* MC_CMD_MUM_DEV_HITTITE 0x1 */ 8374 /* 32-bit address to write to */ 8375 #define MC_CMD_MUM_IN_WRITE_ADDR_OFST 8 8376 #define MC_CMD_MUM_IN_WRITE_ADDR_LEN 4 8377 /* Words to write */ 8378 #define MC_CMD_MUM_IN_WRITE_BUFFER_OFST 12 8379 #define MC_CMD_MUM_IN_WRITE_BUFFER_LEN 4 8380 #define MC_CMD_MUM_IN_WRITE_BUFFER_MINNUM 1 8381 #define MC_CMD_MUM_IN_WRITE_BUFFER_MAXNUM 60 8382 #define MC_CMD_MUM_IN_WRITE_BUFFER_MAXNUM_MCDI2 252 8383 8384 /* MC_CMD_MUM_IN_RAW_CMD msgrequest */ 8385 #define MC_CMD_MUM_IN_RAW_CMD_LENMIN 17 8386 #define MC_CMD_MUM_IN_RAW_CMD_LENMAX 252 8387 #define MC_CMD_MUM_IN_RAW_CMD_LENMAX_MCDI2 1020 8388 #define MC_CMD_MUM_IN_RAW_CMD_LEN(num) (16+1*(num)) 8389 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_NUM(len) (((len)-16)/1) 8390 /* MUM cmd header */ 8391 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8392 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8393 /* MUM I2C cmd code */ 8394 #define MC_CMD_MUM_IN_RAW_CMD_CMD_CODE_OFST 4 8395 #define MC_CMD_MUM_IN_RAW_CMD_CMD_CODE_LEN 4 8396 /* Number of bytes to write */ 8397 #define MC_CMD_MUM_IN_RAW_CMD_NUM_WRITE_OFST 8 8398 #define MC_CMD_MUM_IN_RAW_CMD_NUM_WRITE_LEN 4 8399 /* Number of bytes to read */ 8400 #define MC_CMD_MUM_IN_RAW_CMD_NUM_READ_OFST 12 8401 #define MC_CMD_MUM_IN_RAW_CMD_NUM_READ_LEN 4 8402 /* Bytes to write */ 8403 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_OFST 16 8404 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_LEN 1 8405 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_MINNUM 1 8406 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_MAXNUM 236 8407 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_MAXNUM_MCDI2 1004 8408 8409 /* MC_CMD_MUM_IN_LOG msgrequest */ 8410 #define MC_CMD_MUM_IN_LOG_LEN 8 8411 /* MUM cmd header */ 8412 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8413 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8414 #define MC_CMD_MUM_IN_LOG_OP_OFST 4 8415 #define MC_CMD_MUM_IN_LOG_OP_LEN 4 8416 #define MC_CMD_MUM_IN_LOG_OP_UART 0x1 /* enum */ 8417 8418 /* MC_CMD_MUM_IN_LOG_OP_UART msgrequest */ 8419 #define MC_CMD_MUM_IN_LOG_OP_UART_LEN 12 8420 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8421 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8422 /* MC_CMD_MUM_IN_LOG_OP_OFST 4 */ 8423 /* MC_CMD_MUM_IN_LOG_OP_LEN 4 */ 8424 /* Enable/disable debug output to UART */ 8425 #define MC_CMD_MUM_IN_LOG_OP_UART_ENABLE_OFST 8 8426 #define MC_CMD_MUM_IN_LOG_OP_UART_ENABLE_LEN 4 8427 8428 /* MC_CMD_MUM_IN_GPIO msgrequest */ 8429 #define MC_CMD_MUM_IN_GPIO_LEN 8 8430 /* MUM cmd header */ 8431 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8432 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8433 #define MC_CMD_MUM_IN_GPIO_HDR_OFST 4 8434 #define MC_CMD_MUM_IN_GPIO_HDR_LEN 4 8435 #define MC_CMD_MUM_IN_GPIO_OPCODE_OFST 4 8436 #define MC_CMD_MUM_IN_GPIO_OPCODE_LBN 0 8437 #define MC_CMD_MUM_IN_GPIO_OPCODE_WIDTH 8 8438 #define MC_CMD_MUM_IN_GPIO_IN_READ 0x0 /* enum */ 8439 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE 0x1 /* enum */ 8440 #define MC_CMD_MUM_IN_GPIO_OUT_READ 0x2 /* enum */ 8441 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE 0x3 /* enum */ 8442 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_READ 0x4 /* enum */ 8443 #define MC_CMD_MUM_IN_GPIO_OP 0x5 /* enum */ 8444 8445 /* MC_CMD_MUM_IN_GPIO_IN_READ msgrequest */ 8446 #define MC_CMD_MUM_IN_GPIO_IN_READ_LEN 8 8447 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8448 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8449 #define MC_CMD_MUM_IN_GPIO_IN_READ_HDR_OFST 4 8450 #define MC_CMD_MUM_IN_GPIO_IN_READ_HDR_LEN 4 8451 8452 /* MC_CMD_MUM_IN_GPIO_OUT_WRITE msgrequest */ 8453 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_LEN 16 8454 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8455 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8456 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_HDR_OFST 4 8457 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_HDR_LEN 4 8458 /* The first 32-bit word to be written to the GPIO OUT register. */ 8459 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_GPIOMASK1_OFST 8 8460 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_GPIOMASK1_LEN 4 8461 /* The second 32-bit word to be written to the GPIO OUT register. */ 8462 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_GPIOMASK2_OFST 12 8463 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_GPIOMASK2_LEN 4 8464 8465 /* MC_CMD_MUM_IN_GPIO_OUT_READ msgrequest */ 8466 #define MC_CMD_MUM_IN_GPIO_OUT_READ_LEN 8 8467 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8468 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8469 #define MC_CMD_MUM_IN_GPIO_OUT_READ_HDR_OFST 4 8470 #define MC_CMD_MUM_IN_GPIO_OUT_READ_HDR_LEN 4 8471 8472 /* MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE msgrequest */ 8473 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_LEN 16 8474 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8475 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8476 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_HDR_OFST 4 8477 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_HDR_LEN 4 8478 /* The first 32-bit word to be written to the GPIO OUT ENABLE register. */ 8479 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_GPIOMASK1_OFST 8 8480 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_GPIOMASK1_LEN 4 8481 /* The second 32-bit word to be written to the GPIO OUT ENABLE register. */ 8482 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_GPIOMASK2_OFST 12 8483 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_GPIOMASK2_LEN 4 8484 8485 /* MC_CMD_MUM_IN_GPIO_OUT_ENABLE_READ msgrequest */ 8486 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_READ_LEN 8 8487 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8488 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8489 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_READ_HDR_OFST 4 8490 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_READ_HDR_LEN 4 8491 8492 /* MC_CMD_MUM_IN_GPIO_OP msgrequest */ 8493 #define MC_CMD_MUM_IN_GPIO_OP_LEN 8 8494 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8495 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8496 #define MC_CMD_MUM_IN_GPIO_OP_HDR_OFST 4 8497 #define MC_CMD_MUM_IN_GPIO_OP_HDR_LEN 4 8498 #define MC_CMD_MUM_IN_GPIO_OP_BITWISE_OP_OFST 4 8499 #define MC_CMD_MUM_IN_GPIO_OP_BITWISE_OP_LBN 8 8500 #define MC_CMD_MUM_IN_GPIO_OP_BITWISE_OP_WIDTH 8 8501 #define MC_CMD_MUM_IN_GPIO_OP_OUT_READ 0x0 /* enum */ 8502 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE 0x1 /* enum */ 8503 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG 0x2 /* enum */ 8504 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE 0x3 /* enum */ 8505 #define MC_CMD_MUM_IN_GPIO_OP_GPIO_NUMBER_OFST 4 8506 #define MC_CMD_MUM_IN_GPIO_OP_GPIO_NUMBER_LBN 16 8507 #define MC_CMD_MUM_IN_GPIO_OP_GPIO_NUMBER_WIDTH 8 8508 8509 /* MC_CMD_MUM_IN_GPIO_OP_OUT_READ msgrequest */ 8510 #define MC_CMD_MUM_IN_GPIO_OP_OUT_READ_LEN 8 8511 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8512 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8513 #define MC_CMD_MUM_IN_GPIO_OP_OUT_READ_HDR_OFST 4 8514 #define MC_CMD_MUM_IN_GPIO_OP_OUT_READ_HDR_LEN 4 8515 8516 /* MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE msgrequest */ 8517 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_LEN 8 8518 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8519 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8520 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_HDR_OFST 4 8521 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_HDR_LEN 4 8522 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_WRITEBIT_OFST 4 8523 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_WRITEBIT_LBN 24 8524 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_WRITEBIT_WIDTH 8 8525 8526 /* MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG msgrequest */ 8527 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_LEN 8 8528 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8529 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8530 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_HDR_OFST 4 8531 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_HDR_LEN 4 8532 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_CFG_OFST 4 8533 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_CFG_LBN 24 8534 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_CFG_WIDTH 8 8535 8536 /* MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE msgrequest */ 8537 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_LEN 8 8538 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8539 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8540 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_HDR_OFST 4 8541 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_HDR_LEN 4 8542 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_ENABLEBIT_OFST 4 8543 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_ENABLEBIT_LBN 24 8544 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_ENABLEBIT_WIDTH 8 8545 8546 /* MC_CMD_MUM_IN_READ_SENSORS msgrequest */ 8547 #define MC_CMD_MUM_IN_READ_SENSORS_LEN 8 8548 /* MUM cmd header */ 8549 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8550 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8551 #define MC_CMD_MUM_IN_READ_SENSORS_PARAMS_OFST 4 8552 #define MC_CMD_MUM_IN_READ_SENSORS_PARAMS_LEN 4 8553 #define MC_CMD_MUM_IN_READ_SENSORS_SENSOR_ID_OFST 4 8554 #define MC_CMD_MUM_IN_READ_SENSORS_SENSOR_ID_LBN 0 8555 #define MC_CMD_MUM_IN_READ_SENSORS_SENSOR_ID_WIDTH 8 8556 #define MC_CMD_MUM_IN_READ_SENSORS_NUM_SENSORS_OFST 4 8557 #define MC_CMD_MUM_IN_READ_SENSORS_NUM_SENSORS_LBN 8 8558 #define MC_CMD_MUM_IN_READ_SENSORS_NUM_SENSORS_WIDTH 8 8559 8560 /* MC_CMD_MUM_IN_PROGRAM_CLOCKS msgrequest */ 8561 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_LEN 12 8562 /* MUM cmd header */ 8563 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8564 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8565 /* Bit-mask of clocks to be programmed */ 8566 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_MASK_OFST 4 8567 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_MASK_LEN 4 8568 #define MC_CMD_MUM_CLOCK_ID_FPGA 0x0 /* enum */ 8569 #define MC_CMD_MUM_CLOCK_ID_DDR 0x1 /* enum */ 8570 #define MC_CMD_MUM_CLOCK_ID_NIC 0x2 /* enum */ 8571 /* Control flags for clock programming */ 8572 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_FLAGS_OFST 8 8573 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_FLAGS_LEN 4 8574 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_OVERCLOCK_110_OFST 8 8575 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_OVERCLOCK_110_LBN 0 8576 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_OVERCLOCK_110_WIDTH 1 8577 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_NIC_FROM_FPGA_OFST 8 8578 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_NIC_FROM_FPGA_LBN 1 8579 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_NIC_FROM_FPGA_WIDTH 1 8580 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_REF_FROM_XO_OFST 8 8581 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_REF_FROM_XO_LBN 2 8582 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_REF_FROM_XO_WIDTH 1 8583 8584 /* MC_CMD_MUM_IN_FPGA_LOAD msgrequest */ 8585 #define MC_CMD_MUM_IN_FPGA_LOAD_LEN 8 8586 /* MUM cmd header */ 8587 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8588 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8589 /* Enable/Disable FPGA config from flash */ 8590 #define MC_CMD_MUM_IN_FPGA_LOAD_ENABLE_OFST 4 8591 #define MC_CMD_MUM_IN_FPGA_LOAD_ENABLE_LEN 4 8592 8593 /* MC_CMD_MUM_IN_READ_ATB_SENSOR msgrequest */ 8594 #define MC_CMD_MUM_IN_READ_ATB_SENSOR_LEN 4 8595 /* MUM cmd header */ 8596 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8597 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8598 8599 /* MC_CMD_MUM_IN_QSFP msgrequest */ 8600 #define MC_CMD_MUM_IN_QSFP_LEN 12 8601 /* MUM cmd header */ 8602 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8603 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8604 #define MC_CMD_MUM_IN_QSFP_HDR_OFST 4 8605 #define MC_CMD_MUM_IN_QSFP_HDR_LEN 4 8606 #define MC_CMD_MUM_IN_QSFP_OPCODE_OFST 4 8607 #define MC_CMD_MUM_IN_QSFP_OPCODE_LBN 0 8608 #define MC_CMD_MUM_IN_QSFP_OPCODE_WIDTH 4 8609 #define MC_CMD_MUM_IN_QSFP_INIT 0x0 /* enum */ 8610 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE 0x1 /* enum */ 8611 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP 0x2 /* enum */ 8612 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO 0x3 /* enum */ 8613 #define MC_CMD_MUM_IN_QSFP_FILL_STATS 0x4 /* enum */ 8614 #define MC_CMD_MUM_IN_QSFP_POLL_BIST 0x5 /* enum */ 8615 #define MC_CMD_MUM_IN_QSFP_IDX_OFST 8 8616 #define MC_CMD_MUM_IN_QSFP_IDX_LEN 4 8617 8618 /* MC_CMD_MUM_IN_QSFP_INIT msgrequest */ 8619 #define MC_CMD_MUM_IN_QSFP_INIT_LEN 16 8620 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8621 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8622 #define MC_CMD_MUM_IN_QSFP_INIT_HDR_OFST 4 8623 #define MC_CMD_MUM_IN_QSFP_INIT_HDR_LEN 4 8624 #define MC_CMD_MUM_IN_QSFP_INIT_IDX_OFST 8 8625 #define MC_CMD_MUM_IN_QSFP_INIT_IDX_LEN 4 8626 #define MC_CMD_MUM_IN_QSFP_INIT_CAGE_OFST 12 8627 #define MC_CMD_MUM_IN_QSFP_INIT_CAGE_LEN 4 8628 8629 /* MC_CMD_MUM_IN_QSFP_RECONFIGURE msgrequest */ 8630 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_LEN 24 8631 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8632 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8633 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_HDR_OFST 4 8634 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_HDR_LEN 4 8635 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_IDX_OFST 8 8636 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_IDX_LEN 4 8637 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_TX_DISABLE_OFST 12 8638 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_TX_DISABLE_LEN 4 8639 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_PORT_LANES_OFST 16 8640 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_PORT_LANES_LEN 4 8641 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_PORT_LINK_SPEED_OFST 20 8642 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_PORT_LINK_SPEED_LEN 4 8643 8644 /* MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP msgrequest */ 8645 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP_LEN 12 8646 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8647 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8648 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP_HDR_OFST 4 8649 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP_HDR_LEN 4 8650 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP_IDX_OFST 8 8651 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP_IDX_LEN 4 8652 8653 /* MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO msgrequest */ 8654 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_LEN 16 8655 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8656 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8657 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_HDR_OFST 4 8658 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_HDR_LEN 4 8659 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_IDX_OFST 8 8660 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_IDX_LEN 4 8661 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_PAGE_OFST 12 8662 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_PAGE_LEN 4 8663 8664 /* MC_CMD_MUM_IN_QSFP_FILL_STATS msgrequest */ 8665 #define MC_CMD_MUM_IN_QSFP_FILL_STATS_LEN 12 8666 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8667 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8668 #define MC_CMD_MUM_IN_QSFP_FILL_STATS_HDR_OFST 4 8669 #define MC_CMD_MUM_IN_QSFP_FILL_STATS_HDR_LEN 4 8670 #define MC_CMD_MUM_IN_QSFP_FILL_STATS_IDX_OFST 8 8671 #define MC_CMD_MUM_IN_QSFP_FILL_STATS_IDX_LEN 4 8672 8673 /* MC_CMD_MUM_IN_QSFP_POLL_BIST msgrequest */ 8674 #define MC_CMD_MUM_IN_QSFP_POLL_BIST_LEN 12 8675 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8676 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8677 #define MC_CMD_MUM_IN_QSFP_POLL_BIST_HDR_OFST 4 8678 #define MC_CMD_MUM_IN_QSFP_POLL_BIST_HDR_LEN 4 8679 #define MC_CMD_MUM_IN_QSFP_POLL_BIST_IDX_OFST 8 8680 #define MC_CMD_MUM_IN_QSFP_POLL_BIST_IDX_LEN 4 8681 8682 /* MC_CMD_MUM_IN_READ_DDR_INFO msgrequest */ 8683 #define MC_CMD_MUM_IN_READ_DDR_INFO_LEN 4 8684 /* MUM cmd header */ 8685 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 8686 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 8687 8688 /* MC_CMD_MUM_OUT msgresponse */ 8689 #define MC_CMD_MUM_OUT_LEN 0 8690 8691 /* MC_CMD_MUM_OUT_NULL msgresponse */ 8692 #define MC_CMD_MUM_OUT_NULL_LEN 0 8693 8694 /* MC_CMD_MUM_OUT_GET_VERSION msgresponse */ 8695 #define MC_CMD_MUM_OUT_GET_VERSION_LEN 12 8696 #define MC_CMD_MUM_OUT_GET_VERSION_FIRMWARE_OFST 0 8697 #define MC_CMD_MUM_OUT_GET_VERSION_FIRMWARE_LEN 4 8698 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_OFST 4 8699 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LEN 8 8700 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LO_OFST 4 8701 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LO_LEN 4 8702 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LO_LBN 32 8703 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LO_WIDTH 32 8704 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_HI_OFST 8 8705 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_HI_LEN 4 8706 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_HI_LBN 64 8707 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_HI_WIDTH 32 8708 8709 /* MC_CMD_MUM_OUT_RAW_CMD msgresponse */ 8710 #define MC_CMD_MUM_OUT_RAW_CMD_LENMIN 1 8711 #define MC_CMD_MUM_OUT_RAW_CMD_LENMAX 252 8712 #define MC_CMD_MUM_OUT_RAW_CMD_LENMAX_MCDI2 1020 8713 #define MC_CMD_MUM_OUT_RAW_CMD_LEN(num) (0+1*(num)) 8714 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_NUM(len) (((len)-0)/1) 8715 /* returned data */ 8716 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_OFST 0 8717 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_LEN 1 8718 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_MINNUM 1 8719 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_MAXNUM 252 8720 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_MAXNUM_MCDI2 1020 8721 8722 /* MC_CMD_MUM_OUT_READ msgresponse */ 8723 #define MC_CMD_MUM_OUT_READ_LENMIN 4 8724 #define MC_CMD_MUM_OUT_READ_LENMAX 252 8725 #define MC_CMD_MUM_OUT_READ_LENMAX_MCDI2 1020 8726 #define MC_CMD_MUM_OUT_READ_LEN(num) (0+4*(num)) 8727 #define MC_CMD_MUM_OUT_READ_BUFFER_NUM(len) (((len)-0)/4) 8728 #define MC_CMD_MUM_OUT_READ_BUFFER_OFST 0 8729 #define MC_CMD_MUM_OUT_READ_BUFFER_LEN 4 8730 #define MC_CMD_MUM_OUT_READ_BUFFER_MINNUM 1 8731 #define MC_CMD_MUM_OUT_READ_BUFFER_MAXNUM 63 8732 #define MC_CMD_MUM_OUT_READ_BUFFER_MAXNUM_MCDI2 255 8733 8734 /* MC_CMD_MUM_OUT_WRITE msgresponse */ 8735 #define MC_CMD_MUM_OUT_WRITE_LEN 0 8736 8737 /* MC_CMD_MUM_OUT_LOG msgresponse */ 8738 #define MC_CMD_MUM_OUT_LOG_LEN 0 8739 8740 /* MC_CMD_MUM_OUT_LOG_OP_UART msgresponse */ 8741 #define MC_CMD_MUM_OUT_LOG_OP_UART_LEN 0 8742 8743 /* MC_CMD_MUM_OUT_GPIO_IN_READ msgresponse */ 8744 #define MC_CMD_MUM_OUT_GPIO_IN_READ_LEN 8 8745 /* The first 32-bit word read from the GPIO IN register. */ 8746 #define MC_CMD_MUM_OUT_GPIO_IN_READ_GPIOMASK1_OFST 0 8747 #define MC_CMD_MUM_OUT_GPIO_IN_READ_GPIOMASK1_LEN 4 8748 /* The second 32-bit word read from the GPIO IN register. */ 8749 #define MC_CMD_MUM_OUT_GPIO_IN_READ_GPIOMASK2_OFST 4 8750 #define MC_CMD_MUM_OUT_GPIO_IN_READ_GPIOMASK2_LEN 4 8751 8752 /* MC_CMD_MUM_OUT_GPIO_OUT_WRITE msgresponse */ 8753 #define MC_CMD_MUM_OUT_GPIO_OUT_WRITE_LEN 0 8754 8755 /* MC_CMD_MUM_OUT_GPIO_OUT_READ msgresponse */ 8756 #define MC_CMD_MUM_OUT_GPIO_OUT_READ_LEN 8 8757 /* The first 32-bit word read from the GPIO OUT register. */ 8758 #define MC_CMD_MUM_OUT_GPIO_OUT_READ_GPIOMASK1_OFST 0 8759 #define MC_CMD_MUM_OUT_GPIO_OUT_READ_GPIOMASK1_LEN 4 8760 /* The second 32-bit word read from the GPIO OUT register. */ 8761 #define MC_CMD_MUM_OUT_GPIO_OUT_READ_GPIOMASK2_OFST 4 8762 #define MC_CMD_MUM_OUT_GPIO_OUT_READ_GPIOMASK2_LEN 4 8763 8764 /* MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_WRITE msgresponse */ 8765 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_WRITE_LEN 0 8766 8767 /* MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ msgresponse */ 8768 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ_LEN 8 8769 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ_GPIOMASK1_OFST 0 8770 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ_GPIOMASK1_LEN 4 8771 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ_GPIOMASK2_OFST 4 8772 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ_GPIOMASK2_LEN 4 8773 8774 /* MC_CMD_MUM_OUT_GPIO_OP_OUT_READ msgresponse */ 8775 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_READ_LEN 4 8776 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_READ_BIT_READ_OFST 0 8777 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_READ_BIT_READ_LEN 4 8778 8779 /* MC_CMD_MUM_OUT_GPIO_OP_OUT_WRITE msgresponse */ 8780 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_WRITE_LEN 0 8781 8782 /* MC_CMD_MUM_OUT_GPIO_OP_OUT_CONFIG msgresponse */ 8783 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_CONFIG_LEN 0 8784 8785 /* MC_CMD_MUM_OUT_GPIO_OP_OUT_ENABLE msgresponse */ 8786 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_ENABLE_LEN 0 8787 8788 /* MC_CMD_MUM_OUT_READ_SENSORS msgresponse */ 8789 #define MC_CMD_MUM_OUT_READ_SENSORS_LENMIN 4 8790 #define MC_CMD_MUM_OUT_READ_SENSORS_LENMAX 252 8791 #define MC_CMD_MUM_OUT_READ_SENSORS_LENMAX_MCDI2 1020 8792 #define MC_CMD_MUM_OUT_READ_SENSORS_LEN(num) (0+4*(num)) 8793 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_NUM(len) (((len)-0)/4) 8794 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_OFST 0 8795 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_LEN 4 8796 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_MINNUM 1 8797 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_MAXNUM 63 8798 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_MAXNUM_MCDI2 255 8799 #define MC_CMD_MUM_OUT_READ_SENSORS_READING_OFST 0 8800 #define MC_CMD_MUM_OUT_READ_SENSORS_READING_LBN 0 8801 #define MC_CMD_MUM_OUT_READ_SENSORS_READING_WIDTH 16 8802 #define MC_CMD_MUM_OUT_READ_SENSORS_STATE_OFST 0 8803 #define MC_CMD_MUM_OUT_READ_SENSORS_STATE_LBN 16 8804 #define MC_CMD_MUM_OUT_READ_SENSORS_STATE_WIDTH 8 8805 #define MC_CMD_MUM_OUT_READ_SENSORS_TYPE_OFST 0 8806 #define MC_CMD_MUM_OUT_READ_SENSORS_TYPE_LBN 24 8807 #define MC_CMD_MUM_OUT_READ_SENSORS_TYPE_WIDTH 8 8808 8809 /* MC_CMD_MUM_OUT_PROGRAM_CLOCKS msgresponse */ 8810 #define MC_CMD_MUM_OUT_PROGRAM_CLOCKS_LEN 4 8811 #define MC_CMD_MUM_OUT_PROGRAM_CLOCKS_OK_MASK_OFST 0 8812 #define MC_CMD_MUM_OUT_PROGRAM_CLOCKS_OK_MASK_LEN 4 8813 8814 /* MC_CMD_MUM_OUT_FPGA_LOAD msgresponse */ 8815 #define MC_CMD_MUM_OUT_FPGA_LOAD_LEN 0 8816 8817 /* MC_CMD_MUM_OUT_READ_ATB_SENSOR msgresponse */ 8818 #define MC_CMD_MUM_OUT_READ_ATB_SENSOR_LEN 4 8819 #define MC_CMD_MUM_OUT_READ_ATB_SENSOR_RESULT_OFST 0 8820 #define MC_CMD_MUM_OUT_READ_ATB_SENSOR_RESULT_LEN 4 8821 8822 /* MC_CMD_MUM_OUT_QSFP_INIT msgresponse */ 8823 #define MC_CMD_MUM_OUT_QSFP_INIT_LEN 0 8824 8825 /* MC_CMD_MUM_OUT_QSFP_RECONFIGURE msgresponse */ 8826 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_LEN 8 8827 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_LP_CAP_OFST 0 8828 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_LP_CAP_LEN 4 8829 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_FLAGS_OFST 4 8830 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_FLAGS_LEN 4 8831 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_READY_OFST 4 8832 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_READY_LBN 0 8833 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_READY_WIDTH 1 8834 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_LINK_UP_OFST 4 8835 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_LINK_UP_LBN 1 8836 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_LINK_UP_WIDTH 1 8837 8838 /* MC_CMD_MUM_OUT_QSFP_GET_SUPPORTED_CAP msgresponse */ 8839 #define MC_CMD_MUM_OUT_QSFP_GET_SUPPORTED_CAP_LEN 4 8840 #define MC_CMD_MUM_OUT_QSFP_GET_SUPPORTED_CAP_PORT_PHY_LP_CAP_OFST 0 8841 #define MC_CMD_MUM_OUT_QSFP_GET_SUPPORTED_CAP_PORT_PHY_LP_CAP_LEN 4 8842 8843 /* MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO msgresponse */ 8844 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_LENMIN 5 8845 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_LENMAX 252 8846 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_LENMAX_MCDI2 1020 8847 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_LEN(num) (4+1*(num)) 8848 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_NUM(len) (((len)-4)/1) 8849 /* in bytes */ 8850 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATALEN_OFST 0 8851 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATALEN_LEN 4 8852 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_OFST 4 8853 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_LEN 1 8854 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_MINNUM 1 8855 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_MAXNUM 248 8856 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_MAXNUM_MCDI2 1016 8857 8858 /* MC_CMD_MUM_OUT_QSFP_FILL_STATS msgresponse */ 8859 #define MC_CMD_MUM_OUT_QSFP_FILL_STATS_LEN 8 8860 #define MC_CMD_MUM_OUT_QSFP_FILL_STATS_PORT_PHY_STATS_PMA_PMD_LINK_UP_OFST 0 8861 #define MC_CMD_MUM_OUT_QSFP_FILL_STATS_PORT_PHY_STATS_PMA_PMD_LINK_UP_LEN 4 8862 #define MC_CMD_MUM_OUT_QSFP_FILL_STATS_PORT_PHY_STATS_PCS_LINK_UP_OFST 4 8863 #define MC_CMD_MUM_OUT_QSFP_FILL_STATS_PORT_PHY_STATS_PCS_LINK_UP_LEN 4 8864 8865 /* MC_CMD_MUM_OUT_QSFP_POLL_BIST msgresponse */ 8866 #define MC_CMD_MUM_OUT_QSFP_POLL_BIST_LEN 4 8867 #define MC_CMD_MUM_OUT_QSFP_POLL_BIST_TEST_OFST 0 8868 #define MC_CMD_MUM_OUT_QSFP_POLL_BIST_TEST_LEN 4 8869 8870 /* MC_CMD_MUM_OUT_READ_DDR_INFO msgresponse */ 8871 #define MC_CMD_MUM_OUT_READ_DDR_INFO_LENMIN 24 8872 #define MC_CMD_MUM_OUT_READ_DDR_INFO_LENMAX 248 8873 #define MC_CMD_MUM_OUT_READ_DDR_INFO_LENMAX_MCDI2 1016 8874 #define MC_CMD_MUM_OUT_READ_DDR_INFO_LEN(num) (8+8*(num)) 8875 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_NUM(len) (((len)-8)/8) 8876 /* Discrete (soldered) DDR resistor strap info */ 8877 #define MC_CMD_MUM_OUT_READ_DDR_INFO_DISCRETE_DDR_INFO_OFST 0 8878 #define MC_CMD_MUM_OUT_READ_DDR_INFO_DISCRETE_DDR_INFO_LEN 4 8879 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VRATIO_OFST 0 8880 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VRATIO_LBN 0 8881 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VRATIO_WIDTH 16 8882 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED1_OFST 0 8883 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED1_LBN 16 8884 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED1_WIDTH 16 8885 /* Number of SODIMM info records */ 8886 #define MC_CMD_MUM_OUT_READ_DDR_INFO_NUM_RECORDS_OFST 4 8887 #define MC_CMD_MUM_OUT_READ_DDR_INFO_NUM_RECORDS_LEN 4 8888 /* Array of SODIMM info records */ 8889 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_OFST 8 8890 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LEN 8 8891 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LO_OFST 8 8892 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LO_LEN 4 8893 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LO_LBN 64 8894 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LO_WIDTH 32 8895 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_HI_OFST 12 8896 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_HI_LEN 4 8897 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_HI_LBN 96 8898 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_HI_WIDTH 32 8899 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_MINNUM 2 8900 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_MAXNUM 30 8901 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_MAXNUM_MCDI2 126 8902 #define MC_CMD_MUM_OUT_READ_DDR_INFO_BANK_ID_OFST 8 8903 #define MC_CMD_MUM_OUT_READ_DDR_INFO_BANK_ID_LBN 0 8904 #define MC_CMD_MUM_OUT_READ_DDR_INFO_BANK_ID_WIDTH 8 8905 /* enum: SODIMM bank 1 (Top SODIMM for Sorrento) */ 8906 #define MC_CMD_MUM_OUT_READ_DDR_INFO_BANK1 0x0 8907 /* enum: SODIMM bank 2 (Bottom SODDIMM for Sorrento) */ 8908 #define MC_CMD_MUM_OUT_READ_DDR_INFO_BANK2 0x1 8909 /* enum: Total number of SODIMM banks */ 8910 #define MC_CMD_MUM_OUT_READ_DDR_INFO_NUM_BANKS 0x2 8911 #define MC_CMD_MUM_OUT_READ_DDR_INFO_TYPE_OFST 8 8912 #define MC_CMD_MUM_OUT_READ_DDR_INFO_TYPE_LBN 8 8913 #define MC_CMD_MUM_OUT_READ_DDR_INFO_TYPE_WIDTH 8 8914 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RANK_OFST 8 8915 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RANK_LBN 16 8916 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RANK_WIDTH 4 8917 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VOLTAGE_OFST 8 8918 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VOLTAGE_LBN 20 8919 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VOLTAGE_WIDTH 4 8920 #define MC_CMD_MUM_OUT_READ_DDR_INFO_NOT_POWERED 0x0 /* enum */ 8921 #define MC_CMD_MUM_OUT_READ_DDR_INFO_1V25 0x1 /* enum */ 8922 #define MC_CMD_MUM_OUT_READ_DDR_INFO_1V35 0x2 /* enum */ 8923 #define MC_CMD_MUM_OUT_READ_DDR_INFO_1V5 0x3 /* enum */ 8924 /* enum: Values 5-15 are reserved for future usage */ 8925 #define MC_CMD_MUM_OUT_READ_DDR_INFO_1V8 0x4 8926 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SIZE_OFST 8 8927 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SIZE_LBN 24 8928 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SIZE_WIDTH 8 8929 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SPEED_OFST 8 8930 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SPEED_LBN 32 8931 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SPEED_WIDTH 16 8932 #define MC_CMD_MUM_OUT_READ_DDR_INFO_STATE_OFST 8 8933 #define MC_CMD_MUM_OUT_READ_DDR_INFO_STATE_LBN 48 8934 #define MC_CMD_MUM_OUT_READ_DDR_INFO_STATE_WIDTH 4 8935 /* enum: No module present */ 8936 #define MC_CMD_MUM_OUT_READ_DDR_INFO_ABSENT 0x0 8937 /* enum: Module present supported and powered on */ 8938 #define MC_CMD_MUM_OUT_READ_DDR_INFO_PRESENT_POWERED 0x1 8939 /* enum: Module present but bad type */ 8940 #define MC_CMD_MUM_OUT_READ_DDR_INFO_PRESENT_BAD_TYPE 0x2 8941 /* enum: Module present but incompatible voltage */ 8942 #define MC_CMD_MUM_OUT_READ_DDR_INFO_PRESENT_BAD_VOLTAGE 0x3 8943 /* enum: Module present but unknown SPD */ 8944 #define MC_CMD_MUM_OUT_READ_DDR_INFO_PRESENT_BAD_SPD 0x4 8945 /* enum: Module present but slot cannot support it */ 8946 #define MC_CMD_MUM_OUT_READ_DDR_INFO_PRESENT_BAD_SLOT 0x5 8947 /* enum: Modules may or may not be present, but cannot establish contact by I2C 8948 */ 8949 #define MC_CMD_MUM_OUT_READ_DDR_INFO_NOT_REACHABLE 0x6 8950 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED2_OFST 8 8951 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED2_LBN 52 8952 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED2_WIDTH 12 8953 8954 /* MC_CMD_DYNAMIC_SENSORS_LIMITS structuredef: Set of sensor limits. This 8955 * should match the equivalent structure in the sensor_query SPHINX service. 8956 */ 8957 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LEN 24 8958 /* A value below this will trigger a warning event. */ 8959 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_OFST 0 8960 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_LEN 4 8961 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_LBN 0 8962 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_WIDTH 32 8963 /* A value below this will trigger a critical event. */ 8964 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_OFST 4 8965 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_LEN 4 8966 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_LBN 32 8967 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_WIDTH 32 8968 /* A value below this will shut down the card. */ 8969 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_OFST 8 8970 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_LEN 4 8971 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_LBN 64 8972 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_WIDTH 32 8973 /* A value above this will trigger a warning event. */ 8974 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_OFST 12 8975 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_LEN 4 8976 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_LBN 96 8977 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_WIDTH 32 8978 /* A value above this will trigger a critical event. */ 8979 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_OFST 16 8980 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_LEN 4 8981 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_LBN 128 8982 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_WIDTH 32 8983 /* A value above this will shut down the card. */ 8984 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_OFST 20 8985 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_LEN 4 8986 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_LBN 160 8987 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_WIDTH 32 8988 8989 /* MC_CMD_DYNAMIC_SENSORS_DESCRIPTION structuredef: Description of a sensor. 8990 * This should match the equivalent structure in the sensor_query SPHINX 8991 * service. 8992 */ 8993 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LEN 64 8994 /* The handle used to identify the sensor in calls to 8995 * MC_CMD_DYNAMIC_SENSORS_GET_VALUES 8996 */ 8997 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_OFST 0 8998 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_LEN 4 8999 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_LBN 0 9000 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_WIDTH 32 9001 /* A human-readable name for the sensor (zero terminated string, max 32 bytes) 9002 */ 9003 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_OFST 4 9004 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_LEN 32 9005 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_LBN 32 9006 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_WIDTH 256 9007 /* The type of the sensor device, and by implication the unit of that the 9008 * values will be reported in 9009 */ 9010 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_OFST 36 9011 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_LEN 4 9012 /* enum: A voltage sensor. Unit is mV */ 9013 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_VOLTAGE 0x0 9014 /* enum: A current sensor. Unit is mA */ 9015 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_CURRENT 0x1 9016 /* enum: A power sensor. Unit is mW */ 9017 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_POWER 0x2 9018 /* enum: A temperature sensor. Unit is Celsius */ 9019 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TEMPERATURE 0x3 9020 /* enum: A cooling fan sensor. Unit is RPM */ 9021 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_FAN 0x4 9022 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_LBN 288 9023 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_WIDTH 32 9024 /* A single MC_CMD_DYNAMIC_SENSORS_LIMITS structure */ 9025 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LIMITS_OFST 40 9026 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LIMITS_LEN 24 9027 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LIMITS_LBN 320 9028 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LIMITS_WIDTH 192 9029 9030 /* MC_CMD_DYNAMIC_SENSORS_READING structuredef: State and value of a sensor. 9031 * This should match the equivalent structure in the sensor_query SPHINX 9032 * service. 9033 */ 9034 #define MC_CMD_DYNAMIC_SENSORS_READING_LEN 12 9035 /* The handle used to identify the sensor */ 9036 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_OFST 0 9037 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_LEN 4 9038 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_LBN 0 9039 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_WIDTH 32 9040 /* The current value of the sensor */ 9041 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_OFST 4 9042 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_LEN 4 9043 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_LBN 32 9044 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_WIDTH 32 9045 /* The sensor's condition, e.g. good, broken or removed */ 9046 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_OFST 8 9047 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_LEN 4 9048 /* enum: Sensor working normally within limits */ 9049 #define MC_CMD_DYNAMIC_SENSORS_READING_OK 0x0 9050 /* enum: Warning threshold breached */ 9051 #define MC_CMD_DYNAMIC_SENSORS_READING_WARNING 0x1 9052 /* enum: Critical threshold breached */ 9053 #define MC_CMD_DYNAMIC_SENSORS_READING_CRITICAL 0x2 9054 /* enum: Fatal threshold breached */ 9055 #define MC_CMD_DYNAMIC_SENSORS_READING_FATAL 0x3 9056 /* enum: Sensor not working */ 9057 #define MC_CMD_DYNAMIC_SENSORS_READING_BROKEN 0x4 9058 /* enum: Sensor working but no reading available */ 9059 #define MC_CMD_DYNAMIC_SENSORS_READING_NO_READING 0x5 9060 /* enum: Sensor initialization failed */ 9061 #define MC_CMD_DYNAMIC_SENSORS_READING_INIT_FAILED 0x6 9062 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_LBN 64 9063 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_WIDTH 32 9064 9065 9066 /***********************************/ 9067 /* MC_CMD_DYNAMIC_SENSORS_LIST 9068 * Return a complete list of handles for sensors currently managed by the MC, 9069 * and a generation count for this version of the sensor table. On systems 9070 * advertising the DYNAMIC_SENSORS capability bit, this replaces the 9071 * MC_CMD_READ_SENSORS command. On multi-MC systems this may include sensors 9072 * added by the NMC. 9073 * 9074 * Sensor handles are persistent for the lifetime of the sensor and are used to 9075 * identify sensors in MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS and 9076 * MC_CMD_DYNAMIC_SENSORS_GET_VALUES. 9077 * 9078 * The generation count is maintained by the MC, is persistent across reboots 9079 * and will be incremented each time the sensor table is modified. When the 9080 * table is modified, a CODE_DYNAMIC_SENSORS_CHANGE event will be generated 9081 * containing the new generation count. The driver should compare this against 9082 * the current generation count, and if it is different, call 9083 * MC_CMD_DYNAMIC_SENSORS_LIST again to update it's copy of the sensor table. 9084 * 9085 * The sensor count is provided to allow a future path to supporting more than 9086 * MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_MAXNUM_MCDI2 sensors, i.e. 9087 * the maximum number that will fit in a single response. As this is a fairly 9088 * large number (253) it is not anticipated that this will be needed in the 9089 * near future, so can currently be ignored. 9090 * 9091 * On Riverhead this command is implemented as a a wrapper for `list` in the 9092 * sensor_query SPHINX service. 9093 */ 9094 #define MC_CMD_DYNAMIC_SENSORS_LIST 0x66 9095 #define MC_CMD_DYNAMIC_SENSORS_LIST_MSGSET 0x66 9096 #undef MC_CMD_0x66_PRIVILEGE_CTG 9097 9098 #define MC_CMD_0x66_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9099 9100 /* MC_CMD_DYNAMIC_SENSORS_LIST_IN msgrequest */ 9101 #define MC_CMD_DYNAMIC_SENSORS_LIST_IN_LEN 0 9102 9103 /* MC_CMD_DYNAMIC_SENSORS_LIST_OUT msgresponse */ 9104 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LENMIN 8 9105 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LENMAX 252 9106 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LENMAX_MCDI2 1020 9107 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LEN(num) (8+4*(num)) 9108 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_NUM(len) (((len)-8)/4) 9109 /* Generation count, which will be updated each time a sensor is added to or 9110 * removed from the MC sensor table. 9111 */ 9112 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_GENERATION_OFST 0 9113 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_GENERATION_LEN 4 9114 /* Number of sensors managed by the MC. Note that in principle, this can be 9115 * larger than the size of the HANDLES array. 9116 */ 9117 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_COUNT_OFST 4 9118 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_COUNT_LEN 4 9119 /* Array of sensor handles */ 9120 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_OFST 8 9121 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_LEN 4 9122 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_MINNUM 0 9123 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_MAXNUM 61 9124 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_MAXNUM_MCDI2 253 9125 9126 9127 /***********************************/ 9128 /* MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS 9129 * Get descriptions for a set of sensors, specified as an array of sensor 9130 * handles as returned by MC_CMD_DYNAMIC_SENSORS_LIST 9131 * 9132 * Any handles which do not correspond to a sensor currently managed by the MC 9133 * will be dropped from from the response. This may happen when a sensor table 9134 * update is in progress, and effectively means the set of usable sensors is 9135 * the intersection between the sets of sensors known to the driver and the MC. 9136 * 9137 * On Riverhead this command is implemented as a a wrapper for 9138 * `get_descriptions` in the sensor_query SPHINX service. 9139 */ 9140 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS 0x67 9141 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_MSGSET 0x67 9142 #undef MC_CMD_0x67_PRIVILEGE_CTG 9143 9144 #define MC_CMD_0x67_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9145 9146 /* MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN msgrequest */ 9147 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LENMIN 0 9148 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LENMAX 252 9149 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LENMAX_MCDI2 1020 9150 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LEN(num) (0+4*(num)) 9151 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_NUM(len) (((len)-0)/4) 9152 /* Array of sensor handles */ 9153 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_OFST 0 9154 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_LEN 4 9155 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_MINNUM 0 9156 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_MAXNUM 63 9157 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_MAXNUM_MCDI2 255 9158 9159 /* MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT msgresponse */ 9160 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_LENMIN 0 9161 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_LENMAX 192 9162 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_LENMAX_MCDI2 960 9163 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_LEN(num) (0+64*(num)) 9164 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_NUM(len) (((len)-0)/64) 9165 /* Array of MC_CMD_DYNAMIC_SENSORS_DESCRIPTION structures */ 9166 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_OFST 0 9167 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_LEN 64 9168 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_MINNUM 0 9169 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_MAXNUM 3 9170 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_MAXNUM_MCDI2 15 9171 9172 9173 /***********************************/ 9174 /* MC_CMD_DYNAMIC_SENSORS_GET_READINGS 9175 * Read the state and value for a set of sensors, specified as an array of 9176 * sensor handles as returned by MC_CMD_DYNAMIC_SENSORS_LIST. 9177 * 9178 * In the case of a broken sensor, then the state of the response's 9179 * MC_CMD_DYNAMIC_SENSORS_VALUE entry will be set to BROKEN, and any value 9180 * provided should be treated as erroneous. 9181 * 9182 * Any handles which do not correspond to a sensor currently managed by the MC 9183 * will be dropped from from the response. This may happen when a sensor table 9184 * update is in progress, and effectively means the set of usable sensors is 9185 * the intersection between the sets of sensors known to the driver and the MC. 9186 * 9187 * On Riverhead this command is implemented as a a wrapper for `get_readings` 9188 * in the sensor_query SPHINX service. 9189 */ 9190 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS 0x68 9191 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_MSGSET 0x68 9192 #undef MC_CMD_0x68_PRIVILEGE_CTG 9193 9194 #define MC_CMD_0x68_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9195 9196 /* MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN msgrequest */ 9197 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LENMIN 0 9198 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LENMAX 252 9199 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LENMAX_MCDI2 1020 9200 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LEN(num) (0+4*(num)) 9201 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_NUM(len) (((len)-0)/4) 9202 /* Array of sensor handles */ 9203 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_OFST 0 9204 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_LEN 4 9205 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_MINNUM 0 9206 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_MAXNUM 63 9207 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_MAXNUM_MCDI2 255 9208 9209 /* MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT msgresponse */ 9210 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_LENMIN 0 9211 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_LENMAX 252 9212 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_LENMAX_MCDI2 1020 9213 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_LEN(num) (0+12*(num)) 9214 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_NUM(len) (((len)-0)/12) 9215 /* Array of MC_CMD_DYNAMIC_SENSORS_READING structures */ 9216 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_OFST 0 9217 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_LEN 12 9218 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_MINNUM 0 9219 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_MAXNUM 21 9220 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_MAXNUM_MCDI2 85 9221 9222 9223 /***********************************/ 9224 /* MC_CMD_EVENT_CTRL 9225 * Configure which categories of unsolicited events the driver expects to 9226 * receive (Riverhead). 9227 */ 9228 #define MC_CMD_EVENT_CTRL 0x69 9229 #define MC_CMD_EVENT_CTRL_MSGSET 0x69 9230 #undef MC_CMD_0x69_PRIVILEGE_CTG 9231 9232 #define MC_CMD_0x69_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9233 9234 /* MC_CMD_EVENT_CTRL_IN msgrequest */ 9235 #define MC_CMD_EVENT_CTRL_IN_LENMIN 0 9236 #define MC_CMD_EVENT_CTRL_IN_LENMAX 252 9237 #define MC_CMD_EVENT_CTRL_IN_LENMAX_MCDI2 1020 9238 #define MC_CMD_EVENT_CTRL_IN_LEN(num) (0+4*(num)) 9239 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_NUM(len) (((len)-0)/4) 9240 /* Array of event categories for which the driver wishes to receive events. */ 9241 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_OFST 0 9242 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_LEN 4 9243 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_MINNUM 0 9244 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_MAXNUM 63 9245 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_MAXNUM_MCDI2 255 9246 /* enum: Driver wishes to receive LINKCHANGE events. */ 9247 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_LINKCHANGE 0x0 9248 /* enum: Driver wishes to receive SENSOR_CHANGE and SENSOR_STATE_CHANGE events. 9249 */ 9250 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_SENSOREVT 0x1 9251 /* enum: Driver wishes to receive receive errors. */ 9252 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_RX_ERR 0x2 9253 /* enum: Driver wishes to receive transmit errors. */ 9254 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_TX_ERR 0x3 9255 /* enum: Driver wishes to receive firmware alerts. */ 9256 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_FWALERT 0x4 9257 /* enum: Driver wishes to receive reboot events. */ 9258 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_MC_REBOOT 0x5 9259 9260 /* MC_CMD_EVENT_CTRL_OUT msgrequest */ 9261 #define MC_CMD_EVENT_CTRL_OUT_LEN 0 9262 9263 /* EVB_PORT_ID structuredef */ 9264 #define EVB_PORT_ID_LEN 4 9265 #define EVB_PORT_ID_PORT_ID_OFST 0 9266 #define EVB_PORT_ID_PORT_ID_LEN 4 9267 /* enum: An invalid port handle. */ 9268 #define EVB_PORT_ID_NULL 0x0 9269 /* enum: The port assigned to this function.. */ 9270 #define EVB_PORT_ID_ASSIGNED 0x1000000 9271 /* enum: External network port 0 */ 9272 #define EVB_PORT_ID_MAC0 0x2000000 9273 /* enum: External network port 1 */ 9274 #define EVB_PORT_ID_MAC1 0x2000001 9275 /* enum: External network port 2 */ 9276 #define EVB_PORT_ID_MAC2 0x2000002 9277 /* enum: External network port 3 */ 9278 #define EVB_PORT_ID_MAC3 0x2000003 9279 #define EVB_PORT_ID_PORT_ID_LBN 0 9280 #define EVB_PORT_ID_PORT_ID_WIDTH 32 9281 9282 /* EVB_VLAN_TAG structuredef */ 9283 #define EVB_VLAN_TAG_LEN 2 9284 /* The VLAN tag value */ 9285 #define EVB_VLAN_TAG_VLAN_ID_LBN 0 9286 #define EVB_VLAN_TAG_VLAN_ID_WIDTH 12 9287 #define EVB_VLAN_TAG_MODE_LBN 12 9288 #define EVB_VLAN_TAG_MODE_WIDTH 4 9289 /* enum: Insert the VLAN. */ 9290 #define EVB_VLAN_TAG_INSERT 0x0 9291 /* enum: Replace the VLAN if already present. */ 9292 #define EVB_VLAN_TAG_REPLACE 0x1 9293 9294 /* BUFTBL_ENTRY structuredef */ 9295 #define BUFTBL_ENTRY_LEN 12 9296 /* the owner ID */ 9297 #define BUFTBL_ENTRY_OID_OFST 0 9298 #define BUFTBL_ENTRY_OID_LEN 2 9299 #define BUFTBL_ENTRY_OID_LBN 0 9300 #define BUFTBL_ENTRY_OID_WIDTH 16 9301 /* the page parameter as one of ESE_DZ_SMC_PAGE_SIZE_ */ 9302 #define BUFTBL_ENTRY_PGSZ_OFST 2 9303 #define BUFTBL_ENTRY_PGSZ_LEN 2 9304 #define BUFTBL_ENTRY_PGSZ_LBN 16 9305 #define BUFTBL_ENTRY_PGSZ_WIDTH 16 9306 /* the raw 64-bit address field from the SMC, not adjusted for page size */ 9307 #define BUFTBL_ENTRY_RAWADDR_OFST 4 9308 #define BUFTBL_ENTRY_RAWADDR_LEN 8 9309 #define BUFTBL_ENTRY_RAWADDR_LO_OFST 4 9310 #define BUFTBL_ENTRY_RAWADDR_LO_LEN 4 9311 #define BUFTBL_ENTRY_RAWADDR_LO_LBN 32 9312 #define BUFTBL_ENTRY_RAWADDR_LO_WIDTH 32 9313 #define BUFTBL_ENTRY_RAWADDR_HI_OFST 8 9314 #define BUFTBL_ENTRY_RAWADDR_HI_LEN 4 9315 #define BUFTBL_ENTRY_RAWADDR_HI_LBN 64 9316 #define BUFTBL_ENTRY_RAWADDR_HI_WIDTH 32 9317 #define BUFTBL_ENTRY_RAWADDR_LBN 32 9318 #define BUFTBL_ENTRY_RAWADDR_WIDTH 64 9319 9320 /* NVRAM_PARTITION_TYPE structuredef */ 9321 #define NVRAM_PARTITION_TYPE_LEN 2 9322 #define NVRAM_PARTITION_TYPE_ID_OFST 0 9323 #define NVRAM_PARTITION_TYPE_ID_LEN 2 9324 /* enum: Primary MC firmware partition */ 9325 #define NVRAM_PARTITION_TYPE_MC_FIRMWARE 0x100 9326 /* enum: NMC firmware partition (this is intentionally an alias of MC_FIRMWARE) 9327 */ 9328 #define NVRAM_PARTITION_TYPE_NMC_FIRMWARE 0x100 9329 /* enum: Secondary MC firmware partition */ 9330 #define NVRAM_PARTITION_TYPE_MC_FIRMWARE_BACKUP 0x200 9331 /* enum: Expansion ROM partition */ 9332 #define NVRAM_PARTITION_TYPE_EXPANSION_ROM 0x300 9333 /* enum: Static configuration TLV partition */ 9334 #define NVRAM_PARTITION_TYPE_STATIC_CONFIG 0x400 9335 /* enum: Factory configuration TLV partition (this is intentionally an alias of 9336 * STATIC_CONFIG) 9337 */ 9338 #define NVRAM_PARTITION_TYPE_FACTORY_CONFIG 0x400 9339 /* enum: Dynamic configuration TLV partition */ 9340 #define NVRAM_PARTITION_TYPE_DYNAMIC_CONFIG 0x500 9341 /* enum: User configuration TLV partition (this is intentionally an alias of 9342 * DYNAMIC_CONFIG) 9343 */ 9344 #define NVRAM_PARTITION_TYPE_USER_CONFIG 0x500 9345 /* enum: Expansion ROM configuration data for port 0 */ 9346 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT0 0x600 9347 /* enum: Synonym for EXPROM_CONFIG_PORT0 as used in pmap files */ 9348 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG 0x600 9349 /* enum: Expansion ROM configuration data for port 1 */ 9350 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT1 0x601 9351 /* enum: Expansion ROM configuration data for port 2 */ 9352 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT2 0x602 9353 /* enum: Expansion ROM configuration data for port 3 */ 9354 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT3 0x603 9355 /* enum: Non-volatile log output partition */ 9356 #define NVRAM_PARTITION_TYPE_LOG 0x700 9357 /* enum: Non-volatile log output partition for NMC firmware (this is 9358 * intentionally an alias of LOG) 9359 */ 9360 #define NVRAM_PARTITION_TYPE_NMC_LOG 0x700 9361 /* enum: Non-volatile log output of second core on dual-core device */ 9362 #define NVRAM_PARTITION_TYPE_LOG_SLAVE 0x701 9363 /* enum: Device state dump output partition */ 9364 #define NVRAM_PARTITION_TYPE_DUMP 0x800 9365 /* enum: Crash log partition for NMC firmware */ 9366 #define NVRAM_PARTITION_TYPE_NMC_CRASH_LOG 0x801 9367 /* enum: Application license key storage partition */ 9368 #define NVRAM_PARTITION_TYPE_LICENSE 0x900 9369 /* enum: Start of range used for PHY partitions (low 8 bits are the PHY ID) */ 9370 #define NVRAM_PARTITION_TYPE_PHY_MIN 0xa00 9371 /* enum: End of range used for PHY partitions (low 8 bits are the PHY ID) */ 9372 #define NVRAM_PARTITION_TYPE_PHY_MAX 0xaff 9373 /* enum: Primary FPGA partition */ 9374 #define NVRAM_PARTITION_TYPE_FPGA 0xb00 9375 /* enum: Secondary FPGA partition */ 9376 #define NVRAM_PARTITION_TYPE_FPGA_BACKUP 0xb01 9377 /* enum: FC firmware partition */ 9378 #define NVRAM_PARTITION_TYPE_FC_FIRMWARE 0xb02 9379 /* enum: FC License partition */ 9380 #define NVRAM_PARTITION_TYPE_FC_LICENSE 0xb03 9381 /* enum: Non-volatile log output partition for FC */ 9382 #define NVRAM_PARTITION_TYPE_FC_LOG 0xb04 9383 /* enum: FPGA Stage 1 bitstream */ 9384 #define NVRAM_PARTITION_TYPE_FPGA_STAGE1 0xb05 9385 /* enum: FPGA Stage 2 bitstream */ 9386 #define NVRAM_PARTITION_TYPE_FPGA_STAGE2 0xb06 9387 /* enum: FPGA User XCLBIN / Programmable Region 0 bitstream */ 9388 #define NVRAM_PARTITION_TYPE_FPGA_REGION0 0xb07 9389 /* enum: FPGA User XCLBIN (this is intentionally an alias of FPGA_REGION0) */ 9390 #define NVRAM_PARTITION_TYPE_FPGA_XCLBIN_USER 0xb07 9391 /* enum: FPGA jump instruction (a.k.a. boot) partition to select Stage1 9392 * bitstream 9393 */ 9394 #define NVRAM_PARTITION_TYPE_FPGA_JUMP 0xb08 9395 /* enum: FPGA Validate XCLBIN */ 9396 #define NVRAM_PARTITION_TYPE_FPGA_XCLBIN_VALIDATE 0xb09 9397 /* enum: FPGA XOCL Configuration information */ 9398 #define NVRAM_PARTITION_TYPE_FPGA_XOCL_CONFIG 0xb0a 9399 /* enum: MUM firmware partition */ 9400 #define NVRAM_PARTITION_TYPE_MUM_FIRMWARE 0xc00 9401 /* enum: SUC firmware partition (this is intentionally an alias of 9402 * MUM_FIRMWARE) 9403 */ 9404 #define NVRAM_PARTITION_TYPE_SUC_FIRMWARE 0xc00 9405 /* enum: MUM Non-volatile log output partition. */ 9406 #define NVRAM_PARTITION_TYPE_MUM_LOG 0xc01 9407 /* enum: SUC Non-volatile log output partition (this is intentionally an alias 9408 * of MUM_LOG). 9409 */ 9410 #define NVRAM_PARTITION_TYPE_SUC_LOG 0xc01 9411 /* enum: MUM Application table partition. */ 9412 #define NVRAM_PARTITION_TYPE_MUM_APPTABLE 0xc02 9413 /* enum: MUM boot rom partition. */ 9414 #define NVRAM_PARTITION_TYPE_MUM_BOOT_ROM 0xc03 9415 /* enum: MUM production signatures & calibration rom partition. */ 9416 #define NVRAM_PARTITION_TYPE_MUM_PROD_ROM 0xc04 9417 /* enum: MUM user signatures & calibration rom partition. */ 9418 #define NVRAM_PARTITION_TYPE_MUM_USER_ROM 0xc05 9419 /* enum: MUM fuses and lockbits partition. */ 9420 #define NVRAM_PARTITION_TYPE_MUM_FUSELOCK 0xc06 9421 /* enum: UEFI expansion ROM if separate from PXE */ 9422 #define NVRAM_PARTITION_TYPE_EXPANSION_UEFI 0xd00 9423 /* enum: Used by the expansion ROM for logging */ 9424 #define NVRAM_PARTITION_TYPE_PXE_LOG 0x1000 9425 /* enum: Non-volatile log output partition for Expansion ROM (this is 9426 * intentionally an alias of PXE_LOG). 9427 */ 9428 #define NVRAM_PARTITION_TYPE_EXPROM_LOG 0x1000 9429 /* enum: Used for XIP code of shmbooted images */ 9430 #define NVRAM_PARTITION_TYPE_XIP_SCRATCH 0x1100 9431 /* enum: Spare partition 2 */ 9432 #define NVRAM_PARTITION_TYPE_SPARE_2 0x1200 9433 /* enum: Manufacturing partition. Used during manufacture to pass information 9434 * between XJTAG and Manftest. 9435 */ 9436 #define NVRAM_PARTITION_TYPE_MANUFACTURING 0x1300 9437 /* enum: Deployment configuration TLV partition (this is intentionally an alias 9438 * of MANUFACTURING) 9439 */ 9440 #define NVRAM_PARTITION_TYPE_DEPLOYMENT_CONFIG 0x1300 9441 /* enum: Spare partition 4 */ 9442 #define NVRAM_PARTITION_TYPE_SPARE_4 0x1400 9443 /* enum: Spare partition 5 */ 9444 #define NVRAM_PARTITION_TYPE_SPARE_5 0x1500 9445 /* enum: Partition for reporting MC status. See mc_flash_layout.h 9446 * medford_mc_status_hdr_t for layout on Medford. 9447 */ 9448 #define NVRAM_PARTITION_TYPE_STATUS 0x1600 9449 /* enum: Spare partition 13 */ 9450 #define NVRAM_PARTITION_TYPE_SPARE_13 0x1700 9451 /* enum: Spare partition 14 */ 9452 #define NVRAM_PARTITION_TYPE_SPARE_14 0x1800 9453 /* enum: Spare partition 15 */ 9454 #define NVRAM_PARTITION_TYPE_SPARE_15 0x1900 9455 /* enum: Spare partition 16 */ 9456 #define NVRAM_PARTITION_TYPE_SPARE_16 0x1a00 9457 /* enum: Factory defaults for dynamic configuration */ 9458 #define NVRAM_PARTITION_TYPE_DYNCONFIG_DEFAULTS 0x1b00 9459 /* enum: Factory defaults for expansion ROM configuration */ 9460 #define NVRAM_PARTITION_TYPE_ROMCONFIG_DEFAULTS 0x1c00 9461 /* enum: Field Replaceable Unit inventory information for use on IPMI 9462 * platforms. See SF-119124-PS. The STATIC_CONFIG partition may contain a 9463 * subset of the information stored in this partition. 9464 */ 9465 #define NVRAM_PARTITION_TYPE_FRU_INFORMATION 0x1d00 9466 /* enum: Bundle image partition */ 9467 #define NVRAM_PARTITION_TYPE_BUNDLE 0x1e00 9468 /* enum: Bundle metadata partition that holds additional information related to 9469 * a bundle update in TLV format 9470 */ 9471 #define NVRAM_PARTITION_TYPE_BUNDLE_METADATA 0x1e01 9472 /* enum: Bundle update non-volatile log output partition */ 9473 #define NVRAM_PARTITION_TYPE_BUNDLE_LOG 0x1e02 9474 /* enum: Partition for Solarflare gPXE bootrom installed via Bundle update. */ 9475 #define NVRAM_PARTITION_TYPE_EXPANSION_ROM_INTERNAL 0x1e03 9476 /* enum: Partition to store ASN.1 format Bundle Signature for checking. */ 9477 #define NVRAM_PARTITION_TYPE_BUNDLE_SIGNATURE 0x1e04 9478 /* enum: Test partition on SmartNIC system microcontroller (SUC) */ 9479 #define NVRAM_PARTITION_TYPE_SUC_TEST 0x1f00 9480 /* enum: System microcontroller access to primary FPGA flash. */ 9481 #define NVRAM_PARTITION_TYPE_SUC_FPGA_PRIMARY 0x1f01 9482 /* enum: System microcontroller access to secondary FPGA flash (if present) */ 9483 #define NVRAM_PARTITION_TYPE_SUC_FPGA_SECONDARY 0x1f02 9484 /* enum: System microcontroller access to primary System-on-Chip flash */ 9485 #define NVRAM_PARTITION_TYPE_SUC_SOC_PRIMARY 0x1f03 9486 /* enum: System microcontroller access to secondary System-on-Chip flash (if 9487 * present) 9488 */ 9489 #define NVRAM_PARTITION_TYPE_SUC_SOC_SECONDARY 0x1f04 9490 /* enum: System microcontroller critical failure logs. Contains structured 9491 * details of sensors leading up to a critical failure (where the board is shut 9492 * down). 9493 */ 9494 #define NVRAM_PARTITION_TYPE_SUC_FAILURE_LOG 0x1f05 9495 /* enum: System-on-Chip configuration information (see XN-200467-PS). */ 9496 #define NVRAM_PARTITION_TYPE_SUC_SOC_CONFIG 0x1f07 9497 /* enum: System-on-Chip update information. */ 9498 #define NVRAM_PARTITION_TYPE_SOC_UPDATE 0x2003 9499 /* enum: Start of reserved value range (firmware may use for any purpose) */ 9500 #define NVRAM_PARTITION_TYPE_RESERVED_VALUES_MIN 0xff00 9501 /* enum: End of reserved value range (firmware may use for any purpose) */ 9502 #define NVRAM_PARTITION_TYPE_RESERVED_VALUES_MAX 0xfffd 9503 /* enum: Recovery partition map (provided if real map is missing or corrupt) */ 9504 #define NVRAM_PARTITION_TYPE_RECOVERY_MAP 0xfffe 9505 /* enum: Recovery Flash Partition Table, see SF-122606-TC. (this is 9506 * intentionally an alias of RECOVERY_MAP) 9507 */ 9508 #define NVRAM_PARTITION_TYPE_RECOVERY_FPT 0xfffe 9509 /* enum: Partition map (real map as stored in flash) */ 9510 #define NVRAM_PARTITION_TYPE_PARTITION_MAP 0xffff 9511 /* enum: Flash Partition Table, see SF-122606-TC. (this is intentionally an 9512 * alias of PARTITION_MAP) 9513 */ 9514 #define NVRAM_PARTITION_TYPE_FPT 0xffff 9515 #define NVRAM_PARTITION_TYPE_ID_LBN 0 9516 #define NVRAM_PARTITION_TYPE_ID_WIDTH 16 9517 9518 /* LICENSED_APP_ID structuredef */ 9519 #define LICENSED_APP_ID_LEN 4 9520 #define LICENSED_APP_ID_ID_OFST 0 9521 #define LICENSED_APP_ID_ID_LEN 4 9522 /* enum: OpenOnload */ 9523 #define LICENSED_APP_ID_ONLOAD 0x1 9524 /* enum: PTP timestamping */ 9525 #define LICENSED_APP_ID_PTP 0x2 9526 /* enum: SolarCapture Pro */ 9527 #define LICENSED_APP_ID_SOLARCAPTURE_PRO 0x4 9528 /* enum: SolarSecure filter engine */ 9529 #define LICENSED_APP_ID_SOLARSECURE 0x8 9530 /* enum: Performance monitor */ 9531 #define LICENSED_APP_ID_PERF_MONITOR 0x10 9532 /* enum: SolarCapture Live */ 9533 #define LICENSED_APP_ID_SOLARCAPTURE_LIVE 0x20 9534 /* enum: Capture SolarSystem */ 9535 #define LICENSED_APP_ID_CAPTURE_SOLARSYSTEM 0x40 9536 /* enum: Network Access Control */ 9537 #define LICENSED_APP_ID_NETWORK_ACCESS_CONTROL 0x80 9538 /* enum: TCP Direct */ 9539 #define LICENSED_APP_ID_TCP_DIRECT 0x100 9540 /* enum: Low Latency */ 9541 #define LICENSED_APP_ID_LOW_LATENCY 0x200 9542 /* enum: SolarCapture Tap */ 9543 #define LICENSED_APP_ID_SOLARCAPTURE_TAP 0x400 9544 /* enum: Capture SolarSystem 40G */ 9545 #define LICENSED_APP_ID_CAPTURE_SOLARSYSTEM_40G 0x800 9546 /* enum: Capture SolarSystem 1G */ 9547 #define LICENSED_APP_ID_CAPTURE_SOLARSYSTEM_1G 0x1000 9548 /* enum: ScaleOut Onload */ 9549 #define LICENSED_APP_ID_SCALEOUT_ONLOAD 0x2000 9550 /* enum: SCS Network Analytics Dashboard */ 9551 #define LICENSED_APP_ID_DSHBRD 0x4000 9552 /* enum: SolarCapture Trading Analytics */ 9553 #define LICENSED_APP_ID_SCATRD 0x8000 9554 #define LICENSED_APP_ID_ID_LBN 0 9555 #define LICENSED_APP_ID_ID_WIDTH 32 9556 9557 /* LICENSED_FEATURES structuredef */ 9558 #define LICENSED_FEATURES_LEN 8 9559 /* Bitmask of licensed firmware features */ 9560 #define LICENSED_FEATURES_MASK_OFST 0 9561 #define LICENSED_FEATURES_MASK_LEN 8 9562 #define LICENSED_FEATURES_MASK_LO_OFST 0 9563 #define LICENSED_FEATURES_MASK_LO_LEN 4 9564 #define LICENSED_FEATURES_MASK_LO_LBN 0 9565 #define LICENSED_FEATURES_MASK_LO_WIDTH 32 9566 #define LICENSED_FEATURES_MASK_HI_OFST 4 9567 #define LICENSED_FEATURES_MASK_HI_LEN 4 9568 #define LICENSED_FEATURES_MASK_HI_LBN 32 9569 #define LICENSED_FEATURES_MASK_HI_WIDTH 32 9570 #define LICENSED_FEATURES_RX_CUT_THROUGH_OFST 0 9571 #define LICENSED_FEATURES_RX_CUT_THROUGH_LBN 0 9572 #define LICENSED_FEATURES_RX_CUT_THROUGH_WIDTH 1 9573 #define LICENSED_FEATURES_PIO_OFST 0 9574 #define LICENSED_FEATURES_PIO_LBN 1 9575 #define LICENSED_FEATURES_PIO_WIDTH 1 9576 #define LICENSED_FEATURES_EVQ_TIMER_OFST 0 9577 #define LICENSED_FEATURES_EVQ_TIMER_LBN 2 9578 #define LICENSED_FEATURES_EVQ_TIMER_WIDTH 1 9579 #define LICENSED_FEATURES_CLOCK_OFST 0 9580 #define LICENSED_FEATURES_CLOCK_LBN 3 9581 #define LICENSED_FEATURES_CLOCK_WIDTH 1 9582 #define LICENSED_FEATURES_RX_TIMESTAMPS_OFST 0 9583 #define LICENSED_FEATURES_RX_TIMESTAMPS_LBN 4 9584 #define LICENSED_FEATURES_RX_TIMESTAMPS_WIDTH 1 9585 #define LICENSED_FEATURES_TX_TIMESTAMPS_OFST 0 9586 #define LICENSED_FEATURES_TX_TIMESTAMPS_LBN 5 9587 #define LICENSED_FEATURES_TX_TIMESTAMPS_WIDTH 1 9588 #define LICENSED_FEATURES_RX_SNIFF_OFST 0 9589 #define LICENSED_FEATURES_RX_SNIFF_LBN 6 9590 #define LICENSED_FEATURES_RX_SNIFF_WIDTH 1 9591 #define LICENSED_FEATURES_TX_SNIFF_OFST 0 9592 #define LICENSED_FEATURES_TX_SNIFF_LBN 7 9593 #define LICENSED_FEATURES_TX_SNIFF_WIDTH 1 9594 #define LICENSED_FEATURES_PROXY_FILTER_OPS_OFST 0 9595 #define LICENSED_FEATURES_PROXY_FILTER_OPS_LBN 8 9596 #define LICENSED_FEATURES_PROXY_FILTER_OPS_WIDTH 1 9597 #define LICENSED_FEATURES_EVENT_CUT_THROUGH_OFST 0 9598 #define LICENSED_FEATURES_EVENT_CUT_THROUGH_LBN 9 9599 #define LICENSED_FEATURES_EVENT_CUT_THROUGH_WIDTH 1 9600 #define LICENSED_FEATURES_MASK_LBN 0 9601 #define LICENSED_FEATURES_MASK_WIDTH 64 9602 9603 /* LICENSED_V3_APPS structuredef */ 9604 #define LICENSED_V3_APPS_LEN 8 9605 /* Bitmask of licensed applications */ 9606 #define LICENSED_V3_APPS_MASK_OFST 0 9607 #define LICENSED_V3_APPS_MASK_LEN 8 9608 #define LICENSED_V3_APPS_MASK_LO_OFST 0 9609 #define LICENSED_V3_APPS_MASK_LO_LEN 4 9610 #define LICENSED_V3_APPS_MASK_LO_LBN 0 9611 #define LICENSED_V3_APPS_MASK_LO_WIDTH 32 9612 #define LICENSED_V3_APPS_MASK_HI_OFST 4 9613 #define LICENSED_V3_APPS_MASK_HI_LEN 4 9614 #define LICENSED_V3_APPS_MASK_HI_LBN 32 9615 #define LICENSED_V3_APPS_MASK_HI_WIDTH 32 9616 #define LICENSED_V3_APPS_ONLOAD_OFST 0 9617 #define LICENSED_V3_APPS_ONLOAD_LBN 0 9618 #define LICENSED_V3_APPS_ONLOAD_WIDTH 1 9619 #define LICENSED_V3_APPS_PTP_OFST 0 9620 #define LICENSED_V3_APPS_PTP_LBN 1 9621 #define LICENSED_V3_APPS_PTP_WIDTH 1 9622 #define LICENSED_V3_APPS_SOLARCAPTURE_PRO_OFST 0 9623 #define LICENSED_V3_APPS_SOLARCAPTURE_PRO_LBN 2 9624 #define LICENSED_V3_APPS_SOLARCAPTURE_PRO_WIDTH 1 9625 #define LICENSED_V3_APPS_SOLARSECURE_OFST 0 9626 #define LICENSED_V3_APPS_SOLARSECURE_LBN 3 9627 #define LICENSED_V3_APPS_SOLARSECURE_WIDTH 1 9628 #define LICENSED_V3_APPS_PERF_MONITOR_OFST 0 9629 #define LICENSED_V3_APPS_PERF_MONITOR_LBN 4 9630 #define LICENSED_V3_APPS_PERF_MONITOR_WIDTH 1 9631 #define LICENSED_V3_APPS_SOLARCAPTURE_LIVE_OFST 0 9632 #define LICENSED_V3_APPS_SOLARCAPTURE_LIVE_LBN 5 9633 #define LICENSED_V3_APPS_SOLARCAPTURE_LIVE_WIDTH 1 9634 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_OFST 0 9635 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_LBN 6 9636 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_WIDTH 1 9637 #define LICENSED_V3_APPS_NETWORK_ACCESS_CONTROL_OFST 0 9638 #define LICENSED_V3_APPS_NETWORK_ACCESS_CONTROL_LBN 7 9639 #define LICENSED_V3_APPS_NETWORK_ACCESS_CONTROL_WIDTH 1 9640 #define LICENSED_V3_APPS_TCP_DIRECT_OFST 0 9641 #define LICENSED_V3_APPS_TCP_DIRECT_LBN 8 9642 #define LICENSED_V3_APPS_TCP_DIRECT_WIDTH 1 9643 #define LICENSED_V3_APPS_LOW_LATENCY_OFST 0 9644 #define LICENSED_V3_APPS_LOW_LATENCY_LBN 9 9645 #define LICENSED_V3_APPS_LOW_LATENCY_WIDTH 1 9646 #define LICENSED_V3_APPS_SOLARCAPTURE_TAP_OFST 0 9647 #define LICENSED_V3_APPS_SOLARCAPTURE_TAP_LBN 10 9648 #define LICENSED_V3_APPS_SOLARCAPTURE_TAP_WIDTH 1 9649 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_40G_OFST 0 9650 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_40G_LBN 11 9651 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_40G_WIDTH 1 9652 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_1G_OFST 0 9653 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_1G_LBN 12 9654 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_1G_WIDTH 1 9655 #define LICENSED_V3_APPS_SCALEOUT_ONLOAD_OFST 0 9656 #define LICENSED_V3_APPS_SCALEOUT_ONLOAD_LBN 13 9657 #define LICENSED_V3_APPS_SCALEOUT_ONLOAD_WIDTH 1 9658 #define LICENSED_V3_APPS_DSHBRD_OFST 0 9659 #define LICENSED_V3_APPS_DSHBRD_LBN 14 9660 #define LICENSED_V3_APPS_DSHBRD_WIDTH 1 9661 #define LICENSED_V3_APPS_SCATRD_OFST 0 9662 #define LICENSED_V3_APPS_SCATRD_LBN 15 9663 #define LICENSED_V3_APPS_SCATRD_WIDTH 1 9664 #define LICENSED_V3_APPS_MASK_LBN 0 9665 #define LICENSED_V3_APPS_MASK_WIDTH 64 9666 9667 /* LICENSED_V3_FEATURES structuredef */ 9668 #define LICENSED_V3_FEATURES_LEN 8 9669 /* Bitmask of licensed firmware features */ 9670 #define LICENSED_V3_FEATURES_MASK_OFST 0 9671 #define LICENSED_V3_FEATURES_MASK_LEN 8 9672 #define LICENSED_V3_FEATURES_MASK_LO_OFST 0 9673 #define LICENSED_V3_FEATURES_MASK_LO_LEN 4 9674 #define LICENSED_V3_FEATURES_MASK_LO_LBN 0 9675 #define LICENSED_V3_FEATURES_MASK_LO_WIDTH 32 9676 #define LICENSED_V3_FEATURES_MASK_HI_OFST 4 9677 #define LICENSED_V3_FEATURES_MASK_HI_LEN 4 9678 #define LICENSED_V3_FEATURES_MASK_HI_LBN 32 9679 #define LICENSED_V3_FEATURES_MASK_HI_WIDTH 32 9680 #define LICENSED_V3_FEATURES_RX_CUT_THROUGH_OFST 0 9681 #define LICENSED_V3_FEATURES_RX_CUT_THROUGH_LBN 0 9682 #define LICENSED_V3_FEATURES_RX_CUT_THROUGH_WIDTH 1 9683 #define LICENSED_V3_FEATURES_PIO_OFST 0 9684 #define LICENSED_V3_FEATURES_PIO_LBN 1 9685 #define LICENSED_V3_FEATURES_PIO_WIDTH 1 9686 #define LICENSED_V3_FEATURES_EVQ_TIMER_OFST 0 9687 #define LICENSED_V3_FEATURES_EVQ_TIMER_LBN 2 9688 #define LICENSED_V3_FEATURES_EVQ_TIMER_WIDTH 1 9689 #define LICENSED_V3_FEATURES_CLOCK_OFST 0 9690 #define LICENSED_V3_FEATURES_CLOCK_LBN 3 9691 #define LICENSED_V3_FEATURES_CLOCK_WIDTH 1 9692 #define LICENSED_V3_FEATURES_RX_TIMESTAMPS_OFST 0 9693 #define LICENSED_V3_FEATURES_RX_TIMESTAMPS_LBN 4 9694 #define LICENSED_V3_FEATURES_RX_TIMESTAMPS_WIDTH 1 9695 #define LICENSED_V3_FEATURES_TX_TIMESTAMPS_OFST 0 9696 #define LICENSED_V3_FEATURES_TX_TIMESTAMPS_LBN 5 9697 #define LICENSED_V3_FEATURES_TX_TIMESTAMPS_WIDTH 1 9698 #define LICENSED_V3_FEATURES_RX_SNIFF_OFST 0 9699 #define LICENSED_V3_FEATURES_RX_SNIFF_LBN 6 9700 #define LICENSED_V3_FEATURES_RX_SNIFF_WIDTH 1 9701 #define LICENSED_V3_FEATURES_TX_SNIFF_OFST 0 9702 #define LICENSED_V3_FEATURES_TX_SNIFF_LBN 7 9703 #define LICENSED_V3_FEATURES_TX_SNIFF_WIDTH 1 9704 #define LICENSED_V3_FEATURES_PROXY_FILTER_OPS_OFST 0 9705 #define LICENSED_V3_FEATURES_PROXY_FILTER_OPS_LBN 8 9706 #define LICENSED_V3_FEATURES_PROXY_FILTER_OPS_WIDTH 1 9707 #define LICENSED_V3_FEATURES_EVENT_CUT_THROUGH_OFST 0 9708 #define LICENSED_V3_FEATURES_EVENT_CUT_THROUGH_LBN 9 9709 #define LICENSED_V3_FEATURES_EVENT_CUT_THROUGH_WIDTH 1 9710 #define LICENSED_V3_FEATURES_MASK_LBN 0 9711 #define LICENSED_V3_FEATURES_MASK_WIDTH 64 9712 9713 /* TX_TIMESTAMP_EVENT structuredef */ 9714 #define TX_TIMESTAMP_EVENT_LEN 6 9715 /* lower 16 bits of timestamp data */ 9716 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_LO_OFST 0 9717 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_LO_LEN 2 9718 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_LO_LBN 0 9719 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_LO_WIDTH 16 9720 /* Type of TX event, ordinary TX completion, low or high part of TX timestamp 9721 */ 9722 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_OFST 3 9723 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_LEN 1 9724 /* enum: This is a TX completion event, not a timestamp */ 9725 #define TX_TIMESTAMP_EVENT_TX_EV_COMPLETION 0x0 9726 /* enum: This is a TX completion event for a CTPIO transmit. The event format 9727 * is the same as for TX_EV_COMPLETION. 9728 */ 9729 #define TX_TIMESTAMP_EVENT_TX_EV_CTPIO_COMPLETION 0x11 9730 /* enum: This is the low part of a TX timestamp for a CTPIO transmission. The 9731 * event format is the same as for TX_EV_TSTAMP_LO 9732 */ 9733 #define TX_TIMESTAMP_EVENT_TX_EV_CTPIO_TS_LO 0x12 9734 /* enum: This is the high part of a TX timestamp for a CTPIO transmission. The 9735 * event format is the same as for TX_EV_TSTAMP_HI 9736 */ 9737 #define TX_TIMESTAMP_EVENT_TX_EV_CTPIO_TS_HI 0x13 9738 /* enum: This is the low part of a TX timestamp event */ 9739 #define TX_TIMESTAMP_EVENT_TX_EV_TSTAMP_LO 0x51 9740 /* enum: This is the high part of a TX timestamp event */ 9741 #define TX_TIMESTAMP_EVENT_TX_EV_TSTAMP_HI 0x52 9742 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_LBN 24 9743 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_WIDTH 8 9744 /* upper 16 bits of timestamp data */ 9745 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_OFST 4 9746 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_LEN 2 9747 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_LBN 32 9748 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_WIDTH 16 9749 9750 /* RSS_MODE structuredef */ 9751 #define RSS_MODE_LEN 1 9752 /* The RSS mode for a particular packet type is a value from 0 - 15 which can 9753 * be considered as 4 bits selecting which fields are included in the hash. (A 9754 * value 0 effectively disables RSS spreading for the packet type.) The YAML 9755 * generation tools require this structure to be a whole number of bytes wide, 9756 * but only 4 bits are relevant. 9757 */ 9758 #define RSS_MODE_HASH_SELECTOR_OFST 0 9759 #define RSS_MODE_HASH_SELECTOR_LEN 1 9760 #define RSS_MODE_HASH_SRC_ADDR_OFST 0 9761 #define RSS_MODE_HASH_SRC_ADDR_LBN 0 9762 #define RSS_MODE_HASH_SRC_ADDR_WIDTH 1 9763 #define RSS_MODE_HASH_DST_ADDR_OFST 0 9764 #define RSS_MODE_HASH_DST_ADDR_LBN 1 9765 #define RSS_MODE_HASH_DST_ADDR_WIDTH 1 9766 #define RSS_MODE_HASH_SRC_PORT_OFST 0 9767 #define RSS_MODE_HASH_SRC_PORT_LBN 2 9768 #define RSS_MODE_HASH_SRC_PORT_WIDTH 1 9769 #define RSS_MODE_HASH_DST_PORT_OFST 0 9770 #define RSS_MODE_HASH_DST_PORT_LBN 3 9771 #define RSS_MODE_HASH_DST_PORT_WIDTH 1 9772 #define RSS_MODE_HASH_SELECTOR_LBN 0 9773 #define RSS_MODE_HASH_SELECTOR_WIDTH 8 9774 9775 /* CTPIO_STATS_MAP structuredef */ 9776 #define CTPIO_STATS_MAP_LEN 4 9777 /* The (function relative) VI number */ 9778 #define CTPIO_STATS_MAP_VI_OFST 0 9779 #define CTPIO_STATS_MAP_VI_LEN 2 9780 #define CTPIO_STATS_MAP_VI_LBN 0 9781 #define CTPIO_STATS_MAP_VI_WIDTH 16 9782 /* The target bucket for the VI */ 9783 #define CTPIO_STATS_MAP_BUCKET_OFST 2 9784 #define CTPIO_STATS_MAP_BUCKET_LEN 2 9785 #define CTPIO_STATS_MAP_BUCKET_LBN 16 9786 #define CTPIO_STATS_MAP_BUCKET_WIDTH 16 9787 9788 /* MESSAGE_TYPE structuredef: When present this defines the meaning of a 9789 * message, and is used to protect against chosen message attacks in signed 9790 * messages, regardless their origin. The message type also defines the 9791 * signature cryptographic algorithm, encoding, and message fields included in 9792 * the signature. The values are used in different commands but must be unique 9793 * across all commands, e.g. MC_CMD_TSA_BIND_IN_SECURE_UNBIND uses different 9794 * message type than MC_CMD_SECURE_NIC_INFO_IN_STATUS. 9795 */ 9796 #define MESSAGE_TYPE_LEN 4 9797 #define MESSAGE_TYPE_MESSAGE_TYPE_OFST 0 9798 #define MESSAGE_TYPE_MESSAGE_TYPE_LEN 4 9799 #define MESSAGE_TYPE_UNUSED 0x0 /* enum */ 9800 /* enum: Message type value for the response to a 9801 * MC_CMD_TSA_BIND_IN_SECURE_UNBIND message. TSA_SECURE_UNBIND messages are 9802 * ECDSA SECP384R1 signed using SHA384 message digest algorithm over fields 9803 * MESSAGE_TYPE, TSANID, TSAID, and UNBINDTOKEN, and encoded as suggested by 9804 * RFC6979 (section 2.4). 9805 */ 9806 #define MESSAGE_TYPE_TSA_SECURE_UNBIND 0x1 9807 /* enum: Message type value for the response to a 9808 * MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION message. TSA_SECURE_DECOMMISSION 9809 * messages are ECDSA SECP384R1 signed using SHA384 message digest algorithm 9810 * over fields MESSAGE_TYPE, TSAID, USER, and REASON, and encoded as suggested 9811 * by RFC6979 (section 2.4). 9812 */ 9813 #define MESSAGE_TYPE_TSA_SECURE_DECOMMISSION 0x2 9814 /* enum: Message type value for the response to a 9815 * MC_CMD_SECURE_NIC_INFO_IN_STATUS message. This enum value is not sequential 9816 * to other message types for backwards compatibility as the message type for 9817 * MC_CMD_SECURE_NIC_INFO_IN_STATUS was defined before the existence of this 9818 * global enum. 9819 */ 9820 #define MESSAGE_TYPE_SECURE_NIC_INFO_STATUS 0xdb4 9821 #define MESSAGE_TYPE_MESSAGE_TYPE_LBN 0 9822 #define MESSAGE_TYPE_MESSAGE_TYPE_WIDTH 32 9823 9824 9825 /***********************************/ 9826 /* MC_CMD_READ_REGS 9827 * Get a dump of the MCPU registers 9828 */ 9829 #define MC_CMD_READ_REGS 0x50 9830 #define MC_CMD_READ_REGS_MSGSET 0x50 9831 #undef MC_CMD_0x50_PRIVILEGE_CTG 9832 9833 #define MC_CMD_0x50_PRIVILEGE_CTG SRIOV_CTG_INSECURE 9834 9835 /* MC_CMD_READ_REGS_IN msgrequest */ 9836 #define MC_CMD_READ_REGS_IN_LEN 0 9837 9838 /* MC_CMD_READ_REGS_OUT msgresponse */ 9839 #define MC_CMD_READ_REGS_OUT_LEN 308 9840 /* Whether the corresponding register entry contains a valid value */ 9841 #define MC_CMD_READ_REGS_OUT_MASK_OFST 0 9842 #define MC_CMD_READ_REGS_OUT_MASK_LEN 16 9843 /* Same order as MIPS GDB (r0-r31, sr, lo, hi, bad, cause, 32 x float, fsr, 9844 * fir, fp) 9845 */ 9846 #define MC_CMD_READ_REGS_OUT_REGS_OFST 16 9847 #define MC_CMD_READ_REGS_OUT_REGS_LEN 4 9848 #define MC_CMD_READ_REGS_OUT_REGS_NUM 73 9849 9850 9851 /***********************************/ 9852 /* MC_CMD_INIT_EVQ 9853 * Set up an event queue according to the supplied parameters. The IN arguments 9854 * end with an address for each 4k of host memory required to back the EVQ. 9855 */ 9856 #define MC_CMD_INIT_EVQ 0x80 9857 #define MC_CMD_INIT_EVQ_MSGSET 0x80 9858 #undef MC_CMD_0x80_PRIVILEGE_CTG 9859 9860 #define MC_CMD_0x80_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9861 9862 /* MC_CMD_INIT_EVQ_IN msgrequest */ 9863 #define MC_CMD_INIT_EVQ_IN_LENMIN 44 9864 #define MC_CMD_INIT_EVQ_IN_LENMAX 548 9865 #define MC_CMD_INIT_EVQ_IN_LENMAX_MCDI2 548 9866 #define MC_CMD_INIT_EVQ_IN_LEN(num) (36+8*(num)) 9867 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_NUM(len) (((len)-36)/8) 9868 /* Size, in entries */ 9869 #define MC_CMD_INIT_EVQ_IN_SIZE_OFST 0 9870 #define MC_CMD_INIT_EVQ_IN_SIZE_LEN 4 9871 /* Desired instance. Must be set to a specific instance, which is a function 9872 * local queue index. The calling client must be the currently-assigned user of 9873 * this VI (see MC_CMD_SET_VI_USER). 9874 */ 9875 #define MC_CMD_INIT_EVQ_IN_INSTANCE_OFST 4 9876 #define MC_CMD_INIT_EVQ_IN_INSTANCE_LEN 4 9877 /* The initial timer value. The load value is ignored if the timer mode is DIS. 9878 */ 9879 #define MC_CMD_INIT_EVQ_IN_TMR_LOAD_OFST 8 9880 #define MC_CMD_INIT_EVQ_IN_TMR_LOAD_LEN 4 9881 /* The reload value is ignored in one-shot modes */ 9882 #define MC_CMD_INIT_EVQ_IN_TMR_RELOAD_OFST 12 9883 #define MC_CMD_INIT_EVQ_IN_TMR_RELOAD_LEN 4 9884 /* tbd */ 9885 #define MC_CMD_INIT_EVQ_IN_FLAGS_OFST 16 9886 #define MC_CMD_INIT_EVQ_IN_FLAGS_LEN 4 9887 #define MC_CMD_INIT_EVQ_IN_FLAG_INTERRUPTING_OFST 16 9888 #define MC_CMD_INIT_EVQ_IN_FLAG_INTERRUPTING_LBN 0 9889 #define MC_CMD_INIT_EVQ_IN_FLAG_INTERRUPTING_WIDTH 1 9890 #define MC_CMD_INIT_EVQ_IN_FLAG_RPTR_DOS_OFST 16 9891 #define MC_CMD_INIT_EVQ_IN_FLAG_RPTR_DOS_LBN 1 9892 #define MC_CMD_INIT_EVQ_IN_FLAG_RPTR_DOS_WIDTH 1 9893 #define MC_CMD_INIT_EVQ_IN_FLAG_INT_ARMD_OFST 16 9894 #define MC_CMD_INIT_EVQ_IN_FLAG_INT_ARMD_LBN 2 9895 #define MC_CMD_INIT_EVQ_IN_FLAG_INT_ARMD_WIDTH 1 9896 #define MC_CMD_INIT_EVQ_IN_FLAG_CUT_THRU_OFST 16 9897 #define MC_CMD_INIT_EVQ_IN_FLAG_CUT_THRU_LBN 3 9898 #define MC_CMD_INIT_EVQ_IN_FLAG_CUT_THRU_WIDTH 1 9899 #define MC_CMD_INIT_EVQ_IN_FLAG_RX_MERGE_OFST 16 9900 #define MC_CMD_INIT_EVQ_IN_FLAG_RX_MERGE_LBN 4 9901 #define MC_CMD_INIT_EVQ_IN_FLAG_RX_MERGE_WIDTH 1 9902 #define MC_CMD_INIT_EVQ_IN_FLAG_TX_MERGE_OFST 16 9903 #define MC_CMD_INIT_EVQ_IN_FLAG_TX_MERGE_LBN 5 9904 #define MC_CMD_INIT_EVQ_IN_FLAG_TX_MERGE_WIDTH 1 9905 #define MC_CMD_INIT_EVQ_IN_FLAG_USE_TIMER_OFST 16 9906 #define MC_CMD_INIT_EVQ_IN_FLAG_USE_TIMER_LBN 6 9907 #define MC_CMD_INIT_EVQ_IN_FLAG_USE_TIMER_WIDTH 1 9908 #define MC_CMD_INIT_EVQ_IN_TMR_MODE_OFST 20 9909 #define MC_CMD_INIT_EVQ_IN_TMR_MODE_LEN 4 9910 /* enum: Disabled */ 9911 #define MC_CMD_INIT_EVQ_IN_TMR_MODE_DIS 0x0 9912 /* enum: Immediate */ 9913 #define MC_CMD_INIT_EVQ_IN_TMR_IMMED_START 0x1 9914 /* enum: Triggered */ 9915 #define MC_CMD_INIT_EVQ_IN_TMR_TRIG_START 0x2 9916 /* enum: Hold-off */ 9917 #define MC_CMD_INIT_EVQ_IN_TMR_INT_HLDOFF 0x3 9918 /* Target EVQ for wakeups if in wakeup mode. */ 9919 #define MC_CMD_INIT_EVQ_IN_TARGET_EVQ_OFST 24 9920 #define MC_CMD_INIT_EVQ_IN_TARGET_EVQ_LEN 4 9921 /* Target interrupt if in interrupting mode (note union with target EVQ). Use 9922 * MC_CMD_RESOURCE_INSTANCE_ANY unless a specific one required for test 9923 * purposes. 9924 */ 9925 #define MC_CMD_INIT_EVQ_IN_IRQ_NUM_OFST 24 9926 #define MC_CMD_INIT_EVQ_IN_IRQ_NUM_LEN 4 9927 /* Event Counter Mode. */ 9928 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_OFST 28 9929 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_LEN 4 9930 /* enum: Disabled */ 9931 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_DIS 0x0 9932 /* enum: Disabled */ 9933 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_RX 0x1 9934 /* enum: Disabled */ 9935 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_TX 0x2 9936 /* enum: Disabled */ 9937 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_RXTX 0x3 9938 /* Event queue packet count threshold. */ 9939 #define MC_CMD_INIT_EVQ_IN_COUNT_THRSHLD_OFST 32 9940 #define MC_CMD_INIT_EVQ_IN_COUNT_THRSHLD_LEN 4 9941 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 9942 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_OFST 36 9943 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LEN 8 9944 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_OFST 36 9945 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_LEN 4 9946 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_LBN 288 9947 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_WIDTH 32 9948 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_OFST 40 9949 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_LEN 4 9950 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_LBN 320 9951 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_WIDTH 32 9952 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_MINNUM 1 9953 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_MAXNUM 64 9954 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_MAXNUM_MCDI2 64 9955 9956 /* MC_CMD_INIT_EVQ_OUT msgresponse */ 9957 #define MC_CMD_INIT_EVQ_OUT_LEN 4 9958 /* Only valid if INTRFLAG was true */ 9959 #define MC_CMD_INIT_EVQ_OUT_IRQ_OFST 0 9960 #define MC_CMD_INIT_EVQ_OUT_IRQ_LEN 4 9961 9962 /* MC_CMD_INIT_EVQ_V2_IN msgrequest */ 9963 #define MC_CMD_INIT_EVQ_V2_IN_LENMIN 44 9964 #define MC_CMD_INIT_EVQ_V2_IN_LENMAX 548 9965 #define MC_CMD_INIT_EVQ_V2_IN_LENMAX_MCDI2 548 9966 #define MC_CMD_INIT_EVQ_V2_IN_LEN(num) (36+8*(num)) 9967 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_NUM(len) (((len)-36)/8) 9968 /* Size, in entries */ 9969 #define MC_CMD_INIT_EVQ_V2_IN_SIZE_OFST 0 9970 #define MC_CMD_INIT_EVQ_V2_IN_SIZE_LEN 4 9971 /* Desired instance. Must be set to a specific instance, which is a function 9972 * local queue index. The calling client must be the currently-assigned user of 9973 * this VI (see MC_CMD_SET_VI_USER). 9974 */ 9975 #define MC_CMD_INIT_EVQ_V2_IN_INSTANCE_OFST 4 9976 #define MC_CMD_INIT_EVQ_V2_IN_INSTANCE_LEN 4 9977 /* The initial timer value. The load value is ignored if the timer mode is DIS. 9978 */ 9979 #define MC_CMD_INIT_EVQ_V2_IN_TMR_LOAD_OFST 8 9980 #define MC_CMD_INIT_EVQ_V2_IN_TMR_LOAD_LEN 4 9981 /* The reload value is ignored in one-shot modes */ 9982 #define MC_CMD_INIT_EVQ_V2_IN_TMR_RELOAD_OFST 12 9983 #define MC_CMD_INIT_EVQ_V2_IN_TMR_RELOAD_LEN 4 9984 /* tbd */ 9985 #define MC_CMD_INIT_EVQ_V2_IN_FLAGS_OFST 16 9986 #define MC_CMD_INIT_EVQ_V2_IN_FLAGS_LEN 4 9987 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INTERRUPTING_OFST 16 9988 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INTERRUPTING_LBN 0 9989 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INTERRUPTING_WIDTH 1 9990 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RPTR_DOS_OFST 16 9991 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RPTR_DOS_LBN 1 9992 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RPTR_DOS_WIDTH 1 9993 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INT_ARMD_OFST 16 9994 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INT_ARMD_LBN 2 9995 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INT_ARMD_WIDTH 1 9996 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_CUT_THRU_OFST 16 9997 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_CUT_THRU_LBN 3 9998 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_CUT_THRU_WIDTH 1 9999 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RX_MERGE_OFST 16 10000 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RX_MERGE_LBN 4 10001 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RX_MERGE_WIDTH 1 10002 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TX_MERGE_OFST 16 10003 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TX_MERGE_LBN 5 10004 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TX_MERGE_WIDTH 1 10005 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_USE_TIMER_OFST 16 10006 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_USE_TIMER_LBN 6 10007 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_USE_TIMER_WIDTH 1 10008 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_OFST 16 10009 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_LBN 7 10010 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_WIDTH 4 10011 /* enum: All initialisation flags specified by host. */ 10012 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_MANUAL 0x0 10013 /* enum: MEDFORD only. Certain initialisation flags specified by host may be 10014 * over-ridden by firmware based on licenses and firmware variant in order to 10015 * provide the lowest latency achievable. See 10016 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 10017 */ 10018 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_LOW_LATENCY 0x1 10019 /* enum: MEDFORD only. Certain initialisation flags specified by host may be 10020 * over-ridden by firmware based on licenses and firmware variant in order to 10021 * provide the best throughput achievable. See 10022 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 10023 */ 10024 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_THROUGHPUT 0x2 10025 /* enum: MEDFORD only. Certain initialisation flags may be over-ridden by 10026 * firmware based on licenses and firmware variant. See 10027 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 10028 */ 10029 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_AUTO 0x3 10030 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_EXT_WIDTH_OFST 16 10031 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_EXT_WIDTH_LBN 11 10032 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_EXT_WIDTH_WIDTH 1 10033 #define MC_CMD_INIT_EVQ_V2_IN_TMR_MODE_OFST 20 10034 #define MC_CMD_INIT_EVQ_V2_IN_TMR_MODE_LEN 4 10035 /* enum: Disabled */ 10036 #define MC_CMD_INIT_EVQ_V2_IN_TMR_MODE_DIS 0x0 10037 /* enum: Immediate */ 10038 #define MC_CMD_INIT_EVQ_V2_IN_TMR_IMMED_START 0x1 10039 /* enum: Triggered */ 10040 #define MC_CMD_INIT_EVQ_V2_IN_TMR_TRIG_START 0x2 10041 /* enum: Hold-off */ 10042 #define MC_CMD_INIT_EVQ_V2_IN_TMR_INT_HLDOFF 0x3 10043 /* Target EVQ for wakeups if in wakeup mode. */ 10044 #define MC_CMD_INIT_EVQ_V2_IN_TARGET_EVQ_OFST 24 10045 #define MC_CMD_INIT_EVQ_V2_IN_TARGET_EVQ_LEN 4 10046 /* Target interrupt if in interrupting mode (note union with target EVQ). Use 10047 * MC_CMD_RESOURCE_INSTANCE_ANY unless a specific one required for test 10048 * purposes. 10049 */ 10050 #define MC_CMD_INIT_EVQ_V2_IN_IRQ_NUM_OFST 24 10051 #define MC_CMD_INIT_EVQ_V2_IN_IRQ_NUM_LEN 4 10052 /* Event Counter Mode. */ 10053 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_OFST 28 10054 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_LEN 4 10055 /* enum: Disabled */ 10056 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_DIS 0x0 10057 /* enum: Disabled */ 10058 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_RX 0x1 10059 /* enum: Disabled */ 10060 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_TX 0x2 10061 /* enum: Disabled */ 10062 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_RXTX 0x3 10063 /* Event queue packet count threshold. */ 10064 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_THRSHLD_OFST 32 10065 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_THRSHLD_LEN 4 10066 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 10067 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_OFST 36 10068 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LEN 8 10069 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_OFST 36 10070 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_LEN 4 10071 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_LBN 288 10072 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_WIDTH 32 10073 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_OFST 40 10074 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_LEN 4 10075 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_LBN 320 10076 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_WIDTH 32 10077 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_MINNUM 1 10078 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_MAXNUM 64 10079 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_MAXNUM_MCDI2 64 10080 10081 /* MC_CMD_INIT_EVQ_V2_OUT msgresponse */ 10082 #define MC_CMD_INIT_EVQ_V2_OUT_LEN 8 10083 /* Only valid if INTRFLAG was true */ 10084 #define MC_CMD_INIT_EVQ_V2_OUT_IRQ_OFST 0 10085 #define MC_CMD_INIT_EVQ_V2_OUT_IRQ_LEN 4 10086 /* Actual configuration applied on the card */ 10087 #define MC_CMD_INIT_EVQ_V2_OUT_FLAGS_OFST 4 10088 #define MC_CMD_INIT_EVQ_V2_OUT_FLAGS_LEN 4 10089 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_CUT_THRU_OFST 4 10090 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_CUT_THRU_LBN 0 10091 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_CUT_THRU_WIDTH 1 10092 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RX_MERGE_OFST 4 10093 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RX_MERGE_LBN 1 10094 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RX_MERGE_WIDTH 1 10095 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_TX_MERGE_OFST 4 10096 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_TX_MERGE_LBN 2 10097 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_TX_MERGE_WIDTH 1 10098 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_OFST 4 10099 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_LBN 3 10100 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_WIDTH 1 10101 10102 /* MC_CMD_INIT_EVQ_V3_IN msgrequest: Extended request to specify per-queue 10103 * event merge timeouts. 10104 */ 10105 #define MC_CMD_INIT_EVQ_V3_IN_LEN 556 10106 /* Size, in entries */ 10107 #define MC_CMD_INIT_EVQ_V3_IN_SIZE_OFST 0 10108 #define MC_CMD_INIT_EVQ_V3_IN_SIZE_LEN 4 10109 /* Desired instance. Must be set to a specific instance, which is a function 10110 * local queue index. The calling client must be the currently-assigned user of 10111 * this VI (see MC_CMD_SET_VI_USER). 10112 */ 10113 #define MC_CMD_INIT_EVQ_V3_IN_INSTANCE_OFST 4 10114 #define MC_CMD_INIT_EVQ_V3_IN_INSTANCE_LEN 4 10115 /* The initial timer value. The load value is ignored if the timer mode is DIS. 10116 */ 10117 #define MC_CMD_INIT_EVQ_V3_IN_TMR_LOAD_OFST 8 10118 #define MC_CMD_INIT_EVQ_V3_IN_TMR_LOAD_LEN 4 10119 /* The reload value is ignored in one-shot modes */ 10120 #define MC_CMD_INIT_EVQ_V3_IN_TMR_RELOAD_OFST 12 10121 #define MC_CMD_INIT_EVQ_V3_IN_TMR_RELOAD_LEN 4 10122 /* tbd */ 10123 #define MC_CMD_INIT_EVQ_V3_IN_FLAGS_OFST 16 10124 #define MC_CMD_INIT_EVQ_V3_IN_FLAGS_LEN 4 10125 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INTERRUPTING_OFST 16 10126 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INTERRUPTING_LBN 0 10127 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INTERRUPTING_WIDTH 1 10128 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RPTR_DOS_OFST 16 10129 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RPTR_DOS_LBN 1 10130 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RPTR_DOS_WIDTH 1 10131 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INT_ARMD_OFST 16 10132 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INT_ARMD_LBN 2 10133 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INT_ARMD_WIDTH 1 10134 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_CUT_THRU_OFST 16 10135 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_CUT_THRU_LBN 3 10136 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_CUT_THRU_WIDTH 1 10137 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RX_MERGE_OFST 16 10138 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RX_MERGE_LBN 4 10139 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RX_MERGE_WIDTH 1 10140 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TX_MERGE_OFST 16 10141 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TX_MERGE_LBN 5 10142 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TX_MERGE_WIDTH 1 10143 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_USE_TIMER_OFST 16 10144 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_USE_TIMER_LBN 6 10145 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_USE_TIMER_WIDTH 1 10146 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_OFST 16 10147 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_LBN 7 10148 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_WIDTH 4 10149 /* enum: All initialisation flags specified by host. */ 10150 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_MANUAL 0x0 10151 /* enum: MEDFORD only. Certain initialisation flags specified by host may be 10152 * over-ridden by firmware based on licenses and firmware variant in order to 10153 * provide the lowest latency achievable. See 10154 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 10155 */ 10156 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_LOW_LATENCY 0x1 10157 /* enum: MEDFORD only. Certain initialisation flags specified by host may be 10158 * over-ridden by firmware based on licenses and firmware variant in order to 10159 * provide the best throughput achievable. See 10160 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 10161 */ 10162 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_THROUGHPUT 0x2 10163 /* enum: MEDFORD only. Certain initialisation flags may be over-ridden by 10164 * firmware based on licenses and firmware variant. See 10165 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 10166 */ 10167 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_AUTO 0x3 10168 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_EXT_WIDTH_OFST 16 10169 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_EXT_WIDTH_LBN 11 10170 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_EXT_WIDTH_WIDTH 1 10171 #define MC_CMD_INIT_EVQ_V3_IN_TMR_MODE_OFST 20 10172 #define MC_CMD_INIT_EVQ_V3_IN_TMR_MODE_LEN 4 10173 /* enum: Disabled */ 10174 #define MC_CMD_INIT_EVQ_V3_IN_TMR_MODE_DIS 0x0 10175 /* enum: Immediate */ 10176 #define MC_CMD_INIT_EVQ_V3_IN_TMR_IMMED_START 0x1 10177 /* enum: Triggered */ 10178 #define MC_CMD_INIT_EVQ_V3_IN_TMR_TRIG_START 0x2 10179 /* enum: Hold-off */ 10180 #define MC_CMD_INIT_EVQ_V3_IN_TMR_INT_HLDOFF 0x3 10181 /* Target EVQ for wakeups if in wakeup mode. */ 10182 #define MC_CMD_INIT_EVQ_V3_IN_TARGET_EVQ_OFST 24 10183 #define MC_CMD_INIT_EVQ_V3_IN_TARGET_EVQ_LEN 4 10184 /* Target interrupt if in interrupting mode (note union with target EVQ). Use 10185 * MC_CMD_RESOURCE_INSTANCE_ANY unless a specific one required for test 10186 * purposes. 10187 */ 10188 #define MC_CMD_INIT_EVQ_V3_IN_IRQ_NUM_OFST 24 10189 #define MC_CMD_INIT_EVQ_V3_IN_IRQ_NUM_LEN 4 10190 /* Event Counter Mode. */ 10191 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_OFST 28 10192 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_LEN 4 10193 /* enum: Disabled */ 10194 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_DIS 0x0 10195 /* enum: Disabled */ 10196 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_RX 0x1 10197 /* enum: Disabled */ 10198 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_TX 0x2 10199 /* enum: Disabled */ 10200 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_RXTX 0x3 10201 /* Event queue packet count threshold. */ 10202 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_THRSHLD_OFST 32 10203 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_THRSHLD_LEN 4 10204 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 10205 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_OFST 36 10206 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LEN 8 10207 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_OFST 36 10208 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_LEN 4 10209 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_LBN 288 10210 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_WIDTH 32 10211 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_OFST 40 10212 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_LEN 4 10213 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_LBN 320 10214 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_WIDTH 32 10215 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_MINNUM 1 10216 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_MAXNUM 64 10217 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_MAXNUM_MCDI2 64 10218 /* Receive event merge timeout to configure, in nanoseconds. The valid range 10219 * and granularity are device specific. Specify 0 to use the firmware's default 10220 * value. This field is ignored and per-queue merging is disabled if 10221 * MC_CMD_INIT_EVQ/MC_CMD_INIT_EVQ_IN/FLAG_RX_MERGE is not set. 10222 */ 10223 #define MC_CMD_INIT_EVQ_V3_IN_RX_MERGE_TIMEOUT_NS_OFST 548 10224 #define MC_CMD_INIT_EVQ_V3_IN_RX_MERGE_TIMEOUT_NS_LEN 4 10225 /* Transmit event merge timeout to configure, in nanoseconds. The valid range 10226 * and granularity are device specific. Specify 0 to use the firmware's default 10227 * value. This field is ignored and per-queue merging is disabled if 10228 * MC_CMD_INIT_EVQ/MC_CMD_INIT_EVQ_IN/FLAG_TX_MERGE is not set. 10229 */ 10230 #define MC_CMD_INIT_EVQ_V3_IN_TX_MERGE_TIMEOUT_NS_OFST 552 10231 #define MC_CMD_INIT_EVQ_V3_IN_TX_MERGE_TIMEOUT_NS_LEN 4 10232 10233 /* MC_CMD_INIT_EVQ_V3_OUT msgresponse */ 10234 #define MC_CMD_INIT_EVQ_V3_OUT_LEN 8 10235 /* Only valid if INTRFLAG was true */ 10236 #define MC_CMD_INIT_EVQ_V3_OUT_IRQ_OFST 0 10237 #define MC_CMD_INIT_EVQ_V3_OUT_IRQ_LEN 4 10238 /* Actual configuration applied on the card */ 10239 #define MC_CMD_INIT_EVQ_V3_OUT_FLAGS_OFST 4 10240 #define MC_CMD_INIT_EVQ_V3_OUT_FLAGS_LEN 4 10241 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_CUT_THRU_OFST 4 10242 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_CUT_THRU_LBN 0 10243 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_CUT_THRU_WIDTH 1 10244 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RX_MERGE_OFST 4 10245 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RX_MERGE_LBN 1 10246 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RX_MERGE_WIDTH 1 10247 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_TX_MERGE_OFST 4 10248 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_TX_MERGE_LBN 2 10249 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_TX_MERGE_WIDTH 1 10250 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RXQ_FORCE_EV_MERGING_OFST 4 10251 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RXQ_FORCE_EV_MERGING_LBN 3 10252 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RXQ_FORCE_EV_MERGING_WIDTH 1 10253 10254 /* QUEUE_CRC_MODE structuredef */ 10255 #define QUEUE_CRC_MODE_LEN 1 10256 #define QUEUE_CRC_MODE_MODE_LBN 0 10257 #define QUEUE_CRC_MODE_MODE_WIDTH 4 10258 /* enum: No CRC. */ 10259 #define QUEUE_CRC_MODE_NONE 0x0 10260 /* enum: CRC Fiber channel over ethernet. */ 10261 #define QUEUE_CRC_MODE_FCOE 0x1 10262 /* enum: CRC (digest) iSCSI header only. */ 10263 #define QUEUE_CRC_MODE_ISCSI_HDR 0x2 10264 /* enum: CRC (digest) iSCSI header and payload. */ 10265 #define QUEUE_CRC_MODE_ISCSI 0x3 10266 /* enum: CRC Fiber channel over IP over ethernet. */ 10267 #define QUEUE_CRC_MODE_FCOIPOE 0x4 10268 /* enum: CRC MPA. */ 10269 #define QUEUE_CRC_MODE_MPA 0x5 10270 #define QUEUE_CRC_MODE_SPARE_LBN 4 10271 #define QUEUE_CRC_MODE_SPARE_WIDTH 4 10272 10273 10274 /***********************************/ 10275 /* MC_CMD_INIT_RXQ 10276 * set up a receive queue according to the supplied parameters. The IN 10277 * arguments end with an address for each 4k of host memory required to back 10278 * the RXQ. 10279 */ 10280 #define MC_CMD_INIT_RXQ 0x81 10281 #define MC_CMD_INIT_RXQ_MSGSET 0x81 10282 #undef MC_CMD_0x81_PRIVILEGE_CTG 10283 10284 #define MC_CMD_0x81_PRIVILEGE_CTG SRIOV_CTG_GENERAL 10285 10286 /* MC_CMD_INIT_RXQ_IN msgrequest: Legacy RXQ_INIT request. Use extended version 10287 * in new code. 10288 */ 10289 #define MC_CMD_INIT_RXQ_IN_LENMIN 36 10290 #define MC_CMD_INIT_RXQ_IN_LENMAX 252 10291 #define MC_CMD_INIT_RXQ_IN_LENMAX_MCDI2 1020 10292 #define MC_CMD_INIT_RXQ_IN_LEN(num) (28+8*(num)) 10293 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_NUM(len) (((len)-28)/8) 10294 /* Size, in entries */ 10295 #define MC_CMD_INIT_RXQ_IN_SIZE_OFST 0 10296 #define MC_CMD_INIT_RXQ_IN_SIZE_LEN 4 10297 /* The EVQ to send events to. This is an index originally specified to INIT_EVQ 10298 */ 10299 #define MC_CMD_INIT_RXQ_IN_TARGET_EVQ_OFST 4 10300 #define MC_CMD_INIT_RXQ_IN_TARGET_EVQ_LEN 4 10301 /* The value to put in the event data. Check hardware spec. for valid range. */ 10302 #define MC_CMD_INIT_RXQ_IN_LABEL_OFST 8 10303 #define MC_CMD_INIT_RXQ_IN_LABEL_LEN 4 10304 /* Desired instance. Must be set to a specific instance, which is a function 10305 * local queue index. The calling client must be the currently-assigned user of 10306 * this VI (see MC_CMD_SET_VI_USER). 10307 */ 10308 #define MC_CMD_INIT_RXQ_IN_INSTANCE_OFST 12 10309 #define MC_CMD_INIT_RXQ_IN_INSTANCE_LEN 4 10310 /* There will be more flags here. */ 10311 #define MC_CMD_INIT_RXQ_IN_FLAGS_OFST 16 10312 #define MC_CMD_INIT_RXQ_IN_FLAGS_LEN 4 10313 #define MC_CMD_INIT_RXQ_IN_FLAG_BUFF_MODE_OFST 16 10314 #define MC_CMD_INIT_RXQ_IN_FLAG_BUFF_MODE_LBN 0 10315 #define MC_CMD_INIT_RXQ_IN_FLAG_BUFF_MODE_WIDTH 1 10316 #define MC_CMD_INIT_RXQ_IN_FLAG_HDR_SPLIT_OFST 16 10317 #define MC_CMD_INIT_RXQ_IN_FLAG_HDR_SPLIT_LBN 1 10318 #define MC_CMD_INIT_RXQ_IN_FLAG_HDR_SPLIT_WIDTH 1 10319 #define MC_CMD_INIT_RXQ_IN_FLAG_TIMESTAMP_OFST 16 10320 #define MC_CMD_INIT_RXQ_IN_FLAG_TIMESTAMP_LBN 2 10321 #define MC_CMD_INIT_RXQ_IN_FLAG_TIMESTAMP_WIDTH 1 10322 #define MC_CMD_INIT_RXQ_IN_CRC_MODE_OFST 16 10323 #define MC_CMD_INIT_RXQ_IN_CRC_MODE_LBN 3 10324 #define MC_CMD_INIT_RXQ_IN_CRC_MODE_WIDTH 4 10325 #define MC_CMD_INIT_RXQ_IN_FLAG_CHAIN_OFST 16 10326 #define MC_CMD_INIT_RXQ_IN_FLAG_CHAIN_LBN 7 10327 #define MC_CMD_INIT_RXQ_IN_FLAG_CHAIN_WIDTH 1 10328 #define MC_CMD_INIT_RXQ_IN_FLAG_PREFIX_OFST 16 10329 #define MC_CMD_INIT_RXQ_IN_FLAG_PREFIX_LBN 8 10330 #define MC_CMD_INIT_RXQ_IN_FLAG_PREFIX_WIDTH 1 10331 #define MC_CMD_INIT_RXQ_IN_FLAG_DISABLE_SCATTER_OFST 16 10332 #define MC_CMD_INIT_RXQ_IN_FLAG_DISABLE_SCATTER_LBN 9 10333 #define MC_CMD_INIT_RXQ_IN_FLAG_DISABLE_SCATTER_WIDTH 1 10334 #define MC_CMD_INIT_RXQ_IN_UNUSED_OFST 16 10335 #define MC_CMD_INIT_RXQ_IN_UNUSED_LBN 10 10336 #define MC_CMD_INIT_RXQ_IN_UNUSED_WIDTH 1 10337 /* Owner ID to use if in buffer mode (zero if physical) */ 10338 #define MC_CMD_INIT_RXQ_IN_OWNER_ID_OFST 20 10339 #define MC_CMD_INIT_RXQ_IN_OWNER_ID_LEN 4 10340 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 10341 #define MC_CMD_INIT_RXQ_IN_PORT_ID_OFST 24 10342 #define MC_CMD_INIT_RXQ_IN_PORT_ID_LEN 4 10343 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 10344 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_OFST 28 10345 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LEN 8 10346 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_OFST 28 10347 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_LEN 4 10348 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_LBN 224 10349 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_WIDTH 32 10350 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_OFST 32 10351 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_LEN 4 10352 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_LBN 256 10353 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_WIDTH 32 10354 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_MINNUM 1 10355 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_MAXNUM 28 10356 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_MAXNUM_MCDI2 124 10357 10358 /* MC_CMD_INIT_RXQ_EXT_IN msgrequest: Extended RXQ_INIT with additional mode 10359 * flags 10360 */ 10361 #define MC_CMD_INIT_RXQ_EXT_IN_LEN 544 10362 /* Size, in entries */ 10363 #define MC_CMD_INIT_RXQ_EXT_IN_SIZE_OFST 0 10364 #define MC_CMD_INIT_RXQ_EXT_IN_SIZE_LEN 4 10365 /* The EVQ to send events to. This is an index originally specified to 10366 * INIT_EVQ. If DMA_MODE == PACKED_STREAM this must be equal to INSTANCE. 10367 */ 10368 #define MC_CMD_INIT_RXQ_EXT_IN_TARGET_EVQ_OFST 4 10369 #define MC_CMD_INIT_RXQ_EXT_IN_TARGET_EVQ_LEN 4 10370 /* The value to put in the event data. Check hardware spec. for valid range. 10371 * This field is ignored if DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER or DMA_MODE 10372 * == PACKED_STREAM. 10373 */ 10374 #define MC_CMD_INIT_RXQ_EXT_IN_LABEL_OFST 8 10375 #define MC_CMD_INIT_RXQ_EXT_IN_LABEL_LEN 4 10376 /* Desired instance. Must be set to a specific instance, which is a function 10377 * local queue index. The calling client must be the currently-assigned user of 10378 * this VI (see MC_CMD_SET_VI_USER). 10379 */ 10380 #define MC_CMD_INIT_RXQ_EXT_IN_INSTANCE_OFST 12 10381 #define MC_CMD_INIT_RXQ_EXT_IN_INSTANCE_LEN 4 10382 /* There will be more flags here. */ 10383 #define MC_CMD_INIT_RXQ_EXT_IN_FLAGS_OFST 16 10384 #define MC_CMD_INIT_RXQ_EXT_IN_FLAGS_LEN 4 10385 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_BUFF_MODE_OFST 16 10386 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_BUFF_MODE_LBN 0 10387 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_BUFF_MODE_WIDTH 1 10388 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_HDR_SPLIT_OFST 16 10389 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_HDR_SPLIT_LBN 1 10390 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_HDR_SPLIT_WIDTH 1 10391 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_TIMESTAMP_OFST 16 10392 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_TIMESTAMP_LBN 2 10393 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_TIMESTAMP_WIDTH 1 10394 #define MC_CMD_INIT_RXQ_EXT_IN_CRC_MODE_OFST 16 10395 #define MC_CMD_INIT_RXQ_EXT_IN_CRC_MODE_LBN 3 10396 #define MC_CMD_INIT_RXQ_EXT_IN_CRC_MODE_WIDTH 4 10397 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_CHAIN_OFST 16 10398 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_CHAIN_LBN 7 10399 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_CHAIN_WIDTH 1 10400 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_PREFIX_OFST 16 10401 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_PREFIX_LBN 8 10402 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_PREFIX_WIDTH 1 10403 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_DISABLE_SCATTER_OFST 16 10404 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_DISABLE_SCATTER_LBN 9 10405 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_DISABLE_SCATTER_WIDTH 1 10406 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_MODE_OFST 16 10407 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_MODE_LBN 10 10408 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_MODE_WIDTH 4 10409 /* enum: One packet per descriptor (for normal networking) */ 10410 #define MC_CMD_INIT_RXQ_EXT_IN_SINGLE_PACKET 0x0 10411 /* enum: Pack multiple packets into large descriptors (for SolarCapture) */ 10412 #define MC_CMD_INIT_RXQ_EXT_IN_PACKED_STREAM 0x1 10413 /* enum: Pack multiple packets into large descriptors using the format designed 10414 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with 10415 * multiple fixed-size packet buffers within each bucket. For a full 10416 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath 10417 * firmware. 10418 */ 10419 #define MC_CMD_INIT_RXQ_EXT_IN_EQUAL_STRIDE_SUPER_BUFFER 0x2 10420 /* enum: Deprecated name for EQUAL_STRIDE_SUPER_BUFFER. */ 10421 #define MC_CMD_INIT_RXQ_EXT_IN_EQUAL_STRIDE_PACKED_STREAM 0x2 10422 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SNAPSHOT_MODE_OFST 16 10423 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SNAPSHOT_MODE_LBN 14 10424 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SNAPSHOT_MODE_WIDTH 1 10425 #define MC_CMD_INIT_RXQ_EXT_IN_PACKED_STREAM_BUFF_SIZE_OFST 16 10426 #define MC_CMD_INIT_RXQ_EXT_IN_PACKED_STREAM_BUFF_SIZE_LBN 15 10427 #define MC_CMD_INIT_RXQ_EXT_IN_PACKED_STREAM_BUFF_SIZE_WIDTH 3 10428 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_1M 0x0 /* enum */ 10429 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_512K 0x1 /* enum */ 10430 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_256K 0x2 /* enum */ 10431 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_128K 0x3 /* enum */ 10432 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_64K 0x4 /* enum */ 10433 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_WANT_OUTER_CLASSES_OFST 16 10434 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_WANT_OUTER_CLASSES_LBN 18 10435 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1 10436 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_FORCE_EV_MERGING_OFST 16 10437 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_FORCE_EV_MERGING_LBN 19 10438 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_FORCE_EV_MERGING_WIDTH 1 10439 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_NO_CONT_EV_OFST 16 10440 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_NO_CONT_EV_LBN 20 10441 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_NO_CONT_EV_WIDTH 1 10442 /* Owner ID to use if in buffer mode (zero if physical) */ 10443 #define MC_CMD_INIT_RXQ_EXT_IN_OWNER_ID_OFST 20 10444 #define MC_CMD_INIT_RXQ_EXT_IN_OWNER_ID_LEN 4 10445 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 10446 #define MC_CMD_INIT_RXQ_EXT_IN_PORT_ID_OFST 24 10447 #define MC_CMD_INIT_RXQ_EXT_IN_PORT_ID_LEN 4 10448 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 10449 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_OFST 28 10450 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LEN 8 10451 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_OFST 28 10452 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_LEN 4 10453 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_LBN 224 10454 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_WIDTH 32 10455 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_OFST 32 10456 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_LEN 4 10457 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_LBN 256 10458 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_WIDTH 32 10459 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_MINNUM 0 10460 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_MAXNUM 64 10461 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_MAXNUM_MCDI2 64 10462 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 10463 #define MC_CMD_INIT_RXQ_EXT_IN_SNAPSHOT_LENGTH_OFST 540 10464 #define MC_CMD_INIT_RXQ_EXT_IN_SNAPSHOT_LENGTH_LEN 4 10465 10466 /* MC_CMD_INIT_RXQ_V3_IN msgrequest */ 10467 #define MC_CMD_INIT_RXQ_V3_IN_LEN 560 10468 /* Size, in entries */ 10469 #define MC_CMD_INIT_RXQ_V3_IN_SIZE_OFST 0 10470 #define MC_CMD_INIT_RXQ_V3_IN_SIZE_LEN 4 10471 /* The EVQ to send events to. This is an index originally specified to 10472 * INIT_EVQ. If DMA_MODE == PACKED_STREAM this must be equal to INSTANCE. 10473 */ 10474 #define MC_CMD_INIT_RXQ_V3_IN_TARGET_EVQ_OFST 4 10475 #define MC_CMD_INIT_RXQ_V3_IN_TARGET_EVQ_LEN 4 10476 /* The value to put in the event data. Check hardware spec. for valid range. 10477 * This field is ignored if DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER or DMA_MODE 10478 * == PACKED_STREAM. 10479 */ 10480 #define MC_CMD_INIT_RXQ_V3_IN_LABEL_OFST 8 10481 #define MC_CMD_INIT_RXQ_V3_IN_LABEL_LEN 4 10482 /* Desired instance. Must be set to a specific instance, which is a function 10483 * local queue index. The calling client must be the currently-assigned user of 10484 * this VI (see MC_CMD_SET_VI_USER). 10485 */ 10486 #define MC_CMD_INIT_RXQ_V3_IN_INSTANCE_OFST 12 10487 #define MC_CMD_INIT_RXQ_V3_IN_INSTANCE_LEN 4 10488 /* There will be more flags here. */ 10489 #define MC_CMD_INIT_RXQ_V3_IN_FLAGS_OFST 16 10490 #define MC_CMD_INIT_RXQ_V3_IN_FLAGS_LEN 4 10491 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_BUFF_MODE_OFST 16 10492 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_BUFF_MODE_LBN 0 10493 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_BUFF_MODE_WIDTH 1 10494 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_HDR_SPLIT_OFST 16 10495 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_HDR_SPLIT_LBN 1 10496 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_HDR_SPLIT_WIDTH 1 10497 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_TIMESTAMP_OFST 16 10498 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_TIMESTAMP_LBN 2 10499 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_TIMESTAMP_WIDTH 1 10500 #define MC_CMD_INIT_RXQ_V3_IN_CRC_MODE_OFST 16 10501 #define MC_CMD_INIT_RXQ_V3_IN_CRC_MODE_LBN 3 10502 #define MC_CMD_INIT_RXQ_V3_IN_CRC_MODE_WIDTH 4 10503 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_CHAIN_OFST 16 10504 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_CHAIN_LBN 7 10505 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_CHAIN_WIDTH 1 10506 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_PREFIX_OFST 16 10507 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_PREFIX_LBN 8 10508 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_PREFIX_WIDTH 1 10509 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_DISABLE_SCATTER_OFST 16 10510 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_DISABLE_SCATTER_LBN 9 10511 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_DISABLE_SCATTER_WIDTH 1 10512 #define MC_CMD_INIT_RXQ_V3_IN_DMA_MODE_OFST 16 10513 #define MC_CMD_INIT_RXQ_V3_IN_DMA_MODE_LBN 10 10514 #define MC_CMD_INIT_RXQ_V3_IN_DMA_MODE_WIDTH 4 10515 /* enum: One packet per descriptor (for normal networking) */ 10516 #define MC_CMD_INIT_RXQ_V3_IN_SINGLE_PACKET 0x0 10517 /* enum: Pack multiple packets into large descriptors (for SolarCapture) */ 10518 #define MC_CMD_INIT_RXQ_V3_IN_PACKED_STREAM 0x1 10519 /* enum: Pack multiple packets into large descriptors using the format designed 10520 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with 10521 * multiple fixed-size packet buffers within each bucket. For a full 10522 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath 10523 * firmware. 10524 */ 10525 #define MC_CMD_INIT_RXQ_V3_IN_EQUAL_STRIDE_SUPER_BUFFER 0x2 10526 /* enum: Deprecated name for EQUAL_STRIDE_SUPER_BUFFER. */ 10527 #define MC_CMD_INIT_RXQ_V3_IN_EQUAL_STRIDE_PACKED_STREAM 0x2 10528 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SNAPSHOT_MODE_OFST 16 10529 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SNAPSHOT_MODE_LBN 14 10530 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SNAPSHOT_MODE_WIDTH 1 10531 #define MC_CMD_INIT_RXQ_V3_IN_PACKED_STREAM_BUFF_SIZE_OFST 16 10532 #define MC_CMD_INIT_RXQ_V3_IN_PACKED_STREAM_BUFF_SIZE_LBN 15 10533 #define MC_CMD_INIT_RXQ_V3_IN_PACKED_STREAM_BUFF_SIZE_WIDTH 3 10534 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_1M 0x0 /* enum */ 10535 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_512K 0x1 /* enum */ 10536 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_256K 0x2 /* enum */ 10537 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_128K 0x3 /* enum */ 10538 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_64K 0x4 /* enum */ 10539 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_WANT_OUTER_CLASSES_OFST 16 10540 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_WANT_OUTER_CLASSES_LBN 18 10541 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1 10542 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_FORCE_EV_MERGING_OFST 16 10543 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_FORCE_EV_MERGING_LBN 19 10544 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_FORCE_EV_MERGING_WIDTH 1 10545 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_NO_CONT_EV_OFST 16 10546 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_NO_CONT_EV_LBN 20 10547 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_NO_CONT_EV_WIDTH 1 10548 /* Owner ID to use if in buffer mode (zero if physical) */ 10549 #define MC_CMD_INIT_RXQ_V3_IN_OWNER_ID_OFST 20 10550 #define MC_CMD_INIT_RXQ_V3_IN_OWNER_ID_LEN 4 10551 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 10552 #define MC_CMD_INIT_RXQ_V3_IN_PORT_ID_OFST 24 10553 #define MC_CMD_INIT_RXQ_V3_IN_PORT_ID_LEN 4 10554 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 10555 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_OFST 28 10556 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LEN 8 10557 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_OFST 28 10558 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_LEN 4 10559 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_LBN 224 10560 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_WIDTH 32 10561 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_OFST 32 10562 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_LEN 4 10563 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_LBN 256 10564 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_WIDTH 32 10565 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_MINNUM 0 10566 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_MAXNUM 64 10567 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_MAXNUM_MCDI2 64 10568 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 10569 #define MC_CMD_INIT_RXQ_V3_IN_SNAPSHOT_LENGTH_OFST 540 10570 #define MC_CMD_INIT_RXQ_V3_IN_SNAPSHOT_LENGTH_LEN 4 10571 /* The number of packet buffers that will be contained within each 10572 * EQUAL_STRIDE_SUPER_BUFFER format bucket supplied by the driver. This field 10573 * is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 10574 */ 10575 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_BUFFERS_PER_BUCKET_OFST 544 10576 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_BUFFERS_PER_BUCKET_LEN 4 10577 /* The length in bytes of the area in each packet buffer that can be written to 10578 * by the adapter. This is used to store the packet prefix and the packet 10579 * payload. This length does not include any end padding added by the driver. 10580 * This field is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 10581 */ 10582 #define MC_CMD_INIT_RXQ_V3_IN_ES_MAX_DMA_LEN_OFST 548 10583 #define MC_CMD_INIT_RXQ_V3_IN_ES_MAX_DMA_LEN_LEN 4 10584 /* The length in bytes of a single packet buffer within a 10585 * EQUAL_STRIDE_SUPER_BUFFER format bucket. This field is ignored unless 10586 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 10587 */ 10588 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_STRIDE_OFST 552 10589 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_STRIDE_LEN 4 10590 /* The maximum time in nanoseconds that the datapath will be backpressured if 10591 * there are no RX descriptors available. If the timeout is reached and there 10592 * are still no descriptors then the packet will be dropped. A timeout of 0 10593 * means the datapath will never be blocked. This field is ignored unless 10594 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 10595 */ 10596 #define MC_CMD_INIT_RXQ_V3_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_OFST 556 10597 #define MC_CMD_INIT_RXQ_V3_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_LEN 4 10598 10599 /* MC_CMD_INIT_RXQ_V4_IN msgrequest: INIT_RXQ request with new field required 10600 * for systems with a QDMA (currently, Riverhead) 10601 */ 10602 #define MC_CMD_INIT_RXQ_V4_IN_LEN 564 10603 /* Size, in entries */ 10604 #define MC_CMD_INIT_RXQ_V4_IN_SIZE_OFST 0 10605 #define MC_CMD_INIT_RXQ_V4_IN_SIZE_LEN 4 10606 /* The EVQ to send events to. This is an index originally specified to 10607 * INIT_EVQ. If DMA_MODE == PACKED_STREAM this must be equal to INSTANCE. 10608 */ 10609 #define MC_CMD_INIT_RXQ_V4_IN_TARGET_EVQ_OFST 4 10610 #define MC_CMD_INIT_RXQ_V4_IN_TARGET_EVQ_LEN 4 10611 /* The value to put in the event data. Check hardware spec. for valid range. 10612 * This field is ignored if DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER or DMA_MODE 10613 * == PACKED_STREAM. 10614 */ 10615 #define MC_CMD_INIT_RXQ_V4_IN_LABEL_OFST 8 10616 #define MC_CMD_INIT_RXQ_V4_IN_LABEL_LEN 4 10617 /* Desired instance. Must be set to a specific instance, which is a function 10618 * local queue index. The calling client must be the currently-assigned user of 10619 * this VI (see MC_CMD_SET_VI_USER). 10620 */ 10621 #define MC_CMD_INIT_RXQ_V4_IN_INSTANCE_OFST 12 10622 #define MC_CMD_INIT_RXQ_V4_IN_INSTANCE_LEN 4 10623 /* There will be more flags here. */ 10624 #define MC_CMD_INIT_RXQ_V4_IN_FLAGS_OFST 16 10625 #define MC_CMD_INIT_RXQ_V4_IN_FLAGS_LEN 4 10626 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_BUFF_MODE_OFST 16 10627 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_BUFF_MODE_LBN 0 10628 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_BUFF_MODE_WIDTH 1 10629 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_HDR_SPLIT_OFST 16 10630 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_HDR_SPLIT_LBN 1 10631 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_HDR_SPLIT_WIDTH 1 10632 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_TIMESTAMP_OFST 16 10633 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_TIMESTAMP_LBN 2 10634 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_TIMESTAMP_WIDTH 1 10635 #define MC_CMD_INIT_RXQ_V4_IN_CRC_MODE_OFST 16 10636 #define MC_CMD_INIT_RXQ_V4_IN_CRC_MODE_LBN 3 10637 #define MC_CMD_INIT_RXQ_V4_IN_CRC_MODE_WIDTH 4 10638 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_CHAIN_OFST 16 10639 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_CHAIN_LBN 7 10640 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_CHAIN_WIDTH 1 10641 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_PREFIX_OFST 16 10642 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_PREFIX_LBN 8 10643 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_PREFIX_WIDTH 1 10644 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_DISABLE_SCATTER_OFST 16 10645 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_DISABLE_SCATTER_LBN 9 10646 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_DISABLE_SCATTER_WIDTH 1 10647 #define MC_CMD_INIT_RXQ_V4_IN_DMA_MODE_OFST 16 10648 #define MC_CMD_INIT_RXQ_V4_IN_DMA_MODE_LBN 10 10649 #define MC_CMD_INIT_RXQ_V4_IN_DMA_MODE_WIDTH 4 10650 /* enum: One packet per descriptor (for normal networking) */ 10651 #define MC_CMD_INIT_RXQ_V4_IN_SINGLE_PACKET 0x0 10652 /* enum: Pack multiple packets into large descriptors (for SolarCapture) */ 10653 #define MC_CMD_INIT_RXQ_V4_IN_PACKED_STREAM 0x1 10654 /* enum: Pack multiple packets into large descriptors using the format designed 10655 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with 10656 * multiple fixed-size packet buffers within each bucket. For a full 10657 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath 10658 * firmware. 10659 */ 10660 #define MC_CMD_INIT_RXQ_V4_IN_EQUAL_STRIDE_SUPER_BUFFER 0x2 10661 /* enum: Deprecated name for EQUAL_STRIDE_SUPER_BUFFER. */ 10662 #define MC_CMD_INIT_RXQ_V4_IN_EQUAL_STRIDE_PACKED_STREAM 0x2 10663 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SNAPSHOT_MODE_OFST 16 10664 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SNAPSHOT_MODE_LBN 14 10665 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SNAPSHOT_MODE_WIDTH 1 10666 #define MC_CMD_INIT_RXQ_V4_IN_PACKED_STREAM_BUFF_SIZE_OFST 16 10667 #define MC_CMD_INIT_RXQ_V4_IN_PACKED_STREAM_BUFF_SIZE_LBN 15 10668 #define MC_CMD_INIT_RXQ_V4_IN_PACKED_STREAM_BUFF_SIZE_WIDTH 3 10669 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_1M 0x0 /* enum */ 10670 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_512K 0x1 /* enum */ 10671 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_256K 0x2 /* enum */ 10672 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_128K 0x3 /* enum */ 10673 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_64K 0x4 /* enum */ 10674 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_WANT_OUTER_CLASSES_OFST 16 10675 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_WANT_OUTER_CLASSES_LBN 18 10676 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1 10677 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_FORCE_EV_MERGING_OFST 16 10678 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_FORCE_EV_MERGING_LBN 19 10679 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_FORCE_EV_MERGING_WIDTH 1 10680 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_NO_CONT_EV_OFST 16 10681 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_NO_CONT_EV_LBN 20 10682 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_NO_CONT_EV_WIDTH 1 10683 /* Owner ID to use if in buffer mode (zero if physical) */ 10684 #define MC_CMD_INIT_RXQ_V4_IN_OWNER_ID_OFST 20 10685 #define MC_CMD_INIT_RXQ_V4_IN_OWNER_ID_LEN 4 10686 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 10687 #define MC_CMD_INIT_RXQ_V4_IN_PORT_ID_OFST 24 10688 #define MC_CMD_INIT_RXQ_V4_IN_PORT_ID_LEN 4 10689 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 10690 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_OFST 28 10691 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LEN 8 10692 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_OFST 28 10693 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_LEN 4 10694 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_LBN 224 10695 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_WIDTH 32 10696 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_OFST 32 10697 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_LEN 4 10698 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_LBN 256 10699 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_WIDTH 32 10700 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_MINNUM 0 10701 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_MAXNUM 64 10702 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_MAXNUM_MCDI2 64 10703 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 10704 #define MC_CMD_INIT_RXQ_V4_IN_SNAPSHOT_LENGTH_OFST 540 10705 #define MC_CMD_INIT_RXQ_V4_IN_SNAPSHOT_LENGTH_LEN 4 10706 /* The number of packet buffers that will be contained within each 10707 * EQUAL_STRIDE_SUPER_BUFFER format bucket supplied by the driver. This field 10708 * is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 10709 */ 10710 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_BUFFERS_PER_BUCKET_OFST 544 10711 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_BUFFERS_PER_BUCKET_LEN 4 10712 /* The length in bytes of the area in each packet buffer that can be written to 10713 * by the adapter. This is used to store the packet prefix and the packet 10714 * payload. This length does not include any end padding added by the driver. 10715 * This field is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 10716 */ 10717 #define MC_CMD_INIT_RXQ_V4_IN_ES_MAX_DMA_LEN_OFST 548 10718 #define MC_CMD_INIT_RXQ_V4_IN_ES_MAX_DMA_LEN_LEN 4 10719 /* The length in bytes of a single packet buffer within a 10720 * EQUAL_STRIDE_SUPER_BUFFER format bucket. This field is ignored unless 10721 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 10722 */ 10723 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_STRIDE_OFST 552 10724 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_STRIDE_LEN 4 10725 /* The maximum time in nanoseconds that the datapath will be backpressured if 10726 * there are no RX descriptors available. If the timeout is reached and there 10727 * are still no descriptors then the packet will be dropped. A timeout of 0 10728 * means the datapath will never be blocked. This field is ignored unless 10729 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 10730 */ 10731 #define MC_CMD_INIT_RXQ_V4_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_OFST 556 10732 #define MC_CMD_INIT_RXQ_V4_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_LEN 4 10733 /* V4 message data */ 10734 #define MC_CMD_INIT_RXQ_V4_IN_V4_DATA_OFST 560 10735 #define MC_CMD_INIT_RXQ_V4_IN_V4_DATA_LEN 4 10736 /* Size in bytes of buffers attached to descriptors posted to this queue. Set 10737 * to zero if using this message on non-QDMA based platforms. Currently in 10738 * Riverhead there is a global limit of eight different buffer sizes across all 10739 * active queues. A 2KB and 4KB buffer is guaranteed to be available, but a 10740 * request for a different buffer size will fail if there are already eight 10741 * other buffer sizes in use. In future Riverhead this limit will go away and 10742 * any size will be accepted. 10743 */ 10744 #define MC_CMD_INIT_RXQ_V4_IN_BUFFER_SIZE_BYTES_OFST 560 10745 #define MC_CMD_INIT_RXQ_V4_IN_BUFFER_SIZE_BYTES_LEN 4 10746 10747 /* MC_CMD_INIT_RXQ_V5_IN msgrequest: INIT_RXQ request with ability to request a 10748 * different RX packet prefix 10749 */ 10750 #define MC_CMD_INIT_RXQ_V5_IN_LEN 568 10751 /* Size, in entries */ 10752 #define MC_CMD_INIT_RXQ_V5_IN_SIZE_OFST 0 10753 #define MC_CMD_INIT_RXQ_V5_IN_SIZE_LEN 4 10754 /* The EVQ to send events to. This is an index originally specified to 10755 * INIT_EVQ. If DMA_MODE == PACKED_STREAM this must be equal to INSTANCE. 10756 */ 10757 #define MC_CMD_INIT_RXQ_V5_IN_TARGET_EVQ_OFST 4 10758 #define MC_CMD_INIT_RXQ_V5_IN_TARGET_EVQ_LEN 4 10759 /* The value to put in the event data. Check hardware spec. for valid range. 10760 * This field is ignored if DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER or DMA_MODE 10761 * == PACKED_STREAM. 10762 */ 10763 #define MC_CMD_INIT_RXQ_V5_IN_LABEL_OFST 8 10764 #define MC_CMD_INIT_RXQ_V5_IN_LABEL_LEN 4 10765 /* Desired instance. Must be set to a specific instance, which is a function 10766 * local queue index. The calling client must be the currently-assigned user of 10767 * this VI (see MC_CMD_SET_VI_USER). 10768 */ 10769 #define MC_CMD_INIT_RXQ_V5_IN_INSTANCE_OFST 12 10770 #define MC_CMD_INIT_RXQ_V5_IN_INSTANCE_LEN 4 10771 /* There will be more flags here. */ 10772 #define MC_CMD_INIT_RXQ_V5_IN_FLAGS_OFST 16 10773 #define MC_CMD_INIT_RXQ_V5_IN_FLAGS_LEN 4 10774 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_BUFF_MODE_OFST 16 10775 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_BUFF_MODE_LBN 0 10776 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_BUFF_MODE_WIDTH 1 10777 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_HDR_SPLIT_OFST 16 10778 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_HDR_SPLIT_LBN 1 10779 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_HDR_SPLIT_WIDTH 1 10780 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_TIMESTAMP_OFST 16 10781 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_TIMESTAMP_LBN 2 10782 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_TIMESTAMP_WIDTH 1 10783 #define MC_CMD_INIT_RXQ_V5_IN_CRC_MODE_OFST 16 10784 #define MC_CMD_INIT_RXQ_V5_IN_CRC_MODE_LBN 3 10785 #define MC_CMD_INIT_RXQ_V5_IN_CRC_MODE_WIDTH 4 10786 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_CHAIN_OFST 16 10787 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_CHAIN_LBN 7 10788 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_CHAIN_WIDTH 1 10789 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_PREFIX_OFST 16 10790 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_PREFIX_LBN 8 10791 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_PREFIX_WIDTH 1 10792 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_DISABLE_SCATTER_OFST 16 10793 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_DISABLE_SCATTER_LBN 9 10794 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_DISABLE_SCATTER_WIDTH 1 10795 #define MC_CMD_INIT_RXQ_V5_IN_DMA_MODE_OFST 16 10796 #define MC_CMD_INIT_RXQ_V5_IN_DMA_MODE_LBN 10 10797 #define MC_CMD_INIT_RXQ_V5_IN_DMA_MODE_WIDTH 4 10798 /* enum: One packet per descriptor (for normal networking) */ 10799 #define MC_CMD_INIT_RXQ_V5_IN_SINGLE_PACKET 0x0 10800 /* enum: Pack multiple packets into large descriptors (for SolarCapture) */ 10801 #define MC_CMD_INIT_RXQ_V5_IN_PACKED_STREAM 0x1 10802 /* enum: Pack multiple packets into large descriptors using the format designed 10803 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with 10804 * multiple fixed-size packet buffers within each bucket. For a full 10805 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath 10806 * firmware. 10807 */ 10808 #define MC_CMD_INIT_RXQ_V5_IN_EQUAL_STRIDE_SUPER_BUFFER 0x2 10809 /* enum: Deprecated name for EQUAL_STRIDE_SUPER_BUFFER. */ 10810 #define MC_CMD_INIT_RXQ_V5_IN_EQUAL_STRIDE_PACKED_STREAM 0x2 10811 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SNAPSHOT_MODE_OFST 16 10812 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SNAPSHOT_MODE_LBN 14 10813 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SNAPSHOT_MODE_WIDTH 1 10814 #define MC_CMD_INIT_RXQ_V5_IN_PACKED_STREAM_BUFF_SIZE_OFST 16 10815 #define MC_CMD_INIT_RXQ_V5_IN_PACKED_STREAM_BUFF_SIZE_LBN 15 10816 #define MC_CMD_INIT_RXQ_V5_IN_PACKED_STREAM_BUFF_SIZE_WIDTH 3 10817 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_1M 0x0 /* enum */ 10818 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_512K 0x1 /* enum */ 10819 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_256K 0x2 /* enum */ 10820 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_128K 0x3 /* enum */ 10821 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_64K 0x4 /* enum */ 10822 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_WANT_OUTER_CLASSES_OFST 16 10823 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_WANT_OUTER_CLASSES_LBN 18 10824 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1 10825 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_FORCE_EV_MERGING_OFST 16 10826 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_FORCE_EV_MERGING_LBN 19 10827 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_FORCE_EV_MERGING_WIDTH 1 10828 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_NO_CONT_EV_OFST 16 10829 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_NO_CONT_EV_LBN 20 10830 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_NO_CONT_EV_WIDTH 1 10831 /* Owner ID to use if in buffer mode (zero if physical) */ 10832 #define MC_CMD_INIT_RXQ_V5_IN_OWNER_ID_OFST 20 10833 #define MC_CMD_INIT_RXQ_V5_IN_OWNER_ID_LEN 4 10834 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 10835 #define MC_CMD_INIT_RXQ_V5_IN_PORT_ID_OFST 24 10836 #define MC_CMD_INIT_RXQ_V5_IN_PORT_ID_LEN 4 10837 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 10838 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_OFST 28 10839 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LEN 8 10840 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_OFST 28 10841 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_LEN 4 10842 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_LBN 224 10843 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_WIDTH 32 10844 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_OFST 32 10845 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_LEN 4 10846 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_LBN 256 10847 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_WIDTH 32 10848 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_MINNUM 0 10849 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_MAXNUM 64 10850 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_MAXNUM_MCDI2 64 10851 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 10852 #define MC_CMD_INIT_RXQ_V5_IN_SNAPSHOT_LENGTH_OFST 540 10853 #define MC_CMD_INIT_RXQ_V5_IN_SNAPSHOT_LENGTH_LEN 4 10854 /* The number of packet buffers that will be contained within each 10855 * EQUAL_STRIDE_SUPER_BUFFER format bucket supplied by the driver. This field 10856 * is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 10857 */ 10858 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_BUFFERS_PER_BUCKET_OFST 544 10859 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_BUFFERS_PER_BUCKET_LEN 4 10860 /* The length in bytes of the area in each packet buffer that can be written to 10861 * by the adapter. This is used to store the packet prefix and the packet 10862 * payload. This length does not include any end padding added by the driver. 10863 * This field is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 10864 */ 10865 #define MC_CMD_INIT_RXQ_V5_IN_ES_MAX_DMA_LEN_OFST 548 10866 #define MC_CMD_INIT_RXQ_V5_IN_ES_MAX_DMA_LEN_LEN 4 10867 /* The length in bytes of a single packet buffer within a 10868 * EQUAL_STRIDE_SUPER_BUFFER format bucket. This field is ignored unless 10869 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 10870 */ 10871 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_STRIDE_OFST 552 10872 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_STRIDE_LEN 4 10873 /* The maximum time in nanoseconds that the datapath will be backpressured if 10874 * there are no RX descriptors available. If the timeout is reached and there 10875 * are still no descriptors then the packet will be dropped. A timeout of 0 10876 * means the datapath will never be blocked. This field is ignored unless 10877 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 10878 */ 10879 #define MC_CMD_INIT_RXQ_V5_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_OFST 556 10880 #define MC_CMD_INIT_RXQ_V5_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_LEN 4 10881 /* V4 message data */ 10882 #define MC_CMD_INIT_RXQ_V5_IN_V4_DATA_OFST 560 10883 #define MC_CMD_INIT_RXQ_V5_IN_V4_DATA_LEN 4 10884 /* Size in bytes of buffers attached to descriptors posted to this queue. Set 10885 * to zero if using this message on non-QDMA based platforms. Currently in 10886 * Riverhead there is a global limit of eight different buffer sizes across all 10887 * active queues. A 2KB and 4KB buffer is guaranteed to be available, but a 10888 * request for a different buffer size will fail if there are already eight 10889 * other buffer sizes in use. In future Riverhead this limit will go away and 10890 * any size will be accepted. 10891 */ 10892 #define MC_CMD_INIT_RXQ_V5_IN_BUFFER_SIZE_BYTES_OFST 560 10893 #define MC_CMD_INIT_RXQ_V5_IN_BUFFER_SIZE_BYTES_LEN 4 10894 /* Prefix id for the RX prefix format to use on packets delivered this queue. 10895 * Zero is always a valid prefix id and means the default prefix format 10896 * documented for the platform. Other prefix ids can be obtained by calling 10897 * MC_CMD_GET_RX_PREFIX_ID with a requested set of prefix fields. 10898 */ 10899 #define MC_CMD_INIT_RXQ_V5_IN_RX_PREFIX_ID_OFST 564 10900 #define MC_CMD_INIT_RXQ_V5_IN_RX_PREFIX_ID_LEN 4 10901 10902 /* MC_CMD_INIT_RXQ_OUT msgresponse */ 10903 #define MC_CMD_INIT_RXQ_OUT_LEN 0 10904 10905 /* MC_CMD_INIT_RXQ_EXT_OUT msgresponse */ 10906 #define MC_CMD_INIT_RXQ_EXT_OUT_LEN 0 10907 10908 /* MC_CMD_INIT_RXQ_V3_OUT msgresponse */ 10909 #define MC_CMD_INIT_RXQ_V3_OUT_LEN 0 10910 10911 /* MC_CMD_INIT_RXQ_V4_OUT msgresponse */ 10912 #define MC_CMD_INIT_RXQ_V4_OUT_LEN 0 10913 10914 /* MC_CMD_INIT_RXQ_V5_OUT msgresponse */ 10915 #define MC_CMD_INIT_RXQ_V5_OUT_LEN 0 10916 10917 10918 /***********************************/ 10919 /* MC_CMD_INIT_TXQ 10920 */ 10921 #define MC_CMD_INIT_TXQ 0x82 10922 #define MC_CMD_INIT_TXQ_MSGSET 0x82 10923 #undef MC_CMD_0x82_PRIVILEGE_CTG 10924 10925 #define MC_CMD_0x82_PRIVILEGE_CTG SRIOV_CTG_GENERAL 10926 10927 /* MC_CMD_INIT_TXQ_IN msgrequest: Legacy INIT_TXQ request. Use extended version 10928 * in new code. 10929 */ 10930 #define MC_CMD_INIT_TXQ_IN_LENMIN 36 10931 #define MC_CMD_INIT_TXQ_IN_LENMAX 252 10932 #define MC_CMD_INIT_TXQ_IN_LENMAX_MCDI2 1020 10933 #define MC_CMD_INIT_TXQ_IN_LEN(num) (28+8*(num)) 10934 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_NUM(len) (((len)-28)/8) 10935 /* Size, in entries */ 10936 #define MC_CMD_INIT_TXQ_IN_SIZE_OFST 0 10937 #define MC_CMD_INIT_TXQ_IN_SIZE_LEN 4 10938 /* The EVQ to send events to. This is an index originally specified to 10939 * INIT_EVQ. 10940 */ 10941 #define MC_CMD_INIT_TXQ_IN_TARGET_EVQ_OFST 4 10942 #define MC_CMD_INIT_TXQ_IN_TARGET_EVQ_LEN 4 10943 /* The value to put in the event data. Check hardware spec. for valid range. */ 10944 #define MC_CMD_INIT_TXQ_IN_LABEL_OFST 8 10945 #define MC_CMD_INIT_TXQ_IN_LABEL_LEN 4 10946 /* Desired instance. Must be set to a specific instance, which is a function 10947 * local queue index. The calling client must be the currently-assigned user of 10948 * this VI (see MC_CMD_SET_VI_USER). 10949 */ 10950 #define MC_CMD_INIT_TXQ_IN_INSTANCE_OFST 12 10951 #define MC_CMD_INIT_TXQ_IN_INSTANCE_LEN 4 10952 /* There will be more flags here. */ 10953 #define MC_CMD_INIT_TXQ_IN_FLAGS_OFST 16 10954 #define MC_CMD_INIT_TXQ_IN_FLAGS_LEN 4 10955 #define MC_CMD_INIT_TXQ_IN_FLAG_BUFF_MODE_OFST 16 10956 #define MC_CMD_INIT_TXQ_IN_FLAG_BUFF_MODE_LBN 0 10957 #define MC_CMD_INIT_TXQ_IN_FLAG_BUFF_MODE_WIDTH 1 10958 #define MC_CMD_INIT_TXQ_IN_FLAG_IP_CSUM_DIS_OFST 16 10959 #define MC_CMD_INIT_TXQ_IN_FLAG_IP_CSUM_DIS_LBN 1 10960 #define MC_CMD_INIT_TXQ_IN_FLAG_IP_CSUM_DIS_WIDTH 1 10961 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_CSUM_DIS_OFST 16 10962 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_CSUM_DIS_LBN 2 10963 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_CSUM_DIS_WIDTH 1 10964 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_UDP_ONLY_OFST 16 10965 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_UDP_ONLY_LBN 3 10966 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_UDP_ONLY_WIDTH 1 10967 #define MC_CMD_INIT_TXQ_IN_CRC_MODE_OFST 16 10968 #define MC_CMD_INIT_TXQ_IN_CRC_MODE_LBN 4 10969 #define MC_CMD_INIT_TXQ_IN_CRC_MODE_WIDTH 4 10970 #define MC_CMD_INIT_TXQ_IN_FLAG_TIMESTAMP_OFST 16 10971 #define MC_CMD_INIT_TXQ_IN_FLAG_TIMESTAMP_LBN 8 10972 #define MC_CMD_INIT_TXQ_IN_FLAG_TIMESTAMP_WIDTH 1 10973 #define MC_CMD_INIT_TXQ_IN_FLAG_PACER_BYPASS_OFST 16 10974 #define MC_CMD_INIT_TXQ_IN_FLAG_PACER_BYPASS_LBN 9 10975 #define MC_CMD_INIT_TXQ_IN_FLAG_PACER_BYPASS_WIDTH 1 10976 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_IP_CSUM_EN_OFST 16 10977 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_IP_CSUM_EN_LBN 10 10978 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_IP_CSUM_EN_WIDTH 1 10979 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_TCP_CSUM_EN_OFST 16 10980 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_TCP_CSUM_EN_LBN 11 10981 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_TCP_CSUM_EN_WIDTH 1 10982 /* Owner ID to use if in buffer mode (zero if physical) */ 10983 #define MC_CMD_INIT_TXQ_IN_OWNER_ID_OFST 20 10984 #define MC_CMD_INIT_TXQ_IN_OWNER_ID_LEN 4 10985 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 10986 #define MC_CMD_INIT_TXQ_IN_PORT_ID_OFST 24 10987 #define MC_CMD_INIT_TXQ_IN_PORT_ID_LEN 4 10988 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 10989 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_OFST 28 10990 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LEN 8 10991 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_OFST 28 10992 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_LEN 4 10993 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_LBN 224 10994 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_WIDTH 32 10995 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_OFST 32 10996 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_LEN 4 10997 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_LBN 256 10998 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_WIDTH 32 10999 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_MINNUM 1 11000 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_MAXNUM 28 11001 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_MAXNUM_MCDI2 124 11002 11003 /* MC_CMD_INIT_TXQ_EXT_IN msgrequest: Extended INIT_TXQ with additional mode 11004 * flags 11005 */ 11006 #define MC_CMD_INIT_TXQ_EXT_IN_LEN 544 11007 /* Size, in entries */ 11008 #define MC_CMD_INIT_TXQ_EXT_IN_SIZE_OFST 0 11009 #define MC_CMD_INIT_TXQ_EXT_IN_SIZE_LEN 4 11010 /* The EVQ to send events to. This is an index originally specified to 11011 * INIT_EVQ. 11012 */ 11013 #define MC_CMD_INIT_TXQ_EXT_IN_TARGET_EVQ_OFST 4 11014 #define MC_CMD_INIT_TXQ_EXT_IN_TARGET_EVQ_LEN 4 11015 /* The value to put in the event data. Check hardware spec. for valid range. */ 11016 #define MC_CMD_INIT_TXQ_EXT_IN_LABEL_OFST 8 11017 #define MC_CMD_INIT_TXQ_EXT_IN_LABEL_LEN 4 11018 /* Desired instance. Must be set to a specific instance, which is a function 11019 * local queue index. The calling client must be the currently-assigned user of 11020 * this VI (see MC_CMD_SET_VI_USER). 11021 */ 11022 #define MC_CMD_INIT_TXQ_EXT_IN_INSTANCE_OFST 12 11023 #define MC_CMD_INIT_TXQ_EXT_IN_INSTANCE_LEN 4 11024 /* There will be more flags here. */ 11025 #define MC_CMD_INIT_TXQ_EXT_IN_FLAGS_OFST 16 11026 #define MC_CMD_INIT_TXQ_EXT_IN_FLAGS_LEN 4 11027 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_BUFF_MODE_OFST 16 11028 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_BUFF_MODE_LBN 0 11029 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_BUFF_MODE_WIDTH 1 11030 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_IP_CSUM_DIS_OFST 16 11031 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_IP_CSUM_DIS_LBN 1 11032 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_IP_CSUM_DIS_WIDTH 1 11033 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_CSUM_DIS_OFST 16 11034 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_CSUM_DIS_LBN 2 11035 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_CSUM_DIS_WIDTH 1 11036 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_UDP_ONLY_OFST 16 11037 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_UDP_ONLY_LBN 3 11038 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_UDP_ONLY_WIDTH 1 11039 #define MC_CMD_INIT_TXQ_EXT_IN_CRC_MODE_OFST 16 11040 #define MC_CMD_INIT_TXQ_EXT_IN_CRC_MODE_LBN 4 11041 #define MC_CMD_INIT_TXQ_EXT_IN_CRC_MODE_WIDTH 4 11042 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TIMESTAMP_OFST 16 11043 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TIMESTAMP_LBN 8 11044 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TIMESTAMP_WIDTH 1 11045 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_PACER_BYPASS_OFST 16 11046 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_PACER_BYPASS_LBN 9 11047 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_PACER_BYPASS_WIDTH 1 11048 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_IP_CSUM_EN_OFST 16 11049 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_IP_CSUM_EN_LBN 10 11050 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_IP_CSUM_EN_WIDTH 1 11051 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_TCP_CSUM_EN_OFST 16 11052 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_TCP_CSUM_EN_LBN 11 11053 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_TCP_CSUM_EN_WIDTH 1 11054 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN_OFST 16 11055 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN_LBN 12 11056 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN_WIDTH 1 11057 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_OFST 16 11058 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_LBN 13 11059 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_WIDTH 1 11060 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_UTHRESH_OFST 16 11061 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_UTHRESH_LBN 14 11062 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_UTHRESH_WIDTH 1 11063 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_M2M_D2C_OFST 16 11064 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_M2M_D2C_LBN 15 11065 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_M2M_D2C_WIDTH 1 11066 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_DESC_PROXY_OFST 16 11067 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_DESC_PROXY_LBN 16 11068 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_DESC_PROXY_WIDTH 1 11069 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_ABS_TARGET_EVQ_OFST 16 11070 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_ABS_TARGET_EVQ_LBN 17 11071 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_ABS_TARGET_EVQ_WIDTH 1 11072 /* Owner ID to use if in buffer mode (zero if physical) */ 11073 #define MC_CMD_INIT_TXQ_EXT_IN_OWNER_ID_OFST 20 11074 #define MC_CMD_INIT_TXQ_EXT_IN_OWNER_ID_LEN 4 11075 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 11076 #define MC_CMD_INIT_TXQ_EXT_IN_PORT_ID_OFST 24 11077 #define MC_CMD_INIT_TXQ_EXT_IN_PORT_ID_LEN 4 11078 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 11079 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_OFST 28 11080 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LEN 8 11081 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_OFST 28 11082 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_LEN 4 11083 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_LBN 224 11084 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_WIDTH 32 11085 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_OFST 32 11086 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_LEN 4 11087 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_LBN 256 11088 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_WIDTH 32 11089 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_MINNUM 0 11090 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_MAXNUM 64 11091 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_MAXNUM_MCDI2 64 11092 /* Flags related to Qbb flow control mode. */ 11093 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_FLAGS_OFST 540 11094 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_FLAGS_LEN 4 11095 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_ENABLE_OFST 540 11096 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_ENABLE_LBN 0 11097 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_ENABLE_WIDTH 1 11098 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_PRIORITY_OFST 540 11099 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_PRIORITY_LBN 1 11100 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_PRIORITY_WIDTH 3 11101 11102 /* MC_CMD_INIT_TXQ_OUT msgresponse */ 11103 #define MC_CMD_INIT_TXQ_OUT_LEN 0 11104 11105 11106 /***********************************/ 11107 /* MC_CMD_FINI_EVQ 11108 * Teardown an EVQ. 11109 * 11110 * All DMAQs or EVQs that point to the EVQ to tear down must be torn down first 11111 * or the operation will fail with EBUSY 11112 */ 11113 #define MC_CMD_FINI_EVQ 0x83 11114 #define MC_CMD_FINI_EVQ_MSGSET 0x83 11115 #undef MC_CMD_0x83_PRIVILEGE_CTG 11116 11117 #define MC_CMD_0x83_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11118 11119 /* MC_CMD_FINI_EVQ_IN msgrequest */ 11120 #define MC_CMD_FINI_EVQ_IN_LEN 4 11121 /* Instance of EVQ to destroy. Should be the same instance as that previously 11122 * passed to INIT_EVQ 11123 */ 11124 #define MC_CMD_FINI_EVQ_IN_INSTANCE_OFST 0 11125 #define MC_CMD_FINI_EVQ_IN_INSTANCE_LEN 4 11126 11127 /* MC_CMD_FINI_EVQ_OUT msgresponse */ 11128 #define MC_CMD_FINI_EVQ_OUT_LEN 0 11129 11130 11131 /***********************************/ 11132 /* MC_CMD_FINI_RXQ 11133 * Teardown a RXQ. 11134 */ 11135 #define MC_CMD_FINI_RXQ 0x84 11136 #define MC_CMD_FINI_RXQ_MSGSET 0x84 11137 #undef MC_CMD_0x84_PRIVILEGE_CTG 11138 11139 #define MC_CMD_0x84_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11140 11141 /* MC_CMD_FINI_RXQ_IN msgrequest */ 11142 #define MC_CMD_FINI_RXQ_IN_LEN 4 11143 /* Instance of RXQ to destroy */ 11144 #define MC_CMD_FINI_RXQ_IN_INSTANCE_OFST 0 11145 #define MC_CMD_FINI_RXQ_IN_INSTANCE_LEN 4 11146 11147 /* MC_CMD_FINI_RXQ_OUT msgresponse */ 11148 #define MC_CMD_FINI_RXQ_OUT_LEN 0 11149 11150 11151 /***********************************/ 11152 /* MC_CMD_FINI_TXQ 11153 * Teardown a TXQ. 11154 */ 11155 #define MC_CMD_FINI_TXQ 0x85 11156 #define MC_CMD_FINI_TXQ_MSGSET 0x85 11157 #undef MC_CMD_0x85_PRIVILEGE_CTG 11158 11159 #define MC_CMD_0x85_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11160 11161 /* MC_CMD_FINI_TXQ_IN msgrequest */ 11162 #define MC_CMD_FINI_TXQ_IN_LEN 4 11163 /* Instance of TXQ to destroy */ 11164 #define MC_CMD_FINI_TXQ_IN_INSTANCE_OFST 0 11165 #define MC_CMD_FINI_TXQ_IN_INSTANCE_LEN 4 11166 11167 /* MC_CMD_FINI_TXQ_OUT msgresponse */ 11168 #define MC_CMD_FINI_TXQ_OUT_LEN 0 11169 11170 11171 /***********************************/ 11172 /* MC_CMD_DRIVER_EVENT 11173 * Generate an event on an EVQ belonging to the function issuing the command. 11174 */ 11175 #define MC_CMD_DRIVER_EVENT 0x86 11176 #define MC_CMD_DRIVER_EVENT_MSGSET 0x86 11177 #undef MC_CMD_0x86_PRIVILEGE_CTG 11178 11179 #define MC_CMD_0x86_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11180 11181 /* MC_CMD_DRIVER_EVENT_IN msgrequest */ 11182 #define MC_CMD_DRIVER_EVENT_IN_LEN 12 11183 /* Handle of target EVQ */ 11184 #define MC_CMD_DRIVER_EVENT_IN_EVQ_OFST 0 11185 #define MC_CMD_DRIVER_EVENT_IN_EVQ_LEN 4 11186 /* Bits 0 - 63 of event */ 11187 #define MC_CMD_DRIVER_EVENT_IN_DATA_OFST 4 11188 #define MC_CMD_DRIVER_EVENT_IN_DATA_LEN 8 11189 #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_OFST 4 11190 #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_LEN 4 11191 #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_LBN 32 11192 #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_WIDTH 32 11193 #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_OFST 8 11194 #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_LEN 4 11195 #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_LBN 64 11196 #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_WIDTH 32 11197 11198 /* MC_CMD_DRIVER_EVENT_OUT msgresponse */ 11199 #define MC_CMD_DRIVER_EVENT_OUT_LEN 0 11200 11201 11202 /***********************************/ 11203 /* MC_CMD_PROXY_CMD 11204 * Execute an arbitrary MCDI command on behalf of a different function, subject 11205 * to security restrictions. The command to be proxied follows immediately 11206 * afterward in the host buffer (or on the UART). This command supercedes 11207 * MC_CMD_SET_FUNC, which remains available for Siena but now deprecated. 11208 */ 11209 #define MC_CMD_PROXY_CMD 0x5b 11210 #define MC_CMD_PROXY_CMD_MSGSET 0x5b 11211 #undef MC_CMD_0x5b_PRIVILEGE_CTG 11212 11213 #define MC_CMD_0x5b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 11214 11215 /* MC_CMD_PROXY_CMD_IN msgrequest */ 11216 #define MC_CMD_PROXY_CMD_IN_LEN 4 11217 /* The handle of the target function. */ 11218 #define MC_CMD_PROXY_CMD_IN_TARGET_OFST 0 11219 #define MC_CMD_PROXY_CMD_IN_TARGET_LEN 4 11220 #define MC_CMD_PROXY_CMD_IN_TARGET_PF_OFST 0 11221 #define MC_CMD_PROXY_CMD_IN_TARGET_PF_LBN 0 11222 #define MC_CMD_PROXY_CMD_IN_TARGET_PF_WIDTH 16 11223 #define MC_CMD_PROXY_CMD_IN_TARGET_VF_OFST 0 11224 #define MC_CMD_PROXY_CMD_IN_TARGET_VF_LBN 16 11225 #define MC_CMD_PROXY_CMD_IN_TARGET_VF_WIDTH 16 11226 #define MC_CMD_PROXY_CMD_IN_VF_NULL 0xffff /* enum */ 11227 11228 /* MC_CMD_PROXY_CMD_OUT msgresponse */ 11229 #define MC_CMD_PROXY_CMD_OUT_LEN 0 11230 11231 /* MC_PROXY_STATUS_BUFFER structuredef: Host memory status buffer used to 11232 * manage proxied requests 11233 */ 11234 #define MC_PROXY_STATUS_BUFFER_LEN 16 11235 /* Handle allocated by the firmware for this proxy transaction */ 11236 #define MC_PROXY_STATUS_BUFFER_HANDLE_OFST 0 11237 #define MC_PROXY_STATUS_BUFFER_HANDLE_LEN 4 11238 /* enum: An invalid handle. */ 11239 #define MC_PROXY_STATUS_BUFFER_HANDLE_INVALID 0x0 11240 #define MC_PROXY_STATUS_BUFFER_HANDLE_LBN 0 11241 #define MC_PROXY_STATUS_BUFFER_HANDLE_WIDTH 32 11242 /* The requesting physical function number */ 11243 #define MC_PROXY_STATUS_BUFFER_PF_OFST 4 11244 #define MC_PROXY_STATUS_BUFFER_PF_LEN 2 11245 #define MC_PROXY_STATUS_BUFFER_PF_LBN 32 11246 #define MC_PROXY_STATUS_BUFFER_PF_WIDTH 16 11247 /* The requesting virtual function number. Set to VF_NULL if the target is a 11248 * PF. 11249 */ 11250 #define MC_PROXY_STATUS_BUFFER_VF_OFST 6 11251 #define MC_PROXY_STATUS_BUFFER_VF_LEN 2 11252 #define MC_PROXY_STATUS_BUFFER_VF_LBN 48 11253 #define MC_PROXY_STATUS_BUFFER_VF_WIDTH 16 11254 /* The target function RID. */ 11255 #define MC_PROXY_STATUS_BUFFER_RID_OFST 8 11256 #define MC_PROXY_STATUS_BUFFER_RID_LEN 2 11257 #define MC_PROXY_STATUS_BUFFER_RID_LBN 64 11258 #define MC_PROXY_STATUS_BUFFER_RID_WIDTH 16 11259 /* The status of the proxy as described in MC_CMD_PROXY_COMPLETE. */ 11260 #define MC_PROXY_STATUS_BUFFER_STATUS_OFST 10 11261 #define MC_PROXY_STATUS_BUFFER_STATUS_LEN 2 11262 #define MC_PROXY_STATUS_BUFFER_STATUS_LBN 80 11263 #define MC_PROXY_STATUS_BUFFER_STATUS_WIDTH 16 11264 /* If a request is authorized rather than carried out by the host, this is the 11265 * elevated privilege mask granted to the requesting function. 11266 */ 11267 #define MC_PROXY_STATUS_BUFFER_GRANTED_PRIVILEGES_OFST 12 11268 #define MC_PROXY_STATUS_BUFFER_GRANTED_PRIVILEGES_LEN 4 11269 #define MC_PROXY_STATUS_BUFFER_GRANTED_PRIVILEGES_LBN 96 11270 #define MC_PROXY_STATUS_BUFFER_GRANTED_PRIVILEGES_WIDTH 32 11271 11272 11273 /***********************************/ 11274 /* MC_CMD_PROXY_CONFIGURE 11275 * Enable/disable authorization of MCDI requests from unprivileged functions by 11276 * a designated admin function 11277 */ 11278 #define MC_CMD_PROXY_CONFIGURE 0x58 11279 #define MC_CMD_PROXY_CONFIGURE_MSGSET 0x58 11280 #undef MC_CMD_0x58_PRIVILEGE_CTG 11281 11282 #define MC_CMD_0x58_PRIVILEGE_CTG SRIOV_CTG_ADMIN 11283 11284 /* MC_CMD_PROXY_CONFIGURE_IN msgrequest */ 11285 #define MC_CMD_PROXY_CONFIGURE_IN_LEN 108 11286 #define MC_CMD_PROXY_CONFIGURE_IN_FLAGS_OFST 0 11287 #define MC_CMD_PROXY_CONFIGURE_IN_FLAGS_LEN 4 11288 #define MC_CMD_PROXY_CONFIGURE_IN_ENABLE_OFST 0 11289 #define MC_CMD_PROXY_CONFIGURE_IN_ENABLE_LBN 0 11290 #define MC_CMD_PROXY_CONFIGURE_IN_ENABLE_WIDTH 1 11291 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 11292 * of blocks, each of the size REQUEST_BLOCK_SIZE. 11293 */ 11294 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_OFST 4 11295 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LEN 8 11296 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LO_OFST 4 11297 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LO_LEN 4 11298 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LO_LBN 32 11299 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LO_WIDTH 32 11300 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_HI_OFST 8 11301 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_HI_LEN 4 11302 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_HI_LBN 64 11303 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_HI_WIDTH 32 11304 /* Must be a power of 2 */ 11305 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BLOCK_SIZE_OFST 12 11306 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BLOCK_SIZE_LEN 4 11307 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 11308 * of blocks, each of the size REPLY_BLOCK_SIZE. 11309 */ 11310 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_OFST 16 11311 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LEN 8 11312 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LO_OFST 16 11313 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LO_LEN 4 11314 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LO_LBN 128 11315 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LO_WIDTH 32 11316 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_HI_OFST 20 11317 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_HI_LEN 4 11318 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_HI_LBN 160 11319 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_HI_WIDTH 32 11320 /* Must be a power of 2 */ 11321 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BLOCK_SIZE_OFST 24 11322 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BLOCK_SIZE_LEN 4 11323 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 11324 * of blocks, each of the size STATUS_BLOCK_SIZE. This buffer is only needed if 11325 * host intends to complete proxied operations by using MC_CMD_PROXY_CMD. 11326 */ 11327 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_OFST 28 11328 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LEN 8 11329 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LO_OFST 28 11330 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LO_LEN 4 11331 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LO_LBN 224 11332 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LO_WIDTH 32 11333 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_HI_OFST 32 11334 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_HI_LEN 4 11335 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_HI_LBN 256 11336 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_HI_WIDTH 32 11337 /* Must be a power of 2, or zero if this buffer is not provided */ 11338 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BLOCK_SIZE_OFST 36 11339 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BLOCK_SIZE_LEN 4 11340 /* Applies to all three buffers */ 11341 #define MC_CMD_PROXY_CONFIGURE_IN_NUM_BLOCKS_OFST 40 11342 #define MC_CMD_PROXY_CONFIGURE_IN_NUM_BLOCKS_LEN 4 11343 /* A bit mask defining which MCDI operations may be proxied */ 11344 #define MC_CMD_PROXY_CONFIGURE_IN_ALLOWED_MCDI_MASK_OFST 44 11345 #define MC_CMD_PROXY_CONFIGURE_IN_ALLOWED_MCDI_MASK_LEN 64 11346 11347 /* MC_CMD_PROXY_CONFIGURE_EXT_IN msgrequest */ 11348 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_LEN 112 11349 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_FLAGS_OFST 0 11350 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_FLAGS_LEN 4 11351 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_ENABLE_OFST 0 11352 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_ENABLE_LBN 0 11353 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_ENABLE_WIDTH 1 11354 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 11355 * of blocks, each of the size REQUEST_BLOCK_SIZE. 11356 */ 11357 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_OFST 4 11358 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LEN 8 11359 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LO_OFST 4 11360 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LO_LEN 4 11361 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LO_LBN 32 11362 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LO_WIDTH 32 11363 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_HI_OFST 8 11364 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_HI_LEN 4 11365 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_HI_LBN 64 11366 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_HI_WIDTH 32 11367 /* Must be a power of 2 */ 11368 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BLOCK_SIZE_OFST 12 11369 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BLOCK_SIZE_LEN 4 11370 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 11371 * of blocks, each of the size REPLY_BLOCK_SIZE. 11372 */ 11373 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_OFST 16 11374 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LEN 8 11375 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LO_OFST 16 11376 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LO_LEN 4 11377 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LO_LBN 128 11378 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LO_WIDTH 32 11379 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_HI_OFST 20 11380 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_HI_LEN 4 11381 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_HI_LBN 160 11382 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_HI_WIDTH 32 11383 /* Must be a power of 2 */ 11384 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BLOCK_SIZE_OFST 24 11385 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BLOCK_SIZE_LEN 4 11386 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 11387 * of blocks, each of the size STATUS_BLOCK_SIZE. This buffer is only needed if 11388 * host intends to complete proxied operations by using MC_CMD_PROXY_CMD. 11389 */ 11390 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_OFST 28 11391 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LEN 8 11392 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LO_OFST 28 11393 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LO_LEN 4 11394 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LO_LBN 224 11395 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LO_WIDTH 32 11396 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_HI_OFST 32 11397 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_HI_LEN 4 11398 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_HI_LBN 256 11399 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_HI_WIDTH 32 11400 /* Must be a power of 2, or zero if this buffer is not provided */ 11401 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BLOCK_SIZE_OFST 36 11402 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BLOCK_SIZE_LEN 4 11403 /* Applies to all three buffers */ 11404 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_NUM_BLOCKS_OFST 40 11405 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_NUM_BLOCKS_LEN 4 11406 /* A bit mask defining which MCDI operations may be proxied */ 11407 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_ALLOWED_MCDI_MASK_OFST 44 11408 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_ALLOWED_MCDI_MASK_LEN 64 11409 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_RESERVED_OFST 108 11410 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_RESERVED_LEN 4 11411 11412 /* MC_CMD_PROXY_CONFIGURE_OUT msgresponse */ 11413 #define MC_CMD_PROXY_CONFIGURE_OUT_LEN 0 11414 11415 11416 /***********************************/ 11417 /* MC_CMD_PROXY_COMPLETE 11418 * Tells FW that a requested proxy operation has either been completed (by 11419 * using MC_CMD_PROXY_CMD) or authorized/declined. May only be sent by the 11420 * function that enabled proxying/authorization (by using 11421 * MC_CMD_PROXY_CONFIGURE). 11422 */ 11423 #define MC_CMD_PROXY_COMPLETE 0x5f 11424 #define MC_CMD_PROXY_COMPLETE_MSGSET 0x5f 11425 #undef MC_CMD_0x5f_PRIVILEGE_CTG 11426 11427 #define MC_CMD_0x5f_PRIVILEGE_CTG SRIOV_CTG_ADMIN 11428 11429 /* MC_CMD_PROXY_COMPLETE_IN msgrequest */ 11430 #define MC_CMD_PROXY_COMPLETE_IN_LEN 12 11431 #define MC_CMD_PROXY_COMPLETE_IN_BLOCK_INDEX_OFST 0 11432 #define MC_CMD_PROXY_COMPLETE_IN_BLOCK_INDEX_LEN 4 11433 #define MC_CMD_PROXY_COMPLETE_IN_STATUS_OFST 4 11434 #define MC_CMD_PROXY_COMPLETE_IN_STATUS_LEN 4 11435 /* enum: The operation has been completed by using MC_CMD_PROXY_CMD, the reply 11436 * is stored in the REPLY_BUFF. 11437 */ 11438 #define MC_CMD_PROXY_COMPLETE_IN_COMPLETE 0x0 11439 /* enum: The operation has been authorized. The originating function may now 11440 * try again. 11441 */ 11442 #define MC_CMD_PROXY_COMPLETE_IN_AUTHORIZED 0x1 11443 /* enum: The operation has been declined. */ 11444 #define MC_CMD_PROXY_COMPLETE_IN_DECLINED 0x2 11445 /* enum: The authorization failed because the relevant application did not 11446 * respond in time. 11447 */ 11448 #define MC_CMD_PROXY_COMPLETE_IN_TIMEDOUT 0x3 11449 #define MC_CMD_PROXY_COMPLETE_IN_HANDLE_OFST 8 11450 #define MC_CMD_PROXY_COMPLETE_IN_HANDLE_LEN 4 11451 11452 /* MC_CMD_PROXY_COMPLETE_OUT msgresponse */ 11453 #define MC_CMD_PROXY_COMPLETE_OUT_LEN 0 11454 11455 11456 /***********************************/ 11457 /* MC_CMD_ALLOC_BUFTBL_CHUNK 11458 * Allocate a set of buffer table entries using the specified owner ID. This 11459 * operation allocates the required buffer table entries (and fails if it 11460 * cannot do so). The buffer table entries will initially be zeroed. 11461 */ 11462 #define MC_CMD_ALLOC_BUFTBL_CHUNK 0x87 11463 #define MC_CMD_ALLOC_BUFTBL_CHUNK_MSGSET 0x87 11464 #undef MC_CMD_0x87_PRIVILEGE_CTG 11465 11466 #define MC_CMD_0x87_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 11467 11468 /* MC_CMD_ALLOC_BUFTBL_CHUNK_IN msgrequest */ 11469 #define MC_CMD_ALLOC_BUFTBL_CHUNK_IN_LEN 8 11470 /* Owner ID to use */ 11471 #define MC_CMD_ALLOC_BUFTBL_CHUNK_IN_OWNER_OFST 0 11472 #define MC_CMD_ALLOC_BUFTBL_CHUNK_IN_OWNER_LEN 4 11473 /* Size of buffer table pages to use, in bytes (note that only a few values are 11474 * legal on any specific hardware). 11475 */ 11476 #define MC_CMD_ALLOC_BUFTBL_CHUNK_IN_PAGE_SIZE_OFST 4 11477 #define MC_CMD_ALLOC_BUFTBL_CHUNK_IN_PAGE_SIZE_LEN 4 11478 11479 /* MC_CMD_ALLOC_BUFTBL_CHUNK_OUT msgresponse */ 11480 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_LEN 12 11481 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_HANDLE_OFST 0 11482 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_HANDLE_LEN 4 11483 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_NUMENTRIES_OFST 4 11484 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_NUMENTRIES_LEN 4 11485 /* Buffer table IDs for use in DMA descriptors. */ 11486 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_ID_OFST 8 11487 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_ID_LEN 4 11488 11489 11490 /***********************************/ 11491 /* MC_CMD_PROGRAM_BUFTBL_ENTRIES 11492 * Reprogram a set of buffer table entries in the specified chunk. 11493 */ 11494 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES 0x88 11495 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_MSGSET 0x88 11496 #undef MC_CMD_0x88_PRIVILEGE_CTG 11497 11498 #define MC_CMD_0x88_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 11499 11500 /* MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN msgrequest */ 11501 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_LENMIN 20 11502 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_LENMAX 268 11503 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_LENMAX_MCDI2 268 11504 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_LEN(num) (12+8*(num)) 11505 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_NUM(len) (((len)-12)/8) 11506 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_HANDLE_OFST 0 11507 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_HANDLE_LEN 4 11508 /* ID */ 11509 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_FIRSTID_OFST 4 11510 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_FIRSTID_LEN 4 11511 /* Num entries */ 11512 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_NUMENTRIES_OFST 8 11513 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_NUMENTRIES_LEN 4 11514 /* Buffer table entry address */ 11515 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_OFST 12 11516 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LEN 8 11517 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LO_OFST 12 11518 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LO_LEN 4 11519 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LO_LBN 96 11520 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LO_WIDTH 32 11521 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_HI_OFST 16 11522 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_HI_LEN 4 11523 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_HI_LBN 128 11524 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_HI_WIDTH 32 11525 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_MINNUM 1 11526 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_MAXNUM 32 11527 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_MAXNUM_MCDI2 32 11528 11529 /* MC_CMD_PROGRAM_BUFTBL_ENTRIES_OUT msgresponse */ 11530 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_OUT_LEN 0 11531 11532 11533 /***********************************/ 11534 /* MC_CMD_FREE_BUFTBL_CHUNK 11535 */ 11536 #define MC_CMD_FREE_BUFTBL_CHUNK 0x89 11537 #define MC_CMD_FREE_BUFTBL_CHUNK_MSGSET 0x89 11538 #undef MC_CMD_0x89_PRIVILEGE_CTG 11539 11540 #define MC_CMD_0x89_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 11541 11542 /* MC_CMD_FREE_BUFTBL_CHUNK_IN msgrequest */ 11543 #define MC_CMD_FREE_BUFTBL_CHUNK_IN_LEN 4 11544 #define MC_CMD_FREE_BUFTBL_CHUNK_IN_HANDLE_OFST 0 11545 #define MC_CMD_FREE_BUFTBL_CHUNK_IN_HANDLE_LEN 4 11546 11547 /* MC_CMD_FREE_BUFTBL_CHUNK_OUT msgresponse */ 11548 #define MC_CMD_FREE_BUFTBL_CHUNK_OUT_LEN 0 11549 11550 11551 /***********************************/ 11552 /* MC_CMD_FILTER_OP 11553 * Multiplexed MCDI call for filter operations 11554 */ 11555 #define MC_CMD_FILTER_OP 0x8a 11556 #define MC_CMD_FILTER_OP_MSGSET 0x8a 11557 #undef MC_CMD_0x8a_PRIVILEGE_CTG 11558 11559 #define MC_CMD_0x8a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11560 11561 /* MC_CMD_FILTER_OP_IN msgrequest */ 11562 #define MC_CMD_FILTER_OP_IN_LEN 108 11563 /* identifies the type of operation requested */ 11564 #define MC_CMD_FILTER_OP_IN_OP_OFST 0 11565 #define MC_CMD_FILTER_OP_IN_OP_LEN 4 11566 /* enum: single-recipient filter insert */ 11567 #define MC_CMD_FILTER_OP_IN_OP_INSERT 0x0 11568 /* enum: single-recipient filter remove */ 11569 #define MC_CMD_FILTER_OP_IN_OP_REMOVE 0x1 11570 /* enum: multi-recipient filter subscribe */ 11571 #define MC_CMD_FILTER_OP_IN_OP_SUBSCRIBE 0x2 11572 /* enum: multi-recipient filter unsubscribe */ 11573 #define MC_CMD_FILTER_OP_IN_OP_UNSUBSCRIBE 0x3 11574 /* enum: replace one recipient with another (warning - the filter handle may 11575 * change) 11576 */ 11577 #define MC_CMD_FILTER_OP_IN_OP_REPLACE 0x4 11578 /* filter handle (for remove / unsubscribe operations) */ 11579 #define MC_CMD_FILTER_OP_IN_HANDLE_OFST 4 11580 #define MC_CMD_FILTER_OP_IN_HANDLE_LEN 8 11581 #define MC_CMD_FILTER_OP_IN_HANDLE_LO_OFST 4 11582 #define MC_CMD_FILTER_OP_IN_HANDLE_LO_LEN 4 11583 #define MC_CMD_FILTER_OP_IN_HANDLE_LO_LBN 32 11584 #define MC_CMD_FILTER_OP_IN_HANDLE_LO_WIDTH 32 11585 #define MC_CMD_FILTER_OP_IN_HANDLE_HI_OFST 8 11586 #define MC_CMD_FILTER_OP_IN_HANDLE_HI_LEN 4 11587 #define MC_CMD_FILTER_OP_IN_HANDLE_HI_LBN 64 11588 #define MC_CMD_FILTER_OP_IN_HANDLE_HI_WIDTH 32 11589 /* The port ID associated with the v-adaptor which should contain this filter. 11590 */ 11591 #define MC_CMD_FILTER_OP_IN_PORT_ID_OFST 12 11592 #define MC_CMD_FILTER_OP_IN_PORT_ID_LEN 4 11593 /* fields to include in match criteria */ 11594 #define MC_CMD_FILTER_OP_IN_MATCH_FIELDS_OFST 16 11595 #define MC_CMD_FILTER_OP_IN_MATCH_FIELDS_LEN 4 11596 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_IP_OFST 16 11597 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_IP_LBN 0 11598 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_IP_WIDTH 1 11599 #define MC_CMD_FILTER_OP_IN_MATCH_DST_IP_OFST 16 11600 #define MC_CMD_FILTER_OP_IN_MATCH_DST_IP_LBN 1 11601 #define MC_CMD_FILTER_OP_IN_MATCH_DST_IP_WIDTH 1 11602 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_MAC_OFST 16 11603 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_MAC_LBN 2 11604 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_MAC_WIDTH 1 11605 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_PORT_OFST 16 11606 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_PORT_LBN 3 11607 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_PORT_WIDTH 1 11608 #define MC_CMD_FILTER_OP_IN_MATCH_DST_MAC_OFST 16 11609 #define MC_CMD_FILTER_OP_IN_MATCH_DST_MAC_LBN 4 11610 #define MC_CMD_FILTER_OP_IN_MATCH_DST_MAC_WIDTH 1 11611 #define MC_CMD_FILTER_OP_IN_MATCH_DST_PORT_OFST 16 11612 #define MC_CMD_FILTER_OP_IN_MATCH_DST_PORT_LBN 5 11613 #define MC_CMD_FILTER_OP_IN_MATCH_DST_PORT_WIDTH 1 11614 #define MC_CMD_FILTER_OP_IN_MATCH_ETHER_TYPE_OFST 16 11615 #define MC_CMD_FILTER_OP_IN_MATCH_ETHER_TYPE_LBN 6 11616 #define MC_CMD_FILTER_OP_IN_MATCH_ETHER_TYPE_WIDTH 1 11617 #define MC_CMD_FILTER_OP_IN_MATCH_INNER_VLAN_OFST 16 11618 #define MC_CMD_FILTER_OP_IN_MATCH_INNER_VLAN_LBN 7 11619 #define MC_CMD_FILTER_OP_IN_MATCH_INNER_VLAN_WIDTH 1 11620 #define MC_CMD_FILTER_OP_IN_MATCH_OUTER_VLAN_OFST 16 11621 #define MC_CMD_FILTER_OP_IN_MATCH_OUTER_VLAN_LBN 8 11622 #define MC_CMD_FILTER_OP_IN_MATCH_OUTER_VLAN_WIDTH 1 11623 #define MC_CMD_FILTER_OP_IN_MATCH_IP_PROTO_OFST 16 11624 #define MC_CMD_FILTER_OP_IN_MATCH_IP_PROTO_LBN 9 11625 #define MC_CMD_FILTER_OP_IN_MATCH_IP_PROTO_WIDTH 1 11626 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF0_OFST 16 11627 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF0_LBN 10 11628 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF0_WIDTH 1 11629 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF1_OFST 16 11630 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF1_LBN 11 11631 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF1_WIDTH 1 11632 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_OFST 16 11633 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_LBN 30 11634 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1 11635 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST_OFST 16 11636 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST_LBN 31 11637 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST_WIDTH 1 11638 /* receive destination */ 11639 #define MC_CMD_FILTER_OP_IN_RX_DEST_OFST 20 11640 #define MC_CMD_FILTER_OP_IN_RX_DEST_LEN 4 11641 /* enum: drop packets */ 11642 #define MC_CMD_FILTER_OP_IN_RX_DEST_DROP 0x0 11643 /* enum: receive to host */ 11644 #define MC_CMD_FILTER_OP_IN_RX_DEST_HOST 0x1 11645 /* enum: receive to MC */ 11646 #define MC_CMD_FILTER_OP_IN_RX_DEST_MC 0x2 11647 /* enum: loop back to TXDP 0 */ 11648 #define MC_CMD_FILTER_OP_IN_RX_DEST_TX0 0x3 11649 /* enum: loop back to TXDP 1 */ 11650 #define MC_CMD_FILTER_OP_IN_RX_DEST_TX1 0x4 11651 /* receive queue handle (for multiple queue modes, this is the base queue) */ 11652 #define MC_CMD_FILTER_OP_IN_RX_QUEUE_OFST 24 11653 #define MC_CMD_FILTER_OP_IN_RX_QUEUE_LEN 4 11654 /* receive mode */ 11655 #define MC_CMD_FILTER_OP_IN_RX_MODE_OFST 28 11656 #define MC_CMD_FILTER_OP_IN_RX_MODE_LEN 4 11657 /* enum: receive to just the specified queue */ 11658 #define MC_CMD_FILTER_OP_IN_RX_MODE_SIMPLE 0x0 11659 /* enum: receive to multiple queues using RSS context */ 11660 #define MC_CMD_FILTER_OP_IN_RX_MODE_RSS 0x1 11661 /* enum: receive to multiple queues using .1p mapping */ 11662 #define MC_CMD_FILTER_OP_IN_RX_MODE_DOT1P_MAPPING 0x2 11663 /* enum: install a filter entry that will never match; for test purposes only 11664 */ 11665 #define MC_CMD_FILTER_OP_IN_RX_MODE_TEST_NEVER_MATCH 0x80000000 11666 /* RSS context (for RX_MODE_RSS) or .1p mapping handle (for 11667 * RX_MODE_DOT1P_MAPPING), as returned by MC_CMD_RSS_CONTEXT_ALLOC or 11668 * MC_CMD_DOT1P_MAPPING_ALLOC. 11669 */ 11670 #define MC_CMD_FILTER_OP_IN_RX_CONTEXT_OFST 32 11671 #define MC_CMD_FILTER_OP_IN_RX_CONTEXT_LEN 4 11672 /* transmit domain (reserved; set to 0) */ 11673 #define MC_CMD_FILTER_OP_IN_TX_DOMAIN_OFST 36 11674 #define MC_CMD_FILTER_OP_IN_TX_DOMAIN_LEN 4 11675 /* transmit destination (either set the MAC and/or PM bits for explicit 11676 * control, or set this field to TX_DEST_DEFAULT for sensible default 11677 * behaviour) 11678 */ 11679 #define MC_CMD_FILTER_OP_IN_TX_DEST_OFST 40 11680 #define MC_CMD_FILTER_OP_IN_TX_DEST_LEN 4 11681 /* enum: request default behaviour (based on filter type) */ 11682 #define MC_CMD_FILTER_OP_IN_TX_DEST_DEFAULT 0xffffffff 11683 #define MC_CMD_FILTER_OP_IN_TX_DEST_MAC_OFST 40 11684 #define MC_CMD_FILTER_OP_IN_TX_DEST_MAC_LBN 0 11685 #define MC_CMD_FILTER_OP_IN_TX_DEST_MAC_WIDTH 1 11686 #define MC_CMD_FILTER_OP_IN_TX_DEST_PM_OFST 40 11687 #define MC_CMD_FILTER_OP_IN_TX_DEST_PM_LBN 1 11688 #define MC_CMD_FILTER_OP_IN_TX_DEST_PM_WIDTH 1 11689 /* source MAC address to match (as bytes in network order) */ 11690 #define MC_CMD_FILTER_OP_IN_SRC_MAC_OFST 44 11691 #define MC_CMD_FILTER_OP_IN_SRC_MAC_LEN 6 11692 /* source port to match (as bytes in network order) */ 11693 #define MC_CMD_FILTER_OP_IN_SRC_PORT_OFST 50 11694 #define MC_CMD_FILTER_OP_IN_SRC_PORT_LEN 2 11695 /* destination MAC address to match (as bytes in network order) */ 11696 #define MC_CMD_FILTER_OP_IN_DST_MAC_OFST 52 11697 #define MC_CMD_FILTER_OP_IN_DST_MAC_LEN 6 11698 /* destination port to match (as bytes in network order) */ 11699 #define MC_CMD_FILTER_OP_IN_DST_PORT_OFST 58 11700 #define MC_CMD_FILTER_OP_IN_DST_PORT_LEN 2 11701 /* Ethernet type to match (as bytes in network order) */ 11702 #define MC_CMD_FILTER_OP_IN_ETHER_TYPE_OFST 60 11703 #define MC_CMD_FILTER_OP_IN_ETHER_TYPE_LEN 2 11704 /* Inner VLAN tag to match (as bytes in network order) */ 11705 #define MC_CMD_FILTER_OP_IN_INNER_VLAN_OFST 62 11706 #define MC_CMD_FILTER_OP_IN_INNER_VLAN_LEN 2 11707 /* Outer VLAN tag to match (as bytes in network order) */ 11708 #define MC_CMD_FILTER_OP_IN_OUTER_VLAN_OFST 64 11709 #define MC_CMD_FILTER_OP_IN_OUTER_VLAN_LEN 2 11710 /* IP protocol to match (in low byte; set high byte to 0) */ 11711 #define MC_CMD_FILTER_OP_IN_IP_PROTO_OFST 66 11712 #define MC_CMD_FILTER_OP_IN_IP_PROTO_LEN 2 11713 /* Firmware defined register 0 to match (reserved; set to 0) */ 11714 #define MC_CMD_FILTER_OP_IN_FWDEF0_OFST 68 11715 #define MC_CMD_FILTER_OP_IN_FWDEF0_LEN 4 11716 /* Firmware defined register 1 to match (reserved; set to 0) */ 11717 #define MC_CMD_FILTER_OP_IN_FWDEF1_OFST 72 11718 #define MC_CMD_FILTER_OP_IN_FWDEF1_LEN 4 11719 /* source IP address to match (as bytes in network order; set last 12 bytes to 11720 * 0 for IPv4 address) 11721 */ 11722 #define MC_CMD_FILTER_OP_IN_SRC_IP_OFST 76 11723 #define MC_CMD_FILTER_OP_IN_SRC_IP_LEN 16 11724 /* destination IP address to match (as bytes in network order; set last 12 11725 * bytes to 0 for IPv4 address) 11726 */ 11727 #define MC_CMD_FILTER_OP_IN_DST_IP_OFST 92 11728 #define MC_CMD_FILTER_OP_IN_DST_IP_LEN 16 11729 11730 /* MC_CMD_FILTER_OP_EXT_IN msgrequest: Extension to MC_CMD_FILTER_OP_IN to 11731 * include handling of VXLAN/NVGRE encapsulated frame filtering (which is 11732 * supported on Medford only). 11733 */ 11734 #define MC_CMD_FILTER_OP_EXT_IN_LEN 172 11735 /* identifies the type of operation requested */ 11736 #define MC_CMD_FILTER_OP_EXT_IN_OP_OFST 0 11737 #define MC_CMD_FILTER_OP_EXT_IN_OP_LEN 4 11738 /* Enum values, see field(s): */ 11739 /* MC_CMD_FILTER_OP_IN/OP */ 11740 /* filter handle (for remove / unsubscribe operations) */ 11741 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_OFST 4 11742 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LEN 8 11743 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_OFST 4 11744 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_LEN 4 11745 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_LBN 32 11746 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_WIDTH 32 11747 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_OFST 8 11748 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_LEN 4 11749 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_LBN 64 11750 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_WIDTH 32 11751 /* The port ID associated with the v-adaptor which should contain this filter. 11752 */ 11753 #define MC_CMD_FILTER_OP_EXT_IN_PORT_ID_OFST 12 11754 #define MC_CMD_FILTER_OP_EXT_IN_PORT_ID_LEN 4 11755 /* fields to include in match criteria */ 11756 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FIELDS_OFST 16 11757 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FIELDS_LEN 4 11758 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_IP_OFST 16 11759 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_IP_LBN 0 11760 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_IP_WIDTH 1 11761 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_IP_OFST 16 11762 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_IP_LBN 1 11763 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_IP_WIDTH 1 11764 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_MAC_OFST 16 11765 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_MAC_LBN 2 11766 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_MAC_WIDTH 1 11767 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_PORT_OFST 16 11768 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_PORT_LBN 3 11769 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_PORT_WIDTH 1 11770 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_MAC_OFST 16 11771 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_MAC_LBN 4 11772 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_MAC_WIDTH 1 11773 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_PORT_OFST 16 11774 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_PORT_LBN 5 11775 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_PORT_WIDTH 1 11776 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_ETHER_TYPE_OFST 16 11777 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_ETHER_TYPE_LBN 6 11778 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_ETHER_TYPE_WIDTH 1 11779 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_INNER_VLAN_OFST 16 11780 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_INNER_VLAN_LBN 7 11781 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_INNER_VLAN_WIDTH 1 11782 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_OUTER_VLAN_OFST 16 11783 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_OUTER_VLAN_LBN 8 11784 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_OUTER_VLAN_WIDTH 1 11785 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IP_PROTO_OFST 16 11786 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IP_PROTO_LBN 9 11787 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IP_PROTO_WIDTH 1 11788 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FWDEF0_OFST 16 11789 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FWDEF0_LBN 10 11790 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FWDEF0_WIDTH 1 11791 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_VNI_OR_VSID_OFST 16 11792 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_VNI_OR_VSID_LBN 11 11793 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_VNI_OR_VSID_WIDTH 1 11794 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_IP_OFST 16 11795 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_IP_LBN 12 11796 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_IP_WIDTH 1 11797 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_IP_OFST 16 11798 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_IP_LBN 13 11799 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_IP_WIDTH 1 11800 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_MAC_OFST 16 11801 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_MAC_LBN 14 11802 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_MAC_WIDTH 1 11803 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_PORT_OFST 16 11804 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_PORT_LBN 15 11805 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_PORT_WIDTH 1 11806 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_MAC_OFST 16 11807 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_MAC_LBN 16 11808 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_MAC_WIDTH 1 11809 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_PORT_OFST 16 11810 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_PORT_LBN 17 11811 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_PORT_WIDTH 1 11812 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_ETHER_TYPE_OFST 16 11813 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_ETHER_TYPE_LBN 18 11814 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_ETHER_TYPE_WIDTH 1 11815 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_INNER_VLAN_OFST 16 11816 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_INNER_VLAN_LBN 19 11817 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_INNER_VLAN_WIDTH 1 11818 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_OUTER_VLAN_OFST 16 11819 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_OUTER_VLAN_LBN 20 11820 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_OUTER_VLAN_WIDTH 1 11821 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_IP_PROTO_OFST 16 11822 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_IP_PROTO_LBN 21 11823 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_IP_PROTO_WIDTH 1 11824 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF0_OFST 16 11825 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF0_LBN 22 11826 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF0_WIDTH 1 11827 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF1_OFST 16 11828 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF1_LBN 23 11829 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF1_WIDTH 1 11830 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_OFST 16 11831 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_LBN 24 11832 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_WIDTH 1 11833 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_OFST 16 11834 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_LBN 25 11835 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_WIDTH 1 11836 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_MCAST_DST_OFST 16 11837 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_MCAST_DST_LBN 30 11838 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1 11839 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_UCAST_DST_OFST 16 11840 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_UCAST_DST_LBN 31 11841 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_UCAST_DST_WIDTH 1 11842 /* receive destination */ 11843 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_OFST 20 11844 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_LEN 4 11845 /* enum: drop packets */ 11846 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_DROP 0x0 11847 /* enum: receive to host */ 11848 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_HOST 0x1 11849 /* enum: receive to MC */ 11850 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_MC 0x2 11851 /* enum: loop back to TXDP 0 */ 11852 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_TX0 0x3 11853 /* enum: loop back to TXDP 1 */ 11854 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_TX1 0x4 11855 /* receive queue handle (for multiple queue modes, this is the base queue) */ 11856 #define MC_CMD_FILTER_OP_EXT_IN_RX_QUEUE_OFST 24 11857 #define MC_CMD_FILTER_OP_EXT_IN_RX_QUEUE_LEN 4 11858 /* receive mode */ 11859 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_OFST 28 11860 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_LEN 4 11861 /* enum: receive to just the specified queue */ 11862 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_SIMPLE 0x0 11863 /* enum: receive to multiple queues using RSS context */ 11864 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_RSS 0x1 11865 /* enum: receive to multiple queues using .1p mapping */ 11866 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_DOT1P_MAPPING 0x2 11867 /* enum: install a filter entry that will never match; for test purposes only 11868 */ 11869 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_TEST_NEVER_MATCH 0x80000000 11870 /* RSS context (for RX_MODE_RSS) or .1p mapping handle (for 11871 * RX_MODE_DOT1P_MAPPING), as returned by MC_CMD_RSS_CONTEXT_ALLOC or 11872 * MC_CMD_DOT1P_MAPPING_ALLOC. 11873 */ 11874 #define MC_CMD_FILTER_OP_EXT_IN_RX_CONTEXT_OFST 32 11875 #define MC_CMD_FILTER_OP_EXT_IN_RX_CONTEXT_LEN 4 11876 /* transmit domain (reserved; set to 0) */ 11877 #define MC_CMD_FILTER_OP_EXT_IN_TX_DOMAIN_OFST 36 11878 #define MC_CMD_FILTER_OP_EXT_IN_TX_DOMAIN_LEN 4 11879 /* transmit destination (either set the MAC and/or PM bits for explicit 11880 * control, or set this field to TX_DEST_DEFAULT for sensible default 11881 * behaviour) 11882 */ 11883 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_OFST 40 11884 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_LEN 4 11885 /* enum: request default behaviour (based on filter type) */ 11886 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_DEFAULT 0xffffffff 11887 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_MAC_OFST 40 11888 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_MAC_LBN 0 11889 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_MAC_WIDTH 1 11890 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_PM_OFST 40 11891 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_PM_LBN 1 11892 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_PM_WIDTH 1 11893 /* source MAC address to match (as bytes in network order) */ 11894 #define MC_CMD_FILTER_OP_EXT_IN_SRC_MAC_OFST 44 11895 #define MC_CMD_FILTER_OP_EXT_IN_SRC_MAC_LEN 6 11896 /* source port to match (as bytes in network order) */ 11897 #define MC_CMD_FILTER_OP_EXT_IN_SRC_PORT_OFST 50 11898 #define MC_CMD_FILTER_OP_EXT_IN_SRC_PORT_LEN 2 11899 /* destination MAC address to match (as bytes in network order) */ 11900 #define MC_CMD_FILTER_OP_EXT_IN_DST_MAC_OFST 52 11901 #define MC_CMD_FILTER_OP_EXT_IN_DST_MAC_LEN 6 11902 /* destination port to match (as bytes in network order) */ 11903 #define MC_CMD_FILTER_OP_EXT_IN_DST_PORT_OFST 58 11904 #define MC_CMD_FILTER_OP_EXT_IN_DST_PORT_LEN 2 11905 /* Ethernet type to match (as bytes in network order) */ 11906 #define MC_CMD_FILTER_OP_EXT_IN_ETHER_TYPE_OFST 60 11907 #define MC_CMD_FILTER_OP_EXT_IN_ETHER_TYPE_LEN 2 11908 /* Inner VLAN tag to match (as bytes in network order) */ 11909 #define MC_CMD_FILTER_OP_EXT_IN_INNER_VLAN_OFST 62 11910 #define MC_CMD_FILTER_OP_EXT_IN_INNER_VLAN_LEN 2 11911 /* Outer VLAN tag to match (as bytes in network order) */ 11912 #define MC_CMD_FILTER_OP_EXT_IN_OUTER_VLAN_OFST 64 11913 #define MC_CMD_FILTER_OP_EXT_IN_OUTER_VLAN_LEN 2 11914 /* IP protocol to match (in low byte; set high byte to 0) */ 11915 #define MC_CMD_FILTER_OP_EXT_IN_IP_PROTO_OFST 66 11916 #define MC_CMD_FILTER_OP_EXT_IN_IP_PROTO_LEN 2 11917 /* Firmware defined register 0 to match (reserved; set to 0) */ 11918 #define MC_CMD_FILTER_OP_EXT_IN_FWDEF0_OFST 68 11919 #define MC_CMD_FILTER_OP_EXT_IN_FWDEF0_LEN 4 11920 /* VNI (for VXLAN/Geneve, when IP protocol is UDP) or VSID (for NVGRE, when IP 11921 * protocol is GRE) to match (as bytes in network order; set last byte to 0 for 11922 * VXLAN/NVGRE, or 1 for Geneve) 11923 */ 11924 #define MC_CMD_FILTER_OP_EXT_IN_VNI_OR_VSID_OFST 72 11925 #define MC_CMD_FILTER_OP_EXT_IN_VNI_OR_VSID_LEN 4 11926 #define MC_CMD_FILTER_OP_EXT_IN_VNI_VALUE_OFST 72 11927 #define MC_CMD_FILTER_OP_EXT_IN_VNI_VALUE_LBN 0 11928 #define MC_CMD_FILTER_OP_EXT_IN_VNI_VALUE_WIDTH 24 11929 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_OFST 72 11930 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_LBN 24 11931 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_WIDTH 8 11932 /* enum: Match VXLAN traffic with this VNI */ 11933 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_VXLAN 0x0 11934 /* enum: Match Geneve traffic with this VNI */ 11935 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_GENEVE 0x1 11936 /* enum: Reserved for experimental development use */ 11937 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_EXPERIMENTAL 0xfe 11938 #define MC_CMD_FILTER_OP_EXT_IN_VSID_VALUE_OFST 72 11939 #define MC_CMD_FILTER_OP_EXT_IN_VSID_VALUE_LBN 0 11940 #define MC_CMD_FILTER_OP_EXT_IN_VSID_VALUE_WIDTH 24 11941 #define MC_CMD_FILTER_OP_EXT_IN_VSID_TYPE_OFST 72 11942 #define MC_CMD_FILTER_OP_EXT_IN_VSID_TYPE_LBN 24 11943 #define MC_CMD_FILTER_OP_EXT_IN_VSID_TYPE_WIDTH 8 11944 /* enum: Match NVGRE traffic with this VSID */ 11945 #define MC_CMD_FILTER_OP_EXT_IN_VSID_TYPE_NVGRE 0x0 11946 /* source IP address to match (as bytes in network order; set last 12 bytes to 11947 * 0 for IPv4 address) 11948 */ 11949 #define MC_CMD_FILTER_OP_EXT_IN_SRC_IP_OFST 76 11950 #define MC_CMD_FILTER_OP_EXT_IN_SRC_IP_LEN 16 11951 /* destination IP address to match (as bytes in network order; set last 12 11952 * bytes to 0 for IPv4 address) 11953 */ 11954 #define MC_CMD_FILTER_OP_EXT_IN_DST_IP_OFST 92 11955 #define MC_CMD_FILTER_OP_EXT_IN_DST_IP_LEN 16 11956 /* VXLAN/NVGRE inner frame source MAC address to match (as bytes in network 11957 * order) 11958 */ 11959 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_MAC_OFST 108 11960 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_MAC_LEN 6 11961 /* VXLAN/NVGRE inner frame source port to match (as bytes in network order) */ 11962 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_PORT_OFST 114 11963 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_PORT_LEN 2 11964 /* VXLAN/NVGRE inner frame destination MAC address to match (as bytes in 11965 * network order) 11966 */ 11967 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_MAC_OFST 116 11968 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_MAC_LEN 6 11969 /* VXLAN/NVGRE inner frame destination port to match (as bytes in network 11970 * order) 11971 */ 11972 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_PORT_OFST 122 11973 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_PORT_LEN 2 11974 /* VXLAN/NVGRE inner frame Ethernet type to match (as bytes in network order) 11975 */ 11976 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_ETHER_TYPE_OFST 124 11977 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_ETHER_TYPE_LEN 2 11978 /* VXLAN/NVGRE inner frame Inner VLAN tag to match (as bytes in network order) 11979 */ 11980 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_INNER_VLAN_OFST 126 11981 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_INNER_VLAN_LEN 2 11982 /* VXLAN/NVGRE inner frame Outer VLAN tag to match (as bytes in network order) 11983 */ 11984 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_OUTER_VLAN_OFST 128 11985 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_OUTER_VLAN_LEN 2 11986 /* VXLAN/NVGRE inner frame IP protocol to match (in low byte; set high byte to 11987 * 0) 11988 */ 11989 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_IP_PROTO_OFST 130 11990 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_IP_PROTO_LEN 2 11991 /* VXLAN/NVGRE inner frame Firmware defined register 0 to match (reserved; set 11992 * to 0) 11993 */ 11994 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF0_OFST 132 11995 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF0_LEN 4 11996 /* VXLAN/NVGRE inner frame Firmware defined register 1 to match (reserved; set 11997 * to 0) 11998 */ 11999 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF1_OFST 136 12000 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF1_LEN 4 12001 /* VXLAN/NVGRE inner frame source IP address to match (as bytes in network 12002 * order; set last 12 bytes to 0 for IPv4 address) 12003 */ 12004 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_IP_OFST 140 12005 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_IP_LEN 16 12006 /* VXLAN/NVGRE inner frame destination IP address to match (as bytes in network 12007 * order; set last 12 bytes to 0 for IPv4 address) 12008 */ 12009 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_IP_OFST 156 12010 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_IP_LEN 16 12011 12012 /* MC_CMD_FILTER_OP_V3_IN msgrequest: FILTER_OP extension to support additional 12013 * filter actions for EF100. Some of these actions are also supported on EF10, 12014 * for Intel's DPDK (Data Plane Development Kit, dpdk.org) via its rte_flow 12015 * API. In the latter case, this extension is only useful with the sfc_efx 12016 * driver included as part of DPDK, used in conjunction with the dpdk datapath 12017 * firmware variant. 12018 */ 12019 #define MC_CMD_FILTER_OP_V3_IN_LEN 180 12020 /* identifies the type of operation requested */ 12021 #define MC_CMD_FILTER_OP_V3_IN_OP_OFST 0 12022 #define MC_CMD_FILTER_OP_V3_IN_OP_LEN 4 12023 /* Enum values, see field(s): */ 12024 /* MC_CMD_FILTER_OP_IN/OP */ 12025 /* filter handle (for remove / unsubscribe operations) */ 12026 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_OFST 4 12027 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LEN 8 12028 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_OFST 4 12029 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_LEN 4 12030 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_LBN 32 12031 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_WIDTH 32 12032 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_OFST 8 12033 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_LEN 4 12034 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_LBN 64 12035 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_WIDTH 32 12036 /* The port ID associated with the v-adaptor which should contain this filter. 12037 */ 12038 #define MC_CMD_FILTER_OP_V3_IN_PORT_ID_OFST 12 12039 #define MC_CMD_FILTER_OP_V3_IN_PORT_ID_LEN 4 12040 /* fields to include in match criteria */ 12041 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FIELDS_OFST 16 12042 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FIELDS_LEN 4 12043 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_IP_OFST 16 12044 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_IP_LBN 0 12045 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_IP_WIDTH 1 12046 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_IP_OFST 16 12047 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_IP_LBN 1 12048 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_IP_WIDTH 1 12049 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_MAC_OFST 16 12050 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_MAC_LBN 2 12051 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_MAC_WIDTH 1 12052 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_PORT_OFST 16 12053 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_PORT_LBN 3 12054 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_PORT_WIDTH 1 12055 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_MAC_OFST 16 12056 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_MAC_LBN 4 12057 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_MAC_WIDTH 1 12058 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_PORT_OFST 16 12059 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_PORT_LBN 5 12060 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_PORT_WIDTH 1 12061 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ETHER_TYPE_OFST 16 12062 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ETHER_TYPE_LBN 6 12063 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ETHER_TYPE_WIDTH 1 12064 #define MC_CMD_FILTER_OP_V3_IN_MATCH_INNER_VLAN_OFST 16 12065 #define MC_CMD_FILTER_OP_V3_IN_MATCH_INNER_VLAN_LBN 7 12066 #define MC_CMD_FILTER_OP_V3_IN_MATCH_INNER_VLAN_WIDTH 1 12067 #define MC_CMD_FILTER_OP_V3_IN_MATCH_OUTER_VLAN_OFST 16 12068 #define MC_CMD_FILTER_OP_V3_IN_MATCH_OUTER_VLAN_LBN 8 12069 #define MC_CMD_FILTER_OP_V3_IN_MATCH_OUTER_VLAN_WIDTH 1 12070 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IP_PROTO_OFST 16 12071 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IP_PROTO_LBN 9 12072 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IP_PROTO_WIDTH 1 12073 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FWDEF0_OFST 16 12074 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FWDEF0_LBN 10 12075 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FWDEF0_WIDTH 1 12076 #define MC_CMD_FILTER_OP_V3_IN_MATCH_VNI_OR_VSID_OFST 16 12077 #define MC_CMD_FILTER_OP_V3_IN_MATCH_VNI_OR_VSID_LBN 11 12078 #define MC_CMD_FILTER_OP_V3_IN_MATCH_VNI_OR_VSID_WIDTH 1 12079 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_IP_OFST 16 12080 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_IP_LBN 12 12081 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_IP_WIDTH 1 12082 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_IP_OFST 16 12083 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_IP_LBN 13 12084 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_IP_WIDTH 1 12085 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_MAC_OFST 16 12086 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_MAC_LBN 14 12087 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_MAC_WIDTH 1 12088 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_PORT_OFST 16 12089 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_PORT_LBN 15 12090 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_PORT_WIDTH 1 12091 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_MAC_OFST 16 12092 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_MAC_LBN 16 12093 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_MAC_WIDTH 1 12094 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_PORT_OFST 16 12095 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_PORT_LBN 17 12096 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_PORT_WIDTH 1 12097 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_ETHER_TYPE_OFST 16 12098 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_ETHER_TYPE_LBN 18 12099 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_ETHER_TYPE_WIDTH 1 12100 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_INNER_VLAN_OFST 16 12101 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_INNER_VLAN_LBN 19 12102 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_INNER_VLAN_WIDTH 1 12103 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_OUTER_VLAN_OFST 16 12104 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_OUTER_VLAN_LBN 20 12105 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_OUTER_VLAN_WIDTH 1 12106 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_IP_PROTO_OFST 16 12107 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_IP_PROTO_LBN 21 12108 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_IP_PROTO_WIDTH 1 12109 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF0_OFST 16 12110 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF0_LBN 22 12111 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF0_WIDTH 1 12112 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF1_OFST 16 12113 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF1_LBN 23 12114 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF1_WIDTH 1 12115 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_OFST 16 12116 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_LBN 24 12117 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_WIDTH 1 12118 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_OFST 16 12119 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_LBN 25 12120 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_WIDTH 1 12121 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_MCAST_DST_OFST 16 12122 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_MCAST_DST_LBN 30 12123 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1 12124 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_UCAST_DST_OFST 16 12125 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_UCAST_DST_LBN 31 12126 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_UCAST_DST_WIDTH 1 12127 /* receive destination */ 12128 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_OFST 20 12129 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_LEN 4 12130 /* enum: drop packets */ 12131 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_DROP 0x0 12132 /* enum: receive to host */ 12133 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_HOST 0x1 12134 /* enum: receive to MC */ 12135 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_MC 0x2 12136 /* enum: loop back to TXDP 0 */ 12137 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_TX0 0x3 12138 /* enum: loop back to TXDP 1 */ 12139 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_TX1 0x4 12140 /* receive queue handle (for multiple queue modes, this is the base queue) */ 12141 #define MC_CMD_FILTER_OP_V3_IN_RX_QUEUE_OFST 24 12142 #define MC_CMD_FILTER_OP_V3_IN_RX_QUEUE_LEN 4 12143 /* receive mode */ 12144 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_OFST 28 12145 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_LEN 4 12146 /* enum: receive to just the specified queue */ 12147 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_SIMPLE 0x0 12148 /* enum: receive to multiple queues using RSS context */ 12149 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_RSS 0x1 12150 /* enum: receive to multiple queues using .1p mapping */ 12151 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_DOT1P_MAPPING 0x2 12152 /* enum: install a filter entry that will never match; for test purposes only 12153 */ 12154 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_TEST_NEVER_MATCH 0x80000000 12155 /* RSS context (for RX_MODE_RSS) or .1p mapping handle (for 12156 * RX_MODE_DOT1P_MAPPING), as returned by MC_CMD_RSS_CONTEXT_ALLOC or 12157 * MC_CMD_DOT1P_MAPPING_ALLOC. 12158 */ 12159 #define MC_CMD_FILTER_OP_V3_IN_RX_CONTEXT_OFST 32 12160 #define MC_CMD_FILTER_OP_V3_IN_RX_CONTEXT_LEN 4 12161 /* transmit domain (reserved; set to 0) */ 12162 #define MC_CMD_FILTER_OP_V3_IN_TX_DOMAIN_OFST 36 12163 #define MC_CMD_FILTER_OP_V3_IN_TX_DOMAIN_LEN 4 12164 /* transmit destination (either set the MAC and/or PM bits for explicit 12165 * control, or set this field to TX_DEST_DEFAULT for sensible default 12166 * behaviour) 12167 */ 12168 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_OFST 40 12169 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_LEN 4 12170 /* enum: request default behaviour (based on filter type) */ 12171 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_DEFAULT 0xffffffff 12172 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_MAC_OFST 40 12173 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_MAC_LBN 0 12174 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_MAC_WIDTH 1 12175 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_PM_OFST 40 12176 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_PM_LBN 1 12177 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_PM_WIDTH 1 12178 /* source MAC address to match (as bytes in network order) */ 12179 #define MC_CMD_FILTER_OP_V3_IN_SRC_MAC_OFST 44 12180 #define MC_CMD_FILTER_OP_V3_IN_SRC_MAC_LEN 6 12181 /* source port to match (as bytes in network order) */ 12182 #define MC_CMD_FILTER_OP_V3_IN_SRC_PORT_OFST 50 12183 #define MC_CMD_FILTER_OP_V3_IN_SRC_PORT_LEN 2 12184 /* destination MAC address to match (as bytes in network order) */ 12185 #define MC_CMD_FILTER_OP_V3_IN_DST_MAC_OFST 52 12186 #define MC_CMD_FILTER_OP_V3_IN_DST_MAC_LEN 6 12187 /* destination port to match (as bytes in network order) */ 12188 #define MC_CMD_FILTER_OP_V3_IN_DST_PORT_OFST 58 12189 #define MC_CMD_FILTER_OP_V3_IN_DST_PORT_LEN 2 12190 /* Ethernet type to match (as bytes in network order) */ 12191 #define MC_CMD_FILTER_OP_V3_IN_ETHER_TYPE_OFST 60 12192 #define MC_CMD_FILTER_OP_V3_IN_ETHER_TYPE_LEN 2 12193 /* Inner VLAN tag to match (as bytes in network order) */ 12194 #define MC_CMD_FILTER_OP_V3_IN_INNER_VLAN_OFST 62 12195 #define MC_CMD_FILTER_OP_V3_IN_INNER_VLAN_LEN 2 12196 /* Outer VLAN tag to match (as bytes in network order) */ 12197 #define MC_CMD_FILTER_OP_V3_IN_OUTER_VLAN_OFST 64 12198 #define MC_CMD_FILTER_OP_V3_IN_OUTER_VLAN_LEN 2 12199 /* IP protocol to match (in low byte; set high byte to 0) */ 12200 #define MC_CMD_FILTER_OP_V3_IN_IP_PROTO_OFST 66 12201 #define MC_CMD_FILTER_OP_V3_IN_IP_PROTO_LEN 2 12202 /* Firmware defined register 0 to match (reserved; set to 0) */ 12203 #define MC_CMD_FILTER_OP_V3_IN_FWDEF0_OFST 68 12204 #define MC_CMD_FILTER_OP_V3_IN_FWDEF0_LEN 4 12205 /* VNI (for VXLAN/Geneve, when IP protocol is UDP) or VSID (for NVGRE, when IP 12206 * protocol is GRE) to match (as bytes in network order; set last byte to 0 for 12207 * VXLAN/NVGRE, or 1 for Geneve) 12208 */ 12209 #define MC_CMD_FILTER_OP_V3_IN_VNI_OR_VSID_OFST 72 12210 #define MC_CMD_FILTER_OP_V3_IN_VNI_OR_VSID_LEN 4 12211 #define MC_CMD_FILTER_OP_V3_IN_VNI_VALUE_OFST 72 12212 #define MC_CMD_FILTER_OP_V3_IN_VNI_VALUE_LBN 0 12213 #define MC_CMD_FILTER_OP_V3_IN_VNI_VALUE_WIDTH 24 12214 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_OFST 72 12215 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_LBN 24 12216 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_WIDTH 8 12217 /* enum: Match VXLAN traffic with this VNI */ 12218 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_VXLAN 0x0 12219 /* enum: Match Geneve traffic with this VNI */ 12220 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_GENEVE 0x1 12221 /* enum: Reserved for experimental development use */ 12222 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_EXPERIMENTAL 0xfe 12223 #define MC_CMD_FILTER_OP_V3_IN_VSID_VALUE_OFST 72 12224 #define MC_CMD_FILTER_OP_V3_IN_VSID_VALUE_LBN 0 12225 #define MC_CMD_FILTER_OP_V3_IN_VSID_VALUE_WIDTH 24 12226 #define MC_CMD_FILTER_OP_V3_IN_VSID_TYPE_OFST 72 12227 #define MC_CMD_FILTER_OP_V3_IN_VSID_TYPE_LBN 24 12228 #define MC_CMD_FILTER_OP_V3_IN_VSID_TYPE_WIDTH 8 12229 /* enum: Match NVGRE traffic with this VSID */ 12230 #define MC_CMD_FILTER_OP_V3_IN_VSID_TYPE_NVGRE 0x0 12231 /* source IP address to match (as bytes in network order; set last 12 bytes to 12232 * 0 for IPv4 address) 12233 */ 12234 #define MC_CMD_FILTER_OP_V3_IN_SRC_IP_OFST 76 12235 #define MC_CMD_FILTER_OP_V3_IN_SRC_IP_LEN 16 12236 /* destination IP address to match (as bytes in network order; set last 12 12237 * bytes to 0 for IPv4 address) 12238 */ 12239 #define MC_CMD_FILTER_OP_V3_IN_DST_IP_OFST 92 12240 #define MC_CMD_FILTER_OP_V3_IN_DST_IP_LEN 16 12241 /* VXLAN/NVGRE inner frame source MAC address to match (as bytes in network 12242 * order) 12243 */ 12244 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_MAC_OFST 108 12245 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_MAC_LEN 6 12246 /* VXLAN/NVGRE inner frame source port to match (as bytes in network order) */ 12247 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_PORT_OFST 114 12248 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_PORT_LEN 2 12249 /* VXLAN/NVGRE inner frame destination MAC address to match (as bytes in 12250 * network order) 12251 */ 12252 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_MAC_OFST 116 12253 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_MAC_LEN 6 12254 /* VXLAN/NVGRE inner frame destination port to match (as bytes in network 12255 * order) 12256 */ 12257 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_PORT_OFST 122 12258 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_PORT_LEN 2 12259 /* VXLAN/NVGRE inner frame Ethernet type to match (as bytes in network order) 12260 */ 12261 #define MC_CMD_FILTER_OP_V3_IN_IFRM_ETHER_TYPE_OFST 124 12262 #define MC_CMD_FILTER_OP_V3_IN_IFRM_ETHER_TYPE_LEN 2 12263 /* VXLAN/NVGRE inner frame Inner VLAN tag to match (as bytes in network order) 12264 */ 12265 #define MC_CMD_FILTER_OP_V3_IN_IFRM_INNER_VLAN_OFST 126 12266 #define MC_CMD_FILTER_OP_V3_IN_IFRM_INNER_VLAN_LEN 2 12267 /* VXLAN/NVGRE inner frame Outer VLAN tag to match (as bytes in network order) 12268 */ 12269 #define MC_CMD_FILTER_OP_V3_IN_IFRM_OUTER_VLAN_OFST 128 12270 #define MC_CMD_FILTER_OP_V3_IN_IFRM_OUTER_VLAN_LEN 2 12271 /* VXLAN/NVGRE inner frame IP protocol to match (in low byte; set high byte to 12272 * 0) 12273 */ 12274 #define MC_CMD_FILTER_OP_V3_IN_IFRM_IP_PROTO_OFST 130 12275 #define MC_CMD_FILTER_OP_V3_IN_IFRM_IP_PROTO_LEN 2 12276 /* VXLAN/NVGRE inner frame Firmware defined register 0 to match (reserved; set 12277 * to 0) 12278 */ 12279 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF0_OFST 132 12280 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF0_LEN 4 12281 /* VXLAN/NVGRE inner frame Firmware defined register 1 to match (reserved; set 12282 * to 0) 12283 */ 12284 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF1_OFST 136 12285 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF1_LEN 4 12286 /* VXLAN/NVGRE inner frame source IP address to match (as bytes in network 12287 * order; set last 12 bytes to 0 for IPv4 address) 12288 */ 12289 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_IP_OFST 140 12290 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_IP_LEN 16 12291 /* VXLAN/NVGRE inner frame destination IP address to match (as bytes in network 12292 * order; set last 12 bytes to 0 for IPv4 address) 12293 */ 12294 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_IP_OFST 156 12295 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_IP_LEN 16 12296 /* Flags controlling mutations of the packet and/or metadata when the filter is 12297 * matched. The user_mark and user_flag fields' logic is as follows: if 12298 * (req.MATCH_BITOR_FLAG == 1) user_flag = req.MATCH_SET_FLAG bit_or user_flag; 12299 * else user_flag = req.MATCH_SET_FLAG; if (req.MATCH_SET_MARK == 0) user_mark 12300 * = 0; else if (req.MATCH_BITOR_MARK == 1) user_mark = req.MATCH_SET_MARK 12301 * bit_or user_mark; else user_mark = req.MATCH_SET_MARK; N.B. These flags 12302 * overlap with the MATCH_ACTION field, which is deprecated in favour of this 12303 * field. For the cases where these flags induce a valid encoding of the 12304 * MATCH_ACTION field, the semantics agree. 12305 */ 12306 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_FLAGS_OFST 172 12307 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_FLAGS_LEN 4 12308 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_FLAG_OFST 172 12309 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_FLAG_LBN 0 12310 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_FLAG_WIDTH 1 12311 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_OFST 172 12312 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_LBN 1 12313 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_WIDTH 1 12314 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_FLAG_OFST 172 12315 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_FLAG_LBN 2 12316 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_FLAG_WIDTH 1 12317 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_MARK_OFST 172 12318 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_MARK_LBN 3 12319 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_MARK_WIDTH 1 12320 #define MC_CMD_FILTER_OP_V3_IN_MATCH_STRIP_VLAN_OFST 172 12321 #define MC_CMD_FILTER_OP_V3_IN_MATCH_STRIP_VLAN_LBN 4 12322 #define MC_CMD_FILTER_OP_V3_IN_MATCH_STRIP_VLAN_WIDTH 1 12323 /* Deprecated: the overlapping MATCH_ACTION_FLAGS field exposes all of the 12324 * functionality of this field in an ABI-backwards-compatible manner, and 12325 * should be used instead. Any future extensions should be made to the 12326 * MATCH_ACTION_FLAGS field, and not to this field. Set an action for all 12327 * packets matching this filter. The DPDK driver and (on EF10) dpdk f/w variant 12328 * use their own specific delivery structures, which are documented in the DPDK 12329 * Firmware Driver Interface (SF-119419-TC). Requesting anything other than 12330 * MATCH_ACTION_NONE on an EF10 NIC running another f/w variant will cause the 12331 * filter insertion to fail with ENOTSUP. 12332 */ 12333 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_OFST 172 12334 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_LEN 4 12335 /* enum: do nothing extra */ 12336 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_NONE 0x0 12337 /* enum: Set the match flag in the packet prefix for packets matching the 12338 * filter (only with dpdk firmware, otherwise fails with ENOTSUP). Used to 12339 * support the DPDK rte_flow "FLAG" action. 12340 */ 12341 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_FLAG 0x1 12342 /* enum: Insert MATCH_MARK_VALUE into the packet prefix for packets matching 12343 * the filter (only with dpdk firmware, otherwise fails with ENOTSUP). Used to 12344 * support the DPDK rte_flow "MARK" action. 12345 */ 12346 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_MARK 0x2 12347 /* the mark value for MATCH_ACTION_MARK. Requesting a value larger than the 12348 * maximum (obtained from MC_CMD_GET_CAPABILITIES_V5/FILTER_ACTION_MARK_MAX) 12349 * will cause the filter insertion to fail with EINVAL. 12350 */ 12351 #define MC_CMD_FILTER_OP_V3_IN_MATCH_MARK_VALUE_OFST 176 12352 #define MC_CMD_FILTER_OP_V3_IN_MATCH_MARK_VALUE_LEN 4 12353 12354 /* MC_CMD_FILTER_OP_OUT msgresponse */ 12355 #define MC_CMD_FILTER_OP_OUT_LEN 12 12356 /* identifies the type of operation requested */ 12357 #define MC_CMD_FILTER_OP_OUT_OP_OFST 0 12358 #define MC_CMD_FILTER_OP_OUT_OP_LEN 4 12359 /* Enum values, see field(s): */ 12360 /* MC_CMD_FILTER_OP_IN/OP */ 12361 /* Returned filter handle (for insert / subscribe operations). Note that these 12362 * handles should be considered opaque to the host, although a value of 12363 * 0xFFFFFFFF_FFFFFFFF is guaranteed never to be a valid handle. 12364 */ 12365 #define MC_CMD_FILTER_OP_OUT_HANDLE_OFST 4 12366 #define MC_CMD_FILTER_OP_OUT_HANDLE_LEN 8 12367 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_OFST 4 12368 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_LEN 4 12369 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_LBN 32 12370 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_WIDTH 32 12371 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_OFST 8 12372 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_LEN 4 12373 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_LBN 64 12374 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_WIDTH 32 12375 /* enum: guaranteed invalid filter handle (low 32 bits) */ 12376 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_INVALID 0xffffffff 12377 /* enum: guaranteed invalid filter handle (high 32 bits) */ 12378 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_INVALID 0xffffffff 12379 12380 /* MC_CMD_FILTER_OP_EXT_OUT msgresponse */ 12381 #define MC_CMD_FILTER_OP_EXT_OUT_LEN 12 12382 /* identifies the type of operation requested */ 12383 #define MC_CMD_FILTER_OP_EXT_OUT_OP_OFST 0 12384 #define MC_CMD_FILTER_OP_EXT_OUT_OP_LEN 4 12385 /* Enum values, see field(s): */ 12386 /* MC_CMD_FILTER_OP_EXT_IN/OP */ 12387 /* Returned filter handle (for insert / subscribe operations). Note that these 12388 * handles should be considered opaque to the host, although a value of 12389 * 0xFFFFFFFF_FFFFFFFF is guaranteed never to be a valid handle. 12390 */ 12391 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_OFST 4 12392 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LEN 8 12393 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_OFST 4 12394 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_LEN 4 12395 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_LBN 32 12396 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_WIDTH 32 12397 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_OFST 8 12398 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_LEN 4 12399 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_LBN 64 12400 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_WIDTH 32 12401 /* Enum values, see field(s): */ 12402 /* MC_CMD_FILTER_OP_OUT/HANDLE */ 12403 12404 12405 /***********************************/ 12406 /* MC_CMD_GET_PARSER_DISP_INFO 12407 * Get information related to the parser-dispatcher subsystem 12408 */ 12409 #define MC_CMD_GET_PARSER_DISP_INFO 0xe4 12410 #define MC_CMD_GET_PARSER_DISP_INFO_MSGSET 0xe4 12411 #undef MC_CMD_0xe4_PRIVILEGE_CTG 12412 12413 #define MC_CMD_0xe4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12414 12415 /* MC_CMD_GET_PARSER_DISP_INFO_IN msgrequest */ 12416 #define MC_CMD_GET_PARSER_DISP_INFO_IN_LEN 4 12417 /* identifies the type of operation requested */ 12418 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_OFST 0 12419 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_LEN 4 12420 /* enum: read the list of supported RX filter matches */ 12421 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_RX_MATCHES 0x1 12422 /* enum: read flags indicating restrictions on filter insertion for the calling 12423 * client 12424 */ 12425 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_RESTRICTIONS 0x2 12426 /* enum: read properties relating to security rules (Medford-only; for use by 12427 * SolarSecure apps, not directly by drivers. See SF-114946-SW.) 12428 */ 12429 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SECURITY_RULE_INFO 0x3 12430 /* enum: read the list of supported RX filter matches for VXLAN/NVGRE 12431 * encapsulated frames, which follow a different match sequence to normal 12432 * frames (Medford only) 12433 */ 12434 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_ENCAP_RX_MATCHES 0x4 12435 /* enum: read the list of supported matches for the encapsulation detection 12436 * rules inserted by MC_CMD_VNIC_ENCAP_RULE_ADD. (ef100 and later) 12437 */ 12438 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_VNIC_ENCAP_MATCHES 0x5 12439 /* enum: read the supported encapsulation types for the VNIC */ 12440 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_VNIC_ENCAP_TYPES 0x6 12441 12442 /* MC_CMD_GET_PARSER_DISP_INFO_OUT msgresponse */ 12443 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LENMIN 8 12444 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LENMAX 252 12445 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LENMAX_MCDI2 1020 12446 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LEN(num) (8+4*(num)) 12447 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_NUM(len) (((len)-8)/4) 12448 /* identifies the type of operation requested */ 12449 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_OP_OFST 0 12450 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_OP_LEN 4 12451 /* Enum values, see field(s): */ 12452 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 12453 /* number of supported match types */ 12454 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_NUM_SUPPORTED_MATCHES_OFST 4 12455 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_NUM_SUPPORTED_MATCHES_LEN 4 12456 /* array of supported match types (valid MATCH_FIELDS values for 12457 * MC_CMD_FILTER_OP) sorted in decreasing priority order 12458 */ 12459 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_OFST 8 12460 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_LEN 4 12461 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_MINNUM 0 12462 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_MAXNUM 61 12463 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_MAXNUM_MCDI2 253 12464 12465 /* MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT msgresponse */ 12466 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_LEN 8 12467 /* identifies the type of operation requested */ 12468 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_OP_OFST 0 12469 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_OP_LEN 4 12470 /* Enum values, see field(s): */ 12471 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 12472 /* bitfield of filter insertion restrictions */ 12473 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_RESTRICTION_FLAGS_OFST 4 12474 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_RESTRICTION_FLAGS_LEN 4 12475 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_DST_IP_MCAST_ONLY_OFST 4 12476 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_DST_IP_MCAST_ONLY_LBN 0 12477 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_DST_IP_MCAST_ONLY_WIDTH 1 12478 12479 /* MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT msgresponse: 12480 * GET_PARSER_DISP_INFO response format for OP_GET_SECURITY_RULE_INFO. 12481 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See 12482 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 12483 * been used in any released code and may change during development. This note 12484 * will be removed once it is regarded as stable. 12485 */ 12486 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_LEN 36 12487 /* identifies the type of operation requested */ 12488 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_OP_OFST 0 12489 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_OP_LEN 4 12490 /* Enum values, see field(s): */ 12491 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 12492 /* a version number representing the set of rule lookups that are implemented 12493 * by the currently running firmware 12494 */ 12495 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_RULES_VERSION_OFST 4 12496 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_RULES_VERSION_LEN 4 12497 /* enum: implements lookup sequences described in SF-114946-SW draft C */ 12498 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_RULES_VERSION_SF_114946_SW_C 0x0 12499 /* the number of nodes in the subnet map */ 12500 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_NODES_OFST 8 12501 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_NODES_LEN 4 12502 /* the number of entries in one subnet map node */ 12503 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_ENTRIES_PER_NODE_OFST 12 12504 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_ENTRIES_PER_NODE_LEN 4 12505 /* minimum valid value for a subnet ID in a subnet map leaf */ 12506 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MIN_OFST 16 12507 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MIN_LEN 4 12508 /* maximum valid value for a subnet ID in a subnet map leaf */ 12509 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MAX_OFST 20 12510 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MAX_LEN 4 12511 /* the number of entries in the local and remote port range maps */ 12512 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_TREE_NUM_ENTRIES_OFST 24 12513 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_TREE_NUM_ENTRIES_LEN 4 12514 /* minimum valid value for a portrange ID in a port range map leaf */ 12515 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MIN_OFST 28 12516 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MIN_LEN 4 12517 /* maximum valid value for a portrange ID in a port range map leaf */ 12518 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MAX_OFST 32 12519 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MAX_LEN 4 12520 12521 /* MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT msgresponse: This response is 12522 * returned if a MC_CMD_GET_PARSER_DISP_INFO_IN request is sent with OP value 12523 * OP_GET_SUPPORTED_VNIC_ENCAP_MATCHES. It contains information about the 12524 * supported match types that can be used in the encapsulation detection rules 12525 * inserted by MC_CMD_VNIC_ENCAP_RULE_ADD. 12526 */ 12527 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LENMIN 8 12528 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LENMAX 252 12529 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LENMAX_MCDI2 1020 12530 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LEN(num) (8+4*(num)) 12531 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_NUM(len) (((len)-8)/4) 12532 /* The op code OP_GET_SUPPORTED_VNIC_ENCAP_MATCHES is returned. */ 12533 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_OP_OFST 0 12534 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_OP_LEN 4 12535 /* Enum values, see field(s): */ 12536 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 12537 /* number of supported match types */ 12538 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_NUM_SUPPORTED_MATCHES_OFST 4 12539 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_NUM_SUPPORTED_MATCHES_LEN 4 12540 /* array of supported match types (valid MATCH_FLAGS values for 12541 * MC_CMD_VNIC_ENCAP_RULE_ADD) sorted in decreasing priority order 12542 */ 12543 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_OFST 8 12544 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_LEN 4 12545 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_MINNUM 0 12546 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_MAXNUM 61 12547 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_MAXNUM_MCDI2 253 12548 12549 /* MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT msgresponse: Returns 12550 * the supported encapsulation types for the VNIC 12551 */ 12552 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_LEN 8 12553 /* The op code OP_GET_SUPPORTED_VNIC_ENCAP_TYPES is returned */ 12554 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_OP_OFST 0 12555 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_OP_LEN 4 12556 /* Enum values, see field(s): */ 12557 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 12558 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPES_SUPPORTED_OFST 4 12559 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPES_SUPPORTED_LEN 4 12560 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_VXLAN_OFST 4 12561 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_VXLAN_LBN 0 12562 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_VXLAN_WIDTH 1 12563 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_NVGRE_OFST 4 12564 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_NVGRE_LBN 1 12565 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_NVGRE_WIDTH 1 12566 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_GENEVE_OFST 4 12567 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_GENEVE_LBN 2 12568 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_GENEVE_WIDTH 1 12569 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_L2GRE_OFST 4 12570 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_L2GRE_LBN 3 12571 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_L2GRE_WIDTH 1 12572 12573 12574 /***********************************/ 12575 /* MC_CMD_PARSER_DISP_RW 12576 * Direct read/write of parser-dispatcher state (DICPUs and LUE) for debugging. 12577 * Please note that this interface is only of use to debug tools which have 12578 * knowledge of firmware and hardware data structures; nothing here is intended 12579 * for use by normal driver code. Note that although this command is in the 12580 * Admin privilege group, in tamperproof adapters, only read operations are 12581 * permitted. 12582 */ 12583 #define MC_CMD_PARSER_DISP_RW 0xe5 12584 #define MC_CMD_PARSER_DISP_RW_MSGSET 0xe5 12585 #undef MC_CMD_0xe5_PRIVILEGE_CTG 12586 12587 #define MC_CMD_0xe5_PRIVILEGE_CTG SRIOV_CTG_ADMIN 12588 12589 /* MC_CMD_PARSER_DISP_RW_IN msgrequest */ 12590 #define MC_CMD_PARSER_DISP_RW_IN_LEN 32 12591 /* identifies the target of the operation */ 12592 #define MC_CMD_PARSER_DISP_RW_IN_TARGET_OFST 0 12593 #define MC_CMD_PARSER_DISP_RW_IN_TARGET_LEN 4 12594 /* enum: RX dispatcher CPU */ 12595 #define MC_CMD_PARSER_DISP_RW_IN_RX_DICPU 0x0 12596 /* enum: TX dispatcher CPU */ 12597 #define MC_CMD_PARSER_DISP_RW_IN_TX_DICPU 0x1 12598 /* enum: Lookup engine (with original metadata format). Deprecated; used only 12599 * by cmdclient as a fallback for very old Huntington firmware, and not 12600 * supported in firmware beyond v6.4.0.1005. Use LUE_VERSIONED_METADATA 12601 * instead. 12602 */ 12603 #define MC_CMD_PARSER_DISP_RW_IN_LUE 0x2 12604 /* enum: Lookup engine (with requested metadata format) */ 12605 #define MC_CMD_PARSER_DISP_RW_IN_LUE_VERSIONED_METADATA 0x3 12606 /* enum: RX0 dispatcher CPU (alias for RX_DICPU; Medford has 2 RX DICPUs) */ 12607 #define MC_CMD_PARSER_DISP_RW_IN_RX0_DICPU 0x0 12608 /* enum: RX1 dispatcher CPU (only valid for Medford) */ 12609 #define MC_CMD_PARSER_DISP_RW_IN_RX1_DICPU 0x4 12610 /* enum: Miscellaneous other state (only valid for Medford) */ 12611 #define MC_CMD_PARSER_DISP_RW_IN_MISC_STATE 0x5 12612 /* identifies the type of operation requested */ 12613 #define MC_CMD_PARSER_DISP_RW_IN_OP_OFST 4 12614 #define MC_CMD_PARSER_DISP_RW_IN_OP_LEN 4 12615 /* enum: Read a word of DICPU DMEM or a LUE entry */ 12616 #define MC_CMD_PARSER_DISP_RW_IN_READ 0x0 12617 /* enum: Write a word of DICPU DMEM or a LUE entry. Not permitted on 12618 * tamperproof adapters. 12619 */ 12620 #define MC_CMD_PARSER_DISP_RW_IN_WRITE 0x1 12621 /* enum: Read-modify-write a word of DICPU DMEM (not valid for LUE). Not 12622 * permitted on tamperproof adapters. 12623 */ 12624 #define MC_CMD_PARSER_DISP_RW_IN_RMW 0x2 12625 /* data memory address (DICPU targets) or LUE index (LUE targets) */ 12626 #define MC_CMD_PARSER_DISP_RW_IN_ADDRESS_OFST 8 12627 #define MC_CMD_PARSER_DISP_RW_IN_ADDRESS_LEN 4 12628 /* selector (for MISC_STATE target) */ 12629 #define MC_CMD_PARSER_DISP_RW_IN_SELECTOR_OFST 8 12630 #define MC_CMD_PARSER_DISP_RW_IN_SELECTOR_LEN 4 12631 /* enum: Port to datapath mapping */ 12632 #define MC_CMD_PARSER_DISP_RW_IN_PORT_DP_MAPPING 0x1 12633 /* value to write (for DMEM writes) */ 12634 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_WRITE_VALUE_OFST 12 12635 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_WRITE_VALUE_LEN 4 12636 /* XOR value (for DMEM read-modify-writes: new = (old & mask) ^ value) */ 12637 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_RMW_XOR_VALUE_OFST 12 12638 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_RMW_XOR_VALUE_LEN 4 12639 /* AND mask (for DMEM read-modify-writes: new = (old & mask) ^ value) */ 12640 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_RMW_AND_MASK_OFST 16 12641 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_RMW_AND_MASK_LEN 4 12642 /* metadata format (for LUE reads using LUE_VERSIONED_METADATA) */ 12643 #define MC_CMD_PARSER_DISP_RW_IN_LUE_READ_METADATA_VERSION_OFST 12 12644 #define MC_CMD_PARSER_DISP_RW_IN_LUE_READ_METADATA_VERSION_LEN 4 12645 /* value to write (for LUE writes) */ 12646 #define MC_CMD_PARSER_DISP_RW_IN_LUE_WRITE_VALUE_OFST 12 12647 #define MC_CMD_PARSER_DISP_RW_IN_LUE_WRITE_VALUE_LEN 20 12648 12649 /* MC_CMD_PARSER_DISP_RW_OUT msgresponse */ 12650 #define MC_CMD_PARSER_DISP_RW_OUT_LEN 52 12651 /* value read (for DMEM reads) */ 12652 #define MC_CMD_PARSER_DISP_RW_OUT_DMEM_READ_VALUE_OFST 0 12653 #define MC_CMD_PARSER_DISP_RW_OUT_DMEM_READ_VALUE_LEN 4 12654 /* value read (for LUE reads) */ 12655 #define MC_CMD_PARSER_DISP_RW_OUT_LUE_READ_VALUE_OFST 0 12656 #define MC_CMD_PARSER_DISP_RW_OUT_LUE_READ_VALUE_LEN 20 12657 /* up to 8 32-bit words of additional soft state from the LUE manager (the 12658 * exact content is firmware-dependent and intended only for debug use) 12659 */ 12660 #define MC_CMD_PARSER_DISP_RW_OUT_LUE_MGR_STATE_OFST 20 12661 #define MC_CMD_PARSER_DISP_RW_OUT_LUE_MGR_STATE_LEN 32 12662 /* datapath(s) used for each port (for MISC_STATE PORT_DP_MAPPING selector) */ 12663 #define MC_CMD_PARSER_DISP_RW_OUT_PORT_DP_MAPPING_OFST 0 12664 #define MC_CMD_PARSER_DISP_RW_OUT_PORT_DP_MAPPING_LEN 4 12665 #define MC_CMD_PARSER_DISP_RW_OUT_PORT_DP_MAPPING_NUM 4 12666 #define MC_CMD_PARSER_DISP_RW_OUT_DP0 0x1 /* enum */ 12667 #define MC_CMD_PARSER_DISP_RW_OUT_DP1 0x2 /* enum */ 12668 12669 12670 /***********************************/ 12671 /* MC_CMD_GET_PF_COUNT 12672 * Get number of PFs on the device. 12673 */ 12674 #define MC_CMD_GET_PF_COUNT 0xb6 12675 #define MC_CMD_GET_PF_COUNT_MSGSET 0xb6 12676 #undef MC_CMD_0xb6_PRIVILEGE_CTG 12677 12678 #define MC_CMD_0xb6_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12679 12680 /* MC_CMD_GET_PF_COUNT_IN msgrequest */ 12681 #define MC_CMD_GET_PF_COUNT_IN_LEN 0 12682 12683 /* MC_CMD_GET_PF_COUNT_OUT msgresponse */ 12684 #define MC_CMD_GET_PF_COUNT_OUT_LEN 1 12685 /* Identifies the number of PFs on the device. */ 12686 #define MC_CMD_GET_PF_COUNT_OUT_PF_COUNT_OFST 0 12687 #define MC_CMD_GET_PF_COUNT_OUT_PF_COUNT_LEN 1 12688 12689 12690 /***********************************/ 12691 /* MC_CMD_SET_PF_COUNT 12692 * Set number of PFs on the device. 12693 */ 12694 #define MC_CMD_SET_PF_COUNT 0xb7 12695 #define MC_CMD_SET_PF_COUNT_MSGSET 0xb7 12696 12697 /* MC_CMD_SET_PF_COUNT_IN msgrequest */ 12698 #define MC_CMD_SET_PF_COUNT_IN_LEN 4 12699 /* New number of PFs on the device. */ 12700 #define MC_CMD_SET_PF_COUNT_IN_PF_COUNT_OFST 0 12701 #define MC_CMD_SET_PF_COUNT_IN_PF_COUNT_LEN 4 12702 12703 /* MC_CMD_SET_PF_COUNT_OUT msgresponse */ 12704 #define MC_CMD_SET_PF_COUNT_OUT_LEN 0 12705 12706 12707 /***********************************/ 12708 /* MC_CMD_GET_PORT_ASSIGNMENT 12709 * Get port assignment for current PCI function. 12710 */ 12711 #define MC_CMD_GET_PORT_ASSIGNMENT 0xb8 12712 #define MC_CMD_GET_PORT_ASSIGNMENT_MSGSET 0xb8 12713 #undef MC_CMD_0xb8_PRIVILEGE_CTG 12714 12715 #define MC_CMD_0xb8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12716 12717 /* MC_CMD_GET_PORT_ASSIGNMENT_IN msgrequest */ 12718 #define MC_CMD_GET_PORT_ASSIGNMENT_IN_LEN 0 12719 12720 /* MC_CMD_GET_PORT_ASSIGNMENT_OUT msgresponse */ 12721 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_LEN 4 12722 /* Identifies the port assignment for this function. On EF100, it is possible 12723 * for the function to have no network port assigned (either because it is not 12724 * yet configured, or assigning a port to a given function personality makes no 12725 * sense - e.g. virtio-blk), in which case the return value is NULL_PORT. 12726 */ 12727 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_PORT_OFST 0 12728 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_PORT_LEN 4 12729 /* enum: Special value to indicate no port is assigned to a function. */ 12730 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_NULL_PORT 0xffffffff 12731 12732 12733 /***********************************/ 12734 /* MC_CMD_SET_PORT_ASSIGNMENT 12735 * Set port assignment for current PCI function. 12736 */ 12737 #define MC_CMD_SET_PORT_ASSIGNMENT 0xb9 12738 #define MC_CMD_SET_PORT_ASSIGNMENT_MSGSET 0xb9 12739 #undef MC_CMD_0xb9_PRIVILEGE_CTG 12740 12741 #define MC_CMD_0xb9_PRIVILEGE_CTG SRIOV_CTG_ADMIN 12742 12743 /* MC_CMD_SET_PORT_ASSIGNMENT_IN msgrequest */ 12744 #define MC_CMD_SET_PORT_ASSIGNMENT_IN_LEN 4 12745 /* Identifies the port assignment for this function. */ 12746 #define MC_CMD_SET_PORT_ASSIGNMENT_IN_PORT_OFST 0 12747 #define MC_CMD_SET_PORT_ASSIGNMENT_IN_PORT_LEN 4 12748 12749 /* MC_CMD_SET_PORT_ASSIGNMENT_OUT msgresponse */ 12750 #define MC_CMD_SET_PORT_ASSIGNMENT_OUT_LEN 0 12751 12752 12753 /***********************************/ 12754 /* MC_CMD_ALLOC_VIS 12755 * Allocate VIs for current PCI function. 12756 */ 12757 #define MC_CMD_ALLOC_VIS 0x8b 12758 #define MC_CMD_ALLOC_VIS_MSGSET 0x8b 12759 #undef MC_CMD_0x8b_PRIVILEGE_CTG 12760 12761 #define MC_CMD_0x8b_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12762 12763 /* MC_CMD_ALLOC_VIS_IN msgrequest */ 12764 #define MC_CMD_ALLOC_VIS_IN_LEN 8 12765 /* The minimum number of VIs that is acceptable */ 12766 #define MC_CMD_ALLOC_VIS_IN_MIN_VI_COUNT_OFST 0 12767 #define MC_CMD_ALLOC_VIS_IN_MIN_VI_COUNT_LEN 4 12768 /* The maximum number of VIs that would be useful */ 12769 #define MC_CMD_ALLOC_VIS_IN_MAX_VI_COUNT_OFST 4 12770 #define MC_CMD_ALLOC_VIS_IN_MAX_VI_COUNT_LEN 4 12771 12772 /* MC_CMD_ALLOC_VIS_OUT msgresponse: Huntington-compatible VI_ALLOC request. 12773 * Use extended version in new code. 12774 */ 12775 #define MC_CMD_ALLOC_VIS_OUT_LEN 8 12776 /* The number of VIs allocated on this function */ 12777 #define MC_CMD_ALLOC_VIS_OUT_VI_COUNT_OFST 0 12778 #define MC_CMD_ALLOC_VIS_OUT_VI_COUNT_LEN 4 12779 /* The base absolute VI number allocated to this function. Required to 12780 * correctly interpret wakeup events. 12781 */ 12782 #define MC_CMD_ALLOC_VIS_OUT_VI_BASE_OFST 4 12783 #define MC_CMD_ALLOC_VIS_OUT_VI_BASE_LEN 4 12784 12785 /* MC_CMD_ALLOC_VIS_EXT_OUT msgresponse */ 12786 #define MC_CMD_ALLOC_VIS_EXT_OUT_LEN 12 12787 /* The number of VIs allocated on this function */ 12788 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_COUNT_OFST 0 12789 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_COUNT_LEN 4 12790 /* The base absolute VI number allocated to this function. Required to 12791 * correctly interpret wakeup events. 12792 */ 12793 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_BASE_OFST 4 12794 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_BASE_LEN 4 12795 /* Function's port vi_shift value (always 0 on Huntington) */ 12796 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_SHIFT_OFST 8 12797 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_SHIFT_LEN 4 12798 12799 12800 /***********************************/ 12801 /* MC_CMD_FREE_VIS 12802 * Free VIs for current PCI function. Any linked PIO buffers will be unlinked, 12803 * but not freed. 12804 */ 12805 #define MC_CMD_FREE_VIS 0x8c 12806 #define MC_CMD_FREE_VIS_MSGSET 0x8c 12807 #undef MC_CMD_0x8c_PRIVILEGE_CTG 12808 12809 #define MC_CMD_0x8c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12810 12811 /* MC_CMD_FREE_VIS_IN msgrequest */ 12812 #define MC_CMD_FREE_VIS_IN_LEN 0 12813 12814 /* MC_CMD_FREE_VIS_OUT msgresponse */ 12815 #define MC_CMD_FREE_VIS_OUT_LEN 0 12816 12817 12818 /***********************************/ 12819 /* MC_CMD_GET_SRIOV_CFG 12820 * Get SRIOV config for this PF. 12821 */ 12822 #define MC_CMD_GET_SRIOV_CFG 0xba 12823 #define MC_CMD_GET_SRIOV_CFG_MSGSET 0xba 12824 #undef MC_CMD_0xba_PRIVILEGE_CTG 12825 12826 #define MC_CMD_0xba_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12827 12828 /* MC_CMD_GET_SRIOV_CFG_IN msgrequest */ 12829 #define MC_CMD_GET_SRIOV_CFG_IN_LEN 0 12830 12831 /* MC_CMD_GET_SRIOV_CFG_OUT msgresponse */ 12832 #define MC_CMD_GET_SRIOV_CFG_OUT_LEN 20 12833 /* Number of VFs currently enabled. */ 12834 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_CURRENT_OFST 0 12835 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_CURRENT_LEN 4 12836 /* Max number of VFs before sriov stride and offset may need to be changed. */ 12837 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_MAX_OFST 4 12838 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_MAX_LEN 4 12839 #define MC_CMD_GET_SRIOV_CFG_OUT_FLAGS_OFST 8 12840 #define MC_CMD_GET_SRIOV_CFG_OUT_FLAGS_LEN 4 12841 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_ENABLED_OFST 8 12842 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_ENABLED_LBN 0 12843 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_ENABLED_WIDTH 1 12844 /* RID offset of first VF from PF. */ 12845 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_OFFSET_OFST 12 12846 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_OFFSET_LEN 4 12847 /* RID offset of each subsequent VF from the previous. */ 12848 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_STRIDE_OFST 16 12849 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_STRIDE_LEN 4 12850 12851 12852 /***********************************/ 12853 /* MC_CMD_SET_SRIOV_CFG 12854 * Set SRIOV config for this PF. 12855 */ 12856 #define MC_CMD_SET_SRIOV_CFG 0xbb 12857 #define MC_CMD_SET_SRIOV_CFG_MSGSET 0xbb 12858 #undef MC_CMD_0xbb_PRIVILEGE_CTG 12859 12860 #define MC_CMD_0xbb_PRIVILEGE_CTG SRIOV_CTG_ADMIN 12861 12862 /* MC_CMD_SET_SRIOV_CFG_IN msgrequest */ 12863 #define MC_CMD_SET_SRIOV_CFG_IN_LEN 20 12864 /* Number of VFs currently enabled. */ 12865 #define MC_CMD_SET_SRIOV_CFG_IN_VF_CURRENT_OFST 0 12866 #define MC_CMD_SET_SRIOV_CFG_IN_VF_CURRENT_LEN 4 12867 /* Max number of VFs before sriov stride and offset may need to be changed. */ 12868 #define MC_CMD_SET_SRIOV_CFG_IN_VF_MAX_OFST 4 12869 #define MC_CMD_SET_SRIOV_CFG_IN_VF_MAX_LEN 4 12870 #define MC_CMD_SET_SRIOV_CFG_IN_FLAGS_OFST 8 12871 #define MC_CMD_SET_SRIOV_CFG_IN_FLAGS_LEN 4 12872 #define MC_CMD_SET_SRIOV_CFG_IN_VF_ENABLED_OFST 8 12873 #define MC_CMD_SET_SRIOV_CFG_IN_VF_ENABLED_LBN 0 12874 #define MC_CMD_SET_SRIOV_CFG_IN_VF_ENABLED_WIDTH 1 12875 /* RID offset of first VF from PF, or 0 for no change, or 12876 * MC_CMD_RESOURCE_INSTANCE_ANY to allow the system to allocate an offset. 12877 */ 12878 #define MC_CMD_SET_SRIOV_CFG_IN_VF_OFFSET_OFST 12 12879 #define MC_CMD_SET_SRIOV_CFG_IN_VF_OFFSET_LEN 4 12880 /* RID offset of each subsequent VF from the previous, 0 for no change, or 12881 * MC_CMD_RESOURCE_INSTANCE_ANY to allow the system to allocate a stride. 12882 */ 12883 #define MC_CMD_SET_SRIOV_CFG_IN_VF_STRIDE_OFST 16 12884 #define MC_CMD_SET_SRIOV_CFG_IN_VF_STRIDE_LEN 4 12885 12886 /* MC_CMD_SET_SRIOV_CFG_OUT msgresponse */ 12887 #define MC_CMD_SET_SRIOV_CFG_OUT_LEN 0 12888 12889 12890 /***********************************/ 12891 /* MC_CMD_GET_VI_ALLOC_INFO 12892 * Get information about number of VI's and base VI number allocated to this 12893 * function. This message is not available to dynamic clients created by 12894 * MC_CMD_CLIENT_ALLOC. 12895 */ 12896 #define MC_CMD_GET_VI_ALLOC_INFO 0x8d 12897 #define MC_CMD_GET_VI_ALLOC_INFO_MSGSET 0x8d 12898 #undef MC_CMD_0x8d_PRIVILEGE_CTG 12899 12900 #define MC_CMD_0x8d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12901 12902 /* MC_CMD_GET_VI_ALLOC_INFO_IN msgrequest */ 12903 #define MC_CMD_GET_VI_ALLOC_INFO_IN_LEN 0 12904 12905 /* MC_CMD_GET_VI_ALLOC_INFO_OUT msgresponse */ 12906 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_LEN 12 12907 /* The number of VIs allocated on this function */ 12908 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_COUNT_OFST 0 12909 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_COUNT_LEN 4 12910 /* The base absolute VI number allocated to this function. Required to 12911 * correctly interpret wakeup events. 12912 */ 12913 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_BASE_OFST 4 12914 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_BASE_LEN 4 12915 /* Function's port vi_shift value (always 0 on Huntington) */ 12916 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_SHIFT_OFST 8 12917 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_SHIFT_LEN 4 12918 12919 12920 /***********************************/ 12921 /* MC_CMD_DUMP_VI_STATE 12922 * For CmdClient use. Dump pertinent information on a specific absolute VI. The 12923 * VI must be owned by the calling client or one of its ancestors; usership of 12924 * the VI (as set by MC_CMD_SET_VI_USER) is not sufficient. 12925 */ 12926 #define MC_CMD_DUMP_VI_STATE 0x8e 12927 #define MC_CMD_DUMP_VI_STATE_MSGSET 0x8e 12928 #undef MC_CMD_0x8e_PRIVILEGE_CTG 12929 12930 #define MC_CMD_0x8e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 12931 12932 /* MC_CMD_DUMP_VI_STATE_IN msgrequest */ 12933 #define MC_CMD_DUMP_VI_STATE_IN_LEN 4 12934 /* The VI number to query. */ 12935 #define MC_CMD_DUMP_VI_STATE_IN_VI_NUMBER_OFST 0 12936 #define MC_CMD_DUMP_VI_STATE_IN_VI_NUMBER_LEN 4 12937 12938 /* MC_CMD_DUMP_VI_STATE_OUT msgresponse */ 12939 #define MC_CMD_DUMP_VI_STATE_OUT_LEN 100 12940 /* The PF part of the function owning this VI. */ 12941 #define MC_CMD_DUMP_VI_STATE_OUT_OWNER_PF_OFST 0 12942 #define MC_CMD_DUMP_VI_STATE_OUT_OWNER_PF_LEN 2 12943 /* The VF part of the function owning this VI. */ 12944 #define MC_CMD_DUMP_VI_STATE_OUT_OWNER_VF_OFST 2 12945 #define MC_CMD_DUMP_VI_STATE_OUT_OWNER_VF_LEN 2 12946 /* Base of VIs allocated to this function. */ 12947 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VI_BASE_OFST 4 12948 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VI_BASE_LEN 2 12949 /* Count of VIs allocated to the owner function. */ 12950 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VI_COUNT_OFST 6 12951 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VI_COUNT_LEN 2 12952 /* Base interrupt vector allocated to this function. */ 12953 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VECTOR_BASE_OFST 8 12954 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VECTOR_BASE_LEN 2 12955 /* Number of interrupt vectors allocated to this function. */ 12956 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VECTOR_COUNT_OFST 10 12957 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VECTOR_COUNT_LEN 2 12958 /* Raw evq ptr table data. */ 12959 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_OFST 12 12960 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LEN 8 12961 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LO_OFST 12 12962 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LO_LEN 4 12963 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LO_LBN 96 12964 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LO_WIDTH 32 12965 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_HI_OFST 16 12966 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_HI_LEN 4 12967 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_HI_LBN 128 12968 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_HI_WIDTH 32 12969 /* Raw evq timer table data. */ 12970 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_OFST 20 12971 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LEN 8 12972 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LO_OFST 20 12973 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LO_LEN 4 12974 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LO_LBN 160 12975 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LO_WIDTH 32 12976 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_HI_OFST 24 12977 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_HI_LEN 4 12978 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_HI_LBN 192 12979 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_HI_WIDTH 32 12980 /* Combined metadata field. */ 12981 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_OFST 28 12982 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_LEN 4 12983 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_BASE_OFST 28 12984 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_BASE_LBN 0 12985 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_BASE_WIDTH 16 12986 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_NPAGES_OFST 28 12987 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_NPAGES_LBN 16 12988 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_NPAGES_WIDTH 8 12989 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_WKUP_REF_OFST 28 12990 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_WKUP_REF_LBN 24 12991 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_WKUP_REF_WIDTH 8 12992 /* TXDPCPU raw table data for queue. */ 12993 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_OFST 32 12994 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LEN 8 12995 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LO_OFST 32 12996 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LO_LEN 4 12997 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LO_LBN 256 12998 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LO_WIDTH 32 12999 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_HI_OFST 36 13000 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_HI_LEN 4 13001 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_HI_LBN 288 13002 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_HI_WIDTH 32 13003 /* TXDPCPU raw table data for queue. */ 13004 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_OFST 40 13005 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LEN 8 13006 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LO_OFST 40 13007 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LO_LEN 4 13008 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LO_LBN 320 13009 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LO_WIDTH 32 13010 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_HI_OFST 44 13011 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_HI_LEN 4 13012 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_HI_LBN 352 13013 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_HI_WIDTH 32 13014 /* TXDPCPU raw table data for queue. */ 13015 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_OFST 48 13016 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LEN 8 13017 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LO_OFST 48 13018 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LO_LEN 4 13019 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LO_LBN 384 13020 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LO_WIDTH 32 13021 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_HI_OFST 52 13022 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_HI_LEN 4 13023 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_HI_LBN 416 13024 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_HI_WIDTH 32 13025 /* Combined metadata field. */ 13026 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_OFST 56 13027 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LEN 8 13028 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LO_OFST 56 13029 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LO_LEN 4 13030 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LO_LBN 448 13031 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LO_WIDTH 32 13032 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_HI_OFST 60 13033 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_HI_LEN 4 13034 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_HI_LBN 480 13035 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_HI_WIDTH 32 13036 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_BASE_OFST 56 13037 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_BASE_LBN 0 13038 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_BASE_WIDTH 16 13039 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_NPAGES_OFST 56 13040 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_NPAGES_LBN 16 13041 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_NPAGES_WIDTH 8 13042 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_QSTATE_OFST 56 13043 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_QSTATE_LBN 24 13044 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_QSTATE_WIDTH 8 13045 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_WAITCOUNT_OFST 56 13046 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_WAITCOUNT_LBN 32 13047 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_WAITCOUNT_WIDTH 8 13048 #define MC_CMD_DUMP_VI_STATE_OUT_VI_PADDING_OFST 56 13049 #define MC_CMD_DUMP_VI_STATE_OUT_VI_PADDING_LBN 40 13050 #define MC_CMD_DUMP_VI_STATE_OUT_VI_PADDING_WIDTH 24 13051 /* RXDPCPU raw table data for queue. */ 13052 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_OFST 64 13053 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LEN 8 13054 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LO_OFST 64 13055 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LO_LEN 4 13056 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LO_LBN 512 13057 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LO_WIDTH 32 13058 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_HI_OFST 68 13059 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_HI_LEN 4 13060 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_HI_LBN 544 13061 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_HI_WIDTH 32 13062 /* RXDPCPU raw table data for queue. */ 13063 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_OFST 72 13064 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LEN 8 13065 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LO_OFST 72 13066 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LO_LEN 4 13067 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LO_LBN 576 13068 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LO_WIDTH 32 13069 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_HI_OFST 76 13070 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_HI_LEN 4 13071 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_HI_LBN 608 13072 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_HI_WIDTH 32 13073 /* Reserved, currently 0. */ 13074 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_OFST 80 13075 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LEN 8 13076 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LO_OFST 80 13077 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LO_LEN 4 13078 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LO_LBN 640 13079 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LO_WIDTH 32 13080 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_HI_OFST 84 13081 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_HI_LEN 4 13082 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_HI_LBN 672 13083 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_HI_WIDTH 32 13084 /* Combined metadata field. */ 13085 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_OFST 88 13086 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LEN 8 13087 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LO_OFST 88 13088 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LO_LEN 4 13089 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LO_LBN 704 13090 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LO_WIDTH 32 13091 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_HI_OFST 92 13092 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_HI_LEN 4 13093 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_HI_LBN 736 13094 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_HI_WIDTH 32 13095 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_BASE_OFST 88 13096 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_BASE_LBN 0 13097 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_BASE_WIDTH 16 13098 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_NPAGES_OFST 88 13099 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_NPAGES_LBN 16 13100 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_NPAGES_WIDTH 8 13101 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_QSTATE_OFST 88 13102 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_QSTATE_LBN 24 13103 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_QSTATE_WIDTH 8 13104 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_WAITCOUNT_OFST 88 13105 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_WAITCOUNT_LBN 32 13106 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_WAITCOUNT_WIDTH 8 13107 /* Current user, as assigned by MC_CMD_SET_VI_USER. */ 13108 #define MC_CMD_DUMP_VI_STATE_OUT_USER_CLIENT_ID_OFST 96 13109 #define MC_CMD_DUMP_VI_STATE_OUT_USER_CLIENT_ID_LEN 4 13110 13111 13112 /***********************************/ 13113 /* MC_CMD_ALLOC_PIOBUF 13114 * Allocate a push I/O buffer for later use with a tx queue. 13115 */ 13116 #define MC_CMD_ALLOC_PIOBUF 0x8f 13117 #define MC_CMD_ALLOC_PIOBUF_MSGSET 0x8f 13118 #undef MC_CMD_0x8f_PRIVILEGE_CTG 13119 13120 #define MC_CMD_0x8f_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 13121 13122 /* MC_CMD_ALLOC_PIOBUF_IN msgrequest */ 13123 #define MC_CMD_ALLOC_PIOBUF_IN_LEN 0 13124 13125 /* MC_CMD_ALLOC_PIOBUF_OUT msgresponse */ 13126 #define MC_CMD_ALLOC_PIOBUF_OUT_LEN 4 13127 /* Handle for allocated push I/O buffer. */ 13128 #define MC_CMD_ALLOC_PIOBUF_OUT_PIOBUF_HANDLE_OFST 0 13129 #define MC_CMD_ALLOC_PIOBUF_OUT_PIOBUF_HANDLE_LEN 4 13130 13131 13132 /***********************************/ 13133 /* MC_CMD_FREE_PIOBUF 13134 * Free a push I/O buffer. 13135 */ 13136 #define MC_CMD_FREE_PIOBUF 0x90 13137 #define MC_CMD_FREE_PIOBUF_MSGSET 0x90 13138 #undef MC_CMD_0x90_PRIVILEGE_CTG 13139 13140 #define MC_CMD_0x90_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 13141 13142 /* MC_CMD_FREE_PIOBUF_IN msgrequest */ 13143 #define MC_CMD_FREE_PIOBUF_IN_LEN 4 13144 /* Handle for allocated push I/O buffer. */ 13145 #define MC_CMD_FREE_PIOBUF_IN_PIOBUF_HANDLE_OFST 0 13146 #define MC_CMD_FREE_PIOBUF_IN_PIOBUF_HANDLE_LEN 4 13147 13148 /* MC_CMD_FREE_PIOBUF_OUT msgresponse */ 13149 #define MC_CMD_FREE_PIOBUF_OUT_LEN 0 13150 13151 13152 /***********************************/ 13153 /* MC_CMD_GET_VI_TLP_PROCESSING 13154 * Get TLP steering and ordering information for a VI. The caller must have the 13155 * GRP_FUNC_DMA privilege and must be the currently-assigned user of this VI or 13156 * an ancestor of the current user (see MC_CMD_SET_VI_USER). 13157 */ 13158 #define MC_CMD_GET_VI_TLP_PROCESSING 0xb0 13159 #define MC_CMD_GET_VI_TLP_PROCESSING_MSGSET 0xb0 13160 #undef MC_CMD_0xb0_PRIVILEGE_CTG 13161 13162 #define MC_CMD_0xb0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 13163 13164 /* MC_CMD_GET_VI_TLP_PROCESSING_IN msgrequest */ 13165 #define MC_CMD_GET_VI_TLP_PROCESSING_IN_LEN 4 13166 /* VI number to get information for. */ 13167 #define MC_CMD_GET_VI_TLP_PROCESSING_IN_INSTANCE_OFST 0 13168 #define MC_CMD_GET_VI_TLP_PROCESSING_IN_INSTANCE_LEN 4 13169 13170 /* MC_CMD_GET_VI_TLP_PROCESSING_OUT msgresponse */ 13171 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_LEN 4 13172 /* Transaction processing steering hint 1 for use with the Rx Queue. */ 13173 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_TAG1_RX_OFST 0 13174 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_TAG1_RX_LEN 1 13175 /* Transaction processing steering hint 2 for use with the Ev Queue. */ 13176 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_TAG2_EV_OFST 1 13177 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_TAG2_EV_LEN 1 13178 /* Use Relaxed ordering model for TLPs on this VI. */ 13179 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_RELAXED_ORDERING_LBN 16 13180 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_RELAXED_ORDERING_WIDTH 1 13181 /* Use ID based ordering for TLPs on this VI. */ 13182 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_ID_BASED_ORDERING_LBN 17 13183 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_ID_BASED_ORDERING_WIDTH 1 13184 /* Set no snoop bit for TLPs on this VI. */ 13185 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_NO_SNOOP_LBN 18 13186 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_NO_SNOOP_WIDTH 1 13187 /* Enable TPH for TLPs on this VI. */ 13188 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_ON_LBN 19 13189 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_ON_WIDTH 1 13190 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_DATA_OFST 0 13191 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_DATA_LEN 4 13192 13193 13194 /***********************************/ 13195 /* MC_CMD_SET_VI_TLP_PROCESSING 13196 * Set TLP steering and ordering information for a VI. The caller must have the 13197 * GRP_FUNC_DMA privilege and must be the currently-assigned user of this VI or 13198 * an ancestor of the current user (see MC_CMD_SET_VI_USER). 13199 */ 13200 #define MC_CMD_SET_VI_TLP_PROCESSING 0xb1 13201 #define MC_CMD_SET_VI_TLP_PROCESSING_MSGSET 0xb1 13202 #undef MC_CMD_0xb1_PRIVILEGE_CTG 13203 13204 #define MC_CMD_0xb1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 13205 13206 /* MC_CMD_SET_VI_TLP_PROCESSING_IN msgrequest */ 13207 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_LEN 8 13208 /* VI number to set information for. */ 13209 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_INSTANCE_OFST 0 13210 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_INSTANCE_LEN 4 13211 /* Transaction processing steering hint 1 for use with the Rx Queue. */ 13212 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_TAG1_RX_OFST 4 13213 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_TAG1_RX_LEN 1 13214 /* Transaction processing steering hint 2 for use with the Ev Queue. */ 13215 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_TAG2_EV_OFST 5 13216 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_TAG2_EV_LEN 1 13217 /* Use Relaxed ordering model for TLPs on this VI. */ 13218 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_RELAXED_ORDERING_LBN 48 13219 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_RELAXED_ORDERING_WIDTH 1 13220 /* Use ID based ordering for TLPs on this VI. */ 13221 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_ID_BASED_ORDERING_LBN 49 13222 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_ID_BASED_ORDERING_WIDTH 1 13223 /* Set the no snoop bit for TLPs on this VI. */ 13224 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_NO_SNOOP_LBN 50 13225 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_NO_SNOOP_WIDTH 1 13226 /* Enable TPH for TLPs on this VI. */ 13227 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_ON_LBN 51 13228 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_ON_WIDTH 1 13229 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_DATA_OFST 4 13230 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_DATA_LEN 4 13231 13232 /* MC_CMD_SET_VI_TLP_PROCESSING_OUT msgresponse */ 13233 #define MC_CMD_SET_VI_TLP_PROCESSING_OUT_LEN 0 13234 13235 13236 /***********************************/ 13237 /* MC_CMD_GET_TLP_PROCESSING_GLOBALS 13238 * Get global PCIe steering and transaction processing configuration. 13239 */ 13240 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS 0xbc 13241 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_MSGSET 0xbc 13242 #undef MC_CMD_0xbc_PRIVILEGE_CTG 13243 13244 #define MC_CMD_0xbc_PRIVILEGE_CTG SRIOV_CTG_ADMIN 13245 13246 /* MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN msgrequest */ 13247 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_LEN 4 13248 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_OFST 0 13249 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_LEN 4 13250 /* enum: MISC. */ 13251 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_MISC 0x0 13252 /* enum: IDO. */ 13253 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_IDO 0x1 13254 /* enum: RO. */ 13255 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_RO 0x2 13256 /* enum: TPH Type. */ 13257 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_TPH_TYPE 0x3 13258 13259 /* MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT msgresponse */ 13260 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_LEN 8 13261 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_GLOBAL_CATEGORY_OFST 0 13262 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_GLOBAL_CATEGORY_LEN 4 13263 /* Enum values, see field(s): */ 13264 /* MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN/TLP_GLOBAL_CATEGORY */ 13265 /* Amalgamated TLP info word. */ 13266 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_WORD_OFST 4 13267 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_WORD_LEN 4 13268 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_WTAG_EN_OFST 4 13269 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_WTAG_EN_LBN 0 13270 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_WTAG_EN_WIDTH 1 13271 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_SPARE_OFST 4 13272 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_SPARE_LBN 1 13273 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_SPARE_WIDTH 31 13274 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_DL_EN_OFST 4 13275 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_DL_EN_LBN 0 13276 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_DL_EN_WIDTH 1 13277 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_TX_EN_OFST 4 13278 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_TX_EN_LBN 1 13279 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_TX_EN_WIDTH 1 13280 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_EV_EN_OFST 4 13281 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_EV_EN_LBN 2 13282 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_EV_EN_WIDTH 1 13283 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_RX_EN_OFST 4 13284 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_RX_EN_LBN 3 13285 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_RX_EN_WIDTH 1 13286 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_SPARE_OFST 4 13287 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_SPARE_LBN 4 13288 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_SPARE_WIDTH 28 13289 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_RXDMA_EN_OFST 4 13290 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_RXDMA_EN_LBN 0 13291 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_RXDMA_EN_WIDTH 1 13292 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_TXDMA_EN_OFST 4 13293 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_TXDMA_EN_LBN 1 13294 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_TXDMA_EN_WIDTH 1 13295 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_DL_EN_OFST 4 13296 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_DL_EN_LBN 2 13297 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_DL_EN_WIDTH 1 13298 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_SPARE_OFST 4 13299 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_SPARE_LBN 3 13300 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_SPARE_WIDTH 29 13301 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_MSIX_OFST 4 13302 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_MSIX_LBN 0 13303 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_MSIX_WIDTH 2 13304 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_DL_OFST 4 13305 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_DL_LBN 2 13306 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_DL_WIDTH 2 13307 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_TX_OFST 4 13308 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_TX_LBN 4 13309 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_TX_WIDTH 2 13310 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_EV_OFST 4 13311 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_EV_LBN 6 13312 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_EV_WIDTH 2 13313 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_RX_OFST 4 13314 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_RX_LBN 8 13315 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_RX_WIDTH 2 13316 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TLP_TYPE_SPARE_OFST 4 13317 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TLP_TYPE_SPARE_LBN 9 13318 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TLP_TYPE_SPARE_WIDTH 23 13319 13320 13321 /***********************************/ 13322 /* MC_CMD_SET_TLP_PROCESSING_GLOBALS 13323 * Set global PCIe steering and transaction processing configuration. 13324 */ 13325 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS 0xbd 13326 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_MSGSET 0xbd 13327 #undef MC_CMD_0xbd_PRIVILEGE_CTG 13328 13329 #define MC_CMD_0xbd_PRIVILEGE_CTG SRIOV_CTG_ADMIN 13330 13331 /* MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN msgrequest */ 13332 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_LEN 8 13333 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_OFST 0 13334 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_LEN 4 13335 /* Enum values, see field(s): */ 13336 /* MC_CMD_GET_TLP_PROCESSING_GLOBALS/MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN/TLP_GLOBAL_CATEGORY */ 13337 /* Amalgamated TLP info word. */ 13338 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_WORD_OFST 4 13339 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_WORD_LEN 4 13340 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_MISC_WTAG_EN_OFST 4 13341 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_MISC_WTAG_EN_LBN 0 13342 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_MISC_WTAG_EN_WIDTH 1 13343 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_DL_EN_OFST 4 13344 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_DL_EN_LBN 0 13345 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_DL_EN_WIDTH 1 13346 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_TX_EN_OFST 4 13347 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_TX_EN_LBN 1 13348 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_TX_EN_WIDTH 1 13349 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_EV_EN_OFST 4 13350 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_EV_EN_LBN 2 13351 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_EV_EN_WIDTH 1 13352 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_RX_EN_OFST 4 13353 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_RX_EN_LBN 3 13354 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_RX_EN_WIDTH 1 13355 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_RXDMA_EN_OFST 4 13356 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_RXDMA_EN_LBN 0 13357 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_RXDMA_EN_WIDTH 1 13358 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_TXDMA_EN_OFST 4 13359 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_TXDMA_EN_LBN 1 13360 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_TXDMA_EN_WIDTH 1 13361 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_DL_EN_OFST 4 13362 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_DL_EN_LBN 2 13363 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_DL_EN_WIDTH 1 13364 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_MSIX_OFST 4 13365 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_MSIX_LBN 0 13366 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_MSIX_WIDTH 2 13367 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_DL_OFST 4 13368 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_DL_LBN 2 13369 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_DL_WIDTH 2 13370 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_TX_OFST 4 13371 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_TX_LBN 4 13372 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_TX_WIDTH 2 13373 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_EV_OFST 4 13374 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_EV_LBN 6 13375 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_EV_WIDTH 2 13376 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_RX_OFST 4 13377 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_RX_LBN 8 13378 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_RX_WIDTH 2 13379 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_SPARE_OFST 4 13380 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_SPARE_LBN 10 13381 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_SPARE_WIDTH 22 13382 13383 /* MC_CMD_SET_TLP_PROCESSING_GLOBALS_OUT msgresponse */ 13384 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_OUT_LEN 0 13385 13386 13387 /***********************************/ 13388 /* MC_CMD_SATELLITE_DOWNLOAD 13389 * Download a new set of images to the satellite CPUs from the host. 13390 */ 13391 #define MC_CMD_SATELLITE_DOWNLOAD 0x91 13392 #define MC_CMD_SATELLITE_DOWNLOAD_MSGSET 0x91 13393 #undef MC_CMD_0x91_PRIVILEGE_CTG 13394 13395 #define MC_CMD_0x91_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 13396 13397 /* MC_CMD_SATELLITE_DOWNLOAD_IN msgrequest: The reset requirements for the CPUs 13398 * are subtle, and so downloads must proceed in a number of phases. 13399 * 13400 * 1) PHASE_RESET with a target of TARGET_ALL and chunk ID/length of 0. 13401 * 13402 * 2) PHASE_IMEMS for each of the IMEM targets (target IDs 0-11). Each download 13403 * may consist of multiple chunks. The final chunk (with CHUNK_ID_LAST) should 13404 * be a checksum (a simple 32-bit sum) of the transferred data. An individual 13405 * download may be aborted using CHUNK_ID_ABORT. 13406 * 13407 * 3) PHASE_VECTORS for each of the vector table targets (target IDs 12-15), 13408 * similar to PHASE_IMEMS. 13409 * 13410 * 4) PHASE_READY with a target of TARGET_ALL and chunk ID/length of 0. 13411 * 13412 * After any error (a requested abort is not considered to be an error) the 13413 * sequence must be restarted from PHASE_RESET. 13414 */ 13415 #define MC_CMD_SATELLITE_DOWNLOAD_IN_LENMIN 20 13416 #define MC_CMD_SATELLITE_DOWNLOAD_IN_LENMAX 252 13417 #define MC_CMD_SATELLITE_DOWNLOAD_IN_LENMAX_MCDI2 1020 13418 #define MC_CMD_SATELLITE_DOWNLOAD_IN_LEN(num) (16+4*(num)) 13419 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_NUM(len) (((len)-16)/4) 13420 /* Download phase. (Note: the IDLE phase is used internally and is never valid 13421 * in a command from the host.) 13422 */ 13423 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_OFST 0 13424 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_LEN 4 13425 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_IDLE 0x0 /* enum */ 13426 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_RESET 0x1 /* enum */ 13427 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_IMEMS 0x2 /* enum */ 13428 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_VECTORS 0x3 /* enum */ 13429 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_READY 0x4 /* enum */ 13430 /* Target for download. (These match the blob numbers defined in 13431 * mc_flash_layout.h.) 13432 */ 13433 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_OFST 4 13434 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_LEN 4 13435 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 13436 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXDI_TEXT 0x0 13437 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 13438 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXDI_TEXT 0x1 13439 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 13440 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXDP_TEXT 0x2 13441 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 13442 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXDP_TEXT 0x3 13443 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 13444 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXHRSL_HR_LUT 0x4 13445 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 13446 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXHRSL_HR_LUT_CFG 0x5 13447 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 13448 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXHRSL_HR_LUT 0x6 13449 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 13450 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXHRSL_HR_LUT_CFG 0x7 13451 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 13452 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXHRSL_HR_PGM 0x8 13453 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 13454 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXHRSL_SL_PGM 0x9 13455 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 13456 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXHRSL_HR_PGM 0xa 13457 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 13458 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXHRSL_SL_PGM 0xb 13459 /* enum: Valid in phase 3 (PHASE_VECTORS) only */ 13460 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXDI_VTBL0 0xc 13461 /* enum: Valid in phase 3 (PHASE_VECTORS) only */ 13462 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXDI_VTBL0 0xd 13463 /* enum: Valid in phase 3 (PHASE_VECTORS) only */ 13464 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXDI_VTBL1 0xe 13465 /* enum: Valid in phase 3 (PHASE_VECTORS) only */ 13466 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXDI_VTBL1 0xf 13467 /* enum: Valid in phases 1 (PHASE_RESET) and 4 (PHASE_READY) only */ 13468 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_ALL 0xffffffff 13469 /* Chunk ID, or CHUNK_ID_LAST or CHUNK_ID_ABORT */ 13470 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_ID_OFST 8 13471 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_ID_LEN 4 13472 /* enum: Last chunk, containing checksum rather than data */ 13473 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_ID_LAST 0xffffffff 13474 /* enum: Abort download of this item */ 13475 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_ID_ABORT 0xfffffffe 13476 /* Length of this chunk in bytes */ 13477 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_LEN_OFST 12 13478 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_LEN_LEN 4 13479 /* Data for this chunk */ 13480 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_OFST 16 13481 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_LEN 4 13482 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_MINNUM 1 13483 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_MAXNUM 59 13484 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_MAXNUM_MCDI2 251 13485 13486 /* MC_CMD_SATELLITE_DOWNLOAD_OUT msgresponse */ 13487 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_LEN 8 13488 /* Same as MC_CMD_ERR field, but included as 0 in success cases */ 13489 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_RESULT_OFST 0 13490 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_RESULT_LEN 4 13491 /* Extra status information */ 13492 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_INFO_OFST 4 13493 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_INFO_LEN 4 13494 /* enum: Code download OK, completed. */ 13495 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_OK_COMPLETE 0x0 13496 /* enum: Code download aborted as requested. */ 13497 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_OK_ABORTED 0x1 13498 /* enum: Code download OK so far, send next chunk. */ 13499 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_OK_NEXT_CHUNK 0x2 13500 /* enum: Download phases out of sequence */ 13501 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_ERR_BAD_PHASE 0x100 13502 /* enum: Bad target for this phase */ 13503 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_ERR_BAD_TARGET 0x101 13504 /* enum: Chunk ID out of sequence */ 13505 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_ERR_BAD_CHUNK_ID 0x200 13506 /* enum: Chunk length zero or too large */ 13507 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_ERR_BAD_CHUNK_LEN 0x201 13508 /* enum: Checksum was incorrect */ 13509 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_ERR_BAD_CHECKSUM 0x300 13510 13511 13512 /***********************************/ 13513 /* MC_CMD_GET_CAPABILITIES 13514 * Get device capabilities. 13515 * 13516 * This is supplementary to the MC_CMD_GET_BOARD_CFG command, and intended to 13517 * reference inherent device capabilities as opposed to current NVRAM config. 13518 */ 13519 #define MC_CMD_GET_CAPABILITIES 0xbe 13520 #define MC_CMD_GET_CAPABILITIES_MSGSET 0xbe 13521 #undef MC_CMD_0xbe_PRIVILEGE_CTG 13522 13523 #define MC_CMD_0xbe_PRIVILEGE_CTG SRIOV_CTG_GENERAL 13524 13525 /* MC_CMD_GET_CAPABILITIES_IN msgrequest */ 13526 #define MC_CMD_GET_CAPABILITIES_IN_LEN 0 13527 13528 /* MC_CMD_GET_CAPABILITIES_OUT msgresponse */ 13529 #define MC_CMD_GET_CAPABILITIES_OUT_LEN 20 13530 /* First word of flags. */ 13531 #define MC_CMD_GET_CAPABILITIES_OUT_FLAGS1_OFST 0 13532 #define MC_CMD_GET_CAPABILITIES_OUT_FLAGS1_LEN 4 13533 #define MC_CMD_GET_CAPABILITIES_OUT_VPORT_RECONFIGURE_OFST 0 13534 #define MC_CMD_GET_CAPABILITIES_OUT_VPORT_RECONFIGURE_LBN 3 13535 #define MC_CMD_GET_CAPABILITIES_OUT_VPORT_RECONFIGURE_WIDTH 1 13536 #define MC_CMD_GET_CAPABILITIES_OUT_TX_STRIPING_OFST 0 13537 #define MC_CMD_GET_CAPABILITIES_OUT_TX_STRIPING_LBN 4 13538 #define MC_CMD_GET_CAPABILITIES_OUT_TX_STRIPING_WIDTH 1 13539 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_QUERY_OFST 0 13540 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_QUERY_LBN 5 13541 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_QUERY_WIDTH 1 13542 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 13543 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 13544 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 13545 #define MC_CMD_GET_CAPABILITIES_OUT_DRV_ATTACH_PREBOOT_OFST 0 13546 #define MC_CMD_GET_CAPABILITIES_OUT_DRV_ATTACH_PREBOOT_LBN 7 13547 #define MC_CMD_GET_CAPABILITIES_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 13548 #define MC_CMD_GET_CAPABILITIES_OUT_RX_FORCE_EVENT_MERGING_OFST 0 13549 #define MC_CMD_GET_CAPABILITIES_OUT_RX_FORCE_EVENT_MERGING_LBN 8 13550 #define MC_CMD_GET_CAPABILITIES_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 13551 #define MC_CMD_GET_CAPABILITIES_OUT_SET_MAC_ENHANCED_OFST 0 13552 #define MC_CMD_GET_CAPABILITIES_OUT_SET_MAC_ENHANCED_LBN 9 13553 #define MC_CMD_GET_CAPABILITIES_OUT_SET_MAC_ENHANCED_WIDTH 1 13554 #define MC_CMD_GET_CAPABILITIES_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 13555 #define MC_CMD_GET_CAPABILITIES_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 13556 #define MC_CMD_GET_CAPABILITIES_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 13557 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 13558 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 13559 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 13560 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 13561 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 13562 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 13563 #define MC_CMD_GET_CAPABILITIES_OUT_ADDITIONAL_RSS_MODES_OFST 0 13564 #define MC_CMD_GET_CAPABILITIES_OUT_ADDITIONAL_RSS_MODES_LBN 13 13565 #define MC_CMD_GET_CAPABILITIES_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 13566 #define MC_CMD_GET_CAPABILITIES_OUT_QBB_OFST 0 13567 #define MC_CMD_GET_CAPABILITIES_OUT_QBB_LBN 14 13568 #define MC_CMD_GET_CAPABILITIES_OUT_QBB_WIDTH 1 13569 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 13570 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 13571 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 13572 #define MC_CMD_GET_CAPABILITIES_OUT_RX_RSS_LIMITED_OFST 0 13573 #define MC_CMD_GET_CAPABILITIES_OUT_RX_RSS_LIMITED_LBN 16 13574 #define MC_CMD_GET_CAPABILITIES_OUT_RX_RSS_LIMITED_WIDTH 1 13575 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_OFST 0 13576 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_LBN 17 13577 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_WIDTH 1 13578 #define MC_CMD_GET_CAPABILITIES_OUT_RX_INCLUDE_FCS_OFST 0 13579 #define MC_CMD_GET_CAPABILITIES_OUT_RX_INCLUDE_FCS_LBN 18 13580 #define MC_CMD_GET_CAPABILITIES_OUT_RX_INCLUDE_FCS_WIDTH 1 13581 #define MC_CMD_GET_CAPABILITIES_OUT_TX_VLAN_INSERTION_OFST 0 13582 #define MC_CMD_GET_CAPABILITIES_OUT_TX_VLAN_INSERTION_LBN 19 13583 #define MC_CMD_GET_CAPABILITIES_OUT_TX_VLAN_INSERTION_WIDTH 1 13584 #define MC_CMD_GET_CAPABILITIES_OUT_RX_VLAN_STRIPPING_OFST 0 13585 #define MC_CMD_GET_CAPABILITIES_OUT_RX_VLAN_STRIPPING_LBN 20 13586 #define MC_CMD_GET_CAPABILITIES_OUT_RX_VLAN_STRIPPING_WIDTH 1 13587 #define MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_OFST 0 13588 #define MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_LBN 21 13589 #define MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_WIDTH 1 13590 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_0_OFST 0 13591 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_0_LBN 22 13592 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_0_WIDTH 1 13593 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_14_OFST 0 13594 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_14_LBN 23 13595 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_14_WIDTH 1 13596 #define MC_CMD_GET_CAPABILITIES_OUT_RX_TIMESTAMP_OFST 0 13597 #define MC_CMD_GET_CAPABILITIES_OUT_RX_TIMESTAMP_LBN 24 13598 #define MC_CMD_GET_CAPABILITIES_OUT_RX_TIMESTAMP_WIDTH 1 13599 #define MC_CMD_GET_CAPABILITIES_OUT_RX_BATCHING_OFST 0 13600 #define MC_CMD_GET_CAPABILITIES_OUT_RX_BATCHING_LBN 25 13601 #define MC_CMD_GET_CAPABILITIES_OUT_RX_BATCHING_WIDTH 1 13602 #define MC_CMD_GET_CAPABILITIES_OUT_MCAST_FILTER_CHAINING_OFST 0 13603 #define MC_CMD_GET_CAPABILITIES_OUT_MCAST_FILTER_CHAINING_LBN 26 13604 #define MC_CMD_GET_CAPABILITIES_OUT_MCAST_FILTER_CHAINING_WIDTH 1 13605 #define MC_CMD_GET_CAPABILITIES_OUT_PM_AND_RXDP_COUNTERS_OFST 0 13606 #define MC_CMD_GET_CAPABILITIES_OUT_PM_AND_RXDP_COUNTERS_LBN 27 13607 #define MC_CMD_GET_CAPABILITIES_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 13608 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DISABLE_SCATTER_OFST 0 13609 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DISABLE_SCATTER_LBN 28 13610 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DISABLE_SCATTER_WIDTH 1 13611 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 13612 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 13613 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 13614 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_OFST 0 13615 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_LBN 30 13616 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_WIDTH 1 13617 #define MC_CMD_GET_CAPABILITIES_OUT_VXLAN_NVGRE_OFST 0 13618 #define MC_CMD_GET_CAPABILITIES_OUT_VXLAN_NVGRE_LBN 31 13619 #define MC_CMD_GET_CAPABILITIES_OUT_VXLAN_NVGRE_WIDTH 1 13620 /* RxDPCPU firmware id. */ 13621 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DPCPU_FW_ID_OFST 4 13622 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DPCPU_FW_ID_LEN 2 13623 /* enum: Standard RXDP firmware */ 13624 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP 0x0 13625 /* enum: Low latency RXDP firmware */ 13626 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_LOW_LATENCY 0x1 13627 /* enum: Packed stream RXDP firmware */ 13628 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_PACKED_STREAM 0x2 13629 /* enum: Rules engine RXDP firmware */ 13630 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_RULES_ENGINE 0x5 13631 /* enum: DPDK RXDP firmware */ 13632 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_DPDK 0x6 13633 /* enum: BIST RXDP firmware */ 13634 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_BIST 0x10a 13635 /* enum: RXDP Test firmware image 1 */ 13636 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 13637 /* enum: RXDP Test firmware image 2 */ 13638 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 13639 /* enum: RXDP Test firmware image 3 */ 13640 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 13641 /* enum: RXDP Test firmware image 4 */ 13642 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 13643 /* enum: RXDP Test firmware image 5 */ 13644 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_BACKPRESSURE 0x105 13645 /* enum: RXDP Test firmware image 6 */ 13646 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 13647 /* enum: RXDP Test firmware image 7 */ 13648 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 13649 /* enum: RXDP Test firmware image 8 */ 13650 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 13651 /* enum: RXDP Test firmware image 9 */ 13652 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 13653 /* enum: RXDP Test firmware image 10 */ 13654 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_SLOW 0x10c 13655 /* TxDPCPU firmware id. */ 13656 #define MC_CMD_GET_CAPABILITIES_OUT_TX_DPCPU_FW_ID_OFST 6 13657 #define MC_CMD_GET_CAPABILITIES_OUT_TX_DPCPU_FW_ID_LEN 2 13658 /* enum: Standard TXDP firmware */ 13659 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP 0x0 13660 /* enum: Low latency TXDP firmware */ 13661 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_LOW_LATENCY 0x1 13662 /* enum: High packet rate TXDP firmware */ 13663 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_HIGH_PACKET_RATE 0x3 13664 /* enum: Rules engine TXDP firmware */ 13665 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_RULES_ENGINE 0x5 13666 /* enum: DPDK TXDP firmware */ 13667 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_DPDK 0x6 13668 /* enum: BIST TXDP firmware */ 13669 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_BIST 0x12d 13670 /* enum: TXDP Test firmware image 1 */ 13671 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 13672 /* enum: TXDP Test firmware image 2 */ 13673 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 13674 /* enum: TXDP CSR bus test firmware */ 13675 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_TEST_FW_CSR 0x103 13676 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_OFST 8 13677 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_LEN 2 13678 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_REV_OFST 8 13679 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_REV_LBN 0 13680 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_REV_WIDTH 12 13681 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_TYPE_OFST 8 13682 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_TYPE_LBN 12 13683 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 13684 /* enum: reserved value - do not use (may indicate alternative interpretation 13685 * of REV field in future) 13686 */ 13687 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_RESERVED 0x0 13688 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 13689 * development only) 13690 */ 13691 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 13692 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 13693 */ 13694 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 13695 /* enum: RX PD firmware with approximately Siena-compatible behaviour 13696 * (Huntington development only) 13697 */ 13698 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 13699 /* enum: Full featured RX PD production firmware */ 13700 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 13701 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 13702 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_VSWITCH 0x3 13703 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 13704 * (Huntington development only) 13705 */ 13706 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 13707 /* enum: Low latency RX PD production firmware */ 13708 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 13709 /* enum: Packed stream RX PD production firmware */ 13710 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 13711 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 13712 * tests (Medford development only) 13713 */ 13714 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 13715 /* enum: Rules engine RX PD production firmware */ 13716 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 13717 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 13718 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_L3XUDP 0x9 13719 /* enum: DPDK RX PD production firmware */ 13720 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_DPDK 0xa 13721 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 13722 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 13723 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 13724 * encapsulations (Medford development only) 13725 */ 13726 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 13727 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_OFST 10 13728 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_LEN 2 13729 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_REV_OFST 10 13730 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_REV_LBN 0 13731 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_REV_WIDTH 12 13732 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_TYPE_OFST 10 13733 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_TYPE_LBN 12 13734 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 13735 /* enum: reserved value - do not use (may indicate alternative interpretation 13736 * of REV field in future) 13737 */ 13738 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_RESERVED 0x0 13739 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 13740 * development only) 13741 */ 13742 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 13743 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 13744 */ 13745 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 13746 /* enum: TX PD firmware with approximately Siena-compatible behaviour 13747 * (Huntington development only) 13748 */ 13749 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 13750 /* enum: Full featured TX PD production firmware */ 13751 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 13752 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 13753 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_VSWITCH 0x3 13754 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 13755 * (Huntington development only) 13756 */ 13757 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 13758 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 13759 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 13760 * tests (Medford development only) 13761 */ 13762 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 13763 /* enum: Rules engine TX PD production firmware */ 13764 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 13765 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 13766 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_L3XUDP 0x9 13767 /* enum: DPDK TX PD production firmware */ 13768 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_DPDK 0xa 13769 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 13770 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 13771 /* Hardware capabilities of NIC */ 13772 #define MC_CMD_GET_CAPABILITIES_OUT_HW_CAPABILITIES_OFST 12 13773 #define MC_CMD_GET_CAPABILITIES_OUT_HW_CAPABILITIES_LEN 4 13774 /* Licensed capabilities */ 13775 #define MC_CMD_GET_CAPABILITIES_OUT_LICENSE_CAPABILITIES_OFST 16 13776 #define MC_CMD_GET_CAPABILITIES_OUT_LICENSE_CAPABILITIES_LEN 4 13777 13778 /* MC_CMD_GET_CAPABILITIES_V2_IN msgrequest */ 13779 #define MC_CMD_GET_CAPABILITIES_V2_IN_LEN 0 13780 13781 /* MC_CMD_GET_CAPABILITIES_V2_OUT msgresponse */ 13782 #define MC_CMD_GET_CAPABILITIES_V2_OUT_LEN 72 13783 /* First word of flags. */ 13784 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS1_OFST 0 13785 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS1_LEN 4 13786 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VPORT_RECONFIGURE_OFST 0 13787 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VPORT_RECONFIGURE_LBN 3 13788 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VPORT_RECONFIGURE_WIDTH 1 13789 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_STRIPING_OFST 0 13790 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_STRIPING_LBN 4 13791 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_STRIPING_WIDTH 1 13792 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_QUERY_OFST 0 13793 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_QUERY_LBN 5 13794 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_QUERY_WIDTH 1 13795 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 13796 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 13797 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 13798 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DRV_ATTACH_PREBOOT_OFST 0 13799 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DRV_ATTACH_PREBOOT_LBN 7 13800 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 13801 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_FORCE_EVENT_MERGING_OFST 0 13802 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_FORCE_EVENT_MERGING_LBN 8 13803 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 13804 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SET_MAC_ENHANCED_OFST 0 13805 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SET_MAC_ENHANCED_LBN 9 13806 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SET_MAC_ENHANCED_WIDTH 1 13807 #define MC_CMD_GET_CAPABILITIES_V2_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 13808 #define MC_CMD_GET_CAPABILITIES_V2_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 13809 #define MC_CMD_GET_CAPABILITIES_V2_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 13810 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 13811 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 13812 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 13813 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 13814 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 13815 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 13816 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ADDITIONAL_RSS_MODES_OFST 0 13817 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ADDITIONAL_RSS_MODES_LBN 13 13818 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 13819 #define MC_CMD_GET_CAPABILITIES_V2_OUT_QBB_OFST 0 13820 #define MC_CMD_GET_CAPABILITIES_V2_OUT_QBB_LBN 14 13821 #define MC_CMD_GET_CAPABILITIES_V2_OUT_QBB_WIDTH 1 13822 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 13823 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 13824 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 13825 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_RSS_LIMITED_OFST 0 13826 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_RSS_LIMITED_LBN 16 13827 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_RSS_LIMITED_WIDTH 1 13828 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_OFST 0 13829 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_LBN 17 13830 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_WIDTH 1 13831 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_INCLUDE_FCS_OFST 0 13832 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_INCLUDE_FCS_LBN 18 13833 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_INCLUDE_FCS_WIDTH 1 13834 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VLAN_INSERTION_OFST 0 13835 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VLAN_INSERTION_LBN 19 13836 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VLAN_INSERTION_WIDTH 1 13837 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_VLAN_STRIPPING_OFST 0 13838 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_VLAN_STRIPPING_LBN 20 13839 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_VLAN_STRIPPING_WIDTH 1 13840 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_OFST 0 13841 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_LBN 21 13842 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_WIDTH 1 13843 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_0_OFST 0 13844 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_0_LBN 22 13845 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_0_WIDTH 1 13846 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_14_OFST 0 13847 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_14_LBN 23 13848 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_14_WIDTH 1 13849 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_TIMESTAMP_OFST 0 13850 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_TIMESTAMP_LBN 24 13851 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_TIMESTAMP_WIDTH 1 13852 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_BATCHING_OFST 0 13853 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_BATCHING_LBN 25 13854 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_BATCHING_WIDTH 1 13855 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCAST_FILTER_CHAINING_OFST 0 13856 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCAST_FILTER_CHAINING_LBN 26 13857 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCAST_FILTER_CHAINING_WIDTH 1 13858 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PM_AND_RXDP_COUNTERS_OFST 0 13859 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PM_AND_RXDP_COUNTERS_LBN 27 13860 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 13861 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DISABLE_SCATTER_OFST 0 13862 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DISABLE_SCATTER_LBN 28 13863 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DISABLE_SCATTER_WIDTH 1 13864 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 13865 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 13866 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 13867 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_OFST 0 13868 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_LBN 30 13869 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_WIDTH 1 13870 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VXLAN_NVGRE_OFST 0 13871 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VXLAN_NVGRE_LBN 31 13872 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VXLAN_NVGRE_WIDTH 1 13873 /* RxDPCPU firmware id. */ 13874 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DPCPU_FW_ID_OFST 4 13875 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DPCPU_FW_ID_LEN 2 13876 /* enum: Standard RXDP firmware */ 13877 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP 0x0 13878 /* enum: Low latency RXDP firmware */ 13879 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_LOW_LATENCY 0x1 13880 /* enum: Packed stream RXDP firmware */ 13881 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_PACKED_STREAM 0x2 13882 /* enum: Rules engine RXDP firmware */ 13883 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_RULES_ENGINE 0x5 13884 /* enum: DPDK RXDP firmware */ 13885 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_DPDK 0x6 13886 /* enum: BIST RXDP firmware */ 13887 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_BIST 0x10a 13888 /* enum: RXDP Test firmware image 1 */ 13889 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 13890 /* enum: RXDP Test firmware image 2 */ 13891 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 13892 /* enum: RXDP Test firmware image 3 */ 13893 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 13894 /* enum: RXDP Test firmware image 4 */ 13895 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 13896 /* enum: RXDP Test firmware image 5 */ 13897 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_BACKPRESSURE 0x105 13898 /* enum: RXDP Test firmware image 6 */ 13899 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 13900 /* enum: RXDP Test firmware image 7 */ 13901 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 13902 /* enum: RXDP Test firmware image 8 */ 13903 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 13904 /* enum: RXDP Test firmware image 9 */ 13905 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 13906 /* enum: RXDP Test firmware image 10 */ 13907 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_SLOW 0x10c 13908 /* TxDPCPU firmware id. */ 13909 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DPCPU_FW_ID_OFST 6 13910 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DPCPU_FW_ID_LEN 2 13911 /* enum: Standard TXDP firmware */ 13912 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP 0x0 13913 /* enum: Low latency TXDP firmware */ 13914 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_LOW_LATENCY 0x1 13915 /* enum: High packet rate TXDP firmware */ 13916 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_HIGH_PACKET_RATE 0x3 13917 /* enum: Rules engine TXDP firmware */ 13918 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_RULES_ENGINE 0x5 13919 /* enum: DPDK TXDP firmware */ 13920 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_DPDK 0x6 13921 /* enum: BIST TXDP firmware */ 13922 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_BIST 0x12d 13923 /* enum: TXDP Test firmware image 1 */ 13924 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 13925 /* enum: TXDP Test firmware image 2 */ 13926 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 13927 /* enum: TXDP CSR bus test firmware */ 13928 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_TEST_FW_CSR 0x103 13929 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_OFST 8 13930 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_LEN 2 13931 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_REV_OFST 8 13932 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_REV_LBN 0 13933 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_REV_WIDTH 12 13934 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_TYPE_OFST 8 13935 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_TYPE_LBN 12 13936 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 13937 /* enum: reserved value - do not use (may indicate alternative interpretation 13938 * of REV field in future) 13939 */ 13940 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_RESERVED 0x0 13941 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 13942 * development only) 13943 */ 13944 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 13945 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 13946 */ 13947 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 13948 /* enum: RX PD firmware with approximately Siena-compatible behaviour 13949 * (Huntington development only) 13950 */ 13951 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 13952 /* enum: Full featured RX PD production firmware */ 13953 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 13954 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 13955 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_VSWITCH 0x3 13956 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 13957 * (Huntington development only) 13958 */ 13959 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 13960 /* enum: Low latency RX PD production firmware */ 13961 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 13962 /* enum: Packed stream RX PD production firmware */ 13963 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 13964 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 13965 * tests (Medford development only) 13966 */ 13967 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 13968 /* enum: Rules engine RX PD production firmware */ 13969 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 13970 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 13971 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_L3XUDP 0x9 13972 /* enum: DPDK RX PD production firmware */ 13973 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_DPDK 0xa 13974 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 13975 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 13976 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 13977 * encapsulations (Medford development only) 13978 */ 13979 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 13980 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_OFST 10 13981 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_LEN 2 13982 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_REV_OFST 10 13983 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_REV_LBN 0 13984 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_REV_WIDTH 12 13985 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_TYPE_OFST 10 13986 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_TYPE_LBN 12 13987 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 13988 /* enum: reserved value - do not use (may indicate alternative interpretation 13989 * of REV field in future) 13990 */ 13991 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_RESERVED 0x0 13992 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 13993 * development only) 13994 */ 13995 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 13996 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 13997 */ 13998 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 13999 /* enum: TX PD firmware with approximately Siena-compatible behaviour 14000 * (Huntington development only) 14001 */ 14002 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 14003 /* enum: Full featured TX PD production firmware */ 14004 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 14005 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 14006 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_VSWITCH 0x3 14007 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 14008 * (Huntington development only) 14009 */ 14010 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 14011 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 14012 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 14013 * tests (Medford development only) 14014 */ 14015 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 14016 /* enum: Rules engine TX PD production firmware */ 14017 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 14018 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 14019 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_L3XUDP 0x9 14020 /* enum: DPDK TX PD production firmware */ 14021 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_DPDK 0xa 14022 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 14023 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 14024 /* Hardware capabilities of NIC */ 14025 #define MC_CMD_GET_CAPABILITIES_V2_OUT_HW_CAPABILITIES_OFST 12 14026 #define MC_CMD_GET_CAPABILITIES_V2_OUT_HW_CAPABILITIES_LEN 4 14027 /* Licensed capabilities */ 14028 #define MC_CMD_GET_CAPABILITIES_V2_OUT_LICENSE_CAPABILITIES_OFST 16 14029 #define MC_CMD_GET_CAPABILITIES_V2_OUT_LICENSE_CAPABILITIES_LEN 4 14030 /* Second word of flags. Not present on older firmware (check the length). */ 14031 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS2_OFST 20 14032 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS2_LEN 4 14033 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_OFST 20 14034 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_LBN 0 14035 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_WIDTH 1 14036 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_ENCAP_OFST 20 14037 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_ENCAP_LBN 1 14038 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_ENCAP_WIDTH 1 14039 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVQ_TIMER_CTRL_OFST 20 14040 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVQ_TIMER_CTRL_LBN 2 14041 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVQ_TIMER_CTRL_WIDTH 1 14042 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVENT_CUT_THROUGH_OFST 20 14043 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVENT_CUT_THROUGH_LBN 3 14044 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVENT_CUT_THROUGH_WIDTH 1 14045 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_CUT_THROUGH_OFST 20 14046 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_CUT_THROUGH_LBN 4 14047 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_CUT_THROUGH_WIDTH 1 14048 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VFIFO_ULL_MODE_OFST 20 14049 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VFIFO_ULL_MODE_LBN 5 14050 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 14051 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 14052 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 14053 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 14054 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 14055 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 14056 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 14057 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_V2_OFST 20 14058 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_V2_LBN 7 14059 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_V2_WIDTH 1 14060 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_TIMESTAMPING_OFST 20 14061 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_TIMESTAMPING_LBN 8 14062 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 14063 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TIMESTAMP_OFST 20 14064 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TIMESTAMP_LBN 9 14065 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TIMESTAMP_WIDTH 1 14066 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_SNIFF_OFST 20 14067 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_SNIFF_LBN 10 14068 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_SNIFF_WIDTH 1 14069 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_SNIFF_OFST 20 14070 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_SNIFF_LBN 11 14071 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_SNIFF_WIDTH 1 14072 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 14073 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 14074 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 14075 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_BACKGROUND_OFST 20 14076 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_BACKGROUND_LBN 13 14077 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_BACKGROUND_WIDTH 1 14078 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_DB_RETURN_OFST 20 14079 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_DB_RETURN_LBN 14 14080 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_DB_RETURN_WIDTH 1 14081 #define MC_CMD_GET_CAPABILITIES_V2_OUT_CTPIO_OFST 20 14082 #define MC_CMD_GET_CAPABILITIES_V2_OUT_CTPIO_LBN 15 14083 #define MC_CMD_GET_CAPABILITIES_V2_OUT_CTPIO_WIDTH 1 14084 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_SUPPORT_OFST 20 14085 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_SUPPORT_LBN 16 14086 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_SUPPORT_WIDTH 1 14087 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_BOUND_OFST 20 14088 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_BOUND_LBN 17 14089 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_BOUND_WIDTH 1 14090 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 14091 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 14092 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 14093 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_FLAG_OFST 20 14094 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_FLAG_LBN 19 14095 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_FLAG_WIDTH 1 14096 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_MARK_OFST 20 14097 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_MARK_LBN 20 14098 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_MARK_WIDTH 1 14099 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 14100 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 14101 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 14102 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 14103 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 14104 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 14105 #define MC_CMD_GET_CAPABILITIES_V2_OUT_L3XUDP_SUPPORT_OFST 20 14106 #define MC_CMD_GET_CAPABILITIES_V2_OUT_L3XUDP_SUPPORT_LBN 22 14107 #define MC_CMD_GET_CAPABILITIES_V2_OUT_L3XUDP_SUPPORT_WIDTH 1 14108 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 14109 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 14110 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 14111 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VI_SPREADING_OFST 20 14112 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VI_SPREADING_LBN 24 14113 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VI_SPREADING_WIDTH 1 14114 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_HLB_IDLE_OFST 20 14115 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_HLB_IDLE_LBN 25 14116 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_HLB_IDLE_WIDTH 1 14117 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 14118 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 14119 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 14120 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 14121 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 14122 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 14123 #define MC_CMD_GET_CAPABILITIES_V2_OUT_BUNDLE_UPDATE_OFST 20 14124 #define MC_CMD_GET_CAPABILITIES_V2_OUT_BUNDLE_UPDATE_LBN 28 14125 #define MC_CMD_GET_CAPABILITIES_V2_OUT_BUNDLE_UPDATE_WIDTH 1 14126 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V3_OFST 20 14127 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V3_LBN 29 14128 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V3_WIDTH 1 14129 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DYNAMIC_SENSORS_OFST 20 14130 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DYNAMIC_SENSORS_LBN 30 14131 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DYNAMIC_SENSORS_WIDTH 1 14132 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 14133 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 14134 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 14135 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 14136 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 14137 */ 14138 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 14139 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 14140 /* One byte per PF containing the number of the external port assigned to this 14141 * PF, indexed by PF number. Special values indicate that a PF is either not 14142 * present or not assigned. 14143 */ 14144 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 14145 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 14146 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 14147 /* enum: The caller is not permitted to access information on this PF. */ 14148 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ACCESS_NOT_PERMITTED 0xff 14149 /* enum: PF does not exist. */ 14150 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PF_NOT_PRESENT 0xfe 14151 /* enum: PF does exist but is not assigned to any external port. */ 14152 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PF_NOT_ASSIGNED 0xfd 14153 /* enum: This value indicates that PF is assigned, but it cannot be expressed 14154 * in this field. It is intended for a possible future situation where a more 14155 * complex scheme of PFs to ports mapping is being used. The future driver 14156 * should look for a new field supporting the new scheme. The current/old 14157 * driver should treat this value as PF_NOT_ASSIGNED. 14158 */ 14159 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 14160 /* One byte per PF containing the number of its VFs, indexed by PF number. A 14161 * special value indicates that a PF is not present. 14162 */ 14163 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VFS_PER_PF_OFST 42 14164 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VFS_PER_PF_LEN 1 14165 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VFS_PER_PF_NUM 16 14166 /* enum: The caller is not permitted to access information on this PF. */ 14167 /* MC_CMD_GET_CAPABILITIES_V2_OUT_ACCESS_NOT_PERMITTED 0xff */ 14168 /* enum: PF does not exist. */ 14169 /* MC_CMD_GET_CAPABILITIES_V2_OUT_PF_NOT_PRESENT 0xfe */ 14170 /* Number of VIs available for each external port */ 14171 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VIS_PER_PORT_OFST 58 14172 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VIS_PER_PORT_LEN 2 14173 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VIS_PER_PORT_NUM 4 14174 /* Size of RX descriptor cache expressed as binary logarithm The actual size 14175 * equals (2 ^ RX_DESC_CACHE_SIZE) 14176 */ 14177 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DESC_CACHE_SIZE_OFST 66 14178 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DESC_CACHE_SIZE_LEN 1 14179 /* Size of TX descriptor cache expressed as binary logarithm The actual size 14180 * equals (2 ^ TX_DESC_CACHE_SIZE) 14181 */ 14182 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DESC_CACHE_SIZE_OFST 67 14183 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DESC_CACHE_SIZE_LEN 1 14184 /* Total number of available PIO buffers */ 14185 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_PIO_BUFFS_OFST 68 14186 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_PIO_BUFFS_LEN 2 14187 /* Size of a single PIO buffer */ 14188 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SIZE_PIO_BUFF_OFST 70 14189 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SIZE_PIO_BUFF_LEN 2 14190 14191 /* MC_CMD_GET_CAPABILITIES_V3_OUT msgresponse */ 14192 #define MC_CMD_GET_CAPABILITIES_V3_OUT_LEN 76 14193 /* First word of flags. */ 14194 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS1_OFST 0 14195 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS1_LEN 4 14196 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VPORT_RECONFIGURE_OFST 0 14197 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VPORT_RECONFIGURE_LBN 3 14198 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VPORT_RECONFIGURE_WIDTH 1 14199 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_STRIPING_OFST 0 14200 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_STRIPING_LBN 4 14201 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_STRIPING_WIDTH 1 14202 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_QUERY_OFST 0 14203 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_QUERY_LBN 5 14204 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_QUERY_WIDTH 1 14205 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 14206 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 14207 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 14208 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DRV_ATTACH_PREBOOT_OFST 0 14209 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DRV_ATTACH_PREBOOT_LBN 7 14210 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 14211 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_FORCE_EVENT_MERGING_OFST 0 14212 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_FORCE_EVENT_MERGING_LBN 8 14213 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 14214 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SET_MAC_ENHANCED_OFST 0 14215 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SET_MAC_ENHANCED_LBN 9 14216 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SET_MAC_ENHANCED_WIDTH 1 14217 #define MC_CMD_GET_CAPABILITIES_V3_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 14218 #define MC_CMD_GET_CAPABILITIES_V3_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 14219 #define MC_CMD_GET_CAPABILITIES_V3_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 14220 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 14221 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 14222 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 14223 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 14224 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 14225 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 14226 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ADDITIONAL_RSS_MODES_OFST 0 14227 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ADDITIONAL_RSS_MODES_LBN 13 14228 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 14229 #define MC_CMD_GET_CAPABILITIES_V3_OUT_QBB_OFST 0 14230 #define MC_CMD_GET_CAPABILITIES_V3_OUT_QBB_LBN 14 14231 #define MC_CMD_GET_CAPABILITIES_V3_OUT_QBB_WIDTH 1 14232 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 14233 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 14234 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 14235 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_RSS_LIMITED_OFST 0 14236 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_RSS_LIMITED_LBN 16 14237 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_RSS_LIMITED_WIDTH 1 14238 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_OFST 0 14239 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_LBN 17 14240 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_WIDTH 1 14241 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_INCLUDE_FCS_OFST 0 14242 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_INCLUDE_FCS_LBN 18 14243 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_INCLUDE_FCS_WIDTH 1 14244 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VLAN_INSERTION_OFST 0 14245 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VLAN_INSERTION_LBN 19 14246 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VLAN_INSERTION_WIDTH 1 14247 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_VLAN_STRIPPING_OFST 0 14248 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_VLAN_STRIPPING_LBN 20 14249 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_VLAN_STRIPPING_WIDTH 1 14250 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_OFST 0 14251 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_LBN 21 14252 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_WIDTH 1 14253 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_0_OFST 0 14254 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_0_LBN 22 14255 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_0_WIDTH 1 14256 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_14_OFST 0 14257 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_14_LBN 23 14258 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_14_WIDTH 1 14259 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_TIMESTAMP_OFST 0 14260 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_TIMESTAMP_LBN 24 14261 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_TIMESTAMP_WIDTH 1 14262 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_BATCHING_OFST 0 14263 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_BATCHING_LBN 25 14264 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_BATCHING_WIDTH 1 14265 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCAST_FILTER_CHAINING_OFST 0 14266 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCAST_FILTER_CHAINING_LBN 26 14267 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCAST_FILTER_CHAINING_WIDTH 1 14268 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PM_AND_RXDP_COUNTERS_OFST 0 14269 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PM_AND_RXDP_COUNTERS_LBN 27 14270 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 14271 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DISABLE_SCATTER_OFST 0 14272 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DISABLE_SCATTER_LBN 28 14273 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DISABLE_SCATTER_WIDTH 1 14274 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 14275 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 14276 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 14277 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_OFST 0 14278 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_LBN 30 14279 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_WIDTH 1 14280 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VXLAN_NVGRE_OFST 0 14281 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VXLAN_NVGRE_LBN 31 14282 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VXLAN_NVGRE_WIDTH 1 14283 /* RxDPCPU firmware id. */ 14284 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DPCPU_FW_ID_OFST 4 14285 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DPCPU_FW_ID_LEN 2 14286 /* enum: Standard RXDP firmware */ 14287 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP 0x0 14288 /* enum: Low latency RXDP firmware */ 14289 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_LOW_LATENCY 0x1 14290 /* enum: Packed stream RXDP firmware */ 14291 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_PACKED_STREAM 0x2 14292 /* enum: Rules engine RXDP firmware */ 14293 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_RULES_ENGINE 0x5 14294 /* enum: DPDK RXDP firmware */ 14295 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_DPDK 0x6 14296 /* enum: BIST RXDP firmware */ 14297 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_BIST 0x10a 14298 /* enum: RXDP Test firmware image 1 */ 14299 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 14300 /* enum: RXDP Test firmware image 2 */ 14301 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 14302 /* enum: RXDP Test firmware image 3 */ 14303 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 14304 /* enum: RXDP Test firmware image 4 */ 14305 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 14306 /* enum: RXDP Test firmware image 5 */ 14307 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_BACKPRESSURE 0x105 14308 /* enum: RXDP Test firmware image 6 */ 14309 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 14310 /* enum: RXDP Test firmware image 7 */ 14311 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 14312 /* enum: RXDP Test firmware image 8 */ 14313 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 14314 /* enum: RXDP Test firmware image 9 */ 14315 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 14316 /* enum: RXDP Test firmware image 10 */ 14317 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_SLOW 0x10c 14318 /* TxDPCPU firmware id. */ 14319 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DPCPU_FW_ID_OFST 6 14320 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DPCPU_FW_ID_LEN 2 14321 /* enum: Standard TXDP firmware */ 14322 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP 0x0 14323 /* enum: Low latency TXDP firmware */ 14324 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_LOW_LATENCY 0x1 14325 /* enum: High packet rate TXDP firmware */ 14326 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_HIGH_PACKET_RATE 0x3 14327 /* enum: Rules engine TXDP firmware */ 14328 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_RULES_ENGINE 0x5 14329 /* enum: DPDK TXDP firmware */ 14330 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_DPDK 0x6 14331 /* enum: BIST TXDP firmware */ 14332 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_BIST 0x12d 14333 /* enum: TXDP Test firmware image 1 */ 14334 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 14335 /* enum: TXDP Test firmware image 2 */ 14336 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 14337 /* enum: TXDP CSR bus test firmware */ 14338 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_TEST_FW_CSR 0x103 14339 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_OFST 8 14340 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_LEN 2 14341 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_REV_OFST 8 14342 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_REV_LBN 0 14343 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_REV_WIDTH 12 14344 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_TYPE_OFST 8 14345 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_TYPE_LBN 12 14346 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 14347 /* enum: reserved value - do not use (may indicate alternative interpretation 14348 * of REV field in future) 14349 */ 14350 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_RESERVED 0x0 14351 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 14352 * development only) 14353 */ 14354 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 14355 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 14356 */ 14357 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 14358 /* enum: RX PD firmware with approximately Siena-compatible behaviour 14359 * (Huntington development only) 14360 */ 14361 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 14362 /* enum: Full featured RX PD production firmware */ 14363 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 14364 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 14365 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_VSWITCH 0x3 14366 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 14367 * (Huntington development only) 14368 */ 14369 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 14370 /* enum: Low latency RX PD production firmware */ 14371 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 14372 /* enum: Packed stream RX PD production firmware */ 14373 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 14374 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 14375 * tests (Medford development only) 14376 */ 14377 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 14378 /* enum: Rules engine RX PD production firmware */ 14379 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 14380 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 14381 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_L3XUDP 0x9 14382 /* enum: DPDK RX PD production firmware */ 14383 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_DPDK 0xa 14384 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 14385 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 14386 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 14387 * encapsulations (Medford development only) 14388 */ 14389 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 14390 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_OFST 10 14391 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_LEN 2 14392 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_REV_OFST 10 14393 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_REV_LBN 0 14394 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_REV_WIDTH 12 14395 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_TYPE_OFST 10 14396 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_TYPE_LBN 12 14397 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 14398 /* enum: reserved value - do not use (may indicate alternative interpretation 14399 * of REV field in future) 14400 */ 14401 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_RESERVED 0x0 14402 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 14403 * development only) 14404 */ 14405 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 14406 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 14407 */ 14408 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 14409 /* enum: TX PD firmware with approximately Siena-compatible behaviour 14410 * (Huntington development only) 14411 */ 14412 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 14413 /* enum: Full featured TX PD production firmware */ 14414 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 14415 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 14416 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_VSWITCH 0x3 14417 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 14418 * (Huntington development only) 14419 */ 14420 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 14421 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 14422 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 14423 * tests (Medford development only) 14424 */ 14425 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 14426 /* enum: Rules engine TX PD production firmware */ 14427 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 14428 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 14429 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_L3XUDP 0x9 14430 /* enum: DPDK TX PD production firmware */ 14431 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_DPDK 0xa 14432 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 14433 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 14434 /* Hardware capabilities of NIC */ 14435 #define MC_CMD_GET_CAPABILITIES_V3_OUT_HW_CAPABILITIES_OFST 12 14436 #define MC_CMD_GET_CAPABILITIES_V3_OUT_HW_CAPABILITIES_LEN 4 14437 /* Licensed capabilities */ 14438 #define MC_CMD_GET_CAPABILITIES_V3_OUT_LICENSE_CAPABILITIES_OFST 16 14439 #define MC_CMD_GET_CAPABILITIES_V3_OUT_LICENSE_CAPABILITIES_LEN 4 14440 /* Second word of flags. Not present on older firmware (check the length). */ 14441 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS2_OFST 20 14442 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS2_LEN 4 14443 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_OFST 20 14444 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_LBN 0 14445 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_WIDTH 1 14446 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_ENCAP_OFST 20 14447 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_ENCAP_LBN 1 14448 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_ENCAP_WIDTH 1 14449 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVQ_TIMER_CTRL_OFST 20 14450 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVQ_TIMER_CTRL_LBN 2 14451 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVQ_TIMER_CTRL_WIDTH 1 14452 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVENT_CUT_THROUGH_OFST 20 14453 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVENT_CUT_THROUGH_LBN 3 14454 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVENT_CUT_THROUGH_WIDTH 1 14455 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_CUT_THROUGH_OFST 20 14456 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_CUT_THROUGH_LBN 4 14457 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_CUT_THROUGH_WIDTH 1 14458 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VFIFO_ULL_MODE_OFST 20 14459 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VFIFO_ULL_MODE_LBN 5 14460 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 14461 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 14462 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 14463 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 14464 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 14465 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 14466 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 14467 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_V2_OFST 20 14468 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_V2_LBN 7 14469 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_V2_WIDTH 1 14470 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_TIMESTAMPING_OFST 20 14471 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_TIMESTAMPING_LBN 8 14472 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 14473 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TIMESTAMP_OFST 20 14474 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TIMESTAMP_LBN 9 14475 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TIMESTAMP_WIDTH 1 14476 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_SNIFF_OFST 20 14477 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_SNIFF_LBN 10 14478 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_SNIFF_WIDTH 1 14479 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_SNIFF_OFST 20 14480 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_SNIFF_LBN 11 14481 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_SNIFF_WIDTH 1 14482 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 14483 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 14484 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 14485 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_BACKGROUND_OFST 20 14486 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_BACKGROUND_LBN 13 14487 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_BACKGROUND_WIDTH 1 14488 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_DB_RETURN_OFST 20 14489 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_DB_RETURN_LBN 14 14490 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_DB_RETURN_WIDTH 1 14491 #define MC_CMD_GET_CAPABILITIES_V3_OUT_CTPIO_OFST 20 14492 #define MC_CMD_GET_CAPABILITIES_V3_OUT_CTPIO_LBN 15 14493 #define MC_CMD_GET_CAPABILITIES_V3_OUT_CTPIO_WIDTH 1 14494 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_SUPPORT_OFST 20 14495 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_SUPPORT_LBN 16 14496 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_SUPPORT_WIDTH 1 14497 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_BOUND_OFST 20 14498 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_BOUND_LBN 17 14499 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_BOUND_WIDTH 1 14500 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 14501 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 14502 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 14503 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_FLAG_OFST 20 14504 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_FLAG_LBN 19 14505 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_FLAG_WIDTH 1 14506 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_MARK_OFST 20 14507 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_MARK_LBN 20 14508 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_MARK_WIDTH 1 14509 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 14510 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 14511 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 14512 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 14513 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 14514 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 14515 #define MC_CMD_GET_CAPABILITIES_V3_OUT_L3XUDP_SUPPORT_OFST 20 14516 #define MC_CMD_GET_CAPABILITIES_V3_OUT_L3XUDP_SUPPORT_LBN 22 14517 #define MC_CMD_GET_CAPABILITIES_V3_OUT_L3XUDP_SUPPORT_WIDTH 1 14518 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 14519 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 14520 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 14521 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_SPREADING_OFST 20 14522 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_SPREADING_LBN 24 14523 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_SPREADING_WIDTH 1 14524 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_HLB_IDLE_OFST 20 14525 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_HLB_IDLE_LBN 25 14526 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_HLB_IDLE_WIDTH 1 14527 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 14528 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 14529 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 14530 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 14531 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 14532 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 14533 #define MC_CMD_GET_CAPABILITIES_V3_OUT_BUNDLE_UPDATE_OFST 20 14534 #define MC_CMD_GET_CAPABILITIES_V3_OUT_BUNDLE_UPDATE_LBN 28 14535 #define MC_CMD_GET_CAPABILITIES_V3_OUT_BUNDLE_UPDATE_WIDTH 1 14536 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V3_OFST 20 14537 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V3_LBN 29 14538 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V3_WIDTH 1 14539 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DYNAMIC_SENSORS_OFST 20 14540 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DYNAMIC_SENSORS_LBN 30 14541 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DYNAMIC_SENSORS_WIDTH 1 14542 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 14543 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 14544 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 14545 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 14546 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 14547 */ 14548 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 14549 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 14550 /* One byte per PF containing the number of the external port assigned to this 14551 * PF, indexed by PF number. Special values indicate that a PF is either not 14552 * present or not assigned. 14553 */ 14554 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 14555 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 14556 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 14557 /* enum: The caller is not permitted to access information on this PF. */ 14558 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ACCESS_NOT_PERMITTED 0xff 14559 /* enum: PF does not exist. */ 14560 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PF_NOT_PRESENT 0xfe 14561 /* enum: PF does exist but is not assigned to any external port. */ 14562 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PF_NOT_ASSIGNED 0xfd 14563 /* enum: This value indicates that PF is assigned, but it cannot be expressed 14564 * in this field. It is intended for a possible future situation where a more 14565 * complex scheme of PFs to ports mapping is being used. The future driver 14566 * should look for a new field supporting the new scheme. The current/old 14567 * driver should treat this value as PF_NOT_ASSIGNED. 14568 */ 14569 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 14570 /* One byte per PF containing the number of its VFs, indexed by PF number. A 14571 * special value indicates that a PF is not present. 14572 */ 14573 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VFS_PER_PF_OFST 42 14574 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VFS_PER_PF_LEN 1 14575 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VFS_PER_PF_NUM 16 14576 /* enum: The caller is not permitted to access information on this PF. */ 14577 /* MC_CMD_GET_CAPABILITIES_V3_OUT_ACCESS_NOT_PERMITTED 0xff */ 14578 /* enum: PF does not exist. */ 14579 /* MC_CMD_GET_CAPABILITIES_V3_OUT_PF_NOT_PRESENT 0xfe */ 14580 /* Number of VIs available for each external port */ 14581 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VIS_PER_PORT_OFST 58 14582 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VIS_PER_PORT_LEN 2 14583 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VIS_PER_PORT_NUM 4 14584 /* Size of RX descriptor cache expressed as binary logarithm The actual size 14585 * equals (2 ^ RX_DESC_CACHE_SIZE) 14586 */ 14587 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DESC_CACHE_SIZE_OFST 66 14588 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DESC_CACHE_SIZE_LEN 1 14589 /* Size of TX descriptor cache expressed as binary logarithm The actual size 14590 * equals (2 ^ TX_DESC_CACHE_SIZE) 14591 */ 14592 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DESC_CACHE_SIZE_OFST 67 14593 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DESC_CACHE_SIZE_LEN 1 14594 /* Total number of available PIO buffers */ 14595 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_PIO_BUFFS_OFST 68 14596 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_PIO_BUFFS_LEN 2 14597 /* Size of a single PIO buffer */ 14598 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SIZE_PIO_BUFF_OFST 70 14599 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SIZE_PIO_BUFF_LEN 2 14600 /* On chips later than Medford the amount of address space assigned to each VI 14601 * is configurable. This is a global setting that the driver must query to 14602 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 14603 * with 8k VI windows. 14604 */ 14605 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_OFST 72 14606 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_LEN 1 14607 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 14608 * CTPIO is not mapped. 14609 */ 14610 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_8K 0x0 14611 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 14612 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_16K 0x1 14613 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 14614 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_64K 0x2 14615 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 14616 * (SF-115995-SW) in the present configuration of firmware and port mode. 14617 */ 14618 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 14619 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 14620 /* Number of buffers per adapter that can be used for VFIFO Stuffing 14621 * (SF-115995-SW) in the present configuration of firmware and port mode. 14622 */ 14623 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 14624 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 14625 14626 /* MC_CMD_GET_CAPABILITIES_V4_OUT msgresponse */ 14627 #define MC_CMD_GET_CAPABILITIES_V4_OUT_LEN 78 14628 /* First word of flags. */ 14629 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS1_OFST 0 14630 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS1_LEN 4 14631 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VPORT_RECONFIGURE_OFST 0 14632 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VPORT_RECONFIGURE_LBN 3 14633 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VPORT_RECONFIGURE_WIDTH 1 14634 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_STRIPING_OFST 0 14635 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_STRIPING_LBN 4 14636 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_STRIPING_WIDTH 1 14637 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_QUERY_OFST 0 14638 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_QUERY_LBN 5 14639 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_QUERY_WIDTH 1 14640 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 14641 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 14642 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 14643 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DRV_ATTACH_PREBOOT_OFST 0 14644 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DRV_ATTACH_PREBOOT_LBN 7 14645 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 14646 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_FORCE_EVENT_MERGING_OFST 0 14647 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_FORCE_EVENT_MERGING_LBN 8 14648 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 14649 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SET_MAC_ENHANCED_OFST 0 14650 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SET_MAC_ENHANCED_LBN 9 14651 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SET_MAC_ENHANCED_WIDTH 1 14652 #define MC_CMD_GET_CAPABILITIES_V4_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 14653 #define MC_CMD_GET_CAPABILITIES_V4_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 14654 #define MC_CMD_GET_CAPABILITIES_V4_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 14655 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 14656 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 14657 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 14658 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 14659 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 14660 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 14661 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ADDITIONAL_RSS_MODES_OFST 0 14662 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ADDITIONAL_RSS_MODES_LBN 13 14663 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 14664 #define MC_CMD_GET_CAPABILITIES_V4_OUT_QBB_OFST 0 14665 #define MC_CMD_GET_CAPABILITIES_V4_OUT_QBB_LBN 14 14666 #define MC_CMD_GET_CAPABILITIES_V4_OUT_QBB_WIDTH 1 14667 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 14668 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 14669 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 14670 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_RSS_LIMITED_OFST 0 14671 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_RSS_LIMITED_LBN 16 14672 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_RSS_LIMITED_WIDTH 1 14673 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_OFST 0 14674 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_LBN 17 14675 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_WIDTH 1 14676 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_INCLUDE_FCS_OFST 0 14677 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_INCLUDE_FCS_LBN 18 14678 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_INCLUDE_FCS_WIDTH 1 14679 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VLAN_INSERTION_OFST 0 14680 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VLAN_INSERTION_LBN 19 14681 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VLAN_INSERTION_WIDTH 1 14682 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_VLAN_STRIPPING_OFST 0 14683 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_VLAN_STRIPPING_LBN 20 14684 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_VLAN_STRIPPING_WIDTH 1 14685 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_OFST 0 14686 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_LBN 21 14687 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_WIDTH 1 14688 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_0_OFST 0 14689 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_0_LBN 22 14690 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_0_WIDTH 1 14691 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_14_OFST 0 14692 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_14_LBN 23 14693 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_14_WIDTH 1 14694 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_TIMESTAMP_OFST 0 14695 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_TIMESTAMP_LBN 24 14696 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_TIMESTAMP_WIDTH 1 14697 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_BATCHING_OFST 0 14698 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_BATCHING_LBN 25 14699 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_BATCHING_WIDTH 1 14700 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCAST_FILTER_CHAINING_OFST 0 14701 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCAST_FILTER_CHAINING_LBN 26 14702 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCAST_FILTER_CHAINING_WIDTH 1 14703 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PM_AND_RXDP_COUNTERS_OFST 0 14704 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PM_AND_RXDP_COUNTERS_LBN 27 14705 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 14706 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DISABLE_SCATTER_OFST 0 14707 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DISABLE_SCATTER_LBN 28 14708 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DISABLE_SCATTER_WIDTH 1 14709 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 14710 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 14711 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 14712 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_OFST 0 14713 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_LBN 30 14714 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_WIDTH 1 14715 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VXLAN_NVGRE_OFST 0 14716 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VXLAN_NVGRE_LBN 31 14717 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VXLAN_NVGRE_WIDTH 1 14718 /* RxDPCPU firmware id. */ 14719 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DPCPU_FW_ID_OFST 4 14720 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DPCPU_FW_ID_LEN 2 14721 /* enum: Standard RXDP firmware */ 14722 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP 0x0 14723 /* enum: Low latency RXDP firmware */ 14724 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_LOW_LATENCY 0x1 14725 /* enum: Packed stream RXDP firmware */ 14726 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_PACKED_STREAM 0x2 14727 /* enum: Rules engine RXDP firmware */ 14728 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_RULES_ENGINE 0x5 14729 /* enum: DPDK RXDP firmware */ 14730 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_DPDK 0x6 14731 /* enum: BIST RXDP firmware */ 14732 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_BIST 0x10a 14733 /* enum: RXDP Test firmware image 1 */ 14734 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 14735 /* enum: RXDP Test firmware image 2 */ 14736 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 14737 /* enum: RXDP Test firmware image 3 */ 14738 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 14739 /* enum: RXDP Test firmware image 4 */ 14740 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 14741 /* enum: RXDP Test firmware image 5 */ 14742 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_BACKPRESSURE 0x105 14743 /* enum: RXDP Test firmware image 6 */ 14744 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 14745 /* enum: RXDP Test firmware image 7 */ 14746 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 14747 /* enum: RXDP Test firmware image 8 */ 14748 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 14749 /* enum: RXDP Test firmware image 9 */ 14750 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 14751 /* enum: RXDP Test firmware image 10 */ 14752 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_SLOW 0x10c 14753 /* TxDPCPU firmware id. */ 14754 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DPCPU_FW_ID_OFST 6 14755 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DPCPU_FW_ID_LEN 2 14756 /* enum: Standard TXDP firmware */ 14757 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP 0x0 14758 /* enum: Low latency TXDP firmware */ 14759 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_LOW_LATENCY 0x1 14760 /* enum: High packet rate TXDP firmware */ 14761 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_HIGH_PACKET_RATE 0x3 14762 /* enum: Rules engine TXDP firmware */ 14763 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_RULES_ENGINE 0x5 14764 /* enum: DPDK TXDP firmware */ 14765 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_DPDK 0x6 14766 /* enum: BIST TXDP firmware */ 14767 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_BIST 0x12d 14768 /* enum: TXDP Test firmware image 1 */ 14769 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 14770 /* enum: TXDP Test firmware image 2 */ 14771 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 14772 /* enum: TXDP CSR bus test firmware */ 14773 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_TEST_FW_CSR 0x103 14774 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_OFST 8 14775 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_LEN 2 14776 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_REV_OFST 8 14777 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_REV_LBN 0 14778 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_REV_WIDTH 12 14779 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_TYPE_OFST 8 14780 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_TYPE_LBN 12 14781 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 14782 /* enum: reserved value - do not use (may indicate alternative interpretation 14783 * of REV field in future) 14784 */ 14785 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_RESERVED 0x0 14786 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 14787 * development only) 14788 */ 14789 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 14790 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 14791 */ 14792 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 14793 /* enum: RX PD firmware with approximately Siena-compatible behaviour 14794 * (Huntington development only) 14795 */ 14796 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 14797 /* enum: Full featured RX PD production firmware */ 14798 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 14799 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 14800 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_VSWITCH 0x3 14801 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 14802 * (Huntington development only) 14803 */ 14804 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 14805 /* enum: Low latency RX PD production firmware */ 14806 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 14807 /* enum: Packed stream RX PD production firmware */ 14808 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 14809 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 14810 * tests (Medford development only) 14811 */ 14812 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 14813 /* enum: Rules engine RX PD production firmware */ 14814 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 14815 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 14816 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_L3XUDP 0x9 14817 /* enum: DPDK RX PD production firmware */ 14818 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_DPDK 0xa 14819 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 14820 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 14821 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 14822 * encapsulations (Medford development only) 14823 */ 14824 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 14825 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_OFST 10 14826 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_LEN 2 14827 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_REV_OFST 10 14828 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_REV_LBN 0 14829 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_REV_WIDTH 12 14830 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_TYPE_OFST 10 14831 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_TYPE_LBN 12 14832 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 14833 /* enum: reserved value - do not use (may indicate alternative interpretation 14834 * of REV field in future) 14835 */ 14836 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_RESERVED 0x0 14837 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 14838 * development only) 14839 */ 14840 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 14841 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 14842 */ 14843 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 14844 /* enum: TX PD firmware with approximately Siena-compatible behaviour 14845 * (Huntington development only) 14846 */ 14847 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 14848 /* enum: Full featured TX PD production firmware */ 14849 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 14850 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 14851 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_VSWITCH 0x3 14852 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 14853 * (Huntington development only) 14854 */ 14855 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 14856 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 14857 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 14858 * tests (Medford development only) 14859 */ 14860 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 14861 /* enum: Rules engine TX PD production firmware */ 14862 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 14863 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 14864 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_L3XUDP 0x9 14865 /* enum: DPDK TX PD production firmware */ 14866 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_DPDK 0xa 14867 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 14868 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 14869 /* Hardware capabilities of NIC */ 14870 #define MC_CMD_GET_CAPABILITIES_V4_OUT_HW_CAPABILITIES_OFST 12 14871 #define MC_CMD_GET_CAPABILITIES_V4_OUT_HW_CAPABILITIES_LEN 4 14872 /* Licensed capabilities */ 14873 #define MC_CMD_GET_CAPABILITIES_V4_OUT_LICENSE_CAPABILITIES_OFST 16 14874 #define MC_CMD_GET_CAPABILITIES_V4_OUT_LICENSE_CAPABILITIES_LEN 4 14875 /* Second word of flags. Not present on older firmware (check the length). */ 14876 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS2_OFST 20 14877 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS2_LEN 4 14878 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_OFST 20 14879 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_LBN 0 14880 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_WIDTH 1 14881 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_ENCAP_OFST 20 14882 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_ENCAP_LBN 1 14883 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_ENCAP_WIDTH 1 14884 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVQ_TIMER_CTRL_OFST 20 14885 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVQ_TIMER_CTRL_LBN 2 14886 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVQ_TIMER_CTRL_WIDTH 1 14887 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVENT_CUT_THROUGH_OFST 20 14888 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVENT_CUT_THROUGH_LBN 3 14889 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVENT_CUT_THROUGH_WIDTH 1 14890 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_CUT_THROUGH_OFST 20 14891 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_CUT_THROUGH_LBN 4 14892 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_CUT_THROUGH_WIDTH 1 14893 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VFIFO_ULL_MODE_OFST 20 14894 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VFIFO_ULL_MODE_LBN 5 14895 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 14896 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 14897 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 14898 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 14899 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 14900 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 14901 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 14902 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_V2_OFST 20 14903 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_V2_LBN 7 14904 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_V2_WIDTH 1 14905 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_TIMESTAMPING_OFST 20 14906 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_TIMESTAMPING_LBN 8 14907 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 14908 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TIMESTAMP_OFST 20 14909 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TIMESTAMP_LBN 9 14910 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TIMESTAMP_WIDTH 1 14911 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_SNIFF_OFST 20 14912 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_SNIFF_LBN 10 14913 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_SNIFF_WIDTH 1 14914 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_SNIFF_OFST 20 14915 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_SNIFF_LBN 11 14916 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_SNIFF_WIDTH 1 14917 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 14918 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 14919 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 14920 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_BACKGROUND_OFST 20 14921 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_BACKGROUND_LBN 13 14922 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_BACKGROUND_WIDTH 1 14923 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_DB_RETURN_OFST 20 14924 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_DB_RETURN_LBN 14 14925 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_DB_RETURN_WIDTH 1 14926 #define MC_CMD_GET_CAPABILITIES_V4_OUT_CTPIO_OFST 20 14927 #define MC_CMD_GET_CAPABILITIES_V4_OUT_CTPIO_LBN 15 14928 #define MC_CMD_GET_CAPABILITIES_V4_OUT_CTPIO_WIDTH 1 14929 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_SUPPORT_OFST 20 14930 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_SUPPORT_LBN 16 14931 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_SUPPORT_WIDTH 1 14932 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_BOUND_OFST 20 14933 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_BOUND_LBN 17 14934 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_BOUND_WIDTH 1 14935 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 14936 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 14937 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 14938 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_FLAG_OFST 20 14939 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_FLAG_LBN 19 14940 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_FLAG_WIDTH 1 14941 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_MARK_OFST 20 14942 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_MARK_LBN 20 14943 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_MARK_WIDTH 1 14944 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 14945 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 14946 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 14947 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 14948 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 14949 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 14950 #define MC_CMD_GET_CAPABILITIES_V4_OUT_L3XUDP_SUPPORT_OFST 20 14951 #define MC_CMD_GET_CAPABILITIES_V4_OUT_L3XUDP_SUPPORT_LBN 22 14952 #define MC_CMD_GET_CAPABILITIES_V4_OUT_L3XUDP_SUPPORT_WIDTH 1 14953 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 14954 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 14955 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 14956 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_SPREADING_OFST 20 14957 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_SPREADING_LBN 24 14958 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_SPREADING_WIDTH 1 14959 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_HLB_IDLE_OFST 20 14960 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_HLB_IDLE_LBN 25 14961 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_HLB_IDLE_WIDTH 1 14962 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 14963 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 14964 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 14965 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 14966 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 14967 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 14968 #define MC_CMD_GET_CAPABILITIES_V4_OUT_BUNDLE_UPDATE_OFST 20 14969 #define MC_CMD_GET_CAPABILITIES_V4_OUT_BUNDLE_UPDATE_LBN 28 14970 #define MC_CMD_GET_CAPABILITIES_V4_OUT_BUNDLE_UPDATE_WIDTH 1 14971 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V3_OFST 20 14972 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V3_LBN 29 14973 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V3_WIDTH 1 14974 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DYNAMIC_SENSORS_OFST 20 14975 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DYNAMIC_SENSORS_LBN 30 14976 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DYNAMIC_SENSORS_WIDTH 1 14977 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 14978 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 14979 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 14980 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 14981 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 14982 */ 14983 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 14984 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 14985 /* One byte per PF containing the number of the external port assigned to this 14986 * PF, indexed by PF number. Special values indicate that a PF is either not 14987 * present or not assigned. 14988 */ 14989 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 14990 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 14991 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 14992 /* enum: The caller is not permitted to access information on this PF. */ 14993 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ACCESS_NOT_PERMITTED 0xff 14994 /* enum: PF does not exist. */ 14995 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PF_NOT_PRESENT 0xfe 14996 /* enum: PF does exist but is not assigned to any external port. */ 14997 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PF_NOT_ASSIGNED 0xfd 14998 /* enum: This value indicates that PF is assigned, but it cannot be expressed 14999 * in this field. It is intended for a possible future situation where a more 15000 * complex scheme of PFs to ports mapping is being used. The future driver 15001 * should look for a new field supporting the new scheme. The current/old 15002 * driver should treat this value as PF_NOT_ASSIGNED. 15003 */ 15004 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 15005 /* One byte per PF containing the number of its VFs, indexed by PF number. A 15006 * special value indicates that a PF is not present. 15007 */ 15008 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VFS_PER_PF_OFST 42 15009 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VFS_PER_PF_LEN 1 15010 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VFS_PER_PF_NUM 16 15011 /* enum: The caller is not permitted to access information on this PF. */ 15012 /* MC_CMD_GET_CAPABILITIES_V4_OUT_ACCESS_NOT_PERMITTED 0xff */ 15013 /* enum: PF does not exist. */ 15014 /* MC_CMD_GET_CAPABILITIES_V4_OUT_PF_NOT_PRESENT 0xfe */ 15015 /* Number of VIs available for each external port */ 15016 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VIS_PER_PORT_OFST 58 15017 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VIS_PER_PORT_LEN 2 15018 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VIS_PER_PORT_NUM 4 15019 /* Size of RX descriptor cache expressed as binary logarithm The actual size 15020 * equals (2 ^ RX_DESC_CACHE_SIZE) 15021 */ 15022 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DESC_CACHE_SIZE_OFST 66 15023 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DESC_CACHE_SIZE_LEN 1 15024 /* Size of TX descriptor cache expressed as binary logarithm The actual size 15025 * equals (2 ^ TX_DESC_CACHE_SIZE) 15026 */ 15027 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DESC_CACHE_SIZE_OFST 67 15028 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DESC_CACHE_SIZE_LEN 1 15029 /* Total number of available PIO buffers */ 15030 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_PIO_BUFFS_OFST 68 15031 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_PIO_BUFFS_LEN 2 15032 /* Size of a single PIO buffer */ 15033 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SIZE_PIO_BUFF_OFST 70 15034 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SIZE_PIO_BUFF_LEN 2 15035 /* On chips later than Medford the amount of address space assigned to each VI 15036 * is configurable. This is a global setting that the driver must query to 15037 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 15038 * with 8k VI windows. 15039 */ 15040 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_OFST 72 15041 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_LEN 1 15042 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 15043 * CTPIO is not mapped. 15044 */ 15045 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_8K 0x0 15046 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 15047 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_16K 0x1 15048 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 15049 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_64K 0x2 15050 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 15051 * (SF-115995-SW) in the present configuration of firmware and port mode. 15052 */ 15053 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 15054 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 15055 /* Number of buffers per adapter that can be used for VFIFO Stuffing 15056 * (SF-115995-SW) in the present configuration of firmware and port mode. 15057 */ 15058 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 15059 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 15060 /* Entry count in the MAC stats array, including the final GENERATION_END 15061 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 15062 * hold at least this many 64-bit stats values, if they wish to receive all 15063 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 15064 * stats array returned will be truncated. 15065 */ 15066 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_NUM_STATS_OFST 76 15067 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_NUM_STATS_LEN 2 15068 15069 /* MC_CMD_GET_CAPABILITIES_V5_OUT msgresponse */ 15070 #define MC_CMD_GET_CAPABILITIES_V5_OUT_LEN 84 15071 /* First word of flags. */ 15072 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS1_OFST 0 15073 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS1_LEN 4 15074 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VPORT_RECONFIGURE_OFST 0 15075 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VPORT_RECONFIGURE_LBN 3 15076 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VPORT_RECONFIGURE_WIDTH 1 15077 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_STRIPING_OFST 0 15078 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_STRIPING_LBN 4 15079 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_STRIPING_WIDTH 1 15080 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_QUERY_OFST 0 15081 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_QUERY_LBN 5 15082 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_QUERY_WIDTH 1 15083 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 15084 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 15085 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 15086 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DRV_ATTACH_PREBOOT_OFST 0 15087 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DRV_ATTACH_PREBOOT_LBN 7 15088 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 15089 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_FORCE_EVENT_MERGING_OFST 0 15090 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_FORCE_EVENT_MERGING_LBN 8 15091 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 15092 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SET_MAC_ENHANCED_OFST 0 15093 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SET_MAC_ENHANCED_LBN 9 15094 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SET_MAC_ENHANCED_WIDTH 1 15095 #define MC_CMD_GET_CAPABILITIES_V5_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 15096 #define MC_CMD_GET_CAPABILITIES_V5_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 15097 #define MC_CMD_GET_CAPABILITIES_V5_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 15098 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 15099 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 15100 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 15101 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 15102 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 15103 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 15104 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ADDITIONAL_RSS_MODES_OFST 0 15105 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ADDITIONAL_RSS_MODES_LBN 13 15106 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 15107 #define MC_CMD_GET_CAPABILITIES_V5_OUT_QBB_OFST 0 15108 #define MC_CMD_GET_CAPABILITIES_V5_OUT_QBB_LBN 14 15109 #define MC_CMD_GET_CAPABILITIES_V5_OUT_QBB_WIDTH 1 15110 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 15111 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 15112 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 15113 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_RSS_LIMITED_OFST 0 15114 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_RSS_LIMITED_LBN 16 15115 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_RSS_LIMITED_WIDTH 1 15116 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_OFST 0 15117 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_LBN 17 15118 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_WIDTH 1 15119 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_INCLUDE_FCS_OFST 0 15120 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_INCLUDE_FCS_LBN 18 15121 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_INCLUDE_FCS_WIDTH 1 15122 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VLAN_INSERTION_OFST 0 15123 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VLAN_INSERTION_LBN 19 15124 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VLAN_INSERTION_WIDTH 1 15125 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_VLAN_STRIPPING_OFST 0 15126 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_VLAN_STRIPPING_LBN 20 15127 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_VLAN_STRIPPING_WIDTH 1 15128 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_OFST 0 15129 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_LBN 21 15130 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_WIDTH 1 15131 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_0_OFST 0 15132 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_0_LBN 22 15133 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_0_WIDTH 1 15134 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_14_OFST 0 15135 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_14_LBN 23 15136 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_14_WIDTH 1 15137 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_TIMESTAMP_OFST 0 15138 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_TIMESTAMP_LBN 24 15139 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_TIMESTAMP_WIDTH 1 15140 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_BATCHING_OFST 0 15141 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_BATCHING_LBN 25 15142 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_BATCHING_WIDTH 1 15143 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCAST_FILTER_CHAINING_OFST 0 15144 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCAST_FILTER_CHAINING_LBN 26 15145 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCAST_FILTER_CHAINING_WIDTH 1 15146 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PM_AND_RXDP_COUNTERS_OFST 0 15147 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PM_AND_RXDP_COUNTERS_LBN 27 15148 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 15149 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DISABLE_SCATTER_OFST 0 15150 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DISABLE_SCATTER_LBN 28 15151 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DISABLE_SCATTER_WIDTH 1 15152 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 15153 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 15154 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 15155 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_OFST 0 15156 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_LBN 30 15157 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_WIDTH 1 15158 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VXLAN_NVGRE_OFST 0 15159 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VXLAN_NVGRE_LBN 31 15160 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VXLAN_NVGRE_WIDTH 1 15161 /* RxDPCPU firmware id. */ 15162 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DPCPU_FW_ID_OFST 4 15163 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DPCPU_FW_ID_LEN 2 15164 /* enum: Standard RXDP firmware */ 15165 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP 0x0 15166 /* enum: Low latency RXDP firmware */ 15167 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_LOW_LATENCY 0x1 15168 /* enum: Packed stream RXDP firmware */ 15169 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_PACKED_STREAM 0x2 15170 /* enum: Rules engine RXDP firmware */ 15171 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_RULES_ENGINE 0x5 15172 /* enum: DPDK RXDP firmware */ 15173 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_DPDK 0x6 15174 /* enum: BIST RXDP firmware */ 15175 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_BIST 0x10a 15176 /* enum: RXDP Test firmware image 1 */ 15177 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 15178 /* enum: RXDP Test firmware image 2 */ 15179 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 15180 /* enum: RXDP Test firmware image 3 */ 15181 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 15182 /* enum: RXDP Test firmware image 4 */ 15183 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 15184 /* enum: RXDP Test firmware image 5 */ 15185 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_BACKPRESSURE 0x105 15186 /* enum: RXDP Test firmware image 6 */ 15187 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 15188 /* enum: RXDP Test firmware image 7 */ 15189 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 15190 /* enum: RXDP Test firmware image 8 */ 15191 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 15192 /* enum: RXDP Test firmware image 9 */ 15193 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 15194 /* enum: RXDP Test firmware image 10 */ 15195 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_SLOW 0x10c 15196 /* TxDPCPU firmware id. */ 15197 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DPCPU_FW_ID_OFST 6 15198 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DPCPU_FW_ID_LEN 2 15199 /* enum: Standard TXDP firmware */ 15200 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP 0x0 15201 /* enum: Low latency TXDP firmware */ 15202 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_LOW_LATENCY 0x1 15203 /* enum: High packet rate TXDP firmware */ 15204 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_HIGH_PACKET_RATE 0x3 15205 /* enum: Rules engine TXDP firmware */ 15206 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_RULES_ENGINE 0x5 15207 /* enum: DPDK TXDP firmware */ 15208 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_DPDK 0x6 15209 /* enum: BIST TXDP firmware */ 15210 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_BIST 0x12d 15211 /* enum: TXDP Test firmware image 1 */ 15212 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 15213 /* enum: TXDP Test firmware image 2 */ 15214 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 15215 /* enum: TXDP CSR bus test firmware */ 15216 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_TEST_FW_CSR 0x103 15217 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_OFST 8 15218 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_LEN 2 15219 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_REV_OFST 8 15220 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_REV_LBN 0 15221 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_REV_WIDTH 12 15222 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_TYPE_OFST 8 15223 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_TYPE_LBN 12 15224 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 15225 /* enum: reserved value - do not use (may indicate alternative interpretation 15226 * of REV field in future) 15227 */ 15228 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_RESERVED 0x0 15229 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 15230 * development only) 15231 */ 15232 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 15233 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 15234 */ 15235 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15236 /* enum: RX PD firmware with approximately Siena-compatible behaviour 15237 * (Huntington development only) 15238 */ 15239 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 15240 /* enum: Full featured RX PD production firmware */ 15241 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 15242 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15243 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_VSWITCH 0x3 15244 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 15245 * (Huntington development only) 15246 */ 15247 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15248 /* enum: Low latency RX PD production firmware */ 15249 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 15250 /* enum: Packed stream RX PD production firmware */ 15251 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 15252 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 15253 * tests (Medford development only) 15254 */ 15255 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 15256 /* enum: Rules engine RX PD production firmware */ 15257 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 15258 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15259 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_L3XUDP 0x9 15260 /* enum: DPDK RX PD production firmware */ 15261 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_DPDK 0xa 15262 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15263 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15264 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 15265 * encapsulations (Medford development only) 15266 */ 15267 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 15268 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_OFST 10 15269 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_LEN 2 15270 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_REV_OFST 10 15271 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_REV_LBN 0 15272 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_REV_WIDTH 12 15273 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_TYPE_OFST 10 15274 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_TYPE_LBN 12 15275 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 15276 /* enum: reserved value - do not use (may indicate alternative interpretation 15277 * of REV field in future) 15278 */ 15279 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_RESERVED 0x0 15280 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 15281 * development only) 15282 */ 15283 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 15284 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 15285 */ 15286 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15287 /* enum: TX PD firmware with approximately Siena-compatible behaviour 15288 * (Huntington development only) 15289 */ 15290 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 15291 /* enum: Full featured TX PD production firmware */ 15292 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 15293 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15294 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_VSWITCH 0x3 15295 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 15296 * (Huntington development only) 15297 */ 15298 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15299 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 15300 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 15301 * tests (Medford development only) 15302 */ 15303 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 15304 /* enum: Rules engine TX PD production firmware */ 15305 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 15306 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15307 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_L3XUDP 0x9 15308 /* enum: DPDK TX PD production firmware */ 15309 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_DPDK 0xa 15310 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15311 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15312 /* Hardware capabilities of NIC */ 15313 #define MC_CMD_GET_CAPABILITIES_V5_OUT_HW_CAPABILITIES_OFST 12 15314 #define MC_CMD_GET_CAPABILITIES_V5_OUT_HW_CAPABILITIES_LEN 4 15315 /* Licensed capabilities */ 15316 #define MC_CMD_GET_CAPABILITIES_V5_OUT_LICENSE_CAPABILITIES_OFST 16 15317 #define MC_CMD_GET_CAPABILITIES_V5_OUT_LICENSE_CAPABILITIES_LEN 4 15318 /* Second word of flags. Not present on older firmware (check the length). */ 15319 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS2_OFST 20 15320 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS2_LEN 4 15321 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_OFST 20 15322 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_LBN 0 15323 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_WIDTH 1 15324 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_ENCAP_OFST 20 15325 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_ENCAP_LBN 1 15326 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_ENCAP_WIDTH 1 15327 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVQ_TIMER_CTRL_OFST 20 15328 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVQ_TIMER_CTRL_LBN 2 15329 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVQ_TIMER_CTRL_WIDTH 1 15330 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVENT_CUT_THROUGH_OFST 20 15331 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVENT_CUT_THROUGH_LBN 3 15332 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVENT_CUT_THROUGH_WIDTH 1 15333 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_CUT_THROUGH_OFST 20 15334 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_CUT_THROUGH_LBN 4 15335 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_CUT_THROUGH_WIDTH 1 15336 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VFIFO_ULL_MODE_OFST 20 15337 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VFIFO_ULL_MODE_LBN 5 15338 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 15339 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 15340 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 15341 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 15342 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 15343 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 15344 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 15345 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_V2_OFST 20 15346 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_V2_LBN 7 15347 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_V2_WIDTH 1 15348 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_TIMESTAMPING_OFST 20 15349 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_TIMESTAMPING_LBN 8 15350 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 15351 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TIMESTAMP_OFST 20 15352 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TIMESTAMP_LBN 9 15353 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TIMESTAMP_WIDTH 1 15354 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_SNIFF_OFST 20 15355 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_SNIFF_LBN 10 15356 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_SNIFF_WIDTH 1 15357 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_SNIFF_OFST 20 15358 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_SNIFF_LBN 11 15359 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_SNIFF_WIDTH 1 15360 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 15361 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 15362 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 15363 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_BACKGROUND_OFST 20 15364 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_BACKGROUND_LBN 13 15365 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_BACKGROUND_WIDTH 1 15366 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_DB_RETURN_OFST 20 15367 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_DB_RETURN_LBN 14 15368 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_DB_RETURN_WIDTH 1 15369 #define MC_CMD_GET_CAPABILITIES_V5_OUT_CTPIO_OFST 20 15370 #define MC_CMD_GET_CAPABILITIES_V5_OUT_CTPIO_LBN 15 15371 #define MC_CMD_GET_CAPABILITIES_V5_OUT_CTPIO_WIDTH 1 15372 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_SUPPORT_OFST 20 15373 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_SUPPORT_LBN 16 15374 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_SUPPORT_WIDTH 1 15375 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_BOUND_OFST 20 15376 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_BOUND_LBN 17 15377 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_BOUND_WIDTH 1 15378 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 15379 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 15380 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 15381 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_FLAG_OFST 20 15382 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_FLAG_LBN 19 15383 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_FLAG_WIDTH 1 15384 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_OFST 20 15385 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_LBN 20 15386 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_WIDTH 1 15387 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 15388 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 15389 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 15390 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 15391 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 15392 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 15393 #define MC_CMD_GET_CAPABILITIES_V5_OUT_L3XUDP_SUPPORT_OFST 20 15394 #define MC_CMD_GET_CAPABILITIES_V5_OUT_L3XUDP_SUPPORT_LBN 22 15395 #define MC_CMD_GET_CAPABILITIES_V5_OUT_L3XUDP_SUPPORT_WIDTH 1 15396 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 15397 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 15398 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 15399 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_SPREADING_OFST 20 15400 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_SPREADING_LBN 24 15401 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_SPREADING_WIDTH 1 15402 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_HLB_IDLE_OFST 20 15403 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_HLB_IDLE_LBN 25 15404 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_HLB_IDLE_WIDTH 1 15405 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 15406 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 15407 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 15408 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 15409 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 15410 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 15411 #define MC_CMD_GET_CAPABILITIES_V5_OUT_BUNDLE_UPDATE_OFST 20 15412 #define MC_CMD_GET_CAPABILITIES_V5_OUT_BUNDLE_UPDATE_LBN 28 15413 #define MC_CMD_GET_CAPABILITIES_V5_OUT_BUNDLE_UPDATE_WIDTH 1 15414 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V3_OFST 20 15415 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V3_LBN 29 15416 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V3_WIDTH 1 15417 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DYNAMIC_SENSORS_OFST 20 15418 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DYNAMIC_SENSORS_LBN 30 15419 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DYNAMIC_SENSORS_WIDTH 1 15420 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 15421 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 15422 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 15423 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 15424 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 15425 */ 15426 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 15427 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 15428 /* One byte per PF containing the number of the external port assigned to this 15429 * PF, indexed by PF number. Special values indicate that a PF is either not 15430 * present or not assigned. 15431 */ 15432 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 15433 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 15434 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 15435 /* enum: The caller is not permitted to access information on this PF. */ 15436 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ACCESS_NOT_PERMITTED 0xff 15437 /* enum: PF does not exist. */ 15438 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PF_NOT_PRESENT 0xfe 15439 /* enum: PF does exist but is not assigned to any external port. */ 15440 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PF_NOT_ASSIGNED 0xfd 15441 /* enum: This value indicates that PF is assigned, but it cannot be expressed 15442 * in this field. It is intended for a possible future situation where a more 15443 * complex scheme of PFs to ports mapping is being used. The future driver 15444 * should look for a new field supporting the new scheme. The current/old 15445 * driver should treat this value as PF_NOT_ASSIGNED. 15446 */ 15447 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 15448 /* One byte per PF containing the number of its VFs, indexed by PF number. A 15449 * special value indicates that a PF is not present. 15450 */ 15451 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VFS_PER_PF_OFST 42 15452 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VFS_PER_PF_LEN 1 15453 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VFS_PER_PF_NUM 16 15454 /* enum: The caller is not permitted to access information on this PF. */ 15455 /* MC_CMD_GET_CAPABILITIES_V5_OUT_ACCESS_NOT_PERMITTED 0xff */ 15456 /* enum: PF does not exist. */ 15457 /* MC_CMD_GET_CAPABILITIES_V5_OUT_PF_NOT_PRESENT 0xfe */ 15458 /* Number of VIs available for each external port */ 15459 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VIS_PER_PORT_OFST 58 15460 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VIS_PER_PORT_LEN 2 15461 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VIS_PER_PORT_NUM 4 15462 /* Size of RX descriptor cache expressed as binary logarithm The actual size 15463 * equals (2 ^ RX_DESC_CACHE_SIZE) 15464 */ 15465 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DESC_CACHE_SIZE_OFST 66 15466 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DESC_CACHE_SIZE_LEN 1 15467 /* Size of TX descriptor cache expressed as binary logarithm The actual size 15468 * equals (2 ^ TX_DESC_CACHE_SIZE) 15469 */ 15470 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DESC_CACHE_SIZE_OFST 67 15471 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DESC_CACHE_SIZE_LEN 1 15472 /* Total number of available PIO buffers */ 15473 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_PIO_BUFFS_OFST 68 15474 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_PIO_BUFFS_LEN 2 15475 /* Size of a single PIO buffer */ 15476 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SIZE_PIO_BUFF_OFST 70 15477 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SIZE_PIO_BUFF_LEN 2 15478 /* On chips later than Medford the amount of address space assigned to each VI 15479 * is configurable. This is a global setting that the driver must query to 15480 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 15481 * with 8k VI windows. 15482 */ 15483 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_OFST 72 15484 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_LEN 1 15485 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 15486 * CTPIO is not mapped. 15487 */ 15488 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_8K 0x0 15489 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 15490 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_16K 0x1 15491 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 15492 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_64K 0x2 15493 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 15494 * (SF-115995-SW) in the present configuration of firmware and port mode. 15495 */ 15496 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 15497 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 15498 /* Number of buffers per adapter that can be used for VFIFO Stuffing 15499 * (SF-115995-SW) in the present configuration of firmware and port mode. 15500 */ 15501 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 15502 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 15503 /* Entry count in the MAC stats array, including the final GENERATION_END 15504 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 15505 * hold at least this many 64-bit stats values, if they wish to receive all 15506 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 15507 * stats array returned will be truncated. 15508 */ 15509 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_NUM_STATS_OFST 76 15510 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_NUM_STATS_LEN 2 15511 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 15512 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 15513 */ 15514 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_MAX_OFST 80 15515 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_MAX_LEN 4 15516 15517 /* MC_CMD_GET_CAPABILITIES_V6_OUT msgresponse */ 15518 #define MC_CMD_GET_CAPABILITIES_V6_OUT_LEN 148 15519 /* First word of flags. */ 15520 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS1_OFST 0 15521 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS1_LEN 4 15522 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VPORT_RECONFIGURE_OFST 0 15523 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VPORT_RECONFIGURE_LBN 3 15524 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VPORT_RECONFIGURE_WIDTH 1 15525 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_STRIPING_OFST 0 15526 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_STRIPING_LBN 4 15527 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_STRIPING_WIDTH 1 15528 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_QUERY_OFST 0 15529 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_QUERY_LBN 5 15530 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_QUERY_WIDTH 1 15531 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 15532 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 15533 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 15534 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DRV_ATTACH_PREBOOT_OFST 0 15535 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DRV_ATTACH_PREBOOT_LBN 7 15536 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 15537 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_FORCE_EVENT_MERGING_OFST 0 15538 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_FORCE_EVENT_MERGING_LBN 8 15539 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 15540 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SET_MAC_ENHANCED_OFST 0 15541 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SET_MAC_ENHANCED_LBN 9 15542 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SET_MAC_ENHANCED_WIDTH 1 15543 #define MC_CMD_GET_CAPABILITIES_V6_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 15544 #define MC_CMD_GET_CAPABILITIES_V6_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 15545 #define MC_CMD_GET_CAPABILITIES_V6_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 15546 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 15547 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 15548 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 15549 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 15550 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 15551 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 15552 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ADDITIONAL_RSS_MODES_OFST 0 15553 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ADDITIONAL_RSS_MODES_LBN 13 15554 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 15555 #define MC_CMD_GET_CAPABILITIES_V6_OUT_QBB_OFST 0 15556 #define MC_CMD_GET_CAPABILITIES_V6_OUT_QBB_LBN 14 15557 #define MC_CMD_GET_CAPABILITIES_V6_OUT_QBB_WIDTH 1 15558 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 15559 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 15560 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 15561 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_RSS_LIMITED_OFST 0 15562 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_RSS_LIMITED_LBN 16 15563 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_RSS_LIMITED_WIDTH 1 15564 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_OFST 0 15565 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_LBN 17 15566 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_WIDTH 1 15567 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_INCLUDE_FCS_OFST 0 15568 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_INCLUDE_FCS_LBN 18 15569 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_INCLUDE_FCS_WIDTH 1 15570 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VLAN_INSERTION_OFST 0 15571 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VLAN_INSERTION_LBN 19 15572 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VLAN_INSERTION_WIDTH 1 15573 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_VLAN_STRIPPING_OFST 0 15574 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_VLAN_STRIPPING_LBN 20 15575 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_VLAN_STRIPPING_WIDTH 1 15576 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_OFST 0 15577 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_LBN 21 15578 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_WIDTH 1 15579 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_0_OFST 0 15580 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_0_LBN 22 15581 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_0_WIDTH 1 15582 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_14_OFST 0 15583 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_14_LBN 23 15584 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_14_WIDTH 1 15585 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_TIMESTAMP_OFST 0 15586 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_TIMESTAMP_LBN 24 15587 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_TIMESTAMP_WIDTH 1 15588 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_BATCHING_OFST 0 15589 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_BATCHING_LBN 25 15590 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_BATCHING_WIDTH 1 15591 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCAST_FILTER_CHAINING_OFST 0 15592 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCAST_FILTER_CHAINING_LBN 26 15593 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCAST_FILTER_CHAINING_WIDTH 1 15594 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PM_AND_RXDP_COUNTERS_OFST 0 15595 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PM_AND_RXDP_COUNTERS_LBN 27 15596 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 15597 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DISABLE_SCATTER_OFST 0 15598 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DISABLE_SCATTER_LBN 28 15599 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DISABLE_SCATTER_WIDTH 1 15600 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 15601 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 15602 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 15603 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_OFST 0 15604 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_LBN 30 15605 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_WIDTH 1 15606 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VXLAN_NVGRE_OFST 0 15607 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VXLAN_NVGRE_LBN 31 15608 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VXLAN_NVGRE_WIDTH 1 15609 /* RxDPCPU firmware id. */ 15610 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DPCPU_FW_ID_OFST 4 15611 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DPCPU_FW_ID_LEN 2 15612 /* enum: Standard RXDP firmware */ 15613 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP 0x0 15614 /* enum: Low latency RXDP firmware */ 15615 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_LOW_LATENCY 0x1 15616 /* enum: Packed stream RXDP firmware */ 15617 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_PACKED_STREAM 0x2 15618 /* enum: Rules engine RXDP firmware */ 15619 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_RULES_ENGINE 0x5 15620 /* enum: DPDK RXDP firmware */ 15621 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_DPDK 0x6 15622 /* enum: BIST RXDP firmware */ 15623 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_BIST 0x10a 15624 /* enum: RXDP Test firmware image 1 */ 15625 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 15626 /* enum: RXDP Test firmware image 2 */ 15627 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 15628 /* enum: RXDP Test firmware image 3 */ 15629 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 15630 /* enum: RXDP Test firmware image 4 */ 15631 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 15632 /* enum: RXDP Test firmware image 5 */ 15633 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_BACKPRESSURE 0x105 15634 /* enum: RXDP Test firmware image 6 */ 15635 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 15636 /* enum: RXDP Test firmware image 7 */ 15637 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 15638 /* enum: RXDP Test firmware image 8 */ 15639 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 15640 /* enum: RXDP Test firmware image 9 */ 15641 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 15642 /* enum: RXDP Test firmware image 10 */ 15643 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_SLOW 0x10c 15644 /* TxDPCPU firmware id. */ 15645 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DPCPU_FW_ID_OFST 6 15646 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DPCPU_FW_ID_LEN 2 15647 /* enum: Standard TXDP firmware */ 15648 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP 0x0 15649 /* enum: Low latency TXDP firmware */ 15650 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_LOW_LATENCY 0x1 15651 /* enum: High packet rate TXDP firmware */ 15652 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_HIGH_PACKET_RATE 0x3 15653 /* enum: Rules engine TXDP firmware */ 15654 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_RULES_ENGINE 0x5 15655 /* enum: DPDK TXDP firmware */ 15656 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_DPDK 0x6 15657 /* enum: BIST TXDP firmware */ 15658 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_BIST 0x12d 15659 /* enum: TXDP Test firmware image 1 */ 15660 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 15661 /* enum: TXDP Test firmware image 2 */ 15662 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 15663 /* enum: TXDP CSR bus test firmware */ 15664 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_TEST_FW_CSR 0x103 15665 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_OFST 8 15666 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_LEN 2 15667 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_REV_OFST 8 15668 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_REV_LBN 0 15669 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_REV_WIDTH 12 15670 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_TYPE_OFST 8 15671 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_TYPE_LBN 12 15672 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 15673 /* enum: reserved value - do not use (may indicate alternative interpretation 15674 * of REV field in future) 15675 */ 15676 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_RESERVED 0x0 15677 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 15678 * development only) 15679 */ 15680 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 15681 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 15682 */ 15683 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15684 /* enum: RX PD firmware with approximately Siena-compatible behaviour 15685 * (Huntington development only) 15686 */ 15687 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 15688 /* enum: Full featured RX PD production firmware */ 15689 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 15690 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15691 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_VSWITCH 0x3 15692 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 15693 * (Huntington development only) 15694 */ 15695 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15696 /* enum: Low latency RX PD production firmware */ 15697 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 15698 /* enum: Packed stream RX PD production firmware */ 15699 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 15700 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 15701 * tests (Medford development only) 15702 */ 15703 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 15704 /* enum: Rules engine RX PD production firmware */ 15705 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 15706 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15707 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_L3XUDP 0x9 15708 /* enum: DPDK RX PD production firmware */ 15709 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_DPDK 0xa 15710 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15711 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15712 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 15713 * encapsulations (Medford development only) 15714 */ 15715 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 15716 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_OFST 10 15717 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_LEN 2 15718 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_REV_OFST 10 15719 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_REV_LBN 0 15720 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_REV_WIDTH 12 15721 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_TYPE_OFST 10 15722 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_TYPE_LBN 12 15723 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 15724 /* enum: reserved value - do not use (may indicate alternative interpretation 15725 * of REV field in future) 15726 */ 15727 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_RESERVED 0x0 15728 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 15729 * development only) 15730 */ 15731 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 15732 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 15733 */ 15734 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15735 /* enum: TX PD firmware with approximately Siena-compatible behaviour 15736 * (Huntington development only) 15737 */ 15738 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 15739 /* enum: Full featured TX PD production firmware */ 15740 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 15741 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15742 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_VSWITCH 0x3 15743 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 15744 * (Huntington development only) 15745 */ 15746 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15747 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 15748 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 15749 * tests (Medford development only) 15750 */ 15751 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 15752 /* enum: Rules engine TX PD production firmware */ 15753 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 15754 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15755 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_L3XUDP 0x9 15756 /* enum: DPDK TX PD production firmware */ 15757 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_DPDK 0xa 15758 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15759 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15760 /* Hardware capabilities of NIC */ 15761 #define MC_CMD_GET_CAPABILITIES_V6_OUT_HW_CAPABILITIES_OFST 12 15762 #define MC_CMD_GET_CAPABILITIES_V6_OUT_HW_CAPABILITIES_LEN 4 15763 /* Licensed capabilities */ 15764 #define MC_CMD_GET_CAPABILITIES_V6_OUT_LICENSE_CAPABILITIES_OFST 16 15765 #define MC_CMD_GET_CAPABILITIES_V6_OUT_LICENSE_CAPABILITIES_LEN 4 15766 /* Second word of flags. Not present on older firmware (check the length). */ 15767 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS2_OFST 20 15768 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS2_LEN 4 15769 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_OFST 20 15770 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_LBN 0 15771 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_WIDTH 1 15772 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_ENCAP_OFST 20 15773 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_ENCAP_LBN 1 15774 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_ENCAP_WIDTH 1 15775 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVQ_TIMER_CTRL_OFST 20 15776 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVQ_TIMER_CTRL_LBN 2 15777 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVQ_TIMER_CTRL_WIDTH 1 15778 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVENT_CUT_THROUGH_OFST 20 15779 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVENT_CUT_THROUGH_LBN 3 15780 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVENT_CUT_THROUGH_WIDTH 1 15781 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_CUT_THROUGH_OFST 20 15782 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_CUT_THROUGH_LBN 4 15783 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_CUT_THROUGH_WIDTH 1 15784 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VFIFO_ULL_MODE_OFST 20 15785 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VFIFO_ULL_MODE_LBN 5 15786 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 15787 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 15788 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 15789 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 15790 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 15791 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 15792 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 15793 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_V2_OFST 20 15794 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_V2_LBN 7 15795 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_V2_WIDTH 1 15796 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_TIMESTAMPING_OFST 20 15797 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_TIMESTAMPING_LBN 8 15798 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 15799 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TIMESTAMP_OFST 20 15800 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TIMESTAMP_LBN 9 15801 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TIMESTAMP_WIDTH 1 15802 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_SNIFF_OFST 20 15803 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_SNIFF_LBN 10 15804 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_SNIFF_WIDTH 1 15805 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_SNIFF_OFST 20 15806 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_SNIFF_LBN 11 15807 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_SNIFF_WIDTH 1 15808 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 15809 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 15810 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 15811 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_BACKGROUND_OFST 20 15812 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_BACKGROUND_LBN 13 15813 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_BACKGROUND_WIDTH 1 15814 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_DB_RETURN_OFST 20 15815 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_DB_RETURN_LBN 14 15816 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_DB_RETURN_WIDTH 1 15817 #define MC_CMD_GET_CAPABILITIES_V6_OUT_CTPIO_OFST 20 15818 #define MC_CMD_GET_CAPABILITIES_V6_OUT_CTPIO_LBN 15 15819 #define MC_CMD_GET_CAPABILITIES_V6_OUT_CTPIO_WIDTH 1 15820 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_SUPPORT_OFST 20 15821 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_SUPPORT_LBN 16 15822 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_SUPPORT_WIDTH 1 15823 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_BOUND_OFST 20 15824 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_BOUND_LBN 17 15825 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_BOUND_WIDTH 1 15826 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 15827 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 15828 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 15829 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_FLAG_OFST 20 15830 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_FLAG_LBN 19 15831 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_FLAG_WIDTH 1 15832 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_OFST 20 15833 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_LBN 20 15834 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_WIDTH 1 15835 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 15836 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 15837 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 15838 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 15839 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 15840 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 15841 #define MC_CMD_GET_CAPABILITIES_V6_OUT_L3XUDP_SUPPORT_OFST 20 15842 #define MC_CMD_GET_CAPABILITIES_V6_OUT_L3XUDP_SUPPORT_LBN 22 15843 #define MC_CMD_GET_CAPABILITIES_V6_OUT_L3XUDP_SUPPORT_WIDTH 1 15844 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 15845 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 15846 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 15847 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_SPREADING_OFST 20 15848 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_SPREADING_LBN 24 15849 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_SPREADING_WIDTH 1 15850 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_HLB_IDLE_OFST 20 15851 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_HLB_IDLE_LBN 25 15852 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_HLB_IDLE_WIDTH 1 15853 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 15854 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 15855 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 15856 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 15857 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 15858 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 15859 #define MC_CMD_GET_CAPABILITIES_V6_OUT_BUNDLE_UPDATE_OFST 20 15860 #define MC_CMD_GET_CAPABILITIES_V6_OUT_BUNDLE_UPDATE_LBN 28 15861 #define MC_CMD_GET_CAPABILITIES_V6_OUT_BUNDLE_UPDATE_WIDTH 1 15862 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V3_OFST 20 15863 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V3_LBN 29 15864 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V3_WIDTH 1 15865 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DYNAMIC_SENSORS_OFST 20 15866 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DYNAMIC_SENSORS_LBN 30 15867 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DYNAMIC_SENSORS_WIDTH 1 15868 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 15869 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 15870 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 15871 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 15872 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 15873 */ 15874 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 15875 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 15876 /* One byte per PF containing the number of the external port assigned to this 15877 * PF, indexed by PF number. Special values indicate that a PF is either not 15878 * present or not assigned. 15879 */ 15880 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 15881 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 15882 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 15883 /* enum: The caller is not permitted to access information on this PF. */ 15884 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ACCESS_NOT_PERMITTED 0xff 15885 /* enum: PF does not exist. */ 15886 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PF_NOT_PRESENT 0xfe 15887 /* enum: PF does exist but is not assigned to any external port. */ 15888 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PF_NOT_ASSIGNED 0xfd 15889 /* enum: This value indicates that PF is assigned, but it cannot be expressed 15890 * in this field. It is intended for a possible future situation where a more 15891 * complex scheme of PFs to ports mapping is being used. The future driver 15892 * should look for a new field supporting the new scheme. The current/old 15893 * driver should treat this value as PF_NOT_ASSIGNED. 15894 */ 15895 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 15896 /* One byte per PF containing the number of its VFs, indexed by PF number. A 15897 * special value indicates that a PF is not present. 15898 */ 15899 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VFS_PER_PF_OFST 42 15900 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VFS_PER_PF_LEN 1 15901 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VFS_PER_PF_NUM 16 15902 /* enum: The caller is not permitted to access information on this PF. */ 15903 /* MC_CMD_GET_CAPABILITIES_V6_OUT_ACCESS_NOT_PERMITTED 0xff */ 15904 /* enum: PF does not exist. */ 15905 /* MC_CMD_GET_CAPABILITIES_V6_OUT_PF_NOT_PRESENT 0xfe */ 15906 /* Number of VIs available for each external port */ 15907 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VIS_PER_PORT_OFST 58 15908 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VIS_PER_PORT_LEN 2 15909 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VIS_PER_PORT_NUM 4 15910 /* Size of RX descriptor cache expressed as binary logarithm The actual size 15911 * equals (2 ^ RX_DESC_CACHE_SIZE) 15912 */ 15913 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DESC_CACHE_SIZE_OFST 66 15914 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DESC_CACHE_SIZE_LEN 1 15915 /* Size of TX descriptor cache expressed as binary logarithm The actual size 15916 * equals (2 ^ TX_DESC_CACHE_SIZE) 15917 */ 15918 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DESC_CACHE_SIZE_OFST 67 15919 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DESC_CACHE_SIZE_LEN 1 15920 /* Total number of available PIO buffers */ 15921 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_PIO_BUFFS_OFST 68 15922 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_PIO_BUFFS_LEN 2 15923 /* Size of a single PIO buffer */ 15924 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SIZE_PIO_BUFF_OFST 70 15925 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SIZE_PIO_BUFF_LEN 2 15926 /* On chips later than Medford the amount of address space assigned to each VI 15927 * is configurable. This is a global setting that the driver must query to 15928 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 15929 * with 8k VI windows. 15930 */ 15931 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_OFST 72 15932 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_LEN 1 15933 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 15934 * CTPIO is not mapped. 15935 */ 15936 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_8K 0x0 15937 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 15938 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_16K 0x1 15939 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 15940 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_64K 0x2 15941 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 15942 * (SF-115995-SW) in the present configuration of firmware and port mode. 15943 */ 15944 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 15945 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 15946 /* Number of buffers per adapter that can be used for VFIFO Stuffing 15947 * (SF-115995-SW) in the present configuration of firmware and port mode. 15948 */ 15949 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 15950 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 15951 /* Entry count in the MAC stats array, including the final GENERATION_END 15952 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 15953 * hold at least this many 64-bit stats values, if they wish to receive all 15954 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 15955 * stats array returned will be truncated. 15956 */ 15957 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_NUM_STATS_OFST 76 15958 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_NUM_STATS_LEN 2 15959 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 15960 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 15961 */ 15962 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_MAX_OFST 80 15963 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_MAX_LEN 4 15964 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 15965 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 15966 * they create an RX queue. Due to hardware limitations, only a small number of 15967 * different buffer sizes may be available concurrently. Nonzero entries in 15968 * this array are the sizes of buffers which the system guarantees will be 15969 * available for use. If the list is empty, there are no limitations on 15970 * concurrent buffer sizes. 15971 */ 15972 #define MC_CMD_GET_CAPABILITIES_V6_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 15973 #define MC_CMD_GET_CAPABILITIES_V6_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 15974 #define MC_CMD_GET_CAPABILITIES_V6_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 15975 15976 /* MC_CMD_GET_CAPABILITIES_V7_OUT msgresponse */ 15977 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LEN 152 15978 /* First word of flags. */ 15979 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS1_OFST 0 15980 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS1_LEN 4 15981 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VPORT_RECONFIGURE_OFST 0 15982 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VPORT_RECONFIGURE_LBN 3 15983 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VPORT_RECONFIGURE_WIDTH 1 15984 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_STRIPING_OFST 0 15985 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_STRIPING_LBN 4 15986 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_STRIPING_WIDTH 1 15987 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_QUERY_OFST 0 15988 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_QUERY_LBN 5 15989 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_QUERY_WIDTH 1 15990 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 15991 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 15992 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 15993 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DRV_ATTACH_PREBOOT_OFST 0 15994 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DRV_ATTACH_PREBOOT_LBN 7 15995 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 15996 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_FORCE_EVENT_MERGING_OFST 0 15997 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_FORCE_EVENT_MERGING_LBN 8 15998 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 15999 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SET_MAC_ENHANCED_OFST 0 16000 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SET_MAC_ENHANCED_LBN 9 16001 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SET_MAC_ENHANCED_WIDTH 1 16002 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 16003 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 16004 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 16005 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 16006 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 16007 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 16008 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 16009 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 16010 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 16011 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ADDITIONAL_RSS_MODES_OFST 0 16012 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ADDITIONAL_RSS_MODES_LBN 13 16013 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 16014 #define MC_CMD_GET_CAPABILITIES_V7_OUT_QBB_OFST 0 16015 #define MC_CMD_GET_CAPABILITIES_V7_OUT_QBB_LBN 14 16016 #define MC_CMD_GET_CAPABILITIES_V7_OUT_QBB_WIDTH 1 16017 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 16018 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 16019 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 16020 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_RSS_LIMITED_OFST 0 16021 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_RSS_LIMITED_LBN 16 16022 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_RSS_LIMITED_WIDTH 1 16023 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_OFST 0 16024 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_LBN 17 16025 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_WIDTH 1 16026 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_INCLUDE_FCS_OFST 0 16027 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_INCLUDE_FCS_LBN 18 16028 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_INCLUDE_FCS_WIDTH 1 16029 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VLAN_INSERTION_OFST 0 16030 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VLAN_INSERTION_LBN 19 16031 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VLAN_INSERTION_WIDTH 1 16032 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_OFST 0 16033 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_LBN 20 16034 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_WIDTH 1 16035 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_OFST 0 16036 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_LBN 21 16037 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_WIDTH 1 16038 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_0_OFST 0 16039 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_0_LBN 22 16040 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_0_WIDTH 1 16041 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_14_OFST 0 16042 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_14_LBN 23 16043 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_14_WIDTH 1 16044 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_TIMESTAMP_OFST 0 16045 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_TIMESTAMP_LBN 24 16046 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_TIMESTAMP_WIDTH 1 16047 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_BATCHING_OFST 0 16048 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_BATCHING_LBN 25 16049 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_BATCHING_WIDTH 1 16050 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCAST_FILTER_CHAINING_OFST 0 16051 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCAST_FILTER_CHAINING_LBN 26 16052 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCAST_FILTER_CHAINING_WIDTH 1 16053 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PM_AND_RXDP_COUNTERS_OFST 0 16054 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PM_AND_RXDP_COUNTERS_LBN 27 16055 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 16056 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DISABLE_SCATTER_OFST 0 16057 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DISABLE_SCATTER_LBN 28 16058 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DISABLE_SCATTER_WIDTH 1 16059 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 16060 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 16061 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 16062 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_OFST 0 16063 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_LBN 30 16064 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_WIDTH 1 16065 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VXLAN_NVGRE_OFST 0 16066 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VXLAN_NVGRE_LBN 31 16067 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VXLAN_NVGRE_WIDTH 1 16068 /* RxDPCPU firmware id. */ 16069 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DPCPU_FW_ID_OFST 4 16070 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DPCPU_FW_ID_LEN 2 16071 /* enum: Standard RXDP firmware */ 16072 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP 0x0 16073 /* enum: Low latency RXDP firmware */ 16074 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_LOW_LATENCY 0x1 16075 /* enum: Packed stream RXDP firmware */ 16076 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_PACKED_STREAM 0x2 16077 /* enum: Rules engine RXDP firmware */ 16078 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_RULES_ENGINE 0x5 16079 /* enum: DPDK RXDP firmware */ 16080 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_DPDK 0x6 16081 /* enum: BIST RXDP firmware */ 16082 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_BIST 0x10a 16083 /* enum: RXDP Test firmware image 1 */ 16084 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 16085 /* enum: RXDP Test firmware image 2 */ 16086 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 16087 /* enum: RXDP Test firmware image 3 */ 16088 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 16089 /* enum: RXDP Test firmware image 4 */ 16090 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 16091 /* enum: RXDP Test firmware image 5 */ 16092 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_BACKPRESSURE 0x105 16093 /* enum: RXDP Test firmware image 6 */ 16094 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 16095 /* enum: RXDP Test firmware image 7 */ 16096 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 16097 /* enum: RXDP Test firmware image 8 */ 16098 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 16099 /* enum: RXDP Test firmware image 9 */ 16100 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 16101 /* enum: RXDP Test firmware image 10 */ 16102 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_SLOW 0x10c 16103 /* TxDPCPU firmware id. */ 16104 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DPCPU_FW_ID_OFST 6 16105 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DPCPU_FW_ID_LEN 2 16106 /* enum: Standard TXDP firmware */ 16107 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP 0x0 16108 /* enum: Low latency TXDP firmware */ 16109 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_LOW_LATENCY 0x1 16110 /* enum: High packet rate TXDP firmware */ 16111 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_HIGH_PACKET_RATE 0x3 16112 /* enum: Rules engine TXDP firmware */ 16113 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_RULES_ENGINE 0x5 16114 /* enum: DPDK TXDP firmware */ 16115 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_DPDK 0x6 16116 /* enum: BIST TXDP firmware */ 16117 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_BIST 0x12d 16118 /* enum: TXDP Test firmware image 1 */ 16119 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 16120 /* enum: TXDP Test firmware image 2 */ 16121 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 16122 /* enum: TXDP CSR bus test firmware */ 16123 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_TEST_FW_CSR 0x103 16124 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_OFST 8 16125 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_LEN 2 16126 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_REV_OFST 8 16127 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_REV_LBN 0 16128 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_REV_WIDTH 12 16129 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_TYPE_OFST 8 16130 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_TYPE_LBN 12 16131 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 16132 /* enum: reserved value - do not use (may indicate alternative interpretation 16133 * of REV field in future) 16134 */ 16135 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_RESERVED 0x0 16136 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 16137 * development only) 16138 */ 16139 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 16140 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 16141 */ 16142 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 16143 /* enum: RX PD firmware with approximately Siena-compatible behaviour 16144 * (Huntington development only) 16145 */ 16146 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 16147 /* enum: Full featured RX PD production firmware */ 16148 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 16149 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 16150 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_VSWITCH 0x3 16151 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 16152 * (Huntington development only) 16153 */ 16154 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 16155 /* enum: Low latency RX PD production firmware */ 16156 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 16157 /* enum: Packed stream RX PD production firmware */ 16158 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 16159 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 16160 * tests (Medford development only) 16161 */ 16162 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 16163 /* enum: Rules engine RX PD production firmware */ 16164 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 16165 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 16166 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_L3XUDP 0x9 16167 /* enum: DPDK RX PD production firmware */ 16168 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_DPDK 0xa 16169 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 16170 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 16171 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 16172 * encapsulations (Medford development only) 16173 */ 16174 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 16175 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_OFST 10 16176 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_LEN 2 16177 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_REV_OFST 10 16178 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_REV_LBN 0 16179 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_REV_WIDTH 12 16180 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_TYPE_OFST 10 16181 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_TYPE_LBN 12 16182 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 16183 /* enum: reserved value - do not use (may indicate alternative interpretation 16184 * of REV field in future) 16185 */ 16186 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_RESERVED 0x0 16187 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 16188 * development only) 16189 */ 16190 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 16191 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 16192 */ 16193 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 16194 /* enum: TX PD firmware with approximately Siena-compatible behaviour 16195 * (Huntington development only) 16196 */ 16197 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 16198 /* enum: Full featured TX PD production firmware */ 16199 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 16200 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 16201 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_VSWITCH 0x3 16202 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 16203 * (Huntington development only) 16204 */ 16205 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 16206 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 16207 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 16208 * tests (Medford development only) 16209 */ 16210 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 16211 /* enum: Rules engine TX PD production firmware */ 16212 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 16213 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 16214 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_L3XUDP 0x9 16215 /* enum: DPDK TX PD production firmware */ 16216 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_DPDK 0xa 16217 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 16218 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 16219 /* Hardware capabilities of NIC */ 16220 #define MC_CMD_GET_CAPABILITIES_V7_OUT_HW_CAPABILITIES_OFST 12 16221 #define MC_CMD_GET_CAPABILITIES_V7_OUT_HW_CAPABILITIES_LEN 4 16222 /* Licensed capabilities */ 16223 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LICENSE_CAPABILITIES_OFST 16 16224 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LICENSE_CAPABILITIES_LEN 4 16225 /* Second word of flags. Not present on older firmware (check the length). */ 16226 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS2_OFST 20 16227 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS2_LEN 4 16228 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_OFST 20 16229 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_LBN 0 16230 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_WIDTH 1 16231 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_ENCAP_OFST 20 16232 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_ENCAP_LBN 1 16233 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_ENCAP_WIDTH 1 16234 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVQ_TIMER_CTRL_OFST 20 16235 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVQ_TIMER_CTRL_LBN 2 16236 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVQ_TIMER_CTRL_WIDTH 1 16237 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVENT_CUT_THROUGH_OFST 20 16238 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVENT_CUT_THROUGH_LBN 3 16239 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVENT_CUT_THROUGH_WIDTH 1 16240 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_CUT_THROUGH_OFST 20 16241 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_CUT_THROUGH_LBN 4 16242 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_CUT_THROUGH_WIDTH 1 16243 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VFIFO_ULL_MODE_OFST 20 16244 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VFIFO_ULL_MODE_LBN 5 16245 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 16246 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 16247 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 16248 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 16249 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 16250 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 16251 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 16252 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_V2_OFST 20 16253 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_V2_LBN 7 16254 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_V2_WIDTH 1 16255 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_TIMESTAMPING_OFST 20 16256 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_TIMESTAMPING_LBN 8 16257 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 16258 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TIMESTAMP_OFST 20 16259 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TIMESTAMP_LBN 9 16260 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TIMESTAMP_WIDTH 1 16261 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_SNIFF_OFST 20 16262 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_SNIFF_LBN 10 16263 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_SNIFF_WIDTH 1 16264 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_SNIFF_OFST 20 16265 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_SNIFF_LBN 11 16266 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_SNIFF_WIDTH 1 16267 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 16268 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 16269 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 16270 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_BACKGROUND_OFST 20 16271 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_BACKGROUND_LBN 13 16272 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_BACKGROUND_WIDTH 1 16273 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_DB_RETURN_OFST 20 16274 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_DB_RETURN_LBN 14 16275 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_DB_RETURN_WIDTH 1 16276 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CTPIO_OFST 20 16277 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CTPIO_LBN 15 16278 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CTPIO_WIDTH 1 16279 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_SUPPORT_OFST 20 16280 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_SUPPORT_LBN 16 16281 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_SUPPORT_WIDTH 1 16282 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_BOUND_OFST 20 16283 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_BOUND_LBN 17 16284 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_BOUND_WIDTH 1 16285 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 16286 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 16287 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 16288 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_FLAG_OFST 20 16289 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_FLAG_LBN 19 16290 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_FLAG_WIDTH 1 16291 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_OFST 20 16292 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_LBN 20 16293 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_WIDTH 1 16294 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 16295 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 16296 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 16297 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 16298 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 16299 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 16300 #define MC_CMD_GET_CAPABILITIES_V7_OUT_L3XUDP_SUPPORT_OFST 20 16301 #define MC_CMD_GET_CAPABILITIES_V7_OUT_L3XUDP_SUPPORT_LBN 22 16302 #define MC_CMD_GET_CAPABILITIES_V7_OUT_L3XUDP_SUPPORT_WIDTH 1 16303 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 16304 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 16305 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 16306 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_SPREADING_OFST 20 16307 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_SPREADING_LBN 24 16308 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_SPREADING_WIDTH 1 16309 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_HLB_IDLE_OFST 20 16310 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_HLB_IDLE_LBN 25 16311 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_HLB_IDLE_WIDTH 1 16312 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 16313 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 16314 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 16315 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 16316 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 16317 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 16318 #define MC_CMD_GET_CAPABILITIES_V7_OUT_BUNDLE_UPDATE_OFST 20 16319 #define MC_CMD_GET_CAPABILITIES_V7_OUT_BUNDLE_UPDATE_LBN 28 16320 #define MC_CMD_GET_CAPABILITIES_V7_OUT_BUNDLE_UPDATE_WIDTH 1 16321 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V3_OFST 20 16322 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V3_LBN 29 16323 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V3_WIDTH 1 16324 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_SENSORS_OFST 20 16325 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_SENSORS_LBN 30 16326 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_SENSORS_WIDTH 1 16327 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 16328 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 16329 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 16330 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 16331 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 16332 */ 16333 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 16334 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 16335 /* One byte per PF containing the number of the external port assigned to this 16336 * PF, indexed by PF number. Special values indicate that a PF is either not 16337 * present or not assigned. 16338 */ 16339 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 16340 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 16341 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 16342 /* enum: The caller is not permitted to access information on this PF. */ 16343 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ACCESS_NOT_PERMITTED 0xff 16344 /* enum: PF does not exist. */ 16345 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PF_NOT_PRESENT 0xfe 16346 /* enum: PF does exist but is not assigned to any external port. */ 16347 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PF_NOT_ASSIGNED 0xfd 16348 /* enum: This value indicates that PF is assigned, but it cannot be expressed 16349 * in this field. It is intended for a possible future situation where a more 16350 * complex scheme of PFs to ports mapping is being used. The future driver 16351 * should look for a new field supporting the new scheme. The current/old 16352 * driver should treat this value as PF_NOT_ASSIGNED. 16353 */ 16354 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 16355 /* One byte per PF containing the number of its VFs, indexed by PF number. A 16356 * special value indicates that a PF is not present. 16357 */ 16358 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VFS_PER_PF_OFST 42 16359 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VFS_PER_PF_LEN 1 16360 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VFS_PER_PF_NUM 16 16361 /* enum: The caller is not permitted to access information on this PF. */ 16362 /* MC_CMD_GET_CAPABILITIES_V7_OUT_ACCESS_NOT_PERMITTED 0xff */ 16363 /* enum: PF does not exist. */ 16364 /* MC_CMD_GET_CAPABILITIES_V7_OUT_PF_NOT_PRESENT 0xfe */ 16365 /* Number of VIs available for each external port */ 16366 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VIS_PER_PORT_OFST 58 16367 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VIS_PER_PORT_LEN 2 16368 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VIS_PER_PORT_NUM 4 16369 /* Size of RX descriptor cache expressed as binary logarithm The actual size 16370 * equals (2 ^ RX_DESC_CACHE_SIZE) 16371 */ 16372 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DESC_CACHE_SIZE_OFST 66 16373 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DESC_CACHE_SIZE_LEN 1 16374 /* Size of TX descriptor cache expressed as binary logarithm The actual size 16375 * equals (2 ^ TX_DESC_CACHE_SIZE) 16376 */ 16377 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DESC_CACHE_SIZE_OFST 67 16378 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DESC_CACHE_SIZE_LEN 1 16379 /* Total number of available PIO buffers */ 16380 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_PIO_BUFFS_OFST 68 16381 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_PIO_BUFFS_LEN 2 16382 /* Size of a single PIO buffer */ 16383 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SIZE_PIO_BUFF_OFST 70 16384 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SIZE_PIO_BUFF_LEN 2 16385 /* On chips later than Medford the amount of address space assigned to each VI 16386 * is configurable. This is a global setting that the driver must query to 16387 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 16388 * with 8k VI windows. 16389 */ 16390 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_OFST 72 16391 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_LEN 1 16392 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 16393 * CTPIO is not mapped. 16394 */ 16395 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_8K 0x0 16396 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 16397 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_16K 0x1 16398 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 16399 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_64K 0x2 16400 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 16401 * (SF-115995-SW) in the present configuration of firmware and port mode. 16402 */ 16403 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 16404 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 16405 /* Number of buffers per adapter that can be used for VFIFO Stuffing 16406 * (SF-115995-SW) in the present configuration of firmware and port mode. 16407 */ 16408 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 16409 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 16410 /* Entry count in the MAC stats array, including the final GENERATION_END 16411 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 16412 * hold at least this many 64-bit stats values, if they wish to receive all 16413 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 16414 * stats array returned will be truncated. 16415 */ 16416 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_NUM_STATS_OFST 76 16417 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_NUM_STATS_LEN 2 16418 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 16419 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 16420 */ 16421 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_MAX_OFST 80 16422 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_MAX_LEN 4 16423 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 16424 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 16425 * they create an RX queue. Due to hardware limitations, only a small number of 16426 * different buffer sizes may be available concurrently. Nonzero entries in 16427 * this array are the sizes of buffers which the system guarantees will be 16428 * available for use. If the list is empty, there are no limitations on 16429 * concurrent buffer sizes. 16430 */ 16431 #define MC_CMD_GET_CAPABILITIES_V7_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 16432 #define MC_CMD_GET_CAPABILITIES_V7_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 16433 #define MC_CMD_GET_CAPABILITIES_V7_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 16434 /* Third word of flags. Not present on older firmware (check the length). */ 16435 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS3_OFST 148 16436 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS3_LEN 4 16437 #define MC_CMD_GET_CAPABILITIES_V7_OUT_WOL_ETHERWAKE_OFST 148 16438 #define MC_CMD_GET_CAPABILITIES_V7_OUT_WOL_ETHERWAKE_LBN 0 16439 #define MC_CMD_GET_CAPABILITIES_V7_OUT_WOL_ETHERWAKE_WIDTH 1 16440 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_EVEN_SPREADING_OFST 148 16441 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_EVEN_SPREADING_LBN 1 16442 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_EVEN_SPREADING_WIDTH 1 16443 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 16444 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 16445 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 16446 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_SUPPORTED_OFST 148 16447 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_SUPPORTED_LBN 3 16448 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_SUPPORTED_WIDTH 1 16449 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VDPA_SUPPORTED_OFST 148 16450 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VDPA_SUPPORTED_LBN 4 16451 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VDPA_SUPPORTED_WIDTH 1 16452 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 16453 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 16454 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 16455 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 16456 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 16457 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 16458 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 16459 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 16460 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 16461 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 16462 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 16463 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 16464 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 16465 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 16466 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 16467 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 16468 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 16469 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 16470 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 16471 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 16472 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 16473 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 16474 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 16475 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 16476 16477 /* MC_CMD_GET_CAPABILITIES_V8_OUT msgresponse */ 16478 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LEN 160 16479 /* First word of flags. */ 16480 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS1_OFST 0 16481 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS1_LEN 4 16482 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VPORT_RECONFIGURE_OFST 0 16483 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VPORT_RECONFIGURE_LBN 3 16484 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VPORT_RECONFIGURE_WIDTH 1 16485 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_STRIPING_OFST 0 16486 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_STRIPING_LBN 4 16487 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_STRIPING_WIDTH 1 16488 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_QUERY_OFST 0 16489 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_QUERY_LBN 5 16490 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_QUERY_WIDTH 1 16491 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 16492 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 16493 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 16494 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DRV_ATTACH_PREBOOT_OFST 0 16495 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DRV_ATTACH_PREBOOT_LBN 7 16496 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 16497 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_FORCE_EVENT_MERGING_OFST 0 16498 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_FORCE_EVENT_MERGING_LBN 8 16499 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 16500 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SET_MAC_ENHANCED_OFST 0 16501 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SET_MAC_ENHANCED_LBN 9 16502 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SET_MAC_ENHANCED_WIDTH 1 16503 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 16504 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 16505 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 16506 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 16507 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 16508 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 16509 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 16510 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 16511 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 16512 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ADDITIONAL_RSS_MODES_OFST 0 16513 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ADDITIONAL_RSS_MODES_LBN 13 16514 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 16515 #define MC_CMD_GET_CAPABILITIES_V8_OUT_QBB_OFST 0 16516 #define MC_CMD_GET_CAPABILITIES_V8_OUT_QBB_LBN 14 16517 #define MC_CMD_GET_CAPABILITIES_V8_OUT_QBB_WIDTH 1 16518 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 16519 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 16520 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 16521 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_RSS_LIMITED_OFST 0 16522 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_RSS_LIMITED_LBN 16 16523 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_RSS_LIMITED_WIDTH 1 16524 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_OFST 0 16525 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_LBN 17 16526 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_WIDTH 1 16527 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_INCLUDE_FCS_OFST 0 16528 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_INCLUDE_FCS_LBN 18 16529 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_INCLUDE_FCS_WIDTH 1 16530 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VLAN_INSERTION_OFST 0 16531 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VLAN_INSERTION_LBN 19 16532 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VLAN_INSERTION_WIDTH 1 16533 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_OFST 0 16534 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_LBN 20 16535 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_WIDTH 1 16536 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_OFST 0 16537 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_LBN 21 16538 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_WIDTH 1 16539 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_0_OFST 0 16540 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_0_LBN 22 16541 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_0_WIDTH 1 16542 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_14_OFST 0 16543 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_14_LBN 23 16544 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_14_WIDTH 1 16545 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_TIMESTAMP_OFST 0 16546 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_TIMESTAMP_LBN 24 16547 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_TIMESTAMP_WIDTH 1 16548 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_BATCHING_OFST 0 16549 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_BATCHING_LBN 25 16550 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_BATCHING_WIDTH 1 16551 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCAST_FILTER_CHAINING_OFST 0 16552 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCAST_FILTER_CHAINING_LBN 26 16553 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCAST_FILTER_CHAINING_WIDTH 1 16554 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PM_AND_RXDP_COUNTERS_OFST 0 16555 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PM_AND_RXDP_COUNTERS_LBN 27 16556 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 16557 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DISABLE_SCATTER_OFST 0 16558 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DISABLE_SCATTER_LBN 28 16559 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DISABLE_SCATTER_WIDTH 1 16560 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 16561 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 16562 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 16563 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_OFST 0 16564 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_LBN 30 16565 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_WIDTH 1 16566 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VXLAN_NVGRE_OFST 0 16567 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VXLAN_NVGRE_LBN 31 16568 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VXLAN_NVGRE_WIDTH 1 16569 /* RxDPCPU firmware id. */ 16570 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DPCPU_FW_ID_OFST 4 16571 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DPCPU_FW_ID_LEN 2 16572 /* enum: Standard RXDP firmware */ 16573 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP 0x0 16574 /* enum: Low latency RXDP firmware */ 16575 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_LOW_LATENCY 0x1 16576 /* enum: Packed stream RXDP firmware */ 16577 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_PACKED_STREAM 0x2 16578 /* enum: Rules engine RXDP firmware */ 16579 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_RULES_ENGINE 0x5 16580 /* enum: DPDK RXDP firmware */ 16581 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_DPDK 0x6 16582 /* enum: BIST RXDP firmware */ 16583 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_BIST 0x10a 16584 /* enum: RXDP Test firmware image 1 */ 16585 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 16586 /* enum: RXDP Test firmware image 2 */ 16587 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 16588 /* enum: RXDP Test firmware image 3 */ 16589 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 16590 /* enum: RXDP Test firmware image 4 */ 16591 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 16592 /* enum: RXDP Test firmware image 5 */ 16593 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_BACKPRESSURE 0x105 16594 /* enum: RXDP Test firmware image 6 */ 16595 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 16596 /* enum: RXDP Test firmware image 7 */ 16597 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 16598 /* enum: RXDP Test firmware image 8 */ 16599 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 16600 /* enum: RXDP Test firmware image 9 */ 16601 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 16602 /* enum: RXDP Test firmware image 10 */ 16603 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_SLOW 0x10c 16604 /* TxDPCPU firmware id. */ 16605 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DPCPU_FW_ID_OFST 6 16606 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DPCPU_FW_ID_LEN 2 16607 /* enum: Standard TXDP firmware */ 16608 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP 0x0 16609 /* enum: Low latency TXDP firmware */ 16610 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_LOW_LATENCY 0x1 16611 /* enum: High packet rate TXDP firmware */ 16612 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_HIGH_PACKET_RATE 0x3 16613 /* enum: Rules engine TXDP firmware */ 16614 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_RULES_ENGINE 0x5 16615 /* enum: DPDK TXDP firmware */ 16616 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_DPDK 0x6 16617 /* enum: BIST TXDP firmware */ 16618 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_BIST 0x12d 16619 /* enum: TXDP Test firmware image 1 */ 16620 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 16621 /* enum: TXDP Test firmware image 2 */ 16622 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 16623 /* enum: TXDP CSR bus test firmware */ 16624 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_TEST_FW_CSR 0x103 16625 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_OFST 8 16626 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_LEN 2 16627 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_REV_OFST 8 16628 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_REV_LBN 0 16629 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_REV_WIDTH 12 16630 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_TYPE_OFST 8 16631 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_TYPE_LBN 12 16632 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 16633 /* enum: reserved value - do not use (may indicate alternative interpretation 16634 * of REV field in future) 16635 */ 16636 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_RESERVED 0x0 16637 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 16638 * development only) 16639 */ 16640 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 16641 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 16642 */ 16643 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 16644 /* enum: RX PD firmware with approximately Siena-compatible behaviour 16645 * (Huntington development only) 16646 */ 16647 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 16648 /* enum: Full featured RX PD production firmware */ 16649 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 16650 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 16651 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_VSWITCH 0x3 16652 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 16653 * (Huntington development only) 16654 */ 16655 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 16656 /* enum: Low latency RX PD production firmware */ 16657 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 16658 /* enum: Packed stream RX PD production firmware */ 16659 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 16660 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 16661 * tests (Medford development only) 16662 */ 16663 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 16664 /* enum: Rules engine RX PD production firmware */ 16665 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 16666 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 16667 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_L3XUDP 0x9 16668 /* enum: DPDK RX PD production firmware */ 16669 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_DPDK 0xa 16670 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 16671 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 16672 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 16673 * encapsulations (Medford development only) 16674 */ 16675 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 16676 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_OFST 10 16677 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_LEN 2 16678 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_REV_OFST 10 16679 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_REV_LBN 0 16680 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_REV_WIDTH 12 16681 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_TYPE_OFST 10 16682 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_TYPE_LBN 12 16683 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 16684 /* enum: reserved value - do not use (may indicate alternative interpretation 16685 * of REV field in future) 16686 */ 16687 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_RESERVED 0x0 16688 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 16689 * development only) 16690 */ 16691 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 16692 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 16693 */ 16694 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 16695 /* enum: TX PD firmware with approximately Siena-compatible behaviour 16696 * (Huntington development only) 16697 */ 16698 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 16699 /* enum: Full featured TX PD production firmware */ 16700 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 16701 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 16702 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_VSWITCH 0x3 16703 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 16704 * (Huntington development only) 16705 */ 16706 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 16707 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 16708 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 16709 * tests (Medford development only) 16710 */ 16711 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 16712 /* enum: Rules engine TX PD production firmware */ 16713 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 16714 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 16715 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_L3XUDP 0x9 16716 /* enum: DPDK TX PD production firmware */ 16717 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_DPDK 0xa 16718 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 16719 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 16720 /* Hardware capabilities of NIC */ 16721 #define MC_CMD_GET_CAPABILITIES_V8_OUT_HW_CAPABILITIES_OFST 12 16722 #define MC_CMD_GET_CAPABILITIES_V8_OUT_HW_CAPABILITIES_LEN 4 16723 /* Licensed capabilities */ 16724 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LICENSE_CAPABILITIES_OFST 16 16725 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LICENSE_CAPABILITIES_LEN 4 16726 /* Second word of flags. Not present on older firmware (check the length). */ 16727 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS2_OFST 20 16728 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS2_LEN 4 16729 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_OFST 20 16730 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_LBN 0 16731 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_WIDTH 1 16732 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_ENCAP_OFST 20 16733 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_ENCAP_LBN 1 16734 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_ENCAP_WIDTH 1 16735 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVQ_TIMER_CTRL_OFST 20 16736 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVQ_TIMER_CTRL_LBN 2 16737 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVQ_TIMER_CTRL_WIDTH 1 16738 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVENT_CUT_THROUGH_OFST 20 16739 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVENT_CUT_THROUGH_LBN 3 16740 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVENT_CUT_THROUGH_WIDTH 1 16741 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_CUT_THROUGH_OFST 20 16742 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_CUT_THROUGH_LBN 4 16743 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_CUT_THROUGH_WIDTH 1 16744 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VFIFO_ULL_MODE_OFST 20 16745 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VFIFO_ULL_MODE_LBN 5 16746 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 16747 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 16748 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 16749 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 16750 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 16751 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 16752 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 16753 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_V2_OFST 20 16754 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_V2_LBN 7 16755 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_V2_WIDTH 1 16756 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_TIMESTAMPING_OFST 20 16757 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_TIMESTAMPING_LBN 8 16758 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 16759 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TIMESTAMP_OFST 20 16760 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TIMESTAMP_LBN 9 16761 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TIMESTAMP_WIDTH 1 16762 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_SNIFF_OFST 20 16763 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_SNIFF_LBN 10 16764 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_SNIFF_WIDTH 1 16765 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_SNIFF_OFST 20 16766 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_SNIFF_LBN 11 16767 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_SNIFF_WIDTH 1 16768 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 16769 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 16770 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 16771 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_BACKGROUND_OFST 20 16772 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_BACKGROUND_LBN 13 16773 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_BACKGROUND_WIDTH 1 16774 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_DB_RETURN_OFST 20 16775 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_DB_RETURN_LBN 14 16776 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_DB_RETURN_WIDTH 1 16777 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CTPIO_OFST 20 16778 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CTPIO_LBN 15 16779 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CTPIO_WIDTH 1 16780 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_SUPPORT_OFST 20 16781 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_SUPPORT_LBN 16 16782 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_SUPPORT_WIDTH 1 16783 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_BOUND_OFST 20 16784 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_BOUND_LBN 17 16785 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_BOUND_WIDTH 1 16786 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 16787 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 16788 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 16789 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_FLAG_OFST 20 16790 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_FLAG_LBN 19 16791 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_FLAG_WIDTH 1 16792 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_OFST 20 16793 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_LBN 20 16794 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_WIDTH 1 16795 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 16796 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 16797 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 16798 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 16799 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 16800 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 16801 #define MC_CMD_GET_CAPABILITIES_V8_OUT_L3XUDP_SUPPORT_OFST 20 16802 #define MC_CMD_GET_CAPABILITIES_V8_OUT_L3XUDP_SUPPORT_LBN 22 16803 #define MC_CMD_GET_CAPABILITIES_V8_OUT_L3XUDP_SUPPORT_WIDTH 1 16804 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 16805 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 16806 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 16807 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_SPREADING_OFST 20 16808 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_SPREADING_LBN 24 16809 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_SPREADING_WIDTH 1 16810 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_HLB_IDLE_OFST 20 16811 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_HLB_IDLE_LBN 25 16812 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_HLB_IDLE_WIDTH 1 16813 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 16814 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 16815 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 16816 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 16817 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 16818 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 16819 #define MC_CMD_GET_CAPABILITIES_V8_OUT_BUNDLE_UPDATE_OFST 20 16820 #define MC_CMD_GET_CAPABILITIES_V8_OUT_BUNDLE_UPDATE_LBN 28 16821 #define MC_CMD_GET_CAPABILITIES_V8_OUT_BUNDLE_UPDATE_WIDTH 1 16822 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V3_OFST 20 16823 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V3_LBN 29 16824 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V3_WIDTH 1 16825 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_SENSORS_OFST 20 16826 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_SENSORS_LBN 30 16827 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_SENSORS_WIDTH 1 16828 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 16829 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 16830 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 16831 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 16832 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 16833 */ 16834 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 16835 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 16836 /* One byte per PF containing the number of the external port assigned to this 16837 * PF, indexed by PF number. Special values indicate that a PF is either not 16838 * present or not assigned. 16839 */ 16840 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 16841 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 16842 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 16843 /* enum: The caller is not permitted to access information on this PF. */ 16844 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ACCESS_NOT_PERMITTED 0xff 16845 /* enum: PF does not exist. */ 16846 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PF_NOT_PRESENT 0xfe 16847 /* enum: PF does exist but is not assigned to any external port. */ 16848 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PF_NOT_ASSIGNED 0xfd 16849 /* enum: This value indicates that PF is assigned, but it cannot be expressed 16850 * in this field. It is intended for a possible future situation where a more 16851 * complex scheme of PFs to ports mapping is being used. The future driver 16852 * should look for a new field supporting the new scheme. The current/old 16853 * driver should treat this value as PF_NOT_ASSIGNED. 16854 */ 16855 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 16856 /* One byte per PF containing the number of its VFs, indexed by PF number. A 16857 * special value indicates that a PF is not present. 16858 */ 16859 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VFS_PER_PF_OFST 42 16860 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VFS_PER_PF_LEN 1 16861 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VFS_PER_PF_NUM 16 16862 /* enum: The caller is not permitted to access information on this PF. */ 16863 /* MC_CMD_GET_CAPABILITIES_V8_OUT_ACCESS_NOT_PERMITTED 0xff */ 16864 /* enum: PF does not exist. */ 16865 /* MC_CMD_GET_CAPABILITIES_V8_OUT_PF_NOT_PRESENT 0xfe */ 16866 /* Number of VIs available for each external port */ 16867 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VIS_PER_PORT_OFST 58 16868 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VIS_PER_PORT_LEN 2 16869 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VIS_PER_PORT_NUM 4 16870 /* Size of RX descriptor cache expressed as binary logarithm The actual size 16871 * equals (2 ^ RX_DESC_CACHE_SIZE) 16872 */ 16873 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DESC_CACHE_SIZE_OFST 66 16874 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DESC_CACHE_SIZE_LEN 1 16875 /* Size of TX descriptor cache expressed as binary logarithm The actual size 16876 * equals (2 ^ TX_DESC_CACHE_SIZE) 16877 */ 16878 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DESC_CACHE_SIZE_OFST 67 16879 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DESC_CACHE_SIZE_LEN 1 16880 /* Total number of available PIO buffers */ 16881 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_PIO_BUFFS_OFST 68 16882 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_PIO_BUFFS_LEN 2 16883 /* Size of a single PIO buffer */ 16884 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SIZE_PIO_BUFF_OFST 70 16885 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SIZE_PIO_BUFF_LEN 2 16886 /* On chips later than Medford the amount of address space assigned to each VI 16887 * is configurable. This is a global setting that the driver must query to 16888 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 16889 * with 8k VI windows. 16890 */ 16891 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_OFST 72 16892 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_LEN 1 16893 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 16894 * CTPIO is not mapped. 16895 */ 16896 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_8K 0x0 16897 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 16898 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_16K 0x1 16899 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 16900 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_64K 0x2 16901 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 16902 * (SF-115995-SW) in the present configuration of firmware and port mode. 16903 */ 16904 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 16905 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 16906 /* Number of buffers per adapter that can be used for VFIFO Stuffing 16907 * (SF-115995-SW) in the present configuration of firmware and port mode. 16908 */ 16909 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 16910 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 16911 /* Entry count in the MAC stats array, including the final GENERATION_END 16912 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 16913 * hold at least this many 64-bit stats values, if they wish to receive all 16914 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 16915 * stats array returned will be truncated. 16916 */ 16917 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_NUM_STATS_OFST 76 16918 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_NUM_STATS_LEN 2 16919 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 16920 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 16921 */ 16922 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_MAX_OFST 80 16923 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_MAX_LEN 4 16924 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 16925 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 16926 * they create an RX queue. Due to hardware limitations, only a small number of 16927 * different buffer sizes may be available concurrently. Nonzero entries in 16928 * this array are the sizes of buffers which the system guarantees will be 16929 * available for use. If the list is empty, there are no limitations on 16930 * concurrent buffer sizes. 16931 */ 16932 #define MC_CMD_GET_CAPABILITIES_V8_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 16933 #define MC_CMD_GET_CAPABILITIES_V8_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 16934 #define MC_CMD_GET_CAPABILITIES_V8_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 16935 /* Third word of flags. Not present on older firmware (check the length). */ 16936 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS3_OFST 148 16937 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS3_LEN 4 16938 #define MC_CMD_GET_CAPABILITIES_V8_OUT_WOL_ETHERWAKE_OFST 148 16939 #define MC_CMD_GET_CAPABILITIES_V8_OUT_WOL_ETHERWAKE_LBN 0 16940 #define MC_CMD_GET_CAPABILITIES_V8_OUT_WOL_ETHERWAKE_WIDTH 1 16941 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_EVEN_SPREADING_OFST 148 16942 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_EVEN_SPREADING_LBN 1 16943 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_EVEN_SPREADING_WIDTH 1 16944 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 16945 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 16946 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 16947 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_SUPPORTED_OFST 148 16948 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_SUPPORTED_LBN 3 16949 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_SUPPORTED_WIDTH 1 16950 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VDPA_SUPPORTED_OFST 148 16951 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VDPA_SUPPORTED_LBN 4 16952 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VDPA_SUPPORTED_WIDTH 1 16953 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 16954 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 16955 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 16956 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 16957 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 16958 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 16959 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 16960 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 16961 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 16962 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 16963 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 16964 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 16965 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 16966 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 16967 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 16968 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 16969 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 16970 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 16971 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 16972 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 16973 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 16974 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 16975 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 16976 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 16977 /* These bits are reserved for communicating test-specific capabilities to 16978 * host-side test software. All production drivers should treat this field as 16979 * opaque. 16980 */ 16981 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_OFST 152 16982 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LEN 8 16983 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_OFST 152 16984 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_LEN 4 16985 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_LBN 1216 16986 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_WIDTH 32 16987 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_OFST 156 16988 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_LEN 4 16989 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_LBN 1248 16990 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_WIDTH 32 16991 16992 /* MC_CMD_GET_CAPABILITIES_V9_OUT msgresponse */ 16993 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LEN 184 16994 /* First word of flags. */ 16995 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS1_OFST 0 16996 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS1_LEN 4 16997 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VPORT_RECONFIGURE_OFST 0 16998 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VPORT_RECONFIGURE_LBN 3 16999 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VPORT_RECONFIGURE_WIDTH 1 17000 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_STRIPING_OFST 0 17001 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_STRIPING_LBN 4 17002 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_STRIPING_WIDTH 1 17003 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_QUERY_OFST 0 17004 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_QUERY_LBN 5 17005 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_QUERY_WIDTH 1 17006 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 17007 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 17008 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 17009 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DRV_ATTACH_PREBOOT_OFST 0 17010 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DRV_ATTACH_PREBOOT_LBN 7 17011 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 17012 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_FORCE_EVENT_MERGING_OFST 0 17013 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_FORCE_EVENT_MERGING_LBN 8 17014 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 17015 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SET_MAC_ENHANCED_OFST 0 17016 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SET_MAC_ENHANCED_LBN 9 17017 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SET_MAC_ENHANCED_WIDTH 1 17018 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 17019 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 17020 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 17021 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 17022 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 17023 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 17024 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 17025 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 17026 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 17027 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ADDITIONAL_RSS_MODES_OFST 0 17028 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ADDITIONAL_RSS_MODES_LBN 13 17029 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 17030 #define MC_CMD_GET_CAPABILITIES_V9_OUT_QBB_OFST 0 17031 #define MC_CMD_GET_CAPABILITIES_V9_OUT_QBB_LBN 14 17032 #define MC_CMD_GET_CAPABILITIES_V9_OUT_QBB_WIDTH 1 17033 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 17034 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 17035 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 17036 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_RSS_LIMITED_OFST 0 17037 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_RSS_LIMITED_LBN 16 17038 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_RSS_LIMITED_WIDTH 1 17039 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_OFST 0 17040 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_LBN 17 17041 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_WIDTH 1 17042 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_INCLUDE_FCS_OFST 0 17043 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_INCLUDE_FCS_LBN 18 17044 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_INCLUDE_FCS_WIDTH 1 17045 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VLAN_INSERTION_OFST 0 17046 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VLAN_INSERTION_LBN 19 17047 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VLAN_INSERTION_WIDTH 1 17048 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_OFST 0 17049 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_LBN 20 17050 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_WIDTH 1 17051 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_OFST 0 17052 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_LBN 21 17053 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_WIDTH 1 17054 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_0_OFST 0 17055 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_0_LBN 22 17056 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_0_WIDTH 1 17057 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_14_OFST 0 17058 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_14_LBN 23 17059 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_14_WIDTH 1 17060 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_TIMESTAMP_OFST 0 17061 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_TIMESTAMP_LBN 24 17062 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_TIMESTAMP_WIDTH 1 17063 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_BATCHING_OFST 0 17064 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_BATCHING_LBN 25 17065 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_BATCHING_WIDTH 1 17066 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCAST_FILTER_CHAINING_OFST 0 17067 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCAST_FILTER_CHAINING_LBN 26 17068 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCAST_FILTER_CHAINING_WIDTH 1 17069 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PM_AND_RXDP_COUNTERS_OFST 0 17070 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PM_AND_RXDP_COUNTERS_LBN 27 17071 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 17072 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DISABLE_SCATTER_OFST 0 17073 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DISABLE_SCATTER_LBN 28 17074 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DISABLE_SCATTER_WIDTH 1 17075 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 17076 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 17077 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 17078 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_OFST 0 17079 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_LBN 30 17080 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_WIDTH 1 17081 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VXLAN_NVGRE_OFST 0 17082 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VXLAN_NVGRE_LBN 31 17083 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VXLAN_NVGRE_WIDTH 1 17084 /* RxDPCPU firmware id. */ 17085 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DPCPU_FW_ID_OFST 4 17086 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DPCPU_FW_ID_LEN 2 17087 /* enum: Standard RXDP firmware */ 17088 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP 0x0 17089 /* enum: Low latency RXDP firmware */ 17090 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_LOW_LATENCY 0x1 17091 /* enum: Packed stream RXDP firmware */ 17092 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_PACKED_STREAM 0x2 17093 /* enum: Rules engine RXDP firmware */ 17094 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_RULES_ENGINE 0x5 17095 /* enum: DPDK RXDP firmware */ 17096 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_DPDK 0x6 17097 /* enum: BIST RXDP firmware */ 17098 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_BIST 0x10a 17099 /* enum: RXDP Test firmware image 1 */ 17100 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 17101 /* enum: RXDP Test firmware image 2 */ 17102 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 17103 /* enum: RXDP Test firmware image 3 */ 17104 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 17105 /* enum: RXDP Test firmware image 4 */ 17106 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 17107 /* enum: RXDP Test firmware image 5 */ 17108 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_BACKPRESSURE 0x105 17109 /* enum: RXDP Test firmware image 6 */ 17110 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 17111 /* enum: RXDP Test firmware image 7 */ 17112 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 17113 /* enum: RXDP Test firmware image 8 */ 17114 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 17115 /* enum: RXDP Test firmware image 9 */ 17116 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 17117 /* enum: RXDP Test firmware image 10 */ 17118 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_SLOW 0x10c 17119 /* TxDPCPU firmware id. */ 17120 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DPCPU_FW_ID_OFST 6 17121 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DPCPU_FW_ID_LEN 2 17122 /* enum: Standard TXDP firmware */ 17123 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP 0x0 17124 /* enum: Low latency TXDP firmware */ 17125 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_LOW_LATENCY 0x1 17126 /* enum: High packet rate TXDP firmware */ 17127 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_HIGH_PACKET_RATE 0x3 17128 /* enum: Rules engine TXDP firmware */ 17129 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_RULES_ENGINE 0x5 17130 /* enum: DPDK TXDP firmware */ 17131 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_DPDK 0x6 17132 /* enum: BIST TXDP firmware */ 17133 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_BIST 0x12d 17134 /* enum: TXDP Test firmware image 1 */ 17135 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 17136 /* enum: TXDP Test firmware image 2 */ 17137 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 17138 /* enum: TXDP CSR bus test firmware */ 17139 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_TEST_FW_CSR 0x103 17140 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_OFST 8 17141 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_LEN 2 17142 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_REV_OFST 8 17143 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_REV_LBN 0 17144 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_REV_WIDTH 12 17145 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_TYPE_OFST 8 17146 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_TYPE_LBN 12 17147 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 17148 /* enum: reserved value - do not use (may indicate alternative interpretation 17149 * of REV field in future) 17150 */ 17151 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_RESERVED 0x0 17152 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 17153 * development only) 17154 */ 17155 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 17156 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 17157 */ 17158 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 17159 /* enum: RX PD firmware with approximately Siena-compatible behaviour 17160 * (Huntington development only) 17161 */ 17162 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 17163 /* enum: Full featured RX PD production firmware */ 17164 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 17165 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 17166 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_VSWITCH 0x3 17167 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 17168 * (Huntington development only) 17169 */ 17170 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 17171 /* enum: Low latency RX PD production firmware */ 17172 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 17173 /* enum: Packed stream RX PD production firmware */ 17174 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 17175 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 17176 * tests (Medford development only) 17177 */ 17178 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 17179 /* enum: Rules engine RX PD production firmware */ 17180 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 17181 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 17182 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_L3XUDP 0x9 17183 /* enum: DPDK RX PD production firmware */ 17184 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_DPDK 0xa 17185 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 17186 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 17187 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 17188 * encapsulations (Medford development only) 17189 */ 17190 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 17191 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_OFST 10 17192 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_LEN 2 17193 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_REV_OFST 10 17194 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_REV_LBN 0 17195 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_REV_WIDTH 12 17196 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_TYPE_OFST 10 17197 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_TYPE_LBN 12 17198 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 17199 /* enum: reserved value - do not use (may indicate alternative interpretation 17200 * of REV field in future) 17201 */ 17202 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_RESERVED 0x0 17203 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 17204 * development only) 17205 */ 17206 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 17207 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 17208 */ 17209 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 17210 /* enum: TX PD firmware with approximately Siena-compatible behaviour 17211 * (Huntington development only) 17212 */ 17213 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 17214 /* enum: Full featured TX PD production firmware */ 17215 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 17216 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 17217 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_VSWITCH 0x3 17218 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 17219 * (Huntington development only) 17220 */ 17221 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 17222 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 17223 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 17224 * tests (Medford development only) 17225 */ 17226 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 17227 /* enum: Rules engine TX PD production firmware */ 17228 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 17229 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 17230 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_L3XUDP 0x9 17231 /* enum: DPDK TX PD production firmware */ 17232 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_DPDK 0xa 17233 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 17234 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 17235 /* Hardware capabilities of NIC */ 17236 #define MC_CMD_GET_CAPABILITIES_V9_OUT_HW_CAPABILITIES_OFST 12 17237 #define MC_CMD_GET_CAPABILITIES_V9_OUT_HW_CAPABILITIES_LEN 4 17238 /* Licensed capabilities */ 17239 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LICENSE_CAPABILITIES_OFST 16 17240 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LICENSE_CAPABILITIES_LEN 4 17241 /* Second word of flags. Not present on older firmware (check the length). */ 17242 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS2_OFST 20 17243 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS2_LEN 4 17244 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_OFST 20 17245 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_LBN 0 17246 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_WIDTH 1 17247 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_ENCAP_OFST 20 17248 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_ENCAP_LBN 1 17249 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_ENCAP_WIDTH 1 17250 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVQ_TIMER_CTRL_OFST 20 17251 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVQ_TIMER_CTRL_LBN 2 17252 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVQ_TIMER_CTRL_WIDTH 1 17253 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVENT_CUT_THROUGH_OFST 20 17254 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVENT_CUT_THROUGH_LBN 3 17255 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVENT_CUT_THROUGH_WIDTH 1 17256 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_CUT_THROUGH_OFST 20 17257 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_CUT_THROUGH_LBN 4 17258 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_CUT_THROUGH_WIDTH 1 17259 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VFIFO_ULL_MODE_OFST 20 17260 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VFIFO_ULL_MODE_LBN 5 17261 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 17262 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 17263 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 17264 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 17265 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 17266 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 17267 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 17268 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_V2_OFST 20 17269 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_V2_LBN 7 17270 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_V2_WIDTH 1 17271 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_TIMESTAMPING_OFST 20 17272 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_TIMESTAMPING_LBN 8 17273 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 17274 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TIMESTAMP_OFST 20 17275 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TIMESTAMP_LBN 9 17276 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TIMESTAMP_WIDTH 1 17277 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_SNIFF_OFST 20 17278 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_SNIFF_LBN 10 17279 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_SNIFF_WIDTH 1 17280 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_SNIFF_OFST 20 17281 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_SNIFF_LBN 11 17282 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_SNIFF_WIDTH 1 17283 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 17284 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 17285 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 17286 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_BACKGROUND_OFST 20 17287 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_BACKGROUND_LBN 13 17288 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_BACKGROUND_WIDTH 1 17289 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_DB_RETURN_OFST 20 17290 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_DB_RETURN_LBN 14 17291 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_DB_RETURN_WIDTH 1 17292 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CTPIO_OFST 20 17293 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CTPIO_LBN 15 17294 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CTPIO_WIDTH 1 17295 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_SUPPORT_OFST 20 17296 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_SUPPORT_LBN 16 17297 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_SUPPORT_WIDTH 1 17298 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_BOUND_OFST 20 17299 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_BOUND_LBN 17 17300 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_BOUND_WIDTH 1 17301 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 17302 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 17303 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 17304 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_FLAG_OFST 20 17305 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_FLAG_LBN 19 17306 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_FLAG_WIDTH 1 17307 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_OFST 20 17308 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_LBN 20 17309 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_WIDTH 1 17310 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 17311 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 17312 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 17313 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 17314 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 17315 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 17316 #define MC_CMD_GET_CAPABILITIES_V9_OUT_L3XUDP_SUPPORT_OFST 20 17317 #define MC_CMD_GET_CAPABILITIES_V9_OUT_L3XUDP_SUPPORT_LBN 22 17318 #define MC_CMD_GET_CAPABILITIES_V9_OUT_L3XUDP_SUPPORT_WIDTH 1 17319 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 17320 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 17321 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 17322 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_SPREADING_OFST 20 17323 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_SPREADING_LBN 24 17324 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_SPREADING_WIDTH 1 17325 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_HLB_IDLE_OFST 20 17326 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_HLB_IDLE_LBN 25 17327 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_HLB_IDLE_WIDTH 1 17328 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 17329 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 17330 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 17331 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 17332 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 17333 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 17334 #define MC_CMD_GET_CAPABILITIES_V9_OUT_BUNDLE_UPDATE_OFST 20 17335 #define MC_CMD_GET_CAPABILITIES_V9_OUT_BUNDLE_UPDATE_LBN 28 17336 #define MC_CMD_GET_CAPABILITIES_V9_OUT_BUNDLE_UPDATE_WIDTH 1 17337 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V3_OFST 20 17338 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V3_LBN 29 17339 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V3_WIDTH 1 17340 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_SENSORS_OFST 20 17341 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_SENSORS_LBN 30 17342 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_SENSORS_WIDTH 1 17343 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 17344 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 17345 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 17346 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 17347 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 17348 */ 17349 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 17350 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 17351 /* One byte per PF containing the number of the external port assigned to this 17352 * PF, indexed by PF number. Special values indicate that a PF is either not 17353 * present or not assigned. 17354 */ 17355 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 17356 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 17357 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 17358 /* enum: The caller is not permitted to access information on this PF. */ 17359 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ACCESS_NOT_PERMITTED 0xff 17360 /* enum: PF does not exist. */ 17361 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PF_NOT_PRESENT 0xfe 17362 /* enum: PF does exist but is not assigned to any external port. */ 17363 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PF_NOT_ASSIGNED 0xfd 17364 /* enum: This value indicates that PF is assigned, but it cannot be expressed 17365 * in this field. It is intended for a possible future situation where a more 17366 * complex scheme of PFs to ports mapping is being used. The future driver 17367 * should look for a new field supporting the new scheme. The current/old 17368 * driver should treat this value as PF_NOT_ASSIGNED. 17369 */ 17370 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 17371 /* One byte per PF containing the number of its VFs, indexed by PF number. A 17372 * special value indicates that a PF is not present. 17373 */ 17374 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VFS_PER_PF_OFST 42 17375 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VFS_PER_PF_LEN 1 17376 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VFS_PER_PF_NUM 16 17377 /* enum: The caller is not permitted to access information on this PF. */ 17378 /* MC_CMD_GET_CAPABILITIES_V9_OUT_ACCESS_NOT_PERMITTED 0xff */ 17379 /* enum: PF does not exist. */ 17380 /* MC_CMD_GET_CAPABILITIES_V9_OUT_PF_NOT_PRESENT 0xfe */ 17381 /* Number of VIs available for each external port */ 17382 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VIS_PER_PORT_OFST 58 17383 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VIS_PER_PORT_LEN 2 17384 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VIS_PER_PORT_NUM 4 17385 /* Size of RX descriptor cache expressed as binary logarithm The actual size 17386 * equals (2 ^ RX_DESC_CACHE_SIZE) 17387 */ 17388 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DESC_CACHE_SIZE_OFST 66 17389 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DESC_CACHE_SIZE_LEN 1 17390 /* Size of TX descriptor cache expressed as binary logarithm The actual size 17391 * equals (2 ^ TX_DESC_CACHE_SIZE) 17392 */ 17393 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DESC_CACHE_SIZE_OFST 67 17394 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DESC_CACHE_SIZE_LEN 1 17395 /* Total number of available PIO buffers */ 17396 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_PIO_BUFFS_OFST 68 17397 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_PIO_BUFFS_LEN 2 17398 /* Size of a single PIO buffer */ 17399 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SIZE_PIO_BUFF_OFST 70 17400 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SIZE_PIO_BUFF_LEN 2 17401 /* On chips later than Medford the amount of address space assigned to each VI 17402 * is configurable. This is a global setting that the driver must query to 17403 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 17404 * with 8k VI windows. 17405 */ 17406 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_OFST 72 17407 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_LEN 1 17408 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 17409 * CTPIO is not mapped. 17410 */ 17411 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_8K 0x0 17412 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 17413 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_16K 0x1 17414 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 17415 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_64K 0x2 17416 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 17417 * (SF-115995-SW) in the present configuration of firmware and port mode. 17418 */ 17419 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 17420 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 17421 /* Number of buffers per adapter that can be used for VFIFO Stuffing 17422 * (SF-115995-SW) in the present configuration of firmware and port mode. 17423 */ 17424 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 17425 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 17426 /* Entry count in the MAC stats array, including the final GENERATION_END 17427 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 17428 * hold at least this many 64-bit stats values, if they wish to receive all 17429 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 17430 * stats array returned will be truncated. 17431 */ 17432 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_NUM_STATS_OFST 76 17433 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_NUM_STATS_LEN 2 17434 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 17435 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 17436 */ 17437 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_MAX_OFST 80 17438 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_MAX_LEN 4 17439 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 17440 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 17441 * they create an RX queue. Due to hardware limitations, only a small number of 17442 * different buffer sizes may be available concurrently. Nonzero entries in 17443 * this array are the sizes of buffers which the system guarantees will be 17444 * available for use. If the list is empty, there are no limitations on 17445 * concurrent buffer sizes. 17446 */ 17447 #define MC_CMD_GET_CAPABILITIES_V9_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 17448 #define MC_CMD_GET_CAPABILITIES_V9_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 17449 #define MC_CMD_GET_CAPABILITIES_V9_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 17450 /* Third word of flags. Not present on older firmware (check the length). */ 17451 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS3_OFST 148 17452 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS3_LEN 4 17453 #define MC_CMD_GET_CAPABILITIES_V9_OUT_WOL_ETHERWAKE_OFST 148 17454 #define MC_CMD_GET_CAPABILITIES_V9_OUT_WOL_ETHERWAKE_LBN 0 17455 #define MC_CMD_GET_CAPABILITIES_V9_OUT_WOL_ETHERWAKE_WIDTH 1 17456 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_EVEN_SPREADING_OFST 148 17457 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_EVEN_SPREADING_LBN 1 17458 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_EVEN_SPREADING_WIDTH 1 17459 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 17460 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 17461 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 17462 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_SUPPORTED_OFST 148 17463 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_SUPPORTED_LBN 3 17464 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_SUPPORTED_WIDTH 1 17465 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VDPA_SUPPORTED_OFST 148 17466 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VDPA_SUPPORTED_LBN 4 17467 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VDPA_SUPPORTED_WIDTH 1 17468 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 17469 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 17470 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 17471 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 17472 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 17473 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 17474 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 17475 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 17476 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 17477 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 17478 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 17479 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 17480 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 17481 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 17482 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 17483 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 17484 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 17485 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 17486 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 17487 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 17488 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 17489 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 17490 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 17491 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 17492 /* These bits are reserved for communicating test-specific capabilities to 17493 * host-side test software. All production drivers should treat this field as 17494 * opaque. 17495 */ 17496 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_OFST 152 17497 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LEN 8 17498 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_OFST 152 17499 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_LEN 4 17500 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_LBN 1216 17501 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_WIDTH 32 17502 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_OFST 156 17503 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_LEN 4 17504 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_LBN 1248 17505 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_WIDTH 32 17506 /* The minimum size (in table entries) of indirection table to be allocated 17507 * from the pool for an RSS context. Note that the table size used must be a 17508 * power of 2. 17509 */ 17510 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_OFST 160 17511 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_LEN 4 17512 /* The maximum size (in table entries) of indirection table to be allocated 17513 * from the pool for an RSS context. Note that the table size used must be a 17514 * power of 2. 17515 */ 17516 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_OFST 164 17517 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_LEN 4 17518 /* The maximum number of queues that can be used by an RSS context in exclusive 17519 * mode. In exclusive mode the context has a configurable indirection table and 17520 * a configurable RSS key. 17521 */ 17522 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_QUEUES_OFST 168 17523 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_QUEUES_LEN 4 17524 /* The maximum number of queues that can be used by an RSS context in even- 17525 * spreading mode. In even-spreading mode the context has no indirection table 17526 * but it does have a configurable RSS key. 17527 */ 17528 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_OFST 172 17529 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_LEN 4 17530 /* The total number of RSS contexts supported. Note that the number of 17531 * available contexts using indirection tables is also limited by the 17532 * availability of indirection table space allocated from a common pool. 17533 */ 17534 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_NUM_CONTEXTS_OFST 176 17535 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_NUM_CONTEXTS_LEN 4 17536 /* The total amount of indirection table space that can be shared between RSS 17537 * contexts. 17538 */ 17539 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_TABLE_POOL_SIZE_OFST 180 17540 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_TABLE_POOL_SIZE_LEN 4 17541 17542 /* MC_CMD_GET_CAPABILITIES_V10_OUT msgresponse */ 17543 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LEN 192 17544 /* First word of flags. */ 17545 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS1_OFST 0 17546 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS1_LEN 4 17547 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VPORT_RECONFIGURE_OFST 0 17548 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VPORT_RECONFIGURE_LBN 3 17549 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VPORT_RECONFIGURE_WIDTH 1 17550 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_OFST 0 17551 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_LBN 4 17552 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_WIDTH 1 17553 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_QUERY_OFST 0 17554 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_QUERY_LBN 5 17555 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_QUERY_WIDTH 1 17556 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 17557 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 17558 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 17559 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_OFST 0 17560 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_LBN 7 17561 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 17562 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_FORCE_EVENT_MERGING_OFST 0 17563 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_FORCE_EVENT_MERGING_LBN 8 17564 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 17565 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SET_MAC_ENHANCED_OFST 0 17566 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SET_MAC_ENHANCED_LBN 9 17567 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SET_MAC_ENHANCED_WIDTH 1 17568 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 17569 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 17570 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 17571 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 17572 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 17573 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 17574 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 17575 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 17576 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 17577 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ADDITIONAL_RSS_MODES_OFST 0 17578 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ADDITIONAL_RSS_MODES_LBN 13 17579 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 17580 #define MC_CMD_GET_CAPABILITIES_V10_OUT_QBB_OFST 0 17581 #define MC_CMD_GET_CAPABILITIES_V10_OUT_QBB_LBN 14 17582 #define MC_CMD_GET_CAPABILITIES_V10_OUT_QBB_WIDTH 1 17583 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 17584 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 17585 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 17586 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_RSS_LIMITED_OFST 0 17587 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_RSS_LIMITED_LBN 16 17588 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_RSS_LIMITED_WIDTH 1 17589 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_OFST 0 17590 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_LBN 17 17591 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_WIDTH 1 17592 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_INCLUDE_FCS_OFST 0 17593 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_INCLUDE_FCS_LBN 18 17594 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_INCLUDE_FCS_WIDTH 1 17595 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VLAN_INSERTION_OFST 0 17596 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VLAN_INSERTION_LBN 19 17597 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VLAN_INSERTION_WIDTH 1 17598 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_OFST 0 17599 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_LBN 20 17600 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_WIDTH 1 17601 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_OFST 0 17602 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_LBN 21 17603 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_WIDTH 1 17604 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_0_OFST 0 17605 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_0_LBN 22 17606 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_0_WIDTH 1 17607 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_14_OFST 0 17608 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_14_LBN 23 17609 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_14_WIDTH 1 17610 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_TIMESTAMP_OFST 0 17611 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_TIMESTAMP_LBN 24 17612 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_TIMESTAMP_WIDTH 1 17613 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_BATCHING_OFST 0 17614 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_BATCHING_LBN 25 17615 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_BATCHING_WIDTH 1 17616 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCAST_FILTER_CHAINING_OFST 0 17617 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCAST_FILTER_CHAINING_LBN 26 17618 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCAST_FILTER_CHAINING_WIDTH 1 17619 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PM_AND_RXDP_COUNTERS_OFST 0 17620 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PM_AND_RXDP_COUNTERS_LBN 27 17621 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 17622 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DISABLE_SCATTER_OFST 0 17623 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DISABLE_SCATTER_LBN 28 17624 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DISABLE_SCATTER_WIDTH 1 17625 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 17626 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 17627 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 17628 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_OFST 0 17629 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_LBN 30 17630 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_WIDTH 1 17631 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VXLAN_NVGRE_OFST 0 17632 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VXLAN_NVGRE_LBN 31 17633 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VXLAN_NVGRE_WIDTH 1 17634 /* RxDPCPU firmware id. */ 17635 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DPCPU_FW_ID_OFST 4 17636 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DPCPU_FW_ID_LEN 2 17637 /* enum: Standard RXDP firmware */ 17638 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP 0x0 17639 /* enum: Low latency RXDP firmware */ 17640 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_LOW_LATENCY 0x1 17641 /* enum: Packed stream RXDP firmware */ 17642 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_PACKED_STREAM 0x2 17643 /* enum: Rules engine RXDP firmware */ 17644 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_RULES_ENGINE 0x5 17645 /* enum: DPDK RXDP firmware */ 17646 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_DPDK 0x6 17647 /* enum: BIST RXDP firmware */ 17648 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_BIST 0x10a 17649 /* enum: RXDP Test firmware image 1 */ 17650 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 17651 /* enum: RXDP Test firmware image 2 */ 17652 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 17653 /* enum: RXDP Test firmware image 3 */ 17654 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 17655 /* enum: RXDP Test firmware image 4 */ 17656 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 17657 /* enum: RXDP Test firmware image 5 */ 17658 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_BACKPRESSURE 0x105 17659 /* enum: RXDP Test firmware image 6 */ 17660 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 17661 /* enum: RXDP Test firmware image 7 */ 17662 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 17663 /* enum: RXDP Test firmware image 8 */ 17664 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 17665 /* enum: RXDP Test firmware image 9 */ 17666 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 17667 /* enum: RXDP Test firmware image 10 */ 17668 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_SLOW 0x10c 17669 /* TxDPCPU firmware id. */ 17670 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DPCPU_FW_ID_OFST 6 17671 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DPCPU_FW_ID_LEN 2 17672 /* enum: Standard TXDP firmware */ 17673 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP 0x0 17674 /* enum: Low latency TXDP firmware */ 17675 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_LOW_LATENCY 0x1 17676 /* enum: High packet rate TXDP firmware */ 17677 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_HIGH_PACKET_RATE 0x3 17678 /* enum: Rules engine TXDP firmware */ 17679 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_RULES_ENGINE 0x5 17680 /* enum: DPDK TXDP firmware */ 17681 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_DPDK 0x6 17682 /* enum: BIST TXDP firmware */ 17683 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_BIST 0x12d 17684 /* enum: TXDP Test firmware image 1 */ 17685 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 17686 /* enum: TXDP Test firmware image 2 */ 17687 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 17688 /* enum: TXDP CSR bus test firmware */ 17689 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_TEST_FW_CSR 0x103 17690 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_OFST 8 17691 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_LEN 2 17692 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_REV_OFST 8 17693 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_REV_LBN 0 17694 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_REV_WIDTH 12 17695 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_TYPE_OFST 8 17696 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_TYPE_LBN 12 17697 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 17698 /* enum: reserved value - do not use (may indicate alternative interpretation 17699 * of REV field in future) 17700 */ 17701 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_RESERVED 0x0 17702 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 17703 * development only) 17704 */ 17705 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 17706 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 17707 */ 17708 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 17709 /* enum: RX PD firmware with approximately Siena-compatible behaviour 17710 * (Huntington development only) 17711 */ 17712 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 17713 /* enum: Full featured RX PD production firmware */ 17714 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 17715 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 17716 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_VSWITCH 0x3 17717 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 17718 * (Huntington development only) 17719 */ 17720 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 17721 /* enum: Low latency RX PD production firmware */ 17722 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 17723 /* enum: Packed stream RX PD production firmware */ 17724 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 17725 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 17726 * tests (Medford development only) 17727 */ 17728 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 17729 /* enum: Rules engine RX PD production firmware */ 17730 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 17731 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 17732 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_L3XUDP 0x9 17733 /* enum: DPDK RX PD production firmware */ 17734 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_DPDK 0xa 17735 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 17736 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 17737 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 17738 * encapsulations (Medford development only) 17739 */ 17740 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 17741 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_OFST 10 17742 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_LEN 2 17743 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_REV_OFST 10 17744 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_REV_LBN 0 17745 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_REV_WIDTH 12 17746 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_TYPE_OFST 10 17747 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_TYPE_LBN 12 17748 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 17749 /* enum: reserved value - do not use (may indicate alternative interpretation 17750 * of REV field in future) 17751 */ 17752 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_RESERVED 0x0 17753 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 17754 * development only) 17755 */ 17756 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 17757 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 17758 */ 17759 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 17760 /* enum: TX PD firmware with approximately Siena-compatible behaviour 17761 * (Huntington development only) 17762 */ 17763 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 17764 /* enum: Full featured TX PD production firmware */ 17765 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 17766 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 17767 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_VSWITCH 0x3 17768 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 17769 * (Huntington development only) 17770 */ 17771 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 17772 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 17773 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 17774 * tests (Medford development only) 17775 */ 17776 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 17777 /* enum: Rules engine TX PD production firmware */ 17778 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 17779 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 17780 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_L3XUDP 0x9 17781 /* enum: DPDK TX PD production firmware */ 17782 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_DPDK 0xa 17783 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 17784 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 17785 /* Hardware capabilities of NIC */ 17786 #define MC_CMD_GET_CAPABILITIES_V10_OUT_HW_CAPABILITIES_OFST 12 17787 #define MC_CMD_GET_CAPABILITIES_V10_OUT_HW_CAPABILITIES_LEN 4 17788 /* Licensed capabilities */ 17789 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LICENSE_CAPABILITIES_OFST 16 17790 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LICENSE_CAPABILITIES_LEN 4 17791 /* Second word of flags. Not present on older firmware (check the length). */ 17792 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS2_OFST 20 17793 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS2_LEN 4 17794 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_OFST 20 17795 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_LBN 0 17796 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_WIDTH 1 17797 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_OFST 20 17798 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_LBN 1 17799 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_WIDTH 1 17800 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVQ_TIMER_CTRL_OFST 20 17801 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVQ_TIMER_CTRL_LBN 2 17802 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVQ_TIMER_CTRL_WIDTH 1 17803 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVENT_CUT_THROUGH_OFST 20 17804 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVENT_CUT_THROUGH_LBN 3 17805 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVENT_CUT_THROUGH_WIDTH 1 17806 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_OFST 20 17807 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_LBN 4 17808 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_WIDTH 1 17809 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VFIFO_ULL_MODE_OFST 20 17810 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VFIFO_ULL_MODE_LBN 5 17811 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 17812 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 17813 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 17814 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 17815 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 17816 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 17817 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 17818 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_OFST 20 17819 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_LBN 7 17820 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_WIDTH 1 17821 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_TIMESTAMPING_OFST 20 17822 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_TIMESTAMPING_LBN 8 17823 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 17824 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TIMESTAMP_OFST 20 17825 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TIMESTAMP_LBN 9 17826 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TIMESTAMP_WIDTH 1 17827 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_SNIFF_OFST 20 17828 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_SNIFF_LBN 10 17829 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_SNIFF_WIDTH 1 17830 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_SNIFF_OFST 20 17831 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_SNIFF_LBN 11 17832 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_SNIFF_WIDTH 1 17833 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 17834 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 17835 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 17836 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_BACKGROUND_OFST 20 17837 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_BACKGROUND_LBN 13 17838 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_BACKGROUND_WIDTH 1 17839 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_DB_RETURN_OFST 20 17840 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_DB_RETURN_LBN 14 17841 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_DB_RETURN_WIDTH 1 17842 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CTPIO_OFST 20 17843 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CTPIO_LBN 15 17844 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CTPIO_WIDTH 1 17845 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_SUPPORT_OFST 20 17846 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_SUPPORT_LBN 16 17847 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_SUPPORT_WIDTH 1 17848 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_BOUND_OFST 20 17849 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_BOUND_LBN 17 17850 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_BOUND_WIDTH 1 17851 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 17852 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 17853 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 17854 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_FLAG_OFST 20 17855 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_FLAG_LBN 19 17856 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_FLAG_WIDTH 1 17857 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_OFST 20 17858 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_LBN 20 17859 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_WIDTH 1 17860 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 17861 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 17862 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 17863 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 17864 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 17865 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 17866 #define MC_CMD_GET_CAPABILITIES_V10_OUT_L3XUDP_SUPPORT_OFST 20 17867 #define MC_CMD_GET_CAPABILITIES_V10_OUT_L3XUDP_SUPPORT_LBN 22 17868 #define MC_CMD_GET_CAPABILITIES_V10_OUT_L3XUDP_SUPPORT_WIDTH 1 17869 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 17870 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 17871 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 17872 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_SPREADING_OFST 20 17873 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_SPREADING_LBN 24 17874 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_SPREADING_WIDTH 1 17875 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_HLB_IDLE_OFST 20 17876 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_HLB_IDLE_LBN 25 17877 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_HLB_IDLE_WIDTH 1 17878 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 17879 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 17880 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 17881 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 17882 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 17883 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 17884 #define MC_CMD_GET_CAPABILITIES_V10_OUT_BUNDLE_UPDATE_OFST 20 17885 #define MC_CMD_GET_CAPABILITIES_V10_OUT_BUNDLE_UPDATE_LBN 28 17886 #define MC_CMD_GET_CAPABILITIES_V10_OUT_BUNDLE_UPDATE_WIDTH 1 17887 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V3_OFST 20 17888 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V3_LBN 29 17889 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V3_WIDTH 1 17890 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_SENSORS_OFST 20 17891 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_SENSORS_LBN 30 17892 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_SENSORS_WIDTH 1 17893 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 17894 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 17895 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 17896 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 17897 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 17898 */ 17899 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 17900 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 17901 /* One byte per PF containing the number of the external port assigned to this 17902 * PF, indexed by PF number. Special values indicate that a PF is either not 17903 * present or not assigned. 17904 */ 17905 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 17906 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 17907 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 17908 /* enum: The caller is not permitted to access information on this PF. */ 17909 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ACCESS_NOT_PERMITTED 0xff 17910 /* enum: PF does not exist. */ 17911 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PF_NOT_PRESENT 0xfe 17912 /* enum: PF does exist but is not assigned to any external port. */ 17913 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PF_NOT_ASSIGNED 0xfd 17914 /* enum: This value indicates that PF is assigned, but it cannot be expressed 17915 * in this field. It is intended for a possible future situation where a more 17916 * complex scheme of PFs to ports mapping is being used. The future driver 17917 * should look for a new field supporting the new scheme. The current/old 17918 * driver should treat this value as PF_NOT_ASSIGNED. 17919 */ 17920 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 17921 /* One byte per PF containing the number of its VFs, indexed by PF number. A 17922 * special value indicates that a PF is not present. 17923 */ 17924 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VFS_PER_PF_OFST 42 17925 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VFS_PER_PF_LEN 1 17926 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VFS_PER_PF_NUM 16 17927 /* enum: The caller is not permitted to access information on this PF. */ 17928 /* MC_CMD_GET_CAPABILITIES_V10_OUT_ACCESS_NOT_PERMITTED 0xff */ 17929 /* enum: PF does not exist. */ 17930 /* MC_CMD_GET_CAPABILITIES_V10_OUT_PF_NOT_PRESENT 0xfe */ 17931 /* Number of VIs available for each external port */ 17932 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VIS_PER_PORT_OFST 58 17933 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VIS_PER_PORT_LEN 2 17934 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VIS_PER_PORT_NUM 4 17935 /* Size of RX descriptor cache expressed as binary logarithm The actual size 17936 * equals (2 ^ RX_DESC_CACHE_SIZE) 17937 */ 17938 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DESC_CACHE_SIZE_OFST 66 17939 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DESC_CACHE_SIZE_LEN 1 17940 /* Size of TX descriptor cache expressed as binary logarithm The actual size 17941 * equals (2 ^ TX_DESC_CACHE_SIZE) 17942 */ 17943 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DESC_CACHE_SIZE_OFST 67 17944 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DESC_CACHE_SIZE_LEN 1 17945 /* Total number of available PIO buffers */ 17946 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_PIO_BUFFS_OFST 68 17947 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_PIO_BUFFS_LEN 2 17948 /* Size of a single PIO buffer */ 17949 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SIZE_PIO_BUFF_OFST 70 17950 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SIZE_PIO_BUFF_LEN 2 17951 /* On chips later than Medford the amount of address space assigned to each VI 17952 * is configurable. This is a global setting that the driver must query to 17953 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 17954 * with 8k VI windows. 17955 */ 17956 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_OFST 72 17957 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_LEN 1 17958 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 17959 * CTPIO is not mapped. 17960 */ 17961 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_8K 0x0 17962 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 17963 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_16K 0x1 17964 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 17965 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_64K 0x2 17966 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 17967 * (SF-115995-SW) in the present configuration of firmware and port mode. 17968 */ 17969 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 17970 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 17971 /* Number of buffers per adapter that can be used for VFIFO Stuffing 17972 * (SF-115995-SW) in the present configuration of firmware and port mode. 17973 */ 17974 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 17975 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 17976 /* Entry count in the MAC stats array, including the final GENERATION_END 17977 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 17978 * hold at least this many 64-bit stats values, if they wish to receive all 17979 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 17980 * stats array returned will be truncated. 17981 */ 17982 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_NUM_STATS_OFST 76 17983 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_NUM_STATS_LEN 2 17984 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 17985 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 17986 */ 17987 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_MAX_OFST 80 17988 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_MAX_LEN 4 17989 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 17990 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 17991 * they create an RX queue. Due to hardware limitations, only a small number of 17992 * different buffer sizes may be available concurrently. Nonzero entries in 17993 * this array are the sizes of buffers which the system guarantees will be 17994 * available for use. If the list is empty, there are no limitations on 17995 * concurrent buffer sizes. 17996 */ 17997 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 17998 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 17999 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 18000 /* Third word of flags. Not present on older firmware (check the length). */ 18001 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS3_OFST 148 18002 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS3_LEN 4 18003 #define MC_CMD_GET_CAPABILITIES_V10_OUT_WOL_ETHERWAKE_OFST 148 18004 #define MC_CMD_GET_CAPABILITIES_V10_OUT_WOL_ETHERWAKE_LBN 0 18005 #define MC_CMD_GET_CAPABILITIES_V10_OUT_WOL_ETHERWAKE_WIDTH 1 18006 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_OFST 148 18007 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_LBN 1 18008 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_WIDTH 1 18009 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 18010 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 18011 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 18012 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_SUPPORTED_OFST 148 18013 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_SUPPORTED_LBN 3 18014 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_SUPPORTED_WIDTH 1 18015 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_OFST 148 18016 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_LBN 4 18017 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_WIDTH 1 18018 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 18019 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 18020 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 18021 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 18022 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 18023 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 18024 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 18025 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 18026 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 18027 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ENCAPSULATED_MCDI_SUPPORTED_OFST 148 18028 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ENCAPSULATED_MCDI_SUPPORTED_LBN 8 18029 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1 18030 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTERNAL_MAE_SUPPORTED_OFST 148 18031 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTERNAL_MAE_SUPPORTED_LBN 9 18032 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1 18033 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_OFST 148 18034 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_LBN 10 18035 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1 18036 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_OFST 148 18037 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_LBN 11 18038 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1 18039 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_STEER_ON_OUTER_SUPPORTED_OFST 148 18040 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_STEER_ON_OUTER_SUPPORTED_LBN 12 18041 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1 18042 /* These bits are reserved for communicating test-specific capabilities to 18043 * host-side test software. All production drivers should treat this field as 18044 * opaque. 18045 */ 18046 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_OFST 152 18047 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LEN 8 18048 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_OFST 152 18049 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_LEN 4 18050 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_LBN 1216 18051 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_WIDTH 32 18052 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_OFST 156 18053 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_LEN 4 18054 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_LBN 1248 18055 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_WIDTH 32 18056 /* The minimum size (in table entries) of indirection table to be allocated 18057 * from the pool for an RSS context. Note that the table size used must be a 18058 * power of 2. 18059 */ 18060 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_OFST 160 18061 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_LEN 4 18062 /* The maximum size (in table entries) of indirection table to be allocated 18063 * from the pool for an RSS context. Note that the table size used must be a 18064 * power of 2. 18065 */ 18066 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_OFST 164 18067 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_LEN 4 18068 /* The maximum number of queues that can be used by an RSS context in exclusive 18069 * mode. In exclusive mode the context has a configurable indirection table and 18070 * a configurable RSS key. 18071 */ 18072 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_QUEUES_OFST 168 18073 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_QUEUES_LEN 4 18074 /* The maximum number of queues that can be used by an RSS context in even- 18075 * spreading mode. In even-spreading mode the context has no indirection table 18076 * but it does have a configurable RSS key. 18077 */ 18078 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_OFST 172 18079 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_LEN 4 18080 /* The total number of RSS contexts supported. Note that the number of 18081 * available contexts using indirection tables is also limited by the 18082 * availability of indirection table space allocated from a common pool. 18083 */ 18084 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_NUM_CONTEXTS_OFST 176 18085 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_NUM_CONTEXTS_LEN 4 18086 /* The total amount of indirection table space that can be shared between RSS 18087 * contexts. 18088 */ 18089 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_TABLE_POOL_SIZE_OFST 180 18090 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_TABLE_POOL_SIZE_LEN 4 18091 /* A bitmap of the queue sizes the device can provide, where bit N being set 18092 * indicates that 2**N is a valid size. The device may be limited in the number 18093 * of different queue sizes that can exist simultaneously, so a bit being set 18094 * here does not guarantee that an attempt to create a queue of that size will 18095 * succeed. 18096 */ 18097 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SUPPORTED_QUEUE_SIZES_OFST 184 18098 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SUPPORTED_QUEUE_SIZES_LEN 4 18099 /* A bitmap of queue sizes that are always available, in the same format as 18100 * SUPPORTED_QUEUE_SIZES. Attempting to create a queue with one of these sizes 18101 * will never fail due to unavailability of the requested size. 18102 */ 18103 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_QUEUE_SIZES_OFST 188 18104 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_QUEUE_SIZES_LEN 4 18105 18106 18107 /***********************************/ 18108 /* MC_CMD_V2_EXTN 18109 * Encapsulation for a v2 extended command 18110 */ 18111 #define MC_CMD_V2_EXTN 0x7f 18112 #define MC_CMD_V2_EXTN_MSGSET 0x7f 18113 18114 /* MC_CMD_V2_EXTN_IN msgrequest */ 18115 #define MC_CMD_V2_EXTN_IN_LEN 4 18116 /* the extended command number */ 18117 #define MC_CMD_V2_EXTN_IN_EXTENDED_CMD_LBN 0 18118 #define MC_CMD_V2_EXTN_IN_EXTENDED_CMD_WIDTH 15 18119 #define MC_CMD_V2_EXTN_IN_UNUSED_LBN 15 18120 #define MC_CMD_V2_EXTN_IN_UNUSED_WIDTH 1 18121 /* the actual length of the encapsulated command (which is not in the v1 18122 * header) 18123 */ 18124 #define MC_CMD_V2_EXTN_IN_ACTUAL_LEN_LBN 16 18125 #define MC_CMD_V2_EXTN_IN_ACTUAL_LEN_WIDTH 10 18126 #define MC_CMD_V2_EXTN_IN_UNUSED2_LBN 26 18127 #define MC_CMD_V2_EXTN_IN_UNUSED2_WIDTH 2 18128 /* Type of command/response */ 18129 #define MC_CMD_V2_EXTN_IN_MESSAGE_TYPE_LBN 28 18130 #define MC_CMD_V2_EXTN_IN_MESSAGE_TYPE_WIDTH 4 18131 /* enum: MCDI command directed to or response originating from the MC. */ 18132 #define MC_CMD_V2_EXTN_IN_MCDI_MESSAGE_TYPE_MC 0x0 18133 /* enum: MCDI command directed to a TSA controller. MCDI responses of this type 18134 * are not defined. 18135 */ 18136 #define MC_CMD_V2_EXTN_IN_MCDI_MESSAGE_TYPE_TSA 0x1 18137 18138 18139 /***********************************/ 18140 /* MC_CMD_TCM_BUCKET_ALLOC 18141 * Allocate a pacer bucket (for qau rp or a snapper test) 18142 */ 18143 #define MC_CMD_TCM_BUCKET_ALLOC 0xb2 18144 #define MC_CMD_TCM_BUCKET_ALLOC_MSGSET 0xb2 18145 #undef MC_CMD_0xb2_PRIVILEGE_CTG 18146 18147 #define MC_CMD_0xb2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18148 18149 /* MC_CMD_TCM_BUCKET_ALLOC_IN msgrequest */ 18150 #define MC_CMD_TCM_BUCKET_ALLOC_IN_LEN 0 18151 18152 /* MC_CMD_TCM_BUCKET_ALLOC_OUT msgresponse */ 18153 #define MC_CMD_TCM_BUCKET_ALLOC_OUT_LEN 4 18154 /* the bucket id */ 18155 #define MC_CMD_TCM_BUCKET_ALLOC_OUT_BUCKET_OFST 0 18156 #define MC_CMD_TCM_BUCKET_ALLOC_OUT_BUCKET_LEN 4 18157 18158 18159 /***********************************/ 18160 /* MC_CMD_TCM_BUCKET_FREE 18161 * Free a pacer bucket 18162 */ 18163 #define MC_CMD_TCM_BUCKET_FREE 0xb3 18164 #define MC_CMD_TCM_BUCKET_FREE_MSGSET 0xb3 18165 #undef MC_CMD_0xb3_PRIVILEGE_CTG 18166 18167 #define MC_CMD_0xb3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18168 18169 /* MC_CMD_TCM_BUCKET_FREE_IN msgrequest */ 18170 #define MC_CMD_TCM_BUCKET_FREE_IN_LEN 4 18171 /* the bucket id */ 18172 #define MC_CMD_TCM_BUCKET_FREE_IN_BUCKET_OFST 0 18173 #define MC_CMD_TCM_BUCKET_FREE_IN_BUCKET_LEN 4 18174 18175 /* MC_CMD_TCM_BUCKET_FREE_OUT msgresponse */ 18176 #define MC_CMD_TCM_BUCKET_FREE_OUT_LEN 0 18177 18178 18179 /***********************************/ 18180 /* MC_CMD_TCM_BUCKET_INIT 18181 * Initialise pacer bucket with a given rate 18182 */ 18183 #define MC_CMD_TCM_BUCKET_INIT 0xb4 18184 #define MC_CMD_TCM_BUCKET_INIT_MSGSET 0xb4 18185 #undef MC_CMD_0xb4_PRIVILEGE_CTG 18186 18187 #define MC_CMD_0xb4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18188 18189 /* MC_CMD_TCM_BUCKET_INIT_IN msgrequest */ 18190 #define MC_CMD_TCM_BUCKET_INIT_IN_LEN 8 18191 /* the bucket id */ 18192 #define MC_CMD_TCM_BUCKET_INIT_IN_BUCKET_OFST 0 18193 #define MC_CMD_TCM_BUCKET_INIT_IN_BUCKET_LEN 4 18194 /* the rate in mbps */ 18195 #define MC_CMD_TCM_BUCKET_INIT_IN_RATE_OFST 4 18196 #define MC_CMD_TCM_BUCKET_INIT_IN_RATE_LEN 4 18197 18198 /* MC_CMD_TCM_BUCKET_INIT_EXT_IN msgrequest */ 18199 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_LEN 12 18200 /* the bucket id */ 18201 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_BUCKET_OFST 0 18202 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_BUCKET_LEN 4 18203 /* the rate in mbps */ 18204 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_RATE_OFST 4 18205 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_RATE_LEN 4 18206 /* the desired maximum fill level */ 18207 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_MAX_FILL_OFST 8 18208 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_MAX_FILL_LEN 4 18209 18210 /* MC_CMD_TCM_BUCKET_INIT_OUT msgresponse */ 18211 #define MC_CMD_TCM_BUCKET_INIT_OUT_LEN 0 18212 18213 18214 /***********************************/ 18215 /* MC_CMD_TCM_TXQ_INIT 18216 * Initialise txq in pacer with given options or set options 18217 */ 18218 #define MC_CMD_TCM_TXQ_INIT 0xb5 18219 #define MC_CMD_TCM_TXQ_INIT_MSGSET 0xb5 18220 #undef MC_CMD_0xb5_PRIVILEGE_CTG 18221 18222 #define MC_CMD_0xb5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18223 18224 /* MC_CMD_TCM_TXQ_INIT_IN msgrequest */ 18225 #define MC_CMD_TCM_TXQ_INIT_IN_LEN 28 18226 /* the txq id */ 18227 #define MC_CMD_TCM_TXQ_INIT_IN_QID_OFST 0 18228 #define MC_CMD_TCM_TXQ_INIT_IN_QID_LEN 4 18229 /* the static priority associated with the txq */ 18230 #define MC_CMD_TCM_TXQ_INIT_IN_LABEL_OFST 4 18231 #define MC_CMD_TCM_TXQ_INIT_IN_LABEL_LEN 4 18232 /* bitmask of the priority queues this txq is inserted into when inserted. */ 18233 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAGS_OFST 8 18234 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAGS_LEN 4 18235 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_GUARANTEED_OFST 8 18236 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_GUARANTEED_LBN 0 18237 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_GUARANTEED_WIDTH 1 18238 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_NORMAL_OFST 8 18239 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_NORMAL_LBN 1 18240 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_NORMAL_WIDTH 1 18241 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_LOW_OFST 8 18242 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_LOW_LBN 2 18243 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_LOW_WIDTH 1 18244 /* the reaction point (RP) bucket */ 18245 #define MC_CMD_TCM_TXQ_INIT_IN_RP_BKT_OFST 12 18246 #define MC_CMD_TCM_TXQ_INIT_IN_RP_BKT_LEN 4 18247 /* an already reserved bucket (typically set to bucket associated with outer 18248 * vswitch) 18249 */ 18250 #define MC_CMD_TCM_TXQ_INIT_IN_MAX_BKT1_OFST 16 18251 #define MC_CMD_TCM_TXQ_INIT_IN_MAX_BKT1_LEN 4 18252 /* an already reserved bucket (typically set to bucket associated with inner 18253 * vswitch) 18254 */ 18255 #define MC_CMD_TCM_TXQ_INIT_IN_MAX_BKT2_OFST 20 18256 #define MC_CMD_TCM_TXQ_INIT_IN_MAX_BKT2_LEN 4 18257 /* the min bucket (typically for ETS/minimum bandwidth) */ 18258 #define MC_CMD_TCM_TXQ_INIT_IN_MIN_BKT_OFST 24 18259 #define MC_CMD_TCM_TXQ_INIT_IN_MIN_BKT_LEN 4 18260 18261 /* MC_CMD_TCM_TXQ_INIT_EXT_IN msgrequest */ 18262 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_LEN 32 18263 /* the txq id */ 18264 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_QID_OFST 0 18265 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_QID_LEN 4 18266 /* the static priority associated with the txq */ 18267 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_LABEL_NORMAL_OFST 4 18268 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_LABEL_NORMAL_LEN 4 18269 /* bitmask of the priority queues this txq is inserted into when inserted. */ 18270 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAGS_OFST 8 18271 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAGS_LEN 4 18272 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_GUARANTEED_OFST 8 18273 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_GUARANTEED_LBN 0 18274 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_GUARANTEED_WIDTH 1 18275 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_NORMAL_OFST 8 18276 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_NORMAL_LBN 1 18277 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_NORMAL_WIDTH 1 18278 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_LOW_OFST 8 18279 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_LOW_LBN 2 18280 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_LOW_WIDTH 1 18281 /* the reaction point (RP) bucket */ 18282 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_RP_BKT_OFST 12 18283 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_RP_BKT_LEN 4 18284 /* an already reserved bucket (typically set to bucket associated with outer 18285 * vswitch) 18286 */ 18287 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MAX_BKT1_OFST 16 18288 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MAX_BKT1_LEN 4 18289 /* an already reserved bucket (typically set to bucket associated with inner 18290 * vswitch) 18291 */ 18292 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MAX_BKT2_OFST 20 18293 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MAX_BKT2_LEN 4 18294 /* the min bucket (typically for ETS/minimum bandwidth) */ 18295 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MIN_BKT_OFST 24 18296 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MIN_BKT_LEN 4 18297 /* the static priority associated with the txq */ 18298 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_LABEL_GUARANTEED_OFST 28 18299 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_LABEL_GUARANTEED_LEN 4 18300 18301 /* MC_CMD_TCM_TXQ_INIT_OUT msgresponse */ 18302 #define MC_CMD_TCM_TXQ_INIT_OUT_LEN 0 18303 18304 18305 /***********************************/ 18306 /* MC_CMD_LINK_PIOBUF 18307 * Link a push I/O buffer to a TxQ 18308 */ 18309 #define MC_CMD_LINK_PIOBUF 0x92 18310 #define MC_CMD_LINK_PIOBUF_MSGSET 0x92 18311 #undef MC_CMD_0x92_PRIVILEGE_CTG 18312 18313 #define MC_CMD_0x92_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 18314 18315 /* MC_CMD_LINK_PIOBUF_IN msgrequest */ 18316 #define MC_CMD_LINK_PIOBUF_IN_LEN 8 18317 /* Handle for allocated push I/O buffer. */ 18318 #define MC_CMD_LINK_PIOBUF_IN_PIOBUF_HANDLE_OFST 0 18319 #define MC_CMD_LINK_PIOBUF_IN_PIOBUF_HANDLE_LEN 4 18320 /* Function Local Instance (VI) number which has a TxQ allocated to it. */ 18321 #define MC_CMD_LINK_PIOBUF_IN_TXQ_INSTANCE_OFST 4 18322 #define MC_CMD_LINK_PIOBUF_IN_TXQ_INSTANCE_LEN 4 18323 18324 /* MC_CMD_LINK_PIOBUF_OUT msgresponse */ 18325 #define MC_CMD_LINK_PIOBUF_OUT_LEN 0 18326 18327 18328 /***********************************/ 18329 /* MC_CMD_UNLINK_PIOBUF 18330 * Unlink a push I/O buffer from a TxQ 18331 */ 18332 #define MC_CMD_UNLINK_PIOBUF 0x93 18333 #define MC_CMD_UNLINK_PIOBUF_MSGSET 0x93 18334 #undef MC_CMD_0x93_PRIVILEGE_CTG 18335 18336 #define MC_CMD_0x93_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 18337 18338 /* MC_CMD_UNLINK_PIOBUF_IN msgrequest */ 18339 #define MC_CMD_UNLINK_PIOBUF_IN_LEN 4 18340 /* Function Local Instance (VI) number. */ 18341 #define MC_CMD_UNLINK_PIOBUF_IN_TXQ_INSTANCE_OFST 0 18342 #define MC_CMD_UNLINK_PIOBUF_IN_TXQ_INSTANCE_LEN 4 18343 18344 /* MC_CMD_UNLINK_PIOBUF_OUT msgresponse */ 18345 #define MC_CMD_UNLINK_PIOBUF_OUT_LEN 0 18346 18347 18348 /***********************************/ 18349 /* MC_CMD_VSWITCH_ALLOC 18350 * allocate and initialise a v-switch. 18351 */ 18352 #define MC_CMD_VSWITCH_ALLOC 0x94 18353 #define MC_CMD_VSWITCH_ALLOC_MSGSET 0x94 18354 #undef MC_CMD_0x94_PRIVILEGE_CTG 18355 18356 #define MC_CMD_0x94_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18357 18358 /* MC_CMD_VSWITCH_ALLOC_IN msgrequest */ 18359 #define MC_CMD_VSWITCH_ALLOC_IN_LEN 16 18360 /* The port to connect to the v-switch's upstream port. */ 18361 #define MC_CMD_VSWITCH_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 18362 #define MC_CMD_VSWITCH_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 18363 /* The type of v-switch to create. */ 18364 #define MC_CMD_VSWITCH_ALLOC_IN_TYPE_OFST 4 18365 #define MC_CMD_VSWITCH_ALLOC_IN_TYPE_LEN 4 18366 /* enum: VLAN */ 18367 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_VLAN 0x1 18368 /* enum: VEB */ 18369 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_VEB 0x2 18370 /* enum: VEPA (obsolete) */ 18371 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_VEPA 0x3 18372 /* enum: MUX */ 18373 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_MUX 0x4 18374 /* enum: Snapper specific; semantics TBD */ 18375 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_TEST 0x5 18376 /* Flags controlling v-port creation */ 18377 #define MC_CMD_VSWITCH_ALLOC_IN_FLAGS_OFST 8 18378 #define MC_CMD_VSWITCH_ALLOC_IN_FLAGS_LEN 4 18379 #define MC_CMD_VSWITCH_ALLOC_IN_FLAG_AUTO_PORT_OFST 8 18380 #define MC_CMD_VSWITCH_ALLOC_IN_FLAG_AUTO_PORT_LBN 0 18381 #define MC_CMD_VSWITCH_ALLOC_IN_FLAG_AUTO_PORT_WIDTH 1 18382 /* The number of VLAN tags to allow for attached v-ports. For VLAN aggregators, 18383 * this must be one or greated, and the attached v-ports must have exactly this 18384 * number of tags. For other v-switch types, this must be zero of greater, and 18385 * is an upper limit on the number of VLAN tags for attached v-ports. An error 18386 * will be returned if existing configuration means we can't support attached 18387 * v-ports with this number of tags. 18388 */ 18389 #define MC_CMD_VSWITCH_ALLOC_IN_NUM_VLAN_TAGS_OFST 12 18390 #define MC_CMD_VSWITCH_ALLOC_IN_NUM_VLAN_TAGS_LEN 4 18391 18392 /* MC_CMD_VSWITCH_ALLOC_OUT msgresponse */ 18393 #define MC_CMD_VSWITCH_ALLOC_OUT_LEN 0 18394 18395 18396 /***********************************/ 18397 /* MC_CMD_VSWITCH_FREE 18398 * de-allocate a v-switch. 18399 */ 18400 #define MC_CMD_VSWITCH_FREE 0x95 18401 #define MC_CMD_VSWITCH_FREE_MSGSET 0x95 18402 #undef MC_CMD_0x95_PRIVILEGE_CTG 18403 18404 #define MC_CMD_0x95_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18405 18406 /* MC_CMD_VSWITCH_FREE_IN msgrequest */ 18407 #define MC_CMD_VSWITCH_FREE_IN_LEN 4 18408 /* The port to which the v-switch is connected. */ 18409 #define MC_CMD_VSWITCH_FREE_IN_UPSTREAM_PORT_ID_OFST 0 18410 #define MC_CMD_VSWITCH_FREE_IN_UPSTREAM_PORT_ID_LEN 4 18411 18412 /* MC_CMD_VSWITCH_FREE_OUT msgresponse */ 18413 #define MC_CMD_VSWITCH_FREE_OUT_LEN 0 18414 18415 18416 /***********************************/ 18417 /* MC_CMD_VSWITCH_QUERY 18418 * read some config of v-switch. For now this command is an empty placeholder. 18419 * It may be used to check if a v-switch is connected to a given EVB port (if 18420 * not, then the command returns ENOENT). 18421 */ 18422 #define MC_CMD_VSWITCH_QUERY 0x63 18423 #define MC_CMD_VSWITCH_QUERY_MSGSET 0x63 18424 #undef MC_CMD_0x63_PRIVILEGE_CTG 18425 18426 #define MC_CMD_0x63_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18427 18428 /* MC_CMD_VSWITCH_QUERY_IN msgrequest */ 18429 #define MC_CMD_VSWITCH_QUERY_IN_LEN 4 18430 /* The port to which the v-switch is connected. */ 18431 #define MC_CMD_VSWITCH_QUERY_IN_UPSTREAM_PORT_ID_OFST 0 18432 #define MC_CMD_VSWITCH_QUERY_IN_UPSTREAM_PORT_ID_LEN 4 18433 18434 /* MC_CMD_VSWITCH_QUERY_OUT msgresponse */ 18435 #define MC_CMD_VSWITCH_QUERY_OUT_LEN 0 18436 18437 18438 /***********************************/ 18439 /* MC_CMD_VPORT_ALLOC 18440 * allocate a v-port. 18441 */ 18442 #define MC_CMD_VPORT_ALLOC 0x96 18443 #define MC_CMD_VPORT_ALLOC_MSGSET 0x96 18444 #undef MC_CMD_0x96_PRIVILEGE_CTG 18445 18446 #define MC_CMD_0x96_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18447 18448 /* MC_CMD_VPORT_ALLOC_IN msgrequest */ 18449 #define MC_CMD_VPORT_ALLOC_IN_LEN 20 18450 /* The port to which the v-switch is connected. */ 18451 #define MC_CMD_VPORT_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 18452 #define MC_CMD_VPORT_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 18453 /* The type of the new v-port. */ 18454 #define MC_CMD_VPORT_ALLOC_IN_TYPE_OFST 4 18455 #define MC_CMD_VPORT_ALLOC_IN_TYPE_LEN 4 18456 /* enum: VLAN (obsolete) */ 18457 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_VLAN 0x1 18458 /* enum: VEB (obsolete) */ 18459 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_VEB 0x2 18460 /* enum: VEPA (obsolete) */ 18461 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_VEPA 0x3 18462 /* enum: A normal v-port receives packets which match a specified MAC and/or 18463 * VLAN. 18464 */ 18465 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_NORMAL 0x4 18466 /* enum: An expansion v-port packets traffic which don't match any other 18467 * v-port. 18468 */ 18469 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_EXPANSION 0x5 18470 /* enum: An test v-port receives packets which match any filters installed by 18471 * its downstream components. 18472 */ 18473 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_TEST 0x6 18474 /* Flags controlling v-port creation */ 18475 #define MC_CMD_VPORT_ALLOC_IN_FLAGS_OFST 8 18476 #define MC_CMD_VPORT_ALLOC_IN_FLAGS_LEN 4 18477 #define MC_CMD_VPORT_ALLOC_IN_FLAG_AUTO_PORT_OFST 8 18478 #define MC_CMD_VPORT_ALLOC_IN_FLAG_AUTO_PORT_LBN 0 18479 #define MC_CMD_VPORT_ALLOC_IN_FLAG_AUTO_PORT_WIDTH 1 18480 #define MC_CMD_VPORT_ALLOC_IN_FLAG_VLAN_RESTRICT_OFST 8 18481 #define MC_CMD_VPORT_ALLOC_IN_FLAG_VLAN_RESTRICT_LBN 1 18482 #define MC_CMD_VPORT_ALLOC_IN_FLAG_VLAN_RESTRICT_WIDTH 1 18483 /* The number of VLAN tags to insert/remove. An error will be returned if 18484 * incompatible with the number of VLAN tags specified for the upstream 18485 * v-switch. 18486 */ 18487 #define MC_CMD_VPORT_ALLOC_IN_NUM_VLAN_TAGS_OFST 12 18488 #define MC_CMD_VPORT_ALLOC_IN_NUM_VLAN_TAGS_LEN 4 18489 /* The actual VLAN tags to insert/remove */ 18490 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAGS_OFST 16 18491 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAGS_LEN 4 18492 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_0_OFST 16 18493 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_0_LBN 0 18494 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_0_WIDTH 16 18495 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_1_OFST 16 18496 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_1_LBN 16 18497 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_1_WIDTH 16 18498 18499 /* MC_CMD_VPORT_ALLOC_OUT msgresponse */ 18500 #define MC_CMD_VPORT_ALLOC_OUT_LEN 4 18501 /* The handle of the new v-port */ 18502 #define MC_CMD_VPORT_ALLOC_OUT_VPORT_ID_OFST 0 18503 #define MC_CMD_VPORT_ALLOC_OUT_VPORT_ID_LEN 4 18504 18505 18506 /***********************************/ 18507 /* MC_CMD_VPORT_FREE 18508 * de-allocate a v-port. 18509 */ 18510 #define MC_CMD_VPORT_FREE 0x97 18511 #define MC_CMD_VPORT_FREE_MSGSET 0x97 18512 #undef MC_CMD_0x97_PRIVILEGE_CTG 18513 18514 #define MC_CMD_0x97_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18515 18516 /* MC_CMD_VPORT_FREE_IN msgrequest */ 18517 #define MC_CMD_VPORT_FREE_IN_LEN 4 18518 /* The handle of the v-port */ 18519 #define MC_CMD_VPORT_FREE_IN_VPORT_ID_OFST 0 18520 #define MC_CMD_VPORT_FREE_IN_VPORT_ID_LEN 4 18521 18522 /* MC_CMD_VPORT_FREE_OUT msgresponse */ 18523 #define MC_CMD_VPORT_FREE_OUT_LEN 0 18524 18525 18526 /***********************************/ 18527 /* MC_CMD_VADAPTOR_ALLOC 18528 * allocate a v-adaptor. 18529 */ 18530 #define MC_CMD_VADAPTOR_ALLOC 0x98 18531 #define MC_CMD_VADAPTOR_ALLOC_MSGSET 0x98 18532 #undef MC_CMD_0x98_PRIVILEGE_CTG 18533 18534 #define MC_CMD_0x98_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18535 18536 /* MC_CMD_VADAPTOR_ALLOC_IN msgrequest */ 18537 #define MC_CMD_VADAPTOR_ALLOC_IN_LEN 30 18538 /* The port to connect to the v-adaptor's port. */ 18539 #define MC_CMD_VADAPTOR_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 18540 #define MC_CMD_VADAPTOR_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 18541 /* Flags controlling v-adaptor creation */ 18542 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAGS_OFST 8 18543 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAGS_LEN 4 18544 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_AUTO_VADAPTOR_OFST 8 18545 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_AUTO_VADAPTOR_LBN 0 18546 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_AUTO_VADAPTOR_WIDTH 1 18547 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 8 18548 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 1 18549 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 18550 /* The number of VLAN tags to strip on receive */ 18551 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLANS_OFST 12 18552 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLANS_LEN 4 18553 /* The number of VLAN tags to transparently insert/remove. */ 18554 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLAN_TAGS_OFST 16 18555 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLAN_TAGS_LEN 4 18556 /* The actual VLAN tags to insert/remove */ 18557 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAGS_OFST 20 18558 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAGS_LEN 4 18559 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_0_OFST 20 18560 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_0_LBN 0 18561 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_0_WIDTH 16 18562 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_1_OFST 20 18563 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_1_LBN 16 18564 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_1_WIDTH 16 18565 /* The MAC address to assign to this v-adaptor */ 18566 #define MC_CMD_VADAPTOR_ALLOC_IN_MACADDR_OFST 24 18567 #define MC_CMD_VADAPTOR_ALLOC_IN_MACADDR_LEN 6 18568 /* enum: Derive the MAC address from the upstream port */ 18569 #define MC_CMD_VADAPTOR_ALLOC_IN_AUTO_MAC 0x0 18570 18571 /* MC_CMD_VADAPTOR_ALLOC_OUT msgresponse */ 18572 #define MC_CMD_VADAPTOR_ALLOC_OUT_LEN 0 18573 18574 18575 /***********************************/ 18576 /* MC_CMD_VADAPTOR_FREE 18577 * de-allocate a v-adaptor. 18578 */ 18579 #define MC_CMD_VADAPTOR_FREE 0x99 18580 #define MC_CMD_VADAPTOR_FREE_MSGSET 0x99 18581 #undef MC_CMD_0x99_PRIVILEGE_CTG 18582 18583 #define MC_CMD_0x99_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18584 18585 /* MC_CMD_VADAPTOR_FREE_IN msgrequest */ 18586 #define MC_CMD_VADAPTOR_FREE_IN_LEN 4 18587 /* The port to which the v-adaptor is connected. */ 18588 #define MC_CMD_VADAPTOR_FREE_IN_UPSTREAM_PORT_ID_OFST 0 18589 #define MC_CMD_VADAPTOR_FREE_IN_UPSTREAM_PORT_ID_LEN 4 18590 18591 /* MC_CMD_VADAPTOR_FREE_OUT msgresponse */ 18592 #define MC_CMD_VADAPTOR_FREE_OUT_LEN 0 18593 18594 18595 /***********************************/ 18596 /* MC_CMD_VADAPTOR_SET_MAC 18597 * assign a new MAC address to a v-adaptor. 18598 */ 18599 #define MC_CMD_VADAPTOR_SET_MAC 0x5d 18600 #define MC_CMD_VADAPTOR_SET_MAC_MSGSET 0x5d 18601 #undef MC_CMD_0x5d_PRIVILEGE_CTG 18602 18603 #define MC_CMD_0x5d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18604 18605 /* MC_CMD_VADAPTOR_SET_MAC_IN msgrequest */ 18606 #define MC_CMD_VADAPTOR_SET_MAC_IN_LEN 10 18607 /* The port to which the v-adaptor is connected. */ 18608 #define MC_CMD_VADAPTOR_SET_MAC_IN_UPSTREAM_PORT_ID_OFST 0 18609 #define MC_CMD_VADAPTOR_SET_MAC_IN_UPSTREAM_PORT_ID_LEN 4 18610 /* The new MAC address to assign to this v-adaptor */ 18611 #define MC_CMD_VADAPTOR_SET_MAC_IN_MACADDR_OFST 4 18612 #define MC_CMD_VADAPTOR_SET_MAC_IN_MACADDR_LEN 6 18613 18614 /* MC_CMD_VADAPTOR_SET_MAC_OUT msgresponse */ 18615 #define MC_CMD_VADAPTOR_SET_MAC_OUT_LEN 0 18616 18617 18618 /***********************************/ 18619 /* MC_CMD_VADAPTOR_GET_MAC 18620 * read the MAC address assigned to a v-adaptor. 18621 */ 18622 #define MC_CMD_VADAPTOR_GET_MAC 0x5e 18623 #define MC_CMD_VADAPTOR_GET_MAC_MSGSET 0x5e 18624 #undef MC_CMD_0x5e_PRIVILEGE_CTG 18625 18626 #define MC_CMD_0x5e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18627 18628 /* MC_CMD_VADAPTOR_GET_MAC_IN msgrequest */ 18629 #define MC_CMD_VADAPTOR_GET_MAC_IN_LEN 4 18630 /* The port to which the v-adaptor is connected. */ 18631 #define MC_CMD_VADAPTOR_GET_MAC_IN_UPSTREAM_PORT_ID_OFST 0 18632 #define MC_CMD_VADAPTOR_GET_MAC_IN_UPSTREAM_PORT_ID_LEN 4 18633 18634 /* MC_CMD_VADAPTOR_GET_MAC_OUT msgresponse */ 18635 #define MC_CMD_VADAPTOR_GET_MAC_OUT_LEN 6 18636 /* The MAC address assigned to this v-adaptor */ 18637 #define MC_CMD_VADAPTOR_GET_MAC_OUT_MACADDR_OFST 0 18638 #define MC_CMD_VADAPTOR_GET_MAC_OUT_MACADDR_LEN 6 18639 18640 18641 /***********************************/ 18642 /* MC_CMD_VADAPTOR_QUERY 18643 * read some config of v-adaptor. 18644 */ 18645 #define MC_CMD_VADAPTOR_QUERY 0x61 18646 #define MC_CMD_VADAPTOR_QUERY_MSGSET 0x61 18647 #undef MC_CMD_0x61_PRIVILEGE_CTG 18648 18649 #define MC_CMD_0x61_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18650 18651 /* MC_CMD_VADAPTOR_QUERY_IN msgrequest */ 18652 #define MC_CMD_VADAPTOR_QUERY_IN_LEN 4 18653 /* The port to which the v-adaptor is connected. */ 18654 #define MC_CMD_VADAPTOR_QUERY_IN_UPSTREAM_PORT_ID_OFST 0 18655 #define MC_CMD_VADAPTOR_QUERY_IN_UPSTREAM_PORT_ID_LEN 4 18656 18657 /* MC_CMD_VADAPTOR_QUERY_OUT msgresponse */ 18658 #define MC_CMD_VADAPTOR_QUERY_OUT_LEN 12 18659 /* The EVB port flags as defined at MC_CMD_VPORT_ALLOC. */ 18660 #define MC_CMD_VADAPTOR_QUERY_OUT_PORT_FLAGS_OFST 0 18661 #define MC_CMD_VADAPTOR_QUERY_OUT_PORT_FLAGS_LEN 4 18662 /* The v-adaptor flags as defined at MC_CMD_VADAPTOR_ALLOC. */ 18663 #define MC_CMD_VADAPTOR_QUERY_OUT_VADAPTOR_FLAGS_OFST 4 18664 #define MC_CMD_VADAPTOR_QUERY_OUT_VADAPTOR_FLAGS_LEN 4 18665 /* The number of VLAN tags that may still be added */ 18666 #define MC_CMD_VADAPTOR_QUERY_OUT_NUM_AVAILABLE_VLAN_TAGS_OFST 8 18667 #define MC_CMD_VADAPTOR_QUERY_OUT_NUM_AVAILABLE_VLAN_TAGS_LEN 4 18668 18669 18670 /***********************************/ 18671 /* MC_CMD_EVB_PORT_ASSIGN 18672 * assign a port to a PCI function. 18673 */ 18674 #define MC_CMD_EVB_PORT_ASSIGN 0x9a 18675 #define MC_CMD_EVB_PORT_ASSIGN_MSGSET 0x9a 18676 #undef MC_CMD_0x9a_PRIVILEGE_CTG 18677 18678 #define MC_CMD_0x9a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18679 18680 /* MC_CMD_EVB_PORT_ASSIGN_IN msgrequest */ 18681 #define MC_CMD_EVB_PORT_ASSIGN_IN_LEN 8 18682 /* The port to assign. */ 18683 #define MC_CMD_EVB_PORT_ASSIGN_IN_PORT_ID_OFST 0 18684 #define MC_CMD_EVB_PORT_ASSIGN_IN_PORT_ID_LEN 4 18685 /* The target function to modify. */ 18686 #define MC_CMD_EVB_PORT_ASSIGN_IN_FUNCTION_OFST 4 18687 #define MC_CMD_EVB_PORT_ASSIGN_IN_FUNCTION_LEN 4 18688 #define MC_CMD_EVB_PORT_ASSIGN_IN_PF_OFST 4 18689 #define MC_CMD_EVB_PORT_ASSIGN_IN_PF_LBN 0 18690 #define MC_CMD_EVB_PORT_ASSIGN_IN_PF_WIDTH 16 18691 #define MC_CMD_EVB_PORT_ASSIGN_IN_VF_OFST 4 18692 #define MC_CMD_EVB_PORT_ASSIGN_IN_VF_LBN 16 18693 #define MC_CMD_EVB_PORT_ASSIGN_IN_VF_WIDTH 16 18694 18695 /* MC_CMD_EVB_PORT_ASSIGN_OUT msgresponse */ 18696 #define MC_CMD_EVB_PORT_ASSIGN_OUT_LEN 0 18697 18698 18699 /***********************************/ 18700 /* MC_CMD_RDWR_A64_REGIONS 18701 * Assign the 64 bit region addresses. 18702 */ 18703 #define MC_CMD_RDWR_A64_REGIONS 0x9b 18704 #define MC_CMD_RDWR_A64_REGIONS_MSGSET 0x9b 18705 #undef MC_CMD_0x9b_PRIVILEGE_CTG 18706 18707 #define MC_CMD_0x9b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 18708 18709 /* MC_CMD_RDWR_A64_REGIONS_IN msgrequest */ 18710 #define MC_CMD_RDWR_A64_REGIONS_IN_LEN 17 18711 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION0_OFST 0 18712 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION0_LEN 4 18713 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION1_OFST 4 18714 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION1_LEN 4 18715 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION2_OFST 8 18716 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION2_LEN 4 18717 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION3_OFST 12 18718 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION3_LEN 4 18719 /* Write enable bits 0-3, set to write, clear to read. */ 18720 #define MC_CMD_RDWR_A64_REGIONS_IN_WRITE_MASK_LBN 128 18721 #define MC_CMD_RDWR_A64_REGIONS_IN_WRITE_MASK_WIDTH 4 18722 #define MC_CMD_RDWR_A64_REGIONS_IN_WRITE_MASK_BYTE_OFST 16 18723 #define MC_CMD_RDWR_A64_REGIONS_IN_WRITE_MASK_BYTE_LEN 1 18724 18725 /* MC_CMD_RDWR_A64_REGIONS_OUT msgresponse: This data always included 18726 * regardless of state of write bits in the request. 18727 */ 18728 #define MC_CMD_RDWR_A64_REGIONS_OUT_LEN 16 18729 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION0_OFST 0 18730 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION0_LEN 4 18731 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION1_OFST 4 18732 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION1_LEN 4 18733 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION2_OFST 8 18734 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION2_LEN 4 18735 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION3_OFST 12 18736 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION3_LEN 4 18737 18738 18739 /***********************************/ 18740 /* MC_CMD_ONLOAD_STACK_ALLOC 18741 * Allocate an Onload stack ID. 18742 */ 18743 #define MC_CMD_ONLOAD_STACK_ALLOC 0x9c 18744 #define MC_CMD_ONLOAD_STACK_ALLOC_MSGSET 0x9c 18745 #undef MC_CMD_0x9c_PRIVILEGE_CTG 18746 18747 #define MC_CMD_0x9c_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 18748 18749 /* MC_CMD_ONLOAD_STACK_ALLOC_IN msgrequest */ 18750 #define MC_CMD_ONLOAD_STACK_ALLOC_IN_LEN 4 18751 /* The handle of the owning upstream port */ 18752 #define MC_CMD_ONLOAD_STACK_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 18753 #define MC_CMD_ONLOAD_STACK_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 18754 18755 /* MC_CMD_ONLOAD_STACK_ALLOC_OUT msgresponse */ 18756 #define MC_CMD_ONLOAD_STACK_ALLOC_OUT_LEN 4 18757 /* The handle of the new Onload stack */ 18758 #define MC_CMD_ONLOAD_STACK_ALLOC_OUT_ONLOAD_STACK_ID_OFST 0 18759 #define MC_CMD_ONLOAD_STACK_ALLOC_OUT_ONLOAD_STACK_ID_LEN 4 18760 18761 18762 /***********************************/ 18763 /* MC_CMD_ONLOAD_STACK_FREE 18764 * Free an Onload stack ID. 18765 */ 18766 #define MC_CMD_ONLOAD_STACK_FREE 0x9d 18767 #define MC_CMD_ONLOAD_STACK_FREE_MSGSET 0x9d 18768 #undef MC_CMD_0x9d_PRIVILEGE_CTG 18769 18770 #define MC_CMD_0x9d_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 18771 18772 /* MC_CMD_ONLOAD_STACK_FREE_IN msgrequest */ 18773 #define MC_CMD_ONLOAD_STACK_FREE_IN_LEN 4 18774 /* The handle of the Onload stack */ 18775 #define MC_CMD_ONLOAD_STACK_FREE_IN_ONLOAD_STACK_ID_OFST 0 18776 #define MC_CMD_ONLOAD_STACK_FREE_IN_ONLOAD_STACK_ID_LEN 4 18777 18778 /* MC_CMD_ONLOAD_STACK_FREE_OUT msgresponse */ 18779 #define MC_CMD_ONLOAD_STACK_FREE_OUT_LEN 0 18780 18781 18782 /***********************************/ 18783 /* MC_CMD_RSS_CONTEXT_ALLOC 18784 * Allocate an RSS context. 18785 */ 18786 #define MC_CMD_RSS_CONTEXT_ALLOC 0x9e 18787 #define MC_CMD_RSS_CONTEXT_ALLOC_MSGSET 0x9e 18788 #undef MC_CMD_0x9e_PRIVILEGE_CTG 18789 18790 #define MC_CMD_0x9e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18791 18792 /* MC_CMD_RSS_CONTEXT_ALLOC_IN msgrequest */ 18793 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_LEN 12 18794 /* The handle of the owning upstream port */ 18795 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 18796 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 18797 /* The type of context to allocate */ 18798 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_OFST 4 18799 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_LEN 4 18800 /* enum: Allocate a context for exclusive use. The key and indirection table 18801 * must be explicitly configured. 18802 */ 18803 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_EXCLUSIVE 0x0 18804 /* enum: Allocate a context for shared use; this will spread across a range of 18805 * queues, but the key and indirection table are pre-configured and may not be 18806 * changed. For this mode, NUM_QUEUES must 2, 4, 8, 16, 32 or 64. 18807 */ 18808 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_SHARED 0x1 18809 /* enum: Allocate a context to spread evenly across an arbitrary number of 18810 * queues. No indirection table space is allocated for this context. (EF100 and 18811 * later) 18812 */ 18813 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_EVEN_SPREADING 0x2 18814 /* Number of queues spanned by this context. For exclusive contexts this must 18815 * be in the range 1 to RSS_MAX_INDIRECTION_QUEUES, where 18816 * RSS_MAX_INDIRECTION_QUEUES is queried from MC_CMD_GET_CAPABILITIES_V9 or if 18817 * V9 is not supported then RSS_MAX_INDIRECTION_QUEUES is 64. Valid entries in 18818 * the indirection table will be in the range 0 to NUM_QUEUES-1. For even- 18819 * spreading contexts this must be in the range 1 to 18820 * RSS_MAX_EVEN_SPREADING_QUEUES as queried from MC_CMD_GET_CAPABILITIES. Note 18821 * that specifying NUM_QUEUES = 1 will not perform any spreading but may still 18822 * be useful as a way of obtaining the Toeplitz hash. 18823 */ 18824 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_NUM_QUEUES_OFST 8 18825 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_NUM_QUEUES_LEN 4 18826 18827 /* MC_CMD_RSS_CONTEXT_ALLOC_V2_IN msgrequest */ 18828 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_LEN 16 18829 /* The handle of the owning upstream port */ 18830 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_UPSTREAM_PORT_ID_OFST 0 18831 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_UPSTREAM_PORT_ID_LEN 4 18832 /* The type of context to allocate */ 18833 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_OFST 4 18834 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_LEN 4 18835 /* enum: Allocate a context for exclusive use. The key and indirection table 18836 * must be explicitly configured. 18837 */ 18838 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_EXCLUSIVE 0x0 18839 /* enum: Allocate a context for shared use; this will spread across a range of 18840 * queues, but the key and indirection table are pre-configured and may not be 18841 * changed. For this mode, NUM_QUEUES must 2, 4, 8, 16, 32 or 64. 18842 */ 18843 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_SHARED 0x1 18844 /* enum: Allocate a context to spread evenly across an arbitrary number of 18845 * queues. No indirection table space is allocated for this context. (EF100 and 18846 * later) 18847 */ 18848 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_EVEN_SPREADING 0x2 18849 /* Number of queues spanned by this context. For exclusive contexts this must 18850 * be in the range 1 to RSS_MAX_INDIRECTION_QUEUES, where 18851 * RSS_MAX_INDIRECTION_QUEUES is queried from MC_CMD_GET_CAPABILITIES_V9 or if 18852 * V9 is not supported then RSS_MAX_INDIRECTION_QUEUES is 64. Valid entries in 18853 * the indirection table will be in the range 0 to NUM_QUEUES-1. For even- 18854 * spreading contexts this must be in the range 1 to 18855 * RSS_MAX_EVEN_SPREADING_QUEUES as queried from MC_CMD_GET_CAPABILITIES. Note 18856 * that specifying NUM_QUEUES = 1 will not perform any spreading but may still 18857 * be useful as a way of obtaining the Toeplitz hash. 18858 */ 18859 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_NUM_QUEUES_OFST 8 18860 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_NUM_QUEUES_LEN 4 18861 /* Size of indirection table to be allocated to this context from the pool. 18862 * Must be a power of 2. The minimum and maximum table size can be queried 18863 * using MC_CMD_GET_CAPABILITIES_V9. If there is not enough space remaining in 18864 * the common pool to allocate the requested table size, due to allocating 18865 * table space to other RSS contexts, then the command will fail with 18866 * MC_CMD_ERR_ENOSPC. 18867 */ 18868 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_INDIRECTION_TABLE_SIZE_OFST 12 18869 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_INDIRECTION_TABLE_SIZE_LEN 4 18870 18871 /* MC_CMD_RSS_CONTEXT_ALLOC_OUT msgresponse */ 18872 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_LEN 4 18873 /* The handle of the new RSS context. This should be considered opaque to the 18874 * host, although a value of 0xFFFFFFFF is guaranteed never to be a valid 18875 * handle. 18876 */ 18877 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_RSS_CONTEXT_ID_OFST 0 18878 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_RSS_CONTEXT_ID_LEN 4 18879 /* enum: guaranteed invalid RSS context handle value */ 18880 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_RSS_CONTEXT_ID_INVALID 0xffffffff 18881 18882 18883 /***********************************/ 18884 /* MC_CMD_RSS_CONTEXT_FREE 18885 * Free an RSS context. 18886 */ 18887 #define MC_CMD_RSS_CONTEXT_FREE 0x9f 18888 #define MC_CMD_RSS_CONTEXT_FREE_MSGSET 0x9f 18889 #undef MC_CMD_0x9f_PRIVILEGE_CTG 18890 18891 #define MC_CMD_0x9f_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18892 18893 /* MC_CMD_RSS_CONTEXT_FREE_IN msgrequest */ 18894 #define MC_CMD_RSS_CONTEXT_FREE_IN_LEN 4 18895 /* The handle of the RSS context */ 18896 #define MC_CMD_RSS_CONTEXT_FREE_IN_RSS_CONTEXT_ID_OFST 0 18897 #define MC_CMD_RSS_CONTEXT_FREE_IN_RSS_CONTEXT_ID_LEN 4 18898 18899 /* MC_CMD_RSS_CONTEXT_FREE_OUT msgresponse */ 18900 #define MC_CMD_RSS_CONTEXT_FREE_OUT_LEN 0 18901 18902 18903 /***********************************/ 18904 /* MC_CMD_RSS_CONTEXT_SET_KEY 18905 * Set the Toeplitz hash key for an RSS context. 18906 */ 18907 #define MC_CMD_RSS_CONTEXT_SET_KEY 0xa0 18908 #define MC_CMD_RSS_CONTEXT_SET_KEY_MSGSET 0xa0 18909 #undef MC_CMD_0xa0_PRIVILEGE_CTG 18910 18911 #define MC_CMD_0xa0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18912 18913 /* MC_CMD_RSS_CONTEXT_SET_KEY_IN msgrequest */ 18914 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_LEN 44 18915 /* The handle of the RSS context */ 18916 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_RSS_CONTEXT_ID_OFST 0 18917 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_RSS_CONTEXT_ID_LEN 4 18918 /* The 40-byte Toeplitz hash key (TBD endianness issues?) */ 18919 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_TOEPLITZ_KEY_OFST 4 18920 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_TOEPLITZ_KEY_LEN 40 18921 18922 /* MC_CMD_RSS_CONTEXT_SET_KEY_OUT msgresponse */ 18923 #define MC_CMD_RSS_CONTEXT_SET_KEY_OUT_LEN 0 18924 18925 18926 /***********************************/ 18927 /* MC_CMD_RSS_CONTEXT_GET_KEY 18928 * Get the Toeplitz hash key for an RSS context. 18929 */ 18930 #define MC_CMD_RSS_CONTEXT_GET_KEY 0xa1 18931 #define MC_CMD_RSS_CONTEXT_GET_KEY_MSGSET 0xa1 18932 #undef MC_CMD_0xa1_PRIVILEGE_CTG 18933 18934 #define MC_CMD_0xa1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18935 18936 /* MC_CMD_RSS_CONTEXT_GET_KEY_IN msgrequest */ 18937 #define MC_CMD_RSS_CONTEXT_GET_KEY_IN_LEN 4 18938 /* The handle of the RSS context */ 18939 #define MC_CMD_RSS_CONTEXT_GET_KEY_IN_RSS_CONTEXT_ID_OFST 0 18940 #define MC_CMD_RSS_CONTEXT_GET_KEY_IN_RSS_CONTEXT_ID_LEN 4 18941 18942 /* MC_CMD_RSS_CONTEXT_GET_KEY_OUT msgresponse */ 18943 #define MC_CMD_RSS_CONTEXT_GET_KEY_OUT_LEN 44 18944 /* The 40-byte Toeplitz hash key (TBD endianness issues?) */ 18945 #define MC_CMD_RSS_CONTEXT_GET_KEY_OUT_TOEPLITZ_KEY_OFST 4 18946 #define MC_CMD_RSS_CONTEXT_GET_KEY_OUT_TOEPLITZ_KEY_LEN 40 18947 18948 18949 /***********************************/ 18950 /* MC_CMD_RSS_CONTEXT_SET_TABLE 18951 * Set the indirection table for an RSS context. This command should only be 18952 * used with indirection tables containing 128 entries, which is the default 18953 * when the RSS context is allocated without specifying a table size. 18954 */ 18955 #define MC_CMD_RSS_CONTEXT_SET_TABLE 0xa2 18956 #define MC_CMD_RSS_CONTEXT_SET_TABLE_MSGSET 0xa2 18957 #undef MC_CMD_0xa2_PRIVILEGE_CTG 18958 18959 #define MC_CMD_0xa2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18960 18961 /* MC_CMD_RSS_CONTEXT_SET_TABLE_IN msgrequest */ 18962 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_LEN 132 18963 /* The handle of the RSS context */ 18964 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_RSS_CONTEXT_ID_OFST 0 18965 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_RSS_CONTEXT_ID_LEN 4 18966 /* The 128-byte indirection table (1 byte per entry) */ 18967 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_INDIRECTION_TABLE_OFST 4 18968 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_INDIRECTION_TABLE_LEN 128 18969 18970 /* MC_CMD_RSS_CONTEXT_SET_TABLE_OUT msgresponse */ 18971 #define MC_CMD_RSS_CONTEXT_SET_TABLE_OUT_LEN 0 18972 18973 18974 /***********************************/ 18975 /* MC_CMD_RSS_CONTEXT_GET_TABLE 18976 * Get the indirection table for an RSS context. This command should only be 18977 * used with indirection tables containing 128 entries, which is the default 18978 * when the RSS context is allocated without specifying a table size. 18979 */ 18980 #define MC_CMD_RSS_CONTEXT_GET_TABLE 0xa3 18981 #define MC_CMD_RSS_CONTEXT_GET_TABLE_MSGSET 0xa3 18982 #undef MC_CMD_0xa3_PRIVILEGE_CTG 18983 18984 #define MC_CMD_0xa3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18985 18986 /* MC_CMD_RSS_CONTEXT_GET_TABLE_IN msgrequest */ 18987 #define MC_CMD_RSS_CONTEXT_GET_TABLE_IN_LEN 4 18988 /* The handle of the RSS context */ 18989 #define MC_CMD_RSS_CONTEXT_GET_TABLE_IN_RSS_CONTEXT_ID_OFST 0 18990 #define MC_CMD_RSS_CONTEXT_GET_TABLE_IN_RSS_CONTEXT_ID_LEN 4 18991 18992 /* MC_CMD_RSS_CONTEXT_GET_TABLE_OUT msgresponse */ 18993 #define MC_CMD_RSS_CONTEXT_GET_TABLE_OUT_LEN 132 18994 /* The 128-byte indirection table (1 byte per entry) */ 18995 #define MC_CMD_RSS_CONTEXT_GET_TABLE_OUT_INDIRECTION_TABLE_OFST 4 18996 #define MC_CMD_RSS_CONTEXT_GET_TABLE_OUT_INDIRECTION_TABLE_LEN 128 18997 18998 18999 /***********************************/ 19000 /* MC_CMD_RSS_CONTEXT_WRITE_TABLE 19001 * Write a portion of a selectable-size indirection table for an RSS context. 19002 * This command must be used instead of MC_CMD_RSS_CONTEXT_SET_TABLE if the 19003 * RSS_SELECTABLE_TABLE_SIZE bit is set in MC_CMD_GET_CAPABILITIES. 19004 */ 19005 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE 0x13e 19006 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_MSGSET 0x13e 19007 #undef MC_CMD_0x13e_PRIVILEGE_CTG 19008 19009 #define MC_CMD_0x13e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19010 19011 /* MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN msgrequest */ 19012 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_LENMIN 8 19013 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_LENMAX 252 19014 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_LENMAX_MCDI2 1020 19015 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_LEN(num) (4+4*(num)) 19016 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_NUM(len) (((len)-4)/4) 19017 /* The handle of the RSS context */ 19018 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_RSS_CONTEXT_ID_OFST 0 19019 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_RSS_CONTEXT_ID_LEN 4 19020 /* An array of index-value pairs to be written to the table. Structure is 19021 * MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY. 19022 */ 19023 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_OFST 4 19024 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_LEN 4 19025 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_MINNUM 1 19026 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_MAXNUM 62 19027 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_MAXNUM_MCDI2 254 19028 19029 /* MC_CMD_RSS_CONTEXT_WRITE_TABLE_OUT msgresponse */ 19030 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_OUT_LEN 0 19031 19032 /* MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY structuredef */ 19033 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_LEN 4 19034 /* The index of the table entry to be written. */ 19035 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_INDEX_OFST 0 19036 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_INDEX_LEN 2 19037 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_INDEX_LBN 0 19038 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_INDEX_WIDTH 16 19039 /* The value to write into the table entry. */ 19040 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_VALUE_OFST 2 19041 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_VALUE_LEN 2 19042 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_VALUE_LBN 16 19043 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_VALUE_WIDTH 16 19044 19045 19046 /***********************************/ 19047 /* MC_CMD_RSS_CONTEXT_READ_TABLE 19048 * Read a portion of a selectable-size indirection table for an RSS context. 19049 * This command must be used instead of MC_CMD_RSS_CONTEXT_GET_TABLE if the 19050 * RSS_SELECTABLE_TABLE_SIZE bit is set in MC_CMD_GET_CAPABILITIES. 19051 */ 19052 #define MC_CMD_RSS_CONTEXT_READ_TABLE 0x13f 19053 #define MC_CMD_RSS_CONTEXT_READ_TABLE_MSGSET 0x13f 19054 #undef MC_CMD_0x13f_PRIVILEGE_CTG 19055 19056 #define MC_CMD_0x13f_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19057 19058 /* MC_CMD_RSS_CONTEXT_READ_TABLE_IN msgrequest */ 19059 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_LENMIN 6 19060 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_LENMAX 252 19061 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_LENMAX_MCDI2 1020 19062 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_LEN(num) (4+2*(num)) 19063 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_NUM(len) (((len)-4)/2) 19064 /* The handle of the RSS context */ 19065 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_RSS_CONTEXT_ID_OFST 0 19066 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_RSS_CONTEXT_ID_LEN 4 19067 /* An array containing the indices of the entries to be read. */ 19068 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_OFST 4 19069 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_LEN 2 19070 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_MINNUM 1 19071 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_MAXNUM 124 19072 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_MAXNUM_MCDI2 508 19073 19074 /* MC_CMD_RSS_CONTEXT_READ_TABLE_OUT msgresponse */ 19075 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_LENMIN 2 19076 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_LENMAX 252 19077 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_LENMAX_MCDI2 1020 19078 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_LEN(num) (0+2*(num)) 19079 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_NUM(len) (((len)-0)/2) 19080 /* A buffer containing the requested entries read from the table. */ 19081 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_OFST 0 19082 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_LEN 2 19083 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_MINNUM 1 19084 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_MAXNUM 126 19085 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_MAXNUM_MCDI2 510 19086 19087 19088 /***********************************/ 19089 /* MC_CMD_RSS_CONTEXT_SET_FLAGS 19090 * Set various control flags for an RSS context. 19091 */ 19092 #define MC_CMD_RSS_CONTEXT_SET_FLAGS 0xe1 19093 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_MSGSET 0xe1 19094 #undef MC_CMD_0xe1_PRIVILEGE_CTG 19095 19096 #define MC_CMD_0xe1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19097 19098 /* MC_CMD_RSS_CONTEXT_SET_FLAGS_IN msgrequest */ 19099 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_LEN 8 19100 /* The handle of the RSS context */ 19101 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RSS_CONTEXT_ID_OFST 0 19102 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RSS_CONTEXT_ID_LEN 4 19103 /* Hash control flags. The _EN bits are always supported, but new modes are 19104 * available when ADDITIONAL_RSS_MODES is reported by MC_CMD_GET_CAPABILITIES: 19105 * in this case, the MODE fields may be set to non-zero values, and will take 19106 * effect regardless of the settings of the _EN flags. See the RSS_MODE 19107 * structure for the meaning of the mode bits. Drivers must check the 19108 * capability before trying to set any _MODE fields, as older firmware will 19109 * reject any attempt to set the FLAGS field to a value > 0xff with EINVAL. In 19110 * the case where all the _MODE flags are zero, the _EN flags take effect, 19111 * providing backward compatibility for existing drivers. (Setting all _MODE 19112 * *and* all _EN flags to zero is valid, to disable RSS spreading for that 19113 * particular packet type.) 19114 */ 19115 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_FLAGS_OFST 4 19116 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_FLAGS_LEN 4 19117 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN_OFST 4 19118 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN_LBN 0 19119 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN_WIDTH 1 19120 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN_OFST 4 19121 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN_LBN 1 19122 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN_WIDTH 1 19123 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV6_EN_OFST 4 19124 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV6_EN_LBN 2 19125 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV6_EN_WIDTH 1 19126 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV6_EN_OFST 4 19127 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV6_EN_LBN 3 19128 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV6_EN_WIDTH 1 19129 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RESERVED_OFST 4 19130 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RESERVED_LBN 4 19131 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RESERVED_WIDTH 4 19132 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV4_RSS_MODE_OFST 4 19133 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV4_RSS_MODE_LBN 8 19134 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV4_RSS_MODE_WIDTH 4 19135 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV4_RSS_MODE_OFST 4 19136 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV4_RSS_MODE_LBN 12 19137 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV4_RSS_MODE_WIDTH 4 19138 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV4_RSS_MODE_OFST 4 19139 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV4_RSS_MODE_LBN 16 19140 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV4_RSS_MODE_WIDTH 4 19141 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV6_RSS_MODE_OFST 4 19142 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV6_RSS_MODE_LBN 20 19143 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV6_RSS_MODE_WIDTH 4 19144 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV6_RSS_MODE_OFST 4 19145 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV6_RSS_MODE_LBN 24 19146 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV6_RSS_MODE_WIDTH 4 19147 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV6_RSS_MODE_OFST 4 19148 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV6_RSS_MODE_LBN 28 19149 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV6_RSS_MODE_WIDTH 4 19150 19151 /* MC_CMD_RSS_CONTEXT_SET_FLAGS_OUT msgresponse */ 19152 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_OUT_LEN 0 19153 19154 19155 /***********************************/ 19156 /* MC_CMD_RSS_CONTEXT_GET_FLAGS 19157 * Get various control flags for an RSS context. 19158 */ 19159 #define MC_CMD_RSS_CONTEXT_GET_FLAGS 0xe2 19160 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_MSGSET 0xe2 19161 #undef MC_CMD_0xe2_PRIVILEGE_CTG 19162 19163 #define MC_CMD_0xe2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19164 19165 /* MC_CMD_RSS_CONTEXT_GET_FLAGS_IN msgrequest */ 19166 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_IN_LEN 4 19167 /* The handle of the RSS context */ 19168 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_IN_RSS_CONTEXT_ID_OFST 0 19169 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_IN_RSS_CONTEXT_ID_LEN 4 19170 19171 /* MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT msgresponse */ 19172 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_LEN 8 19173 /* Hash control flags. If all _MODE bits are zero (which will always be true 19174 * for older firmware which does not report the ADDITIONAL_RSS_MODES 19175 * capability), the _EN bits report the state. If any _MODE bits are non-zero 19176 * (which will only be true when the firmware reports ADDITIONAL_RSS_MODES) 19177 * then the _EN bits should be disregarded, although the _MODE flags are 19178 * guaranteed to be consistent with the _EN flags for a freshly-allocated RSS 19179 * context and in the case where the _EN flags were used in the SET. This 19180 * provides backward compatibility: old drivers will not be attempting to 19181 * derive any meaning from the _MODE bits (and can never set them to any value 19182 * not representable by the _EN bits); new drivers can always determine the 19183 * mode by looking only at the _MODE bits; the value returned by a GET can 19184 * always be used for a SET regardless of old/new driver vs. old/new firmware. 19185 */ 19186 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_FLAGS_OFST 4 19187 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_FLAGS_LEN 4 19188 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV4_EN_OFST 4 19189 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV4_EN_LBN 0 19190 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV4_EN_WIDTH 1 19191 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV4_EN_OFST 4 19192 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV4_EN_LBN 1 19193 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV4_EN_WIDTH 1 19194 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV6_EN_OFST 4 19195 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV6_EN_LBN 2 19196 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV6_EN_WIDTH 1 19197 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV6_EN_OFST 4 19198 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV6_EN_LBN 3 19199 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV6_EN_WIDTH 1 19200 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_RESERVED_OFST 4 19201 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_RESERVED_LBN 4 19202 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_RESERVED_WIDTH 4 19203 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV4_RSS_MODE_OFST 4 19204 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV4_RSS_MODE_LBN 8 19205 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV4_RSS_MODE_WIDTH 4 19206 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV4_RSS_MODE_OFST 4 19207 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV4_RSS_MODE_LBN 12 19208 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV4_RSS_MODE_WIDTH 4 19209 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV4_RSS_MODE_OFST 4 19210 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV4_RSS_MODE_LBN 16 19211 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV4_RSS_MODE_WIDTH 4 19212 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV6_RSS_MODE_OFST 4 19213 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV6_RSS_MODE_LBN 20 19214 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV6_RSS_MODE_WIDTH 4 19215 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV6_RSS_MODE_OFST 4 19216 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV6_RSS_MODE_LBN 24 19217 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV6_RSS_MODE_WIDTH 4 19218 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV6_RSS_MODE_OFST 4 19219 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV6_RSS_MODE_LBN 28 19220 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV6_RSS_MODE_WIDTH 4 19221 19222 19223 /***********************************/ 19224 /* MC_CMD_DOT1P_MAPPING_ALLOC 19225 * Allocate a .1p mapping. 19226 */ 19227 #define MC_CMD_DOT1P_MAPPING_ALLOC 0xa4 19228 #define MC_CMD_DOT1P_MAPPING_ALLOC_MSGSET 0xa4 19229 #undef MC_CMD_0xa4_PRIVILEGE_CTG 19230 19231 #define MC_CMD_0xa4_PRIVILEGE_CTG SRIOV_CTG_ADMIN 19232 19233 /* MC_CMD_DOT1P_MAPPING_ALLOC_IN msgrequest */ 19234 #define MC_CMD_DOT1P_MAPPING_ALLOC_IN_LEN 8 19235 /* The handle of the owning upstream port */ 19236 #define MC_CMD_DOT1P_MAPPING_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 19237 #define MC_CMD_DOT1P_MAPPING_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 19238 /* Number of queues spanned by this mapping, in the range 1-64; valid fixed 19239 * offsets in the mapping table will be in the range 0 to NUM_QUEUES-1, and 19240 * referenced RSS contexts must span no more than this number. 19241 */ 19242 #define MC_CMD_DOT1P_MAPPING_ALLOC_IN_NUM_QUEUES_OFST 4 19243 #define MC_CMD_DOT1P_MAPPING_ALLOC_IN_NUM_QUEUES_LEN 4 19244 19245 /* MC_CMD_DOT1P_MAPPING_ALLOC_OUT msgresponse */ 19246 #define MC_CMD_DOT1P_MAPPING_ALLOC_OUT_LEN 4 19247 /* The handle of the new .1p mapping. This should be considered opaque to the 19248 * host, although a value of 0xFFFFFFFF is guaranteed never to be a valid 19249 * handle. 19250 */ 19251 #define MC_CMD_DOT1P_MAPPING_ALLOC_OUT_DOT1P_MAPPING_ID_OFST 0 19252 #define MC_CMD_DOT1P_MAPPING_ALLOC_OUT_DOT1P_MAPPING_ID_LEN 4 19253 /* enum: guaranteed invalid .1p mapping handle value */ 19254 #define MC_CMD_DOT1P_MAPPING_ALLOC_OUT_DOT1P_MAPPING_ID_INVALID 0xffffffff 19255 19256 19257 /***********************************/ 19258 /* MC_CMD_DOT1P_MAPPING_FREE 19259 * Free a .1p mapping. 19260 */ 19261 #define MC_CMD_DOT1P_MAPPING_FREE 0xa5 19262 #define MC_CMD_DOT1P_MAPPING_FREE_MSGSET 0xa5 19263 #undef MC_CMD_0xa5_PRIVILEGE_CTG 19264 19265 #define MC_CMD_0xa5_PRIVILEGE_CTG SRIOV_CTG_ADMIN 19266 19267 /* MC_CMD_DOT1P_MAPPING_FREE_IN msgrequest */ 19268 #define MC_CMD_DOT1P_MAPPING_FREE_IN_LEN 4 19269 /* The handle of the .1p mapping */ 19270 #define MC_CMD_DOT1P_MAPPING_FREE_IN_DOT1P_MAPPING_ID_OFST 0 19271 #define MC_CMD_DOT1P_MAPPING_FREE_IN_DOT1P_MAPPING_ID_LEN 4 19272 19273 /* MC_CMD_DOT1P_MAPPING_FREE_OUT msgresponse */ 19274 #define MC_CMD_DOT1P_MAPPING_FREE_OUT_LEN 0 19275 19276 19277 /***********************************/ 19278 /* MC_CMD_DOT1P_MAPPING_SET_TABLE 19279 * Set the mapping table for a .1p mapping. 19280 */ 19281 #define MC_CMD_DOT1P_MAPPING_SET_TABLE 0xa6 19282 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_MSGSET 0xa6 19283 #undef MC_CMD_0xa6_PRIVILEGE_CTG 19284 19285 #define MC_CMD_0xa6_PRIVILEGE_CTG SRIOV_CTG_ADMIN 19286 19287 /* MC_CMD_DOT1P_MAPPING_SET_TABLE_IN msgrequest */ 19288 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_IN_LEN 36 19289 /* The handle of the .1p mapping */ 19290 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_IN_DOT1P_MAPPING_ID_OFST 0 19291 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_IN_DOT1P_MAPPING_ID_LEN 4 19292 /* Per-priority mappings (1 32-bit word per entry - an offset or RSS context 19293 * handle) 19294 */ 19295 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_IN_MAPPING_TABLE_OFST 4 19296 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_IN_MAPPING_TABLE_LEN 32 19297 19298 /* MC_CMD_DOT1P_MAPPING_SET_TABLE_OUT msgresponse */ 19299 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_OUT_LEN 0 19300 19301 19302 /***********************************/ 19303 /* MC_CMD_DOT1P_MAPPING_GET_TABLE 19304 * Get the mapping table for a .1p mapping. 19305 */ 19306 #define MC_CMD_DOT1P_MAPPING_GET_TABLE 0xa7 19307 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_MSGSET 0xa7 19308 #undef MC_CMD_0xa7_PRIVILEGE_CTG 19309 19310 #define MC_CMD_0xa7_PRIVILEGE_CTG SRIOV_CTG_ADMIN 19311 19312 /* MC_CMD_DOT1P_MAPPING_GET_TABLE_IN msgrequest */ 19313 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_IN_LEN 4 19314 /* The handle of the .1p mapping */ 19315 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_IN_DOT1P_MAPPING_ID_OFST 0 19316 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_IN_DOT1P_MAPPING_ID_LEN 4 19317 19318 /* MC_CMD_DOT1P_MAPPING_GET_TABLE_OUT msgresponse */ 19319 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_OUT_LEN 36 19320 /* Per-priority mappings (1 32-bit word per entry - an offset or RSS context 19321 * handle) 19322 */ 19323 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_OUT_MAPPING_TABLE_OFST 4 19324 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_OUT_MAPPING_TABLE_LEN 32 19325 19326 19327 /***********************************/ 19328 /* MC_CMD_GET_VECTOR_CFG 19329 * Get Interrupt Vector config for this PF. 19330 */ 19331 #define MC_CMD_GET_VECTOR_CFG 0xbf 19332 #define MC_CMD_GET_VECTOR_CFG_MSGSET 0xbf 19333 #undef MC_CMD_0xbf_PRIVILEGE_CTG 19334 19335 #define MC_CMD_0xbf_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19336 19337 /* MC_CMD_GET_VECTOR_CFG_IN msgrequest */ 19338 #define MC_CMD_GET_VECTOR_CFG_IN_LEN 0 19339 19340 /* MC_CMD_GET_VECTOR_CFG_OUT msgresponse */ 19341 #define MC_CMD_GET_VECTOR_CFG_OUT_LEN 12 19342 /* Base absolute interrupt vector number. */ 19343 #define MC_CMD_GET_VECTOR_CFG_OUT_VEC_BASE_OFST 0 19344 #define MC_CMD_GET_VECTOR_CFG_OUT_VEC_BASE_LEN 4 19345 /* Number of interrupt vectors allocate to this PF. */ 19346 #define MC_CMD_GET_VECTOR_CFG_OUT_VECS_PER_PF_OFST 4 19347 #define MC_CMD_GET_VECTOR_CFG_OUT_VECS_PER_PF_LEN 4 19348 /* Number of interrupt vectors to allocate per VF. */ 19349 #define MC_CMD_GET_VECTOR_CFG_OUT_VECS_PER_VF_OFST 8 19350 #define MC_CMD_GET_VECTOR_CFG_OUT_VECS_PER_VF_LEN 4 19351 19352 19353 /***********************************/ 19354 /* MC_CMD_SET_VECTOR_CFG 19355 * Set Interrupt Vector config for this PF. 19356 */ 19357 #define MC_CMD_SET_VECTOR_CFG 0xc0 19358 #define MC_CMD_SET_VECTOR_CFG_MSGSET 0xc0 19359 #undef MC_CMD_0xc0_PRIVILEGE_CTG 19360 19361 #define MC_CMD_0xc0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19362 19363 /* MC_CMD_SET_VECTOR_CFG_IN msgrequest */ 19364 #define MC_CMD_SET_VECTOR_CFG_IN_LEN 12 19365 /* Base absolute interrupt vector number, or MC_CMD_RESOURCE_INSTANCE_ANY to 19366 * let the system find a suitable base. 19367 */ 19368 #define MC_CMD_SET_VECTOR_CFG_IN_VEC_BASE_OFST 0 19369 #define MC_CMD_SET_VECTOR_CFG_IN_VEC_BASE_LEN 4 19370 /* Number of interrupt vectors allocate to this PF. */ 19371 #define MC_CMD_SET_VECTOR_CFG_IN_VECS_PER_PF_OFST 4 19372 #define MC_CMD_SET_VECTOR_CFG_IN_VECS_PER_PF_LEN 4 19373 /* Number of interrupt vectors to allocate per VF. */ 19374 #define MC_CMD_SET_VECTOR_CFG_IN_VECS_PER_VF_OFST 8 19375 #define MC_CMD_SET_VECTOR_CFG_IN_VECS_PER_VF_LEN 4 19376 19377 /* MC_CMD_SET_VECTOR_CFG_OUT msgresponse */ 19378 #define MC_CMD_SET_VECTOR_CFG_OUT_LEN 0 19379 19380 19381 /***********************************/ 19382 /* MC_CMD_VPORT_ADD_MAC_ADDRESS 19383 * Add a MAC address to a v-port 19384 */ 19385 #define MC_CMD_VPORT_ADD_MAC_ADDRESS 0xa8 19386 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_MSGSET 0xa8 19387 #undef MC_CMD_0xa8_PRIVILEGE_CTG 19388 19389 #define MC_CMD_0xa8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19390 19391 /* MC_CMD_VPORT_ADD_MAC_ADDRESS_IN msgrequest */ 19392 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_LEN 10 19393 /* The handle of the v-port */ 19394 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_VPORT_ID_OFST 0 19395 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_VPORT_ID_LEN 4 19396 /* MAC address to add */ 19397 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_MACADDR_OFST 4 19398 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_MACADDR_LEN 6 19399 19400 /* MC_CMD_VPORT_ADD_MAC_ADDRESS_OUT msgresponse */ 19401 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_OUT_LEN 0 19402 19403 19404 /***********************************/ 19405 /* MC_CMD_VPORT_DEL_MAC_ADDRESS 19406 * Delete a MAC address from a v-port 19407 */ 19408 #define MC_CMD_VPORT_DEL_MAC_ADDRESS 0xa9 19409 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_MSGSET 0xa9 19410 #undef MC_CMD_0xa9_PRIVILEGE_CTG 19411 19412 #define MC_CMD_0xa9_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19413 19414 /* MC_CMD_VPORT_DEL_MAC_ADDRESS_IN msgrequest */ 19415 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_LEN 10 19416 /* The handle of the v-port */ 19417 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_VPORT_ID_OFST 0 19418 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_VPORT_ID_LEN 4 19419 /* MAC address to add */ 19420 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_MACADDR_OFST 4 19421 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_MACADDR_LEN 6 19422 19423 /* MC_CMD_VPORT_DEL_MAC_ADDRESS_OUT msgresponse */ 19424 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_OUT_LEN 0 19425 19426 19427 /***********************************/ 19428 /* MC_CMD_VPORT_GET_MAC_ADDRESSES 19429 * Delete a MAC address from a v-port 19430 */ 19431 #define MC_CMD_VPORT_GET_MAC_ADDRESSES 0xaa 19432 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_MSGSET 0xaa 19433 #undef MC_CMD_0xaa_PRIVILEGE_CTG 19434 19435 #define MC_CMD_0xaa_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19436 19437 /* MC_CMD_VPORT_GET_MAC_ADDRESSES_IN msgrequest */ 19438 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_IN_LEN 4 19439 /* The handle of the v-port */ 19440 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_IN_VPORT_ID_OFST 0 19441 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_IN_VPORT_ID_LEN 4 19442 19443 /* MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT msgresponse */ 19444 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LENMIN 4 19445 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LENMAX 250 19446 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LENMAX_MCDI2 1018 19447 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LEN(num) (4+6*(num)) 19448 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_NUM(len) (((len)-4)/6) 19449 /* The number of MAC addresses returned */ 19450 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_COUNT_OFST 0 19451 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_COUNT_LEN 4 19452 /* Array of MAC addresses */ 19453 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_OFST 4 19454 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_LEN 6 19455 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_MINNUM 0 19456 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_MAXNUM 41 19457 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_MAXNUM_MCDI2 169 19458 19459 19460 /***********************************/ 19461 /* MC_CMD_VPORT_RECONFIGURE 19462 * Replace VLAN tags and/or MAC addresses of an existing v-port. If the v-port 19463 * has already been passed to another function (v-port's user), then that 19464 * function will be reset before applying the changes. 19465 */ 19466 #define MC_CMD_VPORT_RECONFIGURE 0xeb 19467 #define MC_CMD_VPORT_RECONFIGURE_MSGSET 0xeb 19468 #undef MC_CMD_0xeb_PRIVILEGE_CTG 19469 19470 #define MC_CMD_0xeb_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19471 19472 /* MC_CMD_VPORT_RECONFIGURE_IN msgrequest */ 19473 #define MC_CMD_VPORT_RECONFIGURE_IN_LEN 44 19474 /* The handle of the v-port */ 19475 #define MC_CMD_VPORT_RECONFIGURE_IN_VPORT_ID_OFST 0 19476 #define MC_CMD_VPORT_RECONFIGURE_IN_VPORT_ID_LEN 4 19477 /* Flags requesting what should be changed. */ 19478 #define MC_CMD_VPORT_RECONFIGURE_IN_FLAGS_OFST 4 19479 #define MC_CMD_VPORT_RECONFIGURE_IN_FLAGS_LEN 4 19480 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_VLAN_TAGS_OFST 4 19481 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_VLAN_TAGS_LBN 0 19482 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_VLAN_TAGS_WIDTH 1 19483 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_MACADDRS_OFST 4 19484 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_MACADDRS_LBN 1 19485 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_MACADDRS_WIDTH 1 19486 /* The number of VLAN tags to insert/remove. An error will be returned if 19487 * incompatible with the number of VLAN tags specified for the upstream 19488 * v-switch. 19489 */ 19490 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_VLAN_TAGS_OFST 8 19491 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_VLAN_TAGS_LEN 4 19492 /* The actual VLAN tags to insert/remove */ 19493 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAGS_OFST 12 19494 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAGS_LEN 4 19495 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_0_OFST 12 19496 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_0_LBN 0 19497 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_0_WIDTH 16 19498 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_1_OFST 12 19499 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_1_LBN 16 19500 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_1_WIDTH 16 19501 /* The number of MAC addresses to add */ 19502 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_MACADDRS_OFST 16 19503 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_MACADDRS_LEN 4 19504 /* MAC addresses to add */ 19505 #define MC_CMD_VPORT_RECONFIGURE_IN_MACADDRS_OFST 20 19506 #define MC_CMD_VPORT_RECONFIGURE_IN_MACADDRS_LEN 6 19507 #define MC_CMD_VPORT_RECONFIGURE_IN_MACADDRS_NUM 4 19508 19509 /* MC_CMD_VPORT_RECONFIGURE_OUT msgresponse */ 19510 #define MC_CMD_VPORT_RECONFIGURE_OUT_LEN 4 19511 #define MC_CMD_VPORT_RECONFIGURE_OUT_FLAGS_OFST 0 19512 #define MC_CMD_VPORT_RECONFIGURE_OUT_FLAGS_LEN 4 19513 #define MC_CMD_VPORT_RECONFIGURE_OUT_RESET_DONE_OFST 0 19514 #define MC_CMD_VPORT_RECONFIGURE_OUT_RESET_DONE_LBN 0 19515 #define MC_CMD_VPORT_RECONFIGURE_OUT_RESET_DONE_WIDTH 1 19516 19517 19518 /***********************************/ 19519 /* MC_CMD_EVB_PORT_QUERY 19520 * read some config of v-port. 19521 */ 19522 #define MC_CMD_EVB_PORT_QUERY 0x62 19523 #define MC_CMD_EVB_PORT_QUERY_MSGSET 0x62 19524 #undef MC_CMD_0x62_PRIVILEGE_CTG 19525 19526 #define MC_CMD_0x62_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19527 19528 /* MC_CMD_EVB_PORT_QUERY_IN msgrequest */ 19529 #define MC_CMD_EVB_PORT_QUERY_IN_LEN 4 19530 /* The handle of the v-port */ 19531 #define MC_CMD_EVB_PORT_QUERY_IN_PORT_ID_OFST 0 19532 #define MC_CMD_EVB_PORT_QUERY_IN_PORT_ID_LEN 4 19533 19534 /* MC_CMD_EVB_PORT_QUERY_OUT msgresponse */ 19535 #define MC_CMD_EVB_PORT_QUERY_OUT_LEN 8 19536 /* The EVB port flags as defined at MC_CMD_VPORT_ALLOC. */ 19537 #define MC_CMD_EVB_PORT_QUERY_OUT_PORT_FLAGS_OFST 0 19538 #define MC_CMD_EVB_PORT_QUERY_OUT_PORT_FLAGS_LEN 4 19539 /* The number of VLAN tags that may be used on a v-adaptor connected to this 19540 * EVB port. 19541 */ 19542 #define MC_CMD_EVB_PORT_QUERY_OUT_NUM_AVAILABLE_VLAN_TAGS_OFST 4 19543 #define MC_CMD_EVB_PORT_QUERY_OUT_NUM_AVAILABLE_VLAN_TAGS_LEN 4 19544 19545 19546 /***********************************/ 19547 /* MC_CMD_DUMP_BUFTBL_ENTRIES 19548 * Dump buffer table entries, mainly for command client debug use. Dumps 19549 * absolute entries, and does not use chunk handles. All entries must be in 19550 * range, and used for q page mapping, Although the latter restriction may be 19551 * lifted in future. 19552 */ 19553 #define MC_CMD_DUMP_BUFTBL_ENTRIES 0xab 19554 #define MC_CMD_DUMP_BUFTBL_ENTRIES_MSGSET 0xab 19555 #undef MC_CMD_0xab_PRIVILEGE_CTG 19556 19557 #define MC_CMD_0xab_PRIVILEGE_CTG SRIOV_CTG_INSECURE 19558 19559 /* MC_CMD_DUMP_BUFTBL_ENTRIES_IN msgrequest */ 19560 #define MC_CMD_DUMP_BUFTBL_ENTRIES_IN_LEN 8 19561 /* Index of the first buffer table entry. */ 19562 #define MC_CMD_DUMP_BUFTBL_ENTRIES_IN_FIRSTID_OFST 0 19563 #define MC_CMD_DUMP_BUFTBL_ENTRIES_IN_FIRSTID_LEN 4 19564 /* Number of buffer table entries to dump. */ 19565 #define MC_CMD_DUMP_BUFTBL_ENTRIES_IN_NUMENTRIES_OFST 4 19566 #define MC_CMD_DUMP_BUFTBL_ENTRIES_IN_NUMENTRIES_LEN 4 19567 19568 /* MC_CMD_DUMP_BUFTBL_ENTRIES_OUT msgresponse */ 19569 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_LENMIN 12 19570 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_LENMAX 252 19571 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_LENMAX_MCDI2 1020 19572 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_LEN(num) (0+12*(num)) 19573 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_NUM(len) (((len)-0)/12) 19574 /* Raw buffer table entries, layed out as BUFTBL_ENTRY. */ 19575 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_OFST 0 19576 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_LEN 12 19577 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_MINNUM 1 19578 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_MAXNUM 21 19579 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_MAXNUM_MCDI2 85 19580 19581 19582 /***********************************/ 19583 /* MC_CMD_SET_RXDP_CONFIG 19584 * Set global RXDP configuration settings 19585 */ 19586 #define MC_CMD_SET_RXDP_CONFIG 0xc1 19587 #define MC_CMD_SET_RXDP_CONFIG_MSGSET 0xc1 19588 #undef MC_CMD_0xc1_PRIVILEGE_CTG 19589 19590 #define MC_CMD_0xc1_PRIVILEGE_CTG SRIOV_CTG_ADMIN 19591 19592 /* MC_CMD_SET_RXDP_CONFIG_IN msgrequest */ 19593 #define MC_CMD_SET_RXDP_CONFIG_IN_LEN 4 19594 #define MC_CMD_SET_RXDP_CONFIG_IN_DATA_OFST 0 19595 #define MC_CMD_SET_RXDP_CONFIG_IN_DATA_LEN 4 19596 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_DMA_OFST 0 19597 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_DMA_LBN 0 19598 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_DMA_WIDTH 1 19599 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_LEN_OFST 0 19600 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_LEN_LBN 1 19601 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_LEN_WIDTH 2 19602 /* enum: pad to 64 bytes */ 19603 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_64 0x0 19604 /* enum: pad to 128 bytes (Medford only) */ 19605 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_128 0x1 19606 /* enum: pad to 256 bytes (Medford only) */ 19607 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_256 0x2 19608 19609 /* MC_CMD_SET_RXDP_CONFIG_OUT msgresponse */ 19610 #define MC_CMD_SET_RXDP_CONFIG_OUT_LEN 0 19611 19612 19613 /***********************************/ 19614 /* MC_CMD_GET_RXDP_CONFIG 19615 * Get global RXDP configuration settings 19616 */ 19617 #define MC_CMD_GET_RXDP_CONFIG 0xc2 19618 #define MC_CMD_GET_RXDP_CONFIG_MSGSET 0xc2 19619 #undef MC_CMD_0xc2_PRIVILEGE_CTG 19620 19621 #define MC_CMD_0xc2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19622 19623 /* MC_CMD_GET_RXDP_CONFIG_IN msgrequest */ 19624 #define MC_CMD_GET_RXDP_CONFIG_IN_LEN 0 19625 19626 /* MC_CMD_GET_RXDP_CONFIG_OUT msgresponse */ 19627 #define MC_CMD_GET_RXDP_CONFIG_OUT_LEN 4 19628 #define MC_CMD_GET_RXDP_CONFIG_OUT_DATA_OFST 0 19629 #define MC_CMD_GET_RXDP_CONFIG_OUT_DATA_LEN 4 19630 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_DMA_OFST 0 19631 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_DMA_LBN 0 19632 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_DMA_WIDTH 1 19633 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_LEN_OFST 0 19634 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_LEN_LBN 1 19635 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_LEN_WIDTH 2 19636 /* Enum values, see field(s): */ 19637 /* MC_CMD_SET_RXDP_CONFIG/MC_CMD_SET_RXDP_CONFIG_IN/PAD_HOST_LEN */ 19638 19639 19640 /***********************************/ 19641 /* MC_CMD_GET_CLOCK 19642 * Return the system and PDCPU clock frequencies. 19643 */ 19644 #define MC_CMD_GET_CLOCK 0xac 19645 #define MC_CMD_GET_CLOCK_MSGSET 0xac 19646 #undef MC_CMD_0xac_PRIVILEGE_CTG 19647 19648 #define MC_CMD_0xac_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19649 19650 /* MC_CMD_GET_CLOCK_IN msgrequest */ 19651 #define MC_CMD_GET_CLOCK_IN_LEN 0 19652 19653 /* MC_CMD_GET_CLOCK_OUT msgresponse */ 19654 #define MC_CMD_GET_CLOCK_OUT_LEN 8 19655 /* System frequency, MHz */ 19656 #define MC_CMD_GET_CLOCK_OUT_SYS_FREQ_OFST 0 19657 #define MC_CMD_GET_CLOCK_OUT_SYS_FREQ_LEN 4 19658 /* DPCPU frequency, MHz */ 19659 #define MC_CMD_GET_CLOCK_OUT_DPCPU_FREQ_OFST 4 19660 #define MC_CMD_GET_CLOCK_OUT_DPCPU_FREQ_LEN 4 19661 19662 19663 /***********************************/ 19664 /* MC_CMD_SET_CLOCK 19665 * Control the system and DPCPU clock frequencies. Changes are lost reboot. 19666 */ 19667 #define MC_CMD_SET_CLOCK 0xad 19668 #define MC_CMD_SET_CLOCK_MSGSET 0xad 19669 #undef MC_CMD_0xad_PRIVILEGE_CTG 19670 19671 #define MC_CMD_0xad_PRIVILEGE_CTG SRIOV_CTG_INSECURE 19672 19673 /* MC_CMD_SET_CLOCK_IN msgrequest */ 19674 #define MC_CMD_SET_CLOCK_IN_LEN 28 19675 /* Requested frequency in MHz for system clock domain */ 19676 #define MC_CMD_SET_CLOCK_IN_SYS_FREQ_OFST 0 19677 #define MC_CMD_SET_CLOCK_IN_SYS_FREQ_LEN 4 19678 /* enum: Leave the system clock domain frequency unchanged */ 19679 #define MC_CMD_SET_CLOCK_IN_SYS_DOMAIN_DONT_CHANGE 0x0 19680 /* Requested frequency in MHz for inter-core clock domain */ 19681 #define MC_CMD_SET_CLOCK_IN_ICORE_FREQ_OFST 4 19682 #define MC_CMD_SET_CLOCK_IN_ICORE_FREQ_LEN 4 19683 /* enum: Leave the inter-core clock domain frequency unchanged */ 19684 #define MC_CMD_SET_CLOCK_IN_ICORE_DOMAIN_DONT_CHANGE 0x0 19685 /* Requested frequency in MHz for DPCPU clock domain */ 19686 #define MC_CMD_SET_CLOCK_IN_DPCPU_FREQ_OFST 8 19687 #define MC_CMD_SET_CLOCK_IN_DPCPU_FREQ_LEN 4 19688 /* enum: Leave the DPCPU clock domain frequency unchanged */ 19689 #define MC_CMD_SET_CLOCK_IN_DPCPU_DOMAIN_DONT_CHANGE 0x0 19690 /* Requested frequency in MHz for PCS clock domain */ 19691 #define MC_CMD_SET_CLOCK_IN_PCS_FREQ_OFST 12 19692 #define MC_CMD_SET_CLOCK_IN_PCS_FREQ_LEN 4 19693 /* enum: Leave the PCS clock domain frequency unchanged */ 19694 #define MC_CMD_SET_CLOCK_IN_PCS_DOMAIN_DONT_CHANGE 0x0 19695 /* Requested frequency in MHz for MC clock domain */ 19696 #define MC_CMD_SET_CLOCK_IN_MC_FREQ_OFST 16 19697 #define MC_CMD_SET_CLOCK_IN_MC_FREQ_LEN 4 19698 /* enum: Leave the MC clock domain frequency unchanged */ 19699 #define MC_CMD_SET_CLOCK_IN_MC_DOMAIN_DONT_CHANGE 0x0 19700 /* Requested frequency in MHz for rmon clock domain */ 19701 #define MC_CMD_SET_CLOCK_IN_RMON_FREQ_OFST 20 19702 #define MC_CMD_SET_CLOCK_IN_RMON_FREQ_LEN 4 19703 /* enum: Leave the rmon clock domain frequency unchanged */ 19704 #define MC_CMD_SET_CLOCK_IN_RMON_DOMAIN_DONT_CHANGE 0x0 19705 /* Requested frequency in MHz for vswitch clock domain */ 19706 #define MC_CMD_SET_CLOCK_IN_VSWITCH_FREQ_OFST 24 19707 #define MC_CMD_SET_CLOCK_IN_VSWITCH_FREQ_LEN 4 19708 /* enum: Leave the vswitch clock domain frequency unchanged */ 19709 #define MC_CMD_SET_CLOCK_IN_VSWITCH_DOMAIN_DONT_CHANGE 0x0 19710 19711 /* MC_CMD_SET_CLOCK_OUT msgresponse */ 19712 #define MC_CMD_SET_CLOCK_OUT_LEN 28 19713 /* Resulting system frequency in MHz */ 19714 #define MC_CMD_SET_CLOCK_OUT_SYS_FREQ_OFST 0 19715 #define MC_CMD_SET_CLOCK_OUT_SYS_FREQ_LEN 4 19716 /* enum: The system clock domain doesn't exist */ 19717 #define MC_CMD_SET_CLOCK_OUT_SYS_DOMAIN_UNSUPPORTED 0x0 19718 /* Resulting inter-core frequency in MHz */ 19719 #define MC_CMD_SET_CLOCK_OUT_ICORE_FREQ_OFST 4 19720 #define MC_CMD_SET_CLOCK_OUT_ICORE_FREQ_LEN 4 19721 /* enum: The inter-core clock domain doesn't exist / isn't used */ 19722 #define MC_CMD_SET_CLOCK_OUT_ICORE_DOMAIN_UNSUPPORTED 0x0 19723 /* Resulting DPCPU frequency in MHz */ 19724 #define MC_CMD_SET_CLOCK_OUT_DPCPU_FREQ_OFST 8 19725 #define MC_CMD_SET_CLOCK_OUT_DPCPU_FREQ_LEN 4 19726 /* enum: The dpcpu clock domain doesn't exist */ 19727 #define MC_CMD_SET_CLOCK_OUT_DPCPU_DOMAIN_UNSUPPORTED 0x0 19728 /* Resulting PCS frequency in MHz */ 19729 #define MC_CMD_SET_CLOCK_OUT_PCS_FREQ_OFST 12 19730 #define MC_CMD_SET_CLOCK_OUT_PCS_FREQ_LEN 4 19731 /* enum: The PCS clock domain doesn't exist / isn't controlled */ 19732 #define MC_CMD_SET_CLOCK_OUT_PCS_DOMAIN_UNSUPPORTED 0x0 19733 /* Resulting MC frequency in MHz */ 19734 #define MC_CMD_SET_CLOCK_OUT_MC_FREQ_OFST 16 19735 #define MC_CMD_SET_CLOCK_OUT_MC_FREQ_LEN 4 19736 /* enum: The MC clock domain doesn't exist / isn't controlled */ 19737 #define MC_CMD_SET_CLOCK_OUT_MC_DOMAIN_UNSUPPORTED 0x0 19738 /* Resulting rmon frequency in MHz */ 19739 #define MC_CMD_SET_CLOCK_OUT_RMON_FREQ_OFST 20 19740 #define MC_CMD_SET_CLOCK_OUT_RMON_FREQ_LEN 4 19741 /* enum: The rmon clock domain doesn't exist / isn't controlled */ 19742 #define MC_CMD_SET_CLOCK_OUT_RMON_DOMAIN_UNSUPPORTED 0x0 19743 /* Resulting vswitch frequency in MHz */ 19744 #define MC_CMD_SET_CLOCK_OUT_VSWITCH_FREQ_OFST 24 19745 #define MC_CMD_SET_CLOCK_OUT_VSWITCH_FREQ_LEN 4 19746 /* enum: The vswitch clock domain doesn't exist / isn't controlled */ 19747 #define MC_CMD_SET_CLOCK_OUT_VSWITCH_DOMAIN_UNSUPPORTED 0x0 19748 19749 19750 /***********************************/ 19751 /* MC_CMD_DPCPU_RPC 19752 * Send an arbitrary DPCPU message. 19753 */ 19754 #define MC_CMD_DPCPU_RPC 0xae 19755 #define MC_CMD_DPCPU_RPC_MSGSET 0xae 19756 #undef MC_CMD_0xae_PRIVILEGE_CTG 19757 19758 #define MC_CMD_0xae_PRIVILEGE_CTG SRIOV_CTG_INSECURE 19759 19760 /* MC_CMD_DPCPU_RPC_IN msgrequest */ 19761 #define MC_CMD_DPCPU_RPC_IN_LEN 36 19762 #define MC_CMD_DPCPU_RPC_IN_CPU_OFST 0 19763 #define MC_CMD_DPCPU_RPC_IN_CPU_LEN 4 19764 /* enum: RxDPCPU0 */ 19765 #define MC_CMD_DPCPU_RPC_IN_DPCPU_RX0 0x0 19766 /* enum: TxDPCPU0 */ 19767 #define MC_CMD_DPCPU_RPC_IN_DPCPU_TX0 0x1 19768 /* enum: TxDPCPU1 */ 19769 #define MC_CMD_DPCPU_RPC_IN_DPCPU_TX1 0x2 19770 /* enum: RxDPCPU1 (Medford only) */ 19771 #define MC_CMD_DPCPU_RPC_IN_DPCPU_RX1 0x3 19772 /* enum: RxDPCPU (will be for the calling function; for now, just an alias of 19773 * DPCPU_RX0) 19774 */ 19775 #define MC_CMD_DPCPU_RPC_IN_DPCPU_RX 0x80 19776 /* enum: TxDPCPU (will be for the calling function; for now, just an alias of 19777 * DPCPU_TX0) 19778 */ 19779 #define MC_CMD_DPCPU_RPC_IN_DPCPU_TX 0x81 19780 /* First 8 bits [39:32] of DATA are consumed by MC-DPCPU protocol and must be 19781 * initialised to zero 19782 */ 19783 #define MC_CMD_DPCPU_RPC_IN_DATA_OFST 4 19784 #define MC_CMD_DPCPU_RPC_IN_DATA_LEN 32 19785 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_CMDNUM_OFST 4 19786 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_CMDNUM_LBN 8 19787 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_CMDNUM_WIDTH 8 19788 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_TXDPCPU_READ 0x6 /* enum */ 19789 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_TXDPCPU_WRITE 0x7 /* enum */ 19790 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_TXDPCPU_SELF_TEST 0xc /* enum */ 19791 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_TXDPCPU_CSR_ACCESS 0xe /* enum */ 19792 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_RXDPCPU_READ 0x46 /* enum */ 19793 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_RXDPCPU_WRITE 0x47 /* enum */ 19794 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_RXDPCPU_SELF_TEST 0x4a /* enum */ 19795 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_RXDPCPU_CSR_ACCESS 0x4c /* enum */ 19796 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_RXDPCPU_SET_MC_REPLAY_CNTXT 0x4d /* enum */ 19797 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_OBJID_OFST 4 19798 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_OBJID_LBN 16 19799 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_OBJID_WIDTH 16 19800 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_ADDR_OFST 4 19801 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_ADDR_LBN 16 19802 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_ADDR_WIDTH 16 19803 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_COUNT_OFST 4 19804 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_COUNT_LBN 48 19805 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_COUNT_WIDTH 16 19806 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_INFO_OFST 4 19807 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_INFO_LBN 16 19808 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_INFO_WIDTH 240 19809 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_OFST 4 19810 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_LBN 16 19811 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_WIDTH 16 19812 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_STOP_RETURN_RESULT 0x0 /* enum */ 19813 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_START_READ 0x1 /* enum */ 19814 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_START_WRITE 0x2 /* enum */ 19815 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_START_WRITE_READ 0x3 /* enum */ 19816 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_START_PIPELINED_READ 0x4 /* enum */ 19817 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_START_DELAY_OFST 4 19818 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_START_DELAY_LBN 48 19819 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_START_DELAY_WIDTH 16 19820 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_RPT_COUNT_OFST 4 19821 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_RPT_COUNT_LBN 64 19822 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_RPT_COUNT_WIDTH 16 19823 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_GAP_DELAY_OFST 4 19824 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_GAP_DELAY_LBN 80 19825 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_GAP_DELAY_WIDTH 16 19826 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_OFST 4 19827 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_LBN 16 19828 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_WIDTH 16 19829 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_CUT_THROUGH 0x1 /* enum */ 19830 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_STORE_FORWARD 0x2 /* enum */ 19831 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_STORE_FORWARD_FIRST 0x3 /* enum */ 19832 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_CNTXT_OFST 4 19833 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_CNTXT_LBN 64 19834 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_CNTXT_WIDTH 16 19835 #define MC_CMD_DPCPU_RPC_IN_WDATA_OFST 12 19836 #define MC_CMD_DPCPU_RPC_IN_WDATA_LEN 24 19837 /* Register data to write. Only valid in write/write-read. */ 19838 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_DATA_OFST 16 19839 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_DATA_LEN 4 19840 /* Register address. */ 19841 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_ADDRESS_OFST 20 19842 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_ADDRESS_LEN 4 19843 19844 /* MC_CMD_DPCPU_RPC_OUT msgresponse */ 19845 #define MC_CMD_DPCPU_RPC_OUT_LEN 36 19846 #define MC_CMD_DPCPU_RPC_OUT_RC_OFST 0 19847 #define MC_CMD_DPCPU_RPC_OUT_RC_LEN 4 19848 /* DATA */ 19849 #define MC_CMD_DPCPU_RPC_OUT_DATA_OFST 4 19850 #define MC_CMD_DPCPU_RPC_OUT_DATA_LEN 32 19851 #define MC_CMD_DPCPU_RPC_OUT_HDR_CMD_RESP_ERRCODE_OFST 4 19852 #define MC_CMD_DPCPU_RPC_OUT_HDR_CMD_RESP_ERRCODE_LBN 32 19853 #define MC_CMD_DPCPU_RPC_OUT_HDR_CMD_RESP_ERRCODE_WIDTH 16 19854 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_COUNT_OFST 4 19855 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_COUNT_LBN 48 19856 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_COUNT_WIDTH 16 19857 #define MC_CMD_DPCPU_RPC_OUT_RDATA_OFST 12 19858 #define MC_CMD_DPCPU_RPC_OUT_RDATA_LEN 24 19859 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_1_OFST 12 19860 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_1_LEN 4 19861 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_2_OFST 16 19862 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_2_LEN 4 19863 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_3_OFST 20 19864 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_3_LEN 4 19865 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_4_OFST 24 19866 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_4_LEN 4 19867 19868 19869 /***********************************/ 19870 /* MC_CMD_TRIGGER_INTERRUPT 19871 * Trigger an interrupt by prodding the BIU. 19872 */ 19873 #define MC_CMD_TRIGGER_INTERRUPT 0xe3 19874 #define MC_CMD_TRIGGER_INTERRUPT_MSGSET 0xe3 19875 #undef MC_CMD_0xe3_PRIVILEGE_CTG 19876 19877 #define MC_CMD_0xe3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19878 19879 /* MC_CMD_TRIGGER_INTERRUPT_IN msgrequest */ 19880 #define MC_CMD_TRIGGER_INTERRUPT_IN_LEN 4 19881 /* Interrupt level relative to base for function. */ 19882 #define MC_CMD_TRIGGER_INTERRUPT_IN_INTR_LEVEL_OFST 0 19883 #define MC_CMD_TRIGGER_INTERRUPT_IN_INTR_LEVEL_LEN 4 19884 19885 /* MC_CMD_TRIGGER_INTERRUPT_OUT msgresponse */ 19886 #define MC_CMD_TRIGGER_INTERRUPT_OUT_LEN 0 19887 19888 19889 /***********************************/ 19890 /* MC_CMD_SHMBOOT_OP 19891 * Special operations to support (for now) shmboot. 19892 */ 19893 #define MC_CMD_SHMBOOT_OP 0xe6 19894 #define MC_CMD_SHMBOOT_OP_MSGSET 0xe6 19895 #undef MC_CMD_0xe6_PRIVILEGE_CTG 19896 19897 #define MC_CMD_0xe6_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 19898 19899 /* MC_CMD_SHMBOOT_OP_IN msgrequest */ 19900 #define MC_CMD_SHMBOOT_OP_IN_LEN 4 19901 /* Identifies the operation to perform */ 19902 #define MC_CMD_SHMBOOT_OP_IN_SHMBOOT_OP_OFST 0 19903 #define MC_CMD_SHMBOOT_OP_IN_SHMBOOT_OP_LEN 4 19904 /* enum: Copy slave_data section to the slave core. (Greenport only) */ 19905 #define MC_CMD_SHMBOOT_OP_IN_PUSH_SLAVE_DATA 0x0 19906 19907 /* MC_CMD_SHMBOOT_OP_OUT msgresponse */ 19908 #define MC_CMD_SHMBOOT_OP_OUT_LEN 0 19909 19910 19911 /***********************************/ 19912 /* MC_CMD_CAP_BLK_READ 19913 * Read multiple 64bit words from capture block memory 19914 */ 19915 #define MC_CMD_CAP_BLK_READ 0xe7 19916 #define MC_CMD_CAP_BLK_READ_MSGSET 0xe7 19917 #undef MC_CMD_0xe7_PRIVILEGE_CTG 19918 19919 #define MC_CMD_0xe7_PRIVILEGE_CTG SRIOV_CTG_INSECURE 19920 19921 /* MC_CMD_CAP_BLK_READ_IN msgrequest */ 19922 #define MC_CMD_CAP_BLK_READ_IN_LEN 12 19923 #define MC_CMD_CAP_BLK_READ_IN_CAP_REG_OFST 0 19924 #define MC_CMD_CAP_BLK_READ_IN_CAP_REG_LEN 4 19925 #define MC_CMD_CAP_BLK_READ_IN_ADDR_OFST 4 19926 #define MC_CMD_CAP_BLK_READ_IN_ADDR_LEN 4 19927 #define MC_CMD_CAP_BLK_READ_IN_COUNT_OFST 8 19928 #define MC_CMD_CAP_BLK_READ_IN_COUNT_LEN 4 19929 19930 /* MC_CMD_CAP_BLK_READ_OUT msgresponse */ 19931 #define MC_CMD_CAP_BLK_READ_OUT_LENMIN 8 19932 #define MC_CMD_CAP_BLK_READ_OUT_LENMAX 248 19933 #define MC_CMD_CAP_BLK_READ_OUT_LENMAX_MCDI2 1016 19934 #define MC_CMD_CAP_BLK_READ_OUT_LEN(num) (0+8*(num)) 19935 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_NUM(len) (((len)-0)/8) 19936 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_OFST 0 19937 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LEN 8 19938 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LO_OFST 0 19939 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LO_LEN 4 19940 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LO_LBN 0 19941 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LO_WIDTH 32 19942 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_HI_OFST 4 19943 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_HI_LEN 4 19944 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_HI_LBN 32 19945 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_HI_WIDTH 32 19946 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_MINNUM 1 19947 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_MAXNUM 31 19948 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_MAXNUM_MCDI2 127 19949 19950 19951 /***********************************/ 19952 /* MC_CMD_DUMP_DO 19953 * Take a dump of the DUT state 19954 */ 19955 #define MC_CMD_DUMP_DO 0xe8 19956 #define MC_CMD_DUMP_DO_MSGSET 0xe8 19957 #undef MC_CMD_0xe8_PRIVILEGE_CTG 19958 19959 #define MC_CMD_0xe8_PRIVILEGE_CTG SRIOV_CTG_INSECURE 19960 19961 /* MC_CMD_DUMP_DO_IN msgrequest */ 19962 #define MC_CMD_DUMP_DO_IN_LEN 52 19963 #define MC_CMD_DUMP_DO_IN_PADDING_OFST 0 19964 #define MC_CMD_DUMP_DO_IN_PADDING_LEN 4 19965 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_OFST 4 19966 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_LEN 4 19967 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM 0x0 /* enum */ 19968 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_DEFAULT 0x1 /* enum */ 19969 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_TYPE_OFST 8 19970 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_TYPE_LEN 4 19971 #define MC_CMD_DUMP_DO_IN_DUMP_LOCATION_NVRAM 0x1 /* enum */ 19972 #define MC_CMD_DUMP_DO_IN_DUMP_LOCATION_HOST_MEMORY 0x2 /* enum */ 19973 #define MC_CMD_DUMP_DO_IN_DUMP_LOCATION_HOST_MEMORY_MLI 0x3 /* enum */ 19974 #define MC_CMD_DUMP_DO_IN_DUMP_LOCATION_UART 0x4 /* enum */ 19975 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_OFST 12 19976 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4 19977 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_OFST 16 19978 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_LEN 4 19979 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_OFST 12 19980 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4 19981 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_OFST 16 19982 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4 19983 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_OFST 12 19984 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4 19985 #define MC_CMD_DUMP_DO_IN_HOST_MEMORY_MLI_PAGE_SIZE 0x1000 /* enum */ 19986 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_OFST 16 19987 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4 19988 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_OFST 20 19989 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4 19990 #define MC_CMD_DUMP_DO_IN_HOST_MEMORY_MLI_MAX_DEPTH 0x2 /* enum */ 19991 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_OFST 12 19992 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_LEN 4 19993 /* enum: The uart port this command was received over (if using a uart 19994 * transport) 19995 */ 19996 #define MC_CMD_DUMP_DO_IN_UART_PORT_SRC 0xff 19997 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_SIZE_OFST 24 19998 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_SIZE_LEN 4 19999 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_OFST 28 20000 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_LEN 4 20001 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM 0x0 /* enum */ 20002 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_NVRAM_DUMP_PARTITION 0x1 /* enum */ 20003 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_TYPE_OFST 32 20004 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_TYPE_LEN 4 20005 /* Enum values, see field(s): */ 20006 /* MC_CMD_DUMP_DO_IN/DUMPSPEC_SRC_CUSTOM_TYPE */ 20007 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_OFST 36 20008 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4 20009 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_OFST 40 20010 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_LEN 4 20011 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_OFST 36 20012 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4 20013 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_OFST 40 20014 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4 20015 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_OFST 36 20016 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4 20017 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_OFST 40 20018 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4 20019 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_OFST 44 20020 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4 20021 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_UART_PORT_OFST 36 20022 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_UART_PORT_LEN 4 20023 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_SIZE_OFST 48 20024 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_SIZE_LEN 4 20025 20026 /* MC_CMD_DUMP_DO_OUT msgresponse */ 20027 #define MC_CMD_DUMP_DO_OUT_LEN 4 20028 #define MC_CMD_DUMP_DO_OUT_DUMPFILE_SIZE_OFST 0 20029 #define MC_CMD_DUMP_DO_OUT_DUMPFILE_SIZE_LEN 4 20030 20031 20032 /***********************************/ 20033 /* MC_CMD_DUMP_CONFIGURE_UNSOLICITED 20034 * Configure unsolicited dumps 20035 */ 20036 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED 0xe9 20037 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_MSGSET 0xe9 20038 #undef MC_CMD_0xe9_PRIVILEGE_CTG 20039 20040 #define MC_CMD_0xe9_PRIVILEGE_CTG SRIOV_CTG_INSECURE 20041 20042 /* MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN msgrequest */ 20043 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_LEN 52 20044 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_ENABLE_OFST 0 20045 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_ENABLE_LEN 4 20046 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_OFST 4 20047 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_LEN 4 20048 /* Enum values, see field(s): */ 20049 /* MC_CMD_DUMP_DO/MC_CMD_DUMP_DO_IN/DUMPSPEC_SRC */ 20050 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_TYPE_OFST 8 20051 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_TYPE_LEN 4 20052 /* Enum values, see field(s): */ 20053 /* MC_CMD_DUMP_DO/MC_CMD_DUMP_DO_IN/DUMPSPEC_SRC_CUSTOM_TYPE */ 20054 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_OFST 12 20055 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4 20056 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_OFST 16 20057 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_LEN 4 20058 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_OFST 12 20059 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4 20060 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_OFST 16 20061 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4 20062 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_OFST 12 20063 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4 20064 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_OFST 16 20065 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4 20066 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_OFST 20 20067 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4 20068 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_OFST 12 20069 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_LEN 4 20070 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_SIZE_OFST 24 20071 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_SIZE_LEN 4 20072 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_OFST 28 20073 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_LEN 4 20074 /* Enum values, see field(s): */ 20075 /* MC_CMD_DUMP_DO/MC_CMD_DUMP_DO_IN/DUMPFILE_DST */ 20076 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_TYPE_OFST 32 20077 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_TYPE_LEN 4 20078 /* Enum values, see field(s): */ 20079 /* MC_CMD_DUMP_DO/MC_CMD_DUMP_DO_IN/DUMPSPEC_SRC_CUSTOM_TYPE */ 20080 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_OFST 36 20081 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4 20082 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_OFST 40 20083 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_LEN 4 20084 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_OFST 36 20085 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4 20086 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_OFST 40 20087 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4 20088 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_OFST 36 20089 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4 20090 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_OFST 40 20091 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4 20092 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_OFST 44 20093 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4 20094 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_UART_PORT_OFST 36 20095 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_UART_PORT_LEN 4 20096 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_SIZE_OFST 48 20097 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_SIZE_LEN 4 20098 20099 20100 /***********************************/ 20101 /* MC_CMD_SET_PSU 20102 * Adjusts power supply parameters. This is a warranty-voiding operation. 20103 * Returns: ENOENT if the parameter or rail specified does not exist, EINVAL if 20104 * the parameter is out of range. 20105 */ 20106 #define MC_CMD_SET_PSU 0xea 20107 #define MC_CMD_SET_PSU_MSGSET 0xea 20108 #undef MC_CMD_0xea_PRIVILEGE_CTG 20109 20110 #define MC_CMD_0xea_PRIVILEGE_CTG SRIOV_CTG_INSECURE 20111 20112 /* MC_CMD_SET_PSU_IN msgrequest */ 20113 #define MC_CMD_SET_PSU_IN_LEN 12 20114 #define MC_CMD_SET_PSU_IN_PARAM_OFST 0 20115 #define MC_CMD_SET_PSU_IN_PARAM_LEN 4 20116 #define MC_CMD_SET_PSU_IN_PARAM_SUPPLY_VOLTAGE 0x0 /* enum */ 20117 #define MC_CMD_SET_PSU_IN_RAIL_OFST 4 20118 #define MC_CMD_SET_PSU_IN_RAIL_LEN 4 20119 #define MC_CMD_SET_PSU_IN_RAIL_0V9 0x0 /* enum */ 20120 #define MC_CMD_SET_PSU_IN_RAIL_1V2 0x1 /* enum */ 20121 /* desired value, eg voltage in mV */ 20122 #define MC_CMD_SET_PSU_IN_VALUE_OFST 8 20123 #define MC_CMD_SET_PSU_IN_VALUE_LEN 4 20124 20125 /* MC_CMD_SET_PSU_OUT msgresponse */ 20126 #define MC_CMD_SET_PSU_OUT_LEN 0 20127 20128 20129 /***********************************/ 20130 /* MC_CMD_GET_FUNCTION_INFO 20131 * Get function information. PF and VF number. 20132 */ 20133 #define MC_CMD_GET_FUNCTION_INFO 0xec 20134 #define MC_CMD_GET_FUNCTION_INFO_MSGSET 0xec 20135 #undef MC_CMD_0xec_PRIVILEGE_CTG 20136 20137 #define MC_CMD_0xec_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20138 20139 /* MC_CMD_GET_FUNCTION_INFO_IN msgrequest */ 20140 #define MC_CMD_GET_FUNCTION_INFO_IN_LEN 0 20141 20142 /* MC_CMD_GET_FUNCTION_INFO_OUT msgresponse */ 20143 #define MC_CMD_GET_FUNCTION_INFO_OUT_LEN 8 20144 #define MC_CMD_GET_FUNCTION_INFO_OUT_PF_OFST 0 20145 #define MC_CMD_GET_FUNCTION_INFO_OUT_PF_LEN 4 20146 #define MC_CMD_GET_FUNCTION_INFO_OUT_VF_OFST 4 20147 #define MC_CMD_GET_FUNCTION_INFO_OUT_VF_LEN 4 20148 20149 /* MC_CMD_GET_FUNCTION_INFO_OUT_V2 msgresponse */ 20150 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_LEN 12 20151 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_PF_OFST 0 20152 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_PF_LEN 4 20153 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_VF_OFST 4 20154 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_VF_LEN 4 20155 /* Values from PCIE_INTERFACE enumeration. For NICs with a single interface, or 20156 * in the case of a V1 response, this should be HOST_PRIMARY. 20157 */ 20158 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_INTF_OFST 8 20159 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_INTF_LEN 4 20160 20161 20162 /***********************************/ 20163 /* MC_CMD_ENABLE_OFFLINE_BIST 20164 * Enters offline BIST mode. All queues are torn down, chip enters quiescent 20165 * mode, calling function gets exclusive MCDI ownership. The only way out is 20166 * reboot. 20167 */ 20168 #define MC_CMD_ENABLE_OFFLINE_BIST 0xed 20169 #define MC_CMD_ENABLE_OFFLINE_BIST_MSGSET 0xed 20170 #undef MC_CMD_0xed_PRIVILEGE_CTG 20171 20172 #define MC_CMD_0xed_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 20173 20174 /* MC_CMD_ENABLE_OFFLINE_BIST_IN msgrequest */ 20175 #define MC_CMD_ENABLE_OFFLINE_BIST_IN_LEN 0 20176 20177 /* MC_CMD_ENABLE_OFFLINE_BIST_OUT msgresponse */ 20178 #define MC_CMD_ENABLE_OFFLINE_BIST_OUT_LEN 0 20179 20180 20181 /***********************************/ 20182 /* MC_CMD_UART_SEND_DATA 20183 * Send checksummed[sic] block of data over the uart. Response is a placeholder 20184 * should we wish to make this reliable; currently requests are fire-and- 20185 * forget. 20186 */ 20187 #define MC_CMD_UART_SEND_DATA 0xee 20188 #define MC_CMD_UART_SEND_DATA_MSGSET 0xee 20189 #undef MC_CMD_0xee_PRIVILEGE_CTG 20190 20191 #define MC_CMD_0xee_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20192 20193 /* MC_CMD_UART_SEND_DATA_OUT msgrequest */ 20194 #define MC_CMD_UART_SEND_DATA_OUT_LENMIN 16 20195 #define MC_CMD_UART_SEND_DATA_OUT_LENMAX 252 20196 #define MC_CMD_UART_SEND_DATA_OUT_LENMAX_MCDI2 1020 20197 #define MC_CMD_UART_SEND_DATA_OUT_LEN(num) (16+1*(num)) 20198 #define MC_CMD_UART_SEND_DATA_OUT_DATA_NUM(len) (((len)-16)/1) 20199 /* CRC32 over OFFSET, LENGTH, RESERVED, DATA */ 20200 #define MC_CMD_UART_SEND_DATA_OUT_CHECKSUM_OFST 0 20201 #define MC_CMD_UART_SEND_DATA_OUT_CHECKSUM_LEN 4 20202 /* Offset at which to write the data */ 20203 #define MC_CMD_UART_SEND_DATA_OUT_OFFSET_OFST 4 20204 #define MC_CMD_UART_SEND_DATA_OUT_OFFSET_LEN 4 20205 /* Length of data */ 20206 #define MC_CMD_UART_SEND_DATA_OUT_LENGTH_OFST 8 20207 #define MC_CMD_UART_SEND_DATA_OUT_LENGTH_LEN 4 20208 /* Reserved for future use */ 20209 #define MC_CMD_UART_SEND_DATA_OUT_RESERVED_OFST 12 20210 #define MC_CMD_UART_SEND_DATA_OUT_RESERVED_LEN 4 20211 #define MC_CMD_UART_SEND_DATA_OUT_DATA_OFST 16 20212 #define MC_CMD_UART_SEND_DATA_OUT_DATA_LEN 1 20213 #define MC_CMD_UART_SEND_DATA_OUT_DATA_MINNUM 0 20214 #define MC_CMD_UART_SEND_DATA_OUT_DATA_MAXNUM 236 20215 #define MC_CMD_UART_SEND_DATA_OUT_DATA_MAXNUM_MCDI2 1004 20216 20217 /* MC_CMD_UART_SEND_DATA_IN msgresponse */ 20218 #define MC_CMD_UART_SEND_DATA_IN_LEN 0 20219 20220 20221 /***********************************/ 20222 /* MC_CMD_UART_RECV_DATA 20223 * Request checksummed[sic] block of data over the uart. Only a placeholder, 20224 * subject to change and not currently implemented. 20225 */ 20226 #define MC_CMD_UART_RECV_DATA 0xef 20227 #define MC_CMD_UART_RECV_DATA_MSGSET 0xef 20228 #undef MC_CMD_0xef_PRIVILEGE_CTG 20229 20230 #define MC_CMD_0xef_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20231 20232 /* MC_CMD_UART_RECV_DATA_OUT msgrequest */ 20233 #define MC_CMD_UART_RECV_DATA_OUT_LEN 16 20234 /* CRC32 over OFFSET, LENGTH, RESERVED */ 20235 #define MC_CMD_UART_RECV_DATA_OUT_CHECKSUM_OFST 0 20236 #define MC_CMD_UART_RECV_DATA_OUT_CHECKSUM_LEN 4 20237 /* Offset from which to read the data */ 20238 #define MC_CMD_UART_RECV_DATA_OUT_OFFSET_OFST 4 20239 #define MC_CMD_UART_RECV_DATA_OUT_OFFSET_LEN 4 20240 /* Length of data */ 20241 #define MC_CMD_UART_RECV_DATA_OUT_LENGTH_OFST 8 20242 #define MC_CMD_UART_RECV_DATA_OUT_LENGTH_LEN 4 20243 /* Reserved for future use */ 20244 #define MC_CMD_UART_RECV_DATA_OUT_RESERVED_OFST 12 20245 #define MC_CMD_UART_RECV_DATA_OUT_RESERVED_LEN 4 20246 20247 /* MC_CMD_UART_RECV_DATA_IN msgresponse */ 20248 #define MC_CMD_UART_RECV_DATA_IN_LENMIN 16 20249 #define MC_CMD_UART_RECV_DATA_IN_LENMAX 252 20250 #define MC_CMD_UART_RECV_DATA_IN_LENMAX_MCDI2 1020 20251 #define MC_CMD_UART_RECV_DATA_IN_LEN(num) (16+1*(num)) 20252 #define MC_CMD_UART_RECV_DATA_IN_DATA_NUM(len) (((len)-16)/1) 20253 /* CRC32 over RESERVED1, RESERVED2, RESERVED3, DATA */ 20254 #define MC_CMD_UART_RECV_DATA_IN_CHECKSUM_OFST 0 20255 #define MC_CMD_UART_RECV_DATA_IN_CHECKSUM_LEN 4 20256 /* Offset at which to write the data */ 20257 #define MC_CMD_UART_RECV_DATA_IN_RESERVED1_OFST 4 20258 #define MC_CMD_UART_RECV_DATA_IN_RESERVED1_LEN 4 20259 /* Length of data */ 20260 #define MC_CMD_UART_RECV_DATA_IN_RESERVED2_OFST 8 20261 #define MC_CMD_UART_RECV_DATA_IN_RESERVED2_LEN 4 20262 /* Reserved for future use */ 20263 #define MC_CMD_UART_RECV_DATA_IN_RESERVED3_OFST 12 20264 #define MC_CMD_UART_RECV_DATA_IN_RESERVED3_LEN 4 20265 #define MC_CMD_UART_RECV_DATA_IN_DATA_OFST 16 20266 #define MC_CMD_UART_RECV_DATA_IN_DATA_LEN 1 20267 #define MC_CMD_UART_RECV_DATA_IN_DATA_MINNUM 0 20268 #define MC_CMD_UART_RECV_DATA_IN_DATA_MAXNUM 236 20269 #define MC_CMD_UART_RECV_DATA_IN_DATA_MAXNUM_MCDI2 1004 20270 20271 20272 /***********************************/ 20273 /* MC_CMD_READ_FUSES 20274 * Read data programmed into the device One-Time-Programmable (OTP) Fuses 20275 */ 20276 #define MC_CMD_READ_FUSES 0xf0 20277 #define MC_CMD_READ_FUSES_MSGSET 0xf0 20278 #undef MC_CMD_0xf0_PRIVILEGE_CTG 20279 20280 #define MC_CMD_0xf0_PRIVILEGE_CTG SRIOV_CTG_INSECURE 20281 20282 /* MC_CMD_READ_FUSES_IN msgrequest */ 20283 #define MC_CMD_READ_FUSES_IN_LEN 8 20284 /* Offset in OTP to read */ 20285 #define MC_CMD_READ_FUSES_IN_OFFSET_OFST 0 20286 #define MC_CMD_READ_FUSES_IN_OFFSET_LEN 4 20287 /* Length of data to read in bytes */ 20288 #define MC_CMD_READ_FUSES_IN_LENGTH_OFST 4 20289 #define MC_CMD_READ_FUSES_IN_LENGTH_LEN 4 20290 20291 /* MC_CMD_READ_FUSES_OUT msgresponse */ 20292 #define MC_CMD_READ_FUSES_OUT_LENMIN 4 20293 #define MC_CMD_READ_FUSES_OUT_LENMAX 252 20294 #define MC_CMD_READ_FUSES_OUT_LENMAX_MCDI2 1020 20295 #define MC_CMD_READ_FUSES_OUT_LEN(num) (4+1*(num)) 20296 #define MC_CMD_READ_FUSES_OUT_DATA_NUM(len) (((len)-4)/1) 20297 /* Length of returned OTP data in bytes */ 20298 #define MC_CMD_READ_FUSES_OUT_LENGTH_OFST 0 20299 #define MC_CMD_READ_FUSES_OUT_LENGTH_LEN 4 20300 /* Returned data */ 20301 #define MC_CMD_READ_FUSES_OUT_DATA_OFST 4 20302 #define MC_CMD_READ_FUSES_OUT_DATA_LEN 1 20303 #define MC_CMD_READ_FUSES_OUT_DATA_MINNUM 0 20304 #define MC_CMD_READ_FUSES_OUT_DATA_MAXNUM 248 20305 #define MC_CMD_READ_FUSES_OUT_DATA_MAXNUM_MCDI2 1016 20306 20307 20308 /***********************************/ 20309 /* MC_CMD_KR_TUNE 20310 * Get or set KR Serdes RXEQ and TX Driver settings 20311 */ 20312 #define MC_CMD_KR_TUNE 0xf1 20313 #define MC_CMD_KR_TUNE_MSGSET 0xf1 20314 #undef MC_CMD_0xf1_PRIVILEGE_CTG 20315 20316 #define MC_CMD_0xf1_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 20317 20318 /* MC_CMD_KR_TUNE_IN msgrequest */ 20319 #define MC_CMD_KR_TUNE_IN_LENMIN 4 20320 #define MC_CMD_KR_TUNE_IN_LENMAX 252 20321 #define MC_CMD_KR_TUNE_IN_LENMAX_MCDI2 1020 20322 #define MC_CMD_KR_TUNE_IN_LEN(num) (4+4*(num)) 20323 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_NUM(len) (((len)-4)/4) 20324 /* Requested operation */ 20325 #define MC_CMD_KR_TUNE_IN_KR_TUNE_OP_OFST 0 20326 #define MC_CMD_KR_TUNE_IN_KR_TUNE_OP_LEN 1 20327 /* enum: Get current RXEQ settings */ 20328 #define MC_CMD_KR_TUNE_IN_RXEQ_GET 0x0 20329 /* enum: Override RXEQ settings */ 20330 #define MC_CMD_KR_TUNE_IN_RXEQ_SET 0x1 20331 /* enum: Get current TX Driver settings */ 20332 #define MC_CMD_KR_TUNE_IN_TXEQ_GET 0x2 20333 /* enum: Override TX Driver settings */ 20334 #define MC_CMD_KR_TUNE_IN_TXEQ_SET 0x3 20335 /* enum: Force KR Serdes reset / recalibration */ 20336 #define MC_CMD_KR_TUNE_IN_RECAL 0x4 20337 /* enum: Start KR Serdes Eye diagram plot on a given lane. Lane must have valid 20338 * signal. 20339 */ 20340 #define MC_CMD_KR_TUNE_IN_START_EYE_PLOT 0x5 20341 /* enum: Poll KR Serdes Eye diagram plot. Returns one row of BER data. The 20342 * caller should call this command repeatedly after starting eye plot, until no 20343 * more data is returned. 20344 */ 20345 #define MC_CMD_KR_TUNE_IN_POLL_EYE_PLOT 0x6 20346 /* enum: Read Figure Of Merit (eye quality, higher is better). */ 20347 #define MC_CMD_KR_TUNE_IN_READ_FOM 0x7 20348 /* enum: Start/stop link training frames */ 20349 #define MC_CMD_KR_TUNE_IN_LINK_TRAIN_RUN 0x8 20350 /* enum: Issue KR link training command (control training coefficients) */ 20351 #define MC_CMD_KR_TUNE_IN_LINK_TRAIN_CMD 0x9 20352 /* Align the arguments to 32 bits */ 20353 #define MC_CMD_KR_TUNE_IN_KR_TUNE_RSVD_OFST 1 20354 #define MC_CMD_KR_TUNE_IN_KR_TUNE_RSVD_LEN 3 20355 /* Arguments specific to the operation */ 20356 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_OFST 4 20357 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_LEN 4 20358 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_MINNUM 0 20359 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_MAXNUM 62 20360 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_MAXNUM_MCDI2 254 20361 20362 /* MC_CMD_KR_TUNE_OUT msgresponse */ 20363 #define MC_CMD_KR_TUNE_OUT_LEN 0 20364 20365 /* MC_CMD_KR_TUNE_RXEQ_GET_IN msgrequest */ 20366 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_LEN 4 20367 /* Requested operation */ 20368 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_OP_OFST 0 20369 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_OP_LEN 1 20370 /* Align the arguments to 32 bits */ 20371 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_RSVD_OFST 1 20372 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_RSVD_LEN 3 20373 20374 /* MC_CMD_KR_TUNE_RXEQ_GET_OUT msgresponse */ 20375 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LENMIN 4 20376 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LENMAX 252 20377 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LENMAX_MCDI2 1020 20378 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LEN(num) (0+4*(num)) 20379 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4) 20380 /* RXEQ Parameter */ 20381 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_OFST 0 20382 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LEN 4 20383 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_MINNUM 1 20384 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_MAXNUM 63 20385 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_MAXNUM_MCDI2 255 20386 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_ID_OFST 0 20387 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_ID_LBN 0 20388 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_ID_WIDTH 8 20389 /* enum: Attenuation (0-15, Huntington) */ 20390 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_ATT 0x0 20391 /* enum: CTLE Boost (0-15, Huntington) */ 20392 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_BOOST 0x1 20393 /* enum: Edge DFE Tap1 (Huntington - 0 - max negative, 64 - zero, 127 - max 20394 * positive, Medford - 0-31) 20395 */ 20396 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP1 0x2 20397 /* enum: Edge DFE Tap2 (Huntington - 0 - max negative, 32 - zero, 63 - max 20398 * positive, Medford - 0-31) 20399 */ 20400 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP2 0x3 20401 /* enum: Edge DFE Tap3 (Huntington - 0 - max negative, 32 - zero, 63 - max 20402 * positive, Medford - 0-16) 20403 */ 20404 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP3 0x4 20405 /* enum: Edge DFE Tap4 (Huntington - 0 - max negative, 32 - zero, 63 - max 20406 * positive, Medford - 0-16) 20407 */ 20408 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP4 0x5 20409 /* enum: Edge DFE Tap5 (Huntington - 0 - max negative, 32 - zero, 63 - max 20410 * positive, Medford - 0-16) 20411 */ 20412 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP5 0x6 20413 /* enum: Edge DFE DLEV (0-128 for Medford) */ 20414 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_DLEV 0x7 20415 /* enum: Variable Gain Amplifier (0-15, Medford) */ 20416 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_VGA 0x8 20417 /* enum: CTLE EQ Capacitor (0-15, Medford) */ 20418 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_EQC 0x9 20419 /* enum: CTLE EQ Resistor (0-7, Medford) */ 20420 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_EQRES 0xa 20421 /* enum: CTLE gain (0-31, Medford2) */ 20422 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_GAIN 0xb 20423 /* enum: CTLE pole (0-31, Medford2) */ 20424 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_POLE 0xc 20425 /* enum: CTLE peaking (0-31, Medford2) */ 20426 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_PEAK 0xd 20427 /* enum: DFE Tap1 - even path (Medford2 - 6 bit signed (-29 - +29)) */ 20428 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP1_EVEN 0xe 20429 /* enum: DFE Tap1 - odd path (Medford2 - 6 bit signed (-29 - +29)) */ 20430 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP1_ODD 0xf 20431 /* enum: DFE Tap2 (Medford2 - 6 bit signed (-20 - +20)) */ 20432 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP2 0x10 20433 /* enum: DFE Tap3 (Medford2 - 6 bit signed (-20 - +20)) */ 20434 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP3 0x11 20435 /* enum: DFE Tap4 (Medford2 - 6 bit signed (-20 - +20)) */ 20436 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP4 0x12 20437 /* enum: DFE Tap5 (Medford2 - 6 bit signed (-24 - +24)) */ 20438 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP5 0x13 20439 /* enum: DFE Tap6 (Medford2 - 6 bit signed (-24 - +24)) */ 20440 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP6 0x14 20441 /* enum: DFE Tap7 (Medford2 - 6 bit signed (-24 - +24)) */ 20442 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP7 0x15 20443 /* enum: DFE Tap8 (Medford2 - 6 bit signed (-24 - +24)) */ 20444 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP8 0x16 20445 /* enum: DFE Tap9 (Medford2 - 6 bit signed (-24 - +24)) */ 20446 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP9 0x17 20447 /* enum: DFE Tap10 (Medford2 - 6 bit signed (-24 - +24)) */ 20448 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP10 0x18 20449 /* enum: DFE Tap11 (Medford2 - 6 bit signed (-24 - +24)) */ 20450 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP11 0x19 20451 /* enum: DFE Tap12 (Medford2 - 6 bit signed (-24 - +24)) */ 20452 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP12 0x1a 20453 /* enum: I/Q clk offset (Medford2 - 4 bit signed (-5 - +5))) */ 20454 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_IQ_OFF 0x1b 20455 /* enum: Negative h1 polarity data sampler offset calibration code, even path 20456 * (Medford2 - 6 bit signed (-29 - +29))) 20457 */ 20458 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_H1N_OFF_EVEN 0x1c 20459 /* enum: Negative h1 polarity data sampler offset calibration code, odd path 20460 * (Medford2 - 6 bit signed (-29 - +29))) 20461 */ 20462 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_H1N_OFF_ODD 0x1d 20463 /* enum: Positive h1 polarity data sampler offset calibration code, even path 20464 * (Medford2 - 6 bit signed (-29 - +29))) 20465 */ 20466 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_H1P_OFF_EVEN 0x1e 20467 /* enum: Positive h1 polarity data sampler offset calibration code, odd path 20468 * (Medford2 - 6 bit signed (-29 - +29))) 20469 */ 20470 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_H1P_OFF_ODD 0x1f 20471 /* enum: CDR calibration loop code (Medford2) */ 20472 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CDR_PVT 0x20 20473 /* enum: CDR integral loop code (Medford2) */ 20474 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CDR_INTEG 0x21 20475 /* enum: CTLE Boost stages - retimer lineside (Medford2 with DS250x retimer - 4 20476 * stages, 2 bits per stage) 20477 */ 20478 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_BOOST_RT_LS 0x22 20479 /* enum: DFE Tap1 - retimer lineside (Medford2 with DS250x retimer (-31 - 31)) 20480 */ 20481 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP1_RT_LS 0x23 20482 /* enum: DFE Tap2 - retimer lineside (Medford2 with DS250x retimer (-15 - 15)) 20483 */ 20484 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP2_RT_LS 0x24 20485 /* enum: DFE Tap3 - retimer lineside (Medford2 with DS250x retimer (-15 - 15)) 20486 */ 20487 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP3_RT_LS 0x25 20488 /* enum: DFE Tap4 - retimer lineside (Medford2 with DS250x retimer (-15 - 15)) 20489 */ 20490 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP4_RT_LS 0x26 20491 /* enum: DFE Tap5 - retimer lineside (Medford2 with DS250x retimer (-15 - 15)) 20492 */ 20493 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP5_RT_LS 0x27 20494 /* enum: CTLE Boost stages - retimer hostside (Medford2 with DS250x retimer - 4 20495 * stages, 2 bits per stage) 20496 */ 20497 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_BOOST_RT_HS 0x28 20498 /* enum: DFE Tap1 - retimer hostside (Medford2 with DS250x retimer (-31 - 31)) 20499 */ 20500 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP1_RT_HS 0x29 20501 /* enum: DFE Tap2 - retimer hostside (Medford2 with DS250x retimer (-15 - 15)) 20502 */ 20503 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP2_RT_HS 0x2a 20504 /* enum: DFE Tap3 - retimer hostside (Medford2 with DS250x retimer (-15 - 15)) 20505 */ 20506 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP3_RT_HS 0x2b 20507 /* enum: DFE Tap4 - retimer hostside (Medford2 with DS250x retimer (-15 - 15)) 20508 */ 20509 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP4_RT_HS 0x2c 20510 /* enum: DFE Tap5 - retimer hostside (Medford2 with DS250x retimer (-15 - 15)) 20511 */ 20512 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP5_RT_HS 0x2d 20513 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LANE_OFST 0 20514 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LANE_LBN 8 20515 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LANE_WIDTH 3 20516 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_0 0x0 /* enum */ 20517 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_1 0x1 /* enum */ 20518 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_2 0x2 /* enum */ 20519 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_3 0x3 /* enum */ 20520 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_ALL 0x4 /* enum */ 20521 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_OFST 0 20522 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_LBN 11 20523 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_WIDTH 1 20524 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_RESERVED_OFST 0 20525 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_RESERVED_LBN 12 20526 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_RESERVED_WIDTH 4 20527 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_INITIAL_OFST 0 20528 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_INITIAL_LBN 16 20529 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_INITIAL_WIDTH 8 20530 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_OFST 0 20531 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_LBN 24 20532 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_WIDTH 8 20533 20534 /* MC_CMD_KR_TUNE_RXEQ_SET_IN msgrequest */ 20535 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LENMIN 8 20536 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LENMAX 252 20537 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LENMAX_MCDI2 1020 20538 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LEN(num) (4+4*(num)) 20539 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_NUM(len) (((len)-4)/4) 20540 /* Requested operation */ 20541 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_OP_OFST 0 20542 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_OP_LEN 1 20543 /* Align the arguments to 32 bits */ 20544 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_RSVD_OFST 1 20545 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_RSVD_LEN 3 20546 /* RXEQ Parameter */ 20547 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_OFST 4 20548 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LEN 4 20549 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_MINNUM 1 20550 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_MAXNUM 62 20551 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_MAXNUM_MCDI2 254 20552 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_ID_OFST 4 20553 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_ID_LBN 0 20554 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_ID_WIDTH 8 20555 /* Enum values, see field(s): */ 20556 /* MC_CMD_KR_TUNE_RXEQ_GET_OUT/PARAM_ID */ 20557 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LANE_OFST 4 20558 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LANE_LBN 8 20559 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LANE_WIDTH 3 20560 /* Enum values, see field(s): */ 20561 /* MC_CMD_KR_TUNE_RXEQ_GET_OUT/PARAM_LANE */ 20562 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_OFST 4 20563 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_LBN 11 20564 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_WIDTH 1 20565 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED_OFST 4 20566 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED_LBN 12 20567 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED_WIDTH 4 20568 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_INITIAL_OFST 4 20569 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_INITIAL_LBN 16 20570 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_INITIAL_WIDTH 8 20571 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED2_OFST 4 20572 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED2_LBN 24 20573 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED2_WIDTH 8 20574 20575 /* MC_CMD_KR_TUNE_RXEQ_SET_OUT msgresponse */ 20576 #define MC_CMD_KR_TUNE_RXEQ_SET_OUT_LEN 0 20577 20578 /* MC_CMD_KR_TUNE_TXEQ_GET_IN msgrequest */ 20579 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_LEN 4 20580 /* Requested operation */ 20581 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_OP_OFST 0 20582 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_OP_LEN 1 20583 /* Align the arguments to 32 bits */ 20584 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_RSVD_OFST 1 20585 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_RSVD_LEN 3 20586 20587 /* MC_CMD_KR_TUNE_TXEQ_GET_OUT msgresponse */ 20588 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LENMIN 4 20589 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LENMAX 252 20590 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LENMAX_MCDI2 1020 20591 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LEN(num) (0+4*(num)) 20592 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4) 20593 /* TXEQ Parameter */ 20594 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_OFST 0 20595 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LEN 4 20596 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_MINNUM 1 20597 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_MAXNUM 63 20598 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_MAXNUM_MCDI2 255 20599 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_ID_OFST 0 20600 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_ID_LBN 0 20601 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_ID_WIDTH 8 20602 /* enum: TX Amplitude (Huntington, Medford, Medford2) */ 20603 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_LEV 0x0 20604 /* enum: De-Emphasis Tap1 Magnitude (0-7) (Huntington) */ 20605 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_MODE 0x1 20606 /* enum: De-Emphasis Tap1 Fine */ 20607 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_DTLEV 0x2 20608 /* enum: De-Emphasis Tap2 Magnitude (0-6) (Huntington) */ 20609 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_D2 0x3 20610 /* enum: De-Emphasis Tap2 Fine (Huntington) */ 20611 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_D2TLEV 0x4 20612 /* enum: Pre-Emphasis Magnitude (Huntington) */ 20613 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_E 0x5 20614 /* enum: Pre-Emphasis Fine (Huntington) */ 20615 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_ETLEV 0x6 20616 /* enum: TX Slew Rate Coarse control (Huntington) */ 20617 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_PREDRV_DLY 0x7 20618 /* enum: TX Slew Rate Fine control (Huntington) */ 20619 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_SR_SET 0x8 20620 /* enum: TX Termination Impedance control (Huntington) */ 20621 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_RT_SET 0x9 20622 /* enum: TX Amplitude Fine control (Medford) */ 20623 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_LEV_FINE 0xa 20624 /* enum: Pre-cursor Tap (Medford, Medford2) */ 20625 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_ADV 0xb 20626 /* enum: Post-cursor Tap (Medford, Medford2) */ 20627 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_DLY 0xc 20628 /* enum: TX Amplitude (Retimer Lineside) */ 20629 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_LEV_RT_LS 0xd 20630 /* enum: Pre-cursor Tap (Retimer Lineside) */ 20631 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_ADV_RT_LS 0xe 20632 /* enum: Post-cursor Tap (Retimer Lineside) */ 20633 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_DLY_RT_LS 0xf 20634 /* enum: TX Amplitude (Retimer Hostside) */ 20635 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_LEV_RT_HS 0x10 20636 /* enum: Pre-cursor Tap (Retimer Hostside) */ 20637 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_ADV_RT_HS 0x11 20638 /* enum: Post-cursor Tap (Retimer Hostside) */ 20639 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_DLY_RT_HS 0x12 20640 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LANE_OFST 0 20641 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LANE_LBN 8 20642 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LANE_WIDTH 3 20643 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_0 0x0 /* enum */ 20644 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_1 0x1 /* enum */ 20645 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_2 0x2 /* enum */ 20646 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_3 0x3 /* enum */ 20647 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_ALL 0x4 /* enum */ 20648 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED_OFST 0 20649 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED_LBN 11 20650 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED_WIDTH 5 20651 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_INITIAL_OFST 0 20652 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_INITIAL_LBN 16 20653 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_INITIAL_WIDTH 8 20654 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED2_OFST 0 20655 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED2_LBN 24 20656 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED2_WIDTH 8 20657 20658 /* MC_CMD_KR_TUNE_TXEQ_SET_IN msgrequest */ 20659 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LENMIN 8 20660 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LENMAX 252 20661 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LENMAX_MCDI2 1020 20662 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LEN(num) (4+4*(num)) 20663 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_NUM(len) (((len)-4)/4) 20664 /* Requested operation */ 20665 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_OP_OFST 0 20666 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_OP_LEN 1 20667 /* Align the arguments to 32 bits */ 20668 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_RSVD_OFST 1 20669 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_RSVD_LEN 3 20670 /* TXEQ Parameter */ 20671 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_OFST 4 20672 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LEN 4 20673 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_MINNUM 1 20674 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_MAXNUM 62 20675 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_MAXNUM_MCDI2 254 20676 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_ID_OFST 4 20677 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_ID_LBN 0 20678 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_ID_WIDTH 8 20679 /* Enum values, see field(s): */ 20680 /* MC_CMD_KR_TUNE_TXEQ_GET_OUT/PARAM_ID */ 20681 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LANE_OFST 4 20682 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LANE_LBN 8 20683 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LANE_WIDTH 3 20684 /* Enum values, see field(s): */ 20685 /* MC_CMD_KR_TUNE_TXEQ_GET_OUT/PARAM_LANE */ 20686 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED_OFST 4 20687 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED_LBN 11 20688 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED_WIDTH 5 20689 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_INITIAL_OFST 4 20690 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_INITIAL_LBN 16 20691 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_INITIAL_WIDTH 8 20692 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED2_OFST 4 20693 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED2_LBN 24 20694 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED2_WIDTH 8 20695 20696 /* MC_CMD_KR_TUNE_TXEQ_SET_OUT msgresponse */ 20697 #define MC_CMD_KR_TUNE_TXEQ_SET_OUT_LEN 0 20698 20699 /* MC_CMD_KR_TUNE_RECAL_IN msgrequest */ 20700 #define MC_CMD_KR_TUNE_RECAL_IN_LEN 4 20701 /* Requested operation */ 20702 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_OP_OFST 0 20703 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_OP_LEN 1 20704 /* Align the arguments to 32 bits */ 20705 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_RSVD_OFST 1 20706 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_RSVD_LEN 3 20707 20708 /* MC_CMD_KR_TUNE_RECAL_OUT msgresponse */ 20709 #define MC_CMD_KR_TUNE_RECAL_OUT_LEN 0 20710 20711 /* MC_CMD_KR_TUNE_START_EYE_PLOT_IN msgrequest */ 20712 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_LEN 8 20713 /* Requested operation */ 20714 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_OP_OFST 0 20715 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_OP_LEN 1 20716 /* Align the arguments to 32 bits */ 20717 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_RSVD_OFST 1 20718 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_RSVD_LEN 3 20719 /* Port-relative lane to scan eye on */ 20720 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_LANE_OFST 4 20721 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_LANE_LEN 4 20722 20723 /* MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN msgrequest */ 20724 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LEN 12 20725 /* Requested operation */ 20726 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_OP_OFST 0 20727 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_OP_LEN 1 20728 /* Align the arguments to 32 bits */ 20729 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_RSVD_OFST 1 20730 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_RSVD_LEN 3 20731 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_OFST 4 20732 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_LEN 4 20733 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_NUM_OFST 4 20734 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_NUM_LBN 0 20735 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_NUM_WIDTH 8 20736 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_ABS_REL_OFST 4 20737 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_ABS_REL_LBN 31 20738 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_ABS_REL_WIDTH 1 20739 /* Scan duration / cycle count */ 20740 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_BER_OFST 8 20741 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_BER_LEN 4 20742 20743 /* MC_CMD_KR_TUNE_START_EYE_PLOT_OUT msgresponse */ 20744 #define MC_CMD_KR_TUNE_START_EYE_PLOT_OUT_LEN 0 20745 20746 /* MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN msgrequest */ 20747 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_LEN 4 20748 /* Requested operation */ 20749 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_OP_OFST 0 20750 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_OP_LEN 1 20751 /* Align the arguments to 32 bits */ 20752 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_RSVD_OFST 1 20753 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_RSVD_LEN 3 20754 20755 /* MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT msgresponse */ 20756 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_LENMIN 0 20757 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_LENMAX 252 20758 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_LENMAX_MCDI2 1020 20759 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_LEN(num) (0+2*(num)) 20760 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_NUM(len) (((len)-0)/2) 20761 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_OFST 0 20762 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_LEN 2 20763 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MINNUM 0 20764 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MAXNUM 126 20765 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MAXNUM_MCDI2 510 20766 20767 /* MC_CMD_KR_TUNE_READ_FOM_IN msgrequest */ 20768 #define MC_CMD_KR_TUNE_READ_FOM_IN_LEN 8 20769 /* Requested operation */ 20770 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_OP_OFST 0 20771 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_OP_LEN 1 20772 /* Align the arguments to 32 bits */ 20773 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_RSVD_OFST 1 20774 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_RSVD_LEN 3 20775 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_OFST 4 20776 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_LEN 4 20777 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_NUM_OFST 4 20778 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_NUM_LBN 0 20779 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_NUM_WIDTH 8 20780 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_ABS_REL_OFST 4 20781 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_ABS_REL_LBN 31 20782 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_ABS_REL_WIDTH 1 20783 20784 /* MC_CMD_KR_TUNE_READ_FOM_OUT msgresponse */ 20785 #define MC_CMD_KR_TUNE_READ_FOM_OUT_LEN 4 20786 #define MC_CMD_KR_TUNE_READ_FOM_OUT_FOM_OFST 0 20787 #define MC_CMD_KR_TUNE_READ_FOM_OUT_FOM_LEN 4 20788 20789 /* MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN msgrequest */ 20790 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_LEN 8 20791 /* Requested operation */ 20792 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_OP_OFST 0 20793 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_OP_LEN 1 20794 /* Align the arguments to 32 bits */ 20795 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_RSVD_OFST 1 20796 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_RSVD_LEN 3 20797 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_RUN_OFST 4 20798 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_RUN_LEN 4 20799 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_STOP 0x0 /* enum */ 20800 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_START 0x1 /* enum */ 20801 20802 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN msgrequest */ 20803 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_LEN 28 20804 /* Requested operation */ 20805 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_OP_OFST 0 20806 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_OP_LEN 1 20807 /* Align the arguments to 32 bits */ 20808 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_RSVD_OFST 1 20809 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_RSVD_LEN 3 20810 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_LANE_OFST 4 20811 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_LANE_LEN 4 20812 /* Set INITIALIZE state */ 20813 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_INITIALIZE_OFST 8 20814 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_INITIALIZE_LEN 4 20815 /* Set PRESET state */ 20816 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_PRESET_OFST 12 20817 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_PRESET_LEN 4 20818 /* C(-1) request */ 20819 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CM1_OFST 16 20820 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CM1_LEN 4 20821 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_REQ_HOLD 0x0 /* enum */ 20822 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_REQ_INCREMENT 0x1 /* enum */ 20823 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_REQ_DECREMENT 0x2 /* enum */ 20824 /* C(0) request */ 20825 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_C0_OFST 20 20826 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_C0_LEN 4 20827 /* Enum values, see field(s): */ 20828 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN/CM1 */ 20829 /* C(+1) request */ 20830 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CP1_OFST 24 20831 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CP1_LEN 4 20832 /* Enum values, see field(s): */ 20833 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN/CM1 */ 20834 20835 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT msgresponse */ 20836 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_LEN 24 20837 /* C(-1) status */ 20838 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_STATUS_OFST 0 20839 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_STATUS_LEN 4 20840 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_STATUS_NOT_UPDATED 0x0 /* enum */ 20841 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_STATUS_UPDATED 0x1 /* enum */ 20842 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_STATUS_MINIMUM 0x2 /* enum */ 20843 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_STATUS_MAXIMUM 0x3 /* enum */ 20844 /* C(0) status */ 20845 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_STATUS_OFST 4 20846 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_STATUS_LEN 4 20847 /* Enum values, see field(s): */ 20848 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN/CM1 */ 20849 /* C(+1) status */ 20850 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_STATUS_OFST 8 20851 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_STATUS_LEN 4 20852 /* Enum values, see field(s): */ 20853 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN/CM1 */ 20854 /* C(-1) value */ 20855 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_VALUE_OFST 12 20856 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_VALUE_LEN 4 20857 /* C(0) value */ 20858 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_VALUE_OFST 16 20859 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_VALUE_LEN 4 20860 /* C(+1) status */ 20861 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_VALUE_OFST 20 20862 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_VALUE_LEN 4 20863 20864 20865 /***********************************/ 20866 /* MC_CMD_PCIE_TUNE 20867 * Get or set PCIE Serdes RXEQ and TX Driver settings 20868 */ 20869 #define MC_CMD_PCIE_TUNE 0xf2 20870 #define MC_CMD_PCIE_TUNE_MSGSET 0xf2 20871 #undef MC_CMD_0xf2_PRIVILEGE_CTG 20872 20873 #define MC_CMD_0xf2_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 20874 20875 /* MC_CMD_PCIE_TUNE_IN msgrequest */ 20876 #define MC_CMD_PCIE_TUNE_IN_LENMIN 4 20877 #define MC_CMD_PCIE_TUNE_IN_LENMAX 252 20878 #define MC_CMD_PCIE_TUNE_IN_LENMAX_MCDI2 1020 20879 #define MC_CMD_PCIE_TUNE_IN_LEN(num) (4+4*(num)) 20880 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_NUM(len) (((len)-4)/4) 20881 /* Requested operation */ 20882 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_OP_OFST 0 20883 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_OP_LEN 1 20884 /* enum: Get current RXEQ settings */ 20885 #define MC_CMD_PCIE_TUNE_IN_RXEQ_GET 0x0 20886 /* enum: Override RXEQ settings */ 20887 #define MC_CMD_PCIE_TUNE_IN_RXEQ_SET 0x1 20888 /* enum: Get current TX Driver settings */ 20889 #define MC_CMD_PCIE_TUNE_IN_TXEQ_GET 0x2 20890 /* enum: Override TX Driver settings */ 20891 #define MC_CMD_PCIE_TUNE_IN_TXEQ_SET 0x3 20892 /* enum: Start PCIe Serdes Eye diagram plot on a given lane. */ 20893 #define MC_CMD_PCIE_TUNE_IN_START_EYE_PLOT 0x5 20894 /* enum: Poll PCIe Serdes Eye diagram plot. Returns one row of BER data. The 20895 * caller should call this command repeatedly after starting eye plot, until no 20896 * more data is returned. 20897 */ 20898 #define MC_CMD_PCIE_TUNE_IN_POLL_EYE_PLOT 0x6 20899 /* enum: Enable the SERDES BIST and set it to generate a 200MHz square wave */ 20900 #define MC_CMD_PCIE_TUNE_IN_BIST_SQUARE_WAVE 0x7 20901 /* Align the arguments to 32 bits */ 20902 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_RSVD_OFST 1 20903 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_RSVD_LEN 3 20904 /* Arguments specific to the operation */ 20905 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_OFST 4 20906 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_LEN 4 20907 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_MINNUM 0 20908 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_MAXNUM 62 20909 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_MAXNUM_MCDI2 254 20910 20911 /* MC_CMD_PCIE_TUNE_OUT msgresponse */ 20912 #define MC_CMD_PCIE_TUNE_OUT_LEN 0 20913 20914 /* MC_CMD_PCIE_TUNE_RXEQ_GET_IN msgrequest */ 20915 #define MC_CMD_PCIE_TUNE_RXEQ_GET_IN_LEN 4 20916 /* Requested operation */ 20917 #define MC_CMD_PCIE_TUNE_RXEQ_GET_IN_PCIE_TUNE_OP_OFST 0 20918 #define MC_CMD_PCIE_TUNE_RXEQ_GET_IN_PCIE_TUNE_OP_LEN 1 20919 /* Align the arguments to 32 bits */ 20920 #define MC_CMD_PCIE_TUNE_RXEQ_GET_IN_PCIE_TUNE_RSVD_OFST 1 20921 #define MC_CMD_PCIE_TUNE_RXEQ_GET_IN_PCIE_TUNE_RSVD_LEN 3 20922 20923 /* MC_CMD_PCIE_TUNE_RXEQ_GET_OUT msgresponse */ 20924 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LENMIN 4 20925 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LENMAX 252 20926 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LENMAX_MCDI2 1020 20927 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LEN(num) (0+4*(num)) 20928 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4) 20929 /* RXEQ Parameter */ 20930 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_OFST 0 20931 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_LEN 4 20932 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_MINNUM 1 20933 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_MAXNUM 63 20934 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_MAXNUM_MCDI2 255 20935 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_ID_OFST 0 20936 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_ID_LBN 0 20937 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_ID_WIDTH 8 20938 /* enum: Attenuation (0-15) */ 20939 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_ATT 0x0 20940 /* enum: CTLE Boost (0-15) */ 20941 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_BOOST 0x1 20942 /* enum: DFE Tap1 (0 - max negative, 64 - zero, 127 - max positive) */ 20943 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_TAP1 0x2 20944 /* enum: DFE Tap2 (0 - max negative, 32 - zero, 63 - max positive) */ 20945 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_TAP2 0x3 20946 /* enum: DFE Tap3 (0 - max negative, 32 - zero, 63 - max positive) */ 20947 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_TAP3 0x4 20948 /* enum: DFE Tap4 (0 - max negative, 32 - zero, 63 - max positive) */ 20949 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_TAP4 0x5 20950 /* enum: DFE Tap5 (0 - max negative, 32 - zero, 63 - max positive) */ 20951 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_TAP5 0x6 20952 /* enum: DFE DLev */ 20953 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_DLEV 0x7 20954 /* enum: Figure of Merit */ 20955 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_FOM 0x8 20956 /* enum: CTLE EQ Capacitor (HF Gain) */ 20957 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_CTLE_EQC 0x9 20958 /* enum: CTLE EQ Resistor (DC Gain) */ 20959 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_CTLE_EQRES 0xa 20960 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_LANE_OFST 0 20961 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_LANE_LBN 8 20962 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_LANE_WIDTH 5 20963 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_0 0x0 /* enum */ 20964 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_1 0x1 /* enum */ 20965 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_2 0x2 /* enum */ 20966 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_3 0x3 /* enum */ 20967 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_4 0x4 /* enum */ 20968 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_5 0x5 /* enum */ 20969 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_6 0x6 /* enum */ 20970 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_7 0x7 /* enum */ 20971 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_8 0x8 /* enum */ 20972 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_9 0x9 /* enum */ 20973 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_10 0xa /* enum */ 20974 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_11 0xb /* enum */ 20975 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_12 0xc /* enum */ 20976 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_13 0xd /* enum */ 20977 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_14 0xe /* enum */ 20978 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_15 0xf /* enum */ 20979 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_ALL 0x10 /* enum */ 20980 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_OFST 0 20981 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_LBN 13 20982 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_WIDTH 1 20983 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_RESERVED_OFST 0 20984 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_RESERVED_LBN 14 20985 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_RESERVED_WIDTH 10 20986 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_OFST 0 20987 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_LBN 24 20988 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_WIDTH 8 20989 20990 /* MC_CMD_PCIE_TUNE_RXEQ_SET_IN msgrequest */ 20991 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_LENMIN 8 20992 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_LENMAX 252 20993 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_LENMAX_MCDI2 1020 20994 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_LEN(num) (4+4*(num)) 20995 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_NUM(len) (((len)-4)/4) 20996 /* Requested operation */ 20997 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PCIE_TUNE_OP_OFST 0 20998 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PCIE_TUNE_OP_LEN 1 20999 /* Align the arguments to 32 bits */ 21000 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PCIE_TUNE_RSVD_OFST 1 21001 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PCIE_TUNE_RSVD_LEN 3 21002 /* RXEQ Parameter */ 21003 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_OFST 4 21004 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_LEN 4 21005 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_MINNUM 1 21006 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_MAXNUM 62 21007 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_MAXNUM_MCDI2 254 21008 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_ID_OFST 4 21009 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_ID_LBN 0 21010 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_ID_WIDTH 8 21011 /* Enum values, see field(s): */ 21012 /* MC_CMD_PCIE_TUNE_RXEQ_GET_OUT/PARAM_ID */ 21013 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_LANE_OFST 4 21014 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_LANE_LBN 8 21015 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_LANE_WIDTH 5 21016 /* Enum values, see field(s): */ 21017 /* MC_CMD_PCIE_TUNE_RXEQ_GET_OUT/PARAM_LANE */ 21018 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_OFST 4 21019 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_LBN 13 21020 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_WIDTH 1 21021 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED_OFST 4 21022 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED_LBN 14 21023 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED_WIDTH 2 21024 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_INITIAL_OFST 4 21025 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_INITIAL_LBN 16 21026 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_INITIAL_WIDTH 8 21027 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED2_OFST 4 21028 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED2_LBN 24 21029 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED2_WIDTH 8 21030 21031 /* MC_CMD_PCIE_TUNE_RXEQ_SET_OUT msgresponse */ 21032 #define MC_CMD_PCIE_TUNE_RXEQ_SET_OUT_LEN 0 21033 21034 /* MC_CMD_PCIE_TUNE_TXEQ_GET_IN msgrequest */ 21035 #define MC_CMD_PCIE_TUNE_TXEQ_GET_IN_LEN 4 21036 /* Requested operation */ 21037 #define MC_CMD_PCIE_TUNE_TXEQ_GET_IN_PCIE_TUNE_OP_OFST 0 21038 #define MC_CMD_PCIE_TUNE_TXEQ_GET_IN_PCIE_TUNE_OP_LEN 1 21039 /* Align the arguments to 32 bits */ 21040 #define MC_CMD_PCIE_TUNE_TXEQ_GET_IN_PCIE_TUNE_RSVD_OFST 1 21041 #define MC_CMD_PCIE_TUNE_TXEQ_GET_IN_PCIE_TUNE_RSVD_LEN 3 21042 21043 /* MC_CMD_PCIE_TUNE_TXEQ_GET_OUT msgresponse */ 21044 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_LENMIN 4 21045 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_LENMAX 252 21046 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_LENMAX_MCDI2 1020 21047 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_LEN(num) (0+4*(num)) 21048 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4) 21049 /* RXEQ Parameter */ 21050 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_OFST 0 21051 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_LEN 4 21052 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_MINNUM 1 21053 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_MAXNUM 63 21054 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_MAXNUM_MCDI2 255 21055 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_ID_OFST 0 21056 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_ID_LBN 0 21057 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_ID_WIDTH 8 21058 /* enum: TxMargin (PIPE) */ 21059 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_TXMARGIN 0x0 21060 /* enum: TxSwing (PIPE) */ 21061 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_TXSWING 0x1 21062 /* enum: De-emphasis coefficient C(-1) (PIPE) */ 21063 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_CM1 0x2 21064 /* enum: De-emphasis coefficient C(0) (PIPE) */ 21065 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_C0 0x3 21066 /* enum: De-emphasis coefficient C(+1) (PIPE) */ 21067 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_CP1 0x4 21068 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_LANE_OFST 0 21069 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_LANE_LBN 8 21070 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_LANE_WIDTH 4 21071 /* Enum values, see field(s): */ 21072 /* MC_CMD_PCIE_TUNE_RXEQ_GET_OUT/PARAM_LANE */ 21073 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_RESERVED_OFST 0 21074 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_RESERVED_LBN 12 21075 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_RESERVED_WIDTH 12 21076 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_CURRENT_OFST 0 21077 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_CURRENT_LBN 24 21078 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_CURRENT_WIDTH 8 21079 21080 /* MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN msgrequest */ 21081 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_LEN 8 21082 /* Requested operation */ 21083 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_PCIE_TUNE_OP_OFST 0 21084 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_PCIE_TUNE_OP_LEN 1 21085 /* Align the arguments to 32 bits */ 21086 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_PCIE_TUNE_RSVD_OFST 1 21087 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_PCIE_TUNE_RSVD_LEN 3 21088 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_LANE_OFST 4 21089 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_LANE_LEN 4 21090 21091 /* MC_CMD_PCIE_TUNE_START_EYE_PLOT_OUT msgresponse */ 21092 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_OUT_LEN 0 21093 21094 /* MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN msgrequest */ 21095 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN_LEN 4 21096 /* Requested operation */ 21097 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN_PCIE_TUNE_OP_OFST 0 21098 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN_PCIE_TUNE_OP_LEN 1 21099 /* Align the arguments to 32 bits */ 21100 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN_PCIE_TUNE_RSVD_OFST 1 21101 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN_PCIE_TUNE_RSVD_LEN 3 21102 21103 /* MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT msgresponse */ 21104 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_LENMIN 0 21105 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_LENMAX 252 21106 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_LENMAX_MCDI2 1020 21107 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_LEN(num) (0+2*(num)) 21108 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_NUM(len) (((len)-0)/2) 21109 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_OFST 0 21110 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_LEN 2 21111 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MINNUM 0 21112 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MAXNUM 126 21113 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MAXNUM_MCDI2 510 21114 21115 /* MC_CMD_PCIE_TUNE_BIST_SQUARE_WAVE_IN msgrequest */ 21116 #define MC_CMD_PCIE_TUNE_BIST_SQUARE_WAVE_IN_LEN 0 21117 21118 /* MC_CMD_PCIE_TUNE_BIST_SQUARE_WAVE_OUT msgrequest */ 21119 #define MC_CMD_PCIE_TUNE_BIST_SQUARE_WAVE_OUT_LEN 0 21120 21121 21122 /***********************************/ 21123 /* MC_CMD_LICENSING 21124 * Operations on the NVRAM_PARTITION_TYPE_LICENSE application license partition 21125 * - not used for V3 licensing 21126 */ 21127 #define MC_CMD_LICENSING 0xf3 21128 #define MC_CMD_LICENSING_MSGSET 0xf3 21129 #undef MC_CMD_0xf3_PRIVILEGE_CTG 21130 21131 #define MC_CMD_0xf3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21132 21133 /* MC_CMD_LICENSING_IN msgrequest */ 21134 #define MC_CMD_LICENSING_IN_LEN 4 21135 /* identifies the type of operation requested */ 21136 #define MC_CMD_LICENSING_IN_OP_OFST 0 21137 #define MC_CMD_LICENSING_IN_OP_LEN 4 21138 /* enum: re-read and apply licenses after a license key partition update; note 21139 * that this operation returns a zero-length response 21140 */ 21141 #define MC_CMD_LICENSING_IN_OP_UPDATE_LICENSE 0x0 21142 /* enum: report counts of installed licenses */ 21143 #define MC_CMD_LICENSING_IN_OP_GET_KEY_STATS 0x1 21144 21145 /* MC_CMD_LICENSING_OUT msgresponse */ 21146 #define MC_CMD_LICENSING_OUT_LEN 28 21147 /* count of application keys which are valid */ 21148 #define MC_CMD_LICENSING_OUT_VALID_APP_KEYS_OFST 0 21149 #define MC_CMD_LICENSING_OUT_VALID_APP_KEYS_LEN 4 21150 /* sum of UNVERIFIABLE_APP_KEYS + WRONG_NODE_APP_KEYS (for compatibility with 21151 * MC_CMD_FC_OP_LICENSE) 21152 */ 21153 #define MC_CMD_LICENSING_OUT_INVALID_APP_KEYS_OFST 4 21154 #define MC_CMD_LICENSING_OUT_INVALID_APP_KEYS_LEN 4 21155 /* count of application keys which are invalid due to being blacklisted */ 21156 #define MC_CMD_LICENSING_OUT_BLACKLISTED_APP_KEYS_OFST 8 21157 #define MC_CMD_LICENSING_OUT_BLACKLISTED_APP_KEYS_LEN 4 21158 /* count of application keys which are invalid due to being unverifiable */ 21159 #define MC_CMD_LICENSING_OUT_UNVERIFIABLE_APP_KEYS_OFST 12 21160 #define MC_CMD_LICENSING_OUT_UNVERIFIABLE_APP_KEYS_LEN 4 21161 /* count of application keys which are invalid due to being for the wrong node 21162 */ 21163 #define MC_CMD_LICENSING_OUT_WRONG_NODE_APP_KEYS_OFST 16 21164 #define MC_CMD_LICENSING_OUT_WRONG_NODE_APP_KEYS_LEN 4 21165 /* licensing state (for diagnostics; the exact meaning of the bits in this 21166 * field are private to the firmware) 21167 */ 21168 #define MC_CMD_LICENSING_OUT_LICENSING_STATE_OFST 20 21169 #define MC_CMD_LICENSING_OUT_LICENSING_STATE_LEN 4 21170 /* licensing subsystem self-test report (for manftest) */ 21171 #define MC_CMD_LICENSING_OUT_LICENSING_SELF_TEST_OFST 24 21172 #define MC_CMD_LICENSING_OUT_LICENSING_SELF_TEST_LEN 4 21173 /* enum: licensing subsystem self-test failed */ 21174 #define MC_CMD_LICENSING_OUT_SELF_TEST_FAIL 0x0 21175 /* enum: licensing subsystem self-test passed */ 21176 #define MC_CMD_LICENSING_OUT_SELF_TEST_PASS 0x1 21177 21178 21179 /***********************************/ 21180 /* MC_CMD_LICENSING_V3 21181 * Operations on the NVRAM_PARTITION_TYPE_LICENSE application license partition 21182 * - V3 licensing (Medford) 21183 */ 21184 #define MC_CMD_LICENSING_V3 0xd0 21185 #define MC_CMD_LICENSING_V3_MSGSET 0xd0 21186 #undef MC_CMD_0xd0_PRIVILEGE_CTG 21187 21188 #define MC_CMD_0xd0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21189 21190 /* MC_CMD_LICENSING_V3_IN msgrequest */ 21191 #define MC_CMD_LICENSING_V3_IN_LEN 4 21192 /* identifies the type of operation requested */ 21193 #define MC_CMD_LICENSING_V3_IN_OP_OFST 0 21194 #define MC_CMD_LICENSING_V3_IN_OP_LEN 4 21195 /* enum: re-read and apply licenses after a license key partition update; note 21196 * that this operation returns a zero-length response 21197 */ 21198 #define MC_CMD_LICENSING_V3_IN_OP_UPDATE_LICENSE 0x0 21199 /* enum: report counts of installed licenses Returns EAGAIN if license 21200 * processing (updating) has been started but not yet completed. 21201 */ 21202 #define MC_CMD_LICENSING_V3_IN_OP_REPORT_LICENSE 0x1 21203 21204 /* MC_CMD_LICENSING_V3_OUT msgresponse */ 21205 #define MC_CMD_LICENSING_V3_OUT_LEN 88 21206 /* count of keys which are valid */ 21207 #define MC_CMD_LICENSING_V3_OUT_VALID_KEYS_OFST 0 21208 #define MC_CMD_LICENSING_V3_OUT_VALID_KEYS_LEN 4 21209 /* sum of UNVERIFIABLE_KEYS + WRONG_NODE_KEYS (for compatibility with 21210 * MC_CMD_FC_OP_LICENSE) 21211 */ 21212 #define MC_CMD_LICENSING_V3_OUT_INVALID_KEYS_OFST 4 21213 #define MC_CMD_LICENSING_V3_OUT_INVALID_KEYS_LEN 4 21214 /* count of keys which are invalid due to being unverifiable */ 21215 #define MC_CMD_LICENSING_V3_OUT_UNVERIFIABLE_KEYS_OFST 8 21216 #define MC_CMD_LICENSING_V3_OUT_UNVERIFIABLE_KEYS_LEN 4 21217 /* count of keys which are invalid due to being for the wrong node */ 21218 #define MC_CMD_LICENSING_V3_OUT_WRONG_NODE_KEYS_OFST 12 21219 #define MC_CMD_LICENSING_V3_OUT_WRONG_NODE_KEYS_LEN 4 21220 /* licensing state (for diagnostics; the exact meaning of the bits in this 21221 * field are private to the firmware) 21222 */ 21223 #define MC_CMD_LICENSING_V3_OUT_LICENSING_STATE_OFST 16 21224 #define MC_CMD_LICENSING_V3_OUT_LICENSING_STATE_LEN 4 21225 /* licensing subsystem self-test report (for manftest) */ 21226 #define MC_CMD_LICENSING_V3_OUT_LICENSING_SELF_TEST_OFST 20 21227 #define MC_CMD_LICENSING_V3_OUT_LICENSING_SELF_TEST_LEN 4 21228 /* enum: licensing subsystem self-test failed */ 21229 #define MC_CMD_LICENSING_V3_OUT_SELF_TEST_FAIL 0x0 21230 /* enum: licensing subsystem self-test passed */ 21231 #define MC_CMD_LICENSING_V3_OUT_SELF_TEST_PASS 0x1 21232 /* bitmask of licensed applications */ 21233 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_OFST 24 21234 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LEN 8 21235 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_OFST 24 21236 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_LEN 4 21237 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_LBN 192 21238 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_WIDTH 32 21239 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_OFST 28 21240 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_LEN 4 21241 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_LBN 224 21242 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_WIDTH 32 21243 /* reserved for future use */ 21244 #define MC_CMD_LICENSING_V3_OUT_RESERVED_0_OFST 32 21245 #define MC_CMD_LICENSING_V3_OUT_RESERVED_0_LEN 24 21246 /* bitmask of licensed features */ 21247 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_OFST 56 21248 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LEN 8 21249 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_OFST 56 21250 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_LEN 4 21251 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_LBN 448 21252 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_WIDTH 32 21253 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_OFST 60 21254 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_LEN 4 21255 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_LBN 480 21256 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_WIDTH 32 21257 /* reserved for future use */ 21258 #define MC_CMD_LICENSING_V3_OUT_RESERVED_1_OFST 64 21259 #define MC_CMD_LICENSING_V3_OUT_RESERVED_1_LEN 24 21260 21261 21262 /***********************************/ 21263 /* MC_CMD_LICENSING_GET_ID_V3 21264 * Get ID and type from the NVRAM_PARTITION_TYPE_LICENSE application license 21265 * partition - V3 licensing (Medford) 21266 */ 21267 #define MC_CMD_LICENSING_GET_ID_V3 0xd1 21268 #define MC_CMD_LICENSING_GET_ID_V3_MSGSET 0xd1 21269 #undef MC_CMD_0xd1_PRIVILEGE_CTG 21270 21271 #define MC_CMD_0xd1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21272 21273 /* MC_CMD_LICENSING_GET_ID_V3_IN msgrequest */ 21274 #define MC_CMD_LICENSING_GET_ID_V3_IN_LEN 0 21275 21276 /* MC_CMD_LICENSING_GET_ID_V3_OUT msgresponse */ 21277 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LENMIN 8 21278 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LENMAX 252 21279 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LENMAX_MCDI2 1020 21280 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LEN(num) (8+1*(num)) 21281 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_NUM(len) (((len)-8)/1) 21282 /* type of license (eg 3) */ 21283 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_TYPE_OFST 0 21284 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_TYPE_LEN 4 21285 /* length of the license ID (in bytes) */ 21286 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_LENGTH_OFST 4 21287 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_LENGTH_LEN 4 21288 /* the unique license ID of the adapter */ 21289 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_OFST 8 21290 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_LEN 1 21291 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_MINNUM 0 21292 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_MAXNUM 244 21293 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_MAXNUM_MCDI2 1012 21294 21295 21296 /***********************************/ 21297 /* MC_CMD_MC2MC_PROXY 21298 * Execute an arbitrary MCDI command on the slave MC of a dual-core device. 21299 * This will fail on a single-core system. 21300 */ 21301 #define MC_CMD_MC2MC_PROXY 0xf4 21302 #define MC_CMD_MC2MC_PROXY_MSGSET 0xf4 21303 #undef MC_CMD_0xf4_PRIVILEGE_CTG 21304 21305 #define MC_CMD_0xf4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21306 21307 /* MC_CMD_MC2MC_PROXY_IN msgrequest */ 21308 #define MC_CMD_MC2MC_PROXY_IN_LEN 0 21309 21310 /* MC_CMD_MC2MC_PROXY_OUT msgresponse */ 21311 #define MC_CMD_MC2MC_PROXY_OUT_LEN 0 21312 21313 21314 /***********************************/ 21315 /* MC_CMD_GET_LICENSED_APP_STATE 21316 * Query the state of an individual licensed application. (Note that the actual 21317 * state may be invalidated by the MC_CMD_LICENSING OP_UPDATE_LICENSE operation 21318 * or a reboot of the MC.) Not used for V3 licensing 21319 */ 21320 #define MC_CMD_GET_LICENSED_APP_STATE 0xf5 21321 #define MC_CMD_GET_LICENSED_APP_STATE_MSGSET 0xf5 21322 #undef MC_CMD_0xf5_PRIVILEGE_CTG 21323 21324 #define MC_CMD_0xf5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21325 21326 /* MC_CMD_GET_LICENSED_APP_STATE_IN msgrequest */ 21327 #define MC_CMD_GET_LICENSED_APP_STATE_IN_LEN 4 21328 /* application ID to query (LICENSED_APP_ID_xxx) */ 21329 #define MC_CMD_GET_LICENSED_APP_STATE_IN_APP_ID_OFST 0 21330 #define MC_CMD_GET_LICENSED_APP_STATE_IN_APP_ID_LEN 4 21331 21332 /* MC_CMD_GET_LICENSED_APP_STATE_OUT msgresponse */ 21333 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_LEN 4 21334 /* state of this application */ 21335 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_STATE_OFST 0 21336 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_STATE_LEN 4 21337 /* enum: no (or invalid) license is present for the application */ 21338 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_NOT_LICENSED 0x0 21339 /* enum: a valid license is present for the application */ 21340 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_LICENSED 0x1 21341 21342 21343 /***********************************/ 21344 /* MC_CMD_GET_LICENSED_V3_APP_STATE 21345 * Query the state of an individual licensed application. (Note that the actual 21346 * state may be invalidated by the MC_CMD_LICENSING_V3 OP_UPDATE_LICENSE 21347 * operation or a reboot of the MC.) Used for V3 licensing (Medford) 21348 */ 21349 #define MC_CMD_GET_LICENSED_V3_APP_STATE 0xd2 21350 #define MC_CMD_GET_LICENSED_V3_APP_STATE_MSGSET 0xd2 21351 #undef MC_CMD_0xd2_PRIVILEGE_CTG 21352 21353 #define MC_CMD_0xd2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21354 21355 /* MC_CMD_GET_LICENSED_V3_APP_STATE_IN msgrequest */ 21356 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_LEN 8 21357 /* application ID to query (LICENSED_V3_APPS_xxx) expressed as a single bit 21358 * mask 21359 */ 21360 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_OFST 0 21361 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LEN 8 21362 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LO_OFST 0 21363 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LO_LEN 4 21364 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LO_LBN 0 21365 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LO_WIDTH 32 21366 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_HI_OFST 4 21367 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_HI_LEN 4 21368 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_HI_LBN 32 21369 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_HI_WIDTH 32 21370 21371 /* MC_CMD_GET_LICENSED_V3_APP_STATE_OUT msgresponse */ 21372 #define MC_CMD_GET_LICENSED_V3_APP_STATE_OUT_LEN 4 21373 /* state of this application */ 21374 #define MC_CMD_GET_LICENSED_V3_APP_STATE_OUT_STATE_OFST 0 21375 #define MC_CMD_GET_LICENSED_V3_APP_STATE_OUT_STATE_LEN 4 21376 /* enum: no (or invalid) license is present for the application */ 21377 #define MC_CMD_GET_LICENSED_V3_APP_STATE_OUT_NOT_LICENSED 0x0 21378 /* enum: a valid license is present for the application */ 21379 #define MC_CMD_GET_LICENSED_V3_APP_STATE_OUT_LICENSED 0x1 21380 21381 21382 /***********************************/ 21383 /* MC_CMD_GET_LICENSED_V3_FEATURE_STATES 21384 * Query the state of an one or more licensed features. (Note that the actual 21385 * state may be invalidated by the MC_CMD_LICENSING_V3 OP_UPDATE_LICENSE 21386 * operation or a reboot of the MC.) Used for V3 licensing (Medford) 21387 */ 21388 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES 0xd3 21389 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_MSGSET 0xd3 21390 #undef MC_CMD_0xd3_PRIVILEGE_CTG 21391 21392 #define MC_CMD_0xd3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21393 21394 /* MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN msgrequest */ 21395 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_LEN 8 21396 /* features to query (LICENSED_V3_FEATURES_xxx) expressed as a mask with one or 21397 * more bits set 21398 */ 21399 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_OFST 0 21400 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LEN 8 21401 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LO_OFST 0 21402 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LO_LEN 4 21403 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LO_LBN 0 21404 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LO_WIDTH 32 21405 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_HI_OFST 4 21406 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_HI_LEN 4 21407 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_HI_LBN 32 21408 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_HI_WIDTH 32 21409 21410 /* MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT msgresponse */ 21411 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_LEN 8 21412 /* states of these features - bit set for licensed, clear for not licensed */ 21413 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_OFST 0 21414 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LEN 8 21415 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LO_OFST 0 21416 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LO_LEN 4 21417 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LO_LBN 0 21418 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LO_WIDTH 32 21419 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_HI_OFST 4 21420 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_HI_LEN 4 21421 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_HI_LBN 32 21422 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_HI_WIDTH 32 21423 21424 21425 /***********************************/ 21426 /* MC_CMD_LICENSED_APP_OP 21427 * Perform an action for an individual licensed application - not used for V3 21428 * licensing. 21429 */ 21430 #define MC_CMD_LICENSED_APP_OP 0xf6 21431 #define MC_CMD_LICENSED_APP_OP_MSGSET 0xf6 21432 #undef MC_CMD_0xf6_PRIVILEGE_CTG 21433 21434 #define MC_CMD_0xf6_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21435 21436 /* MC_CMD_LICENSED_APP_OP_IN msgrequest */ 21437 #define MC_CMD_LICENSED_APP_OP_IN_LENMIN 8 21438 #define MC_CMD_LICENSED_APP_OP_IN_LENMAX 252 21439 #define MC_CMD_LICENSED_APP_OP_IN_LENMAX_MCDI2 1020 21440 #define MC_CMD_LICENSED_APP_OP_IN_LEN(num) (8+4*(num)) 21441 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_NUM(len) (((len)-8)/4) 21442 /* application ID */ 21443 #define MC_CMD_LICENSED_APP_OP_IN_APP_ID_OFST 0 21444 #define MC_CMD_LICENSED_APP_OP_IN_APP_ID_LEN 4 21445 /* the type of operation requested */ 21446 #define MC_CMD_LICENSED_APP_OP_IN_OP_OFST 4 21447 #define MC_CMD_LICENSED_APP_OP_IN_OP_LEN 4 21448 /* enum: validate application */ 21449 #define MC_CMD_LICENSED_APP_OP_IN_OP_VALIDATE 0x0 21450 /* enum: mask application */ 21451 #define MC_CMD_LICENSED_APP_OP_IN_OP_MASK 0x1 21452 /* arguments specific to this particular operation */ 21453 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_OFST 8 21454 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_LEN 4 21455 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_MINNUM 0 21456 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_MAXNUM 61 21457 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_MAXNUM_MCDI2 253 21458 21459 /* MC_CMD_LICENSED_APP_OP_OUT msgresponse */ 21460 #define MC_CMD_LICENSED_APP_OP_OUT_LENMIN 0 21461 #define MC_CMD_LICENSED_APP_OP_OUT_LENMAX 252 21462 #define MC_CMD_LICENSED_APP_OP_OUT_LENMAX_MCDI2 1020 21463 #define MC_CMD_LICENSED_APP_OP_OUT_LEN(num) (0+4*(num)) 21464 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_NUM(len) (((len)-0)/4) 21465 /* result specific to this particular operation */ 21466 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_OFST 0 21467 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_LEN 4 21468 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_MINNUM 0 21469 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_MAXNUM 63 21470 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_MAXNUM_MCDI2 255 21471 21472 /* MC_CMD_LICENSED_APP_OP_VALIDATE_IN msgrequest */ 21473 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_LEN 72 21474 /* application ID */ 21475 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_APP_ID_OFST 0 21476 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_APP_ID_LEN 4 21477 /* the type of operation requested */ 21478 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_OP_OFST 4 21479 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_OP_LEN 4 21480 /* validation challenge */ 21481 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_CHALLENGE_OFST 8 21482 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_CHALLENGE_LEN 64 21483 21484 /* MC_CMD_LICENSED_APP_OP_VALIDATE_OUT msgresponse */ 21485 #define MC_CMD_LICENSED_APP_OP_VALIDATE_OUT_LEN 68 21486 /* feature expiry (time_t) */ 21487 #define MC_CMD_LICENSED_APP_OP_VALIDATE_OUT_EXPIRY_OFST 0 21488 #define MC_CMD_LICENSED_APP_OP_VALIDATE_OUT_EXPIRY_LEN 4 21489 /* validation response */ 21490 #define MC_CMD_LICENSED_APP_OP_VALIDATE_OUT_RESPONSE_OFST 4 21491 #define MC_CMD_LICENSED_APP_OP_VALIDATE_OUT_RESPONSE_LEN 64 21492 21493 /* MC_CMD_LICENSED_APP_OP_MASK_IN msgrequest */ 21494 #define MC_CMD_LICENSED_APP_OP_MASK_IN_LEN 12 21495 /* application ID */ 21496 #define MC_CMD_LICENSED_APP_OP_MASK_IN_APP_ID_OFST 0 21497 #define MC_CMD_LICENSED_APP_OP_MASK_IN_APP_ID_LEN 4 21498 /* the type of operation requested */ 21499 #define MC_CMD_LICENSED_APP_OP_MASK_IN_OP_OFST 4 21500 #define MC_CMD_LICENSED_APP_OP_MASK_IN_OP_LEN 4 21501 /* flag */ 21502 #define MC_CMD_LICENSED_APP_OP_MASK_IN_FLAG_OFST 8 21503 #define MC_CMD_LICENSED_APP_OP_MASK_IN_FLAG_LEN 4 21504 21505 /* MC_CMD_LICENSED_APP_OP_MASK_OUT msgresponse */ 21506 #define MC_CMD_LICENSED_APP_OP_MASK_OUT_LEN 0 21507 21508 21509 /***********************************/ 21510 /* MC_CMD_LICENSED_V3_VALIDATE_APP 21511 * Perform validation for an individual licensed application - V3 licensing 21512 * (Medford) 21513 */ 21514 #define MC_CMD_LICENSED_V3_VALIDATE_APP 0xd4 21515 #define MC_CMD_LICENSED_V3_VALIDATE_APP_MSGSET 0xd4 21516 #undef MC_CMD_0xd4_PRIVILEGE_CTG 21517 21518 #define MC_CMD_0xd4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21519 21520 /* MC_CMD_LICENSED_V3_VALIDATE_APP_IN msgrequest */ 21521 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_LEN 56 21522 /* challenge for validation (384 bits) */ 21523 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_CHALLENGE_OFST 0 21524 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_CHALLENGE_LEN 48 21525 /* application ID expressed as a single bit mask */ 21526 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_OFST 48 21527 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LEN 8 21528 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LO_OFST 48 21529 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LO_LEN 4 21530 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LO_LBN 384 21531 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LO_WIDTH 32 21532 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_HI_OFST 52 21533 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_HI_LEN 4 21534 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_HI_LBN 416 21535 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_HI_WIDTH 32 21536 21537 /* MC_CMD_LICENSED_V3_VALIDATE_APP_OUT msgresponse */ 21538 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_LEN 116 21539 /* validation response to challenge in the form of ECDSA signature consisting 21540 * of two 384-bit integers, r and s, in big-endian order. The signature signs a 21541 * SHA-384 digest of a message constructed from the concatenation of the input 21542 * message and the remaining fields of this output message, e.g. challenge[48 21543 * bytes] ... expiry_time[4 bytes] ... 21544 */ 21545 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_RESPONSE_OFST 0 21546 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_RESPONSE_LEN 96 21547 /* application expiry time */ 21548 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_TIME_OFST 96 21549 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_TIME_LEN 4 21550 /* application expiry units */ 21551 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_UNITS_OFST 100 21552 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_UNITS_LEN 4 21553 /* enum: expiry units are accounting units */ 21554 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_UNIT_ACC 0x0 21555 /* enum: expiry units are calendar days */ 21556 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_UNIT_DAYS 0x1 21557 /* base MAC address of the NIC stored in NVRAM (note that this is a constant 21558 * value for a given NIC regardless which function is calling, effectively this 21559 * is PF0 base MAC address) 21560 */ 21561 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_BASE_MACADDR_OFST 104 21562 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_BASE_MACADDR_LEN 6 21563 /* MAC address of v-adaptor associated with the client. If no such v-adapator 21564 * exists, then the field is filled with 0xFF. 21565 */ 21566 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_VADAPTOR_MACADDR_OFST 110 21567 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_VADAPTOR_MACADDR_LEN 6 21568 21569 21570 /***********************************/ 21571 /* MC_CMD_LICENSED_V3_MASK_FEATURES 21572 * Mask features - V3 licensing (Medford) 21573 */ 21574 #define MC_CMD_LICENSED_V3_MASK_FEATURES 0xd5 21575 #define MC_CMD_LICENSED_V3_MASK_FEATURES_MSGSET 0xd5 21576 #undef MC_CMD_0xd5_PRIVILEGE_CTG 21577 21578 #define MC_CMD_0xd5_PRIVILEGE_CTG SRIOV_CTG_ADMIN 21579 21580 /* MC_CMD_LICENSED_V3_MASK_FEATURES_IN msgrequest */ 21581 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_LEN 12 21582 /* mask to be applied to features to be changed */ 21583 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_OFST 0 21584 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LEN 8 21585 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LO_OFST 0 21586 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LO_LEN 4 21587 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LO_LBN 0 21588 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LO_WIDTH 32 21589 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_HI_OFST 4 21590 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_HI_LEN 4 21591 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_HI_LBN 32 21592 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_HI_WIDTH 32 21593 /* whether to turn on or turn off the masked features */ 21594 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_FLAG_OFST 8 21595 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_FLAG_LEN 4 21596 /* enum: turn the features off */ 21597 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_OFF 0x0 21598 /* enum: turn the features back on */ 21599 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_ON 0x1 21600 21601 /* MC_CMD_LICENSED_V3_MASK_FEATURES_OUT msgresponse */ 21602 #define MC_CMD_LICENSED_V3_MASK_FEATURES_OUT_LEN 0 21603 21604 21605 /***********************************/ 21606 /* MC_CMD_LICENSING_V3_TEMPORARY 21607 * Perform operations to support installation of a single temporary license in 21608 * the adapter, in addition to those found in the licensing partition. See 21609 * SF-116124-SW for an overview of how this could be used. The license is 21610 * stored in MC persistent data and so will survive a MC reboot, but will be 21611 * erased when the adapter is power cycled 21612 */ 21613 #define MC_CMD_LICENSING_V3_TEMPORARY 0xd6 21614 #define MC_CMD_LICENSING_V3_TEMPORARY_MSGSET 0xd6 21615 #undef MC_CMD_0xd6_PRIVILEGE_CTG 21616 21617 #define MC_CMD_0xd6_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 21618 21619 /* MC_CMD_LICENSING_V3_TEMPORARY_IN msgrequest */ 21620 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_LEN 4 21621 /* operation code */ 21622 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_OP_OFST 0 21623 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_OP_LEN 4 21624 /* enum: install a new license, overwriting any existing temporary license. 21625 * This is an asynchronous operation owing to the time taken to validate an 21626 * ECDSA license 21627 */ 21628 #define MC_CMD_LICENSING_V3_TEMPORARY_SET 0x0 21629 /* enum: clear the license immediately rather than waiting for the next power 21630 * cycle 21631 */ 21632 #define MC_CMD_LICENSING_V3_TEMPORARY_CLEAR 0x1 21633 /* enum: get the status of the asynchronous MC_CMD_LICENSING_V3_TEMPORARY_SET 21634 * operation 21635 */ 21636 #define MC_CMD_LICENSING_V3_TEMPORARY_STATUS 0x2 21637 21638 /* MC_CMD_LICENSING_V3_TEMPORARY_IN_SET msgrequest */ 21639 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_SET_LEN 164 21640 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_SET_OP_OFST 0 21641 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_SET_OP_LEN 4 21642 /* ECDSA license and signature */ 21643 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_SET_LICENSE_OFST 4 21644 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_SET_LICENSE_LEN 160 21645 21646 /* MC_CMD_LICENSING_V3_TEMPORARY_IN_CLEAR msgrequest */ 21647 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_CLEAR_LEN 4 21648 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_CLEAR_OP_OFST 0 21649 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_CLEAR_OP_LEN 4 21650 21651 /* MC_CMD_LICENSING_V3_TEMPORARY_IN_STATUS msgrequest */ 21652 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_STATUS_LEN 4 21653 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_STATUS_OP_OFST 0 21654 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_STATUS_OP_LEN 4 21655 21656 /* MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS msgresponse */ 21657 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LEN 12 21658 /* status code */ 21659 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_STATUS_OFST 0 21660 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_STATUS_LEN 4 21661 /* enum: finished validating and installing license */ 21662 #define MC_CMD_LICENSING_V3_TEMPORARY_STATUS_OK 0x0 21663 /* enum: license validation and installation in progress */ 21664 #define MC_CMD_LICENSING_V3_TEMPORARY_STATUS_IN_PROGRESS 0x1 21665 /* enum: licensing error. More specific error messages are not provided to 21666 * avoid exposing details of the licensing system to the client 21667 */ 21668 #define MC_CMD_LICENSING_V3_TEMPORARY_STATUS_ERROR 0x2 21669 /* bitmask of licensed features */ 21670 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_OFST 4 21671 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LEN 8 21672 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LO_OFST 4 21673 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LO_LEN 4 21674 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LO_LBN 32 21675 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LO_WIDTH 32 21676 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_HI_OFST 8 21677 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_HI_LEN 4 21678 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_HI_LBN 64 21679 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_HI_WIDTH 32 21680 21681 21682 /***********************************/ 21683 /* MC_CMD_SET_PORT_SNIFF_CONFIG 21684 * Configure RX port sniffing for the physical port associated with the calling 21685 * function. Only a privileged function may change the port sniffing 21686 * configuration. A copy of all traffic delivered to the host (non-promiscuous 21687 * mode) or all traffic arriving at the port (promiscuous mode) may be 21688 * delivered to a specific queue, or a set of queues with RSS. 21689 */ 21690 #define MC_CMD_SET_PORT_SNIFF_CONFIG 0xf7 21691 #define MC_CMD_SET_PORT_SNIFF_CONFIG_MSGSET 0xf7 21692 #undef MC_CMD_0xf7_PRIVILEGE_CTG 21693 21694 #define MC_CMD_0xf7_PRIVILEGE_CTG SRIOV_CTG_ADMIN 21695 21696 /* MC_CMD_SET_PORT_SNIFF_CONFIG_IN msgrequest */ 21697 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_LEN 16 21698 /* configuration flags */ 21699 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_FLAGS_OFST 0 21700 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_FLAGS_LEN 4 21701 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_ENABLE_OFST 0 21702 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_ENABLE_LBN 0 21703 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_ENABLE_WIDTH 1 21704 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_PROMISCUOUS_OFST 0 21705 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_PROMISCUOUS_LBN 1 21706 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_PROMISCUOUS_WIDTH 1 21707 /* receive queue handle (for RSS mode, this is the base queue) */ 21708 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_QUEUE_OFST 4 21709 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_QUEUE_LEN 4 21710 /* receive mode */ 21711 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_MODE_OFST 8 21712 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_MODE_LEN 4 21713 /* enum: receive to just the specified queue */ 21714 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_MODE_SIMPLE 0x0 21715 /* enum: receive to multiple queues using RSS context */ 21716 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_MODE_RSS 0x1 21717 /* RSS context (for RX_MODE_RSS) as returned by MC_CMD_RSS_CONTEXT_ALLOC. Note 21718 * that these handles should be considered opaque to the host, although a value 21719 * of 0xFFFFFFFF is guaranteed never to be a valid handle. 21720 */ 21721 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_CONTEXT_OFST 12 21722 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_CONTEXT_LEN 4 21723 21724 /* MC_CMD_SET_PORT_SNIFF_CONFIG_OUT msgresponse */ 21725 #define MC_CMD_SET_PORT_SNIFF_CONFIG_OUT_LEN 0 21726 21727 21728 /***********************************/ 21729 /* MC_CMD_GET_PORT_SNIFF_CONFIG 21730 * Obtain the current RX port sniffing configuration for the physical port 21731 * associated with the calling function. Only a privileged function may read 21732 * the configuration. 21733 */ 21734 #define MC_CMD_GET_PORT_SNIFF_CONFIG 0xf8 21735 #define MC_CMD_GET_PORT_SNIFF_CONFIG_MSGSET 0xf8 21736 #undef MC_CMD_0xf8_PRIVILEGE_CTG 21737 21738 #define MC_CMD_0xf8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21739 21740 /* MC_CMD_GET_PORT_SNIFF_CONFIG_IN msgrequest */ 21741 #define MC_CMD_GET_PORT_SNIFF_CONFIG_IN_LEN 0 21742 21743 /* MC_CMD_GET_PORT_SNIFF_CONFIG_OUT msgresponse */ 21744 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_LEN 16 21745 /* configuration flags */ 21746 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_FLAGS_OFST 0 21747 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_FLAGS_LEN 4 21748 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_ENABLE_OFST 0 21749 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_ENABLE_LBN 0 21750 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_ENABLE_WIDTH 1 21751 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_PROMISCUOUS_OFST 0 21752 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_PROMISCUOUS_LBN 1 21753 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_PROMISCUOUS_WIDTH 1 21754 /* receiving queue handle (for RSS mode, this is the base queue) */ 21755 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_QUEUE_OFST 4 21756 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_QUEUE_LEN 4 21757 /* receive mode */ 21758 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_MODE_OFST 8 21759 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_MODE_LEN 4 21760 /* enum: receiving to just the specified queue */ 21761 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_MODE_SIMPLE 0x0 21762 /* enum: receiving to multiple queues using RSS context */ 21763 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_MODE_RSS 0x1 21764 /* RSS context (for RX_MODE_RSS) */ 21765 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_CONTEXT_OFST 12 21766 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_CONTEXT_LEN 4 21767 21768 21769 /***********************************/ 21770 /* MC_CMD_SET_PARSER_DISP_CONFIG 21771 * Change configuration related to the parser-dispatcher subsystem. 21772 */ 21773 #define MC_CMD_SET_PARSER_DISP_CONFIG 0xf9 21774 #define MC_CMD_SET_PARSER_DISP_CONFIG_MSGSET 0xf9 21775 #undef MC_CMD_0xf9_PRIVILEGE_CTG 21776 21777 #define MC_CMD_0xf9_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21778 21779 /* MC_CMD_SET_PARSER_DISP_CONFIG_IN msgrequest */ 21780 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LENMIN 12 21781 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LENMAX 252 21782 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LENMAX_MCDI2 1020 21783 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LEN(num) (8+4*(num)) 21784 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_NUM(len) (((len)-8)/4) 21785 /* the type of configuration setting to change */ 21786 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_TYPE_OFST 0 21787 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_TYPE_LEN 4 21788 /* enum: Per-TXQ enable for multicast UDP destination lookup for possible 21789 * internal loopback. (ENTITY is a queue handle, VALUE is a single boolean.) 21790 */ 21791 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_TXQ_MCAST_UDP_DST_LOOKUP_EN 0x0 21792 /* enum: Per-v-adaptor enable for suppression of self-transmissions on the 21793 * internal loopback path. (ENTITY is an EVB_PORT_ID, VALUE is a single 21794 * boolean.) 21795 */ 21796 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VADAPTOR_SUPPRESS_SELF_TX 0x1 21797 /* handle for the entity to update: queue handle, EVB port ID, etc. depending 21798 * on the type of configuration setting being changed 21799 */ 21800 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_ENTITY_OFST 4 21801 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_ENTITY_LEN 4 21802 /* new value: the details depend on the type of configuration setting being 21803 * changed 21804 */ 21805 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_OFST 8 21806 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_LEN 4 21807 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_MINNUM 1 21808 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_MAXNUM 61 21809 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_MAXNUM_MCDI2 253 21810 21811 /* MC_CMD_SET_PARSER_DISP_CONFIG_OUT msgresponse */ 21812 #define MC_CMD_SET_PARSER_DISP_CONFIG_OUT_LEN 0 21813 21814 21815 /***********************************/ 21816 /* MC_CMD_GET_PARSER_DISP_CONFIG 21817 * Read configuration related to the parser-dispatcher subsystem. 21818 */ 21819 #define MC_CMD_GET_PARSER_DISP_CONFIG 0xfa 21820 #define MC_CMD_GET_PARSER_DISP_CONFIG_MSGSET 0xfa 21821 #undef MC_CMD_0xfa_PRIVILEGE_CTG 21822 21823 #define MC_CMD_0xfa_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21824 21825 /* MC_CMD_GET_PARSER_DISP_CONFIG_IN msgrequest */ 21826 #define MC_CMD_GET_PARSER_DISP_CONFIG_IN_LEN 8 21827 /* the type of configuration setting to read */ 21828 #define MC_CMD_GET_PARSER_DISP_CONFIG_IN_TYPE_OFST 0 21829 #define MC_CMD_GET_PARSER_DISP_CONFIG_IN_TYPE_LEN 4 21830 /* Enum values, see field(s): */ 21831 /* MC_CMD_SET_PARSER_DISP_CONFIG/MC_CMD_SET_PARSER_DISP_CONFIG_IN/TYPE */ 21832 /* handle for the entity to query: queue handle, EVB port ID, etc. depending on 21833 * the type of configuration setting being read 21834 */ 21835 #define MC_CMD_GET_PARSER_DISP_CONFIG_IN_ENTITY_OFST 4 21836 #define MC_CMD_GET_PARSER_DISP_CONFIG_IN_ENTITY_LEN 4 21837 21838 /* MC_CMD_GET_PARSER_DISP_CONFIG_OUT msgresponse */ 21839 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_LENMIN 4 21840 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_LENMAX 252 21841 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_LENMAX_MCDI2 1020 21842 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_LEN(num) (0+4*(num)) 21843 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_NUM(len) (((len)-0)/4) 21844 /* current value: the details depend on the type of configuration setting being 21845 * read 21846 */ 21847 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_OFST 0 21848 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_LEN 4 21849 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_MINNUM 1 21850 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_MAXNUM 63 21851 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_MAXNUM_MCDI2 255 21852 21853 21854 /***********************************/ 21855 /* MC_CMD_SET_TX_PORT_SNIFF_CONFIG 21856 * Configure TX port sniffing for the physical port associated with the calling 21857 * function. Only a privileged function may change the port sniffing 21858 * configuration. A copy of all traffic transmitted through the port may be 21859 * delivered to a specific queue, or a set of queues with RSS. Note that these 21860 * packets are delivered with transmit timestamps in the packet prefix, not 21861 * receive timestamps, so it is likely that the queue(s) will need to be 21862 * dedicated as TX sniff receivers. 21863 */ 21864 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG 0xfb 21865 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_MSGSET 0xfb 21866 #undef MC_CMD_0xfb_PRIVILEGE_CTG 21867 21868 #define MC_CMD_0xfb_PRIVILEGE_CTG SRIOV_CTG_ADMIN 21869 21870 /* MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN msgrequest */ 21871 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_LEN 16 21872 /* configuration flags */ 21873 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_FLAGS_OFST 0 21874 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_FLAGS_LEN 4 21875 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_ENABLE_OFST 0 21876 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_ENABLE_LBN 0 21877 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_ENABLE_WIDTH 1 21878 /* receive queue handle (for RSS mode, this is the base queue) */ 21879 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_QUEUE_OFST 4 21880 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_QUEUE_LEN 4 21881 /* receive mode */ 21882 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_MODE_OFST 8 21883 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_MODE_LEN 4 21884 /* enum: receive to just the specified queue */ 21885 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_MODE_SIMPLE 0x0 21886 /* enum: receive to multiple queues using RSS context */ 21887 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_MODE_RSS 0x1 21888 /* RSS context (for RX_MODE_RSS) as returned by MC_CMD_RSS_CONTEXT_ALLOC. Note 21889 * that these handles should be considered opaque to the host, although a value 21890 * of 0xFFFFFFFF is guaranteed never to be a valid handle. 21891 */ 21892 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_CONTEXT_OFST 12 21893 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_CONTEXT_LEN 4 21894 21895 /* MC_CMD_SET_TX_PORT_SNIFF_CONFIG_OUT msgresponse */ 21896 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_OUT_LEN 0 21897 21898 21899 /***********************************/ 21900 /* MC_CMD_GET_TX_PORT_SNIFF_CONFIG 21901 * Obtain the current TX port sniffing configuration for the physical port 21902 * associated with the calling function. Only a privileged function may read 21903 * the configuration. 21904 */ 21905 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG 0xfc 21906 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_MSGSET 0xfc 21907 #undef MC_CMD_0xfc_PRIVILEGE_CTG 21908 21909 #define MC_CMD_0xfc_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21910 21911 /* MC_CMD_GET_TX_PORT_SNIFF_CONFIG_IN msgrequest */ 21912 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_IN_LEN 0 21913 21914 /* MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT msgresponse */ 21915 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_LEN 16 21916 /* configuration flags */ 21917 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_FLAGS_OFST 0 21918 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_FLAGS_LEN 4 21919 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_ENABLE_OFST 0 21920 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_ENABLE_LBN 0 21921 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_ENABLE_WIDTH 1 21922 /* receiving queue handle (for RSS mode, this is the base queue) */ 21923 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_QUEUE_OFST 4 21924 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_QUEUE_LEN 4 21925 /* receive mode */ 21926 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_MODE_OFST 8 21927 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_MODE_LEN 4 21928 /* enum: receiving to just the specified queue */ 21929 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_MODE_SIMPLE 0x0 21930 /* enum: receiving to multiple queues using RSS context */ 21931 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_MODE_RSS 0x1 21932 /* RSS context (for RX_MODE_RSS) */ 21933 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_CONTEXT_OFST 12 21934 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_CONTEXT_LEN 4 21935 21936 21937 /***********************************/ 21938 /* MC_CMD_RMON_STATS_RX_ERRORS 21939 * Per queue rx error stats. 21940 */ 21941 #define MC_CMD_RMON_STATS_RX_ERRORS 0xfe 21942 #define MC_CMD_RMON_STATS_RX_ERRORS_MSGSET 0xfe 21943 #undef MC_CMD_0xfe_PRIVILEGE_CTG 21944 21945 #define MC_CMD_0xfe_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21946 21947 /* MC_CMD_RMON_STATS_RX_ERRORS_IN msgrequest */ 21948 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_LEN 8 21949 /* The rx queue to get stats for. */ 21950 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_RX_QUEUE_OFST 0 21951 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_RX_QUEUE_LEN 4 21952 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_FLAGS_OFST 4 21953 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_FLAGS_LEN 4 21954 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_RST_OFST 4 21955 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_RST_LBN 0 21956 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_RST_WIDTH 1 21957 21958 /* MC_CMD_RMON_STATS_RX_ERRORS_OUT msgresponse */ 21959 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_LEN 16 21960 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_CRC_ERRORS_OFST 0 21961 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_CRC_ERRORS_LEN 4 21962 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_TRUNC_ERRORS_OFST 4 21963 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_TRUNC_ERRORS_LEN 4 21964 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_RX_NO_DESC_DROPS_OFST 8 21965 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_RX_NO_DESC_DROPS_LEN 4 21966 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_RX_ABORT_OFST 12 21967 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_RX_ABORT_LEN 4 21968 21969 21970 /***********************************/ 21971 /* MC_CMD_GET_PCIE_RESOURCE_INFO 21972 * Find out about available PCIE resources 21973 */ 21974 #define MC_CMD_GET_PCIE_RESOURCE_INFO 0xfd 21975 #define MC_CMD_GET_PCIE_RESOURCE_INFO_MSGSET 0xfd 21976 #undef MC_CMD_0xfd_PRIVILEGE_CTG 21977 21978 #define MC_CMD_0xfd_PRIVILEGE_CTG SRIOV_CTG_GENERAL 21979 21980 /* MC_CMD_GET_PCIE_RESOURCE_INFO_IN msgrequest */ 21981 #define MC_CMD_GET_PCIE_RESOURCE_INFO_IN_LEN 0 21982 21983 /* MC_CMD_GET_PCIE_RESOURCE_INFO_OUT msgresponse */ 21984 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_LEN 28 21985 /* The maximum number of PFs the device can expose */ 21986 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_PFS_OFST 0 21987 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_PFS_LEN 4 21988 /* The maximum number of VFs the device can expose in total */ 21989 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VFS_OFST 4 21990 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VFS_LEN 4 21991 /* The maximum number of MSI-X vectors the device can provide in total */ 21992 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VECTORS_OFST 8 21993 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VECTORS_LEN 4 21994 /* the number of MSI-X vectors the device will allocate by default to each PF 21995 */ 21996 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_DEFAULT_PF_VECTORS_OFST 12 21997 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_DEFAULT_PF_VECTORS_LEN 4 21998 /* the number of MSI-X vectors the device will allocate by default to each VF 21999 */ 22000 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_DEFAULT_VF_VECTORS_OFST 16 22001 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_DEFAULT_VF_VECTORS_LEN 4 22002 /* the maximum number of MSI-X vectors the device can allocate to any one PF */ 22003 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_PF_VECTORS_OFST 20 22004 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_PF_VECTORS_LEN 4 22005 /* the maximum number of MSI-X vectors the device can allocate to any one VF */ 22006 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VF_VECTORS_OFST 24 22007 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VF_VECTORS_LEN 4 22008 22009 22010 /***********************************/ 22011 /* MC_CMD_GET_PORT_MODES 22012 * Find out about available port modes 22013 */ 22014 #define MC_CMD_GET_PORT_MODES 0xff 22015 #define MC_CMD_GET_PORT_MODES_MSGSET 0xff 22016 #undef MC_CMD_0xff_PRIVILEGE_CTG 22017 22018 #define MC_CMD_0xff_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22019 22020 /* MC_CMD_GET_PORT_MODES_IN msgrequest */ 22021 #define MC_CMD_GET_PORT_MODES_IN_LEN 0 22022 22023 /* MC_CMD_GET_PORT_MODES_OUT msgresponse */ 22024 #define MC_CMD_GET_PORT_MODES_OUT_LEN 12 22025 /* Bitmask of port modes available on the board (indexed by TLV_PORT_MODE_*) 22026 * that are supported for customer use in production firmware. 22027 */ 22028 #define MC_CMD_GET_PORT_MODES_OUT_MODES_OFST 0 22029 #define MC_CMD_GET_PORT_MODES_OUT_MODES_LEN 4 22030 /* Default (canonical) board mode */ 22031 #define MC_CMD_GET_PORT_MODES_OUT_DEFAULT_MODE_OFST 4 22032 #define MC_CMD_GET_PORT_MODES_OUT_DEFAULT_MODE_LEN 4 22033 /* Current board mode */ 22034 #define MC_CMD_GET_PORT_MODES_OUT_CURRENT_MODE_OFST 8 22035 #define MC_CMD_GET_PORT_MODES_OUT_CURRENT_MODE_LEN 4 22036 22037 /* MC_CMD_GET_PORT_MODES_OUT_V2 msgresponse */ 22038 #define MC_CMD_GET_PORT_MODES_OUT_V2_LEN 16 22039 /* Bitmask of port modes available on the board (indexed by TLV_PORT_MODE_*) 22040 * that are supported for customer use in production firmware. 22041 */ 22042 #define MC_CMD_GET_PORT_MODES_OUT_V2_MODES_OFST 0 22043 #define MC_CMD_GET_PORT_MODES_OUT_V2_MODES_LEN 4 22044 /* Default (canonical) board mode */ 22045 #define MC_CMD_GET_PORT_MODES_OUT_V2_DEFAULT_MODE_OFST 4 22046 #define MC_CMD_GET_PORT_MODES_OUT_V2_DEFAULT_MODE_LEN 4 22047 /* Current board mode */ 22048 #define MC_CMD_GET_PORT_MODES_OUT_V2_CURRENT_MODE_OFST 8 22049 #define MC_CMD_GET_PORT_MODES_OUT_V2_CURRENT_MODE_LEN 4 22050 /* Bitmask of engineering port modes available on the board (indexed by 22051 * TLV_PORT_MODE_*). A superset of MC_CMD_GET_PORT_MODES_OUT/MODES that 22052 * contains all modes implemented in firmware for a particular board. Modes 22053 * listed in MODES are considered production modes and should be exposed in 22054 * userland tools. Modes listed in in ENGINEERING_MODES, but not in MODES 22055 * should be considered hidden (not to be exposed in userland tools) and for 22056 * engineering use only. There are no other semantic differences and any mode 22057 * listed in either MODES or ENGINEERING_MODES can be set on the board. 22058 */ 22059 #define MC_CMD_GET_PORT_MODES_OUT_V2_ENGINEERING_MODES_OFST 12 22060 #define MC_CMD_GET_PORT_MODES_OUT_V2_ENGINEERING_MODES_LEN 4 22061 22062 22063 /***********************************/ 22064 /* MC_CMD_OVERRIDE_PORT_MODE 22065 * Override flash config port mode for subsequent MC reboot(s). Override data 22066 * is stored in the presistent data section of DMEM and activated on next MC 22067 * warm reboot. A cold reboot resets the override. It is assumed that a 22068 * sufficient number of PFs are available and that port mapping is valid for 22069 * the new port mode, as the override does not affect PF configuration. 22070 */ 22071 #define MC_CMD_OVERRIDE_PORT_MODE 0x137 22072 #define MC_CMD_OVERRIDE_PORT_MODE_MSGSET 0x137 22073 #undef MC_CMD_0x137_PRIVILEGE_CTG 22074 22075 #define MC_CMD_0x137_PRIVILEGE_CTG SRIOV_CTG_ADMIN 22076 22077 /* MC_CMD_OVERRIDE_PORT_MODE_IN msgrequest */ 22078 #define MC_CMD_OVERRIDE_PORT_MODE_IN_LEN 8 22079 #define MC_CMD_OVERRIDE_PORT_MODE_IN_FLAGS_OFST 0 22080 #define MC_CMD_OVERRIDE_PORT_MODE_IN_FLAGS_LEN 4 22081 #define MC_CMD_OVERRIDE_PORT_MODE_IN_ENABLE_OFST 0 22082 #define MC_CMD_OVERRIDE_PORT_MODE_IN_ENABLE_LBN 0 22083 #define MC_CMD_OVERRIDE_PORT_MODE_IN_ENABLE_WIDTH 1 22084 /* New mode (TLV_PORT_MODE_*) to set, if override enabled */ 22085 #define MC_CMD_OVERRIDE_PORT_MODE_IN_MODE_OFST 4 22086 #define MC_CMD_OVERRIDE_PORT_MODE_IN_MODE_LEN 4 22087 22088 /* MC_CMD_OVERRIDE_PORT_MODE_OUT msgresponse */ 22089 #define MC_CMD_OVERRIDE_PORT_MODE_OUT_LEN 0 22090 22091 22092 /***********************************/ 22093 /* MC_CMD_READ_ATB 22094 * Sample voltages on the ATB 22095 */ 22096 #define MC_CMD_READ_ATB 0x100 22097 #define MC_CMD_READ_ATB_MSGSET 0x100 22098 #undef MC_CMD_0x100_PRIVILEGE_CTG 22099 22100 #define MC_CMD_0x100_PRIVILEGE_CTG SRIOV_CTG_INSECURE 22101 22102 /* MC_CMD_READ_ATB_IN msgrequest */ 22103 #define MC_CMD_READ_ATB_IN_LEN 16 22104 #define MC_CMD_READ_ATB_IN_SIGNAL_BUS_OFST 0 22105 #define MC_CMD_READ_ATB_IN_SIGNAL_BUS_LEN 4 22106 #define MC_CMD_READ_ATB_IN_BUS_CCOM 0x0 /* enum */ 22107 #define MC_CMD_READ_ATB_IN_BUS_CKR 0x1 /* enum */ 22108 #define MC_CMD_READ_ATB_IN_BUS_CPCIE 0x8 /* enum */ 22109 #define MC_CMD_READ_ATB_IN_SIGNAL_EN_BITNO_OFST 4 22110 #define MC_CMD_READ_ATB_IN_SIGNAL_EN_BITNO_LEN 4 22111 #define MC_CMD_READ_ATB_IN_SIGNAL_SEL_OFST 8 22112 #define MC_CMD_READ_ATB_IN_SIGNAL_SEL_LEN 4 22113 #define MC_CMD_READ_ATB_IN_SETTLING_TIME_US_OFST 12 22114 #define MC_CMD_READ_ATB_IN_SETTLING_TIME_US_LEN 4 22115 22116 /* MC_CMD_READ_ATB_OUT msgresponse */ 22117 #define MC_CMD_READ_ATB_OUT_LEN 4 22118 #define MC_CMD_READ_ATB_OUT_SAMPLE_MV_OFST 0 22119 #define MC_CMD_READ_ATB_OUT_SAMPLE_MV_LEN 4 22120 22121 22122 /***********************************/ 22123 /* MC_CMD_GET_WORKAROUNDS 22124 * Read the list of all implemented and all currently enabled workarounds. The 22125 * enums here must correspond with those in MC_CMD_WORKAROUND. 22126 */ 22127 #define MC_CMD_GET_WORKAROUNDS 0x59 22128 #define MC_CMD_GET_WORKAROUNDS_MSGSET 0x59 22129 #undef MC_CMD_0x59_PRIVILEGE_CTG 22130 22131 #define MC_CMD_0x59_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22132 22133 /* MC_CMD_GET_WORKAROUNDS_OUT msgresponse */ 22134 #define MC_CMD_GET_WORKAROUNDS_OUT_LEN 8 22135 /* Each workaround is represented by a single bit according to the enums below. 22136 */ 22137 #define MC_CMD_GET_WORKAROUNDS_OUT_IMPLEMENTED_OFST 0 22138 #define MC_CMD_GET_WORKAROUNDS_OUT_IMPLEMENTED_LEN 4 22139 #define MC_CMD_GET_WORKAROUNDS_OUT_ENABLED_OFST 4 22140 #define MC_CMD_GET_WORKAROUNDS_OUT_ENABLED_LEN 4 22141 /* enum: Bug 17230 work around. */ 22142 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG17230 0x2 22143 /* enum: Bug 35388 work around (unsafe EVQ writes). */ 22144 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG35388 0x4 22145 /* enum: Bug35017 workaround (A64 tables must be identity map) */ 22146 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG35017 0x8 22147 /* enum: Bug 41750 present (MC_CMD_TRIGGER_INTERRUPT won't work) */ 22148 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG41750 0x10 22149 /* enum: Bug 42008 present (Interrupts can overtake associated events). Caution 22150 * - before adding code that queries this workaround, remember that there's 22151 * released Monza firmware that doesn't understand MC_CMD_WORKAROUND_BUG42008, 22152 * and will hence (incorrectly) report that the bug doesn't exist. 22153 */ 22154 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG42008 0x20 22155 /* enum: Bug 26807 features present in firmware (multicast filter chaining) */ 22156 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG26807 0x40 22157 /* enum: Bug 61265 work around (broken EVQ TMR writes). */ 22158 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG61265 0x80 22159 22160 22161 /***********************************/ 22162 /* MC_CMD_PRIVILEGE_MASK 22163 * Read/set privileges of an arbitrary PCIe function 22164 */ 22165 #define MC_CMD_PRIVILEGE_MASK 0x5a 22166 #define MC_CMD_PRIVILEGE_MASK_MSGSET 0x5a 22167 #undef MC_CMD_0x5a_PRIVILEGE_CTG 22168 22169 #define MC_CMD_0x5a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22170 22171 /* MC_CMD_PRIVILEGE_MASK_IN msgrequest */ 22172 #define MC_CMD_PRIVILEGE_MASK_IN_LEN 8 22173 /* The target function to have its mask read or set e.g. PF 0 = 0xFFFF0000, VF 22174 * 1,3 = 0x00030001 22175 */ 22176 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_OFST 0 22177 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_LEN 4 22178 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_PF_OFST 0 22179 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_PF_LBN 0 22180 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_PF_WIDTH 16 22181 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_VF_OFST 0 22182 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_VF_LBN 16 22183 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_VF_WIDTH 16 22184 #define MC_CMD_PRIVILEGE_MASK_IN_VF_NULL 0xffff /* enum */ 22185 /* New privilege mask to be set. The mask will only be changed if the MSB is 22186 * set to 1. 22187 */ 22188 #define MC_CMD_PRIVILEGE_MASK_IN_NEW_MASK_OFST 4 22189 #define MC_CMD_PRIVILEGE_MASK_IN_NEW_MASK_LEN 4 22190 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ADMIN 0x1 /* enum */ 22191 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_LINK 0x2 /* enum */ 22192 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ONLOAD 0x4 /* enum */ 22193 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_PTP 0x8 /* enum */ 22194 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_INSECURE_FILTERS 0x10 /* enum */ 22195 /* enum: Deprecated. Equivalent to MAC_SPOOFING_TX combined with CHANGE_MAC. */ 22196 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_MAC_SPOOFING 0x20 22197 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_UNICAST 0x40 /* enum */ 22198 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_MULTICAST 0x80 /* enum */ 22199 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_BROADCAST 0x100 /* enum */ 22200 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ALL_MULTICAST 0x200 /* enum */ 22201 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_PROMISCUOUS 0x400 /* enum */ 22202 /* enum: Allows to set the TX packets' source MAC address to any arbitrary MAC 22203 * adress. 22204 */ 22205 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_MAC_SPOOFING_TX 0x800 22206 /* enum: Privilege that allows a Function to change the MAC address configured 22207 * in its associated vAdapter/vPort. 22208 */ 22209 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_CHANGE_MAC 0x1000 22210 /* enum: Privilege that allows a Function to install filters that specify VLANs 22211 * that are not in the permit list for the associated vPort. This privilege is 22212 * primarily to support ESX where vPorts are created that restrict traffic to 22213 * only a set of permitted VLANs. See the vPort flag FLAG_VLAN_RESTRICT. 22214 */ 22215 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_UNRESTRICTED_VLAN 0x2000 22216 /* enum: Privilege for insecure commands. Commands that belong to this group 22217 * are not permitted on secure adapters regardless of the privilege mask. 22218 */ 22219 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_INSECURE 0x4000 22220 /* enum: Trusted Server Adapter (TSA) / ServerLock. Privilege for 22221 * administrator-level operations that are not allowed from the local host once 22222 * an adapter has Bound to a remote ServerLock Controller (see doxbox 22223 * SF-117064-DG for background). 22224 */ 22225 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ADMIN_TSA_UNBOUND 0x8000 22226 /* enum: Control the Match-Action Engine if present. See mcdi_mae.yml. */ 22227 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_MAE 0x10000 22228 /* enum: This Function/client may call MC_CMD_CLIENT_ALLOC to create new 22229 * dynamic client children of itself. 22230 */ 22231 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ALLOC_CLIENT 0x20000 22232 /* enum: A dynamic client with this privilege may perform all the same DMA 22233 * operations as the function client from which it is descended. 22234 */ 22235 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_FUNC_DMA 0x40000 22236 /* enum: A client with this privilege may perform DMA as any PCIe function on 22237 * the device and to on-device DDR. It allows clients to use TX-DESC2CMPT-DESC 22238 * descriptors, and to use TX-SEG-DESC and TX-MEM2MEM-DESC with an address 22239 * space override (i.e. with the ADDR_SPC_EN bit set). 22240 */ 22241 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ARBITRARY_DMA 0x80000 22242 /* enum: Set this bit to indicate that a new privilege mask is to be set, 22243 * otherwise the command will only read the existing mask. 22244 */ 22245 #define MC_CMD_PRIVILEGE_MASK_IN_DO_CHANGE 0x80000000 22246 22247 /* MC_CMD_PRIVILEGE_MASK_OUT msgresponse */ 22248 #define MC_CMD_PRIVILEGE_MASK_OUT_LEN 4 22249 /* For an admin function, always all the privileges are reported. */ 22250 #define MC_CMD_PRIVILEGE_MASK_OUT_OLD_MASK_OFST 0 22251 #define MC_CMD_PRIVILEGE_MASK_OUT_OLD_MASK_LEN 4 22252 22253 22254 /***********************************/ 22255 /* MC_CMD_LINK_STATE_MODE 22256 * Read/set link state mode of a VF 22257 */ 22258 #define MC_CMD_LINK_STATE_MODE 0x5c 22259 #define MC_CMD_LINK_STATE_MODE_MSGSET 0x5c 22260 #undef MC_CMD_0x5c_PRIVILEGE_CTG 22261 22262 #define MC_CMD_0x5c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22263 22264 /* MC_CMD_LINK_STATE_MODE_IN msgrequest */ 22265 #define MC_CMD_LINK_STATE_MODE_IN_LEN 8 22266 /* The target function to have its link state mode read or set, must be a VF 22267 * e.g. VF 1,3 = 0x00030001 22268 */ 22269 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_OFST 0 22270 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_LEN 4 22271 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_PF_OFST 0 22272 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_PF_LBN 0 22273 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_PF_WIDTH 16 22274 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_VF_OFST 0 22275 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_VF_LBN 16 22276 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_VF_WIDTH 16 22277 /* New link state mode to be set */ 22278 #define MC_CMD_LINK_STATE_MODE_IN_NEW_MODE_OFST 4 22279 #define MC_CMD_LINK_STATE_MODE_IN_NEW_MODE_LEN 4 22280 #define MC_CMD_LINK_STATE_MODE_IN_LINK_STATE_AUTO 0x0 /* enum */ 22281 #define MC_CMD_LINK_STATE_MODE_IN_LINK_STATE_UP 0x1 /* enum */ 22282 #define MC_CMD_LINK_STATE_MODE_IN_LINK_STATE_DOWN 0x2 /* enum */ 22283 /* enum: Use this value to just read the existing setting without modifying it. 22284 */ 22285 #define MC_CMD_LINK_STATE_MODE_IN_DO_NOT_CHANGE 0xffffffff 22286 22287 /* MC_CMD_LINK_STATE_MODE_OUT msgresponse */ 22288 #define MC_CMD_LINK_STATE_MODE_OUT_LEN 4 22289 #define MC_CMD_LINK_STATE_MODE_OUT_OLD_MODE_OFST 0 22290 #define MC_CMD_LINK_STATE_MODE_OUT_OLD_MODE_LEN 4 22291 22292 22293 /***********************************/ 22294 /* MC_CMD_GET_SNAPSHOT_LENGTH 22295 * Obtain the current range of allowable values for the SNAPSHOT_LENGTH 22296 * parameter to MC_CMD_INIT_RXQ. 22297 */ 22298 #define MC_CMD_GET_SNAPSHOT_LENGTH 0x101 22299 #define MC_CMD_GET_SNAPSHOT_LENGTH_MSGSET 0x101 22300 #undef MC_CMD_0x101_PRIVILEGE_CTG 22301 22302 #define MC_CMD_0x101_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22303 22304 /* MC_CMD_GET_SNAPSHOT_LENGTH_IN msgrequest */ 22305 #define MC_CMD_GET_SNAPSHOT_LENGTH_IN_LEN 0 22306 22307 /* MC_CMD_GET_SNAPSHOT_LENGTH_OUT msgresponse */ 22308 #define MC_CMD_GET_SNAPSHOT_LENGTH_OUT_LEN 8 22309 /* Minimum acceptable snapshot length. */ 22310 #define MC_CMD_GET_SNAPSHOT_LENGTH_OUT_RX_SNAPLEN_MIN_OFST 0 22311 #define MC_CMD_GET_SNAPSHOT_LENGTH_OUT_RX_SNAPLEN_MIN_LEN 4 22312 /* Maximum acceptable snapshot length. */ 22313 #define MC_CMD_GET_SNAPSHOT_LENGTH_OUT_RX_SNAPLEN_MAX_OFST 4 22314 #define MC_CMD_GET_SNAPSHOT_LENGTH_OUT_RX_SNAPLEN_MAX_LEN 4 22315 22316 22317 /***********************************/ 22318 /* MC_CMD_FUSE_DIAGS 22319 * Additional fuse diagnostics 22320 */ 22321 #define MC_CMD_FUSE_DIAGS 0x102 22322 #define MC_CMD_FUSE_DIAGS_MSGSET 0x102 22323 #undef MC_CMD_0x102_PRIVILEGE_CTG 22324 22325 #define MC_CMD_0x102_PRIVILEGE_CTG SRIOV_CTG_INSECURE 22326 22327 /* MC_CMD_FUSE_DIAGS_IN msgrequest */ 22328 #define MC_CMD_FUSE_DIAGS_IN_LEN 0 22329 22330 /* MC_CMD_FUSE_DIAGS_OUT msgresponse */ 22331 #define MC_CMD_FUSE_DIAGS_OUT_LEN 48 22332 /* Total number of mismatched bits between pairs in area 0 */ 22333 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_MISMATCH_BITS_OFST 0 22334 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_MISMATCH_BITS_LEN 4 22335 /* Total number of unexpectedly clear (set in B but not A) bits in area 0 */ 22336 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_PAIR_A_BAD_BITS_OFST 4 22337 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_PAIR_A_BAD_BITS_LEN 4 22338 /* Total number of unexpectedly clear (set in A but not B) bits in area 0 */ 22339 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_PAIR_B_BAD_BITS_OFST 8 22340 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_PAIR_B_BAD_BITS_LEN 4 22341 /* Checksum of data after logical OR of pairs in area 0 */ 22342 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_CHECKSUM_OFST 12 22343 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_CHECKSUM_LEN 4 22344 /* Total number of mismatched bits between pairs in area 1 */ 22345 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_MISMATCH_BITS_OFST 16 22346 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_MISMATCH_BITS_LEN 4 22347 /* Total number of unexpectedly clear (set in B but not A) bits in area 1 */ 22348 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_PAIR_A_BAD_BITS_OFST 20 22349 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_PAIR_A_BAD_BITS_LEN 4 22350 /* Total number of unexpectedly clear (set in A but not B) bits in area 1 */ 22351 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_PAIR_B_BAD_BITS_OFST 24 22352 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_PAIR_B_BAD_BITS_LEN 4 22353 /* Checksum of data after logical OR of pairs in area 1 */ 22354 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_CHECKSUM_OFST 28 22355 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_CHECKSUM_LEN 4 22356 /* Total number of mismatched bits between pairs in area 2 */ 22357 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_MISMATCH_BITS_OFST 32 22358 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_MISMATCH_BITS_LEN 4 22359 /* Total number of unexpectedly clear (set in B but not A) bits in area 2 */ 22360 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_PAIR_A_BAD_BITS_OFST 36 22361 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_PAIR_A_BAD_BITS_LEN 4 22362 /* Total number of unexpectedly clear (set in A but not B) bits in area 2 */ 22363 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_PAIR_B_BAD_BITS_OFST 40 22364 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_PAIR_B_BAD_BITS_LEN 4 22365 /* Checksum of data after logical OR of pairs in area 2 */ 22366 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_CHECKSUM_OFST 44 22367 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_CHECKSUM_LEN 4 22368 22369 22370 /***********************************/ 22371 /* MC_CMD_PRIVILEGE_MODIFY 22372 * Modify the privileges of a set of PCIe functions. Note that this operation 22373 * only effects non-admin functions unless the admin privilege itself is 22374 * included in one of the masks provided. 22375 */ 22376 #define MC_CMD_PRIVILEGE_MODIFY 0x60 22377 #define MC_CMD_PRIVILEGE_MODIFY_MSGSET 0x60 22378 #undef MC_CMD_0x60_PRIVILEGE_CTG 22379 22380 #define MC_CMD_0x60_PRIVILEGE_CTG SRIOV_CTG_ADMIN 22381 22382 /* MC_CMD_PRIVILEGE_MODIFY_IN msgrequest */ 22383 #define MC_CMD_PRIVILEGE_MODIFY_IN_LEN 16 22384 /* The groups of functions to have their privilege masks modified. */ 22385 #define MC_CMD_PRIVILEGE_MODIFY_IN_FN_GROUP_OFST 0 22386 #define MC_CMD_PRIVILEGE_MODIFY_IN_FN_GROUP_LEN 4 22387 #define MC_CMD_PRIVILEGE_MODIFY_IN_NONE 0x0 /* enum */ 22388 #define MC_CMD_PRIVILEGE_MODIFY_IN_ALL 0x1 /* enum */ 22389 #define MC_CMD_PRIVILEGE_MODIFY_IN_PFS_ONLY 0x2 /* enum */ 22390 #define MC_CMD_PRIVILEGE_MODIFY_IN_VFS_ONLY 0x3 /* enum */ 22391 #define MC_CMD_PRIVILEGE_MODIFY_IN_VFS_OF_PF 0x4 /* enum */ 22392 #define MC_CMD_PRIVILEGE_MODIFY_IN_ONE 0x5 /* enum */ 22393 /* For VFS_OF_PF specify the PF, for ONE specify the target function */ 22394 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_OFST 4 22395 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_LEN 4 22396 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_PF_OFST 4 22397 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_PF_LBN 0 22398 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_PF_WIDTH 16 22399 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_VF_OFST 4 22400 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_VF_LBN 16 22401 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_VF_WIDTH 16 22402 /* Privileges to be added to the target functions. For privilege definitions 22403 * refer to the command MC_CMD_PRIVILEGE_MASK 22404 */ 22405 #define MC_CMD_PRIVILEGE_MODIFY_IN_ADD_MASK_OFST 8 22406 #define MC_CMD_PRIVILEGE_MODIFY_IN_ADD_MASK_LEN 4 22407 /* Privileges to be removed from the target functions. For privilege 22408 * definitions refer to the command MC_CMD_PRIVILEGE_MASK 22409 */ 22410 #define MC_CMD_PRIVILEGE_MODIFY_IN_REMOVE_MASK_OFST 12 22411 #define MC_CMD_PRIVILEGE_MODIFY_IN_REMOVE_MASK_LEN 4 22412 22413 /* MC_CMD_PRIVILEGE_MODIFY_OUT msgresponse */ 22414 #define MC_CMD_PRIVILEGE_MODIFY_OUT_LEN 0 22415 22416 22417 /***********************************/ 22418 /* MC_CMD_XPM_READ_BYTES 22419 * Read XPM memory 22420 */ 22421 #define MC_CMD_XPM_READ_BYTES 0x103 22422 #define MC_CMD_XPM_READ_BYTES_MSGSET 0x103 22423 #undef MC_CMD_0x103_PRIVILEGE_CTG 22424 22425 #define MC_CMD_0x103_PRIVILEGE_CTG SRIOV_CTG_ADMIN 22426 22427 /* MC_CMD_XPM_READ_BYTES_IN msgrequest */ 22428 #define MC_CMD_XPM_READ_BYTES_IN_LEN 8 22429 /* Start address (byte) */ 22430 #define MC_CMD_XPM_READ_BYTES_IN_ADDR_OFST 0 22431 #define MC_CMD_XPM_READ_BYTES_IN_ADDR_LEN 4 22432 /* Count (bytes) */ 22433 #define MC_CMD_XPM_READ_BYTES_IN_COUNT_OFST 4 22434 #define MC_CMD_XPM_READ_BYTES_IN_COUNT_LEN 4 22435 22436 /* MC_CMD_XPM_READ_BYTES_OUT msgresponse */ 22437 #define MC_CMD_XPM_READ_BYTES_OUT_LENMIN 0 22438 #define MC_CMD_XPM_READ_BYTES_OUT_LENMAX 252 22439 #define MC_CMD_XPM_READ_BYTES_OUT_LENMAX_MCDI2 1020 22440 #define MC_CMD_XPM_READ_BYTES_OUT_LEN(num) (0+1*(num)) 22441 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_NUM(len) (((len)-0)/1) 22442 /* Data */ 22443 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_OFST 0 22444 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_LEN 1 22445 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_MINNUM 0 22446 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_MAXNUM 252 22447 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_MAXNUM_MCDI2 1020 22448 22449 22450 /***********************************/ 22451 /* MC_CMD_XPM_WRITE_BYTES 22452 * Write XPM memory 22453 */ 22454 #define MC_CMD_XPM_WRITE_BYTES 0x104 22455 #define MC_CMD_XPM_WRITE_BYTES_MSGSET 0x104 22456 #undef MC_CMD_0x104_PRIVILEGE_CTG 22457 22458 #define MC_CMD_0x104_PRIVILEGE_CTG SRIOV_CTG_INSECURE 22459 22460 /* MC_CMD_XPM_WRITE_BYTES_IN msgrequest */ 22461 #define MC_CMD_XPM_WRITE_BYTES_IN_LENMIN 8 22462 #define MC_CMD_XPM_WRITE_BYTES_IN_LENMAX 252 22463 #define MC_CMD_XPM_WRITE_BYTES_IN_LENMAX_MCDI2 1020 22464 #define MC_CMD_XPM_WRITE_BYTES_IN_LEN(num) (8+1*(num)) 22465 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_NUM(len) (((len)-8)/1) 22466 /* Start address (byte) */ 22467 #define MC_CMD_XPM_WRITE_BYTES_IN_ADDR_OFST 0 22468 #define MC_CMD_XPM_WRITE_BYTES_IN_ADDR_LEN 4 22469 /* Count (bytes) */ 22470 #define MC_CMD_XPM_WRITE_BYTES_IN_COUNT_OFST 4 22471 #define MC_CMD_XPM_WRITE_BYTES_IN_COUNT_LEN 4 22472 /* Data */ 22473 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_OFST 8 22474 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_LEN 1 22475 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_MINNUM 0 22476 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_MAXNUM 244 22477 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_MAXNUM_MCDI2 1012 22478 22479 /* MC_CMD_XPM_WRITE_BYTES_OUT msgresponse */ 22480 #define MC_CMD_XPM_WRITE_BYTES_OUT_LEN 0 22481 22482 22483 /***********************************/ 22484 /* MC_CMD_XPM_READ_SECTOR 22485 * Read XPM sector 22486 */ 22487 #define MC_CMD_XPM_READ_SECTOR 0x105 22488 #define MC_CMD_XPM_READ_SECTOR_MSGSET 0x105 22489 #undef MC_CMD_0x105_PRIVILEGE_CTG 22490 22491 #define MC_CMD_0x105_PRIVILEGE_CTG SRIOV_CTG_INSECURE 22492 22493 /* MC_CMD_XPM_READ_SECTOR_IN msgrequest */ 22494 #define MC_CMD_XPM_READ_SECTOR_IN_LEN 8 22495 /* Sector index */ 22496 #define MC_CMD_XPM_READ_SECTOR_IN_INDEX_OFST 0 22497 #define MC_CMD_XPM_READ_SECTOR_IN_INDEX_LEN 4 22498 /* Sector size */ 22499 #define MC_CMD_XPM_READ_SECTOR_IN_SIZE_OFST 4 22500 #define MC_CMD_XPM_READ_SECTOR_IN_SIZE_LEN 4 22501 22502 /* MC_CMD_XPM_READ_SECTOR_OUT msgresponse */ 22503 #define MC_CMD_XPM_READ_SECTOR_OUT_LENMIN 4 22504 #define MC_CMD_XPM_READ_SECTOR_OUT_LENMAX 36 22505 #define MC_CMD_XPM_READ_SECTOR_OUT_LENMAX_MCDI2 36 22506 #define MC_CMD_XPM_READ_SECTOR_OUT_LEN(num) (4+1*(num)) 22507 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_NUM(len) (((len)-4)/1) 22508 /* Sector type */ 22509 #define MC_CMD_XPM_READ_SECTOR_OUT_TYPE_OFST 0 22510 #define MC_CMD_XPM_READ_SECTOR_OUT_TYPE_LEN 4 22511 #define MC_CMD_XPM_READ_SECTOR_OUT_BLANK 0x0 /* enum */ 22512 #define MC_CMD_XPM_READ_SECTOR_OUT_CRYPTO_KEY_128 0x1 /* enum */ 22513 #define MC_CMD_XPM_READ_SECTOR_OUT_CRYPTO_KEY_256 0x2 /* enum */ 22514 #define MC_CMD_XPM_READ_SECTOR_OUT_CRYPTO_DATA 0x3 /* enum */ 22515 #define MC_CMD_XPM_READ_SECTOR_OUT_INVALID 0xff /* enum */ 22516 /* Sector data */ 22517 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_OFST 4 22518 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_LEN 1 22519 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_MINNUM 0 22520 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_MAXNUM 32 22521 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_MAXNUM_MCDI2 32 22522 22523 22524 /***********************************/ 22525 /* MC_CMD_XPM_WRITE_SECTOR 22526 * Write XPM sector 22527 */ 22528 #define MC_CMD_XPM_WRITE_SECTOR 0x106 22529 #define MC_CMD_XPM_WRITE_SECTOR_MSGSET 0x106 22530 #undef MC_CMD_0x106_PRIVILEGE_CTG 22531 22532 #define MC_CMD_0x106_PRIVILEGE_CTG SRIOV_CTG_INSECURE 22533 22534 /* MC_CMD_XPM_WRITE_SECTOR_IN msgrequest */ 22535 #define MC_CMD_XPM_WRITE_SECTOR_IN_LENMIN 12 22536 #define MC_CMD_XPM_WRITE_SECTOR_IN_LENMAX 44 22537 #define MC_CMD_XPM_WRITE_SECTOR_IN_LENMAX_MCDI2 44 22538 #define MC_CMD_XPM_WRITE_SECTOR_IN_LEN(num) (12+1*(num)) 22539 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_NUM(len) (((len)-12)/1) 22540 /* If writing fails due to an uncorrectable error, try up to RETRIES following 22541 * sectors (or until no more space available). If 0, only one write attempt is 22542 * made. Note that uncorrectable errors are unlikely, thanks to XPM self-repair 22543 * mechanism. 22544 */ 22545 #define MC_CMD_XPM_WRITE_SECTOR_IN_RETRIES_OFST 0 22546 #define MC_CMD_XPM_WRITE_SECTOR_IN_RETRIES_LEN 1 22547 #define MC_CMD_XPM_WRITE_SECTOR_IN_RESERVED_OFST 1 22548 #define MC_CMD_XPM_WRITE_SECTOR_IN_RESERVED_LEN 3 22549 /* Sector type */ 22550 #define MC_CMD_XPM_WRITE_SECTOR_IN_TYPE_OFST 4 22551 #define MC_CMD_XPM_WRITE_SECTOR_IN_TYPE_LEN 4 22552 /* Enum values, see field(s): */ 22553 /* MC_CMD_XPM_READ_SECTOR/MC_CMD_XPM_READ_SECTOR_OUT/TYPE */ 22554 /* Sector size */ 22555 #define MC_CMD_XPM_WRITE_SECTOR_IN_SIZE_OFST 8 22556 #define MC_CMD_XPM_WRITE_SECTOR_IN_SIZE_LEN 4 22557 /* Sector data */ 22558 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_OFST 12 22559 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_LEN 1 22560 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_MINNUM 0 22561 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_MAXNUM 32 22562 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_MAXNUM_MCDI2 32 22563 22564 /* MC_CMD_XPM_WRITE_SECTOR_OUT msgresponse */ 22565 #define MC_CMD_XPM_WRITE_SECTOR_OUT_LEN 4 22566 /* New sector index */ 22567 #define MC_CMD_XPM_WRITE_SECTOR_OUT_INDEX_OFST 0 22568 #define MC_CMD_XPM_WRITE_SECTOR_OUT_INDEX_LEN 4 22569 22570 22571 /***********************************/ 22572 /* MC_CMD_XPM_INVALIDATE_SECTOR 22573 * Invalidate XPM sector 22574 */ 22575 #define MC_CMD_XPM_INVALIDATE_SECTOR 0x107 22576 #define MC_CMD_XPM_INVALIDATE_SECTOR_MSGSET 0x107 22577 #undef MC_CMD_0x107_PRIVILEGE_CTG 22578 22579 #define MC_CMD_0x107_PRIVILEGE_CTG SRIOV_CTG_INSECURE 22580 22581 /* MC_CMD_XPM_INVALIDATE_SECTOR_IN msgrequest */ 22582 #define MC_CMD_XPM_INVALIDATE_SECTOR_IN_LEN 4 22583 /* Sector index */ 22584 #define MC_CMD_XPM_INVALIDATE_SECTOR_IN_INDEX_OFST 0 22585 #define MC_CMD_XPM_INVALIDATE_SECTOR_IN_INDEX_LEN 4 22586 22587 /* MC_CMD_XPM_INVALIDATE_SECTOR_OUT msgresponse */ 22588 #define MC_CMD_XPM_INVALIDATE_SECTOR_OUT_LEN 0 22589 22590 22591 /***********************************/ 22592 /* MC_CMD_XPM_BLANK_CHECK 22593 * Blank-check XPM memory and report bad locations 22594 */ 22595 #define MC_CMD_XPM_BLANK_CHECK 0x108 22596 #define MC_CMD_XPM_BLANK_CHECK_MSGSET 0x108 22597 #undef MC_CMD_0x108_PRIVILEGE_CTG 22598 22599 #define MC_CMD_0x108_PRIVILEGE_CTG SRIOV_CTG_INSECURE 22600 22601 /* MC_CMD_XPM_BLANK_CHECK_IN msgrequest */ 22602 #define MC_CMD_XPM_BLANK_CHECK_IN_LEN 8 22603 /* Start address (byte) */ 22604 #define MC_CMD_XPM_BLANK_CHECK_IN_ADDR_OFST 0 22605 #define MC_CMD_XPM_BLANK_CHECK_IN_ADDR_LEN 4 22606 /* Count (bytes) */ 22607 #define MC_CMD_XPM_BLANK_CHECK_IN_COUNT_OFST 4 22608 #define MC_CMD_XPM_BLANK_CHECK_IN_COUNT_LEN 4 22609 22610 /* MC_CMD_XPM_BLANK_CHECK_OUT msgresponse */ 22611 #define MC_CMD_XPM_BLANK_CHECK_OUT_LENMIN 4 22612 #define MC_CMD_XPM_BLANK_CHECK_OUT_LENMAX 252 22613 #define MC_CMD_XPM_BLANK_CHECK_OUT_LENMAX_MCDI2 1020 22614 #define MC_CMD_XPM_BLANK_CHECK_OUT_LEN(num) (4+2*(num)) 22615 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_NUM(len) (((len)-4)/2) 22616 /* Total number of bad (non-blank) locations */ 22617 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_COUNT_OFST 0 22618 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_COUNT_LEN 4 22619 /* Addresses of bad locations (may be less than BAD_COUNT, if all cannot fit 22620 * into MCDI response) 22621 */ 22622 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_OFST 4 22623 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_LEN 2 22624 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_MINNUM 0 22625 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_MAXNUM 124 22626 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_MAXNUM_MCDI2 508 22627 22628 22629 /***********************************/ 22630 /* MC_CMD_XPM_REPAIR 22631 * Blank-check and repair XPM memory 22632 */ 22633 #define MC_CMD_XPM_REPAIR 0x109 22634 #define MC_CMD_XPM_REPAIR_MSGSET 0x109 22635 #undef MC_CMD_0x109_PRIVILEGE_CTG 22636 22637 #define MC_CMD_0x109_PRIVILEGE_CTG SRIOV_CTG_INSECURE 22638 22639 /* MC_CMD_XPM_REPAIR_IN msgrequest */ 22640 #define MC_CMD_XPM_REPAIR_IN_LEN 8 22641 /* Start address (byte) */ 22642 #define MC_CMD_XPM_REPAIR_IN_ADDR_OFST 0 22643 #define MC_CMD_XPM_REPAIR_IN_ADDR_LEN 4 22644 /* Count (bytes) */ 22645 #define MC_CMD_XPM_REPAIR_IN_COUNT_OFST 4 22646 #define MC_CMD_XPM_REPAIR_IN_COUNT_LEN 4 22647 22648 /* MC_CMD_XPM_REPAIR_OUT msgresponse */ 22649 #define MC_CMD_XPM_REPAIR_OUT_LEN 0 22650 22651 22652 /***********************************/ 22653 /* MC_CMD_XPM_DECODER_TEST 22654 * Test XPM memory address decoders for gross manufacturing defects. Can only 22655 * be performed on an unprogrammed part. 22656 */ 22657 #define MC_CMD_XPM_DECODER_TEST 0x10a 22658 #define MC_CMD_XPM_DECODER_TEST_MSGSET 0x10a 22659 #undef MC_CMD_0x10a_PRIVILEGE_CTG 22660 22661 #define MC_CMD_0x10a_PRIVILEGE_CTG SRIOV_CTG_INSECURE 22662 22663 /* MC_CMD_XPM_DECODER_TEST_IN msgrequest */ 22664 #define MC_CMD_XPM_DECODER_TEST_IN_LEN 0 22665 22666 /* MC_CMD_XPM_DECODER_TEST_OUT msgresponse */ 22667 #define MC_CMD_XPM_DECODER_TEST_OUT_LEN 0 22668 22669 22670 /***********************************/ 22671 /* MC_CMD_XPM_WRITE_TEST 22672 * XPM memory write test. Test XPM write logic for gross manufacturing defects 22673 * by writing to a dedicated test row. There are 16 locations in the test row 22674 * and the test can only be performed on locations that have not been 22675 * previously used (i.e. can be run at most 16 times). The test will pick the 22676 * first available location to use, or fail with ENOSPC if none left. 22677 */ 22678 #define MC_CMD_XPM_WRITE_TEST 0x10b 22679 #define MC_CMD_XPM_WRITE_TEST_MSGSET 0x10b 22680 #undef MC_CMD_0x10b_PRIVILEGE_CTG 22681 22682 #define MC_CMD_0x10b_PRIVILEGE_CTG SRIOV_CTG_INSECURE 22683 22684 /* MC_CMD_XPM_WRITE_TEST_IN msgrequest */ 22685 #define MC_CMD_XPM_WRITE_TEST_IN_LEN 0 22686 22687 /* MC_CMD_XPM_WRITE_TEST_OUT msgresponse */ 22688 #define MC_CMD_XPM_WRITE_TEST_OUT_LEN 0 22689 22690 22691 /***********************************/ 22692 /* MC_CMD_EXEC_SIGNED 22693 * Check the CMAC of the contents of IMEM and DMEM against the value supplied 22694 * and if correct begin execution from the start of IMEM. The caller supplies a 22695 * key ID, the length of IMEM and DMEM to validate and the expected CMAC. CMAC 22696 * computation runs from the start of IMEM, and from the start of DMEM + 16k, 22697 * to match flash booting. The command will respond with EINVAL if the CMAC 22698 * does match, otherwise it will respond with success before it jumps to IMEM. 22699 */ 22700 #define MC_CMD_EXEC_SIGNED 0x10c 22701 #define MC_CMD_EXEC_SIGNED_MSGSET 0x10c 22702 #undef MC_CMD_0x10c_PRIVILEGE_CTG 22703 22704 #define MC_CMD_0x10c_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 22705 22706 /* MC_CMD_EXEC_SIGNED_IN msgrequest */ 22707 #define MC_CMD_EXEC_SIGNED_IN_LEN 28 22708 /* the length of code to include in the CMAC */ 22709 #define MC_CMD_EXEC_SIGNED_IN_CODELEN_OFST 0 22710 #define MC_CMD_EXEC_SIGNED_IN_CODELEN_LEN 4 22711 /* the length of date to include in the CMAC */ 22712 #define MC_CMD_EXEC_SIGNED_IN_DATALEN_OFST 4 22713 #define MC_CMD_EXEC_SIGNED_IN_DATALEN_LEN 4 22714 /* the XPM sector containing the key to use */ 22715 #define MC_CMD_EXEC_SIGNED_IN_KEYSECTOR_OFST 8 22716 #define MC_CMD_EXEC_SIGNED_IN_KEYSECTOR_LEN 4 22717 /* the expected CMAC value */ 22718 #define MC_CMD_EXEC_SIGNED_IN_CMAC_OFST 12 22719 #define MC_CMD_EXEC_SIGNED_IN_CMAC_LEN 16 22720 22721 /* MC_CMD_EXEC_SIGNED_OUT msgresponse */ 22722 #define MC_CMD_EXEC_SIGNED_OUT_LEN 0 22723 22724 22725 /***********************************/ 22726 /* MC_CMD_PREPARE_SIGNED 22727 * Prepare to upload a signed image. This will scrub the specified length of 22728 * the data region, which must be at least as large as the DATALEN supplied to 22729 * MC_CMD_EXEC_SIGNED. 22730 */ 22731 #define MC_CMD_PREPARE_SIGNED 0x10d 22732 #define MC_CMD_PREPARE_SIGNED_MSGSET 0x10d 22733 #undef MC_CMD_0x10d_PRIVILEGE_CTG 22734 22735 #define MC_CMD_0x10d_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 22736 22737 /* MC_CMD_PREPARE_SIGNED_IN msgrequest */ 22738 #define MC_CMD_PREPARE_SIGNED_IN_LEN 4 22739 /* the length of data area to clear */ 22740 #define MC_CMD_PREPARE_SIGNED_IN_DATALEN_OFST 0 22741 #define MC_CMD_PREPARE_SIGNED_IN_DATALEN_LEN 4 22742 22743 /* MC_CMD_PREPARE_SIGNED_OUT msgresponse */ 22744 #define MC_CMD_PREPARE_SIGNED_OUT_LEN 0 22745 22746 22747 /***********************************/ 22748 /* MC_CMD_SET_SECURITY_RULE 22749 * Set blacklist and/or whitelist action for a particular match criteria. 22750 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See 22751 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 22752 * been used in any released code and may change during development. This note 22753 * will be removed once it is regarded as stable. 22754 */ 22755 #define MC_CMD_SET_SECURITY_RULE 0x10f 22756 #define MC_CMD_SET_SECURITY_RULE_MSGSET 0x10f 22757 #undef MC_CMD_0x10f_PRIVILEGE_CTG 22758 22759 #define MC_CMD_0x10f_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 22760 22761 /* MC_CMD_SET_SECURITY_RULE_IN msgrequest */ 22762 #define MC_CMD_SET_SECURITY_RULE_IN_LEN 92 22763 /* fields to include in match criteria */ 22764 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_FIELDS_OFST 0 22765 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_FIELDS_LEN 4 22766 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_IP_OFST 0 22767 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_IP_LBN 0 22768 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_IP_WIDTH 1 22769 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_IP_OFST 0 22770 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_IP_LBN 1 22771 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_IP_WIDTH 1 22772 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_MAC_OFST 0 22773 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_MAC_LBN 2 22774 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_MAC_WIDTH 1 22775 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORT_OFST 0 22776 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORT_LBN 3 22777 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORT_WIDTH 1 22778 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_MAC_OFST 0 22779 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_MAC_LBN 4 22780 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_MAC_WIDTH 1 22781 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORT_OFST 0 22782 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORT_LBN 5 22783 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORT_WIDTH 1 22784 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_ETHER_TYPE_OFST 0 22785 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_ETHER_TYPE_LBN 6 22786 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_ETHER_TYPE_WIDTH 1 22787 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_INNER_VLAN_OFST 0 22788 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_INNER_VLAN_LBN 7 22789 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_INNER_VLAN_WIDTH 1 22790 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_OUTER_VLAN_OFST 0 22791 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_OUTER_VLAN_LBN 8 22792 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_OUTER_VLAN_WIDTH 1 22793 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_IP_PROTO_OFST 0 22794 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_IP_PROTO_LBN 9 22795 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_IP_PROTO_WIDTH 1 22796 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_PHYSICAL_PORT_OFST 0 22797 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_PHYSICAL_PORT_LBN 10 22798 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_PHYSICAL_PORT_WIDTH 1 22799 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_RESERVED_OFST 0 22800 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_RESERVED_LBN 11 22801 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_RESERVED_WIDTH 1 22802 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_SUBNET_ID_OFST 0 22803 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_SUBNET_ID_LBN 12 22804 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_SUBNET_ID_WIDTH 1 22805 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORTRANGE_ID_OFST 0 22806 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORTRANGE_ID_LBN 13 22807 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORTRANGE_ID_WIDTH 1 22808 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORTRANGE_ID_OFST 0 22809 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORTRANGE_ID_LBN 14 22810 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORTRANGE_ID_WIDTH 1 22811 /* remote MAC address to match (as bytes in network order) */ 22812 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_MAC_OFST 4 22813 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_MAC_LEN 6 22814 /* remote port to match (as bytes in network order) */ 22815 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_PORT_OFST 10 22816 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_PORT_LEN 2 22817 /* local MAC address to match (as bytes in network order) */ 22818 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_MAC_OFST 12 22819 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_MAC_LEN 6 22820 /* local port to match (as bytes in network order) */ 22821 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_PORT_OFST 18 22822 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_PORT_LEN 2 22823 /* Ethernet type to match (as bytes in network order) */ 22824 #define MC_CMD_SET_SECURITY_RULE_IN_ETHER_TYPE_OFST 20 22825 #define MC_CMD_SET_SECURITY_RULE_IN_ETHER_TYPE_LEN 2 22826 /* Inner VLAN tag to match (as bytes in network order) */ 22827 #define MC_CMD_SET_SECURITY_RULE_IN_INNER_VLAN_OFST 22 22828 #define MC_CMD_SET_SECURITY_RULE_IN_INNER_VLAN_LEN 2 22829 /* Outer VLAN tag to match (as bytes in network order) */ 22830 #define MC_CMD_SET_SECURITY_RULE_IN_OUTER_VLAN_OFST 24 22831 #define MC_CMD_SET_SECURITY_RULE_IN_OUTER_VLAN_LEN 2 22832 /* IP protocol to match (in low byte; set high byte to 0) */ 22833 #define MC_CMD_SET_SECURITY_RULE_IN_IP_PROTO_OFST 26 22834 #define MC_CMD_SET_SECURITY_RULE_IN_IP_PROTO_LEN 2 22835 /* Physical port to match (as little-endian 32-bit value) */ 22836 #define MC_CMD_SET_SECURITY_RULE_IN_PHYSICAL_PORT_OFST 28 22837 #define MC_CMD_SET_SECURITY_RULE_IN_PHYSICAL_PORT_LEN 4 22838 /* Reserved; set to 0 */ 22839 #define MC_CMD_SET_SECURITY_RULE_IN_RESERVED_OFST 32 22840 #define MC_CMD_SET_SECURITY_RULE_IN_RESERVED_LEN 4 22841 /* remote IP address to match (as bytes in network order; set last 12 bytes to 22842 * 0 for IPv4 address) 22843 */ 22844 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_IP_OFST 36 22845 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_IP_LEN 16 22846 /* local IP address to match (as bytes in network order; set last 12 bytes to 0 22847 * for IPv4 address) 22848 */ 22849 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_IP_OFST 52 22850 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_IP_LEN 16 22851 /* remote subnet ID to match (as little-endian 32-bit value); note that remote 22852 * subnets are matched by mapping the remote IP address to a "subnet ID" via a 22853 * data structure which must already have been configured using 22854 * MC_CMD_SUBNET_MAP_SET_NODE appropriately 22855 */ 22856 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_SUBNET_ID_OFST 68 22857 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_SUBNET_ID_LEN 4 22858 /* remote portrange ID to match (as little-endian 32-bit value); note that 22859 * remote port ranges are matched by mapping the remote port to a "portrange 22860 * ID" via a data structure which must already have been configured using 22861 * MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE 22862 */ 22863 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_PORTRANGE_ID_OFST 72 22864 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_PORTRANGE_ID_LEN 4 22865 /* local portrange ID to match (as little-endian 32-bit value); note that local 22866 * port ranges are matched by mapping the local port to a "portrange ID" via a 22867 * data structure which must already have been configured using 22868 * MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE 22869 */ 22870 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_PORTRANGE_ID_OFST 76 22871 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_PORTRANGE_ID_LEN 4 22872 /* set the action for transmitted packets matching this rule */ 22873 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_OFST 80 22874 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_LEN 4 22875 /* enum: make no decision */ 22876 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_NONE 0x0 22877 /* enum: decide to accept the packet */ 22878 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_WHITELIST 0x1 22879 /* enum: decide to drop the packet */ 22880 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_BLACKLIST 0x2 22881 /* enum: inform the TSA controller about some sample of packets matching this 22882 * rule (via MC_CMD_TSA_INFO_IN_PKT_SAMPLE messages); may be bitwise-ORed with 22883 * either the WHITELIST or BLACKLIST action 22884 */ 22885 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_SAMPLE 0x4 22886 /* enum: do not change the current TX action */ 22887 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_UNCHANGED 0xffffffff 22888 /* set the action for received packets matching this rule */ 22889 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_OFST 84 22890 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_LEN 4 22891 /* enum: make no decision */ 22892 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_NONE 0x0 22893 /* enum: decide to accept the packet */ 22894 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_WHITELIST 0x1 22895 /* enum: decide to drop the packet */ 22896 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_BLACKLIST 0x2 22897 /* enum: inform the TSA controller about some sample of packets matching this 22898 * rule (via MC_CMD_TSA_INFO_IN_PKT_SAMPLE messages); may be bitwise-ORed with 22899 * either the WHITELIST or BLACKLIST action 22900 */ 22901 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_SAMPLE 0x4 22902 /* enum: do not change the current RX action */ 22903 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_UNCHANGED 0xffffffff 22904 /* counter ID to associate with this rule; IDs are allocated using 22905 * MC_CMD_SECURITY_RULE_COUNTER_ALLOC 22906 */ 22907 #define MC_CMD_SET_SECURITY_RULE_IN_COUNTER_ID_OFST 88 22908 #define MC_CMD_SET_SECURITY_RULE_IN_COUNTER_ID_LEN 4 22909 /* enum: special value for the null counter ID */ 22910 #define MC_CMD_SET_SECURITY_RULE_IN_COUNTER_ID_NONE 0x0 22911 /* enum: special value to tell the MC to allocate an available counter */ 22912 #define MC_CMD_SET_SECURITY_RULE_IN_COUNTER_ID_SW_AUTO 0xeeeeeeee 22913 /* enum: special value to request use of hardware counter (Medford2 only) */ 22914 #define MC_CMD_SET_SECURITY_RULE_IN_COUNTER_ID_HW 0xffffffff 22915 22916 /* MC_CMD_SET_SECURITY_RULE_OUT msgresponse */ 22917 #define MC_CMD_SET_SECURITY_RULE_OUT_LEN 32 22918 /* new reference count for uses of counter ID */ 22919 #define MC_CMD_SET_SECURITY_RULE_OUT_COUNTER_REFCNT_OFST 0 22920 #define MC_CMD_SET_SECURITY_RULE_OUT_COUNTER_REFCNT_LEN 4 22921 /* constructed match bits for this rule (as a tracing aid only) */ 22922 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_MATCH_BITS_OFST 4 22923 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_MATCH_BITS_LEN 12 22924 /* constructed discriminator bits for this rule (as a tracing aid only) */ 22925 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_DISCRIMINATOR_OFST 16 22926 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_DISCRIMINATOR_LEN 4 22927 /* base location for probes for this rule (as a tracing aid only) */ 22928 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_PROBE_BASE_OFST 20 22929 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_PROBE_BASE_LEN 4 22930 /* step for probes for this rule (as a tracing aid only) */ 22931 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_PROBE_STEP_OFST 24 22932 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_PROBE_STEP_LEN 4 22933 /* ID for reading back the counter */ 22934 #define MC_CMD_SET_SECURITY_RULE_OUT_COUNTER_ID_OFST 28 22935 #define MC_CMD_SET_SECURITY_RULE_OUT_COUNTER_ID_LEN 4 22936 22937 22938 /***********************************/ 22939 /* MC_CMD_RESET_SECURITY_RULES 22940 * Reset all blacklist and whitelist actions for a particular physical port, or 22941 * all ports. (Medford-only; for use by SolarSecure apps, not directly by 22942 * drivers. See SF-114946-SW.) NOTE - this message definition is provisional. 22943 * It has not yet been used in any released code and may change during 22944 * development. This note will be removed once it is regarded as stable. 22945 */ 22946 #define MC_CMD_RESET_SECURITY_RULES 0x110 22947 #define MC_CMD_RESET_SECURITY_RULES_MSGSET 0x110 22948 #undef MC_CMD_0x110_PRIVILEGE_CTG 22949 22950 #define MC_CMD_0x110_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 22951 22952 /* MC_CMD_RESET_SECURITY_RULES_IN msgrequest */ 22953 #define MC_CMD_RESET_SECURITY_RULES_IN_LEN 4 22954 /* index of physical port to reset (or ALL_PHYSICAL_PORTS to reset all) */ 22955 #define MC_CMD_RESET_SECURITY_RULES_IN_PHYSICAL_PORT_OFST 0 22956 #define MC_CMD_RESET_SECURITY_RULES_IN_PHYSICAL_PORT_LEN 4 22957 /* enum: special value to reset all physical ports */ 22958 #define MC_CMD_RESET_SECURITY_RULES_IN_ALL_PHYSICAL_PORTS 0xffffffff 22959 22960 /* MC_CMD_RESET_SECURITY_RULES_OUT msgresponse */ 22961 #define MC_CMD_RESET_SECURITY_RULES_OUT_LEN 0 22962 22963 22964 /***********************************/ 22965 /* MC_CMD_GET_SECURITY_RULESET_VERSION 22966 * Return a large hash value representing a "version" of the complete set of 22967 * currently active blacklist / whitelist rules and associated data structures. 22968 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See 22969 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 22970 * been used in any released code and may change during development. This note 22971 * will be removed once it is regarded as stable. 22972 */ 22973 #define MC_CMD_GET_SECURITY_RULESET_VERSION 0x111 22974 #define MC_CMD_GET_SECURITY_RULESET_VERSION_MSGSET 0x111 22975 #undef MC_CMD_0x111_PRIVILEGE_CTG 22976 22977 #define MC_CMD_0x111_PRIVILEGE_CTG SRIOV_CTG_ADMIN 22978 22979 /* MC_CMD_GET_SECURITY_RULESET_VERSION_IN msgrequest */ 22980 #define MC_CMD_GET_SECURITY_RULESET_VERSION_IN_LEN 0 22981 22982 /* MC_CMD_GET_SECURITY_RULESET_VERSION_OUT msgresponse */ 22983 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_LENMIN 1 22984 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_LENMAX 252 22985 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_LENMAX_MCDI2 1020 22986 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_LEN(num) (0+1*(num)) 22987 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_NUM(len) (((len)-0)/1) 22988 /* Opaque hash value; length may vary depending on the hash scheme used */ 22989 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_OFST 0 22990 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_LEN 1 22991 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_MINNUM 1 22992 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_MAXNUM 252 22993 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_MAXNUM_MCDI2 1020 22994 22995 22996 /***********************************/ 22997 /* MC_CMD_SECURITY_RULE_COUNTER_ALLOC 22998 * Allocate counters for use with blacklist / whitelist rules. (Medford-only; 22999 * for use by SolarSecure apps, not directly by drivers. See SF-114946-SW.) 23000 * NOTE - this message definition is provisional. It has not yet been used in 23001 * any released code and may change during development. This note will be 23002 * removed once it is regarded as stable. 23003 */ 23004 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC 0x112 23005 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_MSGSET 0x112 23006 #undef MC_CMD_0x112_PRIVILEGE_CTG 23007 23008 #define MC_CMD_0x112_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 23009 23010 /* MC_CMD_SECURITY_RULE_COUNTER_ALLOC_IN msgrequest */ 23011 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_IN_LEN 4 23012 /* the number of new counter IDs to request */ 23013 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_IN_NUM_COUNTERS_OFST 0 23014 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_IN_NUM_COUNTERS_LEN 4 23015 23016 /* MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT msgresponse */ 23017 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_LENMIN 4 23018 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_LENMAX 252 23019 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_LENMAX_MCDI2 1020 23020 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_LEN(num) (4+4*(num)) 23021 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_NUM(len) (((len)-4)/4) 23022 /* the number of new counter IDs allocated (may be less than the number 23023 * requested if resources are unavailable) 23024 */ 23025 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_NUM_COUNTERS_OFST 0 23026 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_NUM_COUNTERS_LEN 4 23027 /* new counter ID(s) */ 23028 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_OFST 4 23029 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_LEN 4 23030 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_MINNUM 0 23031 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_MAXNUM 62 23032 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_MAXNUM_MCDI2 254 23033 23034 23035 /***********************************/ 23036 /* MC_CMD_SECURITY_RULE_COUNTER_FREE 23037 * Allocate counters for use with blacklist / whitelist rules. (Medford-only; 23038 * for use by SolarSecure apps, not directly by drivers. See SF-114946-SW.) 23039 * NOTE - this message definition is provisional. It has not yet been used in 23040 * any released code and may change during development. This note will be 23041 * removed once it is regarded as stable. 23042 */ 23043 #define MC_CMD_SECURITY_RULE_COUNTER_FREE 0x113 23044 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_MSGSET 0x113 23045 #undef MC_CMD_0x113_PRIVILEGE_CTG 23046 23047 #define MC_CMD_0x113_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 23048 23049 /* MC_CMD_SECURITY_RULE_COUNTER_FREE_IN msgrequest */ 23050 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_LENMIN 4 23051 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_LENMAX 252 23052 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_LENMAX_MCDI2 1020 23053 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_LEN(num) (4+4*(num)) 23054 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_NUM(len) (((len)-4)/4) 23055 /* the number of counter IDs to free */ 23056 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_NUM_COUNTERS_OFST 0 23057 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_NUM_COUNTERS_LEN 4 23058 /* the counter ID(s) to free */ 23059 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_OFST 4 23060 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_LEN 4 23061 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_MINNUM 0 23062 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_MAXNUM 62 23063 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_MAXNUM_MCDI2 254 23064 23065 /* MC_CMD_SECURITY_RULE_COUNTER_FREE_OUT msgresponse */ 23066 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_OUT_LEN 0 23067 23068 23069 /***********************************/ 23070 /* MC_CMD_SUBNET_MAP_SET_NODE 23071 * Atomically update a trie node in the map of subnets to subnet IDs. The 23072 * constants in the descriptions of the fields of this message may be retrieved 23073 * by the GET_SECURITY_RULE_INFO op of MC_CMD_GET_PARSER_DISP_INFO. (Medford- 23074 * only; for use by SolarSecure apps, not directly by drivers. See 23075 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 23076 * been used in any released code and may change during development. This note 23077 * will be removed once it is regarded as stable. 23078 */ 23079 #define MC_CMD_SUBNET_MAP_SET_NODE 0x114 23080 #define MC_CMD_SUBNET_MAP_SET_NODE_MSGSET 0x114 23081 #undef MC_CMD_0x114_PRIVILEGE_CTG 23082 23083 #define MC_CMD_0x114_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 23084 23085 /* MC_CMD_SUBNET_MAP_SET_NODE_IN msgrequest */ 23086 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_LENMIN 6 23087 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_LENMAX 252 23088 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_LENMAX_MCDI2 1020 23089 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_LEN(num) (4+2*(num)) 23090 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_NUM(len) (((len)-4)/2) 23091 /* node to update in the range 0 .. SUBNET_MAP_NUM_NODES-1 */ 23092 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_NODE_ID_OFST 0 23093 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_NODE_ID_LEN 4 23094 /* SUBNET_MAP_NUM_ENTRIES_PER_NODE new entries; each entry is either a pointer 23095 * to the next node, expressed as an offset in the trie memory (i.e. node ID 23096 * multiplied by SUBNET_MAP_NUM_ENTRIES_PER_NODE), or a leaf value in the range 23097 * SUBNET_ID_MIN .. SUBNET_ID_MAX 23098 */ 23099 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_OFST 4 23100 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_LEN 2 23101 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_MINNUM 1 23102 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_MAXNUM 124 23103 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_MAXNUM_MCDI2 508 23104 23105 /* MC_CMD_SUBNET_MAP_SET_NODE_OUT msgresponse */ 23106 #define MC_CMD_SUBNET_MAP_SET_NODE_OUT_LEN 0 23107 23108 /* PORTRANGE_TREE_ENTRY structuredef */ 23109 #define PORTRANGE_TREE_ENTRY_LEN 4 23110 /* key for branch nodes (<= key takes left branch, > key takes right branch), 23111 * or magic value for leaf nodes 23112 */ 23113 #define PORTRANGE_TREE_ENTRY_BRANCH_KEY_OFST 0 23114 #define PORTRANGE_TREE_ENTRY_BRANCH_KEY_LEN 2 23115 #define PORTRANGE_TREE_ENTRY_LEAF_NODE_KEY 0xffff /* enum */ 23116 #define PORTRANGE_TREE_ENTRY_BRANCH_KEY_LBN 0 23117 #define PORTRANGE_TREE_ENTRY_BRANCH_KEY_WIDTH 16 23118 /* final portrange ID for leaf nodes (don't care for branch nodes) */ 23119 #define PORTRANGE_TREE_ENTRY_LEAF_PORTRANGE_ID_OFST 2 23120 #define PORTRANGE_TREE_ENTRY_LEAF_PORTRANGE_ID_LEN 2 23121 #define PORTRANGE_TREE_ENTRY_LEAF_PORTRANGE_ID_LBN 16 23122 #define PORTRANGE_TREE_ENTRY_LEAF_PORTRANGE_ID_WIDTH 16 23123 23124 23125 /***********************************/ 23126 /* MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE 23127 * Atomically update the entire tree mapping remote port ranges to portrange 23128 * IDs. The constants in the descriptions of the fields of this message may be 23129 * retrieved by the GET_SECURITY_RULE_INFO op of MC_CMD_GET_PARSER_DISP_INFO. 23130 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See 23131 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 23132 * been used in any released code and may change during development. This note 23133 * will be removed once it is regarded as stable. 23134 */ 23135 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE 0x115 23136 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_MSGSET 0x115 23137 #undef MC_CMD_0x115_PRIVILEGE_CTG 23138 23139 #define MC_CMD_0x115_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 23140 23141 /* MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN msgrequest */ 23142 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_LENMIN 4 23143 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_LENMAX 252 23144 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_LENMAX_MCDI2 1020 23145 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_LEN(num) (0+4*(num)) 23146 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_NUM(len) (((len)-0)/4) 23147 /* PORTRANGE_TREE_NUM_ENTRIES new entries, each laid out as a 23148 * PORTRANGE_TREE_ENTRY 23149 */ 23150 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_OFST 0 23151 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_LEN 4 23152 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MINNUM 1 23153 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MAXNUM 63 23154 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MAXNUM_MCDI2 255 23155 23156 /* MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_OUT msgresponse */ 23157 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_OUT_LEN 0 23158 23159 23160 /***********************************/ 23161 /* MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE 23162 * Atomically update the entire tree mapping remote port ranges to portrange 23163 * IDs. The constants in the descriptions of the fields of this message may be 23164 * retrieved by the GET_SECURITY_RULE_INFO op of MC_CMD_GET_PARSER_DISP_INFO. 23165 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See 23166 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 23167 * been used in any released code and may change during development. This note 23168 * will be removed once it is regarded as stable. 23169 */ 23170 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE 0x116 23171 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_MSGSET 0x116 23172 #undef MC_CMD_0x116_PRIVILEGE_CTG 23173 23174 #define MC_CMD_0x116_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 23175 23176 /* MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN msgrequest */ 23177 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_LENMIN 4 23178 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_LENMAX 252 23179 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_LENMAX_MCDI2 1020 23180 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_LEN(num) (0+4*(num)) 23181 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_NUM(len) (((len)-0)/4) 23182 /* PORTRANGE_TREE_NUM_ENTRIES new entries, each laid out as a 23183 * PORTRANGE_TREE_ENTRY 23184 */ 23185 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_OFST 0 23186 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_LEN 4 23187 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MINNUM 1 23188 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MAXNUM 63 23189 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MAXNUM_MCDI2 255 23190 23191 /* MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_OUT msgresponse */ 23192 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_OUT_LEN 0 23193 23194 /* TUNNEL_ENCAP_UDP_PORT_ENTRY structuredef */ 23195 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_LEN 4 23196 /* UDP port (the standard ports are named below but any port may be used) */ 23197 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_UDP_PORT_OFST 0 23198 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_UDP_PORT_LEN 2 23199 /* enum: the IANA allocated UDP port for VXLAN */ 23200 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_IANA_VXLAN_UDP_PORT 0x12b5 23201 /* enum: the IANA allocated UDP port for Geneve */ 23202 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_IANA_GENEVE_UDP_PORT 0x17c1 23203 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_UDP_PORT_LBN 0 23204 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_UDP_PORT_WIDTH 16 23205 /* tunnel encapsulation protocol (only those named below are supported) */ 23206 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_PROTOCOL_OFST 2 23207 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_PROTOCOL_LEN 2 23208 /* enum: This port will be used for VXLAN on both IPv4 and IPv6 */ 23209 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_VXLAN 0x0 23210 /* enum: This port will be used for Geneve on both IPv4 and IPv6 */ 23211 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_GENEVE 0x1 23212 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_PROTOCOL_LBN 16 23213 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_PROTOCOL_WIDTH 16 23214 23215 23216 /***********************************/ 23217 /* MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS 23218 * Configure UDP ports for tunnel encapsulation hardware acceleration. The 23219 * parser-dispatcher will attempt to parse traffic on these ports as tunnel 23220 * encapsulation PDUs and filter them using the tunnel encapsulation filter 23221 * chain rather than the standard filter chain. Note that this command can 23222 * cause all functions to see a reset. (Available on Medford only.) 23223 */ 23224 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS 0x117 23225 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_MSGSET 0x117 23226 #undef MC_CMD_0x117_PRIVILEGE_CTG 23227 23228 #define MC_CMD_0x117_PRIVILEGE_CTG SRIOV_CTG_ADMIN 23229 23230 /* MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN msgrequest */ 23231 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LENMIN 4 23232 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LENMAX 68 23233 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LENMAX_MCDI2 68 23234 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LEN(num) (4+4*(num)) 23235 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_NUM(len) (((len)-4)/4) 23236 /* Flags */ 23237 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_FLAGS_OFST 0 23238 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_FLAGS_LEN 2 23239 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_UNLOADING_OFST 0 23240 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_UNLOADING_LBN 0 23241 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_UNLOADING_WIDTH 1 23242 /* The number of entries in the ENTRIES array */ 23243 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_NUM_ENTRIES_OFST 2 23244 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_NUM_ENTRIES_LEN 2 23245 /* Entries defining the UDP port to protocol mapping, each laid out as a 23246 * TUNNEL_ENCAP_UDP_PORT_ENTRY 23247 */ 23248 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_OFST 4 23249 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_LEN 4 23250 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_MINNUM 0 23251 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_MAXNUM 16 23252 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_MAXNUM_MCDI2 16 23253 23254 /* MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT msgresponse */ 23255 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_LEN 2 23256 /* Flags */ 23257 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_FLAGS_OFST 0 23258 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_FLAGS_LEN 2 23259 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_RESETTING_OFST 0 23260 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_RESETTING_LBN 0 23261 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_RESETTING_WIDTH 1 23262 23263 23264 /***********************************/ 23265 /* MC_CMD_RX_BALANCING 23266 * Configure a port upconverter to distribute the packets on both RX engines. 23267 * Packets are distributed based on a table with the destination vFIFO. The 23268 * index of the table is a hash of source and destination of IPV4 and VLAN 23269 * priority. 23270 */ 23271 #define MC_CMD_RX_BALANCING 0x118 23272 #define MC_CMD_RX_BALANCING_MSGSET 0x118 23273 #undef MC_CMD_0x118_PRIVILEGE_CTG 23274 23275 #define MC_CMD_0x118_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 23276 23277 /* MC_CMD_RX_BALANCING_IN msgrequest */ 23278 #define MC_CMD_RX_BALANCING_IN_LEN 16 23279 /* The RX port whose upconverter table will be modified */ 23280 #define MC_CMD_RX_BALANCING_IN_PORT_OFST 0 23281 #define MC_CMD_RX_BALANCING_IN_PORT_LEN 4 23282 /* The VLAN priority associated to the table index and vFIFO */ 23283 #define MC_CMD_RX_BALANCING_IN_PRIORITY_OFST 4 23284 #define MC_CMD_RX_BALANCING_IN_PRIORITY_LEN 4 23285 /* The resulting bit of SRC^DST for indexing the table */ 23286 #define MC_CMD_RX_BALANCING_IN_SRC_DST_OFST 8 23287 #define MC_CMD_RX_BALANCING_IN_SRC_DST_LEN 4 23288 /* The RX engine to which the vFIFO in the table entry will point to */ 23289 #define MC_CMD_RX_BALANCING_IN_ENG_OFST 12 23290 #define MC_CMD_RX_BALANCING_IN_ENG_LEN 4 23291 23292 /* MC_CMD_RX_BALANCING_OUT msgresponse */ 23293 #define MC_CMD_RX_BALANCING_OUT_LEN 0 23294 23295 23296 /***********************************/ 23297 /* MC_CMD_TSA_BIND 23298 * TSAN - TSAC binding communication protocol. Refer to SF-115479-TC for more 23299 * info in respect to the binding protocol. 23300 */ 23301 #define MC_CMD_TSA_BIND 0x119 23302 #define MC_CMD_TSA_BIND_MSGSET 0x119 23303 #undef MC_CMD_0x119_PRIVILEGE_CTG 23304 23305 #define MC_CMD_0x119_PRIVILEGE_CTG SRIOV_CTG_ADMIN 23306 23307 /* MC_CMD_TSA_BIND_IN msgrequest: Protocol operation code */ 23308 #define MC_CMD_TSA_BIND_IN_LEN 4 23309 #define MC_CMD_TSA_BIND_IN_OP_OFST 0 23310 #define MC_CMD_TSA_BIND_IN_OP_LEN 4 23311 /* enum: Obsolete. Use MC_CMD_SECURE_NIC_INFO_IN_STATUS. */ 23312 #define MC_CMD_TSA_BIND_OP_GET_ID 0x1 23313 /* enum: Get a binding ticket from the TSAN. The binding ticket is used as part 23314 * of the binding procedure to authorize the binding of an adapter to a TSAID. 23315 * Refer to SF-114946-SW for more information. This sub-command is only 23316 * available over a TLS secure connection between the TSAN and TSAC. 23317 */ 23318 #define MC_CMD_TSA_BIND_OP_GET_TICKET 0x2 23319 /* enum: Opcode associated with the propagation of a private key that TSAN uses 23320 * as part of post-binding authentication procedure. More specifically, TSAN 23321 * uses this key for a signing operation. TSAC uses the counterpart public key 23322 * to verify the signature. Note - The post-binding authentication occurs when 23323 * the TSAN-TSAC connection terminates and TSAN tries to reconnect. Refer to 23324 * SF-114946-SW for more information. This sub-command is only available over a 23325 * TLS secure connection between the TSAN and TSAC. 23326 */ 23327 #define MC_CMD_TSA_BIND_OP_SET_KEY 0x3 23328 /* enum: Request an insecure unbinding operation. This sub-command is available 23329 * for any privileged client. 23330 */ 23331 #define MC_CMD_TSA_BIND_OP_UNBIND 0x4 23332 /* enum: Obsolete. Use MC_CMD_TSA_BIND_OP_SECURE_UNBIND. */ 23333 #define MC_CMD_TSA_BIND_OP_UNBIND_EXT 0x5 23334 /* enum: Opcode associated with the propagation of the unbinding secret token. 23335 * TSAN persists the unbinding secret token. Refer to SF-115479-TC for more 23336 * information. This sub-command is only available over a TLS secure connection 23337 * between the TSAN and TSAC. 23338 */ 23339 #define MC_CMD_TSA_BIND_OP_SET_UNBINDTOKEN 0x6 23340 /* enum: Obsolete. Use MC_CMD_TSA_BIND_OP_SECURE_DECOMMISSION. */ 23341 #define MC_CMD_TSA_BIND_OP_DECOMMISSION 0x7 23342 /* enum: Obsolete. Use MC_CMD_GET_CERTIFICATE. */ 23343 #define MC_CMD_TSA_BIND_OP_GET_CERTIFICATE 0x8 23344 /* enum: Request a secure unbinding operation using unbinding token. This sub- 23345 * command is available for any privileged client. 23346 */ 23347 #define MC_CMD_TSA_BIND_OP_SECURE_UNBIND 0x9 23348 /* enum: Request a secure decommissioning operation. This sub-command is 23349 * available for any privileged client. 23350 */ 23351 #define MC_CMD_TSA_BIND_OP_SECURE_DECOMMISSION 0xa 23352 /* enum: Test facility that allows an adapter to be configured to behave as if 23353 * Bound to a TSA controller with restricted MCDI administrator operations. 23354 * This operation is primarily intended to aid host driver development. 23355 */ 23356 #define MC_CMD_TSA_BIND_OP_TEST_MCDI 0xb 23357 23358 /* MC_CMD_TSA_BIND_IN_GET_ID msgrequest: Obsolete. Use 23359 * MC_CMD_SECURE_NIC_INFO_IN_STATUS. 23360 */ 23361 #define MC_CMD_TSA_BIND_IN_GET_ID_LEN 20 23362 /* The operation requested. */ 23363 #define MC_CMD_TSA_BIND_IN_GET_ID_OP_OFST 0 23364 #define MC_CMD_TSA_BIND_IN_GET_ID_OP_LEN 4 23365 /* Cryptographic nonce that TSAC generates and sends to TSAN. TSAC generates 23366 * the nonce every time as part of the TSAN post-binding authentication 23367 * procedure when the TSAN-TSAC connection terminates and TSAN does need to re- 23368 * connect to the TSAC. Refer to SF-114946-SW for more information. 23369 */ 23370 #define MC_CMD_TSA_BIND_IN_GET_ID_NONCE_OFST 4 23371 #define MC_CMD_TSA_BIND_IN_GET_ID_NONCE_LEN 16 23372 23373 /* MC_CMD_TSA_BIND_IN_GET_TICKET msgrequest */ 23374 #define MC_CMD_TSA_BIND_IN_GET_TICKET_LEN 4 23375 /* The operation requested. */ 23376 #define MC_CMD_TSA_BIND_IN_GET_TICKET_OP_OFST 0 23377 #define MC_CMD_TSA_BIND_IN_GET_TICKET_OP_LEN 4 23378 23379 /* MC_CMD_TSA_BIND_IN_SET_KEY msgrequest */ 23380 #define MC_CMD_TSA_BIND_IN_SET_KEY_LENMIN 5 23381 #define MC_CMD_TSA_BIND_IN_SET_KEY_LENMAX 252 23382 #define MC_CMD_TSA_BIND_IN_SET_KEY_LENMAX_MCDI2 1020 23383 #define MC_CMD_TSA_BIND_IN_SET_KEY_LEN(num) (4+1*(num)) 23384 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_NUM(len) (((len)-4)/1) 23385 /* The operation requested. */ 23386 #define MC_CMD_TSA_BIND_IN_SET_KEY_OP_OFST 0 23387 #define MC_CMD_TSA_BIND_IN_SET_KEY_OP_LEN 4 23388 /* This data blob contains the private key generated by the TSAC. TSAN uses 23389 * this key for a signing operation. Note- This private key is used in 23390 * conjunction with the post-binding TSAN authentication procedure that occurs 23391 * when the TSAN-TSAC connection terminates and TSAN tries to reconnect. Refer 23392 * to SF-114946-SW for more information. 23393 */ 23394 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_OFST 4 23395 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_LEN 1 23396 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_MINNUM 1 23397 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_MAXNUM 248 23398 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_MAXNUM_MCDI2 1016 23399 23400 /* MC_CMD_TSA_BIND_IN_UNBIND msgrequest: Request an insecure unbinding 23401 * operation. 23402 */ 23403 #define MC_CMD_TSA_BIND_IN_UNBIND_LEN 10 23404 /* The operation requested. */ 23405 #define MC_CMD_TSA_BIND_IN_UNBIND_OP_OFST 0 23406 #define MC_CMD_TSA_BIND_IN_UNBIND_OP_LEN 4 23407 /* TSAN unique identifier for the network adapter */ 23408 #define MC_CMD_TSA_BIND_IN_UNBIND_TSANID_OFST 4 23409 #define MC_CMD_TSA_BIND_IN_UNBIND_TSANID_LEN 6 23410 23411 /* MC_CMD_TSA_BIND_IN_UNBIND_EXT msgrequest: Obsolete. Use 23412 * MC_CMD_TSA_BIND_IN_SECURE_UNBIND. 23413 */ 23414 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_LENMIN 93 23415 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_LENMAX 252 23416 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_LENMAX_MCDI2 1020 23417 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_LEN(num) (92+1*(num)) 23418 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_NUM(len) (((len)-92)/1) 23419 /* The operation requested. */ 23420 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_OP_OFST 0 23421 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_OP_LEN 4 23422 /* TSAN unique identifier for the network adapter */ 23423 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSANID_OFST 4 23424 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSANID_LEN 6 23425 /* Align the arguments to 32 bits */ 23426 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSANID_RSVD_OFST 10 23427 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSANID_RSVD_LEN 2 23428 /* This attribute identifies the TSA infrastructure domain. The length of the 23429 * TSAID attribute is limited to 64 bytes. This is how TSA SDK defines the max 23430 * length. Note- The TSAID is the Organizational Unit Name filed as part of the 23431 * root and server certificates. 23432 */ 23433 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSAID_OFST 12 23434 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSAID_LEN 1 23435 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSAID_NUM 64 23436 /* Unbinding secret token. The adapter validates this unbinding token by 23437 * comparing it against the one stored on the adapter as part of the 23438 * MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN msgrequest. Refer to SF-115479-TC for 23439 * more information. 23440 */ 23441 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_UNBINDTOKEN_OFST 76 23442 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_UNBINDTOKEN_LEN 16 23443 /* This is the signature of the above mentioned fields- TSANID, TSAID and 23444 * UNBINDTOKEN. As per current requirements, the SIG opaque data blob contains 23445 * ECDSA ECC-384 based signature. The ECC curve is secp384r1. The signature is 23446 * also ASN-1 encoded. Note- The signature is verified based on the public key 23447 * stored into the root certificate that is provisioned on the adapter side. 23448 * This key is known as the PUKtsaid. Refer to SF-115479-TC for more 23449 * information. 23450 */ 23451 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_OFST 92 23452 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_LEN 1 23453 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_MINNUM 1 23454 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_MAXNUM 160 23455 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_MAXNUM_MCDI2 928 23456 23457 /* MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN msgrequest */ 23458 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_LEN 20 23459 /* The operation requested. */ 23460 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_OP_OFST 0 23461 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_OP_LEN 4 23462 /* Unbinding secret token. TSAN persists the unbinding secret token. Refer to 23463 * SF-115479-TC for more information. 23464 */ 23465 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_UNBINDTOKEN_OFST 4 23466 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_UNBINDTOKEN_LEN 16 23467 /* enum: There are situations when the binding process does not complete 23468 * successfully due to key, other attributes corruption at the database level 23469 * (Controller). Adapter can't connect to the controller anymore. To recover, 23470 * make usage of the decommission command that forces the adapter into 23471 * unbinding state. 23472 */ 23473 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_ADAPTER_BINDING_FAILURE 0x1 23474 23475 /* MC_CMD_TSA_BIND_IN_DECOMMISSION msgrequest: Obsolete. Use 23476 * MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION. 23477 */ 23478 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_LENMIN 109 23479 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_LENMAX 252 23480 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_LENMAX_MCDI2 1020 23481 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_LEN(num) (108+1*(num)) 23482 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_NUM(len) (((len)-108)/1) 23483 /* This is the signature of the above mentioned fields- TSAID, USER and REASON. 23484 * As per current requirements, the SIG opaque data blob contains ECDSA ECC-384 23485 * based signature. The ECC curve is secp384r1. The signature is also ASN-1 23486 * encoded . Note- The signature is verified based on the public key stored 23487 * into the root certificate that is provisioned on the adapter side. This key 23488 * is known as the PUKtsaid. Refer to SF-115479-TC for more information. 23489 */ 23490 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_OFST 108 23491 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_LEN 1 23492 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_MINNUM 1 23493 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_MAXNUM 144 23494 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_MAXNUM_MCDI2 912 23495 /* The operation requested. */ 23496 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_OP_OFST 0 23497 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_OP_LEN 4 23498 /* This attribute identifies the TSA infrastructure domain. The length of the 23499 * TSAID attribute is limited to 64 bytes. This is how TSA SDK defines the max 23500 * length. Note- The TSAID is the Organizational Unit Name filed as part of the 23501 * root and server certificates. 23502 */ 23503 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_TSAID_OFST 4 23504 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_TSAID_LEN 1 23505 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_TSAID_NUM 64 23506 /* User ID that comes, as an example, from the Controller. Note- The 33 byte 23507 * length of this attribute is max length of the linux user name plus null 23508 * character. 23509 */ 23510 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_USER_OFST 68 23511 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_USER_LEN 1 23512 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_USER_NUM 33 23513 /* Align the arguments to 32 bits */ 23514 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_USER_RSVD_OFST 101 23515 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_USER_RSVD_LEN 3 23516 /* Reason of why decommissioning happens Note- The list of reasons, defined as 23517 * part of the enumeration below, can be extended. 23518 */ 23519 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_REASON_OFST 104 23520 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_REASON_LEN 4 23521 23522 /* MC_CMD_TSA_BIND_IN_GET_CERTIFICATE msgrequest: Obsolete. Use 23523 * MC_CMD_GET_CERTIFICATE. 23524 */ 23525 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_LEN 8 23526 /* The operation requested, must be MC_CMD_TSA_BIND_OP_GET_CERTIFICATE. */ 23527 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_OP_OFST 0 23528 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_OP_LEN 4 23529 /* Type of the certificate to be retrieved. */ 23530 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_TYPE_OFST 4 23531 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_TYPE_LEN 4 23532 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_UNUSED 0x0 /* enum */ 23533 /* enum: Adapter Authentication Certificate (AAC). The AAC is used by the 23534 * controller to verify the authenticity of the adapter. 23535 */ 23536 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_AAC 0x1 23537 /* enum: Adapter Authentication Signing Certificate (AASC). The AASC is used by 23538 * the controller to verify the validity of AAC. 23539 */ 23540 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_AASC 0x2 23541 23542 /* MC_CMD_TSA_BIND_IN_SECURE_UNBIND msgrequest: Request a secure unbinding 23543 * operation using unbinding token. 23544 */ 23545 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_LENMIN 97 23546 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_LENMAX 200 23547 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_LENMAX_MCDI2 200 23548 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_LEN(num) (96+1*(num)) 23549 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_NUM(len) (((len)-96)/1) 23550 /* The operation requested, must be MC_CMD_TSA_BIND_OP_SECURE_UNBIND. */ 23551 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_OP_OFST 0 23552 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_OP_LEN 4 23553 /* Type of the message. (MESSAGE_TYPE_xxx) Must be 23554 * MESSAGE_TYPE_TSA_SECURE_UNBIND. 23555 */ 23556 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_MESSAGE_TYPE_OFST 4 23557 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_MESSAGE_TYPE_LEN 4 23558 /* TSAN unique identifier for the network adapter */ 23559 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSANID_OFST 8 23560 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSANID_LEN 6 23561 /* Align the arguments to 32 bits */ 23562 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSANID_RSVD_OFST 14 23563 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSANID_RSVD_LEN 2 23564 /* A NUL padded US-ASCII string identifying the TSA infrastructure domain. This 23565 * field is for information only, and not used by the firmware. Note- The TSAID 23566 * is the Organizational Unit Name field as part of the root and server 23567 * certificates. 23568 */ 23569 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSAID_OFST 16 23570 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSAID_LEN 1 23571 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSAID_NUM 64 23572 /* Unbinding secret token. The adapter validates this unbinding token by 23573 * comparing it against the one stored on the adapter as part of the 23574 * MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN msgrequest. Refer to SF-115479-TC for 23575 * more information. 23576 */ 23577 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_UNBINDTOKEN_OFST 80 23578 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_UNBINDTOKEN_LEN 16 23579 /* The signature computed and encoded as specified by MESSAGE_TYPE. */ 23580 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_OFST 96 23581 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_LEN 1 23582 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_MINNUM 1 23583 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_MAXNUM 104 23584 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_MAXNUM_MCDI2 104 23585 23586 /* MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION msgrequest: Request a secure 23587 * decommissioning operation. 23588 */ 23589 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_LENMIN 113 23590 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_LENMAX 216 23591 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_LENMAX_MCDI2 216 23592 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_LEN(num) (112+1*(num)) 23593 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_NUM(len) (((len)-112)/1) 23594 /* The operation requested, must be MC_CMD_TSA_BIND_OP_SECURE_DECOMMISSION. */ 23595 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_OP_OFST 0 23596 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_OP_LEN 4 23597 /* Type of the message. (MESSAGE_TYPE_xxx) Must be 23598 * MESSAGE_TYPE_SECURE_DECOMMISSION. 23599 */ 23600 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_MESSAGE_TYPE_OFST 4 23601 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_MESSAGE_TYPE_LEN 4 23602 /* A NUL padded US-ASCII string identifying the TSA infrastructure domain. This 23603 * field is for information only, and not used by the firmware. Note- The TSAID 23604 * is the Organizational Unit Name field as part of the root and server 23605 * certificates. 23606 */ 23607 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_TSAID_OFST 8 23608 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_TSAID_LEN 1 23609 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_TSAID_NUM 64 23610 /* A NUL padded US-ASCII string containing user name of the creator of the 23611 * decommissioning ticket. This field is for information only, and not used by 23612 * the firmware. 23613 */ 23614 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_USER_OFST 72 23615 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_USER_LEN 1 23616 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_USER_NUM 36 23617 /* Reason of why decommissioning happens */ 23618 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_REASON_OFST 108 23619 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_REASON_LEN 4 23620 /* enum: There are situations when the binding process does not complete 23621 * successfully due to key, other attributes corruption at the database level 23622 * (Controller). Adapter can't connect to the controller anymore. To recover, 23623 * use the decommission command to force the adapter into unbound state. 23624 */ 23625 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_ADAPTER_BINDING_FAILURE 0x1 23626 /* The signature computed and encoded as specified by MESSAGE_TYPE. */ 23627 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_OFST 112 23628 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_LEN 1 23629 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_MINNUM 1 23630 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_MAXNUM 104 23631 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_MAXNUM_MCDI2 104 23632 23633 /* MC_CMD_TSA_BIND_IN_TEST_MCDI msgrequest: Test mode that emulates MCDI 23634 * interface restrictions of a bound adapter. This operation is intended for 23635 * test use on adapters that are not deployed and bound to a TSA Controller. 23636 * Using it on a Bound adapter will succeed but will not alter the MCDI 23637 * privileges as MCDI operations will already be restricted. 23638 */ 23639 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_LEN 8 23640 /* The operation requested must be MC_CMD_TSA_BIND_OP_TEST_MCDI. */ 23641 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_OP_OFST 0 23642 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_OP_LEN 4 23643 /* Enable or disable emulation of bound adapter */ 23644 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_CTRL_OFST 4 23645 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_CTRL_LEN 4 23646 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_DISABLE 0x0 /* enum */ 23647 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_ENABLE 0x1 /* enum */ 23648 23649 /* MC_CMD_TSA_BIND_OUT_GET_ID msgresponse: Obsolete. Use 23650 * MC_CMD_SECURE_NIC_INFO_OUT_STATUS. 23651 */ 23652 #define MC_CMD_TSA_BIND_OUT_GET_ID_LENMIN 15 23653 #define MC_CMD_TSA_BIND_OUT_GET_ID_LENMAX 252 23654 #define MC_CMD_TSA_BIND_OUT_GET_ID_LENMAX_MCDI2 1020 23655 #define MC_CMD_TSA_BIND_OUT_GET_ID_LEN(num) (14+1*(num)) 23656 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_NUM(len) (((len)-14)/1) 23657 /* The protocol operation code MC_CMD_TSA_BIND_OP_GET_ID that is sent back to 23658 * the caller. 23659 */ 23660 #define MC_CMD_TSA_BIND_OUT_GET_ID_OP_OFST 0 23661 #define MC_CMD_TSA_BIND_OUT_GET_ID_OP_LEN 4 23662 /* Rules engine type. Note- The rules engine type allows TSAC to further 23663 * identify the connected endpoint (e.g. TSAN, NIC Emulator) type and take the 23664 * proper action accordingly. As an example, TSAC uses the rules engine type to 23665 * select the SF key that differs in the case of TSAN vs. NIC Emulator. 23666 */ 23667 #define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_OFST 4 23668 #define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_LEN 4 23669 /* enum: Hardware rules engine. */ 23670 #define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_TSAN 0x1 23671 /* enum: Nic emulator rules engine. */ 23672 #define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_NEMU 0x2 23673 /* enum: SSFE. */ 23674 #define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_SSFE 0x3 23675 /* TSAN unique identifier for the network adapter */ 23676 #define MC_CMD_TSA_BIND_OUT_GET_ID_TSANID_OFST 8 23677 #define MC_CMD_TSA_BIND_OUT_GET_ID_TSANID_LEN 6 23678 /* The signature data blob. The signature is computed against the message 23679 * formed by TSAN ID concatenated with the NONCE value. Refer to SF-115479-TC 23680 * for more information also in respect to the private keys that are used to 23681 * sign the message based on TSAN pre/post-binding authentication procedure. 23682 */ 23683 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_OFST 14 23684 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_LEN 1 23685 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_MINNUM 1 23686 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_MAXNUM 238 23687 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_MAXNUM_MCDI2 1006 23688 23689 /* MC_CMD_TSA_BIND_OUT_GET_TICKET msgresponse */ 23690 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_LENMIN 5 23691 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_LENMAX 252 23692 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_LENMAX_MCDI2 1020 23693 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_LEN(num) (4+1*(num)) 23694 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_NUM(len) (((len)-4)/1) 23695 /* The protocol operation code MC_CMD_TSA_BIND_OP_GET_TICKET that is sent back 23696 * to the caller. 23697 */ 23698 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_OP_OFST 0 23699 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_OP_LEN 4 23700 /* The ticket represents the data blob construct that TSAN sends to TSAC as 23701 * part of the binding protocol. From the TSAN perspective the ticket is an 23702 * opaque construct. For more info refer to SF-115479-TC. 23703 */ 23704 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_OFST 4 23705 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_LEN 1 23706 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_MINNUM 1 23707 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_MAXNUM 248 23708 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_MAXNUM_MCDI2 1016 23709 23710 /* MC_CMD_TSA_BIND_OUT_SET_KEY msgresponse */ 23711 #define MC_CMD_TSA_BIND_OUT_SET_KEY_LEN 4 23712 /* The protocol operation code MC_CMD_TSA_BIND_OP_SET_KEY that is sent back to 23713 * the caller. 23714 */ 23715 #define MC_CMD_TSA_BIND_OUT_SET_KEY_OP_OFST 0 23716 #define MC_CMD_TSA_BIND_OUT_SET_KEY_OP_LEN 4 23717 23718 /* MC_CMD_TSA_BIND_OUT_UNBIND msgresponse: Response to insecure unbind request. 23719 */ 23720 #define MC_CMD_TSA_BIND_OUT_UNBIND_LEN 8 23721 /* Same as MC_CMD_ERR field, but included as 0 in success cases */ 23722 #define MC_CMD_TSA_BIND_OUT_UNBIND_RESULT_OFST 0 23723 #define MC_CMD_TSA_BIND_OUT_UNBIND_RESULT_LEN 4 23724 /* Extra status information */ 23725 #define MC_CMD_TSA_BIND_OUT_UNBIND_INFO_OFST 4 23726 #define MC_CMD_TSA_BIND_OUT_UNBIND_INFO_LEN 4 23727 /* enum: Unbind successful. */ 23728 #define MC_CMD_TSA_BIND_OUT_UNBIND_OK_UNBOUND 0x0 23729 /* enum: TSANID mismatch */ 23730 #define MC_CMD_TSA_BIND_OUT_UNBIND_ERR_BAD_TSANID 0x1 23731 /* enum: Unable to remove the binding ticket from persistent storage. */ 23732 #define MC_CMD_TSA_BIND_OUT_UNBIND_ERR_REMOVE_TICKET 0x2 23733 /* enum: TSAN is not bound to a binding ticket. */ 23734 #define MC_CMD_TSA_BIND_OUT_UNBIND_ERR_NOT_BOUND 0x3 23735 23736 /* MC_CMD_TSA_BIND_OUT_UNBIND_EXT msgresponse: Obsolete. Use 23737 * MC_CMD_TSA_BIND_OUT_SECURE_UNBIND. 23738 */ 23739 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_LEN 8 23740 /* Same as MC_CMD_ERR field, but included as 0 in success cases */ 23741 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_RESULT_OFST 0 23742 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_RESULT_LEN 4 23743 /* Extra status information */ 23744 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_INFO_OFST 4 23745 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_INFO_LEN 4 23746 /* enum: Unbind successful. */ 23747 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_OK_UNBOUND 0x0 23748 /* enum: TSANID mismatch */ 23749 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_ERR_BAD_TSANID 0x1 23750 /* enum: Unable to remove the binding ticket from persistent storage. */ 23751 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_ERR_REMOVE_TICKET 0x2 23752 /* enum: TSAN is not bound to a binding ticket. */ 23753 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_ERR_NOT_BOUND 0x3 23754 /* enum: Invalid unbind token */ 23755 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_ERR_BAD_TOKEN 0x4 23756 /* enum: Invalid signature */ 23757 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_ERR_BAD_SIGNATURE 0x5 23758 23759 /* MC_CMD_TSA_BIND_OUT_SET_UNBINDTOKEN msgresponse */ 23760 #define MC_CMD_TSA_BIND_OUT_SET_UNBINDTOKEN_LEN 4 23761 /* The protocol operation code MC_CMD_TSA_BIND_OP_SET_UNBINDTOKEN that is sent 23762 * back to the caller. 23763 */ 23764 #define MC_CMD_TSA_BIND_OUT_SET_UNBINDTOKEN_OP_OFST 0 23765 #define MC_CMD_TSA_BIND_OUT_SET_UNBINDTOKEN_OP_LEN 4 23766 23767 /* MC_CMD_TSA_BIND_OUT_DECOMMISSION msgresponse: Obsolete. Use 23768 * MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION. 23769 */ 23770 #define MC_CMD_TSA_BIND_OUT_DECOMMISSION_LEN 4 23771 /* The protocol operation code MC_CMD_TSA_BIND_OP_DECOMMISSION that is sent 23772 * back to the caller. 23773 */ 23774 #define MC_CMD_TSA_BIND_OUT_DECOMMISSION_OP_OFST 0 23775 #define MC_CMD_TSA_BIND_OUT_DECOMMISSION_OP_LEN 4 23776 23777 /* MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE msgresponse */ 23778 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_LENMIN 9 23779 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_LENMAX 252 23780 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_LENMAX_MCDI2 1020 23781 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_LEN(num) (8+1*(num)) 23782 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_NUM(len) (((len)-8)/1) 23783 /* The protocol operation code MC_CMD_TSA_BIND_OP_GET_CERTIFICATE that is sent 23784 * back to the caller. 23785 */ 23786 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_OP_OFST 0 23787 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_OP_LEN 4 23788 /* Type of the certificate. */ 23789 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_TYPE_OFST 4 23790 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_TYPE_LEN 4 23791 /* Enum values, see field(s): */ 23792 /* MC_CMD_TSA_BIND_IN_GET_CERTIFICATE/TYPE */ 23793 /* The certificate data. */ 23794 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_OFST 8 23795 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_LEN 1 23796 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_MINNUM 1 23797 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_MAXNUM 244 23798 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_MAXNUM_MCDI2 1012 23799 23800 /* MC_CMD_TSA_BIND_OUT_SECURE_UNBIND msgresponse: Response to secure unbind 23801 * request. 23802 */ 23803 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_LEN 8 23804 /* The protocol operation code that is sent back to the caller. */ 23805 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_OP_OFST 0 23806 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_OP_LEN 4 23807 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_RESULT_OFST 4 23808 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_RESULT_LEN 4 23809 /* enum: Unbind successful. */ 23810 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_OK_UNBOUND 0x0 23811 /* enum: TSANID mismatch */ 23812 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_ERR_BAD_TSANID 0x1 23813 /* enum: Unable to remove the binding ticket from persistent storage. */ 23814 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_ERR_REMOVE_TICKET 0x2 23815 /* enum: TSAN is not bound to a domain. */ 23816 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_ERR_NOT_BOUND 0x3 23817 /* enum: Invalid unbind token */ 23818 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_ERR_BAD_TOKEN 0x4 23819 /* enum: Invalid signature */ 23820 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_ERR_BAD_SIGNATURE 0x5 23821 23822 /* MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION msgresponse: Response to secure 23823 * decommission request. 23824 */ 23825 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_LEN 8 23826 /* The protocol operation code that is sent back to the caller. */ 23827 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_OP_OFST 0 23828 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_OP_LEN 4 23829 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_RESULT_OFST 4 23830 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_RESULT_LEN 4 23831 /* enum: Unbind successful. */ 23832 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_OK_UNBOUND 0x0 23833 /* enum: TSANID mismatch */ 23834 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_ERR_BAD_TSANID 0x1 23835 /* enum: Unable to remove the binding ticket from persistent storage. */ 23836 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_ERR_REMOVE_TICKET 0x2 23837 /* enum: TSAN is not bound to a domain. */ 23838 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_ERR_NOT_BOUND 0x3 23839 /* enum: Invalid unbind token */ 23840 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_ERR_BAD_TOKEN 0x4 23841 /* enum: Invalid signature */ 23842 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_ERR_BAD_SIGNATURE 0x5 23843 23844 /* MC_CMD_TSA_BIND_OUT_TEST_MCDI msgrequest */ 23845 #define MC_CMD_TSA_BIND_OUT_TEST_MCDI_LEN 4 23846 /* The protocol operation code MC_CMD_TSA_BIND_OP_TEST_MCDI that is sent back 23847 * to the caller. 23848 */ 23849 #define MC_CMD_TSA_BIND_OUT_TEST_MCDI_OP_OFST 0 23850 #define MC_CMD_TSA_BIND_OUT_TEST_MCDI_OP_LEN 4 23851 23852 23853 /***********************************/ 23854 /* MC_CMD_MANAGE_SECURITY_RULESET_CACHE 23855 * Manage the persistent NVRAM cache of security rules created with 23856 * MC_CMD_SET_SECURITY_RULE. Note that the cache is not automatically updated 23857 * as rules are added or removed; the active ruleset must be explicitly 23858 * committed to the cache. The cache may also be explicitly invalidated, 23859 * without affecting the currently active ruleset. When the cache is valid, it 23860 * will be loaded at power on or MC reboot, instead of the default ruleset. 23861 * Rollback of the currently active ruleset to the cached version (when it is 23862 * valid) is also supported. (Medford-only; for use by SolarSecure apps, not 23863 * directly by drivers. See SF-114946-SW.) NOTE - The only sub-operation 23864 * allowed in an adapter bound to a TSA controller from the local host is 23865 * OP_GET_CACHED_VERSION. All other sub-operations are prohibited. 23866 */ 23867 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE 0x11a 23868 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_MSGSET 0x11a 23869 #undef MC_CMD_0x11a_PRIVILEGE_CTG 23870 23871 #define MC_CMD_0x11a_PRIVILEGE_CTG SRIOV_CTG_ADMIN 23872 23873 /* MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN msgrequest */ 23874 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_LEN 4 23875 /* the operation to perform */ 23876 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_OFST 0 23877 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_LEN 4 23878 /* enum: reports the ruleset version that is cached in persistent storage but 23879 * performs no other action 23880 */ 23881 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_GET_CACHED_VERSION 0x0 23882 /* enum: rolls back the active state to the cached version. (May fail with 23883 * ENOENT if there is no valid cached version.) 23884 */ 23885 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_ROLLBACK 0x1 23886 /* enum: commits the active state to the persistent cache */ 23887 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_COMMIT 0x2 23888 /* enum: invalidates the persistent cache without affecting the active state */ 23889 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_INVALIDATE 0x3 23890 23891 /* MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT msgresponse */ 23892 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_LENMIN 5 23893 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_LENMAX 252 23894 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_LENMAX_MCDI2 1020 23895 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_LEN(num) (4+1*(num)) 23896 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_NUM(len) (((len)-4)/1) 23897 /* indicates whether the persistent cache is valid (after completion of the 23898 * requested operation in the case of rollback, commit, or invalidate) 23899 */ 23900 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_STATE_OFST 0 23901 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_STATE_LEN 4 23902 /* enum: persistent cache is invalid (the VERSION field will be empty in this 23903 * case) 23904 */ 23905 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_STATE_INVALID 0x0 23906 /* enum: persistent cache is valid */ 23907 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_STATE_VALID 0x1 23908 /* cached ruleset version (after completion of the requested operation, in the 23909 * case of rollback, commit, or invalidate) as an opaque hash value in the same 23910 * form as MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION 23911 */ 23912 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_OFST 4 23913 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_LEN 1 23914 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_MINNUM 1 23915 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_MAXNUM 248 23916 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_MAXNUM_MCDI2 1016 23917 23918 23919 /***********************************/ 23920 /* MC_CMD_NVRAM_PRIVATE_APPEND 23921 * Append a single TLV to the MC_USAGE_TLV partition. Returns MC_CMD_ERR_EEXIST 23922 * if the tag is already present. 23923 */ 23924 #define MC_CMD_NVRAM_PRIVATE_APPEND 0x11c 23925 #define MC_CMD_NVRAM_PRIVATE_APPEND_MSGSET 0x11c 23926 #undef MC_CMD_0x11c_PRIVILEGE_CTG 23927 23928 #define MC_CMD_0x11c_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 23929 23930 /* MC_CMD_NVRAM_PRIVATE_APPEND_IN msgrequest */ 23931 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LENMIN 9 23932 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LENMAX 252 23933 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LENMAX_MCDI2 1020 23934 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LEN(num) (8+1*(num)) 23935 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_NUM(len) (((len)-8)/1) 23936 /* The tag to be appended */ 23937 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_TAG_OFST 0 23938 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_TAG_LEN 4 23939 /* The length of the data */ 23940 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LENGTH_OFST 4 23941 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LENGTH_LEN 4 23942 /* The data to be contained in the TLV structure */ 23943 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_OFST 8 23944 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_LEN 1 23945 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_MINNUM 1 23946 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_MAXNUM 244 23947 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_MAXNUM_MCDI2 1012 23948 23949 /* MC_CMD_NVRAM_PRIVATE_APPEND_OUT msgresponse */ 23950 #define MC_CMD_NVRAM_PRIVATE_APPEND_OUT_LEN 0 23951 23952 23953 /***********************************/ 23954 /* MC_CMD_XPM_VERIFY_CONTENTS 23955 * Verify that the contents of the XPM memory is correct (Medford only). This 23956 * is used during manufacture to check that the XPM memory has been programmed 23957 * correctly at ATE. 23958 */ 23959 #define MC_CMD_XPM_VERIFY_CONTENTS 0x11b 23960 #define MC_CMD_XPM_VERIFY_CONTENTS_MSGSET 0x11b 23961 #undef MC_CMD_0x11b_PRIVILEGE_CTG 23962 23963 #define MC_CMD_0x11b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 23964 23965 /* MC_CMD_XPM_VERIFY_CONTENTS_IN msgrequest */ 23966 #define MC_CMD_XPM_VERIFY_CONTENTS_IN_LEN 4 23967 /* Data type to be checked */ 23968 #define MC_CMD_XPM_VERIFY_CONTENTS_IN_DATA_TYPE_OFST 0 23969 #define MC_CMD_XPM_VERIFY_CONTENTS_IN_DATA_TYPE_LEN 4 23970 23971 /* MC_CMD_XPM_VERIFY_CONTENTS_OUT msgresponse */ 23972 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_LENMIN 12 23973 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_LENMAX 252 23974 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_LENMAX_MCDI2 1020 23975 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_LEN(num) (12+1*(num)) 23976 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_NUM(len) (((len)-12)/1) 23977 /* Number of sectors found (test builds only) */ 23978 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_NUM_SECTORS_OFST 0 23979 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_NUM_SECTORS_LEN 4 23980 /* Number of bytes found (test builds only) */ 23981 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_NUM_BYTES_OFST 4 23982 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_NUM_BYTES_LEN 4 23983 /* Length of signature */ 23984 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIG_LENGTH_OFST 8 23985 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIG_LENGTH_LEN 4 23986 /* Signature */ 23987 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_OFST 12 23988 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_LEN 1 23989 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_MINNUM 0 23990 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_MAXNUM 240 23991 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_MAXNUM_MCDI2 1008 23992 23993 23994 /***********************************/ 23995 /* MC_CMD_SET_EVQ_TMR 23996 * Update the timer load, timer reload and timer mode values for a given EVQ. 23997 * The requested timer values (in TMR_LOAD_REQ_NS and TMR_RELOAD_REQ_NS) will 23998 * be rounded up to the granularity supported by the hardware, then truncated 23999 * to the range supported by the hardware. The resulting value after the 24000 * rounding and truncation will be returned to the caller (in TMR_LOAD_ACT_NS 24001 * and TMR_RELOAD_ACT_NS). 24002 */ 24003 #define MC_CMD_SET_EVQ_TMR 0x120 24004 #define MC_CMD_SET_EVQ_TMR_MSGSET 0x120 24005 #undef MC_CMD_0x120_PRIVILEGE_CTG 24006 24007 #define MC_CMD_0x120_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24008 24009 /* MC_CMD_SET_EVQ_TMR_IN msgrequest */ 24010 #define MC_CMD_SET_EVQ_TMR_IN_LEN 16 24011 /* Function-relative queue instance */ 24012 #define MC_CMD_SET_EVQ_TMR_IN_INSTANCE_OFST 0 24013 #define MC_CMD_SET_EVQ_TMR_IN_INSTANCE_LEN 4 24014 /* Requested value for timer load (in nanoseconds) */ 24015 #define MC_CMD_SET_EVQ_TMR_IN_TMR_LOAD_REQ_NS_OFST 4 24016 #define MC_CMD_SET_EVQ_TMR_IN_TMR_LOAD_REQ_NS_LEN 4 24017 /* Requested value for timer reload (in nanoseconds) */ 24018 #define MC_CMD_SET_EVQ_TMR_IN_TMR_RELOAD_REQ_NS_OFST 8 24019 #define MC_CMD_SET_EVQ_TMR_IN_TMR_RELOAD_REQ_NS_LEN 4 24020 /* Timer mode. Meanings as per EVQ_TMR_REG.TC_TIMER_VAL */ 24021 #define MC_CMD_SET_EVQ_TMR_IN_TMR_MODE_OFST 12 24022 #define MC_CMD_SET_EVQ_TMR_IN_TMR_MODE_LEN 4 24023 #define MC_CMD_SET_EVQ_TMR_IN_TIMER_MODE_DIS 0x0 /* enum */ 24024 #define MC_CMD_SET_EVQ_TMR_IN_TIMER_MODE_IMMED_START 0x1 /* enum */ 24025 #define MC_CMD_SET_EVQ_TMR_IN_TIMER_MODE_TRIG_START 0x2 /* enum */ 24026 #define MC_CMD_SET_EVQ_TMR_IN_TIMER_MODE_INT_HLDOFF 0x3 /* enum */ 24027 24028 /* MC_CMD_SET_EVQ_TMR_OUT msgresponse */ 24029 #define MC_CMD_SET_EVQ_TMR_OUT_LEN 8 24030 /* Actual value for timer load (in nanoseconds) */ 24031 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_LOAD_ACT_NS_OFST 0 24032 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_LOAD_ACT_NS_LEN 4 24033 /* Actual value for timer reload (in nanoseconds) */ 24034 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_RELOAD_ACT_NS_OFST 4 24035 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_RELOAD_ACT_NS_LEN 4 24036 24037 24038 /***********************************/ 24039 /* MC_CMD_GET_EVQ_TMR_PROPERTIES 24040 * Query properties about the event queue timers. 24041 */ 24042 #define MC_CMD_GET_EVQ_TMR_PROPERTIES 0x122 24043 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_MSGSET 0x122 24044 #undef MC_CMD_0x122_PRIVILEGE_CTG 24045 24046 #define MC_CMD_0x122_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24047 24048 /* MC_CMD_GET_EVQ_TMR_PROPERTIES_IN msgrequest */ 24049 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_IN_LEN 0 24050 24051 /* MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT msgresponse */ 24052 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_LEN 36 24053 /* Reserved for future use. */ 24054 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_FLAGS_OFST 0 24055 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_FLAGS_LEN 4 24056 /* For timers updated via writes to EVQ_TMR_REG, this is the time interval (in 24057 * nanoseconds) for each increment of the timer load/reload count. The 24058 * requested duration of a timer is this value multiplied by the timer 24059 * load/reload count. 24060 */ 24061 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_NS_PER_COUNT_OFST 4 24062 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_NS_PER_COUNT_LEN 4 24063 /* For timers updated via writes to EVQ_TMR_REG, this is the maximum value 24064 * allowed for timer load/reload counts. 24065 */ 24066 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_MAX_COUNT_OFST 8 24067 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_MAX_COUNT_LEN 4 24068 /* For timers updated via writes to EVQ_TMR_REG, timer load/reload counts not a 24069 * multiple of this step size will be rounded in an implementation defined 24070 * manner. 24071 */ 24072 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_STEP_OFST 12 24073 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_STEP_LEN 4 24074 /* Maximum timer duration (in nanoseconds) for timers updated via MCDI. Only 24075 * meaningful if MC_CMD_SET_EVQ_TMR is implemented. 24076 */ 24077 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_MAX_NS_OFST 16 24078 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_MAX_NS_LEN 4 24079 /* Timer durations requested via MCDI that are not a multiple of this step size 24080 * will be rounded up. Only meaningful if MC_CMD_SET_EVQ_TMR is implemented. 24081 */ 24082 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_STEP_NS_OFST 20 24083 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_STEP_NS_LEN 4 24084 /* For timers updated using the bug35388 workaround, this is the time interval 24085 * (in nanoseconds) for each increment of the timer load/reload count. The 24086 * requested duration of a timer is this value multiplied by the timer 24087 * load/reload count. This field is only meaningful if the bug35388 workaround 24088 * is enabled. 24089 */ 24090 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_NS_PER_COUNT_OFST 24 24091 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_NS_PER_COUNT_LEN 4 24092 /* For timers updated using the bug35388 workaround, this is the maximum value 24093 * allowed for timer load/reload counts. This field is only meaningful if the 24094 * bug35388 workaround is enabled. 24095 */ 24096 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_MAX_COUNT_OFST 28 24097 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_MAX_COUNT_LEN 4 24098 /* For timers updated using the bug35388 workaround, timer load/reload counts 24099 * not a multiple of this step size will be rounded in an implementation 24100 * defined manner. This field is only meaningful if the bug35388 workaround is 24101 * enabled. 24102 */ 24103 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_STEP_OFST 32 24104 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_STEP_LEN 4 24105 24106 24107 /***********************************/ 24108 /* MC_CMD_ALLOCATE_TX_VFIFO_CP 24109 * When we use the TX_vFIFO_ULL mode, we can allocate common pools using the 24110 * non used switch buffers. 24111 */ 24112 #define MC_CMD_ALLOCATE_TX_VFIFO_CP 0x11d 24113 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_MSGSET 0x11d 24114 #undef MC_CMD_0x11d_PRIVILEGE_CTG 24115 24116 #define MC_CMD_0x11d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24117 24118 /* MC_CMD_ALLOCATE_TX_VFIFO_CP_IN msgrequest */ 24119 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_LEN 20 24120 /* Desired instance. Must be set to a specific instance, which is a function 24121 * local queue index. The calling client must be the currently-assigned user of 24122 * this VI (see MC_CMD_SET_VI_USER). 24123 */ 24124 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_INSTANCE_OFST 0 24125 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_INSTANCE_LEN 4 24126 /* Will the common pool be used as TX_vFIFO_ULL (1) */ 24127 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_MODE_OFST 4 24128 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_MODE_LEN 4 24129 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_ENABLED 0x1 /* enum */ 24130 /* enum: Using this interface without TX_vFIFO_ULL is not supported for now */ 24131 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_DISABLED 0x0 24132 /* Number of buffers to reserve for the common pool */ 24133 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_SIZE_OFST 8 24134 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_SIZE_LEN 4 24135 /* TX datapath to which the Common Pool is connected to. */ 24136 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_INGRESS_OFST 12 24137 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_INGRESS_LEN 4 24138 /* enum: Extracts information from function */ 24139 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_USE_FUNCTION_VALUE -0x1 24140 /* Network port or RX Engine to which the common pool connects. */ 24141 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_EGRESS_OFST 16 24142 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_EGRESS_LEN 4 24143 /* enum: Extracts information from function */ 24144 /* MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_USE_FUNCTION_VALUE -0x1 */ 24145 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_PORT0 0x0 /* enum */ 24146 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_PORT1 0x1 /* enum */ 24147 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_PORT2 0x2 /* enum */ 24148 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_PORT3 0x3 /* enum */ 24149 /* enum: To enable Switch loopback with Rx engine 0 */ 24150 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_RX_ENGINE0 0x4 24151 /* enum: To enable Switch loopback with Rx engine 1 */ 24152 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_RX_ENGINE1 0x5 24153 24154 /* MC_CMD_ALLOCATE_TX_VFIFO_CP_OUT msgresponse */ 24155 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_OUT_LEN 4 24156 /* ID of the common pool allocated */ 24157 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_OUT_CP_ID_OFST 0 24158 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_OUT_CP_ID_LEN 4 24159 24160 24161 /***********************************/ 24162 /* MC_CMD_ALLOCATE_TX_VFIFO_VFIFO 24163 * When we use the TX_vFIFO_ULL mode, we can allocate vFIFOs using the 24164 * previously allocated common pools. 24165 */ 24166 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO 0x11e 24167 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_MSGSET 0x11e 24168 #undef MC_CMD_0x11e_PRIVILEGE_CTG 24169 24170 #define MC_CMD_0x11e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24171 24172 /* MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN msgrequest */ 24173 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_LEN 20 24174 /* Common pool previously allocated to which the new vFIFO will be associated 24175 */ 24176 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_CP_OFST 0 24177 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_CP_LEN 4 24178 /* Port or RX engine to associate the vFIFO egress */ 24179 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_EGRESS_OFST 4 24180 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_EGRESS_LEN 4 24181 /* enum: Extracts information from common pool */ 24182 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_USE_CP_VALUE -0x1 24183 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PORT0 0x0 /* enum */ 24184 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PORT1 0x1 /* enum */ 24185 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PORT2 0x2 /* enum */ 24186 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PORT3 0x3 /* enum */ 24187 /* enum: To enable Switch loopback with Rx engine 0 */ 24188 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_RX_ENGINE0 0x4 24189 /* enum: To enable Switch loopback with Rx engine 1 */ 24190 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_RX_ENGINE1 0x5 24191 /* Minimum number of buffers that the pool must have */ 24192 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_SIZE_OFST 8 24193 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_SIZE_LEN 4 24194 /* enum: Do not check the space available */ 24195 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_NO_MINIMUM 0x0 24196 /* Will the vFIFO be used as TX_vFIFO_ULL */ 24197 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_MODE_OFST 12 24198 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_MODE_LEN 4 24199 /* Network priority of the vFIFO,if applicable */ 24200 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PRIORITY_OFST 16 24201 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PRIORITY_LEN 4 24202 /* enum: Search for the lowest unused priority */ 24203 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_LOWEST_AVAILABLE -0x1 24204 24205 /* MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT msgresponse */ 24206 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT_LEN 8 24207 /* Short vFIFO ID */ 24208 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT_VID_OFST 0 24209 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT_VID_LEN 4 24210 /* Network priority of the vFIFO */ 24211 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT_PRIORITY_OFST 4 24212 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT_PRIORITY_LEN 4 24213 24214 24215 /***********************************/ 24216 /* MC_CMD_TEARDOWN_TX_VFIFO_VF 24217 * This interface clears the configuration of the given vFIFO and leaves it 24218 * ready to be re-used. 24219 */ 24220 #define MC_CMD_TEARDOWN_TX_VFIFO_VF 0x11f 24221 #define MC_CMD_TEARDOWN_TX_VFIFO_VF_MSGSET 0x11f 24222 #undef MC_CMD_0x11f_PRIVILEGE_CTG 24223 24224 #define MC_CMD_0x11f_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24225 24226 /* MC_CMD_TEARDOWN_TX_VFIFO_VF_IN msgrequest */ 24227 #define MC_CMD_TEARDOWN_TX_VFIFO_VF_IN_LEN 4 24228 /* Short vFIFO ID */ 24229 #define MC_CMD_TEARDOWN_TX_VFIFO_VF_IN_VFIFO_OFST 0 24230 #define MC_CMD_TEARDOWN_TX_VFIFO_VF_IN_VFIFO_LEN 4 24231 24232 /* MC_CMD_TEARDOWN_TX_VFIFO_VF_OUT msgresponse */ 24233 #define MC_CMD_TEARDOWN_TX_VFIFO_VF_OUT_LEN 0 24234 24235 24236 /***********************************/ 24237 /* MC_CMD_DEALLOCATE_TX_VFIFO_CP 24238 * This interface clears the configuration of the given common pool and leaves 24239 * it ready to be re-used. 24240 */ 24241 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP 0x121 24242 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP_MSGSET 0x121 24243 #undef MC_CMD_0x121_PRIVILEGE_CTG 24244 24245 #define MC_CMD_0x121_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24246 24247 /* MC_CMD_DEALLOCATE_TX_VFIFO_CP_IN msgrequest */ 24248 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP_IN_LEN 4 24249 /* Common pool ID given when pool allocated */ 24250 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP_IN_POOL_ID_OFST 0 24251 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP_IN_POOL_ID_LEN 4 24252 24253 /* MC_CMD_DEALLOCATE_TX_VFIFO_CP_OUT msgresponse */ 24254 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP_OUT_LEN 0 24255 24256 24257 /***********************************/ 24258 /* MC_CMD_REKEY 24259 * This request causes the NIC to generate a new per-NIC key and program it 24260 * into the write-once memory. During the process all flash partitions that are 24261 * protected with a CMAC are verified with the old per-NIC key and then signed 24262 * with the new per-NIC key. If the NIC has already reached its rekey limit the 24263 * REKEY op will return MC_CMD_ERR_ERANGE. The REKEY op may block until 24264 * completion or it may return 0 and continue processing, therefore the caller 24265 * must poll at least once to confirm that the rekeying has completed. The POLL 24266 * operation returns MC_CMD_ERR_EBUSY if the rekey process is still running 24267 * otherwise it will return the result of the last completed rekey operation, 24268 * or 0 if there has not been a previous rekey. 24269 */ 24270 #define MC_CMD_REKEY 0x123 24271 #define MC_CMD_REKEY_MSGSET 0x123 24272 #undef MC_CMD_0x123_PRIVILEGE_CTG 24273 24274 #define MC_CMD_0x123_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 24275 24276 /* MC_CMD_REKEY_IN msgrequest */ 24277 #define MC_CMD_REKEY_IN_LEN 4 24278 /* the type of operation requested */ 24279 #define MC_CMD_REKEY_IN_OP_OFST 0 24280 #define MC_CMD_REKEY_IN_OP_LEN 4 24281 /* enum: Start the rekeying operation */ 24282 #define MC_CMD_REKEY_IN_OP_REKEY 0x0 24283 /* enum: Poll for completion of the rekeying operation */ 24284 #define MC_CMD_REKEY_IN_OP_POLL 0x1 24285 24286 /* MC_CMD_REKEY_OUT msgresponse */ 24287 #define MC_CMD_REKEY_OUT_LEN 0 24288 24289 24290 /***********************************/ 24291 /* MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS 24292 * This interface allows the host to find out how many common pool buffers are 24293 * not yet assigned. 24294 */ 24295 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS 0x124 24296 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_MSGSET 0x124 24297 #undef MC_CMD_0x124_PRIVILEGE_CTG 24298 24299 #define MC_CMD_0x124_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24300 24301 /* MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_IN msgrequest */ 24302 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_IN_LEN 0 24303 24304 /* MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT msgresponse */ 24305 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_LEN 8 24306 /* Available buffers for the ENG to NET vFIFOs. */ 24307 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_NET_OFST 0 24308 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_NET_LEN 4 24309 /* Available buffers for the ENG to ENG and NET to ENG vFIFOs. */ 24310 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_ENG_OFST 4 24311 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_ENG_LEN 4 24312 24313 24314 /***********************************/ 24315 /* MC_CMD_SET_SECURITY_FUSES 24316 * Change the security level of the adapter by setting bits in the write-once 24317 * memory. The firmware maps each flag in the message to a set of one or more 24318 * hardware-defined or software-defined bits and sets these bits in the write- 24319 * once memory. For Medford the hardware-defined bits are defined in 24320 * SF-112079-PS 5.3, the software-defined bits are defined in xpm.h. Returns 0 24321 * if all of the required bits were set and returns MC_CMD_ERR_EIO if any of 24322 * the required bits were not set. 24323 */ 24324 #define MC_CMD_SET_SECURITY_FUSES 0x126 24325 #define MC_CMD_SET_SECURITY_FUSES_MSGSET 0x126 24326 #undef MC_CMD_0x126_PRIVILEGE_CTG 24327 24328 #define MC_CMD_0x126_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 24329 24330 /* MC_CMD_SET_SECURITY_FUSES_IN msgrequest */ 24331 #define MC_CMD_SET_SECURITY_FUSES_IN_LEN 4 24332 /* Flags specifying what type of security features are being set */ 24333 #define MC_CMD_SET_SECURITY_FUSES_IN_FLAGS_OFST 0 24334 #define MC_CMD_SET_SECURITY_FUSES_IN_FLAGS_LEN 4 24335 #define MC_CMD_SET_SECURITY_FUSES_IN_SECURE_BOOT_OFST 0 24336 #define MC_CMD_SET_SECURITY_FUSES_IN_SECURE_BOOT_LBN 0 24337 #define MC_CMD_SET_SECURITY_FUSES_IN_SECURE_BOOT_WIDTH 1 24338 #define MC_CMD_SET_SECURITY_FUSES_IN_REJECT_TEST_SIGNED_OFST 0 24339 #define MC_CMD_SET_SECURITY_FUSES_IN_REJECT_TEST_SIGNED_LBN 1 24340 #define MC_CMD_SET_SECURITY_FUSES_IN_REJECT_TEST_SIGNED_WIDTH 1 24341 #define MC_CMD_SET_SECURITY_FUSES_IN_SOFT_CONFIG_OFST 0 24342 #define MC_CMD_SET_SECURITY_FUSES_IN_SOFT_CONFIG_LBN 31 24343 #define MC_CMD_SET_SECURITY_FUSES_IN_SOFT_CONFIG_WIDTH 1 24344 24345 /* MC_CMD_SET_SECURITY_FUSES_OUT msgresponse */ 24346 #define MC_CMD_SET_SECURITY_FUSES_OUT_LEN 0 24347 24348 /* MC_CMD_SET_SECURITY_FUSES_V2_OUT msgresponse */ 24349 #define MC_CMD_SET_SECURITY_FUSES_V2_OUT_LEN 4 24350 /* Flags specifying which security features are enforced on the NIC after the 24351 * flags in the request have been applied. See 24352 * MC_CMD_SET_SECURITY_FUSES_IN/FLAGS for flag definitions. 24353 */ 24354 #define MC_CMD_SET_SECURITY_FUSES_V2_OUT_FLAGS_OFST 0 24355 #define MC_CMD_SET_SECURITY_FUSES_V2_OUT_FLAGS_LEN 4 24356 24357 24358 /***********************************/ 24359 /* MC_CMD_TSA_INFO 24360 * Messages sent from TSA adapter to TSA controller. This command is only valid 24361 * when the MCDI header has MESSAGE_TYPE set to MCDI_MESSAGE_TYPE_TSA. This 24362 * command is not sent by the driver to the MC; it is sent from the MC to a TSA 24363 * controller, being treated more like an alert message rather than a command; 24364 * hence the MC does not expect a response in return. Doxbox reference 24365 * SF-117371-SW 24366 */ 24367 #define MC_CMD_TSA_INFO 0x127 24368 #define MC_CMD_TSA_INFO_MSGSET 0x127 24369 #undef MC_CMD_0x127_PRIVILEGE_CTG 24370 24371 #define MC_CMD_0x127_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 24372 24373 /* MC_CMD_TSA_INFO_IN msgrequest */ 24374 #define MC_CMD_TSA_INFO_IN_LEN 4 24375 #define MC_CMD_TSA_INFO_IN_OP_HDR_OFST 0 24376 #define MC_CMD_TSA_INFO_IN_OP_HDR_LEN 4 24377 #define MC_CMD_TSA_INFO_IN_OP_OFST 0 24378 #define MC_CMD_TSA_INFO_IN_OP_LBN 0 24379 #define MC_CMD_TSA_INFO_IN_OP_WIDTH 16 24380 /* enum: Information about recently discovered local IP address of the adapter 24381 */ 24382 #define MC_CMD_TSA_INFO_OP_LOCAL_IP 0x1 24383 /* enum: Information about a sampled packet that either - did not match any 24384 * black/white-list filters and was allowed by the default filter or - did not 24385 * match any black/white-list filters and was denied by the default filter 24386 */ 24387 #define MC_CMD_TSA_INFO_OP_PKT_SAMPLE 0x2 24388 /* enum: Information about an unbind or decommission attempt. */ 24389 #define MC_CMD_TSA_INFO_OP_UNBIND 0x3 24390 24391 /* MC_CMD_TSA_INFO_IN_LOCAL_IP msgrequest: 24392 * 24393 * The TSA controller maintains a list of IP addresses valid for each port of a 24394 * TSA adapter. The TSA controller requires information from the adapter 24395 * inorder to learn new IP addresses assigned to a physical port and to 24396 * identify those that are no longer assigned to the physical port. For this 24397 * purpose, the TSA adapter snoops ARP replys, gratuitous ARP requests and ARP 24398 * probe packets seen on each physical port. This definition describes the 24399 * format of the notification message sent from a TSA adapter to a TSA 24400 * controller related to any information related to a change in IP address 24401 * assignment for a port. Doxbox reference SF-117371. 24402 * 24403 * There may be a possibility of combining multiple notifications in a single 24404 * message in future. When that happens, a new flag can be defined using the 24405 * reserved bits to describe the extended format of this notification. 24406 */ 24407 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_LEN 18 24408 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_OP_HDR_OFST 0 24409 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_OP_HDR_LEN 4 24410 /* Additional metadata describing the IP address information such as source of 24411 * information retrieval, type of IP address, physical port number. 24412 */ 24413 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_OFST 4 24414 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_LEN 4 24415 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_PORT_INDEX_OFST 4 24416 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_PORT_INDEX_LBN 0 24417 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_PORT_INDEX_WIDTH 8 24418 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED_OFST 4 24419 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED_LBN 8 24420 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED_WIDTH 8 24421 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_REASON_OFST 4 24422 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_REASON_LBN 16 24423 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_REASON_WIDTH 8 24424 /* enum: ARP reply sent out of the physical port */ 24425 #define MC_CMD_TSA_INFO_IP_REASON_TX_ARP 0x0 24426 /* enum: ARP probe packet received on the physical port */ 24427 #define MC_CMD_TSA_INFO_IP_REASON_RX_ARP_PROBE 0x1 24428 /* enum: Gratuitous ARP packet received on the physical port */ 24429 #define MC_CMD_TSA_INFO_IP_REASON_RX_GRATUITOUS_ARP 0x2 24430 /* enum: DHCP ACK packet received on the physical port */ 24431 #define MC_CMD_TSA_INFO_IP_REASON_RX_DHCP_ACK 0x3 24432 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_IPV4_OFST 4 24433 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_IPV4_LBN 24 24434 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_IPV4_WIDTH 1 24435 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED1_OFST 4 24436 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED1_LBN 25 24437 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED1_WIDTH 7 24438 /* IPV4 address retrieved from the sampled packets. This field is relevant only 24439 * when META_IPV4 is set to 1. 24440 */ 24441 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_IPV4_ADDR_OFST 8 24442 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_IPV4_ADDR_LEN 4 24443 /* Target MAC address retrieved from the sampled packet. */ 24444 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_MAC_ADDR_OFST 12 24445 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_MAC_ADDR_LEN 1 24446 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_MAC_ADDR_NUM 6 24447 24448 /* MC_CMD_TSA_INFO_IN_PKT_SAMPLE msgrequest: 24449 * 24450 * It is desireable for the TSA controller to learn the traffic pattern of 24451 * packets seen at the network port being monitored. In order to learn about 24452 * the traffic pattern, the TSA controller may want to sample packets seen at 24453 * the network port. Based on the packet samples that the TSA controller 24454 * receives from the adapter, the controller may choose to configure additional 24455 * black-list or white-list rules to allow or block packets as required. 24456 * 24457 * Although the entire sampled packet as seen on the network port is available 24458 * to the MC the length of sampled packet sent to controller is restricted by 24459 * MCDI payload size. Besides, the TSA controller does not require the entire 24460 * packet to make decisions about filter updates. Hence the packet sample being 24461 * passed to the controller is truncated to 128 bytes. This length is large 24462 * enough to hold the ethernet header, IP header and maximum length of 24463 * supported L4 protocol headers (IPv4 only, but can hold IPv6 header too, if 24464 * required in future). 24465 * 24466 * The intention is that any future changes to this message format that are not 24467 * backwards compatible will be defined with a new operation code. 24468 */ 24469 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_LEN 136 24470 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_OP_HDR_OFST 0 24471 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_OP_HDR_LEN 4 24472 /* Additional metadata describing the sampled packet */ 24473 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_OFST 4 24474 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_LEN 4 24475 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_PORT_INDEX_OFST 4 24476 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_PORT_INDEX_LBN 0 24477 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_PORT_INDEX_WIDTH 8 24478 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_DIRECTION_OFST 4 24479 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_DIRECTION_LBN 8 24480 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_DIRECTION_WIDTH 1 24481 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_RESERVED_OFST 4 24482 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_RESERVED_LBN 9 24483 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_RESERVED_WIDTH 7 24484 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_MASK_OFST 4 24485 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_MASK_LBN 16 24486 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_MASK_WIDTH 4 24487 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_ALLOW_OFST 4 24488 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_ALLOW_LBN 16 24489 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_ALLOW_WIDTH 1 24490 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_DENY_OFST 4 24491 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_DENY_LBN 17 24492 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_DENY_WIDTH 1 24493 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_COUNT_OFST 4 24494 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_COUNT_LBN 18 24495 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_COUNT_WIDTH 1 24496 /* 128-byte raw prefix of the sampled packet which includes the ethernet 24497 * header, IP header and L4 protocol header (only IPv4 supported initially). 24498 * This provides the controller enough information about the packet sample to 24499 * report traffic patterns seen on a network port and to make decisions 24500 * concerning rule-set updates. 24501 */ 24502 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_PACKET_DATA_OFST 8 24503 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_PACKET_DATA_LEN 1 24504 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_PACKET_DATA_NUM 128 24505 24506 /* MC_CMD_TSA_INFO_IN_UNBIND msgrequest: Information about an unbind or 24507 * decommission attempt. The purpose of this event is to let the controller 24508 * know about unbind and decommission attempts (both successful and failed) 24509 * received from the adapter host. The event is not sent if the unbind or 24510 * decommission request was received from the controller. 24511 */ 24512 #define MC_CMD_TSA_INFO_IN_UNBIND_LEN 12 24513 #define MC_CMD_TSA_INFO_IN_UNBIND_OP_HDR_OFST 0 24514 #define MC_CMD_TSA_INFO_IN_UNBIND_OP_HDR_LEN 4 24515 #define MC_CMD_TSA_INFO_IN_UNBIND_OP_OFST 0 24516 #define MC_CMD_TSA_INFO_IN_UNBIND_OP_LBN 0 24517 #define MC_CMD_TSA_INFO_IN_UNBIND_OP_WIDTH 16 24518 /* Type of the unbind attempt. */ 24519 #define MC_CMD_TSA_INFO_IN_UNBIND_TYPE_OFST 4 24520 #define MC_CMD_TSA_INFO_IN_UNBIND_TYPE_LEN 4 24521 /* enum: This event is sent because MC_CMD_TSA_BIND_OP_SECURE_UNBIND was 24522 * received from the adapter local host. 24523 */ 24524 #define MC_CMD_TSA_INFO_UNBIND_TYPE_SECURE_UNBIND 0x1 24525 /* enum: This event is sent because MC_CMD_TSA_BIND_OP_SECURE_DECOMMISSION was 24526 * received from the adapter local host. 24527 */ 24528 #define MC_CMD_TSA_INFO_UNBIND_TYPE_SECURE_DECOMMISSION 0x2 24529 /* Result of the attempt. */ 24530 #define MC_CMD_TSA_INFO_IN_UNBIND_RESULT_OFST 8 24531 #define MC_CMD_TSA_INFO_IN_UNBIND_RESULT_LEN 4 24532 /* Enum values, see field(s): */ 24533 /* MC_CMD_TSA_BIND/MC_CMD_TSA_BIND_OUT_SECURE_UNBIND/RESULT */ 24534 24535 /* MC_CMD_TSA_INFO_OUT msgresponse */ 24536 #define MC_CMD_TSA_INFO_OUT_LEN 0 24537 24538 24539 /***********************************/ 24540 /* MC_CMD_HOST_INFO 24541 * Commands to appply or retrieve host-related information from an adapter. 24542 * Doxbox reference SF-117371-SW 24543 */ 24544 #define MC_CMD_HOST_INFO 0x128 24545 #define MC_CMD_HOST_INFO_MSGSET 0x128 24546 #undef MC_CMD_0x128_PRIVILEGE_CTG 24547 24548 #define MC_CMD_0x128_PRIVILEGE_CTG SRIOV_CTG_ADMIN 24549 24550 /* MC_CMD_HOST_INFO_IN msgrequest */ 24551 #define MC_CMD_HOST_INFO_IN_LEN 4 24552 /* sub-operation code info */ 24553 #define MC_CMD_HOST_INFO_IN_OP_HDR_OFST 0 24554 #define MC_CMD_HOST_INFO_IN_OP_HDR_LEN 4 24555 #define MC_CMD_HOST_INFO_IN_OP_OFST 0 24556 #define MC_CMD_HOST_INFO_IN_OP_LBN 0 24557 #define MC_CMD_HOST_INFO_IN_OP_WIDTH 16 24558 /* enum: Read a 16-byte unique host identifier from the adapter. This UUID 24559 * helps to identify the host that an adapter is plugged into. This identifier 24560 * is ideally the system UUID retrieved and set by the UEFI driver. If the UEFI 24561 * driver is unable to extract the system UUID, it would still set a random 24562 * 16-byte value into each supported SF adapter plugged into it. Host UUIDs may 24563 * change if the system is power-cycled, however, they persist across adapter 24564 * resets. If the host UUID was not set on an adapter, due to an unsupported 24565 * version of UEFI driver, then this command returns an error. Doxbox reference 24566 * - SF-117371-SW section 'Host UUID'. 24567 */ 24568 #define MC_CMD_HOST_INFO_OP_GET_UUID 0x0 24569 /* enum: Set a 16-byte unique host identifier on the adapter to identify the 24570 * host that the adapter is plugged into. See MC_CMD_HOST_INFO_OP_GET_UUID for 24571 * further details. 24572 */ 24573 #define MC_CMD_HOST_INFO_OP_SET_UUID 0x1 24574 24575 /* MC_CMD_HOST_INFO_IN_GET_UUID msgrequest */ 24576 #define MC_CMD_HOST_INFO_IN_GET_UUID_LEN 4 24577 /* sub-operation code info */ 24578 #define MC_CMD_HOST_INFO_IN_GET_UUID_OP_HDR_OFST 0 24579 #define MC_CMD_HOST_INFO_IN_GET_UUID_OP_HDR_LEN 4 24580 24581 /* MC_CMD_HOST_INFO_OUT_GET_UUID msgresponse */ 24582 #define MC_CMD_HOST_INFO_OUT_GET_UUID_LEN 16 24583 /* 16-byte host UUID read out of the adapter. See MC_CMD_HOST_INFO_OP_GET_UUID 24584 * for further details. 24585 */ 24586 #define MC_CMD_HOST_INFO_OUT_GET_UUID_HOST_UUID_OFST 0 24587 #define MC_CMD_HOST_INFO_OUT_GET_UUID_HOST_UUID_LEN 1 24588 #define MC_CMD_HOST_INFO_OUT_GET_UUID_HOST_UUID_NUM 16 24589 24590 /* MC_CMD_HOST_INFO_IN_SET_UUID msgrequest */ 24591 #define MC_CMD_HOST_INFO_IN_SET_UUID_LEN 20 24592 /* sub-operation code info */ 24593 #define MC_CMD_HOST_INFO_IN_SET_UUID_OP_HDR_OFST 0 24594 #define MC_CMD_HOST_INFO_IN_SET_UUID_OP_HDR_LEN 4 24595 /* 16-byte host UUID set on the adapter. See MC_CMD_HOST_INFO_OP_GET_UUID for 24596 * further details. 24597 */ 24598 #define MC_CMD_HOST_INFO_IN_SET_UUID_HOST_UUID_OFST 4 24599 #define MC_CMD_HOST_INFO_IN_SET_UUID_HOST_UUID_LEN 1 24600 #define MC_CMD_HOST_INFO_IN_SET_UUID_HOST_UUID_NUM 16 24601 24602 /* MC_CMD_HOST_INFO_OUT_SET_UUID msgresponse */ 24603 #define MC_CMD_HOST_INFO_OUT_SET_UUID_LEN 0 24604 24605 24606 /***********************************/ 24607 /* MC_CMD_TSAN_INFO 24608 * Get TSA adapter information. TSA controllers query each TSA adapter to learn 24609 * some configuration parameters of each adapter. Doxbox reference SF-117371-SW 24610 * section 'Adapter Information' 24611 */ 24612 #define MC_CMD_TSAN_INFO 0x129 24613 #define MC_CMD_TSAN_INFO_MSGSET 0x129 24614 #undef MC_CMD_0x129_PRIVILEGE_CTG 24615 24616 #define MC_CMD_0x129_PRIVILEGE_CTG SRIOV_CTG_ADMIN 24617 24618 /* MC_CMD_TSAN_INFO_IN msgrequest */ 24619 #define MC_CMD_TSAN_INFO_IN_LEN 4 24620 /* sub-operation code info */ 24621 #define MC_CMD_TSAN_INFO_IN_OP_HDR_OFST 0 24622 #define MC_CMD_TSAN_INFO_IN_OP_HDR_LEN 4 24623 #define MC_CMD_TSAN_INFO_IN_OP_OFST 0 24624 #define MC_CMD_TSAN_INFO_IN_OP_LBN 0 24625 #define MC_CMD_TSAN_INFO_IN_OP_WIDTH 16 24626 /* enum: Read configuration parameters and IDs that uniquely identify an 24627 * adapter. The parameters include - host identification, adapter 24628 * identification string and number of physical ports on the adapter. 24629 */ 24630 #define MC_CMD_TSAN_INFO_OP_GET_CFG 0x0 24631 24632 /* MC_CMD_TSAN_INFO_IN_GET_CFG msgrequest */ 24633 #define MC_CMD_TSAN_INFO_IN_GET_CFG_LEN 4 24634 /* sub-operation code info */ 24635 #define MC_CMD_TSAN_INFO_IN_GET_CFG_OP_HDR_OFST 0 24636 #define MC_CMD_TSAN_INFO_IN_GET_CFG_OP_HDR_LEN 4 24637 24638 /* MC_CMD_TSAN_INFO_OUT_GET_CFG msgresponse */ 24639 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_LEN 26 24640 /* Information about the configuration parameters returned in this response. */ 24641 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_CONFIG_WORD_OFST 0 24642 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_CONFIG_WORD_LEN 4 24643 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_CAP_FLAGS_OFST 0 24644 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_CAP_FLAGS_LBN 0 24645 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_CAP_FLAGS_WIDTH 16 24646 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_FLAG_HOST_UUID_VALID_OFST 0 24647 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_FLAG_HOST_UUID_VALID_LBN 0 24648 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_FLAG_HOST_UUID_VALID_WIDTH 1 24649 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_NUM_PORTS_OFST 0 24650 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_NUM_PORTS_LBN 16 24651 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_NUM_PORTS_WIDTH 8 24652 /* 16-byte host UUID read out of the adapter. See MC_CMD_HOST_INFO_OP_GET_UUID 24653 * for further details. 24654 */ 24655 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_HOST_UUID_OFST 4 24656 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_HOST_UUID_LEN 1 24657 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_HOST_UUID_NUM 16 24658 /* A unique identifier per adapter. The base MAC address of the card is used 24659 * for this purpose. 24660 */ 24661 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_GUID_OFST 20 24662 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_GUID_LEN 1 24663 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_GUID_NUM 6 24664 24665 /* MC_CMD_TSAN_INFO_OUT_GET_CFG_V2 msgresponse */ 24666 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_LEN 36 24667 /* Information about the configuration parameters returned in this response. */ 24668 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_CONFIG_WORD_OFST 0 24669 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_CONFIG_WORD_LEN 4 24670 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_CAP_FLAGS_OFST 0 24671 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_CAP_FLAGS_LBN 0 24672 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_CAP_FLAGS_WIDTH 16 24673 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_FLAG_HOST_UUID_VALID_OFST 0 24674 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_FLAG_HOST_UUID_VALID_LBN 0 24675 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_FLAG_HOST_UUID_VALID_WIDTH 1 24676 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_NUM_PORTS_OFST 0 24677 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_NUM_PORTS_LBN 16 24678 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_NUM_PORTS_WIDTH 8 24679 /* 16-byte host UUID read out of the adapter. See MC_CMD_HOST_INFO_OP_GET_UUID 24680 * for further details. 24681 */ 24682 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_HOST_UUID_OFST 4 24683 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_HOST_UUID_LEN 1 24684 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_HOST_UUID_NUM 16 24685 /* A unique identifier per adapter. The base MAC address of the card is used 24686 * for this purpose. 24687 */ 24688 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_GUID_OFST 20 24689 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_GUID_LEN 1 24690 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_GUID_NUM 6 24691 /* Unused bytes, defined for 32-bit alignment of new fields. */ 24692 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_UNUSED_OFST 26 24693 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_UNUSED_LEN 2 24694 /* Maximum number of TSA statistics counters in each direction of dataflow 24695 * supported on the card. Note that the statistics counters are always 24696 * allocated in pairs, i.e. a counter ID is associated with one Tx and one Rx 24697 * counter. 24698 */ 24699 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_MAX_STATS_OFST 28 24700 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_MAX_STATS_LEN 4 24701 /* Width of each statistics counter (represented in bits). This gives an 24702 * indication of wrap point to the user. 24703 */ 24704 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_STATS_WIDTH_OFST 32 24705 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_STATS_WIDTH_LEN 4 24706 24707 24708 /***********************************/ 24709 /* MC_CMD_TSA_STATISTICS 24710 * TSA adapter statistics operations. 24711 */ 24712 #define MC_CMD_TSA_STATISTICS 0x130 24713 #define MC_CMD_TSA_STATISTICS_MSGSET 0x130 24714 #undef MC_CMD_0x130_PRIVILEGE_CTG 24715 24716 #define MC_CMD_0x130_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 24717 24718 /* MC_CMD_TSA_STATISTICS_IN msgrequest */ 24719 #define MC_CMD_TSA_STATISTICS_IN_LEN 4 24720 /* TSA statistics sub-operation code */ 24721 #define MC_CMD_TSA_STATISTICS_IN_OP_CODE_OFST 0 24722 #define MC_CMD_TSA_STATISTICS_IN_OP_CODE_LEN 4 24723 /* enum: Get the configuration parameters that describe the TSA statistics 24724 * layout on the adapter. 24725 */ 24726 #define MC_CMD_TSA_STATISTICS_OP_GET_CONFIG 0x0 24727 /* enum: Read and/or clear TSA statistics counters. */ 24728 #define MC_CMD_TSA_STATISTICS_OP_READ_CLEAR 0x1 24729 24730 /* MC_CMD_TSA_STATISTICS_IN_GET_CONFIG msgrequest */ 24731 #define MC_CMD_TSA_STATISTICS_IN_GET_CONFIG_LEN 4 24732 /* TSA statistics sub-operation code */ 24733 #define MC_CMD_TSA_STATISTICS_IN_GET_CONFIG_OP_CODE_OFST 0 24734 #define MC_CMD_TSA_STATISTICS_IN_GET_CONFIG_OP_CODE_LEN 4 24735 24736 /* MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG msgresponse */ 24737 #define MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG_LEN 8 24738 /* Maximum number of TSA statistics counters in each direction of dataflow 24739 * supported on the card. Note that the statistics counters are always 24740 * allocated in pairs, i.e. a counter ID is associated with one Tx and one Rx 24741 * counter. 24742 */ 24743 #define MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG_MAX_STATS_OFST 0 24744 #define MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG_MAX_STATS_LEN 4 24745 /* Width of each statistics counter (represented in bits). This gives an 24746 * indication of wrap point to the user. 24747 */ 24748 #define MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG_STATS_WIDTH_OFST 4 24749 #define MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG_STATS_WIDTH_LEN 4 24750 24751 /* MC_CMD_TSA_STATISTICS_IN_READ_CLEAR msgrequest */ 24752 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_LENMIN 20 24753 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_LENMAX 252 24754 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_LENMAX_MCDI2 1020 24755 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_LEN(num) (16+4*(num)) 24756 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_NUM(len) (((len)-16)/4) 24757 /* TSA statistics sub-operation code */ 24758 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_OP_CODE_OFST 0 24759 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_OP_CODE_LEN 4 24760 /* Parameters describing the statistics operation */ 24761 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_FLAGS_OFST 4 24762 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_FLAGS_LEN 4 24763 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_READ_OFST 4 24764 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_READ_LBN 0 24765 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_READ_WIDTH 1 24766 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_CLEAR_OFST 4 24767 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_CLEAR_LBN 1 24768 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_CLEAR_WIDTH 1 24769 /* Counter ID list specification type */ 24770 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_MODE_OFST 8 24771 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_MODE_LEN 4 24772 /* enum: The statistics counters are specified as an unordered list of 24773 * individual counter ID. 24774 */ 24775 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_LIST 0x0 24776 /* enum: The statistics counters are specified as a range of consecutive 24777 * counter IDs. 24778 */ 24779 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_RANGE 0x1 24780 /* Number of statistics counters */ 24781 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_NUM_STATS_OFST 12 24782 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_NUM_STATS_LEN 4 24783 /* Counter IDs to be read/cleared. When mode is set to LIST, this entry holds a 24784 * list of counter IDs to be operated on. When mode is set to RANGE, this entry 24785 * holds a single counter ID representing the start of the range of counter IDs 24786 * to be operated on. 24787 */ 24788 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_OFST 16 24789 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_LEN 4 24790 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_MINNUM 1 24791 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_MAXNUM 59 24792 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_MAXNUM_MCDI2 251 24793 24794 /* MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR msgresponse */ 24795 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_LENMIN 24 24796 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_LENMAX 248 24797 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_LENMAX_MCDI2 1016 24798 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_LEN(num) (8+16*(num)) 24799 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_NUM(len) (((len)-8)/16) 24800 /* Number of statistics counters returned in this response */ 24801 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_NUM_STATS_OFST 0 24802 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_NUM_STATS_LEN 4 24803 /* MC_TSA_STATISTICS_ENTRY Note that this field is expected to start at a 24804 * 64-bit aligned offset 24805 */ 24806 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_OFST 8 24807 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_LEN 16 24808 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_MINNUM 1 24809 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_MAXNUM 15 24810 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_MAXNUM_MCDI2 63 24811 24812 /* MC_TSA_STATISTICS_ENTRY structuredef */ 24813 #define MC_TSA_STATISTICS_ENTRY_LEN 16 24814 /* Tx statistics counter */ 24815 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_OFST 0 24816 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_LEN 8 24817 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_LO_OFST 0 24818 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_LO_LEN 4 24819 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_LO_LBN 0 24820 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_LO_WIDTH 32 24821 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_HI_OFST 4 24822 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_HI_LEN 4 24823 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_HI_LBN 32 24824 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_HI_WIDTH 32 24825 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_LBN 0 24826 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_WIDTH 64 24827 /* Rx statistics counter */ 24828 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_OFST 8 24829 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_LEN 8 24830 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_LO_OFST 8 24831 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_LO_LEN 4 24832 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_LO_LBN 64 24833 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_LO_WIDTH 32 24834 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_HI_OFST 12 24835 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_HI_LEN 4 24836 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_HI_LBN 96 24837 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_HI_WIDTH 32 24838 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_LBN 64 24839 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_WIDTH 64 24840 24841 24842 /***********************************/ 24843 /* MC_CMD_ERASE_INITIAL_NIC_SECRET 24844 * This request causes the NIC to find the initial NIC secret (programmed 24845 * during ATE) in XPM memory and if and only if the NIC has already been 24846 * rekeyed with MC_CMD_REKEY, erase it. This is used by manftest after 24847 * installing TSA binding certificates. See SF-117631-TC. 24848 */ 24849 #define MC_CMD_ERASE_INITIAL_NIC_SECRET 0x131 24850 #define MC_CMD_ERASE_INITIAL_NIC_SECRET_MSGSET 0x131 24851 #undef MC_CMD_0x131_PRIVILEGE_CTG 24852 24853 #define MC_CMD_0x131_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 24854 24855 /* MC_CMD_ERASE_INITIAL_NIC_SECRET_IN msgrequest */ 24856 #define MC_CMD_ERASE_INITIAL_NIC_SECRET_IN_LEN 0 24857 24858 /* MC_CMD_ERASE_INITIAL_NIC_SECRET_OUT msgresponse */ 24859 #define MC_CMD_ERASE_INITIAL_NIC_SECRET_OUT_LEN 0 24860 24861 24862 /***********************************/ 24863 /* MC_CMD_TSA_CONFIG 24864 * TSA adapter configuration operations. This command is used to prepare the 24865 * NIC for TSA binding. 24866 */ 24867 #define MC_CMD_TSA_CONFIG 0x64 24868 #define MC_CMD_TSA_CONFIG_MSGSET 0x64 24869 #undef MC_CMD_0x64_PRIVILEGE_CTG 24870 24871 #define MC_CMD_0x64_PRIVILEGE_CTG SRIOV_CTG_ADMIN 24872 24873 /* MC_CMD_TSA_CONFIG_IN msgrequest */ 24874 #define MC_CMD_TSA_CONFIG_IN_LEN 4 24875 /* TSA configuration sub-operation code */ 24876 #define MC_CMD_TSA_CONFIG_IN_OP_OFST 0 24877 #define MC_CMD_TSA_CONFIG_IN_OP_LEN 4 24878 /* enum: Append a single item to the tsa_config partition. Items will be 24879 * encrypted unless they are declared as non-sensitive. Returns 24880 * MC_CMD_ERR_EEXIST if the tag is already present. 24881 */ 24882 #define MC_CMD_TSA_CONFIG_OP_APPEND 0x1 24883 /* enum: Reset the tsa_config partition to a clean state. */ 24884 #define MC_CMD_TSA_CONFIG_OP_RESET 0x2 24885 /* enum: Read back a configured item from tsa_config partition. Returns 24886 * MC_CMD_ERR_ENOENT if the item doesn't exist, or MC_CMD_ERR_EPERM if the item 24887 * is declared as sensitive (i.e. is encrypted). 24888 */ 24889 #define MC_CMD_TSA_CONFIG_OP_READ 0x3 24890 24891 /* MC_CMD_TSA_CONFIG_IN_APPEND msgrequest */ 24892 #define MC_CMD_TSA_CONFIG_IN_APPEND_LENMIN 12 24893 #define MC_CMD_TSA_CONFIG_IN_APPEND_LENMAX 252 24894 #define MC_CMD_TSA_CONFIG_IN_APPEND_LENMAX_MCDI2 1020 24895 #define MC_CMD_TSA_CONFIG_IN_APPEND_LEN(num) (12+1*(num)) 24896 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_NUM(len) (((len)-12)/1) 24897 /* TSA configuration sub-operation code. The value shall be 24898 * MC_CMD_TSA_CONFIG_OP_APPEND. 24899 */ 24900 #define MC_CMD_TSA_CONFIG_IN_APPEND_OP_OFST 0 24901 #define MC_CMD_TSA_CONFIG_IN_APPEND_OP_LEN 4 24902 /* The tag to be appended */ 24903 #define MC_CMD_TSA_CONFIG_IN_APPEND_TAG_OFST 4 24904 #define MC_CMD_TSA_CONFIG_IN_APPEND_TAG_LEN 4 24905 /* The length of the data in bytes */ 24906 #define MC_CMD_TSA_CONFIG_IN_APPEND_LENGTH_OFST 8 24907 #define MC_CMD_TSA_CONFIG_IN_APPEND_LENGTH_LEN 4 24908 /* The item data */ 24909 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_OFST 12 24910 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_LEN 1 24911 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_MINNUM 0 24912 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_MAXNUM 240 24913 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_MAXNUM_MCDI2 1008 24914 24915 /* MC_CMD_TSA_CONFIG_OUT_APPEND msgresponse */ 24916 #define MC_CMD_TSA_CONFIG_OUT_APPEND_LEN 0 24917 24918 /* MC_CMD_TSA_CONFIG_IN_RESET msgrequest */ 24919 #define MC_CMD_TSA_CONFIG_IN_RESET_LEN 4 24920 /* TSA configuration sub-operation code. The value shall be 24921 * MC_CMD_TSA_CONFIG_OP_RESET. 24922 */ 24923 #define MC_CMD_TSA_CONFIG_IN_RESET_OP_OFST 0 24924 #define MC_CMD_TSA_CONFIG_IN_RESET_OP_LEN 4 24925 24926 /* MC_CMD_TSA_CONFIG_OUT_RESET msgresponse */ 24927 #define MC_CMD_TSA_CONFIG_OUT_RESET_LEN 0 24928 24929 /* MC_CMD_TSA_CONFIG_IN_READ msgrequest */ 24930 #define MC_CMD_TSA_CONFIG_IN_READ_LEN 8 24931 /* TSA configuration sub-operation code. The value shall be 24932 * MC_CMD_TSA_CONFIG_OP_READ. 24933 */ 24934 #define MC_CMD_TSA_CONFIG_IN_READ_OP_OFST 0 24935 #define MC_CMD_TSA_CONFIG_IN_READ_OP_LEN 4 24936 /* The tag to be read */ 24937 #define MC_CMD_TSA_CONFIG_IN_READ_TAG_OFST 4 24938 #define MC_CMD_TSA_CONFIG_IN_READ_TAG_LEN 4 24939 24940 /* MC_CMD_TSA_CONFIG_OUT_READ msgresponse */ 24941 #define MC_CMD_TSA_CONFIG_OUT_READ_LENMIN 8 24942 #define MC_CMD_TSA_CONFIG_OUT_READ_LENMAX 252 24943 #define MC_CMD_TSA_CONFIG_OUT_READ_LENMAX_MCDI2 1020 24944 #define MC_CMD_TSA_CONFIG_OUT_READ_LEN(num) (8+1*(num)) 24945 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_NUM(len) (((len)-8)/1) 24946 /* The tag that was read */ 24947 #define MC_CMD_TSA_CONFIG_OUT_READ_TAG_OFST 0 24948 #define MC_CMD_TSA_CONFIG_OUT_READ_TAG_LEN 4 24949 /* The length of the data in bytes */ 24950 #define MC_CMD_TSA_CONFIG_OUT_READ_LENGTH_OFST 4 24951 #define MC_CMD_TSA_CONFIG_OUT_READ_LENGTH_LEN 4 24952 /* The data of the item. */ 24953 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_OFST 8 24954 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_LEN 1 24955 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_MINNUM 0 24956 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_MAXNUM 244 24957 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_MAXNUM_MCDI2 1012 24958 24959 /* MC_TSA_IPV4_ITEM structuredef */ 24960 #define MC_TSA_IPV4_ITEM_LEN 8 24961 /* Additional metadata describing the IP address information such as the 24962 * physical port number the address is being used on. Unused space in this 24963 * field is reserved for future expansion. 24964 */ 24965 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_META_OFST 0 24966 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_META_LEN 4 24967 #define MC_TSA_IPV4_ITEM_PORT_IDX_OFST 0 24968 #define MC_TSA_IPV4_ITEM_PORT_IDX_LBN 0 24969 #define MC_TSA_IPV4_ITEM_PORT_IDX_WIDTH 8 24970 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_META_LBN 0 24971 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_META_WIDTH 32 24972 /* The IPv4 address in little endian byte order. */ 24973 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_OFST 4 24974 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_LEN 4 24975 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_LBN 32 24976 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_WIDTH 32 24977 24978 24979 /***********************************/ 24980 /* MC_CMD_TSA_IPADDR 24981 * TSA operations relating to the monitoring and expiry of local IP addresses 24982 * discovered by the controller. These commands are sent from a TSA controller 24983 * to a TSA adapter. 24984 */ 24985 #define MC_CMD_TSA_IPADDR 0x65 24986 #define MC_CMD_TSA_IPADDR_MSGSET 0x65 24987 #undef MC_CMD_0x65_PRIVILEGE_CTG 24988 24989 #define MC_CMD_0x65_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 24990 24991 /* MC_CMD_TSA_IPADDR_IN msgrequest */ 24992 #define MC_CMD_TSA_IPADDR_IN_LEN 4 24993 /* Header containing information to identify which sub-operation of this 24994 * command to perform. The header contains a 16-bit op-code. Unused space in 24995 * this field is reserved for future expansion. 24996 */ 24997 #define MC_CMD_TSA_IPADDR_IN_OP_HDR_OFST 0 24998 #define MC_CMD_TSA_IPADDR_IN_OP_HDR_LEN 4 24999 #define MC_CMD_TSA_IPADDR_IN_OP_OFST 0 25000 #define MC_CMD_TSA_IPADDR_IN_OP_LBN 0 25001 #define MC_CMD_TSA_IPADDR_IN_OP_WIDTH 16 25002 /* enum: Request that the adapter verifies that the IPv4 addresses supplied are 25003 * still in use by the host by sending ARP probes to the host. The MC does not 25004 * wait for a response to the probes and sends an MCDI response to the 25005 * controller once the probes have been sent to the host. The response to the 25006 * probes (if there are any) will be forwarded to the controller using 25007 * MC_CMD_TSA_INFO alerts. 25008 */ 25009 #define MC_CMD_TSA_IPADDR_OP_VALIDATE_IPV4 0x1 25010 /* enum: Notify the adapter that one or more IPv4 addresses are no longer valid 25011 * for the host of the adapter. The adapter should remove the IPv4 addresses 25012 * from its local cache. 25013 */ 25014 #define MC_CMD_TSA_IPADDR_OP_REMOVE_IPV4 0x2 25015 25016 /* MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4 msgrequest */ 25017 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_LENMIN 16 25018 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_LENMAX 248 25019 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_LENMAX_MCDI2 1016 25020 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_LEN(num) (8+8*(num)) 25021 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_NUM(len) (((len)-8)/8) 25022 /* Header containing information to identify which sub-operation of this 25023 * command to perform. The header contains a 16-bit op-code. Unused space in 25024 * this field is reserved for future expansion. 25025 */ 25026 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_OP_HDR_OFST 0 25027 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_OP_HDR_LEN 4 25028 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_OP_OFST 0 25029 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_OP_LBN 0 25030 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_OP_WIDTH 16 25031 /* Number of IPv4 addresses to validate. */ 25032 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_NUM_ITEMS_OFST 4 25033 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_NUM_ITEMS_LEN 4 25034 /* The IPv4 addresses to validate, in struct MC_TSA_IPV4_ITEM format. */ 25035 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_OFST 8 25036 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_LEN 8 25037 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_LO_OFST 8 25038 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_LO_LEN 4 25039 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_LO_LBN 64 25040 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_LO_WIDTH 32 25041 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_HI_OFST 12 25042 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_HI_LEN 4 25043 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_HI_LBN 96 25044 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_HI_WIDTH 32 25045 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_MINNUM 1 25046 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_MAXNUM 30 25047 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_MAXNUM_MCDI2 126 25048 25049 /* MC_CMD_TSA_IPADDR_OUT_VALIDATE_IPV4 msgresponse */ 25050 #define MC_CMD_TSA_IPADDR_OUT_VALIDATE_IPV4_LEN 0 25051 25052 /* MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4 msgrequest */ 25053 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_LENMIN 16 25054 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_LENMAX 248 25055 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_LENMAX_MCDI2 1016 25056 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_LEN(num) (8+8*(num)) 25057 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_NUM(len) (((len)-8)/8) 25058 /* Header containing information to identify which sub-operation of this 25059 * command to perform. The header contains a 16-bit op-code. Unused space in 25060 * this field is reserved for future expansion. 25061 */ 25062 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_OP_HDR_OFST 0 25063 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_OP_HDR_LEN 4 25064 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_OP_OFST 0 25065 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_OP_LBN 0 25066 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_OP_WIDTH 16 25067 /* Number of IPv4 addresses to remove. */ 25068 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_NUM_ITEMS_OFST 4 25069 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_NUM_ITEMS_LEN 4 25070 /* The IPv4 addresses that have expired, in struct MC_TSA_IPV4_ITEM format. */ 25071 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_OFST 8 25072 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_LEN 8 25073 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_LO_OFST 8 25074 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_LO_LEN 4 25075 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_LO_LBN 64 25076 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_LO_WIDTH 32 25077 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_HI_OFST 12 25078 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_HI_LEN 4 25079 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_HI_LBN 96 25080 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_HI_WIDTH 32 25081 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_MINNUM 1 25082 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_MAXNUM 30 25083 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_MAXNUM_MCDI2 126 25084 25085 /* MC_CMD_TSA_IPADDR_OUT_REMOVE_IPV4 msgresponse */ 25086 #define MC_CMD_TSA_IPADDR_OUT_REMOVE_IPV4_LEN 0 25087 25088 25089 /***********************************/ 25090 /* MC_CMD_SECURE_NIC_INFO 25091 * Get secure NIC information. While many of the features reported by these 25092 * commands are related to TSA, they must be supported in firmware where TSA is 25093 * disabled. 25094 */ 25095 #define MC_CMD_SECURE_NIC_INFO 0x132 25096 #define MC_CMD_SECURE_NIC_INFO_MSGSET 0x132 25097 #undef MC_CMD_0x132_PRIVILEGE_CTG 25098 25099 #define MC_CMD_0x132_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25100 25101 /* MC_CMD_SECURE_NIC_INFO_IN msgrequest */ 25102 #define MC_CMD_SECURE_NIC_INFO_IN_LEN 4 25103 /* sub-operation code info */ 25104 #define MC_CMD_SECURE_NIC_INFO_IN_OP_HDR_OFST 0 25105 #define MC_CMD_SECURE_NIC_INFO_IN_OP_HDR_LEN 4 25106 #define MC_CMD_SECURE_NIC_INFO_IN_OP_OFST 0 25107 #define MC_CMD_SECURE_NIC_INFO_IN_OP_LBN 0 25108 #define MC_CMD_SECURE_NIC_INFO_IN_OP_WIDTH 16 25109 /* enum: Get the status of various security settings, all signed along with a 25110 * challenge chosen by the host. 25111 */ 25112 #define MC_CMD_SECURE_NIC_INFO_OP_STATUS 0x0 25113 25114 /* MC_CMD_SECURE_NIC_INFO_IN_STATUS msgrequest */ 25115 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_LEN 24 25116 /* sub-operation code, must be MC_CMD_SECURE_NIC_INFO_OP_STATUS */ 25117 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_OP_HDR_OFST 0 25118 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_OP_HDR_LEN 4 25119 /* Type of key to be used to sign response. */ 25120 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_KEY_TYPE_OFST 4 25121 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_KEY_TYPE_LEN 4 25122 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_UNUSED 0x0 /* enum */ 25123 /* enum: Solarflare adapter authentication key, installed by Manftest. */ 25124 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_SF_ADAPTER_AUTH 0x1 25125 /* enum: TSA binding key, installed after adapter is bound to a TSA controller. 25126 * This is not supported in firmware which does not support TSA. 25127 */ 25128 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_TSA_BINDING 0x2 25129 /* enum: Customer adapter authentication key. Installed by the customer in the 25130 * field, but otherwise similar to the Solarflare adapter authentication key. 25131 */ 25132 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_CUSTOMER_ADAPTER_AUTH 0x3 25133 /* Random challenge generated by the host. */ 25134 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_CHALLENGE_OFST 8 25135 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_CHALLENGE_LEN 16 25136 25137 /* MC_CMD_SECURE_NIC_INFO_OUT_STATUS msgresponse */ 25138 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_LEN 420 25139 /* Length of the signature in MSG_SIGNATURE. */ 25140 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MSG_SIGNATURE_LEN_OFST 0 25141 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MSG_SIGNATURE_LEN_LEN 4 25142 /* Signature over the message, starting at MESSAGE_TYPE and continuing to the 25143 * end of the MCDI response, allowing the message format to be extended. The 25144 * signature uses ECDSA 384 encoding in ASN.1 format. It has variable length, 25145 * with a maximum of 384 bytes. 25146 */ 25147 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MSG_SIGNATURE_OFST 4 25148 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MSG_SIGNATURE_LEN 384 25149 /* Enum value indicating the type of response. This protects against chosen 25150 * message attacks. The enum values are random rather than sequential to make 25151 * it unlikely that values will be reused should other commands in a different 25152 * namespace need to create signed messages. 25153 */ 25154 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MESSAGE_TYPE_OFST 388 25155 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MESSAGE_TYPE_LEN 4 25156 /* enum: Message type value for the response to a 25157 * MC_CMD_SECURE_NIC_INFO_IN_STATUS message. 25158 */ 25159 #define MC_CMD_SECURE_NIC_INFO_STATUS 0xdb4 25160 /* The challenge provided by the host in the MC_CMD_SECURE_NIC_INFO_IN_STATUS 25161 * message 25162 */ 25163 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_CHALLENGE_OFST 392 25164 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_CHALLENGE_LEN 16 25165 /* The first 32 bits of XPM memory, which include security and flag bits, die 25166 * ID and chip ID revision. The meaning of these bits is defined in 25167 * mc/include/mc/xpm.h in the firmwaresrc repository. 25168 */ 25169 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_XPM_STATUS_BITS_OFST 408 25170 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_XPM_STATUS_BITS_LEN 4 25171 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_A_OFST 412 25172 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_A_LEN 2 25173 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_B_OFST 414 25174 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_B_LEN 2 25175 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_C_OFST 416 25176 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_C_LEN 2 25177 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_D_OFST 418 25178 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_D_LEN 2 25179 25180 25181 /***********************************/ 25182 /* MC_CMD_TSA_TEST 25183 * A simple ping-pong command just to test the adapter<>controller MCDI 25184 * communication channel. This command makes not changes to the TSA adapter's 25185 * internal state. It is used by the controller just to verify that the MCDI 25186 * communication channel is working fine. This command takes no additonal 25187 * parameters in request or response. 25188 */ 25189 #define MC_CMD_TSA_TEST 0x125 25190 #define MC_CMD_TSA_TEST_MSGSET 0x125 25191 #undef MC_CMD_0x125_PRIVILEGE_CTG 25192 25193 #define MC_CMD_0x125_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 25194 25195 /* MC_CMD_TSA_TEST_IN msgrequest */ 25196 #define MC_CMD_TSA_TEST_IN_LEN 0 25197 25198 /* MC_CMD_TSA_TEST_OUT msgresponse */ 25199 #define MC_CMD_TSA_TEST_OUT_LEN 0 25200 25201 25202 /***********************************/ 25203 /* MC_CMD_TSA_RULESET_OVERRIDE 25204 * Override TSA ruleset that is currently active on the adapter. This operation 25205 * does not modify the ruleset itself. This operation provides a mechanism to 25206 * apply an allow-all or deny-all operation on all packets, thereby completely 25207 * ignoring the rule-set configured on the adapter. The main purpose of this 25208 * operation is to provide a deterministic state to the TSA firewall during 25209 * rule-set transitions. 25210 */ 25211 #define MC_CMD_TSA_RULESET_OVERRIDE 0x12a 25212 #define MC_CMD_TSA_RULESET_OVERRIDE_MSGSET 0x12a 25213 #undef MC_CMD_0x12a_PRIVILEGE_CTG 25214 25215 #define MC_CMD_0x12a_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 25216 25217 /* MC_CMD_TSA_RULESET_OVERRIDE_IN msgrequest */ 25218 #define MC_CMD_TSA_RULESET_OVERRIDE_IN_LEN 4 25219 /* The override state to apply. */ 25220 #define MC_CMD_TSA_RULESET_OVERRIDE_IN_STATE_OFST 0 25221 #define MC_CMD_TSA_RULESET_OVERRIDE_IN_STATE_LEN 4 25222 /* enum: No override in place - the existing ruleset is in operation. */ 25223 #define MC_CMD_TSA_RULESET_OVERRIDE_NONE 0x0 25224 /* enum: Block all packets seen on all datapath channel except those packets 25225 * required for basic configuration of the TSA NIC such as ARPs and TSA- 25226 * communication traffic. Such exceptional traffic is handled differently 25227 * compared to TSA rulesets. 25228 */ 25229 #define MC_CMD_TSA_RULESET_OVERRIDE_BLOCK 0x1 25230 /* enum: Allow all packets through all datapath channel. The TSA adapter 25231 * behaves like a normal NIC without any firewalls. 25232 */ 25233 #define MC_CMD_TSA_RULESET_OVERRIDE_ALLOW 0x2 25234 25235 /* MC_CMD_TSA_RULESET_OVERRIDE_OUT msgresponse */ 25236 #define MC_CMD_TSA_RULESET_OVERRIDE_OUT_LEN 0 25237 25238 25239 /***********************************/ 25240 /* MC_CMD_TSAC_REQUEST 25241 * Generic command to send requests from a TSA controller to a TSA adapter. 25242 * Specific usage is determined by the TYPE field. 25243 */ 25244 #define MC_CMD_TSAC_REQUEST 0x12b 25245 #define MC_CMD_TSAC_REQUEST_MSGSET 0x12b 25246 #undef MC_CMD_0x12b_PRIVILEGE_CTG 25247 25248 #define MC_CMD_0x12b_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 25249 25250 /* MC_CMD_TSAC_REQUEST_IN msgrequest */ 25251 #define MC_CMD_TSAC_REQUEST_IN_LEN 4 25252 /* The type of request from the controller. */ 25253 #define MC_CMD_TSAC_REQUEST_IN_TYPE_OFST 0 25254 #define MC_CMD_TSAC_REQUEST_IN_TYPE_LEN 4 25255 /* enum: Request the adapter to resend localIP information from it's cache. The 25256 * command does not return any IP address information; IP addresses are sent as 25257 * TSA notifications as descibed in MC_CMD_TSA_INFO_IN_LOCAL_IP. 25258 */ 25259 #define MC_CMD_TSAC_REQUEST_LOCALIP 0x0 25260 25261 /* MC_CMD_TSAC_REQUEST_OUT msgresponse */ 25262 #define MC_CMD_TSAC_REQUEST_OUT_LEN 0 25263 25264 25265 /***********************************/ 25266 /* MC_CMD_SUC_VERSION 25267 * Get the version of the SUC 25268 */ 25269 #define MC_CMD_SUC_VERSION 0x134 25270 #define MC_CMD_SUC_VERSION_MSGSET 0x134 25271 #undef MC_CMD_0x134_PRIVILEGE_CTG 25272 25273 #define MC_CMD_0x134_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25274 25275 /* MC_CMD_SUC_VERSION_IN msgrequest */ 25276 #define MC_CMD_SUC_VERSION_IN_LEN 0 25277 25278 /* MC_CMD_SUC_VERSION_OUT msgresponse */ 25279 #define MC_CMD_SUC_VERSION_OUT_LEN 24 25280 /* The SUC firmware version as four numbers - a.b.c.d */ 25281 #define MC_CMD_SUC_VERSION_OUT_VERSION_OFST 0 25282 #define MC_CMD_SUC_VERSION_OUT_VERSION_LEN 4 25283 #define MC_CMD_SUC_VERSION_OUT_VERSION_NUM 4 25284 /* The date, in seconds since the Unix epoch, when the firmware image was 25285 * built. 25286 */ 25287 #define MC_CMD_SUC_VERSION_OUT_BUILD_DATE_OFST 16 25288 #define MC_CMD_SUC_VERSION_OUT_BUILD_DATE_LEN 4 25289 /* The ID of the SUC chip. This is specific to the platform but typically 25290 * indicates family, memory sizes etc. See SF-116728-SW for further details. 25291 */ 25292 #define MC_CMD_SUC_VERSION_OUT_CHIP_ID_OFST 20 25293 #define MC_CMD_SUC_VERSION_OUT_CHIP_ID_LEN 4 25294 25295 /* MC_CMD_SUC_BOOT_VERSION_IN msgrequest: Get the version of the SUC boot 25296 * loader. 25297 */ 25298 #define MC_CMD_SUC_BOOT_VERSION_IN_LEN 4 25299 #define MC_CMD_SUC_BOOT_VERSION_IN_MAGIC_OFST 0 25300 #define MC_CMD_SUC_BOOT_VERSION_IN_MAGIC_LEN 4 25301 /* enum: Requests the SUC boot version. */ 25302 #define MC_CMD_SUC_VERSION_GET_BOOT_VERSION 0xb007700b 25303 25304 /* MC_CMD_SUC_BOOT_VERSION_OUT msgresponse */ 25305 #define MC_CMD_SUC_BOOT_VERSION_OUT_LEN 4 25306 /* The SUC boot version */ 25307 #define MC_CMD_SUC_BOOT_VERSION_OUT_VERSION_OFST 0 25308 #define MC_CMD_SUC_BOOT_VERSION_OUT_VERSION_LEN 4 25309 25310 25311 /***********************************/ 25312 /* MC_CMD_SUC_MANFTEST 25313 * Operations to support manftest on SUC based systems. 25314 */ 25315 #define MC_CMD_SUC_MANFTEST 0x135 25316 #define MC_CMD_SUC_MANFTEST_MSGSET 0x135 25317 #undef MC_CMD_0x135_PRIVILEGE_CTG 25318 25319 #define MC_CMD_0x135_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 25320 25321 /* MC_CMD_SUC_MANFTEST_IN msgrequest */ 25322 #define MC_CMD_SUC_MANFTEST_IN_LEN 4 25323 /* The manftest operation to be performed. */ 25324 #define MC_CMD_SUC_MANFTEST_IN_OP_OFST 0 25325 #define MC_CMD_SUC_MANFTEST_IN_OP_LEN 4 25326 /* enum: Read serial number and use count. */ 25327 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ 0x0 25328 /* enum: Update use count on wearout adapter. */ 25329 #define MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE 0x1 25330 /* enum: Start an ADC calibration. */ 25331 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START 0x2 25332 /* enum: Read the status of an ADC calibration. */ 25333 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS 0x3 25334 /* enum: Read the results of an ADC calibration. */ 25335 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT 0x4 25336 /* enum: Read the PCIe configuration. */ 25337 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ 0x5 25338 /* enum: Write the PCIe configuration. */ 25339 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE 0x6 25340 /* enum: Write FRU information to SUC. The FRU information is taken from the 25341 * FRU_INFORMATION partition. Attempts to write to read-only FRUs are rejected. 25342 */ 25343 #define MC_CMD_SUC_MANFTEST_FRU_WRITE 0x7 25344 /* enum: Read UDID Vendor Specific ID from SUC persistent storage. */ 25345 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ 0x8 25346 /* enum: Write UDID Vendor Specific ID to SUC persistent storage for use in 25347 * SMBus ARP. 25348 */ 25349 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE 0x9 25350 25351 /* MC_CMD_SUC_MANFTEST_OUT msgresponse */ 25352 #define MC_CMD_SUC_MANFTEST_OUT_LEN 0 25353 25354 /* MC_CMD_SUC_MANFTEST_WEAROUT_READ_IN msgrequest */ 25355 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_IN_LEN 4 25356 /* The manftest operation to be performed. This must be 25357 * MC_CMD_SUC_MANFTEST_WEAROUT_READ. 25358 */ 25359 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_IN_OP_OFST 0 25360 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_IN_OP_LEN 4 25361 25362 /* MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT msgresponse */ 25363 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT_LEN 20 25364 /* The serial number of the wearout adapter, see SF-112717-PR for format. */ 25365 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT_SERIAL_NUMBER_OFST 0 25366 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT_SERIAL_NUMBER_LEN 16 25367 /* The use count of the wearout adapter. */ 25368 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT_USE_COUNT_OFST 16 25369 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT_USE_COUNT_LEN 4 25370 25371 /* MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_IN msgrequest */ 25372 #define MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_IN_LEN 4 25373 /* The manftest operation to be performed. This must be 25374 * MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE. 25375 */ 25376 #define MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_IN_OP_OFST 0 25377 #define MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_IN_OP_LEN 4 25378 25379 /* MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_OUT msgresponse */ 25380 #define MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_OUT_LEN 0 25381 25382 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_IN msgrequest */ 25383 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_IN_LEN 4 25384 /* The manftest operation to be performed. This must be 25385 * MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START. 25386 */ 25387 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_IN_OP_OFST 0 25388 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_IN_OP_LEN 4 25389 25390 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_OUT msgresponse */ 25391 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_OUT_LEN 0 25392 25393 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_IN msgrequest */ 25394 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_IN_LEN 4 25395 /* The manftest operation to be performed. This must be 25396 * MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS. 25397 */ 25398 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_IN_OP_OFST 0 25399 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_IN_OP_LEN 4 25400 25401 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT msgresponse */ 25402 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_LEN 4 25403 /* The combined status of the calibration operation. */ 25404 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_FLAGS_OFST 0 25405 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_FLAGS_LEN 4 25406 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_CALIBRATING_OFST 0 25407 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_CALIBRATING_LBN 0 25408 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_CALIBRATING_WIDTH 1 25409 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_FAILED_OFST 0 25410 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_FAILED_LBN 1 25411 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_FAILED_WIDTH 1 25412 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_RESULT_OFST 0 25413 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_RESULT_LBN 2 25414 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_RESULT_WIDTH 4 25415 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_INDEX_OFST 0 25416 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_INDEX_LBN 6 25417 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_INDEX_WIDTH 2 25418 25419 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_IN msgrequest */ 25420 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_IN_LEN 4 25421 /* The manftest operation to be performed. This must be 25422 * MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT. 25423 */ 25424 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_IN_OP_OFST 0 25425 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_IN_OP_LEN 4 25426 25427 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_OUT msgresponse */ 25428 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_OUT_LEN 12 25429 /* The set of calibration results. */ 25430 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_OUT_VALUE_OFST 0 25431 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_OUT_VALUE_LEN 4 25432 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_OUT_VALUE_NUM 3 25433 25434 /* MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_IN msgrequest */ 25435 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_IN_LEN 4 25436 /* The manftest operation to be performed. This must be 25437 * MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ. 25438 */ 25439 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_IN_OP_OFST 0 25440 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_IN_OP_LEN 4 25441 25442 /* MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT msgresponse */ 25443 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT_LEN 4 25444 /* The PCIe vendor ID. */ 25445 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT_VENDOR_ID_OFST 0 25446 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT_VENDOR_ID_LEN 2 25447 /* The PCIe device ID. */ 25448 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT_DEVICE_ID_OFST 2 25449 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT_DEVICE_ID_LEN 2 25450 25451 /* MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN msgrequest */ 25452 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_LEN 8 25453 /* The manftest operation to be performed. This must be 25454 * MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE. 25455 */ 25456 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_OP_OFST 0 25457 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_OP_LEN 4 25458 /* The PCIe vendor ID. */ 25459 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_VENDOR_ID_OFST 4 25460 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_VENDOR_ID_LEN 2 25461 /* The PCIe device ID. */ 25462 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_DEVICE_ID_OFST 6 25463 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_DEVICE_ID_LEN 2 25464 25465 /* MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_OUT msgresponse */ 25466 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_OUT_LEN 0 25467 25468 /* MC_CMD_SUC_MANFTEST_FRU_WRITE_IN msgrequest */ 25469 #define MC_CMD_SUC_MANFTEST_FRU_WRITE_IN_LEN 4 25470 /* The manftest operation to be performed. This must be 25471 * MC_CMD_SUC_MANFTEST_FRU_WRITE 25472 */ 25473 #define MC_CMD_SUC_MANFTEST_FRU_WRITE_IN_OP_OFST 0 25474 #define MC_CMD_SUC_MANFTEST_FRU_WRITE_IN_OP_LEN 4 25475 25476 /* MC_CMD_SUC_MANFTEST_FRU_WRITE_OUT msgresponse */ 25477 #define MC_CMD_SUC_MANFTEST_FRU_WRITE_OUT_LEN 0 25478 25479 /* MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_IN msgrequest */ 25480 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_IN_LEN 4 25481 /* The manftest operation to be performed. This must be 25482 * MC_CMD_SUC_MANFTEST_SMBUS_ID_READ. 25483 */ 25484 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_IN_OP_OFST 0 25485 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_IN_OP_LEN 4 25486 25487 /* MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_OUT msgresponse */ 25488 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_OUT_LEN 4 25489 /* The SMBus ID. */ 25490 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_OUT_SMBUS_ID_OFST 0 25491 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_OUT_SMBUS_ID_LEN 4 25492 25493 /* MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN msgrequest */ 25494 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN_LEN 8 25495 /* The manftest operation to be performed. This must be 25496 * MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE. 25497 */ 25498 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN_OP_OFST 0 25499 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN_OP_LEN 4 25500 /* The SMBus ID. */ 25501 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN_SMBUS_ID_OFST 4 25502 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN_SMBUS_ID_LEN 4 25503 25504 /* MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_OUT msgresponse */ 25505 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_OUT_LEN 0 25506 25507 25508 /***********************************/ 25509 /* MC_CMD_GET_CERTIFICATE 25510 * Request a certificate. 25511 */ 25512 #define MC_CMD_GET_CERTIFICATE 0x12c 25513 #define MC_CMD_GET_CERTIFICATE_MSGSET 0x12c 25514 #undef MC_CMD_0x12c_PRIVILEGE_CTG 25515 25516 #define MC_CMD_0x12c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25517 25518 /* MC_CMD_GET_CERTIFICATE_IN msgrequest */ 25519 #define MC_CMD_GET_CERTIFICATE_IN_LEN 8 25520 /* Type of the certificate to be retrieved. */ 25521 #define MC_CMD_GET_CERTIFICATE_IN_TYPE_OFST 0 25522 #define MC_CMD_GET_CERTIFICATE_IN_TYPE_LEN 4 25523 #define MC_CMD_GET_CERTIFICATE_IN_UNUSED 0x0 /* enum */ 25524 #define MC_CMD_GET_CERTIFICATE_IN_AAC 0x1 /* enum */ 25525 /* enum: Adapter Authentication Certificate (AAC). The AAC is unique to each 25526 * adapter and is used to verify its authenticity. It is installed by Manftest. 25527 */ 25528 #define MC_CMD_GET_CERTIFICATE_IN_ADAPTER_AUTH 0x1 25529 #define MC_CMD_GET_CERTIFICATE_IN_AASC 0x2 /* enum */ 25530 /* enum: Adapter Authentication Signing Certificate (AASC). The AASC is shared 25531 * by a group of adapters (typically a purchase order) and is used to verify 25532 * the validity of AAC along with the SF root certificate. It is installed by 25533 * Manftest. 25534 */ 25535 #define MC_CMD_GET_CERTIFICATE_IN_ADAPTER_AUTH_SIGNING 0x2 25536 #define MC_CMD_GET_CERTIFICATE_IN_CUSTOMER_AAC 0x3 /* enum */ 25537 /* enum: Customer Adapter Authentication Certificate. The Customer AAC is 25538 * unique to each adapter and is used to verify its authenticity in cases where 25539 * either the AAC is not installed or a customer desires to use their own 25540 * certificate chain. It is installed by the customer. 25541 */ 25542 #define MC_CMD_GET_CERTIFICATE_IN_CUSTOMER_ADAPTER_AUTH 0x3 25543 #define MC_CMD_GET_CERTIFICATE_IN_CUSTOMER_AASC 0x4 /* enum */ 25544 /* enum: Customer Adapter Authentication Certificate. The Customer AASC is 25545 * shared by a group of adapters and is used to verify the validity of the 25546 * Customer AAC along with the customers root certificate. It is installed by 25547 * the customer. 25548 */ 25549 #define MC_CMD_GET_CERTIFICATE_IN_CUSTOMER_ADAPTER_AUTH_SIGNING 0x4 25550 /* Offset, measured in bytes, relative to the start of the certificate data 25551 * from which the certificate is to be retrieved. 25552 */ 25553 #define MC_CMD_GET_CERTIFICATE_IN_OFFSET_OFST 4 25554 #define MC_CMD_GET_CERTIFICATE_IN_OFFSET_LEN 4 25555 25556 /* MC_CMD_GET_CERTIFICATE_OUT msgresponse */ 25557 #define MC_CMD_GET_CERTIFICATE_OUT_LENMIN 13 25558 #define MC_CMD_GET_CERTIFICATE_OUT_LENMAX 252 25559 #define MC_CMD_GET_CERTIFICATE_OUT_LENMAX_MCDI2 1020 25560 #define MC_CMD_GET_CERTIFICATE_OUT_LEN(num) (12+1*(num)) 25561 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_NUM(len) (((len)-12)/1) 25562 /* Type of the certificate. */ 25563 #define MC_CMD_GET_CERTIFICATE_OUT_TYPE_OFST 0 25564 #define MC_CMD_GET_CERTIFICATE_OUT_TYPE_LEN 4 25565 /* Enum values, see field(s): */ 25566 /* MC_CMD_GET_CERTIFICATE_IN/TYPE */ 25567 /* Offset, measured in bytes, relative to the start of the certificate data 25568 * from which data in this message starts. 25569 */ 25570 #define MC_CMD_GET_CERTIFICATE_OUT_OFFSET_OFST 4 25571 #define MC_CMD_GET_CERTIFICATE_OUT_OFFSET_LEN 4 25572 /* Total length of the certificate data. */ 25573 #define MC_CMD_GET_CERTIFICATE_OUT_TOTAL_LENGTH_OFST 8 25574 #define MC_CMD_GET_CERTIFICATE_OUT_TOTAL_LENGTH_LEN 4 25575 /* The certificate data. */ 25576 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_OFST 12 25577 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_LEN 1 25578 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_MINNUM 1 25579 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_MAXNUM 240 25580 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_MAXNUM_MCDI2 1008 25581 25582 25583 /***********************************/ 25584 /* MC_CMD_GET_NIC_GLOBAL 25585 * Get a global value which applies to all PCI functions 25586 */ 25587 #define MC_CMD_GET_NIC_GLOBAL 0x12d 25588 #define MC_CMD_GET_NIC_GLOBAL_MSGSET 0x12d 25589 #undef MC_CMD_0x12d_PRIVILEGE_CTG 25590 25591 #define MC_CMD_0x12d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25592 25593 /* MC_CMD_GET_NIC_GLOBAL_IN msgrequest */ 25594 #define MC_CMD_GET_NIC_GLOBAL_IN_LEN 4 25595 /* Key to request value for, see enum values in MC_CMD_SET_NIC_GLOBAL. If the 25596 * given key is unknown to the current firmware, the call will fail with 25597 * ENOENT. 25598 */ 25599 #define MC_CMD_GET_NIC_GLOBAL_IN_KEY_OFST 0 25600 #define MC_CMD_GET_NIC_GLOBAL_IN_KEY_LEN 4 25601 25602 /* MC_CMD_GET_NIC_GLOBAL_OUT msgresponse */ 25603 #define MC_CMD_GET_NIC_GLOBAL_OUT_LEN 4 25604 /* Value of requested key, see key descriptions below. */ 25605 #define MC_CMD_GET_NIC_GLOBAL_OUT_VALUE_OFST 0 25606 #define MC_CMD_GET_NIC_GLOBAL_OUT_VALUE_LEN 4 25607 25608 25609 /***********************************/ 25610 /* MC_CMD_SET_NIC_GLOBAL 25611 * Set a global value which applies to all PCI functions. Most global values 25612 * can only be changed under specific conditions, and this call will return an 25613 * appropriate error otherwise (see key descriptions). 25614 */ 25615 #define MC_CMD_SET_NIC_GLOBAL 0x12e 25616 #define MC_CMD_SET_NIC_GLOBAL_MSGSET 0x12e 25617 #undef MC_CMD_0x12e_PRIVILEGE_CTG 25618 25619 #define MC_CMD_0x12e_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25620 25621 /* MC_CMD_SET_NIC_GLOBAL_IN msgrequest */ 25622 #define MC_CMD_SET_NIC_GLOBAL_IN_LEN 8 25623 /* Key to change value of. Firmware will return ENOENT for keys it doesn't know 25624 * about. 25625 */ 25626 #define MC_CMD_SET_NIC_GLOBAL_IN_KEY_OFST 0 25627 #define MC_CMD_SET_NIC_GLOBAL_IN_KEY_LEN 4 25628 /* enum: Request switching the datapath firmware sub-variant. Currently only 25629 * useful when running the DPDK f/w variant. See key values below, and the DPDK 25630 * section of the EF10 Driver Writers Guide. Note that any driver attaching 25631 * with the SUBVARIANT_AWARE flag cleared is implicitly considered as a request 25632 * to switch back to the default sub-variant, and will thus reset this value. 25633 * If a sub-variant switch happens, all other PCI functions will get their 25634 * resources reset (they will see an MC reboot). 25635 */ 25636 #define MC_CMD_SET_NIC_GLOBAL_IN_FIRMWARE_SUBVARIANT 0x1 25637 /* New value to set, see key descriptions above. */ 25638 #define MC_CMD_SET_NIC_GLOBAL_IN_VALUE_OFST 4 25639 #define MC_CMD_SET_NIC_GLOBAL_IN_VALUE_LEN 4 25640 /* enum: Only if KEY = FIRMWARE_SUBVARIANT. Default sub-variant with support 25641 * for maximum features for the current f/w variant. A request from a 25642 * privileged function to set this particular value will always succeed. 25643 */ 25644 #define MC_CMD_SET_NIC_GLOBAL_IN_FW_SUBVARIANT_DEFAULT 0x0 25645 /* enum: Only if KEY = FIRMWARE_SUBVARIANT. Increases packet rate at the cost 25646 * of not supporting any TX checksum offloads. Only supported when running some 25647 * f/w variants, others will return ENOTSUP (as reported by the homonymous bit 25648 * in MC_CMD_GET_CAPABILITIES_V2). Can only be set when no other drivers are 25649 * attached, and the calling driver must have no resources allocated. See the 25650 * DPDK section of the EF10 Driver Writers Guide for a more detailed 25651 * description with possible error codes. 25652 */ 25653 #define MC_CMD_SET_NIC_GLOBAL_IN_FW_SUBVARIANT_NO_TX_CSUM 0x1 25654 25655 25656 /***********************************/ 25657 /* MC_CMD_LTSSM_TRACE_POLL 25658 * Medford2 hardware has support for logging all LTSSM state transitions to a 25659 * hardware buffer. When built with WITH_LTSSM_TRACE=1, the firmware will 25660 * periodially dump the contents of this hardware buffer to an internal 25661 * firmware buffer for later extraction. 25662 */ 25663 #define MC_CMD_LTSSM_TRACE_POLL 0x12f 25664 #define MC_CMD_LTSSM_TRACE_POLL_MSGSET 0x12f 25665 #undef MC_CMD_0x12f_PRIVILEGE_CTG 25666 25667 #define MC_CMD_0x12f_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25668 25669 /* MC_CMD_LTSSM_TRACE_POLL_IN msgrequest: Read transitions from the firmware 25670 * internal buffer. 25671 */ 25672 #define MC_CMD_LTSSM_TRACE_POLL_IN_LEN 4 25673 /* The maximum number of row that the caller can accept. The format of each row 25674 * is defined in MC_CMD_LTSSM_TRACE_POLL_OUT. 25675 */ 25676 #define MC_CMD_LTSSM_TRACE_POLL_IN_MAX_ROW_COUNT_OFST 0 25677 #define MC_CMD_LTSSM_TRACE_POLL_IN_MAX_ROW_COUNT_LEN 4 25678 25679 /* MC_CMD_LTSSM_TRACE_POLL_OUT msgresponse */ 25680 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LENMIN 16 25681 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LENMAX 248 25682 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LENMAX_MCDI2 1016 25683 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LEN(num) (8+8*(num)) 25684 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_NUM(len) (((len)-8)/8) 25685 #define MC_CMD_LTSSM_TRACE_POLL_OUT_FLAGS_OFST 0 25686 #define MC_CMD_LTSSM_TRACE_POLL_OUT_FLAGS_LEN 4 25687 #define MC_CMD_LTSSM_TRACE_POLL_OUT_HW_BUFFER_OVERFLOW_OFST 0 25688 #define MC_CMD_LTSSM_TRACE_POLL_OUT_HW_BUFFER_OVERFLOW_LBN 0 25689 #define MC_CMD_LTSSM_TRACE_POLL_OUT_HW_BUFFER_OVERFLOW_WIDTH 1 25690 #define MC_CMD_LTSSM_TRACE_POLL_OUT_FW_BUFFER_OVERFLOW_OFST 0 25691 #define MC_CMD_LTSSM_TRACE_POLL_OUT_FW_BUFFER_OVERFLOW_LBN 1 25692 #define MC_CMD_LTSSM_TRACE_POLL_OUT_FW_BUFFER_OVERFLOW_WIDTH 1 25693 #define MC_CMD_LTSSM_TRACE_POLL_OUT_CONTINUES_OFST 0 25694 #define MC_CMD_LTSSM_TRACE_POLL_OUT_CONTINUES_LBN 31 25695 #define MC_CMD_LTSSM_TRACE_POLL_OUT_CONTINUES_WIDTH 1 25696 /* The number of rows present in this response. */ 25697 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROW_COUNT_OFST 4 25698 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROW_COUNT_LEN 4 25699 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_OFST 8 25700 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_LEN 8 25701 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_LO_OFST 8 25702 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_LO_LEN 4 25703 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_LO_LBN 64 25704 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_LO_WIDTH 32 25705 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_HI_OFST 12 25706 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_HI_LEN 4 25707 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_HI_LBN 96 25708 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_HI_WIDTH 32 25709 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_MINNUM 0 25710 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_MAXNUM 30 25711 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_MAXNUM_MCDI2 126 25712 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LTSSM_STATE_OFST 8 25713 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LTSSM_STATE_LBN 0 25714 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LTSSM_STATE_WIDTH 6 25715 #define MC_CMD_LTSSM_TRACE_POLL_OUT_RDLH_LINK_UP_OFST 8 25716 #define MC_CMD_LTSSM_TRACE_POLL_OUT_RDLH_LINK_UP_LBN 6 25717 #define MC_CMD_LTSSM_TRACE_POLL_OUT_RDLH_LINK_UP_WIDTH 1 25718 #define MC_CMD_LTSSM_TRACE_POLL_OUT_WAKE_N_OFST 8 25719 #define MC_CMD_LTSSM_TRACE_POLL_OUT_WAKE_N_LBN 7 25720 #define MC_CMD_LTSSM_TRACE_POLL_OUT_WAKE_N_WIDTH 1 25721 #define MC_CMD_LTSSM_TRACE_POLL_OUT_TIMESTAMP_PS_OFST 8 25722 #define MC_CMD_LTSSM_TRACE_POLL_OUT_TIMESTAMP_PS_LBN 8 25723 #define MC_CMD_LTSSM_TRACE_POLL_OUT_TIMESTAMP_PS_WIDTH 24 25724 /* The time of the LTSSM transition. Times are reported as fractional 25725 * microseconds since MC boot (wrapping at 2^32us). The fractional part is 25726 * reported in picoseconds. 0 <= TIMESTAMP_PS < 1000000 timestamp in seconds = 25727 * ((TIMESTAMP_US + TIMESTAMP_PS / 1000000) / 1000000) 25728 */ 25729 #define MC_CMD_LTSSM_TRACE_POLL_OUT_TIMESTAMP_US_OFST 12 25730 #define MC_CMD_LTSSM_TRACE_POLL_OUT_TIMESTAMP_US_LEN 4 25731 25732 25733 /***********************************/ 25734 /* MC_CMD_TELEMETRY_ENABLE 25735 * This command enables telemetry processing of packets, allowing a remote host 25736 * to gather information and analytics passing on the card. Enabling telemetry 25737 * will have a performance cost. Not supported on all hardware and datapath 25738 * variants. As of writing, only supported on Medford2 running full-featured 25739 * firmware variant. 25740 */ 25741 #define MC_CMD_TELEMETRY_ENABLE 0x138 25742 #define MC_CMD_TELEMETRY_ENABLE_MSGSET 0x138 25743 #undef MC_CMD_0x138_PRIVILEGE_CTG 25744 25745 #define MC_CMD_0x138_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25746 25747 /* MC_CMD_TELEMETRY_ENABLE_IN msgrequest */ 25748 #define MC_CMD_TELEMETRY_ENABLE_IN_LEN 4 25749 #define MC_CMD_TELEMETRY_ENABLE_IN_STATE_OFST 0 25750 #define MC_CMD_TELEMETRY_ENABLE_IN_STATE_LEN 4 25751 /* enum: Disables telemetry functionality, returns the card to default 25752 * behaviour of the configured datapath variant. 25753 */ 25754 #define MC_CMD_TELEMETRY_ENABLE_IN_DISABLE 0x0 25755 /* enum: Enables telemetry functionality on the currently configured datapath 25756 * variant if supported. 25757 */ 25758 #define MC_CMD_TELEMETRY_ENABLE_IN_ENABLE 0x1 25759 25760 /* MC_CMD_TELEMETRY_ENABLE_OUT msgresponse */ 25761 #define MC_CMD_TELEMETRY_ENABLE_OUT_LEN 0 25762 25763 /* TELEMETRY_CONFIG structuredef */ 25764 #define TELEMETRY_CONFIG_LEN 36 25765 /* Bitfields to identify the list of config parameters included in the command. 25766 * A bit-value of 1 indicates that the relevant config parameter field is 25767 * valid; 0 indicates invalid and the config parameter field must be ignored by 25768 * firmware. Firmware may however apply some default values for certain 25769 * parameters. 25770 */ 25771 #define TELEMETRY_CONFIG_FLAGS_OFST 0 25772 #define TELEMETRY_CONFIG_FLAGS_LEN 4 25773 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_VALID_OFST 0 25774 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_VALID_LBN 0 25775 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_VALID_WIDTH 1 25776 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_VALID_OFST 0 25777 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_VALID_LBN 1 25778 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_VALID_WIDTH 1 25779 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_VALID_OFST 0 25780 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_VALID_LBN 2 25781 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_VALID_WIDTH 1 25782 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_VALID_OFST 0 25783 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_VALID_LBN 3 25784 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_VALID_WIDTH 1 25785 #define TELEMETRY_CONFIG_RESERVED1_OFST 0 25786 #define TELEMETRY_CONFIG_RESERVED1_LBN 4 25787 #define TELEMETRY_CONFIG_RESERVED1_WIDTH 28 25788 #define TELEMETRY_CONFIG_FLAGS_LBN 0 25789 #define TELEMETRY_CONFIG_FLAGS_WIDTH 32 25790 /* Collector IPv4/IPv6 address to which latency measurements are forwarded from 25791 * the adapter (as bytes in network order; set last 12 bytes to 0 for IPv4 25792 * address). 25793 */ 25794 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_OFST 4 25795 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_LEN 16 25796 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_LBN 32 25797 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_WIDTH 128 25798 /* Collector Port number to which latency measurements are forwarded from the 25799 * adapter (as bytes in network order). 25800 */ 25801 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_OFST 20 25802 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_LEN 2 25803 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_LBN 160 25804 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_WIDTH 16 25805 /* Unused - set to 0. */ 25806 #define TELEMETRY_CONFIG_RESERVED2_OFST 22 25807 #define TELEMETRY_CONFIG_RESERVED2_LEN 2 25808 #define TELEMETRY_CONFIG_RESERVED2_LBN 176 25809 #define TELEMETRY_CONFIG_RESERVED2_WIDTH 16 25810 /* MAC address of the collector (as bytes in network order). */ 25811 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_MAC_ADDR_OFST 24 25812 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_MAC_ADDR_LEN 6 25813 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_MAC_ADDR_LBN 192 25814 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_MAC_ADDR_WIDTH 48 25815 /* Maximum number of latency measurements to be made on a telemetry flow. */ 25816 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_OFST 30 25817 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_LEN 2 25818 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_LBN 240 25819 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_WIDTH 16 25820 /* Maximum duration for which a telemetry flow is monitored (in millisecs). */ 25821 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_OFST 32 25822 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_LEN 4 25823 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_LBN 256 25824 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_WIDTH 32 25825 25826 25827 /***********************************/ 25828 /* MC_CMD_TELEMETRY_CONFIG 25829 * This top-level command includes various sub-opcodes that are used to apply 25830 * (and read-back) telemetry related configuration parameters on the NIC. 25831 * Reference - SF-120569-SW Telemetry Firmware Design. 25832 */ 25833 #define MC_CMD_TELEMETRY_CONFIG 0x139 25834 #define MC_CMD_TELEMETRY_CONFIG_MSGSET 0x139 25835 #undef MC_CMD_0x139_PRIVILEGE_CTG 25836 25837 #define MC_CMD_0x139_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25838 25839 /* MC_CMD_TELEMETRY_CONFIG_IN msgrequest */ 25840 #define MC_CMD_TELEMETRY_CONFIG_IN_LEN 4 25841 /* Telemetry configuration sub-operation code */ 25842 #define MC_CMD_TELEMETRY_CONFIG_IN_OP_OFST 0 25843 #define MC_CMD_TELEMETRY_CONFIG_IN_OP_LEN 4 25844 /* enum: Configure parameters for telemetry measurements. */ 25845 #define MC_CMD_TELEMETRY_CONFIG_OP_SET 0x1 25846 /* enum: Read current values of parameters for telemetry measurements. */ 25847 #define MC_CMD_TELEMETRY_CONFIG_OP_GET 0x2 25848 25849 /* MC_CMD_TELEMETRY_CONFIG_IN_SET msgrequest: This command configures the 25850 * parameters necessary for tcp-latency measurements. The adapter adds a filter 25851 * for every new tcp flow seen in both tx and rx directions and tracks the 25852 * telemetry measurements related to the flow in a tracking table. Entries in 25853 * the tracking table live as long as N measurements are made on the flow or 25854 * the flow has been in the tracking table for the maximum configured duration. 25855 * Telemetry measurements in this command refer to tcp-latency measurements for 25856 * data-to-ack latency as well as data-to-data latency. All telemetry 25857 * measurements are bundled into a UDP packet and forwarded to a collector 25858 * whose IP address is configured using this command. 25859 */ 25860 #define MC_CMD_TELEMETRY_CONFIG_IN_SET_LEN 40 25861 /* Telemetry configuration sub-operation code. Must be set to 25862 * MC_CMD_TELEMETRY_CONFIG_OP_SET. 25863 */ 25864 #define MC_CMD_TELEMETRY_CONFIG_IN_SET_OP_OFST 0 25865 #define MC_CMD_TELEMETRY_CONFIG_IN_SET_OP_LEN 4 25866 /* struct of type TELEMETRY_CONFIG. */ 25867 #define MC_CMD_TELEMETRY_CONFIG_IN_SET_PARAMETERS_OFST 4 25868 #define MC_CMD_TELEMETRY_CONFIG_IN_SET_PARAMETERS_LEN 36 25869 25870 /* MC_CMD_TELEMETRY_CONFIG_OUT_SET msgresponse */ 25871 #define MC_CMD_TELEMETRY_CONFIG_OUT_SET_LEN 0 25872 25873 /* MC_CMD_TELEMETRY_CONFIG_IN_GET msgrequest: This command reads out the 25874 * current values of config parameters necessary for tcp-latency measurements. 25875 * See MC_CMD_TELEMETRY_SET_CONFIG for more information about the configuration 25876 * parameters. 25877 */ 25878 #define MC_CMD_TELEMETRY_CONFIG_IN_GET_LEN 4 25879 /* Telemetry configuration sub-operation code. Must be set to 25880 * MC_CMD_TELEMETRY_CONFIG_OP_GET. 25881 */ 25882 #define MC_CMD_TELEMETRY_CONFIG_IN_GET_OP_OFST 0 25883 #define MC_CMD_TELEMETRY_CONFIG_IN_GET_OP_LEN 4 25884 25885 /* MC_CMD_TELEMETRY_CONFIG_OUT_GET msgresponse */ 25886 #define MC_CMD_TELEMETRY_CONFIG_OUT_GET_LEN 36 25887 /* struct of type TELEMETRY_CONFIG. */ 25888 #define MC_CMD_TELEMETRY_CONFIG_OUT_GET_PARAMETERS_OFST 0 25889 #define MC_CMD_TELEMETRY_CONFIG_OUT_GET_PARAMETERS_LEN 36 25890 25891 25892 /***********************************/ 25893 /* MC_CMD_GET_RX_PREFIX_ID 25894 * This command is part of the mechanism for configuring the format of the RX 25895 * packet prefix. It takes as input a bitmask of the fields the host would like 25896 * to be in the prefix. If the hardware supports RX prefixes with that 25897 * combination of fields, then this command returns a list of prefix-ids, 25898 * opaque identifiers suitable for use in the RX_PREFIX_ID field of a 25899 * MC_CMD_INIT_RXQ_V5_IN message. If the combination of fields is not 25900 * supported, returns ENOTSUP. If the firmware can't create any new prefix-ids 25901 * due to resource constraints, returns ENOSPC. 25902 */ 25903 #define MC_CMD_GET_RX_PREFIX_ID 0x13b 25904 #define MC_CMD_GET_RX_PREFIX_ID_MSGSET 0x13b 25905 #undef MC_CMD_0x13b_PRIVILEGE_CTG 25906 25907 #define MC_CMD_0x13b_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25908 25909 /* MC_CMD_GET_RX_PREFIX_ID_IN msgrequest */ 25910 #define MC_CMD_GET_RX_PREFIX_ID_IN_LEN 8 25911 /* Field bitmask. */ 25912 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_OFST 0 25913 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LEN 8 25914 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LO_OFST 0 25915 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LO_LEN 4 25916 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LO_LBN 0 25917 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LO_WIDTH 32 25918 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_HI_OFST 4 25919 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_HI_LEN 4 25920 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_HI_LBN 32 25921 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_HI_WIDTH 32 25922 #define MC_CMD_GET_RX_PREFIX_ID_IN_LENGTH_OFST 0 25923 #define MC_CMD_GET_RX_PREFIX_ID_IN_LENGTH_LBN 0 25924 #define MC_CMD_GET_RX_PREFIX_ID_IN_LENGTH_WIDTH 1 25925 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_VALID_OFST 0 25926 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_VALID_LBN 1 25927 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_VALID_WIDTH 1 25928 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_FLAG_OFST 0 25929 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_FLAG_LBN 2 25930 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_FLAG_WIDTH 1 25931 #define MC_CMD_GET_RX_PREFIX_ID_IN_CLASS_OFST 0 25932 #define MC_CMD_GET_RX_PREFIX_ID_IN_CLASS_LBN 3 25933 #define MC_CMD_GET_RX_PREFIX_ID_IN_CLASS_WIDTH 1 25934 #define MC_CMD_GET_RX_PREFIX_ID_IN_PARTIAL_TSTAMP_OFST 0 25935 #define MC_CMD_GET_RX_PREFIX_ID_IN_PARTIAL_TSTAMP_LBN 4 25936 #define MC_CMD_GET_RX_PREFIX_ID_IN_PARTIAL_TSTAMP_WIDTH 1 25937 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_OFST 0 25938 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_LBN 5 25939 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_WIDTH 1 25940 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_MARK_OFST 0 25941 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_MARK_LBN 6 25942 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_MARK_WIDTH 1 25943 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_MPORT_OFST 0 25944 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_MPORT_LBN 7 25945 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_MPORT_WIDTH 1 25946 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_VPORT_OFST 0 25947 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_VPORT_LBN 7 25948 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_VPORT_WIDTH 1 25949 #define MC_CMD_GET_RX_PREFIX_ID_IN_CSUM_FRAME_OFST 0 25950 #define MC_CMD_GET_RX_PREFIX_ID_IN_CSUM_FRAME_LBN 8 25951 #define MC_CMD_GET_RX_PREFIX_ID_IN_CSUM_FRAME_WIDTH 1 25952 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIP_TCI_OFST 0 25953 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIP_TCI_LBN 9 25954 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIP_TCI_WIDTH 1 25955 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIPPED_OFST 0 25956 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIPPED_LBN 10 25957 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIPPED_WIDTH 1 25958 #define MC_CMD_GET_RX_PREFIX_ID_IN_VSWITCH_STATUS_OFST 0 25959 #define MC_CMD_GET_RX_PREFIX_ID_IN_VSWITCH_STATUS_LBN 11 25960 #define MC_CMD_GET_RX_PREFIX_ID_IN_VSWITCH_STATUS_WIDTH 1 25961 25962 /* MC_CMD_GET_RX_PREFIX_ID_OUT msgresponse */ 25963 #define MC_CMD_GET_RX_PREFIX_ID_OUT_LENMIN 8 25964 #define MC_CMD_GET_RX_PREFIX_ID_OUT_LENMAX 252 25965 #define MC_CMD_GET_RX_PREFIX_ID_OUT_LENMAX_MCDI2 1020 25966 #define MC_CMD_GET_RX_PREFIX_ID_OUT_LEN(num) (4+4*(num)) 25967 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_NUM(len) (((len)-4)/4) 25968 /* Number of prefix-ids returned */ 25969 #define MC_CMD_GET_RX_PREFIX_ID_OUT_NUM_RX_PREFIX_IDS_OFST 0 25970 #define MC_CMD_GET_RX_PREFIX_ID_OUT_NUM_RX_PREFIX_IDS_LEN 4 25971 /* Opaque prefix identifiers which can be passed into MC_CMD_INIT_RXQ_V5 or 25972 * MC_CMD_QUERY_PREFIX_ID 25973 */ 25974 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_OFST 4 25975 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_LEN 4 25976 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_MINNUM 1 25977 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_MAXNUM 62 25978 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_MAXNUM_MCDI2 254 25979 25980 /* RX_PREFIX_FIELD_INFO structuredef: Information about a single RX prefix 25981 * field 25982 */ 25983 #define RX_PREFIX_FIELD_INFO_LEN 4 25984 /* The offset of the field from the start of the prefix, in bits */ 25985 #define RX_PREFIX_FIELD_INFO_OFFSET_BITS_OFST 0 25986 #define RX_PREFIX_FIELD_INFO_OFFSET_BITS_LEN 2 25987 #define RX_PREFIX_FIELD_INFO_OFFSET_BITS_LBN 0 25988 #define RX_PREFIX_FIELD_INFO_OFFSET_BITS_WIDTH 16 25989 /* The width of the field, in bits */ 25990 #define RX_PREFIX_FIELD_INFO_WIDTH_BITS_OFST 2 25991 #define RX_PREFIX_FIELD_INFO_WIDTH_BITS_LEN 1 25992 #define RX_PREFIX_FIELD_INFO_WIDTH_BITS_LBN 16 25993 #define RX_PREFIX_FIELD_INFO_WIDTH_BITS_WIDTH 8 25994 /* The type of the field. These enum values are in the same order as the fields 25995 * in the MC_CMD_GET_RX_PREFIX_ID_IN bitmask 25996 */ 25997 #define RX_PREFIX_FIELD_INFO_TYPE_OFST 3 25998 #define RX_PREFIX_FIELD_INFO_TYPE_LEN 1 25999 #define RX_PREFIX_FIELD_INFO_LENGTH 0x0 /* enum */ 26000 #define RX_PREFIX_FIELD_INFO_RSS_HASH_VALID 0x1 /* enum */ 26001 #define RX_PREFIX_FIELD_INFO_USER_FLAG 0x2 /* enum */ 26002 #define RX_PREFIX_FIELD_INFO_CLASS 0x3 /* enum */ 26003 #define RX_PREFIX_FIELD_INFO_PARTIAL_TSTAMP 0x4 /* enum */ 26004 #define RX_PREFIX_FIELD_INFO_RSS_HASH 0x5 /* enum */ 26005 #define RX_PREFIX_FIELD_INFO_USER_MARK 0x6 /* enum */ 26006 #define RX_PREFIX_FIELD_INFO_INGRESS_MPORT 0x7 /* enum */ 26007 #define RX_PREFIX_FIELD_INFO_INGRESS_VPORT 0x7 /* enum */ 26008 #define RX_PREFIX_FIELD_INFO_CSUM_FRAME 0x8 /* enum */ 26009 #define RX_PREFIX_FIELD_INFO_VLAN_STRIP_TCI 0x9 /* enum */ 26010 #define RX_PREFIX_FIELD_INFO_VLAN_STRIPPED 0xa /* enum */ 26011 #define RX_PREFIX_FIELD_INFO_VSWITCH_STATUS 0xb /* enum */ 26012 #define RX_PREFIX_FIELD_INFO_TYPE_LBN 24 26013 #define RX_PREFIX_FIELD_INFO_TYPE_WIDTH 8 26014 26015 /* RX_PREFIX_FIXED_RESPONSE structuredef: Information about an RX prefix in 26016 * which every field has a fixed offset and width 26017 */ 26018 #define RX_PREFIX_FIXED_RESPONSE_LENMIN 4 26019 #define RX_PREFIX_FIXED_RESPONSE_LENMAX 252 26020 #define RX_PREFIX_FIXED_RESPONSE_LENMAX_MCDI2 1020 26021 #define RX_PREFIX_FIXED_RESPONSE_LEN(num) (4+4*(num)) 26022 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_NUM(len) (((len)-4)/4) 26023 /* Length of the RX prefix in bytes */ 26024 #define RX_PREFIX_FIXED_RESPONSE_PREFIX_LENGTH_BYTES_OFST 0 26025 #define RX_PREFIX_FIXED_RESPONSE_PREFIX_LENGTH_BYTES_LEN 1 26026 #define RX_PREFIX_FIXED_RESPONSE_PREFIX_LENGTH_BYTES_LBN 0 26027 #define RX_PREFIX_FIXED_RESPONSE_PREFIX_LENGTH_BYTES_WIDTH 8 26028 /* Number of fields present in the prefix */ 26029 #define RX_PREFIX_FIXED_RESPONSE_FIELD_COUNT_OFST 1 26030 #define RX_PREFIX_FIXED_RESPONSE_FIELD_COUNT_LEN 1 26031 #define RX_PREFIX_FIXED_RESPONSE_FIELD_COUNT_LBN 8 26032 #define RX_PREFIX_FIXED_RESPONSE_FIELD_COUNT_WIDTH 8 26033 #define RX_PREFIX_FIXED_RESPONSE_RESERVED_OFST 2 26034 #define RX_PREFIX_FIXED_RESPONSE_RESERVED_LEN 2 26035 #define RX_PREFIX_FIXED_RESPONSE_RESERVED_LBN 16 26036 #define RX_PREFIX_FIXED_RESPONSE_RESERVED_WIDTH 16 26037 /* Array of RX_PREFIX_FIELD_INFO structures, of length FIELD_COUNT */ 26038 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_OFST 4 26039 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_LEN 4 26040 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_MINNUM 0 26041 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_MAXNUM 62 26042 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_MAXNUM_MCDI2 254 26043 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_LBN 32 26044 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_WIDTH 32 26045 26046 26047 /***********************************/ 26048 /* MC_CMD_QUERY_RX_PREFIX_ID 26049 * This command takes an RX prefix id (obtained from MC_CMD_GET_RX_PREFIX_ID) 26050 * and returns a description of the RX prefix of packets delievered to an RXQ 26051 * created with that prefix id 26052 */ 26053 #define MC_CMD_QUERY_RX_PREFIX_ID 0x13c 26054 #define MC_CMD_QUERY_RX_PREFIX_ID_MSGSET 0x13c 26055 #undef MC_CMD_0x13c_PRIVILEGE_CTG 26056 26057 #define MC_CMD_0x13c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26058 26059 /* MC_CMD_QUERY_RX_PREFIX_ID_IN msgrequest */ 26060 #define MC_CMD_QUERY_RX_PREFIX_ID_IN_LEN 4 26061 /* Prefix id to query */ 26062 #define MC_CMD_QUERY_RX_PREFIX_ID_IN_RX_PREFIX_ID_OFST 0 26063 #define MC_CMD_QUERY_RX_PREFIX_ID_IN_RX_PREFIX_ID_LEN 4 26064 26065 /* MC_CMD_QUERY_RX_PREFIX_ID_OUT msgresponse */ 26066 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_LENMIN 4 26067 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_LENMAX 252 26068 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_LENMAX_MCDI2 1020 26069 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_LEN(num) (4+1*(num)) 26070 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_NUM(len) (((len)-4)/1) 26071 /* An enum describing the structure of this response. */ 26072 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_TYPE_OFST 0 26073 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_TYPE_LEN 1 26074 /* enum: The response is of format RX_PREFIX_FIXED_RESPONSE */ 26075 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_TYPE_FIXED 0x0 26076 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESERVED_OFST 1 26077 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESERVED_LEN 3 26078 /* The response. Its format is as defined by the RESPONSE_TYPE value */ 26079 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_OFST 4 26080 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_LEN 1 26081 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_MINNUM 0 26082 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_MAXNUM 248 26083 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_MAXNUM_MCDI2 1016 26084 26085 26086 /***********************************/ 26087 /* MC_CMD_BUNDLE 26088 * A command to perform various bundle-related operations on insecure cards. 26089 */ 26090 #define MC_CMD_BUNDLE 0x13d 26091 #define MC_CMD_BUNDLE_MSGSET 0x13d 26092 #undef MC_CMD_0x13d_PRIVILEGE_CTG 26093 26094 #define MC_CMD_0x13d_PRIVILEGE_CTG SRIOV_CTG_INSECURE 26095 26096 /* MC_CMD_BUNDLE_IN msgrequest */ 26097 #define MC_CMD_BUNDLE_IN_LEN 4 26098 /* Sub-command code */ 26099 #define MC_CMD_BUNDLE_IN_OP_OFST 0 26100 #define MC_CMD_BUNDLE_IN_OP_LEN 4 26101 /* enum: Get the current host access mode set on component partitions. */ 26102 #define MC_CMD_BUNDLE_IN_OP_COMPONENT_ACCESS_GET 0x0 26103 /* enum: Set the host access mode set on component partitions. */ 26104 #define MC_CMD_BUNDLE_IN_OP_COMPONENT_ACCESS_SET 0x1 26105 26106 /* MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_IN msgrequest: Retrieve the current 26107 * access mode on component partitions such as MC_FIRMWARE, SUC_FIRMWARE and 26108 * EXPANSION_UEFI. This command only works on engineering (insecure) cards. On 26109 * secure adapters, this command returns MC_CMD_ERR_EPERM. 26110 */ 26111 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_IN_LEN 4 26112 /* Sub-command code. Must be OP_COMPONENT_ACCESS_GET. */ 26113 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_IN_OP_OFST 0 26114 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_IN_OP_LEN 4 26115 26116 /* MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_OUT msgresponse: Returns the access 26117 * control mode. 26118 */ 26119 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_OUT_LEN 4 26120 /* Access mode of component partitions. */ 26121 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_OUT_ACCESS_MODE_OFST 0 26122 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_OUT_ACCESS_MODE_LEN 4 26123 /* enum: Component partitions are read-only from the host. */ 26124 #define MC_CMD_BUNDLE_COMPONENTS_READ_ONLY 0x0 26125 /* enum: Component partitions can read read-from written-to by the host. */ 26126 #define MC_CMD_BUNDLE_COMPONENTS_READ_WRITE 0x1 26127 26128 /* MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN msgrequest: The component 26129 * partitions such as MC_FIRMWARE, SUC_FIRMWARE, EXPANSION_UEFI are set as 26130 * read-only on firmware built with bundle support. This command marks these 26131 * partitions as read/writeable. The access status set by this command does not 26132 * persist across MC reboots. This command only works on engineering (insecure) 26133 * cards. On secure adapters, this command returns MC_CMD_ERR_EPERM. 26134 */ 26135 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN_LEN 8 26136 /* Sub-command code. Must be OP_COMPONENT_ACCESS_SET. */ 26137 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN_OP_OFST 0 26138 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN_OP_LEN 4 26139 /* Access mode of component partitions. */ 26140 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN_ACCESS_MODE_OFST 4 26141 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN_ACCESS_MODE_LEN 4 26142 /* Enum values, see field(s): */ 26143 /* MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_OUT/ACCESS_MODE */ 26144 26145 /* MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_OUT msgresponse */ 26146 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_OUT_LEN 0 26147 26148 26149 /***********************************/ 26150 /* MC_CMD_GET_VPD 26151 * Read all VPD starting from a given address 26152 */ 26153 #define MC_CMD_GET_VPD 0x165 26154 #define MC_CMD_GET_VPD_MSGSET 0x165 26155 #undef MC_CMD_0x165_PRIVILEGE_CTG 26156 26157 #define MC_CMD_0x165_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26158 26159 /* MC_CMD_GET_VPD_IN msgresponse */ 26160 #define MC_CMD_GET_VPD_IN_LEN 4 26161 /* VPD address to start from. In case VPD is longer than MCDI buffer 26162 * (unlikely), user can make multiple calls with different starting addresses. 26163 */ 26164 #define MC_CMD_GET_VPD_IN_ADDR_OFST 0 26165 #define MC_CMD_GET_VPD_IN_ADDR_LEN 4 26166 26167 /* MC_CMD_GET_VPD_OUT msgresponse */ 26168 #define MC_CMD_GET_VPD_OUT_LENMIN 0 26169 #define MC_CMD_GET_VPD_OUT_LENMAX 252 26170 #define MC_CMD_GET_VPD_OUT_LENMAX_MCDI2 1020 26171 #define MC_CMD_GET_VPD_OUT_LEN(num) (0+1*(num)) 26172 #define MC_CMD_GET_VPD_OUT_DATA_NUM(len) (((len)-0)/1) 26173 /* VPD data returned. */ 26174 #define MC_CMD_GET_VPD_OUT_DATA_OFST 0 26175 #define MC_CMD_GET_VPD_OUT_DATA_LEN 1 26176 #define MC_CMD_GET_VPD_OUT_DATA_MINNUM 0 26177 #define MC_CMD_GET_VPD_OUT_DATA_MAXNUM 252 26178 #define MC_CMD_GET_VPD_OUT_DATA_MAXNUM_MCDI2 1020 26179 26180 26181 /***********************************/ 26182 /* MC_CMD_GET_NCSI_INFO 26183 * Provide information about the NC-SI stack 26184 */ 26185 #define MC_CMD_GET_NCSI_INFO 0x167 26186 #define MC_CMD_GET_NCSI_INFO_MSGSET 0x167 26187 #undef MC_CMD_0x167_PRIVILEGE_CTG 26188 26189 #define MC_CMD_0x167_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26190 26191 /* MC_CMD_GET_NCSI_INFO_IN msgrequest */ 26192 #define MC_CMD_GET_NCSI_INFO_IN_LEN 8 26193 /* Operation to be performed */ 26194 #define MC_CMD_GET_NCSI_INFO_IN_OP_OFST 0 26195 #define MC_CMD_GET_NCSI_INFO_IN_OP_LEN 4 26196 /* enum: Information on the link settings. */ 26197 #define MC_CMD_GET_NCSI_INFO_IN_OP_LINK 0x0 26198 /* enum: Statistics associated with the channel */ 26199 #define MC_CMD_GET_NCSI_INFO_IN_OP_STATISTICS 0x1 26200 /* The NC-SI channel on which the operation is to be performed */ 26201 #define MC_CMD_GET_NCSI_INFO_IN_CHANNEL_OFST 4 26202 #define MC_CMD_GET_NCSI_INFO_IN_CHANNEL_LEN 4 26203 26204 /* MC_CMD_GET_NCSI_INFO_LINK_OUT msgresponse */ 26205 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_LEN 12 26206 /* Settings as received from BMC. */ 26207 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_SETTINGS_OFST 0 26208 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_SETTINGS_LEN 4 26209 /* Advertised capabilities applied to channel. */ 26210 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ADV_CAP_OFST 4 26211 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ADV_CAP_LEN 4 26212 /* General status */ 26213 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_STATUS_OFST 8 26214 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_STATUS_LEN 4 26215 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_STATE_OFST 8 26216 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_STATE_LBN 0 26217 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_STATE_WIDTH 2 26218 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ENABLE_OFST 8 26219 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ENABLE_LBN 2 26220 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ENABLE_WIDTH 1 26221 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_NETWORK_TX_OFST 8 26222 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_NETWORK_TX_LBN 3 26223 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_NETWORK_TX_WIDTH 1 26224 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ATTACHED_OFST 8 26225 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ATTACHED_LBN 4 26226 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ATTACHED_WIDTH 1 26227 26228 /* MC_CMD_GET_NCSI_INFO_STATISTICS_OUT msgresponse */ 26229 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_LEN 28 26230 /* The number of NC-SI commands received. */ 26231 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMDS_RX_OFST 0 26232 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMDS_RX_LEN 4 26233 /* The number of NC-SI commands dropped. */ 26234 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_PKTS_DROPPED_OFST 4 26235 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_PKTS_DROPPED_LEN 4 26236 /* The number of invalid NC-SI commands received. */ 26237 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMD_TYPE_ERRS_OFST 8 26238 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMD_TYPE_ERRS_LEN 4 26239 /* The number of checksum errors seen. */ 26240 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMD_CSUM_ERRS_OFST 12 26241 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMD_CSUM_ERRS_LEN 4 26242 /* The number of NC-SI requests received. */ 26243 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_RX_PKTS_OFST 16 26244 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_RX_PKTS_LEN 4 26245 /* The number of NC-SI responses sent (includes AENs) */ 26246 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_TX_PKTS_OFST 20 26247 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_TX_PKTS_LEN 4 26248 /* The number of NC-SI AENs sent */ 26249 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_AENS_SENT_OFST 24 26250 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_AENS_SENT_LEN 4 26251 26252 26253 /***********************************/ 26254 /* MC_CMD_FIRMWARE_SET_LOCKDOWN 26255 * System lockdown, when enabled firmware updates are blocked. 26256 */ 26257 #define MC_CMD_FIRMWARE_SET_LOCKDOWN 0x16f 26258 #define MC_CMD_FIRMWARE_SET_LOCKDOWN_MSGSET 0x16f 26259 #undef MC_CMD_0x16f_PRIVILEGE_CTG 26260 26261 #define MC_CMD_0x16f_PRIVILEGE_CTG SRIOV_CTG_ADMIN 26262 26263 /* MC_CMD_FIRMWARE_SET_LOCKDOWN_IN msgrequest: This MCDI command is to enable 26264 * only because lockdown can only be disabled by a PMCI command or a cold reset 26265 * of the system. 26266 */ 26267 #define MC_CMD_FIRMWARE_SET_LOCKDOWN_IN_LEN 0 26268 26269 /* MC_CMD_FIRMWARE_SET_LOCKDOWN_OUT msgresponse */ 26270 #define MC_CMD_FIRMWARE_SET_LOCKDOWN_OUT_LEN 0 26271 26272 26273 /***********************************/ 26274 /* MC_CMD_GET_TEST_FEATURES 26275 * This command returns device details knowledge of which may be required by 26276 * test infrastructure. Although safe, it is not intended to be used by 26277 * production drivers, and the structure returned intentionally has no public 26278 * documentation. 26279 */ 26280 #define MC_CMD_GET_TEST_FEATURES 0x1ac 26281 #define MC_CMD_GET_TEST_FEATURES_MSGSET 0x1ac 26282 #undef MC_CMD_0x1ac_PRIVILEGE_CTG 26283 26284 #define MC_CMD_0x1ac_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26285 26286 /* MC_CMD_GET_TEST_FEATURES_IN msgrequest: Request test features. */ 26287 #define MC_CMD_GET_TEST_FEATURES_IN_LEN 0 26288 26289 /* MC_CMD_GET_TEST_FEATURE_OUT msgresponse */ 26290 #define MC_CMD_GET_TEST_FEATURE_OUT_LENMIN 4 26291 #define MC_CMD_GET_TEST_FEATURE_OUT_LENMAX 252 26292 #define MC_CMD_GET_TEST_FEATURE_OUT_LENMAX_MCDI2 1020 26293 #define MC_CMD_GET_TEST_FEATURE_OUT_LEN(num) (0+4*(num)) 26294 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_NUM(len) (((len)-0)/4) 26295 /* Test-specific NIC information. Production drivers must treat this as opaque. 26296 * The layout is defined in the private TEST_FEATURES_LAYOUT structure. 26297 */ 26298 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_OFST 0 26299 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_LEN 4 26300 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_MINNUM 1 26301 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_MAXNUM 63 26302 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_MAXNUM_MCDI2 255 26303 26304 26305 /***********************************/ 26306 /* MC_CMD_FPGA 26307 * A command to perform various fpga-related operations on platforms that 26308 * include FPGAs. Note that some platforms may only support a subset of these 26309 * operations. 26310 */ 26311 #define MC_CMD_FPGA 0x1bf 26312 #define MC_CMD_FPGA_MSGSET 0x1bf 26313 #undef MC_CMD_0x1bf_PRIVILEGE_CTG 26314 26315 #define MC_CMD_0x1bf_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26316 26317 /* MC_CMD_FPGA_IN msgrequest */ 26318 #define MC_CMD_FPGA_IN_LEN 4 26319 /* Sub-command code */ 26320 #define MC_CMD_FPGA_IN_OP_OFST 0 26321 #define MC_CMD_FPGA_IN_OP_LEN 4 26322 /* enum: Get the FPGA version string. */ 26323 #define MC_CMD_FPGA_IN_OP_GET_VERSION 0x0 26324 /* enum: Read bitmask of features supported in the FPGA image. */ 26325 #define MC_CMD_FPGA_IN_OP_GET_CAPABILITIES 0x1 26326 /* enum: Perform a FPGA reset. */ 26327 #define MC_CMD_FPGA_IN_OP_RESET 0x2 26328 /* enum: Set active flash device. */ 26329 #define MC_CMD_FPGA_IN_OP_SELECT_FLASH 0x3 26330 /* enum: Get active flash device. */ 26331 #define MC_CMD_FPGA_IN_OP_GET_ACTIVE_FLASH 0x4 26332 /* enum: Configure internal link i.e. the FPGA port facing the ASIC. */ 26333 #define MC_CMD_FPGA_IN_OP_SET_INTERNAL_LINK 0x5 26334 /* enum: Read internal link configuration. */ 26335 #define MC_CMD_FPGA_IN_OP_GET_INTERNAL_LINK 0x6 26336 /* enum: Get MAC statistics of FPGA external port. */ 26337 #define MC_CMD_FPGA_IN_OP_GET_MAC_STATS 0x7 26338 /* enum: Set configuration on internal FPGA MAC. */ 26339 #define MC_CMD_FPGA_IN_OP_SET_INTERNAL_MAC 0x8 26340 26341 /* MC_CMD_FPGA_OP_GET_VERSION_IN msgrequest: Get the FPGA version string. A 26342 * free-format string is returned in response to this command. Any checks on 26343 * supported FPGA operations are based on the response to 26344 * MC_CMD_FPGA_OP_GET_CAPABILITIES. 26345 */ 26346 #define MC_CMD_FPGA_OP_GET_VERSION_IN_LEN 4 26347 /* Sub-command code. Must be OP_GET_VERSION */ 26348 #define MC_CMD_FPGA_OP_GET_VERSION_IN_OP_OFST 0 26349 #define MC_CMD_FPGA_OP_GET_VERSION_IN_OP_LEN 4 26350 26351 /* MC_CMD_FPGA_OP_GET_VERSION_OUT msgresponse: Returns the version string. */ 26352 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_LENMIN 0 26353 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_LENMAX 252 26354 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_LENMAX_MCDI2 1020 26355 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_LEN(num) (0+1*(num)) 26356 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_VERSION_NUM(len) (((len)-0)/1) 26357 /* Null-terminated string containing version information. */ 26358 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_VERSION_OFST 0 26359 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_VERSION_LEN 1 26360 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_VERSION_MINNUM 0 26361 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_VERSION_MAXNUM 252 26362 #define MC_CMD_FPGA_OP_GET_VERSION_OUT_VERSION_MAXNUM_MCDI2 1020 26363 26364 /* MC_CMD_FPGA_OP_GET_CAPABILITIES_IN msgrequest: Read bitmask of features 26365 * supported in the FPGA image. 26366 */ 26367 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_IN_LEN 4 26368 /* Sub-command code. Must be OP_GET_CAPABILITIES */ 26369 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_IN_OP_OFST 0 26370 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_IN_OP_LEN 4 26371 26372 /* MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT msgresponse: Returns the version string. 26373 */ 26374 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_LEN 4 26375 /* Bit-mask of supported features. */ 26376 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_CAPABILITIES_OFST 0 26377 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_CAPABILITIES_LEN 4 26378 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_MAC_OFST 0 26379 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_MAC_LBN 0 26380 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_MAC_WIDTH 1 26381 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_MAE_OFST 0 26382 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_MAE_LBN 1 26383 #define MC_CMD_FPGA_OP_GET_CAPABILITIES_OUT_MAE_WIDTH 1 26384 26385 /* MC_CMD_FPGA_OP_RESET_IN msgrequest: Perform a FPGA reset operation where 26386 * supported. 26387 */ 26388 #define MC_CMD_FPGA_OP_RESET_IN_LEN 4 26389 /* Sub-command code. Must be OP_RESET */ 26390 #define MC_CMD_FPGA_OP_RESET_IN_OP_OFST 0 26391 #define MC_CMD_FPGA_OP_RESET_IN_OP_LEN 4 26392 26393 /* MC_CMD_FPGA_OP_RESET_OUT msgresponse */ 26394 #define MC_CMD_FPGA_OP_RESET_OUT_LEN 0 26395 26396 /* MC_CMD_FPGA_OP_SELECT_FLASH_IN msgrequest: Set active FPGA flash device. 26397 * Returns EINVAL if selected flash index does not exist on the platform under 26398 * test. 26399 */ 26400 #define MC_CMD_FPGA_OP_SELECT_FLASH_IN_LEN 8 26401 /* Sub-command code. Must be OP_SELECT_FLASH */ 26402 #define MC_CMD_FPGA_OP_SELECT_FLASH_IN_OP_OFST 0 26403 #define MC_CMD_FPGA_OP_SELECT_FLASH_IN_OP_LEN 4 26404 /* Flash device identifier. */ 26405 #define MC_CMD_FPGA_OP_SELECT_FLASH_IN_FLASH_ID_OFST 4 26406 #define MC_CMD_FPGA_OP_SELECT_FLASH_IN_FLASH_ID_LEN 4 26407 /* Enum values, see field(s): */ 26408 /* MC_CMD_FPGA_FLASH_INDEX */ 26409 26410 /* MC_CMD_FPGA_OP_SELECT_FLASH_OUT msgresponse */ 26411 #define MC_CMD_FPGA_OP_SELECT_FLASH_OUT_LEN 0 26412 26413 /* MC_CMD_FPGA_OP_GET_ACTIVE_FLASH_IN msgrequest: Get active FPGA flash device. 26414 */ 26415 #define MC_CMD_FPGA_OP_GET_ACTIVE_FLASH_IN_LEN 4 26416 /* Sub-command code. Must be OP_GET_ACTIVE_FLASH */ 26417 #define MC_CMD_FPGA_OP_GET_ACTIVE_FLASH_IN_OP_OFST 0 26418 #define MC_CMD_FPGA_OP_GET_ACTIVE_FLASH_IN_OP_LEN 4 26419 26420 /* MC_CMD_FPGA_OP_GET_ACTIVE_FLASH_OUT msgresponse: Returns flash identifier 26421 * for current active flash. 26422 */ 26423 #define MC_CMD_FPGA_OP_GET_ACTIVE_FLASH_OUT_LEN 4 26424 /* Flash device identifier. */ 26425 #define MC_CMD_FPGA_OP_GET_ACTIVE_FLASH_OUT_FLASH_ID_OFST 0 26426 #define MC_CMD_FPGA_OP_GET_ACTIVE_FLASH_OUT_FLASH_ID_LEN 4 26427 /* Enum values, see field(s): */ 26428 /* MC_CMD_FPGA_FLASH_INDEX */ 26429 26430 /* MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN msgrequest: Configure FPGA internal 26431 * port, facing the ASIC 26432 */ 26433 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_LEN 12 26434 /* Sub-command code. Must be OP_SET_INTERNAL_LINK */ 26435 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_OP_OFST 0 26436 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_OP_LEN 4 26437 /* Flags */ 26438 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_FLAGS_OFST 4 26439 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_FLAGS_LEN 4 26440 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_LINK_STATE_OFST 4 26441 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_LINK_STATE_LBN 0 26442 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_LINK_STATE_WIDTH 2 26443 /* enum: Unmodified, same as last state set by firmware */ 26444 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_AUTO 0x0 26445 /* enum: Configure link-up */ 26446 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_UP 0x1 26447 /* enum: Configure link-down */ 26448 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_DOWN 0x2 26449 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_FLUSH_OFST 4 26450 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_FLUSH_LBN 2 26451 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_FLUSH_WIDTH 1 26452 /* Link speed to be applied on FPGA internal port MAC. */ 26453 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_SPEED_OFST 8 26454 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN_SPEED_LEN 4 26455 26456 /* MC_CMD_FPGA_OP_SET_INTERNAL_LINK_OUT msgresponse */ 26457 #define MC_CMD_FPGA_OP_SET_INTERNAL_LINK_OUT_LEN 0 26458 26459 /* MC_CMD_FPGA_OP_GET_INTERNAL_LINK_IN msgrequest: Read FPGA internal port 26460 * configuration and status 26461 */ 26462 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_IN_LEN 4 26463 /* Sub-command code. Must be OP_GET_INTERNAL_LINK */ 26464 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_IN_OP_OFST 0 26465 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_IN_OP_LEN 4 26466 26467 /* MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT msgresponse: Response format for read 26468 * FPGA internal port configuration and status 26469 */ 26470 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT_LEN 8 26471 /* Flags */ 26472 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT_FLAGS_OFST 0 26473 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT_FLAGS_LEN 4 26474 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT_LINK_STATE_OFST 0 26475 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT_LINK_STATE_LBN 0 26476 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT_LINK_STATE_WIDTH 2 26477 /* Enum values, see field(s): */ 26478 /* MC_CMD_FPGA_OP_SET_INTERNAL_LINK_IN/FLAGS */ 26479 /* Link speed set on FPGA internal port MAC. */ 26480 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT_SPEED_OFST 4 26481 #define MC_CMD_FPGA_OP_GET_INTERNAL_LINK_OUT_SPEED_LEN 4 26482 26483 /* MC_CMD_FPGA_OP_GET_MAC_STATS_IN msgrequest: Get FPGA external port MAC 26484 * statistics. 26485 */ 26486 #define MC_CMD_FPGA_OP_GET_MAC_STATS_IN_LEN 4 26487 /* Sub-command code. Must be OP_GET_MAC_STATS. */ 26488 #define MC_CMD_FPGA_OP_GET_MAC_STATS_IN_OP_OFST 0 26489 #define MC_CMD_FPGA_OP_GET_MAC_STATS_IN_OP_LEN 4 26490 26491 /* MC_CMD_FPGA_OP_GET_MAC_STATS_OUT msgresponse */ 26492 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_LENMIN 4 26493 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_LENMAX 252 26494 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_LENMAX_MCDI2 1020 26495 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_LEN(num) (4+8*(num)) 26496 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_NUM(len) (((len)-4)/8) 26497 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_NUM_STATS_OFST 0 26498 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_NUM_STATS_LEN 4 26499 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_OFST 4 26500 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_LEN 8 26501 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_LO_OFST 4 26502 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_LO_LEN 4 26503 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_LO_LBN 32 26504 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_LO_WIDTH 32 26505 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_HI_OFST 8 26506 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_HI_LEN 4 26507 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_HI_LBN 64 26508 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_HI_WIDTH 32 26509 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_MINNUM 0 26510 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_MAXNUM 31 26511 #define MC_CMD_FPGA_OP_GET_MAC_STATS_OUT_STATISTICS_MAXNUM_MCDI2 127 26512 #define MC_CMD_FPGA_MAC_TX_TOTAL_PACKETS 0x0 /* enum */ 26513 #define MC_CMD_FPGA_MAC_TX_TOTAL_BYTES 0x1 /* enum */ 26514 #define MC_CMD_FPGA_MAC_TX_TOTAL_GOOD_PACKETS 0x2 /* enum */ 26515 #define MC_CMD_FPGA_MAC_TX_TOTAL_GOOD_BYTES 0x3 /* enum */ 26516 #define MC_CMD_FPGA_MAC_TX_BAD_FCS 0x4 /* enum */ 26517 #define MC_CMD_FPGA_MAC_TX_PAUSE 0x5 /* enum */ 26518 #define MC_CMD_FPGA_MAC_TX_USER_PAUSE 0x6 /* enum */ 26519 #define MC_CMD_FPGA_MAC_RX_TOTAL_PACKETS 0x7 /* enum */ 26520 #define MC_CMD_FPGA_MAC_RX_TOTAL_BYTES 0x8 /* enum */ 26521 #define MC_CMD_FPGA_MAC_RX_TOTAL_GOOD_PACKETS 0x9 /* enum */ 26522 #define MC_CMD_FPGA_MAC_RX_TOTAL_GOOD_BYTES 0xa /* enum */ 26523 #define MC_CMD_FPGA_MAC_RX_BAD_FCS 0xb /* enum */ 26524 #define MC_CMD_FPGA_MAC_RX_PAUSE 0xc /* enum */ 26525 #define MC_CMD_FPGA_MAC_RX_USER_PAUSE 0xd /* enum */ 26526 #define MC_CMD_FPGA_MAC_RX_UNDERSIZE 0xe /* enum */ 26527 #define MC_CMD_FPGA_MAC_RX_OVERSIZE 0xf /* enum */ 26528 #define MC_CMD_FPGA_MAC_RX_FRAMING_ERR 0x10 /* enum */ 26529 #define MC_CMD_FPGA_MAC_FEC_UNCORRECTED_ERRORS 0x11 /* enum */ 26530 #define MC_CMD_FPGA_MAC_FEC_CORRECTED_ERRORS 0x12 /* enum */ 26531 26532 /* MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN msgrequest: Configures the internal port 26533 * MAC on the FPGA. 26534 */ 26535 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_LEN 20 26536 /* Sub-command code. Must be OP_SET_INTERNAL_MAC. */ 26537 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_OP_OFST 0 26538 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_OP_LEN 4 26539 /* Select which parameters to configure. */ 26540 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CONTROL_OFST 4 26541 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CONTROL_LEN 4 26542 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_MTU_OFST 4 26543 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_MTU_LBN 0 26544 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_MTU_WIDTH 1 26545 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_DRAIN_OFST 4 26546 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_DRAIN_LBN 1 26547 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_DRAIN_WIDTH 1 26548 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_FCNTL_OFST 4 26549 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_FCNTL_LBN 2 26550 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_CFG_FCNTL_WIDTH 1 26551 /* The MTU to be programmed into the MAC. */ 26552 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_MTU_OFST 8 26553 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_MTU_LEN 4 26554 /* Drain Tx FIFO */ 26555 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_DRAIN_OFST 12 26556 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_DRAIN_LEN 4 26557 /* flow control configuration. See MC_CMD_SET_MAC/MC_CMD_SET_MAC_IN/FCNTL. */ 26558 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_FCNTL_OFST 16 26559 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_IN_FCNTL_LEN 4 26560 26561 /* MC_CMD_FPGA_OP_SET_INTERNAL_MAC_OUT msgresponse */ 26562 #define MC_CMD_FPGA_OP_SET_INTERNAL_MAC_OUT_LEN 0 26563 26564 26565 /***********************************/ 26566 /* MC_CMD_EXTERNAL_MAE_GET_LINK_MODE 26567 * This command is expected to be used on a U25 board with an MAE in the FPGA. 26568 * It does not modify the operational state of the NIC. The modes are described 26569 * in XN-200039-TC - U25 OVS packet formats. 26570 */ 26571 #define MC_CMD_EXTERNAL_MAE_GET_LINK_MODE 0x1c0 26572 #define MC_CMD_EXTERNAL_MAE_GET_LINK_MODE_MSGSET 0x1c0 26573 #undef MC_CMD_0x1c0_PRIVILEGE_CTG 26574 26575 #define MC_CMD_0x1c0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26576 26577 /* MC_CMD_EXTERNAL_MAE_GET_LINK_MODE_IN msgrequest */ 26578 #define MC_CMD_EXTERNAL_MAE_GET_LINK_MODE_IN_LEN 0 26579 26580 /* MC_CMD_EXTERNAL_MAE_GET_LINK_MODE_OUT msgresponse */ 26581 #define MC_CMD_EXTERNAL_MAE_GET_LINK_MODE_OUT_LEN 4 26582 /* The current link mode */ 26583 #define MC_CMD_EXTERNAL_MAE_GET_LINK_MODE_OUT_MODE_OFST 0 26584 #define MC_CMD_EXTERNAL_MAE_GET_LINK_MODE_OUT_MODE_LEN 4 26585 /* Enum values, see field(s): */ 26586 /* MC_CMD_EXTERNAL_MAE_LINK_MODE */ 26587 26588 26589 /***********************************/ 26590 /* MC_CMD_EXTERNAL_MAE_SET_LINK_MODE 26591 * This command is expected to be used on a U25 board with an MAE in the FPGA. 26592 * The modes are described in XN-200039-TC - U25 OVS packet formats. This 26593 * command will set the link between the FPGA and the X2 to the specified new 26594 * mode. It will first enter bootstrap mode, make sure there are no packets in 26595 * flight and then enter the requested mode. In order to make sure there are no 26596 * packets in flight, it will flush the X2 TX path, the FPGA RX path from the 26597 * X2, the FPGA TX path to the X2 and the X2 RX path. The driver is responsible 26598 * for making sure there are no TX or RX descriptors posted on any TXQ or RXQ 26599 * associated with the affected port before invoking this command. This command 26600 * is run implicitly with MODE set to LEGACY when MC_CMD_DRV_ATTACH is 26601 * executed. 26602 */ 26603 #define MC_CMD_EXTERNAL_MAE_SET_LINK_MODE 0x1c1 26604 #define MC_CMD_EXTERNAL_MAE_SET_LINK_MODE_MSGSET 0x1c1 26605 #undef MC_CMD_0x1c1_PRIVILEGE_CTG 26606 26607 #define MC_CMD_0x1c1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26608 26609 /* MC_CMD_EXTERNAL_MAE_SET_LINK_MODE_IN msgrequest */ 26610 #define MC_CMD_EXTERNAL_MAE_SET_LINK_MODE_IN_LEN 4 26611 /* The new link mode. */ 26612 #define MC_CMD_EXTERNAL_MAE_SET_LINK_MODE_IN_MODE_OFST 0 26613 #define MC_CMD_EXTERNAL_MAE_SET_LINK_MODE_IN_MODE_LEN 4 26614 /* Enum values, see field(s): */ 26615 /* MC_CMD_EXTERNAL_MAE_LINK_MODE */ 26616 26617 /* MC_CMD_EXTERNAL_MAE_SET_LINK_MODE_OUT msgresponse */ 26618 #define MC_CMD_EXTERNAL_MAE_SET_LINK_MODE_OUT_LEN 0 26619 26620 /* CLIENT_HANDLE structuredef: A client is an abstract entity that can make 26621 * requests of the device and that can own resources managed by the device. 26622 * Examples of clients include PCIe functions and dynamic clients. A client 26623 * handle is a 32b opaque value used to refer to a client. Further details can 26624 * be found within XN-200418-TC. 26625 */ 26626 #define CLIENT_HANDLE_LEN 4 26627 #define CLIENT_HANDLE_OPAQUE_OFST 0 26628 #define CLIENT_HANDLE_OPAQUE_LEN 4 26629 /* enum: A client handle guaranteed never to refer to a real client. */ 26630 #define CLIENT_HANDLE_NULL 0xffffffff 26631 /* enum: Used to refer to the calling client. */ 26632 #define CLIENT_HANDLE_SELF 0xfffffffe 26633 #define CLIENT_HANDLE_OPAQUE_LBN 0 26634 #define CLIENT_HANDLE_OPAQUE_WIDTH 32 26635 26636 /* CLOCK_INFO structuredef: Information about a single hardware clock */ 26637 #define CLOCK_INFO_LEN 28 26638 /* Enumeration that uniquely identifies the clock */ 26639 #define CLOCK_INFO_CLOCK_ID_OFST 0 26640 #define CLOCK_INFO_CLOCK_ID_LEN 2 26641 /* enum: The Riverhead CMC (card MC) */ 26642 #define CLOCK_INFO_CLOCK_CMC 0x0 26643 /* enum: The Riverhead NMC (network MC) */ 26644 #define CLOCK_INFO_CLOCK_NMC 0x1 26645 /* enum: The Riverhead SDNET slice main logic */ 26646 #define CLOCK_INFO_CLOCK_SDNET 0x2 26647 /* enum: The Riverhead SDNET LUT */ 26648 #define CLOCK_INFO_CLOCK_SDNET_LUT 0x3 26649 /* enum: The Riverhead SDNET control logic */ 26650 #define CLOCK_INFO_CLOCK_SDNET_CTRL 0x4 26651 /* enum: The Riverhead Streaming SubSystem */ 26652 #define CLOCK_INFO_CLOCK_SSS 0x5 26653 /* enum: The Riverhead network MAC and associated CSR registers */ 26654 #define CLOCK_INFO_CLOCK_MAC 0x6 26655 #define CLOCK_INFO_CLOCK_ID_LBN 0 26656 #define CLOCK_INFO_CLOCK_ID_WIDTH 16 26657 /* Assorted flags */ 26658 #define CLOCK_INFO_FLAGS_OFST 2 26659 #define CLOCK_INFO_FLAGS_LEN 2 26660 #define CLOCK_INFO_SETTABLE_OFST 2 26661 #define CLOCK_INFO_SETTABLE_LBN 0 26662 #define CLOCK_INFO_SETTABLE_WIDTH 1 26663 #define CLOCK_INFO_FLAGS_LBN 16 26664 #define CLOCK_INFO_FLAGS_WIDTH 16 26665 /* The frequency in HZ */ 26666 #define CLOCK_INFO_FREQUENCY_OFST 4 26667 #define CLOCK_INFO_FREQUENCY_LEN 8 26668 #define CLOCK_INFO_FREQUENCY_LO_OFST 4 26669 #define CLOCK_INFO_FREQUENCY_LO_LEN 4 26670 #define CLOCK_INFO_FREQUENCY_LO_LBN 32 26671 #define CLOCK_INFO_FREQUENCY_LO_WIDTH 32 26672 #define CLOCK_INFO_FREQUENCY_HI_OFST 8 26673 #define CLOCK_INFO_FREQUENCY_HI_LEN 4 26674 #define CLOCK_INFO_FREQUENCY_HI_LBN 64 26675 #define CLOCK_INFO_FREQUENCY_HI_WIDTH 32 26676 #define CLOCK_INFO_FREQUENCY_LBN 32 26677 #define CLOCK_INFO_FREQUENCY_WIDTH 64 26678 /* Human-readable ASCII name for clock, with NUL termination */ 26679 #define CLOCK_INFO_NAME_OFST 12 26680 #define CLOCK_INFO_NAME_LEN 1 26681 #define CLOCK_INFO_NAME_NUM 16 26682 #define CLOCK_INFO_NAME_LBN 96 26683 #define CLOCK_INFO_NAME_WIDTH 8 26684 26685 /* SCHED_CREDIT_CHECK_RESULT structuredef */ 26686 #define SCHED_CREDIT_CHECK_RESULT_LEN 16 26687 /* The instance of the scheduler. Refer to XN-200389-AW for the location of 26688 * these schedulers in the hardware. 26689 */ 26690 #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_OFST 0 26691 #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_LEN 1 26692 #define SCHED_CREDIT_CHECK_RESULT_HUB_HOST_A 0x0 /* enum */ 26693 #define SCHED_CREDIT_CHECK_RESULT_HUB_NET_A 0x1 /* enum */ 26694 #define SCHED_CREDIT_CHECK_RESULT_HUB_B 0x2 /* enum */ 26695 #define SCHED_CREDIT_CHECK_RESULT_HUB_HOST_C 0x3 /* enum */ 26696 #define SCHED_CREDIT_CHECK_RESULT_HUB_NET_TX 0x4 /* enum */ 26697 #define SCHED_CREDIT_CHECK_RESULT_HUB_HOST_D 0x5 /* enum */ 26698 #define SCHED_CREDIT_CHECK_RESULT_HUB_REPLAY 0x6 /* enum */ 26699 #define SCHED_CREDIT_CHECK_RESULT_DMAC_H2C 0x7 /* enum */ 26700 #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_LBN 0 26701 #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_WIDTH 8 26702 /* The type of node that this result refers to. */ 26703 #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_OFST 1 26704 #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_LEN 1 26705 /* enum: Destination node */ 26706 #define SCHED_CREDIT_CHECK_RESULT_DEST 0x0 26707 /* enum: Source node */ 26708 #define SCHED_CREDIT_CHECK_RESULT_SOURCE 0x1 26709 #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_LBN 8 26710 #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_WIDTH 8 26711 /* Level of node in scheduler hierarchy (level 0 is the bottom of the 26712 * hierarchy, increasing towards the root node). 26713 */ 26714 #define SCHED_CREDIT_CHECK_RESULT_NODE_LEVEL_OFST 2 26715 #define SCHED_CREDIT_CHECK_RESULT_NODE_LEVEL_LEN 2 26716 #define SCHED_CREDIT_CHECK_RESULT_NODE_LEVEL_LBN 16 26717 #define SCHED_CREDIT_CHECK_RESULT_NODE_LEVEL_WIDTH 16 26718 /* Node index */ 26719 #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_OFST 4 26720 #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_LEN 4 26721 #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_LBN 32 26722 #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_WIDTH 32 26723 /* The number of credits the node is expected to have. */ 26724 #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_OFST 8 26725 #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_LEN 4 26726 #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_LBN 64 26727 #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_WIDTH 32 26728 /* The number of credits the node actually had. */ 26729 #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_OFST 12 26730 #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_LEN 4 26731 #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_LBN 96 26732 #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_WIDTH 32 26733 26734 26735 /***********************************/ 26736 /* MC_CMD_GET_CLOCKS_INFO 26737 * Get information about the device clocks 26738 */ 26739 #define MC_CMD_GET_CLOCKS_INFO 0x166 26740 #define MC_CMD_GET_CLOCKS_INFO_MSGSET 0x166 26741 #undef MC_CMD_0x166_PRIVILEGE_CTG 26742 26743 #define MC_CMD_0x166_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26744 26745 /* MC_CMD_GET_CLOCKS_INFO_IN msgrequest */ 26746 #define MC_CMD_GET_CLOCKS_INFO_IN_LEN 0 26747 26748 /* MC_CMD_GET_CLOCKS_INFO_OUT msgresponse */ 26749 #define MC_CMD_GET_CLOCKS_INFO_OUT_LENMIN 0 26750 #define MC_CMD_GET_CLOCKS_INFO_OUT_LENMAX 252 26751 #define MC_CMD_GET_CLOCKS_INFO_OUT_LENMAX_MCDI2 1008 26752 #define MC_CMD_GET_CLOCKS_INFO_OUT_LEN(num) (0+28*(num)) 26753 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_NUM(len) (((len)-0)/28) 26754 /* An array of CLOCK_INFO structures. */ 26755 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_OFST 0 26756 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_LEN 28 26757 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_MINNUM 0 26758 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_MAXNUM 9 26759 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_MAXNUM_MCDI2 36 26760 26761 26762 /***********************************/ 26763 /* MC_CMD_VNIC_ENCAP_RULE_ADD 26764 * Add a rule for detecting encapsulations in the VNIC stage. Currently this 26765 * only affects checksum validation in VNIC RX - on TX the send descriptor 26766 * explicitly specifies encapsulation. These rules are per-VNIC, i.e. only 26767 * apply to the current driver. If a rule matches, then the packet is 26768 * considered to have the corresponding encapsulation type, and the inner 26769 * packet is parsed. It is up to the driver to ensure that overlapping rules 26770 * are not inserted. (If a packet would match multiple rules, a random one of 26771 * them will be used.) A rule with the exact same match criteria may not be 26772 * inserted twice (EALREADY). Only a limited number MATCH_FLAGS values are 26773 * supported, use MC_CMD_GET_PARSER_DISP_INFO with OP 26774 * OP_GET_SUPPORTED_VNIC_ENCAP_RULE_MATCHES to get a list of supported 26775 * combinations. Each driver may only have a limited set of active rules - 26776 * returns ENOSPC if the caller's table is full. 26777 */ 26778 #define MC_CMD_VNIC_ENCAP_RULE_ADD 0x16d 26779 #define MC_CMD_VNIC_ENCAP_RULE_ADD_MSGSET 0x16d 26780 #undef MC_CMD_0x16d_PRIVILEGE_CTG 26781 26782 #define MC_CMD_0x16d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26783 26784 /* MC_CMD_VNIC_ENCAP_RULE_ADD_IN msgrequest */ 26785 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_LEN 36 26786 /* Set to MAE_MPORT_SELECTOR_ASSIGNED. In the future this may be relaxed. */ 26787 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MPORT_SELECTOR_OFST 0 26788 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MPORT_SELECTOR_LEN 4 26789 /* Any non-zero bits other than the ones named below or an unsupported 26790 * combination will cause the NIC to return EOPNOTSUPP. In the future more 26791 * flags may be added. 26792 */ 26793 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_FLAGS_OFST 4 26794 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_FLAGS_LEN 4 26795 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_ETHER_TYPE_OFST 4 26796 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_ETHER_TYPE_LBN 0 26797 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_ETHER_TYPE_WIDTH 1 26798 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_OUTER_VLAN_OFST 4 26799 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_OUTER_VLAN_LBN 1 26800 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_OUTER_VLAN_WIDTH 1 26801 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_IP_OFST 4 26802 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_IP_LBN 2 26803 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_IP_WIDTH 1 26804 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_IP_PROTO_OFST 4 26805 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_IP_PROTO_LBN 3 26806 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_IP_PROTO_WIDTH 1 26807 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_PORT_OFST 4 26808 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_PORT_LBN 4 26809 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_PORT_WIDTH 1 26810 /* Only if MATCH_ETHER_TYPE is set. Ethertype value as bytes in network order. 26811 * Currently only IPv4 (0x0800) and IPv6 (0x86DD) ethertypes may be used. 26812 */ 26813 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ETHER_TYPE_OFST 8 26814 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ETHER_TYPE_LEN 2 26815 /* Only if MATCH_OUTER_VLAN is set. VID value as bytes in network order. 26816 * (Deprecated) 26817 */ 26818 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_LBN 80 26819 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_WIDTH 12 26820 /* Only if MATCH_OUTER_VLAN is set. Aligned wrapper for OUTER_VLAN_VID. */ 26821 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_WORD_OFST 10 26822 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_WORD_LEN 2 26823 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_VID_OFST 10 26824 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_VID_LBN 0 26825 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_VID_WIDTH 12 26826 /* Only if MATCH_DST_IP is set. IP address as bytes in network order. In the 26827 * case of IPv4, the IP should be in the first 4 bytes and all other bytes 26828 * should be zero. 26829 */ 26830 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_DST_IP_OFST 12 26831 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_DST_IP_LEN 16 26832 /* Only if MATCH_IP_PROTO is set. Currently only UDP proto (17) may be used. */ 26833 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_IP_PROTO_OFST 28 26834 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_IP_PROTO_LEN 1 26835 /* Actions that should be applied to packets match the rule. */ 26836 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ACTION_FLAGS_OFST 29 26837 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ACTION_FLAGS_LEN 1 26838 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STRIP_OUTER_VLAN_OFST 29 26839 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STRIP_OUTER_VLAN_LBN 0 26840 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STRIP_OUTER_VLAN_WIDTH 1 26841 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_RSS_ON_OUTER_OFST 29 26842 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_RSS_ON_OUTER_LBN 1 26843 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_RSS_ON_OUTER_WIDTH 1 26844 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STEER_ON_OUTER_OFST 29 26845 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STEER_ON_OUTER_LBN 2 26846 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STEER_ON_OUTER_WIDTH 1 26847 /* Only if MATCH_DST_PORT is set. Port number as bytes in network order. */ 26848 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_DST_PORT_OFST 30 26849 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_DST_PORT_LEN 2 26850 /* Resulting encapsulation type, as per MAE_MCDI_ENCAP_TYPE enumeration. */ 26851 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ENCAP_TYPE_OFST 32 26852 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ENCAP_TYPE_LEN 4 26853 26854 /* MC_CMD_VNIC_ENCAP_RULE_ADD_OUT msgresponse */ 26855 #define MC_CMD_VNIC_ENCAP_RULE_ADD_OUT_LEN 4 26856 /* Handle to inserted rule. Used for removing the rule. */ 26857 #define MC_CMD_VNIC_ENCAP_RULE_ADD_OUT_HANDLE_OFST 0 26858 #define MC_CMD_VNIC_ENCAP_RULE_ADD_OUT_HANDLE_LEN 4 26859 26860 26861 /***********************************/ 26862 /* MC_CMD_VNIC_ENCAP_RULE_REMOVE 26863 * Remove a VNIC encapsulation rule. Packets which would have previously 26864 * matched the rule will then be considered as unencapsulated. Returns EALREADY 26865 * if the input HANDLE doesn't correspond to an existing rule. 26866 */ 26867 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE 0x16e 26868 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE_MSGSET 0x16e 26869 #undef MC_CMD_0x16e_PRIVILEGE_CTG 26870 26871 #define MC_CMD_0x16e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26872 26873 /* MC_CMD_VNIC_ENCAP_RULE_REMOVE_IN msgrequest */ 26874 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE_IN_LEN 4 26875 /* Handle which was returned by MC_CMD_VNIC_ENCAP_RULE_ADD. */ 26876 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE_IN_HANDLE_OFST 0 26877 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE_IN_HANDLE_LEN 4 26878 26879 /* MC_CMD_VNIC_ENCAP_RULE_REMOVE_OUT msgresponse */ 26880 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE_OUT_LEN 0 26881 26882 /* UUID structuredef: An RFC4122 standard UUID. The values here are stored in 26883 * the endianness specified by the RFC; users should ignore the broken-out 26884 * fields and instead do straight memory copies to ensure correct ordering. 26885 */ 26886 #define UUID_LEN 16 26887 #define UUID_TIME_LOW_OFST 0 26888 #define UUID_TIME_LOW_LEN 4 26889 #define UUID_TIME_LOW_LBN 0 26890 #define UUID_TIME_LOW_WIDTH 32 26891 #define UUID_TIME_MID_OFST 4 26892 #define UUID_TIME_MID_LEN 2 26893 #define UUID_TIME_MID_LBN 32 26894 #define UUID_TIME_MID_WIDTH 16 26895 #define UUID_TIME_HI_LBN 52 26896 #define UUID_TIME_HI_WIDTH 12 26897 #define UUID_VERSION_LBN 48 26898 #define UUID_VERSION_WIDTH 4 26899 #define UUID_RESERVED_LBN 64 26900 #define UUID_RESERVED_WIDTH 2 26901 #define UUID_CLK_SEQ_LBN 66 26902 #define UUID_CLK_SEQ_WIDTH 14 26903 #define UUID_NODE_OFST 10 26904 #define UUID_NODE_LEN 6 26905 #define UUID_NODE_LBN 80 26906 #define UUID_NODE_WIDTH 48 26907 26908 26909 /***********************************/ 26910 /* MC_CMD_PLUGIN_ALLOC 26911 * Create a handle to a datapath plugin's extension. This involves finding a 26912 * currently-loaded plugin offering the given functionality (as identified by 26913 * the UUID) and allocating a handle to track the usage of it. Plugin 26914 * functionality is identified by 'extension' rather than any other identifier 26915 * so that a single plugin bitfile may offer more than one piece of independent 26916 * functionality. If two bitfiles are loaded which both offer the same 26917 * extension, then the metadata is interrogated further to determine which is 26918 * the newest and that is the one opened. See SF-123625-SW for architectural 26919 * detail on datapath plugins. 26920 */ 26921 #define MC_CMD_PLUGIN_ALLOC 0x1ad 26922 #define MC_CMD_PLUGIN_ALLOC_MSGSET 0x1ad 26923 #undef MC_CMD_0x1ad_PRIVILEGE_CTG 26924 26925 #define MC_CMD_0x1ad_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26926 26927 /* MC_CMD_PLUGIN_ALLOC_IN msgrequest */ 26928 #define MC_CMD_PLUGIN_ALLOC_IN_LEN 24 26929 /* The functionality requested of the plugin, as a UUID structure */ 26930 #define MC_CMD_PLUGIN_ALLOC_IN_UUID_OFST 0 26931 #define MC_CMD_PLUGIN_ALLOC_IN_UUID_LEN 16 26932 /* Additional options for opening the handle */ 26933 #define MC_CMD_PLUGIN_ALLOC_IN_FLAGS_OFST 16 26934 #define MC_CMD_PLUGIN_ALLOC_IN_FLAGS_LEN 4 26935 #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_INFO_ONLY_OFST 16 26936 #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_INFO_ONLY_LBN 0 26937 #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_INFO_ONLY_WIDTH 1 26938 #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_ALLOW_DISABLED_OFST 16 26939 #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_ALLOW_DISABLED_LBN 1 26940 #define MC_CMD_PLUGIN_ALLOC_IN_FLAG_ALLOW_DISABLED_WIDTH 1 26941 /* Load the extension only if it is in the specified administrative group. 26942 * Specify ANY to load the extension wherever it is found (if there are 26943 * multiple choices then the extension with the highest MINOR_VER/PATCH_VER 26944 * will be loaded). See MC_CMD_PLUGIN_GET_META_GLOBAL for a description of 26945 * administrative groups. 26946 */ 26947 #define MC_CMD_PLUGIN_ALLOC_IN_ADMIN_GROUP_OFST 20 26948 #define MC_CMD_PLUGIN_ALLOC_IN_ADMIN_GROUP_LEN 2 26949 /* enum: Load the extension from any ADMIN_GROUP. */ 26950 #define MC_CMD_PLUGIN_ALLOC_IN_ANY 0xffff 26951 /* Reserved */ 26952 #define MC_CMD_PLUGIN_ALLOC_IN_RESERVED_OFST 22 26953 #define MC_CMD_PLUGIN_ALLOC_IN_RESERVED_LEN 2 26954 26955 /* MC_CMD_PLUGIN_ALLOC_OUT msgresponse */ 26956 #define MC_CMD_PLUGIN_ALLOC_OUT_LEN 4 26957 /* Unique identifier of this usage */ 26958 #define MC_CMD_PLUGIN_ALLOC_OUT_HANDLE_OFST 0 26959 #define MC_CMD_PLUGIN_ALLOC_OUT_HANDLE_LEN 4 26960 26961 26962 /***********************************/ 26963 /* MC_CMD_PLUGIN_FREE 26964 * Delete a handle to a plugin's extension. 26965 */ 26966 #define MC_CMD_PLUGIN_FREE 0x1ae 26967 #define MC_CMD_PLUGIN_FREE_MSGSET 0x1ae 26968 #undef MC_CMD_0x1ae_PRIVILEGE_CTG 26969 26970 #define MC_CMD_0x1ae_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26971 26972 /* MC_CMD_PLUGIN_FREE_IN msgrequest */ 26973 #define MC_CMD_PLUGIN_FREE_IN_LEN 4 26974 /* Handle returned by MC_CMD_PLUGIN_ALLOC_OUT */ 26975 #define MC_CMD_PLUGIN_FREE_IN_HANDLE_OFST 0 26976 #define MC_CMD_PLUGIN_FREE_IN_HANDLE_LEN 4 26977 26978 /* MC_CMD_PLUGIN_FREE_OUT msgresponse */ 26979 #define MC_CMD_PLUGIN_FREE_OUT_LEN 0 26980 26981 26982 /***********************************/ 26983 /* MC_CMD_PLUGIN_GET_META_GLOBAL 26984 * Returns the global metadata applying to the whole plugin extension. See the 26985 * other metadata calls for subtypes of data. 26986 */ 26987 #define MC_CMD_PLUGIN_GET_META_GLOBAL 0x1af 26988 #define MC_CMD_PLUGIN_GET_META_GLOBAL_MSGSET 0x1af 26989 #undef MC_CMD_0x1af_PRIVILEGE_CTG 26990 26991 #define MC_CMD_0x1af_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26992 26993 /* MC_CMD_PLUGIN_GET_META_GLOBAL_IN msgrequest */ 26994 #define MC_CMD_PLUGIN_GET_META_GLOBAL_IN_LEN 4 26995 /* Handle returned by MC_CMD_PLUGIN_ALLOC_OUT */ 26996 #define MC_CMD_PLUGIN_GET_META_GLOBAL_IN_HANDLE_OFST 0 26997 #define MC_CMD_PLUGIN_GET_META_GLOBAL_IN_HANDLE_LEN 4 26998 26999 /* MC_CMD_PLUGIN_GET_META_GLOBAL_OUT msgresponse */ 27000 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_LEN 36 27001 /* Unique identifier of this plugin extension. This is identical to the value 27002 * which was requested when the handle was allocated. 27003 */ 27004 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_UUID_OFST 0 27005 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_UUID_LEN 16 27006 /* semver sub-version of this plugin extension */ 27007 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MINOR_VER_OFST 16 27008 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MINOR_VER_LEN 2 27009 /* semver micro-version of this plugin extension */ 27010 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_PATCH_VER_OFST 18 27011 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_PATCH_VER_LEN 2 27012 /* Number of different messages which can be sent to this extension */ 27013 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_NUM_MSGS_OFST 20 27014 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_NUM_MSGS_LEN 4 27015 /* Byte offset within the VI window of the plugin's mapped CSR window. */ 27016 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_OFFSET_OFST 24 27017 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_OFFSET_LEN 2 27018 /* Number of bytes mapped through to the plugin's CSRs. 0 if that feature was 27019 * not requested by the plugin (in which case MAPPED_CSR_OFFSET and 27020 * MAPPED_CSR_FLAGS are ignored). 27021 */ 27022 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_SIZE_OFST 26 27023 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_SIZE_LEN 2 27024 /* Flags indicating how to perform the CSR window mapping. */ 27025 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAGS_OFST 28 27026 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAGS_LEN 4 27027 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_READ_OFST 28 27028 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_READ_LBN 0 27029 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_READ_WIDTH 1 27030 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_WRITE_OFST 28 27031 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_WRITE_LBN 1 27032 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_MAPPED_CSR_FLAG_WRITE_WIDTH 1 27033 /* Identifier of the set of extensions which all change state together. 27034 * Extensions having the same ADMIN_GROUP will always load and unload at the 27035 * same time. ADMIN_GROUP values themselves are arbitrary (but they contain a 27036 * generation number as an implementation detail to ensure that they're not 27037 * reused rapidly). 27038 */ 27039 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_ADMIN_GROUP_OFST 32 27040 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_ADMIN_GROUP_LEN 1 27041 /* Bitshift in MC_CMD_DEVEL_CLIENT_PRIVILEGE_MODIFY's MASK parameters 27042 * corresponding to this extension, i.e. set the bit 1<<PRIVILEGE_BIT to permit 27043 * access to this extension. 27044 */ 27045 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_PRIVILEGE_BIT_OFST 33 27046 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_PRIVILEGE_BIT_LEN 1 27047 /* Reserved */ 27048 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_RESERVED_OFST 34 27049 #define MC_CMD_PLUGIN_GET_META_GLOBAL_OUT_RESERVED_LEN 2 27050 27051 27052 /***********************************/ 27053 /* MC_CMD_PLUGIN_GET_META_PUBLISHER 27054 * Returns metadata supplied by the plugin author which describes this 27055 * extension in a human-readable way. Contrast with 27056 * MC_CMD_PLUGIN_GET_META_GLOBAL, which returns information needed for software 27057 * to operate. 27058 */ 27059 #define MC_CMD_PLUGIN_GET_META_PUBLISHER 0x1b0 27060 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_MSGSET 0x1b0 27061 #undef MC_CMD_0x1b0_PRIVILEGE_CTG 27062 27063 #define MC_CMD_0x1b0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27064 27065 /* MC_CMD_PLUGIN_GET_META_PUBLISHER_IN msgrequest */ 27066 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_LEN 12 27067 /* Handle returned by MC_CMD_PLUGIN_ALLOC_OUT */ 27068 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_HANDLE_OFST 0 27069 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_HANDLE_LEN 4 27070 /* Category of data to return */ 27071 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_SUBTYPE_OFST 4 27072 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_SUBTYPE_LEN 4 27073 /* enum: Top-level information about the extension. The returned data is an 27074 * array of key/value pairs using the keys in RFC5013 (Dublin Core) to describe 27075 * the extension. The data is a back-to-back list of zero-terminated strings; 27076 * the even-numbered fields (0,2,4,...) are keys and their following odd- 27077 * numbered fields are the corresponding values. Both keys and values are 27078 * nominally UTF-8. Per RFC5013, the same key may be repeated any number of 27079 * times. Note that all information (including the key/value structure itself 27080 * and the UTF-8 encoding) may have been provided by the plugin author, so 27081 * callers must be cautious about parsing it. Callers should parse only the 27082 * top-level structure to separate out the keys and values; the contents of the 27083 * values is not expected to be machine-readable. 27084 */ 27085 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_EXTENSION_KVS 0x0 27086 /* Byte position of the data to be returned within the full data block of the 27087 * given SUBTYPE. 27088 */ 27089 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_OFFSET_OFST 8 27090 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_IN_OFFSET_LEN 4 27091 27092 /* MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT msgresponse */ 27093 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_LENMIN 4 27094 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_LENMAX 252 27095 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_LENMAX_MCDI2 1020 27096 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_LEN(num) (4+1*(num)) 27097 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_NUM(len) (((len)-4)/1) 27098 /* Full length of the data block of the requested SUBTYPE, in bytes. */ 27099 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_TOTAL_SIZE_OFST 0 27100 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_TOTAL_SIZE_LEN 4 27101 /* The information requested by SUBTYPE. */ 27102 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_OFST 4 27103 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_LEN 1 27104 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_MINNUM 0 27105 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_MAXNUM 248 27106 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_MAXNUM_MCDI2 1016 27107 27108 27109 /***********************************/ 27110 /* MC_CMD_PLUGIN_GET_META_MSG 27111 * Returns the simple metadata for a specific plugin request message. This 27112 * supplies information necessary for the host to know how to build an 27113 * MC_CMD_PLUGIN_REQ request. 27114 */ 27115 #define MC_CMD_PLUGIN_GET_META_MSG 0x1b1 27116 #define MC_CMD_PLUGIN_GET_META_MSG_MSGSET 0x1b1 27117 #undef MC_CMD_0x1b1_PRIVILEGE_CTG 27118 27119 #define MC_CMD_0x1b1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27120 27121 /* MC_CMD_PLUGIN_GET_META_MSG_IN msgrequest */ 27122 #define MC_CMD_PLUGIN_GET_META_MSG_IN_LEN 8 27123 /* Handle returned by MC_CMD_PLUGIN_ALLOC_OUT */ 27124 #define MC_CMD_PLUGIN_GET_META_MSG_IN_HANDLE_OFST 0 27125 #define MC_CMD_PLUGIN_GET_META_MSG_IN_HANDLE_LEN 4 27126 /* Unique message ID to obtain */ 27127 #define MC_CMD_PLUGIN_GET_META_MSG_IN_ID_OFST 4 27128 #define MC_CMD_PLUGIN_GET_META_MSG_IN_ID_LEN 4 27129 27130 /* MC_CMD_PLUGIN_GET_META_MSG_OUT msgresponse */ 27131 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_LEN 44 27132 /* Unique message ID. This is the same value as the input parameter; it exists 27133 * to allow future MCDI extensions which enumerate all messages. 27134 */ 27135 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_ID_OFST 0 27136 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_ID_LEN 4 27137 /* Packed index number of this message, assigned by the MC to give each message 27138 * a unique ID in an array to allow for more efficient storage/management. 27139 */ 27140 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_INDEX_OFST 4 27141 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_INDEX_LEN 4 27142 /* Short human-readable codename for this message. This is conventionally 27143 * formatted as a C identifier in the basic ASCII character set with any spare 27144 * bytes at the end set to 0, however this convention is not enforced by the MC 27145 * so consumers must check for all potential malformations before using it for 27146 * a trusted purpose. 27147 */ 27148 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_NAME_OFST 8 27149 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_NAME_LEN 32 27150 /* Number of bytes of data which must be passed from the host kernel to the MC 27151 * for this message's payload, and which are passed back again in the response. 27152 * The MC's plugin metadata loader will have validated that the number of bytes 27153 * specified here will fit in to MC_CMD_PLUGIN_REQ_IN_DATA in a single MCDI 27154 * message. 27155 */ 27156 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_DATA_SIZE_OFST 40 27157 #define MC_CMD_PLUGIN_GET_META_MSG_OUT_DATA_SIZE_LEN 4 27158 27159 /* PLUGIN_EXTENSION structuredef: Used within MC_CMD_PLUGIN_GET_ALL to describe 27160 * an individual extension. 27161 */ 27162 #define PLUGIN_EXTENSION_LEN 20 27163 #define PLUGIN_EXTENSION_UUID_OFST 0 27164 #define PLUGIN_EXTENSION_UUID_LEN 16 27165 #define PLUGIN_EXTENSION_UUID_LBN 0 27166 #define PLUGIN_EXTENSION_UUID_WIDTH 128 27167 #define PLUGIN_EXTENSION_ADMIN_GROUP_OFST 16 27168 #define PLUGIN_EXTENSION_ADMIN_GROUP_LEN 1 27169 #define PLUGIN_EXTENSION_ADMIN_GROUP_LBN 128 27170 #define PLUGIN_EXTENSION_ADMIN_GROUP_WIDTH 8 27171 #define PLUGIN_EXTENSION_FLAG_ENABLED_LBN 136 27172 #define PLUGIN_EXTENSION_FLAG_ENABLED_WIDTH 1 27173 #define PLUGIN_EXTENSION_RESERVED_LBN 137 27174 #define PLUGIN_EXTENSION_RESERVED_WIDTH 23 27175 27176 27177 /***********************************/ 27178 /* MC_CMD_PLUGIN_GET_ALL 27179 * Returns a list of all plugin extensions currently loaded and available. The 27180 * UUIDs returned can be passed to MC_CMD_PLUGIN_ALLOC in order to obtain more 27181 * detailed metadata via the MC_CMD_PLUGIN_GET_META_* family of requests. The 27182 * ADMIN_GROUP field collects how extensions are grouped in to units which are 27183 * loaded/unloaded together; extensions with the same value are in the same 27184 * group. 27185 */ 27186 #define MC_CMD_PLUGIN_GET_ALL 0x1b2 27187 #define MC_CMD_PLUGIN_GET_ALL_MSGSET 0x1b2 27188 #undef MC_CMD_0x1b2_PRIVILEGE_CTG 27189 27190 #define MC_CMD_0x1b2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27191 27192 /* MC_CMD_PLUGIN_GET_ALL_IN msgrequest */ 27193 #define MC_CMD_PLUGIN_GET_ALL_IN_LEN 4 27194 /* Additional options for querying. Note that if neither FLAG_INCLUDE_ENABLED 27195 * nor FLAG_INCLUDE_DISABLED are specified then the result set will be empty. 27196 */ 27197 #define MC_CMD_PLUGIN_GET_ALL_IN_FLAGS_OFST 0 27198 #define MC_CMD_PLUGIN_GET_ALL_IN_FLAGS_LEN 4 27199 #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_ENABLED_OFST 0 27200 #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_ENABLED_LBN 0 27201 #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_ENABLED_WIDTH 1 27202 #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_DISABLED_OFST 0 27203 #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_DISABLED_LBN 1 27204 #define MC_CMD_PLUGIN_GET_ALL_IN_FLAG_INCLUDE_DISABLED_WIDTH 1 27205 27206 /* MC_CMD_PLUGIN_GET_ALL_OUT msgresponse */ 27207 #define MC_CMD_PLUGIN_GET_ALL_OUT_LENMIN 0 27208 #define MC_CMD_PLUGIN_GET_ALL_OUT_LENMAX 240 27209 #define MC_CMD_PLUGIN_GET_ALL_OUT_LENMAX_MCDI2 1020 27210 #define MC_CMD_PLUGIN_GET_ALL_OUT_LEN(num) (0+20*(num)) 27211 #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_NUM(len) (((len)-0)/20) 27212 /* The list of available plugin extensions, as an array of PLUGIN_EXTENSION 27213 * structs. 27214 */ 27215 #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_OFST 0 27216 #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_LEN 20 27217 #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_MINNUM 0 27218 #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_MAXNUM 12 27219 #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_MAXNUM_MCDI2 51 27220 27221 27222 /***********************************/ 27223 /* MC_CMD_PLUGIN_REQ 27224 * Send a command to a plugin. A plugin may define an arbitrary number of 27225 * 'messages' which it allows applications on the host system to send, each 27226 * identified by a 32-bit ID. 27227 */ 27228 #define MC_CMD_PLUGIN_REQ 0x1b3 27229 #define MC_CMD_PLUGIN_REQ_MSGSET 0x1b3 27230 #undef MC_CMD_0x1b3_PRIVILEGE_CTG 27231 27232 #define MC_CMD_0x1b3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27233 27234 /* MC_CMD_PLUGIN_REQ_IN msgrequest */ 27235 #define MC_CMD_PLUGIN_REQ_IN_LENMIN 8 27236 #define MC_CMD_PLUGIN_REQ_IN_LENMAX 252 27237 #define MC_CMD_PLUGIN_REQ_IN_LENMAX_MCDI2 1020 27238 #define MC_CMD_PLUGIN_REQ_IN_LEN(num) (8+1*(num)) 27239 #define MC_CMD_PLUGIN_REQ_IN_DATA_NUM(len) (((len)-8)/1) 27240 /* Handle returned by MC_CMD_PLUGIN_ALLOC_OUT */ 27241 #define MC_CMD_PLUGIN_REQ_IN_HANDLE_OFST 0 27242 #define MC_CMD_PLUGIN_REQ_IN_HANDLE_LEN 4 27243 /* Message ID defined by the plugin author */ 27244 #define MC_CMD_PLUGIN_REQ_IN_ID_OFST 4 27245 #define MC_CMD_PLUGIN_REQ_IN_ID_LEN 4 27246 /* Data blob being the parameter to the message. This must be of the length 27247 * specified by MC_CMD_PLUGIN_GET_META_MSG_IN_MCDI_PARAM_SIZE. 27248 */ 27249 #define MC_CMD_PLUGIN_REQ_IN_DATA_OFST 8 27250 #define MC_CMD_PLUGIN_REQ_IN_DATA_LEN 1 27251 #define MC_CMD_PLUGIN_REQ_IN_DATA_MINNUM 0 27252 #define MC_CMD_PLUGIN_REQ_IN_DATA_MAXNUM 244 27253 #define MC_CMD_PLUGIN_REQ_IN_DATA_MAXNUM_MCDI2 1012 27254 27255 /* MC_CMD_PLUGIN_REQ_OUT msgresponse */ 27256 #define MC_CMD_PLUGIN_REQ_OUT_LENMIN 0 27257 #define MC_CMD_PLUGIN_REQ_OUT_LENMAX 252 27258 #define MC_CMD_PLUGIN_REQ_OUT_LENMAX_MCDI2 1020 27259 #define MC_CMD_PLUGIN_REQ_OUT_LEN(num) (0+1*(num)) 27260 #define MC_CMD_PLUGIN_REQ_OUT_DATA_NUM(len) (((len)-0)/1) 27261 /* The input data, as transformed and/or updated by the plugin's eBPF. Will be 27262 * the same size as the input DATA parameter. 27263 */ 27264 #define MC_CMD_PLUGIN_REQ_OUT_DATA_OFST 0 27265 #define MC_CMD_PLUGIN_REQ_OUT_DATA_LEN 1 27266 #define MC_CMD_PLUGIN_REQ_OUT_DATA_MINNUM 0 27267 #define MC_CMD_PLUGIN_REQ_OUT_DATA_MAXNUM 252 27268 #define MC_CMD_PLUGIN_REQ_OUT_DATA_MAXNUM_MCDI2 1020 27269 27270 /* DESC_ADDR_REGION structuredef: Describes a contiguous region of DESC_ADDR 27271 * space that maps to a contiguous region of TRGT_ADDR space. Addresses 27272 * DESC_ADDR in the range [DESC_ADDR_BASE:DESC_ADDR_BASE + 1 << 27273 * WINDOW_SIZE_LOG2) map to TRGT_ADDR = DESC_ADDR - DESC_ADDR_BASE + 27274 * TRGT_ADDR_BASE. 27275 */ 27276 #define DESC_ADDR_REGION_LEN 32 27277 /* The start of the region in DESC_ADDR space. */ 27278 #define DESC_ADDR_REGION_DESC_ADDR_BASE_OFST 0 27279 #define DESC_ADDR_REGION_DESC_ADDR_BASE_LEN 8 27280 #define DESC_ADDR_REGION_DESC_ADDR_BASE_LO_OFST 0 27281 #define DESC_ADDR_REGION_DESC_ADDR_BASE_LO_LEN 4 27282 #define DESC_ADDR_REGION_DESC_ADDR_BASE_LO_LBN 0 27283 #define DESC_ADDR_REGION_DESC_ADDR_BASE_LO_WIDTH 32 27284 #define DESC_ADDR_REGION_DESC_ADDR_BASE_HI_OFST 4 27285 #define DESC_ADDR_REGION_DESC_ADDR_BASE_HI_LEN 4 27286 #define DESC_ADDR_REGION_DESC_ADDR_BASE_HI_LBN 32 27287 #define DESC_ADDR_REGION_DESC_ADDR_BASE_HI_WIDTH 32 27288 #define DESC_ADDR_REGION_DESC_ADDR_BASE_LBN 0 27289 #define DESC_ADDR_REGION_DESC_ADDR_BASE_WIDTH 64 27290 /* The start of the region in TRGT_ADDR space. Drivers can set this via 27291 * MC_CMD_SET_DESC_ADDR_REGIONS. 27292 */ 27293 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_OFST 8 27294 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LEN 8 27295 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LO_OFST 8 27296 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LO_LEN 4 27297 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LO_LBN 64 27298 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LO_WIDTH 32 27299 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_HI_OFST 12 27300 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_HI_LEN 4 27301 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_HI_LBN 96 27302 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_HI_WIDTH 32 27303 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_LBN 64 27304 #define DESC_ADDR_REGION_TRGT_ADDR_BASE_WIDTH 64 27305 /* The size of the region. */ 27306 #define DESC_ADDR_REGION_WINDOW_SIZE_LOG2_OFST 16 27307 #define DESC_ADDR_REGION_WINDOW_SIZE_LOG2_LEN 4 27308 #define DESC_ADDR_REGION_WINDOW_SIZE_LOG2_LBN 128 27309 #define DESC_ADDR_REGION_WINDOW_SIZE_LOG2_WIDTH 32 27310 /* The alignment restriction on TRGT_ADDR. TRGT_ADDR values set by the driver 27311 * must be a multiple of 1 << TRGT_ADDR_ALIGN_LOG2. 27312 */ 27313 #define DESC_ADDR_REGION_TRGT_ADDR_ALIGN_LOG2_OFST 20 27314 #define DESC_ADDR_REGION_TRGT_ADDR_ALIGN_LOG2_LEN 4 27315 #define DESC_ADDR_REGION_TRGT_ADDR_ALIGN_LOG2_LBN 160 27316 #define DESC_ADDR_REGION_TRGT_ADDR_ALIGN_LOG2_WIDTH 32 27317 #define DESC_ADDR_REGION_RSVD_OFST 24 27318 #define DESC_ADDR_REGION_RSVD_LEN 8 27319 #define DESC_ADDR_REGION_RSVD_LO_OFST 24 27320 #define DESC_ADDR_REGION_RSVD_LO_LEN 4 27321 #define DESC_ADDR_REGION_RSVD_LO_LBN 192 27322 #define DESC_ADDR_REGION_RSVD_LO_WIDTH 32 27323 #define DESC_ADDR_REGION_RSVD_HI_OFST 28 27324 #define DESC_ADDR_REGION_RSVD_HI_LEN 4 27325 #define DESC_ADDR_REGION_RSVD_HI_LBN 224 27326 #define DESC_ADDR_REGION_RSVD_HI_WIDTH 32 27327 #define DESC_ADDR_REGION_RSVD_LBN 192 27328 #define DESC_ADDR_REGION_RSVD_WIDTH 64 27329 27330 27331 /***********************************/ 27332 /* MC_CMD_GET_DESC_ADDR_INFO 27333 * Returns a description of the mapping from DESC_ADDR to TRGT_ADDR for the calling function's address space. 27334 */ 27335 #define MC_CMD_GET_DESC_ADDR_INFO 0x1b7 27336 #define MC_CMD_GET_DESC_ADDR_INFO_MSGSET 0x1b7 27337 #undef MC_CMD_0x1b7_PRIVILEGE_CTG 27338 27339 #define MC_CMD_0x1b7_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27340 27341 /* MC_CMD_GET_DESC_ADDR_INFO_IN msgrequest */ 27342 #define MC_CMD_GET_DESC_ADDR_INFO_IN_LEN 0 27343 27344 /* MC_CMD_GET_DESC_ADDR_INFO_OUT msgresponse */ 27345 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_LEN 4 27346 /* The type of mapping; see SF-nnnnnn-xx (EF100 driver writer's guide, once 27347 * written) for details of each type. 27348 */ 27349 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_TYPE_OFST 0 27350 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_TYPE_LEN 4 27351 /* enum: TRGT_ADDR = DESC_ADDR */ 27352 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_FLAT 0x0 27353 /* enum: DESC_ADDR has one or more regions that map into TRGT_ADDR. The base 27354 * TRGT_ADDR for each region is programmable via MCDI. 27355 */ 27356 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_REGIONED 0x1 27357 27358 27359 /***********************************/ 27360 /* MC_CMD_GET_DESC_ADDR_REGIONS 27361 * 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. 27362 */ 27363 #define MC_CMD_GET_DESC_ADDR_REGIONS 0x1b8 27364 #define MC_CMD_GET_DESC_ADDR_REGIONS_MSGSET 0x1b8 27365 #undef MC_CMD_0x1b8_PRIVILEGE_CTG 27366 27367 #define MC_CMD_0x1b8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27368 27369 /* MC_CMD_GET_DESC_ADDR_REGIONS_IN msgrequest */ 27370 #define MC_CMD_GET_DESC_ADDR_REGIONS_IN_LEN 0 27371 27372 /* MC_CMD_GET_DESC_ADDR_REGIONS_OUT msgresponse */ 27373 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_LENMIN 32 27374 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_LENMAX 224 27375 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_LENMAX_MCDI2 992 27376 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_LEN(num) (0+32*(num)) 27377 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_NUM(len) (((len)-0)/32) 27378 /* An array of DESC_ADDR_REGION strutures. The number of entries in the array 27379 * indicates the number of available regions. 27380 */ 27381 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_OFST 0 27382 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_LEN 32 27383 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_MINNUM 1 27384 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_MAXNUM 7 27385 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_MAXNUM_MCDI2 31 27386 27387 27388 /***********************************/ 27389 /* MC_CMD_SET_DESC_ADDR_REGIONS 27390 * 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. 27391 */ 27392 #define MC_CMD_SET_DESC_ADDR_REGIONS 0x1b9 27393 #define MC_CMD_SET_DESC_ADDR_REGIONS_MSGSET 0x1b9 27394 #undef MC_CMD_0x1b9_PRIVILEGE_CTG 27395 27396 #define MC_CMD_0x1b9_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27397 27398 /* MC_CMD_SET_DESC_ADDR_REGIONS_IN msgrequest */ 27399 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_LENMIN 16 27400 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_LENMAX 248 27401 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_LENMAX_MCDI2 1016 27402 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_LEN(num) (8+8*(num)) 27403 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_NUM(len) (((len)-8)/8) 27404 /* A bitmask indicating which regions should have their base TRGT_ADDR updated. 27405 * To update the base TRGR_ADDR for a DESC_ADDR region, the corresponding bit 27406 * should be set to 1. 27407 */ 27408 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_SET_REGION_MASK_OFST 0 27409 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_SET_REGION_MASK_LEN 4 27410 /* Reserved field; must be set to zero. */ 27411 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_RSVD_OFST 4 27412 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_RSVD_LEN 4 27413 /* An array of values used to updated the base TRGT_ADDR for DESC_ADDR regions. 27414 * Array indices corresponding to region numbers (i.e. the array is sparse, and 27415 * included entries for regions even if the corresponding SET_REGION_MASK bit 27416 * is zero). 27417 */ 27418 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_OFST 8 27419 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LEN 8 27420 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_OFST 8 27421 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_LEN 4 27422 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_LBN 64 27423 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_WIDTH 32 27424 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_OFST 12 27425 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_LEN 4 27426 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_LBN 96 27427 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_WIDTH 32 27428 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_MINNUM 1 27429 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_MAXNUM 30 27430 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_MAXNUM_MCDI2 126 27431 27432 /* MC_CMD_SET_DESC_ADDR_REGIONS_OUT msgresponse */ 27433 #define MC_CMD_SET_DESC_ADDR_REGIONS_OUT_LEN 0 27434 27435 27436 /***********************************/ 27437 /* MC_CMD_CLIENT_CMD 27438 * Execute an arbitrary MCDI command on behalf of a different client. The 27439 * consequences of the command (e.g. ownership of any resources created) apply 27440 * to the indicated client rather than the function client which actually sent 27441 * this command. All inherent permission checks are also performed on the 27442 * indicated client. The given client must be a descendant of the requestor. 27443 * The command to be proxied follows immediately afterward in the host buffer 27444 * (or on the UART). Chaining multiple MC_CMD_CLIENT_CMD is unnecessary and not 27445 * supported. New dynamic clients may be created with MC_CMD_CLIENT_ALLOC. 27446 */ 27447 #define MC_CMD_CLIENT_CMD 0x1ba 27448 #define MC_CMD_CLIENT_CMD_MSGSET 0x1ba 27449 #undef MC_CMD_0x1ba_PRIVILEGE_CTG 27450 27451 #define MC_CMD_0x1ba_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27452 27453 /* MC_CMD_CLIENT_CMD_IN msgrequest */ 27454 #define MC_CMD_CLIENT_CMD_IN_LEN 4 27455 /* The client as which to execute the following command. */ 27456 #define MC_CMD_CLIENT_CMD_IN_CLIENT_ID_OFST 0 27457 #define MC_CMD_CLIENT_CMD_IN_CLIENT_ID_LEN 4 27458 27459 /* MC_CMD_CLIENT_CMD_OUT msgresponse */ 27460 #define MC_CMD_CLIENT_CMD_OUT_LEN 0 27461 27462 27463 /***********************************/ 27464 /* MC_CMD_CLIENT_ALLOC 27465 * Create a new client object. Clients are a system for delineating NIC 27466 * resource ownership, such that groups of resources may be torn down as a 27467 * unit. See also MC_CMD_CLIENT_CMD. See XN-200265-TC for background, concepts 27468 * and a glossary. Clients created by this command are known as "dynamic 27469 * clients". The newly-created client is a child of the client which sent this 27470 * command. The caller must have the GRP_ALLOC_CLIENT privilege. The new client 27471 * initially has no permission to do anything; see 27472 * MC_CMD_DEVEL_CLIENT_PRIVILEGE_MODIFY. 27473 */ 27474 #define MC_CMD_CLIENT_ALLOC 0x1bb 27475 #define MC_CMD_CLIENT_ALLOC_MSGSET 0x1bb 27476 #undef MC_CMD_0x1bb_PRIVILEGE_CTG 27477 27478 #define MC_CMD_0x1bb_PRIVILEGE_CTG SRIOV_CTG_ALLOC_CLIENT 27479 27480 /* MC_CMD_CLIENT_ALLOC_IN msgrequest */ 27481 #define MC_CMD_CLIENT_ALLOC_IN_LEN 0 27482 27483 /* MC_CMD_CLIENT_ALLOC_OUT msgresponse */ 27484 #define MC_CMD_CLIENT_ALLOC_OUT_LEN 4 27485 /* The ID of the new client object which has been created. */ 27486 #define MC_CMD_CLIENT_ALLOC_OUT_CLIENT_ID_OFST 0 27487 #define MC_CMD_CLIENT_ALLOC_OUT_CLIENT_ID_LEN 4 27488 27489 27490 /***********************************/ 27491 /* MC_CMD_CLIENT_FREE 27492 * Destroy and release an existing client object. All resources owned by that 27493 * client (including its child clients, and thus all resources owned by the 27494 * entire family tree) are freed. 27495 */ 27496 #define MC_CMD_CLIENT_FREE 0x1bc 27497 #define MC_CMD_CLIENT_FREE_MSGSET 0x1bc 27498 #undef MC_CMD_0x1bc_PRIVILEGE_CTG 27499 27500 #define MC_CMD_0x1bc_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27501 27502 /* MC_CMD_CLIENT_FREE_IN msgrequest */ 27503 #define MC_CMD_CLIENT_FREE_IN_LEN 4 27504 /* The ID of the client to be freed. This client must be a descendant of the 27505 * requestor. A client cannot free itself. 27506 */ 27507 #define MC_CMD_CLIENT_FREE_IN_CLIENT_ID_OFST 0 27508 #define MC_CMD_CLIENT_FREE_IN_CLIENT_ID_LEN 4 27509 27510 /* MC_CMD_CLIENT_FREE_OUT msgresponse */ 27511 #define MC_CMD_CLIENT_FREE_OUT_LEN 0 27512 27513 27514 /***********************************/ 27515 /* MC_CMD_SET_VI_USER 27516 * Assign partial rights over this VI to another client. VIs have an 'owner' 27517 * and a 'user'. The owner is the client which allocated the VI 27518 * (MC_CMD_ALLOC_VIS) and cannot be changed. The user is the client which has 27519 * permission to create queues and other resources on that VI. Initially 27520 * user==owner, but the user can be changed by this command; the resources thus 27521 * created are then owned by the user-client. Only the VI owner can call this 27522 * command, and the request will fail if there are any outstanding child 27523 * resources (e.g. queues) currently allocated from this VI. 27524 */ 27525 #define MC_CMD_SET_VI_USER 0x1be 27526 #define MC_CMD_SET_VI_USER_MSGSET 0x1be 27527 #undef MC_CMD_0x1be_PRIVILEGE_CTG 27528 27529 #define MC_CMD_0x1be_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27530 27531 /* MC_CMD_SET_VI_USER_IN msgrequest */ 27532 #define MC_CMD_SET_VI_USER_IN_LEN 8 27533 /* Function-relative VI number to modify. */ 27534 #define MC_CMD_SET_VI_USER_IN_INSTANCE_OFST 0 27535 #define MC_CMD_SET_VI_USER_IN_INSTANCE_LEN 4 27536 /* Client ID to become the new user. This must be a descendant of the owning 27537 * client, the owning client itself, or the special value MC_CMD_CLIENT_ID_SELF 27538 * which is synonymous with the owning client. 27539 */ 27540 #define MC_CMD_SET_VI_USER_IN_CLIENT_ID_OFST 4 27541 #define MC_CMD_SET_VI_USER_IN_CLIENT_ID_LEN 4 27542 27543 /* MC_CMD_SET_VI_USER_OUT msgresponse */ 27544 #define MC_CMD_SET_VI_USER_OUT_LEN 0 27545 27546 27547 /***********************************/ 27548 /* MC_CMD_GET_CLIENT_MAC_ADDRESSES 27549 * A device reports a set of MAC addresses for each client to use, known as the 27550 * "permanent MAC addresses". Those MAC addresses are provided by the client's 27551 * administrator, e.g. via MC_CMD_SET_CLIENT_MAC_ADDRESSES, and are intended as 27552 * a hint to that client which MAC address its administrator would like to use 27553 * to identity itself. This API exists solely to allow communication of MAC 27554 * address from administrator to adminstree, and has no inherent interaction 27555 * with switching within the device. There is no guarantee that a client will 27556 * be able to send traffic with a source MAC address taken from the list of MAC 27557 * address reported, nor is there a guarantee that a client will be able to 27558 * resource traffic with a destination MAC taken from the list of MAC 27559 * addresses. Likewise, there is no guarantee that a client will not be able to 27560 * use a MAC address not present in the list. Restrictions on switching are 27561 * controlled either through the EVB API if operating in EVB mode, or via MAE 27562 * rules if host software is directly managing the MAE. In order to allow 27563 * tenants to use this API whilst a provider is using the EVB API, the MAC 27564 * addresses reported by MC_CMD_GET_CLIENT_MAC_ADDRESSES will be augmented with 27565 * any MAC addresses associated with the vPort assigned to the caller. In order 27566 * to allow tenants to use the EVB API whilst a provider is using this API, if 27567 * a client queries the MAC addresses for a vPort using the host_evb_port_id 27568 * EVB_PORT_ASSIGNED, that list of MAC addresses will be augmented with the MAC 27569 * addresses assigned to the calling client. This query can either be explicit 27570 * (i.e. MC_CMD_VPORT_GET_MAC_ADDRESSES) or implicit (e.g. creation of a 27571 * vAdaptor with a NULL/automatic MAC address). Changing the MAC address on a 27572 * vAdaptor only affects VNIC steering filters; it has no effect on the MAC 27573 * addresses assigned to the vAdaptor's owner. VirtIO clients behave as EVB 27574 * clients. On VirtIO device reset, a vAdaptor is created with an automatic MAC 27575 * address. Querying the VirtIO device's MAC address queries the underlying 27576 * vAdaptor's MAC address. Setting the VirtIO device's MAC address sets the 27577 * underlying vAdaptor's MAC addresses. 27578 */ 27579 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES 0x1c4 27580 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_MSGSET 0x1c4 27581 #undef MC_CMD_0x1c4_PRIVILEGE_CTG 27582 27583 #define MC_CMD_0x1c4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27584 27585 /* MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN msgrequest */ 27586 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN_LEN 4 27587 /* A handle for the client for whom MAC address should be obtained. Use 27588 * CLIENT_HANDLE_SELF to obtain the MAC addresses assigned to the calling 27589 * client. 27590 */ 27591 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_OFST 0 27592 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_LEN 4 27593 27594 /* MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT msgresponse */ 27595 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_LENMIN 0 27596 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_LENMAX 252 27597 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_LENMAX_MCDI2 1020 27598 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_LEN(num) (0+6*(num)) 27599 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_NUM(len) (((len)-0)/6) 27600 /* An array of MAC addresses assigned to the client. */ 27601 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_OFST 0 27602 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_LEN 6 27603 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_MINNUM 0 27604 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_MAXNUM 42 27605 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_MAXNUM_MCDI2 170 27606 27607 27608 /***********************************/ 27609 /* MC_CMD_SET_CLIENT_MAC_ADDRESSES 27610 * Set the permanent MAC addresses for a client. The caller must by an 27611 * administrator of the target client. See MC_CMD_GET_CLIENT_MAC_ADDRESSES for 27612 * additional detail. 27613 */ 27614 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES 0x1c5 27615 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_MSGSET 0x1c5 27616 #undef MC_CMD_0x1c5_PRIVILEGE_CTG 27617 27618 #define MC_CMD_0x1c5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27619 27620 /* MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN msgrequest */ 27621 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LENMIN 4 27622 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LENMAX 250 27623 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LENMAX_MCDI2 1018 27624 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LEN(num) (4+6*(num)) 27625 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_NUM(len) (((len)-4)/6) 27626 /* A handle for the client for whom MAC addresses should be set */ 27627 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_OFST 0 27628 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_LEN 4 27629 /* An array of MAC addresses to assign to the client. */ 27630 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_OFST 4 27631 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_LEN 6 27632 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_MINNUM 0 27633 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_MAXNUM 41 27634 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_MAXNUM_MCDI2 169 27635 27636 /* MC_CMD_SET_CLIENT_MAC_ADDRESSES_OUT msgresponse */ 27637 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_OUT_LEN 0 27638 27639 27640 /***********************************/ 27641 /* MC_CMD_GET_BOARD_ATTR 27642 * Retrieve physical build-level board attributes as configured at 27643 * manufacturing stage. Fields originate from EEPROM and per-platform constants 27644 * in firmware. Fields are used in development to identify/ differentiate 27645 * boards based on build levels/parameters, and also in manufacturing to cross 27646 * check "what was programmed in manufacturing" is same as "what firmware 27647 * thinks has been programmed" as there are two layers to translation within 27648 * firmware before the attributes reach this MCDI handler. Some parameters are 27649 * retrieved as part of other commands and therefore not replicated here. See 27650 * GET_VERSION_OUT. 27651 */ 27652 #define MC_CMD_GET_BOARD_ATTR 0x1c6 27653 #define MC_CMD_GET_BOARD_ATTR_MSGSET 0x1c6 27654 #undef MC_CMD_0x1c6_PRIVILEGE_CTG 27655 27656 #define MC_CMD_0x1c6_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27657 27658 /* MC_CMD_GET_BOARD_ATTR_IN msgrequest */ 27659 #define MC_CMD_GET_BOARD_ATTR_IN_LEN 0 27660 27661 /* MC_CMD_GET_BOARD_ATTR_OUT msgresponse */ 27662 #define MC_CMD_GET_BOARD_ATTR_OUT_LEN 16 27663 /* Defines board capabilities and validity of attributes returned in this 27664 * response-message. 27665 */ 27666 #define MC_CMD_GET_BOARD_ATTR_OUT_FLAGS_OFST 0 27667 #define MC_CMD_GET_BOARD_ATTR_OUT_FLAGS_LEN 4 27668 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_FAN_OFST 0 27669 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_FAN_LBN 0 27670 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_FAN_WIDTH 1 27671 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_SOC_OFST 0 27672 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_SOC_LBN 1 27673 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_SOC_WIDTH 1 27674 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_AUX_POWER_OFST 0 27675 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_AUX_POWER_LBN 2 27676 #define MC_CMD_GET_BOARD_ATTR_OUT_HAS_AUX_POWER_WIDTH 1 27677 #define MC_CMD_GET_BOARD_ATTR_OUT_ATTRIBUTES_OFST 4 27678 #define MC_CMD_GET_BOARD_ATTR_OUT_ATTRIBUTES_LEN 4 27679 #define MC_CMD_GET_BOARD_ATTR_OUT_SOC_EE_OFST 4 27680 #define MC_CMD_GET_BOARD_ATTR_OUT_SOC_EE_LBN 0 27681 #define MC_CMD_GET_BOARD_ATTR_OUT_SOC_EE_WIDTH 1 27682 #define MC_CMD_GET_BOARD_ATTR_OUT_SUC_EE_OFST 4 27683 #define MC_CMD_GET_BOARD_ATTR_OUT_SUC_EE_LBN 1 27684 #define MC_CMD_GET_BOARD_ATTR_OUT_SUC_EE_WIDTH 1 27685 #define MC_CMD_GET_BOARD_ATTR_OUT_FPGA_VOLTAGES_SUPPORTED_OFST 4 27686 #define MC_CMD_GET_BOARD_ATTR_OUT_FPGA_VOLTAGES_SUPPORTED_LBN 16 27687 #define MC_CMD_GET_BOARD_ATTR_OUT_FPGA_VOLTAGES_SUPPORTED_WIDTH 8 27688 /* enum: The FPGA voltage on the adapter can be set to low */ 27689 #define MC_CMD_FPGA_VOLTAGE_LOW 0x0 27690 /* enum: The FPGA voltage on the adapter can be set to regular */ 27691 #define MC_CMD_FPGA_VOLTAGE_REG 0x1 27692 /* enum: The FPGA voltage on the adapter can be set to high */ 27693 #define MC_CMD_FPGA_VOLTAGE_HIGH 0x2 27694 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_COUNT_OFST 4 27695 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_COUNT_LBN 24 27696 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_COUNT_WIDTH 8 27697 /* An array of cage types on the board */ 27698 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_OFST 8 27699 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_LEN 1 27700 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_NUM 8 27701 /* enum: The cages are not known */ 27702 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_UNKNOWN 0x0 27703 /* enum: The cages are SFP/SFP+ */ 27704 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_SFP 0x1 27705 /* enum: The cages are QSFP/QSFP+ */ 27706 #define MC_CMD_GET_BOARD_ATTR_OUT_CAGE_TYPE_QSFP 0x2 27707 27708 27709 /***********************************/ 27710 /* MC_CMD_GET_SOC_STATE 27711 * Retrieve current state of the System-on-Chip. This command is valid when 27712 * MC_CMD_GET_BOARD_ATTR:HAS_SOC is set. 27713 */ 27714 #define MC_CMD_GET_SOC_STATE 0x1c7 27715 #define MC_CMD_GET_SOC_STATE_MSGSET 0x1c7 27716 #undef MC_CMD_0x1c7_PRIVILEGE_CTG 27717 27718 #define MC_CMD_0x1c7_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27719 27720 /* MC_CMD_GET_SOC_STATE_IN msgrequest */ 27721 #define MC_CMD_GET_SOC_STATE_IN_LEN 0 27722 27723 /* MC_CMD_GET_SOC_STATE_OUT msgresponse */ 27724 #define MC_CMD_GET_SOC_STATE_OUT_LEN 12 27725 /* Status flags for the SoC */ 27726 #define MC_CMD_GET_SOC_STATE_OUT_FLAGS_OFST 0 27727 #define MC_CMD_GET_SOC_STATE_OUT_FLAGS_LEN 4 27728 #define MC_CMD_GET_SOC_STATE_OUT_SHOULD_THROTTLE_OFST 0 27729 #define MC_CMD_GET_SOC_STATE_OUT_SHOULD_THROTTLE_LBN 0 27730 #define MC_CMD_GET_SOC_STATE_OUT_SHOULD_THROTTLE_WIDTH 1 27731 #define MC_CMD_GET_SOC_STATE_OUT_OS_RECOVERY_REQUIRED_OFST 0 27732 #define MC_CMD_GET_SOC_STATE_OUT_OS_RECOVERY_REQUIRED_LBN 1 27733 #define MC_CMD_GET_SOC_STATE_OUT_OS_RECOVERY_REQUIRED_WIDTH 1 27734 #define MC_CMD_GET_SOC_STATE_OUT_WDT_FIRED_OFST 0 27735 #define MC_CMD_GET_SOC_STATE_OUT_WDT_FIRED_LBN 2 27736 #define MC_CMD_GET_SOC_STATE_OUT_WDT_FIRED_WIDTH 1 27737 /* Status fields for the SoC */ 27738 #define MC_CMD_GET_SOC_STATE_OUT_ATTRIBUTES_OFST 4 27739 #define MC_CMD_GET_SOC_STATE_OUT_ATTRIBUTES_LEN 4 27740 #define MC_CMD_GET_SOC_STATE_OUT_RUN_STATE_OFST 4 27741 #define MC_CMD_GET_SOC_STATE_OUT_RUN_STATE_LBN 0 27742 #define MC_CMD_GET_SOC_STATE_OUT_RUN_STATE_WIDTH 8 27743 /* enum: Power on (set by SUC on power up) */ 27744 #define MC_CMD_GET_SOC_STATE_OUT_SOC_BOOT 0x0 27745 /* enum: Running bootloader */ 27746 #define MC_CMD_GET_SOC_STATE_OUT_SOC_BOOTLOADER 0x1 27747 /* enum: Bootloader has started OS. OS is booting */ 27748 #define MC_CMD_GET_SOC_STATE_OUT_SOC_OS_START 0x2 27749 /* enum: OS is running */ 27750 #define MC_CMD_GET_SOC_STATE_OUT_SOC_OS_RUNNING 0x3 27751 /* enum: Maintenance OS is running */ 27752 #define MC_CMD_GET_SOC_STATE_OUT_SOC_OS_MAINTENANCE 0x4 27753 /* Number of SoC resets since power on */ 27754 #define MC_CMD_GET_SOC_STATE_OUT_RESET_COUNT_OFST 8 27755 #define MC_CMD_GET_SOC_STATE_OUT_RESET_COUNT_LEN 4 27756 27757 27758 /***********************************/ 27759 /* MC_CMD_CHECK_SCHEDULER_CREDITS 27760 * For debugging purposes. For each source and destination node in the hardware 27761 * schedulers, check whether the number of credits is as it should be. This 27762 * should only be used when the NIC is idle, because collection is not atomic 27763 * and because the expected credit counts are only meaningful when no traffic 27764 * is flowing. 27765 */ 27766 #define MC_CMD_CHECK_SCHEDULER_CREDITS 0x1c8 27767 #define MC_CMD_CHECK_SCHEDULER_CREDITS_MSGSET 0x1c8 27768 #undef MC_CMD_0x1c8_PRIVILEGE_CTG 27769 27770 #define MC_CMD_0x1c8_PRIVILEGE_CTG SRIOV_CTG_ADMIN 27771 27772 /* MC_CMD_CHECK_SCHEDULER_CREDITS_IN msgrequest */ 27773 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_LEN 8 27774 /* Flags for the request */ 27775 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_FLAGS_OFST 0 27776 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_FLAGS_LEN 4 27777 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_REPORT_ALL_OFST 0 27778 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_REPORT_ALL_LBN 0 27779 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_REPORT_ALL_WIDTH 1 27780 /* If there are too many results to fit into an MCDI response, they're split 27781 * into pages. This field specifies which (0-indexed) page to request. A 27782 * request with PAGE=0 will snapshot the results, and subsequent requests with 27783 * PAGE>0 will return data from the most recent snapshot. The GENERATION field 27784 * in the response allows callers to verify that all responses correspond to 27785 * the same snapshot. 27786 */ 27787 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_PAGE_OFST 4 27788 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_PAGE_LEN 4 27789 27790 /* MC_CMD_CHECK_SCHEDULER_CREDITS_OUT msgresponse */ 27791 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_LENMIN 16 27792 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_LENMAX 240 27793 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_LENMAX_MCDI2 1008 27794 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_LEN(num) (16+16*(num)) 27795 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_NUM(len) (((len)-16)/16) 27796 /* The total number of results (across all pages). */ 27797 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_TOTAL_RESULTS_OFST 0 27798 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_TOTAL_RESULTS_LEN 4 27799 /* The number of pages that the response is split across. */ 27800 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_NUM_PAGES_OFST 4 27801 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_NUM_PAGES_LEN 4 27802 /* The number of results in this response. */ 27803 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_THIS_PAGE_OFST 8 27804 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_THIS_PAGE_LEN 4 27805 /* Result generation count. Incremented any time a request is made with PAGE=0. 27806 */ 27807 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_GENERATION_OFST 12 27808 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_GENERATION_LEN 4 27809 /* The results, as an array of SCHED_CREDIT_CHECK_RESULT structures. */ 27810 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_OFST 16 27811 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_LEN 16 27812 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_MINNUM 0 27813 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_MAXNUM 14 27814 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_MAXNUM_MCDI2 62 27815 27816 /* FUNCTION_PERSONALITY structuredef: The meanings of the personalities are 27817 * defined in SF-120734-TC with more information in SF-122717-TC. 27818 */ 27819 #define FUNCTION_PERSONALITY_LEN 4 27820 #define FUNCTION_PERSONALITY_ID_OFST 0 27821 #define FUNCTION_PERSONALITY_ID_LEN 4 27822 /* enum: Function has no assigned personality */ 27823 #define FUNCTION_PERSONALITY_NULL 0x0 27824 /* enum: Function has an EF100-style function control window and VI windows 27825 * with both EF100 and vDPA doorbells. 27826 */ 27827 #define FUNCTION_PERSONALITY_EF100 0x1 27828 /* enum: Function has virtio net device configuration registers and doorbells 27829 * for virtio queue pairs. 27830 */ 27831 #define FUNCTION_PERSONALITY_VIRTIO_NET 0x2 27832 /* enum: Function has virtio block device configuration registers and a 27833 * doorbell for a single virtqueue. 27834 */ 27835 #define FUNCTION_PERSONALITY_VIRTIO_BLK 0x3 27836 /* enum: Function is a Xilinx acceleration device - management function */ 27837 #define FUNCTION_PERSONALITY_ACCEL_MGMT 0x4 27838 /* enum: Function is a Xilinx acceleration device - user function */ 27839 #define FUNCTION_PERSONALITY_ACCEL_USR 0x5 27840 #define FUNCTION_PERSONALITY_ID_LBN 0 27841 #define FUNCTION_PERSONALITY_ID_WIDTH 32 27842 27843 27844 /***********************************/ 27845 /* MC_CMD_VIRTIO_GET_FEATURES 27846 * Get a list of the virtio features supported by the device. 27847 */ 27848 #define MC_CMD_VIRTIO_GET_FEATURES 0x168 27849 #define MC_CMD_VIRTIO_GET_FEATURES_MSGSET 0x168 27850 #undef MC_CMD_0x168_PRIVILEGE_CTG 27851 27852 #define MC_CMD_0x168_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27853 27854 /* MC_CMD_VIRTIO_GET_FEATURES_IN msgrequest */ 27855 #define MC_CMD_VIRTIO_GET_FEATURES_IN_LEN 4 27856 /* Type of device to get features for. Matches the device id as defined by the 27857 * virtio spec. 27858 */ 27859 #define MC_CMD_VIRTIO_GET_FEATURES_IN_DEVICE_ID_OFST 0 27860 #define MC_CMD_VIRTIO_GET_FEATURES_IN_DEVICE_ID_LEN 4 27861 /* enum: Reserved. Do not use. */ 27862 #define MC_CMD_VIRTIO_GET_FEATURES_IN_RESERVED 0x0 27863 /* enum: Net device. */ 27864 #define MC_CMD_VIRTIO_GET_FEATURES_IN_NET 0x1 27865 /* enum: Block device. */ 27866 #define MC_CMD_VIRTIO_GET_FEATURES_IN_BLOCK 0x2 27867 27868 /* MC_CMD_VIRTIO_GET_FEATURES_OUT msgresponse */ 27869 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_LEN 8 27870 /* Features supported by the device. The result is a bitfield in the format of 27871 * the feature bits of the specified device type as defined in the virtIO 1.1 27872 * specification ( https://docs.oasis- 27873 * open.org/virtio/virtio/v1.1/csprd01/virtio-v1.1-csprd01.pdf ) 27874 */ 27875 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_OFST 0 27876 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LEN 8 27877 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_OFST 0 27878 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_LEN 4 27879 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_LBN 0 27880 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_WIDTH 32 27881 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_OFST 4 27882 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_LEN 4 27883 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_LBN 32 27884 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_WIDTH 32 27885 27886 27887 /***********************************/ 27888 /* MC_CMD_VIRTIO_TEST_FEATURES 27889 * Query whether a given set of features is supported. Fails with ENOSUP if the 27890 * driver requests a feature the device doesn't support. Fails with EINVAL if 27891 * the driver fails to request a feature which the device requires. 27892 */ 27893 #define MC_CMD_VIRTIO_TEST_FEATURES 0x169 27894 #define MC_CMD_VIRTIO_TEST_FEATURES_MSGSET 0x169 27895 #undef MC_CMD_0x169_PRIVILEGE_CTG 27896 27897 #define MC_CMD_0x169_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27898 27899 /* MC_CMD_VIRTIO_TEST_FEATURES_IN msgrequest */ 27900 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_LEN 16 27901 /* Type of device to test features for. Matches the device id as defined by the 27902 * virtio spec. 27903 */ 27904 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_DEVICE_ID_OFST 0 27905 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_DEVICE_ID_LEN 4 27906 /* Enum values, see field(s): */ 27907 /* MC_CMD_VIRTIO_GET_FEATURES/MC_CMD_VIRTIO_GET_FEATURES_IN/DEVICE_ID */ 27908 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_RESERVED_OFST 4 27909 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_RESERVED_LEN 4 27910 /* Features requested. Same format as the returned value from 27911 * MC_CMD_VIRTIO_GET_FEATURES. 27912 */ 27913 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_OFST 8 27914 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LEN 8 27915 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_OFST 8 27916 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_LEN 4 27917 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_LBN 64 27918 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_WIDTH 32 27919 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_OFST 12 27920 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_LEN 4 27921 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_LBN 96 27922 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_WIDTH 32 27923 27924 /* MC_CMD_VIRTIO_TEST_FEATURES_OUT msgresponse */ 27925 #define MC_CMD_VIRTIO_TEST_FEATURES_OUT_LEN 0 27926 27927 27928 /***********************************/ 27929 /* MC_CMD_VIRTIO_GET_CAPABILITIES 27930 * Get virtio capabilities supported by the device. Returns general virtio 27931 * capabilities and limitations of the hardware / firmware implementation 27932 * (hardware device as a whole), rather than that of individual configured 27933 * virtio devices. At present, only the absolute maximum number of queues 27934 * allowed on multi-queue devices is returned. Response is expected to be 27935 * extended as necessary in the future. 27936 */ 27937 #define MC_CMD_VIRTIO_GET_CAPABILITIES 0x1d3 27938 #define MC_CMD_VIRTIO_GET_CAPABILITIES_MSGSET 0x1d3 27939 #undef MC_CMD_0x1d3_PRIVILEGE_CTG 27940 27941 #define MC_CMD_0x1d3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27942 27943 /* MC_CMD_VIRTIO_GET_CAPABILITIES_IN msgrequest */ 27944 #define MC_CMD_VIRTIO_GET_CAPABILITIES_IN_LEN 4 27945 /* Type of device to get capabilities for. Matches the device id as defined by 27946 * the virtio spec. 27947 */ 27948 #define MC_CMD_VIRTIO_GET_CAPABILITIES_IN_DEVICE_ID_OFST 0 27949 #define MC_CMD_VIRTIO_GET_CAPABILITIES_IN_DEVICE_ID_LEN 4 27950 /* Enum values, see field(s): */ 27951 /* MC_CMD_VIRTIO_GET_FEATURES/MC_CMD_VIRTIO_GET_FEATURES_IN/DEVICE_ID */ 27952 27953 /* MC_CMD_VIRTIO_GET_CAPABILITIES_OUT msgresponse */ 27954 #define MC_CMD_VIRTIO_GET_CAPABILITIES_OUT_LEN 4 27955 /* Maximum number of queues supported for a single device instance */ 27956 #define MC_CMD_VIRTIO_GET_CAPABILITIES_OUT_MAX_QUEUES_OFST 0 27957 #define MC_CMD_VIRTIO_GET_CAPABILITIES_OUT_MAX_QUEUES_LEN 4 27958 27959 27960 /***********************************/ 27961 /* MC_CMD_VIRTIO_INIT_QUEUE 27962 * Create a virtio virtqueue. Fails with EALREADY if the queue already exists. 27963 * Fails with ENOSUP if a feature is requested that isn't supported. Fails with 27964 * EINVAL if a required feature isn't requested, or any other parameter is 27965 * invalid. 27966 */ 27967 #define MC_CMD_VIRTIO_INIT_QUEUE 0x16a 27968 #define MC_CMD_VIRTIO_INIT_QUEUE_MSGSET 0x16a 27969 #undef MC_CMD_0x16a_PRIVILEGE_CTG 27970 27971 #define MC_CMD_0x16a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27972 27973 /* MC_CMD_VIRTIO_INIT_QUEUE_REQ msgrequest */ 27974 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_LEN 68 27975 /* Type of virtqueue to create. A network rxq and a txq can exist at the same 27976 * time on a single VI. 27977 */ 27978 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_QUEUE_TYPE_OFST 0 27979 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_QUEUE_TYPE_LEN 1 27980 /* enum: A network device receive queue */ 27981 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_NET_RXQ 0x0 27982 /* enum: A network device transmit queue */ 27983 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_NET_TXQ 0x1 27984 /* enum: A block device request queue */ 27985 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_BLOCK 0x2 27986 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED_OFST 1 27987 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED_LEN 1 27988 /* If the calling function is a PF and this field is not VF_NULL, create the 27989 * queue on the specified child VF instead of on the PF. 27990 */ 27991 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_TARGET_VF_OFST 2 27992 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_TARGET_VF_LEN 2 27993 /* enum: No VF, create queue on the PF. */ 27994 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_VF_NULL 0xffff 27995 /* Desired instance. This is the function-local index of the associated VI, not 27996 * the virtqueue number as counted by the virtqueue spec. 27997 */ 27998 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INSTANCE_OFST 4 27999 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INSTANCE_LEN 4 28000 /* Queue size, in entries. Must be a power of two. */ 28001 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_SIZE_OFST 8 28002 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_SIZE_LEN 4 28003 /* Flags */ 28004 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FLAGS_OFST 12 28005 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FLAGS_LEN 4 28006 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USE_PASID_OFST 12 28007 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USE_PASID_LBN 0 28008 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USE_PASID_WIDTH 1 28009 /* Address of the descriptor table in the virtqueue. */ 28010 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_OFST 16 28011 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LEN 8 28012 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_OFST 16 28013 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_LEN 4 28014 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_LBN 128 28015 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_WIDTH 32 28016 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_OFST 20 28017 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_LEN 4 28018 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_LBN 160 28019 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_WIDTH 32 28020 /* Address of the available ring in the virtqueue. */ 28021 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_OFST 24 28022 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LEN 8 28023 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_OFST 24 28024 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_LEN 4 28025 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_LBN 192 28026 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_WIDTH 32 28027 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_OFST 28 28028 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_LEN 4 28029 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_LBN 224 28030 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_WIDTH 32 28031 /* Address of the used ring in the virtqueue. */ 28032 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_OFST 32 28033 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LEN 8 28034 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_OFST 32 28035 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_LEN 4 28036 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_LBN 256 28037 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_WIDTH 32 28038 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_OFST 36 28039 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_LEN 4 28040 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_LBN 288 28041 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_WIDTH 32 28042 /* PASID to use on PCIe transactions involving this queue. Ignored if the 28043 * USE_PASID flag is not set. 28044 */ 28045 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_PASID_OFST 40 28046 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_PASID_LEN 4 28047 /* Which MSIX vector to use for this virtqueue, or NO_VECTOR if MSIX should not 28048 * be used. 28049 */ 28050 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MSIX_VECTOR_OFST 44 28051 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MSIX_VECTOR_LEN 2 28052 /* enum: Do not enable interrupts for this virtqueue */ 28053 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_NO_VECTOR 0xffff 28054 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED2_OFST 46 28055 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED2_LEN 2 28056 /* Virtio features to apply to this queue. Same format as the in the virtio 28057 * spec and in the return from MC_CMD_VIRTIO_GET_FEATURES. Must be a subset of 28058 * the features returned from MC_CMD_VIRTIO_GET_FEATURES. Features are per- 28059 * queue because with vDPA multiple queues on the same function can be passed 28060 * through to different virtual hosts as independent devices. 28061 */ 28062 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_OFST 48 28063 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LEN 8 28064 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_OFST 48 28065 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_LEN 4 28066 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_LBN 384 28067 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_WIDTH 32 28068 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_OFST 52 28069 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_LEN 4 28070 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_LBN 416 28071 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_WIDTH 32 28072 /* Enum values, see field(s): */ 28073 /* MC_CMD_VIRTIO_GET_FEATURES/MC_CMD_VIRTIO_GET_FEATURES_OUT/FEATURES */ 28074 /* The initial producer index for this queue's used ring. If this queue is 28075 * being created to be migrated into, this should be the FINAL_PIDX value 28076 * returned by MC_CMD_VIRTIO_FINI_QUEUE of the queue being migrated from. 28077 * Otherwise, it should be zero. 28078 */ 28079 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_PIDX_OFST 56 28080 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_PIDX_LEN 4 28081 /* The initial consumer index for this queue's available ring. If this queue is 28082 * being created to be migrated into, this should be the FINAL_CIDX value 28083 * returned by MC_CMD_VIRTIO_FINI_QUEUE of the queue being migrated from. 28084 * Otherwise, it should be zero. 28085 */ 28086 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_CIDX_OFST 60 28087 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_CIDX_LEN 4 28088 /* A MAE_MPORT_SELECTOR defining which mport this queue should be associated 28089 * with. Use MAE_MPORT_SELECTOR_ASSIGNED to request the default mport for the 28090 * function this queue is being created on. 28091 */ 28092 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MPORT_SELECTOR_OFST 64 28093 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MPORT_SELECTOR_LEN 4 28094 28095 /* MC_CMD_VIRTIO_INIT_QUEUE_RESP msgresponse */ 28096 #define MC_CMD_VIRTIO_INIT_QUEUE_RESP_LEN 0 28097 28098 28099 /***********************************/ 28100 /* MC_CMD_VIRTIO_FINI_QUEUE 28101 * Destroy a virtio virtqueue 28102 */ 28103 #define MC_CMD_VIRTIO_FINI_QUEUE 0x16b 28104 #define MC_CMD_VIRTIO_FINI_QUEUE_MSGSET 0x16b 28105 #undef MC_CMD_0x16b_PRIVILEGE_CTG 28106 28107 #define MC_CMD_0x16b_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28108 28109 /* MC_CMD_VIRTIO_FINI_QUEUE_REQ msgrequest */ 28110 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_LEN 8 28111 /* Type of virtqueue to destroy. */ 28112 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_QUEUE_TYPE_OFST 0 28113 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_QUEUE_TYPE_LEN 1 28114 /* Enum values, see field(s): */ 28115 /* MC_CMD_VIRTIO_INIT_QUEUE/MC_CMD_VIRTIO_INIT_QUEUE_REQ/QUEUE_TYPE */ 28116 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_RESERVED_OFST 1 28117 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_RESERVED_LEN 1 28118 /* If the calling function is a PF and this field is not VF_NULL, destroy the 28119 * queue on the specified child VF instead of on the PF. 28120 */ 28121 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_TARGET_VF_OFST 2 28122 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_TARGET_VF_LEN 2 28123 /* enum: No VF, destroy the queue on the PF. */ 28124 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_VF_NULL 0xffff 28125 /* Instance to destroy */ 28126 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_INSTANCE_OFST 4 28127 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_INSTANCE_LEN 4 28128 28129 /* MC_CMD_VIRTIO_FINI_QUEUE_RESP msgresponse */ 28130 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_LEN 8 28131 /* The producer index of the used ring when the queue was stopped. */ 28132 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_PIDX_OFST 0 28133 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_PIDX_LEN 4 28134 /* The consumer index of the available ring when the queue was stopped. */ 28135 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_CIDX_OFST 4 28136 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_CIDX_LEN 4 28137 28138 28139 /***********************************/ 28140 /* MC_CMD_VIRTIO_GET_DOORBELL_OFFSET 28141 * Get the offset in the BAR of the doorbells for a VI. Doesn't require the 28142 * queue(s) to be allocated. 28143 */ 28144 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET 0x16c 28145 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_MSGSET 0x16c 28146 #undef MC_CMD_0x16c_PRIVILEGE_CTG 28147 28148 #define MC_CMD_0x16c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 28149 28150 /* MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ msgrequest */ 28151 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_LEN 8 28152 /* Type of device to get information for. Matches the device id as defined by 28153 * the virtio spec. 28154 */ 28155 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_DEVICE_ID_OFST 0 28156 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_DEVICE_ID_LEN 1 28157 /* Enum values, see field(s): */ 28158 /* MC_CMD_VIRTIO_GET_FEATURES/MC_CMD_VIRTIO_GET_FEATURES_IN/DEVICE_ID */ 28159 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_RESERVED_OFST 1 28160 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_RESERVED_LEN 1 28161 /* If the calling function is a PF and this field is not VF_NULL, query the VI 28162 * on the specified child VF instead of on the PF. 28163 */ 28164 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_TARGET_VF_OFST 2 28165 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_TARGET_VF_LEN 2 28166 /* enum: No VF, query the PF. */ 28167 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_VF_NULL 0xffff 28168 /* VI instance to query */ 28169 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_INSTANCE_OFST 4 28170 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_INSTANCE_LEN 4 28171 28172 /* MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP msgresponse */ 28173 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_LEN 8 28174 /* Offset of RX doorbell in BAR */ 28175 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_RX_DBL_OFFSET_OFST 0 28176 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_RX_DBL_OFFSET_LEN 4 28177 /* Offset of TX doorbell in BAR */ 28178 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_TX_DBL_OFFSET_OFST 4 28179 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_TX_DBL_OFFSET_LEN 4 28180 28181 /* MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP msgresponse */ 28182 #define MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP_LEN 4 28183 /* Offset of request doorbell in BAR */ 28184 #define MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP_DBL_OFFSET_OFST 0 28185 #define MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP_DBL_OFFSET_LEN 4 28186 28187 /* PCIE_FUNCTION structuredef: Structure representing a PCIe function ID 28188 * (interface/PF/VF tuple) 28189 */ 28190 #define PCIE_FUNCTION_LEN 8 28191 /* PCIe PF function number */ 28192 #define PCIE_FUNCTION_PF_OFST 0 28193 #define PCIE_FUNCTION_PF_LEN 2 28194 /* enum: Wildcard value representing any available function (e.g in resource 28195 * allocation requests) 28196 */ 28197 #define PCIE_FUNCTION_PF_ANY 0xfffe 28198 /* enum: Value representing invalid (null) function */ 28199 #define PCIE_FUNCTION_PF_NULL 0xffff 28200 #define PCIE_FUNCTION_PF_LBN 0 28201 #define PCIE_FUNCTION_PF_WIDTH 16 28202 /* PCIe VF Function number (PF relative) */ 28203 #define PCIE_FUNCTION_VF_OFST 2 28204 #define PCIE_FUNCTION_VF_LEN 2 28205 /* enum: Wildcard value representing any available function (e.g in resource 28206 * allocation requests) 28207 */ 28208 #define PCIE_FUNCTION_VF_ANY 0xfffe 28209 /* enum: Function is a PF (when PF != PF_NULL) or invalid function (when PF == 28210 * PF_NULL) 28211 */ 28212 #define PCIE_FUNCTION_VF_NULL 0xffff 28213 #define PCIE_FUNCTION_VF_LBN 16 28214 #define PCIE_FUNCTION_VF_WIDTH 16 28215 /* PCIe interface of the function. Values should be taken from the 28216 * PCIE_INTERFACE enum 28217 */ 28218 #define PCIE_FUNCTION_INTF_OFST 4 28219 #define PCIE_FUNCTION_INTF_LEN 4 28220 /* enum: Host PCIe interface. (Alias for HOST_PRIMARY, provided for backwards 28221 * compatibility) 28222 */ 28223 #define PCIE_FUNCTION_INTF_HOST 0x0 28224 /* enum: Application Processor interface (alias for NIC_EMBEDDED, provided for 28225 * backwards compatibility) 28226 */ 28227 #define PCIE_FUNCTION_INTF_AP 0x1 28228 #define PCIE_FUNCTION_INTF_LBN 32 28229 #define PCIE_FUNCTION_INTF_WIDTH 32 28230 28231 /* QUEUE_ID structuredef: Structure representing an absolute queue identifier 28232 * (absolute VI number + VI relative queue number). On Keystone, a VI can 28233 * contain multiple queues (at present, up to 2), each with separate controls 28234 * for direction. This structure is required to uniquely identify the absolute 28235 * source queue for descriptor proxy functions. 28236 */ 28237 #define QUEUE_ID_LEN 4 28238 /* Absolute VI number */ 28239 #define QUEUE_ID_ABS_VI_OFST 0 28240 #define QUEUE_ID_ABS_VI_LEN 2 28241 #define QUEUE_ID_ABS_VI_LBN 0 28242 #define QUEUE_ID_ABS_VI_WIDTH 16 28243 /* Relative queue number within the VI */ 28244 #define QUEUE_ID_REL_QUEUE_LBN 16 28245 #define QUEUE_ID_REL_QUEUE_WIDTH 1 28246 #define QUEUE_ID_RESERVED_LBN 17 28247 #define QUEUE_ID_RESERVED_WIDTH 15 28248 28249 28250 /***********************************/ 28251 /* MC_CMD_DESC_PROXY_FUNC_CREATE 28252 * Descriptor proxy functions are abstract devices that forward all request 28253 * submitted to the host PCIe function (descriptors submitted to Virtio or 28254 * EF100 queues) to be handled on another function (most commonly on the 28255 * embedded Application Processor), via EF100 descriptor proxy, memory-to- 28256 * memory and descriptor-to-completion mechanisms. Primary user is Virtio-blk 28257 * subsystem, see SF-122927-TC. This function allocates a new descriptor proxy 28258 * function on the host and assigns a user-defined label. The actual function 28259 * configuration is not persisted until the caller configures it with 28260 * MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN and commits with 28261 * MC_CMD_DESC_PROXY_FUNC_COMMIT_IN. 28262 */ 28263 #define MC_CMD_DESC_PROXY_FUNC_CREATE 0x172 28264 #define MC_CMD_DESC_PROXY_FUNC_CREATE_MSGSET 0x172 28265 #undef MC_CMD_0x172_PRIVILEGE_CTG 28266 28267 #define MC_CMD_0x172_PRIVILEGE_CTG SRIOV_CTG_ADMIN 28268 28269 /* MC_CMD_DESC_PROXY_FUNC_CREATE_IN msgrequest */ 28270 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_LEN 52 28271 /* PCIe Function ID to allocate (as struct PCIE_FUNCTION). Set to 28272 * {PF_ANY,VF_ANY,interface} for "any available function" Set to 28273 * {PF_ANY,VF_NULL,interface} for "any available PF" 28274 */ 28275 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_OFST 0 28276 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LEN 8 28277 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LO_OFST 0 28278 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LO_LEN 4 28279 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LO_LBN 0 28280 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LO_WIDTH 32 28281 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_HI_OFST 4 28282 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_HI_LEN 4 28283 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_HI_LBN 32 28284 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_HI_WIDTH 32 28285 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_PF_OFST 0 28286 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_PF_LEN 2 28287 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_VF_OFST 2 28288 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_VF_LEN 2 28289 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_INTF_OFST 4 28290 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_INTF_LEN 4 28291 /* The personality to set. The meanings of the personalities are defined in 28292 * SF-120734-TC with more information in SF-122717-TC. At present, we only 28293 * support proxying for VIRTIO_BLK 28294 */ 28295 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_PERSONALITY_OFST 8 28296 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_PERSONALITY_LEN 4 28297 /* Enum values, see field(s): */ 28298 /* FUNCTION_PERSONALITY/ID */ 28299 /* User-defined label (zero-terminated ASCII string) to uniquely identify the 28300 * function 28301 */ 28302 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_LABEL_OFST 12 28303 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_LABEL_LEN 40 28304 28305 /* MC_CMD_DESC_PROXY_FUNC_CREATE_OUT msgresponse */ 28306 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_LEN 12 28307 /* Handle to the descriptor proxy function */ 28308 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_HANDLE_OFST 0 28309 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_HANDLE_LEN 4 28310 /* Allocated function ID (as struct PCIE_FUNCTION) */ 28311 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_OFST 4 28312 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LEN 8 28313 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LO_OFST 4 28314 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LO_LEN 4 28315 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LO_LBN 32 28316 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LO_WIDTH 32 28317 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_HI_OFST 8 28318 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_HI_LEN 4 28319 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_HI_LBN 64 28320 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_HI_WIDTH 32 28321 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_PF_OFST 4 28322 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_PF_LEN 2 28323 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_VF_OFST 6 28324 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_VF_LEN 2 28325 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_INTF_OFST 8 28326 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_INTF_LEN 4 28327 28328 28329 /***********************************/ 28330 /* MC_CMD_DESC_PROXY_FUNC_DESTROY 28331 * Remove an existing descriptor proxy function. Underlying function 28332 * personality and configuration reverts back to factory default. Function 28333 * configuration is committed immediately to specified store and any function 28334 * ownership is released. 28335 */ 28336 #define MC_CMD_DESC_PROXY_FUNC_DESTROY 0x173 28337 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_MSGSET 0x173 28338 #undef MC_CMD_0x173_PRIVILEGE_CTG 28339 28340 #define MC_CMD_0x173_PRIVILEGE_CTG SRIOV_CTG_ADMIN 28341 28342 /* MC_CMD_DESC_PROXY_FUNC_DESTROY_IN msgrequest */ 28343 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_IN_LEN 44 28344 /* User-defined label (zero-terminated ASCII string) to uniquely identify the 28345 * function 28346 */ 28347 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_IN_LABEL_OFST 0 28348 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_IN_LABEL_LEN 40 28349 /* Store from which to remove function configuration */ 28350 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_IN_STORE_OFST 40 28351 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_IN_STORE_LEN 4 28352 /* Enum values, see field(s): */ 28353 /* MC_CMD_DESC_PROXY_FUNC_COMMIT/MC_CMD_DESC_PROXY_FUNC_COMMIT_IN/STORE */ 28354 28355 /* MC_CMD_DESC_PROXY_FUNC_DESTROY_OUT msgresponse */ 28356 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_OUT_LEN 0 28357 28358 /* VIRTIO_BLK_CONFIG structuredef: Virtio block device configuration. See 28359 * Virtio specification v1.1, Sections 5.2.3 and 6 for definition of feature 28360 * bits. See Virtio specification v1.1, Section 5.2.4 (struct 28361 * virtio_blk_config) for definition of remaining configuration fields 28362 */ 28363 #define VIRTIO_BLK_CONFIG_LEN 68 28364 /* Virtio block device features to advertise, per Virtio 1.1, 5.2.3 and 6 */ 28365 #define VIRTIO_BLK_CONFIG_FEATURES_OFST 0 28366 #define VIRTIO_BLK_CONFIG_FEATURES_LEN 8 28367 #define VIRTIO_BLK_CONFIG_FEATURES_LO_OFST 0 28368 #define VIRTIO_BLK_CONFIG_FEATURES_LO_LEN 4 28369 #define VIRTIO_BLK_CONFIG_FEATURES_LO_LBN 0 28370 #define VIRTIO_BLK_CONFIG_FEATURES_LO_WIDTH 32 28371 #define VIRTIO_BLK_CONFIG_FEATURES_HI_OFST 4 28372 #define VIRTIO_BLK_CONFIG_FEATURES_HI_LEN 4 28373 #define VIRTIO_BLK_CONFIG_FEATURES_HI_LBN 32 28374 #define VIRTIO_BLK_CONFIG_FEATURES_HI_WIDTH 32 28375 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BARRIER_OFST 0 28376 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BARRIER_LBN 0 28377 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BARRIER_WIDTH 1 28378 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SIZE_MAX_OFST 0 28379 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SIZE_MAX_LBN 1 28380 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SIZE_MAX_WIDTH 1 28381 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SEG_MAX_OFST 0 28382 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SEG_MAX_LBN 2 28383 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SEG_MAX_WIDTH 1 28384 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_GEOMETRY_OFST 0 28385 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_GEOMETRY_LBN 4 28386 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_GEOMETRY_WIDTH 1 28387 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_RO_OFST 0 28388 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_RO_LBN 5 28389 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_RO_WIDTH 1 28390 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BLK_SIZE_OFST 0 28391 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BLK_SIZE_LBN 6 28392 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BLK_SIZE_WIDTH 1 28393 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SCSI_OFST 0 28394 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SCSI_LBN 7 28395 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SCSI_WIDTH 1 28396 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_FLUSH_OFST 0 28397 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_FLUSH_LBN 9 28398 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_FLUSH_WIDTH 1 28399 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_TOPOLOGY_OFST 0 28400 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_TOPOLOGY_LBN 10 28401 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_TOPOLOGY_WIDTH 1 28402 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_CONFIG_WCE_OFST 0 28403 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_CONFIG_WCE_LBN 11 28404 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_CONFIG_WCE_WIDTH 1 28405 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_MQ_OFST 0 28406 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_MQ_LBN 12 28407 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_MQ_WIDTH 1 28408 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_DISCARD_OFST 0 28409 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_DISCARD_LBN 13 28410 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_DISCARD_WIDTH 1 28411 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_WRITE_ZEROES_OFST 0 28412 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_WRITE_ZEROES_LBN 14 28413 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_WRITE_ZEROES_WIDTH 1 28414 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_INDIRECT_DESC_OFST 0 28415 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_INDIRECT_DESC_LBN 28 28416 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_INDIRECT_DESC_WIDTH 1 28417 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_EVENT_IDX_OFST 0 28418 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_EVENT_IDX_LBN 29 28419 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_EVENT_IDX_WIDTH 1 28420 #define VIRTIO_BLK_CONFIG_VIRTIO_F_VERSION_1_OFST 0 28421 #define VIRTIO_BLK_CONFIG_VIRTIO_F_VERSION_1_LBN 32 28422 #define VIRTIO_BLK_CONFIG_VIRTIO_F_VERSION_1_WIDTH 1 28423 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ACCESS_PLATFORM_OFST 0 28424 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ACCESS_PLATFORM_LBN 33 28425 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ACCESS_PLATFORM_WIDTH 1 28426 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_PACKED_OFST 0 28427 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_PACKED_LBN 34 28428 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_PACKED_WIDTH 1 28429 #define VIRTIO_BLK_CONFIG_VIRTIO_F_IN_ORDER_OFST 0 28430 #define VIRTIO_BLK_CONFIG_VIRTIO_F_IN_ORDER_LBN 35 28431 #define VIRTIO_BLK_CONFIG_VIRTIO_F_IN_ORDER_WIDTH 1 28432 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ORDER_PLATFORM_OFST 0 28433 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ORDER_PLATFORM_LBN 36 28434 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ORDER_PLATFORM_WIDTH 1 28435 #define VIRTIO_BLK_CONFIG_VIRTIO_F_SR_IOV_OFST 0 28436 #define VIRTIO_BLK_CONFIG_VIRTIO_F_SR_IOV_LBN 37 28437 #define VIRTIO_BLK_CONFIG_VIRTIO_F_SR_IOV_WIDTH 1 28438 #define VIRTIO_BLK_CONFIG_VIRTIO_F_NOTIFICATION_DATA_OFST 0 28439 #define VIRTIO_BLK_CONFIG_VIRTIO_F_NOTIFICATION_DATA_LBN 38 28440 #define VIRTIO_BLK_CONFIG_VIRTIO_F_NOTIFICATION_DATA_WIDTH 1 28441 #define VIRTIO_BLK_CONFIG_FEATURES_LBN 0 28442 #define VIRTIO_BLK_CONFIG_FEATURES_WIDTH 64 28443 /* The capacity of the device (expressed in 512-byte sectors) */ 28444 #define VIRTIO_BLK_CONFIG_CAPACITY_OFST 8 28445 #define VIRTIO_BLK_CONFIG_CAPACITY_LEN 8 28446 #define VIRTIO_BLK_CONFIG_CAPACITY_LO_OFST 8 28447 #define VIRTIO_BLK_CONFIG_CAPACITY_LO_LEN 4 28448 #define VIRTIO_BLK_CONFIG_CAPACITY_LO_LBN 64 28449 #define VIRTIO_BLK_CONFIG_CAPACITY_LO_WIDTH 32 28450 #define VIRTIO_BLK_CONFIG_CAPACITY_HI_OFST 12 28451 #define VIRTIO_BLK_CONFIG_CAPACITY_HI_LEN 4 28452 #define VIRTIO_BLK_CONFIG_CAPACITY_HI_LBN 96 28453 #define VIRTIO_BLK_CONFIG_CAPACITY_HI_WIDTH 32 28454 #define VIRTIO_BLK_CONFIG_CAPACITY_LBN 64 28455 #define VIRTIO_BLK_CONFIG_CAPACITY_WIDTH 64 28456 /* Maximum size of any single segment. Only valid when VIRTIO_BLK_F_SIZE_MAX is 28457 * set. 28458 */ 28459 #define VIRTIO_BLK_CONFIG_SIZE_MAX_OFST 16 28460 #define VIRTIO_BLK_CONFIG_SIZE_MAX_LEN 4 28461 #define VIRTIO_BLK_CONFIG_SIZE_MAX_LBN 128 28462 #define VIRTIO_BLK_CONFIG_SIZE_MAX_WIDTH 32 28463 /* Maximum number of segments in a request. Only valid when 28464 * VIRTIO_BLK_F_SEG_MAX is set. 28465 */ 28466 #define VIRTIO_BLK_CONFIG_SEG_MAX_OFST 20 28467 #define VIRTIO_BLK_CONFIG_SEG_MAX_LEN 4 28468 #define VIRTIO_BLK_CONFIG_SEG_MAX_LBN 160 28469 #define VIRTIO_BLK_CONFIG_SEG_MAX_WIDTH 32 28470 /* Disk-style geometry - cylinders. Only valid when VIRTIO_BLK_F_GEOMETRY is 28471 * set. 28472 */ 28473 #define VIRTIO_BLK_CONFIG_CYLINDERS_OFST 24 28474 #define VIRTIO_BLK_CONFIG_CYLINDERS_LEN 2 28475 #define VIRTIO_BLK_CONFIG_CYLINDERS_LBN 192 28476 #define VIRTIO_BLK_CONFIG_CYLINDERS_WIDTH 16 28477 /* Disk-style geometry - heads. Only valid when VIRTIO_BLK_F_GEOMETRY is set. 28478 */ 28479 #define VIRTIO_BLK_CONFIG_HEADS_OFST 26 28480 #define VIRTIO_BLK_CONFIG_HEADS_LEN 1 28481 #define VIRTIO_BLK_CONFIG_HEADS_LBN 208 28482 #define VIRTIO_BLK_CONFIG_HEADS_WIDTH 8 28483 /* Disk-style geometry - sectors. Only valid when VIRTIO_BLK_F_GEOMETRY is set. 28484 */ 28485 #define VIRTIO_BLK_CONFIG_SECTORS_OFST 27 28486 #define VIRTIO_BLK_CONFIG_SECTORS_LEN 1 28487 #define VIRTIO_BLK_CONFIG_SECTORS_LBN 216 28488 #define VIRTIO_BLK_CONFIG_SECTORS_WIDTH 8 28489 /* Block size of disk. Only valid when VIRTIO_BLK_F_BLK_SIZE is set. */ 28490 #define VIRTIO_BLK_CONFIG_BLK_SIZE_OFST 28 28491 #define VIRTIO_BLK_CONFIG_BLK_SIZE_LEN 4 28492 #define VIRTIO_BLK_CONFIG_BLK_SIZE_LBN 224 28493 #define VIRTIO_BLK_CONFIG_BLK_SIZE_WIDTH 32 28494 /* Block topology - number of logical blocks per physical block (log2). Only 28495 * valid when VIRTIO_BLK_F_TOPOLOGY is set. 28496 */ 28497 #define VIRTIO_BLK_CONFIG_PHYSICAL_BLOCK_EXP_OFST 32 28498 #define VIRTIO_BLK_CONFIG_PHYSICAL_BLOCK_EXP_LEN 1 28499 #define VIRTIO_BLK_CONFIG_PHYSICAL_BLOCK_EXP_LBN 256 28500 #define VIRTIO_BLK_CONFIG_PHYSICAL_BLOCK_EXP_WIDTH 8 28501 /* Block topology - offset of first aligned logical block. Only valid when 28502 * VIRTIO_BLK_F_TOPOLOGY is set. 28503 */ 28504 #define VIRTIO_BLK_CONFIG_ALIGNMENT_OFFSET_OFST 33 28505 #define VIRTIO_BLK_CONFIG_ALIGNMENT_OFFSET_LEN 1 28506 #define VIRTIO_BLK_CONFIG_ALIGNMENT_OFFSET_LBN 264 28507 #define VIRTIO_BLK_CONFIG_ALIGNMENT_OFFSET_WIDTH 8 28508 /* Block topology - suggested minimum I/O size in blocks. Only valid when 28509 * VIRTIO_BLK_F_TOPOLOGY is set. 28510 */ 28511 #define VIRTIO_BLK_CONFIG_MIN_IO_SIZE_OFST 34 28512 #define VIRTIO_BLK_CONFIG_MIN_IO_SIZE_LEN 2 28513 #define VIRTIO_BLK_CONFIG_MIN_IO_SIZE_LBN 272 28514 #define VIRTIO_BLK_CONFIG_MIN_IO_SIZE_WIDTH 16 28515 /* Block topology - optimal (suggested maximum) I/O size in blocks. Only valid 28516 * when VIRTIO_BLK_F_TOPOLOGY is set. 28517 */ 28518 #define VIRTIO_BLK_CONFIG_OPT_IO_SIZE_OFST 36 28519 #define VIRTIO_BLK_CONFIG_OPT_IO_SIZE_LEN 4 28520 #define VIRTIO_BLK_CONFIG_OPT_IO_SIZE_LBN 288 28521 #define VIRTIO_BLK_CONFIG_OPT_IO_SIZE_WIDTH 32 28522 /* Unused, set to zero. Note that virtio_blk_config.writeback is volatile and 28523 * not carried in config data. 28524 */ 28525 #define VIRTIO_BLK_CONFIG_UNUSED0_OFST 40 28526 #define VIRTIO_BLK_CONFIG_UNUSED0_LEN 2 28527 #define VIRTIO_BLK_CONFIG_UNUSED0_LBN 320 28528 #define VIRTIO_BLK_CONFIG_UNUSED0_WIDTH 16 28529 /* Number of queues. Only valid if the VIRTIO_BLK_F_MQ feature is negotiated. 28530 */ 28531 #define VIRTIO_BLK_CONFIG_NUM_QUEUES_OFST 42 28532 #define VIRTIO_BLK_CONFIG_NUM_QUEUES_LEN 2 28533 #define VIRTIO_BLK_CONFIG_NUM_QUEUES_LBN 336 28534 #define VIRTIO_BLK_CONFIG_NUM_QUEUES_WIDTH 16 28535 /* Maximum discard sectors size, in 512-byte units. Only valid if 28536 * VIRTIO_BLK_F_DISCARD is set. 28537 */ 28538 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SECTORS_OFST 44 28539 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SECTORS_LEN 4 28540 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SECTORS_LBN 352 28541 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SECTORS_WIDTH 32 28542 /* Maximum discard segment number. Only valid if VIRTIO_BLK_F_DISCARD is set. 28543 */ 28544 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SEG_OFST 48 28545 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SEG_LEN 4 28546 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SEG_LBN 384 28547 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SEG_WIDTH 32 28548 /* Discard sector alignment, in 512-byte units. Only valid if 28549 * VIRTIO_BLK_F_DISCARD is set. 28550 */ 28551 #define VIRTIO_BLK_CONFIG_DISCARD_SECTOR_ALIGNMENT_OFST 52 28552 #define VIRTIO_BLK_CONFIG_DISCARD_SECTOR_ALIGNMENT_LEN 4 28553 #define VIRTIO_BLK_CONFIG_DISCARD_SECTOR_ALIGNMENT_LBN 416 28554 #define VIRTIO_BLK_CONFIG_DISCARD_SECTOR_ALIGNMENT_WIDTH 32 28555 /* Maximum write zeroes sectors size, in 512-byte units. Only valid if 28556 * VIRTIO_BLK_F_WRITE_ZEROES is set. 28557 */ 28558 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SECTORS_OFST 56 28559 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SECTORS_LEN 4 28560 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SECTORS_LBN 448 28561 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SECTORS_WIDTH 32 28562 /* Maximum write zeroes segment number. Only valid if VIRTIO_BLK_F_WRITE_ZEROES 28563 * is set. 28564 */ 28565 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SEG_OFST 60 28566 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SEG_LEN 4 28567 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SEG_LBN 480 28568 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SEG_WIDTH 32 28569 /* Write zeroes request can result in deallocating one or more sectors. Only 28570 * valid if VIRTIO_BLK_F_WRITE_ZEROES is set. 28571 */ 28572 #define VIRTIO_BLK_CONFIG_WRITE_ZEROES_MAY_UNMAP_OFST 64 28573 #define VIRTIO_BLK_CONFIG_WRITE_ZEROES_MAY_UNMAP_LEN 1 28574 #define VIRTIO_BLK_CONFIG_WRITE_ZEROES_MAY_UNMAP_LBN 512 28575 #define VIRTIO_BLK_CONFIG_WRITE_ZEROES_MAY_UNMAP_WIDTH 8 28576 /* Unused, set to zero. */ 28577 #define VIRTIO_BLK_CONFIG_UNUSED1_OFST 65 28578 #define VIRTIO_BLK_CONFIG_UNUSED1_LEN 3 28579 #define VIRTIO_BLK_CONFIG_UNUSED1_LBN 520 28580 #define VIRTIO_BLK_CONFIG_UNUSED1_WIDTH 24 28581 28582 28583 /***********************************/ 28584 /* MC_CMD_DESC_PROXY_FUNC_CONFIG_SET 28585 * Set configuration for an existing descriptor proxy function. Configuration 28586 * data must match function personality. The actual function configuration is 28587 * not persisted until the caller commits with MC_CMD_DESC_PROXY_FUNC_COMMIT_IN 28588 */ 28589 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET 0x174 28590 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_MSGSET 0x174 28591 #undef MC_CMD_0x174_PRIVILEGE_CTG 28592 28593 #define MC_CMD_0x174_PRIVILEGE_CTG SRIOV_CTG_ADMIN 28594 28595 /* MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN msgrequest */ 28596 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_LENMIN 20 28597 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_LENMAX 252 28598 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_LENMAX_MCDI2 1020 28599 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_LEN(num) (20+1*(num)) 28600 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_NUM(len) (((len)-20)/1) 28601 /* Handle to descriptor proxy function (as returned by 28602 * MC_CMD_DESC_PROXY_FUNC_OPEN) 28603 */ 28604 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_HANDLE_OFST 0 28605 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_HANDLE_LEN 4 28606 /* Reserved for future extension, set to zero. */ 28607 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_RESERVED_OFST 4 28608 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_RESERVED_LEN 16 28609 /* Configuration data. Format of configuration data is determined implicitly 28610 * from function personality referred to by HANDLE. Currently, only supported 28611 * format is VIRTIO_BLK_CONFIG. 28612 */ 28613 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_OFST 20 28614 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_LEN 1 28615 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_MINNUM 0 28616 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_MAXNUM 232 28617 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_MAXNUM_MCDI2 1000 28618 28619 /* MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_OUT msgresponse */ 28620 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_OUT_LEN 0 28621 28622 28623 /***********************************/ 28624 /* MC_CMD_DESC_PROXY_FUNC_COMMIT 28625 * Commit function configuration to non-volatile or volatile store. Once 28626 * configuration is applied to hardware (which may happen immediately or on 28627 * next function/device reset) a DESC_PROXY_FUNC_CONFIG_SET MCDI event will be 28628 * delivered to callers MCDI event queue. 28629 */ 28630 #define MC_CMD_DESC_PROXY_FUNC_COMMIT 0x175 28631 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_MSGSET 0x175 28632 #undef MC_CMD_0x175_PRIVILEGE_CTG 28633 28634 #define MC_CMD_0x175_PRIVILEGE_CTG SRIOV_CTG_ADMIN 28635 28636 /* MC_CMD_DESC_PROXY_FUNC_COMMIT_IN msgrequest */ 28637 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_LEN 8 28638 /* Handle to descriptor proxy function (as returned by 28639 * MC_CMD_DESC_PROXY_FUNC_OPEN) 28640 */ 28641 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_HANDLE_OFST 0 28642 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_HANDLE_LEN 4 28643 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_STORE_OFST 4 28644 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_STORE_LEN 4 28645 /* enum: Store into non-volatile (dynamic) config */ 28646 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_NON_VOLATILE 0x0 28647 /* enum: Store into volatile (ephemeral) config */ 28648 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_VOLATILE 0x1 28649 28650 /* MC_CMD_DESC_PROXY_FUNC_COMMIT_OUT msgresponse */ 28651 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_OUT_LEN 4 28652 /* Generation count to be delivered in an event once configuration becomes live 28653 */ 28654 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_OUT_CONFIG_GENERATION_OFST 0 28655 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_OUT_CONFIG_GENERATION_LEN 4 28656 28657 28658 /***********************************/ 28659 /* MC_CMD_DESC_PROXY_FUNC_OPEN 28660 * Retrieve a handle for an existing descriptor proxy function. Returns an 28661 * integer handle, valid until function is deallocated, MC rebooted or power- 28662 * cycle. Returns ENODEV if no function with given label exists. 28663 */ 28664 #define MC_CMD_DESC_PROXY_FUNC_OPEN 0x176 28665 #define MC_CMD_DESC_PROXY_FUNC_OPEN_MSGSET 0x176 28666 #undef MC_CMD_0x176_PRIVILEGE_CTG 28667 28668 #define MC_CMD_0x176_PRIVILEGE_CTG SRIOV_CTG_ADMIN 28669 28670 /* MC_CMD_DESC_PROXY_FUNC_OPEN_IN msgrequest */ 28671 #define MC_CMD_DESC_PROXY_FUNC_OPEN_IN_LEN 40 28672 /* User-defined label (zero-terminated ASCII string) to uniquely identify the 28673 * function 28674 */ 28675 #define MC_CMD_DESC_PROXY_FUNC_OPEN_IN_LABEL_OFST 0 28676 #define MC_CMD_DESC_PROXY_FUNC_OPEN_IN_LABEL_LEN 40 28677 28678 /* MC_CMD_DESC_PROXY_FUNC_OPEN_OUT msgresponse */ 28679 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_LENMIN 40 28680 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_LENMAX 252 28681 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_LENMAX_MCDI2 1020 28682 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_LEN(num) (40+1*(num)) 28683 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_NUM(len) (((len)-40)/1) 28684 /* Handle to the descriptor proxy function */ 28685 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_HANDLE_OFST 0 28686 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_HANDLE_LEN 4 28687 /* PCIe Function ID (as struct PCIE_FUNCTION) */ 28688 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_OFST 4 28689 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LEN 8 28690 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LO_OFST 4 28691 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LO_LEN 4 28692 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LO_LBN 32 28693 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LO_WIDTH 32 28694 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_HI_OFST 8 28695 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_HI_LEN 4 28696 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_HI_LBN 64 28697 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_HI_WIDTH 32 28698 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_PF_OFST 4 28699 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_PF_LEN 2 28700 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_VF_OFST 6 28701 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_VF_LEN 2 28702 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_INTF_OFST 8 28703 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_INTF_LEN 4 28704 /* Function personality */ 28705 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_PERSONALITY_OFST 12 28706 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_PERSONALITY_LEN 4 28707 /* Enum values, see field(s): */ 28708 /* FUNCTION_PERSONALITY/ID */ 28709 /* Function configuration state */ 28710 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_STATUS_OFST 16 28711 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_STATUS_LEN 4 28712 /* enum: Function configuration is visible to the host (live) */ 28713 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_LIVE 0x0 28714 /* enum: Function configuration is pending reset */ 28715 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_PENDING 0x1 28716 /* enum: Function configuration is missing (created, but no configuration 28717 * committed) 28718 */ 28719 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_UNCONFIGURED 0x2 28720 /* Generation count to be delivered in an event once the configuration becomes 28721 * live (if status is "pending") 28722 */ 28723 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_GENERATION_OFST 20 28724 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_GENERATION_LEN 4 28725 /* Reserved for future extension, set to zero. */ 28726 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_RESERVED_OFST 24 28727 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_RESERVED_LEN 16 28728 /* Configuration data corresponding to function personality. Currently, only 28729 * supported format is VIRTIO_BLK_CONFIG. Not valid if status is UNCONFIGURED. 28730 */ 28731 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_OFST 40 28732 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_LEN 1 28733 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_MINNUM 0 28734 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_MAXNUM 212 28735 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_MAXNUM_MCDI2 980 28736 28737 28738 /***********************************/ 28739 /* MC_CMD_DESC_PROXY_FUNC_CLOSE 28740 * Releases a handle for an open descriptor proxy function. If proxying was 28741 * enabled on the device, the caller is expected to gracefully stop it using 28742 * MC_CMD_DESC_PROXY_FUNC_DISABLE prior to calling this function. Closing an 28743 * active device without disabling proxying will result in forced close, which 28744 * will put the device into a failed state and signal the host driver of the 28745 * error (for virtio, DEVICE_NEEDS_RESET flag would be set on the host side) 28746 */ 28747 #define MC_CMD_DESC_PROXY_FUNC_CLOSE 0x1a1 28748 #define MC_CMD_DESC_PROXY_FUNC_CLOSE_MSGSET 0x1a1 28749 #undef MC_CMD_0x1a1_PRIVILEGE_CTG 28750 28751 #define MC_CMD_0x1a1_PRIVILEGE_CTG SRIOV_CTG_ADMIN 28752 28753 /* MC_CMD_DESC_PROXY_FUNC_CLOSE_IN msgrequest */ 28754 #define MC_CMD_DESC_PROXY_FUNC_CLOSE_IN_LEN 4 28755 /* Handle to the descriptor proxy function */ 28756 #define MC_CMD_DESC_PROXY_FUNC_CLOSE_IN_HANDLE_OFST 0 28757 #define MC_CMD_DESC_PROXY_FUNC_CLOSE_IN_HANDLE_LEN 4 28758 28759 /* MC_CMD_DESC_PROXY_FUNC_CLOSE_OUT msgresponse */ 28760 #define MC_CMD_DESC_PROXY_FUNC_CLOSE_OUT_LEN 0 28761 28762 /* DESC_PROXY_FUNC_MAP structuredef */ 28763 #define DESC_PROXY_FUNC_MAP_LEN 52 28764 /* PCIe function ID (as struct PCIE_FUNCTION) */ 28765 #define DESC_PROXY_FUNC_MAP_FUNC_OFST 0 28766 #define DESC_PROXY_FUNC_MAP_FUNC_LEN 8 28767 #define DESC_PROXY_FUNC_MAP_FUNC_LO_OFST 0 28768 #define DESC_PROXY_FUNC_MAP_FUNC_LO_LEN 4 28769 #define DESC_PROXY_FUNC_MAP_FUNC_LO_LBN 0 28770 #define DESC_PROXY_FUNC_MAP_FUNC_LO_WIDTH 32 28771 #define DESC_PROXY_FUNC_MAP_FUNC_HI_OFST 4 28772 #define DESC_PROXY_FUNC_MAP_FUNC_HI_LEN 4 28773 #define DESC_PROXY_FUNC_MAP_FUNC_HI_LBN 32 28774 #define DESC_PROXY_FUNC_MAP_FUNC_HI_WIDTH 32 28775 #define DESC_PROXY_FUNC_MAP_FUNC_LBN 0 28776 #define DESC_PROXY_FUNC_MAP_FUNC_WIDTH 64 28777 #define DESC_PROXY_FUNC_MAP_FUNC_PF_OFST 0 28778 #define DESC_PROXY_FUNC_MAP_FUNC_PF_LEN 2 28779 #define DESC_PROXY_FUNC_MAP_FUNC_PF_LBN 0 28780 #define DESC_PROXY_FUNC_MAP_FUNC_PF_WIDTH 16 28781 #define DESC_PROXY_FUNC_MAP_FUNC_VF_OFST 2 28782 #define DESC_PROXY_FUNC_MAP_FUNC_VF_LEN 2 28783 #define DESC_PROXY_FUNC_MAP_FUNC_VF_LBN 16 28784 #define DESC_PROXY_FUNC_MAP_FUNC_VF_WIDTH 16 28785 #define DESC_PROXY_FUNC_MAP_FUNC_INTF_OFST 4 28786 #define DESC_PROXY_FUNC_MAP_FUNC_INTF_LEN 4 28787 #define DESC_PROXY_FUNC_MAP_FUNC_INTF_LBN 32 28788 #define DESC_PROXY_FUNC_MAP_FUNC_INTF_WIDTH 32 28789 /* Function personality */ 28790 #define DESC_PROXY_FUNC_MAP_PERSONALITY_OFST 8 28791 #define DESC_PROXY_FUNC_MAP_PERSONALITY_LEN 4 28792 /* Enum values, see field(s): */ 28793 /* FUNCTION_PERSONALITY/ID */ 28794 #define DESC_PROXY_FUNC_MAP_PERSONALITY_LBN 64 28795 #define DESC_PROXY_FUNC_MAP_PERSONALITY_WIDTH 32 28796 /* User-defined label (zero-terminated ASCII string) to uniquely identify the 28797 * function 28798 */ 28799 #define DESC_PROXY_FUNC_MAP_LABEL_OFST 12 28800 #define DESC_PROXY_FUNC_MAP_LABEL_LEN 40 28801 #define DESC_PROXY_FUNC_MAP_LABEL_LBN 96 28802 #define DESC_PROXY_FUNC_MAP_LABEL_WIDTH 320 28803 28804 28805 /***********************************/ 28806 /* MC_CMD_DESC_PROXY_FUNC_ENUM 28807 * Enumerate existing descriptor proxy functions 28808 */ 28809 #define MC_CMD_DESC_PROXY_FUNC_ENUM 0x177 28810 #define MC_CMD_DESC_PROXY_FUNC_ENUM_MSGSET 0x177 28811 #undef MC_CMD_0x177_PRIVILEGE_CTG 28812 28813 #define MC_CMD_0x177_PRIVILEGE_CTG SRIOV_CTG_ADMIN 28814 28815 /* MC_CMD_DESC_PROXY_FUNC_ENUM_IN msgrequest */ 28816 #define MC_CMD_DESC_PROXY_FUNC_ENUM_IN_LEN 4 28817 /* Starting index, set to 0 on first request. See 28818 * MC_CMD_DESC_PROXY_FUNC_ENUM_OUT/FLAGS. 28819 */ 28820 #define MC_CMD_DESC_PROXY_FUNC_ENUM_IN_START_IDX_OFST 0 28821 #define MC_CMD_DESC_PROXY_FUNC_ENUM_IN_START_IDX_LEN 4 28822 28823 /* MC_CMD_DESC_PROXY_FUNC_ENUM_OUT msgresponse */ 28824 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_LENMIN 4 28825 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_LENMAX 212 28826 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_LENMAX_MCDI2 992 28827 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_LEN(num) (4+52*(num)) 28828 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_NUM(len) (((len)-4)/52) 28829 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FLAGS_OFST 0 28830 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FLAGS_LEN 4 28831 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_MORE_DATA_OFST 0 28832 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_MORE_DATA_LBN 0 28833 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_MORE_DATA_WIDTH 1 28834 /* Function map, as array of DESC_PROXY_FUNC_MAP */ 28835 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_OFST 4 28836 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_LEN 52 28837 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_MINNUM 0 28838 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_MAXNUM 4 28839 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_MAXNUM_MCDI2 19 28840 28841 28842 /***********************************/ 28843 /* MC_CMD_DESC_PROXY_FUNC_ENABLE 28844 * Enable descriptor proxying for function into target event queue. Returns VI 28845 * allocation info for the proxy source function, so that the caller can map 28846 * absolute VI IDs from descriptor proxy events back to the originating 28847 * function. This is a legacy function that only supports single queue proxy 28848 * devices. It is also limited in that it can only be called after host driver 28849 * attach (once VI allocation is known) and will return MC_CMD_ERR_ENOTCONN 28850 * otherwise. For new code, see MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE which 28851 * supports multi-queue devices and has no dependency on host driver attach. 28852 */ 28853 #define MC_CMD_DESC_PROXY_FUNC_ENABLE 0x178 28854 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_MSGSET 0x178 28855 #undef MC_CMD_0x178_PRIVILEGE_CTG 28856 28857 #define MC_CMD_0x178_PRIVILEGE_CTG SRIOV_CTG_ADMIN 28858 28859 /* MC_CMD_DESC_PROXY_FUNC_ENABLE_IN msgrequest */ 28860 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_IN_LEN 8 28861 /* Handle to descriptor proxy function (as returned by 28862 * MC_CMD_DESC_PROXY_FUNC_OPEN) 28863 */ 28864 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_IN_HANDLE_OFST 0 28865 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_IN_HANDLE_LEN 4 28866 /* Descriptor proxy sink queue (caller function relative). Must be extended 28867 * width event queue 28868 */ 28869 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_IN_TARGET_EVQ_OFST 4 28870 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_IN_TARGET_EVQ_LEN 4 28871 28872 /* MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT msgresponse */ 28873 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT_LEN 8 28874 /* The number of VIs allocated on the function */ 28875 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT_VI_COUNT_OFST 0 28876 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT_VI_COUNT_LEN 4 28877 /* The base absolute VI number allocated to the function. */ 28878 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT_VI_BASE_OFST 4 28879 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT_VI_BASE_LEN 4 28880 28881 28882 /***********************************/ 28883 /* MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE 28884 * Enable descriptor proxying for a source queue on a host function into target 28885 * event queue. Source queue number is a relative virtqueue number on the 28886 * source function (0 to max_virtqueues-1). For a multi-queue device, the 28887 * caller must enable all source queues individually. To retrieve absolute VI 28888 * information for the source function (so that VI IDs from descriptor proxy 28889 * events can be mapped back to source function / queue) see 28890 * MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO 28891 */ 28892 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE 0x1d0 28893 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_MSGSET 0x1d0 28894 #undef MC_CMD_0x1d0_PRIVILEGE_CTG 28895 28896 #define MC_CMD_0x1d0_PRIVILEGE_CTG SRIOV_CTG_ADMIN 28897 28898 /* MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN msgrequest */ 28899 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_LEN 12 28900 /* Handle to descriptor proxy function (as returned by 28901 * MC_CMD_DESC_PROXY_FUNC_OPEN) 28902 */ 28903 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_HANDLE_OFST 0 28904 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_HANDLE_LEN 4 28905 /* Source relative queue number to enable proxying on */ 28906 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_SOURCE_QUEUE_OFST 4 28907 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_SOURCE_QUEUE_LEN 4 28908 /* Descriptor proxy sink queue (caller function relative). Must be extended 28909 * width event queue 28910 */ 28911 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_TARGET_EVQ_OFST 8 28912 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_IN_TARGET_EVQ_LEN 4 28913 28914 /* MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_OUT msgresponse */ 28915 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_QUEUE_OUT_LEN 0 28916 28917 28918 /***********************************/ 28919 /* MC_CMD_DESC_PROXY_FUNC_DISABLE 28920 * Disable descriptor proxying for function. For multi-queue functions, 28921 * disables all queues. 28922 */ 28923 #define MC_CMD_DESC_PROXY_FUNC_DISABLE 0x179 28924 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_MSGSET 0x179 28925 #undef MC_CMD_0x179_PRIVILEGE_CTG 28926 28927 #define MC_CMD_0x179_PRIVILEGE_CTG SRIOV_CTG_ADMIN 28928 28929 /* MC_CMD_DESC_PROXY_FUNC_DISABLE_IN msgrequest */ 28930 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_IN_LEN 4 28931 /* Handle to descriptor proxy function (as returned by 28932 * MC_CMD_DESC_PROXY_FUNC_OPEN) 28933 */ 28934 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_IN_HANDLE_OFST 0 28935 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_IN_HANDLE_LEN 4 28936 28937 /* MC_CMD_DESC_PROXY_FUNC_DISABLE_OUT msgresponse */ 28938 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_OUT_LEN 0 28939 28940 28941 /***********************************/ 28942 /* MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE 28943 * Disable descriptor proxying for a specific source queue on a function. 28944 */ 28945 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE 0x1d1 28946 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_MSGSET 0x1d1 28947 #undef MC_CMD_0x1d1_PRIVILEGE_CTG 28948 28949 #define MC_CMD_0x1d1_PRIVILEGE_CTG SRIOV_CTG_ADMIN 28950 28951 /* MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN msgrequest */ 28952 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN_LEN 8 28953 /* Handle to descriptor proxy function (as returned by 28954 * MC_CMD_DESC_PROXY_FUNC_OPEN) 28955 */ 28956 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN_HANDLE_OFST 0 28957 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN_HANDLE_LEN 4 28958 /* Source relative queue number to disable proxying on */ 28959 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN_SOURCE_QUEUE_OFST 4 28960 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_IN_SOURCE_QUEUE_LEN 4 28961 28962 /* MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_OUT msgresponse */ 28963 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_QUEUE_OUT_LEN 0 28964 28965 28966 /***********************************/ 28967 /* MC_CMD_DESC_PROXY_GET_VI_INFO 28968 * Returns absolute VI allocation information for the descriptor proxy source 28969 * function referenced by HANDLE, so that the caller can map absolute VI IDs 28970 * from descriptor proxy events back to the originating function and queue. The 28971 * call is only valid after the host driver for the source function has 28972 * attached (after receiving a driver attach event for the descriptor proxy 28973 * function) and will fail with ENOTCONN otherwise. 28974 */ 28975 #define MC_CMD_DESC_PROXY_GET_VI_INFO 0x1d2 28976 #define MC_CMD_DESC_PROXY_GET_VI_INFO_MSGSET 0x1d2 28977 #undef MC_CMD_0x1d2_PRIVILEGE_CTG 28978 28979 #define MC_CMD_0x1d2_PRIVILEGE_CTG SRIOV_CTG_ADMIN 28980 28981 /* MC_CMD_DESC_PROXY_GET_VI_INFO_IN msgrequest */ 28982 #define MC_CMD_DESC_PROXY_GET_VI_INFO_IN_LEN 4 28983 /* Handle to descriptor proxy function (as returned by 28984 * MC_CMD_DESC_PROXY_FUNC_OPEN) 28985 */ 28986 #define MC_CMD_DESC_PROXY_GET_VI_INFO_IN_HANDLE_OFST 0 28987 #define MC_CMD_DESC_PROXY_GET_VI_INFO_IN_HANDLE_LEN 4 28988 28989 /* MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT msgresponse */ 28990 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_LENMIN 0 28991 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_LENMAX 252 28992 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_LENMAX_MCDI2 1020 28993 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_LEN(num) (0+4*(num)) 28994 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_NUM(len) (((len)-0)/4) 28995 /* VI information (VI ID + VI relative queue number) for each of the source 28996 * queues (in order from 0 to max_virtqueues-1), as array of QUEUE_ID 28997 * structures. 28998 */ 28999 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_OFST 0 29000 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_LEN 4 29001 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_MINNUM 0 29002 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_MAXNUM 63 29003 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_MAXNUM_MCDI2 255 29004 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_ABS_VI_OFST 0 29005 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_ABS_VI_LEN 2 29006 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_REL_QUEUE_LBN 16 29007 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_REL_QUEUE_WIDTH 1 29008 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_RESERVED_LBN 17 29009 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_RESERVED_WIDTH 15 29010 29011 29012 /***********************************/ 29013 /* MC_CMD_GET_ADDR_SPC_ID 29014 * Get Address space identifier for use in mem2mem descriptors for a given 29015 * target. See SF-120734-TC for details on ADDR_SPC_IDs and mem2mem 29016 * descriptors. 29017 */ 29018 #define MC_CMD_GET_ADDR_SPC_ID 0x1a0 29019 #define MC_CMD_GET_ADDR_SPC_ID_MSGSET 0x1a0 29020 #undef MC_CMD_0x1a0_PRIVILEGE_CTG 29021 29022 #define MC_CMD_0x1a0_PRIVILEGE_CTG SRIOV_CTG_ADMIN 29023 29024 /* MC_CMD_GET_ADDR_SPC_ID_IN msgrequest */ 29025 #define MC_CMD_GET_ADDR_SPC_ID_IN_LEN 16 29026 /* Resource type to get ADDR_SPC_ID for */ 29027 #define MC_CMD_GET_ADDR_SPC_ID_IN_TYPE_OFST 0 29028 #define MC_CMD_GET_ADDR_SPC_ID_IN_TYPE_LEN 4 29029 /* enum: Address space ID for host/AP memory DMA over the same interface this 29030 * MCDI was called on 29031 */ 29032 #define MC_CMD_GET_ADDR_SPC_ID_IN_SELF 0x0 29033 /* enum: Address space ID for host/AP memory DMA via PCI interface and function 29034 * specified by FUNC 29035 */ 29036 #define MC_CMD_GET_ADDR_SPC_ID_IN_PCI_FUNC 0x1 29037 /* enum: Address space ID for host/AP memory DMA via PCI interface and function 29038 * specified by FUNC with PASID value specified by PASID 29039 */ 29040 #define MC_CMD_GET_ADDR_SPC_ID_IN_PCI_FUNC_PASID 0x2 29041 /* enum: Address space ID for host/AP memory DMA via PCI interface and function 29042 * specified by FUNC with PASID value of relative VI specified by VI 29043 */ 29044 #define MC_CMD_GET_ADDR_SPC_ID_IN_REL_VI 0x3 29045 /* enum: Address space ID for host/AP memory DMA via PCI interface, function 29046 * and PASID value of absolute VI specified by VI 29047 */ 29048 #define MC_CMD_GET_ADDR_SPC_ID_IN_ABS_VI 0x4 29049 /* enum: Address space ID for host memory DMA via PCI interface and function of 29050 * descriptor proxy function specified by HANDLE 29051 */ 29052 #define MC_CMD_GET_ADDR_SPC_ID_IN_DESC_PROXY_HANDLE 0x5 29053 /* enum: Address space ID for DMA to/from MC memory */ 29054 #define MC_CMD_GET_ADDR_SPC_ID_IN_MC_MEM 0x6 29055 /* enum: Address space ID for DMA to/from other SmartNIC memory (on-chip, DDR) 29056 */ 29057 #define MC_CMD_GET_ADDR_SPC_ID_IN_NIC_MEM 0x7 29058 /* PCIe Function ID (as struct PCIE_FUNCTION). Only valid if TYPE is PCI_FUNC, 29059 * PCI_FUNC_PASID or REL_VI. 29060 */ 29061 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_OFST 4 29062 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LEN 8 29063 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LO_OFST 4 29064 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LO_LEN 4 29065 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LO_LBN 32 29066 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LO_WIDTH 32 29067 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_HI_OFST 8 29068 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_HI_LEN 4 29069 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_HI_LBN 64 29070 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_HI_WIDTH 32 29071 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_PF_OFST 4 29072 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_PF_LEN 2 29073 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_VF_OFST 6 29074 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_VF_LEN 2 29075 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_INTF_OFST 8 29076 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_INTF_LEN 4 29077 /* PASID value. Only valid if TYPE is PCI_FUNC_PASID. */ 29078 #define MC_CMD_GET_ADDR_SPC_ID_IN_PASID_OFST 12 29079 #define MC_CMD_GET_ADDR_SPC_ID_IN_PASID_LEN 4 29080 /* Relative or absolute VI number. Only valid if TYPE is REL_VI or ABS_VI */ 29081 #define MC_CMD_GET_ADDR_SPC_ID_IN_VI_OFST 12 29082 #define MC_CMD_GET_ADDR_SPC_ID_IN_VI_LEN 4 29083 /* Descriptor proxy function handle. Only valid if TYPE is DESC_PROXY_HANDLE. 29084 */ 29085 #define MC_CMD_GET_ADDR_SPC_ID_IN_HANDLE_OFST 4 29086 #define MC_CMD_GET_ADDR_SPC_ID_IN_HANDLE_LEN 4 29087 29088 /* MC_CMD_GET_ADDR_SPC_ID_OUT msgresponse */ 29089 #define MC_CMD_GET_ADDR_SPC_ID_OUT_LEN 8 29090 /* Address Space ID for the requested target. Only the lower 36 bits are valid 29091 * in the current SmartNIC implementation. 29092 */ 29093 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_OFST 0 29094 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LEN 8 29095 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LO_OFST 0 29096 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LO_LEN 4 29097 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LO_LBN 0 29098 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LO_WIDTH 32 29099 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_HI_OFST 4 29100 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_HI_LEN 4 29101 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_HI_LBN 32 29102 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_HI_WIDTH 32 29103 29104 29105 /***********************************/ 29106 /* MC_CMD_GET_CLIENT_HANDLE 29107 * Obtain a handle for a client given a description of that client. N.B. this 29108 * command is subject to change given the open discussion about how PCIe 29109 * functions should be referenced on an iEP (integrated endpoint: functions 29110 * span multiple buses) and multihost (multiple PCIe interfaces) system. 29111 */ 29112 #define MC_CMD_GET_CLIENT_HANDLE 0x1c3 29113 #define MC_CMD_GET_CLIENT_HANDLE_MSGSET 0x1c3 29114 #undef MC_CMD_0x1c3_PRIVILEGE_CTG 29115 29116 #define MC_CMD_0x1c3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 29117 29118 /* MC_CMD_GET_CLIENT_HANDLE_IN msgrequest */ 29119 #define MC_CMD_GET_CLIENT_HANDLE_IN_LEN 12 29120 /* Type of client to get a client handle for */ 29121 #define MC_CMD_GET_CLIENT_HANDLE_IN_TYPE_OFST 0 29122 #define MC_CMD_GET_CLIENT_HANDLE_IN_TYPE_LEN 4 29123 /* enum: Obtain a client handle for a PCIe function-type client. */ 29124 #define MC_CMD_GET_CLIENT_HANDLE_IN_TYPE_FUNC 0x0 29125 /* PCIe Function ID (as struct PCIE_FUNCTION). Valid when TYPE==FUNC. Use: - 29126 * INTF=CALLER, PF=PF_NULL, VF=VF_NULL to refer to the calling function - 29127 * INTF=CALLER, PF=PF_NULL, VF=... to refer to a VF child of the calling PF or 29128 * a sibling VF of the calling VF. - INTF=CALLER, PF=..., VF=VF_NULL to refer 29129 * to a PF on the calling interface - INTF=CALLER, PF=..., VF=... to refer to a 29130 * VF on the calling interface - INTF=..., PF=..., VF=VF_NULL to refer to a PF 29131 * on a named interface - INTF=..., PF=..., VF=... to refer to a VF on a named 29132 * interface where ... refers to a small integer for the VF/PF fields, and to 29133 * values from the PCIE_INTERFACE enum for for the INTF field. It's only 29134 * meaningful to use INTF=CALLER within a structure that's an argument to 29135 * MC_CMD_DEVEL_GET_CLIENT_HANDLE. 29136 */ 29137 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_OFST 4 29138 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LEN 8 29139 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_OFST 4 29140 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_LEN 4 29141 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_LBN 32 29142 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_WIDTH 32 29143 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_OFST 8 29144 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_LEN 4 29145 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_LBN 64 29146 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_WIDTH 32 29147 /* enum: NULL value for the INTF field of struct PCIE_FUNCTION. Provided for 29148 * backwards compatibility only, callers should use PCIE_INTERFACE_CALLER. 29149 */ 29150 #define MC_CMD_GET_CLIENT_HANDLE_IN_PCIE_FUNCTION_INTF_NULL 0xffffffff 29151 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_PF_OFST 4 29152 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_PF_LEN 2 29153 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_VF_OFST 6 29154 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_VF_LEN 2 29155 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_INTF_OFST 8 29156 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_INTF_LEN 4 29157 29158 /* MC_CMD_GET_CLIENT_HANDLE_OUT msgresponse */ 29159 #define MC_CMD_GET_CLIENT_HANDLE_OUT_LEN 4 29160 #define MC_CMD_GET_CLIENT_HANDLE_OUT_HANDLE_OFST 0 29161 #define MC_CMD_GET_CLIENT_HANDLE_OUT_HANDLE_LEN 4 29162 29163 /* MAE_FIELD_FLAGS structuredef */ 29164 #define MAE_FIELD_FLAGS_LEN 4 29165 #define MAE_FIELD_FLAGS_FLAT_OFST 0 29166 #define MAE_FIELD_FLAGS_FLAT_LEN 4 29167 #define MAE_FIELD_FLAGS_SUPPORT_STATUS_OFST 0 29168 #define MAE_FIELD_FLAGS_SUPPORT_STATUS_LBN 0 29169 #define MAE_FIELD_FLAGS_SUPPORT_STATUS_WIDTH 6 29170 #define MAE_FIELD_FLAGS_MASK_AFFECTS_CLASS_OFST 0 29171 #define MAE_FIELD_FLAGS_MASK_AFFECTS_CLASS_LBN 6 29172 #define MAE_FIELD_FLAGS_MASK_AFFECTS_CLASS_WIDTH 1 29173 #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_OFST 0 29174 #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_LBN 7 29175 #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_WIDTH 1 29176 #define MAE_FIELD_FLAGS_FLAT_LBN 0 29177 #define MAE_FIELD_FLAGS_FLAT_WIDTH 32 29178 29179 /* MAE_ENC_FIELD_PAIRS structuredef: Mask and value pairs for all fields that 29180 * it makes sense to use to determine the encapsulation type of a packet. Its 29181 * intended use is to keep a common packing of fields across multiple MCDI 29182 * commands, keeping things inherently sychronised and allowing code shared. To 29183 * use in an MCDI command, the command should end with a variable length byte 29184 * array populated with this structure. Do not extend this structure. Instead, 29185 * create _Vx versions with the necessary fields appended. That way, the 29186 * existing semantics for extending MCDI commands are preserved. 29187 */ 29188 #define MAE_ENC_FIELD_PAIRS_LEN 156 29189 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_OFST 0 29190 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_LEN 4 29191 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_LBN 0 29192 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_WIDTH 32 29193 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_OFST 4 29194 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LEN 4 29195 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LBN 32 29196 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_WIDTH 32 29197 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_OFST 8 29198 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_LEN 2 29199 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_LBN 64 29200 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_WIDTH 16 29201 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_OFST 10 29202 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_LEN 2 29203 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_LBN 80 29204 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_WIDTH 16 29205 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_OFST 12 29206 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_LEN 2 29207 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_LBN 96 29208 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_WIDTH 16 29209 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_OFST 14 29210 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_LEN 2 29211 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_LBN 112 29212 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_WIDTH 16 29213 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_OFST 16 29214 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_LEN 2 29215 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_LBN 128 29216 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_WIDTH 16 29217 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_OFST 18 29218 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LEN 2 29219 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LBN 144 29220 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_WIDTH 16 29221 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_OFST 20 29222 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_LEN 2 29223 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_LBN 160 29224 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_WIDTH 16 29225 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_OFST 22 29226 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_LEN 2 29227 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_LBN 176 29228 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_WIDTH 16 29229 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_OFST 24 29230 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_LEN 2 29231 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_LBN 192 29232 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_WIDTH 16 29233 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_OFST 26 29234 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LEN 2 29235 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LBN 208 29236 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_WIDTH 16 29237 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_OFST 28 29238 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_LEN 6 29239 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_LBN 224 29240 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_WIDTH 48 29241 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_OFST 34 29242 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_LEN 6 29243 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_LBN 272 29244 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_WIDTH 48 29245 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_OFST 40 29246 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_LEN 6 29247 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_LBN 320 29248 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_WIDTH 48 29249 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_OFST 46 29250 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_LEN 6 29251 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_LBN 368 29252 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_WIDTH 48 29253 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_OFST 52 29254 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_LEN 4 29255 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_LBN 416 29256 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_WIDTH 32 29257 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_OFST 56 29258 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_LEN 4 29259 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_LBN 448 29260 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_WIDTH 32 29261 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_OFST 60 29262 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_LEN 16 29263 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_LBN 480 29264 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_WIDTH 128 29265 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_OFST 76 29266 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_LEN 16 29267 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_LBN 608 29268 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_WIDTH 128 29269 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_OFST 92 29270 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_LEN 4 29271 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_LBN 736 29272 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_WIDTH 32 29273 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_OFST 96 29274 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_LEN 4 29275 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_LBN 768 29276 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_WIDTH 32 29277 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_OFST 100 29278 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_LEN 16 29279 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_LBN 800 29280 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_WIDTH 128 29281 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_OFST 116 29282 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_LEN 16 29283 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_LBN 928 29284 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_WIDTH 128 29285 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_OFST 132 29286 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_LEN 1 29287 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_LBN 1056 29288 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_WIDTH 8 29289 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_OFST 133 29290 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_LEN 1 29291 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_LBN 1064 29292 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_WIDTH 8 29293 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_OFST 134 29294 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_LEN 1 29295 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_LBN 1072 29296 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_WIDTH 8 29297 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_OFST 135 29298 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_LEN 1 29299 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_LBN 1080 29300 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_WIDTH 8 29301 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_OFST 136 29302 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_LEN 1 29303 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_LBN 1088 29304 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_WIDTH 8 29305 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_OFST 137 29306 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_LEN 1 29307 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_LBN 1096 29308 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_WIDTH 8 29309 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_OFST 138 29310 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_LEN 1 29311 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_OFST 138 29312 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_LBN 0 29313 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_WIDTH 1 29314 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_OFST 138 29315 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_LBN 1 29316 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_WIDTH 1 29317 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_OFST 138 29318 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_LBN 2 29319 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_WIDTH 1 29320 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_LBN 1104 29321 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_WIDTH 8 29322 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_OFST 138 29323 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_LEN 1 29324 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_LBN 1104 29325 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_WIDTH 8 29326 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_OFST 139 29327 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_LEN 1 29328 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_MASK_OFST 139 29329 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_MASK_LBN 0 29330 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_MASK_WIDTH 1 29331 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_MASK_OFST 139 29332 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_MASK_LBN 1 29333 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_MASK_WIDTH 1 29334 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_MASK_OFST 139 29335 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_MASK_LBN 2 29336 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_MASK_WIDTH 1 29337 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_LBN 1112 29338 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_WIDTH 8 29339 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_OFST 139 29340 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_LEN 1 29341 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_LBN 1112 29342 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_WIDTH 8 29343 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_OFST 140 29344 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_LEN 4 29345 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_LBN 1120 29346 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_WIDTH 32 29347 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_OFST 144 29348 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_LEN 4 29349 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_LBN 1152 29350 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_WIDTH 32 29351 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_OFST 148 29352 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_LEN 2 29353 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_LBN 1184 29354 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_WIDTH 16 29355 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_OFST 150 29356 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_LEN 2 29357 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_LBN 1200 29358 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_WIDTH 16 29359 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_OFST 152 29360 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_LEN 2 29361 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_LBN 1216 29362 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_WIDTH 16 29363 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_OFST 154 29364 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_LEN 2 29365 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_LBN 1232 29366 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_WIDTH 16 29367 29368 /* MAE_FIELD_MASK_VALUE_PAIRS structuredef: Mask and value pairs for all fields 29369 * currently defined. Same semantics as MAE_ENC_FIELD_PAIRS. 29370 */ 29371 #define MAE_FIELD_MASK_VALUE_PAIRS_LEN 344 29372 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_OFST 0 29373 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_LEN 4 29374 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_LBN 0 29375 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_WIDTH 32 29376 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_OFST 4 29377 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LEN 4 29378 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LBN 32 29379 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_WIDTH 32 29380 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_OFST 8 29381 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_LEN 4 29382 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_LBN 64 29383 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_WIDTH 32 29384 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_OFST 12 29385 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_LEN 4 29386 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_LBN 96 29387 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_WIDTH 32 29388 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_OFST 16 29389 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_LEN 2 29390 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_LBN 128 29391 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_WIDTH 16 29392 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_OFST 18 29393 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_LEN 2 29394 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_LBN 144 29395 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_WIDTH 16 29396 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_OFST 20 29397 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_LEN 2 29398 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_LBN 160 29399 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_WIDTH 16 29400 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_OFST 22 29401 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_LEN 2 29402 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_LBN 176 29403 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_WIDTH 16 29404 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_OFST 24 29405 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_LEN 2 29406 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_LBN 192 29407 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_WIDTH 16 29408 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_OFST 26 29409 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_LEN 2 29410 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_LBN 208 29411 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_WIDTH 16 29412 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_OFST 28 29413 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_LEN 2 29414 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_LBN 224 29415 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_WIDTH 16 29416 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_OFST 30 29417 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_LEN 2 29418 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_LBN 240 29419 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_WIDTH 16 29420 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_OFST 32 29421 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_LEN 2 29422 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_LBN 256 29423 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_WIDTH 16 29424 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_OFST 34 29425 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_LEN 2 29426 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_LBN 272 29427 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_WIDTH 16 29428 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_OFST 36 29429 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_LEN 6 29430 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_LBN 288 29431 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_WIDTH 48 29432 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_OFST 42 29433 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_LEN 6 29434 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_LBN 336 29435 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_WIDTH 48 29436 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_OFST 48 29437 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_LEN 6 29438 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_LBN 384 29439 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_WIDTH 48 29440 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_OFST 54 29441 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_LEN 6 29442 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_LBN 432 29443 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_WIDTH 48 29444 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_OFST 60 29445 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_LEN 4 29446 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_LBN 480 29447 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_WIDTH 32 29448 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_OFST 64 29449 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_LEN 4 29450 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_LBN 512 29451 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_WIDTH 32 29452 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_OFST 68 29453 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_LEN 16 29454 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_LBN 544 29455 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_WIDTH 128 29456 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_OFST 84 29457 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_LEN 16 29458 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_LBN 672 29459 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_WIDTH 128 29460 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_OFST 100 29461 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_LEN 4 29462 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_LBN 800 29463 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_WIDTH 32 29464 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_OFST 104 29465 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_LEN 4 29466 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_LBN 832 29467 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_WIDTH 32 29468 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_OFST 108 29469 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_LEN 16 29470 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_LBN 864 29471 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_WIDTH 128 29472 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_OFST 124 29473 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_LEN 16 29474 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_LBN 992 29475 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_WIDTH 128 29476 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_OFST 140 29477 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_LEN 1 29478 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_LBN 1120 29479 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_WIDTH 8 29480 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_OFST 141 29481 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_LEN 1 29482 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_LBN 1128 29483 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_WIDTH 8 29484 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_OFST 142 29485 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_LEN 1 29486 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_LBN 1136 29487 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_WIDTH 8 29488 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_OFST 143 29489 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_LEN 1 29490 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_LBN 1144 29491 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_WIDTH 8 29492 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_OFST 144 29493 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_LEN 1 29494 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_LBN 1152 29495 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_WIDTH 8 29496 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_OFST 145 29497 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_LEN 1 29498 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_LBN 1160 29499 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_WIDTH 8 29500 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_OFST 148 29501 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_LEN 4 29502 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_LBN 1184 29503 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_WIDTH 32 29504 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_OFST 152 29505 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_LEN 4 29506 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_LBN 1216 29507 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_WIDTH 32 29508 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_OFST 156 29509 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_LEN 2 29510 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_LBN 1248 29511 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_WIDTH 16 29512 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_OFST 158 29513 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_LEN 2 29514 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_LBN 1264 29515 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_WIDTH 16 29516 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_OFST 160 29517 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_LEN 2 29518 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_LBN 1280 29519 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_WIDTH 16 29520 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_OFST 162 29521 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_LEN 2 29522 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_LBN 1296 29523 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_WIDTH 16 29524 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_OFST 164 29525 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_LEN 2 29526 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_LBN 1312 29527 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_WIDTH 16 29528 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_OFST 166 29529 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_LEN 2 29530 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_LBN 1328 29531 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_WIDTH 16 29532 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_OFST 168 29533 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_LEN 4 29534 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_LBN 1344 29535 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_WIDTH 32 29536 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_OFST 172 29537 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_LEN 4 29538 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_LBN 1376 29539 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_WIDTH 32 29540 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_OFST 176 29541 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_LEN 4 29542 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_LBN 1408 29543 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_WIDTH 32 29544 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_OFST 180 29545 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_LEN 4 29546 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_LBN 1440 29547 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_WIDTH 32 29548 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_OFST 184 29549 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_LEN 2 29550 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_LBN 1472 29551 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_WIDTH 16 29552 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_OFST 188 29553 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_LEN 2 29554 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_LBN 1504 29555 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_WIDTH 16 29556 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_OFST 192 29557 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_LEN 2 29558 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_LBN 1536 29559 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_WIDTH 16 29560 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_OFST 194 29561 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_LEN 2 29562 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_LBN 1552 29563 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_WIDTH 16 29564 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_OFST 196 29565 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_LEN 2 29566 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_LBN 1568 29567 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_WIDTH 16 29568 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_OFST 198 29569 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LEN 2 29570 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LBN 1584 29571 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_WIDTH 16 29572 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_OFST 200 29573 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_LEN 2 29574 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_LBN 1600 29575 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_WIDTH 16 29576 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_OFST 202 29577 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_LEN 2 29578 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_LBN 1616 29579 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_WIDTH 16 29580 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_OFST 204 29581 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_LEN 2 29582 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_LBN 1632 29583 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_WIDTH 16 29584 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_OFST 206 29585 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LEN 2 29586 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LBN 1648 29587 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_WIDTH 16 29588 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_OFST 208 29589 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_LEN 6 29590 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_LBN 1664 29591 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_WIDTH 48 29592 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_OFST 214 29593 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_LEN 6 29594 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_LBN 1712 29595 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_WIDTH 48 29596 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_OFST 220 29597 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_LEN 6 29598 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_LBN 1760 29599 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_WIDTH 48 29600 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_OFST 226 29601 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_LEN 6 29602 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_LBN 1808 29603 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_WIDTH 48 29604 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_OFST 232 29605 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_LEN 4 29606 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_LBN 1856 29607 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_WIDTH 32 29608 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_OFST 236 29609 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_LEN 4 29610 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_LBN 1888 29611 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_WIDTH 32 29612 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_OFST 240 29613 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_LEN 16 29614 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_LBN 1920 29615 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_WIDTH 128 29616 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_OFST 256 29617 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_LEN 16 29618 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_LBN 2048 29619 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_WIDTH 128 29620 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_OFST 272 29621 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_LEN 4 29622 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_LBN 2176 29623 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_WIDTH 32 29624 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_OFST 276 29625 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_LEN 4 29626 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_LBN 2208 29627 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_WIDTH 32 29628 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_OFST 280 29629 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_LEN 16 29630 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_LBN 2240 29631 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_WIDTH 128 29632 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_OFST 296 29633 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_LEN 16 29634 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_LBN 2368 29635 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_WIDTH 128 29636 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_OFST 312 29637 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_LEN 1 29638 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_LBN 2496 29639 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_WIDTH 8 29640 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_OFST 313 29641 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_LEN 1 29642 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_LBN 2504 29643 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_WIDTH 8 29644 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_OFST 314 29645 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_LEN 1 29646 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_LBN 2512 29647 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_WIDTH 8 29648 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_OFST 315 29649 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_LEN 1 29650 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_LBN 2520 29651 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_WIDTH 8 29652 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_OFST 316 29653 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_LEN 1 29654 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_LBN 2528 29655 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_WIDTH 8 29656 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_OFST 317 29657 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_LEN 1 29658 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_LBN 2536 29659 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_WIDTH 8 29660 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_OFST 320 29661 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_LEN 4 29662 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_LBN 2560 29663 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_WIDTH 32 29664 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_OFST 324 29665 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_LEN 4 29666 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_LBN 2592 29667 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_WIDTH 32 29668 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_OFST 328 29669 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_LEN 2 29670 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_LBN 2624 29671 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_WIDTH 16 29672 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_OFST 330 29673 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_LEN 2 29674 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_LBN 2640 29675 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_WIDTH 16 29676 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_OFST 332 29677 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_LEN 2 29678 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_LBN 2656 29679 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_WIDTH 16 29680 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_OFST 334 29681 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_LEN 2 29682 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_LBN 2672 29683 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_WIDTH 16 29684 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_OFST 336 29685 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_LEN 4 29686 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_LBN 2688 29687 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_WIDTH 32 29688 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_OFST 340 29689 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_LEN 4 29690 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_LBN 2720 29691 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_WIDTH 32 29692 29693 /* MAE_FIELD_MASK_VALUE_PAIRS_V2 structuredef */ 29694 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_LEN 372 29695 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_OFST 0 29696 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_LEN 4 29697 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_LBN 0 29698 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_WIDTH 32 29699 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_OFST 4 29700 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_LEN 4 29701 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_LBN 32 29702 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_WIDTH 32 29703 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_OFST 8 29704 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_LEN 4 29705 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_LBN 64 29706 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_WIDTH 32 29707 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_OFST 12 29708 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_LEN 4 29709 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_LBN 96 29710 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_WIDTH 32 29711 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_OFST 16 29712 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_LEN 2 29713 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_LBN 128 29714 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_WIDTH 16 29715 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_OFST 18 29716 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_LEN 2 29717 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_LBN 144 29718 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_WIDTH 16 29719 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_OFST 20 29720 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_LEN 2 29721 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_LBN 160 29722 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_WIDTH 16 29723 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_OFST 22 29724 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_LEN 2 29725 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_LBN 176 29726 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_WIDTH 16 29727 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_OFST 24 29728 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_LEN 2 29729 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_LBN 192 29730 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_WIDTH 16 29731 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_OFST 26 29732 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_LEN 2 29733 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_LBN 208 29734 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_WIDTH 16 29735 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_OFST 28 29736 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_LEN 2 29737 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_LBN 224 29738 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_WIDTH 16 29739 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_OFST 30 29740 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_LEN 2 29741 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_LBN 240 29742 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_WIDTH 16 29743 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_OFST 32 29744 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_LEN 2 29745 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_LBN 256 29746 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_WIDTH 16 29747 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_OFST 34 29748 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_LEN 2 29749 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_LBN 272 29750 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_WIDTH 16 29751 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_OFST 36 29752 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_LEN 6 29753 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_LBN 288 29754 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_WIDTH 48 29755 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_OFST 42 29756 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_LEN 6 29757 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_LBN 336 29758 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_WIDTH 48 29759 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_OFST 48 29760 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_LEN 6 29761 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_LBN 384 29762 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_WIDTH 48 29763 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_OFST 54 29764 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_LEN 6 29765 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_LBN 432 29766 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_WIDTH 48 29767 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_OFST 60 29768 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_LEN 4 29769 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_LBN 480 29770 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_WIDTH 32 29771 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_OFST 64 29772 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_LEN 4 29773 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_LBN 512 29774 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_WIDTH 32 29775 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_OFST 68 29776 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_LEN 16 29777 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_LBN 544 29778 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_WIDTH 128 29779 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_OFST 84 29780 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_LEN 16 29781 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_LBN 672 29782 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_WIDTH 128 29783 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_OFST 100 29784 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_LEN 4 29785 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_LBN 800 29786 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_WIDTH 32 29787 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_OFST 104 29788 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_LEN 4 29789 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_LBN 832 29790 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_WIDTH 32 29791 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_OFST 108 29792 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_LEN 16 29793 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_LBN 864 29794 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_WIDTH 128 29795 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_OFST 124 29796 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_LEN 16 29797 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_LBN 992 29798 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_WIDTH 128 29799 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_OFST 140 29800 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_LEN 1 29801 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_LBN 1120 29802 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_WIDTH 8 29803 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_OFST 141 29804 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_LEN 1 29805 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_LBN 1128 29806 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_WIDTH 8 29807 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_OFST 142 29808 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_LEN 1 29809 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_LBN 1136 29810 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_WIDTH 8 29811 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_OFST 143 29812 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_LEN 1 29813 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_LBN 1144 29814 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_WIDTH 8 29815 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_OFST 144 29816 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_LEN 1 29817 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_LBN 1152 29818 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_WIDTH 8 29819 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_OFST 145 29820 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_LEN 1 29821 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_LBN 1160 29822 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_WIDTH 8 29823 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_OFST 148 29824 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_LEN 4 29825 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_LBN 1184 29826 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_WIDTH 32 29827 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_OFST 152 29828 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_LEN 4 29829 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_LBN 1216 29830 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_WIDTH 32 29831 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_OFST 156 29832 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_LEN 2 29833 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_LBN 1248 29834 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_WIDTH 16 29835 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_OFST 158 29836 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_LEN 2 29837 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_LBN 1264 29838 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_WIDTH 16 29839 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_OFST 160 29840 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_LEN 2 29841 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_LBN 1280 29842 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_WIDTH 16 29843 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_OFST 162 29844 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_LEN 2 29845 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_LBN 1296 29846 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_WIDTH 16 29847 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_OFST 164 29848 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_LEN 2 29849 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_LBN 1312 29850 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_WIDTH 16 29851 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_OFST 166 29852 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_LEN 2 29853 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_LBN 1328 29854 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_WIDTH 16 29855 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_OFST 168 29856 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_LEN 4 29857 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_LBN 1344 29858 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_WIDTH 32 29859 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_OFST 172 29860 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_LEN 4 29861 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_LBN 1376 29862 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_WIDTH 32 29863 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_OFST 176 29864 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_LEN 4 29865 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_LBN 1408 29866 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_WIDTH 32 29867 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_OFST 180 29868 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_LEN 4 29869 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_LBN 1440 29870 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_WIDTH 32 29871 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_OFST 184 29872 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_LEN 2 29873 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_LBN 1472 29874 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_WIDTH 16 29875 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_OFST 188 29876 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_LEN 2 29877 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_LBN 1504 29878 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_WIDTH 16 29879 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_OFST 192 29880 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_LEN 2 29881 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_LBN 1536 29882 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_WIDTH 16 29883 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_OFST 194 29884 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_LEN 2 29885 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_LBN 1552 29886 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_WIDTH 16 29887 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_OFST 196 29888 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_LEN 2 29889 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_LBN 1568 29890 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_WIDTH 16 29891 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_OFST 198 29892 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_LEN 2 29893 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_LBN 1584 29894 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_WIDTH 16 29895 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_OFST 200 29896 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_LEN 2 29897 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_LBN 1600 29898 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_WIDTH 16 29899 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_OFST 202 29900 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_LEN 2 29901 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_LBN 1616 29902 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_WIDTH 16 29903 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_OFST 204 29904 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_LEN 2 29905 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_LBN 1632 29906 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_WIDTH 16 29907 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_OFST 206 29908 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_LEN 2 29909 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_LBN 1648 29910 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_WIDTH 16 29911 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_OFST 208 29912 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_LEN 6 29913 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_LBN 1664 29914 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_WIDTH 48 29915 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_OFST 214 29916 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_LEN 6 29917 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_LBN 1712 29918 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_WIDTH 48 29919 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_OFST 220 29920 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_LEN 6 29921 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_LBN 1760 29922 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_WIDTH 48 29923 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_OFST 226 29924 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_LEN 6 29925 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_LBN 1808 29926 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_WIDTH 48 29927 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_OFST 232 29928 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_LEN 4 29929 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_LBN 1856 29930 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_WIDTH 32 29931 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_OFST 236 29932 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_LEN 4 29933 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_LBN 1888 29934 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_WIDTH 32 29935 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_OFST 240 29936 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_LEN 16 29937 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_LBN 1920 29938 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_WIDTH 128 29939 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_OFST 256 29940 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_LEN 16 29941 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_LBN 2048 29942 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_WIDTH 128 29943 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_OFST 272 29944 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_LEN 4 29945 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_LBN 2176 29946 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_WIDTH 32 29947 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_OFST 276 29948 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_LEN 4 29949 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_LBN 2208 29950 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_WIDTH 32 29951 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_OFST 280 29952 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_LEN 16 29953 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_LBN 2240 29954 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_WIDTH 128 29955 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_OFST 296 29956 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_LEN 16 29957 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_LBN 2368 29958 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_WIDTH 128 29959 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_OFST 312 29960 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_LEN 1 29961 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_LBN 2496 29962 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_WIDTH 8 29963 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_OFST 313 29964 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_LEN 1 29965 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_LBN 2504 29966 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_WIDTH 8 29967 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_OFST 314 29968 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_LEN 1 29969 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_LBN 2512 29970 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_WIDTH 8 29971 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_OFST 315 29972 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_LEN 1 29973 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_LBN 2520 29974 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_WIDTH 8 29975 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_OFST 316 29976 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_LEN 1 29977 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_LBN 2528 29978 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_WIDTH 8 29979 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_OFST 317 29980 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_LEN 1 29981 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_LBN 2536 29982 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_WIDTH 8 29983 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_OFST 320 29984 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_LEN 4 29985 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_LBN 2560 29986 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_WIDTH 32 29987 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_OFST 324 29988 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_LEN 4 29989 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_LBN 2592 29990 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_WIDTH 32 29991 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_OFST 328 29992 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_LEN 2 29993 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_LBN 2624 29994 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_WIDTH 16 29995 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_OFST 330 29996 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_LEN 2 29997 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_LBN 2640 29998 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_WIDTH 16 29999 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_OFST 332 30000 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_LEN 2 30001 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_LBN 2656 30002 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_WIDTH 16 30003 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_OFST 334 30004 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_LEN 2 30005 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_LBN 2672 30006 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_WIDTH 16 30007 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_OFST 336 30008 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_LEN 4 30009 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_LBN 2688 30010 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_WIDTH 32 30011 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_OFST 340 30012 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_LEN 4 30013 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_LBN 2720 30014 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_WIDTH 32 30015 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_OFST 344 30016 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_LEN 4 30017 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_IP_FRAG_OFST 344 30018 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_IP_FRAG_LBN 0 30019 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_IP_FRAG_WIDTH 1 30020 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_OFST 344 30021 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_LBN 1 30022 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_WIDTH 1 30023 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_HIT_OFST 344 30024 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_HIT_LBN 2 30025 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_HIT_WIDTH 1 30026 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_FROM_NETWORK_OFST 344 30027 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_FROM_NETWORK_LBN 3 30028 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_FROM_NETWORK_WIDTH 1 30029 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_OVLAN_OFST 344 30030 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_OVLAN_LBN 4 30031 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_OVLAN_WIDTH 1 30032 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_IVLAN_OFST 344 30033 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_IVLAN_LBN 5 30034 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_IVLAN_WIDTH 1 30035 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_OVLAN_OFST 344 30036 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_OVLAN_LBN 6 30037 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_OVLAN_WIDTH 1 30038 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_IVLAN_OFST 344 30039 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_IVLAN_LBN 7 30040 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_IVLAN_WIDTH 1 30041 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_SYN_FIN_RST_OFST 344 30042 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_SYN_FIN_RST_LBN 8 30043 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_SYN_FIN_RST_WIDTH 1 30044 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FIRST_FRAG_OFST 344 30045 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FIRST_FRAG_LBN 9 30046 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FIRST_FRAG_WIDTH 1 30047 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_LBN 2752 30048 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_WIDTH 32 30049 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_OFST 348 30050 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_LEN 4 30051 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_LBN 2784 30052 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_WIDTH 32 30053 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_OFST 352 30054 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_LEN 2 30055 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_LBN 2816 30056 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_WIDTH 16 30057 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_OFST 354 30058 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_LEN 2 30059 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_LBN 2832 30060 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_WIDTH 16 30061 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_OFST 356 30062 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_LEN 4 30063 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_LBN 2848 30064 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_WIDTH 32 30065 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_OFST 360 30066 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_LEN 4 30067 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_LBN 2880 30068 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_WIDTH 32 30069 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_OFST 364 30070 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_LEN 1 30071 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_LBN 2912 30072 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_WIDTH 8 30073 /* Set to zero. */ 30074 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_OFST 365 30075 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_LEN 1 30076 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_LBN 2920 30077 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_WIDTH 8 30078 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_OFST 366 30079 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_LEN 1 30080 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_LBN 2928 30081 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_WIDTH 8 30082 /* Set to zero. */ 30083 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_OFST 367 30084 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_LEN 1 30085 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_LBN 2936 30086 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_WIDTH 8 30087 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_OFST 368 30088 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_LEN 1 30089 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_LBN 2944 30090 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_WIDTH 8 30091 /* Set to zero */ 30092 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_OFST 369 30093 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_LEN 1 30094 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_LBN 2952 30095 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_WIDTH 8 30096 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_OFST 370 30097 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_LEN 1 30098 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_LBN 2960 30099 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_WIDTH 8 30100 /* Set to zero */ 30101 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_OFST 371 30102 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_LEN 1 30103 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_LBN 2968 30104 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_WIDTH 8 30105 30106 /* MAE_MPORT_SELECTOR structuredef: MPORTS are identified by an opaque unsigned 30107 * integer value (mport_id) that is guaranteed to be representable within 30108 * 32-bits or within any NIC interface field that needs store the value 30109 * (whichever is narrowers). This selector structure provides a stable way to 30110 * refer to m-ports. 30111 */ 30112 #define MAE_MPORT_SELECTOR_LEN 4 30113 /* Used to force the tools to output bitfield-style defines for this structure. 30114 */ 30115 #define MAE_MPORT_SELECTOR_FLAT_OFST 0 30116 #define MAE_MPORT_SELECTOR_FLAT_LEN 4 30117 /* enum: An m-port selector value that is guaranteed never to represent a real 30118 * mport 30119 */ 30120 #define MAE_MPORT_SELECTOR_NULL 0x0 30121 /* enum: The m-port assigned to the calling client. */ 30122 #define MAE_MPORT_SELECTOR_ASSIGNED 0x1000000 30123 #define MAE_MPORT_SELECTOR_TYPE_OFST 0 30124 #define MAE_MPORT_SELECTOR_TYPE_LBN 24 30125 #define MAE_MPORT_SELECTOR_TYPE_WIDTH 8 30126 /* enum: The MPORT connected to a given physical port */ 30127 #define MAE_MPORT_SELECTOR_TYPE_PPORT 0x2 30128 /* enum: The MPORT assigned to a given PCIe function. Deprecated in favour of 30129 * MH_FUNC. 30130 */ 30131 #define MAE_MPORT_SELECTOR_TYPE_FUNC 0x3 30132 /* enum: An mport_id */ 30133 #define MAE_MPORT_SELECTOR_TYPE_MPORT_ID 0x4 30134 /* enum: The MPORT assigned to a given PCIe function (see also FWRIVERHD-1108) 30135 */ 30136 #define MAE_MPORT_SELECTOR_TYPE_MH_FUNC 0x5 30137 /* enum: This is guaranteed never to be a valid selector type */ 30138 #define MAE_MPORT_SELECTOR_TYPE_INVALID 0xff 30139 #define MAE_MPORT_SELECTOR_MPORT_ID_OFST 0 30140 #define MAE_MPORT_SELECTOR_MPORT_ID_LBN 0 30141 #define MAE_MPORT_SELECTOR_MPORT_ID_WIDTH 24 30142 #define MAE_MPORT_SELECTOR_PPORT_ID_OFST 0 30143 #define MAE_MPORT_SELECTOR_PPORT_ID_LBN 0 30144 #define MAE_MPORT_SELECTOR_PPORT_ID_WIDTH 4 30145 #define MAE_MPORT_SELECTOR_FUNC_INTF_ID_OFST 0 30146 #define MAE_MPORT_SELECTOR_FUNC_INTF_ID_LBN 20 30147 #define MAE_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4 30148 #define MAE_MPORT_SELECTOR_HOST_PRIMARY 0x1 /* enum */ 30149 #define MAE_MPORT_SELECTOR_NIC_EMBEDDED 0x2 /* enum */ 30150 /* enum: Deprecated, use CALLER_INTF instead. */ 30151 #define MAE_MPORT_SELECTOR_CALLER 0xf 30152 #define MAE_MPORT_SELECTOR_CALLER_INTF 0xf /* enum */ 30153 #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_OFST 0 30154 #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_LBN 16 30155 #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4 30156 #define MAE_MPORT_SELECTOR_FUNC_PF_ID_OFST 0 30157 #define MAE_MPORT_SELECTOR_FUNC_PF_ID_LBN 16 30158 #define MAE_MPORT_SELECTOR_FUNC_PF_ID_WIDTH 8 30159 #define MAE_MPORT_SELECTOR_FUNC_VF_ID_OFST 0 30160 #define MAE_MPORT_SELECTOR_FUNC_VF_ID_LBN 0 30161 #define MAE_MPORT_SELECTOR_FUNC_VF_ID_WIDTH 16 30162 /* enum: Used for VF_ID to indicate a physical function. */ 30163 #define MAE_MPORT_SELECTOR_FUNC_VF_ID_NULL 0xffff 30164 /* enum: Used for PF_ID to indicate the physical function of the calling 30165 * client. - When used by a PF with VF_ID == VF_ID_NULL, the mport selector 30166 * relates to the calling function. (For clarity, it is recommended that 30167 * clients use ASSIGNED to achieve this behaviour). - When used by a PF with 30168 * VF_ID != VF_ID_NULL, the mport selector relates to a VF child of the calling 30169 * function. - When used by a VF with VF_ID == VF_ID_NULL, the mport selector 30170 * relates to the PF owning the calling function. - When used by a VF with 30171 * VF_ID != VF_ID_NULL, the mport selector relates to a sibling VF of the 30172 * calling function. - Not meaningful used by a client that is not a PCIe 30173 * function. 30174 */ 30175 #define MAE_MPORT_SELECTOR_FUNC_PF_ID_CALLER 0xff 30176 /* enum: Same as PF_ID_CALLER, but for use in the smaller MH_PF_ID field. Only 30177 * valid if FUNC_INTF_ID is CALLER. 30178 */ 30179 #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_CALLER 0xf 30180 #define MAE_MPORT_SELECTOR_FLAT_LBN 0 30181 #define MAE_MPORT_SELECTOR_FLAT_WIDTH 32 30182 30183 /* MAE_LINK_ENDPOINT_SELECTOR structuredef: Structure that identifies a real or 30184 * virtual network port by MAE port and link end 30185 */ 30186 #define MAE_LINK_ENDPOINT_SELECTOR_LEN 8 30187 /* The MAE MPORT of interest */ 30188 #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_OFST 0 30189 #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_LEN 4 30190 #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_LBN 0 30191 #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_WIDTH 32 30192 /* Which end of the link identified by MPORT to consider */ 30193 #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_OFST 4 30194 #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_LEN 4 30195 /* Enum values, see field(s): */ 30196 /* MAE_MPORT_END */ 30197 #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_LBN 32 30198 #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_WIDTH 32 30199 /* A field for accessing the endpoint selector as a collection of bits */ 30200 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_OFST 0 30201 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LEN 8 30202 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_OFST 0 30203 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_LEN 4 30204 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_LBN 0 30205 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_WIDTH 32 30206 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_OFST 4 30207 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_LEN 4 30208 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_LBN 32 30209 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_WIDTH 32 30210 /* enum: Set FLAT to this value to obtain backward-compatible behaviour in 30211 * commands that have been extended to take a MAE_LINK_ENDPOINT_SELECTOR 30212 * argument. New commands that are designed to take such an argument from the 30213 * start will not support this. 30214 */ 30215 #define MAE_LINK_ENDPOINT_SELECTOR_MAE_LINK_ENDPOINT_COMPAT 0x0 30216 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LBN 0 30217 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_WIDTH 64 30218 30219 30220 /***********************************/ 30221 /* MC_CMD_MAE_GET_CAPS 30222 * Describes capabilities of the MAE (Match-Action Engine) 30223 */ 30224 #define MC_CMD_MAE_GET_CAPS 0x140 30225 #define MC_CMD_MAE_GET_CAPS_MSGSET 0x140 30226 #undef MC_CMD_0x140_PRIVILEGE_CTG 30227 30228 #define MC_CMD_0x140_PRIVILEGE_CTG SRIOV_CTG_GENERAL 30229 30230 /* MC_CMD_MAE_GET_CAPS_IN msgrequest */ 30231 #define MC_CMD_MAE_GET_CAPS_IN_LEN 0 30232 30233 /* MC_CMD_MAE_GET_CAPS_OUT msgresponse */ 30234 #define MC_CMD_MAE_GET_CAPS_OUT_LEN 52 30235 /* The number of field IDs that the NIC supports. Any field with a ID greater 30236 * than or equal to the value returned in this field must be treated as having 30237 * a support level of MAE_FIELD_UNSUPPORTED in all requests. 30238 */ 30239 #define MC_CMD_MAE_GET_CAPS_OUT_MATCH_FIELD_COUNT_OFST 0 30240 #define MC_CMD_MAE_GET_CAPS_OUT_MATCH_FIELD_COUNT_LEN 4 30241 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPES_SUPPORTED_OFST 4 30242 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPES_SUPPORTED_LEN 4 30243 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_OFST 4 30244 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_LBN 0 30245 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_WIDTH 1 30246 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_OFST 4 30247 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_LBN 1 30248 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_WIDTH 1 30249 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_OFST 4 30250 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_LBN 2 30251 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_WIDTH 1 30252 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_L2GRE_OFST 4 30253 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_L2GRE_LBN 3 30254 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_L2GRE_WIDTH 1 30255 /* Deprecated alias for AR_COUNTERS. */ 30256 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTERS_OFST 8 30257 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTERS_LEN 4 30258 /* The total number of AR counters available to allocate. */ 30259 #define MC_CMD_MAE_GET_CAPS_OUT_AR_COUNTERS_OFST 8 30260 #define MC_CMD_MAE_GET_CAPS_OUT_AR_COUNTERS_LEN 4 30261 /* The total number of counters lists available to allocate. A value of zero 30262 * indicates that counter lists are not supported by the NIC. (But single 30263 * counters may still be.) 30264 */ 30265 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTER_LISTS_OFST 12 30266 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTER_LISTS_LEN 4 30267 /* The total number of encap header structures available to allocate. */ 30268 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_HEADER_LIMIT_OFST 16 30269 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_HEADER_LIMIT_LEN 4 30270 /* Reserved. Should be zero. */ 30271 #define MC_CMD_MAE_GET_CAPS_OUT_RSVD_OFST 20 30272 #define MC_CMD_MAE_GET_CAPS_OUT_RSVD_LEN 4 30273 /* The total number of action sets available to allocate. */ 30274 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SETS_OFST 24 30275 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SETS_LEN 4 30276 /* The total number of action set lists available to allocate. */ 30277 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SET_LISTS_OFST 28 30278 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SET_LISTS_LEN 4 30279 /* The total number of outer rules available to allocate. */ 30280 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_RULES_OFST 32 30281 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_RULES_LEN 4 30282 /* The total number of action rules available to allocate. */ 30283 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_RULES_OFST 36 30284 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_RULES_LEN 4 30285 /* The number of priorities available for ACTION_RULE filters. It is invalid to 30286 * install a MATCH_ACTION filter with a priority number >= ACTION_PRIOS. 30287 */ 30288 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_PRIOS_OFST 40 30289 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_PRIOS_LEN 4 30290 /* The number of priorities available for OUTER_RULE filters. It is invalid to 30291 * install an OUTER_RULE filter with a priority number >= OUTER_PRIOS. 30292 */ 30293 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_PRIOS_OFST 44 30294 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_PRIOS_LEN 4 30295 /* MAE API major version. Currently 1. If this field is not present in the 30296 * response (i.e. response shorter than 384 bits), then its value is zero. If 30297 * the value does not match the client's expectations, the client should raise 30298 * a fatal error. 30299 */ 30300 #define MC_CMD_MAE_GET_CAPS_OUT_API_VER_OFST 48 30301 #define MC_CMD_MAE_GET_CAPS_OUT_API_VER_LEN 4 30302 30303 /* MC_CMD_MAE_GET_CAPS_V2_OUT msgresponse */ 30304 #define MC_CMD_MAE_GET_CAPS_V2_OUT_LEN 60 30305 /* The number of field IDs that the NIC supports. Any field with a ID greater 30306 * than or equal to the value returned in this field must be treated as having 30307 * a support level of MAE_FIELD_UNSUPPORTED in all requests. 30308 */ 30309 #define MC_CMD_MAE_GET_CAPS_V2_OUT_MATCH_FIELD_COUNT_OFST 0 30310 #define MC_CMD_MAE_GET_CAPS_V2_OUT_MATCH_FIELD_COUNT_LEN 4 30311 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPES_SUPPORTED_OFST 4 30312 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPES_SUPPORTED_LEN 4 30313 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_VXLAN_OFST 4 30314 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_VXLAN_LBN 0 30315 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_VXLAN_WIDTH 1 30316 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_NVGRE_OFST 4 30317 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_NVGRE_LBN 1 30318 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_NVGRE_WIDTH 1 30319 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_GENEVE_OFST 4 30320 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_GENEVE_LBN 2 30321 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_GENEVE_WIDTH 1 30322 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_L2GRE_OFST 4 30323 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_L2GRE_LBN 3 30324 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_L2GRE_WIDTH 1 30325 /* Deprecated alias for AR_COUNTERS. */ 30326 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTERS_OFST 8 30327 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTERS_LEN 4 30328 /* The total number of AR counters available to allocate. */ 30329 #define MC_CMD_MAE_GET_CAPS_V2_OUT_AR_COUNTERS_OFST 8 30330 #define MC_CMD_MAE_GET_CAPS_V2_OUT_AR_COUNTERS_LEN 4 30331 /* The total number of counters lists available to allocate. A value of zero 30332 * indicates that counter lists are not supported by the NIC. (But single 30333 * counters may still be.) 30334 */ 30335 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_LISTS_OFST 12 30336 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_LISTS_LEN 4 30337 /* The total number of encap header structures available to allocate. */ 30338 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_HEADER_LIMIT_OFST 16 30339 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_HEADER_LIMIT_LEN 4 30340 /* Reserved. Should be zero. */ 30341 #define MC_CMD_MAE_GET_CAPS_V2_OUT_RSVD_OFST 20 30342 #define MC_CMD_MAE_GET_CAPS_V2_OUT_RSVD_LEN 4 30343 /* The total number of action sets available to allocate. */ 30344 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SETS_OFST 24 30345 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SETS_LEN 4 30346 /* The total number of action set lists available to allocate. */ 30347 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SET_LISTS_OFST 28 30348 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SET_LISTS_LEN 4 30349 /* The total number of outer rules available to allocate. */ 30350 #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_RULES_OFST 32 30351 #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_RULES_LEN 4 30352 /* The total number of action rules available to allocate. */ 30353 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_RULES_OFST 36 30354 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_RULES_LEN 4 30355 /* The number of priorities available for ACTION_RULE filters. It is invalid to 30356 * install a MATCH_ACTION filter with a priority number >= ACTION_PRIOS. 30357 */ 30358 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_PRIOS_OFST 40 30359 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_PRIOS_LEN 4 30360 /* The number of priorities available for OUTER_RULE filters. It is invalid to 30361 * install an OUTER_RULE filter with a priority number >= OUTER_PRIOS. 30362 */ 30363 #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_PRIOS_OFST 44 30364 #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_PRIOS_LEN 4 30365 /* MAE API major version. Currently 1. If this field is not present in the 30366 * response (i.e. response shorter than 384 bits), then its value is zero. If 30367 * the value does not match the client's expectations, the client should raise 30368 * a fatal error. 30369 */ 30370 #define MC_CMD_MAE_GET_CAPS_V2_OUT_API_VER_OFST 48 30371 #define MC_CMD_MAE_GET_CAPS_V2_OUT_API_VER_LEN 4 30372 /* Mask of supported counter types. Each bit position corresponds to a value of 30373 * the MAE_COUNTER_TYPE enum. If this field is missing (i.e. V1 response), 30374 * clients must assume that only AR counters are supported (i.e. 30375 * COUNTER_TYPES_SUPPORTED==0x1). See also 30376 * MC_CMD_MAE_COUNTERS_STREAM_START/COUNTER_TYPES_MASK. 30377 */ 30378 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_TYPES_SUPPORTED_OFST 52 30379 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_TYPES_SUPPORTED_LEN 4 30380 /* The total number of conntrack counters available to allocate. */ 30381 #define MC_CMD_MAE_GET_CAPS_V2_OUT_CT_COUNTERS_OFST 56 30382 #define MC_CMD_MAE_GET_CAPS_V2_OUT_CT_COUNTERS_LEN 4 30383 30384 30385 /***********************************/ 30386 /* MC_CMD_MAE_GET_AR_CAPS 30387 * Get a level of support for match fields when used in match-action rules 30388 */ 30389 #define MC_CMD_MAE_GET_AR_CAPS 0x141 30390 #define MC_CMD_MAE_GET_AR_CAPS_MSGSET 0x141 30391 #undef MC_CMD_0x141_PRIVILEGE_CTG 30392 30393 #define MC_CMD_0x141_PRIVILEGE_CTG SRIOV_CTG_MAE 30394 30395 /* MC_CMD_MAE_GET_AR_CAPS_IN msgrequest */ 30396 #define MC_CMD_MAE_GET_AR_CAPS_IN_LEN 0 30397 30398 /* MC_CMD_MAE_GET_AR_CAPS_OUT msgresponse */ 30399 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LENMIN 4 30400 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LENMAX 252 30401 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LENMAX_MCDI2 1020 30402 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LEN(num) (4+4*(num)) 30403 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_NUM(len) (((len)-4)/4) 30404 /* Number of fields actually returned in FIELD_FLAGS. */ 30405 #define MC_CMD_MAE_GET_AR_CAPS_OUT_COUNT_OFST 0 30406 #define MC_CMD_MAE_GET_AR_CAPS_OUT_COUNT_LEN 4 30407 /* Array of values indicating the NIC's support for a given field, indexed by 30408 * field id. The driver must ensure space for 30409 * MC_CMD_MAE_GET_CAPS.MATCH_FIELD_COUNT entries in the array.. 30410 */ 30411 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_OFST 4 30412 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_LEN 4 30413 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_MINNUM 0 30414 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_MAXNUM 62 30415 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_MAXNUM_MCDI2 254 30416 30417 30418 /***********************************/ 30419 /* MC_CMD_MAE_GET_OR_CAPS 30420 * Get a level of support for fields used in outer rule keys. 30421 */ 30422 #define MC_CMD_MAE_GET_OR_CAPS 0x142 30423 #define MC_CMD_MAE_GET_OR_CAPS_MSGSET 0x142 30424 #undef MC_CMD_0x142_PRIVILEGE_CTG 30425 30426 #define MC_CMD_0x142_PRIVILEGE_CTG SRIOV_CTG_MAE 30427 30428 /* MC_CMD_MAE_GET_OR_CAPS_IN msgrequest */ 30429 #define MC_CMD_MAE_GET_OR_CAPS_IN_LEN 0 30430 30431 /* MC_CMD_MAE_GET_OR_CAPS_OUT msgresponse */ 30432 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LENMIN 4 30433 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LENMAX 252 30434 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LENMAX_MCDI2 1020 30435 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LEN(num) (4+4*(num)) 30436 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_NUM(len) (((len)-4)/4) 30437 /* Number of fields actually returned in FIELD_FLAGS. */ 30438 #define MC_CMD_MAE_GET_OR_CAPS_OUT_COUNT_OFST 0 30439 #define MC_CMD_MAE_GET_OR_CAPS_OUT_COUNT_LEN 4 30440 /* Same semantics as MC_CMD_MAE_GET_AR_CAPS.MAE_FIELD_FLAGS */ 30441 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_OFST 4 30442 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_LEN 4 30443 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_MINNUM 0 30444 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_MAXNUM 62 30445 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_MAXNUM_MCDI2 254 30446 30447 30448 /***********************************/ 30449 /* MC_CMD_MAE_COUNTER_ALLOC 30450 * Allocate match-action-engine counters, which can be referenced in various 30451 * tables. 30452 */ 30453 #define MC_CMD_MAE_COUNTER_ALLOC 0x143 30454 #define MC_CMD_MAE_COUNTER_ALLOC_MSGSET 0x143 30455 #undef MC_CMD_0x143_PRIVILEGE_CTG 30456 30457 #define MC_CMD_0x143_PRIVILEGE_CTG SRIOV_CTG_MAE 30458 30459 /* MC_CMD_MAE_COUNTER_ALLOC_IN msgrequest: Using this is equivalent to using V2 30460 * with COUNTER_TYPE=AR. 30461 */ 30462 #define MC_CMD_MAE_COUNTER_ALLOC_IN_LEN 4 30463 /* The number of counters that the driver would like allocated */ 30464 #define MC_CMD_MAE_COUNTER_ALLOC_IN_REQUESTED_COUNT_OFST 0 30465 #define MC_CMD_MAE_COUNTER_ALLOC_IN_REQUESTED_COUNT_LEN 4 30466 30467 /* MC_CMD_MAE_COUNTER_ALLOC_V2_IN msgrequest */ 30468 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_LEN 8 30469 /* The number of counters that the driver would like allocated */ 30470 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_REQUESTED_COUNT_OFST 0 30471 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_REQUESTED_COUNT_LEN 4 30472 /* Which type of counter to allocate. */ 30473 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_COUNTER_TYPE_OFST 4 30474 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_COUNTER_TYPE_LEN 4 30475 /* Enum values, see field(s): */ 30476 /* MAE_COUNTER_TYPE */ 30477 30478 /* MC_CMD_MAE_COUNTER_ALLOC_OUT msgresponse */ 30479 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LENMIN 12 30480 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LENMAX 252 30481 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LENMAX_MCDI2 1020 30482 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LEN(num) (8+4*(num)) 30483 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_NUM(len) (((len)-8)/4) 30484 /* Generation count. Packets with generation count >= GENERATION_COUNT will 30485 * contain valid counter values for counter IDs allocated in this call, unless 30486 * the counter values are zero and zero squash is enabled. Note that there is 30487 * an independent GENERATION_COUNT object per counter type. 30488 */ 30489 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_GENERATION_COUNT_OFST 0 30490 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_GENERATION_COUNT_LEN 4 30491 /* The number of counter IDs that the NIC allocated. It is never less than 1; 30492 * failure to allocate a single counter will cause an error to be returned. It 30493 * is never greater than REQUESTED_COUNT, but may be less. 30494 */ 30495 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_COUNT_OFST 4 30496 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_COUNT_LEN 4 30497 /* An array containing the IDs for the counters allocated. */ 30498 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_OFST 8 30499 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_LEN 4 30500 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_MINNUM 1 30501 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_MAXNUM 61 30502 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_MAXNUM_MCDI2 253 30503 /* enum: A counter ID that is guaranteed never to represent a real counter */ 30504 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_NULL 0xffffffff 30505 30506 30507 /***********************************/ 30508 /* MC_CMD_MAE_COUNTER_FREE 30509 * Free match-action-engine counters 30510 */ 30511 #define MC_CMD_MAE_COUNTER_FREE 0x144 30512 #define MC_CMD_MAE_COUNTER_FREE_MSGSET 0x144 30513 #undef MC_CMD_0x144_PRIVILEGE_CTG 30514 30515 #define MC_CMD_0x144_PRIVILEGE_CTG SRIOV_CTG_MAE 30516 30517 /* MC_CMD_MAE_COUNTER_FREE_IN msgrequest: Using this is equivalent to using V2 30518 * with COUNTER_TYPE=AR. 30519 */ 30520 #define MC_CMD_MAE_COUNTER_FREE_IN_LENMIN 8 30521 #define MC_CMD_MAE_COUNTER_FREE_IN_LENMAX 132 30522 #define MC_CMD_MAE_COUNTER_FREE_IN_LENMAX_MCDI2 132 30523 #define MC_CMD_MAE_COUNTER_FREE_IN_LEN(num) (4+4*(num)) 30524 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_NUM(len) (((len)-4)/4) 30525 /* The number of counter IDs to be freed. */ 30526 #define MC_CMD_MAE_COUNTER_FREE_IN_COUNTER_ID_COUNT_OFST 0 30527 #define MC_CMD_MAE_COUNTER_FREE_IN_COUNTER_ID_COUNT_LEN 4 30528 /* An array containing the counter IDs to be freed. */ 30529 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_OFST 4 30530 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_LEN 4 30531 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_MINNUM 1 30532 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_MAXNUM 32 30533 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_MAXNUM_MCDI2 32 30534 30535 /* MC_CMD_MAE_COUNTER_FREE_V2_IN msgrequest */ 30536 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_LEN 136 30537 /* The number of counter IDs to be freed. */ 30538 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_ID_COUNT_OFST 0 30539 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_ID_COUNT_LEN 4 30540 /* An array containing the counter IDs to be freed. */ 30541 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_OFST 4 30542 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_LEN 4 30543 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_MINNUM 1 30544 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_MAXNUM 32 30545 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_MAXNUM_MCDI2 32 30546 /* Which type of counter to free. */ 30547 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_TYPE_OFST 132 30548 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_TYPE_LEN 4 30549 /* Enum values, see field(s): */ 30550 /* MAE_COUNTER_TYPE */ 30551 30552 /* MC_CMD_MAE_COUNTER_FREE_OUT msgresponse */ 30553 #define MC_CMD_MAE_COUNTER_FREE_OUT_LENMIN 12 30554 #define MC_CMD_MAE_COUNTER_FREE_OUT_LENMAX 136 30555 #define MC_CMD_MAE_COUNTER_FREE_OUT_LENMAX_MCDI2 136 30556 #define MC_CMD_MAE_COUNTER_FREE_OUT_LEN(num) (8+4*(num)) 30557 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_NUM(len) (((len)-8)/4) 30558 /* Generation count. A packet with generation count == GENERATION_COUNT will 30559 * contain the final values for these counter IDs, unless the counter values 30560 * are zero and zero squash is enabled. Note that the GENERATION_COUNT value is 30561 * specific to the COUNTER_TYPE (IDENTIFIER field in packet header). Receiving 30562 * a packet with generation count > GENERATION_COUNT guarantees that no more 30563 * values will be written for these counters. If values for these counter IDs 30564 * are present, the counter ID has been reallocated. A counter ID will not be 30565 * reallocated within a single read cycle as this would merge increments from 30566 * the 'old' and 'new' counters. 30567 */ 30568 #define MC_CMD_MAE_COUNTER_FREE_OUT_GENERATION_COUNT_OFST 0 30569 #define MC_CMD_MAE_COUNTER_FREE_OUT_GENERATION_COUNT_LEN 4 30570 /* The number of counter IDs actually freed. It is never less than 1; failure 30571 * to free a single counter will cause an error to be returned. It is never 30572 * greater than the number that were requested to be freed, but may be less if 30573 * counters could not be freed. 30574 */ 30575 #define MC_CMD_MAE_COUNTER_FREE_OUT_COUNTER_ID_COUNT_OFST 4 30576 #define MC_CMD_MAE_COUNTER_FREE_OUT_COUNTER_ID_COUNT_LEN 4 30577 /* An array containing the IDs for the counters to that were freed. Note, 30578 * failure to free a counter can only occur on incorrect driver behaviour, so 30579 * asserting that the expected counters were freed is reasonable. When 30580 * debugging, attempting to free a single counter at a time will provide a 30581 * reason for the failure to free said counter. 30582 */ 30583 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_OFST 8 30584 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_LEN 4 30585 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_MINNUM 1 30586 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_MAXNUM 32 30587 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_MAXNUM_MCDI2 32 30588 30589 30590 /***********************************/ 30591 /* MC_CMD_MAE_COUNTERS_STREAM_START 30592 * Start streaming counter values, specifying an RxQ to deliver packets to. 30593 * Counters allocated to the calling function will be written in a round robin 30594 * at a fixed cycle rate, assuming sufficient credits are available. The driver 30595 * may cause the counter values to be written at a slower rate by constraining 30596 * the availability of credits. Note that if the driver wishes to deliver 30597 * packets to a different queue, it must call MAE_COUNTERS_STREAM_STOP to stop 30598 * delivering packets to the current queue first. 30599 */ 30600 #define MC_CMD_MAE_COUNTERS_STREAM_START 0x151 30601 #define MC_CMD_MAE_COUNTERS_STREAM_START_MSGSET 0x151 30602 #undef MC_CMD_0x151_PRIVILEGE_CTG 30603 30604 #define MC_CMD_0x151_PRIVILEGE_CTG SRIOV_CTG_MAE 30605 30606 /* MC_CMD_MAE_COUNTERS_STREAM_START_IN msgrequest: Using V1 is equivalent to V2 30607 * with COUNTER_TYPES_MASK=0x1 (i.e. AR counters only). 30608 */ 30609 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_LEN 8 30610 /* The RxQ to write packets to. */ 30611 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_QID_OFST 0 30612 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_QID_LEN 2 30613 /* Maximum size in bytes of packets that may be written to the RxQ. */ 30614 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_PACKET_SIZE_OFST 2 30615 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_PACKET_SIZE_LEN 2 30616 /* Optional flags. */ 30617 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_FLAGS_OFST 4 30618 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_FLAGS_LEN 4 30619 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_OFST 4 30620 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_LBN 0 30621 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_WIDTH 1 30622 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_OFST 4 30623 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_LBN 1 30624 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_WIDTH 1 30625 30626 /* MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN msgrequest */ 30627 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_LEN 12 30628 /* The RxQ to write packets to. */ 30629 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_QID_OFST 0 30630 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_QID_LEN 2 30631 /* Maximum size in bytes of packets that may be written to the RxQ. */ 30632 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_PACKET_SIZE_OFST 2 30633 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_PACKET_SIZE_LEN 2 30634 /* Optional flags. */ 30635 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_FLAGS_OFST 4 30636 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_FLAGS_LEN 4 30637 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_ZERO_SQUASH_DISABLE_OFST 4 30638 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_ZERO_SQUASH_DISABLE_LBN 0 30639 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_ZERO_SQUASH_DISABLE_WIDTH 1 30640 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_STALL_EN_OFST 4 30641 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_STALL_EN_LBN 1 30642 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_STALL_EN_WIDTH 1 30643 /* Mask of which counter types should be reported. Each bit position 30644 * corresponds to a value of the MAE_COUNTER_TYPE enum. For example a value of 30645 * 0x3 requests both AR and CT counters. A value of zero is invalid. Counter 30646 * types not selected by the mask value won't be included in the stream. If a 30647 * client wishes to change which counter types are reported, it must first call 30648 * MAE_COUNTERS_STREAM_STOP, then restart it with the new mask value. 30649 * Requesting a counter type which isn't supported by firmware (reported in 30650 * MC_CMD_MAE_GET_CAPS/COUNTER_TYPES_SUPPORTED) will result in ENOTSUP. 30651 */ 30652 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_TYPES_MASK_OFST 8 30653 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_TYPES_MASK_LEN 4 30654 30655 /* MC_CMD_MAE_COUNTERS_STREAM_START_OUT msgresponse */ 30656 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_LEN 4 30657 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_FLAGS_OFST 0 30658 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_FLAGS_LEN 4 30659 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_USES_CREDITS_OFST 0 30660 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_USES_CREDITS_LBN 0 30661 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_USES_CREDITS_WIDTH 1 30662 30663 30664 /***********************************/ 30665 /* MC_CMD_MAE_COUNTERS_STREAM_STOP 30666 * Stop streaming counter values to the specified RxQ. 30667 */ 30668 #define MC_CMD_MAE_COUNTERS_STREAM_STOP 0x152 30669 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_MSGSET 0x152 30670 #undef MC_CMD_0x152_PRIVILEGE_CTG 30671 30672 #define MC_CMD_0x152_PRIVILEGE_CTG SRIOV_CTG_MAE 30673 30674 /* MC_CMD_MAE_COUNTERS_STREAM_STOP_IN msgrequest */ 30675 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_IN_LEN 2 30676 /* The RxQ to stop writing packets to. */ 30677 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_IN_QID_OFST 0 30678 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_IN_QID_LEN 2 30679 30680 /* MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT msgresponse */ 30681 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_LEN 4 30682 /* Generation count for AR counters. The final set of AR counter values will be 30683 * written out in packets with count == GENERATION_COUNT. An empty packet with 30684 * count > GENERATION_COUNT indicates that no more counter values of this type 30685 * will be written to this stream. 30686 */ 30687 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_GENERATION_COUNT_OFST 0 30688 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_GENERATION_COUNT_LEN 4 30689 30690 /* MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT msgresponse */ 30691 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LENMIN 4 30692 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LENMAX 32 30693 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LENMAX_MCDI2 32 30694 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LEN(num) (0+4*(num)) 30695 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_NUM(len) (((len)-0)/4) 30696 /* Array of generation counts, indexed by MAE_COUNTER_TYPE. Note that since 30697 * MAE_COUNTER_TYPE_AR==0, this response is backwards-compatible with V1. The 30698 * final set of counter values will be written out in packets with count == 30699 * GENERATION_COUNT. An empty packet with count > GENERATION_COUNT indicates 30700 * that no more counter values of this type will be written to this stream. 30701 */ 30702 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_OFST 0 30703 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_LEN 4 30704 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_MINNUM 1 30705 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_MAXNUM 8 30706 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_MAXNUM_MCDI2 8 30707 30708 30709 /***********************************/ 30710 /* MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS 30711 * Give a number of credits to the packetiser. Each credit received allows the 30712 * MC to write one packet to the RxQ, therefore for each credit the driver must 30713 * have written sufficient descriptors for a packet of length 30714 * MAE_COUNTERS_PACKETISER_STREAM_START/PACKET_SIZE and rung the doorbell. 30715 */ 30716 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS 0x153 30717 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_MSGSET 0x153 30718 #undef MC_CMD_0x153_PRIVILEGE_CTG 30719 30720 #define MC_CMD_0x153_PRIVILEGE_CTG SRIOV_CTG_MAE 30721 30722 /* MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN msgrequest */ 30723 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_LEN 4 30724 /* Number of credits to give to the packetiser. */ 30725 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_NUM_CREDITS_OFST 0 30726 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_NUM_CREDITS_LEN 4 30727 30728 /* MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_OUT msgresponse */ 30729 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_OUT_LEN 0 30730 30731 30732 /***********************************/ 30733 /* MC_CMD_MAE_ENCAP_HEADER_ALLOC 30734 * Allocate an encapsulation header to be used in an Action Rule response. The 30735 * header must be constructed as a valid packet with 0-length payload. 30736 * Specifically, the L3/L4 lengths & checksums will only be incrementally fixed 30737 * by the NIC, rather than recomputed entirely. Currently only IPv4, IPv6 and 30738 * UDP are supported. If the maximum number of headers have already been 30739 * allocated then the command will fail with MC_CMD_ERR_ENOSPC. 30740 */ 30741 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC 0x148 30742 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_MSGSET 0x148 30743 #undef MC_CMD_0x148_PRIVILEGE_CTG 30744 30745 #define MC_CMD_0x148_PRIVILEGE_CTG SRIOV_CTG_MAE 30746 30747 /* MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN msgrequest */ 30748 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMIN 4 30749 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMAX 252 30750 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMAX_MCDI2 1020 30751 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LEN(num) (4+1*(num)) 30752 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_NUM(len) (((len)-4)/1) 30753 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_ENCAP_TYPE_OFST 0 30754 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_ENCAP_TYPE_LEN 4 30755 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_OFST 4 30756 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_LEN 1 30757 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_MINNUM 0 30758 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_MAXNUM 248 30759 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_MAXNUM_MCDI2 1016 30760 30761 /* MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT msgresponse */ 30762 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_LEN 4 30763 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_ENCAP_HEADER_ID_OFST 0 30764 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_ENCAP_HEADER_ID_LEN 4 30765 /* enum: An encap metadata ID that is guaranteed never to represent real encap 30766 * metadata 30767 */ 30768 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_ENCAP_HEADER_ID_NULL 0xffffffff 30769 30770 30771 /***********************************/ 30772 /* MC_CMD_MAE_ENCAP_HEADER_UPDATE 30773 * Update encap action metadata. See comments for MAE_ENCAP_HEADER_ALLOC. 30774 */ 30775 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE 0x149 30776 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_MSGSET 0x149 30777 #undef MC_CMD_0x149_PRIVILEGE_CTG 30778 30779 #define MC_CMD_0x149_PRIVILEGE_CTG SRIOV_CTG_MAE 30780 30781 /* MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN msgrequest */ 30782 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LENMIN 8 30783 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LENMAX 252 30784 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LENMAX_MCDI2 1020 30785 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LEN(num) (8+1*(num)) 30786 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_NUM(len) (((len)-8)/1) 30787 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_EH_ID_OFST 0 30788 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_EH_ID_LEN 4 30789 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_ENCAP_TYPE_OFST 4 30790 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_ENCAP_TYPE_LEN 4 30791 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_OFST 8 30792 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_LEN 1 30793 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_MINNUM 0 30794 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_MAXNUM 244 30795 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_MAXNUM_MCDI2 1012 30796 30797 /* MC_CMD_MAE_ENCAP_HEADER_UPDATE_OUT msgresponse */ 30798 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_OUT_LEN 0 30799 30800 30801 /***********************************/ 30802 /* MC_CMD_MAE_ENCAP_HEADER_FREE 30803 * Free encap action metadata 30804 */ 30805 #define MC_CMD_MAE_ENCAP_HEADER_FREE 0x14a 30806 #define MC_CMD_MAE_ENCAP_HEADER_FREE_MSGSET 0x14a 30807 #undef MC_CMD_0x14a_PRIVILEGE_CTG 30808 30809 #define MC_CMD_0x14a_PRIVILEGE_CTG SRIOV_CTG_MAE 30810 30811 /* MC_CMD_MAE_ENCAP_HEADER_FREE_IN msgrequest */ 30812 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMIN 4 30813 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMAX 128 30814 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMAX_MCDI2 128 30815 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LEN(num) (0+4*(num)) 30816 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_NUM(len) (((len)-0)/4) 30817 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 30818 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_OFST 0 30819 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_LEN 4 30820 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_MINNUM 1 30821 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_MAXNUM 32 30822 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_MAXNUM_MCDI2 32 30823 30824 /* MC_CMD_MAE_ENCAP_HEADER_FREE_OUT msgresponse */ 30825 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LENMIN 4 30826 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LENMAX 128 30827 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LENMAX_MCDI2 128 30828 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LEN(num) (0+4*(num)) 30829 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_NUM(len) (((len)-0)/4) 30830 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 30831 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_OFST 0 30832 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_LEN 4 30833 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_MINNUM 1 30834 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_MAXNUM 32 30835 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_MAXNUM_MCDI2 32 30836 30837 30838 /***********************************/ 30839 /* MC_CMD_MAE_MAC_ADDR_ALLOC 30840 * Allocate MAC address. Hardware implementations have MAC addresses programmed 30841 * into an indirection table, and clients should take care not to allocate the 30842 * same MAC address twice (but instead reuse its ID). If the maximum number of 30843 * MAC addresses have already been allocated then the command will fail with 30844 * MC_CMD_ERR_ENOSPC. 30845 */ 30846 #define MC_CMD_MAE_MAC_ADDR_ALLOC 0x15e 30847 #define MC_CMD_MAE_MAC_ADDR_ALLOC_MSGSET 0x15e 30848 #undef MC_CMD_0x15e_PRIVILEGE_CTG 30849 30850 #define MC_CMD_0x15e_PRIVILEGE_CTG SRIOV_CTG_MAE 30851 30852 /* MC_CMD_MAE_MAC_ADDR_ALLOC_IN msgrequest */ 30853 #define MC_CMD_MAE_MAC_ADDR_ALLOC_IN_LEN 6 30854 /* MAC address as bytes in network order. */ 30855 #define MC_CMD_MAE_MAC_ADDR_ALLOC_IN_MAC_ADDR_OFST 0 30856 #define MC_CMD_MAE_MAC_ADDR_ALLOC_IN_MAC_ADDR_LEN 6 30857 30858 /* MC_CMD_MAE_MAC_ADDR_ALLOC_OUT msgresponse */ 30859 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_LEN 4 30860 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_MAC_ID_OFST 0 30861 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_MAC_ID_LEN 4 30862 /* enum: An MAC address ID that is guaranteed never to represent a real MAC 30863 * address. 30864 */ 30865 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_MAC_ID_NULL 0xffffffff 30866 30867 30868 /***********************************/ 30869 /* MC_CMD_MAE_MAC_ADDR_FREE 30870 * Free MAC address. 30871 */ 30872 #define MC_CMD_MAE_MAC_ADDR_FREE 0x15f 30873 #define MC_CMD_MAE_MAC_ADDR_FREE_MSGSET 0x15f 30874 #undef MC_CMD_0x15f_PRIVILEGE_CTG 30875 30876 #define MC_CMD_0x15f_PRIVILEGE_CTG SRIOV_CTG_MAE 30877 30878 /* MC_CMD_MAE_MAC_ADDR_FREE_IN msgrequest */ 30879 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMIN 4 30880 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMAX 128 30881 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMAX_MCDI2 128 30882 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LEN(num) (0+4*(num)) 30883 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_NUM(len) (((len)-0)/4) 30884 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 30885 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_OFST 0 30886 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_LEN 4 30887 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_MINNUM 1 30888 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_MAXNUM 32 30889 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_MAXNUM_MCDI2 32 30890 30891 /* MC_CMD_MAE_MAC_ADDR_FREE_OUT msgresponse */ 30892 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LENMIN 4 30893 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LENMAX 128 30894 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LENMAX_MCDI2 128 30895 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LEN(num) (0+4*(num)) 30896 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_NUM(len) (((len)-0)/4) 30897 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 30898 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_OFST 0 30899 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_LEN 4 30900 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_MINNUM 1 30901 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_MAXNUM 32 30902 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_MAXNUM_MCDI2 32 30903 30904 30905 /***********************************/ 30906 /* MC_CMD_MAE_ACTION_SET_ALLOC 30907 * Allocate an action set, which can be referenced either in response to an 30908 * Action Rule, or as part of an Action Set List. If the maxmimum number of 30909 * action sets have already been allocated then the command will fail with 30910 * MC_CMD_ERR_ENOSPC. 30911 */ 30912 #define MC_CMD_MAE_ACTION_SET_ALLOC 0x14d 30913 #define MC_CMD_MAE_ACTION_SET_ALLOC_MSGSET 0x14d 30914 #undef MC_CMD_0x14d_PRIVILEGE_CTG 30915 30916 #define MC_CMD_0x14d_PRIVILEGE_CTG SRIOV_CTG_MAE 30917 30918 /* MC_CMD_MAE_ACTION_SET_ALLOC_IN msgrequest */ 30919 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LEN 44 30920 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAGS_OFST 0 30921 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAGS_LEN 4 30922 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_PUSH_OFST 0 30923 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_PUSH_LBN 0 30924 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_PUSH_WIDTH 2 30925 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_POP_OFST 0 30926 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_POP_LBN 4 30927 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_POP_WIDTH 2 30928 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DECAP_OFST 0 30929 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DECAP_LBN 8 30930 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DECAP_WIDTH 1 30931 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_OFST 0 30932 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_LBN 9 30933 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_WIDTH 1 30934 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAG_OFST 0 30935 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAG_LBN 10 30936 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAG_WIDTH 1 30937 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_NAT_OFST 0 30938 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_NAT_LBN 11 30939 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_NAT_WIDTH 1 30940 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_DECR_IP_TTL_OFST 0 30941 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_DECR_IP_TTL_LBN 12 30942 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_DECR_IP_TTL_WIDTH 1 30943 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_SRC_MPORT_OFST 0 30944 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_SRC_MPORT_LBN 13 30945 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_SRC_MPORT_WIDTH 1 30946 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SUPPRESS_SELF_DELIVERY_OFST 0 30947 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SUPPRESS_SELF_DELIVERY_LBN 14 30948 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SUPPRESS_SELF_DELIVERY_WIDTH 1 30949 /* If VLAN_PUSH >= 1, TCI value to be inserted as outermost VLAN. */ 30950 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_TCI_BE_OFST 4 30951 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_TCI_BE_LEN 2 30952 /* If VLAN_PUSH >= 1, TPID value to be inserted as outermost VLAN. */ 30953 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_PROTO_BE_OFST 6 30954 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_PROTO_BE_LEN 2 30955 /* If VLAN_PUSH == 2, inner TCI value to be inserted. */ 30956 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_TCI_BE_OFST 8 30957 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_TCI_BE_LEN 2 30958 /* If VLAN_PUSH == 2, inner TPID value to be inserted. */ 30959 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_PROTO_BE_OFST 10 30960 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_PROTO_BE_LEN 2 30961 /* Reserved. Ignored by firmware. Should be set to zero or 0xffffffff. */ 30962 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_RSVD_OFST 12 30963 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_RSVD_LEN 4 30964 /* Set to ENCAP_HEADER_ID_NULL to request no encap action */ 30965 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_ENCAP_HEADER_ID_OFST 16 30966 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_ENCAP_HEADER_ID_LEN 4 30967 /* An m-port selector identifying the m-port that the modified packet should be 30968 * delivered to. Set to MPORT_SELECTOR_NULL to request no delivery of the 30969 * packet. 30970 */ 30971 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DELIVER_OFST 20 30972 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DELIVER_LEN 4 30973 /* Allows an action set to trigger several counter updates. Set to 30974 * COUNTER_LIST_ID_NULL to request no counter action. 30975 */ 30976 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_LIST_ID_OFST 24 30977 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_LIST_ID_LEN 4 30978 /* If a driver only wished to update one counter within this action set, then 30979 * it can supply a COUNTER_ID instead of allocating a single-element counter 30980 * list. The ID must have been allocated with COUNTER_TYPE=AR. This field 30981 * should be set to COUNTER_ID_NULL if this behaviour is not required. It is 30982 * not valid to supply a non-NULL value for both COUNTER_LIST_ID and 30983 * COUNTER_ID. 30984 */ 30985 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_ID_OFST 28 30986 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_ID_LEN 4 30987 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_VALUE_OFST 32 30988 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_VALUE_LEN 4 30989 /* Set to MAC_ID_NULL to request no source MAC replacement. */ 30990 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SRC_MAC_ID_OFST 36 30991 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SRC_MAC_ID_LEN 4 30992 /* Set to MAC_ID_NULL to request no destination MAC replacement. */ 30993 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DST_MAC_ID_OFST 40 30994 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DST_MAC_ID_LEN 4 30995 30996 /* MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN msgrequest: Only supported if 30997 * MAE_ACTION_SET_ALLOC_V2_SUPPORTED is advertised in 30998 * MC_CMD_GET_CAPABILITIES_V7_OUT. 30999 */ 31000 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LEN 51 31001 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAGS_OFST 0 31002 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAGS_LEN 4 31003 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_PUSH_OFST 0 31004 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_PUSH_LBN 0 31005 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_PUSH_WIDTH 2 31006 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_POP_OFST 0 31007 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_POP_LBN 4 31008 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_POP_WIDTH 2 31009 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DECAP_OFST 0 31010 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DECAP_LBN 8 31011 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DECAP_WIDTH 1 31012 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_OFST 0 31013 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_LBN 9 31014 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_WIDTH 1 31015 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAG_OFST 0 31016 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAG_LBN 10 31017 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAG_WIDTH 1 31018 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_NAT_OFST 0 31019 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_NAT_LBN 11 31020 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_NAT_WIDTH 1 31021 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DECR_IP_TTL_OFST 0 31022 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DECR_IP_TTL_LBN 12 31023 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DECR_IP_TTL_WIDTH 1 31024 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_SRC_MPORT_OFST 0 31025 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_SRC_MPORT_LBN 13 31026 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_SRC_MPORT_WIDTH 1 31027 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SUPPRESS_SELF_DELIVERY_OFST 0 31028 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SUPPRESS_SELF_DELIVERY_LBN 14 31029 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SUPPRESS_SELF_DELIVERY_WIDTH 1 31030 /* If VLAN_PUSH >= 1, TCI value to be inserted as outermost VLAN. */ 31031 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_TCI_BE_OFST 4 31032 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_TCI_BE_LEN 2 31033 /* If VLAN_PUSH >= 1, TPID value to be inserted as outermost VLAN. */ 31034 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_PROTO_BE_OFST 6 31035 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_PROTO_BE_LEN 2 31036 /* If VLAN_PUSH == 2, inner TCI value to be inserted. */ 31037 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN1_TCI_BE_OFST 8 31038 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN1_TCI_BE_LEN 2 31039 /* If VLAN_PUSH == 2, inner TPID value to be inserted. */ 31040 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN1_PROTO_BE_OFST 10 31041 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN1_PROTO_BE_LEN 2 31042 /* Reserved. Ignored by firmware. Should be set to zero or 0xffffffff. */ 31043 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_RSVD_OFST 12 31044 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_RSVD_LEN 4 31045 /* Set to ENCAP_HEADER_ID_NULL to request no encap action */ 31046 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ENCAP_HEADER_ID_OFST 16 31047 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ENCAP_HEADER_ID_LEN 4 31048 /* An m-port selector identifying the m-port that the modified packet should be 31049 * delivered to. Set to MPORT_SELECTOR_NULL to request no delivery of the 31050 * packet. 31051 */ 31052 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DELIVER_OFST 20 31053 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DELIVER_LEN 4 31054 /* Allows an action set to trigger several counter updates. Set to 31055 * COUNTER_LIST_ID_NULL to request no counter action. 31056 */ 31057 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_LIST_ID_OFST 24 31058 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_LIST_ID_LEN 4 31059 /* If a driver only wished to update one counter within this action set, then 31060 * it can supply a COUNTER_ID instead of allocating a single-element counter 31061 * list. The ID must have been allocated with COUNTER_TYPE=AR. This field 31062 * should be set to COUNTER_ID_NULL if this behaviour is not required. It is 31063 * not valid to supply a non-NULL value for both COUNTER_LIST_ID and 31064 * COUNTER_ID. 31065 */ 31066 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_ID_OFST 28 31067 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_ID_LEN 4 31068 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_VALUE_OFST 32 31069 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_VALUE_LEN 4 31070 /* Set to MAC_ID_NULL to request no source MAC replacement. */ 31071 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SRC_MAC_ID_OFST 36 31072 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SRC_MAC_ID_LEN 4 31073 /* Set to MAC_ID_NULL to request no destination MAC replacement. */ 31074 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DST_MAC_ID_OFST 40 31075 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DST_MAC_ID_LEN 4 31076 /* Source m-port ID to be reported for DO_SET_SRC_MPORT action. */ 31077 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_REPORTED_SRC_MPORT_OFST 44 31078 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_REPORTED_SRC_MPORT_LEN 4 31079 /* Actions for modifying the Differentiated Services Code-Point (DSCP) bits 31080 * within IPv4 and IPv6 headers. 31081 */ 31082 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_CONTROL_OFST 48 31083 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_CONTROL_LEN 2 31084 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_ENCAP_COPY_OFST 48 31085 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_ENCAP_COPY_LBN 0 31086 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_ENCAP_COPY_WIDTH 1 31087 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_DECAP_COPY_OFST 48 31088 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_DECAP_COPY_LBN 1 31089 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_DECAP_COPY_WIDTH 1 31090 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_DSCP_OFST 48 31091 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_DSCP_LBN 2 31092 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_DSCP_WIDTH 1 31093 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_VALUE_OFST 48 31094 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_VALUE_LBN 3 31095 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DSCP_VALUE_WIDTH 6 31096 /* Actions for modifying the Explicit Congestion Notification (ECN) bits within 31097 * IPv4 and IPv6 headers. 31098 */ 31099 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_CONTROL_OFST 50 31100 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_CONTROL_LEN 1 31101 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_ENCAP_COPY_OFST 50 31102 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_ENCAP_COPY_LBN 0 31103 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_ENCAP_COPY_WIDTH 1 31104 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_DECAP_COPY_OFST 50 31105 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_DECAP_COPY_LBN 1 31106 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_DECAP_COPY_WIDTH 1 31107 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_ECN_OFST 50 31108 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_ECN_LBN 2 31109 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_ECN_WIDTH 1 31110 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_VALUE_OFST 50 31111 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_VALUE_LBN 3 31112 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_VALUE_WIDTH 2 31113 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_0_TO_CE_OFST 50 31114 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_0_TO_CE_LBN 5 31115 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_0_TO_CE_WIDTH 1 31116 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_1_TO_CE_OFST 50 31117 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_1_TO_CE_LBN 6 31118 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_1_TO_CE_WIDTH 1 31119 31120 /* MC_CMD_MAE_ACTION_SET_ALLOC_OUT msgresponse */ 31121 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_LEN 4 31122 /* The MSB of the AS_ID is guaranteed to be clear if the ID is not 31123 * ACTION_SET_ID_NULL. This allows an AS_ID to be distinguished from an ASL_ID 31124 * returned from MC_CMD_MAE_ACTION_SET_LIST_ALLOC. 31125 */ 31126 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_AS_ID_OFST 0 31127 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_AS_ID_LEN 4 31128 /* enum: An action set ID that is guaranteed never to represent an action set 31129 */ 31130 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_ACTION_SET_ID_NULL 0xffffffff 31131 31132 31133 /***********************************/ 31134 /* MC_CMD_MAE_ACTION_SET_FREE 31135 */ 31136 #define MC_CMD_MAE_ACTION_SET_FREE 0x14e 31137 #define MC_CMD_MAE_ACTION_SET_FREE_MSGSET 0x14e 31138 #undef MC_CMD_0x14e_PRIVILEGE_CTG 31139 31140 #define MC_CMD_0x14e_PRIVILEGE_CTG SRIOV_CTG_MAE 31141 31142 /* MC_CMD_MAE_ACTION_SET_FREE_IN msgrequest */ 31143 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMIN 4 31144 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMAX 128 31145 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMAX_MCDI2 128 31146 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LEN(num) (0+4*(num)) 31147 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_NUM(len) (((len)-0)/4) 31148 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 31149 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_OFST 0 31150 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_LEN 4 31151 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_MINNUM 1 31152 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_MAXNUM 32 31153 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_MAXNUM_MCDI2 32 31154 31155 /* MC_CMD_MAE_ACTION_SET_FREE_OUT msgresponse */ 31156 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LENMIN 4 31157 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LENMAX 128 31158 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LENMAX_MCDI2 128 31159 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LEN(num) (0+4*(num)) 31160 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_NUM(len) (((len)-0)/4) 31161 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 31162 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_OFST 0 31163 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_LEN 4 31164 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_MINNUM 1 31165 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_MAXNUM 32 31166 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_MAXNUM_MCDI2 32 31167 31168 31169 /***********************************/ 31170 /* MC_CMD_MAE_ACTION_SET_LIST_ALLOC 31171 * Allocate an action set list (ASL) that can be referenced by an ID. The ASL 31172 * ID can be used when inserting an action rule, so that for each packet 31173 * matching the rule every action set in the list is applied. If the maximum 31174 * number of ASLs have already been allocated then the command will fail with 31175 * MC_CMD_ERR_ENOSPC. 31176 */ 31177 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC 0x14f 31178 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_MSGSET 0x14f 31179 #undef MC_CMD_0x14f_PRIVILEGE_CTG 31180 31181 #define MC_CMD_0x14f_PRIVILEGE_CTG SRIOV_CTG_MAE 31182 31183 /* MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN msgrequest */ 31184 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LENMIN 8 31185 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LENMAX 252 31186 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LENMAX_MCDI2 1020 31187 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LEN(num) (4+4*(num)) 31188 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_NUM(len) (((len)-4)/4) 31189 /* Number of elements in the AS_IDS field. */ 31190 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_COUNT_OFST 0 31191 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_COUNT_LEN 4 31192 /* The IDs of the action sets in this list. The last element of this list may 31193 * be the ID of an already allocated ASL. In this case the action sets from the 31194 * already allocated ASL will be applied after the action sets supplied by this 31195 * request. This mechanism can be used to reduce resource usage in the case 31196 * where one ASL is a sublist of another ASL. The sublist should be allocated 31197 * first, then the superlist should be allocated by supplying all required 31198 * action set IDs that are not in the sublist followed by the ID of the 31199 * sublist. One sublist can be referenced by multiple superlists. 31200 */ 31201 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_OFST 4 31202 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_LEN 4 31203 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_MINNUM 1 31204 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_MAXNUM 62 31205 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_MAXNUM_MCDI2 254 31206 31207 /* MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT msgresponse */ 31208 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_LEN 4 31209 /* The MSB of the ASL_ID is guaranteed to be set. This allows an ASL_ID to be 31210 * distinguished from an AS_ID returned from MC_CMD_MAE_ACTION_SET_ALLOC. 31211 */ 31212 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_ASL_ID_OFST 0 31213 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_ASL_ID_LEN 4 31214 /* enum: An action set list ID that is guaranteed never to represent an action 31215 * set list 31216 */ 31217 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_ACTION_SET_LIST_ID_NULL 0xffffffff 31218 31219 31220 /***********************************/ 31221 /* MC_CMD_MAE_ACTION_SET_LIST_FREE 31222 * Free match-action-engine redirect_lists 31223 */ 31224 #define MC_CMD_MAE_ACTION_SET_LIST_FREE 0x150 31225 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_MSGSET 0x150 31226 #undef MC_CMD_0x150_PRIVILEGE_CTG 31227 31228 #define MC_CMD_0x150_PRIVILEGE_CTG SRIOV_CTG_MAE 31229 31230 /* MC_CMD_MAE_ACTION_SET_LIST_FREE_IN msgrequest */ 31231 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMIN 4 31232 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMAX 128 31233 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMAX_MCDI2 128 31234 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LEN(num) (0+4*(num)) 31235 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_NUM(len) (((len)-0)/4) 31236 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 31237 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_OFST 0 31238 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_LEN 4 31239 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_MINNUM 1 31240 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_MAXNUM 32 31241 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_MAXNUM_MCDI2 32 31242 31243 /* MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT msgresponse */ 31244 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LENMIN 4 31245 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LENMAX 128 31246 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LENMAX_MCDI2 128 31247 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LEN(num) (0+4*(num)) 31248 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_NUM(len) (((len)-0)/4) 31249 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 31250 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_OFST 0 31251 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_LEN 4 31252 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_MINNUM 1 31253 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_MAXNUM 32 31254 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_MAXNUM_MCDI2 32 31255 31256 31257 /***********************************/ 31258 /* MC_CMD_MAE_OUTER_RULE_INSERT 31259 * Inserts an Outer Rule, which controls encapsulation parsing, and may 31260 * influence the Lookup Sequence. If the maximum number of rules have already 31261 * been inserted then the command will fail with MC_CMD_ERR_ENOSPC. 31262 */ 31263 #define MC_CMD_MAE_OUTER_RULE_INSERT 0x15a 31264 #define MC_CMD_MAE_OUTER_RULE_INSERT_MSGSET 0x15a 31265 #undef MC_CMD_0x15a_PRIVILEGE_CTG 31266 31267 #define MC_CMD_0x15a_PRIVILEGE_CTG SRIOV_CTG_MAE 31268 31269 /* MC_CMD_MAE_OUTER_RULE_INSERT_IN msgrequest */ 31270 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LENMIN 16 31271 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LENMAX 252 31272 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LENMAX_MCDI2 1020 31273 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LEN(num) (16+1*(num)) 31274 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_NUM(len) (((len)-16)/1) 31275 /* Packets matching the rule will be parsed with this encapsulation. */ 31276 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ENCAP_TYPE_OFST 0 31277 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ENCAP_TYPE_LEN 4 31278 /* Enum values, see field(s): */ 31279 /* MAE_MCDI_ENCAP_TYPE */ 31280 /* Match priority. Lower values have higher priority. Must be less than 31281 * MC_CMD_MAE_GET_CAPS_OUT.ENCAP_PRIOS If a packet matches two filters with 31282 * equal priority then it is unspecified which takes priority. 31283 */ 31284 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_PRIO_OFST 4 31285 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_PRIO_LEN 4 31286 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LOOKUP_CONTROL_OFST 8 31287 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LOOKUP_CONTROL_LEN 4 31288 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_CT_OFST 8 31289 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_CT_LBN 0 31290 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_CT_WIDTH 1 31291 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_VNI_MODE_OFST 8 31292 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_VNI_MODE_LBN 1 31293 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_VNI_MODE_WIDTH 2 31294 /* Enum values, see field(s): */ 31295 /* MAE_CT_VNI_MODE */ 31296 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RECIRC_ID_OFST 8 31297 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RECIRC_ID_LBN 8 31298 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RECIRC_ID_WIDTH 8 31299 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_DOMAIN_OFST 8 31300 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_DOMAIN_LBN 16 31301 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_DOMAIN_WIDTH 16 31302 /* Reserved for future use. Must be set to zero. */ 31303 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RSVD_OFST 12 31304 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RSVD_LEN 4 31305 /* Structure of the format MAE_ENC_FIELD_PAIRS. */ 31306 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_OFST 16 31307 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_LEN 1 31308 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_MINNUM 0 31309 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_MAXNUM 236 31310 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_MAXNUM_MCDI2 1004 31311 31312 /* MC_CMD_MAE_OUTER_RULE_INSERT_OUT msgresponse */ 31313 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_LEN 4 31314 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_OR_ID_OFST 0 31315 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_OR_ID_LEN 4 31316 /* enum: An outer match ID that is guaranteed never to represent an outer match 31317 */ 31318 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_OUTER_RULE_ID_NULL 0xffffffff 31319 31320 31321 /***********************************/ 31322 /* MC_CMD_MAE_OUTER_RULE_REMOVE 31323 */ 31324 #define MC_CMD_MAE_OUTER_RULE_REMOVE 0x15b 31325 #define MC_CMD_MAE_OUTER_RULE_REMOVE_MSGSET 0x15b 31326 #undef MC_CMD_0x15b_PRIVILEGE_CTG 31327 31328 #define MC_CMD_0x15b_PRIVILEGE_CTG SRIOV_CTG_MAE 31329 31330 /* MC_CMD_MAE_OUTER_RULE_REMOVE_IN msgrequest */ 31331 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMIN 4 31332 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMAX 128 31333 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMAX_MCDI2 128 31334 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LEN(num) (0+4*(num)) 31335 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_NUM(len) (((len)-0)/4) 31336 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 31337 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_OFST 0 31338 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_LEN 4 31339 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_MINNUM 1 31340 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_MAXNUM 32 31341 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_MAXNUM_MCDI2 32 31342 31343 /* MC_CMD_MAE_OUTER_RULE_REMOVE_OUT msgresponse */ 31344 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LENMIN 4 31345 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LENMAX 128 31346 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LENMAX_MCDI2 128 31347 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LEN(num) (0+4*(num)) 31348 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_NUM(len) (((len)-0)/4) 31349 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 31350 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_OFST 0 31351 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_LEN 4 31352 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_MINNUM 1 31353 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_MAXNUM 32 31354 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_MAXNUM_MCDI2 32 31355 31356 /* MAE_ACTION_RULE_RESPONSE structuredef */ 31357 #define MAE_ACTION_RULE_RESPONSE_LEN 16 31358 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_OFST 0 31359 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_LEN 4 31360 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_LBN 0 31361 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_WIDTH 32 31362 /* Only one of ASL_ID or AS_ID may have a non-NULL value. */ 31363 #define MAE_ACTION_RULE_RESPONSE_AS_ID_OFST 4 31364 #define MAE_ACTION_RULE_RESPONSE_AS_ID_LEN 4 31365 #define MAE_ACTION_RULE_RESPONSE_AS_ID_LBN 32 31366 #define MAE_ACTION_RULE_RESPONSE_AS_ID_WIDTH 32 31367 /* Controls lookup flow when this rule is hit. See sub-fields for details. More 31368 * info on the lookup sequence can be found in SF-122976-TC. It is an error to 31369 * set both DO_CT and DO_RECIRC. 31370 */ 31371 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_OFST 8 31372 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_LEN 4 31373 #define MAE_ACTION_RULE_RESPONSE_DO_CT_OFST 8 31374 #define MAE_ACTION_RULE_RESPONSE_DO_CT_LBN 0 31375 #define MAE_ACTION_RULE_RESPONSE_DO_CT_WIDTH 1 31376 #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_OFST 8 31377 #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_LBN 1 31378 #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_WIDTH 1 31379 #define MAE_ACTION_RULE_RESPONSE_CT_VNI_MODE_OFST 8 31380 #define MAE_ACTION_RULE_RESPONSE_CT_VNI_MODE_LBN 2 31381 #define MAE_ACTION_RULE_RESPONSE_CT_VNI_MODE_WIDTH 2 31382 /* Enum values, see field(s): */ 31383 /* MAE_CT_VNI_MODE */ 31384 #define MAE_ACTION_RULE_RESPONSE_RECIRC_ID_OFST 8 31385 #define MAE_ACTION_RULE_RESPONSE_RECIRC_ID_LBN 8 31386 #define MAE_ACTION_RULE_RESPONSE_RECIRC_ID_WIDTH 8 31387 #define MAE_ACTION_RULE_RESPONSE_CT_DOMAIN_OFST 8 31388 #define MAE_ACTION_RULE_RESPONSE_CT_DOMAIN_LBN 16 31389 #define MAE_ACTION_RULE_RESPONSE_CT_DOMAIN_WIDTH 16 31390 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_LBN 64 31391 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_WIDTH 32 31392 /* Counter ID to increment if DO_CT or DO_RECIRC is set. Must be set to 31393 * COUNTER_ID_NULL otherwise. Counter ID must have been allocated with 31394 * COUNTER_TYPE=AR. 31395 */ 31396 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_OFST 12 31397 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_LEN 4 31398 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_LBN 96 31399 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_WIDTH 32 31400 31401 31402 /***********************************/ 31403 /* MC_CMD_MAE_ACTION_RULE_INSERT 31404 * Insert a rule specify that packets matching a filter be processed according 31405 * to a previous allocated action. Masks can be set as indicated by 31406 * MC_CMD_MAE_GET_MATCH_FIELD_CAPABILITIES. If the maximum number of rules have 31407 * already been inserted then the command will fail with MC_CMD_ERR_ENOSPC. 31408 */ 31409 #define MC_CMD_MAE_ACTION_RULE_INSERT 0x15c 31410 #define MC_CMD_MAE_ACTION_RULE_INSERT_MSGSET 0x15c 31411 #undef MC_CMD_0x15c_PRIVILEGE_CTG 31412 31413 #define MC_CMD_0x15c_PRIVILEGE_CTG SRIOV_CTG_MAE 31414 31415 /* MC_CMD_MAE_ACTION_RULE_INSERT_IN msgrequest */ 31416 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LENMIN 28 31417 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LENMAX 252 31418 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LENMAX_MCDI2 1020 31419 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LEN(num) (28+1*(num)) 31420 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_NUM(len) (((len)-28)/1) 31421 /* See MC_CMD_MAE_OUTER_RULE_REGISTER_IN/PRIO. */ 31422 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_PRIO_OFST 0 31423 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_PRIO_LEN 4 31424 /* Structure of the format MAE_ACTION_RULE_RESPONSE */ 31425 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RESPONSE_OFST 4 31426 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RESPONSE_LEN 20 31427 /* Reserved for future use. Must be set to zero. */ 31428 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RSVD_OFST 24 31429 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RSVD_LEN 4 31430 /* Structure of the format MAE_FIELD_MASK_VALUE_PAIRS */ 31431 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_OFST 28 31432 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_LEN 1 31433 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_MINNUM 0 31434 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_MAXNUM 224 31435 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_MAXNUM_MCDI2 992 31436 31437 /* MC_CMD_MAE_ACTION_RULE_INSERT_OUT msgresponse */ 31438 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_LEN 4 31439 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_AR_ID_OFST 0 31440 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_AR_ID_LEN 4 31441 /* enum: An action rule ID that is guaranteed never to represent an action rule 31442 */ 31443 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_ACTION_RULE_ID_NULL 0xffffffff 31444 31445 31446 /***********************************/ 31447 /* MC_CMD_MAE_ACTION_RULE_UPDATE 31448 * Atomically change the response of an action rule. Firmware may return 31449 * ENOTSUP, in which case the driver should DELETE/INSERT. 31450 */ 31451 #define MC_CMD_MAE_ACTION_RULE_UPDATE 0x15d 31452 #define MC_CMD_MAE_ACTION_RULE_UPDATE_MSGSET 0x15d 31453 #undef MC_CMD_0x15d_PRIVILEGE_CTG 31454 31455 #define MC_CMD_0x15d_PRIVILEGE_CTG SRIOV_CTG_MAE 31456 31457 /* MC_CMD_MAE_ACTION_RULE_UPDATE_IN msgrequest */ 31458 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_LEN 24 31459 /* ID of action rule to update */ 31460 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_AR_ID_OFST 0 31461 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_AR_ID_LEN 4 31462 /* Structure of the format MAE_ACTION_RULE_RESPONSE */ 31463 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_RESPONSE_OFST 4 31464 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_RESPONSE_LEN 20 31465 31466 /* MC_CMD_MAE_ACTION_RULE_UPDATE_OUT msgresponse */ 31467 #define MC_CMD_MAE_ACTION_RULE_UPDATE_OUT_LEN 0 31468 31469 31470 /***********************************/ 31471 /* MC_CMD_MAE_ACTION_RULE_DELETE 31472 */ 31473 #define MC_CMD_MAE_ACTION_RULE_DELETE 0x155 31474 #define MC_CMD_MAE_ACTION_RULE_DELETE_MSGSET 0x155 31475 #undef MC_CMD_0x155_PRIVILEGE_CTG 31476 31477 #define MC_CMD_0x155_PRIVILEGE_CTG SRIOV_CTG_MAE 31478 31479 /* MC_CMD_MAE_ACTION_RULE_DELETE_IN msgrequest */ 31480 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMIN 4 31481 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMAX 128 31482 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMAX_MCDI2 128 31483 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LEN(num) (0+4*(num)) 31484 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_NUM(len) (((len)-0)/4) 31485 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 31486 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_OFST 0 31487 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_LEN 4 31488 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_MINNUM 1 31489 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_MAXNUM 32 31490 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_MAXNUM_MCDI2 32 31491 31492 /* MC_CMD_MAE_ACTION_RULE_DELETE_OUT msgresponse */ 31493 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LENMIN 4 31494 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LENMAX 128 31495 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LENMAX_MCDI2 128 31496 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LEN(num) (0+4*(num)) 31497 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_NUM(len) (((len)-0)/4) 31498 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 31499 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_OFST 0 31500 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_LEN 4 31501 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_MINNUM 1 31502 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_MAXNUM 32 31503 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_MAXNUM_MCDI2 32 31504 31505 31506 /***********************************/ 31507 /* MC_CMD_MAE_MPORT_LOOKUP 31508 * Return the m-port corresponding to a selector. 31509 */ 31510 #define MC_CMD_MAE_MPORT_LOOKUP 0x160 31511 #define MC_CMD_MAE_MPORT_LOOKUP_MSGSET 0x160 31512 #undef MC_CMD_0x160_PRIVILEGE_CTG 31513 31514 #define MC_CMD_0x160_PRIVILEGE_CTG SRIOV_CTG_GENERAL 31515 31516 /* MC_CMD_MAE_MPORT_LOOKUP_IN msgrequest */ 31517 #define MC_CMD_MAE_MPORT_LOOKUP_IN_LEN 4 31518 #define MC_CMD_MAE_MPORT_LOOKUP_IN_MPORT_SELECTOR_OFST 0 31519 #define MC_CMD_MAE_MPORT_LOOKUP_IN_MPORT_SELECTOR_LEN 4 31520 31521 /* MC_CMD_MAE_MPORT_LOOKUP_OUT msgresponse */ 31522 #define MC_CMD_MAE_MPORT_LOOKUP_OUT_LEN 4 31523 #define MC_CMD_MAE_MPORT_LOOKUP_OUT_MPORT_ID_OFST 0 31524 #define MC_CMD_MAE_MPORT_LOOKUP_OUT_MPORT_ID_LEN 4 31525 31526 31527 /***********************************/ 31528 /* MC_CMD_MAE_MPORT_ALLOC 31529 * Allocates a m-port, which can subsequently be used in action rules as a 31530 * match or delivery argument. 31531 */ 31532 #define MC_CMD_MAE_MPORT_ALLOC 0x163 31533 #define MC_CMD_MAE_MPORT_ALLOC_MSGSET 0x163 31534 #undef MC_CMD_0x163_PRIVILEGE_CTG 31535 31536 #define MC_CMD_0x163_PRIVILEGE_CTG SRIOV_CTG_MAE 31537 31538 /* MC_CMD_MAE_MPORT_ALLOC_IN msgrequest */ 31539 #define MC_CMD_MAE_MPORT_ALLOC_IN_LEN 20 31540 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain 31541 * types. 31542 */ 31543 #define MC_CMD_MAE_MPORT_ALLOC_IN_TYPE_OFST 0 31544 #define MC_CMD_MAE_MPORT_ALLOC_IN_TYPE_LEN 4 31545 /* enum: Traffic can be sent to this type of m-port using an override 31546 * descriptor. Traffic received on this type of m-port will go to the VNIC on a 31547 * nominated m-port, and will be delivered with metadata identifying the alias 31548 * m-port. 31549 */ 31550 #define MC_CMD_MAE_MPORT_ALLOC_IN_MPORT_TYPE_ALIAS 0x1 31551 /* enum: This type of m-port has a VNIC attached. Queues can be created on this 31552 * VNIC by specifying the created m-port as an m-port selector at queue 31553 * creation time. 31554 */ 31555 #define MC_CMD_MAE_MPORT_ALLOC_IN_MPORT_TYPE_VNIC 0x2 31556 /* 128-bit value for use by the driver. */ 31557 #define MC_CMD_MAE_MPORT_ALLOC_IN_UUID_OFST 4 31558 #define MC_CMD_MAE_MPORT_ALLOC_IN_UUID_LEN 16 31559 31560 /* MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN msgrequest */ 31561 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_LEN 24 31562 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain 31563 * types. 31564 */ 31565 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_TYPE_OFST 0 31566 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_TYPE_LEN 4 31567 /* enum: Traffic can be sent to this type of m-port using an override 31568 * descriptor. Traffic received on this type of m-port will go to the VNIC on a 31569 * nominated m-port, and will be delivered with metadata identifying the alias 31570 * m-port. 31571 */ 31572 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_MPORT_TYPE_ALIAS 0x1 31573 /* enum: This type of m-port has a VNIC attached. Queues can be created on this 31574 * VNIC by specifying the created m-port as an m-port selector at queue 31575 * creation time. 31576 */ 31577 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_MPORT_TYPE_VNIC 0x2 31578 /* 128-bit value for use by the driver. */ 31579 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_UUID_OFST 4 31580 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_UUID_LEN 16 31581 /* An m-port selector identifying the VNIC to which traffic should be 31582 * delivered. This must currently be set to MAE_MPORT_SELECTOR_ASSIGNED (i.e. 31583 * the m-port assigned to the calling client). 31584 */ 31585 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_DELIVER_MPORT_OFST 20 31586 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_DELIVER_MPORT_LEN 4 31587 31588 /* MC_CMD_MAE_MPORT_ALLOC_VNIC_IN msgrequest */ 31589 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_LEN 20 31590 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain 31591 * types. 31592 */ 31593 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_TYPE_OFST 0 31594 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_TYPE_LEN 4 31595 /* enum: Traffic can be sent to this type of m-port using an override 31596 * descriptor. Traffic received on this type of m-port will go to the VNIC on a 31597 * nominated m-port, and will be delivered with metadata identifying the alias 31598 * m-port. 31599 */ 31600 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_MPORT_TYPE_ALIAS 0x1 31601 /* enum: This type of m-port has a VNIC attached. Queues can be created on this 31602 * VNIC by specifying the created m-port as an m-port selector at queue 31603 * creation time. 31604 */ 31605 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_MPORT_TYPE_VNIC 0x2 31606 /* 128-bit value for use by the driver. */ 31607 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_UUID_OFST 4 31608 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_UUID_LEN 16 31609 31610 /* MC_CMD_MAE_MPORT_ALLOC_OUT msgresponse */ 31611 #define MC_CMD_MAE_MPORT_ALLOC_OUT_LEN 4 31612 /* ID of newly-allocated m-port. */ 31613 #define MC_CMD_MAE_MPORT_ALLOC_OUT_MPORT_ID_OFST 0 31614 #define MC_CMD_MAE_MPORT_ALLOC_OUT_MPORT_ID_LEN 4 31615 31616 /* MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT msgrequest */ 31617 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_LEN 24 31618 /* ID of newly-allocated m-port. */ 31619 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_MPORT_ID_OFST 0 31620 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_MPORT_ID_LEN 4 31621 /* A value that will appear in the packet metadata for any packets delivered 31622 * using an alias type m-port. This value is guaranteed unique on the VNIC 31623 * being delivered to, and is guaranteed not to exceed the range of values 31624 * representable in the relevant metadata field. 31625 */ 31626 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_LABEL_OFST 20 31627 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_LABEL_LEN 4 31628 31629 /* MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT msgrequest */ 31630 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_LEN 4 31631 /* ID of newly-allocated m-port. */ 31632 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_MPORT_ID_OFST 0 31633 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_MPORT_ID_LEN 4 31634 31635 31636 /***********************************/ 31637 /* MC_CMD_MAE_MPORT_FREE 31638 * Free a m-port which was previously allocated by the driver. 31639 */ 31640 #define MC_CMD_MAE_MPORT_FREE 0x164 31641 #define MC_CMD_MAE_MPORT_FREE_MSGSET 0x164 31642 #undef MC_CMD_0x164_PRIVILEGE_CTG 31643 31644 #define MC_CMD_0x164_PRIVILEGE_CTG SRIOV_CTG_MAE 31645 31646 /* MC_CMD_MAE_MPORT_FREE_IN msgrequest */ 31647 #define MC_CMD_MAE_MPORT_FREE_IN_LEN 4 31648 /* MPORT_ID as returned by MC_CMD_MAE_MPORT_ALLOC. */ 31649 #define MC_CMD_MAE_MPORT_FREE_IN_MPORT_ID_OFST 0 31650 #define MC_CMD_MAE_MPORT_FREE_IN_MPORT_ID_LEN 4 31651 31652 /* MC_CMD_MAE_MPORT_FREE_OUT msgresponse */ 31653 #define MC_CMD_MAE_MPORT_FREE_OUT_LEN 0 31654 31655 /* MAE_MPORT_DESC structuredef */ 31656 #define MAE_MPORT_DESC_LEN 52 31657 #define MAE_MPORT_DESC_MPORT_ID_OFST 0 31658 #define MAE_MPORT_DESC_MPORT_ID_LEN 4 31659 #define MAE_MPORT_DESC_MPORT_ID_LBN 0 31660 #define MAE_MPORT_DESC_MPORT_ID_WIDTH 32 31661 /* Reserved for future purposes, contains information independent of caller */ 31662 #define MAE_MPORT_DESC_FLAGS_OFST 4 31663 #define MAE_MPORT_DESC_FLAGS_LEN 4 31664 #define MAE_MPORT_DESC_FLAGS_LBN 32 31665 #define MAE_MPORT_DESC_FLAGS_WIDTH 32 31666 #define MAE_MPORT_DESC_CALLER_FLAGS_OFST 8 31667 #define MAE_MPORT_DESC_CALLER_FLAGS_LEN 4 31668 #define MAE_MPORT_DESC_CAN_RECEIVE_ON_OFST 8 31669 #define MAE_MPORT_DESC_CAN_RECEIVE_ON_LBN 0 31670 #define MAE_MPORT_DESC_CAN_RECEIVE_ON_WIDTH 1 31671 #define MAE_MPORT_DESC_CAN_DELIVER_TO_OFST 8 31672 #define MAE_MPORT_DESC_CAN_DELIVER_TO_LBN 1 31673 #define MAE_MPORT_DESC_CAN_DELIVER_TO_WIDTH 1 31674 #define MAE_MPORT_DESC_CAN_DELETE_OFST 8 31675 #define MAE_MPORT_DESC_CAN_DELETE_LBN 2 31676 #define MAE_MPORT_DESC_CAN_DELETE_WIDTH 1 31677 #define MAE_MPORT_DESC_IS_ZOMBIE_OFST 8 31678 #define MAE_MPORT_DESC_IS_ZOMBIE_LBN 3 31679 #define MAE_MPORT_DESC_IS_ZOMBIE_WIDTH 1 31680 #define MAE_MPORT_DESC_CALLER_FLAGS_LBN 64 31681 #define MAE_MPORT_DESC_CALLER_FLAGS_WIDTH 32 31682 /* Not the ideal name; it's really the type of thing connected to the m-port */ 31683 #define MAE_MPORT_DESC_MPORT_TYPE_OFST 12 31684 #define MAE_MPORT_DESC_MPORT_TYPE_LEN 4 31685 /* enum: Connected to a MAC... */ 31686 #define MAE_MPORT_DESC_MPORT_TYPE_NET_PORT 0x0 31687 /* enum: Adds metadata and delivers to another m-port */ 31688 #define MAE_MPORT_DESC_MPORT_TYPE_ALIAS 0x1 31689 /* enum: Connected to a VNIC. */ 31690 #define MAE_MPORT_DESC_MPORT_TYPE_VNIC 0x2 31691 #define MAE_MPORT_DESC_MPORT_TYPE_LBN 96 31692 #define MAE_MPORT_DESC_MPORT_TYPE_WIDTH 32 31693 /* 128-bit value available to drivers for m-port identification. */ 31694 #define MAE_MPORT_DESC_UUID_OFST 16 31695 #define MAE_MPORT_DESC_UUID_LEN 16 31696 #define MAE_MPORT_DESC_UUID_LBN 128 31697 #define MAE_MPORT_DESC_UUID_WIDTH 128 31698 /* Big wadge of space reserved for other common properties */ 31699 #define MAE_MPORT_DESC_RESERVED_OFST 32 31700 #define MAE_MPORT_DESC_RESERVED_LEN 8 31701 #define MAE_MPORT_DESC_RESERVED_LO_OFST 32 31702 #define MAE_MPORT_DESC_RESERVED_LO_LEN 4 31703 #define MAE_MPORT_DESC_RESERVED_LO_LBN 256 31704 #define MAE_MPORT_DESC_RESERVED_LO_WIDTH 32 31705 #define MAE_MPORT_DESC_RESERVED_HI_OFST 36 31706 #define MAE_MPORT_DESC_RESERVED_HI_LEN 4 31707 #define MAE_MPORT_DESC_RESERVED_HI_LBN 288 31708 #define MAE_MPORT_DESC_RESERVED_HI_WIDTH 32 31709 #define MAE_MPORT_DESC_RESERVED_LBN 256 31710 #define MAE_MPORT_DESC_RESERVED_WIDTH 64 31711 /* Logical port index. Only valid when type NET Port. */ 31712 #define MAE_MPORT_DESC_NET_PORT_IDX_OFST 40 31713 #define MAE_MPORT_DESC_NET_PORT_IDX_LEN 4 31714 #define MAE_MPORT_DESC_NET_PORT_IDX_LBN 320 31715 #define MAE_MPORT_DESC_NET_PORT_IDX_WIDTH 32 31716 /* The m-port delivered to */ 31717 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_OFST 40 31718 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_LEN 4 31719 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_LBN 320 31720 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_WIDTH 32 31721 /* The type of thing that owns the VNIC */ 31722 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_OFST 40 31723 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_LEN 4 31724 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_FUNCTION 0x1 /* enum */ 31725 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_PLUGIN 0x2 /* enum */ 31726 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_LBN 320 31727 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_WIDTH 32 31728 /* The PCIe interface on which the function lives. CJK: We need an enumeration 31729 * of interfaces that we extend as new interface (types) appear. This belongs 31730 * elsewhere and should be referenced from here 31731 */ 31732 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_OFST 44 31733 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_LEN 4 31734 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_LBN 352 31735 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_WIDTH 32 31736 #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_OFST 48 31737 #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_LEN 2 31738 #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_LBN 384 31739 #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_WIDTH 16 31740 #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_OFST 50 31741 #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_LEN 2 31742 /* enum: Indicates that the function is a PF */ 31743 #define MAE_MPORT_DESC_VF_IDX_NULL 0xffff 31744 #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_LBN 400 31745 #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_WIDTH 16 31746 /* Reserved. Should be ignored for now. */ 31747 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_OFST 44 31748 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_LEN 4 31749 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_LBN 352 31750 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_WIDTH 32 31751 31752 /* MAE_MPORT_DESC_V2 structuredef */ 31753 #define MAE_MPORT_DESC_V2_LEN 56 31754 #define MAE_MPORT_DESC_V2_MPORT_ID_OFST 0 31755 #define MAE_MPORT_DESC_V2_MPORT_ID_LEN 4 31756 #define MAE_MPORT_DESC_V2_MPORT_ID_LBN 0 31757 #define MAE_MPORT_DESC_V2_MPORT_ID_WIDTH 32 31758 /* Reserved for future purposes, contains information independent of caller */ 31759 #define MAE_MPORT_DESC_V2_FLAGS_OFST 4 31760 #define MAE_MPORT_DESC_V2_FLAGS_LEN 4 31761 #define MAE_MPORT_DESC_V2_FLAGS_LBN 32 31762 #define MAE_MPORT_DESC_V2_FLAGS_WIDTH 32 31763 #define MAE_MPORT_DESC_V2_CALLER_FLAGS_OFST 8 31764 #define MAE_MPORT_DESC_V2_CALLER_FLAGS_LEN 4 31765 #define MAE_MPORT_DESC_V2_CAN_RECEIVE_ON_OFST 8 31766 #define MAE_MPORT_DESC_V2_CAN_RECEIVE_ON_LBN 0 31767 #define MAE_MPORT_DESC_V2_CAN_RECEIVE_ON_WIDTH 1 31768 #define MAE_MPORT_DESC_V2_CAN_DELIVER_TO_OFST 8 31769 #define MAE_MPORT_DESC_V2_CAN_DELIVER_TO_LBN 1 31770 #define MAE_MPORT_DESC_V2_CAN_DELIVER_TO_WIDTH 1 31771 #define MAE_MPORT_DESC_V2_CAN_DELETE_OFST 8 31772 #define MAE_MPORT_DESC_V2_CAN_DELETE_LBN 2 31773 #define MAE_MPORT_DESC_V2_CAN_DELETE_WIDTH 1 31774 #define MAE_MPORT_DESC_V2_IS_ZOMBIE_OFST 8 31775 #define MAE_MPORT_DESC_V2_IS_ZOMBIE_LBN 3 31776 #define MAE_MPORT_DESC_V2_IS_ZOMBIE_WIDTH 1 31777 #define MAE_MPORT_DESC_V2_CALLER_FLAGS_LBN 64 31778 #define MAE_MPORT_DESC_V2_CALLER_FLAGS_WIDTH 32 31779 /* Not the ideal name; it's really the type of thing connected to the m-port */ 31780 #define MAE_MPORT_DESC_V2_MPORT_TYPE_OFST 12 31781 #define MAE_MPORT_DESC_V2_MPORT_TYPE_LEN 4 31782 /* enum: Connected to a MAC... */ 31783 #define MAE_MPORT_DESC_V2_MPORT_TYPE_NET_PORT 0x0 31784 /* enum: Adds metadata and delivers to another m-port */ 31785 #define MAE_MPORT_DESC_V2_MPORT_TYPE_ALIAS 0x1 31786 /* enum: Connected to a VNIC. */ 31787 #define MAE_MPORT_DESC_V2_MPORT_TYPE_VNIC 0x2 31788 #define MAE_MPORT_DESC_V2_MPORT_TYPE_LBN 96 31789 #define MAE_MPORT_DESC_V2_MPORT_TYPE_WIDTH 32 31790 /* 128-bit value available to drivers for m-port identification. */ 31791 #define MAE_MPORT_DESC_V2_UUID_OFST 16 31792 #define MAE_MPORT_DESC_V2_UUID_LEN 16 31793 #define MAE_MPORT_DESC_V2_UUID_LBN 128 31794 #define MAE_MPORT_DESC_V2_UUID_WIDTH 128 31795 /* Big wadge of space reserved for other common properties */ 31796 #define MAE_MPORT_DESC_V2_RESERVED_OFST 32 31797 #define MAE_MPORT_DESC_V2_RESERVED_LEN 8 31798 #define MAE_MPORT_DESC_V2_RESERVED_LO_OFST 32 31799 #define MAE_MPORT_DESC_V2_RESERVED_LO_LEN 4 31800 #define MAE_MPORT_DESC_V2_RESERVED_LO_LBN 256 31801 #define MAE_MPORT_DESC_V2_RESERVED_LO_WIDTH 32 31802 #define MAE_MPORT_DESC_V2_RESERVED_HI_OFST 36 31803 #define MAE_MPORT_DESC_V2_RESERVED_HI_LEN 4 31804 #define MAE_MPORT_DESC_V2_RESERVED_HI_LBN 288 31805 #define MAE_MPORT_DESC_V2_RESERVED_HI_WIDTH 32 31806 #define MAE_MPORT_DESC_V2_RESERVED_LBN 256 31807 #define MAE_MPORT_DESC_V2_RESERVED_WIDTH 64 31808 /* Logical port index. Only valid when type NET Port. */ 31809 #define MAE_MPORT_DESC_V2_NET_PORT_IDX_OFST 40 31810 #define MAE_MPORT_DESC_V2_NET_PORT_IDX_LEN 4 31811 #define MAE_MPORT_DESC_V2_NET_PORT_IDX_LBN 320 31812 #define MAE_MPORT_DESC_V2_NET_PORT_IDX_WIDTH 32 31813 /* The m-port delivered to */ 31814 #define MAE_MPORT_DESC_V2_ALIAS_DELIVER_MPORT_ID_OFST 40 31815 #define MAE_MPORT_DESC_V2_ALIAS_DELIVER_MPORT_ID_LEN 4 31816 #define MAE_MPORT_DESC_V2_ALIAS_DELIVER_MPORT_ID_LBN 320 31817 #define MAE_MPORT_DESC_V2_ALIAS_DELIVER_MPORT_ID_WIDTH 32 31818 /* The type of thing that owns the VNIC */ 31819 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_OFST 40 31820 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_LEN 4 31821 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_FUNCTION 0x1 /* enum */ 31822 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_PLUGIN 0x2 /* enum */ 31823 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_LBN 320 31824 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_TYPE_WIDTH 32 31825 /* The PCIe interface on which the function lives. CJK: We need an enumeration 31826 * of interfaces that we extend as new interface (types) appear. This belongs 31827 * elsewhere and should be referenced from here 31828 */ 31829 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_INTERFACE_OFST 44 31830 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_INTERFACE_LEN 4 31831 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_INTERFACE_LBN 352 31832 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_INTERFACE_WIDTH 32 31833 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_PF_IDX_OFST 48 31834 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_PF_IDX_LEN 2 31835 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_PF_IDX_LBN 384 31836 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_PF_IDX_WIDTH 16 31837 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_VF_IDX_OFST 50 31838 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_VF_IDX_LEN 2 31839 /* enum: Indicates that the function is a PF */ 31840 #define MAE_MPORT_DESC_V2_VF_IDX_NULL 0xffff 31841 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_VF_IDX_LBN 400 31842 #define MAE_MPORT_DESC_V2_VNIC_FUNCTION_VF_IDX_WIDTH 16 31843 /* Reserved. Should be ignored for now. */ 31844 #define MAE_MPORT_DESC_V2_VNIC_PLUGIN_TBD_OFST 44 31845 #define MAE_MPORT_DESC_V2_VNIC_PLUGIN_TBD_LEN 4 31846 #define MAE_MPORT_DESC_V2_VNIC_PLUGIN_TBD_LBN 352 31847 #define MAE_MPORT_DESC_V2_VNIC_PLUGIN_TBD_WIDTH 32 31848 /* A client handle for the VNIC's owner. Only valid for type VNIC. */ 31849 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_HANDLE_OFST 52 31850 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_HANDLE_LEN 4 31851 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_HANDLE_LBN 416 31852 #define MAE_MPORT_DESC_V2_VNIC_CLIENT_HANDLE_WIDTH 32 31853 31854 31855 /***********************************/ 31856 /* MC_CMD_MAE_MPORT_ENUMERATE 31857 * Deprecated in favour of MAE_MPORT_READ_JOURNAL. Support for this command 31858 * will be removed at some future point. 31859 */ 31860 #define MC_CMD_MAE_MPORT_ENUMERATE 0x17c 31861 #define MC_CMD_MAE_MPORT_ENUMERATE_MSGSET 0x17c 31862 #undef MC_CMD_0x17c_PRIVILEGE_CTG 31863 31864 #define MC_CMD_0x17c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 31865 31866 /* MC_CMD_MAE_MPORT_ENUMERATE_IN msgrequest */ 31867 #define MC_CMD_MAE_MPORT_ENUMERATE_IN_LEN 0 31868 31869 /* MC_CMD_MAE_MPORT_ENUMERATE_OUT msgresponse */ 31870 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_LENMIN 8 31871 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_LENMAX 252 31872 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_LENMAX_MCDI2 1020 31873 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_LEN(num) (8+1*(num)) 31874 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_NUM(len) (((len)-8)/1) 31875 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_COUNT_OFST 0 31876 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_COUNT_LEN 4 31877 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_SIZEOF_MPORT_DESC_OFST 4 31878 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_SIZEOF_MPORT_DESC_LEN 4 31879 /* Any array of MAE_MPORT_DESC structures. The MAE_MPORT_DESC structure may 31880 * grow in future version of this command. Drivers should use a stride of 31881 * SIZEOF_MPORT_DESC. Fields beyond SIZEOF_MPORT_DESC are not present. 31882 */ 31883 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_OFST 8 31884 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_LEN 1 31885 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_MINNUM 0 31886 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_MAXNUM 244 31887 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_MAXNUM_MCDI2 1012 31888 31889 31890 /***********************************/ 31891 /* MC_CMD_MAE_MPORT_READ_JOURNAL 31892 * Firmware maintains a per-client journal of mport creations and deletions. 31893 * This journal is clear-on-read, i.e. repeated calls of this command will 31894 * drain the buffer. Whenever the caller resets its function via FLR or 31895 * MC_CMD_ENTITY_RESET, the journal is regenerated from a blank start. 31896 */ 31897 #define MC_CMD_MAE_MPORT_READ_JOURNAL 0x147 31898 #define MC_CMD_MAE_MPORT_READ_JOURNAL_MSGSET 0x147 31899 #undef MC_CMD_0x147_PRIVILEGE_CTG 31900 31901 #define MC_CMD_0x147_PRIVILEGE_CTG SRIOV_CTG_MAE 31902 31903 /* MC_CMD_MAE_MPORT_READ_JOURNAL_IN msgrequest */ 31904 #define MC_CMD_MAE_MPORT_READ_JOURNAL_IN_LEN 4 31905 /* Any unused flags are reserved and must be set to zero. */ 31906 #define MC_CMD_MAE_MPORT_READ_JOURNAL_IN_FLAGS_OFST 0 31907 #define MC_CMD_MAE_MPORT_READ_JOURNAL_IN_FLAGS_LEN 4 31908 31909 /* MC_CMD_MAE_MPORT_READ_JOURNAL_OUT msgresponse */ 31910 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LENMIN 12 31911 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LENMAX 252 31912 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LENMAX_MCDI2 1020 31913 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LEN(num) (12+1*(num)) 31914 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_NUM(len) (((len)-12)/1) 31915 /* Any unused flags are reserved and must be ignored. */ 31916 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_FLAGS_OFST 0 31917 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_FLAGS_LEN 4 31918 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MORE_OFST 0 31919 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MORE_LBN 0 31920 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MORE_WIDTH 1 31921 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_COUNT_OFST 4 31922 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_COUNT_LEN 4 31923 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_SIZEOF_MPORT_DESC_OFST 8 31924 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_SIZEOF_MPORT_DESC_LEN 4 31925 /* Any array of MAE_MPORT_DESC structures. The MAE_MPORT_DESC structure may 31926 * grow in future version of this command. Drivers should use a stride of 31927 * SIZEOF_MPORT_DESC. Fields beyond SIZEOF_MPORT_DESC are not present. 31928 */ 31929 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_OFST 12 31930 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_LEN 1 31931 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_MINNUM 0 31932 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_MAXNUM 240 31933 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_MAXNUM_MCDI2 1008 31934 31935 #endif /* _SIENA_MC_DRIVER_PCOL_H */ 31936