1 /* SPDX-License-Identifier: BSD-3-Clause 2 * 3 * Copyright(c) 2019-2020 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 sfregistry 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 /* MAE_FIELD_SUPPORT_STATUS enum */ 414 /* enum: The NIC does not support this field. The driver must ensure that any 415 * mask associated with this field in a match rule is zeroed. The NIC may 416 * either reject requests with an invalid mask for such a field, or may assume 417 * that the mask is zero. (This category only exists to describe behaviour for 418 * fields that a newer driver might know about but that older firmware does 419 * not. It is recommended that firmware report MAE_FIELD_FIELD_MATCH_NEVER for 420 * all match fields defined at the time of its compilation. If a driver see a 421 * field support status value that it does not recognise, it must treat that 422 * field as thought the field was reported as MAE_FIELD_SUPPORTED_MATCH_NEVER, 423 * and must never set a non-zero mask value for this field. 424 */ 425 #define MAE_FIELD_UNSUPPORTED 0x0 426 /* enum: The NIC supports this field, but cannot use it in a match rule. The 427 * driver must ensure that any mask for such a field in a match rule is zeroed. 428 * The NIC will reject requests with an invalid mask for such a field. 429 */ 430 #define MAE_FIELD_SUPPORTED_MATCH_NEVER 0x1 431 /* enum: The NIC supports this field, and must use it in all match rules. The 432 * driver must ensure that any mask for such a field is all ones. The NIC will 433 * reject requests with an invalid mask for such a field. 434 */ 435 #define MAE_FIELD_SUPPORTED_MATCH_ALWAYS 0x2 436 /* enum: The NIC supports this field, and may optionally use it in match rules. 437 * The driver must ensure that any mask for such a field is either all zeroes 438 * or all ones. The NIC will reject requests with an invalid mask for such a 439 * field. 440 */ 441 #define MAE_FIELD_SUPPORTED_MATCH_OPTIONAL 0x3 442 /* enum: The NIC supports this field, and may optionally use it in match rules. 443 * The driver must ensure that any mask for such a field is either all zeroes 444 * or a consecutive set of ones following by all zeroes (starting from MSB). 445 * The NIC will reject requests with an invalid mask for such a field. 446 */ 447 #define MAE_FIELD_SUPPORTED_MATCH_PREFIX 0x4 448 /* enum: The NIC supports this field, and may optionally use it in match rules. 449 * The driver may provide an arbitrary mask for such a field. 450 */ 451 #define MAE_FIELD_SUPPORTED_MATCH_MASK 0x5 452 453 /* MAE_FIELD enum: NB: this enum shares namespace with the support status enum. 454 */ 455 /* enum: Source mport upon entering the MAE. */ 456 #define MAE_FIELD_INGRESS_PORT 0x0 457 #define MAE_FIELD_MARK 0x1 /* enum */ 458 /* enum: Table ID used in action rule. Initially zero, can be changed in action 459 * rule response. 460 */ 461 #define MAE_FIELD_RECIRC_ID 0x2 462 #define MAE_FIELD_IS_IP_FRAG 0x3 /* enum */ 463 #define MAE_FIELD_DO_CT 0x4 /* enum */ 464 #define MAE_FIELD_CT_HIT 0x5 /* enum */ 465 /* enum: Undefined unless CT_HIT=1. */ 466 #define MAE_FIELD_CT_MARK 0x6 467 /* enum: Undefined unless DO_CT=1. */ 468 #define MAE_FIELD_CT_DOMAIN 0x7 469 /* enum: Undefined unless CT_HIT=1. */ 470 #define MAE_FIELD_CT_PRIVATE_FLAGS 0x8 471 /* enum: 1 if the packet ingressed the NIC from one of the MACs, else 0. */ 472 #define MAE_FIELD_IS_FROM_NETWORK 0x9 473 #define MAE_FIELD_ETHER_TYPE 0x21 /* enum */ 474 #define MAE_FIELD_VLAN0_TCI 0x22 /* enum */ 475 #define MAE_FIELD_VLAN0_PROTO 0x23 /* enum */ 476 #define MAE_FIELD_VLAN1_TCI 0x24 /* enum */ 477 #define MAE_FIELD_VLAN1_PROTO 0x25 /* enum */ 478 /* enum: Inner when encap */ 479 #define MAE_FIELD_ETH_SADDR 0x28 480 /* enum: Inner when encap */ 481 #define MAE_FIELD_ETH_DADDR 0x29 482 /* enum: Inner when encap. NB: IPv4 and IPv6 fields are mutually exclusive. */ 483 #define MAE_FIELD_SRC_IP4 0x2a 484 /* enum: Inner when encap */ 485 #define MAE_FIELD_SRC_IP6 0x2b 486 /* enum: Inner when encap */ 487 #define MAE_FIELD_DST_IP4 0x2c 488 /* enum: Inner when encap */ 489 #define MAE_FIELD_DST_IP6 0x2d 490 /* enum: Inner when encap */ 491 #define MAE_FIELD_IP_PROTO 0x2e 492 /* enum: Inner when encap */ 493 #define MAE_FIELD_IP_TOS 0x2f 494 /* enum: Inner when encap */ 495 #define MAE_FIELD_IP_TTL 0x30 496 /* enum: Inner when encap TODO: how this is defined? The raw flags + 497 * frag_offset from the packet, or some derived value more amenable to ternary 498 * matching? TODO: there was a proposal for driver-allocation fields. The 499 * driver would provide some instruction for how to extract given field values, 500 * and would be given a field id in return. It could then use that field id in 501 * its matches. This feels like it would be extremely hard to implement in 502 * hardware, but I mention it for completeness. 503 */ 504 #define MAE_FIELD_IP_FLAGS 0x31 505 /* enum: Ports (UDP, TCP) Inner when encap */ 506 #define MAE_FIELD_L4_SPORT 0x32 507 /* enum: Ports (UDP, TCP) Inner when encap */ 508 #define MAE_FIELD_L4_DPORT 0x33 509 /* enum: Inner when encap */ 510 #define MAE_FIELD_TCP_FLAGS 0x34 511 /* enum: The type of encapsulated used for this packet. Value as per 512 * ENCAP_TYPE_*. 513 */ 514 #define MAE_FIELD_ENCAP_TYPE 0x3f 515 /* enum: The ID of the outer rule that marked this packet as encapsulated. 516 * Useful for implicitly matching on outer fields. 517 */ 518 #define MAE_FIELD_OUTER_RULE_ID 0x40 519 /* enum: Outer; only present when encap */ 520 #define MAE_FIELD_ENC_ETHER_TYPE 0x41 521 /* enum: Outer; only present when encap */ 522 #define MAE_FIELD_ENC_VLAN0_TCI 0x42 523 /* enum: Outer; only present when encap */ 524 #define MAE_FIELD_ENC_VLAN0_PROTO 0x43 525 /* enum: Outer; only present when encap */ 526 #define MAE_FIELD_ENC_VLAN1_TCI 0x44 527 /* enum: Outer; only present when encap */ 528 #define MAE_FIELD_ENC_VLAN1_PROTO 0x45 529 /* enum: Outer; only present when encap */ 530 #define MAE_FIELD_ENC_ETH_SADDR 0x48 531 /* enum: Outer; only present when encap */ 532 #define MAE_FIELD_ENC_ETH_DADDR 0x49 533 /* enum: Outer; only present when encap */ 534 #define MAE_FIELD_ENC_SRC_IP4 0x4a 535 /* enum: Outer; only present when encap */ 536 #define MAE_FIELD_ENC_SRC_IP6 0x4b 537 /* enum: Outer; only present when encap */ 538 #define MAE_FIELD_ENC_DST_IP4 0x4c 539 /* enum: Outer; only present when encap */ 540 #define MAE_FIELD_ENC_DST_IP6 0x4d 541 /* enum: Outer; only present when encap */ 542 #define MAE_FIELD_ENC_IP_PROTO 0x4e 543 /* enum: Outer; only present when encap */ 544 #define MAE_FIELD_ENC_IP_TOS 0x4f 545 /* enum: Outer; only present when encap */ 546 #define MAE_FIELD_ENC_IP_TTL 0x50 547 /* enum: Outer; only present when encap */ 548 #define MAE_FIELD_ENC_IP_FLAGS 0x51 549 /* enum: Outer; only present when encap */ 550 #define MAE_FIELD_ENC_L4_SPORT 0x52 551 /* enum: Outer; only present when encap */ 552 #define MAE_FIELD_ENC_L4_DPORT 0x53 553 /* enum: VNI (when VXLAN or GENEVE) VSID (when NVGRE) Outer; only present when 554 * encap 555 */ 556 #define MAE_FIELD_ENC_VNET_ID 0x54 557 558 /* MAE_MCDI_ENCAP_TYPE enum: Encapsulation type. Defines how the payload will 559 * be parsed to an inner frame. Other values are reserved. Unknown values 560 * should be treated same as NONE. 561 */ 562 #define MAE_MCDI_ENCAP_TYPE_NONE 0x0 /* enum */ 563 /* enum: Don't assume enum aligns with support bitmask... */ 564 #define MAE_MCDI_ENCAP_TYPE_VXLAN 0x1 565 #define MAE_MCDI_ENCAP_TYPE_NVGRE 0x2 /* enum */ 566 #define MAE_MCDI_ENCAP_TYPE_GENEVE 0x3 /* enum */ 567 #define MAE_MCDI_ENCAP_TYPE_L2GRE 0x4 /* enum */ 568 569 /* MCDI_EVENT structuredef: The structure of an MCDI_EVENT on Siena/EF10/EF100 570 * platforms 571 */ 572 #define MCDI_EVENT_LEN 8 573 #define MCDI_EVENT_CONT_LBN 32 574 #define MCDI_EVENT_CONT_WIDTH 1 575 #define MCDI_EVENT_LEVEL_LBN 33 576 #define MCDI_EVENT_LEVEL_WIDTH 3 577 /* enum: Info. */ 578 #define MCDI_EVENT_LEVEL_INFO 0x0 579 /* enum: Warning. */ 580 #define MCDI_EVENT_LEVEL_WARN 0x1 581 /* enum: Error. */ 582 #define MCDI_EVENT_LEVEL_ERR 0x2 583 /* enum: Fatal. */ 584 #define MCDI_EVENT_LEVEL_FATAL 0x3 585 #define MCDI_EVENT_DATA_OFST 0 586 #define MCDI_EVENT_DATA_LEN 4 587 #define MCDI_EVENT_CMDDONE_SEQ_OFST 0 588 #define MCDI_EVENT_CMDDONE_SEQ_LBN 0 589 #define MCDI_EVENT_CMDDONE_SEQ_WIDTH 8 590 #define MCDI_EVENT_CMDDONE_DATALEN_OFST 0 591 #define MCDI_EVENT_CMDDONE_DATALEN_LBN 8 592 #define MCDI_EVENT_CMDDONE_DATALEN_WIDTH 8 593 #define MCDI_EVENT_CMDDONE_ERRNO_OFST 0 594 #define MCDI_EVENT_CMDDONE_ERRNO_LBN 16 595 #define MCDI_EVENT_CMDDONE_ERRNO_WIDTH 8 596 #define MCDI_EVENT_LINKCHANGE_LP_CAP_OFST 0 597 #define MCDI_EVENT_LINKCHANGE_LP_CAP_LBN 0 598 #define MCDI_EVENT_LINKCHANGE_LP_CAP_WIDTH 16 599 #define MCDI_EVENT_LINKCHANGE_SPEED_OFST 0 600 #define MCDI_EVENT_LINKCHANGE_SPEED_LBN 16 601 #define MCDI_EVENT_LINKCHANGE_SPEED_WIDTH 4 602 /* enum: Link is down or link speed could not be determined */ 603 #define MCDI_EVENT_LINKCHANGE_SPEED_UNKNOWN 0x0 604 /* enum: 100Mbs */ 605 #define MCDI_EVENT_LINKCHANGE_SPEED_100M 0x1 606 /* enum: 1Gbs */ 607 #define MCDI_EVENT_LINKCHANGE_SPEED_1G 0x2 608 /* enum: 10Gbs */ 609 #define MCDI_EVENT_LINKCHANGE_SPEED_10G 0x3 610 /* enum: 40Gbs */ 611 #define MCDI_EVENT_LINKCHANGE_SPEED_40G 0x4 612 /* enum: 25Gbs */ 613 #define MCDI_EVENT_LINKCHANGE_SPEED_25G 0x5 614 /* enum: 50Gbs */ 615 #define MCDI_EVENT_LINKCHANGE_SPEED_50G 0x6 616 /* enum: 100Gbs */ 617 #define MCDI_EVENT_LINKCHANGE_SPEED_100G 0x7 618 #define MCDI_EVENT_LINKCHANGE_FCNTL_OFST 0 619 #define MCDI_EVENT_LINKCHANGE_FCNTL_LBN 20 620 #define MCDI_EVENT_LINKCHANGE_FCNTL_WIDTH 4 621 #define MCDI_EVENT_LINKCHANGE_LINK_FLAGS_OFST 0 622 #define MCDI_EVENT_LINKCHANGE_LINK_FLAGS_LBN 24 623 #define MCDI_EVENT_LINKCHANGE_LINK_FLAGS_WIDTH 8 624 #define MCDI_EVENT_SENSOREVT_MONITOR_OFST 0 625 #define MCDI_EVENT_SENSOREVT_MONITOR_LBN 0 626 #define MCDI_EVENT_SENSOREVT_MONITOR_WIDTH 8 627 #define MCDI_EVENT_SENSOREVT_STATE_OFST 0 628 #define MCDI_EVENT_SENSOREVT_STATE_LBN 8 629 #define MCDI_EVENT_SENSOREVT_STATE_WIDTH 8 630 #define MCDI_EVENT_SENSOREVT_VALUE_OFST 0 631 #define MCDI_EVENT_SENSOREVT_VALUE_LBN 16 632 #define MCDI_EVENT_SENSOREVT_VALUE_WIDTH 16 633 #define MCDI_EVENT_FWALERT_DATA_OFST 0 634 #define MCDI_EVENT_FWALERT_DATA_LBN 8 635 #define MCDI_EVENT_FWALERT_DATA_WIDTH 24 636 #define MCDI_EVENT_FWALERT_REASON_OFST 0 637 #define MCDI_EVENT_FWALERT_REASON_LBN 0 638 #define MCDI_EVENT_FWALERT_REASON_WIDTH 8 639 /* enum: SRAM Access. */ 640 #define MCDI_EVENT_FWALERT_REASON_SRAM_ACCESS 0x1 641 #define MCDI_EVENT_FLR_VF_OFST 0 642 #define MCDI_EVENT_FLR_VF_LBN 0 643 #define MCDI_EVENT_FLR_VF_WIDTH 8 644 #define MCDI_EVENT_TX_ERR_TXQ_OFST 0 645 #define MCDI_EVENT_TX_ERR_TXQ_LBN 0 646 #define MCDI_EVENT_TX_ERR_TXQ_WIDTH 12 647 #define MCDI_EVENT_TX_ERR_TYPE_OFST 0 648 #define MCDI_EVENT_TX_ERR_TYPE_LBN 12 649 #define MCDI_EVENT_TX_ERR_TYPE_WIDTH 4 650 /* enum: Descriptor loader reported failure */ 651 #define MCDI_EVENT_TX_ERR_DL_FAIL 0x1 652 /* enum: Descriptor ring empty and no EOP seen for packet */ 653 #define MCDI_EVENT_TX_ERR_NO_EOP 0x2 654 /* enum: Overlength packet */ 655 #define MCDI_EVENT_TX_ERR_2BIG 0x3 656 /* enum: Malformed option descriptor */ 657 #define MCDI_EVENT_TX_BAD_OPTDESC 0x5 658 /* enum: Option descriptor part way through a packet */ 659 #define MCDI_EVENT_TX_OPT_IN_PKT 0x8 660 /* enum: DMA or PIO data access error */ 661 #define MCDI_EVENT_TX_ERR_BAD_DMA_OR_PIO 0x9 662 #define MCDI_EVENT_TX_ERR_INFO_OFST 0 663 #define MCDI_EVENT_TX_ERR_INFO_LBN 16 664 #define MCDI_EVENT_TX_ERR_INFO_WIDTH 16 665 #define MCDI_EVENT_TX_FLUSH_TO_DRIVER_OFST 0 666 #define MCDI_EVENT_TX_FLUSH_TO_DRIVER_LBN 12 667 #define MCDI_EVENT_TX_FLUSH_TO_DRIVER_WIDTH 1 668 #define MCDI_EVENT_TX_FLUSH_TXQ_OFST 0 669 #define MCDI_EVENT_TX_FLUSH_TXQ_LBN 0 670 #define MCDI_EVENT_TX_FLUSH_TXQ_WIDTH 12 671 #define MCDI_EVENT_PTP_ERR_TYPE_OFST 0 672 #define MCDI_EVENT_PTP_ERR_TYPE_LBN 0 673 #define MCDI_EVENT_PTP_ERR_TYPE_WIDTH 8 674 /* enum: PLL lost lock */ 675 #define MCDI_EVENT_PTP_ERR_PLL_LOST 0x1 676 /* enum: Filter overflow (PDMA) */ 677 #define MCDI_EVENT_PTP_ERR_FILTER 0x2 678 /* enum: FIFO overflow (FPGA) */ 679 #define MCDI_EVENT_PTP_ERR_FIFO 0x3 680 /* enum: Merge queue overflow */ 681 #define MCDI_EVENT_PTP_ERR_QUEUE 0x4 682 #define MCDI_EVENT_AOE_ERR_TYPE_OFST 0 683 #define MCDI_EVENT_AOE_ERR_TYPE_LBN 0 684 #define MCDI_EVENT_AOE_ERR_TYPE_WIDTH 8 685 /* enum: AOE failed to load - no valid image? */ 686 #define MCDI_EVENT_AOE_NO_LOAD 0x1 687 /* enum: AOE FC reported an exception */ 688 #define MCDI_EVENT_AOE_FC_ASSERT 0x2 689 /* enum: AOE FC watchdogged */ 690 #define MCDI_EVENT_AOE_FC_WATCHDOG 0x3 691 /* enum: AOE FC failed to start */ 692 #define MCDI_EVENT_AOE_FC_NO_START 0x4 693 /* enum: Generic AOE fault - likely to have been reported via other means too 694 * but intended for use by aoex driver. 695 */ 696 #define MCDI_EVENT_AOE_FAULT 0x5 697 /* enum: Results of reprogramming the CPLD (status in AOE_ERR_DATA) */ 698 #define MCDI_EVENT_AOE_CPLD_REPROGRAMMED 0x6 699 /* enum: AOE loaded successfully */ 700 #define MCDI_EVENT_AOE_LOAD 0x7 701 /* enum: AOE DMA operation completed (LSB of HOST_HANDLE in AOE_ERR_DATA) */ 702 #define MCDI_EVENT_AOE_DMA 0x8 703 /* enum: AOE byteblaster connected/disconnected (Connection status in 704 * AOE_ERR_DATA) 705 */ 706 #define MCDI_EVENT_AOE_BYTEBLASTER 0x9 707 /* enum: DDR ECC status update */ 708 #define MCDI_EVENT_AOE_DDR_ECC_STATUS 0xa 709 /* enum: PTP status update */ 710 #define MCDI_EVENT_AOE_PTP_STATUS 0xb 711 /* enum: FPGA header incorrect */ 712 #define MCDI_EVENT_AOE_FPGA_LOAD_HEADER_ERR 0xc 713 /* enum: FPGA Powered Off due to error in powering up FPGA */ 714 #define MCDI_EVENT_AOE_FPGA_POWER_OFF 0xd 715 /* enum: AOE FPGA load failed due to MC to MUM communication failure */ 716 #define MCDI_EVENT_AOE_FPGA_LOAD_FAILED 0xe 717 /* enum: Notify that invalid flash type detected */ 718 #define MCDI_EVENT_AOE_INVALID_FPGA_FLASH_TYPE 0xf 719 /* enum: Notify that the attempt to run FPGA Controller firmware timedout */ 720 #define MCDI_EVENT_AOE_FC_RUN_TIMEDOUT 0x10 721 /* enum: Failure to probe one or more FPGA boot flash chips */ 722 #define MCDI_EVENT_AOE_FPGA_BOOT_FLASH_INVALID 0x11 723 /* enum: FPGA boot-flash contains an invalid image header */ 724 #define MCDI_EVENT_AOE_FPGA_BOOT_FLASH_HDR_INVALID 0x12 725 /* enum: Failed to program clocks required by the FPGA */ 726 #define MCDI_EVENT_AOE_FPGA_CLOCKS_PROGRAM_FAILED 0x13 727 /* enum: Notify that FPGA Controller is alive to serve MCDI requests */ 728 #define MCDI_EVENT_AOE_FC_RUNNING 0x14 729 #define MCDI_EVENT_AOE_ERR_DATA_OFST 0 730 #define MCDI_EVENT_AOE_ERR_DATA_LBN 8 731 #define MCDI_EVENT_AOE_ERR_DATA_WIDTH 8 732 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_INFO_OFST 0 733 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_INFO_LBN 8 734 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_INFO_WIDTH 8 735 /* enum: FC Assert happened, but the register information is not available */ 736 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_SEEN 0x0 737 /* enum: The register information for FC Assert is ready for readinng by driver 738 */ 739 #define MCDI_EVENT_AOE_ERR_FC_ASSERT_DATA_READY 0x1 740 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_OFST 0 741 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_LBN 8 742 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_HEADER_VERIFY_FAILED_WIDTH 8 743 /* enum: Reading from NV failed */ 744 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_NV_READ_FAIL 0x0 745 /* enum: Invalid Magic Number if FPGA header */ 746 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_MAGIC_FAIL 0x1 747 /* enum: Invalid Silicon type detected in header */ 748 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_SILICON_TYPE 0x2 749 /* enum: Unsupported VRatio */ 750 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_VRATIO 0x3 751 /* enum: Unsupported DDR Type */ 752 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_TYPE 0x4 753 /* enum: DDR Voltage out of supported range */ 754 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_VOLTAGE 0x5 755 /* enum: Unsupported DDR speed */ 756 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_SPEED 0x6 757 /* enum: Unsupported DDR size */ 758 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_SIZE 0x7 759 /* enum: Unsupported DDR rank */ 760 #define MCDI_EVENT_AOE_ERR_FPGA_HEADER_DDR_RANK 0x8 761 #define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_OFST 0 762 #define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_LBN 8 763 #define MCDI_EVENT_AOE_ERR_CODE_INVALID_FPGA_FLASH_TYPE_INFO_WIDTH 8 764 /* enum: Primary boot flash */ 765 #define MCDI_EVENT_AOE_FLASH_TYPE_BOOT_PRIMARY 0x0 766 /* enum: Secondary boot flash */ 767 #define MCDI_EVENT_AOE_FLASH_TYPE_BOOT_SECONDARY 0x1 768 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_OFST 0 769 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_LBN 8 770 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_POWER_OFF_WIDTH 8 771 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_OFST 0 772 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_LBN 8 773 #define MCDI_EVENT_AOE_ERR_CODE_FPGA_LOAD_FAILED_WIDTH 8 774 #define MCDI_EVENT_RX_ERR_RXQ_OFST 0 775 #define MCDI_EVENT_RX_ERR_RXQ_LBN 0 776 #define MCDI_EVENT_RX_ERR_RXQ_WIDTH 12 777 #define MCDI_EVENT_RX_ERR_TYPE_OFST 0 778 #define MCDI_EVENT_RX_ERR_TYPE_LBN 12 779 #define MCDI_EVENT_RX_ERR_TYPE_WIDTH 4 780 #define MCDI_EVENT_RX_ERR_INFO_OFST 0 781 #define MCDI_EVENT_RX_ERR_INFO_LBN 16 782 #define MCDI_EVENT_RX_ERR_INFO_WIDTH 16 783 #define MCDI_EVENT_RX_FLUSH_TO_DRIVER_OFST 0 784 #define MCDI_EVENT_RX_FLUSH_TO_DRIVER_LBN 12 785 #define MCDI_EVENT_RX_FLUSH_TO_DRIVER_WIDTH 1 786 #define MCDI_EVENT_RX_FLUSH_RXQ_OFST 0 787 #define MCDI_EVENT_RX_FLUSH_RXQ_LBN 0 788 #define MCDI_EVENT_RX_FLUSH_RXQ_WIDTH 12 789 #define MCDI_EVENT_MC_REBOOT_COUNT_OFST 0 790 #define MCDI_EVENT_MC_REBOOT_COUNT_LBN 0 791 #define MCDI_EVENT_MC_REBOOT_COUNT_WIDTH 16 792 #define MCDI_EVENT_MUM_ERR_TYPE_OFST 0 793 #define MCDI_EVENT_MUM_ERR_TYPE_LBN 0 794 #define MCDI_EVENT_MUM_ERR_TYPE_WIDTH 8 795 /* enum: MUM failed to load - no valid image? */ 796 #define MCDI_EVENT_MUM_NO_LOAD 0x1 797 /* enum: MUM f/w reported an exception */ 798 #define MCDI_EVENT_MUM_ASSERT 0x2 799 /* enum: MUM not kicking watchdog */ 800 #define MCDI_EVENT_MUM_WATCHDOG 0x3 801 #define MCDI_EVENT_MUM_ERR_DATA_OFST 0 802 #define MCDI_EVENT_MUM_ERR_DATA_LBN 8 803 #define MCDI_EVENT_MUM_ERR_DATA_WIDTH 8 804 #define MCDI_EVENT_DBRET_SEQ_OFST 0 805 #define MCDI_EVENT_DBRET_SEQ_LBN 0 806 #define MCDI_EVENT_DBRET_SEQ_WIDTH 8 807 #define MCDI_EVENT_SUC_ERR_TYPE_OFST 0 808 #define MCDI_EVENT_SUC_ERR_TYPE_LBN 0 809 #define MCDI_EVENT_SUC_ERR_TYPE_WIDTH 8 810 /* enum: Corrupted or bad SUC application. */ 811 #define MCDI_EVENT_SUC_BAD_APP 0x1 812 /* enum: SUC application reported an assert. */ 813 #define MCDI_EVENT_SUC_ASSERT 0x2 814 /* enum: SUC application reported an exception. */ 815 #define MCDI_EVENT_SUC_EXCEPTION 0x3 816 /* enum: SUC watchdog timer expired. */ 817 #define MCDI_EVENT_SUC_WATCHDOG 0x4 818 #define MCDI_EVENT_SUC_ERR_ADDRESS_OFST 0 819 #define MCDI_EVENT_SUC_ERR_ADDRESS_LBN 8 820 #define MCDI_EVENT_SUC_ERR_ADDRESS_WIDTH 24 821 #define MCDI_EVENT_SUC_ERR_DATA_OFST 0 822 #define MCDI_EVENT_SUC_ERR_DATA_LBN 8 823 #define MCDI_EVENT_SUC_ERR_DATA_WIDTH 24 824 #define MCDI_EVENT_LINKCHANGE_V2_LP_CAP_OFST 0 825 #define MCDI_EVENT_LINKCHANGE_V2_LP_CAP_LBN 0 826 #define MCDI_EVENT_LINKCHANGE_V2_LP_CAP_WIDTH 24 827 #define MCDI_EVENT_LINKCHANGE_V2_SPEED_OFST 0 828 #define MCDI_EVENT_LINKCHANGE_V2_SPEED_LBN 24 829 #define MCDI_EVENT_LINKCHANGE_V2_SPEED_WIDTH 4 830 /* Enum values, see field(s): */ 831 /* MCDI_EVENT/LINKCHANGE_SPEED */ 832 #define MCDI_EVENT_LINKCHANGE_V2_FLAGS_LINK_UP_OFST 0 833 #define MCDI_EVENT_LINKCHANGE_V2_FLAGS_LINK_UP_LBN 28 834 #define MCDI_EVENT_LINKCHANGE_V2_FLAGS_LINK_UP_WIDTH 1 835 #define MCDI_EVENT_LINKCHANGE_V2_FCNTL_OFST 0 836 #define MCDI_EVENT_LINKCHANGE_V2_FCNTL_LBN 29 837 #define MCDI_EVENT_LINKCHANGE_V2_FCNTL_WIDTH 3 838 /* Enum values, see field(s): */ 839 /* MC_CMD_SET_MAC/MC_CMD_SET_MAC_IN/FCNTL */ 840 #define MCDI_EVENT_MODULECHANGE_LD_CAP_OFST 0 841 #define MCDI_EVENT_MODULECHANGE_LD_CAP_LBN 0 842 #define MCDI_EVENT_MODULECHANGE_LD_CAP_WIDTH 30 843 #define MCDI_EVENT_MODULECHANGE_SEQ_OFST 0 844 #define MCDI_EVENT_MODULECHANGE_SEQ_LBN 30 845 #define MCDI_EVENT_MODULECHANGE_SEQ_WIDTH 2 846 #define MCDI_EVENT_DATA_LBN 0 847 #define MCDI_EVENT_DATA_WIDTH 32 848 /* Alias for PTP_DATA. */ 849 #define MCDI_EVENT_SRC_LBN 36 850 #define MCDI_EVENT_SRC_WIDTH 8 851 /* Data associated with PTP events which doesn't fit into the main DATA field 852 */ 853 #define MCDI_EVENT_PTP_DATA_LBN 36 854 #define MCDI_EVENT_PTP_DATA_WIDTH 8 855 /* EF100 specific. Defined by QDMA. The phase bit, changes each time round the 856 * event ring 857 */ 858 #define MCDI_EVENT_EV_EVQ_PHASE_LBN 59 859 #define MCDI_EVENT_EV_EVQ_PHASE_WIDTH 1 860 #define MCDI_EVENT_EV_CODE_LBN 60 861 #define MCDI_EVENT_EV_CODE_WIDTH 4 862 #define MCDI_EVENT_CODE_LBN 44 863 #define MCDI_EVENT_CODE_WIDTH 8 864 /* enum: Event generated by host software */ 865 #define MCDI_EVENT_SW_EVENT 0x0 866 /* enum: Bad assert. */ 867 #define MCDI_EVENT_CODE_BADSSERT 0x1 868 /* enum: PM Notice. */ 869 #define MCDI_EVENT_CODE_PMNOTICE 0x2 870 /* enum: Command done. */ 871 #define MCDI_EVENT_CODE_CMDDONE 0x3 872 /* enum: Link change. */ 873 #define MCDI_EVENT_CODE_LINKCHANGE 0x4 874 /* enum: Sensor Event. */ 875 #define MCDI_EVENT_CODE_SENSOREVT 0x5 876 /* enum: Schedule error. */ 877 #define MCDI_EVENT_CODE_SCHEDERR 0x6 878 /* enum: Reboot. */ 879 #define MCDI_EVENT_CODE_REBOOT 0x7 880 /* enum: Mac stats DMA. */ 881 #define MCDI_EVENT_CODE_MAC_STATS_DMA 0x8 882 /* enum: Firmware alert. */ 883 #define MCDI_EVENT_CODE_FWALERT 0x9 884 /* enum: Function level reset. */ 885 #define MCDI_EVENT_CODE_FLR 0xa 886 /* enum: Transmit error */ 887 #define MCDI_EVENT_CODE_TX_ERR 0xb 888 /* enum: Tx flush has completed */ 889 #define MCDI_EVENT_CODE_TX_FLUSH 0xc 890 /* enum: PTP packet received timestamp */ 891 #define MCDI_EVENT_CODE_PTP_RX 0xd 892 /* enum: PTP NIC failure */ 893 #define MCDI_EVENT_CODE_PTP_FAULT 0xe 894 /* enum: PTP PPS event */ 895 #define MCDI_EVENT_CODE_PTP_PPS 0xf 896 /* enum: Rx flush has completed */ 897 #define MCDI_EVENT_CODE_RX_FLUSH 0x10 898 /* enum: Receive error */ 899 #define MCDI_EVENT_CODE_RX_ERR 0x11 900 /* enum: AOE fault */ 901 #define MCDI_EVENT_CODE_AOE 0x12 902 /* enum: Network port calibration failed (VCAL). */ 903 #define MCDI_EVENT_CODE_VCAL_FAIL 0x13 904 /* enum: HW PPS event */ 905 #define MCDI_EVENT_CODE_HW_PPS 0x14 906 /* enum: The MC has rebooted (huntington and later, siena uses CODE_REBOOT and 907 * a different format) 908 */ 909 #define MCDI_EVENT_CODE_MC_REBOOT 0x15 910 /* enum: the MC has detected a parity error */ 911 #define MCDI_EVENT_CODE_PAR_ERR 0x16 912 /* enum: the MC has detected a correctable error */ 913 #define MCDI_EVENT_CODE_ECC_CORR_ERR 0x17 914 /* enum: the MC has detected an uncorrectable error */ 915 #define MCDI_EVENT_CODE_ECC_FATAL_ERR 0x18 916 /* enum: The MC has entered offline BIST mode */ 917 #define MCDI_EVENT_CODE_MC_BIST 0x19 918 /* enum: PTP tick event providing current NIC time */ 919 #define MCDI_EVENT_CODE_PTP_TIME 0x1a 920 /* enum: MUM fault */ 921 #define MCDI_EVENT_CODE_MUM 0x1b 922 /* enum: notify the designated PF of a new authorization request */ 923 #define MCDI_EVENT_CODE_PROXY_REQUEST 0x1c 924 /* enum: notify a function that awaits an authorization that its request has 925 * been processed and it may now resend the command 926 */ 927 #define MCDI_EVENT_CODE_PROXY_RESPONSE 0x1d 928 /* enum: MCDI command accepted. New commands can be issued but this command is 929 * not done yet. 930 */ 931 #define MCDI_EVENT_CODE_DBRET 0x1e 932 /* enum: The MC has detected a fault on the SUC */ 933 #define MCDI_EVENT_CODE_SUC 0x1f 934 /* enum: Link change. This event is sent instead of LINKCHANGE if 935 * WANT_V2_LINKCHANGES was set on driver attach. 936 */ 937 #define MCDI_EVENT_CODE_LINKCHANGE_V2 0x20 938 /* enum: This event is sent if WANT_V2_LINKCHANGES was set on driver attach 939 * when the local device capabilities changes. This will usually correspond to 940 * a module change. 941 */ 942 #define MCDI_EVENT_CODE_MODULECHANGE 0x21 943 /* enum: Notification that the sensors have been added and/or removed from the 944 * sensor table. This event includes the new sensor table generation count, if 945 * this does not match the driver's local copy it is expected to call 946 * DYNAMIC_SENSORS_LIST to refresh it. 947 */ 948 #define MCDI_EVENT_CODE_DYNAMIC_SENSORS_CHANGE 0x22 949 /* enum: Notification that a sensor has changed state as a result of a reading 950 * crossing a threshold. This is sent as two events, the first event contains 951 * the handle and the sensor's state (in the SRC field), and the second 952 * contains the value. 953 */ 954 #define MCDI_EVENT_CODE_DYNAMIC_SENSORS_STATE_CHANGE 0x23 955 /* enum: Notification that a descriptor proxy function configuration has been 956 * pushed to "live" status (visible to host). SRC field contains the handle of 957 * the affected descriptor proxy function. DATA field contains the generation 958 * count of configuration set applied. See MC_CMD_DESC_PROXY_FUNC_CONFIG_SET / 959 * MC_CMD_DESC_PROXY_FUNC_CONFIG_COMMIT and SF-122927-TC for details. 960 */ 961 #define MCDI_EVENT_CODE_DESC_PROXY_FUNC_CONFIG_COMMITTED 0x24 962 /* enum: Notification that a descriptor proxy function has been reset. SRC 963 * field contains the handle of the affected descriptor proxy function. See 964 * SF-122927-TC for details. 965 */ 966 #define MCDI_EVENT_CODE_DESC_PROXY_FUNC_RESET 0x25 967 /* enum: Notification that a driver attached to a descriptor proxy function. 968 * SRC field contains the handle of the affected descriptor proxy function. For 969 * Virtio proxy functions this message consists of two MCDI events, where the 970 * first event's (CONT=1) DATA field carries negotiated virtio feature bits 0 971 * to 31 and the second (CONT=0) carries bits 32 to 63. For EF100 proxy 972 * functions event length and meaning of DATA field is not yet defined. See 973 * SF-122927-TC for details. 974 */ 975 #define MCDI_EVENT_CODE_DESC_PROXY_FUNC_DRIVER_ATTACH 0x26 976 /* enum: Artificial event generated by host and posted via MC for test 977 * purposes. 978 */ 979 #define MCDI_EVENT_CODE_TESTGEN 0xfa 980 #define MCDI_EVENT_CMDDONE_DATA_OFST 0 981 #define MCDI_EVENT_CMDDONE_DATA_LEN 4 982 #define MCDI_EVENT_CMDDONE_DATA_LBN 0 983 #define MCDI_EVENT_CMDDONE_DATA_WIDTH 32 984 #define MCDI_EVENT_LINKCHANGE_DATA_OFST 0 985 #define MCDI_EVENT_LINKCHANGE_DATA_LEN 4 986 #define MCDI_EVENT_LINKCHANGE_DATA_LBN 0 987 #define MCDI_EVENT_LINKCHANGE_DATA_WIDTH 32 988 #define MCDI_EVENT_SENSOREVT_DATA_OFST 0 989 #define MCDI_EVENT_SENSOREVT_DATA_LEN 4 990 #define MCDI_EVENT_SENSOREVT_DATA_LBN 0 991 #define MCDI_EVENT_SENSOREVT_DATA_WIDTH 32 992 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_OFST 0 993 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_LEN 4 994 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_LBN 0 995 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_WIDTH 32 996 #define MCDI_EVENT_TX_ERR_DATA_OFST 0 997 #define MCDI_EVENT_TX_ERR_DATA_LEN 4 998 #define MCDI_EVENT_TX_ERR_DATA_LBN 0 999 #define MCDI_EVENT_TX_ERR_DATA_WIDTH 32 1000 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the seconds field of 1001 * timestamp 1002 */ 1003 #define MCDI_EVENT_PTP_SECONDS_OFST 0 1004 #define MCDI_EVENT_PTP_SECONDS_LEN 4 1005 #define MCDI_EVENT_PTP_SECONDS_LBN 0 1006 #define MCDI_EVENT_PTP_SECONDS_WIDTH 32 1007 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the major field of 1008 * timestamp 1009 */ 1010 #define MCDI_EVENT_PTP_MAJOR_OFST 0 1011 #define MCDI_EVENT_PTP_MAJOR_LEN 4 1012 #define MCDI_EVENT_PTP_MAJOR_LBN 0 1013 #define MCDI_EVENT_PTP_MAJOR_WIDTH 32 1014 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the nanoseconds field 1015 * of timestamp 1016 */ 1017 #define MCDI_EVENT_PTP_NANOSECONDS_OFST 0 1018 #define MCDI_EVENT_PTP_NANOSECONDS_LEN 4 1019 #define MCDI_EVENT_PTP_NANOSECONDS_LBN 0 1020 #define MCDI_EVENT_PTP_NANOSECONDS_WIDTH 32 1021 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the minor field of 1022 * timestamp 1023 */ 1024 #define MCDI_EVENT_PTP_MINOR_OFST 0 1025 #define MCDI_EVENT_PTP_MINOR_LEN 4 1026 #define MCDI_EVENT_PTP_MINOR_LBN 0 1027 #define MCDI_EVENT_PTP_MINOR_WIDTH 32 1028 /* For CODE_PTP_RX events, the lowest four bytes of sourceUUID from PTP packet 1029 */ 1030 #define MCDI_EVENT_PTP_UUID_OFST 0 1031 #define MCDI_EVENT_PTP_UUID_LEN 4 1032 #define MCDI_EVENT_PTP_UUID_LBN 0 1033 #define MCDI_EVENT_PTP_UUID_WIDTH 32 1034 #define MCDI_EVENT_RX_ERR_DATA_OFST 0 1035 #define MCDI_EVENT_RX_ERR_DATA_LEN 4 1036 #define MCDI_EVENT_RX_ERR_DATA_LBN 0 1037 #define MCDI_EVENT_RX_ERR_DATA_WIDTH 32 1038 #define MCDI_EVENT_PAR_ERR_DATA_OFST 0 1039 #define MCDI_EVENT_PAR_ERR_DATA_LEN 4 1040 #define MCDI_EVENT_PAR_ERR_DATA_LBN 0 1041 #define MCDI_EVENT_PAR_ERR_DATA_WIDTH 32 1042 #define MCDI_EVENT_ECC_CORR_ERR_DATA_OFST 0 1043 #define MCDI_EVENT_ECC_CORR_ERR_DATA_LEN 4 1044 #define MCDI_EVENT_ECC_CORR_ERR_DATA_LBN 0 1045 #define MCDI_EVENT_ECC_CORR_ERR_DATA_WIDTH 32 1046 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_OFST 0 1047 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_LEN 4 1048 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_LBN 0 1049 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_WIDTH 32 1050 /* For CODE_PTP_TIME events, the major value of the PTP clock */ 1051 #define MCDI_EVENT_PTP_TIME_MAJOR_OFST 0 1052 #define MCDI_EVENT_PTP_TIME_MAJOR_LEN 4 1053 #define MCDI_EVENT_PTP_TIME_MAJOR_LBN 0 1054 #define MCDI_EVENT_PTP_TIME_MAJOR_WIDTH 32 1055 /* For CODE_PTP_TIME events, bits 19-26 of the minor value of the PTP clock */ 1056 #define MCDI_EVENT_PTP_TIME_MINOR_26_19_LBN 36 1057 #define MCDI_EVENT_PTP_TIME_MINOR_26_19_WIDTH 8 1058 /* For CODE_PTP_TIME events, most significant bits of the minor value of the 1059 * PTP clock. This is a more generic equivalent of PTP_TIME_MINOR_26_19. 1060 */ 1061 #define MCDI_EVENT_PTP_TIME_MINOR_MS_8BITS_LBN 36 1062 #define MCDI_EVENT_PTP_TIME_MINOR_MS_8BITS_WIDTH 8 1063 /* For CODE_PTP_TIME events where report sync status is enabled, indicates 1064 * whether the NIC clock has ever been set 1065 */ 1066 #define MCDI_EVENT_PTP_TIME_NIC_CLOCK_VALID_LBN 36 1067 #define MCDI_EVENT_PTP_TIME_NIC_CLOCK_VALID_WIDTH 1 1068 /* For CODE_PTP_TIME events where report sync status is enabled, indicates 1069 * whether the NIC and System clocks are in sync 1070 */ 1071 #define MCDI_EVENT_PTP_TIME_HOST_NIC_IN_SYNC_LBN 37 1072 #define MCDI_EVENT_PTP_TIME_HOST_NIC_IN_SYNC_WIDTH 1 1073 /* For CODE_PTP_TIME events where report sync status is enabled, bits 21-26 of 1074 * the minor value of the PTP clock 1075 */ 1076 #define MCDI_EVENT_PTP_TIME_MINOR_26_21_LBN 38 1077 #define MCDI_EVENT_PTP_TIME_MINOR_26_21_WIDTH 6 1078 /* For CODE_PTP_TIME events, most significant bits of the minor value of the 1079 * PTP clock. This is a more generic equivalent of PTP_TIME_MINOR_26_21. 1080 */ 1081 #define MCDI_EVENT_PTP_TIME_MINOR_MS_6BITS_LBN 38 1082 #define MCDI_EVENT_PTP_TIME_MINOR_MS_6BITS_WIDTH 6 1083 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_OFST 0 1084 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_LEN 4 1085 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_LBN 0 1086 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_WIDTH 32 1087 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_OFST 0 1088 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_LEN 4 1089 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_LBN 0 1090 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_WIDTH 32 1091 /* Zero means that the request has been completed or authorized, and the driver 1092 * should resend it. A non-zero value means that the authorization has been 1093 * denied, and gives the reason. Typically it will be EPERM. 1094 */ 1095 #define MCDI_EVENT_PROXY_RESPONSE_RC_LBN 36 1096 #define MCDI_EVENT_PROXY_RESPONSE_RC_WIDTH 8 1097 #define MCDI_EVENT_DBRET_DATA_OFST 0 1098 #define MCDI_EVENT_DBRET_DATA_LEN 4 1099 #define MCDI_EVENT_DBRET_DATA_LBN 0 1100 #define MCDI_EVENT_DBRET_DATA_WIDTH 32 1101 #define MCDI_EVENT_LINKCHANGE_V2_DATA_OFST 0 1102 #define MCDI_EVENT_LINKCHANGE_V2_DATA_LEN 4 1103 #define MCDI_EVENT_LINKCHANGE_V2_DATA_LBN 0 1104 #define MCDI_EVENT_LINKCHANGE_V2_DATA_WIDTH 32 1105 #define MCDI_EVENT_MODULECHANGE_DATA_OFST 0 1106 #define MCDI_EVENT_MODULECHANGE_DATA_LEN 4 1107 #define MCDI_EVENT_MODULECHANGE_DATA_LBN 0 1108 #define MCDI_EVENT_MODULECHANGE_DATA_WIDTH 32 1109 /* The new generation count after a sensor has been added or deleted. */ 1110 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_OFST 0 1111 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_LEN 4 1112 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_LBN 0 1113 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_WIDTH 32 1114 /* The handle of a dynamic sensor. */ 1115 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_OFST 0 1116 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_LEN 4 1117 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_LBN 0 1118 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_WIDTH 32 1119 /* The current values of a sensor. */ 1120 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_OFST 0 1121 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_LEN 4 1122 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_LBN 0 1123 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_WIDTH 32 1124 /* The current state of a sensor. */ 1125 #define MCDI_EVENT_DYNAMIC_SENSORS_STATE_LBN 36 1126 #define MCDI_EVENT_DYNAMIC_SENSORS_STATE_WIDTH 8 1127 #define MCDI_EVENT_DESC_PROXY_DATA_OFST 0 1128 #define MCDI_EVENT_DESC_PROXY_DATA_LEN 4 1129 #define MCDI_EVENT_DESC_PROXY_DATA_LBN 0 1130 #define MCDI_EVENT_DESC_PROXY_DATA_WIDTH 32 1131 /* Generation count of applied configuration set */ 1132 #define MCDI_EVENT_DESC_PROXY_GENERATION_OFST 0 1133 #define MCDI_EVENT_DESC_PROXY_GENERATION_LEN 4 1134 #define MCDI_EVENT_DESC_PROXY_GENERATION_LBN 0 1135 #define MCDI_EVENT_DESC_PROXY_GENERATION_WIDTH 32 1136 /* Virtio features negotiated with the host driver. First event (CONT=1) 1137 * carries bits 0 to 31. Second event (CONT=0) carries bits 32 to 63. 1138 */ 1139 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_OFST 0 1140 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_LEN 4 1141 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_LBN 0 1142 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_WIDTH 32 1143 1144 /* FCDI_EVENT structuredef */ 1145 #define FCDI_EVENT_LEN 8 1146 #define FCDI_EVENT_CONT_LBN 32 1147 #define FCDI_EVENT_CONT_WIDTH 1 1148 #define FCDI_EVENT_LEVEL_LBN 33 1149 #define FCDI_EVENT_LEVEL_WIDTH 3 1150 /* enum: Info. */ 1151 #define FCDI_EVENT_LEVEL_INFO 0x0 1152 /* enum: Warning. */ 1153 #define FCDI_EVENT_LEVEL_WARN 0x1 1154 /* enum: Error. */ 1155 #define FCDI_EVENT_LEVEL_ERR 0x2 1156 /* enum: Fatal. */ 1157 #define FCDI_EVENT_LEVEL_FATAL 0x3 1158 #define FCDI_EVENT_DATA_OFST 0 1159 #define FCDI_EVENT_DATA_LEN 4 1160 #define FCDI_EVENT_LINK_STATE_STATUS_OFST 0 1161 #define FCDI_EVENT_LINK_STATE_STATUS_LBN 0 1162 #define FCDI_EVENT_LINK_STATE_STATUS_WIDTH 1 1163 #define FCDI_EVENT_LINK_DOWN 0x0 /* enum */ 1164 #define FCDI_EVENT_LINK_UP 0x1 /* enum */ 1165 #define FCDI_EVENT_DATA_LBN 0 1166 #define FCDI_EVENT_DATA_WIDTH 32 1167 #define FCDI_EVENT_SRC_LBN 36 1168 #define FCDI_EVENT_SRC_WIDTH 8 1169 #define FCDI_EVENT_EV_CODE_LBN 60 1170 #define FCDI_EVENT_EV_CODE_WIDTH 4 1171 #define FCDI_EVENT_CODE_LBN 44 1172 #define FCDI_EVENT_CODE_WIDTH 8 1173 /* enum: The FC was rebooted. */ 1174 #define FCDI_EVENT_CODE_REBOOT 0x1 1175 /* enum: Bad assert. */ 1176 #define FCDI_EVENT_CODE_ASSERT 0x2 1177 /* enum: DDR3 test result. */ 1178 #define FCDI_EVENT_CODE_DDR_TEST_RESULT 0x3 1179 /* enum: Link status. */ 1180 #define FCDI_EVENT_CODE_LINK_STATE 0x4 1181 /* enum: A timed read is ready to be serviced. */ 1182 #define FCDI_EVENT_CODE_TIMED_READ 0x5 1183 /* enum: One or more PPS IN events */ 1184 #define FCDI_EVENT_CODE_PPS_IN 0x6 1185 /* enum: Tick event from PTP clock */ 1186 #define FCDI_EVENT_CODE_PTP_TICK 0x7 1187 /* enum: ECC error counters */ 1188 #define FCDI_EVENT_CODE_DDR_ECC_STATUS 0x8 1189 /* enum: Current status of PTP */ 1190 #define FCDI_EVENT_CODE_PTP_STATUS 0x9 1191 /* enum: Port id config to map MC-FC port idx */ 1192 #define FCDI_EVENT_CODE_PORT_CONFIG 0xa 1193 /* enum: Boot result or error code */ 1194 #define FCDI_EVENT_CODE_BOOT_RESULT 0xb 1195 #define FCDI_EVENT_REBOOT_SRC_LBN 36 1196 #define FCDI_EVENT_REBOOT_SRC_WIDTH 8 1197 #define FCDI_EVENT_REBOOT_FC_FW 0x0 /* enum */ 1198 #define FCDI_EVENT_REBOOT_FC_BOOTLOADER 0x1 /* enum */ 1199 #define FCDI_EVENT_ASSERT_INSTR_ADDRESS_OFST 0 1200 #define FCDI_EVENT_ASSERT_INSTR_ADDRESS_LEN 4 1201 #define FCDI_EVENT_ASSERT_INSTR_ADDRESS_LBN 0 1202 #define FCDI_EVENT_ASSERT_INSTR_ADDRESS_WIDTH 32 1203 #define FCDI_EVENT_ASSERT_TYPE_LBN 36 1204 #define FCDI_EVENT_ASSERT_TYPE_WIDTH 8 1205 #define FCDI_EVENT_DDR_TEST_RESULT_STATUS_CODE_LBN 36 1206 #define FCDI_EVENT_DDR_TEST_RESULT_STATUS_CODE_WIDTH 8 1207 #define FCDI_EVENT_DDR_TEST_RESULT_RESULT_OFST 0 1208 #define FCDI_EVENT_DDR_TEST_RESULT_RESULT_LEN 4 1209 #define FCDI_EVENT_DDR_TEST_RESULT_RESULT_LBN 0 1210 #define FCDI_EVENT_DDR_TEST_RESULT_RESULT_WIDTH 32 1211 #define FCDI_EVENT_LINK_STATE_DATA_OFST 0 1212 #define FCDI_EVENT_LINK_STATE_DATA_LEN 4 1213 #define FCDI_EVENT_LINK_STATE_DATA_LBN 0 1214 #define FCDI_EVENT_LINK_STATE_DATA_WIDTH 32 1215 #define FCDI_EVENT_PTP_STATE_OFST 0 1216 #define FCDI_EVENT_PTP_STATE_LEN 4 1217 #define FCDI_EVENT_PTP_UNDEFINED 0x0 /* enum */ 1218 #define FCDI_EVENT_PTP_SETUP_FAILED 0x1 /* enum */ 1219 #define FCDI_EVENT_PTP_OPERATIONAL 0x2 /* enum */ 1220 #define FCDI_EVENT_PTP_STATE_LBN 0 1221 #define FCDI_EVENT_PTP_STATE_WIDTH 32 1222 #define FCDI_EVENT_DDR_ECC_STATUS_BANK_ID_LBN 36 1223 #define FCDI_EVENT_DDR_ECC_STATUS_BANK_ID_WIDTH 8 1224 #define FCDI_EVENT_DDR_ECC_STATUS_STATUS_OFST 0 1225 #define FCDI_EVENT_DDR_ECC_STATUS_STATUS_LEN 4 1226 #define FCDI_EVENT_DDR_ECC_STATUS_STATUS_LBN 0 1227 #define FCDI_EVENT_DDR_ECC_STATUS_STATUS_WIDTH 32 1228 /* Index of MC port being referred to */ 1229 #define FCDI_EVENT_PORT_CONFIG_SRC_LBN 36 1230 #define FCDI_EVENT_PORT_CONFIG_SRC_WIDTH 8 1231 /* FC Port index that matches the MC port index in SRC */ 1232 #define FCDI_EVENT_PORT_CONFIG_DATA_OFST 0 1233 #define FCDI_EVENT_PORT_CONFIG_DATA_LEN 4 1234 #define FCDI_EVENT_PORT_CONFIG_DATA_LBN 0 1235 #define FCDI_EVENT_PORT_CONFIG_DATA_WIDTH 32 1236 #define FCDI_EVENT_BOOT_RESULT_OFST 0 1237 #define FCDI_EVENT_BOOT_RESULT_LEN 4 1238 /* Enum values, see field(s): */ 1239 /* MC_CMD_AOE/MC_CMD_AOE_OUT_INFO/FC_BOOT_RESULT */ 1240 #define FCDI_EVENT_BOOT_RESULT_LBN 0 1241 #define FCDI_EVENT_BOOT_RESULT_WIDTH 32 1242 1243 /* FCDI_EXTENDED_EVENT_PPS structuredef: Extended FCDI event to send PPS events 1244 * to the MC. Note that this structure | is overlayed over a normal FCDI event 1245 * such that bits 32-63 containing | event code, level, source etc remain the 1246 * same. In this case the data | field of the header is defined to be the 1247 * number of timestamps 1248 */ 1249 #define FCDI_EXTENDED_EVENT_PPS_LENMIN 16 1250 #define FCDI_EXTENDED_EVENT_PPS_LENMAX 248 1251 #define FCDI_EXTENDED_EVENT_PPS_LENMAX_MCDI2 1016 1252 #define FCDI_EXTENDED_EVENT_PPS_LEN(num) (8+8*(num)) 1253 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_NUM(len) (((len)-8)/8) 1254 /* Number of timestamps following */ 1255 #define FCDI_EXTENDED_EVENT_PPS_COUNT_OFST 0 1256 #define FCDI_EXTENDED_EVENT_PPS_COUNT_LEN 4 1257 #define FCDI_EXTENDED_EVENT_PPS_COUNT_LBN 0 1258 #define FCDI_EXTENDED_EVENT_PPS_COUNT_WIDTH 32 1259 /* Seconds field of a timestamp record */ 1260 #define FCDI_EXTENDED_EVENT_PPS_SECONDS_OFST 8 1261 #define FCDI_EXTENDED_EVENT_PPS_SECONDS_LEN 4 1262 #define FCDI_EXTENDED_EVENT_PPS_SECONDS_LBN 64 1263 #define FCDI_EXTENDED_EVENT_PPS_SECONDS_WIDTH 32 1264 /* Nanoseconds field of a timestamp record */ 1265 #define FCDI_EXTENDED_EVENT_PPS_NANOSECONDS_OFST 12 1266 #define FCDI_EXTENDED_EVENT_PPS_NANOSECONDS_LEN 4 1267 #define FCDI_EXTENDED_EVENT_PPS_NANOSECONDS_LBN 96 1268 #define FCDI_EXTENDED_EVENT_PPS_NANOSECONDS_WIDTH 32 1269 /* Timestamp records comprising the event */ 1270 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_OFST 8 1271 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LEN 8 1272 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LO_OFST 8 1273 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_HI_OFST 12 1274 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_MINNUM 1 1275 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_MAXNUM 30 1276 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_MAXNUM_MCDI2 126 1277 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_LBN 64 1278 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_WIDTH 64 1279 1280 /* MUM_EVENT structuredef */ 1281 #define MUM_EVENT_LEN 8 1282 #define MUM_EVENT_CONT_LBN 32 1283 #define MUM_EVENT_CONT_WIDTH 1 1284 #define MUM_EVENT_LEVEL_LBN 33 1285 #define MUM_EVENT_LEVEL_WIDTH 3 1286 /* enum: Info. */ 1287 #define MUM_EVENT_LEVEL_INFO 0x0 1288 /* enum: Warning. */ 1289 #define MUM_EVENT_LEVEL_WARN 0x1 1290 /* enum: Error. */ 1291 #define MUM_EVENT_LEVEL_ERR 0x2 1292 /* enum: Fatal. */ 1293 #define MUM_EVENT_LEVEL_FATAL 0x3 1294 #define MUM_EVENT_DATA_OFST 0 1295 #define MUM_EVENT_DATA_LEN 4 1296 #define MUM_EVENT_SENSOR_ID_OFST 0 1297 #define MUM_EVENT_SENSOR_ID_LBN 0 1298 #define MUM_EVENT_SENSOR_ID_WIDTH 8 1299 /* Enum values, see field(s): */ 1300 /* MC_CMD_SENSOR_INFO/MC_CMD_SENSOR_INFO_OUT/MASK */ 1301 #define MUM_EVENT_SENSOR_STATE_OFST 0 1302 #define MUM_EVENT_SENSOR_STATE_LBN 8 1303 #define MUM_EVENT_SENSOR_STATE_WIDTH 8 1304 #define MUM_EVENT_PORT_PHY_READY_OFST 0 1305 #define MUM_EVENT_PORT_PHY_READY_LBN 0 1306 #define MUM_EVENT_PORT_PHY_READY_WIDTH 1 1307 #define MUM_EVENT_PORT_PHY_LINK_UP_OFST 0 1308 #define MUM_EVENT_PORT_PHY_LINK_UP_LBN 1 1309 #define MUM_EVENT_PORT_PHY_LINK_UP_WIDTH 1 1310 #define MUM_EVENT_PORT_PHY_TX_LOL_OFST 0 1311 #define MUM_EVENT_PORT_PHY_TX_LOL_LBN 2 1312 #define MUM_EVENT_PORT_PHY_TX_LOL_WIDTH 1 1313 #define MUM_EVENT_PORT_PHY_RX_LOL_OFST 0 1314 #define MUM_EVENT_PORT_PHY_RX_LOL_LBN 3 1315 #define MUM_EVENT_PORT_PHY_RX_LOL_WIDTH 1 1316 #define MUM_EVENT_PORT_PHY_TX_LOS_OFST 0 1317 #define MUM_EVENT_PORT_PHY_TX_LOS_LBN 4 1318 #define MUM_EVENT_PORT_PHY_TX_LOS_WIDTH 1 1319 #define MUM_EVENT_PORT_PHY_RX_LOS_OFST 0 1320 #define MUM_EVENT_PORT_PHY_RX_LOS_LBN 5 1321 #define MUM_EVENT_PORT_PHY_RX_LOS_WIDTH 1 1322 #define MUM_EVENT_PORT_PHY_TX_FAULT_OFST 0 1323 #define MUM_EVENT_PORT_PHY_TX_FAULT_LBN 6 1324 #define MUM_EVENT_PORT_PHY_TX_FAULT_WIDTH 1 1325 #define MUM_EVENT_DATA_LBN 0 1326 #define MUM_EVENT_DATA_WIDTH 32 1327 #define MUM_EVENT_SRC_LBN 36 1328 #define MUM_EVENT_SRC_WIDTH 8 1329 #define MUM_EVENT_EV_CODE_LBN 60 1330 #define MUM_EVENT_EV_CODE_WIDTH 4 1331 #define MUM_EVENT_CODE_LBN 44 1332 #define MUM_EVENT_CODE_WIDTH 8 1333 /* enum: The MUM was rebooted. */ 1334 #define MUM_EVENT_CODE_REBOOT 0x1 1335 /* enum: Bad assert. */ 1336 #define MUM_EVENT_CODE_ASSERT 0x2 1337 /* enum: Sensor failure. */ 1338 #define MUM_EVENT_CODE_SENSOR 0x3 1339 /* enum: Link fault has been asserted, or has cleared. */ 1340 #define MUM_EVENT_CODE_QSFP_LASI_INTERRUPT 0x4 1341 #define MUM_EVENT_SENSOR_DATA_OFST 0 1342 #define MUM_EVENT_SENSOR_DATA_LEN 4 1343 #define MUM_EVENT_SENSOR_DATA_LBN 0 1344 #define MUM_EVENT_SENSOR_DATA_WIDTH 32 1345 #define MUM_EVENT_PORT_PHY_FLAGS_OFST 0 1346 #define MUM_EVENT_PORT_PHY_FLAGS_LEN 4 1347 #define MUM_EVENT_PORT_PHY_FLAGS_LBN 0 1348 #define MUM_EVENT_PORT_PHY_FLAGS_WIDTH 32 1349 #define MUM_EVENT_PORT_PHY_COPPER_LEN_OFST 0 1350 #define MUM_EVENT_PORT_PHY_COPPER_LEN_LEN 4 1351 #define MUM_EVENT_PORT_PHY_COPPER_LEN_LBN 0 1352 #define MUM_EVENT_PORT_PHY_COPPER_LEN_WIDTH 32 1353 #define MUM_EVENT_PORT_PHY_CAPS_OFST 0 1354 #define MUM_EVENT_PORT_PHY_CAPS_LEN 4 1355 #define MUM_EVENT_PORT_PHY_CAPS_LBN 0 1356 #define MUM_EVENT_PORT_PHY_CAPS_WIDTH 32 1357 #define MUM_EVENT_PORT_PHY_TECH_OFST 0 1358 #define MUM_EVENT_PORT_PHY_TECH_LEN 4 1359 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_UNKNOWN 0x0 /* enum */ 1360 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_OPTICAL 0x1 /* enum */ 1361 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_COPPER_PASSIVE 0x2 /* enum */ 1362 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_COPPER_PASSIVE_EQUALIZED 0x3 /* enum */ 1363 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_COPPER_ACTIVE_LIMITING 0x4 /* enum */ 1364 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_COPPER_ACTIVE_LINEAR 0x5 /* enum */ 1365 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_BASE_T 0x6 /* enum */ 1366 #define MUM_EVENT_PORT_PHY_STATE_QSFP_MODULE_TECH_LOOPBACK_PASSIVE 0x7 /* enum */ 1367 #define MUM_EVENT_PORT_PHY_TECH_LBN 0 1368 #define MUM_EVENT_PORT_PHY_TECH_WIDTH 32 1369 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_LBN 36 1370 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_WIDTH 4 1371 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_FLAGS 0x0 /* enum */ 1372 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_COPPER_LEN 0x1 /* enum */ 1373 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_CAPS 0x2 /* enum */ 1374 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_TECH 0x3 /* enum */ 1375 #define MUM_EVENT_PORT_PHY_SRC_DATA_ID_MAX 0x4 /* enum */ 1376 #define MUM_EVENT_PORT_PHY_SRC_PORT_NO_LBN 40 1377 #define MUM_EVENT_PORT_PHY_SRC_PORT_NO_WIDTH 4 1378 1379 1380 /***********************************/ 1381 /* MC_CMD_READ32 1382 * Read multiple 32byte words from MC memory. Note - this command really 1383 * belongs to INSECURE category but is required by shmboot. The command handler 1384 * has additional checks to reject insecure calls. 1385 */ 1386 #define MC_CMD_READ32 0x1 1387 #undef MC_CMD_0x1_PRIVILEGE_CTG 1388 1389 #define MC_CMD_0x1_PRIVILEGE_CTG SRIOV_CTG_ADMIN 1390 1391 /* MC_CMD_READ32_IN msgrequest */ 1392 #define MC_CMD_READ32_IN_LEN 8 1393 #define MC_CMD_READ32_IN_ADDR_OFST 0 1394 #define MC_CMD_READ32_IN_ADDR_LEN 4 1395 #define MC_CMD_READ32_IN_NUMWORDS_OFST 4 1396 #define MC_CMD_READ32_IN_NUMWORDS_LEN 4 1397 1398 /* MC_CMD_READ32_OUT msgresponse */ 1399 #define MC_CMD_READ32_OUT_LENMIN 4 1400 #define MC_CMD_READ32_OUT_LENMAX 252 1401 #define MC_CMD_READ32_OUT_LENMAX_MCDI2 1020 1402 #define MC_CMD_READ32_OUT_LEN(num) (0+4*(num)) 1403 #define MC_CMD_READ32_OUT_BUFFER_NUM(len) (((len)-0)/4) 1404 #define MC_CMD_READ32_OUT_BUFFER_OFST 0 1405 #define MC_CMD_READ32_OUT_BUFFER_LEN 4 1406 #define MC_CMD_READ32_OUT_BUFFER_MINNUM 1 1407 #define MC_CMD_READ32_OUT_BUFFER_MAXNUM 63 1408 #define MC_CMD_READ32_OUT_BUFFER_MAXNUM_MCDI2 255 1409 1410 1411 /***********************************/ 1412 /* MC_CMD_WRITE32 1413 * Write multiple 32byte words to MC memory. 1414 */ 1415 #define MC_CMD_WRITE32 0x2 1416 #undef MC_CMD_0x2_PRIVILEGE_CTG 1417 1418 #define MC_CMD_0x2_PRIVILEGE_CTG SRIOV_CTG_INSECURE 1419 1420 /* MC_CMD_WRITE32_IN msgrequest */ 1421 #define MC_CMD_WRITE32_IN_LENMIN 8 1422 #define MC_CMD_WRITE32_IN_LENMAX 252 1423 #define MC_CMD_WRITE32_IN_LENMAX_MCDI2 1020 1424 #define MC_CMD_WRITE32_IN_LEN(num) (4+4*(num)) 1425 #define MC_CMD_WRITE32_IN_BUFFER_NUM(len) (((len)-4)/4) 1426 #define MC_CMD_WRITE32_IN_ADDR_OFST 0 1427 #define MC_CMD_WRITE32_IN_ADDR_LEN 4 1428 #define MC_CMD_WRITE32_IN_BUFFER_OFST 4 1429 #define MC_CMD_WRITE32_IN_BUFFER_LEN 4 1430 #define MC_CMD_WRITE32_IN_BUFFER_MINNUM 1 1431 #define MC_CMD_WRITE32_IN_BUFFER_MAXNUM 62 1432 #define MC_CMD_WRITE32_IN_BUFFER_MAXNUM_MCDI2 254 1433 1434 /* MC_CMD_WRITE32_OUT msgresponse */ 1435 #define MC_CMD_WRITE32_OUT_LEN 0 1436 1437 1438 /***********************************/ 1439 /* MC_CMD_COPYCODE 1440 * Copy MC code between two locations and jump. Note - this command really 1441 * belongs to INSECURE category but is required by shmboot. The command handler 1442 * has additional checks to reject insecure calls. 1443 */ 1444 #define MC_CMD_COPYCODE 0x3 1445 #undef MC_CMD_0x3_PRIVILEGE_CTG 1446 1447 #define MC_CMD_0x3_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 1448 1449 /* MC_CMD_COPYCODE_IN msgrequest */ 1450 #define MC_CMD_COPYCODE_IN_LEN 16 1451 /* Source address 1452 * 1453 * The main image should be entered via a copy of a single word from and to a 1454 * magic address, which controls various aspects of the boot. The magic address 1455 * is a bitfield, with each bit as documented below. 1456 */ 1457 #define MC_CMD_COPYCODE_IN_SRC_ADDR_OFST 0 1458 #define MC_CMD_COPYCODE_IN_SRC_ADDR_LEN 4 1459 /* enum: Deprecated; equivalent to setting BOOT_MAGIC_PRESENT (see below) */ 1460 #define MC_CMD_COPYCODE_HUNT_NO_MAGIC_ADDR 0x10000 1461 /* enum: Deprecated; equivalent to setting BOOT_MAGIC_PRESENT and 1462 * BOOT_MAGIC_SATELLITE_CPUS_NOT_LOADED (see below) 1463 */ 1464 #define MC_CMD_COPYCODE_HUNT_NO_DATAPATH_MAGIC_ADDR 0x1d0d0 1465 /* enum: Deprecated; equivalent to setting BOOT_MAGIC_PRESENT, 1466 * BOOT_MAGIC_SATELLITE_CPUS_NOT_LOADED and BOOT_MAGIC_IGNORE_CONFIG (see 1467 * below) 1468 */ 1469 #define MC_CMD_COPYCODE_HUNT_IGNORE_CONFIG_MAGIC_ADDR 0x1badc 1470 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_PRESENT_OFST 0 1471 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_PRESENT_LBN 17 1472 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_PRESENT_WIDTH 1 1473 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SATELLITE_CPUS_NOT_LOADED_OFST 0 1474 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SATELLITE_CPUS_NOT_LOADED_LBN 2 1475 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SATELLITE_CPUS_NOT_LOADED_WIDTH 1 1476 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_IGNORE_CONFIG_OFST 0 1477 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_IGNORE_CONFIG_LBN 3 1478 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_IGNORE_CONFIG_WIDTH 1 1479 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SKIP_BOOT_ICORE_SYNC_OFST 0 1480 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SKIP_BOOT_ICORE_SYNC_LBN 4 1481 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_SKIP_BOOT_ICORE_SYNC_WIDTH 1 1482 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_FORCE_STANDALONE_OFST 0 1483 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_FORCE_STANDALONE_LBN 5 1484 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_FORCE_STANDALONE_WIDTH 1 1485 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_DISABLE_XIP_OFST 0 1486 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_DISABLE_XIP_LBN 6 1487 #define MC_CMD_COPYCODE_IN_BOOT_MAGIC_DISABLE_XIP_WIDTH 1 1488 /* Destination address */ 1489 #define MC_CMD_COPYCODE_IN_DEST_ADDR_OFST 4 1490 #define MC_CMD_COPYCODE_IN_DEST_ADDR_LEN 4 1491 #define MC_CMD_COPYCODE_IN_NUMWORDS_OFST 8 1492 #define MC_CMD_COPYCODE_IN_NUMWORDS_LEN 4 1493 /* Address of where to jump after copy. */ 1494 #define MC_CMD_COPYCODE_IN_JUMP_OFST 12 1495 #define MC_CMD_COPYCODE_IN_JUMP_LEN 4 1496 /* enum: Control should return to the caller rather than jumping */ 1497 #define MC_CMD_COPYCODE_JUMP_NONE 0x1 1498 1499 /* MC_CMD_COPYCODE_OUT msgresponse */ 1500 #define MC_CMD_COPYCODE_OUT_LEN 0 1501 1502 1503 /***********************************/ 1504 /* MC_CMD_SET_FUNC 1505 * Select function for function-specific commands. 1506 */ 1507 #define MC_CMD_SET_FUNC 0x4 1508 #undef MC_CMD_0x4_PRIVILEGE_CTG 1509 1510 #define MC_CMD_0x4_PRIVILEGE_CTG SRIOV_CTG_INSECURE 1511 1512 /* MC_CMD_SET_FUNC_IN msgrequest */ 1513 #define MC_CMD_SET_FUNC_IN_LEN 4 1514 /* Set function */ 1515 #define MC_CMD_SET_FUNC_IN_FUNC_OFST 0 1516 #define MC_CMD_SET_FUNC_IN_FUNC_LEN 4 1517 1518 /* MC_CMD_SET_FUNC_OUT msgresponse */ 1519 #define MC_CMD_SET_FUNC_OUT_LEN 0 1520 1521 1522 /***********************************/ 1523 /* MC_CMD_GET_BOOT_STATUS 1524 * Get the instruction address from which the MC booted. 1525 */ 1526 #define MC_CMD_GET_BOOT_STATUS 0x5 1527 #undef MC_CMD_0x5_PRIVILEGE_CTG 1528 1529 #define MC_CMD_0x5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 1530 1531 /* MC_CMD_GET_BOOT_STATUS_IN msgrequest */ 1532 #define MC_CMD_GET_BOOT_STATUS_IN_LEN 0 1533 1534 /* MC_CMD_GET_BOOT_STATUS_OUT msgresponse */ 1535 #define MC_CMD_GET_BOOT_STATUS_OUT_LEN 8 1536 /* ?? */ 1537 #define MC_CMD_GET_BOOT_STATUS_OUT_BOOT_OFFSET_OFST 0 1538 #define MC_CMD_GET_BOOT_STATUS_OUT_BOOT_OFFSET_LEN 4 1539 /* enum: indicates that the MC wasn't flash booted */ 1540 #define MC_CMD_GET_BOOT_STATUS_OUT_BOOT_OFFSET_NULL 0xdeadbeef 1541 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_OFST 4 1542 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_LEN 4 1543 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_WATCHDOG_OFST 4 1544 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_WATCHDOG_LBN 0 1545 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_WATCHDOG_WIDTH 1 1546 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_PRIMARY_OFST 4 1547 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_PRIMARY_LBN 1 1548 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_PRIMARY_WIDTH 1 1549 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_BACKUP_OFST 4 1550 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_BACKUP_LBN 2 1551 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_BACKUP_WIDTH 1 1552 1553 1554 /***********************************/ 1555 /* MC_CMD_GET_ASSERTS 1556 * Get (and optionally clear) the current assertion status. Only 1557 * OUT.GLOBAL_FLAGS is guaranteed to exist in the completion payload. The other 1558 * fields will only be present if OUT.GLOBAL_FLAGS != NO_FAILS 1559 */ 1560 #define MC_CMD_GET_ASSERTS 0x6 1561 #undef MC_CMD_0x6_PRIVILEGE_CTG 1562 1563 #define MC_CMD_0x6_PRIVILEGE_CTG SRIOV_CTG_ADMIN 1564 1565 /* MC_CMD_GET_ASSERTS_IN msgrequest */ 1566 #define MC_CMD_GET_ASSERTS_IN_LEN 4 1567 /* Set to clear assertion */ 1568 #define MC_CMD_GET_ASSERTS_IN_CLEAR_OFST 0 1569 #define MC_CMD_GET_ASSERTS_IN_CLEAR_LEN 4 1570 1571 /* MC_CMD_GET_ASSERTS_OUT msgresponse */ 1572 #define MC_CMD_GET_ASSERTS_OUT_LEN 140 1573 /* Assertion status flag. */ 1574 #define MC_CMD_GET_ASSERTS_OUT_GLOBAL_FLAGS_OFST 0 1575 #define MC_CMD_GET_ASSERTS_OUT_GLOBAL_FLAGS_LEN 4 1576 /* enum: No assertions have failed. */ 1577 #define MC_CMD_GET_ASSERTS_FLAGS_NO_FAILS 0x1 1578 /* enum: A system-level assertion has failed. */ 1579 #define MC_CMD_GET_ASSERTS_FLAGS_SYS_FAIL 0x2 1580 /* enum: A thread-level assertion has failed. */ 1581 #define MC_CMD_GET_ASSERTS_FLAGS_THR_FAIL 0x3 1582 /* enum: The system was reset by the watchdog. */ 1583 #define MC_CMD_GET_ASSERTS_FLAGS_WDOG_FIRED 0x4 1584 /* enum: An illegal address trap stopped the system (huntington and later) */ 1585 #define MC_CMD_GET_ASSERTS_FLAGS_ADDR_TRAP 0x5 1586 /* Failing PC value */ 1587 #define MC_CMD_GET_ASSERTS_OUT_SAVED_PC_OFFS_OFST 4 1588 #define MC_CMD_GET_ASSERTS_OUT_SAVED_PC_OFFS_LEN 4 1589 /* Saved GP regs */ 1590 #define MC_CMD_GET_ASSERTS_OUT_GP_REGS_OFFS_OFST 8 1591 #define MC_CMD_GET_ASSERTS_OUT_GP_REGS_OFFS_LEN 4 1592 #define MC_CMD_GET_ASSERTS_OUT_GP_REGS_OFFS_NUM 31 1593 /* enum: A magic value hinting that the value in this register at the time of 1594 * the failure has likely been lost. 1595 */ 1596 #define MC_CMD_GET_ASSERTS_REG_NO_DATA 0xda7a1057 1597 /* Failing thread address */ 1598 #define MC_CMD_GET_ASSERTS_OUT_THREAD_OFFS_OFST 132 1599 #define MC_CMD_GET_ASSERTS_OUT_THREAD_OFFS_LEN 4 1600 #define MC_CMD_GET_ASSERTS_OUT_RESERVED_OFST 136 1601 #define MC_CMD_GET_ASSERTS_OUT_RESERVED_LEN 4 1602 1603 /* MC_CMD_GET_ASSERTS_OUT_V2 msgresponse: Extended response for MicroBlaze CPUs 1604 * found on Riverhead designs 1605 */ 1606 #define MC_CMD_GET_ASSERTS_OUT_V2_LEN 240 1607 /* Assertion status flag. */ 1608 #define MC_CMD_GET_ASSERTS_OUT_V2_GLOBAL_FLAGS_OFST 0 1609 #define MC_CMD_GET_ASSERTS_OUT_V2_GLOBAL_FLAGS_LEN 4 1610 /* enum: No assertions have failed. */ 1611 /* MC_CMD_GET_ASSERTS_FLAGS_NO_FAILS 0x1 */ 1612 /* enum: A system-level assertion has failed. */ 1613 /* MC_CMD_GET_ASSERTS_FLAGS_SYS_FAIL 0x2 */ 1614 /* enum: A thread-level assertion has failed. */ 1615 /* MC_CMD_GET_ASSERTS_FLAGS_THR_FAIL 0x3 */ 1616 /* enum: The system was reset by the watchdog. */ 1617 /* MC_CMD_GET_ASSERTS_FLAGS_WDOG_FIRED 0x4 */ 1618 /* enum: An illegal address trap stopped the system (huntington and later) */ 1619 /* MC_CMD_GET_ASSERTS_FLAGS_ADDR_TRAP 0x5 */ 1620 /* Failing PC value */ 1621 #define MC_CMD_GET_ASSERTS_OUT_V2_SAVED_PC_OFFS_OFST 4 1622 #define MC_CMD_GET_ASSERTS_OUT_V2_SAVED_PC_OFFS_LEN 4 1623 /* Saved GP regs */ 1624 #define MC_CMD_GET_ASSERTS_OUT_V2_GP_REGS_OFFS_OFST 8 1625 #define MC_CMD_GET_ASSERTS_OUT_V2_GP_REGS_OFFS_LEN 4 1626 #define MC_CMD_GET_ASSERTS_OUT_V2_GP_REGS_OFFS_NUM 31 1627 /* enum: A magic value hinting that the value in this register at the time of 1628 * the failure has likely been lost. 1629 */ 1630 /* MC_CMD_GET_ASSERTS_REG_NO_DATA 0xda7a1057 */ 1631 /* Failing thread address */ 1632 #define MC_CMD_GET_ASSERTS_OUT_V2_THREAD_OFFS_OFST 132 1633 #define MC_CMD_GET_ASSERTS_OUT_V2_THREAD_OFFS_LEN 4 1634 #define MC_CMD_GET_ASSERTS_OUT_V2_RESERVED_OFST 136 1635 #define MC_CMD_GET_ASSERTS_OUT_V2_RESERVED_LEN 4 1636 /* Saved Special Function Registers */ 1637 #define MC_CMD_GET_ASSERTS_OUT_V2_SF_REGS_OFFS_OFST 136 1638 #define MC_CMD_GET_ASSERTS_OUT_V2_SF_REGS_OFFS_LEN 4 1639 #define MC_CMD_GET_ASSERTS_OUT_V2_SF_REGS_OFFS_NUM 26 1640 1641 /* MC_CMD_GET_ASSERTS_OUT_V3 msgresponse: Extended response with asserted 1642 * firmware version information 1643 */ 1644 #define MC_CMD_GET_ASSERTS_OUT_V3_LEN 360 1645 /* Assertion status flag. */ 1646 #define MC_CMD_GET_ASSERTS_OUT_V3_GLOBAL_FLAGS_OFST 0 1647 #define MC_CMD_GET_ASSERTS_OUT_V3_GLOBAL_FLAGS_LEN 4 1648 /* enum: No assertions have failed. */ 1649 /* MC_CMD_GET_ASSERTS_FLAGS_NO_FAILS 0x1 */ 1650 /* enum: A system-level assertion has failed. */ 1651 /* MC_CMD_GET_ASSERTS_FLAGS_SYS_FAIL 0x2 */ 1652 /* enum: A thread-level assertion has failed. */ 1653 /* MC_CMD_GET_ASSERTS_FLAGS_THR_FAIL 0x3 */ 1654 /* enum: The system was reset by the watchdog. */ 1655 /* MC_CMD_GET_ASSERTS_FLAGS_WDOG_FIRED 0x4 */ 1656 /* enum: An illegal address trap stopped the system (huntington and later) */ 1657 /* MC_CMD_GET_ASSERTS_FLAGS_ADDR_TRAP 0x5 */ 1658 /* Failing PC value */ 1659 #define MC_CMD_GET_ASSERTS_OUT_V3_SAVED_PC_OFFS_OFST 4 1660 #define MC_CMD_GET_ASSERTS_OUT_V3_SAVED_PC_OFFS_LEN 4 1661 /* Saved GP regs */ 1662 #define MC_CMD_GET_ASSERTS_OUT_V3_GP_REGS_OFFS_OFST 8 1663 #define MC_CMD_GET_ASSERTS_OUT_V3_GP_REGS_OFFS_LEN 4 1664 #define MC_CMD_GET_ASSERTS_OUT_V3_GP_REGS_OFFS_NUM 31 1665 /* enum: A magic value hinting that the value in this register at the time of 1666 * the failure has likely been lost. 1667 */ 1668 /* MC_CMD_GET_ASSERTS_REG_NO_DATA 0xda7a1057 */ 1669 /* Failing thread address */ 1670 #define MC_CMD_GET_ASSERTS_OUT_V3_THREAD_OFFS_OFST 132 1671 #define MC_CMD_GET_ASSERTS_OUT_V3_THREAD_OFFS_LEN 4 1672 #define MC_CMD_GET_ASSERTS_OUT_V3_RESERVED_OFST 136 1673 #define MC_CMD_GET_ASSERTS_OUT_V3_RESERVED_LEN 4 1674 /* Saved Special Function Registers */ 1675 #define MC_CMD_GET_ASSERTS_OUT_V3_SF_REGS_OFFS_OFST 136 1676 #define MC_CMD_GET_ASSERTS_OUT_V3_SF_REGS_OFFS_LEN 4 1677 #define MC_CMD_GET_ASSERTS_OUT_V3_SF_REGS_OFFS_NUM 26 1678 /* MC firmware unique build ID (as binary SHA-1 value) */ 1679 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_ID_OFST 240 1680 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_ID_LEN 20 1681 /* MC firmware build date (as Unix timestamp) */ 1682 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_OFST 260 1683 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LEN 8 1684 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_OFST 260 1685 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_OFST 264 1686 /* MC firmware version number */ 1687 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_OFST 268 1688 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LEN 8 1689 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_OFST 268 1690 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_OFST 272 1691 /* MC firmware security level */ 1692 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_SECURITY_LEVEL_OFST 276 1693 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_SECURITY_LEVEL_LEN 4 1694 /* MC firmware extra version info (as null-terminated US-ASCII string) */ 1695 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_EXTRA_INFO_OFST 280 1696 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_EXTRA_INFO_LEN 16 1697 /* MC firmware build name (as null-terminated US-ASCII string) */ 1698 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_NAME_OFST 296 1699 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_NAME_LEN 64 1700 1701 1702 /***********************************/ 1703 /* MC_CMD_LOG_CTRL 1704 * Configure the output stream for log events such as link state changes, 1705 * sensor notifications and MCDI completions 1706 */ 1707 #define MC_CMD_LOG_CTRL 0x7 1708 #undef MC_CMD_0x7_PRIVILEGE_CTG 1709 1710 #define MC_CMD_0x7_PRIVILEGE_CTG SRIOV_CTG_GENERAL 1711 1712 /* MC_CMD_LOG_CTRL_IN msgrequest */ 1713 #define MC_CMD_LOG_CTRL_IN_LEN 8 1714 /* Log destination */ 1715 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_OFST 0 1716 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_LEN 4 1717 /* enum: UART. */ 1718 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_UART 0x1 1719 /* enum: Event queue. */ 1720 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_EVQ 0x2 1721 /* Legacy argument. Must be zero. */ 1722 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_EVQ_OFST 4 1723 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_EVQ_LEN 4 1724 1725 /* MC_CMD_LOG_CTRL_OUT msgresponse */ 1726 #define MC_CMD_LOG_CTRL_OUT_LEN 0 1727 1728 1729 /***********************************/ 1730 /* MC_CMD_GET_VERSION 1731 * Get version information about adapter components. 1732 */ 1733 #define MC_CMD_GET_VERSION 0x8 1734 #undef MC_CMD_0x8_PRIVILEGE_CTG 1735 1736 #define MC_CMD_0x8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 1737 1738 /* MC_CMD_GET_VERSION_IN msgrequest */ 1739 #define MC_CMD_GET_VERSION_IN_LEN 0 1740 1741 /* MC_CMD_GET_VERSION_EXT_IN msgrequest: Asks for the extended version */ 1742 #define MC_CMD_GET_VERSION_EXT_IN_LEN 4 1743 /* placeholder, set to 0 */ 1744 #define MC_CMD_GET_VERSION_EXT_IN_EXT_FLAGS_OFST 0 1745 #define MC_CMD_GET_VERSION_EXT_IN_EXT_FLAGS_LEN 4 1746 1747 /* MC_CMD_GET_VERSION_V0_OUT msgresponse: deprecated version format */ 1748 #define MC_CMD_GET_VERSION_V0_OUT_LEN 4 1749 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 1750 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 1751 /* enum: Reserved version number to indicate "any" version. */ 1752 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_ANY 0xffffffff 1753 /* enum: Bootrom version value for Siena. */ 1754 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_SIENA_BOOTROM 0xb0070000 1755 /* enum: Bootrom version value for Huntington. */ 1756 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_HUNT_BOOTROM 0xb0070001 1757 /* enum: Bootrom version value for Medford2. */ 1758 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_MEDFORD2_BOOTROM 0xb0070002 1759 1760 /* MC_CMD_GET_VERSION_OUT msgresponse */ 1761 #define MC_CMD_GET_VERSION_OUT_LEN 32 1762 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 1763 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 1764 /* Enum values, see field(s): */ 1765 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 1766 #define MC_CMD_GET_VERSION_OUT_PCOL_OFST 4 1767 #define MC_CMD_GET_VERSION_OUT_PCOL_LEN 4 1768 /* 128bit mask of functions supported by the current firmware */ 1769 #define MC_CMD_GET_VERSION_OUT_SUPPORTED_FUNCS_OFST 8 1770 #define MC_CMD_GET_VERSION_OUT_SUPPORTED_FUNCS_LEN 16 1771 #define MC_CMD_GET_VERSION_OUT_VERSION_OFST 24 1772 #define MC_CMD_GET_VERSION_OUT_VERSION_LEN 8 1773 #define MC_CMD_GET_VERSION_OUT_VERSION_LO_OFST 24 1774 #define MC_CMD_GET_VERSION_OUT_VERSION_HI_OFST 28 1775 1776 /* MC_CMD_GET_VERSION_EXT_OUT msgresponse */ 1777 #define MC_CMD_GET_VERSION_EXT_OUT_LEN 48 1778 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 1779 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 1780 /* Enum values, see field(s): */ 1781 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 1782 #define MC_CMD_GET_VERSION_EXT_OUT_PCOL_OFST 4 1783 #define MC_CMD_GET_VERSION_EXT_OUT_PCOL_LEN 4 1784 /* 128bit mask of functions supported by the current firmware */ 1785 #define MC_CMD_GET_VERSION_EXT_OUT_SUPPORTED_FUNCS_OFST 8 1786 #define MC_CMD_GET_VERSION_EXT_OUT_SUPPORTED_FUNCS_LEN 16 1787 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_OFST 24 1788 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LEN 8 1789 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_OFST 24 1790 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_OFST 28 1791 /* extra info */ 1792 #define MC_CMD_GET_VERSION_EXT_OUT_EXTRA_OFST 32 1793 #define MC_CMD_GET_VERSION_EXT_OUT_EXTRA_LEN 16 1794 1795 /* MC_CMD_GET_VERSION_V2_OUT msgresponse: Extended response providing version 1796 * information for all adapter components. For Riverhead based designs, base MC 1797 * firmware version fields refer to NMC firmware, while CMC firmware data is in 1798 * dedicated CMC fields. Flags indicate which data is present in the response 1799 * (depending on which components exist on a particular adapter) 1800 */ 1801 #define MC_CMD_GET_VERSION_V2_OUT_LEN 304 1802 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_OFST 0 */ 1803 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */ 1804 /* Enum values, see field(s): */ 1805 /* MC_CMD_GET_VERSION_V0_OUT/MC_CMD_GET_VERSION_OUT_FIRMWARE */ 1806 #define MC_CMD_GET_VERSION_V2_OUT_PCOL_OFST 4 1807 #define MC_CMD_GET_VERSION_V2_OUT_PCOL_LEN 4 1808 /* 128bit mask of functions supported by the current firmware */ 1809 #define MC_CMD_GET_VERSION_V2_OUT_SUPPORTED_FUNCS_OFST 8 1810 #define MC_CMD_GET_VERSION_V2_OUT_SUPPORTED_FUNCS_LEN 16 1811 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_OFST 24 1812 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LEN 8 1813 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_OFST 24 1814 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_OFST 28 1815 /* extra info */ 1816 #define MC_CMD_GET_VERSION_V2_OUT_EXTRA_OFST 32 1817 #define MC_CMD_GET_VERSION_V2_OUT_EXTRA_LEN 16 1818 /* Flags indicating which extended fields are valid */ 1819 #define MC_CMD_GET_VERSION_V2_OUT_FLAGS_OFST 48 1820 #define MC_CMD_GET_VERSION_V2_OUT_FLAGS_LEN 4 1821 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_EXT_INFO_PRESENT_OFST 48 1822 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_EXT_INFO_PRESENT_LBN 0 1823 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1 1824 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_EXT_INFO_PRESENT_OFST 48 1825 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1 1826 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1 1827 #define MC_CMD_GET_VERSION_V2_OUT_CMC_EXT_INFO_PRESENT_OFST 48 1828 #define MC_CMD_GET_VERSION_V2_OUT_CMC_EXT_INFO_PRESENT_LBN 2 1829 #define MC_CMD_GET_VERSION_V2_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1 1830 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXT_INFO_PRESENT_OFST 48 1831 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXT_INFO_PRESENT_LBN 3 1832 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1 1833 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_OFST 48 1834 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_LBN 4 1835 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1 1836 /* MC firmware unique build ID (as binary SHA-1 value) */ 1837 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_ID_OFST 52 1838 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_ID_LEN 20 1839 /* MC firmware security level */ 1840 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_SECURITY_LEVEL_OFST 72 1841 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_SECURITY_LEVEL_LEN 4 1842 /* MC firmware build name (as null-terminated US-ASCII string) */ 1843 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_NAME_OFST 76 1844 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_BUILD_NAME_LEN 64 1845 /* The SUC firmware version as four numbers - a.b.c.d */ 1846 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_OFST 140 1847 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_LEN 4 1848 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_NUM 4 1849 /* SUC firmware build date (as 64-bit Unix timestamp) */ 1850 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_OFST 156 1851 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LEN 8 1852 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_OFST 156 1853 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_OFST 160 1854 /* The ID of the SUC chip. This is specific to the platform but typically 1855 * indicates family, memory sizes etc. See SF-116728-SW for further details. 1856 */ 1857 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_CHIP_ID_OFST 164 1858 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_CHIP_ID_LEN 4 1859 /* The CMC firmware version as four numbers - a.b.c.d */ 1860 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_VERSION_OFST 168 1861 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_VERSION_LEN 4 1862 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_VERSION_NUM 4 1863 /* CMC firmware build date (as 64-bit Unix timestamp) */ 1864 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_OFST 184 1865 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LEN 8 1866 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_OFST 184 1867 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_OFST 188 1868 /* FPGA version as three numbers. On Riverhead based systems this field uses 1869 * the same encoding as hardware version ID registers (MC_FPGA_BUILD_HWRD_REG): 1870 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1 1871 * => B, ...) FPGA_VERSION[2]: Sub-revision number 1872 */ 1873 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_VERSION_OFST 192 1874 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_VERSION_LEN 4 1875 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_VERSION_NUM 3 1876 /* Extra FPGA revision information (as null-terminated US-ASCII string) */ 1877 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXTRA_OFST 204 1878 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXTRA_LEN 16 1879 /* Board name / adapter model (as null-terminated US-ASCII string) */ 1880 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_NAME_OFST 220 1881 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_NAME_LEN 16 1882 /* Board revision number */ 1883 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_REVISION_OFST 236 1884 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_REVISION_LEN 4 1885 /* Board serial number (as null-terminated US-ASCII string) */ 1886 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_SERIAL_OFST 240 1887 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_SERIAL_LEN 64 1888 1889 1890 /***********************************/ 1891 /* MC_CMD_PTP 1892 * Perform PTP operation 1893 */ 1894 #define MC_CMD_PTP 0xb 1895 #undef MC_CMD_0xb_PRIVILEGE_CTG 1896 1897 #define MC_CMD_0xb_PRIVILEGE_CTG SRIOV_CTG_GENERAL 1898 1899 /* MC_CMD_PTP_IN msgrequest */ 1900 #define MC_CMD_PTP_IN_LEN 1 1901 /* PTP operation code */ 1902 #define MC_CMD_PTP_IN_OP_OFST 0 1903 #define MC_CMD_PTP_IN_OP_LEN 1 1904 /* enum: Enable PTP packet timestamping operation. */ 1905 #define MC_CMD_PTP_OP_ENABLE 0x1 1906 /* enum: Disable PTP packet timestamping operation. */ 1907 #define MC_CMD_PTP_OP_DISABLE 0x2 1908 /* enum: Send a PTP packet. This operation is used on Siena and Huntington. 1909 * From Medford onwards it is not supported: on those platforms PTP transmit 1910 * timestamping is done using the fast path. 1911 */ 1912 #define MC_CMD_PTP_OP_TRANSMIT 0x3 1913 /* enum: Read the current NIC time. */ 1914 #define MC_CMD_PTP_OP_READ_NIC_TIME 0x4 1915 /* enum: Get the current PTP status. Note that the clock frequency returned (in 1916 * Hz) is rounded to the nearest MHz (e.g. 666000000 for 666666666). 1917 */ 1918 #define MC_CMD_PTP_OP_STATUS 0x5 1919 /* enum: Adjust the PTP NIC's time. */ 1920 #define MC_CMD_PTP_OP_ADJUST 0x6 1921 /* enum: Synchronize host and NIC time. */ 1922 #define MC_CMD_PTP_OP_SYNCHRONIZE 0x7 1923 /* enum: Basic manufacturing tests. Siena PTP adapters only. */ 1924 #define MC_CMD_PTP_OP_MANFTEST_BASIC 0x8 1925 /* enum: Packet based manufacturing tests. Siena PTP adapters only. */ 1926 #define MC_CMD_PTP_OP_MANFTEST_PACKET 0x9 1927 /* enum: Reset some of the PTP related statistics */ 1928 #define MC_CMD_PTP_OP_RESET_STATS 0xa 1929 /* enum: Debug operations to MC. */ 1930 #define MC_CMD_PTP_OP_DEBUG 0xb 1931 /* enum: Read an FPGA register. Siena PTP adapters only. */ 1932 #define MC_CMD_PTP_OP_FPGAREAD 0xc 1933 /* enum: Write an FPGA register. Siena PTP adapters only. */ 1934 #define MC_CMD_PTP_OP_FPGAWRITE 0xd 1935 /* enum: Apply an offset to the NIC clock */ 1936 #define MC_CMD_PTP_OP_CLOCK_OFFSET_ADJUST 0xe 1937 /* enum: Change the frequency correction applied to the NIC clock */ 1938 #define MC_CMD_PTP_OP_CLOCK_FREQ_ADJUST 0xf 1939 /* enum: Set the MC packet filter VLAN tags for received PTP packets. 1940 * Deprecated for Huntington onwards. 1941 */ 1942 #define MC_CMD_PTP_OP_RX_SET_VLAN_FILTER 0x10 1943 /* enum: Set the MC packet filter UUID for received PTP packets. Deprecated for 1944 * Huntington onwards. 1945 */ 1946 #define MC_CMD_PTP_OP_RX_SET_UUID_FILTER 0x11 1947 /* enum: Set the MC packet filter Domain for received PTP packets. Deprecated 1948 * for Huntington onwards. 1949 */ 1950 #define MC_CMD_PTP_OP_RX_SET_DOMAIN_FILTER 0x12 1951 /* enum: Set the clock source. Required for snapper tests on Huntington and 1952 * Medford. Not implemented for Siena or Medford2. 1953 */ 1954 #define MC_CMD_PTP_OP_SET_CLK_SRC 0x13 1955 /* enum: Reset value of Timer Reg. Not implemented. */ 1956 #define MC_CMD_PTP_OP_RST_CLK 0x14 1957 /* enum: Enable the forwarding of PPS events to the host */ 1958 #define MC_CMD_PTP_OP_PPS_ENABLE 0x15 1959 /* enum: Get the time format used by this NIC for PTP operations */ 1960 #define MC_CMD_PTP_OP_GET_TIME_FORMAT 0x16 1961 /* enum: Get the clock attributes. NOTE- extended version of 1962 * MC_CMD_PTP_OP_GET_TIME_FORMAT 1963 */ 1964 #define MC_CMD_PTP_OP_GET_ATTRIBUTES 0x16 1965 /* enum: Get corrections that should be applied to the various different 1966 * timestamps 1967 */ 1968 #define MC_CMD_PTP_OP_GET_TIMESTAMP_CORRECTIONS 0x17 1969 /* enum: Subscribe to receive periodic time events indicating the current NIC 1970 * time 1971 */ 1972 #define MC_CMD_PTP_OP_TIME_EVENT_SUBSCRIBE 0x18 1973 /* enum: Unsubscribe to stop receiving time events */ 1974 #define MC_CMD_PTP_OP_TIME_EVENT_UNSUBSCRIBE 0x19 1975 /* enum: PPS based manfacturing tests. Requires PPS output to be looped to PPS 1976 * input on the same NIC. Siena PTP adapters only. 1977 */ 1978 #define MC_CMD_PTP_OP_MANFTEST_PPS 0x1a 1979 /* enum: Set the PTP sync status. Status is used by firmware to report to event 1980 * subscribers. 1981 */ 1982 #define MC_CMD_PTP_OP_SET_SYNC_STATUS 0x1b 1983 /* enum: Above this for future use. */ 1984 #define MC_CMD_PTP_OP_MAX 0x1c 1985 1986 /* MC_CMD_PTP_IN_ENABLE msgrequest */ 1987 #define MC_CMD_PTP_IN_ENABLE_LEN 16 1988 #define MC_CMD_PTP_IN_CMD_OFST 0 1989 #define MC_CMD_PTP_IN_CMD_LEN 4 1990 #define MC_CMD_PTP_IN_PERIPH_ID_OFST 4 1991 #define MC_CMD_PTP_IN_PERIPH_ID_LEN 4 1992 /* Not used. Events are always sent to function relative queue 0. */ 1993 #define MC_CMD_PTP_IN_ENABLE_QUEUE_OFST 8 1994 #define MC_CMD_PTP_IN_ENABLE_QUEUE_LEN 4 1995 /* PTP timestamping mode. Not used from Huntington onwards. */ 1996 #define MC_CMD_PTP_IN_ENABLE_MODE_OFST 12 1997 #define MC_CMD_PTP_IN_ENABLE_MODE_LEN 4 1998 /* enum: PTP, version 1 */ 1999 #define MC_CMD_PTP_MODE_V1 0x0 2000 /* enum: PTP, version 1, with VLAN headers - deprecated */ 2001 #define MC_CMD_PTP_MODE_V1_VLAN 0x1 2002 /* enum: PTP, version 2 */ 2003 #define MC_CMD_PTP_MODE_V2 0x2 2004 /* enum: PTP, version 2, with VLAN headers - deprecated */ 2005 #define MC_CMD_PTP_MODE_V2_VLAN 0x3 2006 /* enum: PTP, version 2, with improved UUID filtering */ 2007 #define MC_CMD_PTP_MODE_V2_ENHANCED 0x4 2008 /* enum: FCoE (seconds and microseconds) */ 2009 #define MC_CMD_PTP_MODE_FCOE 0x5 2010 2011 /* MC_CMD_PTP_IN_DISABLE msgrequest */ 2012 #define MC_CMD_PTP_IN_DISABLE_LEN 8 2013 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2014 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2015 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2016 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2017 2018 /* MC_CMD_PTP_IN_TRANSMIT msgrequest */ 2019 #define MC_CMD_PTP_IN_TRANSMIT_LENMIN 13 2020 #define MC_CMD_PTP_IN_TRANSMIT_LENMAX 252 2021 #define MC_CMD_PTP_IN_TRANSMIT_LENMAX_MCDI2 1020 2022 #define MC_CMD_PTP_IN_TRANSMIT_LEN(num) (12+1*(num)) 2023 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_NUM(len) (((len)-12)/1) 2024 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2025 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2026 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2027 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2028 /* Transmit packet length */ 2029 #define MC_CMD_PTP_IN_TRANSMIT_LENGTH_OFST 8 2030 #define MC_CMD_PTP_IN_TRANSMIT_LENGTH_LEN 4 2031 /* Transmit packet data */ 2032 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_OFST 12 2033 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_LEN 1 2034 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_MINNUM 1 2035 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_MAXNUM 240 2036 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_MAXNUM_MCDI2 1008 2037 2038 /* MC_CMD_PTP_IN_READ_NIC_TIME msgrequest */ 2039 #define MC_CMD_PTP_IN_READ_NIC_TIME_LEN 8 2040 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2041 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2042 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2043 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2044 2045 /* MC_CMD_PTP_IN_READ_NIC_TIME_V2 msgrequest */ 2046 #define MC_CMD_PTP_IN_READ_NIC_TIME_V2_LEN 8 2047 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2048 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2049 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2050 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2051 2052 /* MC_CMD_PTP_IN_STATUS msgrequest */ 2053 #define MC_CMD_PTP_IN_STATUS_LEN 8 2054 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2055 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2056 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2057 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2058 2059 /* MC_CMD_PTP_IN_ADJUST msgrequest */ 2060 #define MC_CMD_PTP_IN_ADJUST_LEN 24 2061 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2062 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2063 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2064 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2065 /* Frequency adjustment 40 bit fixed point ns */ 2066 #define MC_CMD_PTP_IN_ADJUST_FREQ_OFST 8 2067 #define MC_CMD_PTP_IN_ADJUST_FREQ_LEN 8 2068 #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_OFST 8 2069 #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_OFST 12 2070 /* enum: Number of fractional bits in frequency adjustment */ 2071 #define MC_CMD_PTP_IN_ADJUST_BITS 0x28 2072 /* enum: Number of fractional bits in frequency adjustment when FP44_FREQ_ADJ 2073 * is indicated in the MC_CMD_PTP_OUT_GET_ATTRIBUTES command CAPABILITIES 2074 * field. 2075 */ 2076 #define MC_CMD_PTP_IN_ADJUST_BITS_FP44 0x2c 2077 /* Time adjustment in seconds */ 2078 #define MC_CMD_PTP_IN_ADJUST_SECONDS_OFST 16 2079 #define MC_CMD_PTP_IN_ADJUST_SECONDS_LEN 4 2080 /* Time adjustment major value */ 2081 #define MC_CMD_PTP_IN_ADJUST_MAJOR_OFST 16 2082 #define MC_CMD_PTP_IN_ADJUST_MAJOR_LEN 4 2083 /* Time adjustment in nanoseconds */ 2084 #define MC_CMD_PTP_IN_ADJUST_NANOSECONDS_OFST 20 2085 #define MC_CMD_PTP_IN_ADJUST_NANOSECONDS_LEN 4 2086 /* Time adjustment minor value */ 2087 #define MC_CMD_PTP_IN_ADJUST_MINOR_OFST 20 2088 #define MC_CMD_PTP_IN_ADJUST_MINOR_LEN 4 2089 2090 /* MC_CMD_PTP_IN_ADJUST_V2 msgrequest */ 2091 #define MC_CMD_PTP_IN_ADJUST_V2_LEN 28 2092 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2093 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2094 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2095 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2096 /* Frequency adjustment 40 bit fixed point ns */ 2097 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_OFST 8 2098 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LEN 8 2099 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_OFST 8 2100 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_OFST 12 2101 /* enum: Number of fractional bits in frequency adjustment */ 2102 /* MC_CMD_PTP_IN_ADJUST_BITS 0x28 */ 2103 /* enum: Number of fractional bits in frequency adjustment when FP44_FREQ_ADJ 2104 * is indicated in the MC_CMD_PTP_OUT_GET_ATTRIBUTES command CAPABILITIES 2105 * field. 2106 */ 2107 /* MC_CMD_PTP_IN_ADJUST_BITS_FP44 0x2c */ 2108 /* Time adjustment in seconds */ 2109 #define MC_CMD_PTP_IN_ADJUST_V2_SECONDS_OFST 16 2110 #define MC_CMD_PTP_IN_ADJUST_V2_SECONDS_LEN 4 2111 /* Time adjustment major value */ 2112 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_OFST 16 2113 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_LEN 4 2114 /* Time adjustment in nanoseconds */ 2115 #define MC_CMD_PTP_IN_ADJUST_V2_NANOSECONDS_OFST 20 2116 #define MC_CMD_PTP_IN_ADJUST_V2_NANOSECONDS_LEN 4 2117 /* Time adjustment minor value */ 2118 #define MC_CMD_PTP_IN_ADJUST_V2_MINOR_OFST 20 2119 #define MC_CMD_PTP_IN_ADJUST_V2_MINOR_LEN 4 2120 /* Upper 32bits of major time offset adjustment */ 2121 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_HI_OFST 24 2122 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_HI_LEN 4 2123 2124 /* MC_CMD_PTP_IN_SYNCHRONIZE msgrequest */ 2125 #define MC_CMD_PTP_IN_SYNCHRONIZE_LEN 20 2126 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2127 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2128 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2129 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2130 /* Number of time readings to capture */ 2131 #define MC_CMD_PTP_IN_SYNCHRONIZE_NUMTIMESETS_OFST 8 2132 #define MC_CMD_PTP_IN_SYNCHRONIZE_NUMTIMESETS_LEN 4 2133 /* Host address in which to write "synchronization started" indication (64 2134 * bits) 2135 */ 2136 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_OFST 12 2137 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LEN 8 2138 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_OFST 12 2139 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_OFST 16 2140 2141 /* MC_CMD_PTP_IN_MANFTEST_BASIC msgrequest */ 2142 #define MC_CMD_PTP_IN_MANFTEST_BASIC_LEN 8 2143 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2144 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2145 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2146 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2147 2148 /* MC_CMD_PTP_IN_MANFTEST_PACKET msgrequest */ 2149 #define MC_CMD_PTP_IN_MANFTEST_PACKET_LEN 12 2150 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2151 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2152 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2153 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2154 /* Enable or disable packet testing */ 2155 #define MC_CMD_PTP_IN_MANFTEST_PACKET_TEST_ENABLE_OFST 8 2156 #define MC_CMD_PTP_IN_MANFTEST_PACKET_TEST_ENABLE_LEN 4 2157 2158 /* MC_CMD_PTP_IN_RESET_STATS msgrequest: Reset PTP statistics */ 2159 #define MC_CMD_PTP_IN_RESET_STATS_LEN 8 2160 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2161 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2162 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2163 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2164 2165 /* MC_CMD_PTP_IN_DEBUG msgrequest */ 2166 #define MC_CMD_PTP_IN_DEBUG_LEN 12 2167 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2168 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2169 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2170 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2171 /* Debug operations */ 2172 #define MC_CMD_PTP_IN_DEBUG_DEBUG_PARAM_OFST 8 2173 #define MC_CMD_PTP_IN_DEBUG_DEBUG_PARAM_LEN 4 2174 2175 /* MC_CMD_PTP_IN_FPGAREAD msgrequest */ 2176 #define MC_CMD_PTP_IN_FPGAREAD_LEN 16 2177 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2178 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2179 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2180 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2181 #define MC_CMD_PTP_IN_FPGAREAD_ADDR_OFST 8 2182 #define MC_CMD_PTP_IN_FPGAREAD_ADDR_LEN 4 2183 #define MC_CMD_PTP_IN_FPGAREAD_NUMBYTES_OFST 12 2184 #define MC_CMD_PTP_IN_FPGAREAD_NUMBYTES_LEN 4 2185 2186 /* MC_CMD_PTP_IN_FPGAWRITE msgrequest */ 2187 #define MC_CMD_PTP_IN_FPGAWRITE_LENMIN 13 2188 #define MC_CMD_PTP_IN_FPGAWRITE_LENMAX 252 2189 #define MC_CMD_PTP_IN_FPGAWRITE_LENMAX_MCDI2 1020 2190 #define MC_CMD_PTP_IN_FPGAWRITE_LEN(num) (12+1*(num)) 2191 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_NUM(len) (((len)-12)/1) 2192 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2193 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2194 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2195 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2196 #define MC_CMD_PTP_IN_FPGAWRITE_ADDR_OFST 8 2197 #define MC_CMD_PTP_IN_FPGAWRITE_ADDR_LEN 4 2198 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_OFST 12 2199 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_LEN 1 2200 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_MINNUM 1 2201 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_MAXNUM 240 2202 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_MAXNUM_MCDI2 1008 2203 2204 /* MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST msgrequest */ 2205 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_LEN 16 2206 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2207 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2208 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2209 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2210 /* Time adjustment in seconds */ 2211 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_SECONDS_OFST 8 2212 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_SECONDS_LEN 4 2213 /* Time adjustment major value */ 2214 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MAJOR_OFST 8 2215 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MAJOR_LEN 4 2216 /* Time adjustment in nanoseconds */ 2217 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_NANOSECONDS_OFST 12 2218 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_NANOSECONDS_LEN 4 2219 /* Time adjustment minor value */ 2220 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MINOR_OFST 12 2221 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MINOR_LEN 4 2222 2223 /* MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2 msgrequest */ 2224 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_LEN 20 2225 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2226 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2227 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2228 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2229 /* Time adjustment in seconds */ 2230 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_SECONDS_OFST 8 2231 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_SECONDS_LEN 4 2232 /* Time adjustment major value */ 2233 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_OFST 8 2234 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_LEN 4 2235 /* Time adjustment in nanoseconds */ 2236 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_NANOSECONDS_OFST 12 2237 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_NANOSECONDS_LEN 4 2238 /* Time adjustment minor value */ 2239 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MINOR_OFST 12 2240 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MINOR_LEN 4 2241 /* Upper 32bits of major time offset adjustment */ 2242 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_HI_OFST 16 2243 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_HI_LEN 4 2244 2245 /* MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST msgrequest */ 2246 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_LEN 16 2247 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2248 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2249 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2250 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2251 /* Frequency adjustment 40 bit fixed point ns */ 2252 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_OFST 8 2253 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LEN 8 2254 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_OFST 8 2255 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_OFST 12 2256 /* Enum values, see field(s): */ 2257 /* MC_CMD_PTP/MC_CMD_PTP_IN_ADJUST/FREQ */ 2258 2259 /* MC_CMD_PTP_IN_RX_SET_VLAN_FILTER msgrequest */ 2260 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_LEN 24 2261 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2262 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2263 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2264 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2265 /* Number of VLAN tags, 0 if not VLAN */ 2266 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_NUM_VLAN_TAGS_OFST 8 2267 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_NUM_VLAN_TAGS_LEN 4 2268 /* Set of VLAN tags to filter against */ 2269 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_VLAN_TAG_OFST 12 2270 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_VLAN_TAG_LEN 4 2271 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_VLAN_TAG_NUM 3 2272 2273 /* MC_CMD_PTP_IN_RX_SET_UUID_FILTER msgrequest */ 2274 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_LEN 20 2275 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2276 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2277 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2278 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2279 /* 1 to enable UUID filtering, 0 to disable */ 2280 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_ENABLE_OFST 8 2281 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_ENABLE_LEN 4 2282 /* UUID to filter against */ 2283 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_OFST 12 2284 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LEN 8 2285 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_OFST 12 2286 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_OFST 16 2287 2288 /* MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER msgrequest */ 2289 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_LEN 16 2290 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2291 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2292 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2293 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2294 /* 1 to enable Domain filtering, 0 to disable */ 2295 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_ENABLE_OFST 8 2296 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_ENABLE_LEN 4 2297 /* Domain number to filter against */ 2298 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_DOMAIN_OFST 12 2299 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_DOMAIN_LEN 4 2300 2301 /* MC_CMD_PTP_IN_SET_CLK_SRC msgrequest */ 2302 #define MC_CMD_PTP_IN_SET_CLK_SRC_LEN 12 2303 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2304 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2305 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2306 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2307 /* Set the clock source. */ 2308 #define MC_CMD_PTP_IN_SET_CLK_SRC_CLK_OFST 8 2309 #define MC_CMD_PTP_IN_SET_CLK_SRC_CLK_LEN 4 2310 /* enum: Internal. */ 2311 #define MC_CMD_PTP_CLK_SRC_INTERNAL 0x0 2312 /* enum: External. */ 2313 #define MC_CMD_PTP_CLK_SRC_EXTERNAL 0x1 2314 2315 /* MC_CMD_PTP_IN_RST_CLK msgrequest: Reset value of Timer Reg. */ 2316 #define MC_CMD_PTP_IN_RST_CLK_LEN 8 2317 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2318 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2319 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2320 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2321 2322 /* MC_CMD_PTP_IN_PPS_ENABLE msgrequest */ 2323 #define MC_CMD_PTP_IN_PPS_ENABLE_LEN 12 2324 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2325 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2326 /* Enable or disable */ 2327 #define MC_CMD_PTP_IN_PPS_ENABLE_OP_OFST 4 2328 #define MC_CMD_PTP_IN_PPS_ENABLE_OP_LEN 4 2329 /* enum: Enable */ 2330 #define MC_CMD_PTP_ENABLE_PPS 0x0 2331 /* enum: Disable */ 2332 #define MC_CMD_PTP_DISABLE_PPS 0x1 2333 /* Not used. Events are always sent to function relative queue 0. */ 2334 #define MC_CMD_PTP_IN_PPS_ENABLE_QUEUE_ID_OFST 8 2335 #define MC_CMD_PTP_IN_PPS_ENABLE_QUEUE_ID_LEN 4 2336 2337 /* MC_CMD_PTP_IN_GET_TIME_FORMAT msgrequest */ 2338 #define MC_CMD_PTP_IN_GET_TIME_FORMAT_LEN 8 2339 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2340 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2341 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2342 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2343 2344 /* MC_CMD_PTP_IN_GET_ATTRIBUTES msgrequest */ 2345 #define MC_CMD_PTP_IN_GET_ATTRIBUTES_LEN 8 2346 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2347 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2348 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2349 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2350 2351 /* MC_CMD_PTP_IN_GET_TIMESTAMP_CORRECTIONS msgrequest */ 2352 #define MC_CMD_PTP_IN_GET_TIMESTAMP_CORRECTIONS_LEN 8 2353 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2354 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2355 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2356 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2357 2358 /* MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE msgrequest */ 2359 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_LEN 12 2360 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2361 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2362 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2363 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2364 /* Original field containing queue ID. Now extended to include flags. */ 2365 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_OFST 8 2366 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_LEN 4 2367 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_ID_OFST 8 2368 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_ID_LBN 0 2369 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_ID_WIDTH 16 2370 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_REPORT_SYNC_STATUS_OFST 8 2371 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_REPORT_SYNC_STATUS_LBN 31 2372 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_REPORT_SYNC_STATUS_WIDTH 1 2373 2374 /* MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE msgrequest */ 2375 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_LEN 16 2376 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2377 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2378 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2379 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2380 /* Unsubscribe options */ 2381 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_CONTROL_OFST 8 2382 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_CONTROL_LEN 4 2383 /* enum: Unsubscribe a single queue */ 2384 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_SINGLE 0x0 2385 /* enum: Unsubscribe all queues */ 2386 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_ALL 0x1 2387 /* Event queue ID */ 2388 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_QUEUE_OFST 12 2389 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_QUEUE_LEN 4 2390 2391 /* MC_CMD_PTP_IN_MANFTEST_PPS msgrequest */ 2392 #define MC_CMD_PTP_IN_MANFTEST_PPS_LEN 12 2393 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2394 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2395 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2396 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2397 /* 1 to enable PPS test mode, 0 to disable and return result. */ 2398 #define MC_CMD_PTP_IN_MANFTEST_PPS_TEST_ENABLE_OFST 8 2399 #define MC_CMD_PTP_IN_MANFTEST_PPS_TEST_ENABLE_LEN 4 2400 2401 /* MC_CMD_PTP_IN_SET_SYNC_STATUS msgrequest */ 2402 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_LEN 24 2403 /* MC_CMD_PTP_IN_CMD_OFST 0 */ 2404 /* MC_CMD_PTP_IN_CMD_LEN 4 */ 2405 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */ 2406 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */ 2407 /* NIC - Host System Clock Synchronization status */ 2408 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_STATUS_OFST 8 2409 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_STATUS_LEN 4 2410 /* enum: Host System clock and NIC clock are not in sync */ 2411 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_NOT_IN_SYNC 0x0 2412 /* enum: Host System clock and NIC clock are synchronized */ 2413 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_IN_SYNC 0x1 2414 /* If synchronized, number of seconds until clocks should be considered to be 2415 * no longer in sync. 2416 */ 2417 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_TIMEOUT_OFST 12 2418 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_TIMEOUT_LEN 4 2419 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED0_OFST 16 2420 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED0_LEN 4 2421 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED1_OFST 20 2422 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED1_LEN 4 2423 2424 /* MC_CMD_PTP_OUT msgresponse */ 2425 #define MC_CMD_PTP_OUT_LEN 0 2426 2427 /* MC_CMD_PTP_OUT_TRANSMIT msgresponse */ 2428 #define MC_CMD_PTP_OUT_TRANSMIT_LEN 8 2429 /* Value of seconds timestamp */ 2430 #define MC_CMD_PTP_OUT_TRANSMIT_SECONDS_OFST 0 2431 #define MC_CMD_PTP_OUT_TRANSMIT_SECONDS_LEN 4 2432 /* Timestamp major value */ 2433 #define MC_CMD_PTP_OUT_TRANSMIT_MAJOR_OFST 0 2434 #define MC_CMD_PTP_OUT_TRANSMIT_MAJOR_LEN 4 2435 /* Value of nanoseconds timestamp */ 2436 #define MC_CMD_PTP_OUT_TRANSMIT_NANOSECONDS_OFST 4 2437 #define MC_CMD_PTP_OUT_TRANSMIT_NANOSECONDS_LEN 4 2438 /* Timestamp minor value */ 2439 #define MC_CMD_PTP_OUT_TRANSMIT_MINOR_OFST 4 2440 #define MC_CMD_PTP_OUT_TRANSMIT_MINOR_LEN 4 2441 2442 /* MC_CMD_PTP_OUT_TIME_EVENT_SUBSCRIBE msgresponse */ 2443 #define MC_CMD_PTP_OUT_TIME_EVENT_SUBSCRIBE_LEN 0 2444 2445 /* MC_CMD_PTP_OUT_TIME_EVENT_UNSUBSCRIBE msgresponse */ 2446 #define MC_CMD_PTP_OUT_TIME_EVENT_UNSUBSCRIBE_LEN 0 2447 2448 /* MC_CMD_PTP_OUT_READ_NIC_TIME msgresponse */ 2449 #define MC_CMD_PTP_OUT_READ_NIC_TIME_LEN 8 2450 /* Value of seconds timestamp */ 2451 #define MC_CMD_PTP_OUT_READ_NIC_TIME_SECONDS_OFST 0 2452 #define MC_CMD_PTP_OUT_READ_NIC_TIME_SECONDS_LEN 4 2453 /* Timestamp major value */ 2454 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MAJOR_OFST 0 2455 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MAJOR_LEN 4 2456 /* Value of nanoseconds timestamp */ 2457 #define MC_CMD_PTP_OUT_READ_NIC_TIME_NANOSECONDS_OFST 4 2458 #define MC_CMD_PTP_OUT_READ_NIC_TIME_NANOSECONDS_LEN 4 2459 /* Timestamp minor value */ 2460 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MINOR_OFST 4 2461 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MINOR_LEN 4 2462 2463 /* MC_CMD_PTP_OUT_READ_NIC_TIME_V2 msgresponse */ 2464 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_LEN 12 2465 /* Value of seconds timestamp */ 2466 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_SECONDS_OFST 0 2467 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_SECONDS_LEN 4 2468 /* Timestamp major value */ 2469 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_OFST 0 2470 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_LEN 4 2471 /* Value of nanoseconds timestamp */ 2472 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_NANOSECONDS_OFST 4 2473 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_NANOSECONDS_LEN 4 2474 /* Timestamp minor value */ 2475 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MINOR_OFST 4 2476 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MINOR_LEN 4 2477 /* Upper 32bits of major timestamp value */ 2478 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_HI_OFST 8 2479 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_HI_LEN 4 2480 2481 /* MC_CMD_PTP_OUT_STATUS msgresponse */ 2482 #define MC_CMD_PTP_OUT_STATUS_LEN 64 2483 /* Frequency of NIC's hardware clock */ 2484 #define MC_CMD_PTP_OUT_STATUS_CLOCK_FREQ_OFST 0 2485 #define MC_CMD_PTP_OUT_STATUS_CLOCK_FREQ_LEN 4 2486 /* Number of packets transmitted and timestamped */ 2487 #define MC_CMD_PTP_OUT_STATUS_STATS_TX_OFST 4 2488 #define MC_CMD_PTP_OUT_STATUS_STATS_TX_LEN 4 2489 /* Number of packets received and timestamped */ 2490 #define MC_CMD_PTP_OUT_STATUS_STATS_RX_OFST 8 2491 #define MC_CMD_PTP_OUT_STATUS_STATS_RX_LEN 4 2492 /* Number of packets timestamped by the FPGA */ 2493 #define MC_CMD_PTP_OUT_STATUS_STATS_TS_OFST 12 2494 #define MC_CMD_PTP_OUT_STATUS_STATS_TS_LEN 4 2495 /* Number of packets filter matched */ 2496 #define MC_CMD_PTP_OUT_STATUS_STATS_FM_OFST 16 2497 #define MC_CMD_PTP_OUT_STATUS_STATS_FM_LEN 4 2498 /* Number of packets not filter matched */ 2499 #define MC_CMD_PTP_OUT_STATUS_STATS_NFM_OFST 20 2500 #define MC_CMD_PTP_OUT_STATUS_STATS_NFM_LEN 4 2501 /* Number of PPS overflows (noise on input?) */ 2502 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFLOW_OFST 24 2503 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFLOW_LEN 4 2504 /* Number of PPS bad periods */ 2505 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_BAD_OFST 28 2506 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_BAD_LEN 4 2507 /* Minimum period of PPS pulse in nanoseconds */ 2508 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MIN_OFST 32 2509 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MIN_LEN 4 2510 /* Maximum period of PPS pulse in nanoseconds */ 2511 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MAX_OFST 36 2512 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MAX_LEN 4 2513 /* Last period of PPS pulse in nanoseconds */ 2514 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_LAST_OFST 40 2515 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_LAST_LEN 4 2516 /* Mean period of PPS pulse in nanoseconds */ 2517 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MEAN_OFST 44 2518 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MEAN_LEN 4 2519 /* Minimum offset of PPS pulse in nanoseconds (signed) */ 2520 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MIN_OFST 48 2521 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MIN_LEN 4 2522 /* Maximum offset of PPS pulse in nanoseconds (signed) */ 2523 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MAX_OFST 52 2524 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MAX_LEN 4 2525 /* Last offset of PPS pulse in nanoseconds (signed) */ 2526 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_LAST_OFST 56 2527 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_LAST_LEN 4 2528 /* Mean offset of PPS pulse in nanoseconds (signed) */ 2529 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MEAN_OFST 60 2530 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MEAN_LEN 4 2531 2532 /* MC_CMD_PTP_OUT_SYNCHRONIZE msgresponse */ 2533 #define MC_CMD_PTP_OUT_SYNCHRONIZE_LENMIN 20 2534 #define MC_CMD_PTP_OUT_SYNCHRONIZE_LENMAX 240 2535 #define MC_CMD_PTP_OUT_SYNCHRONIZE_LENMAX_MCDI2 1020 2536 #define MC_CMD_PTP_OUT_SYNCHRONIZE_LEN(num) (0+20*(num)) 2537 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_NUM(len) (((len)-0)/20) 2538 /* A set of host and NIC times */ 2539 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_OFST 0 2540 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_LEN 20 2541 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_MINNUM 1 2542 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_MAXNUM 12 2543 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_MAXNUM_MCDI2 51 2544 /* Host time immediately before NIC's hardware clock read */ 2545 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTSTART_OFST 0 2546 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTSTART_LEN 4 2547 /* Value of seconds timestamp */ 2548 #define MC_CMD_PTP_OUT_SYNCHRONIZE_SECONDS_OFST 4 2549 #define MC_CMD_PTP_OUT_SYNCHRONIZE_SECONDS_LEN 4 2550 /* Timestamp major value */ 2551 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MAJOR_OFST 4 2552 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MAJOR_LEN 4 2553 /* Value of nanoseconds timestamp */ 2554 #define MC_CMD_PTP_OUT_SYNCHRONIZE_NANOSECONDS_OFST 8 2555 #define MC_CMD_PTP_OUT_SYNCHRONIZE_NANOSECONDS_LEN 4 2556 /* Timestamp minor value */ 2557 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MINOR_OFST 8 2558 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MINOR_LEN 4 2559 /* Host time immediately after NIC's hardware clock read */ 2560 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTEND_OFST 12 2561 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTEND_LEN 4 2562 /* Number of nanoseconds waited after reading NIC's hardware clock */ 2563 #define MC_CMD_PTP_OUT_SYNCHRONIZE_WAITNS_OFST 16 2564 #define MC_CMD_PTP_OUT_SYNCHRONIZE_WAITNS_LEN 4 2565 2566 /* MC_CMD_PTP_OUT_MANFTEST_BASIC msgresponse */ 2567 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_LEN 8 2568 /* Results of testing */ 2569 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_RESULT_OFST 0 2570 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_RESULT_LEN 4 2571 /* enum: Successful test */ 2572 #define MC_CMD_PTP_MANF_SUCCESS 0x0 2573 /* enum: FPGA load failed */ 2574 #define MC_CMD_PTP_MANF_FPGA_LOAD 0x1 2575 /* enum: FPGA version invalid */ 2576 #define MC_CMD_PTP_MANF_FPGA_VERSION 0x2 2577 /* enum: FPGA registers incorrect */ 2578 #define MC_CMD_PTP_MANF_FPGA_REGISTERS 0x3 2579 /* enum: Oscillator possibly not working? */ 2580 #define MC_CMD_PTP_MANF_OSCILLATOR 0x4 2581 /* enum: Timestamps not increasing */ 2582 #define MC_CMD_PTP_MANF_TIMESTAMPS 0x5 2583 /* enum: Mismatched packet count */ 2584 #define MC_CMD_PTP_MANF_PACKET_COUNT 0x6 2585 /* enum: Mismatched packet count (Siena filter and FPGA) */ 2586 #define MC_CMD_PTP_MANF_FILTER_COUNT 0x7 2587 /* enum: Not enough packets to perform timestamp check */ 2588 #define MC_CMD_PTP_MANF_PACKET_ENOUGH 0x8 2589 /* enum: Timestamp trigger GPIO not working */ 2590 #define MC_CMD_PTP_MANF_GPIO_TRIGGER 0x9 2591 /* enum: Insufficient PPS events to perform checks */ 2592 #define MC_CMD_PTP_MANF_PPS_ENOUGH 0xa 2593 /* enum: PPS time event period not sufficiently close to 1s. */ 2594 #define MC_CMD_PTP_MANF_PPS_PERIOD 0xb 2595 /* enum: PPS time event nS reading not sufficiently close to zero. */ 2596 #define MC_CMD_PTP_MANF_PPS_NS 0xc 2597 /* enum: PTP peripheral registers incorrect */ 2598 #define MC_CMD_PTP_MANF_REGISTERS 0xd 2599 /* enum: Failed to read time from PTP peripheral */ 2600 #define MC_CMD_PTP_MANF_CLOCK_READ 0xe 2601 /* Presence of external oscillator */ 2602 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_EXTOSC_OFST 4 2603 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_EXTOSC_LEN 4 2604 2605 /* MC_CMD_PTP_OUT_MANFTEST_PACKET msgresponse */ 2606 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_LEN 12 2607 /* Results of testing */ 2608 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_RESULT_OFST 0 2609 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_RESULT_LEN 4 2610 /* Number of packets received by FPGA */ 2611 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FPGACOUNT_OFST 4 2612 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FPGACOUNT_LEN 4 2613 /* Number of packets received by Siena filters */ 2614 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FILTERCOUNT_OFST 8 2615 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FILTERCOUNT_LEN 4 2616 2617 /* MC_CMD_PTP_OUT_FPGAREAD msgresponse */ 2618 #define MC_CMD_PTP_OUT_FPGAREAD_LENMIN 1 2619 #define MC_CMD_PTP_OUT_FPGAREAD_LENMAX 252 2620 #define MC_CMD_PTP_OUT_FPGAREAD_LENMAX_MCDI2 1020 2621 #define MC_CMD_PTP_OUT_FPGAREAD_LEN(num) (0+1*(num)) 2622 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_NUM(len) (((len)-0)/1) 2623 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_OFST 0 2624 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_LEN 1 2625 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_MINNUM 1 2626 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_MAXNUM 252 2627 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_MAXNUM_MCDI2 1020 2628 2629 /* MC_CMD_PTP_OUT_GET_TIME_FORMAT msgresponse */ 2630 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_LEN 4 2631 /* Time format required/used by for this NIC. Applies to all PTP MCDI 2632 * operations that pass times between the host and firmware. If this operation 2633 * is not supported (older firmware) a format of seconds and nanoseconds should 2634 * be assumed. Note this enum is deprecated. Do not add to it- use the 2635 * TIME_FORMAT field in MC_CMD_PTP_OUT_GET_ATTRIBUTES instead. 2636 */ 2637 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_FORMAT_OFST 0 2638 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_FORMAT_LEN 4 2639 /* enum: Times are in seconds and nanoseconds */ 2640 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_SECONDS_NANOSECONDS 0x0 2641 /* enum: Major register has units of 16 second per tick, minor 8 ns per tick */ 2642 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_16SECONDS_8NANOSECONDS 0x1 2643 /* enum: Major register has units of seconds, minor 2^-27s per tick */ 2644 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_SECONDS_27FRACTION 0x2 2645 2646 /* MC_CMD_PTP_OUT_GET_ATTRIBUTES msgresponse */ 2647 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_LEN 24 2648 /* Time format required/used by for this NIC. Applies to all PTP MCDI 2649 * operations that pass times between the host and firmware. If this operation 2650 * is not supported (older firmware) a format of seconds and nanoseconds should 2651 * be assumed. 2652 */ 2653 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_TIME_FORMAT_OFST 0 2654 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_TIME_FORMAT_LEN 4 2655 /* enum: Times are in seconds and nanoseconds */ 2656 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SECONDS_NANOSECONDS 0x0 2657 /* enum: Major register has units of 16 second per tick, minor 8 ns per tick */ 2658 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_16SECONDS_8NANOSECONDS 0x1 2659 /* enum: Major register has units of seconds, minor 2^-27s per tick */ 2660 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SECONDS_27FRACTION 0x2 2661 /* enum: Major register units are seconds, minor units are quarter nanoseconds 2662 */ 2663 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SECONDS_QTR_NANOSECONDS 0x3 2664 /* Minimum acceptable value for a corrected synchronization timeset. When 2665 * comparing host and NIC clock times, the MC returns a set of samples that 2666 * contain the host start and end time, the MC time when the host start was 2667 * detected and the time the MC waited between reading the time and detecting 2668 * the host end. The corrected sync window is the difference between the host 2669 * end and start times minus the time that the MC waited for host end. 2670 */ 2671 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SYNC_WINDOW_MIN_OFST 4 2672 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SYNC_WINDOW_MIN_LEN 4 2673 /* Various PTP capabilities */ 2674 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_CAPABILITIES_OFST 8 2675 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_CAPABILITIES_LEN 4 2676 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_REPORT_SYNC_STATUS_OFST 8 2677 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_REPORT_SYNC_STATUS_LBN 0 2678 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_REPORT_SYNC_STATUS_WIDTH 1 2679 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RX_TSTAMP_OOB_OFST 8 2680 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RX_TSTAMP_OOB_LBN 1 2681 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RX_TSTAMP_OOB_WIDTH 1 2682 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_64BIT_SECONDS_OFST 8 2683 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_64BIT_SECONDS_LBN 2 2684 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_64BIT_SECONDS_WIDTH 1 2685 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_FP44_FREQ_ADJ_OFST 8 2686 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_FP44_FREQ_ADJ_LBN 3 2687 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_FP44_FREQ_ADJ_WIDTH 1 2688 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED0_OFST 12 2689 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED0_LEN 4 2690 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED1_OFST 16 2691 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED1_LEN 4 2692 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED2_OFST 20 2693 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED2_LEN 4 2694 2695 /* MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS msgresponse */ 2696 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_LEN 16 2697 /* Uncorrected error on PTP transmit timestamps in NIC clock format */ 2698 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_TRANSMIT_OFST 0 2699 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_TRANSMIT_LEN 4 2700 /* Uncorrected error on PTP receive timestamps in NIC clock format */ 2701 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_RECEIVE_OFST 4 2702 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_RECEIVE_LEN 4 2703 /* Uncorrected error on PPS output in NIC clock format */ 2704 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_OUT_OFST 8 2705 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_OUT_LEN 4 2706 /* Uncorrected error on PPS input in NIC clock format */ 2707 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_IN_OFST 12 2708 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_IN_LEN 4 2709 2710 /* MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2 msgresponse */ 2711 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_LEN 24 2712 /* Uncorrected error on PTP transmit timestamps in NIC clock format */ 2713 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_TX_OFST 0 2714 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_TX_LEN 4 2715 /* Uncorrected error on PTP receive timestamps in NIC clock format */ 2716 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_RX_OFST 4 2717 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_RX_LEN 4 2718 /* Uncorrected error on PPS output in NIC clock format */ 2719 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_OUT_OFST 8 2720 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_OUT_LEN 4 2721 /* Uncorrected error on PPS input in NIC clock format */ 2722 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_IN_OFST 12 2723 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_IN_LEN 4 2724 /* Uncorrected error on non-PTP transmit timestamps in NIC clock format */ 2725 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_TX_OFST 16 2726 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_TX_LEN 4 2727 /* Uncorrected error on non-PTP receive timestamps in NIC clock format */ 2728 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_RX_OFST 20 2729 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_RX_LEN 4 2730 2731 /* MC_CMD_PTP_OUT_MANFTEST_PPS msgresponse */ 2732 #define MC_CMD_PTP_OUT_MANFTEST_PPS_LEN 4 2733 /* Results of testing */ 2734 #define MC_CMD_PTP_OUT_MANFTEST_PPS_TEST_RESULT_OFST 0 2735 #define MC_CMD_PTP_OUT_MANFTEST_PPS_TEST_RESULT_LEN 4 2736 /* Enum values, see field(s): */ 2737 /* MC_CMD_PTP_OUT_MANFTEST_BASIC/TEST_RESULT */ 2738 2739 /* MC_CMD_PTP_OUT_SET_SYNC_STATUS msgresponse */ 2740 #define MC_CMD_PTP_OUT_SET_SYNC_STATUS_LEN 0 2741 2742 2743 /***********************************/ 2744 /* MC_CMD_CSR_READ32 2745 * Read 32bit words from the indirect memory map. 2746 */ 2747 #define MC_CMD_CSR_READ32 0xc 2748 #undef MC_CMD_0xc_PRIVILEGE_CTG 2749 2750 #define MC_CMD_0xc_PRIVILEGE_CTG SRIOV_CTG_INSECURE 2751 2752 /* MC_CMD_CSR_READ32_IN msgrequest */ 2753 #define MC_CMD_CSR_READ32_IN_LEN 12 2754 /* Address */ 2755 #define MC_CMD_CSR_READ32_IN_ADDR_OFST 0 2756 #define MC_CMD_CSR_READ32_IN_ADDR_LEN 4 2757 #define MC_CMD_CSR_READ32_IN_STEP_OFST 4 2758 #define MC_CMD_CSR_READ32_IN_STEP_LEN 4 2759 #define MC_CMD_CSR_READ32_IN_NUMWORDS_OFST 8 2760 #define MC_CMD_CSR_READ32_IN_NUMWORDS_LEN 4 2761 2762 /* MC_CMD_CSR_READ32_OUT msgresponse */ 2763 #define MC_CMD_CSR_READ32_OUT_LENMIN 4 2764 #define MC_CMD_CSR_READ32_OUT_LENMAX 252 2765 #define MC_CMD_CSR_READ32_OUT_LENMAX_MCDI2 1020 2766 #define MC_CMD_CSR_READ32_OUT_LEN(num) (0+4*(num)) 2767 #define MC_CMD_CSR_READ32_OUT_BUFFER_NUM(len) (((len)-0)/4) 2768 /* The last dword is the status, not a value read */ 2769 #define MC_CMD_CSR_READ32_OUT_BUFFER_OFST 0 2770 #define MC_CMD_CSR_READ32_OUT_BUFFER_LEN 4 2771 #define MC_CMD_CSR_READ32_OUT_BUFFER_MINNUM 1 2772 #define MC_CMD_CSR_READ32_OUT_BUFFER_MAXNUM 63 2773 #define MC_CMD_CSR_READ32_OUT_BUFFER_MAXNUM_MCDI2 255 2774 2775 2776 /***********************************/ 2777 /* MC_CMD_CSR_WRITE32 2778 * Write 32bit dwords to the indirect memory map. 2779 */ 2780 #define MC_CMD_CSR_WRITE32 0xd 2781 #undef MC_CMD_0xd_PRIVILEGE_CTG 2782 2783 #define MC_CMD_0xd_PRIVILEGE_CTG SRIOV_CTG_INSECURE 2784 2785 /* MC_CMD_CSR_WRITE32_IN msgrequest */ 2786 #define MC_CMD_CSR_WRITE32_IN_LENMIN 12 2787 #define MC_CMD_CSR_WRITE32_IN_LENMAX 252 2788 #define MC_CMD_CSR_WRITE32_IN_LENMAX_MCDI2 1020 2789 #define MC_CMD_CSR_WRITE32_IN_LEN(num) (8+4*(num)) 2790 #define MC_CMD_CSR_WRITE32_IN_BUFFER_NUM(len) (((len)-8)/4) 2791 /* Address */ 2792 #define MC_CMD_CSR_WRITE32_IN_ADDR_OFST 0 2793 #define MC_CMD_CSR_WRITE32_IN_ADDR_LEN 4 2794 #define MC_CMD_CSR_WRITE32_IN_STEP_OFST 4 2795 #define MC_CMD_CSR_WRITE32_IN_STEP_LEN 4 2796 #define MC_CMD_CSR_WRITE32_IN_BUFFER_OFST 8 2797 #define MC_CMD_CSR_WRITE32_IN_BUFFER_LEN 4 2798 #define MC_CMD_CSR_WRITE32_IN_BUFFER_MINNUM 1 2799 #define MC_CMD_CSR_WRITE32_IN_BUFFER_MAXNUM 61 2800 #define MC_CMD_CSR_WRITE32_IN_BUFFER_MAXNUM_MCDI2 253 2801 2802 /* MC_CMD_CSR_WRITE32_OUT msgresponse */ 2803 #define MC_CMD_CSR_WRITE32_OUT_LEN 4 2804 #define MC_CMD_CSR_WRITE32_OUT_STATUS_OFST 0 2805 #define MC_CMD_CSR_WRITE32_OUT_STATUS_LEN 4 2806 2807 2808 /***********************************/ 2809 /* MC_CMD_HP 2810 * These commands are used for HP related features. They are grouped under one 2811 * MCDI command to avoid creating too many MCDI commands. 2812 */ 2813 #define MC_CMD_HP 0x54 2814 #undef MC_CMD_0x54_PRIVILEGE_CTG 2815 2816 #define MC_CMD_0x54_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 2817 2818 /* MC_CMD_HP_IN msgrequest */ 2819 #define MC_CMD_HP_IN_LEN 16 2820 /* HP OCSD sub-command. When address is not NULL, request activation of OCSD at 2821 * the specified address with the specified interval.When address is NULL, 2822 * INTERVAL is interpreted as a command: 0: stop OCSD / 1: Report OCSD current 2823 * state / 2: (debug) Show temperature reported by one of the supported 2824 * sensors. 2825 */ 2826 #define MC_CMD_HP_IN_SUBCMD_OFST 0 2827 #define MC_CMD_HP_IN_SUBCMD_LEN 4 2828 /* enum: OCSD (Option Card Sensor Data) sub-command. */ 2829 #define MC_CMD_HP_IN_OCSD_SUBCMD 0x0 2830 /* enum: Last known valid HP sub-command. */ 2831 #define MC_CMD_HP_IN_LAST_SUBCMD 0x0 2832 /* The address to the array of sensor fields. (Or NULL to use a sub-command.) 2833 */ 2834 #define MC_CMD_HP_IN_OCSD_ADDR_OFST 4 2835 #define MC_CMD_HP_IN_OCSD_ADDR_LEN 8 2836 #define MC_CMD_HP_IN_OCSD_ADDR_LO_OFST 4 2837 #define MC_CMD_HP_IN_OCSD_ADDR_HI_OFST 8 2838 /* The requested update interval, in seconds. (Or the sub-command if ADDR is 2839 * NULL.) 2840 */ 2841 #define MC_CMD_HP_IN_OCSD_INTERVAL_OFST 12 2842 #define MC_CMD_HP_IN_OCSD_INTERVAL_LEN 4 2843 2844 /* MC_CMD_HP_OUT msgresponse */ 2845 #define MC_CMD_HP_OUT_LEN 4 2846 #define MC_CMD_HP_OUT_OCSD_STATUS_OFST 0 2847 #define MC_CMD_HP_OUT_OCSD_STATUS_LEN 4 2848 /* enum: OCSD stopped for this card. */ 2849 #define MC_CMD_HP_OUT_OCSD_STOPPED 0x1 2850 /* enum: OCSD was successfully started with the address provided. */ 2851 #define MC_CMD_HP_OUT_OCSD_STARTED 0x2 2852 /* enum: OCSD was already started for this card. */ 2853 #define MC_CMD_HP_OUT_OCSD_ALREADY_STARTED 0x3 2854 2855 2856 /***********************************/ 2857 /* MC_CMD_STACKINFO 2858 * Get stack information. 2859 */ 2860 #define MC_CMD_STACKINFO 0xf 2861 #undef MC_CMD_0xf_PRIVILEGE_CTG 2862 2863 #define MC_CMD_0xf_PRIVILEGE_CTG SRIOV_CTG_ADMIN 2864 2865 /* MC_CMD_STACKINFO_IN msgrequest */ 2866 #define MC_CMD_STACKINFO_IN_LEN 0 2867 2868 /* MC_CMD_STACKINFO_OUT msgresponse */ 2869 #define MC_CMD_STACKINFO_OUT_LENMIN 12 2870 #define MC_CMD_STACKINFO_OUT_LENMAX 252 2871 #define MC_CMD_STACKINFO_OUT_LENMAX_MCDI2 1020 2872 #define MC_CMD_STACKINFO_OUT_LEN(num) (0+12*(num)) 2873 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_NUM(len) (((len)-0)/12) 2874 /* (thread ptr, stack size, free space) for each thread in system */ 2875 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_OFST 0 2876 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_LEN 12 2877 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_MINNUM 1 2878 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_MAXNUM 21 2879 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_MAXNUM_MCDI2 85 2880 2881 2882 /***********************************/ 2883 /* MC_CMD_MDIO_READ 2884 * MDIO register read. 2885 */ 2886 #define MC_CMD_MDIO_READ 0x10 2887 #undef MC_CMD_0x10_PRIVILEGE_CTG 2888 2889 #define MC_CMD_0x10_PRIVILEGE_CTG SRIOV_CTG_GENERAL 2890 2891 /* MC_CMD_MDIO_READ_IN msgrequest */ 2892 #define MC_CMD_MDIO_READ_IN_LEN 16 2893 /* Bus number; there are two MDIO buses: one for the internal PHY, and one for 2894 * external devices. 2895 */ 2896 #define MC_CMD_MDIO_READ_IN_BUS_OFST 0 2897 #define MC_CMD_MDIO_READ_IN_BUS_LEN 4 2898 /* enum: Internal. */ 2899 #define MC_CMD_MDIO_BUS_INTERNAL 0x0 2900 /* enum: External. */ 2901 #define MC_CMD_MDIO_BUS_EXTERNAL 0x1 2902 /* Port address */ 2903 #define MC_CMD_MDIO_READ_IN_PRTAD_OFST 4 2904 #define MC_CMD_MDIO_READ_IN_PRTAD_LEN 4 2905 /* Device Address or clause 22. */ 2906 #define MC_CMD_MDIO_READ_IN_DEVAD_OFST 8 2907 #define MC_CMD_MDIO_READ_IN_DEVAD_LEN 4 2908 /* enum: By default all the MCDI MDIO operations perform clause45 mode. If you 2909 * want to use clause22 then set DEVAD = MC_CMD_MDIO_CLAUSE22. 2910 */ 2911 #define MC_CMD_MDIO_CLAUSE22 0x20 2912 /* Address */ 2913 #define MC_CMD_MDIO_READ_IN_ADDR_OFST 12 2914 #define MC_CMD_MDIO_READ_IN_ADDR_LEN 4 2915 2916 /* MC_CMD_MDIO_READ_OUT msgresponse */ 2917 #define MC_CMD_MDIO_READ_OUT_LEN 8 2918 /* Value */ 2919 #define MC_CMD_MDIO_READ_OUT_VALUE_OFST 0 2920 #define MC_CMD_MDIO_READ_OUT_VALUE_LEN 4 2921 /* Status the MDIO commands return the raw status bits from the MDIO block. A 2922 * "good" transaction should have the DONE bit set and all other bits clear. 2923 */ 2924 #define MC_CMD_MDIO_READ_OUT_STATUS_OFST 4 2925 #define MC_CMD_MDIO_READ_OUT_STATUS_LEN 4 2926 /* enum: Good. */ 2927 #define MC_CMD_MDIO_STATUS_GOOD 0x8 2928 2929 2930 /***********************************/ 2931 /* MC_CMD_MDIO_WRITE 2932 * MDIO register write. 2933 */ 2934 #define MC_CMD_MDIO_WRITE 0x11 2935 #undef MC_CMD_0x11_PRIVILEGE_CTG 2936 2937 #define MC_CMD_0x11_PRIVILEGE_CTG SRIOV_CTG_ADMIN 2938 2939 /* MC_CMD_MDIO_WRITE_IN msgrequest */ 2940 #define MC_CMD_MDIO_WRITE_IN_LEN 20 2941 /* Bus number; there are two MDIO buses: one for the internal PHY, and one for 2942 * external devices. 2943 */ 2944 #define MC_CMD_MDIO_WRITE_IN_BUS_OFST 0 2945 #define MC_CMD_MDIO_WRITE_IN_BUS_LEN 4 2946 /* enum: Internal. */ 2947 /* MC_CMD_MDIO_BUS_INTERNAL 0x0 */ 2948 /* enum: External. */ 2949 /* MC_CMD_MDIO_BUS_EXTERNAL 0x1 */ 2950 /* Port address */ 2951 #define MC_CMD_MDIO_WRITE_IN_PRTAD_OFST 4 2952 #define MC_CMD_MDIO_WRITE_IN_PRTAD_LEN 4 2953 /* Device Address or clause 22. */ 2954 #define MC_CMD_MDIO_WRITE_IN_DEVAD_OFST 8 2955 #define MC_CMD_MDIO_WRITE_IN_DEVAD_LEN 4 2956 /* enum: By default all the MCDI MDIO operations perform clause45 mode. If you 2957 * want to use clause22 then set DEVAD = MC_CMD_MDIO_CLAUSE22. 2958 */ 2959 /* MC_CMD_MDIO_CLAUSE22 0x20 */ 2960 /* Address */ 2961 #define MC_CMD_MDIO_WRITE_IN_ADDR_OFST 12 2962 #define MC_CMD_MDIO_WRITE_IN_ADDR_LEN 4 2963 /* Value */ 2964 #define MC_CMD_MDIO_WRITE_IN_VALUE_OFST 16 2965 #define MC_CMD_MDIO_WRITE_IN_VALUE_LEN 4 2966 2967 /* MC_CMD_MDIO_WRITE_OUT msgresponse */ 2968 #define MC_CMD_MDIO_WRITE_OUT_LEN 4 2969 /* Status; the MDIO commands return the raw status bits from the MDIO block. A 2970 * "good" transaction should have the DONE bit set and all other bits clear. 2971 */ 2972 #define MC_CMD_MDIO_WRITE_OUT_STATUS_OFST 0 2973 #define MC_CMD_MDIO_WRITE_OUT_STATUS_LEN 4 2974 /* enum: Good. */ 2975 /* MC_CMD_MDIO_STATUS_GOOD 0x8 */ 2976 2977 2978 /***********************************/ 2979 /* MC_CMD_DBI_WRITE 2980 * Write DBI register(s). 2981 */ 2982 #define MC_CMD_DBI_WRITE 0x12 2983 #undef MC_CMD_0x12_PRIVILEGE_CTG 2984 2985 #define MC_CMD_0x12_PRIVILEGE_CTG SRIOV_CTG_INSECURE 2986 2987 /* MC_CMD_DBI_WRITE_IN msgrequest */ 2988 #define MC_CMD_DBI_WRITE_IN_LENMIN 12 2989 #define MC_CMD_DBI_WRITE_IN_LENMAX 252 2990 #define MC_CMD_DBI_WRITE_IN_LENMAX_MCDI2 1020 2991 #define MC_CMD_DBI_WRITE_IN_LEN(num) (0+12*(num)) 2992 #define MC_CMD_DBI_WRITE_IN_DBIWROP_NUM(len) (((len)-0)/12) 2993 /* Each write op consists of an address (offset 0), byte enable/VF/CS2 (offset 2994 * 32) and value (offset 64). See MC_CMD_DBIWROP_TYPEDEF. 2995 */ 2996 #define MC_CMD_DBI_WRITE_IN_DBIWROP_OFST 0 2997 #define MC_CMD_DBI_WRITE_IN_DBIWROP_LEN 12 2998 #define MC_CMD_DBI_WRITE_IN_DBIWROP_MINNUM 1 2999 #define MC_CMD_DBI_WRITE_IN_DBIWROP_MAXNUM 21 3000 #define MC_CMD_DBI_WRITE_IN_DBIWROP_MAXNUM_MCDI2 85 3001 3002 /* MC_CMD_DBI_WRITE_OUT msgresponse */ 3003 #define MC_CMD_DBI_WRITE_OUT_LEN 0 3004 3005 /* MC_CMD_DBIWROP_TYPEDEF structuredef */ 3006 #define MC_CMD_DBIWROP_TYPEDEF_LEN 12 3007 #define MC_CMD_DBIWROP_TYPEDEF_ADDRESS_OFST 0 3008 #define MC_CMD_DBIWROP_TYPEDEF_ADDRESS_LEN 4 3009 #define MC_CMD_DBIWROP_TYPEDEF_ADDRESS_LBN 0 3010 #define MC_CMD_DBIWROP_TYPEDEF_ADDRESS_WIDTH 32 3011 #define MC_CMD_DBIWROP_TYPEDEF_PARMS_OFST 4 3012 #define MC_CMD_DBIWROP_TYPEDEF_PARMS_LEN 4 3013 #define MC_CMD_DBIWROP_TYPEDEF_VF_NUM_OFST 4 3014 #define MC_CMD_DBIWROP_TYPEDEF_VF_NUM_LBN 16 3015 #define MC_CMD_DBIWROP_TYPEDEF_VF_NUM_WIDTH 16 3016 #define MC_CMD_DBIWROP_TYPEDEF_VF_ACTIVE_OFST 4 3017 #define MC_CMD_DBIWROP_TYPEDEF_VF_ACTIVE_LBN 15 3018 #define MC_CMD_DBIWROP_TYPEDEF_VF_ACTIVE_WIDTH 1 3019 #define MC_CMD_DBIWROP_TYPEDEF_CS2_OFST 4 3020 #define MC_CMD_DBIWROP_TYPEDEF_CS2_LBN 14 3021 #define MC_CMD_DBIWROP_TYPEDEF_CS2_WIDTH 1 3022 #define MC_CMD_DBIWROP_TYPEDEF_PARMS_LBN 32 3023 #define MC_CMD_DBIWROP_TYPEDEF_PARMS_WIDTH 32 3024 #define MC_CMD_DBIWROP_TYPEDEF_VALUE_OFST 8 3025 #define MC_CMD_DBIWROP_TYPEDEF_VALUE_LEN 4 3026 #define MC_CMD_DBIWROP_TYPEDEF_VALUE_LBN 64 3027 #define MC_CMD_DBIWROP_TYPEDEF_VALUE_WIDTH 32 3028 3029 3030 /***********************************/ 3031 /* MC_CMD_PORT_READ32 3032 * Read a 32-bit register from the indirect port register map. The port to 3033 * access is implied by the Shared memory channel used. 3034 */ 3035 #define MC_CMD_PORT_READ32 0x14 3036 3037 /* MC_CMD_PORT_READ32_IN msgrequest */ 3038 #define MC_CMD_PORT_READ32_IN_LEN 4 3039 /* Address */ 3040 #define MC_CMD_PORT_READ32_IN_ADDR_OFST 0 3041 #define MC_CMD_PORT_READ32_IN_ADDR_LEN 4 3042 3043 /* MC_CMD_PORT_READ32_OUT msgresponse */ 3044 #define MC_CMD_PORT_READ32_OUT_LEN 8 3045 /* Value */ 3046 #define MC_CMD_PORT_READ32_OUT_VALUE_OFST 0 3047 #define MC_CMD_PORT_READ32_OUT_VALUE_LEN 4 3048 /* Status */ 3049 #define MC_CMD_PORT_READ32_OUT_STATUS_OFST 4 3050 #define MC_CMD_PORT_READ32_OUT_STATUS_LEN 4 3051 3052 3053 /***********************************/ 3054 /* MC_CMD_PORT_WRITE32 3055 * Write a 32-bit register to the indirect port register map. The port to 3056 * access is implied by the Shared memory channel used. 3057 */ 3058 #define MC_CMD_PORT_WRITE32 0x15 3059 3060 /* MC_CMD_PORT_WRITE32_IN msgrequest */ 3061 #define MC_CMD_PORT_WRITE32_IN_LEN 8 3062 /* Address */ 3063 #define MC_CMD_PORT_WRITE32_IN_ADDR_OFST 0 3064 #define MC_CMD_PORT_WRITE32_IN_ADDR_LEN 4 3065 /* Value */ 3066 #define MC_CMD_PORT_WRITE32_IN_VALUE_OFST 4 3067 #define MC_CMD_PORT_WRITE32_IN_VALUE_LEN 4 3068 3069 /* MC_CMD_PORT_WRITE32_OUT msgresponse */ 3070 #define MC_CMD_PORT_WRITE32_OUT_LEN 4 3071 /* Status */ 3072 #define MC_CMD_PORT_WRITE32_OUT_STATUS_OFST 0 3073 #define MC_CMD_PORT_WRITE32_OUT_STATUS_LEN 4 3074 3075 3076 /***********************************/ 3077 /* MC_CMD_PORT_READ128 3078 * Read a 128-bit register from the indirect port register map. The port to 3079 * access is implied by the Shared memory channel used. 3080 */ 3081 #define MC_CMD_PORT_READ128 0x16 3082 3083 /* MC_CMD_PORT_READ128_IN msgrequest */ 3084 #define MC_CMD_PORT_READ128_IN_LEN 4 3085 /* Address */ 3086 #define MC_CMD_PORT_READ128_IN_ADDR_OFST 0 3087 #define MC_CMD_PORT_READ128_IN_ADDR_LEN 4 3088 3089 /* MC_CMD_PORT_READ128_OUT msgresponse */ 3090 #define MC_CMD_PORT_READ128_OUT_LEN 20 3091 /* Value */ 3092 #define MC_CMD_PORT_READ128_OUT_VALUE_OFST 0 3093 #define MC_CMD_PORT_READ128_OUT_VALUE_LEN 16 3094 /* Status */ 3095 #define MC_CMD_PORT_READ128_OUT_STATUS_OFST 16 3096 #define MC_CMD_PORT_READ128_OUT_STATUS_LEN 4 3097 3098 3099 /***********************************/ 3100 /* MC_CMD_PORT_WRITE128 3101 * Write a 128-bit register to the indirect port register map. The port to 3102 * access is implied by the Shared memory channel used. 3103 */ 3104 #define MC_CMD_PORT_WRITE128 0x17 3105 3106 /* MC_CMD_PORT_WRITE128_IN msgrequest */ 3107 #define MC_CMD_PORT_WRITE128_IN_LEN 20 3108 /* Address */ 3109 #define MC_CMD_PORT_WRITE128_IN_ADDR_OFST 0 3110 #define MC_CMD_PORT_WRITE128_IN_ADDR_LEN 4 3111 /* Value */ 3112 #define MC_CMD_PORT_WRITE128_IN_VALUE_OFST 4 3113 #define MC_CMD_PORT_WRITE128_IN_VALUE_LEN 16 3114 3115 /* MC_CMD_PORT_WRITE128_OUT msgresponse */ 3116 #define MC_CMD_PORT_WRITE128_OUT_LEN 4 3117 /* Status */ 3118 #define MC_CMD_PORT_WRITE128_OUT_STATUS_OFST 0 3119 #define MC_CMD_PORT_WRITE128_OUT_STATUS_LEN 4 3120 3121 /* MC_CMD_CAPABILITIES structuredef */ 3122 #define MC_CMD_CAPABILITIES_LEN 4 3123 /* Small buf table. */ 3124 #define MC_CMD_CAPABILITIES_SMALL_BUF_TBL_LBN 0 3125 #define MC_CMD_CAPABILITIES_SMALL_BUF_TBL_WIDTH 1 3126 /* Turbo mode (for Maranello). */ 3127 #define MC_CMD_CAPABILITIES_TURBO_LBN 1 3128 #define MC_CMD_CAPABILITIES_TURBO_WIDTH 1 3129 /* Turbo mode active (for Maranello). */ 3130 #define MC_CMD_CAPABILITIES_TURBO_ACTIVE_LBN 2 3131 #define MC_CMD_CAPABILITIES_TURBO_ACTIVE_WIDTH 1 3132 /* PTP offload. */ 3133 #define MC_CMD_CAPABILITIES_PTP_LBN 3 3134 #define MC_CMD_CAPABILITIES_PTP_WIDTH 1 3135 /* AOE mode. */ 3136 #define MC_CMD_CAPABILITIES_AOE_LBN 4 3137 #define MC_CMD_CAPABILITIES_AOE_WIDTH 1 3138 /* AOE mode active. */ 3139 #define MC_CMD_CAPABILITIES_AOE_ACTIVE_LBN 5 3140 #define MC_CMD_CAPABILITIES_AOE_ACTIVE_WIDTH 1 3141 /* AOE mode active. */ 3142 #define MC_CMD_CAPABILITIES_FC_ACTIVE_LBN 6 3143 #define MC_CMD_CAPABILITIES_FC_ACTIVE_WIDTH 1 3144 #define MC_CMD_CAPABILITIES_RESERVED_LBN 7 3145 #define MC_CMD_CAPABILITIES_RESERVED_WIDTH 25 3146 3147 3148 /***********************************/ 3149 /* MC_CMD_GET_BOARD_CFG 3150 * Returns the MC firmware configuration structure. 3151 */ 3152 #define MC_CMD_GET_BOARD_CFG 0x18 3153 #undef MC_CMD_0x18_PRIVILEGE_CTG 3154 3155 #define MC_CMD_0x18_PRIVILEGE_CTG SRIOV_CTG_GENERAL 3156 3157 /* MC_CMD_GET_BOARD_CFG_IN msgrequest */ 3158 #define MC_CMD_GET_BOARD_CFG_IN_LEN 0 3159 3160 /* MC_CMD_GET_BOARD_CFG_OUT msgresponse */ 3161 #define MC_CMD_GET_BOARD_CFG_OUT_LENMIN 96 3162 #define MC_CMD_GET_BOARD_CFG_OUT_LENMAX 136 3163 #define MC_CMD_GET_BOARD_CFG_OUT_LENMAX_MCDI2 136 3164 #define MC_CMD_GET_BOARD_CFG_OUT_LEN(num) (72+2*(num)) 3165 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_NUM(len) (((len)-72)/2) 3166 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_TYPE_OFST 0 3167 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_TYPE_LEN 4 3168 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_NAME_OFST 4 3169 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_NAME_LEN 32 3170 /* Capabilities for Siena Port0 (see struct MC_CMD_CAPABILITIES). Unused on 3171 * EF10 and later (use MC_CMD_GET_CAPABILITIES). 3172 */ 3173 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT0_OFST 36 3174 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT0_LEN 4 3175 /* Capabilities for Siena Port1 (see struct MC_CMD_CAPABILITIES). Unused on 3176 * EF10 and later (use MC_CMD_GET_CAPABILITIES). 3177 */ 3178 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT1_OFST 40 3179 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT1_LEN 4 3180 /* Base MAC address for Siena Port0. Unused on EF10 and later (use 3181 * MC_CMD_GET_MAC_ADDRESSES). 3182 */ 3183 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT0_OFST 44 3184 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT0_LEN 6 3185 /* Base MAC address for Siena Port1. Unused on EF10 and later (use 3186 * MC_CMD_GET_MAC_ADDRESSES). 3187 */ 3188 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT1_OFST 50 3189 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT1_LEN 6 3190 /* Size of MAC address pool for Siena Port0. Unused on EF10 and later (use 3191 * MC_CMD_GET_MAC_ADDRESSES). 3192 */ 3193 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT0_OFST 56 3194 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT0_LEN 4 3195 /* Size of MAC address pool for Siena Port1. Unused on EF10 and later (use 3196 * MC_CMD_GET_MAC_ADDRESSES). 3197 */ 3198 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT1_OFST 60 3199 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT1_LEN 4 3200 /* Increment between addresses in MAC address pool for Siena Port0. Unused on 3201 * EF10 and later (use MC_CMD_GET_MAC_ADDRESSES). 3202 */ 3203 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT0_OFST 64 3204 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT0_LEN 4 3205 /* Increment between addresses in MAC address pool for Siena Port1. Unused on 3206 * EF10 and later (use MC_CMD_GET_MAC_ADDRESSES). 3207 */ 3208 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT1_OFST 68 3209 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT1_LEN 4 3210 /* Siena only. This field contains a 16-bit value for each of the types of 3211 * NVRAM area. The values are defined in the firmware/mc/platform/.c file for a 3212 * specific board type, but otherwise have no meaning to the MC; they are used 3213 * by the driver to manage selection of appropriate firmware updates. Unused on 3214 * EF10 and later (use MC_CMD_NVRAM_METADATA). 3215 */ 3216 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_OFST 72 3217 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_LEN 2 3218 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_MINNUM 12 3219 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_MAXNUM 32 3220 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_MAXNUM_MCDI2 32 3221 3222 3223 /***********************************/ 3224 /* MC_CMD_DBI_READX 3225 * Read DBI register(s) -- extended functionality 3226 */ 3227 #define MC_CMD_DBI_READX 0x19 3228 #undef MC_CMD_0x19_PRIVILEGE_CTG 3229 3230 #define MC_CMD_0x19_PRIVILEGE_CTG SRIOV_CTG_INSECURE 3231 3232 /* MC_CMD_DBI_READX_IN msgrequest */ 3233 #define MC_CMD_DBI_READX_IN_LENMIN 8 3234 #define MC_CMD_DBI_READX_IN_LENMAX 248 3235 #define MC_CMD_DBI_READX_IN_LENMAX_MCDI2 1016 3236 #define MC_CMD_DBI_READX_IN_LEN(num) (0+8*(num)) 3237 #define MC_CMD_DBI_READX_IN_DBIRDOP_NUM(len) (((len)-0)/8) 3238 /* Each Read op consists of an address (offset 0), VF/CS2) */ 3239 #define MC_CMD_DBI_READX_IN_DBIRDOP_OFST 0 3240 #define MC_CMD_DBI_READX_IN_DBIRDOP_LEN 8 3241 #define MC_CMD_DBI_READX_IN_DBIRDOP_LO_OFST 0 3242 #define MC_CMD_DBI_READX_IN_DBIRDOP_HI_OFST 4 3243 #define MC_CMD_DBI_READX_IN_DBIRDOP_MINNUM 1 3244 #define MC_CMD_DBI_READX_IN_DBIRDOP_MAXNUM 31 3245 #define MC_CMD_DBI_READX_IN_DBIRDOP_MAXNUM_MCDI2 127 3246 3247 /* MC_CMD_DBI_READX_OUT msgresponse */ 3248 #define MC_CMD_DBI_READX_OUT_LENMIN 4 3249 #define MC_CMD_DBI_READX_OUT_LENMAX 252 3250 #define MC_CMD_DBI_READX_OUT_LENMAX_MCDI2 1020 3251 #define MC_CMD_DBI_READX_OUT_LEN(num) (0+4*(num)) 3252 #define MC_CMD_DBI_READX_OUT_VALUE_NUM(len) (((len)-0)/4) 3253 /* Value */ 3254 #define MC_CMD_DBI_READX_OUT_VALUE_OFST 0 3255 #define MC_CMD_DBI_READX_OUT_VALUE_LEN 4 3256 #define MC_CMD_DBI_READX_OUT_VALUE_MINNUM 1 3257 #define MC_CMD_DBI_READX_OUT_VALUE_MAXNUM 63 3258 #define MC_CMD_DBI_READX_OUT_VALUE_MAXNUM_MCDI2 255 3259 3260 /* MC_CMD_DBIRDOP_TYPEDEF structuredef */ 3261 #define MC_CMD_DBIRDOP_TYPEDEF_LEN 8 3262 #define MC_CMD_DBIRDOP_TYPEDEF_ADDRESS_OFST 0 3263 #define MC_CMD_DBIRDOP_TYPEDEF_ADDRESS_LEN 4 3264 #define MC_CMD_DBIRDOP_TYPEDEF_ADDRESS_LBN 0 3265 #define MC_CMD_DBIRDOP_TYPEDEF_ADDRESS_WIDTH 32 3266 #define MC_CMD_DBIRDOP_TYPEDEF_PARMS_OFST 4 3267 #define MC_CMD_DBIRDOP_TYPEDEF_PARMS_LEN 4 3268 #define MC_CMD_DBIRDOP_TYPEDEF_VF_NUM_OFST 4 3269 #define MC_CMD_DBIRDOP_TYPEDEF_VF_NUM_LBN 16 3270 #define MC_CMD_DBIRDOP_TYPEDEF_VF_NUM_WIDTH 16 3271 #define MC_CMD_DBIRDOP_TYPEDEF_VF_ACTIVE_OFST 4 3272 #define MC_CMD_DBIRDOP_TYPEDEF_VF_ACTIVE_LBN 15 3273 #define MC_CMD_DBIRDOP_TYPEDEF_VF_ACTIVE_WIDTH 1 3274 #define MC_CMD_DBIRDOP_TYPEDEF_CS2_OFST 4 3275 #define MC_CMD_DBIRDOP_TYPEDEF_CS2_LBN 14 3276 #define MC_CMD_DBIRDOP_TYPEDEF_CS2_WIDTH 1 3277 #define MC_CMD_DBIRDOP_TYPEDEF_PARMS_LBN 32 3278 #define MC_CMD_DBIRDOP_TYPEDEF_PARMS_WIDTH 32 3279 3280 3281 /***********************************/ 3282 /* MC_CMD_SET_RAND_SEED 3283 * Set the 16byte seed for the MC pseudo-random generator. 3284 */ 3285 #define MC_CMD_SET_RAND_SEED 0x1a 3286 #undef MC_CMD_0x1a_PRIVILEGE_CTG 3287 3288 #define MC_CMD_0x1a_PRIVILEGE_CTG SRIOV_CTG_INSECURE 3289 3290 /* MC_CMD_SET_RAND_SEED_IN msgrequest */ 3291 #define MC_CMD_SET_RAND_SEED_IN_LEN 16 3292 /* Seed value. */ 3293 #define MC_CMD_SET_RAND_SEED_IN_SEED_OFST 0 3294 #define MC_CMD_SET_RAND_SEED_IN_SEED_LEN 16 3295 3296 /* MC_CMD_SET_RAND_SEED_OUT msgresponse */ 3297 #define MC_CMD_SET_RAND_SEED_OUT_LEN 0 3298 3299 3300 /***********************************/ 3301 /* MC_CMD_LTSSM_HIST 3302 * Retrieve the history of the LTSSM, if the build supports it. 3303 */ 3304 #define MC_CMD_LTSSM_HIST 0x1b 3305 3306 /* MC_CMD_LTSSM_HIST_IN msgrequest */ 3307 #define MC_CMD_LTSSM_HIST_IN_LEN 0 3308 3309 /* MC_CMD_LTSSM_HIST_OUT msgresponse */ 3310 #define MC_CMD_LTSSM_HIST_OUT_LENMIN 0 3311 #define MC_CMD_LTSSM_HIST_OUT_LENMAX 252 3312 #define MC_CMD_LTSSM_HIST_OUT_LENMAX_MCDI2 1020 3313 #define MC_CMD_LTSSM_HIST_OUT_LEN(num) (0+4*(num)) 3314 #define MC_CMD_LTSSM_HIST_OUT_DATA_NUM(len) (((len)-0)/4) 3315 /* variable number of LTSSM values, as bytes. The history is read-to-clear. */ 3316 #define MC_CMD_LTSSM_HIST_OUT_DATA_OFST 0 3317 #define MC_CMD_LTSSM_HIST_OUT_DATA_LEN 4 3318 #define MC_CMD_LTSSM_HIST_OUT_DATA_MINNUM 0 3319 #define MC_CMD_LTSSM_HIST_OUT_DATA_MAXNUM 63 3320 #define MC_CMD_LTSSM_HIST_OUT_DATA_MAXNUM_MCDI2 255 3321 3322 3323 /***********************************/ 3324 /* MC_CMD_DRV_ATTACH 3325 * Inform MCPU that this port is managed on the host (i.e. driver active). For 3326 * Huntington, also request the preferred datapath firmware to use if possible 3327 * (it may not be possible for this request to be fulfilled; the driver must 3328 * issue a subsequent MC_CMD_GET_CAPABILITIES command to determine which 3329 * features are actually available). The FIRMWARE_ID field is ignored by older 3330 * platforms. 3331 */ 3332 #define MC_CMD_DRV_ATTACH 0x1c 3333 #undef MC_CMD_0x1c_PRIVILEGE_CTG 3334 3335 #define MC_CMD_0x1c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 3336 3337 /* MC_CMD_DRV_ATTACH_IN msgrequest */ 3338 #define MC_CMD_DRV_ATTACH_IN_LEN 12 3339 /* new state to set if UPDATE=1 */ 3340 #define MC_CMD_DRV_ATTACH_IN_NEW_STATE_OFST 0 3341 #define MC_CMD_DRV_ATTACH_IN_NEW_STATE_LEN 4 3342 #define MC_CMD_DRV_ATTACH_OFST 0 3343 #define MC_CMD_DRV_ATTACH_LBN 0 3344 #define MC_CMD_DRV_ATTACH_WIDTH 1 3345 #define MC_CMD_DRV_ATTACH_IN_ATTACH_OFST 0 3346 #define MC_CMD_DRV_ATTACH_IN_ATTACH_LBN 0 3347 #define MC_CMD_DRV_ATTACH_IN_ATTACH_WIDTH 1 3348 #define MC_CMD_DRV_PREBOOT_OFST 0 3349 #define MC_CMD_DRV_PREBOOT_LBN 1 3350 #define MC_CMD_DRV_PREBOOT_WIDTH 1 3351 #define MC_CMD_DRV_ATTACH_IN_PREBOOT_OFST 0 3352 #define MC_CMD_DRV_ATTACH_IN_PREBOOT_LBN 1 3353 #define MC_CMD_DRV_ATTACH_IN_PREBOOT_WIDTH 1 3354 #define MC_CMD_DRV_ATTACH_IN_SUBVARIANT_AWARE_OFST 0 3355 #define MC_CMD_DRV_ATTACH_IN_SUBVARIANT_AWARE_LBN 2 3356 #define MC_CMD_DRV_ATTACH_IN_SUBVARIANT_AWARE_WIDTH 1 3357 #define MC_CMD_DRV_ATTACH_IN_WANT_VI_SPREADING_OFST 0 3358 #define MC_CMD_DRV_ATTACH_IN_WANT_VI_SPREADING_LBN 3 3359 #define MC_CMD_DRV_ATTACH_IN_WANT_VI_SPREADING_WIDTH 1 3360 #define MC_CMD_DRV_ATTACH_IN_WANT_V2_LINKCHANGES_OFST 0 3361 #define MC_CMD_DRV_ATTACH_IN_WANT_V2_LINKCHANGES_LBN 4 3362 #define MC_CMD_DRV_ATTACH_IN_WANT_V2_LINKCHANGES_WIDTH 1 3363 #define MC_CMD_DRV_ATTACH_IN_WANT_RX_VI_SPREADING_INHIBIT_OFST 0 3364 #define MC_CMD_DRV_ATTACH_IN_WANT_RX_VI_SPREADING_INHIBIT_LBN 5 3365 #define MC_CMD_DRV_ATTACH_IN_WANT_RX_VI_SPREADING_INHIBIT_WIDTH 1 3366 #define MC_CMD_DRV_ATTACH_IN_WANT_TX_ONLY_SPREADING_OFST 0 3367 #define MC_CMD_DRV_ATTACH_IN_WANT_TX_ONLY_SPREADING_LBN 5 3368 #define MC_CMD_DRV_ATTACH_IN_WANT_TX_ONLY_SPREADING_WIDTH 1 3369 /* 1 to set new state, or 0 to just report the existing state */ 3370 #define MC_CMD_DRV_ATTACH_IN_UPDATE_OFST 4 3371 #define MC_CMD_DRV_ATTACH_IN_UPDATE_LEN 4 3372 /* preferred datapath firmware (for Huntington; ignored for Siena) */ 3373 #define MC_CMD_DRV_ATTACH_IN_FIRMWARE_ID_OFST 8 3374 #define MC_CMD_DRV_ATTACH_IN_FIRMWARE_ID_LEN 4 3375 /* enum: Prefer to use full featured firmware */ 3376 #define MC_CMD_FW_FULL_FEATURED 0x0 3377 /* enum: Prefer to use firmware with fewer features but lower latency */ 3378 #define MC_CMD_FW_LOW_LATENCY 0x1 3379 /* enum: Prefer to use firmware for SolarCapture packed stream mode */ 3380 #define MC_CMD_FW_PACKED_STREAM 0x2 3381 /* enum: Prefer to use firmware with fewer features and simpler TX event 3382 * batching but higher TX packet rate 3383 */ 3384 #define MC_CMD_FW_HIGH_TX_RATE 0x3 3385 /* enum: Reserved value */ 3386 #define MC_CMD_FW_PACKED_STREAM_HASH_MODE_1 0x4 3387 /* enum: Prefer to use firmware with additional "rules engine" filtering 3388 * support 3389 */ 3390 #define MC_CMD_FW_RULES_ENGINE 0x5 3391 /* enum: Prefer to use firmware with additional DPDK support */ 3392 #define MC_CMD_FW_DPDK 0x6 3393 /* enum: Prefer to use "l3xudp" custom datapath firmware (see SF-119495-PD and 3394 * bug69716) 3395 */ 3396 #define MC_CMD_FW_L3XUDP 0x7 3397 /* enum: Requests that the MC keep whatever datapath firmware is currently 3398 * running. It's used for test purposes, where we want to be able to shmboot 3399 * special test firmware variants. This option is only recognised in eftest 3400 * (i.e. non-production) builds. 3401 */ 3402 #define MC_CMD_FW_KEEP_CURRENT_EFTEST_ONLY 0xfffffffe 3403 /* enum: Only this option is allowed for non-admin functions */ 3404 #define MC_CMD_FW_DONT_CARE 0xffffffff 3405 3406 /* MC_CMD_DRV_ATTACH_IN_V2 msgrequest: Updated DRV_ATTACH to include driver 3407 * version 3408 */ 3409 #define MC_CMD_DRV_ATTACH_IN_V2_LEN 32 3410 /* new state to set if UPDATE=1 */ 3411 #define MC_CMD_DRV_ATTACH_IN_V2_NEW_STATE_OFST 0 3412 #define MC_CMD_DRV_ATTACH_IN_V2_NEW_STATE_LEN 4 3413 /* MC_CMD_DRV_ATTACH_OFST 0 */ 3414 /* MC_CMD_DRV_ATTACH_LBN 0 */ 3415 /* MC_CMD_DRV_ATTACH_WIDTH 1 */ 3416 #define MC_CMD_DRV_ATTACH_IN_V2_ATTACH_OFST 0 3417 #define MC_CMD_DRV_ATTACH_IN_V2_ATTACH_LBN 0 3418 #define MC_CMD_DRV_ATTACH_IN_V2_ATTACH_WIDTH 1 3419 /* MC_CMD_DRV_PREBOOT_OFST 0 */ 3420 /* MC_CMD_DRV_PREBOOT_LBN 1 */ 3421 /* MC_CMD_DRV_PREBOOT_WIDTH 1 */ 3422 #define MC_CMD_DRV_ATTACH_IN_V2_PREBOOT_OFST 0 3423 #define MC_CMD_DRV_ATTACH_IN_V2_PREBOOT_LBN 1 3424 #define MC_CMD_DRV_ATTACH_IN_V2_PREBOOT_WIDTH 1 3425 #define MC_CMD_DRV_ATTACH_IN_V2_SUBVARIANT_AWARE_OFST 0 3426 #define MC_CMD_DRV_ATTACH_IN_V2_SUBVARIANT_AWARE_LBN 2 3427 #define MC_CMD_DRV_ATTACH_IN_V2_SUBVARIANT_AWARE_WIDTH 1 3428 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_VI_SPREADING_OFST 0 3429 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_VI_SPREADING_LBN 3 3430 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_VI_SPREADING_WIDTH 1 3431 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_V2_LINKCHANGES_OFST 0 3432 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_V2_LINKCHANGES_LBN 4 3433 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_V2_LINKCHANGES_WIDTH 1 3434 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_RX_VI_SPREADING_INHIBIT_OFST 0 3435 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_RX_VI_SPREADING_INHIBIT_LBN 5 3436 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_RX_VI_SPREADING_INHIBIT_WIDTH 1 3437 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_TX_ONLY_SPREADING_OFST 0 3438 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_TX_ONLY_SPREADING_LBN 5 3439 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_TX_ONLY_SPREADING_WIDTH 1 3440 /* 1 to set new state, or 0 to just report the existing state */ 3441 #define MC_CMD_DRV_ATTACH_IN_V2_UPDATE_OFST 4 3442 #define MC_CMD_DRV_ATTACH_IN_V2_UPDATE_LEN 4 3443 /* preferred datapath firmware (for Huntington; ignored for Siena) */ 3444 #define MC_CMD_DRV_ATTACH_IN_V2_FIRMWARE_ID_OFST 8 3445 #define MC_CMD_DRV_ATTACH_IN_V2_FIRMWARE_ID_LEN 4 3446 /* enum: Prefer to use full featured firmware */ 3447 /* MC_CMD_FW_FULL_FEATURED 0x0 */ 3448 /* enum: Prefer to use firmware with fewer features but lower latency */ 3449 /* MC_CMD_FW_LOW_LATENCY 0x1 */ 3450 /* enum: Prefer to use firmware for SolarCapture packed stream mode */ 3451 /* MC_CMD_FW_PACKED_STREAM 0x2 */ 3452 /* enum: Prefer to use firmware with fewer features and simpler TX event 3453 * batching but higher TX packet rate 3454 */ 3455 /* MC_CMD_FW_HIGH_TX_RATE 0x3 */ 3456 /* enum: Reserved value */ 3457 /* MC_CMD_FW_PACKED_STREAM_HASH_MODE_1 0x4 */ 3458 /* enum: Prefer to use firmware with additional "rules engine" filtering 3459 * support 3460 */ 3461 /* MC_CMD_FW_RULES_ENGINE 0x5 */ 3462 /* enum: Prefer to use firmware with additional DPDK support */ 3463 /* MC_CMD_FW_DPDK 0x6 */ 3464 /* enum: Prefer to use "l3xudp" custom datapath firmware (see SF-119495-PD and 3465 * bug69716) 3466 */ 3467 /* MC_CMD_FW_L3XUDP 0x7 */ 3468 /* enum: Requests that the MC keep whatever datapath firmware is currently 3469 * running. It's used for test purposes, where we want to be able to shmboot 3470 * special test firmware variants. This option is only recognised in eftest 3471 * (i.e. non-production) builds. 3472 */ 3473 /* MC_CMD_FW_KEEP_CURRENT_EFTEST_ONLY 0xfffffffe */ 3474 /* enum: Only this option is allowed for non-admin functions */ 3475 /* MC_CMD_FW_DONT_CARE 0xffffffff */ 3476 /* Version of the driver to be reported by management protocols (e.g. NC-SI) 3477 * handled by the NIC. This is a zero-terminated ASCII string. 3478 */ 3479 #define MC_CMD_DRV_ATTACH_IN_V2_DRIVER_VERSION_OFST 12 3480 #define MC_CMD_DRV_ATTACH_IN_V2_DRIVER_VERSION_LEN 20 3481 3482 /* MC_CMD_DRV_ATTACH_OUT msgresponse */ 3483 #define MC_CMD_DRV_ATTACH_OUT_LEN 4 3484 /* previous or existing state, see the bitmask at NEW_STATE */ 3485 #define MC_CMD_DRV_ATTACH_OUT_OLD_STATE_OFST 0 3486 #define MC_CMD_DRV_ATTACH_OUT_OLD_STATE_LEN 4 3487 3488 /* MC_CMD_DRV_ATTACH_EXT_OUT msgresponse */ 3489 #define MC_CMD_DRV_ATTACH_EXT_OUT_LEN 8 3490 /* previous or existing state, see the bitmask at NEW_STATE */ 3491 #define MC_CMD_DRV_ATTACH_EXT_OUT_OLD_STATE_OFST 0 3492 #define MC_CMD_DRV_ATTACH_EXT_OUT_OLD_STATE_LEN 4 3493 /* Flags associated with this function */ 3494 #define MC_CMD_DRV_ATTACH_EXT_OUT_FUNC_FLAGS_OFST 4 3495 #define MC_CMD_DRV_ATTACH_EXT_OUT_FUNC_FLAGS_LEN 4 3496 /* enum: Labels the lowest-numbered function visible to the OS */ 3497 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_PRIMARY 0x0 3498 /* enum: The function can control the link state of the physical port it is 3499 * bound to. 3500 */ 3501 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_LINKCTRL 0x1 3502 /* enum: The function can perform privileged operations */ 3503 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_TRUSTED 0x2 3504 /* enum: The function does not have an active port associated with it. The port 3505 * refers to the Sorrento external FPGA port. 3506 */ 3507 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_NO_ACTIVE_PORT 0x3 3508 /* enum: If set, indicates that VI spreading is currently enabled. Will always 3509 * indicate the current state, regardless of the value in the WANT_VI_SPREADING 3510 * input. 3511 */ 3512 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_VI_SPREADING_ENABLED 0x4 3513 /* enum: Used during development only. Should no longer be used. */ 3514 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_RX_VI_SPREADING_INHIBITED 0x5 3515 /* enum: If set, indicates that TX only spreading is enabled. Even-numbered 3516 * TXQs will use one engine, and odd-numbered TXQs will use the other. This 3517 * also has the effect that only even-numbered RXQs will receive traffic. 3518 */ 3519 #define MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_TX_ONLY_VI_SPREADING_ENABLED 0x5 3520 3521 3522 /***********************************/ 3523 /* MC_CMD_SHMUART 3524 * Route UART output to circular buffer in shared memory instead. 3525 */ 3526 #define MC_CMD_SHMUART 0x1f 3527 3528 /* MC_CMD_SHMUART_IN msgrequest */ 3529 #define MC_CMD_SHMUART_IN_LEN 4 3530 /* ??? */ 3531 #define MC_CMD_SHMUART_IN_FLAG_OFST 0 3532 #define MC_CMD_SHMUART_IN_FLAG_LEN 4 3533 3534 /* MC_CMD_SHMUART_OUT msgresponse */ 3535 #define MC_CMD_SHMUART_OUT_LEN 0 3536 3537 3538 /***********************************/ 3539 /* MC_CMD_PORT_RESET 3540 * Generic per-port reset. There is no equivalent for per-board reset. Locks 3541 * required: None; Return code: 0, ETIME. NOTE: This command is deprecated - 3542 * use MC_CMD_ENTITY_RESET instead. 3543 */ 3544 #define MC_CMD_PORT_RESET 0x20 3545 #undef MC_CMD_0x20_PRIVILEGE_CTG 3546 3547 #define MC_CMD_0x20_PRIVILEGE_CTG SRIOV_CTG_GENERAL 3548 3549 /* MC_CMD_PORT_RESET_IN msgrequest */ 3550 #define MC_CMD_PORT_RESET_IN_LEN 0 3551 3552 /* MC_CMD_PORT_RESET_OUT msgresponse */ 3553 #define MC_CMD_PORT_RESET_OUT_LEN 0 3554 3555 3556 /***********************************/ 3557 /* MC_CMD_ENTITY_RESET 3558 * Generic per-resource reset. There is no equivalent for per-board reset. 3559 * Locks required: None; Return code: 0, ETIME. NOTE: This command is an 3560 * extended version of the deprecated MC_CMD_PORT_RESET with added fields. 3561 */ 3562 #define MC_CMD_ENTITY_RESET 0x20 3563 /* MC_CMD_0x20_PRIVILEGE_CTG SRIOV_CTG_GENERAL */ 3564 3565 /* MC_CMD_ENTITY_RESET_IN msgrequest */ 3566 #define MC_CMD_ENTITY_RESET_IN_LEN 4 3567 /* Optional flags field. Omitting this will perform a "legacy" reset action 3568 * (TBD). 3569 */ 3570 #define MC_CMD_ENTITY_RESET_IN_FLAG_OFST 0 3571 #define MC_CMD_ENTITY_RESET_IN_FLAG_LEN 4 3572 #define MC_CMD_ENTITY_RESET_IN_FUNCTION_RESOURCE_RESET_OFST 0 3573 #define MC_CMD_ENTITY_RESET_IN_FUNCTION_RESOURCE_RESET_LBN 0 3574 #define MC_CMD_ENTITY_RESET_IN_FUNCTION_RESOURCE_RESET_WIDTH 1 3575 3576 /* MC_CMD_ENTITY_RESET_OUT msgresponse */ 3577 #define MC_CMD_ENTITY_RESET_OUT_LEN 0 3578 3579 3580 /***********************************/ 3581 /* MC_CMD_PCIE_CREDITS 3582 * Read instantaneous and minimum flow control thresholds. 3583 */ 3584 #define MC_CMD_PCIE_CREDITS 0x21 3585 3586 /* MC_CMD_PCIE_CREDITS_IN msgrequest */ 3587 #define MC_CMD_PCIE_CREDITS_IN_LEN 8 3588 /* poll period. 0 is disabled */ 3589 #define MC_CMD_PCIE_CREDITS_IN_POLL_PERIOD_OFST 0 3590 #define MC_CMD_PCIE_CREDITS_IN_POLL_PERIOD_LEN 4 3591 /* wipe statistics */ 3592 #define MC_CMD_PCIE_CREDITS_IN_WIPE_OFST 4 3593 #define MC_CMD_PCIE_CREDITS_IN_WIPE_LEN 4 3594 3595 /* MC_CMD_PCIE_CREDITS_OUT msgresponse */ 3596 #define MC_CMD_PCIE_CREDITS_OUT_LEN 16 3597 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_P_HDR_OFST 0 3598 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_P_HDR_LEN 2 3599 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_P_DATA_OFST 2 3600 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_P_DATA_LEN 2 3601 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_NP_HDR_OFST 4 3602 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_NP_HDR_LEN 2 3603 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_NP_DATA_OFST 6 3604 #define MC_CMD_PCIE_CREDITS_OUT_CURRENT_NP_DATA_LEN 2 3605 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_P_HDR_OFST 8 3606 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_P_HDR_LEN 2 3607 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_P_DATA_OFST 10 3608 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_P_DATA_LEN 2 3609 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_NP_HDR_OFST 12 3610 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_NP_HDR_LEN 2 3611 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_NP_DATA_OFST 14 3612 #define MC_CMD_PCIE_CREDITS_OUT_MINIMUM_NP_DATA_LEN 2 3613 3614 3615 /***********************************/ 3616 /* MC_CMD_RXD_MONITOR 3617 * Get histogram of RX queue fill level. 3618 */ 3619 #define MC_CMD_RXD_MONITOR 0x22 3620 3621 /* MC_CMD_RXD_MONITOR_IN msgrequest */ 3622 #define MC_CMD_RXD_MONITOR_IN_LEN 12 3623 #define MC_CMD_RXD_MONITOR_IN_QID_OFST 0 3624 #define MC_CMD_RXD_MONITOR_IN_QID_LEN 4 3625 #define MC_CMD_RXD_MONITOR_IN_POLL_PERIOD_OFST 4 3626 #define MC_CMD_RXD_MONITOR_IN_POLL_PERIOD_LEN 4 3627 #define MC_CMD_RXD_MONITOR_IN_WIPE_OFST 8 3628 #define MC_CMD_RXD_MONITOR_IN_WIPE_LEN 4 3629 3630 /* MC_CMD_RXD_MONITOR_OUT msgresponse */ 3631 #define MC_CMD_RXD_MONITOR_OUT_LEN 80 3632 #define MC_CMD_RXD_MONITOR_OUT_QID_OFST 0 3633 #define MC_CMD_RXD_MONITOR_OUT_QID_LEN 4 3634 #define MC_CMD_RXD_MONITOR_OUT_RING_FILL_OFST 4 3635 #define MC_CMD_RXD_MONITOR_OUT_RING_FILL_LEN 4 3636 #define MC_CMD_RXD_MONITOR_OUT_CACHE_FILL_OFST 8 3637 #define MC_CMD_RXD_MONITOR_OUT_CACHE_FILL_LEN 4 3638 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_1_OFST 12 3639 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_1_LEN 4 3640 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_2_OFST 16 3641 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_2_LEN 4 3642 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_4_OFST 20 3643 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_4_LEN 4 3644 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_8_OFST 24 3645 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_8_LEN 4 3646 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_16_OFST 28 3647 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_16_LEN 4 3648 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_32_OFST 32 3649 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_32_LEN 4 3650 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_64_OFST 36 3651 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_64_LEN 4 3652 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_128_OFST 40 3653 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_128_LEN 4 3654 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_256_OFST 44 3655 #define MC_CMD_RXD_MONITOR_OUT_RING_LT_256_LEN 4 3656 #define MC_CMD_RXD_MONITOR_OUT_RING_GE_256_OFST 48 3657 #define MC_CMD_RXD_MONITOR_OUT_RING_GE_256_LEN 4 3658 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_1_OFST 52 3659 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_1_LEN 4 3660 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_2_OFST 56 3661 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_2_LEN 4 3662 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_4_OFST 60 3663 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_4_LEN 4 3664 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_8_OFST 64 3665 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_8_LEN 4 3666 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_16_OFST 68 3667 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_16_LEN 4 3668 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_32_OFST 72 3669 #define MC_CMD_RXD_MONITOR_OUT_CACHE_LT_32_LEN 4 3670 #define MC_CMD_RXD_MONITOR_OUT_CACHE_GE_32_OFST 76 3671 #define MC_CMD_RXD_MONITOR_OUT_CACHE_GE_32_LEN 4 3672 3673 3674 /***********************************/ 3675 /* MC_CMD_PUTS 3676 * Copy the given ASCII string out onto UART and/or out of the network port. 3677 */ 3678 #define MC_CMD_PUTS 0x23 3679 #undef MC_CMD_0x23_PRIVILEGE_CTG 3680 3681 #define MC_CMD_0x23_PRIVILEGE_CTG SRIOV_CTG_INSECURE 3682 3683 /* MC_CMD_PUTS_IN msgrequest */ 3684 #define MC_CMD_PUTS_IN_LENMIN 13 3685 #define MC_CMD_PUTS_IN_LENMAX 252 3686 #define MC_CMD_PUTS_IN_LENMAX_MCDI2 1020 3687 #define MC_CMD_PUTS_IN_LEN(num) (12+1*(num)) 3688 #define MC_CMD_PUTS_IN_STRING_NUM(len) (((len)-12)/1) 3689 #define MC_CMD_PUTS_IN_DEST_OFST 0 3690 #define MC_CMD_PUTS_IN_DEST_LEN 4 3691 #define MC_CMD_PUTS_IN_UART_OFST 0 3692 #define MC_CMD_PUTS_IN_UART_LBN 0 3693 #define MC_CMD_PUTS_IN_UART_WIDTH 1 3694 #define MC_CMD_PUTS_IN_PORT_OFST 0 3695 #define MC_CMD_PUTS_IN_PORT_LBN 1 3696 #define MC_CMD_PUTS_IN_PORT_WIDTH 1 3697 #define MC_CMD_PUTS_IN_DHOST_OFST 4 3698 #define MC_CMD_PUTS_IN_DHOST_LEN 6 3699 #define MC_CMD_PUTS_IN_STRING_OFST 12 3700 #define MC_CMD_PUTS_IN_STRING_LEN 1 3701 #define MC_CMD_PUTS_IN_STRING_MINNUM 1 3702 #define MC_CMD_PUTS_IN_STRING_MAXNUM 240 3703 #define MC_CMD_PUTS_IN_STRING_MAXNUM_MCDI2 1008 3704 3705 /* MC_CMD_PUTS_OUT msgresponse */ 3706 #define MC_CMD_PUTS_OUT_LEN 0 3707 3708 3709 /***********************************/ 3710 /* MC_CMD_GET_PHY_CFG 3711 * Report PHY configuration. This guarantees to succeed even if the PHY is in a 3712 * 'zombie' state. Locks required: None 3713 */ 3714 #define MC_CMD_GET_PHY_CFG 0x24 3715 #undef MC_CMD_0x24_PRIVILEGE_CTG 3716 3717 #define MC_CMD_0x24_PRIVILEGE_CTG SRIOV_CTG_GENERAL 3718 3719 /* MC_CMD_GET_PHY_CFG_IN msgrequest */ 3720 #define MC_CMD_GET_PHY_CFG_IN_LEN 0 3721 3722 /* MC_CMD_GET_PHY_CFG_OUT msgresponse */ 3723 #define MC_CMD_GET_PHY_CFG_OUT_LEN 72 3724 /* flags */ 3725 #define MC_CMD_GET_PHY_CFG_OUT_FLAGS_OFST 0 3726 #define MC_CMD_GET_PHY_CFG_OUT_FLAGS_LEN 4 3727 #define MC_CMD_GET_PHY_CFG_OUT_PRESENT_OFST 0 3728 #define MC_CMD_GET_PHY_CFG_OUT_PRESENT_LBN 0 3729 #define MC_CMD_GET_PHY_CFG_OUT_PRESENT_WIDTH 1 3730 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_SHORT_OFST 0 3731 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_SHORT_LBN 1 3732 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_SHORT_WIDTH 1 3733 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_LONG_OFST 0 3734 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_LONG_LBN 2 3735 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_LONG_WIDTH 1 3736 #define MC_CMD_GET_PHY_CFG_OUT_LOWPOWER_OFST 0 3737 #define MC_CMD_GET_PHY_CFG_OUT_LOWPOWER_LBN 3 3738 #define MC_CMD_GET_PHY_CFG_OUT_LOWPOWER_WIDTH 1 3739 #define MC_CMD_GET_PHY_CFG_OUT_POWEROFF_OFST 0 3740 #define MC_CMD_GET_PHY_CFG_OUT_POWEROFF_LBN 4 3741 #define MC_CMD_GET_PHY_CFG_OUT_POWEROFF_WIDTH 1 3742 #define MC_CMD_GET_PHY_CFG_OUT_TXDIS_OFST 0 3743 #define MC_CMD_GET_PHY_CFG_OUT_TXDIS_LBN 5 3744 #define MC_CMD_GET_PHY_CFG_OUT_TXDIS_WIDTH 1 3745 #define MC_CMD_GET_PHY_CFG_OUT_BIST_OFST 0 3746 #define MC_CMD_GET_PHY_CFG_OUT_BIST_LBN 6 3747 #define MC_CMD_GET_PHY_CFG_OUT_BIST_WIDTH 1 3748 /* ?? */ 3749 #define MC_CMD_GET_PHY_CFG_OUT_TYPE_OFST 4 3750 #define MC_CMD_GET_PHY_CFG_OUT_TYPE_LEN 4 3751 /* Bitmask of supported capabilities */ 3752 #define MC_CMD_GET_PHY_CFG_OUT_SUPPORTED_CAP_OFST 8 3753 #define MC_CMD_GET_PHY_CFG_OUT_SUPPORTED_CAP_LEN 4 3754 #define MC_CMD_PHY_CAP_10HDX_OFST 8 3755 #define MC_CMD_PHY_CAP_10HDX_LBN 1 3756 #define MC_CMD_PHY_CAP_10HDX_WIDTH 1 3757 #define MC_CMD_PHY_CAP_10FDX_OFST 8 3758 #define MC_CMD_PHY_CAP_10FDX_LBN 2 3759 #define MC_CMD_PHY_CAP_10FDX_WIDTH 1 3760 #define MC_CMD_PHY_CAP_100HDX_OFST 8 3761 #define MC_CMD_PHY_CAP_100HDX_LBN 3 3762 #define MC_CMD_PHY_CAP_100HDX_WIDTH 1 3763 #define MC_CMD_PHY_CAP_100FDX_OFST 8 3764 #define MC_CMD_PHY_CAP_100FDX_LBN 4 3765 #define MC_CMD_PHY_CAP_100FDX_WIDTH 1 3766 #define MC_CMD_PHY_CAP_1000HDX_OFST 8 3767 #define MC_CMD_PHY_CAP_1000HDX_LBN 5 3768 #define MC_CMD_PHY_CAP_1000HDX_WIDTH 1 3769 #define MC_CMD_PHY_CAP_1000FDX_OFST 8 3770 #define MC_CMD_PHY_CAP_1000FDX_LBN 6 3771 #define MC_CMD_PHY_CAP_1000FDX_WIDTH 1 3772 #define MC_CMD_PHY_CAP_10000FDX_OFST 8 3773 #define MC_CMD_PHY_CAP_10000FDX_LBN 7 3774 #define MC_CMD_PHY_CAP_10000FDX_WIDTH 1 3775 #define MC_CMD_PHY_CAP_PAUSE_OFST 8 3776 #define MC_CMD_PHY_CAP_PAUSE_LBN 8 3777 #define MC_CMD_PHY_CAP_PAUSE_WIDTH 1 3778 #define MC_CMD_PHY_CAP_ASYM_OFST 8 3779 #define MC_CMD_PHY_CAP_ASYM_LBN 9 3780 #define MC_CMD_PHY_CAP_ASYM_WIDTH 1 3781 #define MC_CMD_PHY_CAP_AN_OFST 8 3782 #define MC_CMD_PHY_CAP_AN_LBN 10 3783 #define MC_CMD_PHY_CAP_AN_WIDTH 1 3784 #define MC_CMD_PHY_CAP_40000FDX_OFST 8 3785 #define MC_CMD_PHY_CAP_40000FDX_LBN 11 3786 #define MC_CMD_PHY_CAP_40000FDX_WIDTH 1 3787 #define MC_CMD_PHY_CAP_DDM_OFST 8 3788 #define MC_CMD_PHY_CAP_DDM_LBN 12 3789 #define MC_CMD_PHY_CAP_DDM_WIDTH 1 3790 #define MC_CMD_PHY_CAP_100000FDX_OFST 8 3791 #define MC_CMD_PHY_CAP_100000FDX_LBN 13 3792 #define MC_CMD_PHY_CAP_100000FDX_WIDTH 1 3793 #define MC_CMD_PHY_CAP_25000FDX_OFST 8 3794 #define MC_CMD_PHY_CAP_25000FDX_LBN 14 3795 #define MC_CMD_PHY_CAP_25000FDX_WIDTH 1 3796 #define MC_CMD_PHY_CAP_50000FDX_OFST 8 3797 #define MC_CMD_PHY_CAP_50000FDX_LBN 15 3798 #define MC_CMD_PHY_CAP_50000FDX_WIDTH 1 3799 #define MC_CMD_PHY_CAP_BASER_FEC_OFST 8 3800 #define MC_CMD_PHY_CAP_BASER_FEC_LBN 16 3801 #define MC_CMD_PHY_CAP_BASER_FEC_WIDTH 1 3802 #define MC_CMD_PHY_CAP_BASER_FEC_REQUESTED_OFST 8 3803 #define MC_CMD_PHY_CAP_BASER_FEC_REQUESTED_LBN 17 3804 #define MC_CMD_PHY_CAP_BASER_FEC_REQUESTED_WIDTH 1 3805 #define MC_CMD_PHY_CAP_RS_FEC_OFST 8 3806 #define MC_CMD_PHY_CAP_RS_FEC_LBN 18 3807 #define MC_CMD_PHY_CAP_RS_FEC_WIDTH 1 3808 #define MC_CMD_PHY_CAP_RS_FEC_REQUESTED_OFST 8 3809 #define MC_CMD_PHY_CAP_RS_FEC_REQUESTED_LBN 19 3810 #define MC_CMD_PHY_CAP_RS_FEC_REQUESTED_WIDTH 1 3811 #define MC_CMD_PHY_CAP_25G_BASER_FEC_OFST 8 3812 #define MC_CMD_PHY_CAP_25G_BASER_FEC_LBN 20 3813 #define MC_CMD_PHY_CAP_25G_BASER_FEC_WIDTH 1 3814 #define MC_CMD_PHY_CAP_25G_BASER_FEC_REQUESTED_OFST 8 3815 #define MC_CMD_PHY_CAP_25G_BASER_FEC_REQUESTED_LBN 21 3816 #define MC_CMD_PHY_CAP_25G_BASER_FEC_REQUESTED_WIDTH 1 3817 /* ?? */ 3818 #define MC_CMD_GET_PHY_CFG_OUT_CHANNEL_OFST 12 3819 #define MC_CMD_GET_PHY_CFG_OUT_CHANNEL_LEN 4 3820 /* ?? */ 3821 #define MC_CMD_GET_PHY_CFG_OUT_PRT_OFST 16 3822 #define MC_CMD_GET_PHY_CFG_OUT_PRT_LEN 4 3823 /* ?? */ 3824 #define MC_CMD_GET_PHY_CFG_OUT_STATS_MASK_OFST 20 3825 #define MC_CMD_GET_PHY_CFG_OUT_STATS_MASK_LEN 4 3826 /* ?? */ 3827 #define MC_CMD_GET_PHY_CFG_OUT_NAME_OFST 24 3828 #define MC_CMD_GET_PHY_CFG_OUT_NAME_LEN 20 3829 /* ?? */ 3830 #define MC_CMD_GET_PHY_CFG_OUT_MEDIA_TYPE_OFST 44 3831 #define MC_CMD_GET_PHY_CFG_OUT_MEDIA_TYPE_LEN 4 3832 /* enum: Xaui. */ 3833 #define MC_CMD_MEDIA_XAUI 0x1 3834 /* enum: CX4. */ 3835 #define MC_CMD_MEDIA_CX4 0x2 3836 /* enum: KX4. */ 3837 #define MC_CMD_MEDIA_KX4 0x3 3838 /* enum: XFP Far. */ 3839 #define MC_CMD_MEDIA_XFP 0x4 3840 /* enum: SFP+. */ 3841 #define MC_CMD_MEDIA_SFP_PLUS 0x5 3842 /* enum: 10GBaseT. */ 3843 #define MC_CMD_MEDIA_BASE_T 0x6 3844 /* enum: QSFP+. */ 3845 #define MC_CMD_MEDIA_QSFP_PLUS 0x7 3846 #define MC_CMD_GET_PHY_CFG_OUT_MMD_MASK_OFST 48 3847 #define MC_CMD_GET_PHY_CFG_OUT_MMD_MASK_LEN 4 3848 /* enum: Native clause 22 */ 3849 #define MC_CMD_MMD_CLAUSE22 0x0 3850 #define MC_CMD_MMD_CLAUSE45_PMAPMD 0x1 /* enum */ 3851 #define MC_CMD_MMD_CLAUSE45_WIS 0x2 /* enum */ 3852 #define MC_CMD_MMD_CLAUSE45_PCS 0x3 /* enum */ 3853 #define MC_CMD_MMD_CLAUSE45_PHYXS 0x4 /* enum */ 3854 #define MC_CMD_MMD_CLAUSE45_DTEXS 0x5 /* enum */ 3855 #define MC_CMD_MMD_CLAUSE45_TC 0x6 /* enum */ 3856 #define MC_CMD_MMD_CLAUSE45_AN 0x7 /* enum */ 3857 /* enum: Clause22 proxied over clause45 by PHY. */ 3858 #define MC_CMD_MMD_CLAUSE45_C22EXT 0x1d 3859 #define MC_CMD_MMD_CLAUSE45_VEND1 0x1e /* enum */ 3860 #define MC_CMD_MMD_CLAUSE45_VEND2 0x1f /* enum */ 3861 #define MC_CMD_GET_PHY_CFG_OUT_REVISION_OFST 52 3862 #define MC_CMD_GET_PHY_CFG_OUT_REVISION_LEN 20 3863 3864 3865 /***********************************/ 3866 /* MC_CMD_START_BIST 3867 * Start a BIST test on the PHY. Locks required: PHY_LOCK if doing a PHY BIST 3868 * Return code: 0, EINVAL, EACCES (if PHY_LOCK is not held) 3869 */ 3870 #define MC_CMD_START_BIST 0x25 3871 #undef MC_CMD_0x25_PRIVILEGE_CTG 3872 3873 #define MC_CMD_0x25_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 3874 3875 /* MC_CMD_START_BIST_IN msgrequest */ 3876 #define MC_CMD_START_BIST_IN_LEN 4 3877 /* Type of test. */ 3878 #define MC_CMD_START_BIST_IN_TYPE_OFST 0 3879 #define MC_CMD_START_BIST_IN_TYPE_LEN 4 3880 /* enum: Run the PHY's short cable BIST. */ 3881 #define MC_CMD_PHY_BIST_CABLE_SHORT 0x1 3882 /* enum: Run the PHY's long cable BIST. */ 3883 #define MC_CMD_PHY_BIST_CABLE_LONG 0x2 3884 /* enum: Run BIST on the currently selected BPX Serdes (XAUI or XFI) . */ 3885 #define MC_CMD_BPX_SERDES_BIST 0x3 3886 /* enum: Run the MC loopback tests. */ 3887 #define MC_CMD_MC_LOOPBACK_BIST 0x4 3888 /* enum: Run the PHY's standard BIST. */ 3889 #define MC_CMD_PHY_BIST 0x5 3890 /* enum: Run MC RAM test. */ 3891 #define MC_CMD_MC_MEM_BIST 0x6 3892 /* enum: Run Port RAM test. */ 3893 #define MC_CMD_PORT_MEM_BIST 0x7 3894 /* enum: Run register test. */ 3895 #define MC_CMD_REG_BIST 0x8 3896 3897 /* MC_CMD_START_BIST_OUT msgresponse */ 3898 #define MC_CMD_START_BIST_OUT_LEN 0 3899 3900 3901 /***********************************/ 3902 /* MC_CMD_POLL_BIST 3903 * Poll for BIST completion. Returns a single status code, and optionally some 3904 * PHY specific bist output. The driver should only consume the BIST output 3905 * after validating OUTLEN and MC_CMD_GET_PHY_CFG.TYPE. If a driver can't 3906 * successfully parse the BIST output, it should still respect the pass/Fail in 3907 * OUT.RESULT. Locks required: PHY_LOCK if doing a PHY BIST. Return code: 0, 3908 * EACCES (if PHY_LOCK is not held). 3909 */ 3910 #define MC_CMD_POLL_BIST 0x26 3911 #undef MC_CMD_0x26_PRIVILEGE_CTG 3912 3913 #define MC_CMD_0x26_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 3914 3915 /* MC_CMD_POLL_BIST_IN msgrequest */ 3916 #define MC_CMD_POLL_BIST_IN_LEN 0 3917 3918 /* MC_CMD_POLL_BIST_OUT msgresponse */ 3919 #define MC_CMD_POLL_BIST_OUT_LEN 8 3920 /* result */ 3921 #define MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 3922 #define MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 3923 /* enum: Running. */ 3924 #define MC_CMD_POLL_BIST_RUNNING 0x1 3925 /* enum: Passed. */ 3926 #define MC_CMD_POLL_BIST_PASSED 0x2 3927 /* enum: Failed. */ 3928 #define MC_CMD_POLL_BIST_FAILED 0x3 3929 /* enum: Timed-out. */ 3930 #define MC_CMD_POLL_BIST_TIMEOUT 0x4 3931 #define MC_CMD_POLL_BIST_OUT_PRIVATE_OFST 4 3932 #define MC_CMD_POLL_BIST_OUT_PRIVATE_LEN 4 3933 3934 /* MC_CMD_POLL_BIST_OUT_SFT9001 msgresponse */ 3935 #define MC_CMD_POLL_BIST_OUT_SFT9001_LEN 36 3936 /* result */ 3937 /* MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 */ 3938 /* MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 */ 3939 /* Enum values, see field(s): */ 3940 /* MC_CMD_POLL_BIST_OUT/MC_CMD_POLL_BIST_OUT_RESULT */ 3941 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_A_OFST 4 3942 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_A_LEN 4 3943 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_B_OFST 8 3944 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_B_LEN 4 3945 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_C_OFST 12 3946 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_C_LEN 4 3947 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_D_OFST 16 3948 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_D_LEN 4 3949 /* Status of each channel A */ 3950 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_A_OFST 20 3951 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_A_LEN 4 3952 /* enum: Ok. */ 3953 #define MC_CMD_POLL_BIST_SFT9001_PAIR_OK 0x1 3954 /* enum: Open. */ 3955 #define MC_CMD_POLL_BIST_SFT9001_PAIR_OPEN 0x2 3956 /* enum: Intra-pair short. */ 3957 #define MC_CMD_POLL_BIST_SFT9001_INTRA_PAIR_SHORT 0x3 3958 /* enum: Inter-pair short. */ 3959 #define MC_CMD_POLL_BIST_SFT9001_INTER_PAIR_SHORT 0x4 3960 /* enum: Busy. */ 3961 #define MC_CMD_POLL_BIST_SFT9001_PAIR_BUSY 0x9 3962 /* Status of each channel B */ 3963 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_B_OFST 24 3964 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_B_LEN 4 3965 /* Enum values, see field(s): */ 3966 /* CABLE_STATUS_A */ 3967 /* Status of each channel C */ 3968 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_C_OFST 28 3969 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_C_LEN 4 3970 /* Enum values, see field(s): */ 3971 /* CABLE_STATUS_A */ 3972 /* Status of each channel D */ 3973 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_D_OFST 32 3974 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_D_LEN 4 3975 /* Enum values, see field(s): */ 3976 /* CABLE_STATUS_A */ 3977 3978 /* MC_CMD_POLL_BIST_OUT_MRSFP msgresponse */ 3979 #define MC_CMD_POLL_BIST_OUT_MRSFP_LEN 8 3980 /* result */ 3981 /* MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 */ 3982 /* MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 */ 3983 /* Enum values, see field(s): */ 3984 /* MC_CMD_POLL_BIST_OUT/MC_CMD_POLL_BIST_OUT_RESULT */ 3985 #define MC_CMD_POLL_BIST_OUT_MRSFP_TEST_OFST 4 3986 #define MC_CMD_POLL_BIST_OUT_MRSFP_TEST_LEN 4 3987 /* enum: Complete. */ 3988 #define MC_CMD_POLL_BIST_MRSFP_TEST_COMPLETE 0x0 3989 /* enum: Bus switch off I2C write. */ 3990 #define MC_CMD_POLL_BIST_MRSFP_TEST_BUS_SWITCH_OFF_I2C_WRITE 0x1 3991 /* enum: Bus switch off I2C no access IO exp. */ 3992 #define MC_CMD_POLL_BIST_MRSFP_TEST_BUS_SWITCH_OFF_I2C_NO_ACCESS_IO_EXP 0x2 3993 /* enum: Bus switch off I2C no access module. */ 3994 #define MC_CMD_POLL_BIST_MRSFP_TEST_BUS_SWITCH_OFF_I2C_NO_ACCESS_MODULE 0x3 3995 /* enum: IO exp I2C configure. */ 3996 #define MC_CMD_POLL_BIST_MRSFP_TEST_IO_EXP_I2C_CONFIGURE 0x4 3997 /* enum: Bus switch I2C no cross talk. */ 3998 #define MC_CMD_POLL_BIST_MRSFP_TEST_BUS_SWITCH_I2C_NO_CROSSTALK 0x5 3999 /* enum: Module presence. */ 4000 #define MC_CMD_POLL_BIST_MRSFP_TEST_MODULE_PRESENCE 0x6 4001 /* enum: Module ID I2C access. */ 4002 #define MC_CMD_POLL_BIST_MRSFP_TEST_MODULE_ID_I2C_ACCESS 0x7 4003 /* enum: Module ID sane value. */ 4004 #define MC_CMD_POLL_BIST_MRSFP_TEST_MODULE_ID_SANE_VALUE 0x8 4005 4006 /* MC_CMD_POLL_BIST_OUT_MEM msgresponse */ 4007 #define MC_CMD_POLL_BIST_OUT_MEM_LEN 36 4008 /* result */ 4009 /* MC_CMD_POLL_BIST_OUT_RESULT_OFST 0 */ 4010 /* MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 */ 4011 /* Enum values, see field(s): */ 4012 /* MC_CMD_POLL_BIST_OUT/MC_CMD_POLL_BIST_OUT_RESULT */ 4013 #define MC_CMD_POLL_BIST_OUT_MEM_TEST_OFST 4 4014 #define MC_CMD_POLL_BIST_OUT_MEM_TEST_LEN 4 4015 /* enum: Test has completed. */ 4016 #define MC_CMD_POLL_BIST_MEM_COMPLETE 0x0 4017 /* enum: RAM test - walk ones. */ 4018 #define MC_CMD_POLL_BIST_MEM_MEM_WALK_ONES 0x1 4019 /* enum: RAM test - walk zeros. */ 4020 #define MC_CMD_POLL_BIST_MEM_MEM_WALK_ZEROS 0x2 4021 /* enum: RAM test - walking inversions zeros/ones. */ 4022 #define MC_CMD_POLL_BIST_MEM_MEM_INV_ZERO_ONE 0x3 4023 /* enum: RAM test - walking inversions checkerboard. */ 4024 #define MC_CMD_POLL_BIST_MEM_MEM_INV_CHKBOARD 0x4 4025 /* enum: Register test - set / clear individual bits. */ 4026 #define MC_CMD_POLL_BIST_MEM_REG 0x5 4027 /* enum: ECC error detected. */ 4028 #define MC_CMD_POLL_BIST_MEM_ECC 0x6 4029 /* Failure address, only valid if result is POLL_BIST_FAILED */ 4030 #define MC_CMD_POLL_BIST_OUT_MEM_ADDR_OFST 8 4031 #define MC_CMD_POLL_BIST_OUT_MEM_ADDR_LEN 4 4032 /* Bus or address space to which the failure address corresponds */ 4033 #define MC_CMD_POLL_BIST_OUT_MEM_BUS_OFST 12 4034 #define MC_CMD_POLL_BIST_OUT_MEM_BUS_LEN 4 4035 /* enum: MC MIPS bus. */ 4036 #define MC_CMD_POLL_BIST_MEM_BUS_MC 0x0 4037 /* enum: CSR IREG bus. */ 4038 #define MC_CMD_POLL_BIST_MEM_BUS_CSR 0x1 4039 /* enum: RX0 DPCPU bus. */ 4040 #define MC_CMD_POLL_BIST_MEM_BUS_DPCPU_RX 0x2 4041 /* enum: TX0 DPCPU bus. */ 4042 #define MC_CMD_POLL_BIST_MEM_BUS_DPCPU_TX0 0x3 4043 /* enum: TX1 DPCPU bus. */ 4044 #define MC_CMD_POLL_BIST_MEM_BUS_DPCPU_TX1 0x4 4045 /* enum: RX0 DICPU bus. */ 4046 #define MC_CMD_POLL_BIST_MEM_BUS_DICPU_RX 0x5 4047 /* enum: TX DICPU bus. */ 4048 #define MC_CMD_POLL_BIST_MEM_BUS_DICPU_TX 0x6 4049 /* enum: RX1 DPCPU bus. */ 4050 #define MC_CMD_POLL_BIST_MEM_BUS_DPCPU_RX1 0x7 4051 /* enum: RX1 DICPU bus. */ 4052 #define MC_CMD_POLL_BIST_MEM_BUS_DICPU_RX1 0x8 4053 /* Pattern written to RAM / register */ 4054 #define MC_CMD_POLL_BIST_OUT_MEM_EXPECT_OFST 16 4055 #define MC_CMD_POLL_BIST_OUT_MEM_EXPECT_LEN 4 4056 /* Actual value read from RAM / register */ 4057 #define MC_CMD_POLL_BIST_OUT_MEM_ACTUAL_OFST 20 4058 #define MC_CMD_POLL_BIST_OUT_MEM_ACTUAL_LEN 4 4059 /* ECC error mask */ 4060 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_OFST 24 4061 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_LEN 4 4062 /* ECC parity error mask */ 4063 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_PARITY_OFST 28 4064 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_PARITY_LEN 4 4065 /* ECC fatal error mask */ 4066 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_FATAL_OFST 32 4067 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_FATAL_LEN 4 4068 4069 4070 /***********************************/ 4071 /* MC_CMD_FLUSH_RX_QUEUES 4072 * Flush receive queue(s). If SRIOV is enabled (via MC_CMD_SRIOV), then RXQ 4073 * flushes should be initiated via this MCDI operation, rather than via 4074 * directly writing FLUSH_CMD. 4075 * 4076 * The flush is completed (either done/fail) asynchronously (after this command 4077 * returns). The driver must still wait for flush done/failure events as usual. 4078 */ 4079 #define MC_CMD_FLUSH_RX_QUEUES 0x27 4080 4081 /* MC_CMD_FLUSH_RX_QUEUES_IN msgrequest */ 4082 #define MC_CMD_FLUSH_RX_QUEUES_IN_LENMIN 4 4083 #define MC_CMD_FLUSH_RX_QUEUES_IN_LENMAX 252 4084 #define MC_CMD_FLUSH_RX_QUEUES_IN_LENMAX_MCDI2 1020 4085 #define MC_CMD_FLUSH_RX_QUEUES_IN_LEN(num) (0+4*(num)) 4086 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_NUM(len) (((len)-0)/4) 4087 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_OFST 0 4088 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_LEN 4 4089 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_MINNUM 1 4090 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_MAXNUM 63 4091 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_MAXNUM_MCDI2 255 4092 4093 /* MC_CMD_FLUSH_RX_QUEUES_OUT msgresponse */ 4094 #define MC_CMD_FLUSH_RX_QUEUES_OUT_LEN 0 4095 4096 4097 /***********************************/ 4098 /* MC_CMD_GET_LOOPBACK_MODES 4099 * Returns a bitmask of loopback modes available at each speed. 4100 */ 4101 #define MC_CMD_GET_LOOPBACK_MODES 0x28 4102 #undef MC_CMD_0x28_PRIVILEGE_CTG 4103 4104 #define MC_CMD_0x28_PRIVILEGE_CTG SRIOV_CTG_GENERAL 4105 4106 /* MC_CMD_GET_LOOPBACK_MODES_IN msgrequest */ 4107 #define MC_CMD_GET_LOOPBACK_MODES_IN_LEN 0 4108 4109 /* MC_CMD_GET_LOOPBACK_MODES_OUT msgresponse */ 4110 #define MC_CMD_GET_LOOPBACK_MODES_OUT_LEN 40 4111 /* Supported loopbacks. */ 4112 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_OFST 0 4113 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LEN 8 4114 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_OFST 0 4115 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_OFST 4 4116 /* enum: None. */ 4117 #define MC_CMD_LOOPBACK_NONE 0x0 4118 /* enum: Data. */ 4119 #define MC_CMD_LOOPBACK_DATA 0x1 4120 /* enum: GMAC. */ 4121 #define MC_CMD_LOOPBACK_GMAC 0x2 4122 /* enum: XGMII. */ 4123 #define MC_CMD_LOOPBACK_XGMII 0x3 4124 /* enum: XGXS. */ 4125 #define MC_CMD_LOOPBACK_XGXS 0x4 4126 /* enum: XAUI. */ 4127 #define MC_CMD_LOOPBACK_XAUI 0x5 4128 /* enum: GMII. */ 4129 #define MC_CMD_LOOPBACK_GMII 0x6 4130 /* enum: SGMII. */ 4131 #define MC_CMD_LOOPBACK_SGMII 0x7 4132 /* enum: XGBR. */ 4133 #define MC_CMD_LOOPBACK_XGBR 0x8 4134 /* enum: XFI. */ 4135 #define MC_CMD_LOOPBACK_XFI 0x9 4136 /* enum: XAUI Far. */ 4137 #define MC_CMD_LOOPBACK_XAUI_FAR 0xa 4138 /* enum: GMII Far. */ 4139 #define MC_CMD_LOOPBACK_GMII_FAR 0xb 4140 /* enum: SGMII Far. */ 4141 #define MC_CMD_LOOPBACK_SGMII_FAR 0xc 4142 /* enum: XFI Far. */ 4143 #define MC_CMD_LOOPBACK_XFI_FAR 0xd 4144 /* enum: GPhy. */ 4145 #define MC_CMD_LOOPBACK_GPHY 0xe 4146 /* enum: PhyXS. */ 4147 #define MC_CMD_LOOPBACK_PHYXS 0xf 4148 /* enum: PCS. */ 4149 #define MC_CMD_LOOPBACK_PCS 0x10 4150 /* enum: PMA-PMD. */ 4151 #define MC_CMD_LOOPBACK_PMAPMD 0x11 4152 /* enum: Cross-Port. */ 4153 #define MC_CMD_LOOPBACK_XPORT 0x12 4154 /* enum: XGMII-Wireside. */ 4155 #define MC_CMD_LOOPBACK_XGMII_WS 0x13 4156 /* enum: XAUI Wireside. */ 4157 #define MC_CMD_LOOPBACK_XAUI_WS 0x14 4158 /* enum: XAUI Wireside Far. */ 4159 #define MC_CMD_LOOPBACK_XAUI_WS_FAR 0x15 4160 /* enum: XAUI Wireside near. */ 4161 #define MC_CMD_LOOPBACK_XAUI_WS_NEAR 0x16 4162 /* enum: GMII Wireside. */ 4163 #define MC_CMD_LOOPBACK_GMII_WS 0x17 4164 /* enum: XFI Wireside. */ 4165 #define MC_CMD_LOOPBACK_XFI_WS 0x18 4166 /* enum: XFI Wireside Far. */ 4167 #define MC_CMD_LOOPBACK_XFI_WS_FAR 0x19 4168 /* enum: PhyXS Wireside. */ 4169 #define MC_CMD_LOOPBACK_PHYXS_WS 0x1a 4170 /* enum: PMA lanes MAC-Serdes. */ 4171 #define MC_CMD_LOOPBACK_PMA_INT 0x1b 4172 /* enum: KR Serdes Parallel (Encoder). */ 4173 #define MC_CMD_LOOPBACK_SD_NEAR 0x1c 4174 /* enum: KR Serdes Serial. */ 4175 #define MC_CMD_LOOPBACK_SD_FAR 0x1d 4176 /* enum: PMA lanes MAC-Serdes Wireside. */ 4177 #define MC_CMD_LOOPBACK_PMA_INT_WS 0x1e 4178 /* enum: KR Serdes Parallel Wireside (Full PCS). */ 4179 #define MC_CMD_LOOPBACK_SD_FEP2_WS 0x1f 4180 /* enum: KR Serdes Parallel Wireside (Sym Aligner to TX). */ 4181 #define MC_CMD_LOOPBACK_SD_FEP1_5_WS 0x20 4182 /* enum: KR Serdes Parallel Wireside (Deserializer to Serializer). */ 4183 #define MC_CMD_LOOPBACK_SD_FEP_WS 0x21 4184 /* enum: KR Serdes Serial Wireside. */ 4185 #define MC_CMD_LOOPBACK_SD_FES_WS 0x22 4186 /* enum: Near side of AOE Siena side port */ 4187 #define MC_CMD_LOOPBACK_AOE_INT_NEAR 0x23 4188 /* enum: Medford Wireside datapath loopback */ 4189 #define MC_CMD_LOOPBACK_DATA_WS 0x24 4190 /* enum: Force link up without setting up any physical loopback (snapper use 4191 * only) 4192 */ 4193 #define MC_CMD_LOOPBACK_FORCE_EXT_LINK 0x25 4194 /* Supported loopbacks. */ 4195 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_OFST 8 4196 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LEN 8 4197 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_OFST 8 4198 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_OFST 12 4199 /* Enum values, see field(s): */ 4200 /* 100M */ 4201 /* Supported loopbacks. */ 4202 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_OFST 16 4203 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LEN 8 4204 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_OFST 16 4205 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_OFST 20 4206 /* Enum values, see field(s): */ 4207 /* 100M */ 4208 /* Supported loopbacks. */ 4209 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_OFST 24 4210 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LEN 8 4211 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_OFST 24 4212 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_OFST 28 4213 /* Enum values, see field(s): */ 4214 /* 100M */ 4215 /* Supported loopbacks. */ 4216 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_OFST 32 4217 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LEN 8 4218 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_OFST 32 4219 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_OFST 36 4220 /* Enum values, see field(s): */ 4221 /* 100M */ 4222 4223 /* MC_CMD_GET_LOOPBACK_MODES_OUT_V2 msgresponse: Supported loopback modes for 4224 * newer NICs with 25G/50G/100G support 4225 */ 4226 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_LEN 64 4227 /* Supported loopbacks. */ 4228 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_OFST 0 4229 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LEN 8 4230 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_OFST 0 4231 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_OFST 4 4232 /* enum: None. */ 4233 /* MC_CMD_LOOPBACK_NONE 0x0 */ 4234 /* enum: Data. */ 4235 /* MC_CMD_LOOPBACK_DATA 0x1 */ 4236 /* enum: GMAC. */ 4237 /* MC_CMD_LOOPBACK_GMAC 0x2 */ 4238 /* enum: XGMII. */ 4239 /* MC_CMD_LOOPBACK_XGMII 0x3 */ 4240 /* enum: XGXS. */ 4241 /* MC_CMD_LOOPBACK_XGXS 0x4 */ 4242 /* enum: XAUI. */ 4243 /* MC_CMD_LOOPBACK_XAUI 0x5 */ 4244 /* enum: GMII. */ 4245 /* MC_CMD_LOOPBACK_GMII 0x6 */ 4246 /* enum: SGMII. */ 4247 /* MC_CMD_LOOPBACK_SGMII 0x7 */ 4248 /* enum: XGBR. */ 4249 /* MC_CMD_LOOPBACK_XGBR 0x8 */ 4250 /* enum: XFI. */ 4251 /* MC_CMD_LOOPBACK_XFI 0x9 */ 4252 /* enum: XAUI Far. */ 4253 /* MC_CMD_LOOPBACK_XAUI_FAR 0xa */ 4254 /* enum: GMII Far. */ 4255 /* MC_CMD_LOOPBACK_GMII_FAR 0xb */ 4256 /* enum: SGMII Far. */ 4257 /* MC_CMD_LOOPBACK_SGMII_FAR 0xc */ 4258 /* enum: XFI Far. */ 4259 /* MC_CMD_LOOPBACK_XFI_FAR 0xd */ 4260 /* enum: GPhy. */ 4261 /* MC_CMD_LOOPBACK_GPHY 0xe */ 4262 /* enum: PhyXS. */ 4263 /* MC_CMD_LOOPBACK_PHYXS 0xf */ 4264 /* enum: PCS. */ 4265 /* MC_CMD_LOOPBACK_PCS 0x10 */ 4266 /* enum: PMA-PMD. */ 4267 /* MC_CMD_LOOPBACK_PMAPMD 0x11 */ 4268 /* enum: Cross-Port. */ 4269 /* MC_CMD_LOOPBACK_XPORT 0x12 */ 4270 /* enum: XGMII-Wireside. */ 4271 /* MC_CMD_LOOPBACK_XGMII_WS 0x13 */ 4272 /* enum: XAUI Wireside. */ 4273 /* MC_CMD_LOOPBACK_XAUI_WS 0x14 */ 4274 /* enum: XAUI Wireside Far. */ 4275 /* MC_CMD_LOOPBACK_XAUI_WS_FAR 0x15 */ 4276 /* enum: XAUI Wireside near. */ 4277 /* MC_CMD_LOOPBACK_XAUI_WS_NEAR 0x16 */ 4278 /* enum: GMII Wireside. */ 4279 /* MC_CMD_LOOPBACK_GMII_WS 0x17 */ 4280 /* enum: XFI Wireside. */ 4281 /* MC_CMD_LOOPBACK_XFI_WS 0x18 */ 4282 /* enum: XFI Wireside Far. */ 4283 /* MC_CMD_LOOPBACK_XFI_WS_FAR 0x19 */ 4284 /* enum: PhyXS Wireside. */ 4285 /* MC_CMD_LOOPBACK_PHYXS_WS 0x1a */ 4286 /* enum: PMA lanes MAC-Serdes. */ 4287 /* MC_CMD_LOOPBACK_PMA_INT 0x1b */ 4288 /* enum: KR Serdes Parallel (Encoder). */ 4289 /* MC_CMD_LOOPBACK_SD_NEAR 0x1c */ 4290 /* enum: KR Serdes Serial. */ 4291 /* MC_CMD_LOOPBACK_SD_FAR 0x1d */ 4292 /* enum: PMA lanes MAC-Serdes Wireside. */ 4293 /* MC_CMD_LOOPBACK_PMA_INT_WS 0x1e */ 4294 /* enum: KR Serdes Parallel Wireside (Full PCS). */ 4295 /* MC_CMD_LOOPBACK_SD_FEP2_WS 0x1f */ 4296 /* enum: KR Serdes Parallel Wireside (Sym Aligner to TX). */ 4297 /* MC_CMD_LOOPBACK_SD_FEP1_5_WS 0x20 */ 4298 /* enum: KR Serdes Parallel Wireside (Deserializer to Serializer). */ 4299 /* MC_CMD_LOOPBACK_SD_FEP_WS 0x21 */ 4300 /* enum: KR Serdes Serial Wireside. */ 4301 /* MC_CMD_LOOPBACK_SD_FES_WS 0x22 */ 4302 /* enum: Near side of AOE Siena side port */ 4303 /* MC_CMD_LOOPBACK_AOE_INT_NEAR 0x23 */ 4304 /* enum: Medford Wireside datapath loopback */ 4305 /* MC_CMD_LOOPBACK_DATA_WS 0x24 */ 4306 /* enum: Force link up without setting up any physical loopback (snapper use 4307 * only) 4308 */ 4309 /* MC_CMD_LOOPBACK_FORCE_EXT_LINK 0x25 */ 4310 /* Supported loopbacks. */ 4311 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_OFST 8 4312 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LEN 8 4313 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_OFST 8 4314 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_OFST 12 4315 /* Enum values, see field(s): */ 4316 /* 100M */ 4317 /* Supported loopbacks. */ 4318 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_OFST 16 4319 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LEN 8 4320 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_OFST 16 4321 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_OFST 20 4322 /* Enum values, see field(s): */ 4323 /* 100M */ 4324 /* Supported loopbacks. */ 4325 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_OFST 24 4326 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LEN 8 4327 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_OFST 24 4328 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_OFST 28 4329 /* Enum values, see field(s): */ 4330 /* 100M */ 4331 /* Supported loopbacks. */ 4332 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_OFST 32 4333 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LEN 8 4334 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_OFST 32 4335 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_OFST 36 4336 /* Enum values, see field(s): */ 4337 /* 100M */ 4338 /* Supported 25G loopbacks. */ 4339 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_OFST 40 4340 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LEN 8 4341 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_OFST 40 4342 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_OFST 44 4343 /* Enum values, see field(s): */ 4344 /* 100M */ 4345 /* Supported 50 loopbacks. */ 4346 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_OFST 48 4347 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LEN 8 4348 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_OFST 48 4349 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_OFST 52 4350 /* Enum values, see field(s): */ 4351 /* 100M */ 4352 /* Supported 100G loopbacks. */ 4353 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_OFST 56 4354 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LEN 8 4355 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_OFST 56 4356 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_OFST 60 4357 /* Enum values, see field(s): */ 4358 /* 100M */ 4359 4360 /* AN_TYPE structuredef: Auto-negotiation types defined in IEEE802.3 */ 4361 #define AN_TYPE_LEN 4 4362 #define AN_TYPE_TYPE_OFST 0 4363 #define AN_TYPE_TYPE_LEN 4 4364 /* enum: None, AN disabled or not supported */ 4365 #define MC_CMD_AN_NONE 0x0 4366 /* enum: Clause 28 - BASE-T */ 4367 #define MC_CMD_AN_CLAUSE28 0x1 4368 /* enum: Clause 37 - BASE-X */ 4369 #define MC_CMD_AN_CLAUSE37 0x2 4370 /* enum: Clause 73 - BASE-R startup protocol for backplane and copper cable 4371 * assemblies. Includes Clause 72/Clause 92 link-training. 4372 */ 4373 #define MC_CMD_AN_CLAUSE73 0x3 4374 #define AN_TYPE_TYPE_LBN 0 4375 #define AN_TYPE_TYPE_WIDTH 32 4376 4377 /* FEC_TYPE structuredef: Forward error correction types defined in IEEE802.3 4378 */ 4379 #define FEC_TYPE_LEN 4 4380 #define FEC_TYPE_TYPE_OFST 0 4381 #define FEC_TYPE_TYPE_LEN 4 4382 /* enum: No FEC */ 4383 #define MC_CMD_FEC_NONE 0x0 4384 /* enum: Clause 74 BASE-R FEC (a.k.a Firecode) */ 4385 #define MC_CMD_FEC_BASER 0x1 4386 /* enum: Clause 91/Clause 108 Reed-Solomon FEC */ 4387 #define MC_CMD_FEC_RS 0x2 4388 #define FEC_TYPE_TYPE_LBN 0 4389 #define FEC_TYPE_TYPE_WIDTH 32 4390 4391 4392 /***********************************/ 4393 /* MC_CMD_GET_LINK 4394 * Read the unified MAC/PHY link state. Locks required: None Return code: 0, 4395 * ETIME. 4396 */ 4397 #define MC_CMD_GET_LINK 0x29 4398 #undef MC_CMD_0x29_PRIVILEGE_CTG 4399 4400 #define MC_CMD_0x29_PRIVILEGE_CTG SRIOV_CTG_GENERAL 4401 4402 /* MC_CMD_GET_LINK_IN msgrequest */ 4403 #define MC_CMD_GET_LINK_IN_LEN 0 4404 4405 /* MC_CMD_GET_LINK_OUT msgresponse */ 4406 #define MC_CMD_GET_LINK_OUT_LEN 28 4407 /* Near-side advertised capabilities. Refer to 4408 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 4409 */ 4410 #define MC_CMD_GET_LINK_OUT_CAP_OFST 0 4411 #define MC_CMD_GET_LINK_OUT_CAP_LEN 4 4412 /* Link-partner advertised capabilities. Refer to 4413 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 4414 */ 4415 #define MC_CMD_GET_LINK_OUT_LP_CAP_OFST 4 4416 #define MC_CMD_GET_LINK_OUT_LP_CAP_LEN 4 4417 /* Autonegotiated speed in mbit/s. The link may still be down even if this 4418 * reads non-zero. 4419 */ 4420 #define MC_CMD_GET_LINK_OUT_LINK_SPEED_OFST 8 4421 #define MC_CMD_GET_LINK_OUT_LINK_SPEED_LEN 4 4422 /* Current loopback setting. */ 4423 #define MC_CMD_GET_LINK_OUT_LOOPBACK_MODE_OFST 12 4424 #define MC_CMD_GET_LINK_OUT_LOOPBACK_MODE_LEN 4 4425 /* Enum values, see field(s): */ 4426 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 4427 #define MC_CMD_GET_LINK_OUT_FLAGS_OFST 16 4428 #define MC_CMD_GET_LINK_OUT_FLAGS_LEN 4 4429 #define MC_CMD_GET_LINK_OUT_LINK_UP_OFST 16 4430 #define MC_CMD_GET_LINK_OUT_LINK_UP_LBN 0 4431 #define MC_CMD_GET_LINK_OUT_LINK_UP_WIDTH 1 4432 #define MC_CMD_GET_LINK_OUT_FULL_DUPLEX_OFST 16 4433 #define MC_CMD_GET_LINK_OUT_FULL_DUPLEX_LBN 1 4434 #define MC_CMD_GET_LINK_OUT_FULL_DUPLEX_WIDTH 1 4435 #define MC_CMD_GET_LINK_OUT_BPX_LINK_OFST 16 4436 #define MC_CMD_GET_LINK_OUT_BPX_LINK_LBN 2 4437 #define MC_CMD_GET_LINK_OUT_BPX_LINK_WIDTH 1 4438 #define MC_CMD_GET_LINK_OUT_PHY_LINK_OFST 16 4439 #define MC_CMD_GET_LINK_OUT_PHY_LINK_LBN 3 4440 #define MC_CMD_GET_LINK_OUT_PHY_LINK_WIDTH 1 4441 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_RX_OFST 16 4442 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_RX_LBN 6 4443 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_RX_WIDTH 1 4444 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_TX_OFST 16 4445 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_TX_LBN 7 4446 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_TX_WIDTH 1 4447 #define MC_CMD_GET_LINK_OUT_MODULE_UP_VALID_OFST 16 4448 #define MC_CMD_GET_LINK_OUT_MODULE_UP_VALID_LBN 8 4449 #define MC_CMD_GET_LINK_OUT_MODULE_UP_VALID_WIDTH 1 4450 #define MC_CMD_GET_LINK_OUT_MODULE_UP_OFST 16 4451 #define MC_CMD_GET_LINK_OUT_MODULE_UP_LBN 9 4452 #define MC_CMD_GET_LINK_OUT_MODULE_UP_WIDTH 1 4453 /* This returns the negotiated flow control value. */ 4454 #define MC_CMD_GET_LINK_OUT_FCNTL_OFST 20 4455 #define MC_CMD_GET_LINK_OUT_FCNTL_LEN 4 4456 /* Enum values, see field(s): */ 4457 /* MC_CMD_SET_MAC/MC_CMD_SET_MAC_IN/FCNTL */ 4458 #define MC_CMD_GET_LINK_OUT_MAC_FAULT_OFST 24 4459 #define MC_CMD_GET_LINK_OUT_MAC_FAULT_LEN 4 4460 #define MC_CMD_MAC_FAULT_XGMII_LOCAL_OFST 24 4461 #define MC_CMD_MAC_FAULT_XGMII_LOCAL_LBN 0 4462 #define MC_CMD_MAC_FAULT_XGMII_LOCAL_WIDTH 1 4463 #define MC_CMD_MAC_FAULT_XGMII_REMOTE_OFST 24 4464 #define MC_CMD_MAC_FAULT_XGMII_REMOTE_LBN 1 4465 #define MC_CMD_MAC_FAULT_XGMII_REMOTE_WIDTH 1 4466 #define MC_CMD_MAC_FAULT_SGMII_REMOTE_OFST 24 4467 #define MC_CMD_MAC_FAULT_SGMII_REMOTE_LBN 2 4468 #define MC_CMD_MAC_FAULT_SGMII_REMOTE_WIDTH 1 4469 #define MC_CMD_MAC_FAULT_PENDING_RECONFIG_OFST 24 4470 #define MC_CMD_MAC_FAULT_PENDING_RECONFIG_LBN 3 4471 #define MC_CMD_MAC_FAULT_PENDING_RECONFIG_WIDTH 1 4472 4473 /* MC_CMD_GET_LINK_OUT_V2 msgresponse: Extended link state information */ 4474 #define MC_CMD_GET_LINK_OUT_V2_LEN 44 4475 /* Near-side advertised capabilities. Refer to 4476 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 4477 */ 4478 #define MC_CMD_GET_LINK_OUT_V2_CAP_OFST 0 4479 #define MC_CMD_GET_LINK_OUT_V2_CAP_LEN 4 4480 /* Link-partner advertised capabilities. Refer to 4481 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 4482 */ 4483 #define MC_CMD_GET_LINK_OUT_V2_LP_CAP_OFST 4 4484 #define MC_CMD_GET_LINK_OUT_V2_LP_CAP_LEN 4 4485 /* Autonegotiated speed in mbit/s. The link may still be down even if this 4486 * reads non-zero. 4487 */ 4488 #define MC_CMD_GET_LINK_OUT_V2_LINK_SPEED_OFST 8 4489 #define MC_CMD_GET_LINK_OUT_V2_LINK_SPEED_LEN 4 4490 /* Current loopback setting. */ 4491 #define MC_CMD_GET_LINK_OUT_V2_LOOPBACK_MODE_OFST 12 4492 #define MC_CMD_GET_LINK_OUT_V2_LOOPBACK_MODE_LEN 4 4493 /* Enum values, see field(s): */ 4494 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 4495 #define MC_CMD_GET_LINK_OUT_V2_FLAGS_OFST 16 4496 #define MC_CMD_GET_LINK_OUT_V2_FLAGS_LEN 4 4497 #define MC_CMD_GET_LINK_OUT_V2_LINK_UP_OFST 16 4498 #define MC_CMD_GET_LINK_OUT_V2_LINK_UP_LBN 0 4499 #define MC_CMD_GET_LINK_OUT_V2_LINK_UP_WIDTH 1 4500 #define MC_CMD_GET_LINK_OUT_V2_FULL_DUPLEX_OFST 16 4501 #define MC_CMD_GET_LINK_OUT_V2_FULL_DUPLEX_LBN 1 4502 #define MC_CMD_GET_LINK_OUT_V2_FULL_DUPLEX_WIDTH 1 4503 #define MC_CMD_GET_LINK_OUT_V2_BPX_LINK_OFST 16 4504 #define MC_CMD_GET_LINK_OUT_V2_BPX_LINK_LBN 2 4505 #define MC_CMD_GET_LINK_OUT_V2_BPX_LINK_WIDTH 1 4506 #define MC_CMD_GET_LINK_OUT_V2_PHY_LINK_OFST 16 4507 #define MC_CMD_GET_LINK_OUT_V2_PHY_LINK_LBN 3 4508 #define MC_CMD_GET_LINK_OUT_V2_PHY_LINK_WIDTH 1 4509 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_RX_OFST 16 4510 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_RX_LBN 6 4511 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_RX_WIDTH 1 4512 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_TX_OFST 16 4513 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_TX_LBN 7 4514 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_TX_WIDTH 1 4515 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_VALID_OFST 16 4516 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_VALID_LBN 8 4517 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_VALID_WIDTH 1 4518 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_OFST 16 4519 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_LBN 9 4520 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_WIDTH 1 4521 /* This returns the negotiated flow control value. */ 4522 #define MC_CMD_GET_LINK_OUT_V2_FCNTL_OFST 20 4523 #define MC_CMD_GET_LINK_OUT_V2_FCNTL_LEN 4 4524 /* Enum values, see field(s): */ 4525 /* MC_CMD_SET_MAC/MC_CMD_SET_MAC_IN/FCNTL */ 4526 #define MC_CMD_GET_LINK_OUT_V2_MAC_FAULT_OFST 24 4527 #define MC_CMD_GET_LINK_OUT_V2_MAC_FAULT_LEN 4 4528 /* MC_CMD_MAC_FAULT_XGMII_LOCAL_OFST 24 */ 4529 /* MC_CMD_MAC_FAULT_XGMII_LOCAL_LBN 0 */ 4530 /* MC_CMD_MAC_FAULT_XGMII_LOCAL_WIDTH 1 */ 4531 /* MC_CMD_MAC_FAULT_XGMII_REMOTE_OFST 24 */ 4532 /* MC_CMD_MAC_FAULT_XGMII_REMOTE_LBN 1 */ 4533 /* MC_CMD_MAC_FAULT_XGMII_REMOTE_WIDTH 1 */ 4534 /* MC_CMD_MAC_FAULT_SGMII_REMOTE_OFST 24 */ 4535 /* MC_CMD_MAC_FAULT_SGMII_REMOTE_LBN 2 */ 4536 /* MC_CMD_MAC_FAULT_SGMII_REMOTE_WIDTH 1 */ 4537 /* MC_CMD_MAC_FAULT_PENDING_RECONFIG_OFST 24 */ 4538 /* MC_CMD_MAC_FAULT_PENDING_RECONFIG_LBN 3 */ 4539 /* MC_CMD_MAC_FAULT_PENDING_RECONFIG_WIDTH 1 */ 4540 /* True local device capabilities (taking into account currently used PMD/MDI, 4541 * e.g. plugged-in module). In general, subset of 4542 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP, but may include extra _FEC_REQUEST 4543 * bits, if the PMD requires FEC. 0 if unknown (e.g. module unplugged). Equal 4544 * to SUPPORTED_CAP for non-pluggable PMDs. Refer to 4545 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 4546 */ 4547 #define MC_CMD_GET_LINK_OUT_V2_LD_CAP_OFST 28 4548 #define MC_CMD_GET_LINK_OUT_V2_LD_CAP_LEN 4 4549 /* Auto-negotiation type used on the link */ 4550 #define MC_CMD_GET_LINK_OUT_V2_AN_TYPE_OFST 32 4551 #define MC_CMD_GET_LINK_OUT_V2_AN_TYPE_LEN 4 4552 /* Enum values, see field(s): */ 4553 /* AN_TYPE/TYPE */ 4554 /* Forward error correction used on the link */ 4555 #define MC_CMD_GET_LINK_OUT_V2_FEC_TYPE_OFST 36 4556 #define MC_CMD_GET_LINK_OUT_V2_FEC_TYPE_LEN 4 4557 /* Enum values, see field(s): */ 4558 /* FEC_TYPE/TYPE */ 4559 #define MC_CMD_GET_LINK_OUT_V2_EXT_FLAGS_OFST 40 4560 #define MC_CMD_GET_LINK_OUT_V2_EXT_FLAGS_LEN 4 4561 #define MC_CMD_GET_LINK_OUT_V2_PMD_MDI_CONNECTED_OFST 40 4562 #define MC_CMD_GET_LINK_OUT_V2_PMD_MDI_CONNECTED_LBN 0 4563 #define MC_CMD_GET_LINK_OUT_V2_PMD_MDI_CONNECTED_WIDTH 1 4564 #define MC_CMD_GET_LINK_OUT_V2_PMD_READY_OFST 40 4565 #define MC_CMD_GET_LINK_OUT_V2_PMD_READY_LBN 1 4566 #define MC_CMD_GET_LINK_OUT_V2_PMD_READY_WIDTH 1 4567 #define MC_CMD_GET_LINK_OUT_V2_PMD_LINK_UP_OFST 40 4568 #define MC_CMD_GET_LINK_OUT_V2_PMD_LINK_UP_LBN 2 4569 #define MC_CMD_GET_LINK_OUT_V2_PMD_LINK_UP_WIDTH 1 4570 #define MC_CMD_GET_LINK_OUT_V2_PMA_LINK_UP_OFST 40 4571 #define MC_CMD_GET_LINK_OUT_V2_PMA_LINK_UP_LBN 3 4572 #define MC_CMD_GET_LINK_OUT_V2_PMA_LINK_UP_WIDTH 1 4573 #define MC_CMD_GET_LINK_OUT_V2_PCS_LOCK_OFST 40 4574 #define MC_CMD_GET_LINK_OUT_V2_PCS_LOCK_LBN 4 4575 #define MC_CMD_GET_LINK_OUT_V2_PCS_LOCK_WIDTH 1 4576 #define MC_CMD_GET_LINK_OUT_V2_ALIGN_LOCK_OFST 40 4577 #define MC_CMD_GET_LINK_OUT_V2_ALIGN_LOCK_LBN 5 4578 #define MC_CMD_GET_LINK_OUT_V2_ALIGN_LOCK_WIDTH 1 4579 #define MC_CMD_GET_LINK_OUT_V2_HI_BER_OFST 40 4580 #define MC_CMD_GET_LINK_OUT_V2_HI_BER_LBN 6 4581 #define MC_CMD_GET_LINK_OUT_V2_HI_BER_WIDTH 1 4582 #define MC_CMD_GET_LINK_OUT_V2_FEC_LOCK_OFST 40 4583 #define MC_CMD_GET_LINK_OUT_V2_FEC_LOCK_LBN 7 4584 #define MC_CMD_GET_LINK_OUT_V2_FEC_LOCK_WIDTH 1 4585 #define MC_CMD_GET_LINK_OUT_V2_AN_DONE_OFST 40 4586 #define MC_CMD_GET_LINK_OUT_V2_AN_DONE_LBN 8 4587 #define MC_CMD_GET_LINK_OUT_V2_AN_DONE_WIDTH 1 4588 #define MC_CMD_GET_LINK_OUT_V2_PORT_SHUTDOWN_OFST 40 4589 #define MC_CMD_GET_LINK_OUT_V2_PORT_SHUTDOWN_LBN 9 4590 #define MC_CMD_GET_LINK_OUT_V2_PORT_SHUTDOWN_WIDTH 1 4591 4592 4593 /***********************************/ 4594 /* MC_CMD_SET_LINK 4595 * Write the unified MAC/PHY link configuration. Locks required: None. Return 4596 * code: 0, EINVAL, ETIME, EAGAIN 4597 */ 4598 #define MC_CMD_SET_LINK 0x2a 4599 #undef MC_CMD_0x2a_PRIVILEGE_CTG 4600 4601 #define MC_CMD_0x2a_PRIVILEGE_CTG SRIOV_CTG_LINK 4602 4603 /* MC_CMD_SET_LINK_IN msgrequest */ 4604 #define MC_CMD_SET_LINK_IN_LEN 16 4605 /* Near-side advertised capabilities. Refer to 4606 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 4607 */ 4608 #define MC_CMD_SET_LINK_IN_CAP_OFST 0 4609 #define MC_CMD_SET_LINK_IN_CAP_LEN 4 4610 /* Flags */ 4611 #define MC_CMD_SET_LINK_IN_FLAGS_OFST 4 4612 #define MC_CMD_SET_LINK_IN_FLAGS_LEN 4 4613 #define MC_CMD_SET_LINK_IN_LOWPOWER_OFST 4 4614 #define MC_CMD_SET_LINK_IN_LOWPOWER_LBN 0 4615 #define MC_CMD_SET_LINK_IN_LOWPOWER_WIDTH 1 4616 #define MC_CMD_SET_LINK_IN_POWEROFF_OFST 4 4617 #define MC_CMD_SET_LINK_IN_POWEROFF_LBN 1 4618 #define MC_CMD_SET_LINK_IN_POWEROFF_WIDTH 1 4619 #define MC_CMD_SET_LINK_IN_TXDIS_OFST 4 4620 #define MC_CMD_SET_LINK_IN_TXDIS_LBN 2 4621 #define MC_CMD_SET_LINK_IN_TXDIS_WIDTH 1 4622 #define MC_CMD_SET_LINK_IN_LINKDOWN_OFST 4 4623 #define MC_CMD_SET_LINK_IN_LINKDOWN_LBN 3 4624 #define MC_CMD_SET_LINK_IN_LINKDOWN_WIDTH 1 4625 /* Loopback mode. */ 4626 #define MC_CMD_SET_LINK_IN_LOOPBACK_MODE_OFST 8 4627 #define MC_CMD_SET_LINK_IN_LOOPBACK_MODE_LEN 4 4628 /* Enum values, see field(s): */ 4629 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 4630 /* A loopback speed of "0" is supported, and means (choose any available 4631 * speed). 4632 */ 4633 #define MC_CMD_SET_LINK_IN_LOOPBACK_SPEED_OFST 12 4634 #define MC_CMD_SET_LINK_IN_LOOPBACK_SPEED_LEN 4 4635 4636 /* MC_CMD_SET_LINK_IN_V2 msgrequest: Updated SET_LINK to include sequence 4637 * number to ensure this SET_LINK command corresponds to the latest 4638 * MODULECHANGE event. 4639 */ 4640 #define MC_CMD_SET_LINK_IN_V2_LEN 17 4641 /* Near-side advertised capabilities. Refer to 4642 * MC_CMD_GET_PHY_CFG_OUT/SUPPORTED_CAP for bit definitions. 4643 */ 4644 #define MC_CMD_SET_LINK_IN_V2_CAP_OFST 0 4645 #define MC_CMD_SET_LINK_IN_V2_CAP_LEN 4 4646 /* Flags */ 4647 #define MC_CMD_SET_LINK_IN_V2_FLAGS_OFST 4 4648 #define MC_CMD_SET_LINK_IN_V2_FLAGS_LEN 4 4649 #define MC_CMD_SET_LINK_IN_V2_LOWPOWER_OFST 4 4650 #define MC_CMD_SET_LINK_IN_V2_LOWPOWER_LBN 0 4651 #define MC_CMD_SET_LINK_IN_V2_LOWPOWER_WIDTH 1 4652 #define MC_CMD_SET_LINK_IN_V2_POWEROFF_OFST 4 4653 #define MC_CMD_SET_LINK_IN_V2_POWEROFF_LBN 1 4654 #define MC_CMD_SET_LINK_IN_V2_POWEROFF_WIDTH 1 4655 #define MC_CMD_SET_LINK_IN_V2_TXDIS_OFST 4 4656 #define MC_CMD_SET_LINK_IN_V2_TXDIS_LBN 2 4657 #define MC_CMD_SET_LINK_IN_V2_TXDIS_WIDTH 1 4658 #define MC_CMD_SET_LINK_IN_V2_LINKDOWN_OFST 4 4659 #define MC_CMD_SET_LINK_IN_V2_LINKDOWN_LBN 3 4660 #define MC_CMD_SET_LINK_IN_V2_LINKDOWN_WIDTH 1 4661 /* Loopback mode. */ 4662 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_MODE_OFST 8 4663 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_MODE_LEN 4 4664 /* Enum values, see field(s): */ 4665 /* MC_CMD_GET_LOOPBACK_MODES/MC_CMD_GET_LOOPBACK_MODES_OUT/100M */ 4666 /* A loopback speed of "0" is supported, and means (choose any available 4667 * speed). 4668 */ 4669 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_SPEED_OFST 12 4670 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_SPEED_LEN 4 4671 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_OFST 16 4672 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_LEN 1 4673 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_NUMBER_OFST 16 4674 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_NUMBER_LBN 0 4675 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_NUMBER_WIDTH 7 4676 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_IGNORE_OFST 16 4677 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_IGNORE_LBN 7 4678 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_IGNORE_WIDTH 1 4679 4680 /* MC_CMD_SET_LINK_OUT msgresponse */ 4681 #define MC_CMD_SET_LINK_OUT_LEN 0 4682 4683 4684 /***********************************/ 4685 /* MC_CMD_SET_ID_LED 4686 * Set identification LED state. Locks required: None. Return code: 0, EINVAL 4687 */ 4688 #define MC_CMD_SET_ID_LED 0x2b 4689 #undef MC_CMD_0x2b_PRIVILEGE_CTG 4690 4691 #define MC_CMD_0x2b_PRIVILEGE_CTG SRIOV_CTG_LINK 4692 4693 /* MC_CMD_SET_ID_LED_IN msgrequest */ 4694 #define MC_CMD_SET_ID_LED_IN_LEN 4 4695 /* Set LED state. */ 4696 #define MC_CMD_SET_ID_LED_IN_STATE_OFST 0 4697 #define MC_CMD_SET_ID_LED_IN_STATE_LEN 4 4698 #define MC_CMD_LED_OFF 0x0 /* enum */ 4699 #define MC_CMD_LED_ON 0x1 /* enum */ 4700 #define MC_CMD_LED_DEFAULT 0x2 /* enum */ 4701 4702 /* MC_CMD_SET_ID_LED_OUT msgresponse */ 4703 #define MC_CMD_SET_ID_LED_OUT_LEN 0 4704 4705 4706 /***********************************/ 4707 /* MC_CMD_SET_MAC 4708 * Set MAC configuration. Locks required: None. Return code: 0, EINVAL 4709 */ 4710 #define MC_CMD_SET_MAC 0x2c 4711 #undef MC_CMD_0x2c_PRIVILEGE_CTG 4712 4713 #define MC_CMD_0x2c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 4714 4715 /* MC_CMD_SET_MAC_IN msgrequest */ 4716 #define MC_CMD_SET_MAC_IN_LEN 28 4717 /* The MTU is the MTU programmed directly into the XMAC/GMAC (inclusive of 4718 * EtherII, VLAN, bug16011 padding). 4719 */ 4720 #define MC_CMD_SET_MAC_IN_MTU_OFST 0 4721 #define MC_CMD_SET_MAC_IN_MTU_LEN 4 4722 #define MC_CMD_SET_MAC_IN_DRAIN_OFST 4 4723 #define MC_CMD_SET_MAC_IN_DRAIN_LEN 4 4724 #define MC_CMD_SET_MAC_IN_ADDR_OFST 8 4725 #define MC_CMD_SET_MAC_IN_ADDR_LEN 8 4726 #define MC_CMD_SET_MAC_IN_ADDR_LO_OFST 8 4727 #define MC_CMD_SET_MAC_IN_ADDR_HI_OFST 12 4728 #define MC_CMD_SET_MAC_IN_REJECT_OFST 16 4729 #define MC_CMD_SET_MAC_IN_REJECT_LEN 4 4730 #define MC_CMD_SET_MAC_IN_REJECT_UNCST_OFST 16 4731 #define MC_CMD_SET_MAC_IN_REJECT_UNCST_LBN 0 4732 #define MC_CMD_SET_MAC_IN_REJECT_UNCST_WIDTH 1 4733 #define MC_CMD_SET_MAC_IN_REJECT_BRDCST_OFST 16 4734 #define MC_CMD_SET_MAC_IN_REJECT_BRDCST_LBN 1 4735 #define MC_CMD_SET_MAC_IN_REJECT_BRDCST_WIDTH 1 4736 #define MC_CMD_SET_MAC_IN_FCNTL_OFST 20 4737 #define MC_CMD_SET_MAC_IN_FCNTL_LEN 4 4738 /* enum: Flow control is off. */ 4739 #define MC_CMD_FCNTL_OFF 0x0 4740 /* enum: Respond to flow control. */ 4741 #define MC_CMD_FCNTL_RESPOND 0x1 4742 /* enum: Respond to and Issue flow control. */ 4743 #define MC_CMD_FCNTL_BIDIR 0x2 4744 /* enum: Auto neg flow control. */ 4745 #define MC_CMD_FCNTL_AUTO 0x3 4746 /* enum: Priority flow control (eftest builds only). */ 4747 #define MC_CMD_FCNTL_QBB 0x4 4748 /* enum: Issue flow control. */ 4749 #define MC_CMD_FCNTL_GENERATE 0x5 4750 #define MC_CMD_SET_MAC_IN_FLAGS_OFST 24 4751 #define MC_CMD_SET_MAC_IN_FLAGS_LEN 4 4752 #define MC_CMD_SET_MAC_IN_FLAG_INCLUDE_FCS_OFST 24 4753 #define MC_CMD_SET_MAC_IN_FLAG_INCLUDE_FCS_LBN 0 4754 #define MC_CMD_SET_MAC_IN_FLAG_INCLUDE_FCS_WIDTH 1 4755 4756 /* MC_CMD_SET_MAC_EXT_IN msgrequest */ 4757 #define MC_CMD_SET_MAC_EXT_IN_LEN 32 4758 /* The MTU is the MTU programmed directly into the XMAC/GMAC (inclusive of 4759 * EtherII, VLAN, bug16011 padding). 4760 */ 4761 #define MC_CMD_SET_MAC_EXT_IN_MTU_OFST 0 4762 #define MC_CMD_SET_MAC_EXT_IN_MTU_LEN 4 4763 #define MC_CMD_SET_MAC_EXT_IN_DRAIN_OFST 4 4764 #define MC_CMD_SET_MAC_EXT_IN_DRAIN_LEN 4 4765 #define MC_CMD_SET_MAC_EXT_IN_ADDR_OFST 8 4766 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LEN 8 4767 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_OFST 8 4768 #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_OFST 12 4769 #define MC_CMD_SET_MAC_EXT_IN_REJECT_OFST 16 4770 #define MC_CMD_SET_MAC_EXT_IN_REJECT_LEN 4 4771 #define MC_CMD_SET_MAC_EXT_IN_REJECT_UNCST_OFST 16 4772 #define MC_CMD_SET_MAC_EXT_IN_REJECT_UNCST_LBN 0 4773 #define MC_CMD_SET_MAC_EXT_IN_REJECT_UNCST_WIDTH 1 4774 #define MC_CMD_SET_MAC_EXT_IN_REJECT_BRDCST_OFST 16 4775 #define MC_CMD_SET_MAC_EXT_IN_REJECT_BRDCST_LBN 1 4776 #define MC_CMD_SET_MAC_EXT_IN_REJECT_BRDCST_WIDTH 1 4777 #define MC_CMD_SET_MAC_EXT_IN_FCNTL_OFST 20 4778 #define MC_CMD_SET_MAC_EXT_IN_FCNTL_LEN 4 4779 /* enum: Flow control is off. */ 4780 /* MC_CMD_FCNTL_OFF 0x0 */ 4781 /* enum: Respond to flow control. */ 4782 /* MC_CMD_FCNTL_RESPOND 0x1 */ 4783 /* enum: Respond to and Issue flow control. */ 4784 /* MC_CMD_FCNTL_BIDIR 0x2 */ 4785 /* enum: Auto neg flow control. */ 4786 /* MC_CMD_FCNTL_AUTO 0x3 */ 4787 /* enum: Priority flow control (eftest builds only). */ 4788 /* MC_CMD_FCNTL_QBB 0x4 */ 4789 /* enum: Issue flow control. */ 4790 /* MC_CMD_FCNTL_GENERATE 0x5 */ 4791 #define MC_CMD_SET_MAC_EXT_IN_FLAGS_OFST 24 4792 #define MC_CMD_SET_MAC_EXT_IN_FLAGS_LEN 4 4793 #define MC_CMD_SET_MAC_EXT_IN_FLAG_INCLUDE_FCS_OFST 24 4794 #define MC_CMD_SET_MAC_EXT_IN_FLAG_INCLUDE_FCS_LBN 0 4795 #define MC_CMD_SET_MAC_EXT_IN_FLAG_INCLUDE_FCS_WIDTH 1 4796 /* Select which parameters to configure. A parameter will only be modified if 4797 * the corresponding control flag is set. If SET_MAC_ENHANCED is not set in 4798 * capabilities then this field is ignored (and all flags are assumed to be 4799 * set). 4800 */ 4801 #define MC_CMD_SET_MAC_EXT_IN_CONTROL_OFST 28 4802 #define MC_CMD_SET_MAC_EXT_IN_CONTROL_LEN 4 4803 #define MC_CMD_SET_MAC_EXT_IN_CFG_MTU_OFST 28 4804 #define MC_CMD_SET_MAC_EXT_IN_CFG_MTU_LBN 0 4805 #define MC_CMD_SET_MAC_EXT_IN_CFG_MTU_WIDTH 1 4806 #define MC_CMD_SET_MAC_EXT_IN_CFG_DRAIN_OFST 28 4807 #define MC_CMD_SET_MAC_EXT_IN_CFG_DRAIN_LBN 1 4808 #define MC_CMD_SET_MAC_EXT_IN_CFG_DRAIN_WIDTH 1 4809 #define MC_CMD_SET_MAC_EXT_IN_CFG_REJECT_OFST 28 4810 #define MC_CMD_SET_MAC_EXT_IN_CFG_REJECT_LBN 2 4811 #define MC_CMD_SET_MAC_EXT_IN_CFG_REJECT_WIDTH 1 4812 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCNTL_OFST 28 4813 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCNTL_LBN 3 4814 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCNTL_WIDTH 1 4815 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCS_OFST 28 4816 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCS_LBN 4 4817 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCS_WIDTH 1 4818 4819 /* MC_CMD_SET_MAC_OUT msgresponse */ 4820 #define MC_CMD_SET_MAC_OUT_LEN 0 4821 4822 /* MC_CMD_SET_MAC_V2_OUT msgresponse */ 4823 #define MC_CMD_SET_MAC_V2_OUT_LEN 4 4824 /* MTU as configured after processing the request. See comment at 4825 * MC_CMD_SET_MAC_IN/MTU. To query MTU without doing any changes, set CONTROL 4826 * to 0. 4827 */ 4828 #define MC_CMD_SET_MAC_V2_OUT_MTU_OFST 0 4829 #define MC_CMD_SET_MAC_V2_OUT_MTU_LEN 4 4830 4831 4832 /***********************************/ 4833 /* MC_CMD_PHY_STATS 4834 * Get generic PHY statistics. This call returns the statistics for a generic 4835 * PHY in a sparse array (indexed by the enumerate). Each value is represented 4836 * by a 32bit number. If the DMA_ADDR is 0, then no DMA is performed, and the 4837 * statistics may be read from the message response. If DMA_ADDR != 0, then the 4838 * statistics are dmad to that (page-aligned location). Locks required: None. 4839 * Returns: 0, ETIME 4840 */ 4841 #define MC_CMD_PHY_STATS 0x2d 4842 #undef MC_CMD_0x2d_PRIVILEGE_CTG 4843 4844 #define MC_CMD_0x2d_PRIVILEGE_CTG SRIOV_CTG_LINK 4845 4846 /* MC_CMD_PHY_STATS_IN msgrequest */ 4847 #define MC_CMD_PHY_STATS_IN_LEN 8 4848 /* ??? */ 4849 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_OFST 0 4850 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LEN 8 4851 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_OFST 0 4852 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_OFST 4 4853 4854 /* MC_CMD_PHY_STATS_OUT_DMA msgresponse */ 4855 #define MC_CMD_PHY_STATS_OUT_DMA_LEN 0 4856 4857 /* MC_CMD_PHY_STATS_OUT_NO_DMA msgresponse */ 4858 #define MC_CMD_PHY_STATS_OUT_NO_DMA_LEN (((MC_CMD_PHY_NSTATS*32))>>3) 4859 #define MC_CMD_PHY_STATS_OUT_NO_DMA_STATISTICS_OFST 0 4860 #define MC_CMD_PHY_STATS_OUT_NO_DMA_STATISTICS_LEN 4 4861 #define MC_CMD_PHY_STATS_OUT_NO_DMA_STATISTICS_NUM MC_CMD_PHY_NSTATS 4862 /* enum: OUI. */ 4863 #define MC_CMD_OUI 0x0 4864 /* enum: PMA-PMD Link Up. */ 4865 #define MC_CMD_PMA_PMD_LINK_UP 0x1 4866 /* enum: PMA-PMD RX Fault. */ 4867 #define MC_CMD_PMA_PMD_RX_FAULT 0x2 4868 /* enum: PMA-PMD TX Fault. */ 4869 #define MC_CMD_PMA_PMD_TX_FAULT 0x3 4870 /* enum: PMA-PMD Signal */ 4871 #define MC_CMD_PMA_PMD_SIGNAL 0x4 4872 /* enum: PMA-PMD SNR A. */ 4873 #define MC_CMD_PMA_PMD_SNR_A 0x5 4874 /* enum: PMA-PMD SNR B. */ 4875 #define MC_CMD_PMA_PMD_SNR_B 0x6 4876 /* enum: PMA-PMD SNR C. */ 4877 #define MC_CMD_PMA_PMD_SNR_C 0x7 4878 /* enum: PMA-PMD SNR D. */ 4879 #define MC_CMD_PMA_PMD_SNR_D 0x8 4880 /* enum: PCS Link Up. */ 4881 #define MC_CMD_PCS_LINK_UP 0x9 4882 /* enum: PCS RX Fault. */ 4883 #define MC_CMD_PCS_RX_FAULT 0xa 4884 /* enum: PCS TX Fault. */ 4885 #define MC_CMD_PCS_TX_FAULT 0xb 4886 /* enum: PCS BER. */ 4887 #define MC_CMD_PCS_BER 0xc 4888 /* enum: PCS Block Errors. */ 4889 #define MC_CMD_PCS_BLOCK_ERRORS 0xd 4890 /* enum: PhyXS Link Up. */ 4891 #define MC_CMD_PHYXS_LINK_UP 0xe 4892 /* enum: PhyXS RX Fault. */ 4893 #define MC_CMD_PHYXS_RX_FAULT 0xf 4894 /* enum: PhyXS TX Fault. */ 4895 #define MC_CMD_PHYXS_TX_FAULT 0x10 4896 /* enum: PhyXS Align. */ 4897 #define MC_CMD_PHYXS_ALIGN 0x11 4898 /* enum: PhyXS Sync. */ 4899 #define MC_CMD_PHYXS_SYNC 0x12 4900 /* enum: AN link-up. */ 4901 #define MC_CMD_AN_LINK_UP 0x13 4902 /* enum: AN Complete. */ 4903 #define MC_CMD_AN_COMPLETE 0x14 4904 /* enum: AN 10GBaseT Status. */ 4905 #define MC_CMD_AN_10GBT_STATUS 0x15 4906 /* enum: Clause 22 Link-Up. */ 4907 #define MC_CMD_CL22_LINK_UP 0x16 4908 /* enum: (Last entry) */ 4909 #define MC_CMD_PHY_NSTATS 0x17 4910 4911 4912 /***********************************/ 4913 /* MC_CMD_MAC_STATS 4914 * Get generic MAC statistics. This call returns unified statistics maintained 4915 * by the MC as it switches between the GMAC and XMAC. The MC will write out 4916 * all supported stats. The driver should zero initialise the buffer to 4917 * guarantee consistent results. If the DMA_ADDR is 0, then no DMA is 4918 * performed, and the statistics may be read from the message response. If 4919 * DMA_ADDR != 0, then the statistics are dmad to that (page-aligned location). 4920 * Locks required: None. The PERIODIC_CLEAR option is not used and now has no 4921 * effect. Returns: 0, ETIME 4922 */ 4923 #define MC_CMD_MAC_STATS 0x2e 4924 #undef MC_CMD_0x2e_PRIVILEGE_CTG 4925 4926 #define MC_CMD_0x2e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 4927 4928 /* MC_CMD_MAC_STATS_IN msgrequest */ 4929 #define MC_CMD_MAC_STATS_IN_LEN 20 4930 /* ??? */ 4931 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_OFST 0 4932 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LEN 8 4933 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_OFST 0 4934 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_OFST 4 4935 #define MC_CMD_MAC_STATS_IN_CMD_OFST 8 4936 #define MC_CMD_MAC_STATS_IN_CMD_LEN 4 4937 #define MC_CMD_MAC_STATS_IN_DMA_OFST 8 4938 #define MC_CMD_MAC_STATS_IN_DMA_LBN 0 4939 #define MC_CMD_MAC_STATS_IN_DMA_WIDTH 1 4940 #define MC_CMD_MAC_STATS_IN_CLEAR_OFST 8 4941 #define MC_CMD_MAC_STATS_IN_CLEAR_LBN 1 4942 #define MC_CMD_MAC_STATS_IN_CLEAR_WIDTH 1 4943 #define MC_CMD_MAC_STATS_IN_PERIODIC_CHANGE_OFST 8 4944 #define MC_CMD_MAC_STATS_IN_PERIODIC_CHANGE_LBN 2 4945 #define MC_CMD_MAC_STATS_IN_PERIODIC_CHANGE_WIDTH 1 4946 #define MC_CMD_MAC_STATS_IN_PERIODIC_ENABLE_OFST 8 4947 #define MC_CMD_MAC_STATS_IN_PERIODIC_ENABLE_LBN 3 4948 #define MC_CMD_MAC_STATS_IN_PERIODIC_ENABLE_WIDTH 1 4949 #define MC_CMD_MAC_STATS_IN_PERIODIC_CLEAR_OFST 8 4950 #define MC_CMD_MAC_STATS_IN_PERIODIC_CLEAR_LBN 4 4951 #define MC_CMD_MAC_STATS_IN_PERIODIC_CLEAR_WIDTH 1 4952 #define MC_CMD_MAC_STATS_IN_PERIODIC_NOEVENT_OFST 8 4953 #define MC_CMD_MAC_STATS_IN_PERIODIC_NOEVENT_LBN 5 4954 #define MC_CMD_MAC_STATS_IN_PERIODIC_NOEVENT_WIDTH 1 4955 #define MC_CMD_MAC_STATS_IN_PERIOD_MS_OFST 8 4956 #define MC_CMD_MAC_STATS_IN_PERIOD_MS_LBN 16 4957 #define MC_CMD_MAC_STATS_IN_PERIOD_MS_WIDTH 16 4958 /* DMA length. Should be set to MAC_STATS_NUM_STATS * sizeof(uint64_t), as 4959 * returned by MC_CMD_GET_CAPABILITIES_V4_OUT. For legacy firmware not 4960 * supporting MC_CMD_GET_CAPABILITIES_V4_OUT, DMA_LEN should be set to 4961 * MC_CMD_MAC_NSTATS * sizeof(uint64_t) 4962 */ 4963 #define MC_CMD_MAC_STATS_IN_DMA_LEN_OFST 12 4964 #define MC_CMD_MAC_STATS_IN_DMA_LEN_LEN 4 4965 /* port id so vadapter stats can be provided */ 4966 #define MC_CMD_MAC_STATS_IN_PORT_ID_OFST 16 4967 #define MC_CMD_MAC_STATS_IN_PORT_ID_LEN 4 4968 4969 /* MC_CMD_MAC_STATS_OUT_DMA msgresponse */ 4970 #define MC_CMD_MAC_STATS_OUT_DMA_LEN 0 4971 4972 /* MC_CMD_MAC_STATS_OUT_NO_DMA msgresponse */ 4973 #define MC_CMD_MAC_STATS_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS*64))>>3) 4974 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_OFST 0 4975 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LEN 8 4976 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_OFST 0 4977 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_OFST 4 4978 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS 4979 #define MC_CMD_MAC_GENERATION_START 0x0 /* enum */ 4980 #define MC_CMD_MAC_DMABUF_START 0x1 /* enum */ 4981 #define MC_CMD_MAC_TX_PKTS 0x1 /* enum */ 4982 #define MC_CMD_MAC_TX_PAUSE_PKTS 0x2 /* enum */ 4983 #define MC_CMD_MAC_TX_CONTROL_PKTS 0x3 /* enum */ 4984 #define MC_CMD_MAC_TX_UNICAST_PKTS 0x4 /* enum */ 4985 #define MC_CMD_MAC_TX_MULTICAST_PKTS 0x5 /* enum */ 4986 #define MC_CMD_MAC_TX_BROADCAST_PKTS 0x6 /* enum */ 4987 #define MC_CMD_MAC_TX_BYTES 0x7 /* enum */ 4988 #define MC_CMD_MAC_TX_BAD_BYTES 0x8 /* enum */ 4989 #define MC_CMD_MAC_TX_LT64_PKTS 0x9 /* enum */ 4990 #define MC_CMD_MAC_TX_64_PKTS 0xa /* enum */ 4991 #define MC_CMD_MAC_TX_65_TO_127_PKTS 0xb /* enum */ 4992 #define MC_CMD_MAC_TX_128_TO_255_PKTS 0xc /* enum */ 4993 #define MC_CMD_MAC_TX_256_TO_511_PKTS 0xd /* enum */ 4994 #define MC_CMD_MAC_TX_512_TO_1023_PKTS 0xe /* enum */ 4995 #define MC_CMD_MAC_TX_1024_TO_15XX_PKTS 0xf /* enum */ 4996 #define MC_CMD_MAC_TX_15XX_TO_JUMBO_PKTS 0x10 /* enum */ 4997 #define MC_CMD_MAC_TX_GTJUMBO_PKTS 0x11 /* enum */ 4998 #define MC_CMD_MAC_TX_BAD_FCS_PKTS 0x12 /* enum */ 4999 #define MC_CMD_MAC_TX_SINGLE_COLLISION_PKTS 0x13 /* enum */ 5000 #define MC_CMD_MAC_TX_MULTIPLE_COLLISION_PKTS 0x14 /* enum */ 5001 #define MC_CMD_MAC_TX_EXCESSIVE_COLLISION_PKTS 0x15 /* enum */ 5002 #define MC_CMD_MAC_TX_LATE_COLLISION_PKTS 0x16 /* enum */ 5003 #define MC_CMD_MAC_TX_DEFERRED_PKTS 0x17 /* enum */ 5004 #define MC_CMD_MAC_TX_EXCESSIVE_DEFERRED_PKTS 0x18 /* enum */ 5005 #define MC_CMD_MAC_TX_NON_TCPUDP_PKTS 0x19 /* enum */ 5006 #define MC_CMD_MAC_TX_MAC_SRC_ERR_PKTS 0x1a /* enum */ 5007 #define MC_CMD_MAC_TX_IP_SRC_ERR_PKTS 0x1b /* enum */ 5008 #define MC_CMD_MAC_RX_PKTS 0x1c /* enum */ 5009 #define MC_CMD_MAC_RX_PAUSE_PKTS 0x1d /* enum */ 5010 #define MC_CMD_MAC_RX_GOOD_PKTS 0x1e /* enum */ 5011 #define MC_CMD_MAC_RX_CONTROL_PKTS 0x1f /* enum */ 5012 #define MC_CMD_MAC_RX_UNICAST_PKTS 0x20 /* enum */ 5013 #define MC_CMD_MAC_RX_MULTICAST_PKTS 0x21 /* enum */ 5014 #define MC_CMD_MAC_RX_BROADCAST_PKTS 0x22 /* enum */ 5015 #define MC_CMD_MAC_RX_BYTES 0x23 /* enum */ 5016 #define MC_CMD_MAC_RX_BAD_BYTES 0x24 /* enum */ 5017 #define MC_CMD_MAC_RX_64_PKTS 0x25 /* enum */ 5018 #define MC_CMD_MAC_RX_65_TO_127_PKTS 0x26 /* enum */ 5019 #define MC_CMD_MAC_RX_128_TO_255_PKTS 0x27 /* enum */ 5020 #define MC_CMD_MAC_RX_256_TO_511_PKTS 0x28 /* enum */ 5021 #define MC_CMD_MAC_RX_512_TO_1023_PKTS 0x29 /* enum */ 5022 #define MC_CMD_MAC_RX_1024_TO_15XX_PKTS 0x2a /* enum */ 5023 #define MC_CMD_MAC_RX_15XX_TO_JUMBO_PKTS 0x2b /* enum */ 5024 #define MC_CMD_MAC_RX_GTJUMBO_PKTS 0x2c /* enum */ 5025 #define MC_CMD_MAC_RX_UNDERSIZE_PKTS 0x2d /* enum */ 5026 #define MC_CMD_MAC_RX_BAD_FCS_PKTS 0x2e /* enum */ 5027 #define MC_CMD_MAC_RX_OVERFLOW_PKTS 0x2f /* enum */ 5028 #define MC_CMD_MAC_RX_FALSE_CARRIER_PKTS 0x30 /* enum */ 5029 #define MC_CMD_MAC_RX_SYMBOL_ERROR_PKTS 0x31 /* enum */ 5030 #define MC_CMD_MAC_RX_ALIGN_ERROR_PKTS 0x32 /* enum */ 5031 #define MC_CMD_MAC_RX_LENGTH_ERROR_PKTS 0x33 /* enum */ 5032 #define MC_CMD_MAC_RX_INTERNAL_ERROR_PKTS 0x34 /* enum */ 5033 #define MC_CMD_MAC_RX_JABBER_PKTS 0x35 /* enum */ 5034 #define MC_CMD_MAC_RX_NODESC_DROPS 0x36 /* enum */ 5035 #define MC_CMD_MAC_RX_LANES01_CHAR_ERR 0x37 /* enum */ 5036 #define MC_CMD_MAC_RX_LANES23_CHAR_ERR 0x38 /* enum */ 5037 #define MC_CMD_MAC_RX_LANES01_DISP_ERR 0x39 /* enum */ 5038 #define MC_CMD_MAC_RX_LANES23_DISP_ERR 0x3a /* enum */ 5039 #define MC_CMD_MAC_RX_MATCH_FAULT 0x3b /* enum */ 5040 /* enum: PM trunc_bb_overflow counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 5041 * capability only. 5042 */ 5043 #define MC_CMD_MAC_PM_TRUNC_BB_OVERFLOW 0x3c 5044 /* enum: PM discard_bb_overflow counter. Valid for EF10 with 5045 * PM_AND_RXDP_COUNTERS capability only. 5046 */ 5047 #define MC_CMD_MAC_PM_DISCARD_BB_OVERFLOW 0x3d 5048 /* enum: PM trunc_vfifo_full counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 5049 * capability only. 5050 */ 5051 #define MC_CMD_MAC_PM_TRUNC_VFIFO_FULL 0x3e 5052 /* enum: PM discard_vfifo_full counter. Valid for EF10 with 5053 * PM_AND_RXDP_COUNTERS capability only. 5054 */ 5055 #define MC_CMD_MAC_PM_DISCARD_VFIFO_FULL 0x3f 5056 /* enum: PM trunc_qbb counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 5057 * capability only. 5058 */ 5059 #define MC_CMD_MAC_PM_TRUNC_QBB 0x40 5060 /* enum: PM discard_qbb counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 5061 * capability only. 5062 */ 5063 #define MC_CMD_MAC_PM_DISCARD_QBB 0x41 5064 /* enum: PM discard_mapping counter. Valid for EF10 with PM_AND_RXDP_COUNTERS 5065 * capability only. 5066 */ 5067 #define MC_CMD_MAC_PM_DISCARD_MAPPING 0x42 5068 /* enum: RXDP counter: Number of packets dropped due to the queue being 5069 * disabled. Valid for EF10 with PM_AND_RXDP_COUNTERS capability only. 5070 */ 5071 #define MC_CMD_MAC_RXDP_Q_DISABLED_PKTS 0x43 5072 /* enum: RXDP counter: Number of packets dropped by the DICPU. Valid for EF10 5073 * with PM_AND_RXDP_COUNTERS capability only. 5074 */ 5075 #define MC_CMD_MAC_RXDP_DI_DROPPED_PKTS 0x45 5076 /* enum: RXDP counter: Number of non-host packets. Valid for EF10 with 5077 * PM_AND_RXDP_COUNTERS capability only. 5078 */ 5079 #define MC_CMD_MAC_RXDP_STREAMING_PKTS 0x46 5080 /* enum: RXDP counter: Number of times an hlb descriptor fetch was performed. 5081 * Valid for EF10 with PM_AND_RXDP_COUNTERS capability only. 5082 */ 5083 #define MC_CMD_MAC_RXDP_HLB_FETCH_CONDITIONS 0x47 5084 /* enum: RXDP counter: Number of times the DPCPU waited for an existing 5085 * descriptor fetch. Valid for EF10 with PM_AND_RXDP_COUNTERS capability only. 5086 */ 5087 #define MC_CMD_MAC_RXDP_HLB_WAIT_CONDITIONS 0x48 5088 #define MC_CMD_MAC_VADAPTER_RX_DMABUF_START 0x4c /* enum */ 5089 #define MC_CMD_MAC_VADAPTER_RX_UNICAST_PACKETS 0x4c /* enum */ 5090 #define MC_CMD_MAC_VADAPTER_RX_UNICAST_BYTES 0x4d /* enum */ 5091 #define MC_CMD_MAC_VADAPTER_RX_MULTICAST_PACKETS 0x4e /* enum */ 5092 #define MC_CMD_MAC_VADAPTER_RX_MULTICAST_BYTES 0x4f /* enum */ 5093 #define MC_CMD_MAC_VADAPTER_RX_BROADCAST_PACKETS 0x50 /* enum */ 5094 #define MC_CMD_MAC_VADAPTER_RX_BROADCAST_BYTES 0x51 /* enum */ 5095 #define MC_CMD_MAC_VADAPTER_RX_BAD_PACKETS 0x52 /* enum */ 5096 #define MC_CMD_MAC_VADAPTER_RX_BAD_BYTES 0x53 /* enum */ 5097 #define MC_CMD_MAC_VADAPTER_RX_OVERFLOW 0x54 /* enum */ 5098 #define MC_CMD_MAC_VADAPTER_TX_DMABUF_START 0x57 /* enum */ 5099 #define MC_CMD_MAC_VADAPTER_TX_UNICAST_PACKETS 0x57 /* enum */ 5100 #define MC_CMD_MAC_VADAPTER_TX_UNICAST_BYTES 0x58 /* enum */ 5101 #define MC_CMD_MAC_VADAPTER_TX_MULTICAST_PACKETS 0x59 /* enum */ 5102 #define MC_CMD_MAC_VADAPTER_TX_MULTICAST_BYTES 0x5a /* enum */ 5103 #define MC_CMD_MAC_VADAPTER_TX_BROADCAST_PACKETS 0x5b /* enum */ 5104 #define MC_CMD_MAC_VADAPTER_TX_BROADCAST_BYTES 0x5c /* enum */ 5105 #define MC_CMD_MAC_VADAPTER_TX_BAD_PACKETS 0x5d /* enum */ 5106 #define MC_CMD_MAC_VADAPTER_TX_BAD_BYTES 0x5e /* enum */ 5107 #define MC_CMD_MAC_VADAPTER_TX_OVERFLOW 0x5f /* enum */ 5108 /* enum: Start of GMAC stats buffer space, for Siena only. */ 5109 #define MC_CMD_GMAC_DMABUF_START 0x40 5110 /* enum: End of GMAC stats buffer space, for Siena only. */ 5111 #define MC_CMD_GMAC_DMABUF_END 0x5f 5112 /* enum: GENERATION_END value, used together with GENERATION_START to verify 5113 * consistency of DMAd data. For legacy firmware / drivers without extended 5114 * stats (more precisely, when DMA_LEN == MC_CMD_MAC_NSTATS * 5115 * sizeof(uint64_t)), this entry holds the GENERATION_END value. Otherwise, 5116 * this value is invalid/ reserved and GENERATION_END is written as the last 5117 * 64-bit word of the DMA buffer (at DMA_LEN - sizeof(uint64_t)). Note that 5118 * this is consistent with the legacy behaviour, in the sense that entry 96 is 5119 * the last 64-bit word in the buffer when DMA_LEN == MC_CMD_MAC_NSTATS * 5120 * sizeof(uint64_t). See SF-109306-TC, Section 9.2 for details. 5121 */ 5122 #define MC_CMD_MAC_GENERATION_END 0x60 5123 #define MC_CMD_MAC_NSTATS 0x61 /* enum */ 5124 5125 /* MC_CMD_MAC_STATS_V2_OUT_DMA msgresponse */ 5126 #define MC_CMD_MAC_STATS_V2_OUT_DMA_LEN 0 5127 5128 /* MC_CMD_MAC_STATS_V2_OUT_NO_DMA msgresponse */ 5129 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS_V2*64))>>3) 5130 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_OFST 0 5131 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LEN 8 5132 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_OFST 0 5133 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_OFST 4 5134 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS_V2 5135 /* enum: Start of FEC stats buffer space, Medford2 and up */ 5136 #define MC_CMD_MAC_FEC_DMABUF_START 0x61 5137 /* enum: Number of uncorrected FEC codewords on link (RS-FEC only for Medford2) 5138 */ 5139 #define MC_CMD_MAC_FEC_UNCORRECTED_ERRORS 0x61 5140 /* enum: Number of corrected FEC codewords on link (RS-FEC only for Medford2) 5141 */ 5142 #define MC_CMD_MAC_FEC_CORRECTED_ERRORS 0x62 5143 /* enum: Number of corrected 10-bit symbol errors, lane 0 (RS-FEC only) */ 5144 #define MC_CMD_MAC_FEC_CORRECTED_SYMBOLS_LANE0 0x63 5145 /* enum: Number of corrected 10-bit symbol errors, lane 1 (RS-FEC only) */ 5146 #define MC_CMD_MAC_FEC_CORRECTED_SYMBOLS_LANE1 0x64 5147 /* enum: Number of corrected 10-bit symbol errors, lane 2 (RS-FEC only) */ 5148 #define MC_CMD_MAC_FEC_CORRECTED_SYMBOLS_LANE2 0x65 5149 /* enum: Number of corrected 10-bit symbol errors, lane 3 (RS-FEC only) */ 5150 #define MC_CMD_MAC_FEC_CORRECTED_SYMBOLS_LANE3 0x66 5151 /* enum: This includes the space at offset 103 which is the final 5152 * GENERATION_END in a MAC_STATS_V2 response and otherwise unused. 5153 */ 5154 #define MC_CMD_MAC_NSTATS_V2 0x68 5155 /* Other enum values, see field(s): */ 5156 /* MC_CMD_MAC_STATS_OUT_NO_DMA/STATISTICS */ 5157 5158 /* MC_CMD_MAC_STATS_V3_OUT_DMA msgresponse */ 5159 #define MC_CMD_MAC_STATS_V3_OUT_DMA_LEN 0 5160 5161 /* MC_CMD_MAC_STATS_V3_OUT_NO_DMA msgresponse */ 5162 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS_V3*64))>>3) 5163 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_OFST 0 5164 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LEN 8 5165 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_OFST 0 5166 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_OFST 4 5167 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS_V3 5168 /* enum: Start of CTPIO stats buffer space, Medford2 and up */ 5169 #define MC_CMD_MAC_CTPIO_DMABUF_START 0x68 5170 /* enum: Number of CTPIO fallbacks because a DMA packet was in progress on the 5171 * target VI 5172 */ 5173 #define MC_CMD_MAC_CTPIO_VI_BUSY_FALLBACK 0x68 5174 /* enum: Number of times a CTPIO send wrote beyond frame end (informational 5175 * only) 5176 */ 5177 #define MC_CMD_MAC_CTPIO_LONG_WRITE_SUCCESS 0x69 5178 /* enum: Number of CTPIO failures because the TX doorbell was written before 5179 * the end of the frame data 5180 */ 5181 #define MC_CMD_MAC_CTPIO_MISSING_DBELL_FAIL 0x6a 5182 /* enum: Number of CTPIO failures because the internal FIFO overflowed */ 5183 #define MC_CMD_MAC_CTPIO_OVERFLOW_FAIL 0x6b 5184 /* enum: Number of CTPIO failures because the host did not deliver data fast 5185 * enough to avoid MAC underflow 5186 */ 5187 #define MC_CMD_MAC_CTPIO_UNDERFLOW_FAIL 0x6c 5188 /* enum: Number of CTPIO failures because the host did not deliver all the 5189 * frame data within the timeout 5190 */ 5191 #define MC_CMD_MAC_CTPIO_TIMEOUT_FAIL 0x6d 5192 /* enum: Number of CTPIO failures because the frame data arrived out of order 5193 * or with gaps 5194 */ 5195 #define MC_CMD_MAC_CTPIO_NONCONTIG_WR_FAIL 0x6e 5196 /* enum: Number of CTPIO failures because the host started a new frame before 5197 * completing the previous one 5198 */ 5199 #define MC_CMD_MAC_CTPIO_FRM_CLOBBER_FAIL 0x6f 5200 /* enum: Number of CTPIO failures because a write was not a multiple of 32 bits 5201 * or not 32-bit aligned 5202 */ 5203 #define MC_CMD_MAC_CTPIO_INVALID_WR_FAIL 0x70 5204 /* enum: Number of CTPIO fallbacks because another VI on the same port was 5205 * sending a CTPIO frame 5206 */ 5207 #define MC_CMD_MAC_CTPIO_VI_CLOBBER_FALLBACK 0x71 5208 /* enum: Number of CTPIO fallbacks because target VI did not have CTPIO enabled 5209 */ 5210 #define MC_CMD_MAC_CTPIO_UNQUALIFIED_FALLBACK 0x72 5211 /* enum: Number of CTPIO fallbacks because length in header was less than 29 5212 * bytes 5213 */ 5214 #define MC_CMD_MAC_CTPIO_RUNT_FALLBACK 0x73 5215 /* enum: Total number of successful CTPIO sends on this port */ 5216 #define MC_CMD_MAC_CTPIO_SUCCESS 0x74 5217 /* enum: Total number of CTPIO fallbacks on this port */ 5218 #define MC_CMD_MAC_CTPIO_FALLBACK 0x75 5219 /* enum: Total number of CTPIO poisoned frames on this port, whether erased or 5220 * not 5221 */ 5222 #define MC_CMD_MAC_CTPIO_POISON 0x76 5223 /* enum: Total number of CTPIO erased frames on this port */ 5224 #define MC_CMD_MAC_CTPIO_ERASE 0x77 5225 /* enum: This includes the space at offset 120 which is the final 5226 * GENERATION_END in a MAC_STATS_V3 response and otherwise unused. 5227 */ 5228 #define MC_CMD_MAC_NSTATS_V3 0x79 5229 /* Other enum values, see field(s): */ 5230 /* MC_CMD_MAC_STATS_V2_OUT_NO_DMA/STATISTICS */ 5231 5232 /* MC_CMD_MAC_STATS_V4_OUT_DMA msgresponse */ 5233 #define MC_CMD_MAC_STATS_V4_OUT_DMA_LEN 0 5234 5235 /* MC_CMD_MAC_STATS_V4_OUT_NO_DMA msgresponse */ 5236 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_LEN (((MC_CMD_MAC_NSTATS_V4*64))>>3) 5237 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_OFST 0 5238 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LEN 8 5239 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_OFST 0 5240 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_OFST 4 5241 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_NUM MC_CMD_MAC_NSTATS_V4 5242 /* enum: Start of V4 stats buffer space */ 5243 #define MC_CMD_MAC_V4_DMABUF_START 0x79 5244 /* enum: RXDP counter: Number of packets truncated because scattering was 5245 * disabled. 5246 */ 5247 #define MC_CMD_MAC_RXDP_SCATTER_DISABLED_TRUNC 0x79 5248 /* enum: RXDP counter: Number of times the RXDP head of line blocked waiting 5249 * for descriptors. Will be zero unless RXDP_HLB_IDLE capability is set. 5250 */ 5251 #define MC_CMD_MAC_RXDP_HLB_IDLE 0x7a 5252 /* enum: RXDP counter: Number of times the RXDP timed out while head of line 5253 * blocking. Will be zero unless RXDP_HLB_IDLE capability is set. 5254 */ 5255 #define MC_CMD_MAC_RXDP_HLB_TIMEOUT 0x7b 5256 /* enum: This includes the space at offset 124 which is the final 5257 * GENERATION_END in a MAC_STATS_V4 response and otherwise unused. 5258 */ 5259 #define MC_CMD_MAC_NSTATS_V4 0x7d 5260 /* Other enum values, see field(s): */ 5261 /* MC_CMD_MAC_STATS_V3_OUT_NO_DMA/STATISTICS */ 5262 5263 5264 /***********************************/ 5265 /* MC_CMD_SRIOV 5266 * to be documented 5267 */ 5268 #define MC_CMD_SRIOV 0x30 5269 5270 /* MC_CMD_SRIOV_IN msgrequest */ 5271 #define MC_CMD_SRIOV_IN_LEN 12 5272 #define MC_CMD_SRIOV_IN_ENABLE_OFST 0 5273 #define MC_CMD_SRIOV_IN_ENABLE_LEN 4 5274 #define MC_CMD_SRIOV_IN_VI_BASE_OFST 4 5275 #define MC_CMD_SRIOV_IN_VI_BASE_LEN 4 5276 #define MC_CMD_SRIOV_IN_VF_COUNT_OFST 8 5277 #define MC_CMD_SRIOV_IN_VF_COUNT_LEN 4 5278 5279 /* MC_CMD_SRIOV_OUT msgresponse */ 5280 #define MC_CMD_SRIOV_OUT_LEN 8 5281 #define MC_CMD_SRIOV_OUT_VI_SCALE_OFST 0 5282 #define MC_CMD_SRIOV_OUT_VI_SCALE_LEN 4 5283 #define MC_CMD_SRIOV_OUT_VF_TOTAL_OFST 4 5284 #define MC_CMD_SRIOV_OUT_VF_TOTAL_LEN 4 5285 5286 /* MC_CMD_MEMCPY_RECORD_TYPEDEF structuredef */ 5287 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_LEN 32 5288 /* this is only used for the first record */ 5289 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_NUM_RECORDS_OFST 0 5290 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_NUM_RECORDS_LEN 4 5291 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_NUM_RECORDS_LBN 0 5292 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_NUM_RECORDS_WIDTH 32 5293 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_RID_OFST 4 5294 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_RID_LEN 4 5295 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_RID_LBN 32 5296 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_RID_WIDTH 32 5297 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_OFST 8 5298 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LEN 8 5299 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LO_OFST 8 5300 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_HI_OFST 12 5301 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_LBN 64 5302 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_TO_ADDR_WIDTH 64 5303 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_RID_OFST 16 5304 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_RID_LEN 4 5305 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_RID_INLINE 0x100 /* enum */ 5306 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_RID_LBN 128 5307 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_RID_WIDTH 32 5308 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_OFST 20 5309 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LEN 8 5310 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LO_OFST 20 5311 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_HI_OFST 24 5312 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_LBN 160 5313 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_FROM_ADDR_WIDTH 64 5314 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_LENGTH_OFST 28 5315 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_LENGTH_LEN 4 5316 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_LENGTH_LBN 224 5317 #define MC_CMD_MEMCPY_RECORD_TYPEDEF_LENGTH_WIDTH 32 5318 5319 5320 /***********************************/ 5321 /* MC_CMD_MEMCPY 5322 * DMA write data into (Rid,Addr), either by dma reading (Rid,Addr), or by data 5323 * embedded directly in the command. 5324 * 5325 * A common pattern is for a client to use generation counts to signal a dma 5326 * update of a datastructure. To facilitate this, this MCDI operation can 5327 * contain multiple requests which are executed in strict order. Requests take 5328 * the form of duplicating the entire MCDI request continuously (including the 5329 * requests record, which is ignored in all but the first structure) 5330 * 5331 * The source data can either come from a DMA from the host, or it can be 5332 * embedded within the request directly, thereby eliminating a DMA read. To 5333 * indicate this, the client sets FROM_RID=%RID_INLINE, ADDR_HI=0, and 5334 * ADDR_LO=offset, and inserts the data at %offset from the start of the 5335 * payload. It's the callers responsibility to ensure that the embedded data 5336 * doesn't overlap the records. 5337 * 5338 * Returns: 0, EINVAL (invalid RID) 5339 */ 5340 #define MC_CMD_MEMCPY 0x31 5341 5342 /* MC_CMD_MEMCPY_IN msgrequest */ 5343 #define MC_CMD_MEMCPY_IN_LENMIN 32 5344 #define MC_CMD_MEMCPY_IN_LENMAX 224 5345 #define MC_CMD_MEMCPY_IN_LENMAX_MCDI2 992 5346 #define MC_CMD_MEMCPY_IN_LEN(num) (0+32*(num)) 5347 #define MC_CMD_MEMCPY_IN_RECORD_NUM(len) (((len)-0)/32) 5348 /* see MC_CMD_MEMCPY_RECORD_TYPEDEF */ 5349 #define MC_CMD_MEMCPY_IN_RECORD_OFST 0 5350 #define MC_CMD_MEMCPY_IN_RECORD_LEN 32 5351 #define MC_CMD_MEMCPY_IN_RECORD_MINNUM 1 5352 #define MC_CMD_MEMCPY_IN_RECORD_MAXNUM 7 5353 #define MC_CMD_MEMCPY_IN_RECORD_MAXNUM_MCDI2 31 5354 5355 /* MC_CMD_MEMCPY_OUT msgresponse */ 5356 #define MC_CMD_MEMCPY_OUT_LEN 0 5357 5358 5359 /***********************************/ 5360 /* MC_CMD_WOL_FILTER_SET 5361 * Set a WoL filter. 5362 */ 5363 #define MC_CMD_WOL_FILTER_SET 0x32 5364 #undef MC_CMD_0x32_PRIVILEGE_CTG 5365 5366 #define MC_CMD_0x32_PRIVILEGE_CTG SRIOV_CTG_LINK 5367 5368 /* MC_CMD_WOL_FILTER_SET_IN msgrequest */ 5369 #define MC_CMD_WOL_FILTER_SET_IN_LEN 192 5370 #define MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 5371 #define MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 5372 #define MC_CMD_FILTER_MODE_SIMPLE 0x0 /* enum */ 5373 #define MC_CMD_FILTER_MODE_STRUCTURED 0xffffffff /* enum */ 5374 /* A type value of 1 is unused. */ 5375 #define MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 5376 #define MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 5377 /* enum: Magic */ 5378 #define MC_CMD_WOL_TYPE_MAGIC 0x0 5379 /* enum: MS Windows Magic */ 5380 #define MC_CMD_WOL_TYPE_WIN_MAGIC 0x2 5381 /* enum: IPv4 Syn */ 5382 #define MC_CMD_WOL_TYPE_IPV4_SYN 0x3 5383 /* enum: IPv6 Syn */ 5384 #define MC_CMD_WOL_TYPE_IPV6_SYN 0x4 5385 /* enum: Bitmap */ 5386 #define MC_CMD_WOL_TYPE_BITMAP 0x5 5387 /* enum: Link */ 5388 #define MC_CMD_WOL_TYPE_LINK 0x6 5389 /* enum: (Above this for future use) */ 5390 #define MC_CMD_WOL_TYPE_MAX 0x7 5391 #define MC_CMD_WOL_FILTER_SET_IN_DATA_OFST 8 5392 #define MC_CMD_WOL_FILTER_SET_IN_DATA_LEN 4 5393 #define MC_CMD_WOL_FILTER_SET_IN_DATA_NUM 46 5394 5395 /* MC_CMD_WOL_FILTER_SET_IN_MAGIC msgrequest */ 5396 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_LEN 16 5397 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 5398 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 5399 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 5400 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 5401 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_OFST 8 5402 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LEN 8 5403 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_OFST 8 5404 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_OFST 12 5405 5406 /* MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN msgrequest */ 5407 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_LEN 20 5408 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 5409 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 5410 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 5411 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 5412 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_IP_OFST 8 5413 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_IP_LEN 4 5414 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_IP_OFST 12 5415 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_IP_LEN 4 5416 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_PORT_OFST 16 5417 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_PORT_LEN 2 5418 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_PORT_OFST 18 5419 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_PORT_LEN 2 5420 5421 /* MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN msgrequest */ 5422 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_LEN 44 5423 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 5424 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 5425 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 5426 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 5427 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_SRC_IP_OFST 8 5428 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_SRC_IP_LEN 16 5429 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_DST_IP_OFST 24 5430 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_DST_IP_LEN 16 5431 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_SRC_PORT_OFST 40 5432 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_SRC_PORT_LEN 2 5433 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_DST_PORT_OFST 42 5434 #define MC_CMD_WOL_FILTER_SET_IN_IPV6_SYN_DST_PORT_LEN 2 5435 5436 /* MC_CMD_WOL_FILTER_SET_IN_BITMAP msgrequest */ 5437 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LEN 187 5438 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 5439 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 5440 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 5441 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 5442 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_MASK_OFST 8 5443 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_MASK_LEN 48 5444 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_BITMAP_OFST 56 5445 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_BITMAP_LEN 128 5446 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LEN_OFST 184 5447 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LEN_LEN 1 5448 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER3_OFST 185 5449 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER3_LEN 1 5450 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER4_OFST 186 5451 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER4_LEN 1 5452 5453 /* MC_CMD_WOL_FILTER_SET_IN_LINK msgrequest */ 5454 #define MC_CMD_WOL_FILTER_SET_IN_LINK_LEN 12 5455 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_OFST 0 */ 5456 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */ 5457 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */ 5458 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */ 5459 #define MC_CMD_WOL_FILTER_SET_IN_LINK_MASK_OFST 8 5460 #define MC_CMD_WOL_FILTER_SET_IN_LINK_MASK_LEN 4 5461 #define MC_CMD_WOL_FILTER_SET_IN_LINK_UP_OFST 8 5462 #define MC_CMD_WOL_FILTER_SET_IN_LINK_UP_LBN 0 5463 #define MC_CMD_WOL_FILTER_SET_IN_LINK_UP_WIDTH 1 5464 #define MC_CMD_WOL_FILTER_SET_IN_LINK_DOWN_OFST 8 5465 #define MC_CMD_WOL_FILTER_SET_IN_LINK_DOWN_LBN 1 5466 #define MC_CMD_WOL_FILTER_SET_IN_LINK_DOWN_WIDTH 1 5467 5468 /* MC_CMD_WOL_FILTER_SET_OUT msgresponse */ 5469 #define MC_CMD_WOL_FILTER_SET_OUT_LEN 4 5470 #define MC_CMD_WOL_FILTER_SET_OUT_FILTER_ID_OFST 0 5471 #define MC_CMD_WOL_FILTER_SET_OUT_FILTER_ID_LEN 4 5472 5473 5474 /***********************************/ 5475 /* MC_CMD_WOL_FILTER_REMOVE 5476 * Remove a WoL filter. Locks required: None. Returns: 0, EINVAL, ENOSYS 5477 */ 5478 #define MC_CMD_WOL_FILTER_REMOVE 0x33 5479 #undef MC_CMD_0x33_PRIVILEGE_CTG 5480 5481 #define MC_CMD_0x33_PRIVILEGE_CTG SRIOV_CTG_LINK 5482 5483 /* MC_CMD_WOL_FILTER_REMOVE_IN msgrequest */ 5484 #define MC_CMD_WOL_FILTER_REMOVE_IN_LEN 4 5485 #define MC_CMD_WOL_FILTER_REMOVE_IN_FILTER_ID_OFST 0 5486 #define MC_CMD_WOL_FILTER_REMOVE_IN_FILTER_ID_LEN 4 5487 5488 /* MC_CMD_WOL_FILTER_REMOVE_OUT msgresponse */ 5489 #define MC_CMD_WOL_FILTER_REMOVE_OUT_LEN 0 5490 5491 5492 /***********************************/ 5493 /* MC_CMD_WOL_FILTER_RESET 5494 * Reset (i.e. remove all) WoL filters. Locks required: None. Returns: 0, 5495 * ENOSYS 5496 */ 5497 #define MC_CMD_WOL_FILTER_RESET 0x34 5498 #undef MC_CMD_0x34_PRIVILEGE_CTG 5499 5500 #define MC_CMD_0x34_PRIVILEGE_CTG SRIOV_CTG_LINK 5501 5502 /* MC_CMD_WOL_FILTER_RESET_IN msgrequest */ 5503 #define MC_CMD_WOL_FILTER_RESET_IN_LEN 4 5504 #define MC_CMD_WOL_FILTER_RESET_IN_MASK_OFST 0 5505 #define MC_CMD_WOL_FILTER_RESET_IN_MASK_LEN 4 5506 #define MC_CMD_WOL_FILTER_RESET_IN_WAKE_FILTERS 0x1 /* enum */ 5507 #define MC_CMD_WOL_FILTER_RESET_IN_LIGHTSOUT_OFFLOADS 0x2 /* enum */ 5508 5509 /* MC_CMD_WOL_FILTER_RESET_OUT msgresponse */ 5510 #define MC_CMD_WOL_FILTER_RESET_OUT_LEN 0 5511 5512 5513 /***********************************/ 5514 /* MC_CMD_SET_MCAST_HASH 5515 * Set the MCAST hash value without otherwise reconfiguring the MAC 5516 */ 5517 #define MC_CMD_SET_MCAST_HASH 0x35 5518 5519 /* MC_CMD_SET_MCAST_HASH_IN msgrequest */ 5520 #define MC_CMD_SET_MCAST_HASH_IN_LEN 32 5521 #define MC_CMD_SET_MCAST_HASH_IN_HASH0_OFST 0 5522 #define MC_CMD_SET_MCAST_HASH_IN_HASH0_LEN 16 5523 #define MC_CMD_SET_MCAST_HASH_IN_HASH1_OFST 16 5524 #define MC_CMD_SET_MCAST_HASH_IN_HASH1_LEN 16 5525 5526 /* MC_CMD_SET_MCAST_HASH_OUT msgresponse */ 5527 #define MC_CMD_SET_MCAST_HASH_OUT_LEN 0 5528 5529 5530 /***********************************/ 5531 /* MC_CMD_NVRAM_TYPES 5532 * Return bitfield indicating available types of virtual NVRAM partitions. 5533 * Locks required: none. Returns: 0 5534 */ 5535 #define MC_CMD_NVRAM_TYPES 0x36 5536 #undef MC_CMD_0x36_PRIVILEGE_CTG 5537 5538 #define MC_CMD_0x36_PRIVILEGE_CTG SRIOV_CTG_ADMIN 5539 5540 /* MC_CMD_NVRAM_TYPES_IN msgrequest */ 5541 #define MC_CMD_NVRAM_TYPES_IN_LEN 0 5542 5543 /* MC_CMD_NVRAM_TYPES_OUT msgresponse */ 5544 #define MC_CMD_NVRAM_TYPES_OUT_LEN 4 5545 /* Bit mask of supported types. */ 5546 #define MC_CMD_NVRAM_TYPES_OUT_TYPES_OFST 0 5547 #define MC_CMD_NVRAM_TYPES_OUT_TYPES_LEN 4 5548 /* enum: Disabled callisto. */ 5549 #define MC_CMD_NVRAM_TYPE_DISABLED_CALLISTO 0x0 5550 /* enum: MC firmware. */ 5551 #define MC_CMD_NVRAM_TYPE_MC_FW 0x1 5552 /* enum: MC backup firmware. */ 5553 #define MC_CMD_NVRAM_TYPE_MC_FW_BACKUP 0x2 5554 /* enum: Static configuration Port0. */ 5555 #define MC_CMD_NVRAM_TYPE_STATIC_CFG_PORT0 0x3 5556 /* enum: Static configuration Port1. */ 5557 #define MC_CMD_NVRAM_TYPE_STATIC_CFG_PORT1 0x4 5558 /* enum: Dynamic configuration Port0. */ 5559 #define MC_CMD_NVRAM_TYPE_DYNAMIC_CFG_PORT0 0x5 5560 /* enum: Dynamic configuration Port1. */ 5561 #define MC_CMD_NVRAM_TYPE_DYNAMIC_CFG_PORT1 0x6 5562 /* enum: Expansion Rom. */ 5563 #define MC_CMD_NVRAM_TYPE_EXP_ROM 0x7 5564 /* enum: Expansion Rom Configuration Port0. */ 5565 #define MC_CMD_NVRAM_TYPE_EXP_ROM_CFG_PORT0 0x8 5566 /* enum: Expansion Rom Configuration Port1. */ 5567 #define MC_CMD_NVRAM_TYPE_EXP_ROM_CFG_PORT1 0x9 5568 /* enum: Phy Configuration Port0. */ 5569 #define MC_CMD_NVRAM_TYPE_PHY_PORT0 0xa 5570 /* enum: Phy Configuration Port1. */ 5571 #define MC_CMD_NVRAM_TYPE_PHY_PORT1 0xb 5572 /* enum: Log. */ 5573 #define MC_CMD_NVRAM_TYPE_LOG 0xc 5574 /* enum: FPGA image. */ 5575 #define MC_CMD_NVRAM_TYPE_FPGA 0xd 5576 /* enum: FPGA backup image */ 5577 #define MC_CMD_NVRAM_TYPE_FPGA_BACKUP 0xe 5578 /* enum: FC firmware. */ 5579 #define MC_CMD_NVRAM_TYPE_FC_FW 0xf 5580 /* enum: FC backup firmware. */ 5581 #define MC_CMD_NVRAM_TYPE_FC_FW_BACKUP 0x10 5582 /* enum: CPLD image. */ 5583 #define MC_CMD_NVRAM_TYPE_CPLD 0x11 5584 /* enum: Licensing information. */ 5585 #define MC_CMD_NVRAM_TYPE_LICENSE 0x12 5586 /* enum: FC Log. */ 5587 #define MC_CMD_NVRAM_TYPE_FC_LOG 0x13 5588 /* enum: Additional flash on FPGA. */ 5589 #define MC_CMD_NVRAM_TYPE_FC_EXTRA 0x14 5590 5591 5592 /***********************************/ 5593 /* MC_CMD_NVRAM_INFO 5594 * Read info about a virtual NVRAM partition. Locks required: none. Returns: 0, 5595 * EINVAL (bad type). 5596 */ 5597 #define MC_CMD_NVRAM_INFO 0x37 5598 #undef MC_CMD_0x37_PRIVILEGE_CTG 5599 5600 #define MC_CMD_0x37_PRIVILEGE_CTG SRIOV_CTG_ADMIN 5601 5602 /* MC_CMD_NVRAM_INFO_IN msgrequest */ 5603 #define MC_CMD_NVRAM_INFO_IN_LEN 4 5604 #define MC_CMD_NVRAM_INFO_IN_TYPE_OFST 0 5605 #define MC_CMD_NVRAM_INFO_IN_TYPE_LEN 4 5606 /* Enum values, see field(s): */ 5607 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 5608 5609 /* MC_CMD_NVRAM_INFO_OUT msgresponse */ 5610 #define MC_CMD_NVRAM_INFO_OUT_LEN 24 5611 #define MC_CMD_NVRAM_INFO_OUT_TYPE_OFST 0 5612 #define MC_CMD_NVRAM_INFO_OUT_TYPE_LEN 4 5613 /* Enum values, see field(s): */ 5614 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 5615 #define MC_CMD_NVRAM_INFO_OUT_SIZE_OFST 4 5616 #define MC_CMD_NVRAM_INFO_OUT_SIZE_LEN 4 5617 #define MC_CMD_NVRAM_INFO_OUT_ERASESIZE_OFST 8 5618 #define MC_CMD_NVRAM_INFO_OUT_ERASESIZE_LEN 4 5619 #define MC_CMD_NVRAM_INFO_OUT_FLAGS_OFST 12 5620 #define MC_CMD_NVRAM_INFO_OUT_FLAGS_LEN 4 5621 #define MC_CMD_NVRAM_INFO_OUT_PROTECTED_OFST 12 5622 #define MC_CMD_NVRAM_INFO_OUT_PROTECTED_LBN 0 5623 #define MC_CMD_NVRAM_INFO_OUT_PROTECTED_WIDTH 1 5624 #define MC_CMD_NVRAM_INFO_OUT_TLV_OFST 12 5625 #define MC_CMD_NVRAM_INFO_OUT_TLV_LBN 1 5626 #define MC_CMD_NVRAM_INFO_OUT_TLV_WIDTH 1 5627 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_IF_TSA_BOUND_OFST 12 5628 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_IF_TSA_BOUND_LBN 2 5629 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_IF_TSA_BOUND_WIDTH 1 5630 #define MC_CMD_NVRAM_INFO_OUT_CRC_OFST 12 5631 #define MC_CMD_NVRAM_INFO_OUT_CRC_LBN 3 5632 #define MC_CMD_NVRAM_INFO_OUT_CRC_WIDTH 1 5633 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_OFST 12 5634 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_LBN 5 5635 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_WIDTH 1 5636 #define MC_CMD_NVRAM_INFO_OUT_CMAC_OFST 12 5637 #define MC_CMD_NVRAM_INFO_OUT_CMAC_LBN 6 5638 #define MC_CMD_NVRAM_INFO_OUT_CMAC_WIDTH 1 5639 #define MC_CMD_NVRAM_INFO_OUT_A_B_OFST 12 5640 #define MC_CMD_NVRAM_INFO_OUT_A_B_LBN 7 5641 #define MC_CMD_NVRAM_INFO_OUT_A_B_WIDTH 1 5642 #define MC_CMD_NVRAM_INFO_OUT_PHYSDEV_OFST 16 5643 #define MC_CMD_NVRAM_INFO_OUT_PHYSDEV_LEN 4 5644 #define MC_CMD_NVRAM_INFO_OUT_PHYSADDR_OFST 20 5645 #define MC_CMD_NVRAM_INFO_OUT_PHYSADDR_LEN 4 5646 5647 /* MC_CMD_NVRAM_INFO_V2_OUT msgresponse */ 5648 #define MC_CMD_NVRAM_INFO_V2_OUT_LEN 28 5649 #define MC_CMD_NVRAM_INFO_V2_OUT_TYPE_OFST 0 5650 #define MC_CMD_NVRAM_INFO_V2_OUT_TYPE_LEN 4 5651 /* Enum values, see field(s): */ 5652 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 5653 #define MC_CMD_NVRAM_INFO_V2_OUT_SIZE_OFST 4 5654 #define MC_CMD_NVRAM_INFO_V2_OUT_SIZE_LEN 4 5655 #define MC_CMD_NVRAM_INFO_V2_OUT_ERASESIZE_OFST 8 5656 #define MC_CMD_NVRAM_INFO_V2_OUT_ERASESIZE_LEN 4 5657 #define MC_CMD_NVRAM_INFO_V2_OUT_FLAGS_OFST 12 5658 #define MC_CMD_NVRAM_INFO_V2_OUT_FLAGS_LEN 4 5659 #define MC_CMD_NVRAM_INFO_V2_OUT_PROTECTED_OFST 12 5660 #define MC_CMD_NVRAM_INFO_V2_OUT_PROTECTED_LBN 0 5661 #define MC_CMD_NVRAM_INFO_V2_OUT_PROTECTED_WIDTH 1 5662 #define MC_CMD_NVRAM_INFO_V2_OUT_TLV_OFST 12 5663 #define MC_CMD_NVRAM_INFO_V2_OUT_TLV_LBN 1 5664 #define MC_CMD_NVRAM_INFO_V2_OUT_TLV_WIDTH 1 5665 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_IF_TSA_BOUND_OFST 12 5666 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_IF_TSA_BOUND_LBN 2 5667 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_IF_TSA_BOUND_WIDTH 1 5668 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_OFST 12 5669 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_LBN 5 5670 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_WIDTH 1 5671 #define MC_CMD_NVRAM_INFO_V2_OUT_A_B_OFST 12 5672 #define MC_CMD_NVRAM_INFO_V2_OUT_A_B_LBN 7 5673 #define MC_CMD_NVRAM_INFO_V2_OUT_A_B_WIDTH 1 5674 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSDEV_OFST 16 5675 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSDEV_LEN 4 5676 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSADDR_OFST 20 5677 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSADDR_LEN 4 5678 /* Writes must be multiples of this size. Added to support the MUM on Sorrento. 5679 */ 5680 #define MC_CMD_NVRAM_INFO_V2_OUT_WRITESIZE_OFST 24 5681 #define MC_CMD_NVRAM_INFO_V2_OUT_WRITESIZE_LEN 4 5682 5683 5684 /***********************************/ 5685 /* MC_CMD_NVRAM_UPDATE_START 5686 * Start a group of update operations on a virtual NVRAM partition. Locks 5687 * required: PHY_LOCK if type==*PHY*. Returns: 0, EINVAL (bad type), EACCES (if 5688 * PHY_LOCK required and not held). In an adapter bound to a TSA controller, 5689 * MC_CMD_NVRAM_UPDATE_START can only be used on a subset of partition types 5690 * i.e. static config, dynamic config and expansion ROM config. Attempting to 5691 * perform this operation on a restricted partition will return the error 5692 * EPERM. 5693 */ 5694 #define MC_CMD_NVRAM_UPDATE_START 0x38 5695 #undef MC_CMD_0x38_PRIVILEGE_CTG 5696 5697 #define MC_CMD_0x38_PRIVILEGE_CTG SRIOV_CTG_ADMIN 5698 5699 /* MC_CMD_NVRAM_UPDATE_START_IN msgrequest: Legacy NVRAM_UPDATE_START request. 5700 * Use NVRAM_UPDATE_START_V2_IN in new code 5701 */ 5702 #define MC_CMD_NVRAM_UPDATE_START_IN_LEN 4 5703 #define MC_CMD_NVRAM_UPDATE_START_IN_TYPE_OFST 0 5704 #define MC_CMD_NVRAM_UPDATE_START_IN_TYPE_LEN 4 5705 /* Enum values, see field(s): */ 5706 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 5707 5708 /* MC_CMD_NVRAM_UPDATE_START_V2_IN msgrequest: Extended NVRAM_UPDATE_START 5709 * request with additional flags indicating version of command in use. See 5710 * MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT for details of extended functionality. Use 5711 * paired up with NVRAM_UPDATE_FINISH_V2_IN. 5712 */ 5713 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_LEN 8 5714 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_TYPE_OFST 0 5715 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_TYPE_LEN 4 5716 /* Enum values, see field(s): */ 5717 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 5718 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAGS_OFST 4 5719 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAGS_LEN 4 5720 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT_OFST 4 5721 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT_LBN 0 5722 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT_WIDTH 1 5723 5724 /* MC_CMD_NVRAM_UPDATE_START_OUT msgresponse */ 5725 #define MC_CMD_NVRAM_UPDATE_START_OUT_LEN 0 5726 5727 5728 /***********************************/ 5729 /* MC_CMD_NVRAM_READ 5730 * Read data from a virtual NVRAM partition. Locks required: PHY_LOCK if 5731 * type==*PHY*. Returns: 0, EINVAL (bad type/offset/length), EACCES (if 5732 * PHY_LOCK required and not held) 5733 */ 5734 #define MC_CMD_NVRAM_READ 0x39 5735 #undef MC_CMD_0x39_PRIVILEGE_CTG 5736 5737 #define MC_CMD_0x39_PRIVILEGE_CTG SRIOV_CTG_ADMIN 5738 5739 /* MC_CMD_NVRAM_READ_IN msgrequest */ 5740 #define MC_CMD_NVRAM_READ_IN_LEN 12 5741 #define MC_CMD_NVRAM_READ_IN_TYPE_OFST 0 5742 #define MC_CMD_NVRAM_READ_IN_TYPE_LEN 4 5743 /* Enum values, see field(s): */ 5744 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 5745 #define MC_CMD_NVRAM_READ_IN_OFFSET_OFST 4 5746 #define MC_CMD_NVRAM_READ_IN_OFFSET_LEN 4 5747 /* amount to read in bytes */ 5748 #define MC_CMD_NVRAM_READ_IN_LENGTH_OFST 8 5749 #define MC_CMD_NVRAM_READ_IN_LENGTH_LEN 4 5750 5751 /* MC_CMD_NVRAM_READ_IN_V2 msgrequest */ 5752 #define MC_CMD_NVRAM_READ_IN_V2_LEN 16 5753 #define MC_CMD_NVRAM_READ_IN_V2_TYPE_OFST 0 5754 #define MC_CMD_NVRAM_READ_IN_V2_TYPE_LEN 4 5755 /* Enum values, see field(s): */ 5756 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 5757 #define MC_CMD_NVRAM_READ_IN_V2_OFFSET_OFST 4 5758 #define MC_CMD_NVRAM_READ_IN_V2_OFFSET_LEN 4 5759 /* amount to read in bytes */ 5760 #define MC_CMD_NVRAM_READ_IN_V2_LENGTH_OFST 8 5761 #define MC_CMD_NVRAM_READ_IN_V2_LENGTH_LEN 4 5762 /* Optional control info. If a partition is stored with an A/B versioning 5763 * scheme (i.e. in more than one physical partition in NVRAM) the host can set 5764 * this to control which underlying physical partition is used to read data 5765 * from. This allows it to perform a read-modify-write-verify with the write 5766 * lock continuously held by calling NVRAM_UPDATE_START, reading the old 5767 * contents using MODE=TARGET_CURRENT, overwriting the old partition and then 5768 * verifying by reading with MODE=TARGET_BACKUP. 5769 */ 5770 #define MC_CMD_NVRAM_READ_IN_V2_MODE_OFST 12 5771 #define MC_CMD_NVRAM_READ_IN_V2_MODE_LEN 4 5772 /* enum: Same as omitting MODE: caller sees data in current partition unless it 5773 * holds the write lock in which case it sees data in the partition it is 5774 * updating. 5775 */ 5776 #define MC_CMD_NVRAM_READ_IN_V2_DEFAULT 0x0 5777 /* enum: Read from the current partition of an A/B pair, even if holding the 5778 * write lock. 5779 */ 5780 #define MC_CMD_NVRAM_READ_IN_V2_TARGET_CURRENT 0x1 5781 /* enum: Read from the non-current (i.e. to be updated) partition of an A/B 5782 * pair 5783 */ 5784 #define MC_CMD_NVRAM_READ_IN_V2_TARGET_BACKUP 0x2 5785 5786 /* MC_CMD_NVRAM_READ_OUT msgresponse */ 5787 #define MC_CMD_NVRAM_READ_OUT_LENMIN 1 5788 #define MC_CMD_NVRAM_READ_OUT_LENMAX 252 5789 #define MC_CMD_NVRAM_READ_OUT_LENMAX_MCDI2 1020 5790 #define MC_CMD_NVRAM_READ_OUT_LEN(num) (0+1*(num)) 5791 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_NUM(len) (((len)-0)/1) 5792 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_OFST 0 5793 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_LEN 1 5794 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_MINNUM 1 5795 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_MAXNUM 252 5796 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_MAXNUM_MCDI2 1020 5797 5798 5799 /***********************************/ 5800 /* MC_CMD_NVRAM_WRITE 5801 * Write data to a virtual NVRAM partition. Locks required: PHY_LOCK if 5802 * type==*PHY*. Returns: 0, EINVAL (bad type/offset/length), EACCES (if 5803 * PHY_LOCK required and not held) 5804 */ 5805 #define MC_CMD_NVRAM_WRITE 0x3a 5806 #undef MC_CMD_0x3a_PRIVILEGE_CTG 5807 5808 #define MC_CMD_0x3a_PRIVILEGE_CTG SRIOV_CTG_ADMIN 5809 5810 /* MC_CMD_NVRAM_WRITE_IN msgrequest */ 5811 #define MC_CMD_NVRAM_WRITE_IN_LENMIN 13 5812 #define MC_CMD_NVRAM_WRITE_IN_LENMAX 252 5813 #define MC_CMD_NVRAM_WRITE_IN_LENMAX_MCDI2 1020 5814 #define MC_CMD_NVRAM_WRITE_IN_LEN(num) (12+1*(num)) 5815 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_NUM(len) (((len)-12)/1) 5816 #define MC_CMD_NVRAM_WRITE_IN_TYPE_OFST 0 5817 #define MC_CMD_NVRAM_WRITE_IN_TYPE_LEN 4 5818 /* Enum values, see field(s): */ 5819 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 5820 #define MC_CMD_NVRAM_WRITE_IN_OFFSET_OFST 4 5821 #define MC_CMD_NVRAM_WRITE_IN_OFFSET_LEN 4 5822 #define MC_CMD_NVRAM_WRITE_IN_LENGTH_OFST 8 5823 #define MC_CMD_NVRAM_WRITE_IN_LENGTH_LEN 4 5824 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_OFST 12 5825 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_LEN 1 5826 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_MINNUM 1 5827 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_MAXNUM 240 5828 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_MAXNUM_MCDI2 1008 5829 5830 /* MC_CMD_NVRAM_WRITE_OUT msgresponse */ 5831 #define MC_CMD_NVRAM_WRITE_OUT_LEN 0 5832 5833 5834 /***********************************/ 5835 /* MC_CMD_NVRAM_ERASE 5836 * Erase sector(s) from a virtual NVRAM partition. Locks required: PHY_LOCK if 5837 * type==*PHY*. Returns: 0, EINVAL (bad type/offset/length), EACCES (if 5838 * PHY_LOCK required and not held) 5839 */ 5840 #define MC_CMD_NVRAM_ERASE 0x3b 5841 #undef MC_CMD_0x3b_PRIVILEGE_CTG 5842 5843 #define MC_CMD_0x3b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 5844 5845 /* MC_CMD_NVRAM_ERASE_IN msgrequest */ 5846 #define MC_CMD_NVRAM_ERASE_IN_LEN 12 5847 #define MC_CMD_NVRAM_ERASE_IN_TYPE_OFST 0 5848 #define MC_CMD_NVRAM_ERASE_IN_TYPE_LEN 4 5849 /* Enum values, see field(s): */ 5850 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 5851 #define MC_CMD_NVRAM_ERASE_IN_OFFSET_OFST 4 5852 #define MC_CMD_NVRAM_ERASE_IN_OFFSET_LEN 4 5853 #define MC_CMD_NVRAM_ERASE_IN_LENGTH_OFST 8 5854 #define MC_CMD_NVRAM_ERASE_IN_LENGTH_LEN 4 5855 5856 /* MC_CMD_NVRAM_ERASE_OUT msgresponse */ 5857 #define MC_CMD_NVRAM_ERASE_OUT_LEN 0 5858 5859 5860 /***********************************/ 5861 /* MC_CMD_NVRAM_UPDATE_FINISH 5862 * Finish a group of update operations on a virtual NVRAM partition. Locks 5863 * required: PHY_LOCK if type==*PHY*. Returns: 0, EINVAL (bad type/offset/ 5864 * length), EACCES (if PHY_LOCK required and not held). In an adapter bound to 5865 * a TSA controller, MC_CMD_NVRAM_UPDATE_FINISH can only be used on a subset of 5866 * partition types i.e. static config, dynamic config and expansion ROM config. 5867 * Attempting to perform this operation on a restricted partition will return 5868 * the error EPERM. 5869 */ 5870 #define MC_CMD_NVRAM_UPDATE_FINISH 0x3c 5871 #undef MC_CMD_0x3c_PRIVILEGE_CTG 5872 5873 #define MC_CMD_0x3c_PRIVILEGE_CTG SRIOV_CTG_ADMIN 5874 5875 /* MC_CMD_NVRAM_UPDATE_FINISH_IN msgrequest: Legacy NVRAM_UPDATE_FINISH 5876 * request. Use NVRAM_UPDATE_FINISH_V2_IN in new code 5877 */ 5878 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_LEN 8 5879 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_TYPE_OFST 0 5880 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_TYPE_LEN 4 5881 /* Enum values, see field(s): */ 5882 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 5883 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_REBOOT_OFST 4 5884 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_REBOOT_LEN 4 5885 5886 /* MC_CMD_NVRAM_UPDATE_FINISH_V2_IN msgrequest: Extended NVRAM_UPDATE_FINISH 5887 * request with additional flags indicating version of NVRAM_UPDATE commands in 5888 * use. See MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT for details of extended 5889 * functionality. Use paired up with NVRAM_UPDATE_START_V2_IN. 5890 */ 5891 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_LEN 12 5892 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_TYPE_OFST 0 5893 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_TYPE_LEN 4 5894 /* Enum values, see field(s): */ 5895 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 5896 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_REBOOT_OFST 4 5897 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_REBOOT_LEN 4 5898 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAGS_OFST 8 5899 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAGS_LEN 4 5900 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_REPORT_VERIFY_RESULT_OFST 8 5901 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_REPORT_VERIFY_RESULT_LBN 0 5902 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_REPORT_VERIFY_RESULT_WIDTH 1 5903 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_RUN_IN_BACKGROUND_OFST 8 5904 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_RUN_IN_BACKGROUND_LBN 1 5905 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_RUN_IN_BACKGROUND_WIDTH 1 5906 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_POLL_VERIFY_RESULT_OFST 8 5907 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_POLL_VERIFY_RESULT_LBN 2 5908 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_POLL_VERIFY_RESULT_WIDTH 1 5909 5910 /* MC_CMD_NVRAM_UPDATE_FINISH_OUT msgresponse: Legacy NVRAM_UPDATE_FINISH 5911 * response. Use NVRAM_UPDATE_FINISH_V2_OUT in new code 5912 */ 5913 #define MC_CMD_NVRAM_UPDATE_FINISH_OUT_LEN 0 5914 5915 /* MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT msgresponse: 5916 * 5917 * Extended NVRAM_UPDATE_FINISH response that communicates the result of secure 5918 * firmware validation where applicable back to the host. 5919 * 5920 * Medford only: For signed firmware images, such as those for medford, the MC 5921 * firmware verifies the signature before marking the firmware image as valid. 5922 * This process takes a few seconds to complete. So is likely to take more than 5923 * the MCDI timeout. Hence signature verification is initiated when 5924 * MC_CMD_NVRAM_UPDATE_FINISH_V2_IN is received by the firmware, however, the 5925 * MCDI command is run in a background MCDI processing thread. This response 5926 * payload includes the results of the signature verification. Note that the 5927 * per-partition nvram lock in firmware is only released after the verification 5928 * has completed. 5929 */ 5930 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_LEN 4 5931 /* Result of nvram update completion processing. Result codes that indicate an 5932 * internal build failure and therefore not expected to be seen by customers in 5933 * the field are marked with a prefix 'Internal-error'. 5934 */ 5935 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_RESULT_CODE_OFST 0 5936 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_RESULT_CODE_LEN 4 5937 /* enum: Invalid return code; only non-zero values are defined. Defined as 5938 * unknown for backwards compatibility with NVRAM_UPDATE_FINISH_OUT. 5939 */ 5940 #define MC_CMD_NVRAM_VERIFY_RC_UNKNOWN 0x0 5941 /* enum: Verify succeeded without any errors. */ 5942 #define MC_CMD_NVRAM_VERIFY_RC_SUCCESS 0x1 5943 /* enum: CMS format verification failed due to an internal error. */ 5944 #define MC_CMD_NVRAM_VERIFY_RC_CMS_CHECK_FAILED 0x2 5945 /* enum: Invalid CMS format in image metadata. */ 5946 #define MC_CMD_NVRAM_VERIFY_RC_INVALID_CMS_FORMAT 0x3 5947 /* enum: Message digest verification failed due to an internal error. */ 5948 #define MC_CMD_NVRAM_VERIFY_RC_MESSAGE_DIGEST_CHECK_FAILED 0x4 5949 /* enum: Error in message digest calculated over the reflash-header, payload 5950 * and reflash-trailer. 5951 */ 5952 #define MC_CMD_NVRAM_VERIFY_RC_BAD_MESSAGE_DIGEST 0x5 5953 /* enum: Signature verification failed due to an internal error. */ 5954 #define MC_CMD_NVRAM_VERIFY_RC_SIGNATURE_CHECK_FAILED 0x6 5955 /* enum: There are no valid signatures in the image. */ 5956 #define MC_CMD_NVRAM_VERIFY_RC_NO_VALID_SIGNATURES 0x7 5957 /* enum: Trusted approvers verification failed due to an internal error. */ 5958 #define MC_CMD_NVRAM_VERIFY_RC_TRUSTED_APPROVERS_CHECK_FAILED 0x8 5959 /* enum: The Trusted approver's list is empty. */ 5960 #define MC_CMD_NVRAM_VERIFY_RC_NO_TRUSTED_APPROVERS 0x9 5961 /* enum: Signature chain verification failed due to an internal error. */ 5962 #define MC_CMD_NVRAM_VERIFY_RC_SIGNATURE_CHAIN_CHECK_FAILED 0xa 5963 /* enum: The signers of the signatures in the image are not listed in the 5964 * Trusted approver's list. 5965 */ 5966 #define MC_CMD_NVRAM_VERIFY_RC_NO_SIGNATURE_MATCH 0xb 5967 /* enum: The image contains a test-signed certificate, but the adapter accepts 5968 * only production signed images. 5969 */ 5970 #define MC_CMD_NVRAM_VERIFY_RC_REJECT_TEST_SIGNED 0xc 5971 /* enum: The image has a lower security level than the current firmware. */ 5972 #define MC_CMD_NVRAM_VERIFY_RC_SECURITY_LEVEL_DOWNGRADE 0xd 5973 /* enum: Internal-error. The signed image is missing the 'contents' section, 5974 * where the 'contents' section holds the actual image payload to be applied. 5975 */ 5976 #define MC_CMD_NVRAM_VERIFY_RC_CONTENT_NOT_FOUND 0xe 5977 /* enum: Internal-error. The bundle header is invalid. */ 5978 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_CONTENT_HEADER_INVALID 0xf 5979 /* enum: Internal-error. The bundle does not have a valid reflash image layout. 5980 */ 5981 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_REFLASH_IMAGE_INVALID 0x10 5982 /* enum: Internal-error. The bundle has an inconsistent layout of components or 5983 * incorrect checksum. 5984 */ 5985 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_IMAGE_LAYOUT_INVALID 0x11 5986 /* enum: Internal-error. The bundle manifest is inconsistent with components in 5987 * the bundle. 5988 */ 5989 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_INVALID 0x12 5990 /* enum: Internal-error. The number of components in a bundle do not match the 5991 * number of components advertised by the bundle manifest. 5992 */ 5993 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_NUM_COMPONENTS_MISMATCH 0x13 5994 /* enum: Internal-error. The bundle contains too many components for the MC 5995 * firmware to process 5996 */ 5997 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_TOO_MANY_COMPONENTS 0x14 5998 /* enum: Internal-error. The bundle manifest has an invalid/inconsistent 5999 * component. 6000 */ 6001 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_COMPONENT_INVALID 0x15 6002 /* enum: Internal-error. The hash of a component does not match the hash stored 6003 * in the bundle manifest. 6004 */ 6005 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_COMPONENT_HASH_MISMATCH 0x16 6006 /* enum: Internal-error. Component hash calculation failed. */ 6007 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_MANIFEST_COMPONENT_HASH_FAILED 0x17 6008 /* enum: Internal-error. The component does not have a valid reflash image 6009 * layout. 6010 */ 6011 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_COMPONENT_REFLASH_IMAGE_INVALID 0x18 6012 /* enum: The bundle processing code failed to copy a component to its target 6013 * partition. 6014 */ 6015 #define MC_CMD_NVRAM_VERIFY_RC_BUNDLE_COMPONENT_COPY_FAILED 0x19 6016 /* enum: The update operation is in-progress. */ 6017 #define MC_CMD_NVRAM_VERIFY_RC_PENDING 0x1a 6018 6019 6020 /***********************************/ 6021 /* MC_CMD_REBOOT 6022 * Reboot the MC. 6023 * 6024 * The AFTER_ASSERTION flag is intended to be used when the driver notices an 6025 * assertion failure (at which point it is expected to perform a complete tear 6026 * down and reinitialise), to allow both ports to reset the MC once in an 6027 * atomic fashion. 6028 * 6029 * Production mc firmwares are generally compiled with REBOOT_ON_ASSERT=1, 6030 * which means that they will automatically reboot out of the assertion 6031 * handler, so this is in practise an optional operation. It is still 6032 * recommended that drivers execute this to support custom firmwares with 6033 * REBOOT_ON_ASSERT=0. 6034 * 6035 * Locks required: NONE Returns: Nothing. You get back a response with ERR=1, 6036 * DATALEN=0 6037 */ 6038 #define MC_CMD_REBOOT 0x3d 6039 #undef MC_CMD_0x3d_PRIVILEGE_CTG 6040 6041 #define MC_CMD_0x3d_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 6042 6043 /* MC_CMD_REBOOT_IN msgrequest */ 6044 #define MC_CMD_REBOOT_IN_LEN 4 6045 #define MC_CMD_REBOOT_IN_FLAGS_OFST 0 6046 #define MC_CMD_REBOOT_IN_FLAGS_LEN 4 6047 #define MC_CMD_REBOOT_FLAGS_AFTER_ASSERTION 0x1 /* enum */ 6048 6049 /* MC_CMD_REBOOT_OUT msgresponse */ 6050 #define MC_CMD_REBOOT_OUT_LEN 0 6051 6052 6053 /***********************************/ 6054 /* MC_CMD_SCHEDINFO 6055 * Request scheduler info. Locks required: NONE. Returns: An array of 6056 * (timeslice,maximum overrun), one for each thread, in ascending order of 6057 * thread address. 6058 */ 6059 #define MC_CMD_SCHEDINFO 0x3e 6060 #undef MC_CMD_0x3e_PRIVILEGE_CTG 6061 6062 #define MC_CMD_0x3e_PRIVILEGE_CTG SRIOV_CTG_ADMIN 6063 6064 /* MC_CMD_SCHEDINFO_IN msgrequest */ 6065 #define MC_CMD_SCHEDINFO_IN_LEN 0 6066 6067 /* MC_CMD_SCHEDINFO_OUT msgresponse */ 6068 #define MC_CMD_SCHEDINFO_OUT_LENMIN 4 6069 #define MC_CMD_SCHEDINFO_OUT_LENMAX 252 6070 #define MC_CMD_SCHEDINFO_OUT_LENMAX_MCDI2 1020 6071 #define MC_CMD_SCHEDINFO_OUT_LEN(num) (0+4*(num)) 6072 #define MC_CMD_SCHEDINFO_OUT_DATA_NUM(len) (((len)-0)/4) 6073 #define MC_CMD_SCHEDINFO_OUT_DATA_OFST 0 6074 #define MC_CMD_SCHEDINFO_OUT_DATA_LEN 4 6075 #define MC_CMD_SCHEDINFO_OUT_DATA_MINNUM 1 6076 #define MC_CMD_SCHEDINFO_OUT_DATA_MAXNUM 63 6077 #define MC_CMD_SCHEDINFO_OUT_DATA_MAXNUM_MCDI2 255 6078 6079 6080 /***********************************/ 6081 /* MC_CMD_REBOOT_MODE 6082 * Set the mode for the next MC reboot. Locks required: NONE. Sets the reboot 6083 * mode to the specified value. Returns the old mode. 6084 */ 6085 #define MC_CMD_REBOOT_MODE 0x3f 6086 #undef MC_CMD_0x3f_PRIVILEGE_CTG 6087 6088 #define MC_CMD_0x3f_PRIVILEGE_CTG SRIOV_CTG_INSECURE 6089 6090 /* MC_CMD_REBOOT_MODE_IN msgrequest */ 6091 #define MC_CMD_REBOOT_MODE_IN_LEN 4 6092 #define MC_CMD_REBOOT_MODE_IN_VALUE_OFST 0 6093 #define MC_CMD_REBOOT_MODE_IN_VALUE_LEN 4 6094 /* enum: Normal. */ 6095 #define MC_CMD_REBOOT_MODE_NORMAL 0x0 6096 /* enum: Power-on Reset. */ 6097 #define MC_CMD_REBOOT_MODE_POR 0x2 6098 /* enum: Snapper. */ 6099 #define MC_CMD_REBOOT_MODE_SNAPPER 0x3 6100 /* enum: snapper fake POR */ 6101 #define MC_CMD_REBOOT_MODE_SNAPPER_POR 0x4 6102 #define MC_CMD_REBOOT_MODE_IN_FAKE_OFST 0 6103 #define MC_CMD_REBOOT_MODE_IN_FAKE_LBN 7 6104 #define MC_CMD_REBOOT_MODE_IN_FAKE_WIDTH 1 6105 6106 /* MC_CMD_REBOOT_MODE_OUT msgresponse */ 6107 #define MC_CMD_REBOOT_MODE_OUT_LEN 4 6108 #define MC_CMD_REBOOT_MODE_OUT_VALUE_OFST 0 6109 #define MC_CMD_REBOOT_MODE_OUT_VALUE_LEN 4 6110 6111 6112 /***********************************/ 6113 /* MC_CMD_SENSOR_INFO 6114 * Returns information about every available sensor. 6115 * 6116 * Each sensor has a single (16bit) value, and a corresponding state. The 6117 * mapping between value and state is nominally determined by the MC, but may 6118 * be implemented using up to 2 ranges per sensor. 6119 * 6120 * This call returns a mask (32bit) of the sensors that are supported by this 6121 * platform, then an array of sensor information structures, in order of sensor 6122 * type (but without gaps for unimplemented sensors). Each structure defines 6123 * the ranges for the corresponding sensor. An unused range is indicated by 6124 * equal limit values. If one range is used, a value outside that range results 6125 * in STATE_FATAL. If two ranges are used, a value outside the second range 6126 * results in STATE_FATAL while a value outside the first and inside the second 6127 * range results in STATE_WARNING. 6128 * 6129 * Sensor masks and sensor information arrays are organised into pages. For 6130 * backward compatibility, older host software can only use sensors in page 0. 6131 * Bit 32 in the sensor mask was previously unused, and is no reserved for use 6132 * as the next page flag. 6133 * 6134 * If the request does not contain a PAGE value then firmware will only return 6135 * page 0 of sensor information, with bit 31 in the sensor mask cleared. 6136 * 6137 * If the request contains a PAGE value then firmware responds with the sensor 6138 * mask and sensor information array for that page of sensors. In this case bit 6139 * 31 in the mask is set if another page exists. 6140 * 6141 * Locks required: None Returns: 0 6142 */ 6143 #define MC_CMD_SENSOR_INFO 0x41 6144 #undef MC_CMD_0x41_PRIVILEGE_CTG 6145 6146 #define MC_CMD_0x41_PRIVILEGE_CTG SRIOV_CTG_GENERAL 6147 6148 /* MC_CMD_SENSOR_INFO_IN msgrequest */ 6149 #define MC_CMD_SENSOR_INFO_IN_LEN 0 6150 6151 /* MC_CMD_SENSOR_INFO_EXT_IN msgrequest */ 6152 #define MC_CMD_SENSOR_INFO_EXT_IN_LEN 4 6153 /* Which page of sensors to report. 6154 * 6155 * Page 0 contains sensors 0 to 30 (sensor 31 is the next page bit). 6156 * 6157 * Page 1 contains sensors 32 to 62 (sensor 63 is the next page bit). etc. 6158 */ 6159 #define MC_CMD_SENSOR_INFO_EXT_IN_PAGE_OFST 0 6160 #define MC_CMD_SENSOR_INFO_EXT_IN_PAGE_LEN 4 6161 6162 /* MC_CMD_SENSOR_INFO_EXT_IN_V2 msgrequest */ 6163 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_LEN 8 6164 /* Which page of sensors to report. 6165 * 6166 * Page 0 contains sensors 0 to 30 (sensor 31 is the next page bit). 6167 * 6168 * Page 1 contains sensors 32 to 62 (sensor 63 is the next page bit). etc. 6169 */ 6170 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_PAGE_OFST 0 6171 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_PAGE_LEN 4 6172 /* Flags controlling information retrieved */ 6173 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_FLAGS_OFST 4 6174 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_FLAGS_LEN 4 6175 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_ENGINEERING_OFST 4 6176 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_ENGINEERING_LBN 0 6177 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_ENGINEERING_WIDTH 1 6178 6179 /* MC_CMD_SENSOR_INFO_OUT msgresponse */ 6180 #define MC_CMD_SENSOR_INFO_OUT_LENMIN 4 6181 #define MC_CMD_SENSOR_INFO_OUT_LENMAX 252 6182 #define MC_CMD_SENSOR_INFO_OUT_LENMAX_MCDI2 1020 6183 #define MC_CMD_SENSOR_INFO_OUT_LEN(num) (4+8*(num)) 6184 #define MC_CMD_SENSOR_INFO_OUT_MC_CMD_SENSOR_ENTRY_NUM(len) (((len)-4)/8) 6185 #define MC_CMD_SENSOR_INFO_OUT_MASK_OFST 0 6186 #define MC_CMD_SENSOR_INFO_OUT_MASK_LEN 4 6187 /* enum: Controller temperature: degC */ 6188 #define MC_CMD_SENSOR_CONTROLLER_TEMP 0x0 6189 /* enum: Phy common temperature: degC */ 6190 #define MC_CMD_SENSOR_PHY_COMMON_TEMP 0x1 6191 /* enum: Controller cooling: bool */ 6192 #define MC_CMD_SENSOR_CONTROLLER_COOLING 0x2 6193 /* enum: Phy 0 temperature: degC */ 6194 #define MC_CMD_SENSOR_PHY0_TEMP 0x3 6195 /* enum: Phy 0 cooling: bool */ 6196 #define MC_CMD_SENSOR_PHY0_COOLING 0x4 6197 /* enum: Phy 1 temperature: degC */ 6198 #define MC_CMD_SENSOR_PHY1_TEMP 0x5 6199 /* enum: Phy 1 cooling: bool */ 6200 #define MC_CMD_SENSOR_PHY1_COOLING 0x6 6201 /* enum: 1.0v power: mV */ 6202 #define MC_CMD_SENSOR_IN_1V0 0x7 6203 /* enum: 1.2v power: mV */ 6204 #define MC_CMD_SENSOR_IN_1V2 0x8 6205 /* enum: 1.8v power: mV */ 6206 #define MC_CMD_SENSOR_IN_1V8 0x9 6207 /* enum: 2.5v power: mV */ 6208 #define MC_CMD_SENSOR_IN_2V5 0xa 6209 /* enum: 3.3v power: mV */ 6210 #define MC_CMD_SENSOR_IN_3V3 0xb 6211 /* enum: 12v power: mV */ 6212 #define MC_CMD_SENSOR_IN_12V0 0xc 6213 /* enum: 1.2v analogue power: mV */ 6214 #define MC_CMD_SENSOR_IN_1V2A 0xd 6215 /* enum: reference voltage: mV */ 6216 #define MC_CMD_SENSOR_IN_VREF 0xe 6217 /* enum: AOE FPGA power: mV */ 6218 #define MC_CMD_SENSOR_OUT_VAOE 0xf 6219 /* enum: AOE FPGA temperature: degC */ 6220 #define MC_CMD_SENSOR_AOE_TEMP 0x10 6221 /* enum: AOE FPGA PSU temperature: degC */ 6222 #define MC_CMD_SENSOR_PSU_AOE_TEMP 0x11 6223 /* enum: AOE PSU temperature: degC */ 6224 #define MC_CMD_SENSOR_PSU_TEMP 0x12 6225 /* enum: Fan 0 speed: RPM */ 6226 #define MC_CMD_SENSOR_FAN_0 0x13 6227 /* enum: Fan 1 speed: RPM */ 6228 #define MC_CMD_SENSOR_FAN_1 0x14 6229 /* enum: Fan 2 speed: RPM */ 6230 #define MC_CMD_SENSOR_FAN_2 0x15 6231 /* enum: Fan 3 speed: RPM */ 6232 #define MC_CMD_SENSOR_FAN_3 0x16 6233 /* enum: Fan 4 speed: RPM */ 6234 #define MC_CMD_SENSOR_FAN_4 0x17 6235 /* enum: AOE FPGA input power: mV */ 6236 #define MC_CMD_SENSOR_IN_VAOE 0x18 6237 /* enum: AOE FPGA current: mA */ 6238 #define MC_CMD_SENSOR_OUT_IAOE 0x19 6239 /* enum: AOE FPGA input current: mA */ 6240 #define MC_CMD_SENSOR_IN_IAOE 0x1a 6241 /* enum: NIC power consumption: W */ 6242 #define MC_CMD_SENSOR_NIC_POWER 0x1b 6243 /* enum: 0.9v power voltage: mV */ 6244 #define MC_CMD_SENSOR_IN_0V9 0x1c 6245 /* enum: 0.9v power current: mA */ 6246 #define MC_CMD_SENSOR_IN_I0V9 0x1d 6247 /* enum: 1.2v power current: mA */ 6248 #define MC_CMD_SENSOR_IN_I1V2 0x1e 6249 /* enum: Not a sensor: reserved for the next page flag */ 6250 #define MC_CMD_SENSOR_PAGE0_NEXT 0x1f 6251 /* enum: 0.9v power voltage (at ADC): mV */ 6252 #define MC_CMD_SENSOR_IN_0V9_ADC 0x20 6253 /* enum: Controller temperature 2: degC */ 6254 #define MC_CMD_SENSOR_CONTROLLER_2_TEMP 0x21 6255 /* enum: Voltage regulator internal temperature: degC */ 6256 #define MC_CMD_SENSOR_VREG_INTERNAL_TEMP 0x22 6257 /* enum: 0.9V voltage regulator temperature: degC */ 6258 #define MC_CMD_SENSOR_VREG_0V9_TEMP 0x23 6259 /* enum: 1.2V voltage regulator temperature: degC */ 6260 #define MC_CMD_SENSOR_VREG_1V2_TEMP 0x24 6261 /* enum: controller internal temperature sensor voltage (internal ADC): mV */ 6262 #define MC_CMD_SENSOR_CONTROLLER_VPTAT 0x25 6263 /* enum: controller internal temperature (internal ADC): degC */ 6264 #define MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP 0x26 6265 /* enum: controller internal temperature sensor voltage (external ADC): mV */ 6266 #define MC_CMD_SENSOR_CONTROLLER_VPTAT_EXTADC 0x27 6267 /* enum: controller internal temperature (external ADC): degC */ 6268 #define MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP_EXTADC 0x28 6269 /* enum: ambient temperature: degC */ 6270 #define MC_CMD_SENSOR_AMBIENT_TEMP 0x29 6271 /* enum: air flow: bool */ 6272 #define MC_CMD_SENSOR_AIRFLOW 0x2a 6273 /* enum: voltage between VSS08D and VSS08D at CSR: mV */ 6274 #define MC_CMD_SENSOR_VDD08D_VSS08D_CSR 0x2b 6275 /* enum: voltage between VSS08D and VSS08D at CSR (external ADC): mV */ 6276 #define MC_CMD_SENSOR_VDD08D_VSS08D_CSR_EXTADC 0x2c 6277 /* enum: Hotpoint temperature: degC */ 6278 #define MC_CMD_SENSOR_HOTPOINT_TEMP 0x2d 6279 /* enum: Port 0 PHY power switch over-current: bool */ 6280 #define MC_CMD_SENSOR_PHY_POWER_PORT0 0x2e 6281 /* enum: Port 1 PHY power switch over-current: bool */ 6282 #define MC_CMD_SENSOR_PHY_POWER_PORT1 0x2f 6283 /* enum: Mop-up microcontroller reference voltage: mV */ 6284 #define MC_CMD_SENSOR_MUM_VCC 0x30 6285 /* enum: 0.9v power phase A voltage: mV */ 6286 #define MC_CMD_SENSOR_IN_0V9_A 0x31 6287 /* enum: 0.9v power phase A current: mA */ 6288 #define MC_CMD_SENSOR_IN_I0V9_A 0x32 6289 /* enum: 0.9V voltage regulator phase A temperature: degC */ 6290 #define MC_CMD_SENSOR_VREG_0V9_A_TEMP 0x33 6291 /* enum: 0.9v power phase B voltage: mV */ 6292 #define MC_CMD_SENSOR_IN_0V9_B 0x34 6293 /* enum: 0.9v power phase B current: mA */ 6294 #define MC_CMD_SENSOR_IN_I0V9_B 0x35 6295 /* enum: 0.9V voltage regulator phase B temperature: degC */ 6296 #define MC_CMD_SENSOR_VREG_0V9_B_TEMP 0x36 6297 /* enum: CCOM AVREG 1v2 supply (interval ADC): mV */ 6298 #define MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY 0x37 6299 /* enum: CCOM AVREG 1v2 supply (external ADC): mV */ 6300 #define MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY_EXTADC 0x38 6301 /* enum: CCOM AVREG 1v8 supply (interval ADC): mV */ 6302 #define MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY 0x39 6303 /* enum: CCOM AVREG 1v8 supply (external ADC): mV */ 6304 #define MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY_EXTADC 0x3a 6305 /* enum: CCOM RTS temperature: degC */ 6306 #define MC_CMD_SENSOR_CONTROLLER_RTS 0x3b 6307 /* enum: Not a sensor: reserved for the next page flag */ 6308 #define MC_CMD_SENSOR_PAGE1_NEXT 0x3f 6309 /* enum: controller internal temperature sensor voltage on master core 6310 * (internal ADC): mV 6311 */ 6312 #define MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT 0x40 6313 /* enum: controller internal temperature on master core (internal ADC): degC */ 6314 #define MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP 0x41 6315 /* enum: controller internal temperature sensor voltage on master core 6316 * (external ADC): mV 6317 */ 6318 #define MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT_EXTADC 0x42 6319 /* enum: controller internal temperature on master core (external ADC): degC */ 6320 #define MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC 0x43 6321 /* enum: controller internal temperature on slave core sensor voltage (internal 6322 * ADC): mV 6323 */ 6324 #define MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT 0x44 6325 /* enum: controller internal temperature on slave core (internal ADC): degC */ 6326 #define MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP 0x45 6327 /* enum: controller internal temperature on slave core sensor voltage (external 6328 * ADC): mV 6329 */ 6330 #define MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT_EXTADC 0x46 6331 /* enum: controller internal temperature on slave core (external ADC): degC */ 6332 #define MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC 0x47 6333 /* enum: Voltage supplied to the SODIMMs from their power supply: mV */ 6334 #define MC_CMD_SENSOR_SODIMM_VOUT 0x49 6335 /* enum: Temperature of SODIMM 0 (if installed): degC */ 6336 #define MC_CMD_SENSOR_SODIMM_0_TEMP 0x4a 6337 /* enum: Temperature of SODIMM 1 (if installed): degC */ 6338 #define MC_CMD_SENSOR_SODIMM_1_TEMP 0x4b 6339 /* enum: Voltage supplied to the QSFP #0 from their power supply: mV */ 6340 #define MC_CMD_SENSOR_PHY0_VCC 0x4c 6341 /* enum: Voltage supplied to the QSFP #1 from their power supply: mV */ 6342 #define MC_CMD_SENSOR_PHY1_VCC 0x4d 6343 /* enum: Controller die temperature (TDIODE): degC */ 6344 #define MC_CMD_SENSOR_CONTROLLER_TDIODE_TEMP 0x4e 6345 /* enum: Board temperature (front): degC */ 6346 #define MC_CMD_SENSOR_BOARD_FRONT_TEMP 0x4f 6347 /* enum: Board temperature (back): degC */ 6348 #define MC_CMD_SENSOR_BOARD_BACK_TEMP 0x50 6349 /* enum: 1.8v power current: mA */ 6350 #define MC_CMD_SENSOR_IN_I1V8 0x51 6351 /* enum: 2.5v power current: mA */ 6352 #define MC_CMD_SENSOR_IN_I2V5 0x52 6353 /* enum: 3.3v power current: mA */ 6354 #define MC_CMD_SENSOR_IN_I3V3 0x53 6355 /* enum: 12v power current: mA */ 6356 #define MC_CMD_SENSOR_IN_I12V0 0x54 6357 /* enum: 1.3v power: mV */ 6358 #define MC_CMD_SENSOR_IN_1V3 0x55 6359 /* enum: 1.3v power current: mA */ 6360 #define MC_CMD_SENSOR_IN_I1V3 0x56 6361 /* enum: Engineering sensor 1 */ 6362 #define MC_CMD_SENSOR_ENGINEERING_1 0x57 6363 /* enum: Engineering sensor 2 */ 6364 #define MC_CMD_SENSOR_ENGINEERING_2 0x58 6365 /* enum: Engineering sensor 3 */ 6366 #define MC_CMD_SENSOR_ENGINEERING_3 0x59 6367 /* enum: Engineering sensor 4 */ 6368 #define MC_CMD_SENSOR_ENGINEERING_4 0x5a 6369 /* enum: Engineering sensor 5 */ 6370 #define MC_CMD_SENSOR_ENGINEERING_5 0x5b 6371 /* enum: Engineering sensor 6 */ 6372 #define MC_CMD_SENSOR_ENGINEERING_6 0x5c 6373 /* enum: Engineering sensor 7 */ 6374 #define MC_CMD_SENSOR_ENGINEERING_7 0x5d 6375 /* enum: Engineering sensor 8 */ 6376 #define MC_CMD_SENSOR_ENGINEERING_8 0x5e 6377 /* enum: Not a sensor: reserved for the next page flag */ 6378 #define MC_CMD_SENSOR_PAGE2_NEXT 0x5f 6379 /* MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF */ 6380 #define MC_CMD_SENSOR_ENTRY_OFST 4 6381 #define MC_CMD_SENSOR_ENTRY_LEN 8 6382 #define MC_CMD_SENSOR_ENTRY_LO_OFST 4 6383 #define MC_CMD_SENSOR_ENTRY_HI_OFST 8 6384 #define MC_CMD_SENSOR_ENTRY_MINNUM 0 6385 #define MC_CMD_SENSOR_ENTRY_MAXNUM 31 6386 #define MC_CMD_SENSOR_ENTRY_MAXNUM_MCDI2 127 6387 6388 /* MC_CMD_SENSOR_INFO_EXT_OUT msgresponse */ 6389 #define MC_CMD_SENSOR_INFO_EXT_OUT_LENMIN 4 6390 #define MC_CMD_SENSOR_INFO_EXT_OUT_LENMAX 252 6391 #define MC_CMD_SENSOR_INFO_EXT_OUT_LENMAX_MCDI2 1020 6392 #define MC_CMD_SENSOR_INFO_EXT_OUT_LEN(num) (4+8*(num)) 6393 #define MC_CMD_SENSOR_INFO_EXT_OUT_MC_CMD_SENSOR_ENTRY_NUM(len) (((len)-4)/8) 6394 #define MC_CMD_SENSOR_INFO_EXT_OUT_MASK_OFST 0 6395 #define MC_CMD_SENSOR_INFO_EXT_OUT_MASK_LEN 4 6396 /* Enum values, see field(s): */ 6397 /* MC_CMD_SENSOR_INFO_OUT */ 6398 #define MC_CMD_SENSOR_INFO_EXT_OUT_NEXT_PAGE_OFST 0 6399 #define MC_CMD_SENSOR_INFO_EXT_OUT_NEXT_PAGE_LBN 31 6400 #define MC_CMD_SENSOR_INFO_EXT_OUT_NEXT_PAGE_WIDTH 1 6401 /* MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF */ 6402 /* MC_CMD_SENSOR_ENTRY_OFST 4 */ 6403 /* MC_CMD_SENSOR_ENTRY_LEN 8 */ 6404 /* MC_CMD_SENSOR_ENTRY_LO_OFST 4 */ 6405 /* MC_CMD_SENSOR_ENTRY_HI_OFST 8 */ 6406 /* MC_CMD_SENSOR_ENTRY_MINNUM 0 */ 6407 /* MC_CMD_SENSOR_ENTRY_MAXNUM 31 */ 6408 /* MC_CMD_SENSOR_ENTRY_MAXNUM_MCDI2 127 */ 6409 6410 /* MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF structuredef */ 6411 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_LEN 8 6412 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN1_OFST 0 6413 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN1_LEN 2 6414 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN1_LBN 0 6415 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN1_WIDTH 16 6416 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX1_OFST 2 6417 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX1_LEN 2 6418 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX1_LBN 16 6419 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX1_WIDTH 16 6420 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_OFST 4 6421 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_LEN 2 6422 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_LBN 32 6423 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_WIDTH 16 6424 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX2_OFST 6 6425 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX2_LEN 2 6426 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX2_LBN 48 6427 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MAX2_WIDTH 16 6428 6429 6430 /***********************************/ 6431 /* MC_CMD_READ_SENSORS 6432 * Returns the current reading from each sensor. DMAs an array of sensor 6433 * readings, in order of sensor type (but without gaps for unimplemented 6434 * sensors), into host memory. Each array element is a 6435 * MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF dword. 6436 * 6437 * If the request does not contain the LENGTH field then only sensors 0 to 30 6438 * are reported, to avoid DMA buffer overflow in older host software. If the 6439 * sensor reading require more space than the LENGTH allows, then return 6440 * EINVAL. 6441 * 6442 * The MC will send a SENSOREVT event every time any sensor changes state. The 6443 * driver is responsible for ensuring that it doesn't miss any events. The 6444 * board will function normally if all sensors are in STATE_OK or 6445 * STATE_WARNING. Otherwise the board should not be expected to function. 6446 */ 6447 #define MC_CMD_READ_SENSORS 0x42 6448 #undef MC_CMD_0x42_PRIVILEGE_CTG 6449 6450 #define MC_CMD_0x42_PRIVILEGE_CTG SRIOV_CTG_GENERAL 6451 6452 /* MC_CMD_READ_SENSORS_IN msgrequest */ 6453 #define MC_CMD_READ_SENSORS_IN_LEN 8 6454 /* DMA address of host buffer for sensor readings (must be 4Kbyte aligned). 6455 * 6456 * If the address is 0xffffffffffffffff send the readings in the response (used 6457 * by cmdclient). 6458 */ 6459 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_OFST 0 6460 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LEN 8 6461 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_OFST 0 6462 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_OFST 4 6463 6464 /* MC_CMD_READ_SENSORS_EXT_IN msgrequest */ 6465 #define MC_CMD_READ_SENSORS_EXT_IN_LEN 12 6466 /* DMA address of host buffer for sensor readings (must be 4Kbyte aligned). 6467 * 6468 * If the address is 0xffffffffffffffff send the readings in the response (used 6469 * by cmdclient). 6470 */ 6471 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_OFST 0 6472 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LEN 8 6473 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_OFST 0 6474 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_OFST 4 6475 /* Size in bytes of host buffer. */ 6476 #define MC_CMD_READ_SENSORS_EXT_IN_LENGTH_OFST 8 6477 #define MC_CMD_READ_SENSORS_EXT_IN_LENGTH_LEN 4 6478 6479 /* MC_CMD_READ_SENSORS_EXT_IN_V2 msgrequest */ 6480 #define MC_CMD_READ_SENSORS_EXT_IN_V2_LEN 16 6481 /* DMA address of host buffer for sensor readings (must be 4Kbyte aligned). 6482 * 6483 * If the address is 0xffffffffffffffff send the readings in the response (used 6484 * by cmdclient). 6485 */ 6486 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_OFST 0 6487 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LEN 8 6488 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_OFST 0 6489 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_OFST 4 6490 /* Size in bytes of host buffer. */ 6491 #define MC_CMD_READ_SENSORS_EXT_IN_V2_LENGTH_OFST 8 6492 #define MC_CMD_READ_SENSORS_EXT_IN_V2_LENGTH_LEN 4 6493 /* Flags controlling information retrieved */ 6494 #define MC_CMD_READ_SENSORS_EXT_IN_V2_FLAGS_OFST 12 6495 #define MC_CMD_READ_SENSORS_EXT_IN_V2_FLAGS_LEN 4 6496 #define MC_CMD_READ_SENSORS_EXT_IN_V2_ENGINEERING_OFST 12 6497 #define MC_CMD_READ_SENSORS_EXT_IN_V2_ENGINEERING_LBN 0 6498 #define MC_CMD_READ_SENSORS_EXT_IN_V2_ENGINEERING_WIDTH 1 6499 6500 /* MC_CMD_READ_SENSORS_OUT msgresponse */ 6501 #define MC_CMD_READ_SENSORS_OUT_LEN 0 6502 6503 /* MC_CMD_READ_SENSORS_EXT_OUT msgresponse */ 6504 #define MC_CMD_READ_SENSORS_EXT_OUT_LEN 0 6505 6506 /* MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF structuredef */ 6507 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_LEN 4 6508 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_VALUE_OFST 0 6509 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_VALUE_LEN 2 6510 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_VALUE_LBN 0 6511 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_VALUE_WIDTH 16 6512 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_OFST 2 6513 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_LEN 1 6514 /* enum: Ok. */ 6515 #define MC_CMD_SENSOR_STATE_OK 0x0 6516 /* enum: Breached warning threshold. */ 6517 #define MC_CMD_SENSOR_STATE_WARNING 0x1 6518 /* enum: Breached fatal threshold. */ 6519 #define MC_CMD_SENSOR_STATE_FATAL 0x2 6520 /* enum: Fault with sensor. */ 6521 #define MC_CMD_SENSOR_STATE_BROKEN 0x3 6522 /* enum: Sensor is working but does not currently have a reading. */ 6523 #define MC_CMD_SENSOR_STATE_NO_READING 0x4 6524 /* enum: Sensor initialisation failed. */ 6525 #define MC_CMD_SENSOR_STATE_INIT_FAILED 0x5 6526 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_LBN 16 6527 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_WIDTH 8 6528 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_OFST 3 6529 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_LEN 1 6530 /* Enum values, see field(s): */ 6531 /* MC_CMD_SENSOR_INFO/MC_CMD_SENSOR_INFO_OUT/MASK */ 6532 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_LBN 24 6533 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_WIDTH 8 6534 6535 6536 /***********************************/ 6537 /* MC_CMD_GET_PHY_STATE 6538 * Report current state of PHY. A 'zombie' PHY is a PHY that has failed to boot 6539 * (e.g. due to missing or corrupted firmware). Locks required: None. Return 6540 * code: 0 6541 */ 6542 #define MC_CMD_GET_PHY_STATE 0x43 6543 #undef MC_CMD_0x43_PRIVILEGE_CTG 6544 6545 #define MC_CMD_0x43_PRIVILEGE_CTG SRIOV_CTG_GENERAL 6546 6547 /* MC_CMD_GET_PHY_STATE_IN msgrequest */ 6548 #define MC_CMD_GET_PHY_STATE_IN_LEN 0 6549 6550 /* MC_CMD_GET_PHY_STATE_OUT msgresponse */ 6551 #define MC_CMD_GET_PHY_STATE_OUT_LEN 4 6552 #define MC_CMD_GET_PHY_STATE_OUT_STATE_OFST 0 6553 #define MC_CMD_GET_PHY_STATE_OUT_STATE_LEN 4 6554 /* enum: Ok. */ 6555 #define MC_CMD_PHY_STATE_OK 0x1 6556 /* enum: Faulty. */ 6557 #define MC_CMD_PHY_STATE_ZOMBIE 0x2 6558 6559 6560 /***********************************/ 6561 /* MC_CMD_SETUP_8021QBB 6562 * 802.1Qbb control. 8 Tx queues that map to priorities 0 - 7. Use all 1s to 6563 * disable 802.Qbb for a given priority. 6564 */ 6565 #define MC_CMD_SETUP_8021QBB 0x44 6566 6567 /* MC_CMD_SETUP_8021QBB_IN msgrequest */ 6568 #define MC_CMD_SETUP_8021QBB_IN_LEN 32 6569 #define MC_CMD_SETUP_8021QBB_IN_TXQS_OFST 0 6570 #define MC_CMD_SETUP_8021QBB_IN_TXQS_LEN 32 6571 6572 /* MC_CMD_SETUP_8021QBB_OUT msgresponse */ 6573 #define MC_CMD_SETUP_8021QBB_OUT_LEN 0 6574 6575 6576 /***********************************/ 6577 /* MC_CMD_WOL_FILTER_GET 6578 * Retrieve ID of any WoL filters. Locks required: None. Returns: 0, ENOSYS 6579 */ 6580 #define MC_CMD_WOL_FILTER_GET 0x45 6581 #undef MC_CMD_0x45_PRIVILEGE_CTG 6582 6583 #define MC_CMD_0x45_PRIVILEGE_CTG SRIOV_CTG_LINK 6584 6585 /* MC_CMD_WOL_FILTER_GET_IN msgrequest */ 6586 #define MC_CMD_WOL_FILTER_GET_IN_LEN 0 6587 6588 /* MC_CMD_WOL_FILTER_GET_OUT msgresponse */ 6589 #define MC_CMD_WOL_FILTER_GET_OUT_LEN 4 6590 #define MC_CMD_WOL_FILTER_GET_OUT_FILTER_ID_OFST 0 6591 #define MC_CMD_WOL_FILTER_GET_OUT_FILTER_ID_LEN 4 6592 6593 6594 /***********************************/ 6595 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD 6596 * Add a protocol offload to NIC for lights-out state. Locks required: None. 6597 * Returns: 0, ENOSYS 6598 */ 6599 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD 0x46 6600 #undef MC_CMD_0x46_PRIVILEGE_CTG 6601 6602 #define MC_CMD_0x46_PRIVILEGE_CTG SRIOV_CTG_LINK 6603 6604 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN msgrequest */ 6605 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_LENMIN 8 6606 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_LENMAX 252 6607 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_LENMAX_MCDI2 1020 6608 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_LEN(num) (4+4*(num)) 6609 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_NUM(len) (((len)-4)/4) 6610 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_OFST 0 6611 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_LEN 4 6612 #define MC_CMD_LIGHTSOUT_OFFLOAD_PROTOCOL_ARP 0x1 /* enum */ 6613 #define MC_CMD_LIGHTSOUT_OFFLOAD_PROTOCOL_NS 0x2 /* enum */ 6614 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_OFST 4 6615 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_LEN 4 6616 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_MINNUM 1 6617 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_MAXNUM 62 6618 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_MAXNUM_MCDI2 254 6619 6620 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP msgrequest */ 6621 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_LEN 14 6622 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_OFST 0 */ 6623 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_LEN 4 */ 6624 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_MAC_OFST 4 6625 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_MAC_LEN 6 6626 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_IP_OFST 10 6627 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_ARP_IP_LEN 4 6628 6629 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS msgrequest */ 6630 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_LEN 42 6631 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_OFST 0 */ 6632 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_LEN 4 */ 6633 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_MAC_OFST 4 6634 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_MAC_LEN 6 6635 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_SNIPV6_OFST 10 6636 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_SNIPV6_LEN 16 6637 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_IPV6_OFST 26 6638 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_NS_IPV6_LEN 16 6639 6640 /* MC_CMD_ADD_LIGHTSOUT_OFFLOAD_OUT msgresponse */ 6641 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_OUT_LEN 4 6642 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_OUT_FILTER_ID_OFST 0 6643 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_OUT_FILTER_ID_LEN 4 6644 6645 6646 /***********************************/ 6647 /* MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD 6648 * Remove a protocol offload from NIC for lights-out state. Locks required: 6649 * None. Returns: 0, ENOSYS 6650 */ 6651 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD 0x47 6652 #undef MC_CMD_0x47_PRIVILEGE_CTG 6653 6654 #define MC_CMD_0x47_PRIVILEGE_CTG SRIOV_CTG_LINK 6655 6656 /* MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN msgrequest */ 6657 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_LEN 8 6658 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_OFST 0 6659 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_PROTOCOL_LEN 4 6660 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_FILTER_ID_OFST 4 6661 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_IN_FILTER_ID_LEN 4 6662 6663 /* MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_OUT msgresponse */ 6664 #define MC_CMD_REMOVE_LIGHTSOUT_OFFLOAD_OUT_LEN 0 6665 6666 6667 /***********************************/ 6668 /* MC_CMD_MAC_RESET_RESTORE 6669 * Restore MAC after block reset. Locks required: None. Returns: 0. 6670 */ 6671 #define MC_CMD_MAC_RESET_RESTORE 0x48 6672 6673 /* MC_CMD_MAC_RESET_RESTORE_IN msgrequest */ 6674 #define MC_CMD_MAC_RESET_RESTORE_IN_LEN 0 6675 6676 /* MC_CMD_MAC_RESET_RESTORE_OUT msgresponse */ 6677 #define MC_CMD_MAC_RESET_RESTORE_OUT_LEN 0 6678 6679 6680 /***********************************/ 6681 /* MC_CMD_TESTASSERT 6682 * Deliberately trigger an assert-detonation in the firmware for testing 6683 * purposes (i.e. to allow tests that the driver copes gracefully). Locks 6684 * required: None Returns: 0 6685 */ 6686 #define MC_CMD_TESTASSERT 0x49 6687 #undef MC_CMD_0x49_PRIVILEGE_CTG 6688 6689 #define MC_CMD_0x49_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 6690 6691 /* MC_CMD_TESTASSERT_IN msgrequest */ 6692 #define MC_CMD_TESTASSERT_IN_LEN 0 6693 6694 /* MC_CMD_TESTASSERT_OUT msgresponse */ 6695 #define MC_CMD_TESTASSERT_OUT_LEN 0 6696 6697 /* MC_CMD_TESTASSERT_V2_IN msgrequest */ 6698 #define MC_CMD_TESTASSERT_V2_IN_LEN 4 6699 /* How to provoke the assertion */ 6700 #define MC_CMD_TESTASSERT_V2_IN_TYPE_OFST 0 6701 #define MC_CMD_TESTASSERT_V2_IN_TYPE_LEN 4 6702 /* enum: Assert using the FAIL_ASSERTION_WITH_USEFUL_VALUES macro. Unless 6703 * you're testing firmware, this is what you want. 6704 */ 6705 #define MC_CMD_TESTASSERT_V2_IN_FAIL_ASSERTION_WITH_USEFUL_VALUES 0x0 6706 /* enum: Assert using assert(0); */ 6707 #define MC_CMD_TESTASSERT_V2_IN_ASSERT_FALSE 0x1 6708 /* enum: Deliberately trigger a watchdog */ 6709 #define MC_CMD_TESTASSERT_V2_IN_WATCHDOG 0x2 6710 /* enum: Deliberately trigger a trap by loading from an invalid address */ 6711 #define MC_CMD_TESTASSERT_V2_IN_LOAD_TRAP 0x3 6712 /* enum: Deliberately trigger a trap by storing to an invalid address */ 6713 #define MC_CMD_TESTASSERT_V2_IN_STORE_TRAP 0x4 6714 /* enum: Jump to an invalid address */ 6715 #define MC_CMD_TESTASSERT_V2_IN_JUMP_TRAP 0x5 6716 6717 /* MC_CMD_TESTASSERT_V2_OUT msgresponse */ 6718 #define MC_CMD_TESTASSERT_V2_OUT_LEN 0 6719 6720 6721 /***********************************/ 6722 /* MC_CMD_WORKAROUND 6723 * Enable/Disable a given workaround. The mcfw will return EINVAL if it doesn't 6724 * understand the given workaround number - which should not be treated as a 6725 * hard error by client code. This op does not imply any semantics about each 6726 * workaround, that's between the driver and the mcfw on a per-workaround 6727 * basis. Locks required: None. Returns: 0, EINVAL . 6728 */ 6729 #define MC_CMD_WORKAROUND 0x4a 6730 #undef MC_CMD_0x4a_PRIVILEGE_CTG 6731 6732 #define MC_CMD_0x4a_PRIVILEGE_CTG SRIOV_CTG_ADMIN 6733 6734 /* MC_CMD_WORKAROUND_IN msgrequest */ 6735 #define MC_CMD_WORKAROUND_IN_LEN 8 6736 /* The enums here must correspond with those in MC_CMD_GET_WORKAROUND. */ 6737 #define MC_CMD_WORKAROUND_IN_TYPE_OFST 0 6738 #define MC_CMD_WORKAROUND_IN_TYPE_LEN 4 6739 /* enum: Bug 17230 work around. */ 6740 #define MC_CMD_WORKAROUND_BUG17230 0x1 6741 /* enum: Bug 35388 work around (unsafe EVQ writes). */ 6742 #define MC_CMD_WORKAROUND_BUG35388 0x2 6743 /* enum: Bug35017 workaround (A64 tables must be identity map) */ 6744 #define MC_CMD_WORKAROUND_BUG35017 0x3 6745 /* enum: Bug 41750 present (MC_CMD_TRIGGER_INTERRUPT won't work) */ 6746 #define MC_CMD_WORKAROUND_BUG41750 0x4 6747 /* enum: Bug 42008 present (Interrupts can overtake associated events). Caution 6748 * - before adding code that queries this workaround, remember that there's 6749 * released Monza firmware that doesn't understand MC_CMD_WORKAROUND_BUG42008, 6750 * and will hence (incorrectly) report that the bug doesn't exist. 6751 */ 6752 #define MC_CMD_WORKAROUND_BUG42008 0x5 6753 /* enum: Bug 26807 features present in firmware (multicast filter chaining) 6754 * This feature cannot be turned on/off while there are any filters already 6755 * present. The behaviour in such case depends on the acting client's privilege 6756 * level. If the client has the admin privilege, then all functions that have 6757 * filters installed will be FLRed and the FLR_DONE flag will be set. Otherwise 6758 * the command will fail with MC_CMD_ERR_FILTERS_PRESENT. 6759 */ 6760 #define MC_CMD_WORKAROUND_BUG26807 0x6 6761 /* enum: Bug 61265 work around (broken EVQ TMR writes). */ 6762 #define MC_CMD_WORKAROUND_BUG61265 0x7 6763 /* 0 = disable the workaround indicated by TYPE; any non-zero value = enable 6764 * the workaround 6765 */ 6766 #define MC_CMD_WORKAROUND_IN_ENABLED_OFST 4 6767 #define MC_CMD_WORKAROUND_IN_ENABLED_LEN 4 6768 6769 /* MC_CMD_WORKAROUND_OUT msgresponse */ 6770 #define MC_CMD_WORKAROUND_OUT_LEN 0 6771 6772 /* MC_CMD_WORKAROUND_EXT_OUT msgresponse: This response format will be used 6773 * when (TYPE == MC_CMD_WORKAROUND_BUG26807) 6774 */ 6775 #define MC_CMD_WORKAROUND_EXT_OUT_LEN 4 6776 #define MC_CMD_WORKAROUND_EXT_OUT_FLAGS_OFST 0 6777 #define MC_CMD_WORKAROUND_EXT_OUT_FLAGS_LEN 4 6778 #define MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_OFST 0 6779 #define MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_LBN 0 6780 #define MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_WIDTH 1 6781 6782 6783 /***********************************/ 6784 /* MC_CMD_GET_PHY_MEDIA_INFO 6785 * Read media-specific data from PHY (e.g. SFP/SFP+ module ID information for 6786 * SFP+ PHYs). The 'media type' can be found via GET_PHY_CFG 6787 * (GET_PHY_CFG_OUT_MEDIA_TYPE); the valid 'page number' input values, and the 6788 * output data, are interpreted on a per-type basis. For SFP+: PAGE=0 or 1 6789 * returns a 128-byte block read from module I2C address 0xA0 offset 0 or 0x80. 6790 * Anything else: currently undefined. Locks required: None. Return code: 0. 6791 */ 6792 #define MC_CMD_GET_PHY_MEDIA_INFO 0x4b 6793 #undef MC_CMD_0x4b_PRIVILEGE_CTG 6794 6795 #define MC_CMD_0x4b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 6796 6797 /* MC_CMD_GET_PHY_MEDIA_INFO_IN msgrequest */ 6798 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_LEN 4 6799 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_PAGE_OFST 0 6800 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_PAGE_LEN 4 6801 6802 /* MC_CMD_GET_PHY_MEDIA_INFO_OUT msgresponse */ 6803 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LENMIN 5 6804 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LENMAX 252 6805 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LENMAX_MCDI2 1020 6806 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LEN(num) (4+1*(num)) 6807 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_NUM(len) (((len)-4)/1) 6808 /* in bytes */ 6809 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATALEN_OFST 0 6810 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATALEN_LEN 4 6811 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_OFST 4 6812 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_LEN 1 6813 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_MINNUM 1 6814 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_MAXNUM 248 6815 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_MAXNUM_MCDI2 1016 6816 6817 6818 /***********************************/ 6819 /* MC_CMD_NVRAM_TEST 6820 * Test a particular NVRAM partition for valid contents (where "valid" depends 6821 * on the type of partition). 6822 */ 6823 #define MC_CMD_NVRAM_TEST 0x4c 6824 #undef MC_CMD_0x4c_PRIVILEGE_CTG 6825 6826 #define MC_CMD_0x4c_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 6827 6828 /* MC_CMD_NVRAM_TEST_IN msgrequest */ 6829 #define MC_CMD_NVRAM_TEST_IN_LEN 4 6830 #define MC_CMD_NVRAM_TEST_IN_TYPE_OFST 0 6831 #define MC_CMD_NVRAM_TEST_IN_TYPE_LEN 4 6832 /* Enum values, see field(s): */ 6833 /* MC_CMD_NVRAM_TYPES/MC_CMD_NVRAM_TYPES_OUT/TYPES */ 6834 6835 /* MC_CMD_NVRAM_TEST_OUT msgresponse */ 6836 #define MC_CMD_NVRAM_TEST_OUT_LEN 4 6837 #define MC_CMD_NVRAM_TEST_OUT_RESULT_OFST 0 6838 #define MC_CMD_NVRAM_TEST_OUT_RESULT_LEN 4 6839 /* enum: Passed. */ 6840 #define MC_CMD_NVRAM_TEST_PASS 0x0 6841 /* enum: Failed. */ 6842 #define MC_CMD_NVRAM_TEST_FAIL 0x1 6843 /* enum: Not supported. */ 6844 #define MC_CMD_NVRAM_TEST_NOTSUPP 0x2 6845 6846 6847 /***********************************/ 6848 /* MC_CMD_MRSFP_TWEAK 6849 * Read status and/or set parameters for the 'mrsfp' driver in mr_rusty builds. 6850 * I2C I/O expander bits are always read; if equaliser parameters are supplied, 6851 * they are configured first. Locks required: None. Return code: 0, EINVAL. 6852 */ 6853 #define MC_CMD_MRSFP_TWEAK 0x4d 6854 6855 /* MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG msgrequest */ 6856 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_LEN 16 6857 /* 0-6 low->high de-emph. */ 6858 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_TXEQ_LEVEL_OFST 0 6859 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_TXEQ_LEVEL_LEN 4 6860 /* 0-8 low->high ref.V */ 6861 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_TXEQ_DT_CFG_OFST 4 6862 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_TXEQ_DT_CFG_LEN 4 6863 /* 0-8 0-8 low->high boost */ 6864 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_RXEQ_BOOST_OFST 8 6865 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_RXEQ_BOOST_LEN 4 6866 /* 0-8 low->high ref.V */ 6867 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_RXEQ_DT_CFG_OFST 12 6868 #define MC_CMD_MRSFP_TWEAK_IN_EQ_CONFIG_RXEQ_DT_CFG_LEN 4 6869 6870 /* MC_CMD_MRSFP_TWEAK_IN_READ_ONLY msgrequest */ 6871 #define MC_CMD_MRSFP_TWEAK_IN_READ_ONLY_LEN 0 6872 6873 /* MC_CMD_MRSFP_TWEAK_OUT msgresponse */ 6874 #define MC_CMD_MRSFP_TWEAK_OUT_LEN 12 6875 /* input bits */ 6876 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_INPUTS_OFST 0 6877 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_INPUTS_LEN 4 6878 /* output bits */ 6879 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_OUTPUTS_OFST 4 6880 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_OUTPUTS_LEN 4 6881 /* direction */ 6882 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_DIRECTION_OFST 8 6883 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_DIRECTION_LEN 4 6884 /* enum: Out. */ 6885 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_DIRECTION_OUT 0x0 6886 /* enum: In. */ 6887 #define MC_CMD_MRSFP_TWEAK_OUT_IOEXP_DIRECTION_IN 0x1 6888 6889 6890 /***********************************/ 6891 /* MC_CMD_SENSOR_SET_LIMS 6892 * Adjusts the sensor limits. This is a warranty-voiding operation. Returns: 6893 * ENOENT if the sensor specified does not exist, EINVAL if the limits are out 6894 * of range. 6895 */ 6896 #define MC_CMD_SENSOR_SET_LIMS 0x4e 6897 #undef MC_CMD_0x4e_PRIVILEGE_CTG 6898 6899 #define MC_CMD_0x4e_PRIVILEGE_CTG SRIOV_CTG_INSECURE 6900 6901 /* MC_CMD_SENSOR_SET_LIMS_IN msgrequest */ 6902 #define MC_CMD_SENSOR_SET_LIMS_IN_LEN 20 6903 #define MC_CMD_SENSOR_SET_LIMS_IN_SENSOR_OFST 0 6904 #define MC_CMD_SENSOR_SET_LIMS_IN_SENSOR_LEN 4 6905 /* Enum values, see field(s): */ 6906 /* MC_CMD_SENSOR_INFO/MC_CMD_SENSOR_INFO_OUT/MASK */ 6907 /* interpretation is is sensor-specific. */ 6908 #define MC_CMD_SENSOR_SET_LIMS_IN_LOW0_OFST 4 6909 #define MC_CMD_SENSOR_SET_LIMS_IN_LOW0_LEN 4 6910 /* interpretation is is sensor-specific. */ 6911 #define MC_CMD_SENSOR_SET_LIMS_IN_HI0_OFST 8 6912 #define MC_CMD_SENSOR_SET_LIMS_IN_HI0_LEN 4 6913 /* interpretation is is sensor-specific. */ 6914 #define MC_CMD_SENSOR_SET_LIMS_IN_LOW1_OFST 12 6915 #define MC_CMD_SENSOR_SET_LIMS_IN_LOW1_LEN 4 6916 /* interpretation is is sensor-specific. */ 6917 #define MC_CMD_SENSOR_SET_LIMS_IN_HI1_OFST 16 6918 #define MC_CMD_SENSOR_SET_LIMS_IN_HI1_LEN 4 6919 6920 /* MC_CMD_SENSOR_SET_LIMS_OUT msgresponse */ 6921 #define MC_CMD_SENSOR_SET_LIMS_OUT_LEN 0 6922 6923 6924 /***********************************/ 6925 /* MC_CMD_GET_RESOURCE_LIMITS 6926 */ 6927 #define MC_CMD_GET_RESOURCE_LIMITS 0x4f 6928 6929 /* MC_CMD_GET_RESOURCE_LIMITS_IN msgrequest */ 6930 #define MC_CMD_GET_RESOURCE_LIMITS_IN_LEN 0 6931 6932 /* MC_CMD_GET_RESOURCE_LIMITS_OUT msgresponse */ 6933 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_LEN 16 6934 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_BUFTBL_OFST 0 6935 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_BUFTBL_LEN 4 6936 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_EVQ_OFST 4 6937 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_EVQ_LEN 4 6938 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_RXQ_OFST 8 6939 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_RXQ_LEN 4 6940 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_TXQ_OFST 12 6941 #define MC_CMD_GET_RESOURCE_LIMITS_OUT_TXQ_LEN 4 6942 6943 6944 /***********************************/ 6945 /* MC_CMD_NVRAM_PARTITIONS 6946 * Reads the list of available virtual NVRAM partition types. Locks required: 6947 * none. Returns: 0, EINVAL (bad type). 6948 */ 6949 #define MC_CMD_NVRAM_PARTITIONS 0x51 6950 #undef MC_CMD_0x51_PRIVILEGE_CTG 6951 6952 #define MC_CMD_0x51_PRIVILEGE_CTG SRIOV_CTG_ADMIN 6953 6954 /* MC_CMD_NVRAM_PARTITIONS_IN msgrequest */ 6955 #define MC_CMD_NVRAM_PARTITIONS_IN_LEN 0 6956 6957 /* MC_CMD_NVRAM_PARTITIONS_OUT msgresponse */ 6958 #define MC_CMD_NVRAM_PARTITIONS_OUT_LENMIN 4 6959 #define MC_CMD_NVRAM_PARTITIONS_OUT_LENMAX 252 6960 #define MC_CMD_NVRAM_PARTITIONS_OUT_LENMAX_MCDI2 1020 6961 #define MC_CMD_NVRAM_PARTITIONS_OUT_LEN(num) (4+4*(num)) 6962 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_NUM(len) (((len)-4)/4) 6963 /* total number of partitions */ 6964 #define MC_CMD_NVRAM_PARTITIONS_OUT_NUM_PARTITIONS_OFST 0 6965 #define MC_CMD_NVRAM_PARTITIONS_OUT_NUM_PARTITIONS_LEN 4 6966 /* type ID code for each of NUM_PARTITIONS partitions */ 6967 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_OFST 4 6968 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_LEN 4 6969 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_MINNUM 0 6970 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_MAXNUM 62 6971 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_MAXNUM_MCDI2 254 6972 6973 6974 /***********************************/ 6975 /* MC_CMD_NVRAM_METADATA 6976 * Reads soft metadata for a virtual NVRAM partition type. Locks required: 6977 * none. Returns: 0, EINVAL (bad type). 6978 */ 6979 #define MC_CMD_NVRAM_METADATA 0x52 6980 #undef MC_CMD_0x52_PRIVILEGE_CTG 6981 6982 #define MC_CMD_0x52_PRIVILEGE_CTG SRIOV_CTG_ADMIN 6983 6984 /* MC_CMD_NVRAM_METADATA_IN msgrequest */ 6985 #define MC_CMD_NVRAM_METADATA_IN_LEN 4 6986 /* Partition type ID code */ 6987 #define MC_CMD_NVRAM_METADATA_IN_TYPE_OFST 0 6988 #define MC_CMD_NVRAM_METADATA_IN_TYPE_LEN 4 6989 6990 /* MC_CMD_NVRAM_METADATA_OUT msgresponse */ 6991 #define MC_CMD_NVRAM_METADATA_OUT_LENMIN 20 6992 #define MC_CMD_NVRAM_METADATA_OUT_LENMAX 252 6993 #define MC_CMD_NVRAM_METADATA_OUT_LENMAX_MCDI2 1020 6994 #define MC_CMD_NVRAM_METADATA_OUT_LEN(num) (20+1*(num)) 6995 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_NUM(len) (((len)-20)/1) 6996 /* Partition type ID code */ 6997 #define MC_CMD_NVRAM_METADATA_OUT_TYPE_OFST 0 6998 #define MC_CMD_NVRAM_METADATA_OUT_TYPE_LEN 4 6999 #define MC_CMD_NVRAM_METADATA_OUT_FLAGS_OFST 4 7000 #define MC_CMD_NVRAM_METADATA_OUT_FLAGS_LEN 4 7001 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_VALID_OFST 4 7002 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_VALID_LBN 0 7003 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_VALID_WIDTH 1 7004 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_VALID_OFST 4 7005 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_VALID_LBN 1 7006 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_VALID_WIDTH 1 7007 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_VALID_OFST 4 7008 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_VALID_LBN 2 7009 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_VALID_WIDTH 1 7010 /* Subtype ID code for content of this partition */ 7011 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_OFST 8 7012 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_LEN 4 7013 /* 1st component of W.X.Y.Z version number for content of this partition */ 7014 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_W_OFST 12 7015 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_W_LEN 2 7016 /* 2nd component of W.X.Y.Z version number for content of this partition */ 7017 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_X_OFST 14 7018 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_X_LEN 2 7019 /* 3rd component of W.X.Y.Z version number for content of this partition */ 7020 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_Y_OFST 16 7021 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_Y_LEN 2 7022 /* 4th component of W.X.Y.Z version number for content of this partition */ 7023 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_Z_OFST 18 7024 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_Z_LEN 2 7025 /* Zero-terminated string describing the content of this partition */ 7026 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_OFST 20 7027 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_LEN 1 7028 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_MINNUM 0 7029 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_MAXNUM 232 7030 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_MAXNUM_MCDI2 1000 7031 7032 7033 /***********************************/ 7034 /* MC_CMD_GET_MAC_ADDRESSES 7035 * Returns the base MAC, count and stride for the requesting function 7036 */ 7037 #define MC_CMD_GET_MAC_ADDRESSES 0x55 7038 #undef MC_CMD_0x55_PRIVILEGE_CTG 7039 7040 #define MC_CMD_0x55_PRIVILEGE_CTG SRIOV_CTG_GENERAL 7041 7042 /* MC_CMD_GET_MAC_ADDRESSES_IN msgrequest */ 7043 #define MC_CMD_GET_MAC_ADDRESSES_IN_LEN 0 7044 7045 /* MC_CMD_GET_MAC_ADDRESSES_OUT msgresponse */ 7046 #define MC_CMD_GET_MAC_ADDRESSES_OUT_LEN 16 7047 /* Base MAC address */ 7048 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_ADDR_BASE_OFST 0 7049 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_ADDR_BASE_LEN 6 7050 /* Padding */ 7051 #define MC_CMD_GET_MAC_ADDRESSES_OUT_RESERVED_OFST 6 7052 #define MC_CMD_GET_MAC_ADDRESSES_OUT_RESERVED_LEN 2 7053 /* Number of allocated MAC addresses */ 7054 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_COUNT_OFST 8 7055 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_COUNT_LEN 4 7056 /* Spacing of allocated MAC addresses */ 7057 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_STRIDE_OFST 12 7058 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_STRIDE_LEN 4 7059 7060 7061 /***********************************/ 7062 /* MC_CMD_CLP 7063 * Perform a CLP related operation, see SF-110495-PS for details of CLP 7064 * processing. This command has been extended to accomodate the requirements of 7065 * different manufacturers which are to be found in SF-119187-TC, SF-119186-TC, 7066 * SF-120509-TC and SF-117282-PS. 7067 */ 7068 #define MC_CMD_CLP 0x56 7069 #undef MC_CMD_0x56_PRIVILEGE_CTG 7070 7071 #define MC_CMD_0x56_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 7072 7073 /* MC_CMD_CLP_IN msgrequest */ 7074 #define MC_CMD_CLP_IN_LEN 4 7075 /* Sub operation */ 7076 #define MC_CMD_CLP_IN_OP_OFST 0 7077 #define MC_CMD_CLP_IN_OP_LEN 4 7078 /* enum: Return to factory default settings */ 7079 #define MC_CMD_CLP_OP_DEFAULT 0x1 7080 /* enum: Set MAC address */ 7081 #define MC_CMD_CLP_OP_SET_MAC 0x2 7082 /* enum: Get MAC address */ 7083 #define MC_CMD_CLP_OP_GET_MAC 0x3 7084 /* enum: Set UEFI/GPXE boot mode */ 7085 #define MC_CMD_CLP_OP_SET_BOOT 0x4 7086 /* enum: Get UEFI/GPXE boot mode */ 7087 #define MC_CMD_CLP_OP_GET_BOOT 0x5 7088 7089 /* MC_CMD_CLP_OUT msgresponse */ 7090 #define MC_CMD_CLP_OUT_LEN 0 7091 7092 /* MC_CMD_CLP_IN_DEFAULT msgrequest */ 7093 #define MC_CMD_CLP_IN_DEFAULT_LEN 4 7094 /* MC_CMD_CLP_IN_OP_OFST 0 */ 7095 /* MC_CMD_CLP_IN_OP_LEN 4 */ 7096 7097 /* MC_CMD_CLP_OUT_DEFAULT msgresponse */ 7098 #define MC_CMD_CLP_OUT_DEFAULT_LEN 0 7099 7100 /* MC_CMD_CLP_IN_SET_MAC msgrequest */ 7101 #define MC_CMD_CLP_IN_SET_MAC_LEN 12 7102 /* MC_CMD_CLP_IN_OP_OFST 0 */ 7103 /* MC_CMD_CLP_IN_OP_LEN 4 */ 7104 /* The MAC address assigned to port. A zero MAC address of 00:00:00:00:00:00 7105 * restores the permanent (factory-programmed) MAC address associated with the 7106 * port. A non-zero MAC address persists until a PCIe reset or a power cycle. 7107 */ 7108 #define MC_CMD_CLP_IN_SET_MAC_ADDR_OFST 4 7109 #define MC_CMD_CLP_IN_SET_MAC_ADDR_LEN 6 7110 /* Padding */ 7111 #define MC_CMD_CLP_IN_SET_MAC_RESERVED_OFST 10 7112 #define MC_CMD_CLP_IN_SET_MAC_RESERVED_LEN 2 7113 7114 /* MC_CMD_CLP_OUT_SET_MAC msgresponse */ 7115 #define MC_CMD_CLP_OUT_SET_MAC_LEN 0 7116 7117 /* MC_CMD_CLP_IN_SET_MAC_V2 msgrequest */ 7118 #define MC_CMD_CLP_IN_SET_MAC_V2_LEN 16 7119 /* MC_CMD_CLP_IN_OP_OFST 0 */ 7120 /* MC_CMD_CLP_IN_OP_LEN 4 */ 7121 /* The MAC address assigned to port. A zero MAC address of 00:00:00:00:00:00 7122 * restores the permanent (factory-programmed) MAC address associated with the 7123 * port. A non-zero MAC address persists until a PCIe reset or a power cycle. 7124 */ 7125 #define MC_CMD_CLP_IN_SET_MAC_V2_ADDR_OFST 4 7126 #define MC_CMD_CLP_IN_SET_MAC_V2_ADDR_LEN 6 7127 /* Padding */ 7128 #define MC_CMD_CLP_IN_SET_MAC_V2_RESERVED_OFST 10 7129 #define MC_CMD_CLP_IN_SET_MAC_V2_RESERVED_LEN 2 7130 #define MC_CMD_CLP_IN_SET_MAC_V2_FLAGS_OFST 12 7131 #define MC_CMD_CLP_IN_SET_MAC_V2_FLAGS_LEN 4 7132 #define MC_CMD_CLP_IN_SET_MAC_V2_VIRTUAL_OFST 12 7133 #define MC_CMD_CLP_IN_SET_MAC_V2_VIRTUAL_LBN 0 7134 #define MC_CMD_CLP_IN_SET_MAC_V2_VIRTUAL_WIDTH 1 7135 7136 /* MC_CMD_CLP_IN_GET_MAC msgrequest */ 7137 #define MC_CMD_CLP_IN_GET_MAC_LEN 4 7138 /* MC_CMD_CLP_IN_OP_OFST 0 */ 7139 /* MC_CMD_CLP_IN_OP_LEN 4 */ 7140 7141 /* MC_CMD_CLP_IN_GET_MAC_V2 msgrequest */ 7142 #define MC_CMD_CLP_IN_GET_MAC_V2_LEN 8 7143 /* MC_CMD_CLP_IN_OP_OFST 0 */ 7144 /* MC_CMD_CLP_IN_OP_LEN 4 */ 7145 #define MC_CMD_CLP_IN_GET_MAC_V2_FLAGS_OFST 4 7146 #define MC_CMD_CLP_IN_GET_MAC_V2_FLAGS_LEN 4 7147 #define MC_CMD_CLP_IN_GET_MAC_V2_PERMANENT_OFST 4 7148 #define MC_CMD_CLP_IN_GET_MAC_V2_PERMANENT_LBN 0 7149 #define MC_CMD_CLP_IN_GET_MAC_V2_PERMANENT_WIDTH 1 7150 7151 /* MC_CMD_CLP_OUT_GET_MAC msgresponse */ 7152 #define MC_CMD_CLP_OUT_GET_MAC_LEN 8 7153 /* MAC address assigned to port */ 7154 #define MC_CMD_CLP_OUT_GET_MAC_ADDR_OFST 0 7155 #define MC_CMD_CLP_OUT_GET_MAC_ADDR_LEN 6 7156 /* Padding */ 7157 #define MC_CMD_CLP_OUT_GET_MAC_RESERVED_OFST 6 7158 #define MC_CMD_CLP_OUT_GET_MAC_RESERVED_LEN 2 7159 7160 /* MC_CMD_CLP_IN_SET_BOOT msgrequest */ 7161 #define MC_CMD_CLP_IN_SET_BOOT_LEN 5 7162 /* MC_CMD_CLP_IN_OP_OFST 0 */ 7163 /* MC_CMD_CLP_IN_OP_LEN 4 */ 7164 /* Boot flag */ 7165 #define MC_CMD_CLP_IN_SET_BOOT_FLAG_OFST 4 7166 #define MC_CMD_CLP_IN_SET_BOOT_FLAG_LEN 1 7167 7168 /* MC_CMD_CLP_OUT_SET_BOOT msgresponse */ 7169 #define MC_CMD_CLP_OUT_SET_BOOT_LEN 0 7170 7171 /* MC_CMD_CLP_IN_GET_BOOT msgrequest */ 7172 #define MC_CMD_CLP_IN_GET_BOOT_LEN 4 7173 /* MC_CMD_CLP_IN_OP_OFST 0 */ 7174 /* MC_CMD_CLP_IN_OP_LEN 4 */ 7175 7176 /* MC_CMD_CLP_OUT_GET_BOOT msgresponse */ 7177 #define MC_CMD_CLP_OUT_GET_BOOT_LEN 4 7178 /* Boot flag */ 7179 #define MC_CMD_CLP_OUT_GET_BOOT_FLAG_OFST 0 7180 #define MC_CMD_CLP_OUT_GET_BOOT_FLAG_LEN 1 7181 /* Padding */ 7182 #define MC_CMD_CLP_OUT_GET_BOOT_RESERVED_OFST 1 7183 #define MC_CMD_CLP_OUT_GET_BOOT_RESERVED_LEN 3 7184 7185 7186 /***********************************/ 7187 /* MC_CMD_MUM 7188 * Perform a MUM operation 7189 */ 7190 #define MC_CMD_MUM 0x57 7191 #undef MC_CMD_0x57_PRIVILEGE_CTG 7192 7193 #define MC_CMD_0x57_PRIVILEGE_CTG SRIOV_CTG_INSECURE 7194 7195 /* MC_CMD_MUM_IN msgrequest */ 7196 #define MC_CMD_MUM_IN_LEN 4 7197 #define MC_CMD_MUM_IN_OP_HDR_OFST 0 7198 #define MC_CMD_MUM_IN_OP_HDR_LEN 4 7199 #define MC_CMD_MUM_IN_OP_OFST 0 7200 #define MC_CMD_MUM_IN_OP_LBN 0 7201 #define MC_CMD_MUM_IN_OP_WIDTH 8 7202 /* enum: NULL MCDI command to MUM */ 7203 #define MC_CMD_MUM_OP_NULL 0x1 7204 /* enum: Get MUM version */ 7205 #define MC_CMD_MUM_OP_GET_VERSION 0x2 7206 /* enum: Issue raw I2C command to MUM */ 7207 #define MC_CMD_MUM_OP_RAW_CMD 0x3 7208 /* enum: Read from registers on devices connected to MUM. */ 7209 #define MC_CMD_MUM_OP_READ 0x4 7210 /* enum: Write to registers on devices connected to MUM. */ 7211 #define MC_CMD_MUM_OP_WRITE 0x5 7212 /* enum: Control UART logging. */ 7213 #define MC_CMD_MUM_OP_LOG 0x6 7214 /* enum: Operations on MUM GPIO lines */ 7215 #define MC_CMD_MUM_OP_GPIO 0x7 7216 /* enum: Get sensor readings from MUM */ 7217 #define MC_CMD_MUM_OP_READ_SENSORS 0x8 7218 /* enum: Initiate clock programming on the MUM */ 7219 #define MC_CMD_MUM_OP_PROGRAM_CLOCKS 0x9 7220 /* enum: Initiate FPGA load from flash on the MUM */ 7221 #define MC_CMD_MUM_OP_FPGA_LOAD 0xa 7222 /* enum: Request sensor reading from MUM ADC resulting from earlier request via 7223 * MUM ATB 7224 */ 7225 #define MC_CMD_MUM_OP_READ_ATB_SENSOR 0xb 7226 /* enum: Send commands relating to the QSFP ports via the MUM for PHY 7227 * operations 7228 */ 7229 #define MC_CMD_MUM_OP_QSFP 0xc 7230 /* enum: Request discrete and SODIMM DDR info (type, size, speed grade, voltage 7231 * level) from MUM 7232 */ 7233 #define MC_CMD_MUM_OP_READ_DDR_INFO 0xd 7234 7235 /* MC_CMD_MUM_IN_NULL msgrequest */ 7236 #define MC_CMD_MUM_IN_NULL_LEN 4 7237 /* MUM cmd header */ 7238 #define MC_CMD_MUM_IN_CMD_OFST 0 7239 #define MC_CMD_MUM_IN_CMD_LEN 4 7240 7241 /* MC_CMD_MUM_IN_GET_VERSION msgrequest */ 7242 #define MC_CMD_MUM_IN_GET_VERSION_LEN 4 7243 /* MUM cmd header */ 7244 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7245 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7246 7247 /* MC_CMD_MUM_IN_READ msgrequest */ 7248 #define MC_CMD_MUM_IN_READ_LEN 16 7249 /* MUM cmd header */ 7250 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7251 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7252 /* ID of (device connected to MUM) to read from registers of */ 7253 #define MC_CMD_MUM_IN_READ_DEVICE_OFST 4 7254 #define MC_CMD_MUM_IN_READ_DEVICE_LEN 4 7255 /* enum: Hittite HMC1035 clock generator on Sorrento board */ 7256 #define MC_CMD_MUM_DEV_HITTITE 0x1 7257 /* enum: Hittite HMC1035 clock generator for NIC-side on Sorrento board */ 7258 #define MC_CMD_MUM_DEV_HITTITE_NIC 0x2 7259 /* 32-bit address to read from */ 7260 #define MC_CMD_MUM_IN_READ_ADDR_OFST 8 7261 #define MC_CMD_MUM_IN_READ_ADDR_LEN 4 7262 /* Number of words to read. */ 7263 #define MC_CMD_MUM_IN_READ_NUMWORDS_OFST 12 7264 #define MC_CMD_MUM_IN_READ_NUMWORDS_LEN 4 7265 7266 /* MC_CMD_MUM_IN_WRITE msgrequest */ 7267 #define MC_CMD_MUM_IN_WRITE_LENMIN 16 7268 #define MC_CMD_MUM_IN_WRITE_LENMAX 252 7269 #define MC_CMD_MUM_IN_WRITE_LENMAX_MCDI2 1020 7270 #define MC_CMD_MUM_IN_WRITE_LEN(num) (12+4*(num)) 7271 #define MC_CMD_MUM_IN_WRITE_BUFFER_NUM(len) (((len)-12)/4) 7272 /* MUM cmd header */ 7273 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7274 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7275 /* ID of (device connected to MUM) to write to registers of */ 7276 #define MC_CMD_MUM_IN_WRITE_DEVICE_OFST 4 7277 #define MC_CMD_MUM_IN_WRITE_DEVICE_LEN 4 7278 /* enum: Hittite HMC1035 clock generator on Sorrento board */ 7279 /* MC_CMD_MUM_DEV_HITTITE 0x1 */ 7280 /* 32-bit address to write to */ 7281 #define MC_CMD_MUM_IN_WRITE_ADDR_OFST 8 7282 #define MC_CMD_MUM_IN_WRITE_ADDR_LEN 4 7283 /* Words to write */ 7284 #define MC_CMD_MUM_IN_WRITE_BUFFER_OFST 12 7285 #define MC_CMD_MUM_IN_WRITE_BUFFER_LEN 4 7286 #define MC_CMD_MUM_IN_WRITE_BUFFER_MINNUM 1 7287 #define MC_CMD_MUM_IN_WRITE_BUFFER_MAXNUM 60 7288 #define MC_CMD_MUM_IN_WRITE_BUFFER_MAXNUM_MCDI2 252 7289 7290 /* MC_CMD_MUM_IN_RAW_CMD msgrequest */ 7291 #define MC_CMD_MUM_IN_RAW_CMD_LENMIN 17 7292 #define MC_CMD_MUM_IN_RAW_CMD_LENMAX 252 7293 #define MC_CMD_MUM_IN_RAW_CMD_LENMAX_MCDI2 1020 7294 #define MC_CMD_MUM_IN_RAW_CMD_LEN(num) (16+1*(num)) 7295 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_NUM(len) (((len)-16)/1) 7296 /* MUM cmd header */ 7297 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7298 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7299 /* MUM I2C cmd code */ 7300 #define MC_CMD_MUM_IN_RAW_CMD_CMD_CODE_OFST 4 7301 #define MC_CMD_MUM_IN_RAW_CMD_CMD_CODE_LEN 4 7302 /* Number of bytes to write */ 7303 #define MC_CMD_MUM_IN_RAW_CMD_NUM_WRITE_OFST 8 7304 #define MC_CMD_MUM_IN_RAW_CMD_NUM_WRITE_LEN 4 7305 /* Number of bytes to read */ 7306 #define MC_CMD_MUM_IN_RAW_CMD_NUM_READ_OFST 12 7307 #define MC_CMD_MUM_IN_RAW_CMD_NUM_READ_LEN 4 7308 /* Bytes to write */ 7309 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_OFST 16 7310 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_LEN 1 7311 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_MINNUM 1 7312 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_MAXNUM 236 7313 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_MAXNUM_MCDI2 1004 7314 7315 /* MC_CMD_MUM_IN_LOG msgrequest */ 7316 #define MC_CMD_MUM_IN_LOG_LEN 8 7317 /* MUM cmd header */ 7318 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7319 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7320 #define MC_CMD_MUM_IN_LOG_OP_OFST 4 7321 #define MC_CMD_MUM_IN_LOG_OP_LEN 4 7322 #define MC_CMD_MUM_IN_LOG_OP_UART 0x1 /* enum */ 7323 7324 /* MC_CMD_MUM_IN_LOG_OP_UART msgrequest */ 7325 #define MC_CMD_MUM_IN_LOG_OP_UART_LEN 12 7326 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7327 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7328 /* MC_CMD_MUM_IN_LOG_OP_OFST 4 */ 7329 /* MC_CMD_MUM_IN_LOG_OP_LEN 4 */ 7330 /* Enable/disable debug output to UART */ 7331 #define MC_CMD_MUM_IN_LOG_OP_UART_ENABLE_OFST 8 7332 #define MC_CMD_MUM_IN_LOG_OP_UART_ENABLE_LEN 4 7333 7334 /* MC_CMD_MUM_IN_GPIO msgrequest */ 7335 #define MC_CMD_MUM_IN_GPIO_LEN 8 7336 /* MUM cmd header */ 7337 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7338 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7339 #define MC_CMD_MUM_IN_GPIO_HDR_OFST 4 7340 #define MC_CMD_MUM_IN_GPIO_HDR_LEN 4 7341 #define MC_CMD_MUM_IN_GPIO_OPCODE_OFST 4 7342 #define MC_CMD_MUM_IN_GPIO_OPCODE_LBN 0 7343 #define MC_CMD_MUM_IN_GPIO_OPCODE_WIDTH 8 7344 #define MC_CMD_MUM_IN_GPIO_IN_READ 0x0 /* enum */ 7345 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE 0x1 /* enum */ 7346 #define MC_CMD_MUM_IN_GPIO_OUT_READ 0x2 /* enum */ 7347 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE 0x3 /* enum */ 7348 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_READ 0x4 /* enum */ 7349 #define MC_CMD_MUM_IN_GPIO_OP 0x5 /* enum */ 7350 7351 /* MC_CMD_MUM_IN_GPIO_IN_READ msgrequest */ 7352 #define MC_CMD_MUM_IN_GPIO_IN_READ_LEN 8 7353 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7354 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7355 #define MC_CMD_MUM_IN_GPIO_IN_READ_HDR_OFST 4 7356 #define MC_CMD_MUM_IN_GPIO_IN_READ_HDR_LEN 4 7357 7358 /* MC_CMD_MUM_IN_GPIO_OUT_WRITE msgrequest */ 7359 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_LEN 16 7360 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7361 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7362 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_HDR_OFST 4 7363 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_HDR_LEN 4 7364 /* The first 32-bit word to be written to the GPIO OUT register. */ 7365 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_GPIOMASK1_OFST 8 7366 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_GPIOMASK1_LEN 4 7367 /* The second 32-bit word to be written to the GPIO OUT register. */ 7368 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_GPIOMASK2_OFST 12 7369 #define MC_CMD_MUM_IN_GPIO_OUT_WRITE_GPIOMASK2_LEN 4 7370 7371 /* MC_CMD_MUM_IN_GPIO_OUT_READ msgrequest */ 7372 #define MC_CMD_MUM_IN_GPIO_OUT_READ_LEN 8 7373 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7374 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7375 #define MC_CMD_MUM_IN_GPIO_OUT_READ_HDR_OFST 4 7376 #define MC_CMD_MUM_IN_GPIO_OUT_READ_HDR_LEN 4 7377 7378 /* MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE msgrequest */ 7379 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_LEN 16 7380 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7381 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7382 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_HDR_OFST 4 7383 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_HDR_LEN 4 7384 /* The first 32-bit word to be written to the GPIO OUT ENABLE register. */ 7385 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_GPIOMASK1_OFST 8 7386 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_GPIOMASK1_LEN 4 7387 /* The second 32-bit word to be written to the GPIO OUT ENABLE register. */ 7388 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_GPIOMASK2_OFST 12 7389 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_WRITE_GPIOMASK2_LEN 4 7390 7391 /* MC_CMD_MUM_IN_GPIO_OUT_ENABLE_READ msgrequest */ 7392 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_READ_LEN 8 7393 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7394 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7395 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_READ_HDR_OFST 4 7396 #define MC_CMD_MUM_IN_GPIO_OUT_ENABLE_READ_HDR_LEN 4 7397 7398 /* MC_CMD_MUM_IN_GPIO_OP msgrequest */ 7399 #define MC_CMD_MUM_IN_GPIO_OP_LEN 8 7400 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7401 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7402 #define MC_CMD_MUM_IN_GPIO_OP_HDR_OFST 4 7403 #define MC_CMD_MUM_IN_GPIO_OP_HDR_LEN 4 7404 #define MC_CMD_MUM_IN_GPIO_OP_BITWISE_OP_OFST 4 7405 #define MC_CMD_MUM_IN_GPIO_OP_BITWISE_OP_LBN 8 7406 #define MC_CMD_MUM_IN_GPIO_OP_BITWISE_OP_WIDTH 8 7407 #define MC_CMD_MUM_IN_GPIO_OP_OUT_READ 0x0 /* enum */ 7408 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE 0x1 /* enum */ 7409 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG 0x2 /* enum */ 7410 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE 0x3 /* enum */ 7411 #define MC_CMD_MUM_IN_GPIO_OP_GPIO_NUMBER_OFST 4 7412 #define MC_CMD_MUM_IN_GPIO_OP_GPIO_NUMBER_LBN 16 7413 #define MC_CMD_MUM_IN_GPIO_OP_GPIO_NUMBER_WIDTH 8 7414 7415 /* MC_CMD_MUM_IN_GPIO_OP_OUT_READ msgrequest */ 7416 #define MC_CMD_MUM_IN_GPIO_OP_OUT_READ_LEN 8 7417 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7418 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7419 #define MC_CMD_MUM_IN_GPIO_OP_OUT_READ_HDR_OFST 4 7420 #define MC_CMD_MUM_IN_GPIO_OP_OUT_READ_HDR_LEN 4 7421 7422 /* MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE msgrequest */ 7423 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_LEN 8 7424 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7425 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7426 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_HDR_OFST 4 7427 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_HDR_LEN 4 7428 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_WRITEBIT_OFST 4 7429 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_WRITEBIT_LBN 24 7430 #define MC_CMD_MUM_IN_GPIO_OP_OUT_WRITE_WRITEBIT_WIDTH 8 7431 7432 /* MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG msgrequest */ 7433 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_LEN 8 7434 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7435 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7436 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_HDR_OFST 4 7437 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_HDR_LEN 4 7438 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_CFG_OFST 4 7439 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_CFG_LBN 24 7440 #define MC_CMD_MUM_IN_GPIO_OP_OUT_CONFIG_CFG_WIDTH 8 7441 7442 /* MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE msgrequest */ 7443 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_LEN 8 7444 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7445 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7446 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_HDR_OFST 4 7447 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_HDR_LEN 4 7448 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_ENABLEBIT_OFST 4 7449 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_ENABLEBIT_LBN 24 7450 #define MC_CMD_MUM_IN_GPIO_OP_OUT_ENABLE_ENABLEBIT_WIDTH 8 7451 7452 /* MC_CMD_MUM_IN_READ_SENSORS msgrequest */ 7453 #define MC_CMD_MUM_IN_READ_SENSORS_LEN 8 7454 /* MUM cmd header */ 7455 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7456 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7457 #define MC_CMD_MUM_IN_READ_SENSORS_PARAMS_OFST 4 7458 #define MC_CMD_MUM_IN_READ_SENSORS_PARAMS_LEN 4 7459 #define MC_CMD_MUM_IN_READ_SENSORS_SENSOR_ID_OFST 4 7460 #define MC_CMD_MUM_IN_READ_SENSORS_SENSOR_ID_LBN 0 7461 #define MC_CMD_MUM_IN_READ_SENSORS_SENSOR_ID_WIDTH 8 7462 #define MC_CMD_MUM_IN_READ_SENSORS_NUM_SENSORS_OFST 4 7463 #define MC_CMD_MUM_IN_READ_SENSORS_NUM_SENSORS_LBN 8 7464 #define MC_CMD_MUM_IN_READ_SENSORS_NUM_SENSORS_WIDTH 8 7465 7466 /* MC_CMD_MUM_IN_PROGRAM_CLOCKS msgrequest */ 7467 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_LEN 12 7468 /* MUM cmd header */ 7469 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7470 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7471 /* Bit-mask of clocks to be programmed */ 7472 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_MASK_OFST 4 7473 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_MASK_LEN 4 7474 #define MC_CMD_MUM_CLOCK_ID_FPGA 0x0 /* enum */ 7475 #define MC_CMD_MUM_CLOCK_ID_DDR 0x1 /* enum */ 7476 #define MC_CMD_MUM_CLOCK_ID_NIC 0x2 /* enum */ 7477 /* Control flags for clock programming */ 7478 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_FLAGS_OFST 8 7479 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_FLAGS_LEN 4 7480 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_OVERCLOCK_110_OFST 8 7481 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_OVERCLOCK_110_LBN 0 7482 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_OVERCLOCK_110_WIDTH 1 7483 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_NIC_FROM_FPGA_OFST 8 7484 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_NIC_FROM_FPGA_LBN 1 7485 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_NIC_FROM_FPGA_WIDTH 1 7486 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_REF_FROM_XO_OFST 8 7487 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_REF_FROM_XO_LBN 2 7488 #define MC_CMD_MUM_IN_PROGRAM_CLOCKS_CLOCK_REF_FROM_XO_WIDTH 1 7489 7490 /* MC_CMD_MUM_IN_FPGA_LOAD msgrequest */ 7491 #define MC_CMD_MUM_IN_FPGA_LOAD_LEN 8 7492 /* MUM cmd header */ 7493 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7494 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7495 /* Enable/Disable FPGA config from flash */ 7496 #define MC_CMD_MUM_IN_FPGA_LOAD_ENABLE_OFST 4 7497 #define MC_CMD_MUM_IN_FPGA_LOAD_ENABLE_LEN 4 7498 7499 /* MC_CMD_MUM_IN_READ_ATB_SENSOR msgrequest */ 7500 #define MC_CMD_MUM_IN_READ_ATB_SENSOR_LEN 4 7501 /* MUM cmd header */ 7502 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7503 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7504 7505 /* MC_CMD_MUM_IN_QSFP msgrequest */ 7506 #define MC_CMD_MUM_IN_QSFP_LEN 12 7507 /* MUM cmd header */ 7508 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7509 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7510 #define MC_CMD_MUM_IN_QSFP_HDR_OFST 4 7511 #define MC_CMD_MUM_IN_QSFP_HDR_LEN 4 7512 #define MC_CMD_MUM_IN_QSFP_OPCODE_OFST 4 7513 #define MC_CMD_MUM_IN_QSFP_OPCODE_LBN 0 7514 #define MC_CMD_MUM_IN_QSFP_OPCODE_WIDTH 4 7515 #define MC_CMD_MUM_IN_QSFP_INIT 0x0 /* enum */ 7516 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE 0x1 /* enum */ 7517 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP 0x2 /* enum */ 7518 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO 0x3 /* enum */ 7519 #define MC_CMD_MUM_IN_QSFP_FILL_STATS 0x4 /* enum */ 7520 #define MC_CMD_MUM_IN_QSFP_POLL_BIST 0x5 /* enum */ 7521 #define MC_CMD_MUM_IN_QSFP_IDX_OFST 8 7522 #define MC_CMD_MUM_IN_QSFP_IDX_LEN 4 7523 7524 /* MC_CMD_MUM_IN_QSFP_INIT msgrequest */ 7525 #define MC_CMD_MUM_IN_QSFP_INIT_LEN 16 7526 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7527 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7528 #define MC_CMD_MUM_IN_QSFP_INIT_HDR_OFST 4 7529 #define MC_CMD_MUM_IN_QSFP_INIT_HDR_LEN 4 7530 #define MC_CMD_MUM_IN_QSFP_INIT_IDX_OFST 8 7531 #define MC_CMD_MUM_IN_QSFP_INIT_IDX_LEN 4 7532 #define MC_CMD_MUM_IN_QSFP_INIT_CAGE_OFST 12 7533 #define MC_CMD_MUM_IN_QSFP_INIT_CAGE_LEN 4 7534 7535 /* MC_CMD_MUM_IN_QSFP_RECONFIGURE msgrequest */ 7536 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_LEN 24 7537 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7538 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7539 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_HDR_OFST 4 7540 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_HDR_LEN 4 7541 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_IDX_OFST 8 7542 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_IDX_LEN 4 7543 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_TX_DISABLE_OFST 12 7544 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_TX_DISABLE_LEN 4 7545 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_PORT_LANES_OFST 16 7546 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_PORT_LANES_LEN 4 7547 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_PORT_LINK_SPEED_OFST 20 7548 #define MC_CMD_MUM_IN_QSFP_RECONFIGURE_PORT_LINK_SPEED_LEN 4 7549 7550 /* MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP msgrequest */ 7551 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP_LEN 12 7552 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7553 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7554 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP_HDR_OFST 4 7555 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP_HDR_LEN 4 7556 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP_IDX_OFST 8 7557 #define MC_CMD_MUM_IN_QSFP_GET_SUPPORTED_CAP_IDX_LEN 4 7558 7559 /* MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO msgrequest */ 7560 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_LEN 16 7561 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7562 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7563 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_HDR_OFST 4 7564 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_HDR_LEN 4 7565 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_IDX_OFST 8 7566 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_IDX_LEN 4 7567 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_PAGE_OFST 12 7568 #define MC_CMD_MUM_IN_QSFP_GET_MEDIA_INFO_PAGE_LEN 4 7569 7570 /* MC_CMD_MUM_IN_QSFP_FILL_STATS msgrequest */ 7571 #define MC_CMD_MUM_IN_QSFP_FILL_STATS_LEN 12 7572 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7573 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7574 #define MC_CMD_MUM_IN_QSFP_FILL_STATS_HDR_OFST 4 7575 #define MC_CMD_MUM_IN_QSFP_FILL_STATS_HDR_LEN 4 7576 #define MC_CMD_MUM_IN_QSFP_FILL_STATS_IDX_OFST 8 7577 #define MC_CMD_MUM_IN_QSFP_FILL_STATS_IDX_LEN 4 7578 7579 /* MC_CMD_MUM_IN_QSFP_POLL_BIST msgrequest */ 7580 #define MC_CMD_MUM_IN_QSFP_POLL_BIST_LEN 12 7581 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7582 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7583 #define MC_CMD_MUM_IN_QSFP_POLL_BIST_HDR_OFST 4 7584 #define MC_CMD_MUM_IN_QSFP_POLL_BIST_HDR_LEN 4 7585 #define MC_CMD_MUM_IN_QSFP_POLL_BIST_IDX_OFST 8 7586 #define MC_CMD_MUM_IN_QSFP_POLL_BIST_IDX_LEN 4 7587 7588 /* MC_CMD_MUM_IN_READ_DDR_INFO msgrequest */ 7589 #define MC_CMD_MUM_IN_READ_DDR_INFO_LEN 4 7590 /* MUM cmd header */ 7591 /* MC_CMD_MUM_IN_CMD_OFST 0 */ 7592 /* MC_CMD_MUM_IN_CMD_LEN 4 */ 7593 7594 /* MC_CMD_MUM_OUT msgresponse */ 7595 #define MC_CMD_MUM_OUT_LEN 0 7596 7597 /* MC_CMD_MUM_OUT_NULL msgresponse */ 7598 #define MC_CMD_MUM_OUT_NULL_LEN 0 7599 7600 /* MC_CMD_MUM_OUT_GET_VERSION msgresponse */ 7601 #define MC_CMD_MUM_OUT_GET_VERSION_LEN 12 7602 #define MC_CMD_MUM_OUT_GET_VERSION_FIRMWARE_OFST 0 7603 #define MC_CMD_MUM_OUT_GET_VERSION_FIRMWARE_LEN 4 7604 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_OFST 4 7605 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LEN 8 7606 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_LO_OFST 4 7607 #define MC_CMD_MUM_OUT_GET_VERSION_VERSION_HI_OFST 8 7608 7609 /* MC_CMD_MUM_OUT_RAW_CMD msgresponse */ 7610 #define MC_CMD_MUM_OUT_RAW_CMD_LENMIN 1 7611 #define MC_CMD_MUM_OUT_RAW_CMD_LENMAX 252 7612 #define MC_CMD_MUM_OUT_RAW_CMD_LENMAX_MCDI2 1020 7613 #define MC_CMD_MUM_OUT_RAW_CMD_LEN(num) (0+1*(num)) 7614 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_NUM(len) (((len)-0)/1) 7615 /* returned data */ 7616 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_OFST 0 7617 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_LEN 1 7618 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_MINNUM 1 7619 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_MAXNUM 252 7620 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_MAXNUM_MCDI2 1020 7621 7622 /* MC_CMD_MUM_OUT_READ msgresponse */ 7623 #define MC_CMD_MUM_OUT_READ_LENMIN 4 7624 #define MC_CMD_MUM_OUT_READ_LENMAX 252 7625 #define MC_CMD_MUM_OUT_READ_LENMAX_MCDI2 1020 7626 #define MC_CMD_MUM_OUT_READ_LEN(num) (0+4*(num)) 7627 #define MC_CMD_MUM_OUT_READ_BUFFER_NUM(len) (((len)-0)/4) 7628 #define MC_CMD_MUM_OUT_READ_BUFFER_OFST 0 7629 #define MC_CMD_MUM_OUT_READ_BUFFER_LEN 4 7630 #define MC_CMD_MUM_OUT_READ_BUFFER_MINNUM 1 7631 #define MC_CMD_MUM_OUT_READ_BUFFER_MAXNUM 63 7632 #define MC_CMD_MUM_OUT_READ_BUFFER_MAXNUM_MCDI2 255 7633 7634 /* MC_CMD_MUM_OUT_WRITE msgresponse */ 7635 #define MC_CMD_MUM_OUT_WRITE_LEN 0 7636 7637 /* MC_CMD_MUM_OUT_LOG msgresponse */ 7638 #define MC_CMD_MUM_OUT_LOG_LEN 0 7639 7640 /* MC_CMD_MUM_OUT_LOG_OP_UART msgresponse */ 7641 #define MC_CMD_MUM_OUT_LOG_OP_UART_LEN 0 7642 7643 /* MC_CMD_MUM_OUT_GPIO_IN_READ msgresponse */ 7644 #define MC_CMD_MUM_OUT_GPIO_IN_READ_LEN 8 7645 /* The first 32-bit word read from the GPIO IN register. */ 7646 #define MC_CMD_MUM_OUT_GPIO_IN_READ_GPIOMASK1_OFST 0 7647 #define MC_CMD_MUM_OUT_GPIO_IN_READ_GPIOMASK1_LEN 4 7648 /* The second 32-bit word read from the GPIO IN register. */ 7649 #define MC_CMD_MUM_OUT_GPIO_IN_READ_GPIOMASK2_OFST 4 7650 #define MC_CMD_MUM_OUT_GPIO_IN_READ_GPIOMASK2_LEN 4 7651 7652 /* MC_CMD_MUM_OUT_GPIO_OUT_WRITE msgresponse */ 7653 #define MC_CMD_MUM_OUT_GPIO_OUT_WRITE_LEN 0 7654 7655 /* MC_CMD_MUM_OUT_GPIO_OUT_READ msgresponse */ 7656 #define MC_CMD_MUM_OUT_GPIO_OUT_READ_LEN 8 7657 /* The first 32-bit word read from the GPIO OUT register. */ 7658 #define MC_CMD_MUM_OUT_GPIO_OUT_READ_GPIOMASK1_OFST 0 7659 #define MC_CMD_MUM_OUT_GPIO_OUT_READ_GPIOMASK1_LEN 4 7660 /* The second 32-bit word read from the GPIO OUT register. */ 7661 #define MC_CMD_MUM_OUT_GPIO_OUT_READ_GPIOMASK2_OFST 4 7662 #define MC_CMD_MUM_OUT_GPIO_OUT_READ_GPIOMASK2_LEN 4 7663 7664 /* MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_WRITE msgresponse */ 7665 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_WRITE_LEN 0 7666 7667 /* MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ msgresponse */ 7668 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ_LEN 8 7669 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ_GPIOMASK1_OFST 0 7670 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ_GPIOMASK1_LEN 4 7671 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ_GPIOMASK2_OFST 4 7672 #define MC_CMD_MUM_OUT_GPIO_OUT_ENABLE_READ_GPIOMASK2_LEN 4 7673 7674 /* MC_CMD_MUM_OUT_GPIO_OP_OUT_READ msgresponse */ 7675 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_READ_LEN 4 7676 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_READ_BIT_READ_OFST 0 7677 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_READ_BIT_READ_LEN 4 7678 7679 /* MC_CMD_MUM_OUT_GPIO_OP_OUT_WRITE msgresponse */ 7680 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_WRITE_LEN 0 7681 7682 /* MC_CMD_MUM_OUT_GPIO_OP_OUT_CONFIG msgresponse */ 7683 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_CONFIG_LEN 0 7684 7685 /* MC_CMD_MUM_OUT_GPIO_OP_OUT_ENABLE msgresponse */ 7686 #define MC_CMD_MUM_OUT_GPIO_OP_OUT_ENABLE_LEN 0 7687 7688 /* MC_CMD_MUM_OUT_READ_SENSORS msgresponse */ 7689 #define MC_CMD_MUM_OUT_READ_SENSORS_LENMIN 4 7690 #define MC_CMD_MUM_OUT_READ_SENSORS_LENMAX 252 7691 #define MC_CMD_MUM_OUT_READ_SENSORS_LENMAX_MCDI2 1020 7692 #define MC_CMD_MUM_OUT_READ_SENSORS_LEN(num) (0+4*(num)) 7693 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_NUM(len) (((len)-0)/4) 7694 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_OFST 0 7695 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_LEN 4 7696 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_MINNUM 1 7697 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_MAXNUM 63 7698 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_MAXNUM_MCDI2 255 7699 #define MC_CMD_MUM_OUT_READ_SENSORS_READING_OFST 0 7700 #define MC_CMD_MUM_OUT_READ_SENSORS_READING_LBN 0 7701 #define MC_CMD_MUM_OUT_READ_SENSORS_READING_WIDTH 16 7702 #define MC_CMD_MUM_OUT_READ_SENSORS_STATE_OFST 0 7703 #define MC_CMD_MUM_OUT_READ_SENSORS_STATE_LBN 16 7704 #define MC_CMD_MUM_OUT_READ_SENSORS_STATE_WIDTH 8 7705 #define MC_CMD_MUM_OUT_READ_SENSORS_TYPE_OFST 0 7706 #define MC_CMD_MUM_OUT_READ_SENSORS_TYPE_LBN 24 7707 #define MC_CMD_MUM_OUT_READ_SENSORS_TYPE_WIDTH 8 7708 7709 /* MC_CMD_MUM_OUT_PROGRAM_CLOCKS msgresponse */ 7710 #define MC_CMD_MUM_OUT_PROGRAM_CLOCKS_LEN 4 7711 #define MC_CMD_MUM_OUT_PROGRAM_CLOCKS_OK_MASK_OFST 0 7712 #define MC_CMD_MUM_OUT_PROGRAM_CLOCKS_OK_MASK_LEN 4 7713 7714 /* MC_CMD_MUM_OUT_FPGA_LOAD msgresponse */ 7715 #define MC_CMD_MUM_OUT_FPGA_LOAD_LEN 0 7716 7717 /* MC_CMD_MUM_OUT_READ_ATB_SENSOR msgresponse */ 7718 #define MC_CMD_MUM_OUT_READ_ATB_SENSOR_LEN 4 7719 #define MC_CMD_MUM_OUT_READ_ATB_SENSOR_RESULT_OFST 0 7720 #define MC_CMD_MUM_OUT_READ_ATB_SENSOR_RESULT_LEN 4 7721 7722 /* MC_CMD_MUM_OUT_QSFP_INIT msgresponse */ 7723 #define MC_CMD_MUM_OUT_QSFP_INIT_LEN 0 7724 7725 /* MC_CMD_MUM_OUT_QSFP_RECONFIGURE msgresponse */ 7726 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_LEN 8 7727 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_LP_CAP_OFST 0 7728 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_LP_CAP_LEN 4 7729 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_FLAGS_OFST 4 7730 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_FLAGS_LEN 4 7731 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_READY_OFST 4 7732 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_READY_LBN 0 7733 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_READY_WIDTH 1 7734 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_LINK_UP_OFST 4 7735 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_LINK_UP_LBN 1 7736 #define MC_CMD_MUM_OUT_QSFP_RECONFIGURE_PORT_PHY_LINK_UP_WIDTH 1 7737 7738 /* MC_CMD_MUM_OUT_QSFP_GET_SUPPORTED_CAP msgresponse */ 7739 #define MC_CMD_MUM_OUT_QSFP_GET_SUPPORTED_CAP_LEN 4 7740 #define MC_CMD_MUM_OUT_QSFP_GET_SUPPORTED_CAP_PORT_PHY_LP_CAP_OFST 0 7741 #define MC_CMD_MUM_OUT_QSFP_GET_SUPPORTED_CAP_PORT_PHY_LP_CAP_LEN 4 7742 7743 /* MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO msgresponse */ 7744 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_LENMIN 5 7745 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_LENMAX 252 7746 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_LENMAX_MCDI2 1020 7747 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_LEN(num) (4+1*(num)) 7748 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_NUM(len) (((len)-4)/1) 7749 /* in bytes */ 7750 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATALEN_OFST 0 7751 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATALEN_LEN 4 7752 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_OFST 4 7753 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_LEN 1 7754 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_MINNUM 1 7755 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_MAXNUM 248 7756 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_MAXNUM_MCDI2 1016 7757 7758 /* MC_CMD_MUM_OUT_QSFP_FILL_STATS msgresponse */ 7759 #define MC_CMD_MUM_OUT_QSFP_FILL_STATS_LEN 8 7760 #define MC_CMD_MUM_OUT_QSFP_FILL_STATS_PORT_PHY_STATS_PMA_PMD_LINK_UP_OFST 0 7761 #define MC_CMD_MUM_OUT_QSFP_FILL_STATS_PORT_PHY_STATS_PMA_PMD_LINK_UP_LEN 4 7762 #define MC_CMD_MUM_OUT_QSFP_FILL_STATS_PORT_PHY_STATS_PCS_LINK_UP_OFST 4 7763 #define MC_CMD_MUM_OUT_QSFP_FILL_STATS_PORT_PHY_STATS_PCS_LINK_UP_LEN 4 7764 7765 /* MC_CMD_MUM_OUT_QSFP_POLL_BIST msgresponse */ 7766 #define MC_CMD_MUM_OUT_QSFP_POLL_BIST_LEN 4 7767 #define MC_CMD_MUM_OUT_QSFP_POLL_BIST_TEST_OFST 0 7768 #define MC_CMD_MUM_OUT_QSFP_POLL_BIST_TEST_LEN 4 7769 7770 /* MC_CMD_MUM_OUT_READ_DDR_INFO msgresponse */ 7771 #define MC_CMD_MUM_OUT_READ_DDR_INFO_LENMIN 24 7772 #define MC_CMD_MUM_OUT_READ_DDR_INFO_LENMAX 248 7773 #define MC_CMD_MUM_OUT_READ_DDR_INFO_LENMAX_MCDI2 1016 7774 #define MC_CMD_MUM_OUT_READ_DDR_INFO_LEN(num) (8+8*(num)) 7775 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_NUM(len) (((len)-8)/8) 7776 /* Discrete (soldered) DDR resistor strap info */ 7777 #define MC_CMD_MUM_OUT_READ_DDR_INFO_DISCRETE_DDR_INFO_OFST 0 7778 #define MC_CMD_MUM_OUT_READ_DDR_INFO_DISCRETE_DDR_INFO_LEN 4 7779 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VRATIO_OFST 0 7780 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VRATIO_LBN 0 7781 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VRATIO_WIDTH 16 7782 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED1_OFST 0 7783 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED1_LBN 16 7784 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED1_WIDTH 16 7785 /* Number of SODIMM info records */ 7786 #define MC_CMD_MUM_OUT_READ_DDR_INFO_NUM_RECORDS_OFST 4 7787 #define MC_CMD_MUM_OUT_READ_DDR_INFO_NUM_RECORDS_LEN 4 7788 /* Array of SODIMM info records */ 7789 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_OFST 8 7790 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LEN 8 7791 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_LO_OFST 8 7792 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_HI_OFST 12 7793 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_MINNUM 2 7794 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_MAXNUM 30 7795 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_MAXNUM_MCDI2 126 7796 #define MC_CMD_MUM_OUT_READ_DDR_INFO_BANK_ID_OFST 8 7797 #define MC_CMD_MUM_OUT_READ_DDR_INFO_BANK_ID_LBN 0 7798 #define MC_CMD_MUM_OUT_READ_DDR_INFO_BANK_ID_WIDTH 8 7799 /* enum: SODIMM bank 1 (Top SODIMM for Sorrento) */ 7800 #define MC_CMD_MUM_OUT_READ_DDR_INFO_BANK1 0x0 7801 /* enum: SODIMM bank 2 (Bottom SODDIMM for Sorrento) */ 7802 #define MC_CMD_MUM_OUT_READ_DDR_INFO_BANK2 0x1 7803 /* enum: Total number of SODIMM banks */ 7804 #define MC_CMD_MUM_OUT_READ_DDR_INFO_NUM_BANKS 0x2 7805 #define MC_CMD_MUM_OUT_READ_DDR_INFO_TYPE_OFST 8 7806 #define MC_CMD_MUM_OUT_READ_DDR_INFO_TYPE_LBN 8 7807 #define MC_CMD_MUM_OUT_READ_DDR_INFO_TYPE_WIDTH 8 7808 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RANK_OFST 8 7809 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RANK_LBN 16 7810 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RANK_WIDTH 4 7811 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VOLTAGE_OFST 8 7812 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VOLTAGE_LBN 20 7813 #define MC_CMD_MUM_OUT_READ_DDR_INFO_VOLTAGE_WIDTH 4 7814 #define MC_CMD_MUM_OUT_READ_DDR_INFO_NOT_POWERED 0x0 /* enum */ 7815 #define MC_CMD_MUM_OUT_READ_DDR_INFO_1V25 0x1 /* enum */ 7816 #define MC_CMD_MUM_OUT_READ_DDR_INFO_1V35 0x2 /* enum */ 7817 #define MC_CMD_MUM_OUT_READ_DDR_INFO_1V5 0x3 /* enum */ 7818 /* enum: Values 5-15 are reserved for future usage */ 7819 #define MC_CMD_MUM_OUT_READ_DDR_INFO_1V8 0x4 7820 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SIZE_OFST 8 7821 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SIZE_LBN 24 7822 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SIZE_WIDTH 8 7823 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SPEED_OFST 8 7824 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SPEED_LBN 32 7825 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SPEED_WIDTH 16 7826 #define MC_CMD_MUM_OUT_READ_DDR_INFO_STATE_OFST 8 7827 #define MC_CMD_MUM_OUT_READ_DDR_INFO_STATE_LBN 48 7828 #define MC_CMD_MUM_OUT_READ_DDR_INFO_STATE_WIDTH 4 7829 /* enum: No module present */ 7830 #define MC_CMD_MUM_OUT_READ_DDR_INFO_ABSENT 0x0 7831 /* enum: Module present supported and powered on */ 7832 #define MC_CMD_MUM_OUT_READ_DDR_INFO_PRESENT_POWERED 0x1 7833 /* enum: Module present but bad type */ 7834 #define MC_CMD_MUM_OUT_READ_DDR_INFO_PRESENT_BAD_TYPE 0x2 7835 /* enum: Module present but incompatible voltage */ 7836 #define MC_CMD_MUM_OUT_READ_DDR_INFO_PRESENT_BAD_VOLTAGE 0x3 7837 /* enum: Module present but unknown SPD */ 7838 #define MC_CMD_MUM_OUT_READ_DDR_INFO_PRESENT_BAD_SPD 0x4 7839 /* enum: Module present but slot cannot support it */ 7840 #define MC_CMD_MUM_OUT_READ_DDR_INFO_PRESENT_BAD_SLOT 0x5 7841 /* enum: Modules may or may not be present, but cannot establish contact by I2C 7842 */ 7843 #define MC_CMD_MUM_OUT_READ_DDR_INFO_NOT_REACHABLE 0x6 7844 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED2_OFST 8 7845 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED2_LBN 52 7846 #define MC_CMD_MUM_OUT_READ_DDR_INFO_RESERVED2_WIDTH 12 7847 7848 /* MC_CMD_DYNAMIC_SENSORS_LIMITS structuredef: Set of sensor limits. This 7849 * should match the equivalent structure in the sensor_query SPHINX service. 7850 */ 7851 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LEN 24 7852 /* A value below this will trigger a warning event. */ 7853 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_OFST 0 7854 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_LEN 4 7855 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_LBN 0 7856 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_WIDTH 32 7857 /* A value below this will trigger a critical event. */ 7858 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_OFST 4 7859 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_LEN 4 7860 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_LBN 32 7861 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_WIDTH 32 7862 /* A value below this will shut down the card. */ 7863 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_OFST 8 7864 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_LEN 4 7865 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_LBN 64 7866 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_WIDTH 32 7867 /* A value above this will trigger a warning event. */ 7868 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_OFST 12 7869 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_LEN 4 7870 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_LBN 96 7871 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_WIDTH 32 7872 /* A value above this will trigger a critical event. */ 7873 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_OFST 16 7874 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_LEN 4 7875 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_LBN 128 7876 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_WIDTH 32 7877 /* A value above this will shut down the card. */ 7878 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_OFST 20 7879 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_LEN 4 7880 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_LBN 160 7881 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_WIDTH 32 7882 7883 /* MC_CMD_DYNAMIC_SENSORS_DESCRIPTION structuredef: Description of a sensor. 7884 * This should match the equivalent structure in the sensor_query SPHINX 7885 * service. 7886 */ 7887 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LEN 64 7888 /* The handle used to identify the sensor in calls to 7889 * MC_CMD_DYNAMIC_SENSORS_GET_VALUES 7890 */ 7891 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_OFST 0 7892 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_LEN 4 7893 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_LBN 0 7894 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_WIDTH 32 7895 /* A human-readable name for the sensor (zero terminated string, max 32 bytes) 7896 */ 7897 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_OFST 4 7898 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_LEN 32 7899 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_LBN 32 7900 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_WIDTH 256 7901 /* The type of the sensor device, and by implication the unit of that the 7902 * values will be reported in 7903 */ 7904 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_OFST 36 7905 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_LEN 4 7906 /* enum: A voltage sensor. Unit is mV */ 7907 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_VOLTAGE 0x0 7908 /* enum: A current sensor. Unit is mA */ 7909 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_CURRENT 0x1 7910 /* enum: A power sensor. Unit is mW */ 7911 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_POWER 0x2 7912 /* enum: A temperature sensor. Unit is Celsius */ 7913 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TEMPERATURE 0x3 7914 /* enum: A cooling fan sensor. Unit is RPM */ 7915 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_FAN 0x4 7916 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_LBN 288 7917 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_WIDTH 32 7918 /* A single MC_CMD_DYNAMIC_SENSORS_LIMITS structure */ 7919 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LIMITS_OFST 40 7920 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LIMITS_LEN 24 7921 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LIMITS_LBN 320 7922 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_LIMITS_WIDTH 192 7923 7924 /* MC_CMD_DYNAMIC_SENSORS_READING structuredef: State and value of a sensor. 7925 * This should match the equivalent structure in the sensor_query SPHINX 7926 * service. 7927 */ 7928 #define MC_CMD_DYNAMIC_SENSORS_READING_LEN 12 7929 /* The handle used to identify the sensor */ 7930 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_OFST 0 7931 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_LEN 4 7932 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_LBN 0 7933 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_WIDTH 32 7934 /* The current value of the sensor */ 7935 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_OFST 4 7936 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_LEN 4 7937 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_LBN 32 7938 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_WIDTH 32 7939 /* The sensor's condition, e.g. good, broken or removed */ 7940 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_OFST 8 7941 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_LEN 4 7942 /* enum: Sensor working normally within limits */ 7943 #define MC_CMD_DYNAMIC_SENSORS_READING_OK 0x0 7944 /* enum: Warning threshold breached */ 7945 #define MC_CMD_DYNAMIC_SENSORS_READING_WARNING 0x1 7946 /* enum: Critical threshold breached */ 7947 #define MC_CMD_DYNAMIC_SENSORS_READING_CRITICAL 0x2 7948 /* enum: Fatal threshold breached */ 7949 #define MC_CMD_DYNAMIC_SENSORS_READING_FATAL 0x3 7950 /* enum: Sensor not working */ 7951 #define MC_CMD_DYNAMIC_SENSORS_READING_BROKEN 0x4 7952 /* enum: Sensor working but no reading available */ 7953 #define MC_CMD_DYNAMIC_SENSORS_READING_NO_READING 0x5 7954 /* enum: Sensor initialization failed */ 7955 #define MC_CMD_DYNAMIC_SENSORS_READING_INIT_FAILED 0x6 7956 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_LBN 64 7957 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_WIDTH 32 7958 7959 7960 /***********************************/ 7961 /* MC_CMD_DYNAMIC_SENSORS_LIST 7962 * Return a complete list of handles for sensors currently managed by the MC, 7963 * and a generation count for this version of the sensor table. On systems 7964 * advertising the DYNAMIC_SENSORS capability bit, this replaces the 7965 * MC_CMD_READ_SENSORS command. On multi-MC systems this may include sensors 7966 * added by the NMC. 7967 * 7968 * Sensor handles are persistent for the lifetime of the sensor and are used to 7969 * identify sensors in MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS and 7970 * MC_CMD_DYNAMIC_SENSORS_GET_VALUES. 7971 * 7972 * The generation count is maintained by the MC, is persistent across reboots 7973 * and will be incremented each time the sensor table is modified. When the 7974 * table is modified, a CODE_DYNAMIC_SENSORS_CHANGE event will be generated 7975 * containing the new generation count. The driver should compare this against 7976 * the current generation count, and if it is different, call 7977 * MC_CMD_DYNAMIC_SENSORS_LIST again to update it's copy of the sensor table. 7978 * 7979 * The sensor count is provided to allow a future path to supporting more than 7980 * MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_MAXNUM_MCDI2 sensors, i.e. 7981 * the maximum number that will fit in a single response. As this is a fairly 7982 * large number (253) it is not anticipated that this will be needed in the 7983 * near future, so can currently be ignored. 7984 * 7985 * On Riverhead this command is implemented as a a wrapper for `list` in the 7986 * sensor_query SPHINX service. 7987 */ 7988 #define MC_CMD_DYNAMIC_SENSORS_LIST 0x66 7989 #undef MC_CMD_0x66_PRIVILEGE_CTG 7990 7991 #define MC_CMD_0x66_PRIVILEGE_CTG SRIOV_CTG_GENERAL 7992 7993 /* MC_CMD_DYNAMIC_SENSORS_LIST_IN msgrequest */ 7994 #define MC_CMD_DYNAMIC_SENSORS_LIST_IN_LEN 0 7995 7996 /* MC_CMD_DYNAMIC_SENSORS_LIST_OUT msgresponse */ 7997 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LENMIN 8 7998 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LENMAX 252 7999 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LENMAX_MCDI2 1020 8000 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LEN(num) (8+4*(num)) 8001 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_NUM(len) (((len)-8)/4) 8002 /* Generation count, which will be updated each time a sensor is added to or 8003 * removed from the MC sensor table. 8004 */ 8005 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_GENERATION_OFST 0 8006 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_GENERATION_LEN 4 8007 /* Number of sensors managed by the MC. Note that in principle, this can be 8008 * larger than the size of the HANDLES array. 8009 */ 8010 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_COUNT_OFST 4 8011 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_COUNT_LEN 4 8012 /* Array of sensor handles */ 8013 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_OFST 8 8014 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_LEN 4 8015 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_MINNUM 0 8016 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_MAXNUM 61 8017 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_MAXNUM_MCDI2 253 8018 8019 8020 /***********************************/ 8021 /* MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS 8022 * Get descriptions for a set of sensors, specified as an array of sensor 8023 * handles as returned by MC_CMD_DYNAMIC_SENSORS_LIST 8024 * 8025 * Any handles which do not correspond to a sensor currently managed by the MC 8026 * will be dropped from from the response. This may happen when a sensor table 8027 * update is in progress, and effectively means the set of usable sensors is 8028 * the intersection between the sets of sensors known to the driver and the MC. 8029 * 8030 * On Riverhead this command is implemented as a a wrapper for 8031 * `get_descriptions` in the sensor_query SPHINX service. 8032 */ 8033 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS 0x67 8034 #undef MC_CMD_0x67_PRIVILEGE_CTG 8035 8036 #define MC_CMD_0x67_PRIVILEGE_CTG SRIOV_CTG_GENERAL 8037 8038 /* MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN msgrequest */ 8039 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LENMIN 0 8040 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LENMAX 252 8041 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LENMAX_MCDI2 1020 8042 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LEN(num) (0+4*(num)) 8043 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_NUM(len) (((len)-0)/4) 8044 /* Array of sensor handles */ 8045 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_OFST 0 8046 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_LEN 4 8047 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_MINNUM 0 8048 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_MAXNUM 63 8049 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_MAXNUM_MCDI2 255 8050 8051 /* MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT msgresponse */ 8052 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_LENMIN 0 8053 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_LENMAX 192 8054 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_LENMAX_MCDI2 960 8055 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_LEN(num) (0+64*(num)) 8056 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_NUM(len) (((len)-0)/64) 8057 /* Array of MC_CMD_DYNAMIC_SENSORS_DESCRIPTION structures */ 8058 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_OFST 0 8059 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_LEN 64 8060 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_MINNUM 0 8061 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_MAXNUM 3 8062 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_MAXNUM_MCDI2 15 8063 8064 8065 /***********************************/ 8066 /* MC_CMD_DYNAMIC_SENSORS_GET_READINGS 8067 * Read the state and value for a set of sensors, specified as an array of 8068 * sensor handles as returned by MC_CMD_DYNAMIC_SENSORS_LIST. 8069 * 8070 * In the case of a broken sensor, then the state of the response's 8071 * MC_CMD_DYNAMIC_SENSORS_VALUE entry will be set to BROKEN, and any value 8072 * provided should be treated as erroneous. 8073 * 8074 * Any handles which do not correspond to a sensor currently managed by the MC 8075 * will be dropped from from the response. This may happen when a sensor table 8076 * update is in progress, and effectively means the set of usable sensors is 8077 * the intersection between the sets of sensors known to the driver and the MC. 8078 * 8079 * On Riverhead this command is implemented as a a wrapper for `get_readings` 8080 * in the sensor_query SPHINX service. 8081 */ 8082 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS 0x68 8083 #undef MC_CMD_0x68_PRIVILEGE_CTG 8084 8085 #define MC_CMD_0x68_PRIVILEGE_CTG SRIOV_CTG_GENERAL 8086 8087 /* MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN msgrequest */ 8088 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LENMIN 0 8089 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LENMAX 252 8090 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LENMAX_MCDI2 1020 8091 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LEN(num) (0+4*(num)) 8092 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_NUM(len) (((len)-0)/4) 8093 /* Array of sensor handles */ 8094 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_OFST 0 8095 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_LEN 4 8096 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_MINNUM 0 8097 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_MAXNUM 63 8098 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_MAXNUM_MCDI2 255 8099 8100 /* MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT msgresponse */ 8101 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_LENMIN 0 8102 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_LENMAX 252 8103 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_LENMAX_MCDI2 1020 8104 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_LEN(num) (0+12*(num)) 8105 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_NUM(len) (((len)-0)/12) 8106 /* Array of MC_CMD_DYNAMIC_SENSORS_READING structures */ 8107 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_OFST 0 8108 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_LEN 12 8109 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_MINNUM 0 8110 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_MAXNUM 21 8111 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_MAXNUM_MCDI2 85 8112 8113 8114 /***********************************/ 8115 /* MC_CMD_EVENT_CTRL 8116 * Configure which categories of unsolicited events the driver expects to 8117 * receive (Riverhead). 8118 */ 8119 #define MC_CMD_EVENT_CTRL 0x69 8120 #undef MC_CMD_0x69_PRIVILEGE_CTG 8121 8122 #define MC_CMD_0x69_PRIVILEGE_CTG SRIOV_CTG_GENERAL 8123 8124 /* MC_CMD_EVENT_CTRL_IN msgrequest */ 8125 #define MC_CMD_EVENT_CTRL_IN_LENMIN 0 8126 #define MC_CMD_EVENT_CTRL_IN_LENMAX 252 8127 #define MC_CMD_EVENT_CTRL_IN_LENMAX_MCDI2 1020 8128 #define MC_CMD_EVENT_CTRL_IN_LEN(num) (0+4*(num)) 8129 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_NUM(len) (((len)-0)/4) 8130 /* Array of event categories for which the driver wishes to receive events. */ 8131 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_OFST 0 8132 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_LEN 4 8133 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_MINNUM 0 8134 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_MAXNUM 63 8135 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_MAXNUM_MCDI2 255 8136 /* enum: Driver wishes to receive LINKCHANGE events. */ 8137 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_LINKCHANGE 0x0 8138 /* enum: Driver wishes to receive SENSOR_CHANGE and SENSOR_STATE_CHANGE events. 8139 */ 8140 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_SENSOREVT 0x1 8141 /* enum: Driver wishes to receive receive errors. */ 8142 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_RX_ERR 0x2 8143 /* enum: Driver wishes to receive transmit errors. */ 8144 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_TX_ERR 0x3 8145 /* enum: Driver wishes to receive firmware alerts. */ 8146 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_FWALERT 0x4 8147 /* enum: Driver wishes to receive reboot events. */ 8148 #define MC_CMD_EVENT_CTRL_IN_MCDI_EVENT_CODE_MC_REBOOT 0x5 8149 8150 /* MC_CMD_EVENT_CTRL_OUT msgrequest */ 8151 #define MC_CMD_EVENT_CTRL_OUT_LEN 0 8152 8153 /* EVB_PORT_ID structuredef */ 8154 #define EVB_PORT_ID_LEN 4 8155 #define EVB_PORT_ID_PORT_ID_OFST 0 8156 #define EVB_PORT_ID_PORT_ID_LEN 4 8157 /* enum: An invalid port handle. */ 8158 #define EVB_PORT_ID_NULL 0x0 8159 /* enum: The port assigned to this function.. */ 8160 #define EVB_PORT_ID_ASSIGNED 0x1000000 8161 /* enum: External network port 0 */ 8162 #define EVB_PORT_ID_MAC0 0x2000000 8163 /* enum: External network port 1 */ 8164 #define EVB_PORT_ID_MAC1 0x2000001 8165 /* enum: External network port 2 */ 8166 #define EVB_PORT_ID_MAC2 0x2000002 8167 /* enum: External network port 3 */ 8168 #define EVB_PORT_ID_MAC3 0x2000003 8169 #define EVB_PORT_ID_PORT_ID_LBN 0 8170 #define EVB_PORT_ID_PORT_ID_WIDTH 32 8171 8172 /* EVB_VLAN_TAG structuredef */ 8173 #define EVB_VLAN_TAG_LEN 2 8174 /* The VLAN tag value */ 8175 #define EVB_VLAN_TAG_VLAN_ID_LBN 0 8176 #define EVB_VLAN_TAG_VLAN_ID_WIDTH 12 8177 #define EVB_VLAN_TAG_MODE_LBN 12 8178 #define EVB_VLAN_TAG_MODE_WIDTH 4 8179 /* enum: Insert the VLAN. */ 8180 #define EVB_VLAN_TAG_INSERT 0x0 8181 /* enum: Replace the VLAN if already present. */ 8182 #define EVB_VLAN_TAG_REPLACE 0x1 8183 8184 /* BUFTBL_ENTRY structuredef */ 8185 #define BUFTBL_ENTRY_LEN 12 8186 /* the owner ID */ 8187 #define BUFTBL_ENTRY_OID_OFST 0 8188 #define BUFTBL_ENTRY_OID_LEN 2 8189 #define BUFTBL_ENTRY_OID_LBN 0 8190 #define BUFTBL_ENTRY_OID_WIDTH 16 8191 /* the page parameter as one of ESE_DZ_SMC_PAGE_SIZE_ */ 8192 #define BUFTBL_ENTRY_PGSZ_OFST 2 8193 #define BUFTBL_ENTRY_PGSZ_LEN 2 8194 #define BUFTBL_ENTRY_PGSZ_LBN 16 8195 #define BUFTBL_ENTRY_PGSZ_WIDTH 16 8196 /* the raw 64-bit address field from the SMC, not adjusted for page size */ 8197 #define BUFTBL_ENTRY_RAWADDR_OFST 4 8198 #define BUFTBL_ENTRY_RAWADDR_LEN 8 8199 #define BUFTBL_ENTRY_RAWADDR_LO_OFST 4 8200 #define BUFTBL_ENTRY_RAWADDR_HI_OFST 8 8201 #define BUFTBL_ENTRY_RAWADDR_LBN 32 8202 #define BUFTBL_ENTRY_RAWADDR_WIDTH 64 8203 8204 /* NVRAM_PARTITION_TYPE structuredef */ 8205 #define NVRAM_PARTITION_TYPE_LEN 2 8206 #define NVRAM_PARTITION_TYPE_ID_OFST 0 8207 #define NVRAM_PARTITION_TYPE_ID_LEN 2 8208 /* enum: Primary MC firmware partition */ 8209 #define NVRAM_PARTITION_TYPE_MC_FIRMWARE 0x100 8210 /* enum: Secondary MC firmware partition */ 8211 #define NVRAM_PARTITION_TYPE_MC_FIRMWARE_BACKUP 0x200 8212 /* enum: Expansion ROM partition */ 8213 #define NVRAM_PARTITION_TYPE_EXPANSION_ROM 0x300 8214 /* enum: Static configuration TLV partition */ 8215 #define NVRAM_PARTITION_TYPE_STATIC_CONFIG 0x400 8216 /* enum: Dynamic configuration TLV partition */ 8217 #define NVRAM_PARTITION_TYPE_DYNAMIC_CONFIG 0x500 8218 /* enum: Expansion ROM configuration data for port 0 */ 8219 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT0 0x600 8220 /* enum: Synonym for EXPROM_CONFIG_PORT0 as used in pmap files */ 8221 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG 0x600 8222 /* enum: Expansion ROM configuration data for port 1 */ 8223 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT1 0x601 8224 /* enum: Expansion ROM configuration data for port 2 */ 8225 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT2 0x602 8226 /* enum: Expansion ROM configuration data for port 3 */ 8227 #define NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT3 0x603 8228 /* enum: Non-volatile log output partition */ 8229 #define NVRAM_PARTITION_TYPE_LOG 0x700 8230 /* enum: Non-volatile log output of second core on dual-core device */ 8231 #define NVRAM_PARTITION_TYPE_LOG_SLAVE 0x701 8232 /* enum: Device state dump output partition */ 8233 #define NVRAM_PARTITION_TYPE_DUMP 0x800 8234 /* enum: Application license key storage partition */ 8235 #define NVRAM_PARTITION_TYPE_LICENSE 0x900 8236 /* enum: Start of range used for PHY partitions (low 8 bits are the PHY ID) */ 8237 #define NVRAM_PARTITION_TYPE_PHY_MIN 0xa00 8238 /* enum: End of range used for PHY partitions (low 8 bits are the PHY ID) */ 8239 #define NVRAM_PARTITION_TYPE_PHY_MAX 0xaff 8240 /* enum: Primary FPGA partition */ 8241 #define NVRAM_PARTITION_TYPE_FPGA 0xb00 8242 /* enum: Secondary FPGA partition */ 8243 #define NVRAM_PARTITION_TYPE_FPGA_BACKUP 0xb01 8244 /* enum: FC firmware partition */ 8245 #define NVRAM_PARTITION_TYPE_FC_FIRMWARE 0xb02 8246 /* enum: FC License partition */ 8247 #define NVRAM_PARTITION_TYPE_FC_LICENSE 0xb03 8248 /* enum: Non-volatile log output partition for FC */ 8249 #define NVRAM_PARTITION_TYPE_FC_LOG 0xb04 8250 /* enum: MUM firmware partition */ 8251 #define NVRAM_PARTITION_TYPE_MUM_FIRMWARE 0xc00 8252 /* enum: SUC firmware partition (this is intentionally an alias of 8253 * MUM_FIRMWARE) 8254 */ 8255 #define NVRAM_PARTITION_TYPE_SUC_FIRMWARE 0xc00 8256 /* enum: MUM Non-volatile log output partition. */ 8257 #define NVRAM_PARTITION_TYPE_MUM_LOG 0xc01 8258 /* enum: MUM Application table partition. */ 8259 #define NVRAM_PARTITION_TYPE_MUM_APPTABLE 0xc02 8260 /* enum: MUM boot rom partition. */ 8261 #define NVRAM_PARTITION_TYPE_MUM_BOOT_ROM 0xc03 8262 /* enum: MUM production signatures & calibration rom partition. */ 8263 #define NVRAM_PARTITION_TYPE_MUM_PROD_ROM 0xc04 8264 /* enum: MUM user signatures & calibration rom partition. */ 8265 #define NVRAM_PARTITION_TYPE_MUM_USER_ROM 0xc05 8266 /* enum: MUM fuses and lockbits partition. */ 8267 #define NVRAM_PARTITION_TYPE_MUM_FUSELOCK 0xc06 8268 /* enum: UEFI expansion ROM if separate from PXE */ 8269 #define NVRAM_PARTITION_TYPE_EXPANSION_UEFI 0xd00 8270 /* enum: Used by the expansion ROM for logging */ 8271 #define NVRAM_PARTITION_TYPE_PXE_LOG 0x1000 8272 /* enum: Used for XIP code of shmbooted images */ 8273 #define NVRAM_PARTITION_TYPE_XIP_SCRATCH 0x1100 8274 /* enum: Spare partition 2 */ 8275 #define NVRAM_PARTITION_TYPE_SPARE_2 0x1200 8276 /* enum: Manufacturing partition. Used during manufacture to pass information 8277 * between XJTAG and Manftest. 8278 */ 8279 #define NVRAM_PARTITION_TYPE_MANUFACTURING 0x1300 8280 /* enum: Spare partition 4 */ 8281 #define NVRAM_PARTITION_TYPE_SPARE_4 0x1400 8282 /* enum: Spare partition 5 */ 8283 #define NVRAM_PARTITION_TYPE_SPARE_5 0x1500 8284 /* enum: Partition for reporting MC status. See mc_flash_layout.h 8285 * medford_mc_status_hdr_t for layout on Medford. 8286 */ 8287 #define NVRAM_PARTITION_TYPE_STATUS 0x1600 8288 /* enum: Spare partition 13 */ 8289 #define NVRAM_PARTITION_TYPE_SPARE_13 0x1700 8290 /* enum: Spare partition 14 */ 8291 #define NVRAM_PARTITION_TYPE_SPARE_14 0x1800 8292 /* enum: Spare partition 15 */ 8293 #define NVRAM_PARTITION_TYPE_SPARE_15 0x1900 8294 /* enum: Spare partition 16 */ 8295 #define NVRAM_PARTITION_TYPE_SPARE_16 0x1a00 8296 /* enum: Factory defaults for dynamic configuration */ 8297 #define NVRAM_PARTITION_TYPE_DYNCONFIG_DEFAULTS 0x1b00 8298 /* enum: Factory defaults for expansion ROM configuration */ 8299 #define NVRAM_PARTITION_TYPE_ROMCONFIG_DEFAULTS 0x1c00 8300 /* enum: Field Replaceable Unit inventory information for use on IPMI 8301 * platforms. See SF-119124-PS. The STATIC_CONFIG partition may contain a 8302 * subset of the information stored in this partition. 8303 */ 8304 #define NVRAM_PARTITION_TYPE_FRU_INFORMATION 0x1d00 8305 /* enum: Bundle image partition */ 8306 #define NVRAM_PARTITION_TYPE_BUNDLE 0x1e00 8307 /* enum: Bundle metadata partition that holds additional information related to 8308 * a bundle update in TLV format 8309 */ 8310 #define NVRAM_PARTITION_TYPE_BUNDLE_METADATA 0x1e01 8311 /* enum: Bundle update non-volatile log output partition */ 8312 #define NVRAM_PARTITION_TYPE_BUNDLE_LOG 0x1e02 8313 /* enum: Partition for Solarflare gPXE bootrom installed via Bundle update. */ 8314 #define NVRAM_PARTITION_TYPE_EXPANSION_ROM_INTERNAL 0x1e03 8315 /* enum: Start of reserved value range (firmware may use for any purpose) */ 8316 #define NVRAM_PARTITION_TYPE_RESERVED_VALUES_MIN 0xff00 8317 /* enum: End of reserved value range (firmware may use for any purpose) */ 8318 #define NVRAM_PARTITION_TYPE_RESERVED_VALUES_MAX 0xfffd 8319 /* enum: Recovery partition map (provided if real map is missing or corrupt) */ 8320 #define NVRAM_PARTITION_TYPE_RECOVERY_MAP 0xfffe 8321 /* enum: Partition map (real map as stored in flash) */ 8322 #define NVRAM_PARTITION_TYPE_PARTITION_MAP 0xffff 8323 #define NVRAM_PARTITION_TYPE_ID_LBN 0 8324 #define NVRAM_PARTITION_TYPE_ID_WIDTH 16 8325 8326 /* LICENSED_APP_ID structuredef */ 8327 #define LICENSED_APP_ID_LEN 4 8328 #define LICENSED_APP_ID_ID_OFST 0 8329 #define LICENSED_APP_ID_ID_LEN 4 8330 /* enum: OpenOnload */ 8331 #define LICENSED_APP_ID_ONLOAD 0x1 8332 /* enum: PTP timestamping */ 8333 #define LICENSED_APP_ID_PTP 0x2 8334 /* enum: SolarCapture Pro */ 8335 #define LICENSED_APP_ID_SOLARCAPTURE_PRO 0x4 8336 /* enum: SolarSecure filter engine */ 8337 #define LICENSED_APP_ID_SOLARSECURE 0x8 8338 /* enum: Performance monitor */ 8339 #define LICENSED_APP_ID_PERF_MONITOR 0x10 8340 /* enum: SolarCapture Live */ 8341 #define LICENSED_APP_ID_SOLARCAPTURE_LIVE 0x20 8342 /* enum: Capture SolarSystem */ 8343 #define LICENSED_APP_ID_CAPTURE_SOLARSYSTEM 0x40 8344 /* enum: Network Access Control */ 8345 #define LICENSED_APP_ID_NETWORK_ACCESS_CONTROL 0x80 8346 /* enum: TCP Direct */ 8347 #define LICENSED_APP_ID_TCP_DIRECT 0x100 8348 /* enum: Low Latency */ 8349 #define LICENSED_APP_ID_LOW_LATENCY 0x200 8350 /* enum: SolarCapture Tap */ 8351 #define LICENSED_APP_ID_SOLARCAPTURE_TAP 0x400 8352 /* enum: Capture SolarSystem 40G */ 8353 #define LICENSED_APP_ID_CAPTURE_SOLARSYSTEM_40G 0x800 8354 /* enum: Capture SolarSystem 1G */ 8355 #define LICENSED_APP_ID_CAPTURE_SOLARSYSTEM_1G 0x1000 8356 /* enum: ScaleOut Onload */ 8357 #define LICENSED_APP_ID_SCALEOUT_ONLOAD 0x2000 8358 /* enum: SCS Network Analytics Dashboard */ 8359 #define LICENSED_APP_ID_DSHBRD 0x4000 8360 /* enum: SolarCapture Trading Analytics */ 8361 #define LICENSED_APP_ID_SCATRD 0x8000 8362 #define LICENSED_APP_ID_ID_LBN 0 8363 #define LICENSED_APP_ID_ID_WIDTH 32 8364 8365 /* LICENSED_FEATURES structuredef */ 8366 #define LICENSED_FEATURES_LEN 8 8367 /* Bitmask of licensed firmware features */ 8368 #define LICENSED_FEATURES_MASK_OFST 0 8369 #define LICENSED_FEATURES_MASK_LEN 8 8370 #define LICENSED_FEATURES_MASK_LO_OFST 0 8371 #define LICENSED_FEATURES_MASK_HI_OFST 4 8372 #define LICENSED_FEATURES_RX_CUT_THROUGH_OFST 0 8373 #define LICENSED_FEATURES_RX_CUT_THROUGH_LBN 0 8374 #define LICENSED_FEATURES_RX_CUT_THROUGH_WIDTH 1 8375 #define LICENSED_FEATURES_PIO_OFST 0 8376 #define LICENSED_FEATURES_PIO_LBN 1 8377 #define LICENSED_FEATURES_PIO_WIDTH 1 8378 #define LICENSED_FEATURES_EVQ_TIMER_OFST 0 8379 #define LICENSED_FEATURES_EVQ_TIMER_LBN 2 8380 #define LICENSED_FEATURES_EVQ_TIMER_WIDTH 1 8381 #define LICENSED_FEATURES_CLOCK_OFST 0 8382 #define LICENSED_FEATURES_CLOCK_LBN 3 8383 #define LICENSED_FEATURES_CLOCK_WIDTH 1 8384 #define LICENSED_FEATURES_RX_TIMESTAMPS_OFST 0 8385 #define LICENSED_FEATURES_RX_TIMESTAMPS_LBN 4 8386 #define LICENSED_FEATURES_RX_TIMESTAMPS_WIDTH 1 8387 #define LICENSED_FEATURES_TX_TIMESTAMPS_OFST 0 8388 #define LICENSED_FEATURES_TX_TIMESTAMPS_LBN 5 8389 #define LICENSED_FEATURES_TX_TIMESTAMPS_WIDTH 1 8390 #define LICENSED_FEATURES_RX_SNIFF_OFST 0 8391 #define LICENSED_FEATURES_RX_SNIFF_LBN 6 8392 #define LICENSED_FEATURES_RX_SNIFF_WIDTH 1 8393 #define LICENSED_FEATURES_TX_SNIFF_OFST 0 8394 #define LICENSED_FEATURES_TX_SNIFF_LBN 7 8395 #define LICENSED_FEATURES_TX_SNIFF_WIDTH 1 8396 #define LICENSED_FEATURES_PROXY_FILTER_OPS_OFST 0 8397 #define LICENSED_FEATURES_PROXY_FILTER_OPS_LBN 8 8398 #define LICENSED_FEATURES_PROXY_FILTER_OPS_WIDTH 1 8399 #define LICENSED_FEATURES_EVENT_CUT_THROUGH_OFST 0 8400 #define LICENSED_FEATURES_EVENT_CUT_THROUGH_LBN 9 8401 #define LICENSED_FEATURES_EVENT_CUT_THROUGH_WIDTH 1 8402 #define LICENSED_FEATURES_MASK_LBN 0 8403 #define LICENSED_FEATURES_MASK_WIDTH 64 8404 8405 /* LICENSED_V3_APPS structuredef */ 8406 #define LICENSED_V3_APPS_LEN 8 8407 /* Bitmask of licensed applications */ 8408 #define LICENSED_V3_APPS_MASK_OFST 0 8409 #define LICENSED_V3_APPS_MASK_LEN 8 8410 #define LICENSED_V3_APPS_MASK_LO_OFST 0 8411 #define LICENSED_V3_APPS_MASK_HI_OFST 4 8412 #define LICENSED_V3_APPS_ONLOAD_OFST 0 8413 #define LICENSED_V3_APPS_ONLOAD_LBN 0 8414 #define LICENSED_V3_APPS_ONLOAD_WIDTH 1 8415 #define LICENSED_V3_APPS_PTP_OFST 0 8416 #define LICENSED_V3_APPS_PTP_LBN 1 8417 #define LICENSED_V3_APPS_PTP_WIDTH 1 8418 #define LICENSED_V3_APPS_SOLARCAPTURE_PRO_OFST 0 8419 #define LICENSED_V3_APPS_SOLARCAPTURE_PRO_LBN 2 8420 #define LICENSED_V3_APPS_SOLARCAPTURE_PRO_WIDTH 1 8421 #define LICENSED_V3_APPS_SOLARSECURE_OFST 0 8422 #define LICENSED_V3_APPS_SOLARSECURE_LBN 3 8423 #define LICENSED_V3_APPS_SOLARSECURE_WIDTH 1 8424 #define LICENSED_V3_APPS_PERF_MONITOR_OFST 0 8425 #define LICENSED_V3_APPS_PERF_MONITOR_LBN 4 8426 #define LICENSED_V3_APPS_PERF_MONITOR_WIDTH 1 8427 #define LICENSED_V3_APPS_SOLARCAPTURE_LIVE_OFST 0 8428 #define LICENSED_V3_APPS_SOLARCAPTURE_LIVE_LBN 5 8429 #define LICENSED_V3_APPS_SOLARCAPTURE_LIVE_WIDTH 1 8430 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_OFST 0 8431 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_LBN 6 8432 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_WIDTH 1 8433 #define LICENSED_V3_APPS_NETWORK_ACCESS_CONTROL_OFST 0 8434 #define LICENSED_V3_APPS_NETWORK_ACCESS_CONTROL_LBN 7 8435 #define LICENSED_V3_APPS_NETWORK_ACCESS_CONTROL_WIDTH 1 8436 #define LICENSED_V3_APPS_TCP_DIRECT_OFST 0 8437 #define LICENSED_V3_APPS_TCP_DIRECT_LBN 8 8438 #define LICENSED_V3_APPS_TCP_DIRECT_WIDTH 1 8439 #define LICENSED_V3_APPS_LOW_LATENCY_OFST 0 8440 #define LICENSED_V3_APPS_LOW_LATENCY_LBN 9 8441 #define LICENSED_V3_APPS_LOW_LATENCY_WIDTH 1 8442 #define LICENSED_V3_APPS_SOLARCAPTURE_TAP_OFST 0 8443 #define LICENSED_V3_APPS_SOLARCAPTURE_TAP_LBN 10 8444 #define LICENSED_V3_APPS_SOLARCAPTURE_TAP_WIDTH 1 8445 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_40G_OFST 0 8446 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_40G_LBN 11 8447 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_40G_WIDTH 1 8448 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_1G_OFST 0 8449 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_1G_LBN 12 8450 #define LICENSED_V3_APPS_CAPTURE_SOLARSYSTEM_1G_WIDTH 1 8451 #define LICENSED_V3_APPS_SCALEOUT_ONLOAD_OFST 0 8452 #define LICENSED_V3_APPS_SCALEOUT_ONLOAD_LBN 13 8453 #define LICENSED_V3_APPS_SCALEOUT_ONLOAD_WIDTH 1 8454 #define LICENSED_V3_APPS_DSHBRD_OFST 0 8455 #define LICENSED_V3_APPS_DSHBRD_LBN 14 8456 #define LICENSED_V3_APPS_DSHBRD_WIDTH 1 8457 #define LICENSED_V3_APPS_SCATRD_OFST 0 8458 #define LICENSED_V3_APPS_SCATRD_LBN 15 8459 #define LICENSED_V3_APPS_SCATRD_WIDTH 1 8460 #define LICENSED_V3_APPS_MASK_LBN 0 8461 #define LICENSED_V3_APPS_MASK_WIDTH 64 8462 8463 /* LICENSED_V3_FEATURES structuredef */ 8464 #define LICENSED_V3_FEATURES_LEN 8 8465 /* Bitmask of licensed firmware features */ 8466 #define LICENSED_V3_FEATURES_MASK_OFST 0 8467 #define LICENSED_V3_FEATURES_MASK_LEN 8 8468 #define LICENSED_V3_FEATURES_MASK_LO_OFST 0 8469 #define LICENSED_V3_FEATURES_MASK_HI_OFST 4 8470 #define LICENSED_V3_FEATURES_RX_CUT_THROUGH_OFST 0 8471 #define LICENSED_V3_FEATURES_RX_CUT_THROUGH_LBN 0 8472 #define LICENSED_V3_FEATURES_RX_CUT_THROUGH_WIDTH 1 8473 #define LICENSED_V3_FEATURES_PIO_OFST 0 8474 #define LICENSED_V3_FEATURES_PIO_LBN 1 8475 #define LICENSED_V3_FEATURES_PIO_WIDTH 1 8476 #define LICENSED_V3_FEATURES_EVQ_TIMER_OFST 0 8477 #define LICENSED_V3_FEATURES_EVQ_TIMER_LBN 2 8478 #define LICENSED_V3_FEATURES_EVQ_TIMER_WIDTH 1 8479 #define LICENSED_V3_FEATURES_CLOCK_OFST 0 8480 #define LICENSED_V3_FEATURES_CLOCK_LBN 3 8481 #define LICENSED_V3_FEATURES_CLOCK_WIDTH 1 8482 #define LICENSED_V3_FEATURES_RX_TIMESTAMPS_OFST 0 8483 #define LICENSED_V3_FEATURES_RX_TIMESTAMPS_LBN 4 8484 #define LICENSED_V3_FEATURES_RX_TIMESTAMPS_WIDTH 1 8485 #define LICENSED_V3_FEATURES_TX_TIMESTAMPS_OFST 0 8486 #define LICENSED_V3_FEATURES_TX_TIMESTAMPS_LBN 5 8487 #define LICENSED_V3_FEATURES_TX_TIMESTAMPS_WIDTH 1 8488 #define LICENSED_V3_FEATURES_RX_SNIFF_OFST 0 8489 #define LICENSED_V3_FEATURES_RX_SNIFF_LBN 6 8490 #define LICENSED_V3_FEATURES_RX_SNIFF_WIDTH 1 8491 #define LICENSED_V3_FEATURES_TX_SNIFF_OFST 0 8492 #define LICENSED_V3_FEATURES_TX_SNIFF_LBN 7 8493 #define LICENSED_V3_FEATURES_TX_SNIFF_WIDTH 1 8494 #define LICENSED_V3_FEATURES_PROXY_FILTER_OPS_OFST 0 8495 #define LICENSED_V3_FEATURES_PROXY_FILTER_OPS_LBN 8 8496 #define LICENSED_V3_FEATURES_PROXY_FILTER_OPS_WIDTH 1 8497 #define LICENSED_V3_FEATURES_EVENT_CUT_THROUGH_OFST 0 8498 #define LICENSED_V3_FEATURES_EVENT_CUT_THROUGH_LBN 9 8499 #define LICENSED_V3_FEATURES_EVENT_CUT_THROUGH_WIDTH 1 8500 #define LICENSED_V3_FEATURES_MASK_LBN 0 8501 #define LICENSED_V3_FEATURES_MASK_WIDTH 64 8502 8503 /* TX_TIMESTAMP_EVENT structuredef */ 8504 #define TX_TIMESTAMP_EVENT_LEN 6 8505 /* lower 16 bits of timestamp data */ 8506 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_LO_OFST 0 8507 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_LO_LEN 2 8508 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_LO_LBN 0 8509 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_LO_WIDTH 16 8510 /* Type of TX event, ordinary TX completion, low or high part of TX timestamp 8511 */ 8512 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_OFST 3 8513 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_LEN 1 8514 /* enum: This is a TX completion event, not a timestamp */ 8515 #define TX_TIMESTAMP_EVENT_TX_EV_COMPLETION 0x0 8516 /* enum: This is a TX completion event for a CTPIO transmit. The event format 8517 * is the same as for TX_EV_COMPLETION. 8518 */ 8519 #define TX_TIMESTAMP_EVENT_TX_EV_CTPIO_COMPLETION 0x11 8520 /* enum: This is the low part of a TX timestamp for a CTPIO transmission. The 8521 * event format is the same as for TX_EV_TSTAMP_LO 8522 */ 8523 #define TX_TIMESTAMP_EVENT_TX_EV_CTPIO_TS_LO 0x12 8524 /* enum: This is the high part of a TX timestamp for a CTPIO transmission. The 8525 * event format is the same as for TX_EV_TSTAMP_HI 8526 */ 8527 #define TX_TIMESTAMP_EVENT_TX_EV_CTPIO_TS_HI 0x13 8528 /* enum: This is the low part of a TX timestamp event */ 8529 #define TX_TIMESTAMP_EVENT_TX_EV_TSTAMP_LO 0x51 8530 /* enum: This is the high part of a TX timestamp event */ 8531 #define TX_TIMESTAMP_EVENT_TX_EV_TSTAMP_HI 0x52 8532 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_LBN 24 8533 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_WIDTH 8 8534 /* upper 16 bits of timestamp data */ 8535 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_OFST 4 8536 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_LEN 2 8537 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_LBN 32 8538 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_WIDTH 16 8539 8540 /* RSS_MODE structuredef */ 8541 #define RSS_MODE_LEN 1 8542 /* The RSS mode for a particular packet type is a value from 0 - 15 which can 8543 * be considered as 4 bits selecting which fields are included in the hash. (A 8544 * value 0 effectively disables RSS spreading for the packet type.) The YAML 8545 * generation tools require this structure to be a whole number of bytes wide, 8546 * but only 4 bits are relevant. 8547 */ 8548 #define RSS_MODE_HASH_SELECTOR_OFST 0 8549 #define RSS_MODE_HASH_SELECTOR_LEN 1 8550 #define RSS_MODE_HASH_SRC_ADDR_OFST 0 8551 #define RSS_MODE_HASH_SRC_ADDR_LBN 0 8552 #define RSS_MODE_HASH_SRC_ADDR_WIDTH 1 8553 #define RSS_MODE_HASH_DST_ADDR_OFST 0 8554 #define RSS_MODE_HASH_DST_ADDR_LBN 1 8555 #define RSS_MODE_HASH_DST_ADDR_WIDTH 1 8556 #define RSS_MODE_HASH_SRC_PORT_OFST 0 8557 #define RSS_MODE_HASH_SRC_PORT_LBN 2 8558 #define RSS_MODE_HASH_SRC_PORT_WIDTH 1 8559 #define RSS_MODE_HASH_DST_PORT_OFST 0 8560 #define RSS_MODE_HASH_DST_PORT_LBN 3 8561 #define RSS_MODE_HASH_DST_PORT_WIDTH 1 8562 #define RSS_MODE_HASH_SELECTOR_LBN 0 8563 #define RSS_MODE_HASH_SELECTOR_WIDTH 8 8564 8565 /* CTPIO_STATS_MAP structuredef */ 8566 #define CTPIO_STATS_MAP_LEN 4 8567 /* The (function relative) VI number */ 8568 #define CTPIO_STATS_MAP_VI_OFST 0 8569 #define CTPIO_STATS_MAP_VI_LEN 2 8570 #define CTPIO_STATS_MAP_VI_LBN 0 8571 #define CTPIO_STATS_MAP_VI_WIDTH 16 8572 /* The target bucket for the VI */ 8573 #define CTPIO_STATS_MAP_BUCKET_OFST 2 8574 #define CTPIO_STATS_MAP_BUCKET_LEN 2 8575 #define CTPIO_STATS_MAP_BUCKET_LBN 16 8576 #define CTPIO_STATS_MAP_BUCKET_WIDTH 16 8577 8578 /* MESSAGE_TYPE structuredef: When present this defines the meaning of a 8579 * message, and is used to protect against chosen message attacks in signed 8580 * messages, regardless their origin. The message type also defines the 8581 * signature cryptographic algorithm, encoding, and message fields included in 8582 * the signature. The values are used in different commands but must be unique 8583 * across all commands, e.g. MC_CMD_TSA_BIND_IN_SECURE_UNBIND uses different 8584 * message type than MC_CMD_SECURE_NIC_INFO_IN_STATUS. 8585 */ 8586 #define MESSAGE_TYPE_LEN 4 8587 #define MESSAGE_TYPE_MESSAGE_TYPE_OFST 0 8588 #define MESSAGE_TYPE_MESSAGE_TYPE_LEN 4 8589 #define MESSAGE_TYPE_UNUSED 0x0 /* enum */ 8590 /* enum: Message type value for the response to a 8591 * MC_CMD_TSA_BIND_IN_SECURE_UNBIND message. TSA_SECURE_UNBIND messages are 8592 * ECDSA SECP384R1 signed using SHA384 message digest algorithm over fields 8593 * MESSAGE_TYPE, TSANID, TSAID, and UNBINDTOKEN, and encoded as suggested by 8594 * RFC6979 (section 2.4). 8595 */ 8596 #define MESSAGE_TYPE_TSA_SECURE_UNBIND 0x1 8597 /* enum: Message type value for the response to a 8598 * MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION message. TSA_SECURE_DECOMMISSION 8599 * messages are ECDSA SECP384R1 signed using SHA384 message digest algorithm 8600 * over fields MESSAGE_TYPE, TSAID, USER, and REASON, and encoded as suggested 8601 * by RFC6979 (section 2.4). 8602 */ 8603 #define MESSAGE_TYPE_TSA_SECURE_DECOMMISSION 0x2 8604 /* enum: Message type value for the response to a 8605 * MC_CMD_SECURE_NIC_INFO_IN_STATUS message. This enum value is not sequential 8606 * to other message types for backwards compatibility as the message type for 8607 * MC_CMD_SECURE_NIC_INFO_IN_STATUS was defined before the existence of this 8608 * global enum. 8609 */ 8610 #define MESSAGE_TYPE_SECURE_NIC_INFO_STATUS 0xdb4 8611 #define MESSAGE_TYPE_MESSAGE_TYPE_LBN 0 8612 #define MESSAGE_TYPE_MESSAGE_TYPE_WIDTH 32 8613 8614 8615 /***********************************/ 8616 /* MC_CMD_READ_REGS 8617 * Get a dump of the MCPU registers 8618 */ 8619 #define MC_CMD_READ_REGS 0x50 8620 #undef MC_CMD_0x50_PRIVILEGE_CTG 8621 8622 #define MC_CMD_0x50_PRIVILEGE_CTG SRIOV_CTG_INSECURE 8623 8624 /* MC_CMD_READ_REGS_IN msgrequest */ 8625 #define MC_CMD_READ_REGS_IN_LEN 0 8626 8627 /* MC_CMD_READ_REGS_OUT msgresponse */ 8628 #define MC_CMD_READ_REGS_OUT_LEN 308 8629 /* Whether the corresponding register entry contains a valid value */ 8630 #define MC_CMD_READ_REGS_OUT_MASK_OFST 0 8631 #define MC_CMD_READ_REGS_OUT_MASK_LEN 16 8632 /* Same order as MIPS GDB (r0-r31, sr, lo, hi, bad, cause, 32 x float, fsr, 8633 * fir, fp) 8634 */ 8635 #define MC_CMD_READ_REGS_OUT_REGS_OFST 16 8636 #define MC_CMD_READ_REGS_OUT_REGS_LEN 4 8637 #define MC_CMD_READ_REGS_OUT_REGS_NUM 73 8638 8639 8640 /***********************************/ 8641 /* MC_CMD_INIT_EVQ 8642 * Set up an event queue according to the supplied parameters. The IN arguments 8643 * end with an address for each 4k of host memory required to back the EVQ. 8644 */ 8645 #define MC_CMD_INIT_EVQ 0x80 8646 #undef MC_CMD_0x80_PRIVILEGE_CTG 8647 8648 #define MC_CMD_0x80_PRIVILEGE_CTG SRIOV_CTG_GENERAL 8649 8650 /* MC_CMD_INIT_EVQ_IN msgrequest */ 8651 #define MC_CMD_INIT_EVQ_IN_LENMIN 44 8652 #define MC_CMD_INIT_EVQ_IN_LENMAX 548 8653 #define MC_CMD_INIT_EVQ_IN_LENMAX_MCDI2 548 8654 #define MC_CMD_INIT_EVQ_IN_LEN(num) (36+8*(num)) 8655 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_NUM(len) (((len)-36)/8) 8656 /* Size, in entries */ 8657 #define MC_CMD_INIT_EVQ_IN_SIZE_OFST 0 8658 #define MC_CMD_INIT_EVQ_IN_SIZE_LEN 4 8659 /* Desired instance. Must be set to a specific instance, which is a function 8660 * local queue index. 8661 */ 8662 #define MC_CMD_INIT_EVQ_IN_INSTANCE_OFST 4 8663 #define MC_CMD_INIT_EVQ_IN_INSTANCE_LEN 4 8664 /* The initial timer value. The load value is ignored if the timer mode is DIS. 8665 */ 8666 #define MC_CMD_INIT_EVQ_IN_TMR_LOAD_OFST 8 8667 #define MC_CMD_INIT_EVQ_IN_TMR_LOAD_LEN 4 8668 /* The reload value is ignored in one-shot modes */ 8669 #define MC_CMD_INIT_EVQ_IN_TMR_RELOAD_OFST 12 8670 #define MC_CMD_INIT_EVQ_IN_TMR_RELOAD_LEN 4 8671 /* tbd */ 8672 #define MC_CMD_INIT_EVQ_IN_FLAGS_OFST 16 8673 #define MC_CMD_INIT_EVQ_IN_FLAGS_LEN 4 8674 #define MC_CMD_INIT_EVQ_IN_FLAG_INTERRUPTING_OFST 16 8675 #define MC_CMD_INIT_EVQ_IN_FLAG_INTERRUPTING_LBN 0 8676 #define MC_CMD_INIT_EVQ_IN_FLAG_INTERRUPTING_WIDTH 1 8677 #define MC_CMD_INIT_EVQ_IN_FLAG_RPTR_DOS_OFST 16 8678 #define MC_CMD_INIT_EVQ_IN_FLAG_RPTR_DOS_LBN 1 8679 #define MC_CMD_INIT_EVQ_IN_FLAG_RPTR_DOS_WIDTH 1 8680 #define MC_CMD_INIT_EVQ_IN_FLAG_INT_ARMD_OFST 16 8681 #define MC_CMD_INIT_EVQ_IN_FLAG_INT_ARMD_LBN 2 8682 #define MC_CMD_INIT_EVQ_IN_FLAG_INT_ARMD_WIDTH 1 8683 #define MC_CMD_INIT_EVQ_IN_FLAG_CUT_THRU_OFST 16 8684 #define MC_CMD_INIT_EVQ_IN_FLAG_CUT_THRU_LBN 3 8685 #define MC_CMD_INIT_EVQ_IN_FLAG_CUT_THRU_WIDTH 1 8686 #define MC_CMD_INIT_EVQ_IN_FLAG_RX_MERGE_OFST 16 8687 #define MC_CMD_INIT_EVQ_IN_FLAG_RX_MERGE_LBN 4 8688 #define MC_CMD_INIT_EVQ_IN_FLAG_RX_MERGE_WIDTH 1 8689 #define MC_CMD_INIT_EVQ_IN_FLAG_TX_MERGE_OFST 16 8690 #define MC_CMD_INIT_EVQ_IN_FLAG_TX_MERGE_LBN 5 8691 #define MC_CMD_INIT_EVQ_IN_FLAG_TX_MERGE_WIDTH 1 8692 #define MC_CMD_INIT_EVQ_IN_FLAG_USE_TIMER_OFST 16 8693 #define MC_CMD_INIT_EVQ_IN_FLAG_USE_TIMER_LBN 6 8694 #define MC_CMD_INIT_EVQ_IN_FLAG_USE_TIMER_WIDTH 1 8695 #define MC_CMD_INIT_EVQ_IN_TMR_MODE_OFST 20 8696 #define MC_CMD_INIT_EVQ_IN_TMR_MODE_LEN 4 8697 /* enum: Disabled */ 8698 #define MC_CMD_INIT_EVQ_IN_TMR_MODE_DIS 0x0 8699 /* enum: Immediate */ 8700 #define MC_CMD_INIT_EVQ_IN_TMR_IMMED_START 0x1 8701 /* enum: Triggered */ 8702 #define MC_CMD_INIT_EVQ_IN_TMR_TRIG_START 0x2 8703 /* enum: Hold-off */ 8704 #define MC_CMD_INIT_EVQ_IN_TMR_INT_HLDOFF 0x3 8705 /* Target EVQ for wakeups if in wakeup mode. */ 8706 #define MC_CMD_INIT_EVQ_IN_TARGET_EVQ_OFST 24 8707 #define MC_CMD_INIT_EVQ_IN_TARGET_EVQ_LEN 4 8708 /* Target interrupt if in interrupting mode (note union with target EVQ). Use 8709 * MC_CMD_RESOURCE_INSTANCE_ANY unless a specific one required for test 8710 * purposes. 8711 */ 8712 #define MC_CMD_INIT_EVQ_IN_IRQ_NUM_OFST 24 8713 #define MC_CMD_INIT_EVQ_IN_IRQ_NUM_LEN 4 8714 /* Event Counter Mode. */ 8715 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_OFST 28 8716 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_LEN 4 8717 /* enum: Disabled */ 8718 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_DIS 0x0 8719 /* enum: Disabled */ 8720 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_RX 0x1 8721 /* enum: Disabled */ 8722 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_TX 0x2 8723 /* enum: Disabled */ 8724 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_RXTX 0x3 8725 /* Event queue packet count threshold. */ 8726 #define MC_CMD_INIT_EVQ_IN_COUNT_THRSHLD_OFST 32 8727 #define MC_CMD_INIT_EVQ_IN_COUNT_THRSHLD_LEN 4 8728 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 8729 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_OFST 36 8730 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LEN 8 8731 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_OFST 36 8732 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_OFST 40 8733 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_MINNUM 1 8734 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_MAXNUM 64 8735 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_MAXNUM_MCDI2 64 8736 8737 /* MC_CMD_INIT_EVQ_OUT msgresponse */ 8738 #define MC_CMD_INIT_EVQ_OUT_LEN 4 8739 /* Only valid if INTRFLAG was true */ 8740 #define MC_CMD_INIT_EVQ_OUT_IRQ_OFST 0 8741 #define MC_CMD_INIT_EVQ_OUT_IRQ_LEN 4 8742 8743 /* MC_CMD_INIT_EVQ_V2_IN msgrequest */ 8744 #define MC_CMD_INIT_EVQ_V2_IN_LENMIN 44 8745 #define MC_CMD_INIT_EVQ_V2_IN_LENMAX 548 8746 #define MC_CMD_INIT_EVQ_V2_IN_LENMAX_MCDI2 548 8747 #define MC_CMD_INIT_EVQ_V2_IN_LEN(num) (36+8*(num)) 8748 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_NUM(len) (((len)-36)/8) 8749 /* Size, in entries */ 8750 #define MC_CMD_INIT_EVQ_V2_IN_SIZE_OFST 0 8751 #define MC_CMD_INIT_EVQ_V2_IN_SIZE_LEN 4 8752 /* Desired instance. Must be set to a specific instance, which is a function 8753 * local queue index. 8754 */ 8755 #define MC_CMD_INIT_EVQ_V2_IN_INSTANCE_OFST 4 8756 #define MC_CMD_INIT_EVQ_V2_IN_INSTANCE_LEN 4 8757 /* The initial timer value. The load value is ignored if the timer mode is DIS. 8758 */ 8759 #define MC_CMD_INIT_EVQ_V2_IN_TMR_LOAD_OFST 8 8760 #define MC_CMD_INIT_EVQ_V2_IN_TMR_LOAD_LEN 4 8761 /* The reload value is ignored in one-shot modes */ 8762 #define MC_CMD_INIT_EVQ_V2_IN_TMR_RELOAD_OFST 12 8763 #define MC_CMD_INIT_EVQ_V2_IN_TMR_RELOAD_LEN 4 8764 /* tbd */ 8765 #define MC_CMD_INIT_EVQ_V2_IN_FLAGS_OFST 16 8766 #define MC_CMD_INIT_EVQ_V2_IN_FLAGS_LEN 4 8767 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INTERRUPTING_OFST 16 8768 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INTERRUPTING_LBN 0 8769 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INTERRUPTING_WIDTH 1 8770 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RPTR_DOS_OFST 16 8771 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RPTR_DOS_LBN 1 8772 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RPTR_DOS_WIDTH 1 8773 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INT_ARMD_OFST 16 8774 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INT_ARMD_LBN 2 8775 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INT_ARMD_WIDTH 1 8776 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_CUT_THRU_OFST 16 8777 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_CUT_THRU_LBN 3 8778 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_CUT_THRU_WIDTH 1 8779 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RX_MERGE_OFST 16 8780 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RX_MERGE_LBN 4 8781 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RX_MERGE_WIDTH 1 8782 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TX_MERGE_OFST 16 8783 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TX_MERGE_LBN 5 8784 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TX_MERGE_WIDTH 1 8785 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_USE_TIMER_OFST 16 8786 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_USE_TIMER_LBN 6 8787 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_USE_TIMER_WIDTH 1 8788 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_OFST 16 8789 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_LBN 7 8790 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_WIDTH 4 8791 /* enum: All initialisation flags specified by host. */ 8792 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_MANUAL 0x0 8793 /* enum: MEDFORD only. Certain initialisation flags specified by host may be 8794 * over-ridden by firmware based on licenses and firmware variant in order to 8795 * provide the lowest latency achievable. See 8796 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 8797 */ 8798 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_LOW_LATENCY 0x1 8799 /* enum: MEDFORD only. Certain initialisation flags specified by host may be 8800 * over-ridden by firmware based on licenses and firmware variant in order to 8801 * provide the best throughput achievable. See 8802 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 8803 */ 8804 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_THROUGHPUT 0x2 8805 /* enum: MEDFORD only. Certain initialisation flags may be over-ridden by 8806 * firmware based on licenses and firmware variant. See 8807 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags. 8808 */ 8809 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_AUTO 0x3 8810 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_EXT_WIDTH_OFST 16 8811 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_EXT_WIDTH_LBN 11 8812 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_EXT_WIDTH_WIDTH 1 8813 #define MC_CMD_INIT_EVQ_V2_IN_TMR_MODE_OFST 20 8814 #define MC_CMD_INIT_EVQ_V2_IN_TMR_MODE_LEN 4 8815 /* enum: Disabled */ 8816 #define MC_CMD_INIT_EVQ_V2_IN_TMR_MODE_DIS 0x0 8817 /* enum: Immediate */ 8818 #define MC_CMD_INIT_EVQ_V2_IN_TMR_IMMED_START 0x1 8819 /* enum: Triggered */ 8820 #define MC_CMD_INIT_EVQ_V2_IN_TMR_TRIG_START 0x2 8821 /* enum: Hold-off */ 8822 #define MC_CMD_INIT_EVQ_V2_IN_TMR_INT_HLDOFF 0x3 8823 /* Target EVQ for wakeups if in wakeup mode. */ 8824 #define MC_CMD_INIT_EVQ_V2_IN_TARGET_EVQ_OFST 24 8825 #define MC_CMD_INIT_EVQ_V2_IN_TARGET_EVQ_LEN 4 8826 /* Target interrupt if in interrupting mode (note union with target EVQ). Use 8827 * MC_CMD_RESOURCE_INSTANCE_ANY unless a specific one required for test 8828 * purposes. 8829 */ 8830 #define MC_CMD_INIT_EVQ_V2_IN_IRQ_NUM_OFST 24 8831 #define MC_CMD_INIT_EVQ_V2_IN_IRQ_NUM_LEN 4 8832 /* Event Counter Mode. */ 8833 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_OFST 28 8834 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_LEN 4 8835 /* enum: Disabled */ 8836 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_DIS 0x0 8837 /* enum: Disabled */ 8838 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_RX 0x1 8839 /* enum: Disabled */ 8840 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_TX 0x2 8841 /* enum: Disabled */ 8842 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_RXTX 0x3 8843 /* Event queue packet count threshold. */ 8844 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_THRSHLD_OFST 32 8845 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_THRSHLD_LEN 4 8846 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 8847 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_OFST 36 8848 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LEN 8 8849 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_OFST 36 8850 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_OFST 40 8851 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_MINNUM 1 8852 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_MAXNUM 64 8853 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_MAXNUM_MCDI2 64 8854 8855 /* MC_CMD_INIT_EVQ_V2_OUT msgresponse */ 8856 #define MC_CMD_INIT_EVQ_V2_OUT_LEN 8 8857 /* Only valid if INTRFLAG was true */ 8858 #define MC_CMD_INIT_EVQ_V2_OUT_IRQ_OFST 0 8859 #define MC_CMD_INIT_EVQ_V2_OUT_IRQ_LEN 4 8860 /* Actual configuration applied on the card */ 8861 #define MC_CMD_INIT_EVQ_V2_OUT_FLAGS_OFST 4 8862 #define MC_CMD_INIT_EVQ_V2_OUT_FLAGS_LEN 4 8863 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_CUT_THRU_OFST 4 8864 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_CUT_THRU_LBN 0 8865 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_CUT_THRU_WIDTH 1 8866 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RX_MERGE_OFST 4 8867 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RX_MERGE_LBN 1 8868 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RX_MERGE_WIDTH 1 8869 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_TX_MERGE_OFST 4 8870 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_TX_MERGE_LBN 2 8871 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_TX_MERGE_WIDTH 1 8872 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_OFST 4 8873 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_LBN 3 8874 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_WIDTH 1 8875 8876 /* QUEUE_CRC_MODE structuredef */ 8877 #define QUEUE_CRC_MODE_LEN 1 8878 #define QUEUE_CRC_MODE_MODE_LBN 0 8879 #define QUEUE_CRC_MODE_MODE_WIDTH 4 8880 /* enum: No CRC. */ 8881 #define QUEUE_CRC_MODE_NONE 0x0 8882 /* enum: CRC Fiber channel over ethernet. */ 8883 #define QUEUE_CRC_MODE_FCOE 0x1 8884 /* enum: CRC (digest) iSCSI header only. */ 8885 #define QUEUE_CRC_MODE_ISCSI_HDR 0x2 8886 /* enum: CRC (digest) iSCSI header and payload. */ 8887 #define QUEUE_CRC_MODE_ISCSI 0x3 8888 /* enum: CRC Fiber channel over IP over ethernet. */ 8889 #define QUEUE_CRC_MODE_FCOIPOE 0x4 8890 /* enum: CRC MPA. */ 8891 #define QUEUE_CRC_MODE_MPA 0x5 8892 #define QUEUE_CRC_MODE_SPARE_LBN 4 8893 #define QUEUE_CRC_MODE_SPARE_WIDTH 4 8894 8895 8896 /***********************************/ 8897 /* MC_CMD_INIT_RXQ 8898 * set up a receive queue according to the supplied parameters. The IN 8899 * arguments end with an address for each 4k of host memory required to back 8900 * the RXQ. 8901 */ 8902 #define MC_CMD_INIT_RXQ 0x81 8903 #undef MC_CMD_0x81_PRIVILEGE_CTG 8904 8905 #define MC_CMD_0x81_PRIVILEGE_CTG SRIOV_CTG_GENERAL 8906 8907 /* MC_CMD_INIT_RXQ_IN msgrequest: Legacy RXQ_INIT request. Use extended version 8908 * in new code. 8909 */ 8910 #define MC_CMD_INIT_RXQ_IN_LENMIN 36 8911 #define MC_CMD_INIT_RXQ_IN_LENMAX 252 8912 #define MC_CMD_INIT_RXQ_IN_LENMAX_MCDI2 1020 8913 #define MC_CMD_INIT_RXQ_IN_LEN(num) (28+8*(num)) 8914 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_NUM(len) (((len)-28)/8) 8915 /* Size, in entries */ 8916 #define MC_CMD_INIT_RXQ_IN_SIZE_OFST 0 8917 #define MC_CMD_INIT_RXQ_IN_SIZE_LEN 4 8918 /* The EVQ to send events to. This is an index originally specified to INIT_EVQ 8919 */ 8920 #define MC_CMD_INIT_RXQ_IN_TARGET_EVQ_OFST 4 8921 #define MC_CMD_INIT_RXQ_IN_TARGET_EVQ_LEN 4 8922 /* The value to put in the event data. Check hardware spec. for valid range. */ 8923 #define MC_CMD_INIT_RXQ_IN_LABEL_OFST 8 8924 #define MC_CMD_INIT_RXQ_IN_LABEL_LEN 4 8925 /* Desired instance. Must be set to a specific instance, which is a function 8926 * local queue index. 8927 */ 8928 #define MC_CMD_INIT_RXQ_IN_INSTANCE_OFST 12 8929 #define MC_CMD_INIT_RXQ_IN_INSTANCE_LEN 4 8930 /* There will be more flags here. */ 8931 #define MC_CMD_INIT_RXQ_IN_FLAGS_OFST 16 8932 #define MC_CMD_INIT_RXQ_IN_FLAGS_LEN 4 8933 #define MC_CMD_INIT_RXQ_IN_FLAG_BUFF_MODE_OFST 16 8934 #define MC_CMD_INIT_RXQ_IN_FLAG_BUFF_MODE_LBN 0 8935 #define MC_CMD_INIT_RXQ_IN_FLAG_BUFF_MODE_WIDTH 1 8936 #define MC_CMD_INIT_RXQ_IN_FLAG_HDR_SPLIT_OFST 16 8937 #define MC_CMD_INIT_RXQ_IN_FLAG_HDR_SPLIT_LBN 1 8938 #define MC_CMD_INIT_RXQ_IN_FLAG_HDR_SPLIT_WIDTH 1 8939 #define MC_CMD_INIT_RXQ_IN_FLAG_TIMESTAMP_OFST 16 8940 #define MC_CMD_INIT_RXQ_IN_FLAG_TIMESTAMP_LBN 2 8941 #define MC_CMD_INIT_RXQ_IN_FLAG_TIMESTAMP_WIDTH 1 8942 #define MC_CMD_INIT_RXQ_IN_CRC_MODE_OFST 16 8943 #define MC_CMD_INIT_RXQ_IN_CRC_MODE_LBN 3 8944 #define MC_CMD_INIT_RXQ_IN_CRC_MODE_WIDTH 4 8945 #define MC_CMD_INIT_RXQ_IN_FLAG_CHAIN_OFST 16 8946 #define MC_CMD_INIT_RXQ_IN_FLAG_CHAIN_LBN 7 8947 #define MC_CMD_INIT_RXQ_IN_FLAG_CHAIN_WIDTH 1 8948 #define MC_CMD_INIT_RXQ_IN_FLAG_PREFIX_OFST 16 8949 #define MC_CMD_INIT_RXQ_IN_FLAG_PREFIX_LBN 8 8950 #define MC_CMD_INIT_RXQ_IN_FLAG_PREFIX_WIDTH 1 8951 #define MC_CMD_INIT_RXQ_IN_FLAG_DISABLE_SCATTER_OFST 16 8952 #define MC_CMD_INIT_RXQ_IN_FLAG_DISABLE_SCATTER_LBN 9 8953 #define MC_CMD_INIT_RXQ_IN_FLAG_DISABLE_SCATTER_WIDTH 1 8954 #define MC_CMD_INIT_RXQ_IN_UNUSED_OFST 16 8955 #define MC_CMD_INIT_RXQ_IN_UNUSED_LBN 10 8956 #define MC_CMD_INIT_RXQ_IN_UNUSED_WIDTH 1 8957 /* Owner ID to use if in buffer mode (zero if physical) */ 8958 #define MC_CMD_INIT_RXQ_IN_OWNER_ID_OFST 20 8959 #define MC_CMD_INIT_RXQ_IN_OWNER_ID_LEN 4 8960 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 8961 #define MC_CMD_INIT_RXQ_IN_PORT_ID_OFST 24 8962 #define MC_CMD_INIT_RXQ_IN_PORT_ID_LEN 4 8963 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 8964 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_OFST 28 8965 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LEN 8 8966 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_OFST 28 8967 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_OFST 32 8968 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_MINNUM 1 8969 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_MAXNUM 28 8970 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_MAXNUM_MCDI2 124 8971 8972 /* MC_CMD_INIT_RXQ_EXT_IN msgrequest: Extended RXQ_INIT with additional mode 8973 * flags 8974 */ 8975 #define MC_CMD_INIT_RXQ_EXT_IN_LEN 544 8976 /* Size, in entries */ 8977 #define MC_CMD_INIT_RXQ_EXT_IN_SIZE_OFST 0 8978 #define MC_CMD_INIT_RXQ_EXT_IN_SIZE_LEN 4 8979 /* The EVQ to send events to. This is an index originally specified to 8980 * INIT_EVQ. If DMA_MODE == PACKED_STREAM this must be equal to INSTANCE. 8981 */ 8982 #define MC_CMD_INIT_RXQ_EXT_IN_TARGET_EVQ_OFST 4 8983 #define MC_CMD_INIT_RXQ_EXT_IN_TARGET_EVQ_LEN 4 8984 /* The value to put in the event data. Check hardware spec. for valid range. 8985 * This field is ignored if DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER or DMA_MODE 8986 * == PACKED_STREAM. 8987 */ 8988 #define MC_CMD_INIT_RXQ_EXT_IN_LABEL_OFST 8 8989 #define MC_CMD_INIT_RXQ_EXT_IN_LABEL_LEN 4 8990 /* Desired instance. Must be set to a specific instance, which is a function 8991 * local queue index. 8992 */ 8993 #define MC_CMD_INIT_RXQ_EXT_IN_INSTANCE_OFST 12 8994 #define MC_CMD_INIT_RXQ_EXT_IN_INSTANCE_LEN 4 8995 /* There will be more flags here. */ 8996 #define MC_CMD_INIT_RXQ_EXT_IN_FLAGS_OFST 16 8997 #define MC_CMD_INIT_RXQ_EXT_IN_FLAGS_LEN 4 8998 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_BUFF_MODE_OFST 16 8999 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_BUFF_MODE_LBN 0 9000 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_BUFF_MODE_WIDTH 1 9001 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_HDR_SPLIT_OFST 16 9002 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_HDR_SPLIT_LBN 1 9003 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_HDR_SPLIT_WIDTH 1 9004 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_TIMESTAMP_OFST 16 9005 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_TIMESTAMP_LBN 2 9006 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_TIMESTAMP_WIDTH 1 9007 #define MC_CMD_INIT_RXQ_EXT_IN_CRC_MODE_OFST 16 9008 #define MC_CMD_INIT_RXQ_EXT_IN_CRC_MODE_LBN 3 9009 #define MC_CMD_INIT_RXQ_EXT_IN_CRC_MODE_WIDTH 4 9010 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_CHAIN_OFST 16 9011 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_CHAIN_LBN 7 9012 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_CHAIN_WIDTH 1 9013 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_PREFIX_OFST 16 9014 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_PREFIX_LBN 8 9015 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_PREFIX_WIDTH 1 9016 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_DISABLE_SCATTER_OFST 16 9017 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_DISABLE_SCATTER_LBN 9 9018 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_DISABLE_SCATTER_WIDTH 1 9019 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_MODE_OFST 16 9020 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_MODE_LBN 10 9021 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_MODE_WIDTH 4 9022 /* enum: One packet per descriptor (for normal networking) */ 9023 #define MC_CMD_INIT_RXQ_EXT_IN_SINGLE_PACKET 0x0 9024 /* enum: Pack multiple packets into large descriptors (for SolarCapture) */ 9025 #define MC_CMD_INIT_RXQ_EXT_IN_PACKED_STREAM 0x1 9026 /* enum: Pack multiple packets into large descriptors using the format designed 9027 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with 9028 * multiple fixed-size packet buffers within each bucket. For a full 9029 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath 9030 * firmware. 9031 */ 9032 #define MC_CMD_INIT_RXQ_EXT_IN_EQUAL_STRIDE_SUPER_BUFFER 0x2 9033 /* enum: Deprecated name for EQUAL_STRIDE_SUPER_BUFFER. */ 9034 #define MC_CMD_INIT_RXQ_EXT_IN_EQUAL_STRIDE_PACKED_STREAM 0x2 9035 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SNAPSHOT_MODE_OFST 16 9036 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SNAPSHOT_MODE_LBN 14 9037 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SNAPSHOT_MODE_WIDTH 1 9038 #define MC_CMD_INIT_RXQ_EXT_IN_PACKED_STREAM_BUFF_SIZE_OFST 16 9039 #define MC_CMD_INIT_RXQ_EXT_IN_PACKED_STREAM_BUFF_SIZE_LBN 15 9040 #define MC_CMD_INIT_RXQ_EXT_IN_PACKED_STREAM_BUFF_SIZE_WIDTH 3 9041 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_1M 0x0 /* enum */ 9042 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_512K 0x1 /* enum */ 9043 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_256K 0x2 /* enum */ 9044 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_128K 0x3 /* enum */ 9045 #define MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_64K 0x4 /* enum */ 9046 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_WANT_OUTER_CLASSES_OFST 16 9047 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_WANT_OUTER_CLASSES_LBN 18 9048 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1 9049 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_FORCE_EV_MERGING_OFST 16 9050 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_FORCE_EV_MERGING_LBN 19 9051 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_FORCE_EV_MERGING_WIDTH 1 9052 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_NO_CONT_EV_OFST 16 9053 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_NO_CONT_EV_LBN 20 9054 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_NO_CONT_EV_WIDTH 1 9055 /* Owner ID to use if in buffer mode (zero if physical) */ 9056 #define MC_CMD_INIT_RXQ_EXT_IN_OWNER_ID_OFST 20 9057 #define MC_CMD_INIT_RXQ_EXT_IN_OWNER_ID_LEN 4 9058 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 9059 #define MC_CMD_INIT_RXQ_EXT_IN_PORT_ID_OFST 24 9060 #define MC_CMD_INIT_RXQ_EXT_IN_PORT_ID_LEN 4 9061 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 9062 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_OFST 28 9063 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LEN 8 9064 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_OFST 28 9065 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_OFST 32 9066 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_NUM 64 9067 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 9068 #define MC_CMD_INIT_RXQ_EXT_IN_SNAPSHOT_LENGTH_OFST 540 9069 #define MC_CMD_INIT_RXQ_EXT_IN_SNAPSHOT_LENGTH_LEN 4 9070 9071 /* MC_CMD_INIT_RXQ_V3_IN msgrequest */ 9072 #define MC_CMD_INIT_RXQ_V3_IN_LEN 560 9073 /* Size, in entries */ 9074 #define MC_CMD_INIT_RXQ_V3_IN_SIZE_OFST 0 9075 #define MC_CMD_INIT_RXQ_V3_IN_SIZE_LEN 4 9076 /* The EVQ to send events to. This is an index originally specified to 9077 * INIT_EVQ. If DMA_MODE == PACKED_STREAM this must be equal to INSTANCE. 9078 */ 9079 #define MC_CMD_INIT_RXQ_V3_IN_TARGET_EVQ_OFST 4 9080 #define MC_CMD_INIT_RXQ_V3_IN_TARGET_EVQ_LEN 4 9081 /* The value to put in the event data. Check hardware spec. for valid range. 9082 * This field is ignored if DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER or DMA_MODE 9083 * == PACKED_STREAM. 9084 */ 9085 #define MC_CMD_INIT_RXQ_V3_IN_LABEL_OFST 8 9086 #define MC_CMD_INIT_RXQ_V3_IN_LABEL_LEN 4 9087 /* Desired instance. Must be set to a specific instance, which is a function 9088 * local queue index. 9089 */ 9090 #define MC_CMD_INIT_RXQ_V3_IN_INSTANCE_OFST 12 9091 #define MC_CMD_INIT_RXQ_V3_IN_INSTANCE_LEN 4 9092 /* There will be more flags here. */ 9093 #define MC_CMD_INIT_RXQ_V3_IN_FLAGS_OFST 16 9094 #define MC_CMD_INIT_RXQ_V3_IN_FLAGS_LEN 4 9095 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_BUFF_MODE_OFST 16 9096 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_BUFF_MODE_LBN 0 9097 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_BUFF_MODE_WIDTH 1 9098 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_HDR_SPLIT_OFST 16 9099 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_HDR_SPLIT_LBN 1 9100 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_HDR_SPLIT_WIDTH 1 9101 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_TIMESTAMP_OFST 16 9102 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_TIMESTAMP_LBN 2 9103 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_TIMESTAMP_WIDTH 1 9104 #define MC_CMD_INIT_RXQ_V3_IN_CRC_MODE_OFST 16 9105 #define MC_CMD_INIT_RXQ_V3_IN_CRC_MODE_LBN 3 9106 #define MC_CMD_INIT_RXQ_V3_IN_CRC_MODE_WIDTH 4 9107 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_CHAIN_OFST 16 9108 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_CHAIN_LBN 7 9109 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_CHAIN_WIDTH 1 9110 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_PREFIX_OFST 16 9111 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_PREFIX_LBN 8 9112 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_PREFIX_WIDTH 1 9113 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_DISABLE_SCATTER_OFST 16 9114 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_DISABLE_SCATTER_LBN 9 9115 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_DISABLE_SCATTER_WIDTH 1 9116 #define MC_CMD_INIT_RXQ_V3_IN_DMA_MODE_OFST 16 9117 #define MC_CMD_INIT_RXQ_V3_IN_DMA_MODE_LBN 10 9118 #define MC_CMD_INIT_RXQ_V3_IN_DMA_MODE_WIDTH 4 9119 /* enum: One packet per descriptor (for normal networking) */ 9120 #define MC_CMD_INIT_RXQ_V3_IN_SINGLE_PACKET 0x0 9121 /* enum: Pack multiple packets into large descriptors (for SolarCapture) */ 9122 #define MC_CMD_INIT_RXQ_V3_IN_PACKED_STREAM 0x1 9123 /* enum: Pack multiple packets into large descriptors using the format designed 9124 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with 9125 * multiple fixed-size packet buffers within each bucket. For a full 9126 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath 9127 * firmware. 9128 */ 9129 #define MC_CMD_INIT_RXQ_V3_IN_EQUAL_STRIDE_SUPER_BUFFER 0x2 9130 /* enum: Deprecated name for EQUAL_STRIDE_SUPER_BUFFER. */ 9131 #define MC_CMD_INIT_RXQ_V3_IN_EQUAL_STRIDE_PACKED_STREAM 0x2 9132 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SNAPSHOT_MODE_OFST 16 9133 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SNAPSHOT_MODE_LBN 14 9134 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SNAPSHOT_MODE_WIDTH 1 9135 #define MC_CMD_INIT_RXQ_V3_IN_PACKED_STREAM_BUFF_SIZE_OFST 16 9136 #define MC_CMD_INIT_RXQ_V3_IN_PACKED_STREAM_BUFF_SIZE_LBN 15 9137 #define MC_CMD_INIT_RXQ_V3_IN_PACKED_STREAM_BUFF_SIZE_WIDTH 3 9138 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_1M 0x0 /* enum */ 9139 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_512K 0x1 /* enum */ 9140 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_256K 0x2 /* enum */ 9141 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_128K 0x3 /* enum */ 9142 #define MC_CMD_INIT_RXQ_V3_IN_PS_BUFF_64K 0x4 /* enum */ 9143 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_WANT_OUTER_CLASSES_OFST 16 9144 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_WANT_OUTER_CLASSES_LBN 18 9145 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1 9146 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_FORCE_EV_MERGING_OFST 16 9147 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_FORCE_EV_MERGING_LBN 19 9148 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_FORCE_EV_MERGING_WIDTH 1 9149 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_NO_CONT_EV_OFST 16 9150 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_NO_CONT_EV_LBN 20 9151 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_NO_CONT_EV_WIDTH 1 9152 /* Owner ID to use if in buffer mode (zero if physical) */ 9153 #define MC_CMD_INIT_RXQ_V3_IN_OWNER_ID_OFST 20 9154 #define MC_CMD_INIT_RXQ_V3_IN_OWNER_ID_LEN 4 9155 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 9156 #define MC_CMD_INIT_RXQ_V3_IN_PORT_ID_OFST 24 9157 #define MC_CMD_INIT_RXQ_V3_IN_PORT_ID_LEN 4 9158 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 9159 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_OFST 28 9160 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LEN 8 9161 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_OFST 28 9162 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_OFST 32 9163 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_NUM 64 9164 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 9165 #define MC_CMD_INIT_RXQ_V3_IN_SNAPSHOT_LENGTH_OFST 540 9166 #define MC_CMD_INIT_RXQ_V3_IN_SNAPSHOT_LENGTH_LEN 4 9167 /* The number of packet buffers that will be contained within each 9168 * EQUAL_STRIDE_SUPER_BUFFER format bucket supplied by the driver. This field 9169 * is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 9170 */ 9171 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_BUFFERS_PER_BUCKET_OFST 544 9172 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_BUFFERS_PER_BUCKET_LEN 4 9173 /* The length in bytes of the area in each packet buffer that can be written to 9174 * by the adapter. This is used to store the packet prefix and the packet 9175 * payload. This length does not include any end padding added by the driver. 9176 * This field is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 9177 */ 9178 #define MC_CMD_INIT_RXQ_V3_IN_ES_MAX_DMA_LEN_OFST 548 9179 #define MC_CMD_INIT_RXQ_V3_IN_ES_MAX_DMA_LEN_LEN 4 9180 /* The length in bytes of a single packet buffer within a 9181 * EQUAL_STRIDE_SUPER_BUFFER format bucket. This field is ignored unless 9182 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 9183 */ 9184 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_STRIDE_OFST 552 9185 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_STRIDE_LEN 4 9186 /* The maximum time in nanoseconds that the datapath will be backpressured if 9187 * there are no RX descriptors available. If the timeout is reached and there 9188 * are still no descriptors then the packet will be dropped. A timeout of 0 9189 * means the datapath will never be blocked. This field is ignored unless 9190 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 9191 */ 9192 #define MC_CMD_INIT_RXQ_V3_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_OFST 556 9193 #define MC_CMD_INIT_RXQ_V3_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_LEN 4 9194 9195 /* MC_CMD_INIT_RXQ_V4_IN msgrequest: INIT_RXQ request with new field required 9196 * for systems with a QDMA (currently, Riverhead) 9197 */ 9198 #define MC_CMD_INIT_RXQ_V4_IN_LEN 564 9199 /* Size, in entries */ 9200 #define MC_CMD_INIT_RXQ_V4_IN_SIZE_OFST 0 9201 #define MC_CMD_INIT_RXQ_V4_IN_SIZE_LEN 4 9202 /* The EVQ to send events to. This is an index originally specified to 9203 * INIT_EVQ. If DMA_MODE == PACKED_STREAM this must be equal to INSTANCE. 9204 */ 9205 #define MC_CMD_INIT_RXQ_V4_IN_TARGET_EVQ_OFST 4 9206 #define MC_CMD_INIT_RXQ_V4_IN_TARGET_EVQ_LEN 4 9207 /* The value to put in the event data. Check hardware spec. for valid range. 9208 * This field is ignored if DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER or DMA_MODE 9209 * == PACKED_STREAM. 9210 */ 9211 #define MC_CMD_INIT_RXQ_V4_IN_LABEL_OFST 8 9212 #define MC_CMD_INIT_RXQ_V4_IN_LABEL_LEN 4 9213 /* Desired instance. Must be set to a specific instance, which is a function 9214 * local queue index. 9215 */ 9216 #define MC_CMD_INIT_RXQ_V4_IN_INSTANCE_OFST 12 9217 #define MC_CMD_INIT_RXQ_V4_IN_INSTANCE_LEN 4 9218 /* There will be more flags here. */ 9219 #define MC_CMD_INIT_RXQ_V4_IN_FLAGS_OFST 16 9220 #define MC_CMD_INIT_RXQ_V4_IN_FLAGS_LEN 4 9221 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_BUFF_MODE_OFST 16 9222 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_BUFF_MODE_LBN 0 9223 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_BUFF_MODE_WIDTH 1 9224 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_HDR_SPLIT_OFST 16 9225 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_HDR_SPLIT_LBN 1 9226 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_HDR_SPLIT_WIDTH 1 9227 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_TIMESTAMP_OFST 16 9228 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_TIMESTAMP_LBN 2 9229 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_TIMESTAMP_WIDTH 1 9230 #define MC_CMD_INIT_RXQ_V4_IN_CRC_MODE_OFST 16 9231 #define MC_CMD_INIT_RXQ_V4_IN_CRC_MODE_LBN 3 9232 #define MC_CMD_INIT_RXQ_V4_IN_CRC_MODE_WIDTH 4 9233 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_CHAIN_OFST 16 9234 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_CHAIN_LBN 7 9235 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_CHAIN_WIDTH 1 9236 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_PREFIX_OFST 16 9237 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_PREFIX_LBN 8 9238 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_PREFIX_WIDTH 1 9239 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_DISABLE_SCATTER_OFST 16 9240 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_DISABLE_SCATTER_LBN 9 9241 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_DISABLE_SCATTER_WIDTH 1 9242 #define MC_CMD_INIT_RXQ_V4_IN_DMA_MODE_OFST 16 9243 #define MC_CMD_INIT_RXQ_V4_IN_DMA_MODE_LBN 10 9244 #define MC_CMD_INIT_RXQ_V4_IN_DMA_MODE_WIDTH 4 9245 /* enum: One packet per descriptor (for normal networking) */ 9246 #define MC_CMD_INIT_RXQ_V4_IN_SINGLE_PACKET 0x0 9247 /* enum: Pack multiple packets into large descriptors (for SolarCapture) */ 9248 #define MC_CMD_INIT_RXQ_V4_IN_PACKED_STREAM 0x1 9249 /* enum: Pack multiple packets into large descriptors using the format designed 9250 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with 9251 * multiple fixed-size packet buffers within each bucket. For a full 9252 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath 9253 * firmware. 9254 */ 9255 #define MC_CMD_INIT_RXQ_V4_IN_EQUAL_STRIDE_SUPER_BUFFER 0x2 9256 /* enum: Deprecated name for EQUAL_STRIDE_SUPER_BUFFER. */ 9257 #define MC_CMD_INIT_RXQ_V4_IN_EQUAL_STRIDE_PACKED_STREAM 0x2 9258 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SNAPSHOT_MODE_OFST 16 9259 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SNAPSHOT_MODE_LBN 14 9260 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SNAPSHOT_MODE_WIDTH 1 9261 #define MC_CMD_INIT_RXQ_V4_IN_PACKED_STREAM_BUFF_SIZE_OFST 16 9262 #define MC_CMD_INIT_RXQ_V4_IN_PACKED_STREAM_BUFF_SIZE_LBN 15 9263 #define MC_CMD_INIT_RXQ_V4_IN_PACKED_STREAM_BUFF_SIZE_WIDTH 3 9264 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_1M 0x0 /* enum */ 9265 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_512K 0x1 /* enum */ 9266 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_256K 0x2 /* enum */ 9267 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_128K 0x3 /* enum */ 9268 #define MC_CMD_INIT_RXQ_V4_IN_PS_BUFF_64K 0x4 /* enum */ 9269 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_WANT_OUTER_CLASSES_OFST 16 9270 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_WANT_OUTER_CLASSES_LBN 18 9271 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1 9272 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_FORCE_EV_MERGING_OFST 16 9273 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_FORCE_EV_MERGING_LBN 19 9274 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_FORCE_EV_MERGING_WIDTH 1 9275 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_NO_CONT_EV_OFST 16 9276 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_NO_CONT_EV_LBN 20 9277 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_NO_CONT_EV_WIDTH 1 9278 /* Owner ID to use if in buffer mode (zero if physical) */ 9279 #define MC_CMD_INIT_RXQ_V4_IN_OWNER_ID_OFST 20 9280 #define MC_CMD_INIT_RXQ_V4_IN_OWNER_ID_LEN 4 9281 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 9282 #define MC_CMD_INIT_RXQ_V4_IN_PORT_ID_OFST 24 9283 #define MC_CMD_INIT_RXQ_V4_IN_PORT_ID_LEN 4 9284 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 9285 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_OFST 28 9286 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LEN 8 9287 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_OFST 28 9288 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_OFST 32 9289 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_NUM 64 9290 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 9291 #define MC_CMD_INIT_RXQ_V4_IN_SNAPSHOT_LENGTH_OFST 540 9292 #define MC_CMD_INIT_RXQ_V4_IN_SNAPSHOT_LENGTH_LEN 4 9293 /* The number of packet buffers that will be contained within each 9294 * EQUAL_STRIDE_SUPER_BUFFER format bucket supplied by the driver. This field 9295 * is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 9296 */ 9297 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_BUFFERS_PER_BUCKET_OFST 544 9298 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_BUFFERS_PER_BUCKET_LEN 4 9299 /* The length in bytes of the area in each packet buffer that can be written to 9300 * by the adapter. This is used to store the packet prefix and the packet 9301 * payload. This length does not include any end padding added by the driver. 9302 * This field is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 9303 */ 9304 #define MC_CMD_INIT_RXQ_V4_IN_ES_MAX_DMA_LEN_OFST 548 9305 #define MC_CMD_INIT_RXQ_V4_IN_ES_MAX_DMA_LEN_LEN 4 9306 /* The length in bytes of a single packet buffer within a 9307 * EQUAL_STRIDE_SUPER_BUFFER format bucket. This field is ignored unless 9308 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 9309 */ 9310 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_STRIDE_OFST 552 9311 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_STRIDE_LEN 4 9312 /* The maximum time in nanoseconds that the datapath will be backpressured if 9313 * there are no RX descriptors available. If the timeout is reached and there 9314 * are still no descriptors then the packet will be dropped. A timeout of 0 9315 * means the datapath will never be blocked. This field is ignored unless 9316 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 9317 */ 9318 #define MC_CMD_INIT_RXQ_V4_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_OFST 556 9319 #define MC_CMD_INIT_RXQ_V4_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_LEN 4 9320 /* V4 message data */ 9321 #define MC_CMD_INIT_RXQ_V4_IN_V4_DATA_OFST 560 9322 #define MC_CMD_INIT_RXQ_V4_IN_V4_DATA_LEN 4 9323 /* Size in bytes of buffers attached to descriptors posted to this queue. Set 9324 * to zero if using this message on non-QDMA based platforms. Currently in 9325 * Riverhead there is a global limit of eight different buffer sizes across all 9326 * active queues. A 2KB and 4KB buffer is guaranteed to be available, but a 9327 * request for a different buffer size will fail if there are already eight 9328 * other buffer sizes in use. In future Riverhead this limit will go away and 9329 * any size will be accepted. 9330 */ 9331 #define MC_CMD_INIT_RXQ_V4_IN_BUFFER_SIZE_BYTES_OFST 560 9332 #define MC_CMD_INIT_RXQ_V4_IN_BUFFER_SIZE_BYTES_LEN 4 9333 9334 /* MC_CMD_INIT_RXQ_V5_IN msgrequest: INIT_RXQ request with ability to request a 9335 * different RX packet prefix 9336 */ 9337 #define MC_CMD_INIT_RXQ_V5_IN_LEN 568 9338 /* Size, in entries */ 9339 #define MC_CMD_INIT_RXQ_V5_IN_SIZE_OFST 0 9340 #define MC_CMD_INIT_RXQ_V5_IN_SIZE_LEN 4 9341 /* The EVQ to send events to. This is an index originally specified to 9342 * INIT_EVQ. If DMA_MODE == PACKED_STREAM this must be equal to INSTANCE. 9343 */ 9344 #define MC_CMD_INIT_RXQ_V5_IN_TARGET_EVQ_OFST 4 9345 #define MC_CMD_INIT_RXQ_V5_IN_TARGET_EVQ_LEN 4 9346 /* The value to put in the event data. Check hardware spec. for valid range. 9347 * This field is ignored if DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER or DMA_MODE 9348 * == PACKED_STREAM. 9349 */ 9350 #define MC_CMD_INIT_RXQ_V5_IN_LABEL_OFST 8 9351 #define MC_CMD_INIT_RXQ_V5_IN_LABEL_LEN 4 9352 /* Desired instance. Must be set to a specific instance, which is a function 9353 * local queue index. 9354 */ 9355 #define MC_CMD_INIT_RXQ_V5_IN_INSTANCE_OFST 12 9356 #define MC_CMD_INIT_RXQ_V5_IN_INSTANCE_LEN 4 9357 /* There will be more flags here. */ 9358 #define MC_CMD_INIT_RXQ_V5_IN_FLAGS_OFST 16 9359 #define MC_CMD_INIT_RXQ_V5_IN_FLAGS_LEN 4 9360 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_BUFF_MODE_OFST 16 9361 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_BUFF_MODE_LBN 0 9362 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_BUFF_MODE_WIDTH 1 9363 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_HDR_SPLIT_OFST 16 9364 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_HDR_SPLIT_LBN 1 9365 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_HDR_SPLIT_WIDTH 1 9366 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_TIMESTAMP_OFST 16 9367 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_TIMESTAMP_LBN 2 9368 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_TIMESTAMP_WIDTH 1 9369 #define MC_CMD_INIT_RXQ_V5_IN_CRC_MODE_OFST 16 9370 #define MC_CMD_INIT_RXQ_V5_IN_CRC_MODE_LBN 3 9371 #define MC_CMD_INIT_RXQ_V5_IN_CRC_MODE_WIDTH 4 9372 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_CHAIN_OFST 16 9373 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_CHAIN_LBN 7 9374 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_CHAIN_WIDTH 1 9375 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_PREFIX_OFST 16 9376 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_PREFIX_LBN 8 9377 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_PREFIX_WIDTH 1 9378 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_DISABLE_SCATTER_OFST 16 9379 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_DISABLE_SCATTER_LBN 9 9380 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_DISABLE_SCATTER_WIDTH 1 9381 #define MC_CMD_INIT_RXQ_V5_IN_DMA_MODE_OFST 16 9382 #define MC_CMD_INIT_RXQ_V5_IN_DMA_MODE_LBN 10 9383 #define MC_CMD_INIT_RXQ_V5_IN_DMA_MODE_WIDTH 4 9384 /* enum: One packet per descriptor (for normal networking) */ 9385 #define MC_CMD_INIT_RXQ_V5_IN_SINGLE_PACKET 0x0 9386 /* enum: Pack multiple packets into large descriptors (for SolarCapture) */ 9387 #define MC_CMD_INIT_RXQ_V5_IN_PACKED_STREAM 0x1 9388 /* enum: Pack multiple packets into large descriptors using the format designed 9389 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with 9390 * multiple fixed-size packet buffers within each bucket. For a full 9391 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath 9392 * firmware. 9393 */ 9394 #define MC_CMD_INIT_RXQ_V5_IN_EQUAL_STRIDE_SUPER_BUFFER 0x2 9395 /* enum: Deprecated name for EQUAL_STRIDE_SUPER_BUFFER. */ 9396 #define MC_CMD_INIT_RXQ_V5_IN_EQUAL_STRIDE_PACKED_STREAM 0x2 9397 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SNAPSHOT_MODE_OFST 16 9398 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SNAPSHOT_MODE_LBN 14 9399 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SNAPSHOT_MODE_WIDTH 1 9400 #define MC_CMD_INIT_RXQ_V5_IN_PACKED_STREAM_BUFF_SIZE_OFST 16 9401 #define MC_CMD_INIT_RXQ_V5_IN_PACKED_STREAM_BUFF_SIZE_LBN 15 9402 #define MC_CMD_INIT_RXQ_V5_IN_PACKED_STREAM_BUFF_SIZE_WIDTH 3 9403 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_1M 0x0 /* enum */ 9404 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_512K 0x1 /* enum */ 9405 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_256K 0x2 /* enum */ 9406 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_128K 0x3 /* enum */ 9407 #define MC_CMD_INIT_RXQ_V5_IN_PS_BUFF_64K 0x4 /* enum */ 9408 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_WANT_OUTER_CLASSES_OFST 16 9409 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_WANT_OUTER_CLASSES_LBN 18 9410 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1 9411 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_FORCE_EV_MERGING_OFST 16 9412 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_FORCE_EV_MERGING_LBN 19 9413 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_FORCE_EV_MERGING_WIDTH 1 9414 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_NO_CONT_EV_OFST 16 9415 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_NO_CONT_EV_LBN 20 9416 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_NO_CONT_EV_WIDTH 1 9417 /* Owner ID to use if in buffer mode (zero if physical) */ 9418 #define MC_CMD_INIT_RXQ_V5_IN_OWNER_ID_OFST 20 9419 #define MC_CMD_INIT_RXQ_V5_IN_OWNER_ID_LEN 4 9420 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 9421 #define MC_CMD_INIT_RXQ_V5_IN_PORT_ID_OFST 24 9422 #define MC_CMD_INIT_RXQ_V5_IN_PORT_ID_LEN 4 9423 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 9424 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_OFST 28 9425 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LEN 8 9426 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_OFST 28 9427 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_OFST 32 9428 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_NUM 64 9429 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */ 9430 #define MC_CMD_INIT_RXQ_V5_IN_SNAPSHOT_LENGTH_OFST 540 9431 #define MC_CMD_INIT_RXQ_V5_IN_SNAPSHOT_LENGTH_LEN 4 9432 /* The number of packet buffers that will be contained within each 9433 * EQUAL_STRIDE_SUPER_BUFFER format bucket supplied by the driver. This field 9434 * is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 9435 */ 9436 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_BUFFERS_PER_BUCKET_OFST 544 9437 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_BUFFERS_PER_BUCKET_LEN 4 9438 /* The length in bytes of the area in each packet buffer that can be written to 9439 * by the adapter. This is used to store the packet prefix and the packet 9440 * payload. This length does not include any end padding added by the driver. 9441 * This field is ignored unless DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 9442 */ 9443 #define MC_CMD_INIT_RXQ_V5_IN_ES_MAX_DMA_LEN_OFST 548 9444 #define MC_CMD_INIT_RXQ_V5_IN_ES_MAX_DMA_LEN_LEN 4 9445 /* The length in bytes of a single packet buffer within a 9446 * EQUAL_STRIDE_SUPER_BUFFER format bucket. This field is ignored unless 9447 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 9448 */ 9449 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_STRIDE_OFST 552 9450 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_STRIDE_LEN 4 9451 /* The maximum time in nanoseconds that the datapath will be backpressured if 9452 * there are no RX descriptors available. If the timeout is reached and there 9453 * are still no descriptors then the packet will be dropped. A timeout of 0 9454 * means the datapath will never be blocked. This field is ignored unless 9455 * DMA_MODE == EQUAL_STRIDE_SUPER_BUFFER. 9456 */ 9457 #define MC_CMD_INIT_RXQ_V5_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_OFST 556 9458 #define MC_CMD_INIT_RXQ_V5_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_LEN 4 9459 /* V4 message data */ 9460 #define MC_CMD_INIT_RXQ_V5_IN_V4_DATA_OFST 560 9461 #define MC_CMD_INIT_RXQ_V5_IN_V4_DATA_LEN 4 9462 /* Size in bytes of buffers attached to descriptors posted to this queue. Set 9463 * to zero if using this message on non-QDMA based platforms. Currently in 9464 * Riverhead there is a global limit of eight different buffer sizes across all 9465 * active queues. A 2KB and 4KB buffer is guaranteed to be available, but a 9466 * request for a different buffer size will fail if there are already eight 9467 * other buffer sizes in use. In future Riverhead this limit will go away and 9468 * any size will be accepted. 9469 */ 9470 #define MC_CMD_INIT_RXQ_V5_IN_BUFFER_SIZE_BYTES_OFST 560 9471 #define MC_CMD_INIT_RXQ_V5_IN_BUFFER_SIZE_BYTES_LEN 4 9472 /* Prefix id for the RX prefix format to use on packets delivered this queue. 9473 * Zero is always a valid prefix id and means the default prefix format 9474 * documented for the platform. Other prefix ids can be obtained by calling 9475 * MC_CMD_GET_RX_PREFIX_ID with a requested set of prefix fields. 9476 */ 9477 #define MC_CMD_INIT_RXQ_V5_IN_RX_PREFIX_ID_OFST 564 9478 #define MC_CMD_INIT_RXQ_V5_IN_RX_PREFIX_ID_LEN 4 9479 9480 /* MC_CMD_INIT_RXQ_OUT msgresponse */ 9481 #define MC_CMD_INIT_RXQ_OUT_LEN 0 9482 9483 /* MC_CMD_INIT_RXQ_EXT_OUT msgresponse */ 9484 #define MC_CMD_INIT_RXQ_EXT_OUT_LEN 0 9485 9486 /* MC_CMD_INIT_RXQ_V3_OUT msgresponse */ 9487 #define MC_CMD_INIT_RXQ_V3_OUT_LEN 0 9488 9489 /* MC_CMD_INIT_RXQ_V4_OUT msgresponse */ 9490 #define MC_CMD_INIT_RXQ_V4_OUT_LEN 0 9491 9492 /* MC_CMD_INIT_RXQ_V5_OUT msgresponse */ 9493 #define MC_CMD_INIT_RXQ_V5_OUT_LEN 0 9494 9495 9496 /***********************************/ 9497 /* MC_CMD_INIT_TXQ 9498 */ 9499 #define MC_CMD_INIT_TXQ 0x82 9500 #undef MC_CMD_0x82_PRIVILEGE_CTG 9501 9502 #define MC_CMD_0x82_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9503 9504 /* MC_CMD_INIT_TXQ_IN msgrequest: Legacy INIT_TXQ request. Use extended version 9505 * in new code. 9506 */ 9507 #define MC_CMD_INIT_TXQ_IN_LENMIN 36 9508 #define MC_CMD_INIT_TXQ_IN_LENMAX 252 9509 #define MC_CMD_INIT_TXQ_IN_LENMAX_MCDI2 1020 9510 #define MC_CMD_INIT_TXQ_IN_LEN(num) (28+8*(num)) 9511 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_NUM(len) (((len)-28)/8) 9512 /* Size, in entries */ 9513 #define MC_CMD_INIT_TXQ_IN_SIZE_OFST 0 9514 #define MC_CMD_INIT_TXQ_IN_SIZE_LEN 4 9515 /* The EVQ to send events to. This is an index originally specified to 9516 * INIT_EVQ. 9517 */ 9518 #define MC_CMD_INIT_TXQ_IN_TARGET_EVQ_OFST 4 9519 #define MC_CMD_INIT_TXQ_IN_TARGET_EVQ_LEN 4 9520 /* The value to put in the event data. Check hardware spec. for valid range. */ 9521 #define MC_CMD_INIT_TXQ_IN_LABEL_OFST 8 9522 #define MC_CMD_INIT_TXQ_IN_LABEL_LEN 4 9523 /* Desired instance. Must be set to a specific instance, which is a function 9524 * local queue index. 9525 */ 9526 #define MC_CMD_INIT_TXQ_IN_INSTANCE_OFST 12 9527 #define MC_CMD_INIT_TXQ_IN_INSTANCE_LEN 4 9528 /* There will be more flags here. */ 9529 #define MC_CMD_INIT_TXQ_IN_FLAGS_OFST 16 9530 #define MC_CMD_INIT_TXQ_IN_FLAGS_LEN 4 9531 #define MC_CMD_INIT_TXQ_IN_FLAG_BUFF_MODE_OFST 16 9532 #define MC_CMD_INIT_TXQ_IN_FLAG_BUFF_MODE_LBN 0 9533 #define MC_CMD_INIT_TXQ_IN_FLAG_BUFF_MODE_WIDTH 1 9534 #define MC_CMD_INIT_TXQ_IN_FLAG_IP_CSUM_DIS_OFST 16 9535 #define MC_CMD_INIT_TXQ_IN_FLAG_IP_CSUM_DIS_LBN 1 9536 #define MC_CMD_INIT_TXQ_IN_FLAG_IP_CSUM_DIS_WIDTH 1 9537 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_CSUM_DIS_OFST 16 9538 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_CSUM_DIS_LBN 2 9539 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_CSUM_DIS_WIDTH 1 9540 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_UDP_ONLY_OFST 16 9541 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_UDP_ONLY_LBN 3 9542 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_UDP_ONLY_WIDTH 1 9543 #define MC_CMD_INIT_TXQ_IN_CRC_MODE_OFST 16 9544 #define MC_CMD_INIT_TXQ_IN_CRC_MODE_LBN 4 9545 #define MC_CMD_INIT_TXQ_IN_CRC_MODE_WIDTH 4 9546 #define MC_CMD_INIT_TXQ_IN_FLAG_TIMESTAMP_OFST 16 9547 #define MC_CMD_INIT_TXQ_IN_FLAG_TIMESTAMP_LBN 8 9548 #define MC_CMD_INIT_TXQ_IN_FLAG_TIMESTAMP_WIDTH 1 9549 #define MC_CMD_INIT_TXQ_IN_FLAG_PACER_BYPASS_OFST 16 9550 #define MC_CMD_INIT_TXQ_IN_FLAG_PACER_BYPASS_LBN 9 9551 #define MC_CMD_INIT_TXQ_IN_FLAG_PACER_BYPASS_WIDTH 1 9552 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_IP_CSUM_EN_OFST 16 9553 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_IP_CSUM_EN_LBN 10 9554 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_IP_CSUM_EN_WIDTH 1 9555 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_TCP_CSUM_EN_OFST 16 9556 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_TCP_CSUM_EN_LBN 11 9557 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_TCP_CSUM_EN_WIDTH 1 9558 /* Owner ID to use if in buffer mode (zero if physical) */ 9559 #define MC_CMD_INIT_TXQ_IN_OWNER_ID_OFST 20 9560 #define MC_CMD_INIT_TXQ_IN_OWNER_ID_LEN 4 9561 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 9562 #define MC_CMD_INIT_TXQ_IN_PORT_ID_OFST 24 9563 #define MC_CMD_INIT_TXQ_IN_PORT_ID_LEN 4 9564 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 9565 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_OFST 28 9566 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LEN 8 9567 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_OFST 28 9568 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_OFST 32 9569 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_MINNUM 1 9570 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_MAXNUM 28 9571 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_MAXNUM_MCDI2 124 9572 9573 /* MC_CMD_INIT_TXQ_EXT_IN msgrequest: Extended INIT_TXQ with additional mode 9574 * flags 9575 */ 9576 #define MC_CMD_INIT_TXQ_EXT_IN_LEN 544 9577 /* Size, in entries */ 9578 #define MC_CMD_INIT_TXQ_EXT_IN_SIZE_OFST 0 9579 #define MC_CMD_INIT_TXQ_EXT_IN_SIZE_LEN 4 9580 /* The EVQ to send events to. This is an index originally specified to 9581 * INIT_EVQ. 9582 */ 9583 #define MC_CMD_INIT_TXQ_EXT_IN_TARGET_EVQ_OFST 4 9584 #define MC_CMD_INIT_TXQ_EXT_IN_TARGET_EVQ_LEN 4 9585 /* The value to put in the event data. Check hardware spec. for valid range. */ 9586 #define MC_CMD_INIT_TXQ_EXT_IN_LABEL_OFST 8 9587 #define MC_CMD_INIT_TXQ_EXT_IN_LABEL_LEN 4 9588 /* Desired instance. Must be set to a specific instance, which is a function 9589 * local queue index. 9590 */ 9591 #define MC_CMD_INIT_TXQ_EXT_IN_INSTANCE_OFST 12 9592 #define MC_CMD_INIT_TXQ_EXT_IN_INSTANCE_LEN 4 9593 /* There will be more flags here. */ 9594 #define MC_CMD_INIT_TXQ_EXT_IN_FLAGS_OFST 16 9595 #define MC_CMD_INIT_TXQ_EXT_IN_FLAGS_LEN 4 9596 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_BUFF_MODE_OFST 16 9597 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_BUFF_MODE_LBN 0 9598 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_BUFF_MODE_WIDTH 1 9599 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_IP_CSUM_DIS_OFST 16 9600 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_IP_CSUM_DIS_LBN 1 9601 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_IP_CSUM_DIS_WIDTH 1 9602 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_CSUM_DIS_OFST 16 9603 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_CSUM_DIS_LBN 2 9604 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_CSUM_DIS_WIDTH 1 9605 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_UDP_ONLY_OFST 16 9606 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_UDP_ONLY_LBN 3 9607 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_UDP_ONLY_WIDTH 1 9608 #define MC_CMD_INIT_TXQ_EXT_IN_CRC_MODE_OFST 16 9609 #define MC_CMD_INIT_TXQ_EXT_IN_CRC_MODE_LBN 4 9610 #define MC_CMD_INIT_TXQ_EXT_IN_CRC_MODE_WIDTH 4 9611 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TIMESTAMP_OFST 16 9612 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TIMESTAMP_LBN 8 9613 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TIMESTAMP_WIDTH 1 9614 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_PACER_BYPASS_OFST 16 9615 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_PACER_BYPASS_LBN 9 9616 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_PACER_BYPASS_WIDTH 1 9617 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_IP_CSUM_EN_OFST 16 9618 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_IP_CSUM_EN_LBN 10 9619 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_IP_CSUM_EN_WIDTH 1 9620 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_TCP_CSUM_EN_OFST 16 9621 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_TCP_CSUM_EN_LBN 11 9622 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_TCP_CSUM_EN_WIDTH 1 9623 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN_OFST 16 9624 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN_LBN 12 9625 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN_WIDTH 1 9626 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_OFST 16 9627 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_LBN 13 9628 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_WIDTH 1 9629 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_UTHRESH_OFST 16 9630 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_UTHRESH_LBN 14 9631 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_UTHRESH_WIDTH 1 9632 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_M2M_D2C_OFST 16 9633 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_M2M_D2C_LBN 15 9634 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_M2M_D2C_WIDTH 1 9635 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_DESC_PROXY_OFST 16 9636 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_DESC_PROXY_LBN 16 9637 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_DESC_PROXY_WIDTH 1 9638 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_ABS_TARGET_EVQ_OFST 16 9639 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_ABS_TARGET_EVQ_LBN 17 9640 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_ABS_TARGET_EVQ_WIDTH 1 9641 /* Owner ID to use if in buffer mode (zero if physical) */ 9642 #define MC_CMD_INIT_TXQ_EXT_IN_OWNER_ID_OFST 20 9643 #define MC_CMD_INIT_TXQ_EXT_IN_OWNER_ID_LEN 4 9644 /* The port ID associated with the v-adaptor which should contain this DMAQ. */ 9645 #define MC_CMD_INIT_TXQ_EXT_IN_PORT_ID_OFST 24 9646 #define MC_CMD_INIT_TXQ_EXT_IN_PORT_ID_LEN 4 9647 /* 64-bit address of 4k of 4k-aligned host memory buffer */ 9648 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_OFST 28 9649 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LEN 8 9650 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_OFST 28 9651 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_OFST 32 9652 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_MINNUM 1 9653 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_MAXNUM 64 9654 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_MAXNUM_MCDI2 64 9655 /* Flags related to Qbb flow control mode. */ 9656 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_FLAGS_OFST 540 9657 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_FLAGS_LEN 4 9658 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_ENABLE_OFST 540 9659 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_ENABLE_LBN 0 9660 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_ENABLE_WIDTH 1 9661 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_PRIORITY_OFST 540 9662 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_PRIORITY_LBN 1 9663 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_PRIORITY_WIDTH 3 9664 9665 /* MC_CMD_INIT_TXQ_OUT msgresponse */ 9666 #define MC_CMD_INIT_TXQ_OUT_LEN 0 9667 9668 9669 /***********************************/ 9670 /* MC_CMD_FINI_EVQ 9671 * Teardown an EVQ. 9672 * 9673 * All DMAQs or EVQs that point to the EVQ to tear down must be torn down first 9674 * or the operation will fail with EBUSY 9675 */ 9676 #define MC_CMD_FINI_EVQ 0x83 9677 #undef MC_CMD_0x83_PRIVILEGE_CTG 9678 9679 #define MC_CMD_0x83_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9680 9681 /* MC_CMD_FINI_EVQ_IN msgrequest */ 9682 #define MC_CMD_FINI_EVQ_IN_LEN 4 9683 /* Instance of EVQ to destroy. Should be the same instance as that previously 9684 * passed to INIT_EVQ 9685 */ 9686 #define MC_CMD_FINI_EVQ_IN_INSTANCE_OFST 0 9687 #define MC_CMD_FINI_EVQ_IN_INSTANCE_LEN 4 9688 9689 /* MC_CMD_FINI_EVQ_OUT msgresponse */ 9690 #define MC_CMD_FINI_EVQ_OUT_LEN 0 9691 9692 9693 /***********************************/ 9694 /* MC_CMD_FINI_RXQ 9695 * Teardown a RXQ. 9696 */ 9697 #define MC_CMD_FINI_RXQ 0x84 9698 #undef MC_CMD_0x84_PRIVILEGE_CTG 9699 9700 #define MC_CMD_0x84_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9701 9702 /* MC_CMD_FINI_RXQ_IN msgrequest */ 9703 #define MC_CMD_FINI_RXQ_IN_LEN 4 9704 /* Instance of RXQ to destroy */ 9705 #define MC_CMD_FINI_RXQ_IN_INSTANCE_OFST 0 9706 #define MC_CMD_FINI_RXQ_IN_INSTANCE_LEN 4 9707 9708 /* MC_CMD_FINI_RXQ_OUT msgresponse */ 9709 #define MC_CMD_FINI_RXQ_OUT_LEN 0 9710 9711 9712 /***********************************/ 9713 /* MC_CMD_FINI_TXQ 9714 * Teardown a TXQ. 9715 */ 9716 #define MC_CMD_FINI_TXQ 0x85 9717 #undef MC_CMD_0x85_PRIVILEGE_CTG 9718 9719 #define MC_CMD_0x85_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9720 9721 /* MC_CMD_FINI_TXQ_IN msgrequest */ 9722 #define MC_CMD_FINI_TXQ_IN_LEN 4 9723 /* Instance of TXQ to destroy */ 9724 #define MC_CMD_FINI_TXQ_IN_INSTANCE_OFST 0 9725 #define MC_CMD_FINI_TXQ_IN_INSTANCE_LEN 4 9726 9727 /* MC_CMD_FINI_TXQ_OUT msgresponse */ 9728 #define MC_CMD_FINI_TXQ_OUT_LEN 0 9729 9730 9731 /***********************************/ 9732 /* MC_CMD_DRIVER_EVENT 9733 * Generate an event on an EVQ belonging to the function issuing the command. 9734 */ 9735 #define MC_CMD_DRIVER_EVENT 0x86 9736 #undef MC_CMD_0x86_PRIVILEGE_CTG 9737 9738 #define MC_CMD_0x86_PRIVILEGE_CTG SRIOV_CTG_GENERAL 9739 9740 /* MC_CMD_DRIVER_EVENT_IN msgrequest */ 9741 #define MC_CMD_DRIVER_EVENT_IN_LEN 12 9742 /* Handle of target EVQ */ 9743 #define MC_CMD_DRIVER_EVENT_IN_EVQ_OFST 0 9744 #define MC_CMD_DRIVER_EVENT_IN_EVQ_LEN 4 9745 /* Bits 0 - 63 of event */ 9746 #define MC_CMD_DRIVER_EVENT_IN_DATA_OFST 4 9747 #define MC_CMD_DRIVER_EVENT_IN_DATA_LEN 8 9748 #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_OFST 4 9749 #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_OFST 8 9750 9751 /* MC_CMD_DRIVER_EVENT_OUT msgresponse */ 9752 #define MC_CMD_DRIVER_EVENT_OUT_LEN 0 9753 9754 9755 /***********************************/ 9756 /* MC_CMD_PROXY_CMD 9757 * Execute an arbitrary MCDI command on behalf of a different function, subject 9758 * to security restrictions. The command to be proxied follows immediately 9759 * afterward in the host buffer (or on the UART). This command supercedes 9760 * MC_CMD_SET_FUNC, which remains available for Siena but now deprecated. 9761 */ 9762 #define MC_CMD_PROXY_CMD 0x5b 9763 #undef MC_CMD_0x5b_PRIVILEGE_CTG 9764 9765 #define MC_CMD_0x5b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 9766 9767 /* MC_CMD_PROXY_CMD_IN msgrequest */ 9768 #define MC_CMD_PROXY_CMD_IN_LEN 4 9769 /* The handle of the target function. */ 9770 #define MC_CMD_PROXY_CMD_IN_TARGET_OFST 0 9771 #define MC_CMD_PROXY_CMD_IN_TARGET_LEN 4 9772 #define MC_CMD_PROXY_CMD_IN_TARGET_PF_OFST 0 9773 #define MC_CMD_PROXY_CMD_IN_TARGET_PF_LBN 0 9774 #define MC_CMD_PROXY_CMD_IN_TARGET_PF_WIDTH 16 9775 #define MC_CMD_PROXY_CMD_IN_TARGET_VF_OFST 0 9776 #define MC_CMD_PROXY_CMD_IN_TARGET_VF_LBN 16 9777 #define MC_CMD_PROXY_CMD_IN_TARGET_VF_WIDTH 16 9778 #define MC_CMD_PROXY_CMD_IN_VF_NULL 0xffff /* enum */ 9779 9780 /* MC_CMD_PROXY_CMD_OUT msgresponse */ 9781 #define MC_CMD_PROXY_CMD_OUT_LEN 0 9782 9783 /* MC_PROXY_STATUS_BUFFER structuredef: Host memory status buffer used to 9784 * manage proxied requests 9785 */ 9786 #define MC_PROXY_STATUS_BUFFER_LEN 16 9787 /* Handle allocated by the firmware for this proxy transaction */ 9788 #define MC_PROXY_STATUS_BUFFER_HANDLE_OFST 0 9789 #define MC_PROXY_STATUS_BUFFER_HANDLE_LEN 4 9790 /* enum: An invalid handle. */ 9791 #define MC_PROXY_STATUS_BUFFER_HANDLE_INVALID 0x0 9792 #define MC_PROXY_STATUS_BUFFER_HANDLE_LBN 0 9793 #define MC_PROXY_STATUS_BUFFER_HANDLE_WIDTH 32 9794 /* The requesting physical function number */ 9795 #define MC_PROXY_STATUS_BUFFER_PF_OFST 4 9796 #define MC_PROXY_STATUS_BUFFER_PF_LEN 2 9797 #define MC_PROXY_STATUS_BUFFER_PF_LBN 32 9798 #define MC_PROXY_STATUS_BUFFER_PF_WIDTH 16 9799 /* The requesting virtual function number. Set to VF_NULL if the target is a 9800 * PF. 9801 */ 9802 #define MC_PROXY_STATUS_BUFFER_VF_OFST 6 9803 #define MC_PROXY_STATUS_BUFFER_VF_LEN 2 9804 #define MC_PROXY_STATUS_BUFFER_VF_LBN 48 9805 #define MC_PROXY_STATUS_BUFFER_VF_WIDTH 16 9806 /* The target function RID. */ 9807 #define MC_PROXY_STATUS_BUFFER_RID_OFST 8 9808 #define MC_PROXY_STATUS_BUFFER_RID_LEN 2 9809 #define MC_PROXY_STATUS_BUFFER_RID_LBN 64 9810 #define MC_PROXY_STATUS_BUFFER_RID_WIDTH 16 9811 /* The status of the proxy as described in MC_CMD_PROXY_COMPLETE. */ 9812 #define MC_PROXY_STATUS_BUFFER_STATUS_OFST 10 9813 #define MC_PROXY_STATUS_BUFFER_STATUS_LEN 2 9814 #define MC_PROXY_STATUS_BUFFER_STATUS_LBN 80 9815 #define MC_PROXY_STATUS_BUFFER_STATUS_WIDTH 16 9816 /* If a request is authorized rather than carried out by the host, this is the 9817 * elevated privilege mask granted to the requesting function. 9818 */ 9819 #define MC_PROXY_STATUS_BUFFER_GRANTED_PRIVILEGES_OFST 12 9820 #define MC_PROXY_STATUS_BUFFER_GRANTED_PRIVILEGES_LEN 4 9821 #define MC_PROXY_STATUS_BUFFER_GRANTED_PRIVILEGES_LBN 96 9822 #define MC_PROXY_STATUS_BUFFER_GRANTED_PRIVILEGES_WIDTH 32 9823 9824 9825 /***********************************/ 9826 /* MC_CMD_PROXY_CONFIGURE 9827 * Enable/disable authorization of MCDI requests from unprivileged functions by 9828 * a designated admin function 9829 */ 9830 #define MC_CMD_PROXY_CONFIGURE 0x58 9831 #undef MC_CMD_0x58_PRIVILEGE_CTG 9832 9833 #define MC_CMD_0x58_PRIVILEGE_CTG SRIOV_CTG_ADMIN 9834 9835 /* MC_CMD_PROXY_CONFIGURE_IN msgrequest */ 9836 #define MC_CMD_PROXY_CONFIGURE_IN_LEN 108 9837 #define MC_CMD_PROXY_CONFIGURE_IN_FLAGS_OFST 0 9838 #define MC_CMD_PROXY_CONFIGURE_IN_FLAGS_LEN 4 9839 #define MC_CMD_PROXY_CONFIGURE_IN_ENABLE_OFST 0 9840 #define MC_CMD_PROXY_CONFIGURE_IN_ENABLE_LBN 0 9841 #define MC_CMD_PROXY_CONFIGURE_IN_ENABLE_WIDTH 1 9842 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 9843 * of blocks, each of the size REQUEST_BLOCK_SIZE. 9844 */ 9845 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_OFST 4 9846 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LEN 8 9847 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_LO_OFST 4 9848 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BUFF_ADDR_HI_OFST 8 9849 /* Must be a power of 2 */ 9850 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BLOCK_SIZE_OFST 12 9851 #define MC_CMD_PROXY_CONFIGURE_IN_STATUS_BLOCK_SIZE_LEN 4 9852 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 9853 * of blocks, each of the size REPLY_BLOCK_SIZE. 9854 */ 9855 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_OFST 16 9856 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LEN 8 9857 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_LO_OFST 16 9858 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BUFF_ADDR_HI_OFST 20 9859 /* Must be a power of 2 */ 9860 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BLOCK_SIZE_OFST 24 9861 #define MC_CMD_PROXY_CONFIGURE_IN_REQUEST_BLOCK_SIZE_LEN 4 9862 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 9863 * of blocks, each of the size STATUS_BLOCK_SIZE. This buffer is only needed if 9864 * host intends to complete proxied operations by using MC_CMD_PROXY_CMD. 9865 */ 9866 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_OFST 28 9867 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LEN 8 9868 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_LO_OFST 28 9869 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BUFF_ADDR_HI_OFST 32 9870 /* Must be a power of 2, or zero if this buffer is not provided */ 9871 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BLOCK_SIZE_OFST 36 9872 #define MC_CMD_PROXY_CONFIGURE_IN_REPLY_BLOCK_SIZE_LEN 4 9873 /* Applies to all three buffers */ 9874 #define MC_CMD_PROXY_CONFIGURE_IN_NUM_BLOCKS_OFST 40 9875 #define MC_CMD_PROXY_CONFIGURE_IN_NUM_BLOCKS_LEN 4 9876 /* A bit mask defining which MCDI operations may be proxied */ 9877 #define MC_CMD_PROXY_CONFIGURE_IN_ALLOWED_MCDI_MASK_OFST 44 9878 #define MC_CMD_PROXY_CONFIGURE_IN_ALLOWED_MCDI_MASK_LEN 64 9879 9880 /* MC_CMD_PROXY_CONFIGURE_EXT_IN msgrequest */ 9881 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_LEN 112 9882 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_FLAGS_OFST 0 9883 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_FLAGS_LEN 4 9884 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_ENABLE_OFST 0 9885 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_ENABLE_LBN 0 9886 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_ENABLE_WIDTH 1 9887 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 9888 * of blocks, each of the size REQUEST_BLOCK_SIZE. 9889 */ 9890 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_OFST 4 9891 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LEN 8 9892 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_LO_OFST 4 9893 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BUFF_ADDR_HI_OFST 8 9894 /* Must be a power of 2 */ 9895 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BLOCK_SIZE_OFST 12 9896 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_STATUS_BLOCK_SIZE_LEN 4 9897 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 9898 * of blocks, each of the size REPLY_BLOCK_SIZE. 9899 */ 9900 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_OFST 16 9901 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LEN 8 9902 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_LO_OFST 16 9903 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BUFF_ADDR_HI_OFST 20 9904 /* Must be a power of 2 */ 9905 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BLOCK_SIZE_OFST 24 9906 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REQUEST_BLOCK_SIZE_LEN 4 9907 /* Host provides a contiguous memory buffer that contains at least NUM_BLOCKS 9908 * of blocks, each of the size STATUS_BLOCK_SIZE. This buffer is only needed if 9909 * host intends to complete proxied operations by using MC_CMD_PROXY_CMD. 9910 */ 9911 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_OFST 28 9912 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LEN 8 9913 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_LO_OFST 28 9914 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BUFF_ADDR_HI_OFST 32 9915 /* Must be a power of 2, or zero if this buffer is not provided */ 9916 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BLOCK_SIZE_OFST 36 9917 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_REPLY_BLOCK_SIZE_LEN 4 9918 /* Applies to all three buffers */ 9919 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_NUM_BLOCKS_OFST 40 9920 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_NUM_BLOCKS_LEN 4 9921 /* A bit mask defining which MCDI operations may be proxied */ 9922 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_ALLOWED_MCDI_MASK_OFST 44 9923 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_ALLOWED_MCDI_MASK_LEN 64 9924 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_RESERVED_OFST 108 9925 #define MC_CMD_PROXY_CONFIGURE_EXT_IN_RESERVED_LEN 4 9926 9927 /* MC_CMD_PROXY_CONFIGURE_OUT msgresponse */ 9928 #define MC_CMD_PROXY_CONFIGURE_OUT_LEN 0 9929 9930 9931 /***********************************/ 9932 /* MC_CMD_PROXY_COMPLETE 9933 * Tells FW that a requested proxy operation has either been completed (by 9934 * using MC_CMD_PROXY_CMD) or authorized/declined. May only be sent by the 9935 * function that enabled proxying/authorization (by using 9936 * MC_CMD_PROXY_CONFIGURE). 9937 */ 9938 #define MC_CMD_PROXY_COMPLETE 0x5f 9939 #undef MC_CMD_0x5f_PRIVILEGE_CTG 9940 9941 #define MC_CMD_0x5f_PRIVILEGE_CTG SRIOV_CTG_ADMIN 9942 9943 /* MC_CMD_PROXY_COMPLETE_IN msgrequest */ 9944 #define MC_CMD_PROXY_COMPLETE_IN_LEN 12 9945 #define MC_CMD_PROXY_COMPLETE_IN_BLOCK_INDEX_OFST 0 9946 #define MC_CMD_PROXY_COMPLETE_IN_BLOCK_INDEX_LEN 4 9947 #define MC_CMD_PROXY_COMPLETE_IN_STATUS_OFST 4 9948 #define MC_CMD_PROXY_COMPLETE_IN_STATUS_LEN 4 9949 /* enum: The operation has been completed by using MC_CMD_PROXY_CMD, the reply 9950 * is stored in the REPLY_BUFF. 9951 */ 9952 #define MC_CMD_PROXY_COMPLETE_IN_COMPLETE 0x0 9953 /* enum: The operation has been authorized. The originating function may now 9954 * try again. 9955 */ 9956 #define MC_CMD_PROXY_COMPLETE_IN_AUTHORIZED 0x1 9957 /* enum: The operation has been declined. */ 9958 #define MC_CMD_PROXY_COMPLETE_IN_DECLINED 0x2 9959 /* enum: The authorization failed because the relevant application did not 9960 * respond in time. 9961 */ 9962 #define MC_CMD_PROXY_COMPLETE_IN_TIMEDOUT 0x3 9963 #define MC_CMD_PROXY_COMPLETE_IN_HANDLE_OFST 8 9964 #define MC_CMD_PROXY_COMPLETE_IN_HANDLE_LEN 4 9965 9966 /* MC_CMD_PROXY_COMPLETE_OUT msgresponse */ 9967 #define MC_CMD_PROXY_COMPLETE_OUT_LEN 0 9968 9969 9970 /***********************************/ 9971 /* MC_CMD_ALLOC_BUFTBL_CHUNK 9972 * Allocate a set of buffer table entries using the specified owner ID. This 9973 * operation allocates the required buffer table entries (and fails if it 9974 * cannot do so). The buffer table entries will initially be zeroed. 9975 */ 9976 #define MC_CMD_ALLOC_BUFTBL_CHUNK 0x87 9977 #undef MC_CMD_0x87_PRIVILEGE_CTG 9978 9979 #define MC_CMD_0x87_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 9980 9981 /* MC_CMD_ALLOC_BUFTBL_CHUNK_IN msgrequest */ 9982 #define MC_CMD_ALLOC_BUFTBL_CHUNK_IN_LEN 8 9983 /* Owner ID to use */ 9984 #define MC_CMD_ALLOC_BUFTBL_CHUNK_IN_OWNER_OFST 0 9985 #define MC_CMD_ALLOC_BUFTBL_CHUNK_IN_OWNER_LEN 4 9986 /* Size of buffer table pages to use, in bytes (note that only a few values are 9987 * legal on any specific hardware). 9988 */ 9989 #define MC_CMD_ALLOC_BUFTBL_CHUNK_IN_PAGE_SIZE_OFST 4 9990 #define MC_CMD_ALLOC_BUFTBL_CHUNK_IN_PAGE_SIZE_LEN 4 9991 9992 /* MC_CMD_ALLOC_BUFTBL_CHUNK_OUT msgresponse */ 9993 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_LEN 12 9994 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_HANDLE_OFST 0 9995 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_HANDLE_LEN 4 9996 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_NUMENTRIES_OFST 4 9997 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_NUMENTRIES_LEN 4 9998 /* Buffer table IDs for use in DMA descriptors. */ 9999 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_ID_OFST 8 10000 #define MC_CMD_ALLOC_BUFTBL_CHUNK_OUT_ID_LEN 4 10001 10002 10003 /***********************************/ 10004 /* MC_CMD_PROGRAM_BUFTBL_ENTRIES 10005 * Reprogram a set of buffer table entries in the specified chunk. 10006 */ 10007 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES 0x88 10008 #undef MC_CMD_0x88_PRIVILEGE_CTG 10009 10010 #define MC_CMD_0x88_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 10011 10012 /* MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN msgrequest */ 10013 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_LENMIN 20 10014 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_LENMAX 268 10015 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_LENMAX_MCDI2 268 10016 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_LEN(num) (12+8*(num)) 10017 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_NUM(len) (((len)-12)/8) 10018 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_HANDLE_OFST 0 10019 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_HANDLE_LEN 4 10020 /* ID */ 10021 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_FIRSTID_OFST 4 10022 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_FIRSTID_LEN 4 10023 /* Num entries */ 10024 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_NUMENTRIES_OFST 8 10025 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_NUMENTRIES_LEN 4 10026 /* Buffer table entry address */ 10027 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_OFST 12 10028 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LEN 8 10029 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_LO_OFST 12 10030 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_HI_OFST 16 10031 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_MINNUM 1 10032 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_MAXNUM 32 10033 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_MAXNUM_MCDI2 32 10034 10035 /* MC_CMD_PROGRAM_BUFTBL_ENTRIES_OUT msgresponse */ 10036 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_OUT_LEN 0 10037 10038 10039 /***********************************/ 10040 /* MC_CMD_FREE_BUFTBL_CHUNK 10041 */ 10042 #define MC_CMD_FREE_BUFTBL_CHUNK 0x89 10043 #undef MC_CMD_0x89_PRIVILEGE_CTG 10044 10045 #define MC_CMD_0x89_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 10046 10047 /* MC_CMD_FREE_BUFTBL_CHUNK_IN msgrequest */ 10048 #define MC_CMD_FREE_BUFTBL_CHUNK_IN_LEN 4 10049 #define MC_CMD_FREE_BUFTBL_CHUNK_IN_HANDLE_OFST 0 10050 #define MC_CMD_FREE_BUFTBL_CHUNK_IN_HANDLE_LEN 4 10051 10052 /* MC_CMD_FREE_BUFTBL_CHUNK_OUT msgresponse */ 10053 #define MC_CMD_FREE_BUFTBL_CHUNK_OUT_LEN 0 10054 10055 10056 /***********************************/ 10057 /* MC_CMD_FILTER_OP 10058 * Multiplexed MCDI call for filter operations 10059 */ 10060 #define MC_CMD_FILTER_OP 0x8a 10061 #undef MC_CMD_0x8a_PRIVILEGE_CTG 10062 10063 #define MC_CMD_0x8a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 10064 10065 /* MC_CMD_FILTER_OP_IN msgrequest */ 10066 #define MC_CMD_FILTER_OP_IN_LEN 108 10067 /* identifies the type of operation requested */ 10068 #define MC_CMD_FILTER_OP_IN_OP_OFST 0 10069 #define MC_CMD_FILTER_OP_IN_OP_LEN 4 10070 /* enum: single-recipient filter insert */ 10071 #define MC_CMD_FILTER_OP_IN_OP_INSERT 0x0 10072 /* enum: single-recipient filter remove */ 10073 #define MC_CMD_FILTER_OP_IN_OP_REMOVE 0x1 10074 /* enum: multi-recipient filter subscribe */ 10075 #define MC_CMD_FILTER_OP_IN_OP_SUBSCRIBE 0x2 10076 /* enum: multi-recipient filter unsubscribe */ 10077 #define MC_CMD_FILTER_OP_IN_OP_UNSUBSCRIBE 0x3 10078 /* enum: replace one recipient with another (warning - the filter handle may 10079 * change) 10080 */ 10081 #define MC_CMD_FILTER_OP_IN_OP_REPLACE 0x4 10082 /* filter handle (for remove / unsubscribe operations) */ 10083 #define MC_CMD_FILTER_OP_IN_HANDLE_OFST 4 10084 #define MC_CMD_FILTER_OP_IN_HANDLE_LEN 8 10085 #define MC_CMD_FILTER_OP_IN_HANDLE_LO_OFST 4 10086 #define MC_CMD_FILTER_OP_IN_HANDLE_HI_OFST 8 10087 /* The port ID associated with the v-adaptor which should contain this filter. 10088 */ 10089 #define MC_CMD_FILTER_OP_IN_PORT_ID_OFST 12 10090 #define MC_CMD_FILTER_OP_IN_PORT_ID_LEN 4 10091 /* fields to include in match criteria */ 10092 #define MC_CMD_FILTER_OP_IN_MATCH_FIELDS_OFST 16 10093 #define MC_CMD_FILTER_OP_IN_MATCH_FIELDS_LEN 4 10094 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_IP_OFST 16 10095 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_IP_LBN 0 10096 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_IP_WIDTH 1 10097 #define MC_CMD_FILTER_OP_IN_MATCH_DST_IP_OFST 16 10098 #define MC_CMD_FILTER_OP_IN_MATCH_DST_IP_LBN 1 10099 #define MC_CMD_FILTER_OP_IN_MATCH_DST_IP_WIDTH 1 10100 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_MAC_OFST 16 10101 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_MAC_LBN 2 10102 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_MAC_WIDTH 1 10103 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_PORT_OFST 16 10104 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_PORT_LBN 3 10105 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_PORT_WIDTH 1 10106 #define MC_CMD_FILTER_OP_IN_MATCH_DST_MAC_OFST 16 10107 #define MC_CMD_FILTER_OP_IN_MATCH_DST_MAC_LBN 4 10108 #define MC_CMD_FILTER_OP_IN_MATCH_DST_MAC_WIDTH 1 10109 #define MC_CMD_FILTER_OP_IN_MATCH_DST_PORT_OFST 16 10110 #define MC_CMD_FILTER_OP_IN_MATCH_DST_PORT_LBN 5 10111 #define MC_CMD_FILTER_OP_IN_MATCH_DST_PORT_WIDTH 1 10112 #define MC_CMD_FILTER_OP_IN_MATCH_ETHER_TYPE_OFST 16 10113 #define MC_CMD_FILTER_OP_IN_MATCH_ETHER_TYPE_LBN 6 10114 #define MC_CMD_FILTER_OP_IN_MATCH_ETHER_TYPE_WIDTH 1 10115 #define MC_CMD_FILTER_OP_IN_MATCH_INNER_VLAN_OFST 16 10116 #define MC_CMD_FILTER_OP_IN_MATCH_INNER_VLAN_LBN 7 10117 #define MC_CMD_FILTER_OP_IN_MATCH_INNER_VLAN_WIDTH 1 10118 #define MC_CMD_FILTER_OP_IN_MATCH_OUTER_VLAN_OFST 16 10119 #define MC_CMD_FILTER_OP_IN_MATCH_OUTER_VLAN_LBN 8 10120 #define MC_CMD_FILTER_OP_IN_MATCH_OUTER_VLAN_WIDTH 1 10121 #define MC_CMD_FILTER_OP_IN_MATCH_IP_PROTO_OFST 16 10122 #define MC_CMD_FILTER_OP_IN_MATCH_IP_PROTO_LBN 9 10123 #define MC_CMD_FILTER_OP_IN_MATCH_IP_PROTO_WIDTH 1 10124 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF0_OFST 16 10125 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF0_LBN 10 10126 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF0_WIDTH 1 10127 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF1_OFST 16 10128 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF1_LBN 11 10129 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF1_WIDTH 1 10130 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_OFST 16 10131 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_LBN 30 10132 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1 10133 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST_OFST 16 10134 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST_LBN 31 10135 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST_WIDTH 1 10136 /* receive destination */ 10137 #define MC_CMD_FILTER_OP_IN_RX_DEST_OFST 20 10138 #define MC_CMD_FILTER_OP_IN_RX_DEST_LEN 4 10139 /* enum: drop packets */ 10140 #define MC_CMD_FILTER_OP_IN_RX_DEST_DROP 0x0 10141 /* enum: receive to host */ 10142 #define MC_CMD_FILTER_OP_IN_RX_DEST_HOST 0x1 10143 /* enum: receive to MC */ 10144 #define MC_CMD_FILTER_OP_IN_RX_DEST_MC 0x2 10145 /* enum: loop back to TXDP 0 */ 10146 #define MC_CMD_FILTER_OP_IN_RX_DEST_TX0 0x3 10147 /* enum: loop back to TXDP 1 */ 10148 #define MC_CMD_FILTER_OP_IN_RX_DEST_TX1 0x4 10149 /* receive queue handle (for multiple queue modes, this is the base queue) */ 10150 #define MC_CMD_FILTER_OP_IN_RX_QUEUE_OFST 24 10151 #define MC_CMD_FILTER_OP_IN_RX_QUEUE_LEN 4 10152 /* receive mode */ 10153 #define MC_CMD_FILTER_OP_IN_RX_MODE_OFST 28 10154 #define MC_CMD_FILTER_OP_IN_RX_MODE_LEN 4 10155 /* enum: receive to just the specified queue */ 10156 #define MC_CMD_FILTER_OP_IN_RX_MODE_SIMPLE 0x0 10157 /* enum: receive to multiple queues using RSS context */ 10158 #define MC_CMD_FILTER_OP_IN_RX_MODE_RSS 0x1 10159 /* enum: receive to multiple queues using .1p mapping */ 10160 #define MC_CMD_FILTER_OP_IN_RX_MODE_DOT1P_MAPPING 0x2 10161 /* enum: install a filter entry that will never match; for test purposes only 10162 */ 10163 #define MC_CMD_FILTER_OP_IN_RX_MODE_TEST_NEVER_MATCH 0x80000000 10164 /* RSS context (for RX_MODE_RSS) or .1p mapping handle (for 10165 * RX_MODE_DOT1P_MAPPING), as returned by MC_CMD_RSS_CONTEXT_ALLOC or 10166 * MC_CMD_DOT1P_MAPPING_ALLOC. 10167 */ 10168 #define MC_CMD_FILTER_OP_IN_RX_CONTEXT_OFST 32 10169 #define MC_CMD_FILTER_OP_IN_RX_CONTEXT_LEN 4 10170 /* transmit domain (reserved; set to 0) */ 10171 #define MC_CMD_FILTER_OP_IN_TX_DOMAIN_OFST 36 10172 #define MC_CMD_FILTER_OP_IN_TX_DOMAIN_LEN 4 10173 /* transmit destination (either set the MAC and/or PM bits for explicit 10174 * control, or set this field to TX_DEST_DEFAULT for sensible default 10175 * behaviour) 10176 */ 10177 #define MC_CMD_FILTER_OP_IN_TX_DEST_OFST 40 10178 #define MC_CMD_FILTER_OP_IN_TX_DEST_LEN 4 10179 /* enum: request default behaviour (based on filter type) */ 10180 #define MC_CMD_FILTER_OP_IN_TX_DEST_DEFAULT 0xffffffff 10181 #define MC_CMD_FILTER_OP_IN_TX_DEST_MAC_OFST 40 10182 #define MC_CMD_FILTER_OP_IN_TX_DEST_MAC_LBN 0 10183 #define MC_CMD_FILTER_OP_IN_TX_DEST_MAC_WIDTH 1 10184 #define MC_CMD_FILTER_OP_IN_TX_DEST_PM_OFST 40 10185 #define MC_CMD_FILTER_OP_IN_TX_DEST_PM_LBN 1 10186 #define MC_CMD_FILTER_OP_IN_TX_DEST_PM_WIDTH 1 10187 /* source MAC address to match (as bytes in network order) */ 10188 #define MC_CMD_FILTER_OP_IN_SRC_MAC_OFST 44 10189 #define MC_CMD_FILTER_OP_IN_SRC_MAC_LEN 6 10190 /* source port to match (as bytes in network order) */ 10191 #define MC_CMD_FILTER_OP_IN_SRC_PORT_OFST 50 10192 #define MC_CMD_FILTER_OP_IN_SRC_PORT_LEN 2 10193 /* destination MAC address to match (as bytes in network order) */ 10194 #define MC_CMD_FILTER_OP_IN_DST_MAC_OFST 52 10195 #define MC_CMD_FILTER_OP_IN_DST_MAC_LEN 6 10196 /* destination port to match (as bytes in network order) */ 10197 #define MC_CMD_FILTER_OP_IN_DST_PORT_OFST 58 10198 #define MC_CMD_FILTER_OP_IN_DST_PORT_LEN 2 10199 /* Ethernet type to match (as bytes in network order) */ 10200 #define MC_CMD_FILTER_OP_IN_ETHER_TYPE_OFST 60 10201 #define MC_CMD_FILTER_OP_IN_ETHER_TYPE_LEN 2 10202 /* Inner VLAN tag to match (as bytes in network order) */ 10203 #define MC_CMD_FILTER_OP_IN_INNER_VLAN_OFST 62 10204 #define MC_CMD_FILTER_OP_IN_INNER_VLAN_LEN 2 10205 /* Outer VLAN tag to match (as bytes in network order) */ 10206 #define MC_CMD_FILTER_OP_IN_OUTER_VLAN_OFST 64 10207 #define MC_CMD_FILTER_OP_IN_OUTER_VLAN_LEN 2 10208 /* IP protocol to match (in low byte; set high byte to 0) */ 10209 #define MC_CMD_FILTER_OP_IN_IP_PROTO_OFST 66 10210 #define MC_CMD_FILTER_OP_IN_IP_PROTO_LEN 2 10211 /* Firmware defined register 0 to match (reserved; set to 0) */ 10212 #define MC_CMD_FILTER_OP_IN_FWDEF0_OFST 68 10213 #define MC_CMD_FILTER_OP_IN_FWDEF0_LEN 4 10214 /* Firmware defined register 1 to match (reserved; set to 0) */ 10215 #define MC_CMD_FILTER_OP_IN_FWDEF1_OFST 72 10216 #define MC_CMD_FILTER_OP_IN_FWDEF1_LEN 4 10217 /* source IP address to match (as bytes in network order; set last 12 bytes to 10218 * 0 for IPv4 address) 10219 */ 10220 #define MC_CMD_FILTER_OP_IN_SRC_IP_OFST 76 10221 #define MC_CMD_FILTER_OP_IN_SRC_IP_LEN 16 10222 /* destination IP address to match (as bytes in network order; set last 12 10223 * bytes to 0 for IPv4 address) 10224 */ 10225 #define MC_CMD_FILTER_OP_IN_DST_IP_OFST 92 10226 #define MC_CMD_FILTER_OP_IN_DST_IP_LEN 16 10227 10228 /* MC_CMD_FILTER_OP_EXT_IN msgrequest: Extension to MC_CMD_FILTER_OP_IN to 10229 * include handling of VXLAN/NVGRE encapsulated frame filtering (which is 10230 * supported on Medford only). 10231 */ 10232 #define MC_CMD_FILTER_OP_EXT_IN_LEN 172 10233 /* identifies the type of operation requested */ 10234 #define MC_CMD_FILTER_OP_EXT_IN_OP_OFST 0 10235 #define MC_CMD_FILTER_OP_EXT_IN_OP_LEN 4 10236 /* Enum values, see field(s): */ 10237 /* MC_CMD_FILTER_OP_IN/OP */ 10238 /* filter handle (for remove / unsubscribe operations) */ 10239 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_OFST 4 10240 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LEN 8 10241 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_OFST 4 10242 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_OFST 8 10243 /* The port ID associated with the v-adaptor which should contain this filter. 10244 */ 10245 #define MC_CMD_FILTER_OP_EXT_IN_PORT_ID_OFST 12 10246 #define MC_CMD_FILTER_OP_EXT_IN_PORT_ID_LEN 4 10247 /* fields to include in match criteria */ 10248 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FIELDS_OFST 16 10249 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FIELDS_LEN 4 10250 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_IP_OFST 16 10251 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_IP_LBN 0 10252 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_IP_WIDTH 1 10253 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_IP_OFST 16 10254 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_IP_LBN 1 10255 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_IP_WIDTH 1 10256 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_MAC_OFST 16 10257 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_MAC_LBN 2 10258 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_MAC_WIDTH 1 10259 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_PORT_OFST 16 10260 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_PORT_LBN 3 10261 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_PORT_WIDTH 1 10262 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_MAC_OFST 16 10263 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_MAC_LBN 4 10264 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_MAC_WIDTH 1 10265 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_PORT_OFST 16 10266 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_PORT_LBN 5 10267 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_PORT_WIDTH 1 10268 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_ETHER_TYPE_OFST 16 10269 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_ETHER_TYPE_LBN 6 10270 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_ETHER_TYPE_WIDTH 1 10271 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_INNER_VLAN_OFST 16 10272 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_INNER_VLAN_LBN 7 10273 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_INNER_VLAN_WIDTH 1 10274 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_OUTER_VLAN_OFST 16 10275 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_OUTER_VLAN_LBN 8 10276 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_OUTER_VLAN_WIDTH 1 10277 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IP_PROTO_OFST 16 10278 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IP_PROTO_LBN 9 10279 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IP_PROTO_WIDTH 1 10280 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FWDEF0_OFST 16 10281 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FWDEF0_LBN 10 10282 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FWDEF0_WIDTH 1 10283 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_VNI_OR_VSID_OFST 16 10284 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_VNI_OR_VSID_LBN 11 10285 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_VNI_OR_VSID_WIDTH 1 10286 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_IP_OFST 16 10287 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_IP_LBN 12 10288 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_IP_WIDTH 1 10289 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_IP_OFST 16 10290 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_IP_LBN 13 10291 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_IP_WIDTH 1 10292 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_MAC_OFST 16 10293 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_MAC_LBN 14 10294 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_MAC_WIDTH 1 10295 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_PORT_OFST 16 10296 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_PORT_LBN 15 10297 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_PORT_WIDTH 1 10298 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_MAC_OFST 16 10299 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_MAC_LBN 16 10300 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_MAC_WIDTH 1 10301 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_PORT_OFST 16 10302 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_PORT_LBN 17 10303 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_PORT_WIDTH 1 10304 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_ETHER_TYPE_OFST 16 10305 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_ETHER_TYPE_LBN 18 10306 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_ETHER_TYPE_WIDTH 1 10307 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_INNER_VLAN_OFST 16 10308 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_INNER_VLAN_LBN 19 10309 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_INNER_VLAN_WIDTH 1 10310 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_OUTER_VLAN_OFST 16 10311 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_OUTER_VLAN_LBN 20 10312 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_OUTER_VLAN_WIDTH 1 10313 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_IP_PROTO_OFST 16 10314 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_IP_PROTO_LBN 21 10315 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_IP_PROTO_WIDTH 1 10316 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF0_OFST 16 10317 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF0_LBN 22 10318 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF0_WIDTH 1 10319 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF1_OFST 16 10320 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF1_LBN 23 10321 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF1_WIDTH 1 10322 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_OFST 16 10323 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_LBN 24 10324 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_WIDTH 1 10325 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_OFST 16 10326 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_LBN 25 10327 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_WIDTH 1 10328 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_MCAST_DST_OFST 16 10329 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_MCAST_DST_LBN 30 10330 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1 10331 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_UCAST_DST_OFST 16 10332 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_UCAST_DST_LBN 31 10333 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_UCAST_DST_WIDTH 1 10334 /* receive destination */ 10335 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_OFST 20 10336 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_LEN 4 10337 /* enum: drop packets */ 10338 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_DROP 0x0 10339 /* enum: receive to host */ 10340 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_HOST 0x1 10341 /* enum: receive to MC */ 10342 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_MC 0x2 10343 /* enum: loop back to TXDP 0 */ 10344 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_TX0 0x3 10345 /* enum: loop back to TXDP 1 */ 10346 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_TX1 0x4 10347 /* receive queue handle (for multiple queue modes, this is the base queue) */ 10348 #define MC_CMD_FILTER_OP_EXT_IN_RX_QUEUE_OFST 24 10349 #define MC_CMD_FILTER_OP_EXT_IN_RX_QUEUE_LEN 4 10350 /* receive mode */ 10351 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_OFST 28 10352 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_LEN 4 10353 /* enum: receive to just the specified queue */ 10354 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_SIMPLE 0x0 10355 /* enum: receive to multiple queues using RSS context */ 10356 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_RSS 0x1 10357 /* enum: receive to multiple queues using .1p mapping */ 10358 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_DOT1P_MAPPING 0x2 10359 /* enum: install a filter entry that will never match; for test purposes only 10360 */ 10361 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_TEST_NEVER_MATCH 0x80000000 10362 /* RSS context (for RX_MODE_RSS) or .1p mapping handle (for 10363 * RX_MODE_DOT1P_MAPPING), as returned by MC_CMD_RSS_CONTEXT_ALLOC or 10364 * MC_CMD_DOT1P_MAPPING_ALLOC. 10365 */ 10366 #define MC_CMD_FILTER_OP_EXT_IN_RX_CONTEXT_OFST 32 10367 #define MC_CMD_FILTER_OP_EXT_IN_RX_CONTEXT_LEN 4 10368 /* transmit domain (reserved; set to 0) */ 10369 #define MC_CMD_FILTER_OP_EXT_IN_TX_DOMAIN_OFST 36 10370 #define MC_CMD_FILTER_OP_EXT_IN_TX_DOMAIN_LEN 4 10371 /* transmit destination (either set the MAC and/or PM bits for explicit 10372 * control, or set this field to TX_DEST_DEFAULT for sensible default 10373 * behaviour) 10374 */ 10375 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_OFST 40 10376 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_LEN 4 10377 /* enum: request default behaviour (based on filter type) */ 10378 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_DEFAULT 0xffffffff 10379 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_MAC_OFST 40 10380 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_MAC_LBN 0 10381 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_MAC_WIDTH 1 10382 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_PM_OFST 40 10383 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_PM_LBN 1 10384 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_PM_WIDTH 1 10385 /* source MAC address to match (as bytes in network order) */ 10386 #define MC_CMD_FILTER_OP_EXT_IN_SRC_MAC_OFST 44 10387 #define MC_CMD_FILTER_OP_EXT_IN_SRC_MAC_LEN 6 10388 /* source port to match (as bytes in network order) */ 10389 #define MC_CMD_FILTER_OP_EXT_IN_SRC_PORT_OFST 50 10390 #define MC_CMD_FILTER_OP_EXT_IN_SRC_PORT_LEN 2 10391 /* destination MAC address to match (as bytes in network order) */ 10392 #define MC_CMD_FILTER_OP_EXT_IN_DST_MAC_OFST 52 10393 #define MC_CMD_FILTER_OP_EXT_IN_DST_MAC_LEN 6 10394 /* destination port to match (as bytes in network order) */ 10395 #define MC_CMD_FILTER_OP_EXT_IN_DST_PORT_OFST 58 10396 #define MC_CMD_FILTER_OP_EXT_IN_DST_PORT_LEN 2 10397 /* Ethernet type to match (as bytes in network order) */ 10398 #define MC_CMD_FILTER_OP_EXT_IN_ETHER_TYPE_OFST 60 10399 #define MC_CMD_FILTER_OP_EXT_IN_ETHER_TYPE_LEN 2 10400 /* Inner VLAN tag to match (as bytes in network order) */ 10401 #define MC_CMD_FILTER_OP_EXT_IN_INNER_VLAN_OFST 62 10402 #define MC_CMD_FILTER_OP_EXT_IN_INNER_VLAN_LEN 2 10403 /* Outer VLAN tag to match (as bytes in network order) */ 10404 #define MC_CMD_FILTER_OP_EXT_IN_OUTER_VLAN_OFST 64 10405 #define MC_CMD_FILTER_OP_EXT_IN_OUTER_VLAN_LEN 2 10406 /* IP protocol to match (in low byte; set high byte to 0) */ 10407 #define MC_CMD_FILTER_OP_EXT_IN_IP_PROTO_OFST 66 10408 #define MC_CMD_FILTER_OP_EXT_IN_IP_PROTO_LEN 2 10409 /* Firmware defined register 0 to match (reserved; set to 0) */ 10410 #define MC_CMD_FILTER_OP_EXT_IN_FWDEF0_OFST 68 10411 #define MC_CMD_FILTER_OP_EXT_IN_FWDEF0_LEN 4 10412 /* VNI (for VXLAN/Geneve, when IP protocol is UDP) or VSID (for NVGRE, when IP 10413 * protocol is GRE) to match (as bytes in network order; set last byte to 0 for 10414 * VXLAN/NVGRE, or 1 for Geneve) 10415 */ 10416 #define MC_CMD_FILTER_OP_EXT_IN_VNI_OR_VSID_OFST 72 10417 #define MC_CMD_FILTER_OP_EXT_IN_VNI_OR_VSID_LEN 4 10418 #define MC_CMD_FILTER_OP_EXT_IN_VNI_VALUE_OFST 72 10419 #define MC_CMD_FILTER_OP_EXT_IN_VNI_VALUE_LBN 0 10420 #define MC_CMD_FILTER_OP_EXT_IN_VNI_VALUE_WIDTH 24 10421 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_OFST 72 10422 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_LBN 24 10423 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_WIDTH 8 10424 /* enum: Match VXLAN traffic with this VNI */ 10425 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_VXLAN 0x0 10426 /* enum: Match Geneve traffic with this VNI */ 10427 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_GENEVE 0x1 10428 /* enum: Reserved for experimental development use */ 10429 #define MC_CMD_FILTER_OP_EXT_IN_VNI_TYPE_EXPERIMENTAL 0xfe 10430 #define MC_CMD_FILTER_OP_EXT_IN_VSID_VALUE_OFST 72 10431 #define MC_CMD_FILTER_OP_EXT_IN_VSID_VALUE_LBN 0 10432 #define MC_CMD_FILTER_OP_EXT_IN_VSID_VALUE_WIDTH 24 10433 #define MC_CMD_FILTER_OP_EXT_IN_VSID_TYPE_OFST 72 10434 #define MC_CMD_FILTER_OP_EXT_IN_VSID_TYPE_LBN 24 10435 #define MC_CMD_FILTER_OP_EXT_IN_VSID_TYPE_WIDTH 8 10436 /* enum: Match NVGRE traffic with this VSID */ 10437 #define MC_CMD_FILTER_OP_EXT_IN_VSID_TYPE_NVGRE 0x0 10438 /* source IP address to match (as bytes in network order; set last 12 bytes to 10439 * 0 for IPv4 address) 10440 */ 10441 #define MC_CMD_FILTER_OP_EXT_IN_SRC_IP_OFST 76 10442 #define MC_CMD_FILTER_OP_EXT_IN_SRC_IP_LEN 16 10443 /* destination IP address to match (as bytes in network order; set last 12 10444 * bytes to 0 for IPv4 address) 10445 */ 10446 #define MC_CMD_FILTER_OP_EXT_IN_DST_IP_OFST 92 10447 #define MC_CMD_FILTER_OP_EXT_IN_DST_IP_LEN 16 10448 /* VXLAN/NVGRE inner frame source MAC address to match (as bytes in network 10449 * order) 10450 */ 10451 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_MAC_OFST 108 10452 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_MAC_LEN 6 10453 /* VXLAN/NVGRE inner frame source port to match (as bytes in network order) */ 10454 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_PORT_OFST 114 10455 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_PORT_LEN 2 10456 /* VXLAN/NVGRE inner frame destination MAC address to match (as bytes in 10457 * network order) 10458 */ 10459 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_MAC_OFST 116 10460 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_MAC_LEN 6 10461 /* VXLAN/NVGRE inner frame destination port to match (as bytes in network 10462 * order) 10463 */ 10464 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_PORT_OFST 122 10465 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_PORT_LEN 2 10466 /* VXLAN/NVGRE inner frame Ethernet type to match (as bytes in network order) 10467 */ 10468 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_ETHER_TYPE_OFST 124 10469 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_ETHER_TYPE_LEN 2 10470 /* VXLAN/NVGRE inner frame Inner VLAN tag to match (as bytes in network order) 10471 */ 10472 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_INNER_VLAN_OFST 126 10473 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_INNER_VLAN_LEN 2 10474 /* VXLAN/NVGRE inner frame Outer VLAN tag to match (as bytes in network order) 10475 */ 10476 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_OUTER_VLAN_OFST 128 10477 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_OUTER_VLAN_LEN 2 10478 /* VXLAN/NVGRE inner frame IP protocol to match (in low byte; set high byte to 10479 * 0) 10480 */ 10481 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_IP_PROTO_OFST 130 10482 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_IP_PROTO_LEN 2 10483 /* VXLAN/NVGRE inner frame Firmware defined register 0 to match (reserved; set 10484 * to 0) 10485 */ 10486 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF0_OFST 132 10487 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF0_LEN 4 10488 /* VXLAN/NVGRE inner frame Firmware defined register 1 to match (reserved; set 10489 * to 0) 10490 */ 10491 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF1_OFST 136 10492 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF1_LEN 4 10493 /* VXLAN/NVGRE inner frame source IP address to match (as bytes in network 10494 * order; set last 12 bytes to 0 for IPv4 address) 10495 */ 10496 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_IP_OFST 140 10497 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_SRC_IP_LEN 16 10498 /* VXLAN/NVGRE inner frame destination IP address to match (as bytes in network 10499 * order; set last 12 bytes to 0 for IPv4 address) 10500 */ 10501 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_IP_OFST 156 10502 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_DST_IP_LEN 16 10503 10504 /* MC_CMD_FILTER_OP_V3_IN msgrequest: FILTER_OP extension to support additional 10505 * filter actions for EF100. Some of these actions are also supported on EF10, 10506 * for Intel's DPDK (Data Plane Development Kit, dpdk.org) via its rte_flow 10507 * API. In the latter case, this extension is only useful with the sfc_efx 10508 * driver included as part of DPDK, used in conjunction with the dpdk datapath 10509 * firmware variant. 10510 */ 10511 #define MC_CMD_FILTER_OP_V3_IN_LEN 180 10512 /* identifies the type of operation requested */ 10513 #define MC_CMD_FILTER_OP_V3_IN_OP_OFST 0 10514 #define MC_CMD_FILTER_OP_V3_IN_OP_LEN 4 10515 /* Enum values, see field(s): */ 10516 /* MC_CMD_FILTER_OP_IN/OP */ 10517 /* filter handle (for remove / unsubscribe operations) */ 10518 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_OFST 4 10519 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LEN 8 10520 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_OFST 4 10521 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_OFST 8 10522 /* The port ID associated with the v-adaptor which should contain this filter. 10523 */ 10524 #define MC_CMD_FILTER_OP_V3_IN_PORT_ID_OFST 12 10525 #define MC_CMD_FILTER_OP_V3_IN_PORT_ID_LEN 4 10526 /* fields to include in match criteria */ 10527 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FIELDS_OFST 16 10528 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FIELDS_LEN 4 10529 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_IP_OFST 16 10530 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_IP_LBN 0 10531 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_IP_WIDTH 1 10532 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_IP_OFST 16 10533 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_IP_LBN 1 10534 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_IP_WIDTH 1 10535 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_MAC_OFST 16 10536 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_MAC_LBN 2 10537 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_MAC_WIDTH 1 10538 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_PORT_OFST 16 10539 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_PORT_LBN 3 10540 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_PORT_WIDTH 1 10541 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_MAC_OFST 16 10542 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_MAC_LBN 4 10543 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_MAC_WIDTH 1 10544 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_PORT_OFST 16 10545 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_PORT_LBN 5 10546 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_PORT_WIDTH 1 10547 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ETHER_TYPE_OFST 16 10548 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ETHER_TYPE_LBN 6 10549 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ETHER_TYPE_WIDTH 1 10550 #define MC_CMD_FILTER_OP_V3_IN_MATCH_INNER_VLAN_OFST 16 10551 #define MC_CMD_FILTER_OP_V3_IN_MATCH_INNER_VLAN_LBN 7 10552 #define MC_CMD_FILTER_OP_V3_IN_MATCH_INNER_VLAN_WIDTH 1 10553 #define MC_CMD_FILTER_OP_V3_IN_MATCH_OUTER_VLAN_OFST 16 10554 #define MC_CMD_FILTER_OP_V3_IN_MATCH_OUTER_VLAN_LBN 8 10555 #define MC_CMD_FILTER_OP_V3_IN_MATCH_OUTER_VLAN_WIDTH 1 10556 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IP_PROTO_OFST 16 10557 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IP_PROTO_LBN 9 10558 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IP_PROTO_WIDTH 1 10559 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FWDEF0_OFST 16 10560 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FWDEF0_LBN 10 10561 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FWDEF0_WIDTH 1 10562 #define MC_CMD_FILTER_OP_V3_IN_MATCH_VNI_OR_VSID_OFST 16 10563 #define MC_CMD_FILTER_OP_V3_IN_MATCH_VNI_OR_VSID_LBN 11 10564 #define MC_CMD_FILTER_OP_V3_IN_MATCH_VNI_OR_VSID_WIDTH 1 10565 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_IP_OFST 16 10566 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_IP_LBN 12 10567 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_IP_WIDTH 1 10568 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_IP_OFST 16 10569 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_IP_LBN 13 10570 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_IP_WIDTH 1 10571 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_MAC_OFST 16 10572 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_MAC_LBN 14 10573 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_MAC_WIDTH 1 10574 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_PORT_OFST 16 10575 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_PORT_LBN 15 10576 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_PORT_WIDTH 1 10577 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_MAC_OFST 16 10578 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_MAC_LBN 16 10579 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_MAC_WIDTH 1 10580 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_PORT_OFST 16 10581 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_PORT_LBN 17 10582 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_PORT_WIDTH 1 10583 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_ETHER_TYPE_OFST 16 10584 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_ETHER_TYPE_LBN 18 10585 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_ETHER_TYPE_WIDTH 1 10586 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_INNER_VLAN_OFST 16 10587 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_INNER_VLAN_LBN 19 10588 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_INNER_VLAN_WIDTH 1 10589 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_OUTER_VLAN_OFST 16 10590 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_OUTER_VLAN_LBN 20 10591 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_OUTER_VLAN_WIDTH 1 10592 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_IP_PROTO_OFST 16 10593 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_IP_PROTO_LBN 21 10594 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_IP_PROTO_WIDTH 1 10595 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF0_OFST 16 10596 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF0_LBN 22 10597 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF0_WIDTH 1 10598 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF1_OFST 16 10599 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF1_LBN 23 10600 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF1_WIDTH 1 10601 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_OFST 16 10602 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_LBN 24 10603 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_WIDTH 1 10604 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_OFST 16 10605 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_LBN 25 10606 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_WIDTH 1 10607 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_MCAST_DST_OFST 16 10608 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_MCAST_DST_LBN 30 10609 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1 10610 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_UCAST_DST_OFST 16 10611 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_UCAST_DST_LBN 31 10612 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_UCAST_DST_WIDTH 1 10613 /* receive destination */ 10614 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_OFST 20 10615 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_LEN 4 10616 /* enum: drop packets */ 10617 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_DROP 0x0 10618 /* enum: receive to host */ 10619 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_HOST 0x1 10620 /* enum: receive to MC */ 10621 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_MC 0x2 10622 /* enum: loop back to TXDP 0 */ 10623 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_TX0 0x3 10624 /* enum: loop back to TXDP 1 */ 10625 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_TX1 0x4 10626 /* receive queue handle (for multiple queue modes, this is the base queue) */ 10627 #define MC_CMD_FILTER_OP_V3_IN_RX_QUEUE_OFST 24 10628 #define MC_CMD_FILTER_OP_V3_IN_RX_QUEUE_LEN 4 10629 /* receive mode */ 10630 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_OFST 28 10631 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_LEN 4 10632 /* enum: receive to just the specified queue */ 10633 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_SIMPLE 0x0 10634 /* enum: receive to multiple queues using RSS context */ 10635 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_RSS 0x1 10636 /* enum: receive to multiple queues using .1p mapping */ 10637 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_DOT1P_MAPPING 0x2 10638 /* enum: install a filter entry that will never match; for test purposes only 10639 */ 10640 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_TEST_NEVER_MATCH 0x80000000 10641 /* RSS context (for RX_MODE_RSS) or .1p mapping handle (for 10642 * RX_MODE_DOT1P_MAPPING), as returned by MC_CMD_RSS_CONTEXT_ALLOC or 10643 * MC_CMD_DOT1P_MAPPING_ALLOC. 10644 */ 10645 #define MC_CMD_FILTER_OP_V3_IN_RX_CONTEXT_OFST 32 10646 #define MC_CMD_FILTER_OP_V3_IN_RX_CONTEXT_LEN 4 10647 /* transmit domain (reserved; set to 0) */ 10648 #define MC_CMD_FILTER_OP_V3_IN_TX_DOMAIN_OFST 36 10649 #define MC_CMD_FILTER_OP_V3_IN_TX_DOMAIN_LEN 4 10650 /* transmit destination (either set the MAC and/or PM bits for explicit 10651 * control, or set this field to TX_DEST_DEFAULT for sensible default 10652 * behaviour) 10653 */ 10654 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_OFST 40 10655 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_LEN 4 10656 /* enum: request default behaviour (based on filter type) */ 10657 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_DEFAULT 0xffffffff 10658 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_MAC_OFST 40 10659 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_MAC_LBN 0 10660 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_MAC_WIDTH 1 10661 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_PM_OFST 40 10662 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_PM_LBN 1 10663 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_PM_WIDTH 1 10664 /* source MAC address to match (as bytes in network order) */ 10665 #define MC_CMD_FILTER_OP_V3_IN_SRC_MAC_OFST 44 10666 #define MC_CMD_FILTER_OP_V3_IN_SRC_MAC_LEN 6 10667 /* source port to match (as bytes in network order) */ 10668 #define MC_CMD_FILTER_OP_V3_IN_SRC_PORT_OFST 50 10669 #define MC_CMD_FILTER_OP_V3_IN_SRC_PORT_LEN 2 10670 /* destination MAC address to match (as bytes in network order) */ 10671 #define MC_CMD_FILTER_OP_V3_IN_DST_MAC_OFST 52 10672 #define MC_CMD_FILTER_OP_V3_IN_DST_MAC_LEN 6 10673 /* destination port to match (as bytes in network order) */ 10674 #define MC_CMD_FILTER_OP_V3_IN_DST_PORT_OFST 58 10675 #define MC_CMD_FILTER_OP_V3_IN_DST_PORT_LEN 2 10676 /* Ethernet type to match (as bytes in network order) */ 10677 #define MC_CMD_FILTER_OP_V3_IN_ETHER_TYPE_OFST 60 10678 #define MC_CMD_FILTER_OP_V3_IN_ETHER_TYPE_LEN 2 10679 /* Inner VLAN tag to match (as bytes in network order) */ 10680 #define MC_CMD_FILTER_OP_V3_IN_INNER_VLAN_OFST 62 10681 #define MC_CMD_FILTER_OP_V3_IN_INNER_VLAN_LEN 2 10682 /* Outer VLAN tag to match (as bytes in network order) */ 10683 #define MC_CMD_FILTER_OP_V3_IN_OUTER_VLAN_OFST 64 10684 #define MC_CMD_FILTER_OP_V3_IN_OUTER_VLAN_LEN 2 10685 /* IP protocol to match (in low byte; set high byte to 0) */ 10686 #define MC_CMD_FILTER_OP_V3_IN_IP_PROTO_OFST 66 10687 #define MC_CMD_FILTER_OP_V3_IN_IP_PROTO_LEN 2 10688 /* Firmware defined register 0 to match (reserved; set to 0) */ 10689 #define MC_CMD_FILTER_OP_V3_IN_FWDEF0_OFST 68 10690 #define MC_CMD_FILTER_OP_V3_IN_FWDEF0_LEN 4 10691 /* VNI (for VXLAN/Geneve, when IP protocol is UDP) or VSID (for NVGRE, when IP 10692 * protocol is GRE) to match (as bytes in network order; set last byte to 0 for 10693 * VXLAN/NVGRE, or 1 for Geneve) 10694 */ 10695 #define MC_CMD_FILTER_OP_V3_IN_VNI_OR_VSID_OFST 72 10696 #define MC_CMD_FILTER_OP_V3_IN_VNI_OR_VSID_LEN 4 10697 #define MC_CMD_FILTER_OP_V3_IN_VNI_VALUE_OFST 72 10698 #define MC_CMD_FILTER_OP_V3_IN_VNI_VALUE_LBN 0 10699 #define MC_CMD_FILTER_OP_V3_IN_VNI_VALUE_WIDTH 24 10700 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_OFST 72 10701 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_LBN 24 10702 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_WIDTH 8 10703 /* enum: Match VXLAN traffic with this VNI */ 10704 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_VXLAN 0x0 10705 /* enum: Match Geneve traffic with this VNI */ 10706 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_GENEVE 0x1 10707 /* enum: Reserved for experimental development use */ 10708 #define MC_CMD_FILTER_OP_V3_IN_VNI_TYPE_EXPERIMENTAL 0xfe 10709 #define MC_CMD_FILTER_OP_V3_IN_VSID_VALUE_OFST 72 10710 #define MC_CMD_FILTER_OP_V3_IN_VSID_VALUE_LBN 0 10711 #define MC_CMD_FILTER_OP_V3_IN_VSID_VALUE_WIDTH 24 10712 #define MC_CMD_FILTER_OP_V3_IN_VSID_TYPE_OFST 72 10713 #define MC_CMD_FILTER_OP_V3_IN_VSID_TYPE_LBN 24 10714 #define MC_CMD_FILTER_OP_V3_IN_VSID_TYPE_WIDTH 8 10715 /* enum: Match NVGRE traffic with this VSID */ 10716 #define MC_CMD_FILTER_OP_V3_IN_VSID_TYPE_NVGRE 0x0 10717 /* source IP address to match (as bytes in network order; set last 12 bytes to 10718 * 0 for IPv4 address) 10719 */ 10720 #define MC_CMD_FILTER_OP_V3_IN_SRC_IP_OFST 76 10721 #define MC_CMD_FILTER_OP_V3_IN_SRC_IP_LEN 16 10722 /* destination IP address to match (as bytes in network order; set last 12 10723 * bytes to 0 for IPv4 address) 10724 */ 10725 #define MC_CMD_FILTER_OP_V3_IN_DST_IP_OFST 92 10726 #define MC_CMD_FILTER_OP_V3_IN_DST_IP_LEN 16 10727 /* VXLAN/NVGRE inner frame source MAC address to match (as bytes in network 10728 * order) 10729 */ 10730 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_MAC_OFST 108 10731 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_MAC_LEN 6 10732 /* VXLAN/NVGRE inner frame source port to match (as bytes in network order) */ 10733 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_PORT_OFST 114 10734 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_PORT_LEN 2 10735 /* VXLAN/NVGRE inner frame destination MAC address to match (as bytes in 10736 * network order) 10737 */ 10738 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_MAC_OFST 116 10739 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_MAC_LEN 6 10740 /* VXLAN/NVGRE inner frame destination port to match (as bytes in network 10741 * order) 10742 */ 10743 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_PORT_OFST 122 10744 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_PORT_LEN 2 10745 /* VXLAN/NVGRE inner frame Ethernet type to match (as bytes in network order) 10746 */ 10747 #define MC_CMD_FILTER_OP_V3_IN_IFRM_ETHER_TYPE_OFST 124 10748 #define MC_CMD_FILTER_OP_V3_IN_IFRM_ETHER_TYPE_LEN 2 10749 /* VXLAN/NVGRE inner frame Inner VLAN tag to match (as bytes in network order) 10750 */ 10751 #define MC_CMD_FILTER_OP_V3_IN_IFRM_INNER_VLAN_OFST 126 10752 #define MC_CMD_FILTER_OP_V3_IN_IFRM_INNER_VLAN_LEN 2 10753 /* VXLAN/NVGRE inner frame Outer VLAN tag to match (as bytes in network order) 10754 */ 10755 #define MC_CMD_FILTER_OP_V3_IN_IFRM_OUTER_VLAN_OFST 128 10756 #define MC_CMD_FILTER_OP_V3_IN_IFRM_OUTER_VLAN_LEN 2 10757 /* VXLAN/NVGRE inner frame IP protocol to match (in low byte; set high byte to 10758 * 0) 10759 */ 10760 #define MC_CMD_FILTER_OP_V3_IN_IFRM_IP_PROTO_OFST 130 10761 #define MC_CMD_FILTER_OP_V3_IN_IFRM_IP_PROTO_LEN 2 10762 /* VXLAN/NVGRE inner frame Firmware defined register 0 to match (reserved; set 10763 * to 0) 10764 */ 10765 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF0_OFST 132 10766 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF0_LEN 4 10767 /* VXLAN/NVGRE inner frame Firmware defined register 1 to match (reserved; set 10768 * to 0) 10769 */ 10770 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF1_OFST 136 10771 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF1_LEN 4 10772 /* VXLAN/NVGRE inner frame source IP address to match (as bytes in network 10773 * order; set last 12 bytes to 0 for IPv4 address) 10774 */ 10775 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_IP_OFST 140 10776 #define MC_CMD_FILTER_OP_V3_IN_IFRM_SRC_IP_LEN 16 10777 /* VXLAN/NVGRE inner frame destination IP address to match (as bytes in network 10778 * order; set last 12 bytes to 0 for IPv4 address) 10779 */ 10780 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_IP_OFST 156 10781 #define MC_CMD_FILTER_OP_V3_IN_IFRM_DST_IP_LEN 16 10782 /* Flags controlling mutations of the user_mark and user_flag fields of 10783 * matching packets, with logic as follows: if (req.MATCH_BITOR_FLAG == 1) 10784 * user_flag = req.MATCH_SET_FLAG bit_or user_flag; else user_flag = 10785 * req.MATCH_SET_FLAG; if (req.MATCH_SET_MARK == 0) user_mark = 0; else if 10786 * (req.MATCH_BITOR_MARK == 1) user_mark = req.MATCH_SET_MARK bit_or user_mark; 10787 * else user_mark = req.MATCH_SET_MARK; N.B. These flags overlap with the 10788 * MATCH_ACTION field, which is deprecated in favour of this field. For the 10789 * cases where these flags induce a valid encoding of the MATCH_ACTION field, 10790 * the semantics agree. 10791 */ 10792 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_FLAGS_OFST 172 10793 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_FLAGS_LEN 4 10794 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_FLAG_OFST 172 10795 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_FLAG_LBN 0 10796 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_FLAG_WIDTH 1 10797 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_OFST 172 10798 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_LBN 1 10799 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_WIDTH 1 10800 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_FLAG_OFST 172 10801 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_FLAG_LBN 2 10802 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_FLAG_WIDTH 1 10803 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_MARK_OFST 172 10804 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_MARK_LBN 3 10805 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_MARK_WIDTH 1 10806 /* Deprecated: the overlapping MATCH_ACTION_FLAGS field exposes all of the 10807 * functionality of this field in an ABI-backwards-compatible manner, and 10808 * should be used instead. Any future extensions should be made to the 10809 * MATCH_ACTION_FLAGS field, and not to this field. Set an action for all 10810 * packets matching this filter. The DPDK driver and (on EF10) dpdk f/w variant 10811 * use their own specific delivery structures, which are documented in the DPDK 10812 * Firmware Driver Interface (SF-119419-TC). Requesting anything other than 10813 * MATCH_ACTION_NONE on an EF10 NIC running another f/w variant will cause the 10814 * filter insertion to fail with ENOTSUP. 10815 */ 10816 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_OFST 172 10817 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_LEN 4 10818 /* enum: do nothing extra */ 10819 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_NONE 0x0 10820 /* enum: Set the match flag in the packet prefix for packets matching the 10821 * filter (only with dpdk firmware, otherwise fails with ENOTSUP). Used to 10822 * support the DPDK rte_flow "FLAG" action. 10823 */ 10824 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_FLAG 0x1 10825 /* enum: Insert MATCH_MARK_VALUE into the packet prefix for packets matching 10826 * the filter (only with dpdk firmware, otherwise fails with ENOTSUP). Used to 10827 * support the DPDK rte_flow "MARK" action. 10828 */ 10829 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_MARK 0x2 10830 /* the mark value for MATCH_ACTION_MARK. Requesting a value larger than the 10831 * maximum (obtained from MC_CMD_GET_CAPABILITIES_V5/FILTER_ACTION_MARK_MAX) 10832 * will cause the filter insertion to fail with EINVAL. 10833 */ 10834 #define MC_CMD_FILTER_OP_V3_IN_MATCH_MARK_VALUE_OFST 176 10835 #define MC_CMD_FILTER_OP_V3_IN_MATCH_MARK_VALUE_LEN 4 10836 10837 /* MC_CMD_FILTER_OP_OUT msgresponse */ 10838 #define MC_CMD_FILTER_OP_OUT_LEN 12 10839 /* identifies the type of operation requested */ 10840 #define MC_CMD_FILTER_OP_OUT_OP_OFST 0 10841 #define MC_CMD_FILTER_OP_OUT_OP_LEN 4 10842 /* Enum values, see field(s): */ 10843 /* MC_CMD_FILTER_OP_IN/OP */ 10844 /* Returned filter handle (for insert / subscribe operations). Note that these 10845 * handles should be considered opaque to the host, although a value of 10846 * 0xFFFFFFFF_FFFFFFFF is guaranteed never to be a valid handle. 10847 */ 10848 #define MC_CMD_FILTER_OP_OUT_HANDLE_OFST 4 10849 #define MC_CMD_FILTER_OP_OUT_HANDLE_LEN 8 10850 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_OFST 4 10851 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_OFST 8 10852 /* enum: guaranteed invalid filter handle (low 32 bits) */ 10853 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_INVALID 0xffffffff 10854 /* enum: guaranteed invalid filter handle (high 32 bits) */ 10855 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_INVALID 0xffffffff 10856 10857 /* MC_CMD_FILTER_OP_EXT_OUT msgresponse */ 10858 #define MC_CMD_FILTER_OP_EXT_OUT_LEN 12 10859 /* identifies the type of operation requested */ 10860 #define MC_CMD_FILTER_OP_EXT_OUT_OP_OFST 0 10861 #define MC_CMD_FILTER_OP_EXT_OUT_OP_LEN 4 10862 /* Enum values, see field(s): */ 10863 /* MC_CMD_FILTER_OP_EXT_IN/OP */ 10864 /* Returned filter handle (for insert / subscribe operations). Note that these 10865 * handles should be considered opaque to the host, although a value of 10866 * 0xFFFFFFFF_FFFFFFFF is guaranteed never to be a valid handle. 10867 */ 10868 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_OFST 4 10869 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LEN 8 10870 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_OFST 4 10871 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_OFST 8 10872 /* Enum values, see field(s): */ 10873 /* MC_CMD_FILTER_OP_OUT/HANDLE */ 10874 10875 10876 /***********************************/ 10877 /* MC_CMD_GET_PARSER_DISP_INFO 10878 * Get information related to the parser-dispatcher subsystem 10879 */ 10880 #define MC_CMD_GET_PARSER_DISP_INFO 0xe4 10881 #undef MC_CMD_0xe4_PRIVILEGE_CTG 10882 10883 #define MC_CMD_0xe4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 10884 10885 /* MC_CMD_GET_PARSER_DISP_INFO_IN msgrequest */ 10886 #define MC_CMD_GET_PARSER_DISP_INFO_IN_LEN 4 10887 /* identifies the type of operation requested */ 10888 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_OFST 0 10889 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_LEN 4 10890 /* enum: read the list of supported RX filter matches */ 10891 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_RX_MATCHES 0x1 10892 /* enum: read flags indicating restrictions on filter insertion for the calling 10893 * client 10894 */ 10895 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_RESTRICTIONS 0x2 10896 /* enum: read properties relating to security rules (Medford-only; for use by 10897 * SolarSecure apps, not directly by drivers. See SF-114946-SW.) 10898 */ 10899 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SECURITY_RULE_INFO 0x3 10900 /* enum: read the list of supported RX filter matches for VXLAN/NVGRE 10901 * encapsulated frames, which follow a different match sequence to normal 10902 * frames (Medford only) 10903 */ 10904 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_ENCAP_RX_MATCHES 0x4 10905 /* enum: read the list of supported matches for the encapsulation detection 10906 * rules inserted by MC_CMD_VNIC_ENCAP_RULE_ADD. (ef100 and later) 10907 */ 10908 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_GET_SUPPORTED_VNIC_ENCAP_MATCHES 0x5 10909 10910 /* MC_CMD_GET_PARSER_DISP_INFO_OUT msgresponse */ 10911 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LENMIN 8 10912 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LENMAX 252 10913 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LENMAX_MCDI2 1020 10914 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LEN(num) (8+4*(num)) 10915 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_NUM(len) (((len)-8)/4) 10916 /* identifies the type of operation requested */ 10917 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_OP_OFST 0 10918 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_OP_LEN 4 10919 /* Enum values, see field(s): */ 10920 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 10921 /* number of supported match types */ 10922 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_NUM_SUPPORTED_MATCHES_OFST 4 10923 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_NUM_SUPPORTED_MATCHES_LEN 4 10924 /* array of supported match types (valid MATCH_FIELDS values for 10925 * MC_CMD_FILTER_OP) sorted in decreasing priority order 10926 */ 10927 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_OFST 8 10928 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_LEN 4 10929 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_MINNUM 0 10930 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_MAXNUM 61 10931 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_MAXNUM_MCDI2 253 10932 10933 /* MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT msgresponse */ 10934 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_LEN 8 10935 /* identifies the type of operation requested */ 10936 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_OP_OFST 0 10937 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_OP_LEN 4 10938 /* Enum values, see field(s): */ 10939 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 10940 /* bitfield of filter insertion restrictions */ 10941 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_RESTRICTION_FLAGS_OFST 4 10942 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_RESTRICTION_FLAGS_LEN 4 10943 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_DST_IP_MCAST_ONLY_OFST 4 10944 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_DST_IP_MCAST_ONLY_LBN 0 10945 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_DST_IP_MCAST_ONLY_WIDTH 1 10946 10947 /* MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT msgresponse: 10948 * GET_PARSER_DISP_INFO response format for OP_GET_SECURITY_RULE_INFO. 10949 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See 10950 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 10951 * been used in any released code and may change during development. This note 10952 * will be removed once it is regarded as stable. 10953 */ 10954 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_LEN 36 10955 /* identifies the type of operation requested */ 10956 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_OP_OFST 0 10957 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_OP_LEN 4 10958 /* Enum values, see field(s): */ 10959 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 10960 /* a version number representing the set of rule lookups that are implemented 10961 * by the currently running firmware 10962 */ 10963 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_RULES_VERSION_OFST 4 10964 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_RULES_VERSION_LEN 4 10965 /* enum: implements lookup sequences described in SF-114946-SW draft C */ 10966 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_RULES_VERSION_SF_114946_SW_C 0x0 10967 /* the number of nodes in the subnet map */ 10968 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_NODES_OFST 8 10969 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_NODES_LEN 4 10970 /* the number of entries in one subnet map node */ 10971 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_ENTRIES_PER_NODE_OFST 12 10972 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_ENTRIES_PER_NODE_LEN 4 10973 /* minimum valid value for a subnet ID in a subnet map leaf */ 10974 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MIN_OFST 16 10975 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MIN_LEN 4 10976 /* maximum valid value for a subnet ID in a subnet map leaf */ 10977 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MAX_OFST 20 10978 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MAX_LEN 4 10979 /* the number of entries in the local and remote port range maps */ 10980 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_TREE_NUM_ENTRIES_OFST 24 10981 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_TREE_NUM_ENTRIES_LEN 4 10982 /* minimum valid value for a portrange ID in a port range map leaf */ 10983 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MIN_OFST 28 10984 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MIN_LEN 4 10985 /* maximum valid value for a portrange ID in a port range map leaf */ 10986 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MAX_OFST 32 10987 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MAX_LEN 4 10988 10989 /* MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT msgresponse: This response is 10990 * returned if a MC_CMD_GET_PARSER_DISP_INFO_IN request is sent with OP value 10991 * OP_GET_SUPPORTED_VNIC_ENCAP_MATCHES. It contains information about the 10992 * supported match types that can be used in the encapsulation detection rules 10993 * inserted by MC_CMD_VNIC_ENCAP_RULE_ADD. 10994 */ 10995 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LENMIN 8 10996 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LENMAX 252 10997 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LENMAX_MCDI2 1020 10998 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LEN(num) (8+4*(num)) 10999 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_NUM(len) (((len)-8)/4) 11000 /* The op code OP_GET_SUPPORTED_VNIC_ENCAP_MATCHES is returned. */ 11001 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_OP_OFST 0 11002 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_OP_LEN 4 11003 /* Enum values, see field(s): */ 11004 /* MC_CMD_GET_PARSER_DISP_INFO_IN/OP */ 11005 /* number of supported match types */ 11006 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_NUM_SUPPORTED_MATCHES_OFST 4 11007 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_NUM_SUPPORTED_MATCHES_LEN 4 11008 /* array of supported match types (valid MATCH_FLAGS values for 11009 * MC_CMD_VNIC_ENCAP_RULE_ADD) sorted in decreasing priority order 11010 */ 11011 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_OFST 8 11012 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_LEN 4 11013 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_MINNUM 0 11014 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_MAXNUM 61 11015 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_MAXNUM_MCDI2 253 11016 11017 11018 /***********************************/ 11019 /* MC_CMD_PARSER_DISP_RW 11020 * Direct read/write of parser-dispatcher state (DICPUs and LUE) for debugging. 11021 * Please note that this interface is only of use to debug tools which have 11022 * knowledge of firmware and hardware data structures; nothing here is intended 11023 * for use by normal driver code. Note that although this command is in the 11024 * Admin privilege group, in tamperproof adapters, only read operations are 11025 * permitted. 11026 */ 11027 #define MC_CMD_PARSER_DISP_RW 0xe5 11028 #undef MC_CMD_0xe5_PRIVILEGE_CTG 11029 11030 #define MC_CMD_0xe5_PRIVILEGE_CTG SRIOV_CTG_ADMIN 11031 11032 /* MC_CMD_PARSER_DISP_RW_IN msgrequest */ 11033 #define MC_CMD_PARSER_DISP_RW_IN_LEN 32 11034 /* identifies the target of the operation */ 11035 #define MC_CMD_PARSER_DISP_RW_IN_TARGET_OFST 0 11036 #define MC_CMD_PARSER_DISP_RW_IN_TARGET_LEN 4 11037 /* enum: RX dispatcher CPU */ 11038 #define MC_CMD_PARSER_DISP_RW_IN_RX_DICPU 0x0 11039 /* enum: TX dispatcher CPU */ 11040 #define MC_CMD_PARSER_DISP_RW_IN_TX_DICPU 0x1 11041 /* enum: Lookup engine (with original metadata format). Deprecated; used only 11042 * by cmdclient as a fallback for very old Huntington firmware, and not 11043 * supported in firmware beyond v6.4.0.1005. Use LUE_VERSIONED_METADATA 11044 * instead. 11045 */ 11046 #define MC_CMD_PARSER_DISP_RW_IN_LUE 0x2 11047 /* enum: Lookup engine (with requested metadata format) */ 11048 #define MC_CMD_PARSER_DISP_RW_IN_LUE_VERSIONED_METADATA 0x3 11049 /* enum: RX0 dispatcher CPU (alias for RX_DICPU; Medford has 2 RX DICPUs) */ 11050 #define MC_CMD_PARSER_DISP_RW_IN_RX0_DICPU 0x0 11051 /* enum: RX1 dispatcher CPU (only valid for Medford) */ 11052 #define MC_CMD_PARSER_DISP_RW_IN_RX1_DICPU 0x4 11053 /* enum: Miscellaneous other state (only valid for Medford) */ 11054 #define MC_CMD_PARSER_DISP_RW_IN_MISC_STATE 0x5 11055 /* identifies the type of operation requested */ 11056 #define MC_CMD_PARSER_DISP_RW_IN_OP_OFST 4 11057 #define MC_CMD_PARSER_DISP_RW_IN_OP_LEN 4 11058 /* enum: Read a word of DICPU DMEM or a LUE entry */ 11059 #define MC_CMD_PARSER_DISP_RW_IN_READ 0x0 11060 /* enum: Write a word of DICPU DMEM or a LUE entry. Not permitted on 11061 * tamperproof adapters. 11062 */ 11063 #define MC_CMD_PARSER_DISP_RW_IN_WRITE 0x1 11064 /* enum: Read-modify-write a word of DICPU DMEM (not valid for LUE). Not 11065 * permitted on tamperproof adapters. 11066 */ 11067 #define MC_CMD_PARSER_DISP_RW_IN_RMW 0x2 11068 /* data memory address (DICPU targets) or LUE index (LUE targets) */ 11069 #define MC_CMD_PARSER_DISP_RW_IN_ADDRESS_OFST 8 11070 #define MC_CMD_PARSER_DISP_RW_IN_ADDRESS_LEN 4 11071 /* selector (for MISC_STATE target) */ 11072 #define MC_CMD_PARSER_DISP_RW_IN_SELECTOR_OFST 8 11073 #define MC_CMD_PARSER_DISP_RW_IN_SELECTOR_LEN 4 11074 /* enum: Port to datapath mapping */ 11075 #define MC_CMD_PARSER_DISP_RW_IN_PORT_DP_MAPPING 0x1 11076 /* value to write (for DMEM writes) */ 11077 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_WRITE_VALUE_OFST 12 11078 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_WRITE_VALUE_LEN 4 11079 /* XOR value (for DMEM read-modify-writes: new = (old & mask) ^ value) */ 11080 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_RMW_XOR_VALUE_OFST 12 11081 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_RMW_XOR_VALUE_LEN 4 11082 /* AND mask (for DMEM read-modify-writes: new = (old & mask) ^ value) */ 11083 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_RMW_AND_MASK_OFST 16 11084 #define MC_CMD_PARSER_DISP_RW_IN_DMEM_RMW_AND_MASK_LEN 4 11085 /* metadata format (for LUE reads using LUE_VERSIONED_METADATA) */ 11086 #define MC_CMD_PARSER_DISP_RW_IN_LUE_READ_METADATA_VERSION_OFST 12 11087 #define MC_CMD_PARSER_DISP_RW_IN_LUE_READ_METADATA_VERSION_LEN 4 11088 /* value to write (for LUE writes) */ 11089 #define MC_CMD_PARSER_DISP_RW_IN_LUE_WRITE_VALUE_OFST 12 11090 #define MC_CMD_PARSER_DISP_RW_IN_LUE_WRITE_VALUE_LEN 20 11091 11092 /* MC_CMD_PARSER_DISP_RW_OUT msgresponse */ 11093 #define MC_CMD_PARSER_DISP_RW_OUT_LEN 52 11094 /* value read (for DMEM reads) */ 11095 #define MC_CMD_PARSER_DISP_RW_OUT_DMEM_READ_VALUE_OFST 0 11096 #define MC_CMD_PARSER_DISP_RW_OUT_DMEM_READ_VALUE_LEN 4 11097 /* value read (for LUE reads) */ 11098 #define MC_CMD_PARSER_DISP_RW_OUT_LUE_READ_VALUE_OFST 0 11099 #define MC_CMD_PARSER_DISP_RW_OUT_LUE_READ_VALUE_LEN 20 11100 /* up to 8 32-bit words of additional soft state from the LUE manager (the 11101 * exact content is firmware-dependent and intended only for debug use) 11102 */ 11103 #define MC_CMD_PARSER_DISP_RW_OUT_LUE_MGR_STATE_OFST 20 11104 #define MC_CMD_PARSER_DISP_RW_OUT_LUE_MGR_STATE_LEN 32 11105 /* datapath(s) used for each port (for MISC_STATE PORT_DP_MAPPING selector) */ 11106 #define MC_CMD_PARSER_DISP_RW_OUT_PORT_DP_MAPPING_OFST 0 11107 #define MC_CMD_PARSER_DISP_RW_OUT_PORT_DP_MAPPING_LEN 4 11108 #define MC_CMD_PARSER_DISP_RW_OUT_PORT_DP_MAPPING_NUM 4 11109 #define MC_CMD_PARSER_DISP_RW_OUT_DP0 0x1 /* enum */ 11110 #define MC_CMD_PARSER_DISP_RW_OUT_DP1 0x2 /* enum */ 11111 11112 11113 /***********************************/ 11114 /* MC_CMD_GET_PF_COUNT 11115 * Get number of PFs on the device. 11116 */ 11117 #define MC_CMD_GET_PF_COUNT 0xb6 11118 #undef MC_CMD_0xb6_PRIVILEGE_CTG 11119 11120 #define MC_CMD_0xb6_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11121 11122 /* MC_CMD_GET_PF_COUNT_IN msgrequest */ 11123 #define MC_CMD_GET_PF_COUNT_IN_LEN 0 11124 11125 /* MC_CMD_GET_PF_COUNT_OUT msgresponse */ 11126 #define MC_CMD_GET_PF_COUNT_OUT_LEN 1 11127 /* Identifies the number of PFs on the device. */ 11128 #define MC_CMD_GET_PF_COUNT_OUT_PF_COUNT_OFST 0 11129 #define MC_CMD_GET_PF_COUNT_OUT_PF_COUNT_LEN 1 11130 11131 11132 /***********************************/ 11133 /* MC_CMD_SET_PF_COUNT 11134 * Set number of PFs on the device. 11135 */ 11136 #define MC_CMD_SET_PF_COUNT 0xb7 11137 11138 /* MC_CMD_SET_PF_COUNT_IN msgrequest */ 11139 #define MC_CMD_SET_PF_COUNT_IN_LEN 4 11140 /* New number of PFs on the device. */ 11141 #define MC_CMD_SET_PF_COUNT_IN_PF_COUNT_OFST 0 11142 #define MC_CMD_SET_PF_COUNT_IN_PF_COUNT_LEN 4 11143 11144 /* MC_CMD_SET_PF_COUNT_OUT msgresponse */ 11145 #define MC_CMD_SET_PF_COUNT_OUT_LEN 0 11146 11147 11148 /***********************************/ 11149 /* MC_CMD_GET_PORT_ASSIGNMENT 11150 * Get port assignment for current PCI function. 11151 */ 11152 #define MC_CMD_GET_PORT_ASSIGNMENT 0xb8 11153 #undef MC_CMD_0xb8_PRIVILEGE_CTG 11154 11155 #define MC_CMD_0xb8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11156 11157 /* MC_CMD_GET_PORT_ASSIGNMENT_IN msgrequest */ 11158 #define MC_CMD_GET_PORT_ASSIGNMENT_IN_LEN 0 11159 11160 /* MC_CMD_GET_PORT_ASSIGNMENT_OUT msgresponse */ 11161 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_LEN 4 11162 /* Identifies the port assignment for this function. On EF100, it is possible 11163 * for the function to have no network port assigned (either because it is not 11164 * yet configured, or assigning a port to a given function personality makes no 11165 * sense - e.g. virtio-blk), in which case the return value is NULL_PORT. 11166 */ 11167 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_PORT_OFST 0 11168 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_PORT_LEN 4 11169 /* enum: Special value to indicate no port is assigned to a function. */ 11170 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_NULL_PORT 0xffffffff 11171 11172 11173 /***********************************/ 11174 /* MC_CMD_SET_PORT_ASSIGNMENT 11175 * Set port assignment for current PCI function. 11176 */ 11177 #define MC_CMD_SET_PORT_ASSIGNMENT 0xb9 11178 #undef MC_CMD_0xb9_PRIVILEGE_CTG 11179 11180 #define MC_CMD_0xb9_PRIVILEGE_CTG SRIOV_CTG_ADMIN 11181 11182 /* MC_CMD_SET_PORT_ASSIGNMENT_IN msgrequest */ 11183 #define MC_CMD_SET_PORT_ASSIGNMENT_IN_LEN 4 11184 /* Identifies the port assignment for this function. */ 11185 #define MC_CMD_SET_PORT_ASSIGNMENT_IN_PORT_OFST 0 11186 #define MC_CMD_SET_PORT_ASSIGNMENT_IN_PORT_LEN 4 11187 11188 /* MC_CMD_SET_PORT_ASSIGNMENT_OUT msgresponse */ 11189 #define MC_CMD_SET_PORT_ASSIGNMENT_OUT_LEN 0 11190 11191 11192 /***********************************/ 11193 /* MC_CMD_ALLOC_VIS 11194 * Allocate VIs for current PCI function. 11195 */ 11196 #define MC_CMD_ALLOC_VIS 0x8b 11197 #undef MC_CMD_0x8b_PRIVILEGE_CTG 11198 11199 #define MC_CMD_0x8b_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11200 11201 /* MC_CMD_ALLOC_VIS_IN msgrequest */ 11202 #define MC_CMD_ALLOC_VIS_IN_LEN 8 11203 /* The minimum number of VIs that is acceptable */ 11204 #define MC_CMD_ALLOC_VIS_IN_MIN_VI_COUNT_OFST 0 11205 #define MC_CMD_ALLOC_VIS_IN_MIN_VI_COUNT_LEN 4 11206 /* The maximum number of VIs that would be useful */ 11207 #define MC_CMD_ALLOC_VIS_IN_MAX_VI_COUNT_OFST 4 11208 #define MC_CMD_ALLOC_VIS_IN_MAX_VI_COUNT_LEN 4 11209 11210 /* MC_CMD_ALLOC_VIS_OUT msgresponse: Huntington-compatible VI_ALLOC request. 11211 * Use extended version in new code. 11212 */ 11213 #define MC_CMD_ALLOC_VIS_OUT_LEN 8 11214 /* The number of VIs allocated on this function */ 11215 #define MC_CMD_ALLOC_VIS_OUT_VI_COUNT_OFST 0 11216 #define MC_CMD_ALLOC_VIS_OUT_VI_COUNT_LEN 4 11217 /* The base absolute VI number allocated to this function. Required to 11218 * correctly interpret wakeup events. 11219 */ 11220 #define MC_CMD_ALLOC_VIS_OUT_VI_BASE_OFST 4 11221 #define MC_CMD_ALLOC_VIS_OUT_VI_BASE_LEN 4 11222 11223 /* MC_CMD_ALLOC_VIS_EXT_OUT msgresponse */ 11224 #define MC_CMD_ALLOC_VIS_EXT_OUT_LEN 12 11225 /* The number of VIs allocated on this function */ 11226 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_COUNT_OFST 0 11227 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_COUNT_LEN 4 11228 /* The base absolute VI number allocated to this function. Required to 11229 * correctly interpret wakeup events. 11230 */ 11231 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_BASE_OFST 4 11232 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_BASE_LEN 4 11233 /* Function's port vi_shift value (always 0 on Huntington) */ 11234 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_SHIFT_OFST 8 11235 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_SHIFT_LEN 4 11236 11237 11238 /***********************************/ 11239 /* MC_CMD_FREE_VIS 11240 * Free VIs for current PCI function. Any linked PIO buffers will be unlinked, 11241 * but not freed. 11242 */ 11243 #define MC_CMD_FREE_VIS 0x8c 11244 #undef MC_CMD_0x8c_PRIVILEGE_CTG 11245 11246 #define MC_CMD_0x8c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11247 11248 /* MC_CMD_FREE_VIS_IN msgrequest */ 11249 #define MC_CMD_FREE_VIS_IN_LEN 0 11250 11251 /* MC_CMD_FREE_VIS_OUT msgresponse */ 11252 #define MC_CMD_FREE_VIS_OUT_LEN 0 11253 11254 11255 /***********************************/ 11256 /* MC_CMD_GET_SRIOV_CFG 11257 * Get SRIOV config for this PF. 11258 */ 11259 #define MC_CMD_GET_SRIOV_CFG 0xba 11260 #undef MC_CMD_0xba_PRIVILEGE_CTG 11261 11262 #define MC_CMD_0xba_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11263 11264 /* MC_CMD_GET_SRIOV_CFG_IN msgrequest */ 11265 #define MC_CMD_GET_SRIOV_CFG_IN_LEN 0 11266 11267 /* MC_CMD_GET_SRIOV_CFG_OUT msgresponse */ 11268 #define MC_CMD_GET_SRIOV_CFG_OUT_LEN 20 11269 /* Number of VFs currently enabled. */ 11270 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_CURRENT_OFST 0 11271 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_CURRENT_LEN 4 11272 /* Max number of VFs before sriov stride and offset may need to be changed. */ 11273 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_MAX_OFST 4 11274 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_MAX_LEN 4 11275 #define MC_CMD_GET_SRIOV_CFG_OUT_FLAGS_OFST 8 11276 #define MC_CMD_GET_SRIOV_CFG_OUT_FLAGS_LEN 4 11277 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_ENABLED_OFST 8 11278 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_ENABLED_LBN 0 11279 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_ENABLED_WIDTH 1 11280 /* RID offset of first VF from PF. */ 11281 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_OFFSET_OFST 12 11282 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_OFFSET_LEN 4 11283 /* RID offset of each subsequent VF from the previous. */ 11284 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_STRIDE_OFST 16 11285 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_STRIDE_LEN 4 11286 11287 11288 /***********************************/ 11289 /* MC_CMD_SET_SRIOV_CFG 11290 * Set SRIOV config for this PF. 11291 */ 11292 #define MC_CMD_SET_SRIOV_CFG 0xbb 11293 #undef MC_CMD_0xbb_PRIVILEGE_CTG 11294 11295 #define MC_CMD_0xbb_PRIVILEGE_CTG SRIOV_CTG_ADMIN 11296 11297 /* MC_CMD_SET_SRIOV_CFG_IN msgrequest */ 11298 #define MC_CMD_SET_SRIOV_CFG_IN_LEN 20 11299 /* Number of VFs currently enabled. */ 11300 #define MC_CMD_SET_SRIOV_CFG_IN_VF_CURRENT_OFST 0 11301 #define MC_CMD_SET_SRIOV_CFG_IN_VF_CURRENT_LEN 4 11302 /* Max number of VFs before sriov stride and offset may need to be changed. */ 11303 #define MC_CMD_SET_SRIOV_CFG_IN_VF_MAX_OFST 4 11304 #define MC_CMD_SET_SRIOV_CFG_IN_VF_MAX_LEN 4 11305 #define MC_CMD_SET_SRIOV_CFG_IN_FLAGS_OFST 8 11306 #define MC_CMD_SET_SRIOV_CFG_IN_FLAGS_LEN 4 11307 #define MC_CMD_SET_SRIOV_CFG_IN_VF_ENABLED_OFST 8 11308 #define MC_CMD_SET_SRIOV_CFG_IN_VF_ENABLED_LBN 0 11309 #define MC_CMD_SET_SRIOV_CFG_IN_VF_ENABLED_WIDTH 1 11310 /* RID offset of first VF from PF, or 0 for no change, or 11311 * MC_CMD_RESOURCE_INSTANCE_ANY to allow the system to allocate an offset. 11312 */ 11313 #define MC_CMD_SET_SRIOV_CFG_IN_VF_OFFSET_OFST 12 11314 #define MC_CMD_SET_SRIOV_CFG_IN_VF_OFFSET_LEN 4 11315 /* RID offset of each subsequent VF from the previous, 0 for no change, or 11316 * MC_CMD_RESOURCE_INSTANCE_ANY to allow the system to allocate a stride. 11317 */ 11318 #define MC_CMD_SET_SRIOV_CFG_IN_VF_STRIDE_OFST 16 11319 #define MC_CMD_SET_SRIOV_CFG_IN_VF_STRIDE_LEN 4 11320 11321 /* MC_CMD_SET_SRIOV_CFG_OUT msgresponse */ 11322 #define MC_CMD_SET_SRIOV_CFG_OUT_LEN 0 11323 11324 11325 /***********************************/ 11326 /* MC_CMD_GET_VI_ALLOC_INFO 11327 * Get information about number of VI's and base VI number allocated to this 11328 * function. 11329 */ 11330 #define MC_CMD_GET_VI_ALLOC_INFO 0x8d 11331 #undef MC_CMD_0x8d_PRIVILEGE_CTG 11332 11333 #define MC_CMD_0x8d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11334 11335 /* MC_CMD_GET_VI_ALLOC_INFO_IN msgrequest */ 11336 #define MC_CMD_GET_VI_ALLOC_INFO_IN_LEN 0 11337 11338 /* MC_CMD_GET_VI_ALLOC_INFO_OUT msgresponse */ 11339 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_LEN 12 11340 /* The number of VIs allocated on this function */ 11341 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_COUNT_OFST 0 11342 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_COUNT_LEN 4 11343 /* The base absolute VI number allocated to this function. Required to 11344 * correctly interpret wakeup events. 11345 */ 11346 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_BASE_OFST 4 11347 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_BASE_LEN 4 11348 /* Function's port vi_shift value (always 0 on Huntington) */ 11349 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_SHIFT_OFST 8 11350 #define MC_CMD_GET_VI_ALLOC_INFO_OUT_VI_SHIFT_LEN 4 11351 11352 11353 /***********************************/ 11354 /* MC_CMD_DUMP_VI_STATE 11355 * For CmdClient use. Dump pertinent information on a specific absolute VI. 11356 */ 11357 #define MC_CMD_DUMP_VI_STATE 0x8e 11358 #undef MC_CMD_0x8e_PRIVILEGE_CTG 11359 11360 #define MC_CMD_0x8e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11361 11362 /* MC_CMD_DUMP_VI_STATE_IN msgrequest */ 11363 #define MC_CMD_DUMP_VI_STATE_IN_LEN 4 11364 /* The VI number to query. */ 11365 #define MC_CMD_DUMP_VI_STATE_IN_VI_NUMBER_OFST 0 11366 #define MC_CMD_DUMP_VI_STATE_IN_VI_NUMBER_LEN 4 11367 11368 /* MC_CMD_DUMP_VI_STATE_OUT msgresponse */ 11369 #define MC_CMD_DUMP_VI_STATE_OUT_LEN 96 11370 /* The PF part of the function owning this VI. */ 11371 #define MC_CMD_DUMP_VI_STATE_OUT_OWNER_PF_OFST 0 11372 #define MC_CMD_DUMP_VI_STATE_OUT_OWNER_PF_LEN 2 11373 /* The VF part of the function owning this VI. */ 11374 #define MC_CMD_DUMP_VI_STATE_OUT_OWNER_VF_OFST 2 11375 #define MC_CMD_DUMP_VI_STATE_OUT_OWNER_VF_LEN 2 11376 /* Base of VIs allocated to this function. */ 11377 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VI_BASE_OFST 4 11378 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VI_BASE_LEN 2 11379 /* Count of VIs allocated to the owner function. */ 11380 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VI_COUNT_OFST 6 11381 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VI_COUNT_LEN 2 11382 /* Base interrupt vector allocated to this function. */ 11383 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VECTOR_BASE_OFST 8 11384 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VECTOR_BASE_LEN 2 11385 /* Number of interrupt vectors allocated to this function. */ 11386 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VECTOR_COUNT_OFST 10 11387 #define MC_CMD_DUMP_VI_STATE_OUT_FUNC_VECTOR_COUNT_LEN 2 11388 /* Raw evq ptr table data. */ 11389 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_OFST 12 11390 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LEN 8 11391 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_LO_OFST 12 11392 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EVQ_PTR_RAW_HI_OFST 16 11393 /* Raw evq timer table data. */ 11394 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_OFST 20 11395 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LEN 8 11396 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_LO_OFST 20 11397 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_TIMER_RAW_HI_OFST 24 11398 /* Combined metadata field. */ 11399 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_OFST 28 11400 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_LEN 4 11401 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_BASE_OFST 28 11402 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_BASE_LBN 0 11403 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_BASE_WIDTH 16 11404 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_NPAGES_OFST 28 11405 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_NPAGES_LBN 16 11406 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_BUFS_NPAGES_WIDTH 8 11407 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_WKUP_REF_OFST 28 11408 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_WKUP_REF_LBN 24 11409 #define MC_CMD_DUMP_VI_STATE_OUT_VI_EV_META_WKUP_REF_WIDTH 8 11410 /* TXDPCPU raw table data for queue. */ 11411 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_OFST 32 11412 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LEN 8 11413 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_LO_OFST 32 11414 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_0_HI_OFST 36 11415 /* TXDPCPU raw table data for queue. */ 11416 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_OFST 40 11417 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LEN 8 11418 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_LO_OFST 40 11419 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_1_HI_OFST 44 11420 /* TXDPCPU raw table data for queue. */ 11421 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_OFST 48 11422 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LEN 8 11423 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_LO_OFST 48 11424 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_RAW_TBL_2_HI_OFST 52 11425 /* Combined metadata field. */ 11426 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_OFST 56 11427 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LEN 8 11428 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_LO_OFST 56 11429 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_HI_OFST 60 11430 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_BASE_OFST 56 11431 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_BASE_LBN 0 11432 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_BASE_WIDTH 16 11433 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_NPAGES_OFST 56 11434 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_NPAGES_LBN 16 11435 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_BUFS_NPAGES_WIDTH 8 11436 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_QSTATE_OFST 56 11437 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_QSTATE_LBN 24 11438 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_QSTATE_WIDTH 8 11439 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_WAITCOUNT_OFST 56 11440 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_WAITCOUNT_LBN 32 11441 #define MC_CMD_DUMP_VI_STATE_OUT_VI_TX_META_WAITCOUNT_WIDTH 8 11442 #define MC_CMD_DUMP_VI_STATE_OUT_VI_PADDING_OFST 56 11443 #define MC_CMD_DUMP_VI_STATE_OUT_VI_PADDING_LBN 40 11444 #define MC_CMD_DUMP_VI_STATE_OUT_VI_PADDING_WIDTH 24 11445 /* RXDPCPU raw table data for queue. */ 11446 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_OFST 64 11447 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LEN 8 11448 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_LO_OFST 64 11449 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_0_HI_OFST 68 11450 /* RXDPCPU raw table data for queue. */ 11451 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_OFST 72 11452 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LEN 8 11453 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_LO_OFST 72 11454 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_1_HI_OFST 76 11455 /* Reserved, currently 0. */ 11456 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_OFST 80 11457 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LEN 8 11458 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_LO_OFST 80 11459 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_RAW_TBL_2_HI_OFST 84 11460 /* Combined metadata field. */ 11461 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_OFST 88 11462 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LEN 8 11463 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_LO_OFST 88 11464 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_HI_OFST 92 11465 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_BASE_OFST 88 11466 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_BASE_LBN 0 11467 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_BASE_WIDTH 16 11468 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_NPAGES_OFST 88 11469 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_NPAGES_LBN 16 11470 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_BUFS_NPAGES_WIDTH 8 11471 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_QSTATE_OFST 88 11472 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_QSTATE_LBN 24 11473 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_QSTATE_WIDTH 8 11474 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_WAITCOUNT_OFST 88 11475 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_WAITCOUNT_LBN 32 11476 #define MC_CMD_DUMP_VI_STATE_OUT_VI_RX_META_WAITCOUNT_WIDTH 8 11477 11478 11479 /***********************************/ 11480 /* MC_CMD_ALLOC_PIOBUF 11481 * Allocate a push I/O buffer for later use with a tx queue. 11482 */ 11483 #define MC_CMD_ALLOC_PIOBUF 0x8f 11484 #undef MC_CMD_0x8f_PRIVILEGE_CTG 11485 11486 #define MC_CMD_0x8f_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 11487 11488 /* MC_CMD_ALLOC_PIOBUF_IN msgrequest */ 11489 #define MC_CMD_ALLOC_PIOBUF_IN_LEN 0 11490 11491 /* MC_CMD_ALLOC_PIOBUF_OUT msgresponse */ 11492 #define MC_CMD_ALLOC_PIOBUF_OUT_LEN 4 11493 /* Handle for allocated push I/O buffer. */ 11494 #define MC_CMD_ALLOC_PIOBUF_OUT_PIOBUF_HANDLE_OFST 0 11495 #define MC_CMD_ALLOC_PIOBUF_OUT_PIOBUF_HANDLE_LEN 4 11496 11497 11498 /***********************************/ 11499 /* MC_CMD_FREE_PIOBUF 11500 * Free a push I/O buffer. 11501 */ 11502 #define MC_CMD_FREE_PIOBUF 0x90 11503 #undef MC_CMD_0x90_PRIVILEGE_CTG 11504 11505 #define MC_CMD_0x90_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 11506 11507 /* MC_CMD_FREE_PIOBUF_IN msgrequest */ 11508 #define MC_CMD_FREE_PIOBUF_IN_LEN 4 11509 /* Handle for allocated push I/O buffer. */ 11510 #define MC_CMD_FREE_PIOBUF_IN_PIOBUF_HANDLE_OFST 0 11511 #define MC_CMD_FREE_PIOBUF_IN_PIOBUF_HANDLE_LEN 4 11512 11513 /* MC_CMD_FREE_PIOBUF_OUT msgresponse */ 11514 #define MC_CMD_FREE_PIOBUF_OUT_LEN 0 11515 11516 11517 /***********************************/ 11518 /* MC_CMD_GET_VI_TLP_PROCESSING 11519 * Get TLP steering and ordering information for a VI. 11520 */ 11521 #define MC_CMD_GET_VI_TLP_PROCESSING 0xb0 11522 #undef MC_CMD_0xb0_PRIVILEGE_CTG 11523 11524 #define MC_CMD_0xb0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11525 11526 /* MC_CMD_GET_VI_TLP_PROCESSING_IN msgrequest */ 11527 #define MC_CMD_GET_VI_TLP_PROCESSING_IN_LEN 4 11528 /* VI number to get information for. */ 11529 #define MC_CMD_GET_VI_TLP_PROCESSING_IN_INSTANCE_OFST 0 11530 #define MC_CMD_GET_VI_TLP_PROCESSING_IN_INSTANCE_LEN 4 11531 11532 /* MC_CMD_GET_VI_TLP_PROCESSING_OUT msgresponse */ 11533 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_LEN 4 11534 /* Transaction processing steering hint 1 for use with the Rx Queue. */ 11535 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_TAG1_RX_OFST 0 11536 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_TAG1_RX_LEN 1 11537 /* Transaction processing steering hint 2 for use with the Ev Queue. */ 11538 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_TAG2_EV_OFST 1 11539 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_TAG2_EV_LEN 1 11540 /* Use Relaxed ordering model for TLPs on this VI. */ 11541 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_RELAXED_ORDERING_LBN 16 11542 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_RELAXED_ORDERING_WIDTH 1 11543 /* Use ID based ordering for TLPs on this VI. */ 11544 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_ID_BASED_ORDERING_LBN 17 11545 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_ID_BASED_ORDERING_WIDTH 1 11546 /* Set no snoop bit for TLPs on this VI. */ 11547 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_NO_SNOOP_LBN 18 11548 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_NO_SNOOP_WIDTH 1 11549 /* Enable TPH for TLPs on this VI. */ 11550 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_ON_LBN 19 11551 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_TPH_ON_WIDTH 1 11552 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_DATA_OFST 0 11553 #define MC_CMD_GET_VI_TLP_PROCESSING_OUT_DATA_LEN 4 11554 11555 11556 /***********************************/ 11557 /* MC_CMD_SET_VI_TLP_PROCESSING 11558 * Set TLP steering and ordering information for a VI. 11559 */ 11560 #define MC_CMD_SET_VI_TLP_PROCESSING 0xb1 11561 #undef MC_CMD_0xb1_PRIVILEGE_CTG 11562 11563 #define MC_CMD_0xb1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11564 11565 /* MC_CMD_SET_VI_TLP_PROCESSING_IN msgrequest */ 11566 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_LEN 8 11567 /* VI number to set information for. */ 11568 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_INSTANCE_OFST 0 11569 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_INSTANCE_LEN 4 11570 /* Transaction processing steering hint 1 for use with the Rx Queue. */ 11571 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_TAG1_RX_OFST 4 11572 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_TAG1_RX_LEN 1 11573 /* Transaction processing steering hint 2 for use with the Ev Queue. */ 11574 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_TAG2_EV_OFST 5 11575 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_TAG2_EV_LEN 1 11576 /* Use Relaxed ordering model for TLPs on this VI. */ 11577 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_RELAXED_ORDERING_LBN 48 11578 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_RELAXED_ORDERING_WIDTH 1 11579 /* Use ID based ordering for TLPs on this VI. */ 11580 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_ID_BASED_ORDERING_LBN 49 11581 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_ID_BASED_ORDERING_WIDTH 1 11582 /* Set the no snoop bit for TLPs on this VI. */ 11583 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_NO_SNOOP_LBN 50 11584 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_NO_SNOOP_WIDTH 1 11585 /* Enable TPH for TLPs on this VI. */ 11586 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_ON_LBN 51 11587 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_TPH_ON_WIDTH 1 11588 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_DATA_OFST 4 11589 #define MC_CMD_SET_VI_TLP_PROCESSING_IN_DATA_LEN 4 11590 11591 /* MC_CMD_SET_VI_TLP_PROCESSING_OUT msgresponse */ 11592 #define MC_CMD_SET_VI_TLP_PROCESSING_OUT_LEN 0 11593 11594 11595 /***********************************/ 11596 /* MC_CMD_GET_TLP_PROCESSING_GLOBALS 11597 * Get global PCIe steering and transaction processing configuration. 11598 */ 11599 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS 0xbc 11600 #undef MC_CMD_0xbc_PRIVILEGE_CTG 11601 11602 #define MC_CMD_0xbc_PRIVILEGE_CTG SRIOV_CTG_ADMIN 11603 11604 /* MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN msgrequest */ 11605 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_LEN 4 11606 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_OFST 0 11607 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_LEN 4 11608 /* enum: MISC. */ 11609 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_MISC 0x0 11610 /* enum: IDO. */ 11611 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_IDO 0x1 11612 /* enum: RO. */ 11613 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_RO 0x2 11614 /* enum: TPH Type. */ 11615 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_TPH_TYPE 0x3 11616 11617 /* MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT msgresponse */ 11618 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_LEN 8 11619 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_GLOBAL_CATEGORY_OFST 0 11620 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_GLOBAL_CATEGORY_LEN 4 11621 /* Enum values, see field(s): */ 11622 /* MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN/TLP_GLOBAL_CATEGORY */ 11623 /* Amalgamated TLP info word. */ 11624 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_WORD_OFST 4 11625 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_WORD_LEN 4 11626 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_WTAG_EN_OFST 4 11627 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_WTAG_EN_LBN 0 11628 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_WTAG_EN_WIDTH 1 11629 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_SPARE_OFST 4 11630 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_SPARE_LBN 1 11631 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_MISC_SPARE_WIDTH 31 11632 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_DL_EN_OFST 4 11633 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_DL_EN_LBN 0 11634 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_DL_EN_WIDTH 1 11635 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_TX_EN_OFST 4 11636 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_TX_EN_LBN 1 11637 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_TX_EN_WIDTH 1 11638 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_EV_EN_OFST 4 11639 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_EV_EN_LBN 2 11640 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_EV_EN_WIDTH 1 11641 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_RX_EN_OFST 4 11642 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_RX_EN_LBN 3 11643 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_RX_EN_WIDTH 1 11644 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_SPARE_OFST 4 11645 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_SPARE_LBN 4 11646 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_IDO_SPARE_WIDTH 28 11647 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_RXDMA_EN_OFST 4 11648 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_RXDMA_EN_LBN 0 11649 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_RXDMA_EN_WIDTH 1 11650 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_TXDMA_EN_OFST 4 11651 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_TXDMA_EN_LBN 1 11652 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_TXDMA_EN_WIDTH 1 11653 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_DL_EN_OFST 4 11654 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_DL_EN_LBN 2 11655 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_DL_EN_WIDTH 1 11656 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_SPARE_OFST 4 11657 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_SPARE_LBN 3 11658 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_RO_SPARE_WIDTH 29 11659 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_MSIX_OFST 4 11660 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_MSIX_LBN 0 11661 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_MSIX_WIDTH 2 11662 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_DL_OFST 4 11663 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_DL_LBN 2 11664 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_DL_WIDTH 2 11665 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_TX_OFST 4 11666 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_TX_LBN 4 11667 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_TX_WIDTH 2 11668 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_EV_OFST 4 11669 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_EV_LBN 6 11670 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_EV_WIDTH 2 11671 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_RX_OFST 4 11672 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_RX_LBN 8 11673 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TPH_TYPE_RX_WIDTH 2 11674 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TLP_TYPE_SPARE_OFST 4 11675 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TLP_TYPE_SPARE_LBN 9 11676 #define MC_CMD_GET_TLP_PROCESSING_GLOBALS_OUT_TLP_INFO_TLP_TYPE_SPARE_WIDTH 23 11677 11678 11679 /***********************************/ 11680 /* MC_CMD_SET_TLP_PROCESSING_GLOBALS 11681 * Set global PCIe steering and transaction processing configuration. 11682 */ 11683 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS 0xbd 11684 #undef MC_CMD_0xbd_PRIVILEGE_CTG 11685 11686 #define MC_CMD_0xbd_PRIVILEGE_CTG SRIOV_CTG_ADMIN 11687 11688 /* MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN msgrequest */ 11689 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_LEN 8 11690 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_OFST 0 11691 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_GLOBAL_CATEGORY_LEN 4 11692 /* Enum values, see field(s): */ 11693 /* MC_CMD_GET_TLP_PROCESSING_GLOBALS/MC_CMD_GET_TLP_PROCESSING_GLOBALS_IN/TLP_GLOBAL_CATEGORY */ 11694 /* Amalgamated TLP info word. */ 11695 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_WORD_OFST 4 11696 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_WORD_LEN 4 11697 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_MISC_WTAG_EN_OFST 4 11698 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_MISC_WTAG_EN_LBN 0 11699 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_MISC_WTAG_EN_WIDTH 1 11700 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_DL_EN_OFST 4 11701 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_DL_EN_LBN 0 11702 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_DL_EN_WIDTH 1 11703 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_TX_EN_OFST 4 11704 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_TX_EN_LBN 1 11705 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_TX_EN_WIDTH 1 11706 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_EV_EN_OFST 4 11707 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_EV_EN_LBN 2 11708 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_EV_EN_WIDTH 1 11709 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_RX_EN_OFST 4 11710 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_RX_EN_LBN 3 11711 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_IDO_RX_EN_WIDTH 1 11712 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_RXDMA_EN_OFST 4 11713 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_RXDMA_EN_LBN 0 11714 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_RXDMA_EN_WIDTH 1 11715 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_TXDMA_EN_OFST 4 11716 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_TXDMA_EN_LBN 1 11717 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_TXDMA_EN_WIDTH 1 11718 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_DL_EN_OFST 4 11719 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_DL_EN_LBN 2 11720 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_RO_DL_EN_WIDTH 1 11721 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_MSIX_OFST 4 11722 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_MSIX_LBN 0 11723 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_MSIX_WIDTH 2 11724 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_DL_OFST 4 11725 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_DL_LBN 2 11726 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_DL_WIDTH 2 11727 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_TX_OFST 4 11728 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_TX_LBN 4 11729 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_TX_WIDTH 2 11730 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_EV_OFST 4 11731 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_EV_LBN 6 11732 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_EV_WIDTH 2 11733 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_RX_OFST 4 11734 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_RX_LBN 8 11735 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_TPH_TYPE_RX_WIDTH 2 11736 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_SPARE_OFST 4 11737 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_SPARE_LBN 10 11738 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_IN_TLP_INFO_SPARE_WIDTH 22 11739 11740 /* MC_CMD_SET_TLP_PROCESSING_GLOBALS_OUT msgresponse */ 11741 #define MC_CMD_SET_TLP_PROCESSING_GLOBALS_OUT_LEN 0 11742 11743 11744 /***********************************/ 11745 /* MC_CMD_SATELLITE_DOWNLOAD 11746 * Download a new set of images to the satellite CPUs from the host. 11747 */ 11748 #define MC_CMD_SATELLITE_DOWNLOAD 0x91 11749 #undef MC_CMD_0x91_PRIVILEGE_CTG 11750 11751 #define MC_CMD_0x91_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 11752 11753 /* MC_CMD_SATELLITE_DOWNLOAD_IN msgrequest: The reset requirements for the CPUs 11754 * are subtle, and so downloads must proceed in a number of phases. 11755 * 11756 * 1) PHASE_RESET with a target of TARGET_ALL and chunk ID/length of 0. 11757 * 11758 * 2) PHASE_IMEMS for each of the IMEM targets (target IDs 0-11). Each download 11759 * may consist of multiple chunks. The final chunk (with CHUNK_ID_LAST) should 11760 * be a checksum (a simple 32-bit sum) of the transferred data. An individual 11761 * download may be aborted using CHUNK_ID_ABORT. 11762 * 11763 * 3) PHASE_VECTORS for each of the vector table targets (target IDs 12-15), 11764 * similar to PHASE_IMEMS. 11765 * 11766 * 4) PHASE_READY with a target of TARGET_ALL and chunk ID/length of 0. 11767 * 11768 * After any error (a requested abort is not considered to be an error) the 11769 * sequence must be restarted from PHASE_RESET. 11770 */ 11771 #define MC_CMD_SATELLITE_DOWNLOAD_IN_LENMIN 20 11772 #define MC_CMD_SATELLITE_DOWNLOAD_IN_LENMAX 252 11773 #define MC_CMD_SATELLITE_DOWNLOAD_IN_LENMAX_MCDI2 1020 11774 #define MC_CMD_SATELLITE_DOWNLOAD_IN_LEN(num) (16+4*(num)) 11775 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_NUM(len) (((len)-16)/4) 11776 /* Download phase. (Note: the IDLE phase is used internally and is never valid 11777 * in a command from the host.) 11778 */ 11779 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_OFST 0 11780 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_LEN 4 11781 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_IDLE 0x0 /* enum */ 11782 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_RESET 0x1 /* enum */ 11783 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_IMEMS 0x2 /* enum */ 11784 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_VECTORS 0x3 /* enum */ 11785 #define MC_CMD_SATELLITE_DOWNLOAD_IN_PHASE_READY 0x4 /* enum */ 11786 /* Target for download. (These match the blob numbers defined in 11787 * mc_flash_layout.h.) 11788 */ 11789 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_OFST 4 11790 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_LEN 4 11791 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 11792 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXDI_TEXT 0x0 11793 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 11794 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXDI_TEXT 0x1 11795 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 11796 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXDP_TEXT 0x2 11797 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 11798 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXDP_TEXT 0x3 11799 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 11800 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXHRSL_HR_LUT 0x4 11801 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 11802 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXHRSL_HR_LUT_CFG 0x5 11803 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 11804 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXHRSL_HR_LUT 0x6 11805 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 11806 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXHRSL_HR_LUT_CFG 0x7 11807 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 11808 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXHRSL_HR_PGM 0x8 11809 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 11810 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXHRSL_SL_PGM 0x9 11811 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 11812 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXHRSL_HR_PGM 0xa 11813 /* enum: Valid in phase 2 (PHASE_IMEMS) only */ 11814 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXHRSL_SL_PGM 0xb 11815 /* enum: Valid in phase 3 (PHASE_VECTORS) only */ 11816 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXDI_VTBL0 0xc 11817 /* enum: Valid in phase 3 (PHASE_VECTORS) only */ 11818 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXDI_VTBL0 0xd 11819 /* enum: Valid in phase 3 (PHASE_VECTORS) only */ 11820 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_RXDI_VTBL1 0xe 11821 /* enum: Valid in phase 3 (PHASE_VECTORS) only */ 11822 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_TXDI_VTBL1 0xf 11823 /* enum: Valid in phases 1 (PHASE_RESET) and 4 (PHASE_READY) only */ 11824 #define MC_CMD_SATELLITE_DOWNLOAD_IN_TARGET_ALL 0xffffffff 11825 /* Chunk ID, or CHUNK_ID_LAST or CHUNK_ID_ABORT */ 11826 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_ID_OFST 8 11827 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_ID_LEN 4 11828 /* enum: Last chunk, containing checksum rather than data */ 11829 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_ID_LAST 0xffffffff 11830 /* enum: Abort download of this item */ 11831 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_ID_ABORT 0xfffffffe 11832 /* Length of this chunk in bytes */ 11833 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_LEN_OFST 12 11834 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_LEN_LEN 4 11835 /* Data for this chunk */ 11836 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_OFST 16 11837 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_LEN 4 11838 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_MINNUM 1 11839 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_MAXNUM 59 11840 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_MAXNUM_MCDI2 251 11841 11842 /* MC_CMD_SATELLITE_DOWNLOAD_OUT msgresponse */ 11843 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_LEN 8 11844 /* Same as MC_CMD_ERR field, but included as 0 in success cases */ 11845 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_RESULT_OFST 0 11846 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_RESULT_LEN 4 11847 /* Extra status information */ 11848 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_INFO_OFST 4 11849 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_INFO_LEN 4 11850 /* enum: Code download OK, completed. */ 11851 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_OK_COMPLETE 0x0 11852 /* enum: Code download aborted as requested. */ 11853 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_OK_ABORTED 0x1 11854 /* enum: Code download OK so far, send next chunk. */ 11855 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_OK_NEXT_CHUNK 0x2 11856 /* enum: Download phases out of sequence */ 11857 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_ERR_BAD_PHASE 0x100 11858 /* enum: Bad target for this phase */ 11859 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_ERR_BAD_TARGET 0x101 11860 /* enum: Chunk ID out of sequence */ 11861 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_ERR_BAD_CHUNK_ID 0x200 11862 /* enum: Chunk length zero or too large */ 11863 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_ERR_BAD_CHUNK_LEN 0x201 11864 /* enum: Checksum was incorrect */ 11865 #define MC_CMD_SATELLITE_DOWNLOAD_OUT_ERR_BAD_CHECKSUM 0x300 11866 11867 11868 /***********************************/ 11869 /* MC_CMD_GET_CAPABILITIES 11870 * Get device capabilities. 11871 * 11872 * This is supplementary to the MC_CMD_GET_BOARD_CFG command, and intended to 11873 * reference inherent device capabilities as opposed to current NVRAM config. 11874 */ 11875 #define MC_CMD_GET_CAPABILITIES 0xbe 11876 #undef MC_CMD_0xbe_PRIVILEGE_CTG 11877 11878 #define MC_CMD_0xbe_PRIVILEGE_CTG SRIOV_CTG_GENERAL 11879 11880 /* MC_CMD_GET_CAPABILITIES_IN msgrequest */ 11881 #define MC_CMD_GET_CAPABILITIES_IN_LEN 0 11882 11883 /* MC_CMD_GET_CAPABILITIES_OUT msgresponse */ 11884 #define MC_CMD_GET_CAPABILITIES_OUT_LEN 20 11885 /* First word of flags. */ 11886 #define MC_CMD_GET_CAPABILITIES_OUT_FLAGS1_OFST 0 11887 #define MC_CMD_GET_CAPABILITIES_OUT_FLAGS1_LEN 4 11888 #define MC_CMD_GET_CAPABILITIES_OUT_VPORT_RECONFIGURE_OFST 0 11889 #define MC_CMD_GET_CAPABILITIES_OUT_VPORT_RECONFIGURE_LBN 3 11890 #define MC_CMD_GET_CAPABILITIES_OUT_VPORT_RECONFIGURE_WIDTH 1 11891 #define MC_CMD_GET_CAPABILITIES_OUT_TX_STRIPING_OFST 0 11892 #define MC_CMD_GET_CAPABILITIES_OUT_TX_STRIPING_LBN 4 11893 #define MC_CMD_GET_CAPABILITIES_OUT_TX_STRIPING_WIDTH 1 11894 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_QUERY_OFST 0 11895 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_QUERY_LBN 5 11896 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_QUERY_WIDTH 1 11897 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 11898 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 11899 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 11900 #define MC_CMD_GET_CAPABILITIES_OUT_DRV_ATTACH_PREBOOT_OFST 0 11901 #define MC_CMD_GET_CAPABILITIES_OUT_DRV_ATTACH_PREBOOT_LBN 7 11902 #define MC_CMD_GET_CAPABILITIES_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 11903 #define MC_CMD_GET_CAPABILITIES_OUT_RX_FORCE_EVENT_MERGING_OFST 0 11904 #define MC_CMD_GET_CAPABILITIES_OUT_RX_FORCE_EVENT_MERGING_LBN 8 11905 #define MC_CMD_GET_CAPABILITIES_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 11906 #define MC_CMD_GET_CAPABILITIES_OUT_SET_MAC_ENHANCED_OFST 0 11907 #define MC_CMD_GET_CAPABILITIES_OUT_SET_MAC_ENHANCED_LBN 9 11908 #define MC_CMD_GET_CAPABILITIES_OUT_SET_MAC_ENHANCED_WIDTH 1 11909 #define MC_CMD_GET_CAPABILITIES_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 11910 #define MC_CMD_GET_CAPABILITIES_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 11911 #define MC_CMD_GET_CAPABILITIES_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 11912 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 11913 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 11914 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 11915 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 11916 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 11917 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 11918 #define MC_CMD_GET_CAPABILITIES_OUT_ADDITIONAL_RSS_MODES_OFST 0 11919 #define MC_CMD_GET_CAPABILITIES_OUT_ADDITIONAL_RSS_MODES_LBN 13 11920 #define MC_CMD_GET_CAPABILITIES_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 11921 #define MC_CMD_GET_CAPABILITIES_OUT_QBB_OFST 0 11922 #define MC_CMD_GET_CAPABILITIES_OUT_QBB_LBN 14 11923 #define MC_CMD_GET_CAPABILITIES_OUT_QBB_WIDTH 1 11924 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 11925 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 11926 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 11927 #define MC_CMD_GET_CAPABILITIES_OUT_RX_RSS_LIMITED_OFST 0 11928 #define MC_CMD_GET_CAPABILITIES_OUT_RX_RSS_LIMITED_LBN 16 11929 #define MC_CMD_GET_CAPABILITIES_OUT_RX_RSS_LIMITED_WIDTH 1 11930 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_OFST 0 11931 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_LBN 17 11932 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_WIDTH 1 11933 #define MC_CMD_GET_CAPABILITIES_OUT_RX_INCLUDE_FCS_OFST 0 11934 #define MC_CMD_GET_CAPABILITIES_OUT_RX_INCLUDE_FCS_LBN 18 11935 #define MC_CMD_GET_CAPABILITIES_OUT_RX_INCLUDE_FCS_WIDTH 1 11936 #define MC_CMD_GET_CAPABILITIES_OUT_TX_VLAN_INSERTION_OFST 0 11937 #define MC_CMD_GET_CAPABILITIES_OUT_TX_VLAN_INSERTION_LBN 19 11938 #define MC_CMD_GET_CAPABILITIES_OUT_TX_VLAN_INSERTION_WIDTH 1 11939 #define MC_CMD_GET_CAPABILITIES_OUT_RX_VLAN_STRIPPING_OFST 0 11940 #define MC_CMD_GET_CAPABILITIES_OUT_RX_VLAN_STRIPPING_LBN 20 11941 #define MC_CMD_GET_CAPABILITIES_OUT_RX_VLAN_STRIPPING_WIDTH 1 11942 #define MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_OFST 0 11943 #define MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_LBN 21 11944 #define MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_WIDTH 1 11945 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_0_OFST 0 11946 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_0_LBN 22 11947 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_0_WIDTH 1 11948 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_14_OFST 0 11949 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_14_LBN 23 11950 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_14_WIDTH 1 11951 #define MC_CMD_GET_CAPABILITIES_OUT_RX_TIMESTAMP_OFST 0 11952 #define MC_CMD_GET_CAPABILITIES_OUT_RX_TIMESTAMP_LBN 24 11953 #define MC_CMD_GET_CAPABILITIES_OUT_RX_TIMESTAMP_WIDTH 1 11954 #define MC_CMD_GET_CAPABILITIES_OUT_RX_BATCHING_OFST 0 11955 #define MC_CMD_GET_CAPABILITIES_OUT_RX_BATCHING_LBN 25 11956 #define MC_CMD_GET_CAPABILITIES_OUT_RX_BATCHING_WIDTH 1 11957 #define MC_CMD_GET_CAPABILITIES_OUT_MCAST_FILTER_CHAINING_OFST 0 11958 #define MC_CMD_GET_CAPABILITIES_OUT_MCAST_FILTER_CHAINING_LBN 26 11959 #define MC_CMD_GET_CAPABILITIES_OUT_MCAST_FILTER_CHAINING_WIDTH 1 11960 #define MC_CMD_GET_CAPABILITIES_OUT_PM_AND_RXDP_COUNTERS_OFST 0 11961 #define MC_CMD_GET_CAPABILITIES_OUT_PM_AND_RXDP_COUNTERS_LBN 27 11962 #define MC_CMD_GET_CAPABILITIES_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 11963 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DISABLE_SCATTER_OFST 0 11964 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DISABLE_SCATTER_LBN 28 11965 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DISABLE_SCATTER_WIDTH 1 11966 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 11967 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 11968 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 11969 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_OFST 0 11970 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_LBN 30 11971 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_WIDTH 1 11972 #define MC_CMD_GET_CAPABILITIES_OUT_VXLAN_NVGRE_OFST 0 11973 #define MC_CMD_GET_CAPABILITIES_OUT_VXLAN_NVGRE_LBN 31 11974 #define MC_CMD_GET_CAPABILITIES_OUT_VXLAN_NVGRE_WIDTH 1 11975 /* RxDPCPU firmware id. */ 11976 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DPCPU_FW_ID_OFST 4 11977 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DPCPU_FW_ID_LEN 2 11978 /* enum: Standard RXDP firmware */ 11979 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP 0x0 11980 /* enum: Low latency RXDP firmware */ 11981 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_LOW_LATENCY 0x1 11982 /* enum: Packed stream RXDP firmware */ 11983 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_PACKED_STREAM 0x2 11984 /* enum: Rules engine RXDP firmware */ 11985 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_RULES_ENGINE 0x5 11986 /* enum: DPDK RXDP firmware */ 11987 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_DPDK 0x6 11988 /* enum: BIST RXDP firmware */ 11989 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_BIST 0x10a 11990 /* enum: RXDP Test firmware image 1 */ 11991 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 11992 /* enum: RXDP Test firmware image 2 */ 11993 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 11994 /* enum: RXDP Test firmware image 3 */ 11995 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 11996 /* enum: RXDP Test firmware image 4 */ 11997 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 11998 /* enum: RXDP Test firmware image 5 */ 11999 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_BACKPRESSURE 0x105 12000 /* enum: RXDP Test firmware image 6 */ 12001 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 12002 /* enum: RXDP Test firmware image 7 */ 12003 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 12004 /* enum: RXDP Test firmware image 8 */ 12005 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 12006 /* enum: RXDP Test firmware image 9 */ 12007 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 12008 /* enum: RXDP Test firmware image 10 */ 12009 #define MC_CMD_GET_CAPABILITIES_OUT_RXDP_TEST_FW_SLOW 0x10c 12010 /* TxDPCPU firmware id. */ 12011 #define MC_CMD_GET_CAPABILITIES_OUT_TX_DPCPU_FW_ID_OFST 6 12012 #define MC_CMD_GET_CAPABILITIES_OUT_TX_DPCPU_FW_ID_LEN 2 12013 /* enum: Standard TXDP firmware */ 12014 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP 0x0 12015 /* enum: Low latency TXDP firmware */ 12016 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_LOW_LATENCY 0x1 12017 /* enum: High packet rate TXDP firmware */ 12018 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_HIGH_PACKET_RATE 0x3 12019 /* enum: Rules engine TXDP firmware */ 12020 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_RULES_ENGINE 0x5 12021 /* enum: DPDK TXDP firmware */ 12022 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_DPDK 0x6 12023 /* enum: BIST TXDP firmware */ 12024 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_BIST 0x12d 12025 /* enum: TXDP Test firmware image 1 */ 12026 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 12027 /* enum: TXDP Test firmware image 2 */ 12028 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 12029 /* enum: TXDP CSR bus test firmware */ 12030 #define MC_CMD_GET_CAPABILITIES_OUT_TXDP_TEST_FW_CSR 0x103 12031 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_OFST 8 12032 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_LEN 2 12033 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_REV_OFST 8 12034 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_REV_LBN 0 12035 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_REV_WIDTH 12 12036 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_TYPE_OFST 8 12037 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_TYPE_LBN 12 12038 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 12039 /* enum: reserved value - do not use (may indicate alternative interpretation 12040 * of REV field in future) 12041 */ 12042 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_RESERVED 0x0 12043 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 12044 * development only) 12045 */ 12046 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 12047 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 12048 */ 12049 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 12050 /* enum: RX PD firmware with approximately Siena-compatible behaviour 12051 * (Huntington development only) 12052 */ 12053 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 12054 /* enum: Full featured RX PD production firmware */ 12055 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 12056 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 12057 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_VSWITCH 0x3 12058 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 12059 * (Huntington development only) 12060 */ 12061 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 12062 /* enum: Low latency RX PD production firmware */ 12063 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 12064 /* enum: Packed stream RX PD production firmware */ 12065 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 12066 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 12067 * tests (Medford development only) 12068 */ 12069 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 12070 /* enum: Rules engine RX PD production firmware */ 12071 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 12072 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 12073 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_L3XUDP 0x9 12074 /* enum: DPDK RX PD production firmware */ 12075 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_DPDK 0xa 12076 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 12077 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 12078 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 12079 * encapsulations (Medford development only) 12080 */ 12081 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 12082 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_OFST 10 12083 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_LEN 2 12084 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_REV_OFST 10 12085 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_REV_LBN 0 12086 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_REV_WIDTH 12 12087 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_TYPE_OFST 10 12088 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_TYPE_LBN 12 12089 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 12090 /* enum: reserved value - do not use (may indicate alternative interpretation 12091 * of REV field in future) 12092 */ 12093 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_RESERVED 0x0 12094 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 12095 * development only) 12096 */ 12097 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 12098 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 12099 */ 12100 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 12101 /* enum: TX PD firmware with approximately Siena-compatible behaviour 12102 * (Huntington development only) 12103 */ 12104 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 12105 /* enum: Full featured TX PD production firmware */ 12106 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 12107 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 12108 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_VSWITCH 0x3 12109 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 12110 * (Huntington development only) 12111 */ 12112 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 12113 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 12114 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 12115 * tests (Medford development only) 12116 */ 12117 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 12118 /* enum: Rules engine TX PD production firmware */ 12119 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 12120 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 12121 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_L3XUDP 0x9 12122 /* enum: DPDK TX PD production firmware */ 12123 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_DPDK 0xa 12124 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 12125 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 12126 /* Hardware capabilities of NIC */ 12127 #define MC_CMD_GET_CAPABILITIES_OUT_HW_CAPABILITIES_OFST 12 12128 #define MC_CMD_GET_CAPABILITIES_OUT_HW_CAPABILITIES_LEN 4 12129 /* Licensed capabilities */ 12130 #define MC_CMD_GET_CAPABILITIES_OUT_LICENSE_CAPABILITIES_OFST 16 12131 #define MC_CMD_GET_CAPABILITIES_OUT_LICENSE_CAPABILITIES_LEN 4 12132 12133 /* MC_CMD_GET_CAPABILITIES_V2_IN msgrequest */ 12134 #define MC_CMD_GET_CAPABILITIES_V2_IN_LEN 0 12135 12136 /* MC_CMD_GET_CAPABILITIES_V2_OUT msgresponse */ 12137 #define MC_CMD_GET_CAPABILITIES_V2_OUT_LEN 72 12138 /* First word of flags. */ 12139 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS1_OFST 0 12140 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS1_LEN 4 12141 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VPORT_RECONFIGURE_OFST 0 12142 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VPORT_RECONFIGURE_LBN 3 12143 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VPORT_RECONFIGURE_WIDTH 1 12144 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_STRIPING_OFST 0 12145 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_STRIPING_LBN 4 12146 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_STRIPING_WIDTH 1 12147 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_QUERY_OFST 0 12148 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_QUERY_LBN 5 12149 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_QUERY_WIDTH 1 12150 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 12151 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 12152 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 12153 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DRV_ATTACH_PREBOOT_OFST 0 12154 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DRV_ATTACH_PREBOOT_LBN 7 12155 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 12156 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_FORCE_EVENT_MERGING_OFST 0 12157 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_FORCE_EVENT_MERGING_LBN 8 12158 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 12159 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SET_MAC_ENHANCED_OFST 0 12160 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SET_MAC_ENHANCED_LBN 9 12161 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SET_MAC_ENHANCED_WIDTH 1 12162 #define MC_CMD_GET_CAPABILITIES_V2_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 12163 #define MC_CMD_GET_CAPABILITIES_V2_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 12164 #define MC_CMD_GET_CAPABILITIES_V2_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 12165 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 12166 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 12167 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 12168 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 12169 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 12170 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 12171 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ADDITIONAL_RSS_MODES_OFST 0 12172 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ADDITIONAL_RSS_MODES_LBN 13 12173 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 12174 #define MC_CMD_GET_CAPABILITIES_V2_OUT_QBB_OFST 0 12175 #define MC_CMD_GET_CAPABILITIES_V2_OUT_QBB_LBN 14 12176 #define MC_CMD_GET_CAPABILITIES_V2_OUT_QBB_WIDTH 1 12177 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 12178 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 12179 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 12180 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_RSS_LIMITED_OFST 0 12181 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_RSS_LIMITED_LBN 16 12182 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_RSS_LIMITED_WIDTH 1 12183 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_OFST 0 12184 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_LBN 17 12185 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_WIDTH 1 12186 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_INCLUDE_FCS_OFST 0 12187 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_INCLUDE_FCS_LBN 18 12188 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_INCLUDE_FCS_WIDTH 1 12189 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VLAN_INSERTION_OFST 0 12190 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VLAN_INSERTION_LBN 19 12191 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VLAN_INSERTION_WIDTH 1 12192 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_VLAN_STRIPPING_OFST 0 12193 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_VLAN_STRIPPING_LBN 20 12194 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_VLAN_STRIPPING_WIDTH 1 12195 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_OFST 0 12196 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_LBN 21 12197 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_WIDTH 1 12198 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_0_OFST 0 12199 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_0_LBN 22 12200 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_0_WIDTH 1 12201 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_14_OFST 0 12202 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_14_LBN 23 12203 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_14_WIDTH 1 12204 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_TIMESTAMP_OFST 0 12205 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_TIMESTAMP_LBN 24 12206 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_TIMESTAMP_WIDTH 1 12207 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_BATCHING_OFST 0 12208 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_BATCHING_LBN 25 12209 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_BATCHING_WIDTH 1 12210 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCAST_FILTER_CHAINING_OFST 0 12211 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCAST_FILTER_CHAINING_LBN 26 12212 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCAST_FILTER_CHAINING_WIDTH 1 12213 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PM_AND_RXDP_COUNTERS_OFST 0 12214 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PM_AND_RXDP_COUNTERS_LBN 27 12215 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 12216 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DISABLE_SCATTER_OFST 0 12217 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DISABLE_SCATTER_LBN 28 12218 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DISABLE_SCATTER_WIDTH 1 12219 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 12220 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 12221 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 12222 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_OFST 0 12223 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_LBN 30 12224 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_WIDTH 1 12225 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VXLAN_NVGRE_OFST 0 12226 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VXLAN_NVGRE_LBN 31 12227 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VXLAN_NVGRE_WIDTH 1 12228 /* RxDPCPU firmware id. */ 12229 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DPCPU_FW_ID_OFST 4 12230 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DPCPU_FW_ID_LEN 2 12231 /* enum: Standard RXDP firmware */ 12232 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP 0x0 12233 /* enum: Low latency RXDP firmware */ 12234 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_LOW_LATENCY 0x1 12235 /* enum: Packed stream RXDP firmware */ 12236 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_PACKED_STREAM 0x2 12237 /* enum: Rules engine RXDP firmware */ 12238 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_RULES_ENGINE 0x5 12239 /* enum: DPDK RXDP firmware */ 12240 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_DPDK 0x6 12241 /* enum: BIST RXDP firmware */ 12242 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_BIST 0x10a 12243 /* enum: RXDP Test firmware image 1 */ 12244 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 12245 /* enum: RXDP Test firmware image 2 */ 12246 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 12247 /* enum: RXDP Test firmware image 3 */ 12248 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 12249 /* enum: RXDP Test firmware image 4 */ 12250 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 12251 /* enum: RXDP Test firmware image 5 */ 12252 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_BACKPRESSURE 0x105 12253 /* enum: RXDP Test firmware image 6 */ 12254 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 12255 /* enum: RXDP Test firmware image 7 */ 12256 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 12257 /* enum: RXDP Test firmware image 8 */ 12258 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 12259 /* enum: RXDP Test firmware image 9 */ 12260 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 12261 /* enum: RXDP Test firmware image 10 */ 12262 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_TEST_FW_SLOW 0x10c 12263 /* TxDPCPU firmware id. */ 12264 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DPCPU_FW_ID_OFST 6 12265 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DPCPU_FW_ID_LEN 2 12266 /* enum: Standard TXDP firmware */ 12267 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP 0x0 12268 /* enum: Low latency TXDP firmware */ 12269 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_LOW_LATENCY 0x1 12270 /* enum: High packet rate TXDP firmware */ 12271 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_HIGH_PACKET_RATE 0x3 12272 /* enum: Rules engine TXDP firmware */ 12273 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_RULES_ENGINE 0x5 12274 /* enum: DPDK TXDP firmware */ 12275 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_DPDK 0x6 12276 /* enum: BIST TXDP firmware */ 12277 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_BIST 0x12d 12278 /* enum: TXDP Test firmware image 1 */ 12279 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 12280 /* enum: TXDP Test firmware image 2 */ 12281 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 12282 /* enum: TXDP CSR bus test firmware */ 12283 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXDP_TEST_FW_CSR 0x103 12284 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_OFST 8 12285 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_LEN 2 12286 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_REV_OFST 8 12287 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_REV_LBN 0 12288 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_REV_WIDTH 12 12289 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_TYPE_OFST 8 12290 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_TYPE_LBN 12 12291 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 12292 /* enum: reserved value - do not use (may indicate alternative interpretation 12293 * of REV field in future) 12294 */ 12295 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_RESERVED 0x0 12296 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 12297 * development only) 12298 */ 12299 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 12300 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 12301 */ 12302 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 12303 /* enum: RX PD firmware with approximately Siena-compatible behaviour 12304 * (Huntington development only) 12305 */ 12306 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 12307 /* enum: Full featured RX PD production firmware */ 12308 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 12309 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 12310 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_VSWITCH 0x3 12311 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 12312 * (Huntington development only) 12313 */ 12314 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 12315 /* enum: Low latency RX PD production firmware */ 12316 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 12317 /* enum: Packed stream RX PD production firmware */ 12318 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 12319 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 12320 * tests (Medford development only) 12321 */ 12322 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 12323 /* enum: Rules engine RX PD production firmware */ 12324 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 12325 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 12326 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_L3XUDP 0x9 12327 /* enum: DPDK RX PD production firmware */ 12328 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_DPDK 0xa 12329 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 12330 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 12331 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 12332 * encapsulations (Medford development only) 12333 */ 12334 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 12335 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_OFST 10 12336 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_LEN 2 12337 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_REV_OFST 10 12338 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_REV_LBN 0 12339 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_REV_WIDTH 12 12340 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_TYPE_OFST 10 12341 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_TYPE_LBN 12 12342 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 12343 /* enum: reserved value - do not use (may indicate alternative interpretation 12344 * of REV field in future) 12345 */ 12346 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_RESERVED 0x0 12347 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 12348 * development only) 12349 */ 12350 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 12351 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 12352 */ 12353 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 12354 /* enum: TX PD firmware with approximately Siena-compatible behaviour 12355 * (Huntington development only) 12356 */ 12357 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 12358 /* enum: Full featured TX PD production firmware */ 12359 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 12360 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 12361 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_VSWITCH 0x3 12362 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 12363 * (Huntington development only) 12364 */ 12365 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 12366 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 12367 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 12368 * tests (Medford development only) 12369 */ 12370 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 12371 /* enum: Rules engine TX PD production firmware */ 12372 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 12373 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 12374 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_L3XUDP 0x9 12375 /* enum: DPDK TX PD production firmware */ 12376 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_DPDK 0xa 12377 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 12378 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 12379 /* Hardware capabilities of NIC */ 12380 #define MC_CMD_GET_CAPABILITIES_V2_OUT_HW_CAPABILITIES_OFST 12 12381 #define MC_CMD_GET_CAPABILITIES_V2_OUT_HW_CAPABILITIES_LEN 4 12382 /* Licensed capabilities */ 12383 #define MC_CMD_GET_CAPABILITIES_V2_OUT_LICENSE_CAPABILITIES_OFST 16 12384 #define MC_CMD_GET_CAPABILITIES_V2_OUT_LICENSE_CAPABILITIES_LEN 4 12385 /* Second word of flags. Not present on older firmware (check the length). */ 12386 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS2_OFST 20 12387 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS2_LEN 4 12388 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_OFST 20 12389 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_LBN 0 12390 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_WIDTH 1 12391 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_ENCAP_OFST 20 12392 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_ENCAP_LBN 1 12393 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_ENCAP_WIDTH 1 12394 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVQ_TIMER_CTRL_OFST 20 12395 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVQ_TIMER_CTRL_LBN 2 12396 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVQ_TIMER_CTRL_WIDTH 1 12397 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVENT_CUT_THROUGH_OFST 20 12398 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVENT_CUT_THROUGH_LBN 3 12399 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVENT_CUT_THROUGH_WIDTH 1 12400 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_CUT_THROUGH_OFST 20 12401 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_CUT_THROUGH_LBN 4 12402 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_CUT_THROUGH_WIDTH 1 12403 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VFIFO_ULL_MODE_OFST 20 12404 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VFIFO_ULL_MODE_LBN 5 12405 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 12406 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 12407 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 12408 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 12409 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 12410 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 12411 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 12412 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_V2_OFST 20 12413 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_V2_LBN 7 12414 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_V2_WIDTH 1 12415 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_TIMESTAMPING_OFST 20 12416 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_TIMESTAMPING_LBN 8 12417 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 12418 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TIMESTAMP_OFST 20 12419 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TIMESTAMP_LBN 9 12420 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TIMESTAMP_WIDTH 1 12421 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_SNIFF_OFST 20 12422 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_SNIFF_LBN 10 12423 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_SNIFF_WIDTH 1 12424 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_SNIFF_OFST 20 12425 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_SNIFF_LBN 11 12426 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_SNIFF_WIDTH 1 12427 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 12428 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 12429 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 12430 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_BACKGROUND_OFST 20 12431 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_BACKGROUND_LBN 13 12432 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_BACKGROUND_WIDTH 1 12433 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_DB_RETURN_OFST 20 12434 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_DB_RETURN_LBN 14 12435 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_DB_RETURN_WIDTH 1 12436 #define MC_CMD_GET_CAPABILITIES_V2_OUT_CTPIO_OFST 20 12437 #define MC_CMD_GET_CAPABILITIES_V2_OUT_CTPIO_LBN 15 12438 #define MC_CMD_GET_CAPABILITIES_V2_OUT_CTPIO_WIDTH 1 12439 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_SUPPORT_OFST 20 12440 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_SUPPORT_LBN 16 12441 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_SUPPORT_WIDTH 1 12442 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_BOUND_OFST 20 12443 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_BOUND_LBN 17 12444 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_BOUND_WIDTH 1 12445 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 12446 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 12447 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 12448 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_FLAG_OFST 20 12449 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_FLAG_LBN 19 12450 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_FLAG_WIDTH 1 12451 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_MARK_OFST 20 12452 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_MARK_LBN 20 12453 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_MARK_WIDTH 1 12454 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 12455 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 12456 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 12457 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 12458 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 12459 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 12460 #define MC_CMD_GET_CAPABILITIES_V2_OUT_L3XUDP_SUPPORT_OFST 20 12461 #define MC_CMD_GET_CAPABILITIES_V2_OUT_L3XUDP_SUPPORT_LBN 22 12462 #define MC_CMD_GET_CAPABILITIES_V2_OUT_L3XUDP_SUPPORT_WIDTH 1 12463 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 12464 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 12465 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 12466 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VI_SPREADING_OFST 20 12467 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VI_SPREADING_LBN 24 12468 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VI_SPREADING_WIDTH 1 12469 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_HLB_IDLE_OFST 20 12470 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_HLB_IDLE_LBN 25 12471 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_HLB_IDLE_WIDTH 1 12472 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 12473 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 12474 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 12475 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 12476 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 12477 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 12478 #define MC_CMD_GET_CAPABILITIES_V2_OUT_BUNDLE_UPDATE_OFST 20 12479 #define MC_CMD_GET_CAPABILITIES_V2_OUT_BUNDLE_UPDATE_LBN 28 12480 #define MC_CMD_GET_CAPABILITIES_V2_OUT_BUNDLE_UPDATE_WIDTH 1 12481 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V3_OFST 20 12482 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V3_LBN 29 12483 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V3_WIDTH 1 12484 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DYNAMIC_SENSORS_OFST 20 12485 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DYNAMIC_SENSORS_LBN 30 12486 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DYNAMIC_SENSORS_WIDTH 1 12487 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 12488 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 12489 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 12490 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 12491 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 12492 */ 12493 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 12494 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 12495 /* One byte per PF containing the number of the external port assigned to this 12496 * PF, indexed by PF number. Special values indicate that a PF is either not 12497 * present or not assigned. 12498 */ 12499 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 12500 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 12501 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 12502 /* enum: The caller is not permitted to access information on this PF. */ 12503 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ACCESS_NOT_PERMITTED 0xff 12504 /* enum: PF does not exist. */ 12505 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PF_NOT_PRESENT 0xfe 12506 /* enum: PF does exist but is not assigned to any external port. */ 12507 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PF_NOT_ASSIGNED 0xfd 12508 /* enum: This value indicates that PF is assigned, but it cannot be expressed 12509 * in this field. It is intended for a possible future situation where a more 12510 * complex scheme of PFs to ports mapping is being used. The future driver 12511 * should look for a new field supporting the new scheme. The current/old 12512 * driver should treat this value as PF_NOT_ASSIGNED. 12513 */ 12514 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 12515 /* One byte per PF containing the number of its VFs, indexed by PF number. A 12516 * special value indicates that a PF is not present. 12517 */ 12518 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VFS_PER_PF_OFST 42 12519 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VFS_PER_PF_LEN 1 12520 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VFS_PER_PF_NUM 16 12521 /* enum: The caller is not permitted to access information on this PF. */ 12522 /* MC_CMD_GET_CAPABILITIES_V2_OUT_ACCESS_NOT_PERMITTED 0xff */ 12523 /* enum: PF does not exist. */ 12524 /* MC_CMD_GET_CAPABILITIES_V2_OUT_PF_NOT_PRESENT 0xfe */ 12525 /* Number of VIs available for each external port */ 12526 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VIS_PER_PORT_OFST 58 12527 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VIS_PER_PORT_LEN 2 12528 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VIS_PER_PORT_NUM 4 12529 /* Size of RX descriptor cache expressed as binary logarithm The actual size 12530 * equals (2 ^ RX_DESC_CACHE_SIZE) 12531 */ 12532 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DESC_CACHE_SIZE_OFST 66 12533 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DESC_CACHE_SIZE_LEN 1 12534 /* Size of TX descriptor cache expressed as binary logarithm The actual size 12535 * equals (2 ^ TX_DESC_CACHE_SIZE) 12536 */ 12537 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DESC_CACHE_SIZE_OFST 67 12538 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DESC_CACHE_SIZE_LEN 1 12539 /* Total number of available PIO buffers */ 12540 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_PIO_BUFFS_OFST 68 12541 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_PIO_BUFFS_LEN 2 12542 /* Size of a single PIO buffer */ 12543 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SIZE_PIO_BUFF_OFST 70 12544 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SIZE_PIO_BUFF_LEN 2 12545 12546 /* MC_CMD_GET_CAPABILITIES_V3_OUT msgresponse */ 12547 #define MC_CMD_GET_CAPABILITIES_V3_OUT_LEN 76 12548 /* First word of flags. */ 12549 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS1_OFST 0 12550 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS1_LEN 4 12551 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VPORT_RECONFIGURE_OFST 0 12552 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VPORT_RECONFIGURE_LBN 3 12553 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VPORT_RECONFIGURE_WIDTH 1 12554 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_STRIPING_OFST 0 12555 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_STRIPING_LBN 4 12556 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_STRIPING_WIDTH 1 12557 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_QUERY_OFST 0 12558 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_QUERY_LBN 5 12559 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_QUERY_WIDTH 1 12560 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 12561 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 12562 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 12563 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DRV_ATTACH_PREBOOT_OFST 0 12564 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DRV_ATTACH_PREBOOT_LBN 7 12565 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 12566 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_FORCE_EVENT_MERGING_OFST 0 12567 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_FORCE_EVENT_MERGING_LBN 8 12568 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 12569 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SET_MAC_ENHANCED_OFST 0 12570 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SET_MAC_ENHANCED_LBN 9 12571 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SET_MAC_ENHANCED_WIDTH 1 12572 #define MC_CMD_GET_CAPABILITIES_V3_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 12573 #define MC_CMD_GET_CAPABILITIES_V3_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 12574 #define MC_CMD_GET_CAPABILITIES_V3_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 12575 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 12576 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 12577 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 12578 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 12579 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 12580 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 12581 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ADDITIONAL_RSS_MODES_OFST 0 12582 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ADDITIONAL_RSS_MODES_LBN 13 12583 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 12584 #define MC_CMD_GET_CAPABILITIES_V3_OUT_QBB_OFST 0 12585 #define MC_CMD_GET_CAPABILITIES_V3_OUT_QBB_LBN 14 12586 #define MC_CMD_GET_CAPABILITIES_V3_OUT_QBB_WIDTH 1 12587 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 12588 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 12589 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 12590 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_RSS_LIMITED_OFST 0 12591 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_RSS_LIMITED_LBN 16 12592 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_RSS_LIMITED_WIDTH 1 12593 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_OFST 0 12594 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_LBN 17 12595 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_WIDTH 1 12596 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_INCLUDE_FCS_OFST 0 12597 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_INCLUDE_FCS_LBN 18 12598 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_INCLUDE_FCS_WIDTH 1 12599 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VLAN_INSERTION_OFST 0 12600 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VLAN_INSERTION_LBN 19 12601 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VLAN_INSERTION_WIDTH 1 12602 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_VLAN_STRIPPING_OFST 0 12603 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_VLAN_STRIPPING_LBN 20 12604 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_VLAN_STRIPPING_WIDTH 1 12605 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_OFST 0 12606 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_LBN 21 12607 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_WIDTH 1 12608 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_0_OFST 0 12609 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_0_LBN 22 12610 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_0_WIDTH 1 12611 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_14_OFST 0 12612 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_14_LBN 23 12613 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_14_WIDTH 1 12614 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_TIMESTAMP_OFST 0 12615 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_TIMESTAMP_LBN 24 12616 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_TIMESTAMP_WIDTH 1 12617 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_BATCHING_OFST 0 12618 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_BATCHING_LBN 25 12619 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_BATCHING_WIDTH 1 12620 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCAST_FILTER_CHAINING_OFST 0 12621 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCAST_FILTER_CHAINING_LBN 26 12622 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCAST_FILTER_CHAINING_WIDTH 1 12623 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PM_AND_RXDP_COUNTERS_OFST 0 12624 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PM_AND_RXDP_COUNTERS_LBN 27 12625 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 12626 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DISABLE_SCATTER_OFST 0 12627 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DISABLE_SCATTER_LBN 28 12628 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DISABLE_SCATTER_WIDTH 1 12629 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 12630 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 12631 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 12632 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_OFST 0 12633 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_LBN 30 12634 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_WIDTH 1 12635 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VXLAN_NVGRE_OFST 0 12636 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VXLAN_NVGRE_LBN 31 12637 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VXLAN_NVGRE_WIDTH 1 12638 /* RxDPCPU firmware id. */ 12639 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DPCPU_FW_ID_OFST 4 12640 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DPCPU_FW_ID_LEN 2 12641 /* enum: Standard RXDP firmware */ 12642 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP 0x0 12643 /* enum: Low latency RXDP firmware */ 12644 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_LOW_LATENCY 0x1 12645 /* enum: Packed stream RXDP firmware */ 12646 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_PACKED_STREAM 0x2 12647 /* enum: Rules engine RXDP firmware */ 12648 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_RULES_ENGINE 0x5 12649 /* enum: DPDK RXDP firmware */ 12650 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_DPDK 0x6 12651 /* enum: BIST RXDP firmware */ 12652 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_BIST 0x10a 12653 /* enum: RXDP Test firmware image 1 */ 12654 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 12655 /* enum: RXDP Test firmware image 2 */ 12656 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 12657 /* enum: RXDP Test firmware image 3 */ 12658 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 12659 /* enum: RXDP Test firmware image 4 */ 12660 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 12661 /* enum: RXDP Test firmware image 5 */ 12662 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_BACKPRESSURE 0x105 12663 /* enum: RXDP Test firmware image 6 */ 12664 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 12665 /* enum: RXDP Test firmware image 7 */ 12666 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 12667 /* enum: RXDP Test firmware image 8 */ 12668 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 12669 /* enum: RXDP Test firmware image 9 */ 12670 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 12671 /* enum: RXDP Test firmware image 10 */ 12672 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_TEST_FW_SLOW 0x10c 12673 /* TxDPCPU firmware id. */ 12674 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DPCPU_FW_ID_OFST 6 12675 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DPCPU_FW_ID_LEN 2 12676 /* enum: Standard TXDP firmware */ 12677 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP 0x0 12678 /* enum: Low latency TXDP firmware */ 12679 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_LOW_LATENCY 0x1 12680 /* enum: High packet rate TXDP firmware */ 12681 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_HIGH_PACKET_RATE 0x3 12682 /* enum: Rules engine TXDP firmware */ 12683 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_RULES_ENGINE 0x5 12684 /* enum: DPDK TXDP firmware */ 12685 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_DPDK 0x6 12686 /* enum: BIST TXDP firmware */ 12687 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_BIST 0x12d 12688 /* enum: TXDP Test firmware image 1 */ 12689 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 12690 /* enum: TXDP Test firmware image 2 */ 12691 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 12692 /* enum: TXDP CSR bus test firmware */ 12693 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXDP_TEST_FW_CSR 0x103 12694 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_OFST 8 12695 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_LEN 2 12696 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_REV_OFST 8 12697 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_REV_LBN 0 12698 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_REV_WIDTH 12 12699 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_TYPE_OFST 8 12700 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_TYPE_LBN 12 12701 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 12702 /* enum: reserved value - do not use (may indicate alternative interpretation 12703 * of REV field in future) 12704 */ 12705 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_RESERVED 0x0 12706 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 12707 * development only) 12708 */ 12709 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 12710 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 12711 */ 12712 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 12713 /* enum: RX PD firmware with approximately Siena-compatible behaviour 12714 * (Huntington development only) 12715 */ 12716 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 12717 /* enum: Full featured RX PD production firmware */ 12718 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 12719 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 12720 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_VSWITCH 0x3 12721 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 12722 * (Huntington development only) 12723 */ 12724 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 12725 /* enum: Low latency RX PD production firmware */ 12726 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 12727 /* enum: Packed stream RX PD production firmware */ 12728 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 12729 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 12730 * tests (Medford development only) 12731 */ 12732 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 12733 /* enum: Rules engine RX PD production firmware */ 12734 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 12735 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 12736 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_L3XUDP 0x9 12737 /* enum: DPDK RX PD production firmware */ 12738 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_DPDK 0xa 12739 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 12740 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 12741 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 12742 * encapsulations (Medford development only) 12743 */ 12744 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 12745 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_OFST 10 12746 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_LEN 2 12747 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_REV_OFST 10 12748 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_REV_LBN 0 12749 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_REV_WIDTH 12 12750 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_TYPE_OFST 10 12751 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_TYPE_LBN 12 12752 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 12753 /* enum: reserved value - do not use (may indicate alternative interpretation 12754 * of REV field in future) 12755 */ 12756 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_RESERVED 0x0 12757 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 12758 * development only) 12759 */ 12760 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 12761 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 12762 */ 12763 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 12764 /* enum: TX PD firmware with approximately Siena-compatible behaviour 12765 * (Huntington development only) 12766 */ 12767 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 12768 /* enum: Full featured TX PD production firmware */ 12769 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 12770 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 12771 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_VSWITCH 0x3 12772 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 12773 * (Huntington development only) 12774 */ 12775 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 12776 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 12777 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 12778 * tests (Medford development only) 12779 */ 12780 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 12781 /* enum: Rules engine TX PD production firmware */ 12782 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 12783 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 12784 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_L3XUDP 0x9 12785 /* enum: DPDK TX PD production firmware */ 12786 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_DPDK 0xa 12787 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 12788 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 12789 /* Hardware capabilities of NIC */ 12790 #define MC_CMD_GET_CAPABILITIES_V3_OUT_HW_CAPABILITIES_OFST 12 12791 #define MC_CMD_GET_CAPABILITIES_V3_OUT_HW_CAPABILITIES_LEN 4 12792 /* Licensed capabilities */ 12793 #define MC_CMD_GET_CAPABILITIES_V3_OUT_LICENSE_CAPABILITIES_OFST 16 12794 #define MC_CMD_GET_CAPABILITIES_V3_OUT_LICENSE_CAPABILITIES_LEN 4 12795 /* Second word of flags. Not present on older firmware (check the length). */ 12796 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS2_OFST 20 12797 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS2_LEN 4 12798 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_OFST 20 12799 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_LBN 0 12800 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_WIDTH 1 12801 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_ENCAP_OFST 20 12802 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_ENCAP_LBN 1 12803 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_ENCAP_WIDTH 1 12804 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVQ_TIMER_CTRL_OFST 20 12805 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVQ_TIMER_CTRL_LBN 2 12806 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVQ_TIMER_CTRL_WIDTH 1 12807 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVENT_CUT_THROUGH_OFST 20 12808 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVENT_CUT_THROUGH_LBN 3 12809 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVENT_CUT_THROUGH_WIDTH 1 12810 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_CUT_THROUGH_OFST 20 12811 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_CUT_THROUGH_LBN 4 12812 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_CUT_THROUGH_WIDTH 1 12813 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VFIFO_ULL_MODE_OFST 20 12814 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VFIFO_ULL_MODE_LBN 5 12815 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 12816 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 12817 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 12818 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 12819 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 12820 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 12821 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 12822 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_V2_OFST 20 12823 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_V2_LBN 7 12824 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_V2_WIDTH 1 12825 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_TIMESTAMPING_OFST 20 12826 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_TIMESTAMPING_LBN 8 12827 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 12828 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TIMESTAMP_OFST 20 12829 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TIMESTAMP_LBN 9 12830 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TIMESTAMP_WIDTH 1 12831 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_SNIFF_OFST 20 12832 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_SNIFF_LBN 10 12833 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_SNIFF_WIDTH 1 12834 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_SNIFF_OFST 20 12835 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_SNIFF_LBN 11 12836 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_SNIFF_WIDTH 1 12837 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 12838 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 12839 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 12840 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_BACKGROUND_OFST 20 12841 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_BACKGROUND_LBN 13 12842 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_BACKGROUND_WIDTH 1 12843 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_DB_RETURN_OFST 20 12844 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_DB_RETURN_LBN 14 12845 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_DB_RETURN_WIDTH 1 12846 #define MC_CMD_GET_CAPABILITIES_V3_OUT_CTPIO_OFST 20 12847 #define MC_CMD_GET_CAPABILITIES_V3_OUT_CTPIO_LBN 15 12848 #define MC_CMD_GET_CAPABILITIES_V3_OUT_CTPIO_WIDTH 1 12849 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_SUPPORT_OFST 20 12850 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_SUPPORT_LBN 16 12851 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_SUPPORT_WIDTH 1 12852 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_BOUND_OFST 20 12853 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_BOUND_LBN 17 12854 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_BOUND_WIDTH 1 12855 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 12856 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 12857 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 12858 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_FLAG_OFST 20 12859 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_FLAG_LBN 19 12860 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_FLAG_WIDTH 1 12861 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_MARK_OFST 20 12862 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_MARK_LBN 20 12863 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_MARK_WIDTH 1 12864 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 12865 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 12866 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 12867 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 12868 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 12869 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 12870 #define MC_CMD_GET_CAPABILITIES_V3_OUT_L3XUDP_SUPPORT_OFST 20 12871 #define MC_CMD_GET_CAPABILITIES_V3_OUT_L3XUDP_SUPPORT_LBN 22 12872 #define MC_CMD_GET_CAPABILITIES_V3_OUT_L3XUDP_SUPPORT_WIDTH 1 12873 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 12874 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 12875 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 12876 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_SPREADING_OFST 20 12877 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_SPREADING_LBN 24 12878 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_SPREADING_WIDTH 1 12879 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_HLB_IDLE_OFST 20 12880 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_HLB_IDLE_LBN 25 12881 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_HLB_IDLE_WIDTH 1 12882 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 12883 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 12884 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 12885 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 12886 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 12887 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 12888 #define MC_CMD_GET_CAPABILITIES_V3_OUT_BUNDLE_UPDATE_OFST 20 12889 #define MC_CMD_GET_CAPABILITIES_V3_OUT_BUNDLE_UPDATE_LBN 28 12890 #define MC_CMD_GET_CAPABILITIES_V3_OUT_BUNDLE_UPDATE_WIDTH 1 12891 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V3_OFST 20 12892 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V3_LBN 29 12893 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V3_WIDTH 1 12894 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DYNAMIC_SENSORS_OFST 20 12895 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DYNAMIC_SENSORS_LBN 30 12896 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DYNAMIC_SENSORS_WIDTH 1 12897 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 12898 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 12899 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 12900 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 12901 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 12902 */ 12903 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 12904 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 12905 /* One byte per PF containing the number of the external port assigned to this 12906 * PF, indexed by PF number. Special values indicate that a PF is either not 12907 * present or not assigned. 12908 */ 12909 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 12910 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 12911 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 12912 /* enum: The caller is not permitted to access information on this PF. */ 12913 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ACCESS_NOT_PERMITTED 0xff 12914 /* enum: PF does not exist. */ 12915 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PF_NOT_PRESENT 0xfe 12916 /* enum: PF does exist but is not assigned to any external port. */ 12917 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PF_NOT_ASSIGNED 0xfd 12918 /* enum: This value indicates that PF is assigned, but it cannot be expressed 12919 * in this field. It is intended for a possible future situation where a more 12920 * complex scheme of PFs to ports mapping is being used. The future driver 12921 * should look for a new field supporting the new scheme. The current/old 12922 * driver should treat this value as PF_NOT_ASSIGNED. 12923 */ 12924 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 12925 /* One byte per PF containing the number of its VFs, indexed by PF number. A 12926 * special value indicates that a PF is not present. 12927 */ 12928 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VFS_PER_PF_OFST 42 12929 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VFS_PER_PF_LEN 1 12930 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VFS_PER_PF_NUM 16 12931 /* enum: The caller is not permitted to access information on this PF. */ 12932 /* MC_CMD_GET_CAPABILITIES_V3_OUT_ACCESS_NOT_PERMITTED 0xff */ 12933 /* enum: PF does not exist. */ 12934 /* MC_CMD_GET_CAPABILITIES_V3_OUT_PF_NOT_PRESENT 0xfe */ 12935 /* Number of VIs available for each external port */ 12936 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VIS_PER_PORT_OFST 58 12937 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VIS_PER_PORT_LEN 2 12938 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VIS_PER_PORT_NUM 4 12939 /* Size of RX descriptor cache expressed as binary logarithm The actual size 12940 * equals (2 ^ RX_DESC_CACHE_SIZE) 12941 */ 12942 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DESC_CACHE_SIZE_OFST 66 12943 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DESC_CACHE_SIZE_LEN 1 12944 /* Size of TX descriptor cache expressed as binary logarithm The actual size 12945 * equals (2 ^ TX_DESC_CACHE_SIZE) 12946 */ 12947 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DESC_CACHE_SIZE_OFST 67 12948 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DESC_CACHE_SIZE_LEN 1 12949 /* Total number of available PIO buffers */ 12950 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_PIO_BUFFS_OFST 68 12951 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_PIO_BUFFS_LEN 2 12952 /* Size of a single PIO buffer */ 12953 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SIZE_PIO_BUFF_OFST 70 12954 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SIZE_PIO_BUFF_LEN 2 12955 /* On chips later than Medford the amount of address space assigned to each VI 12956 * is configurable. This is a global setting that the driver must query to 12957 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 12958 * with 8k VI windows. 12959 */ 12960 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_OFST 72 12961 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_LEN 1 12962 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 12963 * CTPIO is not mapped. 12964 */ 12965 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_8K 0x0 12966 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 12967 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_16K 0x1 12968 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 12969 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_64K 0x2 12970 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 12971 * (SF-115995-SW) in the present configuration of firmware and port mode. 12972 */ 12973 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 12974 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 12975 /* Number of buffers per adapter that can be used for VFIFO Stuffing 12976 * (SF-115995-SW) in the present configuration of firmware and port mode. 12977 */ 12978 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 12979 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 12980 12981 /* MC_CMD_GET_CAPABILITIES_V4_OUT msgresponse */ 12982 #define MC_CMD_GET_CAPABILITIES_V4_OUT_LEN 78 12983 /* First word of flags. */ 12984 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS1_OFST 0 12985 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS1_LEN 4 12986 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VPORT_RECONFIGURE_OFST 0 12987 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VPORT_RECONFIGURE_LBN 3 12988 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VPORT_RECONFIGURE_WIDTH 1 12989 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_STRIPING_OFST 0 12990 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_STRIPING_LBN 4 12991 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_STRIPING_WIDTH 1 12992 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_QUERY_OFST 0 12993 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_QUERY_LBN 5 12994 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_QUERY_WIDTH 1 12995 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 12996 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 12997 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 12998 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DRV_ATTACH_PREBOOT_OFST 0 12999 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DRV_ATTACH_PREBOOT_LBN 7 13000 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 13001 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_FORCE_EVENT_MERGING_OFST 0 13002 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_FORCE_EVENT_MERGING_LBN 8 13003 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 13004 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SET_MAC_ENHANCED_OFST 0 13005 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SET_MAC_ENHANCED_LBN 9 13006 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SET_MAC_ENHANCED_WIDTH 1 13007 #define MC_CMD_GET_CAPABILITIES_V4_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 13008 #define MC_CMD_GET_CAPABILITIES_V4_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 13009 #define MC_CMD_GET_CAPABILITIES_V4_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 13010 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 13011 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 13012 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 13013 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 13014 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 13015 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 13016 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ADDITIONAL_RSS_MODES_OFST 0 13017 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ADDITIONAL_RSS_MODES_LBN 13 13018 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 13019 #define MC_CMD_GET_CAPABILITIES_V4_OUT_QBB_OFST 0 13020 #define MC_CMD_GET_CAPABILITIES_V4_OUT_QBB_LBN 14 13021 #define MC_CMD_GET_CAPABILITIES_V4_OUT_QBB_WIDTH 1 13022 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 13023 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 13024 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 13025 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_RSS_LIMITED_OFST 0 13026 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_RSS_LIMITED_LBN 16 13027 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_RSS_LIMITED_WIDTH 1 13028 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_OFST 0 13029 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_LBN 17 13030 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_WIDTH 1 13031 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_INCLUDE_FCS_OFST 0 13032 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_INCLUDE_FCS_LBN 18 13033 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_INCLUDE_FCS_WIDTH 1 13034 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VLAN_INSERTION_OFST 0 13035 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VLAN_INSERTION_LBN 19 13036 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VLAN_INSERTION_WIDTH 1 13037 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_VLAN_STRIPPING_OFST 0 13038 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_VLAN_STRIPPING_LBN 20 13039 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_VLAN_STRIPPING_WIDTH 1 13040 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_OFST 0 13041 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_LBN 21 13042 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_WIDTH 1 13043 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_0_OFST 0 13044 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_0_LBN 22 13045 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_0_WIDTH 1 13046 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_14_OFST 0 13047 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_14_LBN 23 13048 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_14_WIDTH 1 13049 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_TIMESTAMP_OFST 0 13050 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_TIMESTAMP_LBN 24 13051 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_TIMESTAMP_WIDTH 1 13052 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_BATCHING_OFST 0 13053 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_BATCHING_LBN 25 13054 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_BATCHING_WIDTH 1 13055 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCAST_FILTER_CHAINING_OFST 0 13056 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCAST_FILTER_CHAINING_LBN 26 13057 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCAST_FILTER_CHAINING_WIDTH 1 13058 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PM_AND_RXDP_COUNTERS_OFST 0 13059 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PM_AND_RXDP_COUNTERS_LBN 27 13060 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 13061 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DISABLE_SCATTER_OFST 0 13062 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DISABLE_SCATTER_LBN 28 13063 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DISABLE_SCATTER_WIDTH 1 13064 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 13065 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 13066 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 13067 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_OFST 0 13068 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_LBN 30 13069 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_WIDTH 1 13070 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VXLAN_NVGRE_OFST 0 13071 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VXLAN_NVGRE_LBN 31 13072 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VXLAN_NVGRE_WIDTH 1 13073 /* RxDPCPU firmware id. */ 13074 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DPCPU_FW_ID_OFST 4 13075 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DPCPU_FW_ID_LEN 2 13076 /* enum: Standard RXDP firmware */ 13077 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP 0x0 13078 /* enum: Low latency RXDP firmware */ 13079 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_LOW_LATENCY 0x1 13080 /* enum: Packed stream RXDP firmware */ 13081 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_PACKED_STREAM 0x2 13082 /* enum: Rules engine RXDP firmware */ 13083 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_RULES_ENGINE 0x5 13084 /* enum: DPDK RXDP firmware */ 13085 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_DPDK 0x6 13086 /* enum: BIST RXDP firmware */ 13087 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_BIST 0x10a 13088 /* enum: RXDP Test firmware image 1 */ 13089 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 13090 /* enum: RXDP Test firmware image 2 */ 13091 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 13092 /* enum: RXDP Test firmware image 3 */ 13093 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 13094 /* enum: RXDP Test firmware image 4 */ 13095 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 13096 /* enum: RXDP Test firmware image 5 */ 13097 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_BACKPRESSURE 0x105 13098 /* enum: RXDP Test firmware image 6 */ 13099 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 13100 /* enum: RXDP Test firmware image 7 */ 13101 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 13102 /* enum: RXDP Test firmware image 8 */ 13103 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 13104 /* enum: RXDP Test firmware image 9 */ 13105 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 13106 /* enum: RXDP Test firmware image 10 */ 13107 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_TEST_FW_SLOW 0x10c 13108 /* TxDPCPU firmware id. */ 13109 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DPCPU_FW_ID_OFST 6 13110 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DPCPU_FW_ID_LEN 2 13111 /* enum: Standard TXDP firmware */ 13112 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP 0x0 13113 /* enum: Low latency TXDP firmware */ 13114 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_LOW_LATENCY 0x1 13115 /* enum: High packet rate TXDP firmware */ 13116 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_HIGH_PACKET_RATE 0x3 13117 /* enum: Rules engine TXDP firmware */ 13118 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_RULES_ENGINE 0x5 13119 /* enum: DPDK TXDP firmware */ 13120 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_DPDK 0x6 13121 /* enum: BIST TXDP firmware */ 13122 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_BIST 0x12d 13123 /* enum: TXDP Test firmware image 1 */ 13124 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 13125 /* enum: TXDP Test firmware image 2 */ 13126 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 13127 /* enum: TXDP CSR bus test firmware */ 13128 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXDP_TEST_FW_CSR 0x103 13129 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_OFST 8 13130 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_LEN 2 13131 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_REV_OFST 8 13132 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_REV_LBN 0 13133 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_REV_WIDTH 12 13134 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_TYPE_OFST 8 13135 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_TYPE_LBN 12 13136 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 13137 /* enum: reserved value - do not use (may indicate alternative interpretation 13138 * of REV field in future) 13139 */ 13140 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_RESERVED 0x0 13141 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 13142 * development only) 13143 */ 13144 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 13145 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 13146 */ 13147 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 13148 /* enum: RX PD firmware with approximately Siena-compatible behaviour 13149 * (Huntington development only) 13150 */ 13151 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 13152 /* enum: Full featured RX PD production firmware */ 13153 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 13154 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 13155 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_VSWITCH 0x3 13156 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 13157 * (Huntington development only) 13158 */ 13159 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 13160 /* enum: Low latency RX PD production firmware */ 13161 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 13162 /* enum: Packed stream RX PD production firmware */ 13163 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 13164 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 13165 * tests (Medford development only) 13166 */ 13167 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 13168 /* enum: Rules engine RX PD production firmware */ 13169 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 13170 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 13171 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_L3XUDP 0x9 13172 /* enum: DPDK RX PD production firmware */ 13173 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_DPDK 0xa 13174 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 13175 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 13176 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 13177 * encapsulations (Medford development only) 13178 */ 13179 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 13180 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_OFST 10 13181 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_LEN 2 13182 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_REV_OFST 10 13183 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_REV_LBN 0 13184 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_REV_WIDTH 12 13185 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_TYPE_OFST 10 13186 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_TYPE_LBN 12 13187 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 13188 /* enum: reserved value - do not use (may indicate alternative interpretation 13189 * of REV field in future) 13190 */ 13191 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_RESERVED 0x0 13192 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 13193 * development only) 13194 */ 13195 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 13196 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 13197 */ 13198 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 13199 /* enum: TX PD firmware with approximately Siena-compatible behaviour 13200 * (Huntington development only) 13201 */ 13202 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 13203 /* enum: Full featured TX PD production firmware */ 13204 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 13205 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 13206 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_VSWITCH 0x3 13207 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 13208 * (Huntington development only) 13209 */ 13210 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 13211 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 13212 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 13213 * tests (Medford development only) 13214 */ 13215 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 13216 /* enum: Rules engine TX PD production firmware */ 13217 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 13218 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 13219 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_L3XUDP 0x9 13220 /* enum: DPDK TX PD production firmware */ 13221 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_DPDK 0xa 13222 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 13223 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 13224 /* Hardware capabilities of NIC */ 13225 #define MC_CMD_GET_CAPABILITIES_V4_OUT_HW_CAPABILITIES_OFST 12 13226 #define MC_CMD_GET_CAPABILITIES_V4_OUT_HW_CAPABILITIES_LEN 4 13227 /* Licensed capabilities */ 13228 #define MC_CMD_GET_CAPABILITIES_V4_OUT_LICENSE_CAPABILITIES_OFST 16 13229 #define MC_CMD_GET_CAPABILITIES_V4_OUT_LICENSE_CAPABILITIES_LEN 4 13230 /* Second word of flags. Not present on older firmware (check the length). */ 13231 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS2_OFST 20 13232 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS2_LEN 4 13233 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_OFST 20 13234 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_LBN 0 13235 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_WIDTH 1 13236 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_ENCAP_OFST 20 13237 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_ENCAP_LBN 1 13238 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_ENCAP_WIDTH 1 13239 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVQ_TIMER_CTRL_OFST 20 13240 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVQ_TIMER_CTRL_LBN 2 13241 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVQ_TIMER_CTRL_WIDTH 1 13242 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVENT_CUT_THROUGH_OFST 20 13243 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVENT_CUT_THROUGH_LBN 3 13244 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVENT_CUT_THROUGH_WIDTH 1 13245 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_CUT_THROUGH_OFST 20 13246 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_CUT_THROUGH_LBN 4 13247 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_CUT_THROUGH_WIDTH 1 13248 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VFIFO_ULL_MODE_OFST 20 13249 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VFIFO_ULL_MODE_LBN 5 13250 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 13251 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 13252 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 13253 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 13254 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 13255 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 13256 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 13257 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_V2_OFST 20 13258 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_V2_LBN 7 13259 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_V2_WIDTH 1 13260 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_TIMESTAMPING_OFST 20 13261 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_TIMESTAMPING_LBN 8 13262 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 13263 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TIMESTAMP_OFST 20 13264 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TIMESTAMP_LBN 9 13265 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TIMESTAMP_WIDTH 1 13266 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_SNIFF_OFST 20 13267 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_SNIFF_LBN 10 13268 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_SNIFF_WIDTH 1 13269 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_SNIFF_OFST 20 13270 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_SNIFF_LBN 11 13271 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_SNIFF_WIDTH 1 13272 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 13273 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 13274 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 13275 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_BACKGROUND_OFST 20 13276 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_BACKGROUND_LBN 13 13277 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_BACKGROUND_WIDTH 1 13278 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_DB_RETURN_OFST 20 13279 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_DB_RETURN_LBN 14 13280 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_DB_RETURN_WIDTH 1 13281 #define MC_CMD_GET_CAPABILITIES_V4_OUT_CTPIO_OFST 20 13282 #define MC_CMD_GET_CAPABILITIES_V4_OUT_CTPIO_LBN 15 13283 #define MC_CMD_GET_CAPABILITIES_V4_OUT_CTPIO_WIDTH 1 13284 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_SUPPORT_OFST 20 13285 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_SUPPORT_LBN 16 13286 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_SUPPORT_WIDTH 1 13287 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_BOUND_OFST 20 13288 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_BOUND_LBN 17 13289 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_BOUND_WIDTH 1 13290 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 13291 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 13292 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 13293 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_FLAG_OFST 20 13294 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_FLAG_LBN 19 13295 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_FLAG_WIDTH 1 13296 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_MARK_OFST 20 13297 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_MARK_LBN 20 13298 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_MARK_WIDTH 1 13299 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 13300 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 13301 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 13302 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 13303 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 13304 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 13305 #define MC_CMD_GET_CAPABILITIES_V4_OUT_L3XUDP_SUPPORT_OFST 20 13306 #define MC_CMD_GET_CAPABILITIES_V4_OUT_L3XUDP_SUPPORT_LBN 22 13307 #define MC_CMD_GET_CAPABILITIES_V4_OUT_L3XUDP_SUPPORT_WIDTH 1 13308 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 13309 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 13310 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 13311 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_SPREADING_OFST 20 13312 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_SPREADING_LBN 24 13313 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_SPREADING_WIDTH 1 13314 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_HLB_IDLE_OFST 20 13315 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_HLB_IDLE_LBN 25 13316 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_HLB_IDLE_WIDTH 1 13317 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 13318 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 13319 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 13320 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 13321 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 13322 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 13323 #define MC_CMD_GET_CAPABILITIES_V4_OUT_BUNDLE_UPDATE_OFST 20 13324 #define MC_CMD_GET_CAPABILITIES_V4_OUT_BUNDLE_UPDATE_LBN 28 13325 #define MC_CMD_GET_CAPABILITIES_V4_OUT_BUNDLE_UPDATE_WIDTH 1 13326 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V3_OFST 20 13327 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V3_LBN 29 13328 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V3_WIDTH 1 13329 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DYNAMIC_SENSORS_OFST 20 13330 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DYNAMIC_SENSORS_LBN 30 13331 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DYNAMIC_SENSORS_WIDTH 1 13332 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 13333 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 13334 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 13335 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 13336 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 13337 */ 13338 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 13339 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 13340 /* One byte per PF containing the number of the external port assigned to this 13341 * PF, indexed by PF number. Special values indicate that a PF is either not 13342 * present or not assigned. 13343 */ 13344 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 13345 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 13346 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 13347 /* enum: The caller is not permitted to access information on this PF. */ 13348 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ACCESS_NOT_PERMITTED 0xff 13349 /* enum: PF does not exist. */ 13350 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PF_NOT_PRESENT 0xfe 13351 /* enum: PF does exist but is not assigned to any external port. */ 13352 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PF_NOT_ASSIGNED 0xfd 13353 /* enum: This value indicates that PF is assigned, but it cannot be expressed 13354 * in this field. It is intended for a possible future situation where a more 13355 * complex scheme of PFs to ports mapping is being used. The future driver 13356 * should look for a new field supporting the new scheme. The current/old 13357 * driver should treat this value as PF_NOT_ASSIGNED. 13358 */ 13359 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 13360 /* One byte per PF containing the number of its VFs, indexed by PF number. A 13361 * special value indicates that a PF is not present. 13362 */ 13363 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VFS_PER_PF_OFST 42 13364 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VFS_PER_PF_LEN 1 13365 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VFS_PER_PF_NUM 16 13366 /* enum: The caller is not permitted to access information on this PF. */ 13367 /* MC_CMD_GET_CAPABILITIES_V4_OUT_ACCESS_NOT_PERMITTED 0xff */ 13368 /* enum: PF does not exist. */ 13369 /* MC_CMD_GET_CAPABILITIES_V4_OUT_PF_NOT_PRESENT 0xfe */ 13370 /* Number of VIs available for each external port */ 13371 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VIS_PER_PORT_OFST 58 13372 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VIS_PER_PORT_LEN 2 13373 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VIS_PER_PORT_NUM 4 13374 /* Size of RX descriptor cache expressed as binary logarithm The actual size 13375 * equals (2 ^ RX_DESC_CACHE_SIZE) 13376 */ 13377 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DESC_CACHE_SIZE_OFST 66 13378 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DESC_CACHE_SIZE_LEN 1 13379 /* Size of TX descriptor cache expressed as binary logarithm The actual size 13380 * equals (2 ^ TX_DESC_CACHE_SIZE) 13381 */ 13382 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DESC_CACHE_SIZE_OFST 67 13383 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DESC_CACHE_SIZE_LEN 1 13384 /* Total number of available PIO buffers */ 13385 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_PIO_BUFFS_OFST 68 13386 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_PIO_BUFFS_LEN 2 13387 /* Size of a single PIO buffer */ 13388 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SIZE_PIO_BUFF_OFST 70 13389 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SIZE_PIO_BUFF_LEN 2 13390 /* On chips later than Medford the amount of address space assigned to each VI 13391 * is configurable. This is a global setting that the driver must query to 13392 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 13393 * with 8k VI windows. 13394 */ 13395 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_OFST 72 13396 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_LEN 1 13397 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 13398 * CTPIO is not mapped. 13399 */ 13400 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_8K 0x0 13401 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 13402 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_16K 0x1 13403 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 13404 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_64K 0x2 13405 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 13406 * (SF-115995-SW) in the present configuration of firmware and port mode. 13407 */ 13408 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 13409 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 13410 /* Number of buffers per adapter that can be used for VFIFO Stuffing 13411 * (SF-115995-SW) in the present configuration of firmware and port mode. 13412 */ 13413 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 13414 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 13415 /* Entry count in the MAC stats array, including the final GENERATION_END 13416 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 13417 * hold at least this many 64-bit stats values, if they wish to receive all 13418 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 13419 * stats array returned will be truncated. 13420 */ 13421 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_NUM_STATS_OFST 76 13422 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_NUM_STATS_LEN 2 13423 13424 /* MC_CMD_GET_CAPABILITIES_V5_OUT msgresponse */ 13425 #define MC_CMD_GET_CAPABILITIES_V5_OUT_LEN 84 13426 /* First word of flags. */ 13427 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS1_OFST 0 13428 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS1_LEN 4 13429 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VPORT_RECONFIGURE_OFST 0 13430 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VPORT_RECONFIGURE_LBN 3 13431 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VPORT_RECONFIGURE_WIDTH 1 13432 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_STRIPING_OFST 0 13433 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_STRIPING_LBN 4 13434 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_STRIPING_WIDTH 1 13435 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_QUERY_OFST 0 13436 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_QUERY_LBN 5 13437 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_QUERY_WIDTH 1 13438 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 13439 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 13440 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 13441 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DRV_ATTACH_PREBOOT_OFST 0 13442 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DRV_ATTACH_PREBOOT_LBN 7 13443 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 13444 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_FORCE_EVENT_MERGING_OFST 0 13445 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_FORCE_EVENT_MERGING_LBN 8 13446 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 13447 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SET_MAC_ENHANCED_OFST 0 13448 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SET_MAC_ENHANCED_LBN 9 13449 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SET_MAC_ENHANCED_WIDTH 1 13450 #define MC_CMD_GET_CAPABILITIES_V5_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 13451 #define MC_CMD_GET_CAPABILITIES_V5_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 13452 #define MC_CMD_GET_CAPABILITIES_V5_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 13453 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 13454 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 13455 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 13456 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 13457 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 13458 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 13459 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ADDITIONAL_RSS_MODES_OFST 0 13460 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ADDITIONAL_RSS_MODES_LBN 13 13461 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 13462 #define MC_CMD_GET_CAPABILITIES_V5_OUT_QBB_OFST 0 13463 #define MC_CMD_GET_CAPABILITIES_V5_OUT_QBB_LBN 14 13464 #define MC_CMD_GET_CAPABILITIES_V5_OUT_QBB_WIDTH 1 13465 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 13466 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 13467 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 13468 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_RSS_LIMITED_OFST 0 13469 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_RSS_LIMITED_LBN 16 13470 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_RSS_LIMITED_WIDTH 1 13471 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_OFST 0 13472 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_LBN 17 13473 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_WIDTH 1 13474 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_INCLUDE_FCS_OFST 0 13475 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_INCLUDE_FCS_LBN 18 13476 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_INCLUDE_FCS_WIDTH 1 13477 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VLAN_INSERTION_OFST 0 13478 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VLAN_INSERTION_LBN 19 13479 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VLAN_INSERTION_WIDTH 1 13480 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_VLAN_STRIPPING_OFST 0 13481 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_VLAN_STRIPPING_LBN 20 13482 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_VLAN_STRIPPING_WIDTH 1 13483 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_OFST 0 13484 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_LBN 21 13485 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_WIDTH 1 13486 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_0_OFST 0 13487 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_0_LBN 22 13488 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_0_WIDTH 1 13489 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_14_OFST 0 13490 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_14_LBN 23 13491 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_14_WIDTH 1 13492 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_TIMESTAMP_OFST 0 13493 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_TIMESTAMP_LBN 24 13494 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_TIMESTAMP_WIDTH 1 13495 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_BATCHING_OFST 0 13496 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_BATCHING_LBN 25 13497 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_BATCHING_WIDTH 1 13498 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCAST_FILTER_CHAINING_OFST 0 13499 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCAST_FILTER_CHAINING_LBN 26 13500 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCAST_FILTER_CHAINING_WIDTH 1 13501 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PM_AND_RXDP_COUNTERS_OFST 0 13502 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PM_AND_RXDP_COUNTERS_LBN 27 13503 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 13504 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DISABLE_SCATTER_OFST 0 13505 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DISABLE_SCATTER_LBN 28 13506 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DISABLE_SCATTER_WIDTH 1 13507 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 13508 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 13509 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 13510 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_OFST 0 13511 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_LBN 30 13512 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_WIDTH 1 13513 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VXLAN_NVGRE_OFST 0 13514 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VXLAN_NVGRE_LBN 31 13515 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VXLAN_NVGRE_WIDTH 1 13516 /* RxDPCPU firmware id. */ 13517 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DPCPU_FW_ID_OFST 4 13518 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DPCPU_FW_ID_LEN 2 13519 /* enum: Standard RXDP firmware */ 13520 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP 0x0 13521 /* enum: Low latency RXDP firmware */ 13522 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_LOW_LATENCY 0x1 13523 /* enum: Packed stream RXDP firmware */ 13524 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_PACKED_STREAM 0x2 13525 /* enum: Rules engine RXDP firmware */ 13526 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_RULES_ENGINE 0x5 13527 /* enum: DPDK RXDP firmware */ 13528 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_DPDK 0x6 13529 /* enum: BIST RXDP firmware */ 13530 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_BIST 0x10a 13531 /* enum: RXDP Test firmware image 1 */ 13532 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 13533 /* enum: RXDP Test firmware image 2 */ 13534 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 13535 /* enum: RXDP Test firmware image 3 */ 13536 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 13537 /* enum: RXDP Test firmware image 4 */ 13538 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 13539 /* enum: RXDP Test firmware image 5 */ 13540 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_BACKPRESSURE 0x105 13541 /* enum: RXDP Test firmware image 6 */ 13542 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 13543 /* enum: RXDP Test firmware image 7 */ 13544 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 13545 /* enum: RXDP Test firmware image 8 */ 13546 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 13547 /* enum: RXDP Test firmware image 9 */ 13548 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 13549 /* enum: RXDP Test firmware image 10 */ 13550 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_TEST_FW_SLOW 0x10c 13551 /* TxDPCPU firmware id. */ 13552 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DPCPU_FW_ID_OFST 6 13553 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DPCPU_FW_ID_LEN 2 13554 /* enum: Standard TXDP firmware */ 13555 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP 0x0 13556 /* enum: Low latency TXDP firmware */ 13557 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_LOW_LATENCY 0x1 13558 /* enum: High packet rate TXDP firmware */ 13559 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_HIGH_PACKET_RATE 0x3 13560 /* enum: Rules engine TXDP firmware */ 13561 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_RULES_ENGINE 0x5 13562 /* enum: DPDK TXDP firmware */ 13563 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_DPDK 0x6 13564 /* enum: BIST TXDP firmware */ 13565 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_BIST 0x12d 13566 /* enum: TXDP Test firmware image 1 */ 13567 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 13568 /* enum: TXDP Test firmware image 2 */ 13569 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 13570 /* enum: TXDP CSR bus test firmware */ 13571 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXDP_TEST_FW_CSR 0x103 13572 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_OFST 8 13573 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_LEN 2 13574 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_REV_OFST 8 13575 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_REV_LBN 0 13576 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_REV_WIDTH 12 13577 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_TYPE_OFST 8 13578 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_TYPE_LBN 12 13579 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 13580 /* enum: reserved value - do not use (may indicate alternative interpretation 13581 * of REV field in future) 13582 */ 13583 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_RESERVED 0x0 13584 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 13585 * development only) 13586 */ 13587 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 13588 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 13589 */ 13590 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 13591 /* enum: RX PD firmware with approximately Siena-compatible behaviour 13592 * (Huntington development only) 13593 */ 13594 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 13595 /* enum: Full featured RX PD production firmware */ 13596 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 13597 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 13598 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_VSWITCH 0x3 13599 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 13600 * (Huntington development only) 13601 */ 13602 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 13603 /* enum: Low latency RX PD production firmware */ 13604 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 13605 /* enum: Packed stream RX PD production firmware */ 13606 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 13607 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 13608 * tests (Medford development only) 13609 */ 13610 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 13611 /* enum: Rules engine RX PD production firmware */ 13612 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 13613 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 13614 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_L3XUDP 0x9 13615 /* enum: DPDK RX PD production firmware */ 13616 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_DPDK 0xa 13617 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 13618 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 13619 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 13620 * encapsulations (Medford development only) 13621 */ 13622 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 13623 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_OFST 10 13624 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_LEN 2 13625 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_REV_OFST 10 13626 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_REV_LBN 0 13627 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_REV_WIDTH 12 13628 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_TYPE_OFST 10 13629 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_TYPE_LBN 12 13630 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 13631 /* enum: reserved value - do not use (may indicate alternative interpretation 13632 * of REV field in future) 13633 */ 13634 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_RESERVED 0x0 13635 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 13636 * development only) 13637 */ 13638 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 13639 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 13640 */ 13641 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 13642 /* enum: TX PD firmware with approximately Siena-compatible behaviour 13643 * (Huntington development only) 13644 */ 13645 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 13646 /* enum: Full featured TX PD production firmware */ 13647 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 13648 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 13649 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_VSWITCH 0x3 13650 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 13651 * (Huntington development only) 13652 */ 13653 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 13654 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 13655 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 13656 * tests (Medford development only) 13657 */ 13658 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 13659 /* enum: Rules engine TX PD production firmware */ 13660 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 13661 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 13662 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_L3XUDP 0x9 13663 /* enum: DPDK TX PD production firmware */ 13664 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_DPDK 0xa 13665 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 13666 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 13667 /* Hardware capabilities of NIC */ 13668 #define MC_CMD_GET_CAPABILITIES_V5_OUT_HW_CAPABILITIES_OFST 12 13669 #define MC_CMD_GET_CAPABILITIES_V5_OUT_HW_CAPABILITIES_LEN 4 13670 /* Licensed capabilities */ 13671 #define MC_CMD_GET_CAPABILITIES_V5_OUT_LICENSE_CAPABILITIES_OFST 16 13672 #define MC_CMD_GET_CAPABILITIES_V5_OUT_LICENSE_CAPABILITIES_LEN 4 13673 /* Second word of flags. Not present on older firmware (check the length). */ 13674 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS2_OFST 20 13675 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS2_LEN 4 13676 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_OFST 20 13677 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_LBN 0 13678 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_WIDTH 1 13679 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_ENCAP_OFST 20 13680 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_ENCAP_LBN 1 13681 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_ENCAP_WIDTH 1 13682 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVQ_TIMER_CTRL_OFST 20 13683 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVQ_TIMER_CTRL_LBN 2 13684 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVQ_TIMER_CTRL_WIDTH 1 13685 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVENT_CUT_THROUGH_OFST 20 13686 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVENT_CUT_THROUGH_LBN 3 13687 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVENT_CUT_THROUGH_WIDTH 1 13688 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_CUT_THROUGH_OFST 20 13689 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_CUT_THROUGH_LBN 4 13690 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_CUT_THROUGH_WIDTH 1 13691 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VFIFO_ULL_MODE_OFST 20 13692 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VFIFO_ULL_MODE_LBN 5 13693 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 13694 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 13695 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 13696 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 13697 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 13698 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 13699 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 13700 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_V2_OFST 20 13701 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_V2_LBN 7 13702 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_V2_WIDTH 1 13703 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_TIMESTAMPING_OFST 20 13704 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_TIMESTAMPING_LBN 8 13705 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 13706 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TIMESTAMP_OFST 20 13707 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TIMESTAMP_LBN 9 13708 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TIMESTAMP_WIDTH 1 13709 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_SNIFF_OFST 20 13710 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_SNIFF_LBN 10 13711 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_SNIFF_WIDTH 1 13712 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_SNIFF_OFST 20 13713 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_SNIFF_LBN 11 13714 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_SNIFF_WIDTH 1 13715 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 13716 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 13717 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 13718 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_BACKGROUND_OFST 20 13719 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_BACKGROUND_LBN 13 13720 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_BACKGROUND_WIDTH 1 13721 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_DB_RETURN_OFST 20 13722 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_DB_RETURN_LBN 14 13723 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_DB_RETURN_WIDTH 1 13724 #define MC_CMD_GET_CAPABILITIES_V5_OUT_CTPIO_OFST 20 13725 #define MC_CMD_GET_CAPABILITIES_V5_OUT_CTPIO_LBN 15 13726 #define MC_CMD_GET_CAPABILITIES_V5_OUT_CTPIO_WIDTH 1 13727 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_SUPPORT_OFST 20 13728 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_SUPPORT_LBN 16 13729 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_SUPPORT_WIDTH 1 13730 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_BOUND_OFST 20 13731 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_BOUND_LBN 17 13732 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_BOUND_WIDTH 1 13733 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 13734 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 13735 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 13736 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_FLAG_OFST 20 13737 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_FLAG_LBN 19 13738 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_FLAG_WIDTH 1 13739 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_OFST 20 13740 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_LBN 20 13741 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_WIDTH 1 13742 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 13743 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 13744 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 13745 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 13746 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 13747 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 13748 #define MC_CMD_GET_CAPABILITIES_V5_OUT_L3XUDP_SUPPORT_OFST 20 13749 #define MC_CMD_GET_CAPABILITIES_V5_OUT_L3XUDP_SUPPORT_LBN 22 13750 #define MC_CMD_GET_CAPABILITIES_V5_OUT_L3XUDP_SUPPORT_WIDTH 1 13751 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 13752 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 13753 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 13754 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_SPREADING_OFST 20 13755 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_SPREADING_LBN 24 13756 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_SPREADING_WIDTH 1 13757 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_HLB_IDLE_OFST 20 13758 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_HLB_IDLE_LBN 25 13759 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_HLB_IDLE_WIDTH 1 13760 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 13761 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 13762 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 13763 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 13764 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 13765 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 13766 #define MC_CMD_GET_CAPABILITIES_V5_OUT_BUNDLE_UPDATE_OFST 20 13767 #define MC_CMD_GET_CAPABILITIES_V5_OUT_BUNDLE_UPDATE_LBN 28 13768 #define MC_CMD_GET_CAPABILITIES_V5_OUT_BUNDLE_UPDATE_WIDTH 1 13769 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V3_OFST 20 13770 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V3_LBN 29 13771 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V3_WIDTH 1 13772 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DYNAMIC_SENSORS_OFST 20 13773 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DYNAMIC_SENSORS_LBN 30 13774 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DYNAMIC_SENSORS_WIDTH 1 13775 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 13776 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 13777 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 13778 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 13779 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 13780 */ 13781 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 13782 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 13783 /* One byte per PF containing the number of the external port assigned to this 13784 * PF, indexed by PF number. Special values indicate that a PF is either not 13785 * present or not assigned. 13786 */ 13787 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 13788 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 13789 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 13790 /* enum: The caller is not permitted to access information on this PF. */ 13791 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ACCESS_NOT_PERMITTED 0xff 13792 /* enum: PF does not exist. */ 13793 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PF_NOT_PRESENT 0xfe 13794 /* enum: PF does exist but is not assigned to any external port. */ 13795 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PF_NOT_ASSIGNED 0xfd 13796 /* enum: This value indicates that PF is assigned, but it cannot be expressed 13797 * in this field. It is intended for a possible future situation where a more 13798 * complex scheme of PFs to ports mapping is being used. The future driver 13799 * should look for a new field supporting the new scheme. The current/old 13800 * driver should treat this value as PF_NOT_ASSIGNED. 13801 */ 13802 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 13803 /* One byte per PF containing the number of its VFs, indexed by PF number. A 13804 * special value indicates that a PF is not present. 13805 */ 13806 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VFS_PER_PF_OFST 42 13807 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VFS_PER_PF_LEN 1 13808 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VFS_PER_PF_NUM 16 13809 /* enum: The caller is not permitted to access information on this PF. */ 13810 /* MC_CMD_GET_CAPABILITIES_V5_OUT_ACCESS_NOT_PERMITTED 0xff */ 13811 /* enum: PF does not exist. */ 13812 /* MC_CMD_GET_CAPABILITIES_V5_OUT_PF_NOT_PRESENT 0xfe */ 13813 /* Number of VIs available for each external port */ 13814 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VIS_PER_PORT_OFST 58 13815 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VIS_PER_PORT_LEN 2 13816 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VIS_PER_PORT_NUM 4 13817 /* Size of RX descriptor cache expressed as binary logarithm The actual size 13818 * equals (2 ^ RX_DESC_CACHE_SIZE) 13819 */ 13820 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DESC_CACHE_SIZE_OFST 66 13821 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DESC_CACHE_SIZE_LEN 1 13822 /* Size of TX descriptor cache expressed as binary logarithm The actual size 13823 * equals (2 ^ TX_DESC_CACHE_SIZE) 13824 */ 13825 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DESC_CACHE_SIZE_OFST 67 13826 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DESC_CACHE_SIZE_LEN 1 13827 /* Total number of available PIO buffers */ 13828 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_PIO_BUFFS_OFST 68 13829 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_PIO_BUFFS_LEN 2 13830 /* Size of a single PIO buffer */ 13831 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SIZE_PIO_BUFF_OFST 70 13832 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SIZE_PIO_BUFF_LEN 2 13833 /* On chips later than Medford the amount of address space assigned to each VI 13834 * is configurable. This is a global setting that the driver must query to 13835 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 13836 * with 8k VI windows. 13837 */ 13838 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_OFST 72 13839 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_LEN 1 13840 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 13841 * CTPIO is not mapped. 13842 */ 13843 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_8K 0x0 13844 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 13845 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_16K 0x1 13846 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 13847 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_64K 0x2 13848 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 13849 * (SF-115995-SW) in the present configuration of firmware and port mode. 13850 */ 13851 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 13852 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 13853 /* Number of buffers per adapter that can be used for VFIFO Stuffing 13854 * (SF-115995-SW) in the present configuration of firmware and port mode. 13855 */ 13856 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 13857 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 13858 /* Entry count in the MAC stats array, including the final GENERATION_END 13859 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 13860 * hold at least this many 64-bit stats values, if they wish to receive all 13861 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 13862 * stats array returned will be truncated. 13863 */ 13864 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_NUM_STATS_OFST 76 13865 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_NUM_STATS_LEN 2 13866 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 13867 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 13868 */ 13869 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_MAX_OFST 80 13870 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_MAX_LEN 4 13871 13872 /* MC_CMD_GET_CAPABILITIES_V6_OUT msgresponse */ 13873 #define MC_CMD_GET_CAPABILITIES_V6_OUT_LEN 148 13874 /* First word of flags. */ 13875 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS1_OFST 0 13876 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS1_LEN 4 13877 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VPORT_RECONFIGURE_OFST 0 13878 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VPORT_RECONFIGURE_LBN 3 13879 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VPORT_RECONFIGURE_WIDTH 1 13880 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_STRIPING_OFST 0 13881 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_STRIPING_LBN 4 13882 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_STRIPING_WIDTH 1 13883 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_QUERY_OFST 0 13884 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_QUERY_LBN 5 13885 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_QUERY_WIDTH 1 13886 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 13887 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 13888 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 13889 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DRV_ATTACH_PREBOOT_OFST 0 13890 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DRV_ATTACH_PREBOOT_LBN 7 13891 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 13892 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_FORCE_EVENT_MERGING_OFST 0 13893 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_FORCE_EVENT_MERGING_LBN 8 13894 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 13895 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SET_MAC_ENHANCED_OFST 0 13896 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SET_MAC_ENHANCED_LBN 9 13897 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SET_MAC_ENHANCED_WIDTH 1 13898 #define MC_CMD_GET_CAPABILITIES_V6_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 13899 #define MC_CMD_GET_CAPABILITIES_V6_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 13900 #define MC_CMD_GET_CAPABILITIES_V6_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 13901 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 13902 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 13903 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 13904 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 13905 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 13906 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 13907 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ADDITIONAL_RSS_MODES_OFST 0 13908 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ADDITIONAL_RSS_MODES_LBN 13 13909 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 13910 #define MC_CMD_GET_CAPABILITIES_V6_OUT_QBB_OFST 0 13911 #define MC_CMD_GET_CAPABILITIES_V6_OUT_QBB_LBN 14 13912 #define MC_CMD_GET_CAPABILITIES_V6_OUT_QBB_WIDTH 1 13913 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 13914 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 13915 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 13916 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_RSS_LIMITED_OFST 0 13917 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_RSS_LIMITED_LBN 16 13918 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_RSS_LIMITED_WIDTH 1 13919 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_OFST 0 13920 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_LBN 17 13921 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_WIDTH 1 13922 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_INCLUDE_FCS_OFST 0 13923 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_INCLUDE_FCS_LBN 18 13924 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_INCLUDE_FCS_WIDTH 1 13925 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VLAN_INSERTION_OFST 0 13926 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VLAN_INSERTION_LBN 19 13927 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VLAN_INSERTION_WIDTH 1 13928 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_VLAN_STRIPPING_OFST 0 13929 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_VLAN_STRIPPING_LBN 20 13930 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_VLAN_STRIPPING_WIDTH 1 13931 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_OFST 0 13932 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_LBN 21 13933 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_WIDTH 1 13934 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_0_OFST 0 13935 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_0_LBN 22 13936 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_0_WIDTH 1 13937 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_14_OFST 0 13938 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_14_LBN 23 13939 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_14_WIDTH 1 13940 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_TIMESTAMP_OFST 0 13941 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_TIMESTAMP_LBN 24 13942 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_TIMESTAMP_WIDTH 1 13943 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_BATCHING_OFST 0 13944 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_BATCHING_LBN 25 13945 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_BATCHING_WIDTH 1 13946 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCAST_FILTER_CHAINING_OFST 0 13947 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCAST_FILTER_CHAINING_LBN 26 13948 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCAST_FILTER_CHAINING_WIDTH 1 13949 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PM_AND_RXDP_COUNTERS_OFST 0 13950 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PM_AND_RXDP_COUNTERS_LBN 27 13951 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 13952 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DISABLE_SCATTER_OFST 0 13953 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DISABLE_SCATTER_LBN 28 13954 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DISABLE_SCATTER_WIDTH 1 13955 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 13956 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 13957 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 13958 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_OFST 0 13959 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_LBN 30 13960 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_WIDTH 1 13961 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VXLAN_NVGRE_OFST 0 13962 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VXLAN_NVGRE_LBN 31 13963 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VXLAN_NVGRE_WIDTH 1 13964 /* RxDPCPU firmware id. */ 13965 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DPCPU_FW_ID_OFST 4 13966 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DPCPU_FW_ID_LEN 2 13967 /* enum: Standard RXDP firmware */ 13968 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP 0x0 13969 /* enum: Low latency RXDP firmware */ 13970 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_LOW_LATENCY 0x1 13971 /* enum: Packed stream RXDP firmware */ 13972 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_PACKED_STREAM 0x2 13973 /* enum: Rules engine RXDP firmware */ 13974 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_RULES_ENGINE 0x5 13975 /* enum: DPDK RXDP firmware */ 13976 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_DPDK 0x6 13977 /* enum: BIST RXDP firmware */ 13978 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_BIST 0x10a 13979 /* enum: RXDP Test firmware image 1 */ 13980 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 13981 /* enum: RXDP Test firmware image 2 */ 13982 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 13983 /* enum: RXDP Test firmware image 3 */ 13984 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 13985 /* enum: RXDP Test firmware image 4 */ 13986 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 13987 /* enum: RXDP Test firmware image 5 */ 13988 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_BACKPRESSURE 0x105 13989 /* enum: RXDP Test firmware image 6 */ 13990 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 13991 /* enum: RXDP Test firmware image 7 */ 13992 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 13993 /* enum: RXDP Test firmware image 8 */ 13994 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 13995 /* enum: RXDP Test firmware image 9 */ 13996 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 13997 /* enum: RXDP Test firmware image 10 */ 13998 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_TEST_FW_SLOW 0x10c 13999 /* TxDPCPU firmware id. */ 14000 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DPCPU_FW_ID_OFST 6 14001 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DPCPU_FW_ID_LEN 2 14002 /* enum: Standard TXDP firmware */ 14003 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP 0x0 14004 /* enum: Low latency TXDP firmware */ 14005 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_LOW_LATENCY 0x1 14006 /* enum: High packet rate TXDP firmware */ 14007 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_HIGH_PACKET_RATE 0x3 14008 /* enum: Rules engine TXDP firmware */ 14009 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_RULES_ENGINE 0x5 14010 /* enum: DPDK TXDP firmware */ 14011 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_DPDK 0x6 14012 /* enum: BIST TXDP firmware */ 14013 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_BIST 0x12d 14014 /* enum: TXDP Test firmware image 1 */ 14015 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 14016 /* enum: TXDP Test firmware image 2 */ 14017 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 14018 /* enum: TXDP CSR bus test firmware */ 14019 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXDP_TEST_FW_CSR 0x103 14020 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_OFST 8 14021 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_LEN 2 14022 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_REV_OFST 8 14023 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_REV_LBN 0 14024 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_REV_WIDTH 12 14025 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_TYPE_OFST 8 14026 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_TYPE_LBN 12 14027 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 14028 /* enum: reserved value - do not use (may indicate alternative interpretation 14029 * of REV field in future) 14030 */ 14031 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_RESERVED 0x0 14032 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 14033 * development only) 14034 */ 14035 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 14036 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 14037 */ 14038 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 14039 /* enum: RX PD firmware with approximately Siena-compatible behaviour 14040 * (Huntington development only) 14041 */ 14042 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 14043 /* enum: Full featured RX PD production firmware */ 14044 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 14045 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 14046 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_VSWITCH 0x3 14047 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 14048 * (Huntington development only) 14049 */ 14050 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 14051 /* enum: Low latency RX PD production firmware */ 14052 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 14053 /* enum: Packed stream RX PD production firmware */ 14054 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 14055 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 14056 * tests (Medford development only) 14057 */ 14058 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 14059 /* enum: Rules engine RX PD production firmware */ 14060 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 14061 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 14062 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_L3XUDP 0x9 14063 /* enum: DPDK RX PD production firmware */ 14064 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_DPDK 0xa 14065 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 14066 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 14067 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 14068 * encapsulations (Medford development only) 14069 */ 14070 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 14071 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_OFST 10 14072 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_LEN 2 14073 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_REV_OFST 10 14074 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_REV_LBN 0 14075 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_REV_WIDTH 12 14076 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_TYPE_OFST 10 14077 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_TYPE_LBN 12 14078 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 14079 /* enum: reserved value - do not use (may indicate alternative interpretation 14080 * of REV field in future) 14081 */ 14082 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_RESERVED 0x0 14083 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 14084 * development only) 14085 */ 14086 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 14087 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 14088 */ 14089 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 14090 /* enum: TX PD firmware with approximately Siena-compatible behaviour 14091 * (Huntington development only) 14092 */ 14093 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 14094 /* enum: Full featured TX PD production firmware */ 14095 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 14096 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 14097 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_VSWITCH 0x3 14098 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 14099 * (Huntington development only) 14100 */ 14101 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 14102 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 14103 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 14104 * tests (Medford development only) 14105 */ 14106 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 14107 /* enum: Rules engine TX PD production firmware */ 14108 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 14109 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 14110 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_L3XUDP 0x9 14111 /* enum: DPDK TX PD production firmware */ 14112 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_DPDK 0xa 14113 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 14114 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 14115 /* Hardware capabilities of NIC */ 14116 #define MC_CMD_GET_CAPABILITIES_V6_OUT_HW_CAPABILITIES_OFST 12 14117 #define MC_CMD_GET_CAPABILITIES_V6_OUT_HW_CAPABILITIES_LEN 4 14118 /* Licensed capabilities */ 14119 #define MC_CMD_GET_CAPABILITIES_V6_OUT_LICENSE_CAPABILITIES_OFST 16 14120 #define MC_CMD_GET_CAPABILITIES_V6_OUT_LICENSE_CAPABILITIES_LEN 4 14121 /* Second word of flags. Not present on older firmware (check the length). */ 14122 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS2_OFST 20 14123 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS2_LEN 4 14124 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_OFST 20 14125 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_LBN 0 14126 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_WIDTH 1 14127 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_ENCAP_OFST 20 14128 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_ENCAP_LBN 1 14129 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_ENCAP_WIDTH 1 14130 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVQ_TIMER_CTRL_OFST 20 14131 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVQ_TIMER_CTRL_LBN 2 14132 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVQ_TIMER_CTRL_WIDTH 1 14133 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVENT_CUT_THROUGH_OFST 20 14134 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVENT_CUT_THROUGH_LBN 3 14135 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVENT_CUT_THROUGH_WIDTH 1 14136 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_CUT_THROUGH_OFST 20 14137 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_CUT_THROUGH_LBN 4 14138 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_CUT_THROUGH_WIDTH 1 14139 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VFIFO_ULL_MODE_OFST 20 14140 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VFIFO_ULL_MODE_LBN 5 14141 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 14142 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 14143 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 14144 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 14145 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 14146 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 14147 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 14148 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_V2_OFST 20 14149 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_V2_LBN 7 14150 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_V2_WIDTH 1 14151 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_TIMESTAMPING_OFST 20 14152 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_TIMESTAMPING_LBN 8 14153 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 14154 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TIMESTAMP_OFST 20 14155 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TIMESTAMP_LBN 9 14156 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TIMESTAMP_WIDTH 1 14157 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_SNIFF_OFST 20 14158 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_SNIFF_LBN 10 14159 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_SNIFF_WIDTH 1 14160 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_SNIFF_OFST 20 14161 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_SNIFF_LBN 11 14162 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_SNIFF_WIDTH 1 14163 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 14164 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 14165 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 14166 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_BACKGROUND_OFST 20 14167 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_BACKGROUND_LBN 13 14168 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_BACKGROUND_WIDTH 1 14169 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_DB_RETURN_OFST 20 14170 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_DB_RETURN_LBN 14 14171 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_DB_RETURN_WIDTH 1 14172 #define MC_CMD_GET_CAPABILITIES_V6_OUT_CTPIO_OFST 20 14173 #define MC_CMD_GET_CAPABILITIES_V6_OUT_CTPIO_LBN 15 14174 #define MC_CMD_GET_CAPABILITIES_V6_OUT_CTPIO_WIDTH 1 14175 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_SUPPORT_OFST 20 14176 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_SUPPORT_LBN 16 14177 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_SUPPORT_WIDTH 1 14178 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_BOUND_OFST 20 14179 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_BOUND_LBN 17 14180 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_BOUND_WIDTH 1 14181 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 14182 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 14183 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 14184 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_FLAG_OFST 20 14185 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_FLAG_LBN 19 14186 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_FLAG_WIDTH 1 14187 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_OFST 20 14188 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_LBN 20 14189 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_WIDTH 1 14190 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 14191 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 14192 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 14193 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 14194 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 14195 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 14196 #define MC_CMD_GET_CAPABILITIES_V6_OUT_L3XUDP_SUPPORT_OFST 20 14197 #define MC_CMD_GET_CAPABILITIES_V6_OUT_L3XUDP_SUPPORT_LBN 22 14198 #define MC_CMD_GET_CAPABILITIES_V6_OUT_L3XUDP_SUPPORT_WIDTH 1 14199 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 14200 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 14201 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 14202 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_SPREADING_OFST 20 14203 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_SPREADING_LBN 24 14204 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_SPREADING_WIDTH 1 14205 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_HLB_IDLE_OFST 20 14206 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_HLB_IDLE_LBN 25 14207 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_HLB_IDLE_WIDTH 1 14208 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 14209 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 14210 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 14211 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 14212 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 14213 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 14214 #define MC_CMD_GET_CAPABILITIES_V6_OUT_BUNDLE_UPDATE_OFST 20 14215 #define MC_CMD_GET_CAPABILITIES_V6_OUT_BUNDLE_UPDATE_LBN 28 14216 #define MC_CMD_GET_CAPABILITIES_V6_OUT_BUNDLE_UPDATE_WIDTH 1 14217 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V3_OFST 20 14218 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V3_LBN 29 14219 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V3_WIDTH 1 14220 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DYNAMIC_SENSORS_OFST 20 14221 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DYNAMIC_SENSORS_LBN 30 14222 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DYNAMIC_SENSORS_WIDTH 1 14223 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 14224 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 14225 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 14226 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 14227 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 14228 */ 14229 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 14230 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 14231 /* One byte per PF containing the number of the external port assigned to this 14232 * PF, indexed by PF number. Special values indicate that a PF is either not 14233 * present or not assigned. 14234 */ 14235 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 14236 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 14237 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 14238 /* enum: The caller is not permitted to access information on this PF. */ 14239 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ACCESS_NOT_PERMITTED 0xff 14240 /* enum: PF does not exist. */ 14241 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PF_NOT_PRESENT 0xfe 14242 /* enum: PF does exist but is not assigned to any external port. */ 14243 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PF_NOT_ASSIGNED 0xfd 14244 /* enum: This value indicates that PF is assigned, but it cannot be expressed 14245 * in this field. It is intended for a possible future situation where a more 14246 * complex scheme of PFs to ports mapping is being used. The future driver 14247 * should look for a new field supporting the new scheme. The current/old 14248 * driver should treat this value as PF_NOT_ASSIGNED. 14249 */ 14250 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 14251 /* One byte per PF containing the number of its VFs, indexed by PF number. A 14252 * special value indicates that a PF is not present. 14253 */ 14254 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VFS_PER_PF_OFST 42 14255 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VFS_PER_PF_LEN 1 14256 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VFS_PER_PF_NUM 16 14257 /* enum: The caller is not permitted to access information on this PF. */ 14258 /* MC_CMD_GET_CAPABILITIES_V6_OUT_ACCESS_NOT_PERMITTED 0xff */ 14259 /* enum: PF does not exist. */ 14260 /* MC_CMD_GET_CAPABILITIES_V6_OUT_PF_NOT_PRESENT 0xfe */ 14261 /* Number of VIs available for each external port */ 14262 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VIS_PER_PORT_OFST 58 14263 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VIS_PER_PORT_LEN 2 14264 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VIS_PER_PORT_NUM 4 14265 /* Size of RX descriptor cache expressed as binary logarithm The actual size 14266 * equals (2 ^ RX_DESC_CACHE_SIZE) 14267 */ 14268 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DESC_CACHE_SIZE_OFST 66 14269 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DESC_CACHE_SIZE_LEN 1 14270 /* Size of TX descriptor cache expressed as binary logarithm The actual size 14271 * equals (2 ^ TX_DESC_CACHE_SIZE) 14272 */ 14273 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DESC_CACHE_SIZE_OFST 67 14274 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DESC_CACHE_SIZE_LEN 1 14275 /* Total number of available PIO buffers */ 14276 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_PIO_BUFFS_OFST 68 14277 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_PIO_BUFFS_LEN 2 14278 /* Size of a single PIO buffer */ 14279 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SIZE_PIO_BUFF_OFST 70 14280 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SIZE_PIO_BUFF_LEN 2 14281 /* On chips later than Medford the amount of address space assigned to each VI 14282 * is configurable. This is a global setting that the driver must query to 14283 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 14284 * with 8k VI windows. 14285 */ 14286 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_OFST 72 14287 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_LEN 1 14288 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 14289 * CTPIO is not mapped. 14290 */ 14291 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_8K 0x0 14292 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 14293 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_16K 0x1 14294 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 14295 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_64K 0x2 14296 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 14297 * (SF-115995-SW) in the present configuration of firmware and port mode. 14298 */ 14299 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 14300 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 14301 /* Number of buffers per adapter that can be used for VFIFO Stuffing 14302 * (SF-115995-SW) in the present configuration of firmware and port mode. 14303 */ 14304 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 14305 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 14306 /* Entry count in the MAC stats array, including the final GENERATION_END 14307 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 14308 * hold at least this many 64-bit stats values, if they wish to receive all 14309 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 14310 * stats array returned will be truncated. 14311 */ 14312 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_NUM_STATS_OFST 76 14313 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_NUM_STATS_LEN 2 14314 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 14315 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 14316 */ 14317 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_MAX_OFST 80 14318 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_MAX_LEN 4 14319 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 14320 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 14321 * they create an RX queue. Due to hardware limitations, only a small number of 14322 * different buffer sizes may be available concurrently. Nonzero entries in 14323 * this array are the sizes of buffers which the system guarantees will be 14324 * available for use. If the list is empty, there are no limitations on 14325 * concurrent buffer sizes. 14326 */ 14327 #define MC_CMD_GET_CAPABILITIES_V6_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 14328 #define MC_CMD_GET_CAPABILITIES_V6_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 14329 #define MC_CMD_GET_CAPABILITIES_V6_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 14330 14331 /* MC_CMD_GET_CAPABILITIES_V7_OUT msgresponse */ 14332 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LEN 152 14333 /* First word of flags. */ 14334 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS1_OFST 0 14335 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS1_LEN 4 14336 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VPORT_RECONFIGURE_OFST 0 14337 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VPORT_RECONFIGURE_LBN 3 14338 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VPORT_RECONFIGURE_WIDTH 1 14339 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_STRIPING_OFST 0 14340 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_STRIPING_LBN 4 14341 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_STRIPING_WIDTH 1 14342 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_QUERY_OFST 0 14343 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_QUERY_LBN 5 14344 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_QUERY_WIDTH 1 14345 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 14346 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 14347 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 14348 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DRV_ATTACH_PREBOOT_OFST 0 14349 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DRV_ATTACH_PREBOOT_LBN 7 14350 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 14351 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_FORCE_EVENT_MERGING_OFST 0 14352 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_FORCE_EVENT_MERGING_LBN 8 14353 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 14354 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SET_MAC_ENHANCED_OFST 0 14355 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SET_MAC_ENHANCED_LBN 9 14356 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SET_MAC_ENHANCED_WIDTH 1 14357 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 14358 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 14359 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 14360 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 14361 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 14362 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 14363 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 14364 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 14365 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 14366 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ADDITIONAL_RSS_MODES_OFST 0 14367 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ADDITIONAL_RSS_MODES_LBN 13 14368 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 14369 #define MC_CMD_GET_CAPABILITIES_V7_OUT_QBB_OFST 0 14370 #define MC_CMD_GET_CAPABILITIES_V7_OUT_QBB_LBN 14 14371 #define MC_CMD_GET_CAPABILITIES_V7_OUT_QBB_WIDTH 1 14372 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 14373 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 14374 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 14375 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_RSS_LIMITED_OFST 0 14376 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_RSS_LIMITED_LBN 16 14377 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_RSS_LIMITED_WIDTH 1 14378 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_OFST 0 14379 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_LBN 17 14380 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_WIDTH 1 14381 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_INCLUDE_FCS_OFST 0 14382 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_INCLUDE_FCS_LBN 18 14383 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_INCLUDE_FCS_WIDTH 1 14384 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VLAN_INSERTION_OFST 0 14385 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VLAN_INSERTION_LBN 19 14386 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VLAN_INSERTION_WIDTH 1 14387 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_OFST 0 14388 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_LBN 20 14389 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_WIDTH 1 14390 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_OFST 0 14391 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_LBN 21 14392 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_WIDTH 1 14393 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_0_OFST 0 14394 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_0_LBN 22 14395 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_0_WIDTH 1 14396 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_14_OFST 0 14397 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_14_LBN 23 14398 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_14_WIDTH 1 14399 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_TIMESTAMP_OFST 0 14400 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_TIMESTAMP_LBN 24 14401 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_TIMESTAMP_WIDTH 1 14402 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_BATCHING_OFST 0 14403 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_BATCHING_LBN 25 14404 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_BATCHING_WIDTH 1 14405 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCAST_FILTER_CHAINING_OFST 0 14406 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCAST_FILTER_CHAINING_LBN 26 14407 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCAST_FILTER_CHAINING_WIDTH 1 14408 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PM_AND_RXDP_COUNTERS_OFST 0 14409 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PM_AND_RXDP_COUNTERS_LBN 27 14410 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 14411 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DISABLE_SCATTER_OFST 0 14412 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DISABLE_SCATTER_LBN 28 14413 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DISABLE_SCATTER_WIDTH 1 14414 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 14415 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 14416 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 14417 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_OFST 0 14418 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_LBN 30 14419 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_WIDTH 1 14420 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VXLAN_NVGRE_OFST 0 14421 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VXLAN_NVGRE_LBN 31 14422 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VXLAN_NVGRE_WIDTH 1 14423 /* RxDPCPU firmware id. */ 14424 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DPCPU_FW_ID_OFST 4 14425 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DPCPU_FW_ID_LEN 2 14426 /* enum: Standard RXDP firmware */ 14427 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP 0x0 14428 /* enum: Low latency RXDP firmware */ 14429 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_LOW_LATENCY 0x1 14430 /* enum: Packed stream RXDP firmware */ 14431 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_PACKED_STREAM 0x2 14432 /* enum: Rules engine RXDP firmware */ 14433 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_RULES_ENGINE 0x5 14434 /* enum: DPDK RXDP firmware */ 14435 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_DPDK 0x6 14436 /* enum: BIST RXDP firmware */ 14437 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_BIST 0x10a 14438 /* enum: RXDP Test firmware image 1 */ 14439 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 14440 /* enum: RXDP Test firmware image 2 */ 14441 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 14442 /* enum: RXDP Test firmware image 3 */ 14443 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 14444 /* enum: RXDP Test firmware image 4 */ 14445 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 14446 /* enum: RXDP Test firmware image 5 */ 14447 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_BACKPRESSURE 0x105 14448 /* enum: RXDP Test firmware image 6 */ 14449 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 14450 /* enum: RXDP Test firmware image 7 */ 14451 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 14452 /* enum: RXDP Test firmware image 8 */ 14453 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 14454 /* enum: RXDP Test firmware image 9 */ 14455 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 14456 /* enum: RXDP Test firmware image 10 */ 14457 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_TEST_FW_SLOW 0x10c 14458 /* TxDPCPU firmware id. */ 14459 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DPCPU_FW_ID_OFST 6 14460 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DPCPU_FW_ID_LEN 2 14461 /* enum: Standard TXDP firmware */ 14462 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP 0x0 14463 /* enum: Low latency TXDP firmware */ 14464 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_LOW_LATENCY 0x1 14465 /* enum: High packet rate TXDP firmware */ 14466 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_HIGH_PACKET_RATE 0x3 14467 /* enum: Rules engine TXDP firmware */ 14468 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_RULES_ENGINE 0x5 14469 /* enum: DPDK TXDP firmware */ 14470 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_DPDK 0x6 14471 /* enum: BIST TXDP firmware */ 14472 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_BIST 0x12d 14473 /* enum: TXDP Test firmware image 1 */ 14474 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 14475 /* enum: TXDP Test firmware image 2 */ 14476 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 14477 /* enum: TXDP CSR bus test firmware */ 14478 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXDP_TEST_FW_CSR 0x103 14479 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_OFST 8 14480 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_LEN 2 14481 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_REV_OFST 8 14482 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_REV_LBN 0 14483 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_REV_WIDTH 12 14484 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_TYPE_OFST 8 14485 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_TYPE_LBN 12 14486 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 14487 /* enum: reserved value - do not use (may indicate alternative interpretation 14488 * of REV field in future) 14489 */ 14490 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_RESERVED 0x0 14491 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 14492 * development only) 14493 */ 14494 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 14495 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 14496 */ 14497 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 14498 /* enum: RX PD firmware with approximately Siena-compatible behaviour 14499 * (Huntington development only) 14500 */ 14501 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 14502 /* enum: Full featured RX PD production firmware */ 14503 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 14504 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 14505 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_VSWITCH 0x3 14506 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 14507 * (Huntington development only) 14508 */ 14509 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 14510 /* enum: Low latency RX PD production firmware */ 14511 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 14512 /* enum: Packed stream RX PD production firmware */ 14513 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 14514 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 14515 * tests (Medford development only) 14516 */ 14517 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 14518 /* enum: Rules engine RX PD production firmware */ 14519 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 14520 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 14521 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_L3XUDP 0x9 14522 /* enum: DPDK RX PD production firmware */ 14523 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_DPDK 0xa 14524 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 14525 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 14526 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 14527 * encapsulations (Medford development only) 14528 */ 14529 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 14530 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_OFST 10 14531 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_LEN 2 14532 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_REV_OFST 10 14533 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_REV_LBN 0 14534 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_REV_WIDTH 12 14535 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_TYPE_OFST 10 14536 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_TYPE_LBN 12 14537 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 14538 /* enum: reserved value - do not use (may indicate alternative interpretation 14539 * of REV field in future) 14540 */ 14541 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_RESERVED 0x0 14542 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 14543 * development only) 14544 */ 14545 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 14546 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 14547 */ 14548 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 14549 /* enum: TX PD firmware with approximately Siena-compatible behaviour 14550 * (Huntington development only) 14551 */ 14552 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 14553 /* enum: Full featured TX PD production firmware */ 14554 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 14555 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 14556 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_VSWITCH 0x3 14557 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 14558 * (Huntington development only) 14559 */ 14560 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 14561 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 14562 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 14563 * tests (Medford development only) 14564 */ 14565 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 14566 /* enum: Rules engine TX PD production firmware */ 14567 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 14568 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 14569 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_L3XUDP 0x9 14570 /* enum: DPDK TX PD production firmware */ 14571 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_DPDK 0xa 14572 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 14573 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 14574 /* Hardware capabilities of NIC */ 14575 #define MC_CMD_GET_CAPABILITIES_V7_OUT_HW_CAPABILITIES_OFST 12 14576 #define MC_CMD_GET_CAPABILITIES_V7_OUT_HW_CAPABILITIES_LEN 4 14577 /* Licensed capabilities */ 14578 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LICENSE_CAPABILITIES_OFST 16 14579 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LICENSE_CAPABILITIES_LEN 4 14580 /* Second word of flags. Not present on older firmware (check the length). */ 14581 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS2_OFST 20 14582 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS2_LEN 4 14583 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_OFST 20 14584 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_LBN 0 14585 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_WIDTH 1 14586 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_ENCAP_OFST 20 14587 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_ENCAP_LBN 1 14588 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_ENCAP_WIDTH 1 14589 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVQ_TIMER_CTRL_OFST 20 14590 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVQ_TIMER_CTRL_LBN 2 14591 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVQ_TIMER_CTRL_WIDTH 1 14592 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVENT_CUT_THROUGH_OFST 20 14593 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVENT_CUT_THROUGH_LBN 3 14594 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVENT_CUT_THROUGH_WIDTH 1 14595 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_CUT_THROUGH_OFST 20 14596 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_CUT_THROUGH_LBN 4 14597 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_CUT_THROUGH_WIDTH 1 14598 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VFIFO_ULL_MODE_OFST 20 14599 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VFIFO_ULL_MODE_LBN 5 14600 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 14601 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 14602 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 14603 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 14604 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 14605 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 14606 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 14607 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_V2_OFST 20 14608 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_V2_LBN 7 14609 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_V2_WIDTH 1 14610 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_TIMESTAMPING_OFST 20 14611 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_TIMESTAMPING_LBN 8 14612 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 14613 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TIMESTAMP_OFST 20 14614 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TIMESTAMP_LBN 9 14615 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TIMESTAMP_WIDTH 1 14616 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_SNIFF_OFST 20 14617 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_SNIFF_LBN 10 14618 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_SNIFF_WIDTH 1 14619 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_SNIFF_OFST 20 14620 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_SNIFF_LBN 11 14621 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_SNIFF_WIDTH 1 14622 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 14623 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 14624 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 14625 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_BACKGROUND_OFST 20 14626 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_BACKGROUND_LBN 13 14627 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_BACKGROUND_WIDTH 1 14628 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_DB_RETURN_OFST 20 14629 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_DB_RETURN_LBN 14 14630 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_DB_RETURN_WIDTH 1 14631 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CTPIO_OFST 20 14632 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CTPIO_LBN 15 14633 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CTPIO_WIDTH 1 14634 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_SUPPORT_OFST 20 14635 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_SUPPORT_LBN 16 14636 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_SUPPORT_WIDTH 1 14637 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_BOUND_OFST 20 14638 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_BOUND_LBN 17 14639 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_BOUND_WIDTH 1 14640 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 14641 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 14642 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 14643 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_FLAG_OFST 20 14644 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_FLAG_LBN 19 14645 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_FLAG_WIDTH 1 14646 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_OFST 20 14647 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_LBN 20 14648 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_WIDTH 1 14649 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 14650 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 14651 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 14652 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 14653 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 14654 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 14655 #define MC_CMD_GET_CAPABILITIES_V7_OUT_L3XUDP_SUPPORT_OFST 20 14656 #define MC_CMD_GET_CAPABILITIES_V7_OUT_L3XUDP_SUPPORT_LBN 22 14657 #define MC_CMD_GET_CAPABILITIES_V7_OUT_L3XUDP_SUPPORT_WIDTH 1 14658 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 14659 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 14660 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 14661 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_SPREADING_OFST 20 14662 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_SPREADING_LBN 24 14663 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_SPREADING_WIDTH 1 14664 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_HLB_IDLE_OFST 20 14665 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_HLB_IDLE_LBN 25 14666 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_HLB_IDLE_WIDTH 1 14667 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 14668 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 14669 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 14670 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 14671 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 14672 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 14673 #define MC_CMD_GET_CAPABILITIES_V7_OUT_BUNDLE_UPDATE_OFST 20 14674 #define MC_CMD_GET_CAPABILITIES_V7_OUT_BUNDLE_UPDATE_LBN 28 14675 #define MC_CMD_GET_CAPABILITIES_V7_OUT_BUNDLE_UPDATE_WIDTH 1 14676 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V3_OFST 20 14677 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V3_LBN 29 14678 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V3_WIDTH 1 14679 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_SENSORS_OFST 20 14680 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_SENSORS_LBN 30 14681 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_SENSORS_WIDTH 1 14682 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 14683 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 14684 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 14685 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 14686 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 14687 */ 14688 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 14689 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 14690 /* One byte per PF containing the number of the external port assigned to this 14691 * PF, indexed by PF number. Special values indicate that a PF is either not 14692 * present or not assigned. 14693 */ 14694 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 14695 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 14696 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 14697 /* enum: The caller is not permitted to access information on this PF. */ 14698 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ACCESS_NOT_PERMITTED 0xff 14699 /* enum: PF does not exist. */ 14700 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PF_NOT_PRESENT 0xfe 14701 /* enum: PF does exist but is not assigned to any external port. */ 14702 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PF_NOT_ASSIGNED 0xfd 14703 /* enum: This value indicates that PF is assigned, but it cannot be expressed 14704 * in this field. It is intended for a possible future situation where a more 14705 * complex scheme of PFs to ports mapping is being used. The future driver 14706 * should look for a new field supporting the new scheme. The current/old 14707 * driver should treat this value as PF_NOT_ASSIGNED. 14708 */ 14709 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 14710 /* One byte per PF containing the number of its VFs, indexed by PF number. A 14711 * special value indicates that a PF is not present. 14712 */ 14713 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VFS_PER_PF_OFST 42 14714 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VFS_PER_PF_LEN 1 14715 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VFS_PER_PF_NUM 16 14716 /* enum: The caller is not permitted to access information on this PF. */ 14717 /* MC_CMD_GET_CAPABILITIES_V7_OUT_ACCESS_NOT_PERMITTED 0xff */ 14718 /* enum: PF does not exist. */ 14719 /* MC_CMD_GET_CAPABILITIES_V7_OUT_PF_NOT_PRESENT 0xfe */ 14720 /* Number of VIs available for each external port */ 14721 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VIS_PER_PORT_OFST 58 14722 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VIS_PER_PORT_LEN 2 14723 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VIS_PER_PORT_NUM 4 14724 /* Size of RX descriptor cache expressed as binary logarithm The actual size 14725 * equals (2 ^ RX_DESC_CACHE_SIZE) 14726 */ 14727 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DESC_CACHE_SIZE_OFST 66 14728 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DESC_CACHE_SIZE_LEN 1 14729 /* Size of TX descriptor cache expressed as binary logarithm The actual size 14730 * equals (2 ^ TX_DESC_CACHE_SIZE) 14731 */ 14732 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DESC_CACHE_SIZE_OFST 67 14733 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DESC_CACHE_SIZE_LEN 1 14734 /* Total number of available PIO buffers */ 14735 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_PIO_BUFFS_OFST 68 14736 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_PIO_BUFFS_LEN 2 14737 /* Size of a single PIO buffer */ 14738 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SIZE_PIO_BUFF_OFST 70 14739 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SIZE_PIO_BUFF_LEN 2 14740 /* On chips later than Medford the amount of address space assigned to each VI 14741 * is configurable. This is a global setting that the driver must query to 14742 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 14743 * with 8k VI windows. 14744 */ 14745 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_OFST 72 14746 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_LEN 1 14747 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 14748 * CTPIO is not mapped. 14749 */ 14750 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_8K 0x0 14751 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 14752 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_16K 0x1 14753 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 14754 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_64K 0x2 14755 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 14756 * (SF-115995-SW) in the present configuration of firmware and port mode. 14757 */ 14758 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 14759 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 14760 /* Number of buffers per adapter that can be used for VFIFO Stuffing 14761 * (SF-115995-SW) in the present configuration of firmware and port mode. 14762 */ 14763 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 14764 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 14765 /* Entry count in the MAC stats array, including the final GENERATION_END 14766 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 14767 * hold at least this many 64-bit stats values, if they wish to receive all 14768 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 14769 * stats array returned will be truncated. 14770 */ 14771 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_NUM_STATS_OFST 76 14772 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_NUM_STATS_LEN 2 14773 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 14774 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 14775 */ 14776 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_MAX_OFST 80 14777 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_MAX_LEN 4 14778 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 14779 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 14780 * they create an RX queue. Due to hardware limitations, only a small number of 14781 * different buffer sizes may be available concurrently. Nonzero entries in 14782 * this array are the sizes of buffers which the system guarantees will be 14783 * available for use. If the list is empty, there are no limitations on 14784 * concurrent buffer sizes. 14785 */ 14786 #define MC_CMD_GET_CAPABILITIES_V7_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 14787 #define MC_CMD_GET_CAPABILITIES_V7_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 14788 #define MC_CMD_GET_CAPABILITIES_V7_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 14789 /* Third word of flags. Not present on older firmware (check the length). */ 14790 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS3_OFST 148 14791 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS3_LEN 4 14792 #define MC_CMD_GET_CAPABILITIES_V7_OUT_WOL_ETHERWAKE_OFST 148 14793 #define MC_CMD_GET_CAPABILITIES_V7_OUT_WOL_ETHERWAKE_LBN 0 14794 #define MC_CMD_GET_CAPABILITIES_V7_OUT_WOL_ETHERWAKE_WIDTH 1 14795 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_EVEN_SPREADING_OFST 148 14796 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_EVEN_SPREADING_LBN 1 14797 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_EVEN_SPREADING_WIDTH 1 14798 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 14799 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 14800 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 14801 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_SUPPORTED_OFST 148 14802 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_SUPPORTED_LBN 3 14803 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_SUPPORTED_WIDTH 1 14804 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VDPA_SUPPORTED_OFST 148 14805 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VDPA_SUPPORTED_LBN 4 14806 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VDPA_SUPPORTED_WIDTH 1 14807 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 14808 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 14809 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 14810 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 14811 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 14812 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 14813 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 14814 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 14815 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 14816 14817 /* MC_CMD_GET_CAPABILITIES_V8_OUT msgresponse */ 14818 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LEN 160 14819 /* First word of flags. */ 14820 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS1_OFST 0 14821 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS1_LEN 4 14822 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VPORT_RECONFIGURE_OFST 0 14823 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VPORT_RECONFIGURE_LBN 3 14824 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VPORT_RECONFIGURE_WIDTH 1 14825 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_STRIPING_OFST 0 14826 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_STRIPING_LBN 4 14827 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_STRIPING_WIDTH 1 14828 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_QUERY_OFST 0 14829 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_QUERY_LBN 5 14830 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_QUERY_WIDTH 1 14831 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 14832 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 14833 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 14834 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DRV_ATTACH_PREBOOT_OFST 0 14835 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DRV_ATTACH_PREBOOT_LBN 7 14836 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 14837 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_FORCE_EVENT_MERGING_OFST 0 14838 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_FORCE_EVENT_MERGING_LBN 8 14839 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 14840 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SET_MAC_ENHANCED_OFST 0 14841 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SET_MAC_ENHANCED_LBN 9 14842 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SET_MAC_ENHANCED_WIDTH 1 14843 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 14844 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 14845 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 14846 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 14847 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 14848 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 14849 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 14850 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 14851 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 14852 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ADDITIONAL_RSS_MODES_OFST 0 14853 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ADDITIONAL_RSS_MODES_LBN 13 14854 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 14855 #define MC_CMD_GET_CAPABILITIES_V8_OUT_QBB_OFST 0 14856 #define MC_CMD_GET_CAPABILITIES_V8_OUT_QBB_LBN 14 14857 #define MC_CMD_GET_CAPABILITIES_V8_OUT_QBB_WIDTH 1 14858 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 14859 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 14860 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 14861 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_RSS_LIMITED_OFST 0 14862 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_RSS_LIMITED_LBN 16 14863 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_RSS_LIMITED_WIDTH 1 14864 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_OFST 0 14865 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_LBN 17 14866 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_WIDTH 1 14867 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_INCLUDE_FCS_OFST 0 14868 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_INCLUDE_FCS_LBN 18 14869 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_INCLUDE_FCS_WIDTH 1 14870 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VLAN_INSERTION_OFST 0 14871 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VLAN_INSERTION_LBN 19 14872 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VLAN_INSERTION_WIDTH 1 14873 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_OFST 0 14874 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_LBN 20 14875 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_WIDTH 1 14876 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_OFST 0 14877 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_LBN 21 14878 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_WIDTH 1 14879 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_0_OFST 0 14880 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_0_LBN 22 14881 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_0_WIDTH 1 14882 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_14_OFST 0 14883 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_14_LBN 23 14884 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_14_WIDTH 1 14885 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_TIMESTAMP_OFST 0 14886 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_TIMESTAMP_LBN 24 14887 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_TIMESTAMP_WIDTH 1 14888 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_BATCHING_OFST 0 14889 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_BATCHING_LBN 25 14890 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_BATCHING_WIDTH 1 14891 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCAST_FILTER_CHAINING_OFST 0 14892 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCAST_FILTER_CHAINING_LBN 26 14893 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCAST_FILTER_CHAINING_WIDTH 1 14894 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PM_AND_RXDP_COUNTERS_OFST 0 14895 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PM_AND_RXDP_COUNTERS_LBN 27 14896 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 14897 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DISABLE_SCATTER_OFST 0 14898 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DISABLE_SCATTER_LBN 28 14899 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DISABLE_SCATTER_WIDTH 1 14900 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 14901 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 14902 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 14903 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_OFST 0 14904 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_LBN 30 14905 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_WIDTH 1 14906 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VXLAN_NVGRE_OFST 0 14907 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VXLAN_NVGRE_LBN 31 14908 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VXLAN_NVGRE_WIDTH 1 14909 /* RxDPCPU firmware id. */ 14910 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DPCPU_FW_ID_OFST 4 14911 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DPCPU_FW_ID_LEN 2 14912 /* enum: Standard RXDP firmware */ 14913 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP 0x0 14914 /* enum: Low latency RXDP firmware */ 14915 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_LOW_LATENCY 0x1 14916 /* enum: Packed stream RXDP firmware */ 14917 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_PACKED_STREAM 0x2 14918 /* enum: Rules engine RXDP firmware */ 14919 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_RULES_ENGINE 0x5 14920 /* enum: DPDK RXDP firmware */ 14921 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_DPDK 0x6 14922 /* enum: BIST RXDP firmware */ 14923 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_BIST 0x10a 14924 /* enum: RXDP Test firmware image 1 */ 14925 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 14926 /* enum: RXDP Test firmware image 2 */ 14927 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 14928 /* enum: RXDP Test firmware image 3 */ 14929 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 14930 /* enum: RXDP Test firmware image 4 */ 14931 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 14932 /* enum: RXDP Test firmware image 5 */ 14933 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_BACKPRESSURE 0x105 14934 /* enum: RXDP Test firmware image 6 */ 14935 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 14936 /* enum: RXDP Test firmware image 7 */ 14937 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 14938 /* enum: RXDP Test firmware image 8 */ 14939 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 14940 /* enum: RXDP Test firmware image 9 */ 14941 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 14942 /* enum: RXDP Test firmware image 10 */ 14943 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_TEST_FW_SLOW 0x10c 14944 /* TxDPCPU firmware id. */ 14945 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DPCPU_FW_ID_OFST 6 14946 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DPCPU_FW_ID_LEN 2 14947 /* enum: Standard TXDP firmware */ 14948 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP 0x0 14949 /* enum: Low latency TXDP firmware */ 14950 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_LOW_LATENCY 0x1 14951 /* enum: High packet rate TXDP firmware */ 14952 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_HIGH_PACKET_RATE 0x3 14953 /* enum: Rules engine TXDP firmware */ 14954 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_RULES_ENGINE 0x5 14955 /* enum: DPDK TXDP firmware */ 14956 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_DPDK 0x6 14957 /* enum: BIST TXDP firmware */ 14958 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_BIST 0x12d 14959 /* enum: TXDP Test firmware image 1 */ 14960 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 14961 /* enum: TXDP Test firmware image 2 */ 14962 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 14963 /* enum: TXDP CSR bus test firmware */ 14964 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXDP_TEST_FW_CSR 0x103 14965 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_OFST 8 14966 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_LEN 2 14967 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_REV_OFST 8 14968 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_REV_LBN 0 14969 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_REV_WIDTH 12 14970 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_TYPE_OFST 8 14971 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_TYPE_LBN 12 14972 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 14973 /* enum: reserved value - do not use (may indicate alternative interpretation 14974 * of REV field in future) 14975 */ 14976 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_RESERVED 0x0 14977 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 14978 * development only) 14979 */ 14980 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 14981 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 14982 */ 14983 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 14984 /* enum: RX PD firmware with approximately Siena-compatible behaviour 14985 * (Huntington development only) 14986 */ 14987 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 14988 /* enum: Full featured RX PD production firmware */ 14989 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 14990 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 14991 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_VSWITCH 0x3 14992 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 14993 * (Huntington development only) 14994 */ 14995 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 14996 /* enum: Low latency RX PD production firmware */ 14997 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 14998 /* enum: Packed stream RX PD production firmware */ 14999 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 15000 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 15001 * tests (Medford development only) 15002 */ 15003 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 15004 /* enum: Rules engine RX PD production firmware */ 15005 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 15006 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15007 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_L3XUDP 0x9 15008 /* enum: DPDK RX PD production firmware */ 15009 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_DPDK 0xa 15010 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15011 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15012 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 15013 * encapsulations (Medford development only) 15014 */ 15015 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 15016 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_OFST 10 15017 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_LEN 2 15018 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_REV_OFST 10 15019 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_REV_LBN 0 15020 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_REV_WIDTH 12 15021 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_TYPE_OFST 10 15022 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_TYPE_LBN 12 15023 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 15024 /* enum: reserved value - do not use (may indicate alternative interpretation 15025 * of REV field in future) 15026 */ 15027 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_RESERVED 0x0 15028 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 15029 * development only) 15030 */ 15031 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 15032 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 15033 */ 15034 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15035 /* enum: TX PD firmware with approximately Siena-compatible behaviour 15036 * (Huntington development only) 15037 */ 15038 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 15039 /* enum: Full featured TX PD production firmware */ 15040 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 15041 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15042 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_VSWITCH 0x3 15043 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 15044 * (Huntington development only) 15045 */ 15046 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15047 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 15048 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 15049 * tests (Medford development only) 15050 */ 15051 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 15052 /* enum: Rules engine TX PD production firmware */ 15053 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 15054 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15055 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_L3XUDP 0x9 15056 /* enum: DPDK TX PD production firmware */ 15057 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_DPDK 0xa 15058 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15059 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15060 /* Hardware capabilities of NIC */ 15061 #define MC_CMD_GET_CAPABILITIES_V8_OUT_HW_CAPABILITIES_OFST 12 15062 #define MC_CMD_GET_CAPABILITIES_V8_OUT_HW_CAPABILITIES_LEN 4 15063 /* Licensed capabilities */ 15064 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LICENSE_CAPABILITIES_OFST 16 15065 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LICENSE_CAPABILITIES_LEN 4 15066 /* Second word of flags. Not present on older firmware (check the length). */ 15067 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS2_OFST 20 15068 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS2_LEN 4 15069 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_OFST 20 15070 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_LBN 0 15071 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_WIDTH 1 15072 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_ENCAP_OFST 20 15073 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_ENCAP_LBN 1 15074 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_ENCAP_WIDTH 1 15075 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVQ_TIMER_CTRL_OFST 20 15076 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVQ_TIMER_CTRL_LBN 2 15077 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVQ_TIMER_CTRL_WIDTH 1 15078 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVENT_CUT_THROUGH_OFST 20 15079 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVENT_CUT_THROUGH_LBN 3 15080 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVENT_CUT_THROUGH_WIDTH 1 15081 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_CUT_THROUGH_OFST 20 15082 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_CUT_THROUGH_LBN 4 15083 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_CUT_THROUGH_WIDTH 1 15084 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VFIFO_ULL_MODE_OFST 20 15085 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VFIFO_ULL_MODE_LBN 5 15086 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 15087 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 15088 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 15089 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 15090 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 15091 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 15092 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 15093 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_V2_OFST 20 15094 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_V2_LBN 7 15095 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_V2_WIDTH 1 15096 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_TIMESTAMPING_OFST 20 15097 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_TIMESTAMPING_LBN 8 15098 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 15099 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TIMESTAMP_OFST 20 15100 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TIMESTAMP_LBN 9 15101 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TIMESTAMP_WIDTH 1 15102 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_SNIFF_OFST 20 15103 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_SNIFF_LBN 10 15104 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_SNIFF_WIDTH 1 15105 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_SNIFF_OFST 20 15106 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_SNIFF_LBN 11 15107 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_SNIFF_WIDTH 1 15108 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 15109 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 15110 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 15111 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_BACKGROUND_OFST 20 15112 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_BACKGROUND_LBN 13 15113 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_BACKGROUND_WIDTH 1 15114 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_DB_RETURN_OFST 20 15115 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_DB_RETURN_LBN 14 15116 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_DB_RETURN_WIDTH 1 15117 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CTPIO_OFST 20 15118 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CTPIO_LBN 15 15119 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CTPIO_WIDTH 1 15120 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_SUPPORT_OFST 20 15121 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_SUPPORT_LBN 16 15122 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_SUPPORT_WIDTH 1 15123 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_BOUND_OFST 20 15124 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_BOUND_LBN 17 15125 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_BOUND_WIDTH 1 15126 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 15127 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 15128 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 15129 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_FLAG_OFST 20 15130 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_FLAG_LBN 19 15131 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_FLAG_WIDTH 1 15132 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_OFST 20 15133 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_LBN 20 15134 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_WIDTH 1 15135 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 15136 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 15137 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 15138 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 15139 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 15140 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 15141 #define MC_CMD_GET_CAPABILITIES_V8_OUT_L3XUDP_SUPPORT_OFST 20 15142 #define MC_CMD_GET_CAPABILITIES_V8_OUT_L3XUDP_SUPPORT_LBN 22 15143 #define MC_CMD_GET_CAPABILITIES_V8_OUT_L3XUDP_SUPPORT_WIDTH 1 15144 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 15145 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 15146 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 15147 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_SPREADING_OFST 20 15148 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_SPREADING_LBN 24 15149 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_SPREADING_WIDTH 1 15150 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_HLB_IDLE_OFST 20 15151 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_HLB_IDLE_LBN 25 15152 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_HLB_IDLE_WIDTH 1 15153 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 15154 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 15155 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 15156 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 15157 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 15158 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 15159 #define MC_CMD_GET_CAPABILITIES_V8_OUT_BUNDLE_UPDATE_OFST 20 15160 #define MC_CMD_GET_CAPABILITIES_V8_OUT_BUNDLE_UPDATE_LBN 28 15161 #define MC_CMD_GET_CAPABILITIES_V8_OUT_BUNDLE_UPDATE_WIDTH 1 15162 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V3_OFST 20 15163 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V3_LBN 29 15164 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V3_WIDTH 1 15165 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_SENSORS_OFST 20 15166 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_SENSORS_LBN 30 15167 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_SENSORS_WIDTH 1 15168 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 15169 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 15170 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 15171 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 15172 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 15173 */ 15174 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 15175 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 15176 /* One byte per PF containing the number of the external port assigned to this 15177 * PF, indexed by PF number. Special values indicate that a PF is either not 15178 * present or not assigned. 15179 */ 15180 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 15181 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 15182 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 15183 /* enum: The caller is not permitted to access information on this PF. */ 15184 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ACCESS_NOT_PERMITTED 0xff 15185 /* enum: PF does not exist. */ 15186 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PF_NOT_PRESENT 0xfe 15187 /* enum: PF does exist but is not assigned to any external port. */ 15188 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PF_NOT_ASSIGNED 0xfd 15189 /* enum: This value indicates that PF is assigned, but it cannot be expressed 15190 * in this field. It is intended for a possible future situation where a more 15191 * complex scheme of PFs to ports mapping is being used. The future driver 15192 * should look for a new field supporting the new scheme. The current/old 15193 * driver should treat this value as PF_NOT_ASSIGNED. 15194 */ 15195 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 15196 /* One byte per PF containing the number of its VFs, indexed by PF number. A 15197 * special value indicates that a PF is not present. 15198 */ 15199 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VFS_PER_PF_OFST 42 15200 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VFS_PER_PF_LEN 1 15201 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VFS_PER_PF_NUM 16 15202 /* enum: The caller is not permitted to access information on this PF. */ 15203 /* MC_CMD_GET_CAPABILITIES_V8_OUT_ACCESS_NOT_PERMITTED 0xff */ 15204 /* enum: PF does not exist. */ 15205 /* MC_CMD_GET_CAPABILITIES_V8_OUT_PF_NOT_PRESENT 0xfe */ 15206 /* Number of VIs available for each external port */ 15207 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VIS_PER_PORT_OFST 58 15208 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VIS_PER_PORT_LEN 2 15209 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VIS_PER_PORT_NUM 4 15210 /* Size of RX descriptor cache expressed as binary logarithm The actual size 15211 * equals (2 ^ RX_DESC_CACHE_SIZE) 15212 */ 15213 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DESC_CACHE_SIZE_OFST 66 15214 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DESC_CACHE_SIZE_LEN 1 15215 /* Size of TX descriptor cache expressed as binary logarithm The actual size 15216 * equals (2 ^ TX_DESC_CACHE_SIZE) 15217 */ 15218 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DESC_CACHE_SIZE_OFST 67 15219 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DESC_CACHE_SIZE_LEN 1 15220 /* Total number of available PIO buffers */ 15221 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_PIO_BUFFS_OFST 68 15222 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_PIO_BUFFS_LEN 2 15223 /* Size of a single PIO buffer */ 15224 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SIZE_PIO_BUFF_OFST 70 15225 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SIZE_PIO_BUFF_LEN 2 15226 /* On chips later than Medford the amount of address space assigned to each VI 15227 * is configurable. This is a global setting that the driver must query to 15228 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 15229 * with 8k VI windows. 15230 */ 15231 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_OFST 72 15232 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_LEN 1 15233 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 15234 * CTPIO is not mapped. 15235 */ 15236 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_8K 0x0 15237 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 15238 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_16K 0x1 15239 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 15240 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_64K 0x2 15241 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 15242 * (SF-115995-SW) in the present configuration of firmware and port mode. 15243 */ 15244 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 15245 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 15246 /* Number of buffers per adapter that can be used for VFIFO Stuffing 15247 * (SF-115995-SW) in the present configuration of firmware and port mode. 15248 */ 15249 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 15250 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 15251 /* Entry count in the MAC stats array, including the final GENERATION_END 15252 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 15253 * hold at least this many 64-bit stats values, if they wish to receive all 15254 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 15255 * stats array returned will be truncated. 15256 */ 15257 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_NUM_STATS_OFST 76 15258 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_NUM_STATS_LEN 2 15259 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 15260 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 15261 */ 15262 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_MAX_OFST 80 15263 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_MAX_LEN 4 15264 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 15265 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 15266 * they create an RX queue. Due to hardware limitations, only a small number of 15267 * different buffer sizes may be available concurrently. Nonzero entries in 15268 * this array are the sizes of buffers which the system guarantees will be 15269 * available for use. If the list is empty, there are no limitations on 15270 * concurrent buffer sizes. 15271 */ 15272 #define MC_CMD_GET_CAPABILITIES_V8_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 15273 #define MC_CMD_GET_CAPABILITIES_V8_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 15274 #define MC_CMD_GET_CAPABILITIES_V8_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 15275 /* Third word of flags. Not present on older firmware (check the length). */ 15276 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS3_OFST 148 15277 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS3_LEN 4 15278 #define MC_CMD_GET_CAPABILITIES_V8_OUT_WOL_ETHERWAKE_OFST 148 15279 #define MC_CMD_GET_CAPABILITIES_V8_OUT_WOL_ETHERWAKE_LBN 0 15280 #define MC_CMD_GET_CAPABILITIES_V8_OUT_WOL_ETHERWAKE_WIDTH 1 15281 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_EVEN_SPREADING_OFST 148 15282 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_EVEN_SPREADING_LBN 1 15283 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_EVEN_SPREADING_WIDTH 1 15284 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 15285 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 15286 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 15287 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_SUPPORTED_OFST 148 15288 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_SUPPORTED_LBN 3 15289 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_SUPPORTED_WIDTH 1 15290 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VDPA_SUPPORTED_OFST 148 15291 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VDPA_SUPPORTED_LBN 4 15292 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VDPA_SUPPORTED_WIDTH 1 15293 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 15294 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 15295 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 15296 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 15297 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 15298 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 15299 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 15300 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 15301 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 15302 /* These bits are reserved for communicating test-specific capabilities to 15303 * host-side test software. All production drivers should treat this field as 15304 * opaque. 15305 */ 15306 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_OFST 152 15307 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LEN 8 15308 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_OFST 152 15309 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_OFST 156 15310 15311 /* MC_CMD_GET_CAPABILITIES_V9_OUT msgresponse */ 15312 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LEN 184 15313 /* First word of flags. */ 15314 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS1_OFST 0 15315 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS1_LEN 4 15316 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VPORT_RECONFIGURE_OFST 0 15317 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VPORT_RECONFIGURE_LBN 3 15318 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VPORT_RECONFIGURE_WIDTH 1 15319 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_STRIPING_OFST 0 15320 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_STRIPING_LBN 4 15321 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_STRIPING_WIDTH 1 15322 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_QUERY_OFST 0 15323 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_QUERY_LBN 5 15324 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_QUERY_WIDTH 1 15325 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 15326 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 15327 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 15328 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DRV_ATTACH_PREBOOT_OFST 0 15329 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DRV_ATTACH_PREBOOT_LBN 7 15330 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 15331 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_FORCE_EVENT_MERGING_OFST 0 15332 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_FORCE_EVENT_MERGING_LBN 8 15333 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 15334 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SET_MAC_ENHANCED_OFST 0 15335 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SET_MAC_ENHANCED_LBN 9 15336 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SET_MAC_ENHANCED_WIDTH 1 15337 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 15338 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 15339 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 15340 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 15341 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 15342 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 15343 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 15344 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 15345 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 15346 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ADDITIONAL_RSS_MODES_OFST 0 15347 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ADDITIONAL_RSS_MODES_LBN 13 15348 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 15349 #define MC_CMD_GET_CAPABILITIES_V9_OUT_QBB_OFST 0 15350 #define MC_CMD_GET_CAPABILITIES_V9_OUT_QBB_LBN 14 15351 #define MC_CMD_GET_CAPABILITIES_V9_OUT_QBB_WIDTH 1 15352 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 15353 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 15354 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 15355 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_RSS_LIMITED_OFST 0 15356 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_RSS_LIMITED_LBN 16 15357 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_RSS_LIMITED_WIDTH 1 15358 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_OFST 0 15359 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_LBN 17 15360 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_WIDTH 1 15361 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_INCLUDE_FCS_OFST 0 15362 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_INCLUDE_FCS_LBN 18 15363 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_INCLUDE_FCS_WIDTH 1 15364 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VLAN_INSERTION_OFST 0 15365 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VLAN_INSERTION_LBN 19 15366 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VLAN_INSERTION_WIDTH 1 15367 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_OFST 0 15368 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_LBN 20 15369 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_WIDTH 1 15370 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_OFST 0 15371 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_LBN 21 15372 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_WIDTH 1 15373 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_0_OFST 0 15374 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_0_LBN 22 15375 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_0_WIDTH 1 15376 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_14_OFST 0 15377 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_14_LBN 23 15378 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_14_WIDTH 1 15379 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_TIMESTAMP_OFST 0 15380 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_TIMESTAMP_LBN 24 15381 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_TIMESTAMP_WIDTH 1 15382 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_BATCHING_OFST 0 15383 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_BATCHING_LBN 25 15384 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_BATCHING_WIDTH 1 15385 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCAST_FILTER_CHAINING_OFST 0 15386 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCAST_FILTER_CHAINING_LBN 26 15387 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCAST_FILTER_CHAINING_WIDTH 1 15388 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PM_AND_RXDP_COUNTERS_OFST 0 15389 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PM_AND_RXDP_COUNTERS_LBN 27 15390 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 15391 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DISABLE_SCATTER_OFST 0 15392 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DISABLE_SCATTER_LBN 28 15393 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DISABLE_SCATTER_WIDTH 1 15394 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 15395 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 15396 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 15397 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_OFST 0 15398 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_LBN 30 15399 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_WIDTH 1 15400 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VXLAN_NVGRE_OFST 0 15401 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VXLAN_NVGRE_LBN 31 15402 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VXLAN_NVGRE_WIDTH 1 15403 /* RxDPCPU firmware id. */ 15404 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DPCPU_FW_ID_OFST 4 15405 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DPCPU_FW_ID_LEN 2 15406 /* enum: Standard RXDP firmware */ 15407 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP 0x0 15408 /* enum: Low latency RXDP firmware */ 15409 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_LOW_LATENCY 0x1 15410 /* enum: Packed stream RXDP firmware */ 15411 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_PACKED_STREAM 0x2 15412 /* enum: Rules engine RXDP firmware */ 15413 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_RULES_ENGINE 0x5 15414 /* enum: DPDK RXDP firmware */ 15415 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_DPDK 0x6 15416 /* enum: BIST RXDP firmware */ 15417 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_BIST 0x10a 15418 /* enum: RXDP Test firmware image 1 */ 15419 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 15420 /* enum: RXDP Test firmware image 2 */ 15421 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 15422 /* enum: RXDP Test firmware image 3 */ 15423 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 15424 /* enum: RXDP Test firmware image 4 */ 15425 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 15426 /* enum: RXDP Test firmware image 5 */ 15427 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_BACKPRESSURE 0x105 15428 /* enum: RXDP Test firmware image 6 */ 15429 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 15430 /* enum: RXDP Test firmware image 7 */ 15431 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 15432 /* enum: RXDP Test firmware image 8 */ 15433 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 15434 /* enum: RXDP Test firmware image 9 */ 15435 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 15436 /* enum: RXDP Test firmware image 10 */ 15437 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_TEST_FW_SLOW 0x10c 15438 /* TxDPCPU firmware id. */ 15439 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DPCPU_FW_ID_OFST 6 15440 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DPCPU_FW_ID_LEN 2 15441 /* enum: Standard TXDP firmware */ 15442 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP 0x0 15443 /* enum: Low latency TXDP firmware */ 15444 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_LOW_LATENCY 0x1 15445 /* enum: High packet rate TXDP firmware */ 15446 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_HIGH_PACKET_RATE 0x3 15447 /* enum: Rules engine TXDP firmware */ 15448 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_RULES_ENGINE 0x5 15449 /* enum: DPDK TXDP firmware */ 15450 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_DPDK 0x6 15451 /* enum: BIST TXDP firmware */ 15452 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_BIST 0x12d 15453 /* enum: TXDP Test firmware image 1 */ 15454 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 15455 /* enum: TXDP Test firmware image 2 */ 15456 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 15457 /* enum: TXDP CSR bus test firmware */ 15458 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXDP_TEST_FW_CSR 0x103 15459 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_OFST 8 15460 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_LEN 2 15461 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_REV_OFST 8 15462 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_REV_LBN 0 15463 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_REV_WIDTH 12 15464 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_TYPE_OFST 8 15465 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_TYPE_LBN 12 15466 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 15467 /* enum: reserved value - do not use (may indicate alternative interpretation 15468 * of REV field in future) 15469 */ 15470 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_RESERVED 0x0 15471 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 15472 * development only) 15473 */ 15474 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 15475 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 15476 */ 15477 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15478 /* enum: RX PD firmware with approximately Siena-compatible behaviour 15479 * (Huntington development only) 15480 */ 15481 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 15482 /* enum: Full featured RX PD production firmware */ 15483 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 15484 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15485 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_VSWITCH 0x3 15486 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 15487 * (Huntington development only) 15488 */ 15489 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15490 /* enum: Low latency RX PD production firmware */ 15491 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 15492 /* enum: Packed stream RX PD production firmware */ 15493 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 15494 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 15495 * tests (Medford development only) 15496 */ 15497 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 15498 /* enum: Rules engine RX PD production firmware */ 15499 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 15500 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15501 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_L3XUDP 0x9 15502 /* enum: DPDK RX PD production firmware */ 15503 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_DPDK 0xa 15504 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15505 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15506 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 15507 * encapsulations (Medford development only) 15508 */ 15509 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 15510 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_OFST 10 15511 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_LEN 2 15512 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_REV_OFST 10 15513 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_REV_LBN 0 15514 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_REV_WIDTH 12 15515 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_TYPE_OFST 10 15516 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_TYPE_LBN 12 15517 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 15518 /* enum: reserved value - do not use (may indicate alternative interpretation 15519 * of REV field in future) 15520 */ 15521 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_RESERVED 0x0 15522 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 15523 * development only) 15524 */ 15525 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 15526 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 15527 */ 15528 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 15529 /* enum: TX PD firmware with approximately Siena-compatible behaviour 15530 * (Huntington development only) 15531 */ 15532 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 15533 /* enum: Full featured TX PD production firmware */ 15534 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 15535 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 15536 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_VSWITCH 0x3 15537 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 15538 * (Huntington development only) 15539 */ 15540 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 15541 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 15542 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 15543 * tests (Medford development only) 15544 */ 15545 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 15546 /* enum: Rules engine TX PD production firmware */ 15547 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 15548 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 15549 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_L3XUDP 0x9 15550 /* enum: DPDK TX PD production firmware */ 15551 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_DPDK 0xa 15552 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 15553 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 15554 /* Hardware capabilities of NIC */ 15555 #define MC_CMD_GET_CAPABILITIES_V9_OUT_HW_CAPABILITIES_OFST 12 15556 #define MC_CMD_GET_CAPABILITIES_V9_OUT_HW_CAPABILITIES_LEN 4 15557 /* Licensed capabilities */ 15558 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LICENSE_CAPABILITIES_OFST 16 15559 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LICENSE_CAPABILITIES_LEN 4 15560 /* Second word of flags. Not present on older firmware (check the length). */ 15561 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS2_OFST 20 15562 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS2_LEN 4 15563 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_OFST 20 15564 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_LBN 0 15565 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_WIDTH 1 15566 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_ENCAP_OFST 20 15567 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_ENCAP_LBN 1 15568 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_ENCAP_WIDTH 1 15569 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVQ_TIMER_CTRL_OFST 20 15570 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVQ_TIMER_CTRL_LBN 2 15571 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVQ_TIMER_CTRL_WIDTH 1 15572 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVENT_CUT_THROUGH_OFST 20 15573 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVENT_CUT_THROUGH_LBN 3 15574 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVENT_CUT_THROUGH_WIDTH 1 15575 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_CUT_THROUGH_OFST 20 15576 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_CUT_THROUGH_LBN 4 15577 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_CUT_THROUGH_WIDTH 1 15578 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VFIFO_ULL_MODE_OFST 20 15579 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VFIFO_ULL_MODE_LBN 5 15580 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 15581 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 15582 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 15583 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 15584 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 15585 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 15586 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 15587 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_V2_OFST 20 15588 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_V2_LBN 7 15589 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_V2_WIDTH 1 15590 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_TIMESTAMPING_OFST 20 15591 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_TIMESTAMPING_LBN 8 15592 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 15593 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TIMESTAMP_OFST 20 15594 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TIMESTAMP_LBN 9 15595 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TIMESTAMP_WIDTH 1 15596 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_SNIFF_OFST 20 15597 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_SNIFF_LBN 10 15598 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_SNIFF_WIDTH 1 15599 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_SNIFF_OFST 20 15600 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_SNIFF_LBN 11 15601 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_SNIFF_WIDTH 1 15602 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 15603 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 15604 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 15605 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_BACKGROUND_OFST 20 15606 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_BACKGROUND_LBN 13 15607 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_BACKGROUND_WIDTH 1 15608 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_DB_RETURN_OFST 20 15609 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_DB_RETURN_LBN 14 15610 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_DB_RETURN_WIDTH 1 15611 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CTPIO_OFST 20 15612 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CTPIO_LBN 15 15613 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CTPIO_WIDTH 1 15614 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_SUPPORT_OFST 20 15615 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_SUPPORT_LBN 16 15616 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_SUPPORT_WIDTH 1 15617 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_BOUND_OFST 20 15618 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_BOUND_LBN 17 15619 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_BOUND_WIDTH 1 15620 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 15621 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 15622 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 15623 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_FLAG_OFST 20 15624 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_FLAG_LBN 19 15625 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_FLAG_WIDTH 1 15626 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_OFST 20 15627 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_LBN 20 15628 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_WIDTH 1 15629 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 15630 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 15631 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 15632 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 15633 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 15634 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 15635 #define MC_CMD_GET_CAPABILITIES_V9_OUT_L3XUDP_SUPPORT_OFST 20 15636 #define MC_CMD_GET_CAPABILITIES_V9_OUT_L3XUDP_SUPPORT_LBN 22 15637 #define MC_CMD_GET_CAPABILITIES_V9_OUT_L3XUDP_SUPPORT_WIDTH 1 15638 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 15639 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 15640 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 15641 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_SPREADING_OFST 20 15642 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_SPREADING_LBN 24 15643 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_SPREADING_WIDTH 1 15644 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_HLB_IDLE_OFST 20 15645 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_HLB_IDLE_LBN 25 15646 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_HLB_IDLE_WIDTH 1 15647 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 15648 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 15649 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 15650 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 15651 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 15652 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 15653 #define MC_CMD_GET_CAPABILITIES_V9_OUT_BUNDLE_UPDATE_OFST 20 15654 #define MC_CMD_GET_CAPABILITIES_V9_OUT_BUNDLE_UPDATE_LBN 28 15655 #define MC_CMD_GET_CAPABILITIES_V9_OUT_BUNDLE_UPDATE_WIDTH 1 15656 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V3_OFST 20 15657 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V3_LBN 29 15658 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V3_WIDTH 1 15659 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_SENSORS_OFST 20 15660 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_SENSORS_LBN 30 15661 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_SENSORS_WIDTH 1 15662 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 15663 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 15664 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 15665 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 15666 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 15667 */ 15668 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 15669 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 15670 /* One byte per PF containing the number of the external port assigned to this 15671 * PF, indexed by PF number. Special values indicate that a PF is either not 15672 * present or not assigned. 15673 */ 15674 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 15675 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 15676 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 15677 /* enum: The caller is not permitted to access information on this PF. */ 15678 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ACCESS_NOT_PERMITTED 0xff 15679 /* enum: PF does not exist. */ 15680 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PF_NOT_PRESENT 0xfe 15681 /* enum: PF does exist but is not assigned to any external port. */ 15682 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PF_NOT_ASSIGNED 0xfd 15683 /* enum: This value indicates that PF is assigned, but it cannot be expressed 15684 * in this field. It is intended for a possible future situation where a more 15685 * complex scheme of PFs to ports mapping is being used. The future driver 15686 * should look for a new field supporting the new scheme. The current/old 15687 * driver should treat this value as PF_NOT_ASSIGNED. 15688 */ 15689 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 15690 /* One byte per PF containing the number of its VFs, indexed by PF number. A 15691 * special value indicates that a PF is not present. 15692 */ 15693 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VFS_PER_PF_OFST 42 15694 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VFS_PER_PF_LEN 1 15695 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VFS_PER_PF_NUM 16 15696 /* enum: The caller is not permitted to access information on this PF. */ 15697 /* MC_CMD_GET_CAPABILITIES_V9_OUT_ACCESS_NOT_PERMITTED 0xff */ 15698 /* enum: PF does not exist. */ 15699 /* MC_CMD_GET_CAPABILITIES_V9_OUT_PF_NOT_PRESENT 0xfe */ 15700 /* Number of VIs available for each external port */ 15701 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VIS_PER_PORT_OFST 58 15702 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VIS_PER_PORT_LEN 2 15703 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VIS_PER_PORT_NUM 4 15704 /* Size of RX descriptor cache expressed as binary logarithm The actual size 15705 * equals (2 ^ RX_DESC_CACHE_SIZE) 15706 */ 15707 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DESC_CACHE_SIZE_OFST 66 15708 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DESC_CACHE_SIZE_LEN 1 15709 /* Size of TX descriptor cache expressed as binary logarithm The actual size 15710 * equals (2 ^ TX_DESC_CACHE_SIZE) 15711 */ 15712 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DESC_CACHE_SIZE_OFST 67 15713 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DESC_CACHE_SIZE_LEN 1 15714 /* Total number of available PIO buffers */ 15715 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_PIO_BUFFS_OFST 68 15716 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_PIO_BUFFS_LEN 2 15717 /* Size of a single PIO buffer */ 15718 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SIZE_PIO_BUFF_OFST 70 15719 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SIZE_PIO_BUFF_LEN 2 15720 /* On chips later than Medford the amount of address space assigned to each VI 15721 * is configurable. This is a global setting that the driver must query to 15722 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 15723 * with 8k VI windows. 15724 */ 15725 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_OFST 72 15726 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_LEN 1 15727 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 15728 * CTPIO is not mapped. 15729 */ 15730 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_8K 0x0 15731 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 15732 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_16K 0x1 15733 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 15734 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_64K 0x2 15735 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 15736 * (SF-115995-SW) in the present configuration of firmware and port mode. 15737 */ 15738 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 15739 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 15740 /* Number of buffers per adapter that can be used for VFIFO Stuffing 15741 * (SF-115995-SW) in the present configuration of firmware and port mode. 15742 */ 15743 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 15744 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 15745 /* Entry count in the MAC stats array, including the final GENERATION_END 15746 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 15747 * hold at least this many 64-bit stats values, if they wish to receive all 15748 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 15749 * stats array returned will be truncated. 15750 */ 15751 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_NUM_STATS_OFST 76 15752 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_NUM_STATS_LEN 2 15753 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 15754 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 15755 */ 15756 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_MAX_OFST 80 15757 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_MAX_LEN 4 15758 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 15759 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 15760 * they create an RX queue. Due to hardware limitations, only a small number of 15761 * different buffer sizes may be available concurrently. Nonzero entries in 15762 * this array are the sizes of buffers which the system guarantees will be 15763 * available for use. If the list is empty, there are no limitations on 15764 * concurrent buffer sizes. 15765 */ 15766 #define MC_CMD_GET_CAPABILITIES_V9_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 15767 #define MC_CMD_GET_CAPABILITIES_V9_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 15768 #define MC_CMD_GET_CAPABILITIES_V9_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 15769 /* Third word of flags. Not present on older firmware (check the length). */ 15770 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS3_OFST 148 15771 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS3_LEN 4 15772 #define MC_CMD_GET_CAPABILITIES_V9_OUT_WOL_ETHERWAKE_OFST 148 15773 #define MC_CMD_GET_CAPABILITIES_V9_OUT_WOL_ETHERWAKE_LBN 0 15774 #define MC_CMD_GET_CAPABILITIES_V9_OUT_WOL_ETHERWAKE_WIDTH 1 15775 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_EVEN_SPREADING_OFST 148 15776 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_EVEN_SPREADING_LBN 1 15777 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_EVEN_SPREADING_WIDTH 1 15778 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 15779 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 15780 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 15781 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_SUPPORTED_OFST 148 15782 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_SUPPORTED_LBN 3 15783 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_SUPPORTED_WIDTH 1 15784 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VDPA_SUPPORTED_OFST 148 15785 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VDPA_SUPPORTED_LBN 4 15786 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VDPA_SUPPORTED_WIDTH 1 15787 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 15788 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 15789 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 15790 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 15791 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 15792 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 15793 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 15794 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 15795 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 15796 /* These bits are reserved for communicating test-specific capabilities to 15797 * host-side test software. All production drivers should treat this field as 15798 * opaque. 15799 */ 15800 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_OFST 152 15801 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LEN 8 15802 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_OFST 152 15803 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_OFST 156 15804 /* The minimum size (in table entries) of indirection table to be allocated 15805 * from the pool for an RSS context. Note that the table size used must be a 15806 * power of 2. 15807 */ 15808 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_OFST 160 15809 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_LEN 4 15810 /* The maximum size (in table entries) of indirection table to be allocated 15811 * from the pool for an RSS context. Note that the table size used must be a 15812 * power of 2. 15813 */ 15814 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_OFST 164 15815 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_LEN 4 15816 /* The maximum number of queues that can be used by an RSS context in exclusive 15817 * mode. In exclusive mode the context has a configurable indirection table and 15818 * a configurable RSS key. 15819 */ 15820 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_QUEUES_OFST 168 15821 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_QUEUES_LEN 4 15822 /* The maximum number of queues that can be used by an RSS context in even- 15823 * spreading mode. In even-spreading mode the context has no indirection table 15824 * but it does have a configurable RSS key. 15825 */ 15826 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_OFST 172 15827 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_LEN 4 15828 /* The total number of RSS contexts supported. Note that the number of 15829 * available contexts using indirection tables is also limited by the 15830 * availability of indirection table space allocated from a common pool. 15831 */ 15832 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_NUM_CONTEXTS_OFST 176 15833 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_NUM_CONTEXTS_LEN 4 15834 /* The total amount of indirection table space that can be shared between RSS 15835 * contexts. 15836 */ 15837 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_TABLE_POOL_SIZE_OFST 180 15838 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_TABLE_POOL_SIZE_LEN 4 15839 15840 /* MC_CMD_GET_CAPABILITIES_V10_OUT msgresponse */ 15841 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LEN 192 15842 /* First word of flags. */ 15843 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS1_OFST 0 15844 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS1_LEN 4 15845 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VPORT_RECONFIGURE_OFST 0 15846 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VPORT_RECONFIGURE_LBN 3 15847 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VPORT_RECONFIGURE_WIDTH 1 15848 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_OFST 0 15849 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_LBN 4 15850 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_WIDTH 1 15851 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_QUERY_OFST 0 15852 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_QUERY_LBN 5 15853 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_QUERY_WIDTH 1 15854 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_PORT_VLAN_RESTRICT_OFST 0 15855 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_PORT_VLAN_RESTRICT_LBN 6 15856 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1 15857 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_OFST 0 15858 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_LBN 7 15859 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_WIDTH 1 15860 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_FORCE_EVENT_MERGING_OFST 0 15861 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_FORCE_EVENT_MERGING_LBN 8 15862 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1 15863 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SET_MAC_ENHANCED_OFST 0 15864 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SET_MAC_ENHANCED_LBN 9 15865 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SET_MAC_ENHANCED_WIDTH 1 15866 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_OFST 0 15867 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_LBN 10 15868 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1 15869 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 0 15870 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 11 15871 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 15872 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_SECURITY_FILTERING_OFST 0 15873 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_SECURITY_FILTERING_LBN 12 15874 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1 15875 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ADDITIONAL_RSS_MODES_OFST 0 15876 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ADDITIONAL_RSS_MODES_LBN 13 15877 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ADDITIONAL_RSS_MODES_WIDTH 1 15878 #define MC_CMD_GET_CAPABILITIES_V10_OUT_QBB_OFST 0 15879 #define MC_CMD_GET_CAPABILITIES_V10_OUT_QBB_LBN 14 15880 #define MC_CMD_GET_CAPABILITIES_V10_OUT_QBB_WIDTH 1 15881 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_VAR_BUFFERS_OFST 0 15882 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_VAR_BUFFERS_LBN 15 15883 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1 15884 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_RSS_LIMITED_OFST 0 15885 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_RSS_LIMITED_LBN 16 15886 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_RSS_LIMITED_WIDTH 1 15887 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_OFST 0 15888 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_LBN 17 15889 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_WIDTH 1 15890 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_INCLUDE_FCS_OFST 0 15891 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_INCLUDE_FCS_LBN 18 15892 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_INCLUDE_FCS_WIDTH 1 15893 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VLAN_INSERTION_OFST 0 15894 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VLAN_INSERTION_LBN 19 15895 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VLAN_INSERTION_WIDTH 1 15896 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_OFST 0 15897 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_LBN 20 15898 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_WIDTH 1 15899 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_OFST 0 15900 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_LBN 21 15901 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_WIDTH 1 15902 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_0_OFST 0 15903 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_0_LBN 22 15904 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_0_WIDTH 1 15905 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_14_OFST 0 15906 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_14_LBN 23 15907 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_14_WIDTH 1 15908 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_TIMESTAMP_OFST 0 15909 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_TIMESTAMP_LBN 24 15910 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_TIMESTAMP_WIDTH 1 15911 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_BATCHING_OFST 0 15912 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_BATCHING_LBN 25 15913 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_BATCHING_WIDTH 1 15914 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCAST_FILTER_CHAINING_OFST 0 15915 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCAST_FILTER_CHAINING_LBN 26 15916 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCAST_FILTER_CHAINING_WIDTH 1 15917 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PM_AND_RXDP_COUNTERS_OFST 0 15918 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PM_AND_RXDP_COUNTERS_LBN 27 15919 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1 15920 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DISABLE_SCATTER_OFST 0 15921 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DISABLE_SCATTER_LBN 28 15922 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DISABLE_SCATTER_WIDTH 1 15923 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MCAST_UDP_LOOPBACK_OFST 0 15924 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MCAST_UDP_LOOPBACK_LBN 29 15925 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1 15926 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_OFST 0 15927 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_LBN 30 15928 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_WIDTH 1 15929 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VXLAN_NVGRE_OFST 0 15930 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VXLAN_NVGRE_LBN 31 15931 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VXLAN_NVGRE_WIDTH 1 15932 /* RxDPCPU firmware id. */ 15933 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DPCPU_FW_ID_OFST 4 15934 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DPCPU_FW_ID_LEN 2 15935 /* enum: Standard RXDP firmware */ 15936 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP 0x0 15937 /* enum: Low latency RXDP firmware */ 15938 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_LOW_LATENCY 0x1 15939 /* enum: Packed stream RXDP firmware */ 15940 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_PACKED_STREAM 0x2 15941 /* enum: Rules engine RXDP firmware */ 15942 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_RULES_ENGINE 0x5 15943 /* enum: DPDK RXDP firmware */ 15944 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_DPDK 0x6 15945 /* enum: BIST RXDP firmware */ 15946 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_BIST 0x10a 15947 /* enum: RXDP Test firmware image 1 */ 15948 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_TO_MC_CUT_THROUGH 0x101 15949 /* enum: RXDP Test firmware image 2 */ 15950 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD 0x102 15951 /* enum: RXDP Test firmware image 3 */ 15952 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_TO_MC_STORE_FORWARD_FIRST 0x103 15953 /* enum: RXDP Test firmware image 4 */ 15954 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_EVERY_EVENT_BATCHABLE 0x104 15955 /* enum: RXDP Test firmware image 5 */ 15956 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_BACKPRESSURE 0x105 15957 /* enum: RXDP Test firmware image 6 */ 15958 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_PACKET_EDITS 0x106 15959 /* enum: RXDP Test firmware image 7 */ 15960 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_RX_HDR_SPLIT 0x107 15961 /* enum: RXDP Test firmware image 8 */ 15962 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_DISABLE_DL 0x108 15963 /* enum: RXDP Test firmware image 9 */ 15964 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_DOORBELL_DELAY 0x10b 15965 /* enum: RXDP Test firmware image 10 */ 15966 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_TEST_FW_SLOW 0x10c 15967 /* TxDPCPU firmware id. */ 15968 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DPCPU_FW_ID_OFST 6 15969 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DPCPU_FW_ID_LEN 2 15970 /* enum: Standard TXDP firmware */ 15971 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP 0x0 15972 /* enum: Low latency TXDP firmware */ 15973 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_LOW_LATENCY 0x1 15974 /* enum: High packet rate TXDP firmware */ 15975 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_HIGH_PACKET_RATE 0x3 15976 /* enum: Rules engine TXDP firmware */ 15977 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_RULES_ENGINE 0x5 15978 /* enum: DPDK TXDP firmware */ 15979 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_DPDK 0x6 15980 /* enum: BIST TXDP firmware */ 15981 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_BIST 0x12d 15982 /* enum: TXDP Test firmware image 1 */ 15983 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_TEST_FW_TSO_EDIT 0x101 15984 /* enum: TXDP Test firmware image 2 */ 15985 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_TEST_FW_PACKET_EDITS 0x102 15986 /* enum: TXDP CSR bus test firmware */ 15987 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXDP_TEST_FW_CSR 0x103 15988 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_OFST 8 15989 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_LEN 2 15990 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_REV_OFST 8 15991 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_REV_LBN 0 15992 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_REV_WIDTH 12 15993 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_TYPE_OFST 8 15994 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_TYPE_LBN 12 15995 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4 15996 /* enum: reserved value - do not use (may indicate alternative interpretation 15997 * of REV field in future) 15998 */ 15999 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_RESERVED 0x0 16000 /* enum: Trivial RX PD firmware for early Huntington development (Huntington 16001 * development only) 16002 */ 16003 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_FIRST_PKT 0x1 16004 /* enum: RX PD firmware for telemetry prototyping (Medford2 development only) 16005 */ 16006 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 16007 /* enum: RX PD firmware with approximately Siena-compatible behaviour 16008 * (Huntington development only) 16009 */ 16010 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_SIENA_COMPAT 0x2 16011 /* enum: Full featured RX PD production firmware */ 16012 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_FULL_FEATURED 0x3 16013 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 16014 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_VSWITCH 0x3 16015 /* enum: siena_compat variant RX PD firmware using PM rather than MAC 16016 * (Huntington development only) 16017 */ 16018 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 16019 /* enum: Low latency RX PD production firmware */ 16020 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_LOW_LATENCY 0x5 16021 /* enum: Packed stream RX PD production firmware */ 16022 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_PACKED_STREAM 0x6 16023 /* enum: RX PD firmware handling layer 2 only for high packet rate performance 16024 * tests (Medford development only) 16025 */ 16026 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_LAYER2_PERF 0x7 16027 /* enum: Rules engine RX PD production firmware */ 16028 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_RULES_ENGINE 0x8 16029 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 16030 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_L3XUDP 0x9 16031 /* enum: DPDK RX PD production firmware */ 16032 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_DPDK 0xa 16033 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 16034 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 16035 /* enum: RX PD firmware parsing but not filtering network overlay tunnel 16036 * encapsulations (Medford development only) 16037 */ 16038 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_TYPE_TESTFW_ENCAP_PARSING_ONLY 0xf 16039 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_OFST 10 16040 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_LEN 2 16041 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_REV_OFST 10 16042 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_REV_LBN 0 16043 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_REV_WIDTH 12 16044 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_TYPE_OFST 10 16045 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_TYPE_LBN 12 16046 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4 16047 /* enum: reserved value - do not use (may indicate alternative interpretation 16048 * of REV field in future) 16049 */ 16050 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_RESERVED 0x0 16051 /* enum: Trivial TX PD firmware for early Huntington development (Huntington 16052 * development only) 16053 */ 16054 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_FIRST_PKT 0x1 16055 /* enum: TX PD firmware for telemetry prototyping (Medford2 development only) 16056 */ 16057 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_TESTFW_TELEMETRY 0x1 16058 /* enum: TX PD firmware with approximately Siena-compatible behaviour 16059 * (Huntington development only) 16060 */ 16061 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_SIENA_COMPAT 0x2 16062 /* enum: Full featured TX PD production firmware */ 16063 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_FULL_FEATURED 0x3 16064 /* enum: (deprecated original name for the FULL_FEATURED variant) */ 16065 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_VSWITCH 0x3 16066 /* enum: siena_compat variant TX PD firmware using PM rather than MAC 16067 * (Huntington development only) 16068 */ 16069 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_SIENA_COMPAT_PM 0x4 16070 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_LOW_LATENCY 0x5 /* enum */ 16071 /* enum: TX PD firmware handling layer 2 only for high packet rate performance 16072 * tests (Medford development only) 16073 */ 16074 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_LAYER2_PERF 0x7 16075 /* enum: Rules engine TX PD production firmware */ 16076 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_RULES_ENGINE 0x8 16077 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */ 16078 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_L3XUDP 0x9 16079 /* enum: DPDK TX PD production firmware */ 16080 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_DPDK 0xa 16081 /* enum: RX PD firmware for GUE parsing prototype (Medford development only) */ 16082 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_TYPE_TESTFW_GUE_PROTOTYPE 0xe 16083 /* Hardware capabilities of NIC */ 16084 #define MC_CMD_GET_CAPABILITIES_V10_OUT_HW_CAPABILITIES_OFST 12 16085 #define MC_CMD_GET_CAPABILITIES_V10_OUT_HW_CAPABILITIES_LEN 4 16086 /* Licensed capabilities */ 16087 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LICENSE_CAPABILITIES_OFST 16 16088 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LICENSE_CAPABILITIES_LEN 4 16089 /* Second word of flags. Not present on older firmware (check the length). */ 16090 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS2_OFST 20 16091 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS2_LEN 4 16092 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_OFST 20 16093 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_LBN 0 16094 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_WIDTH 1 16095 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_OFST 20 16096 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_LBN 1 16097 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_WIDTH 1 16098 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVQ_TIMER_CTRL_OFST 20 16099 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVQ_TIMER_CTRL_LBN 2 16100 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVQ_TIMER_CTRL_WIDTH 1 16101 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVENT_CUT_THROUGH_OFST 20 16102 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVENT_CUT_THROUGH_LBN 3 16103 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVENT_CUT_THROUGH_WIDTH 1 16104 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_OFST 20 16105 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_LBN 4 16106 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_WIDTH 1 16107 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VFIFO_ULL_MODE_OFST 20 16108 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VFIFO_ULL_MODE_LBN 5 16109 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VFIFO_ULL_MODE_WIDTH 1 16110 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_40G_TX_SIZE_BINS_OFST 20 16111 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_40G_TX_SIZE_BINS_LBN 6 16112 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1 16113 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_OFST 20 16114 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7 16115 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1 16116 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_OFST 20 16117 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_LBN 7 16118 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_WIDTH 1 16119 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_TIMESTAMPING_OFST 20 16120 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_TIMESTAMPING_LBN 8 16121 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_TIMESTAMPING_WIDTH 1 16122 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TIMESTAMP_OFST 20 16123 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TIMESTAMP_LBN 9 16124 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TIMESTAMP_WIDTH 1 16125 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_SNIFF_OFST 20 16126 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_SNIFF_LBN 10 16127 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_SNIFF_WIDTH 1 16128 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_SNIFF_OFST 20 16129 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_SNIFF_LBN 11 16130 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_SNIFF_WIDTH 1 16131 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_OFST 20 16132 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_LBN 12 16133 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1 16134 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_BACKGROUND_OFST 20 16135 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_BACKGROUND_LBN 13 16136 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_BACKGROUND_WIDTH 1 16137 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_DB_RETURN_OFST 20 16138 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_DB_RETURN_LBN 14 16139 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_DB_RETURN_WIDTH 1 16140 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CTPIO_OFST 20 16141 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CTPIO_LBN 15 16142 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CTPIO_WIDTH 1 16143 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_SUPPORT_OFST 20 16144 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_SUPPORT_LBN 16 16145 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_SUPPORT_WIDTH 1 16146 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_BOUND_OFST 20 16147 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_BOUND_LBN 17 16148 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_BOUND_WIDTH 1 16149 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SF_ADAPTER_AUTHENTICATION_OFST 20 16150 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SF_ADAPTER_AUTHENTICATION_LBN 18 16151 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1 16152 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_FLAG_OFST 20 16153 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_FLAG_LBN 19 16154 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_FLAG_WIDTH 1 16155 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_OFST 20 16156 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_LBN 20 16157 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_WIDTH 1 16158 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_SUPER_BUFFER_OFST 20 16159 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_SUPER_BUFFER_LBN 21 16160 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1 16161 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_PACKED_STREAM_OFST 20 16162 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_PACKED_STREAM_LBN 21 16163 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1 16164 #define MC_CMD_GET_CAPABILITIES_V10_OUT_L3XUDP_SUPPORT_OFST 20 16165 #define MC_CMD_GET_CAPABILITIES_V10_OUT_L3XUDP_SUPPORT_LBN 22 16166 #define MC_CMD_GET_CAPABILITIES_V10_OUT_L3XUDP_SUPPORT_WIDTH 1 16167 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FW_SUBVARIANT_NO_TX_CSUM_OFST 20 16168 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FW_SUBVARIANT_NO_TX_CSUM_LBN 23 16169 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1 16170 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_SPREADING_OFST 20 16171 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_SPREADING_LBN 24 16172 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_SPREADING_WIDTH 1 16173 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_HLB_IDLE_OFST 20 16174 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_HLB_IDLE_LBN 25 16175 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_HLB_IDLE_WIDTH 1 16176 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_NO_CONT_EV_OFST 20 16177 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_NO_CONT_EV_LBN 26 16178 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1 16179 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_WITH_BUFFER_SIZE_OFST 20 16180 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_WITH_BUFFER_SIZE_LBN 27 16181 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1 16182 #define MC_CMD_GET_CAPABILITIES_V10_OUT_BUNDLE_UPDATE_OFST 20 16183 #define MC_CMD_GET_CAPABILITIES_V10_OUT_BUNDLE_UPDATE_LBN 28 16184 #define MC_CMD_GET_CAPABILITIES_V10_OUT_BUNDLE_UPDATE_WIDTH 1 16185 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V3_OFST 20 16186 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V3_LBN 29 16187 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V3_WIDTH 1 16188 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_SENSORS_OFST 20 16189 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_SENSORS_LBN 30 16190 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_SENSORS_WIDTH 1 16191 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_OFST 20 16192 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_LBN 31 16193 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1 16194 /* Number of FATSOv2 contexts per datapath supported by this NIC (when 16195 * TX_TSO_V2 == 1). Not present on older firmware (check the length). 16196 */ 16197 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_N_CONTEXTS_OFST 24 16198 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_N_CONTEXTS_LEN 2 16199 /* One byte per PF containing the number of the external port assigned to this 16200 * PF, indexed by PF number. Special values indicate that a PF is either not 16201 * present or not assigned. 16202 */ 16203 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PFS_TO_PORTS_ASSIGNMENT_OFST 26 16204 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1 16205 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PFS_TO_PORTS_ASSIGNMENT_NUM 16 16206 /* enum: The caller is not permitted to access information on this PF. */ 16207 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ACCESS_NOT_PERMITTED 0xff 16208 /* enum: PF does not exist. */ 16209 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PF_NOT_PRESENT 0xfe 16210 /* enum: PF does exist but is not assigned to any external port. */ 16211 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PF_NOT_ASSIGNED 0xfd 16212 /* enum: This value indicates that PF is assigned, but it cannot be expressed 16213 * in this field. It is intended for a possible future situation where a more 16214 * complex scheme of PFs to ports mapping is being used. The future driver 16215 * should look for a new field supporting the new scheme. The current/old 16216 * driver should treat this value as PF_NOT_ASSIGNED. 16217 */ 16218 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INCOMPATIBLE_ASSIGNMENT 0xfc 16219 /* One byte per PF containing the number of its VFs, indexed by PF number. A 16220 * special value indicates that a PF is not present. 16221 */ 16222 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VFS_PER_PF_OFST 42 16223 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VFS_PER_PF_LEN 1 16224 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VFS_PER_PF_NUM 16 16225 /* enum: The caller is not permitted to access information on this PF. */ 16226 /* MC_CMD_GET_CAPABILITIES_V10_OUT_ACCESS_NOT_PERMITTED 0xff */ 16227 /* enum: PF does not exist. */ 16228 /* MC_CMD_GET_CAPABILITIES_V10_OUT_PF_NOT_PRESENT 0xfe */ 16229 /* Number of VIs available for each external port */ 16230 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VIS_PER_PORT_OFST 58 16231 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VIS_PER_PORT_LEN 2 16232 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VIS_PER_PORT_NUM 4 16233 /* Size of RX descriptor cache expressed as binary logarithm The actual size 16234 * equals (2 ^ RX_DESC_CACHE_SIZE) 16235 */ 16236 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DESC_CACHE_SIZE_OFST 66 16237 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DESC_CACHE_SIZE_LEN 1 16238 /* Size of TX descriptor cache expressed as binary logarithm The actual size 16239 * equals (2 ^ TX_DESC_CACHE_SIZE) 16240 */ 16241 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DESC_CACHE_SIZE_OFST 67 16242 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DESC_CACHE_SIZE_LEN 1 16243 /* Total number of available PIO buffers */ 16244 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_PIO_BUFFS_OFST 68 16245 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_PIO_BUFFS_LEN 2 16246 /* Size of a single PIO buffer */ 16247 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SIZE_PIO_BUFF_OFST 70 16248 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SIZE_PIO_BUFF_LEN 2 16249 /* On chips later than Medford the amount of address space assigned to each VI 16250 * is configurable. This is a global setting that the driver must query to 16251 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available 16252 * with 8k VI windows. 16253 */ 16254 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_OFST 72 16255 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_LEN 1 16256 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k. 16257 * CTPIO is not mapped. 16258 */ 16259 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_8K 0x0 16260 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */ 16261 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_16K 0x1 16262 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */ 16263 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_64K 0x2 16264 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing 16265 * (SF-115995-SW) in the present configuration of firmware and port mode. 16266 */ 16267 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_VFIFOS_OFST 73 16268 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1 16269 /* Number of buffers per adapter that can be used for VFIFO Stuffing 16270 * (SF-115995-SW) in the present configuration of firmware and port mode. 16271 */ 16272 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_OFST 74 16273 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_CP_BUFFERS_LEN 2 16274 /* Entry count in the MAC stats array, including the final GENERATION_END 16275 * entry. For MAC stats DMA, drivers should allocate a buffer large enough to 16276 * hold at least this many 64-bit stats values, if they wish to receive all 16277 * available stats. If the buffer is shorter than MAC_STATS_NUM_STATS * 8, the 16278 * stats array returned will be truncated. 16279 */ 16280 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_NUM_STATS_OFST 76 16281 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_NUM_STATS_LEN 2 16282 /* Maximum supported value for MC_CMD_FILTER_OP_V3/MATCH_MARK_VALUE. This field 16283 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set. 16284 */ 16285 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_MAX_OFST 80 16286 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_MAX_LEN 4 16287 /* On devices where the INIT_RXQ_WITH_BUFFER_SIZE flag (in 16288 * GET_CAPABILITIES_OUT_V2) is set, drivers have to specify a buffer size when 16289 * they create an RX queue. Due to hardware limitations, only a small number of 16290 * different buffer sizes may be available concurrently. Nonzero entries in 16291 * this array are the sizes of buffers which the system guarantees will be 16292 * available for use. If the list is empty, there are no limitations on 16293 * concurrent buffer sizes. 16294 */ 16295 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_RX_BUFFER_SIZES_OFST 84 16296 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4 16297 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_RX_BUFFER_SIZES_NUM 16 16298 /* Third word of flags. Not present on older firmware (check the length). */ 16299 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS3_OFST 148 16300 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS3_LEN 4 16301 #define MC_CMD_GET_CAPABILITIES_V10_OUT_WOL_ETHERWAKE_OFST 148 16302 #define MC_CMD_GET_CAPABILITIES_V10_OUT_WOL_ETHERWAKE_LBN 0 16303 #define MC_CMD_GET_CAPABILITIES_V10_OUT_WOL_ETHERWAKE_WIDTH 1 16304 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_OFST 148 16305 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_LBN 1 16306 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_WIDTH 1 16307 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_SELECTABLE_TABLE_SIZE_OFST 148 16308 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_SELECTABLE_TABLE_SIZE_LBN 2 16309 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1 16310 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_SUPPORTED_OFST 148 16311 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_SUPPORTED_LBN 3 16312 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_SUPPORTED_WIDTH 1 16313 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_OFST 148 16314 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_LBN 4 16315 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_WIDTH 1 16316 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_OFST 148 16317 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_LBN 5 16318 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1 16319 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_OFST 148 16320 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_LBN 6 16321 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1 16322 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_OFST 148 16323 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7 16324 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1 16325 /* These bits are reserved for communicating test-specific capabilities to 16326 * host-side test software. All production drivers should treat this field as 16327 * opaque. 16328 */ 16329 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_OFST 152 16330 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LEN 8 16331 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_OFST 152 16332 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_OFST 156 16333 /* The minimum size (in table entries) of indirection table to be allocated 16334 * from the pool for an RSS context. Note that the table size used must be a 16335 * power of 2. 16336 */ 16337 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_OFST 160 16338 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_LEN 4 16339 /* The maximum size (in table entries) of indirection table to be allocated 16340 * from the pool for an RSS context. Note that the table size used must be a 16341 * power of 2. 16342 */ 16343 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_OFST 164 16344 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_LEN 4 16345 /* The maximum number of queues that can be used by an RSS context in exclusive 16346 * mode. In exclusive mode the context has a configurable indirection table and 16347 * a configurable RSS key. 16348 */ 16349 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_QUEUES_OFST 168 16350 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_QUEUES_LEN 4 16351 /* The maximum number of queues that can be used by an RSS context in even- 16352 * spreading mode. In even-spreading mode the context has no indirection table 16353 * but it does have a configurable RSS key. 16354 */ 16355 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_OFST 172 16356 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_LEN 4 16357 /* The total number of RSS contexts supported. Note that the number of 16358 * available contexts using indirection tables is also limited by the 16359 * availability of indirection table space allocated from a common pool. 16360 */ 16361 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_NUM_CONTEXTS_OFST 176 16362 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_NUM_CONTEXTS_LEN 4 16363 /* The total amount of indirection table space that can be shared between RSS 16364 * contexts. 16365 */ 16366 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_TABLE_POOL_SIZE_OFST 180 16367 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_TABLE_POOL_SIZE_LEN 4 16368 /* A bitmap of the queue sizes the device can provide, where bit N being set 16369 * indicates that 2**N is a valid size. The device may be limited in the number 16370 * of different queue sizes that can exist simultaneously, so a bit being set 16371 * here does not guarantee that an attempt to create a queue of that size will 16372 * succeed. 16373 */ 16374 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SUPPORTED_QUEUE_SIZES_OFST 184 16375 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SUPPORTED_QUEUE_SIZES_LEN 4 16376 /* A bitmap of queue sizes that are always available, in the same format as 16377 * SUPPORTED_QUEUE_SIZES. Attempting to create a queue with one of these sizes 16378 * will never fail due to unavailability of the requested size. 16379 */ 16380 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_QUEUE_SIZES_OFST 188 16381 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_QUEUE_SIZES_LEN 4 16382 16383 16384 /***********************************/ 16385 /* MC_CMD_V2_EXTN 16386 * Encapsulation for a v2 extended command 16387 */ 16388 #define MC_CMD_V2_EXTN 0x7f 16389 16390 /* MC_CMD_V2_EXTN_IN msgrequest */ 16391 #define MC_CMD_V2_EXTN_IN_LEN 4 16392 /* the extended command number */ 16393 #define MC_CMD_V2_EXTN_IN_EXTENDED_CMD_LBN 0 16394 #define MC_CMD_V2_EXTN_IN_EXTENDED_CMD_WIDTH 15 16395 #define MC_CMD_V2_EXTN_IN_UNUSED_LBN 15 16396 #define MC_CMD_V2_EXTN_IN_UNUSED_WIDTH 1 16397 /* the actual length of the encapsulated command (which is not in the v1 16398 * header) 16399 */ 16400 #define MC_CMD_V2_EXTN_IN_ACTUAL_LEN_LBN 16 16401 #define MC_CMD_V2_EXTN_IN_ACTUAL_LEN_WIDTH 10 16402 #define MC_CMD_V2_EXTN_IN_UNUSED2_LBN 26 16403 #define MC_CMD_V2_EXTN_IN_UNUSED2_WIDTH 2 16404 /* Type of command/response */ 16405 #define MC_CMD_V2_EXTN_IN_MESSAGE_TYPE_LBN 28 16406 #define MC_CMD_V2_EXTN_IN_MESSAGE_TYPE_WIDTH 4 16407 /* enum: MCDI command directed to or response originating from the MC. */ 16408 #define MC_CMD_V2_EXTN_IN_MCDI_MESSAGE_TYPE_MC 0x0 16409 /* enum: MCDI command directed to a TSA controller. MCDI responses of this type 16410 * are not defined. 16411 */ 16412 #define MC_CMD_V2_EXTN_IN_MCDI_MESSAGE_TYPE_TSA 0x1 16413 16414 16415 /***********************************/ 16416 /* MC_CMD_TCM_BUCKET_ALLOC 16417 * Allocate a pacer bucket (for qau rp or a snapper test) 16418 */ 16419 #define MC_CMD_TCM_BUCKET_ALLOC 0xb2 16420 #undef MC_CMD_0xb2_PRIVILEGE_CTG 16421 16422 #define MC_CMD_0xb2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 16423 16424 /* MC_CMD_TCM_BUCKET_ALLOC_IN msgrequest */ 16425 #define MC_CMD_TCM_BUCKET_ALLOC_IN_LEN 0 16426 16427 /* MC_CMD_TCM_BUCKET_ALLOC_OUT msgresponse */ 16428 #define MC_CMD_TCM_BUCKET_ALLOC_OUT_LEN 4 16429 /* the bucket id */ 16430 #define MC_CMD_TCM_BUCKET_ALLOC_OUT_BUCKET_OFST 0 16431 #define MC_CMD_TCM_BUCKET_ALLOC_OUT_BUCKET_LEN 4 16432 16433 16434 /***********************************/ 16435 /* MC_CMD_TCM_BUCKET_FREE 16436 * Free a pacer bucket 16437 */ 16438 #define MC_CMD_TCM_BUCKET_FREE 0xb3 16439 #undef MC_CMD_0xb3_PRIVILEGE_CTG 16440 16441 #define MC_CMD_0xb3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 16442 16443 /* MC_CMD_TCM_BUCKET_FREE_IN msgrequest */ 16444 #define MC_CMD_TCM_BUCKET_FREE_IN_LEN 4 16445 /* the bucket id */ 16446 #define MC_CMD_TCM_BUCKET_FREE_IN_BUCKET_OFST 0 16447 #define MC_CMD_TCM_BUCKET_FREE_IN_BUCKET_LEN 4 16448 16449 /* MC_CMD_TCM_BUCKET_FREE_OUT msgresponse */ 16450 #define MC_CMD_TCM_BUCKET_FREE_OUT_LEN 0 16451 16452 16453 /***********************************/ 16454 /* MC_CMD_TCM_BUCKET_INIT 16455 * Initialise pacer bucket with a given rate 16456 */ 16457 #define MC_CMD_TCM_BUCKET_INIT 0xb4 16458 #undef MC_CMD_0xb4_PRIVILEGE_CTG 16459 16460 #define MC_CMD_0xb4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 16461 16462 /* MC_CMD_TCM_BUCKET_INIT_IN msgrequest */ 16463 #define MC_CMD_TCM_BUCKET_INIT_IN_LEN 8 16464 /* the bucket id */ 16465 #define MC_CMD_TCM_BUCKET_INIT_IN_BUCKET_OFST 0 16466 #define MC_CMD_TCM_BUCKET_INIT_IN_BUCKET_LEN 4 16467 /* the rate in mbps */ 16468 #define MC_CMD_TCM_BUCKET_INIT_IN_RATE_OFST 4 16469 #define MC_CMD_TCM_BUCKET_INIT_IN_RATE_LEN 4 16470 16471 /* MC_CMD_TCM_BUCKET_INIT_EXT_IN msgrequest */ 16472 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_LEN 12 16473 /* the bucket id */ 16474 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_BUCKET_OFST 0 16475 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_BUCKET_LEN 4 16476 /* the rate in mbps */ 16477 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_RATE_OFST 4 16478 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_RATE_LEN 4 16479 /* the desired maximum fill level */ 16480 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_MAX_FILL_OFST 8 16481 #define MC_CMD_TCM_BUCKET_INIT_EXT_IN_MAX_FILL_LEN 4 16482 16483 /* MC_CMD_TCM_BUCKET_INIT_OUT msgresponse */ 16484 #define MC_CMD_TCM_BUCKET_INIT_OUT_LEN 0 16485 16486 16487 /***********************************/ 16488 /* MC_CMD_TCM_TXQ_INIT 16489 * Initialise txq in pacer with given options or set options 16490 */ 16491 #define MC_CMD_TCM_TXQ_INIT 0xb5 16492 #undef MC_CMD_0xb5_PRIVILEGE_CTG 16493 16494 #define MC_CMD_0xb5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 16495 16496 /* MC_CMD_TCM_TXQ_INIT_IN msgrequest */ 16497 #define MC_CMD_TCM_TXQ_INIT_IN_LEN 28 16498 /* the txq id */ 16499 #define MC_CMD_TCM_TXQ_INIT_IN_QID_OFST 0 16500 #define MC_CMD_TCM_TXQ_INIT_IN_QID_LEN 4 16501 /* the static priority associated with the txq */ 16502 #define MC_CMD_TCM_TXQ_INIT_IN_LABEL_OFST 4 16503 #define MC_CMD_TCM_TXQ_INIT_IN_LABEL_LEN 4 16504 /* bitmask of the priority queues this txq is inserted into when inserted. */ 16505 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAGS_OFST 8 16506 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAGS_LEN 4 16507 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_GUARANTEED_OFST 8 16508 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_GUARANTEED_LBN 0 16509 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_GUARANTEED_WIDTH 1 16510 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_NORMAL_OFST 8 16511 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_NORMAL_LBN 1 16512 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_NORMAL_WIDTH 1 16513 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_LOW_OFST 8 16514 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_LOW_LBN 2 16515 #define MC_CMD_TCM_TXQ_INIT_IN_PQ_FLAG_LOW_WIDTH 1 16516 /* the reaction point (RP) bucket */ 16517 #define MC_CMD_TCM_TXQ_INIT_IN_RP_BKT_OFST 12 16518 #define MC_CMD_TCM_TXQ_INIT_IN_RP_BKT_LEN 4 16519 /* an already reserved bucket (typically set to bucket associated with outer 16520 * vswitch) 16521 */ 16522 #define MC_CMD_TCM_TXQ_INIT_IN_MAX_BKT1_OFST 16 16523 #define MC_CMD_TCM_TXQ_INIT_IN_MAX_BKT1_LEN 4 16524 /* an already reserved bucket (typically set to bucket associated with inner 16525 * vswitch) 16526 */ 16527 #define MC_CMD_TCM_TXQ_INIT_IN_MAX_BKT2_OFST 20 16528 #define MC_CMD_TCM_TXQ_INIT_IN_MAX_BKT2_LEN 4 16529 /* the min bucket (typically for ETS/minimum bandwidth) */ 16530 #define MC_CMD_TCM_TXQ_INIT_IN_MIN_BKT_OFST 24 16531 #define MC_CMD_TCM_TXQ_INIT_IN_MIN_BKT_LEN 4 16532 16533 /* MC_CMD_TCM_TXQ_INIT_EXT_IN msgrequest */ 16534 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_LEN 32 16535 /* the txq id */ 16536 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_QID_OFST 0 16537 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_QID_LEN 4 16538 /* the static priority associated with the txq */ 16539 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_LABEL_NORMAL_OFST 4 16540 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_LABEL_NORMAL_LEN 4 16541 /* bitmask of the priority queues this txq is inserted into when inserted. */ 16542 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAGS_OFST 8 16543 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAGS_LEN 4 16544 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_GUARANTEED_OFST 8 16545 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_GUARANTEED_LBN 0 16546 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_GUARANTEED_WIDTH 1 16547 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_NORMAL_OFST 8 16548 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_NORMAL_LBN 1 16549 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_NORMAL_WIDTH 1 16550 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_LOW_OFST 8 16551 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_LOW_LBN 2 16552 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_PQ_FLAG_LOW_WIDTH 1 16553 /* the reaction point (RP) bucket */ 16554 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_RP_BKT_OFST 12 16555 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_RP_BKT_LEN 4 16556 /* an already reserved bucket (typically set to bucket associated with outer 16557 * vswitch) 16558 */ 16559 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MAX_BKT1_OFST 16 16560 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MAX_BKT1_LEN 4 16561 /* an already reserved bucket (typically set to bucket associated with inner 16562 * vswitch) 16563 */ 16564 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MAX_BKT2_OFST 20 16565 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MAX_BKT2_LEN 4 16566 /* the min bucket (typically for ETS/minimum bandwidth) */ 16567 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MIN_BKT_OFST 24 16568 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_MIN_BKT_LEN 4 16569 /* the static priority associated with the txq */ 16570 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_LABEL_GUARANTEED_OFST 28 16571 #define MC_CMD_TCM_TXQ_INIT_EXT_IN_LABEL_GUARANTEED_LEN 4 16572 16573 /* MC_CMD_TCM_TXQ_INIT_OUT msgresponse */ 16574 #define MC_CMD_TCM_TXQ_INIT_OUT_LEN 0 16575 16576 16577 /***********************************/ 16578 /* MC_CMD_LINK_PIOBUF 16579 * Link a push I/O buffer to a TxQ 16580 */ 16581 #define MC_CMD_LINK_PIOBUF 0x92 16582 #undef MC_CMD_0x92_PRIVILEGE_CTG 16583 16584 #define MC_CMD_0x92_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 16585 16586 /* MC_CMD_LINK_PIOBUF_IN msgrequest */ 16587 #define MC_CMD_LINK_PIOBUF_IN_LEN 8 16588 /* Handle for allocated push I/O buffer. */ 16589 #define MC_CMD_LINK_PIOBUF_IN_PIOBUF_HANDLE_OFST 0 16590 #define MC_CMD_LINK_PIOBUF_IN_PIOBUF_HANDLE_LEN 4 16591 /* Function Local Instance (VI) number. */ 16592 #define MC_CMD_LINK_PIOBUF_IN_TXQ_INSTANCE_OFST 4 16593 #define MC_CMD_LINK_PIOBUF_IN_TXQ_INSTANCE_LEN 4 16594 16595 /* MC_CMD_LINK_PIOBUF_OUT msgresponse */ 16596 #define MC_CMD_LINK_PIOBUF_OUT_LEN 0 16597 16598 16599 /***********************************/ 16600 /* MC_CMD_UNLINK_PIOBUF 16601 * Unlink a push I/O buffer from a TxQ 16602 */ 16603 #define MC_CMD_UNLINK_PIOBUF 0x93 16604 #undef MC_CMD_0x93_PRIVILEGE_CTG 16605 16606 #define MC_CMD_0x93_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 16607 16608 /* MC_CMD_UNLINK_PIOBUF_IN msgrequest */ 16609 #define MC_CMD_UNLINK_PIOBUF_IN_LEN 4 16610 /* Function Local Instance (VI) number. */ 16611 #define MC_CMD_UNLINK_PIOBUF_IN_TXQ_INSTANCE_OFST 0 16612 #define MC_CMD_UNLINK_PIOBUF_IN_TXQ_INSTANCE_LEN 4 16613 16614 /* MC_CMD_UNLINK_PIOBUF_OUT msgresponse */ 16615 #define MC_CMD_UNLINK_PIOBUF_OUT_LEN 0 16616 16617 16618 /***********************************/ 16619 /* MC_CMD_VSWITCH_ALLOC 16620 * allocate and initialise a v-switch. 16621 */ 16622 #define MC_CMD_VSWITCH_ALLOC 0x94 16623 #undef MC_CMD_0x94_PRIVILEGE_CTG 16624 16625 #define MC_CMD_0x94_PRIVILEGE_CTG SRIOV_CTG_GENERAL 16626 16627 /* MC_CMD_VSWITCH_ALLOC_IN msgrequest */ 16628 #define MC_CMD_VSWITCH_ALLOC_IN_LEN 16 16629 /* The port to connect to the v-switch's upstream port. */ 16630 #define MC_CMD_VSWITCH_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 16631 #define MC_CMD_VSWITCH_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 16632 /* The type of v-switch to create. */ 16633 #define MC_CMD_VSWITCH_ALLOC_IN_TYPE_OFST 4 16634 #define MC_CMD_VSWITCH_ALLOC_IN_TYPE_LEN 4 16635 /* enum: VLAN */ 16636 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_VLAN 0x1 16637 /* enum: VEB */ 16638 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_VEB 0x2 16639 /* enum: VEPA (obsolete) */ 16640 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_VEPA 0x3 16641 /* enum: MUX */ 16642 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_MUX 0x4 16643 /* enum: Snapper specific; semantics TBD */ 16644 #define MC_CMD_VSWITCH_ALLOC_IN_VSWITCH_TYPE_TEST 0x5 16645 /* Flags controlling v-port creation */ 16646 #define MC_CMD_VSWITCH_ALLOC_IN_FLAGS_OFST 8 16647 #define MC_CMD_VSWITCH_ALLOC_IN_FLAGS_LEN 4 16648 #define MC_CMD_VSWITCH_ALLOC_IN_FLAG_AUTO_PORT_OFST 8 16649 #define MC_CMD_VSWITCH_ALLOC_IN_FLAG_AUTO_PORT_LBN 0 16650 #define MC_CMD_VSWITCH_ALLOC_IN_FLAG_AUTO_PORT_WIDTH 1 16651 /* The number of VLAN tags to allow for attached v-ports. For VLAN aggregators, 16652 * this must be one or greated, and the attached v-ports must have exactly this 16653 * number of tags. For other v-switch types, this must be zero of greater, and 16654 * is an upper limit on the number of VLAN tags for attached v-ports. An error 16655 * will be returned if existing configuration means we can't support attached 16656 * v-ports with this number of tags. 16657 */ 16658 #define MC_CMD_VSWITCH_ALLOC_IN_NUM_VLAN_TAGS_OFST 12 16659 #define MC_CMD_VSWITCH_ALLOC_IN_NUM_VLAN_TAGS_LEN 4 16660 16661 /* MC_CMD_VSWITCH_ALLOC_OUT msgresponse */ 16662 #define MC_CMD_VSWITCH_ALLOC_OUT_LEN 0 16663 16664 16665 /***********************************/ 16666 /* MC_CMD_VSWITCH_FREE 16667 * de-allocate a v-switch. 16668 */ 16669 #define MC_CMD_VSWITCH_FREE 0x95 16670 #undef MC_CMD_0x95_PRIVILEGE_CTG 16671 16672 #define MC_CMD_0x95_PRIVILEGE_CTG SRIOV_CTG_GENERAL 16673 16674 /* MC_CMD_VSWITCH_FREE_IN msgrequest */ 16675 #define MC_CMD_VSWITCH_FREE_IN_LEN 4 16676 /* The port to which the v-switch is connected. */ 16677 #define MC_CMD_VSWITCH_FREE_IN_UPSTREAM_PORT_ID_OFST 0 16678 #define MC_CMD_VSWITCH_FREE_IN_UPSTREAM_PORT_ID_LEN 4 16679 16680 /* MC_CMD_VSWITCH_FREE_OUT msgresponse */ 16681 #define MC_CMD_VSWITCH_FREE_OUT_LEN 0 16682 16683 16684 /***********************************/ 16685 /* MC_CMD_VSWITCH_QUERY 16686 * read some config of v-switch. For now this command is an empty placeholder. 16687 * It may be used to check if a v-switch is connected to a given EVB port (if 16688 * not, then the command returns ENOENT). 16689 */ 16690 #define MC_CMD_VSWITCH_QUERY 0x63 16691 #undef MC_CMD_0x63_PRIVILEGE_CTG 16692 16693 #define MC_CMD_0x63_PRIVILEGE_CTG SRIOV_CTG_GENERAL 16694 16695 /* MC_CMD_VSWITCH_QUERY_IN msgrequest */ 16696 #define MC_CMD_VSWITCH_QUERY_IN_LEN 4 16697 /* The port to which the v-switch is connected. */ 16698 #define MC_CMD_VSWITCH_QUERY_IN_UPSTREAM_PORT_ID_OFST 0 16699 #define MC_CMD_VSWITCH_QUERY_IN_UPSTREAM_PORT_ID_LEN 4 16700 16701 /* MC_CMD_VSWITCH_QUERY_OUT msgresponse */ 16702 #define MC_CMD_VSWITCH_QUERY_OUT_LEN 0 16703 16704 16705 /***********************************/ 16706 /* MC_CMD_VPORT_ALLOC 16707 * allocate a v-port. 16708 */ 16709 #define MC_CMD_VPORT_ALLOC 0x96 16710 #undef MC_CMD_0x96_PRIVILEGE_CTG 16711 16712 #define MC_CMD_0x96_PRIVILEGE_CTG SRIOV_CTG_GENERAL 16713 16714 /* MC_CMD_VPORT_ALLOC_IN msgrequest */ 16715 #define MC_CMD_VPORT_ALLOC_IN_LEN 20 16716 /* The port to which the v-switch is connected. */ 16717 #define MC_CMD_VPORT_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 16718 #define MC_CMD_VPORT_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 16719 /* The type of the new v-port. */ 16720 #define MC_CMD_VPORT_ALLOC_IN_TYPE_OFST 4 16721 #define MC_CMD_VPORT_ALLOC_IN_TYPE_LEN 4 16722 /* enum: VLAN (obsolete) */ 16723 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_VLAN 0x1 16724 /* enum: VEB (obsolete) */ 16725 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_VEB 0x2 16726 /* enum: VEPA (obsolete) */ 16727 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_VEPA 0x3 16728 /* enum: A normal v-port receives packets which match a specified MAC and/or 16729 * VLAN. 16730 */ 16731 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_NORMAL 0x4 16732 /* enum: An expansion v-port packets traffic which don't match any other 16733 * v-port. 16734 */ 16735 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_EXPANSION 0x5 16736 /* enum: An test v-port receives packets which match any filters installed by 16737 * its downstream components. 16738 */ 16739 #define MC_CMD_VPORT_ALLOC_IN_VPORT_TYPE_TEST 0x6 16740 /* Flags controlling v-port creation */ 16741 #define MC_CMD_VPORT_ALLOC_IN_FLAGS_OFST 8 16742 #define MC_CMD_VPORT_ALLOC_IN_FLAGS_LEN 4 16743 #define MC_CMD_VPORT_ALLOC_IN_FLAG_AUTO_PORT_OFST 8 16744 #define MC_CMD_VPORT_ALLOC_IN_FLAG_AUTO_PORT_LBN 0 16745 #define MC_CMD_VPORT_ALLOC_IN_FLAG_AUTO_PORT_WIDTH 1 16746 #define MC_CMD_VPORT_ALLOC_IN_FLAG_VLAN_RESTRICT_OFST 8 16747 #define MC_CMD_VPORT_ALLOC_IN_FLAG_VLAN_RESTRICT_LBN 1 16748 #define MC_CMD_VPORT_ALLOC_IN_FLAG_VLAN_RESTRICT_WIDTH 1 16749 /* The number of VLAN tags to insert/remove. An error will be returned if 16750 * incompatible with the number of VLAN tags specified for the upstream 16751 * v-switch. 16752 */ 16753 #define MC_CMD_VPORT_ALLOC_IN_NUM_VLAN_TAGS_OFST 12 16754 #define MC_CMD_VPORT_ALLOC_IN_NUM_VLAN_TAGS_LEN 4 16755 /* The actual VLAN tags to insert/remove */ 16756 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAGS_OFST 16 16757 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAGS_LEN 4 16758 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_0_OFST 16 16759 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_0_LBN 0 16760 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_0_WIDTH 16 16761 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_1_OFST 16 16762 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_1_LBN 16 16763 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAG_1_WIDTH 16 16764 16765 /* MC_CMD_VPORT_ALLOC_OUT msgresponse */ 16766 #define MC_CMD_VPORT_ALLOC_OUT_LEN 4 16767 /* The handle of the new v-port */ 16768 #define MC_CMD_VPORT_ALLOC_OUT_VPORT_ID_OFST 0 16769 #define MC_CMD_VPORT_ALLOC_OUT_VPORT_ID_LEN 4 16770 16771 16772 /***********************************/ 16773 /* MC_CMD_VPORT_FREE 16774 * de-allocate a v-port. 16775 */ 16776 #define MC_CMD_VPORT_FREE 0x97 16777 #undef MC_CMD_0x97_PRIVILEGE_CTG 16778 16779 #define MC_CMD_0x97_PRIVILEGE_CTG SRIOV_CTG_GENERAL 16780 16781 /* MC_CMD_VPORT_FREE_IN msgrequest */ 16782 #define MC_CMD_VPORT_FREE_IN_LEN 4 16783 /* The handle of the v-port */ 16784 #define MC_CMD_VPORT_FREE_IN_VPORT_ID_OFST 0 16785 #define MC_CMD_VPORT_FREE_IN_VPORT_ID_LEN 4 16786 16787 /* MC_CMD_VPORT_FREE_OUT msgresponse */ 16788 #define MC_CMD_VPORT_FREE_OUT_LEN 0 16789 16790 16791 /***********************************/ 16792 /* MC_CMD_VADAPTOR_ALLOC 16793 * allocate a v-adaptor. 16794 */ 16795 #define MC_CMD_VADAPTOR_ALLOC 0x98 16796 #undef MC_CMD_0x98_PRIVILEGE_CTG 16797 16798 #define MC_CMD_0x98_PRIVILEGE_CTG SRIOV_CTG_GENERAL 16799 16800 /* MC_CMD_VADAPTOR_ALLOC_IN msgrequest */ 16801 #define MC_CMD_VADAPTOR_ALLOC_IN_LEN 30 16802 /* The port to connect to the v-adaptor's port. */ 16803 #define MC_CMD_VADAPTOR_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 16804 #define MC_CMD_VADAPTOR_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 16805 /* Flags controlling v-adaptor creation */ 16806 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAGS_OFST 8 16807 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAGS_LEN 4 16808 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_AUTO_VADAPTOR_OFST 8 16809 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_AUTO_VADAPTOR_LBN 0 16810 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_AUTO_VADAPTOR_WIDTH 1 16811 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_OFST 8 16812 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 1 16813 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1 16814 /* The number of VLAN tags to strip on receive */ 16815 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLANS_OFST 12 16816 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLANS_LEN 4 16817 /* The number of VLAN tags to transparently insert/remove. */ 16818 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLAN_TAGS_OFST 16 16819 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLAN_TAGS_LEN 4 16820 /* The actual VLAN tags to insert/remove */ 16821 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAGS_OFST 20 16822 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAGS_LEN 4 16823 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_0_OFST 20 16824 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_0_LBN 0 16825 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_0_WIDTH 16 16826 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_1_OFST 20 16827 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_1_LBN 16 16828 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAG_1_WIDTH 16 16829 /* The MAC address to assign to this v-adaptor */ 16830 #define MC_CMD_VADAPTOR_ALLOC_IN_MACADDR_OFST 24 16831 #define MC_CMD_VADAPTOR_ALLOC_IN_MACADDR_LEN 6 16832 /* enum: Derive the MAC address from the upstream port */ 16833 #define MC_CMD_VADAPTOR_ALLOC_IN_AUTO_MAC 0x0 16834 16835 /* MC_CMD_VADAPTOR_ALLOC_OUT msgresponse */ 16836 #define MC_CMD_VADAPTOR_ALLOC_OUT_LEN 0 16837 16838 16839 /***********************************/ 16840 /* MC_CMD_VADAPTOR_FREE 16841 * de-allocate a v-adaptor. 16842 */ 16843 #define MC_CMD_VADAPTOR_FREE 0x99 16844 #undef MC_CMD_0x99_PRIVILEGE_CTG 16845 16846 #define MC_CMD_0x99_PRIVILEGE_CTG SRIOV_CTG_GENERAL 16847 16848 /* MC_CMD_VADAPTOR_FREE_IN msgrequest */ 16849 #define MC_CMD_VADAPTOR_FREE_IN_LEN 4 16850 /* The port to which the v-adaptor is connected. */ 16851 #define MC_CMD_VADAPTOR_FREE_IN_UPSTREAM_PORT_ID_OFST 0 16852 #define MC_CMD_VADAPTOR_FREE_IN_UPSTREAM_PORT_ID_LEN 4 16853 16854 /* MC_CMD_VADAPTOR_FREE_OUT msgresponse */ 16855 #define MC_CMD_VADAPTOR_FREE_OUT_LEN 0 16856 16857 16858 /***********************************/ 16859 /* MC_CMD_VADAPTOR_SET_MAC 16860 * assign a new MAC address to a v-adaptor. 16861 */ 16862 #define MC_CMD_VADAPTOR_SET_MAC 0x5d 16863 #undef MC_CMD_0x5d_PRIVILEGE_CTG 16864 16865 #define MC_CMD_0x5d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 16866 16867 /* MC_CMD_VADAPTOR_SET_MAC_IN msgrequest */ 16868 #define MC_CMD_VADAPTOR_SET_MAC_IN_LEN 10 16869 /* The port to which the v-adaptor is connected. */ 16870 #define MC_CMD_VADAPTOR_SET_MAC_IN_UPSTREAM_PORT_ID_OFST 0 16871 #define MC_CMD_VADAPTOR_SET_MAC_IN_UPSTREAM_PORT_ID_LEN 4 16872 /* The new MAC address to assign to this v-adaptor */ 16873 #define MC_CMD_VADAPTOR_SET_MAC_IN_MACADDR_OFST 4 16874 #define MC_CMD_VADAPTOR_SET_MAC_IN_MACADDR_LEN 6 16875 16876 /* MC_CMD_VADAPTOR_SET_MAC_OUT msgresponse */ 16877 #define MC_CMD_VADAPTOR_SET_MAC_OUT_LEN 0 16878 16879 16880 /***********************************/ 16881 /* MC_CMD_VADAPTOR_GET_MAC 16882 * read the MAC address assigned to a v-adaptor. 16883 */ 16884 #define MC_CMD_VADAPTOR_GET_MAC 0x5e 16885 #undef MC_CMD_0x5e_PRIVILEGE_CTG 16886 16887 #define MC_CMD_0x5e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 16888 16889 /* MC_CMD_VADAPTOR_GET_MAC_IN msgrequest */ 16890 #define MC_CMD_VADAPTOR_GET_MAC_IN_LEN 4 16891 /* The port to which the v-adaptor is connected. */ 16892 #define MC_CMD_VADAPTOR_GET_MAC_IN_UPSTREAM_PORT_ID_OFST 0 16893 #define MC_CMD_VADAPTOR_GET_MAC_IN_UPSTREAM_PORT_ID_LEN 4 16894 16895 /* MC_CMD_VADAPTOR_GET_MAC_OUT msgresponse */ 16896 #define MC_CMD_VADAPTOR_GET_MAC_OUT_LEN 6 16897 /* The MAC address assigned to this v-adaptor */ 16898 #define MC_CMD_VADAPTOR_GET_MAC_OUT_MACADDR_OFST 0 16899 #define MC_CMD_VADAPTOR_GET_MAC_OUT_MACADDR_LEN 6 16900 16901 16902 /***********************************/ 16903 /* MC_CMD_VADAPTOR_QUERY 16904 * read some config of v-adaptor. 16905 */ 16906 #define MC_CMD_VADAPTOR_QUERY 0x61 16907 #undef MC_CMD_0x61_PRIVILEGE_CTG 16908 16909 #define MC_CMD_0x61_PRIVILEGE_CTG SRIOV_CTG_GENERAL 16910 16911 /* MC_CMD_VADAPTOR_QUERY_IN msgrequest */ 16912 #define MC_CMD_VADAPTOR_QUERY_IN_LEN 4 16913 /* The port to which the v-adaptor is connected. */ 16914 #define MC_CMD_VADAPTOR_QUERY_IN_UPSTREAM_PORT_ID_OFST 0 16915 #define MC_CMD_VADAPTOR_QUERY_IN_UPSTREAM_PORT_ID_LEN 4 16916 16917 /* MC_CMD_VADAPTOR_QUERY_OUT msgresponse */ 16918 #define MC_CMD_VADAPTOR_QUERY_OUT_LEN 12 16919 /* The EVB port flags as defined at MC_CMD_VPORT_ALLOC. */ 16920 #define MC_CMD_VADAPTOR_QUERY_OUT_PORT_FLAGS_OFST 0 16921 #define MC_CMD_VADAPTOR_QUERY_OUT_PORT_FLAGS_LEN 4 16922 /* The v-adaptor flags as defined at MC_CMD_VADAPTOR_ALLOC. */ 16923 #define MC_CMD_VADAPTOR_QUERY_OUT_VADAPTOR_FLAGS_OFST 4 16924 #define MC_CMD_VADAPTOR_QUERY_OUT_VADAPTOR_FLAGS_LEN 4 16925 /* The number of VLAN tags that may still be added */ 16926 #define MC_CMD_VADAPTOR_QUERY_OUT_NUM_AVAILABLE_VLAN_TAGS_OFST 8 16927 #define MC_CMD_VADAPTOR_QUERY_OUT_NUM_AVAILABLE_VLAN_TAGS_LEN 4 16928 16929 16930 /***********************************/ 16931 /* MC_CMD_EVB_PORT_ASSIGN 16932 * assign a port to a PCI function. 16933 */ 16934 #define MC_CMD_EVB_PORT_ASSIGN 0x9a 16935 #undef MC_CMD_0x9a_PRIVILEGE_CTG 16936 16937 #define MC_CMD_0x9a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 16938 16939 /* MC_CMD_EVB_PORT_ASSIGN_IN msgrequest */ 16940 #define MC_CMD_EVB_PORT_ASSIGN_IN_LEN 8 16941 /* The port to assign. */ 16942 #define MC_CMD_EVB_PORT_ASSIGN_IN_PORT_ID_OFST 0 16943 #define MC_CMD_EVB_PORT_ASSIGN_IN_PORT_ID_LEN 4 16944 /* The target function to modify. */ 16945 #define MC_CMD_EVB_PORT_ASSIGN_IN_FUNCTION_OFST 4 16946 #define MC_CMD_EVB_PORT_ASSIGN_IN_FUNCTION_LEN 4 16947 #define MC_CMD_EVB_PORT_ASSIGN_IN_PF_OFST 4 16948 #define MC_CMD_EVB_PORT_ASSIGN_IN_PF_LBN 0 16949 #define MC_CMD_EVB_PORT_ASSIGN_IN_PF_WIDTH 16 16950 #define MC_CMD_EVB_PORT_ASSIGN_IN_VF_OFST 4 16951 #define MC_CMD_EVB_PORT_ASSIGN_IN_VF_LBN 16 16952 #define MC_CMD_EVB_PORT_ASSIGN_IN_VF_WIDTH 16 16953 16954 /* MC_CMD_EVB_PORT_ASSIGN_OUT msgresponse */ 16955 #define MC_CMD_EVB_PORT_ASSIGN_OUT_LEN 0 16956 16957 16958 /***********************************/ 16959 /* MC_CMD_RDWR_A64_REGIONS 16960 * Assign the 64 bit region addresses. 16961 */ 16962 #define MC_CMD_RDWR_A64_REGIONS 0x9b 16963 #undef MC_CMD_0x9b_PRIVILEGE_CTG 16964 16965 #define MC_CMD_0x9b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 16966 16967 /* MC_CMD_RDWR_A64_REGIONS_IN msgrequest */ 16968 #define MC_CMD_RDWR_A64_REGIONS_IN_LEN 17 16969 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION0_OFST 0 16970 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION0_LEN 4 16971 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION1_OFST 4 16972 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION1_LEN 4 16973 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION2_OFST 8 16974 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION2_LEN 4 16975 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION3_OFST 12 16976 #define MC_CMD_RDWR_A64_REGIONS_IN_REGION3_LEN 4 16977 /* Write enable bits 0-3, set to write, clear to read. */ 16978 #define MC_CMD_RDWR_A64_REGIONS_IN_WRITE_MASK_LBN 128 16979 #define MC_CMD_RDWR_A64_REGIONS_IN_WRITE_MASK_WIDTH 4 16980 #define MC_CMD_RDWR_A64_REGIONS_IN_WRITE_MASK_BYTE_OFST 16 16981 #define MC_CMD_RDWR_A64_REGIONS_IN_WRITE_MASK_BYTE_LEN 1 16982 16983 /* MC_CMD_RDWR_A64_REGIONS_OUT msgresponse: This data always included 16984 * regardless of state of write bits in the request. 16985 */ 16986 #define MC_CMD_RDWR_A64_REGIONS_OUT_LEN 16 16987 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION0_OFST 0 16988 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION0_LEN 4 16989 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION1_OFST 4 16990 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION1_LEN 4 16991 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION2_OFST 8 16992 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION2_LEN 4 16993 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION3_OFST 12 16994 #define MC_CMD_RDWR_A64_REGIONS_OUT_REGION3_LEN 4 16995 16996 16997 /***********************************/ 16998 /* MC_CMD_ONLOAD_STACK_ALLOC 16999 * Allocate an Onload stack ID. 17000 */ 17001 #define MC_CMD_ONLOAD_STACK_ALLOC 0x9c 17002 #undef MC_CMD_0x9c_PRIVILEGE_CTG 17003 17004 #define MC_CMD_0x9c_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 17005 17006 /* MC_CMD_ONLOAD_STACK_ALLOC_IN msgrequest */ 17007 #define MC_CMD_ONLOAD_STACK_ALLOC_IN_LEN 4 17008 /* The handle of the owning upstream port */ 17009 #define MC_CMD_ONLOAD_STACK_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 17010 #define MC_CMD_ONLOAD_STACK_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 17011 17012 /* MC_CMD_ONLOAD_STACK_ALLOC_OUT msgresponse */ 17013 #define MC_CMD_ONLOAD_STACK_ALLOC_OUT_LEN 4 17014 /* The handle of the new Onload stack */ 17015 #define MC_CMD_ONLOAD_STACK_ALLOC_OUT_ONLOAD_STACK_ID_OFST 0 17016 #define MC_CMD_ONLOAD_STACK_ALLOC_OUT_ONLOAD_STACK_ID_LEN 4 17017 17018 17019 /***********************************/ 17020 /* MC_CMD_ONLOAD_STACK_FREE 17021 * Free an Onload stack ID. 17022 */ 17023 #define MC_CMD_ONLOAD_STACK_FREE 0x9d 17024 #undef MC_CMD_0x9d_PRIVILEGE_CTG 17025 17026 #define MC_CMD_0x9d_PRIVILEGE_CTG SRIOV_CTG_ONLOAD 17027 17028 /* MC_CMD_ONLOAD_STACK_FREE_IN msgrequest */ 17029 #define MC_CMD_ONLOAD_STACK_FREE_IN_LEN 4 17030 /* The handle of the Onload stack */ 17031 #define MC_CMD_ONLOAD_STACK_FREE_IN_ONLOAD_STACK_ID_OFST 0 17032 #define MC_CMD_ONLOAD_STACK_FREE_IN_ONLOAD_STACK_ID_LEN 4 17033 17034 /* MC_CMD_ONLOAD_STACK_FREE_OUT msgresponse */ 17035 #define MC_CMD_ONLOAD_STACK_FREE_OUT_LEN 0 17036 17037 17038 /***********************************/ 17039 /* MC_CMD_RSS_CONTEXT_ALLOC 17040 * Allocate an RSS context. 17041 */ 17042 #define MC_CMD_RSS_CONTEXT_ALLOC 0x9e 17043 #undef MC_CMD_0x9e_PRIVILEGE_CTG 17044 17045 #define MC_CMD_0x9e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17046 17047 /* MC_CMD_RSS_CONTEXT_ALLOC_IN msgrequest */ 17048 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_LEN 12 17049 /* The handle of the owning upstream port */ 17050 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 17051 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 17052 /* The type of context to allocate */ 17053 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_OFST 4 17054 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_LEN 4 17055 /* enum: Allocate a context for exclusive use. The key and indirection table 17056 * must be explicitly configured. 17057 */ 17058 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_EXCLUSIVE 0x0 17059 /* enum: Allocate a context for shared use; this will spread across a range of 17060 * queues, but the key and indirection table are pre-configured and may not be 17061 * changed. For this mode, NUM_QUEUES must 2, 4, 8, 16, 32 or 64. 17062 */ 17063 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_SHARED 0x1 17064 /* enum: Allocate a context to spread evenly across an arbitrary number of 17065 * queues. No indirection table space is allocated for this context. (EF100 and 17066 * later) 17067 */ 17068 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_EVEN_SPREADING 0x2 17069 /* Number of queues spanned by this context. For exclusive contexts this must 17070 * be in the range 1 to RSS_MAX_INDIRECTION_QUEUES, where 17071 * RSS_MAX_INDIRECTION_QUEUES is queried from MC_CMD_GET_CAPABILITIES_V9 or if 17072 * V9 is not supported then RSS_MAX_INDIRECTION_QUEUES is 64. Valid entries in 17073 * the indirection table will be in the range 0 to NUM_QUEUES-1. For even- 17074 * spreading contexts this must be in the range 1 to 17075 * RSS_MAX_EVEN_SPREADING_QUEUES as queried from MC_CMD_GET_CAPABILITIES. Note 17076 * that specifying NUM_QUEUES = 1 will not perform any spreading but may still 17077 * be useful as a way of obtaining the Toeplitz hash. 17078 */ 17079 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_NUM_QUEUES_OFST 8 17080 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_NUM_QUEUES_LEN 4 17081 17082 /* MC_CMD_RSS_CONTEXT_ALLOC_V2_IN msgrequest */ 17083 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_LEN 16 17084 /* The handle of the owning upstream port */ 17085 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_UPSTREAM_PORT_ID_OFST 0 17086 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_UPSTREAM_PORT_ID_LEN 4 17087 /* The type of context to allocate */ 17088 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_OFST 4 17089 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_LEN 4 17090 /* enum: Allocate a context for exclusive use. The key and indirection table 17091 * must be explicitly configured. 17092 */ 17093 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_EXCLUSIVE 0x0 17094 /* enum: Allocate a context for shared use; this will spread across a range of 17095 * queues, but the key and indirection table are pre-configured and may not be 17096 * changed. For this mode, NUM_QUEUES must 2, 4, 8, 16, 32 or 64. 17097 */ 17098 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_SHARED 0x1 17099 /* enum: Allocate a context to spread evenly across an arbitrary number of 17100 * queues. No indirection table space is allocated for this context. (EF100 and 17101 * later) 17102 */ 17103 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_EVEN_SPREADING 0x2 17104 /* Number of queues spanned by this context. For exclusive contexts this must 17105 * be in the range 1 to RSS_MAX_INDIRECTION_QUEUES, where 17106 * RSS_MAX_INDIRECTION_QUEUES is queried from MC_CMD_GET_CAPABILITIES_V9 or if 17107 * V9 is not supported then RSS_MAX_INDIRECTION_QUEUES is 64. Valid entries in 17108 * the indirection table will be in the range 0 to NUM_QUEUES-1. For even- 17109 * spreading contexts this must be in the range 1 to 17110 * RSS_MAX_EVEN_SPREADING_QUEUES as queried from MC_CMD_GET_CAPABILITIES. Note 17111 * that specifying NUM_QUEUES = 1 will not perform any spreading but may still 17112 * be useful as a way of obtaining the Toeplitz hash. 17113 */ 17114 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_NUM_QUEUES_OFST 8 17115 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_NUM_QUEUES_LEN 4 17116 /* Size of indirection table to be allocated to this context from the pool. 17117 * Must be a power of 2. The minimum and maximum table size can be queried 17118 * using MC_CMD_GET_CAPABILITIES_V9. If there is not enough space remaining in 17119 * the common pool to allocate the requested table size, due to allocating 17120 * table space to other RSS contexts, then the command will fail with 17121 * MC_CMD_ERR_ENOSPC. 17122 */ 17123 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_INDIRECTION_TABLE_SIZE_OFST 12 17124 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_INDIRECTION_TABLE_SIZE_LEN 4 17125 17126 /* MC_CMD_RSS_CONTEXT_ALLOC_OUT msgresponse */ 17127 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_LEN 4 17128 /* The handle of the new RSS context. This should be considered opaque to the 17129 * host, although a value of 0xFFFFFFFF is guaranteed never to be a valid 17130 * handle. 17131 */ 17132 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_RSS_CONTEXT_ID_OFST 0 17133 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_RSS_CONTEXT_ID_LEN 4 17134 /* enum: guaranteed invalid RSS context handle value */ 17135 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_RSS_CONTEXT_ID_INVALID 0xffffffff 17136 17137 17138 /***********************************/ 17139 /* MC_CMD_RSS_CONTEXT_FREE 17140 * Free an RSS context. 17141 */ 17142 #define MC_CMD_RSS_CONTEXT_FREE 0x9f 17143 #undef MC_CMD_0x9f_PRIVILEGE_CTG 17144 17145 #define MC_CMD_0x9f_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17146 17147 /* MC_CMD_RSS_CONTEXT_FREE_IN msgrequest */ 17148 #define MC_CMD_RSS_CONTEXT_FREE_IN_LEN 4 17149 /* The handle of the RSS context */ 17150 #define MC_CMD_RSS_CONTEXT_FREE_IN_RSS_CONTEXT_ID_OFST 0 17151 #define MC_CMD_RSS_CONTEXT_FREE_IN_RSS_CONTEXT_ID_LEN 4 17152 17153 /* MC_CMD_RSS_CONTEXT_FREE_OUT msgresponse */ 17154 #define MC_CMD_RSS_CONTEXT_FREE_OUT_LEN 0 17155 17156 17157 /***********************************/ 17158 /* MC_CMD_RSS_CONTEXT_SET_KEY 17159 * Set the Toeplitz hash key for an RSS context. 17160 */ 17161 #define MC_CMD_RSS_CONTEXT_SET_KEY 0xa0 17162 #undef MC_CMD_0xa0_PRIVILEGE_CTG 17163 17164 #define MC_CMD_0xa0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17165 17166 /* MC_CMD_RSS_CONTEXT_SET_KEY_IN msgrequest */ 17167 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_LEN 44 17168 /* The handle of the RSS context */ 17169 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_RSS_CONTEXT_ID_OFST 0 17170 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_RSS_CONTEXT_ID_LEN 4 17171 /* The 40-byte Toeplitz hash key (TBD endianness issues?) */ 17172 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_TOEPLITZ_KEY_OFST 4 17173 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_TOEPLITZ_KEY_LEN 40 17174 17175 /* MC_CMD_RSS_CONTEXT_SET_KEY_OUT msgresponse */ 17176 #define MC_CMD_RSS_CONTEXT_SET_KEY_OUT_LEN 0 17177 17178 17179 /***********************************/ 17180 /* MC_CMD_RSS_CONTEXT_GET_KEY 17181 * Get the Toeplitz hash key for an RSS context. 17182 */ 17183 #define MC_CMD_RSS_CONTEXT_GET_KEY 0xa1 17184 #undef MC_CMD_0xa1_PRIVILEGE_CTG 17185 17186 #define MC_CMD_0xa1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17187 17188 /* MC_CMD_RSS_CONTEXT_GET_KEY_IN msgrequest */ 17189 #define MC_CMD_RSS_CONTEXT_GET_KEY_IN_LEN 4 17190 /* The handle of the RSS context */ 17191 #define MC_CMD_RSS_CONTEXT_GET_KEY_IN_RSS_CONTEXT_ID_OFST 0 17192 #define MC_CMD_RSS_CONTEXT_GET_KEY_IN_RSS_CONTEXT_ID_LEN 4 17193 17194 /* MC_CMD_RSS_CONTEXT_GET_KEY_OUT msgresponse */ 17195 #define MC_CMD_RSS_CONTEXT_GET_KEY_OUT_LEN 44 17196 /* The 40-byte Toeplitz hash key (TBD endianness issues?) */ 17197 #define MC_CMD_RSS_CONTEXT_GET_KEY_OUT_TOEPLITZ_KEY_OFST 4 17198 #define MC_CMD_RSS_CONTEXT_GET_KEY_OUT_TOEPLITZ_KEY_LEN 40 17199 17200 17201 /***********************************/ 17202 /* MC_CMD_RSS_CONTEXT_SET_TABLE 17203 * Set the indirection table for an RSS context. This command should only be 17204 * used with indirection tables containing 128 entries, which is the default 17205 * when the RSS context is allocated without specifying a table size. 17206 */ 17207 #define MC_CMD_RSS_CONTEXT_SET_TABLE 0xa2 17208 #undef MC_CMD_0xa2_PRIVILEGE_CTG 17209 17210 #define MC_CMD_0xa2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17211 17212 /* MC_CMD_RSS_CONTEXT_SET_TABLE_IN msgrequest */ 17213 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_LEN 132 17214 /* The handle of the RSS context */ 17215 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_RSS_CONTEXT_ID_OFST 0 17216 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_RSS_CONTEXT_ID_LEN 4 17217 /* The 128-byte indirection table (1 byte per entry) */ 17218 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_INDIRECTION_TABLE_OFST 4 17219 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_INDIRECTION_TABLE_LEN 128 17220 17221 /* MC_CMD_RSS_CONTEXT_SET_TABLE_OUT msgresponse */ 17222 #define MC_CMD_RSS_CONTEXT_SET_TABLE_OUT_LEN 0 17223 17224 17225 /***********************************/ 17226 /* MC_CMD_RSS_CONTEXT_GET_TABLE 17227 * Get the indirection table for an RSS context. This command should only be 17228 * used with indirection tables containing 128 entries, which is the default 17229 * when the RSS context is allocated without specifying a table size. 17230 */ 17231 #define MC_CMD_RSS_CONTEXT_GET_TABLE 0xa3 17232 #undef MC_CMD_0xa3_PRIVILEGE_CTG 17233 17234 #define MC_CMD_0xa3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17235 17236 /* MC_CMD_RSS_CONTEXT_GET_TABLE_IN msgrequest */ 17237 #define MC_CMD_RSS_CONTEXT_GET_TABLE_IN_LEN 4 17238 /* The handle of the RSS context */ 17239 #define MC_CMD_RSS_CONTEXT_GET_TABLE_IN_RSS_CONTEXT_ID_OFST 0 17240 #define MC_CMD_RSS_CONTEXT_GET_TABLE_IN_RSS_CONTEXT_ID_LEN 4 17241 17242 /* MC_CMD_RSS_CONTEXT_GET_TABLE_OUT msgresponse */ 17243 #define MC_CMD_RSS_CONTEXT_GET_TABLE_OUT_LEN 132 17244 /* The 128-byte indirection table (1 byte per entry) */ 17245 #define MC_CMD_RSS_CONTEXT_GET_TABLE_OUT_INDIRECTION_TABLE_OFST 4 17246 #define MC_CMD_RSS_CONTEXT_GET_TABLE_OUT_INDIRECTION_TABLE_LEN 128 17247 17248 17249 /***********************************/ 17250 /* MC_CMD_RSS_CONTEXT_WRITE_TABLE 17251 * Write a portion of a selectable-size indirection table for an RSS context. 17252 * This command must be used instead of MC_CMD_RSS_CONTEXT_SET_TABLE if the 17253 * RSS_SELECTABLE_TABLE_SIZE bit is set in MC_CMD_GET_CAPABILITIES. 17254 */ 17255 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE 0x13e 17256 #undef MC_CMD_0x13e_PRIVILEGE_CTG 17257 17258 #define MC_CMD_0x13e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17259 17260 /* MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN msgrequest */ 17261 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_LENMIN 8 17262 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_LENMAX 252 17263 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_LENMAX_MCDI2 1020 17264 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_LEN(num) (4+4*(num)) 17265 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_NUM(len) (((len)-4)/4) 17266 /* The handle of the RSS context */ 17267 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_RSS_CONTEXT_ID_OFST 0 17268 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_RSS_CONTEXT_ID_LEN 4 17269 /* An array of index-value pairs to be written to the table. Structure is 17270 * MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY. 17271 */ 17272 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_OFST 4 17273 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_LEN 4 17274 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_MINNUM 1 17275 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_MAXNUM 62 17276 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_MAXNUM_MCDI2 254 17277 17278 /* MC_CMD_RSS_CONTEXT_WRITE_TABLE_OUT msgresponse */ 17279 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_OUT_LEN 0 17280 17281 /* MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY structuredef */ 17282 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_LEN 4 17283 /* The index of the table entry to be written. */ 17284 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_INDEX_OFST 0 17285 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_INDEX_LEN 2 17286 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_INDEX_LBN 0 17287 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_INDEX_WIDTH 16 17288 /* The value to write into the table entry. */ 17289 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_VALUE_OFST 2 17290 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_VALUE_LEN 2 17291 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_VALUE_LBN 16 17292 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_ENTRY_VALUE_WIDTH 16 17293 17294 17295 /***********************************/ 17296 /* MC_CMD_RSS_CONTEXT_READ_TABLE 17297 * Read a portion of a selectable-size indirection table for an RSS context. 17298 * This command must be used instead of MC_CMD_RSS_CONTEXT_GET_TABLE if the 17299 * RSS_SELECTABLE_TABLE_SIZE bit is set in MC_CMD_GET_CAPABILITIES. 17300 */ 17301 #define MC_CMD_RSS_CONTEXT_READ_TABLE 0x13f 17302 #undef MC_CMD_0x13f_PRIVILEGE_CTG 17303 17304 #define MC_CMD_0x13f_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17305 17306 /* MC_CMD_RSS_CONTEXT_READ_TABLE_IN msgrequest */ 17307 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_LENMIN 6 17308 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_LENMAX 252 17309 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_LENMAX_MCDI2 1020 17310 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_LEN(num) (4+2*(num)) 17311 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_NUM(len) (((len)-4)/2) 17312 /* The handle of the RSS context */ 17313 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_RSS_CONTEXT_ID_OFST 0 17314 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_RSS_CONTEXT_ID_LEN 4 17315 /* An array containing the indices of the entries to be read. */ 17316 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_OFST 4 17317 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_LEN 2 17318 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_MINNUM 1 17319 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_MAXNUM 124 17320 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_MAXNUM_MCDI2 508 17321 17322 /* MC_CMD_RSS_CONTEXT_READ_TABLE_OUT msgresponse */ 17323 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_LENMIN 2 17324 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_LENMAX 252 17325 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_LENMAX_MCDI2 1020 17326 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_LEN(num) (0+2*(num)) 17327 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_NUM(len) (((len)-0)/2) 17328 /* A buffer containing the requested entries read from the table. */ 17329 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_OFST 0 17330 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_LEN 2 17331 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_MINNUM 1 17332 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_MAXNUM 126 17333 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_MAXNUM_MCDI2 510 17334 17335 17336 /***********************************/ 17337 /* MC_CMD_RSS_CONTEXT_SET_FLAGS 17338 * Set various control flags for an RSS context. 17339 */ 17340 #define MC_CMD_RSS_CONTEXT_SET_FLAGS 0xe1 17341 #undef MC_CMD_0xe1_PRIVILEGE_CTG 17342 17343 #define MC_CMD_0xe1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17344 17345 /* MC_CMD_RSS_CONTEXT_SET_FLAGS_IN msgrequest */ 17346 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_LEN 8 17347 /* The handle of the RSS context */ 17348 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RSS_CONTEXT_ID_OFST 0 17349 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RSS_CONTEXT_ID_LEN 4 17350 /* Hash control flags. The _EN bits are always supported, but new modes are 17351 * available when ADDITIONAL_RSS_MODES is reported by MC_CMD_GET_CAPABILITIES: 17352 * in this case, the MODE fields may be set to non-zero values, and will take 17353 * effect regardless of the settings of the _EN flags. See the RSS_MODE 17354 * structure for the meaning of the mode bits. Drivers must check the 17355 * capability before trying to set any _MODE fields, as older firmware will 17356 * reject any attempt to set the FLAGS field to a value > 0xff with EINVAL. In 17357 * the case where all the _MODE flags are zero, the _EN flags take effect, 17358 * providing backward compatibility for existing drivers. (Setting all _MODE 17359 * *and* all _EN flags to zero is valid, to disable RSS spreading for that 17360 * particular packet type.) 17361 */ 17362 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_FLAGS_OFST 4 17363 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_FLAGS_LEN 4 17364 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN_OFST 4 17365 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN_LBN 0 17366 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN_WIDTH 1 17367 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN_OFST 4 17368 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN_LBN 1 17369 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN_WIDTH 1 17370 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV6_EN_OFST 4 17371 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV6_EN_LBN 2 17372 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV6_EN_WIDTH 1 17373 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV6_EN_OFST 4 17374 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV6_EN_LBN 3 17375 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV6_EN_WIDTH 1 17376 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RESERVED_OFST 4 17377 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RESERVED_LBN 4 17378 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RESERVED_WIDTH 4 17379 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV4_RSS_MODE_OFST 4 17380 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV4_RSS_MODE_LBN 8 17381 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV4_RSS_MODE_WIDTH 4 17382 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV4_RSS_MODE_OFST 4 17383 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV4_RSS_MODE_LBN 12 17384 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV4_RSS_MODE_WIDTH 4 17385 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV4_RSS_MODE_OFST 4 17386 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV4_RSS_MODE_LBN 16 17387 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV4_RSS_MODE_WIDTH 4 17388 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV6_RSS_MODE_OFST 4 17389 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV6_RSS_MODE_LBN 20 17390 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV6_RSS_MODE_WIDTH 4 17391 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV6_RSS_MODE_OFST 4 17392 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV6_RSS_MODE_LBN 24 17393 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV6_RSS_MODE_WIDTH 4 17394 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV6_RSS_MODE_OFST 4 17395 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV6_RSS_MODE_LBN 28 17396 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV6_RSS_MODE_WIDTH 4 17397 17398 /* MC_CMD_RSS_CONTEXT_SET_FLAGS_OUT msgresponse */ 17399 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_OUT_LEN 0 17400 17401 17402 /***********************************/ 17403 /* MC_CMD_RSS_CONTEXT_GET_FLAGS 17404 * Get various control flags for an RSS context. 17405 */ 17406 #define MC_CMD_RSS_CONTEXT_GET_FLAGS 0xe2 17407 #undef MC_CMD_0xe2_PRIVILEGE_CTG 17408 17409 #define MC_CMD_0xe2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17410 17411 /* MC_CMD_RSS_CONTEXT_GET_FLAGS_IN msgrequest */ 17412 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_IN_LEN 4 17413 /* The handle of the RSS context */ 17414 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_IN_RSS_CONTEXT_ID_OFST 0 17415 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_IN_RSS_CONTEXT_ID_LEN 4 17416 17417 /* MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT msgresponse */ 17418 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_LEN 8 17419 /* Hash control flags. If all _MODE bits are zero (which will always be true 17420 * for older firmware which does not report the ADDITIONAL_RSS_MODES 17421 * capability), the _EN bits report the state. If any _MODE bits are non-zero 17422 * (which will only be true when the firmware reports ADDITIONAL_RSS_MODES) 17423 * then the _EN bits should be disregarded, although the _MODE flags are 17424 * guaranteed to be consistent with the _EN flags for a freshly-allocated RSS 17425 * context and in the case where the _EN flags were used in the SET. This 17426 * provides backward compatibility: old drivers will not be attempting to 17427 * derive any meaning from the _MODE bits (and can never set them to any value 17428 * not representable by the _EN bits); new drivers can always determine the 17429 * mode by looking only at the _MODE bits; the value returned by a GET can 17430 * always be used for a SET regardless of old/new driver vs. old/new firmware. 17431 */ 17432 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_FLAGS_OFST 4 17433 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_FLAGS_LEN 4 17434 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV4_EN_OFST 4 17435 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV4_EN_LBN 0 17436 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV4_EN_WIDTH 1 17437 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV4_EN_OFST 4 17438 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV4_EN_LBN 1 17439 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV4_EN_WIDTH 1 17440 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV6_EN_OFST 4 17441 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV6_EN_LBN 2 17442 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV6_EN_WIDTH 1 17443 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV6_EN_OFST 4 17444 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV6_EN_LBN 3 17445 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV6_EN_WIDTH 1 17446 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_RESERVED_OFST 4 17447 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_RESERVED_LBN 4 17448 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_RESERVED_WIDTH 4 17449 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV4_RSS_MODE_OFST 4 17450 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV4_RSS_MODE_LBN 8 17451 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV4_RSS_MODE_WIDTH 4 17452 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV4_RSS_MODE_OFST 4 17453 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV4_RSS_MODE_LBN 12 17454 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV4_RSS_MODE_WIDTH 4 17455 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV4_RSS_MODE_OFST 4 17456 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV4_RSS_MODE_LBN 16 17457 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV4_RSS_MODE_WIDTH 4 17458 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV6_RSS_MODE_OFST 4 17459 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV6_RSS_MODE_LBN 20 17460 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV6_RSS_MODE_WIDTH 4 17461 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV6_RSS_MODE_OFST 4 17462 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV6_RSS_MODE_LBN 24 17463 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV6_RSS_MODE_WIDTH 4 17464 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV6_RSS_MODE_OFST 4 17465 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV6_RSS_MODE_LBN 28 17466 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV6_RSS_MODE_WIDTH 4 17467 17468 17469 /***********************************/ 17470 /* MC_CMD_DOT1P_MAPPING_ALLOC 17471 * Allocate a .1p mapping. 17472 */ 17473 #define MC_CMD_DOT1P_MAPPING_ALLOC 0xa4 17474 #undef MC_CMD_0xa4_PRIVILEGE_CTG 17475 17476 #define MC_CMD_0xa4_PRIVILEGE_CTG SRIOV_CTG_ADMIN 17477 17478 /* MC_CMD_DOT1P_MAPPING_ALLOC_IN msgrequest */ 17479 #define MC_CMD_DOT1P_MAPPING_ALLOC_IN_LEN 8 17480 /* The handle of the owning upstream port */ 17481 #define MC_CMD_DOT1P_MAPPING_ALLOC_IN_UPSTREAM_PORT_ID_OFST 0 17482 #define MC_CMD_DOT1P_MAPPING_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4 17483 /* Number of queues spanned by this mapping, in the range 1-64; valid fixed 17484 * offsets in the mapping table will be in the range 0 to NUM_QUEUES-1, and 17485 * referenced RSS contexts must span no more than this number. 17486 */ 17487 #define MC_CMD_DOT1P_MAPPING_ALLOC_IN_NUM_QUEUES_OFST 4 17488 #define MC_CMD_DOT1P_MAPPING_ALLOC_IN_NUM_QUEUES_LEN 4 17489 17490 /* MC_CMD_DOT1P_MAPPING_ALLOC_OUT msgresponse */ 17491 #define MC_CMD_DOT1P_MAPPING_ALLOC_OUT_LEN 4 17492 /* The handle of the new .1p mapping. This should be considered opaque to the 17493 * host, although a value of 0xFFFFFFFF is guaranteed never to be a valid 17494 * handle. 17495 */ 17496 #define MC_CMD_DOT1P_MAPPING_ALLOC_OUT_DOT1P_MAPPING_ID_OFST 0 17497 #define MC_CMD_DOT1P_MAPPING_ALLOC_OUT_DOT1P_MAPPING_ID_LEN 4 17498 /* enum: guaranteed invalid .1p mapping handle value */ 17499 #define MC_CMD_DOT1P_MAPPING_ALLOC_OUT_DOT1P_MAPPING_ID_INVALID 0xffffffff 17500 17501 17502 /***********************************/ 17503 /* MC_CMD_DOT1P_MAPPING_FREE 17504 * Free a .1p mapping. 17505 */ 17506 #define MC_CMD_DOT1P_MAPPING_FREE 0xa5 17507 #undef MC_CMD_0xa5_PRIVILEGE_CTG 17508 17509 #define MC_CMD_0xa5_PRIVILEGE_CTG SRIOV_CTG_ADMIN 17510 17511 /* MC_CMD_DOT1P_MAPPING_FREE_IN msgrequest */ 17512 #define MC_CMD_DOT1P_MAPPING_FREE_IN_LEN 4 17513 /* The handle of the .1p mapping */ 17514 #define MC_CMD_DOT1P_MAPPING_FREE_IN_DOT1P_MAPPING_ID_OFST 0 17515 #define MC_CMD_DOT1P_MAPPING_FREE_IN_DOT1P_MAPPING_ID_LEN 4 17516 17517 /* MC_CMD_DOT1P_MAPPING_FREE_OUT msgresponse */ 17518 #define MC_CMD_DOT1P_MAPPING_FREE_OUT_LEN 0 17519 17520 17521 /***********************************/ 17522 /* MC_CMD_DOT1P_MAPPING_SET_TABLE 17523 * Set the mapping table for a .1p mapping. 17524 */ 17525 #define MC_CMD_DOT1P_MAPPING_SET_TABLE 0xa6 17526 #undef MC_CMD_0xa6_PRIVILEGE_CTG 17527 17528 #define MC_CMD_0xa6_PRIVILEGE_CTG SRIOV_CTG_ADMIN 17529 17530 /* MC_CMD_DOT1P_MAPPING_SET_TABLE_IN msgrequest */ 17531 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_IN_LEN 36 17532 /* The handle of the .1p mapping */ 17533 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_IN_DOT1P_MAPPING_ID_OFST 0 17534 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_IN_DOT1P_MAPPING_ID_LEN 4 17535 /* Per-priority mappings (1 32-bit word per entry - an offset or RSS context 17536 * handle) 17537 */ 17538 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_IN_MAPPING_TABLE_OFST 4 17539 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_IN_MAPPING_TABLE_LEN 32 17540 17541 /* MC_CMD_DOT1P_MAPPING_SET_TABLE_OUT msgresponse */ 17542 #define MC_CMD_DOT1P_MAPPING_SET_TABLE_OUT_LEN 0 17543 17544 17545 /***********************************/ 17546 /* MC_CMD_DOT1P_MAPPING_GET_TABLE 17547 * Get the mapping table for a .1p mapping. 17548 */ 17549 #define MC_CMD_DOT1P_MAPPING_GET_TABLE 0xa7 17550 #undef MC_CMD_0xa7_PRIVILEGE_CTG 17551 17552 #define MC_CMD_0xa7_PRIVILEGE_CTG SRIOV_CTG_ADMIN 17553 17554 /* MC_CMD_DOT1P_MAPPING_GET_TABLE_IN msgrequest */ 17555 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_IN_LEN 4 17556 /* The handle of the .1p mapping */ 17557 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_IN_DOT1P_MAPPING_ID_OFST 0 17558 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_IN_DOT1P_MAPPING_ID_LEN 4 17559 17560 /* MC_CMD_DOT1P_MAPPING_GET_TABLE_OUT msgresponse */ 17561 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_OUT_LEN 36 17562 /* Per-priority mappings (1 32-bit word per entry - an offset or RSS context 17563 * handle) 17564 */ 17565 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_OUT_MAPPING_TABLE_OFST 4 17566 #define MC_CMD_DOT1P_MAPPING_GET_TABLE_OUT_MAPPING_TABLE_LEN 32 17567 17568 17569 /***********************************/ 17570 /* MC_CMD_GET_VECTOR_CFG 17571 * Get Interrupt Vector config for this PF. 17572 */ 17573 #define MC_CMD_GET_VECTOR_CFG 0xbf 17574 #undef MC_CMD_0xbf_PRIVILEGE_CTG 17575 17576 #define MC_CMD_0xbf_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17577 17578 /* MC_CMD_GET_VECTOR_CFG_IN msgrequest */ 17579 #define MC_CMD_GET_VECTOR_CFG_IN_LEN 0 17580 17581 /* MC_CMD_GET_VECTOR_CFG_OUT msgresponse */ 17582 #define MC_CMD_GET_VECTOR_CFG_OUT_LEN 12 17583 /* Base absolute interrupt vector number. */ 17584 #define MC_CMD_GET_VECTOR_CFG_OUT_VEC_BASE_OFST 0 17585 #define MC_CMD_GET_VECTOR_CFG_OUT_VEC_BASE_LEN 4 17586 /* Number of interrupt vectors allocate to this PF. */ 17587 #define MC_CMD_GET_VECTOR_CFG_OUT_VECS_PER_PF_OFST 4 17588 #define MC_CMD_GET_VECTOR_CFG_OUT_VECS_PER_PF_LEN 4 17589 /* Number of interrupt vectors to allocate per VF. */ 17590 #define MC_CMD_GET_VECTOR_CFG_OUT_VECS_PER_VF_OFST 8 17591 #define MC_CMD_GET_VECTOR_CFG_OUT_VECS_PER_VF_LEN 4 17592 17593 17594 /***********************************/ 17595 /* MC_CMD_SET_VECTOR_CFG 17596 * Set Interrupt Vector config for this PF. 17597 */ 17598 #define MC_CMD_SET_VECTOR_CFG 0xc0 17599 #undef MC_CMD_0xc0_PRIVILEGE_CTG 17600 17601 #define MC_CMD_0xc0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17602 17603 /* MC_CMD_SET_VECTOR_CFG_IN msgrequest */ 17604 #define MC_CMD_SET_VECTOR_CFG_IN_LEN 12 17605 /* Base absolute interrupt vector number, or MC_CMD_RESOURCE_INSTANCE_ANY to 17606 * let the system find a suitable base. 17607 */ 17608 #define MC_CMD_SET_VECTOR_CFG_IN_VEC_BASE_OFST 0 17609 #define MC_CMD_SET_VECTOR_CFG_IN_VEC_BASE_LEN 4 17610 /* Number of interrupt vectors allocate to this PF. */ 17611 #define MC_CMD_SET_VECTOR_CFG_IN_VECS_PER_PF_OFST 4 17612 #define MC_CMD_SET_VECTOR_CFG_IN_VECS_PER_PF_LEN 4 17613 /* Number of interrupt vectors to allocate per VF. */ 17614 #define MC_CMD_SET_VECTOR_CFG_IN_VECS_PER_VF_OFST 8 17615 #define MC_CMD_SET_VECTOR_CFG_IN_VECS_PER_VF_LEN 4 17616 17617 /* MC_CMD_SET_VECTOR_CFG_OUT msgresponse */ 17618 #define MC_CMD_SET_VECTOR_CFG_OUT_LEN 0 17619 17620 17621 /***********************************/ 17622 /* MC_CMD_VPORT_ADD_MAC_ADDRESS 17623 * Add a MAC address to a v-port 17624 */ 17625 #define MC_CMD_VPORT_ADD_MAC_ADDRESS 0xa8 17626 #undef MC_CMD_0xa8_PRIVILEGE_CTG 17627 17628 #define MC_CMD_0xa8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17629 17630 /* MC_CMD_VPORT_ADD_MAC_ADDRESS_IN msgrequest */ 17631 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_LEN 10 17632 /* The handle of the v-port */ 17633 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_VPORT_ID_OFST 0 17634 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_VPORT_ID_LEN 4 17635 /* MAC address to add */ 17636 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_MACADDR_OFST 4 17637 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_MACADDR_LEN 6 17638 17639 /* MC_CMD_VPORT_ADD_MAC_ADDRESS_OUT msgresponse */ 17640 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_OUT_LEN 0 17641 17642 17643 /***********************************/ 17644 /* MC_CMD_VPORT_DEL_MAC_ADDRESS 17645 * Delete a MAC address from a v-port 17646 */ 17647 #define MC_CMD_VPORT_DEL_MAC_ADDRESS 0xa9 17648 #undef MC_CMD_0xa9_PRIVILEGE_CTG 17649 17650 #define MC_CMD_0xa9_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17651 17652 /* MC_CMD_VPORT_DEL_MAC_ADDRESS_IN msgrequest */ 17653 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_LEN 10 17654 /* The handle of the v-port */ 17655 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_VPORT_ID_OFST 0 17656 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_VPORT_ID_LEN 4 17657 /* MAC address to add */ 17658 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_MACADDR_OFST 4 17659 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_MACADDR_LEN 6 17660 17661 /* MC_CMD_VPORT_DEL_MAC_ADDRESS_OUT msgresponse */ 17662 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_OUT_LEN 0 17663 17664 17665 /***********************************/ 17666 /* MC_CMD_VPORT_GET_MAC_ADDRESSES 17667 * Delete a MAC address from a v-port 17668 */ 17669 #define MC_CMD_VPORT_GET_MAC_ADDRESSES 0xaa 17670 #undef MC_CMD_0xaa_PRIVILEGE_CTG 17671 17672 #define MC_CMD_0xaa_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17673 17674 /* MC_CMD_VPORT_GET_MAC_ADDRESSES_IN msgrequest */ 17675 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_IN_LEN 4 17676 /* The handle of the v-port */ 17677 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_IN_VPORT_ID_OFST 0 17678 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_IN_VPORT_ID_LEN 4 17679 17680 /* MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT msgresponse */ 17681 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LENMIN 4 17682 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LENMAX 250 17683 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LENMAX_MCDI2 1018 17684 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LEN(num) (4+6*(num)) 17685 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_NUM(len) (((len)-4)/6) 17686 /* The number of MAC addresses returned */ 17687 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_COUNT_OFST 0 17688 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_COUNT_LEN 4 17689 /* Array of MAC addresses */ 17690 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_OFST 4 17691 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_LEN 6 17692 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_MINNUM 0 17693 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_MAXNUM 41 17694 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_MAXNUM_MCDI2 169 17695 17696 17697 /***********************************/ 17698 /* MC_CMD_VPORT_RECONFIGURE 17699 * Replace VLAN tags and/or MAC addresses of an existing v-port. If the v-port 17700 * has already been passed to another function (v-port's user), then that 17701 * function will be reset before applying the changes. 17702 */ 17703 #define MC_CMD_VPORT_RECONFIGURE 0xeb 17704 #undef MC_CMD_0xeb_PRIVILEGE_CTG 17705 17706 #define MC_CMD_0xeb_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17707 17708 /* MC_CMD_VPORT_RECONFIGURE_IN msgrequest */ 17709 #define MC_CMD_VPORT_RECONFIGURE_IN_LEN 44 17710 /* The handle of the v-port */ 17711 #define MC_CMD_VPORT_RECONFIGURE_IN_VPORT_ID_OFST 0 17712 #define MC_CMD_VPORT_RECONFIGURE_IN_VPORT_ID_LEN 4 17713 /* Flags requesting what should be changed. */ 17714 #define MC_CMD_VPORT_RECONFIGURE_IN_FLAGS_OFST 4 17715 #define MC_CMD_VPORT_RECONFIGURE_IN_FLAGS_LEN 4 17716 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_VLAN_TAGS_OFST 4 17717 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_VLAN_TAGS_LBN 0 17718 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_VLAN_TAGS_WIDTH 1 17719 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_MACADDRS_OFST 4 17720 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_MACADDRS_LBN 1 17721 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_MACADDRS_WIDTH 1 17722 /* The number of VLAN tags to insert/remove. An error will be returned if 17723 * incompatible with the number of VLAN tags specified for the upstream 17724 * v-switch. 17725 */ 17726 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_VLAN_TAGS_OFST 8 17727 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_VLAN_TAGS_LEN 4 17728 /* The actual VLAN tags to insert/remove */ 17729 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAGS_OFST 12 17730 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAGS_LEN 4 17731 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_0_OFST 12 17732 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_0_LBN 0 17733 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_0_WIDTH 16 17734 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_1_OFST 12 17735 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_1_LBN 16 17736 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAG_1_WIDTH 16 17737 /* The number of MAC addresses to add */ 17738 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_MACADDRS_OFST 16 17739 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_MACADDRS_LEN 4 17740 /* MAC addresses to add */ 17741 #define MC_CMD_VPORT_RECONFIGURE_IN_MACADDRS_OFST 20 17742 #define MC_CMD_VPORT_RECONFIGURE_IN_MACADDRS_LEN 6 17743 #define MC_CMD_VPORT_RECONFIGURE_IN_MACADDRS_NUM 4 17744 17745 /* MC_CMD_VPORT_RECONFIGURE_OUT msgresponse */ 17746 #define MC_CMD_VPORT_RECONFIGURE_OUT_LEN 4 17747 #define MC_CMD_VPORT_RECONFIGURE_OUT_FLAGS_OFST 0 17748 #define MC_CMD_VPORT_RECONFIGURE_OUT_FLAGS_LEN 4 17749 #define MC_CMD_VPORT_RECONFIGURE_OUT_RESET_DONE_OFST 0 17750 #define MC_CMD_VPORT_RECONFIGURE_OUT_RESET_DONE_LBN 0 17751 #define MC_CMD_VPORT_RECONFIGURE_OUT_RESET_DONE_WIDTH 1 17752 17753 17754 /***********************************/ 17755 /* MC_CMD_EVB_PORT_QUERY 17756 * read some config of v-port. 17757 */ 17758 #define MC_CMD_EVB_PORT_QUERY 0x62 17759 #undef MC_CMD_0x62_PRIVILEGE_CTG 17760 17761 #define MC_CMD_0x62_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17762 17763 /* MC_CMD_EVB_PORT_QUERY_IN msgrequest */ 17764 #define MC_CMD_EVB_PORT_QUERY_IN_LEN 4 17765 /* The handle of the v-port */ 17766 #define MC_CMD_EVB_PORT_QUERY_IN_PORT_ID_OFST 0 17767 #define MC_CMD_EVB_PORT_QUERY_IN_PORT_ID_LEN 4 17768 17769 /* MC_CMD_EVB_PORT_QUERY_OUT msgresponse */ 17770 #define MC_CMD_EVB_PORT_QUERY_OUT_LEN 8 17771 /* The EVB port flags as defined at MC_CMD_VPORT_ALLOC. */ 17772 #define MC_CMD_EVB_PORT_QUERY_OUT_PORT_FLAGS_OFST 0 17773 #define MC_CMD_EVB_PORT_QUERY_OUT_PORT_FLAGS_LEN 4 17774 /* The number of VLAN tags that may be used on a v-adaptor connected to this 17775 * EVB port. 17776 */ 17777 #define MC_CMD_EVB_PORT_QUERY_OUT_NUM_AVAILABLE_VLAN_TAGS_OFST 4 17778 #define MC_CMD_EVB_PORT_QUERY_OUT_NUM_AVAILABLE_VLAN_TAGS_LEN 4 17779 17780 17781 /***********************************/ 17782 /* MC_CMD_DUMP_BUFTBL_ENTRIES 17783 * Dump buffer table entries, mainly for command client debug use. Dumps 17784 * absolute entries, and does not use chunk handles. All entries must be in 17785 * range, and used for q page mapping, Although the latter restriction may be 17786 * lifted in future. 17787 */ 17788 #define MC_CMD_DUMP_BUFTBL_ENTRIES 0xab 17789 #undef MC_CMD_0xab_PRIVILEGE_CTG 17790 17791 #define MC_CMD_0xab_PRIVILEGE_CTG SRIOV_CTG_INSECURE 17792 17793 /* MC_CMD_DUMP_BUFTBL_ENTRIES_IN msgrequest */ 17794 #define MC_CMD_DUMP_BUFTBL_ENTRIES_IN_LEN 8 17795 /* Index of the first buffer table entry. */ 17796 #define MC_CMD_DUMP_BUFTBL_ENTRIES_IN_FIRSTID_OFST 0 17797 #define MC_CMD_DUMP_BUFTBL_ENTRIES_IN_FIRSTID_LEN 4 17798 /* Number of buffer table entries to dump. */ 17799 #define MC_CMD_DUMP_BUFTBL_ENTRIES_IN_NUMENTRIES_OFST 4 17800 #define MC_CMD_DUMP_BUFTBL_ENTRIES_IN_NUMENTRIES_LEN 4 17801 17802 /* MC_CMD_DUMP_BUFTBL_ENTRIES_OUT msgresponse */ 17803 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_LENMIN 12 17804 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_LENMAX 252 17805 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_LENMAX_MCDI2 1020 17806 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_LEN(num) (0+12*(num)) 17807 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_NUM(len) (((len)-0)/12) 17808 /* Raw buffer table entries, layed out as BUFTBL_ENTRY. */ 17809 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_OFST 0 17810 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_LEN 12 17811 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_MINNUM 1 17812 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_MAXNUM 21 17813 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_MAXNUM_MCDI2 85 17814 17815 17816 /***********************************/ 17817 /* MC_CMD_SET_RXDP_CONFIG 17818 * Set global RXDP configuration settings 17819 */ 17820 #define MC_CMD_SET_RXDP_CONFIG 0xc1 17821 #undef MC_CMD_0xc1_PRIVILEGE_CTG 17822 17823 #define MC_CMD_0xc1_PRIVILEGE_CTG SRIOV_CTG_ADMIN 17824 17825 /* MC_CMD_SET_RXDP_CONFIG_IN msgrequest */ 17826 #define MC_CMD_SET_RXDP_CONFIG_IN_LEN 4 17827 #define MC_CMD_SET_RXDP_CONFIG_IN_DATA_OFST 0 17828 #define MC_CMD_SET_RXDP_CONFIG_IN_DATA_LEN 4 17829 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_DMA_OFST 0 17830 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_DMA_LBN 0 17831 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_DMA_WIDTH 1 17832 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_LEN_OFST 0 17833 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_LEN_LBN 1 17834 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_LEN_WIDTH 2 17835 /* enum: pad to 64 bytes */ 17836 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_64 0x0 17837 /* enum: pad to 128 bytes (Medford only) */ 17838 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_128 0x1 17839 /* enum: pad to 256 bytes (Medford only) */ 17840 #define MC_CMD_SET_RXDP_CONFIG_IN_PAD_HOST_256 0x2 17841 17842 /* MC_CMD_SET_RXDP_CONFIG_OUT msgresponse */ 17843 #define MC_CMD_SET_RXDP_CONFIG_OUT_LEN 0 17844 17845 17846 /***********************************/ 17847 /* MC_CMD_GET_RXDP_CONFIG 17848 * Get global RXDP configuration settings 17849 */ 17850 #define MC_CMD_GET_RXDP_CONFIG 0xc2 17851 #undef MC_CMD_0xc2_PRIVILEGE_CTG 17852 17853 #define MC_CMD_0xc2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17854 17855 /* MC_CMD_GET_RXDP_CONFIG_IN msgrequest */ 17856 #define MC_CMD_GET_RXDP_CONFIG_IN_LEN 0 17857 17858 /* MC_CMD_GET_RXDP_CONFIG_OUT msgresponse */ 17859 #define MC_CMD_GET_RXDP_CONFIG_OUT_LEN 4 17860 #define MC_CMD_GET_RXDP_CONFIG_OUT_DATA_OFST 0 17861 #define MC_CMD_GET_RXDP_CONFIG_OUT_DATA_LEN 4 17862 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_DMA_OFST 0 17863 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_DMA_LBN 0 17864 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_DMA_WIDTH 1 17865 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_LEN_OFST 0 17866 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_LEN_LBN 1 17867 #define MC_CMD_GET_RXDP_CONFIG_OUT_PAD_HOST_LEN_WIDTH 2 17868 /* Enum values, see field(s): */ 17869 /* MC_CMD_SET_RXDP_CONFIG/MC_CMD_SET_RXDP_CONFIG_IN/PAD_HOST_LEN */ 17870 17871 17872 /***********************************/ 17873 /* MC_CMD_GET_CLOCK 17874 * Return the system and PDCPU clock frequencies. 17875 */ 17876 #define MC_CMD_GET_CLOCK 0xac 17877 #undef MC_CMD_0xac_PRIVILEGE_CTG 17878 17879 #define MC_CMD_0xac_PRIVILEGE_CTG SRIOV_CTG_GENERAL 17880 17881 /* MC_CMD_GET_CLOCK_IN msgrequest */ 17882 #define MC_CMD_GET_CLOCK_IN_LEN 0 17883 17884 /* MC_CMD_GET_CLOCK_OUT msgresponse */ 17885 #define MC_CMD_GET_CLOCK_OUT_LEN 8 17886 /* System frequency, MHz */ 17887 #define MC_CMD_GET_CLOCK_OUT_SYS_FREQ_OFST 0 17888 #define MC_CMD_GET_CLOCK_OUT_SYS_FREQ_LEN 4 17889 /* DPCPU frequency, MHz */ 17890 #define MC_CMD_GET_CLOCK_OUT_DPCPU_FREQ_OFST 4 17891 #define MC_CMD_GET_CLOCK_OUT_DPCPU_FREQ_LEN 4 17892 17893 17894 /***********************************/ 17895 /* MC_CMD_SET_CLOCK 17896 * Control the system and DPCPU clock frequencies. Changes are lost reboot. 17897 */ 17898 #define MC_CMD_SET_CLOCK 0xad 17899 #undef MC_CMD_0xad_PRIVILEGE_CTG 17900 17901 #define MC_CMD_0xad_PRIVILEGE_CTG SRIOV_CTG_INSECURE 17902 17903 /* MC_CMD_SET_CLOCK_IN msgrequest */ 17904 #define MC_CMD_SET_CLOCK_IN_LEN 28 17905 /* Requested frequency in MHz for system clock domain */ 17906 #define MC_CMD_SET_CLOCK_IN_SYS_FREQ_OFST 0 17907 #define MC_CMD_SET_CLOCK_IN_SYS_FREQ_LEN 4 17908 /* enum: Leave the system clock domain frequency unchanged */ 17909 #define MC_CMD_SET_CLOCK_IN_SYS_DOMAIN_DONT_CHANGE 0x0 17910 /* Requested frequency in MHz for inter-core clock domain */ 17911 #define MC_CMD_SET_CLOCK_IN_ICORE_FREQ_OFST 4 17912 #define MC_CMD_SET_CLOCK_IN_ICORE_FREQ_LEN 4 17913 /* enum: Leave the inter-core clock domain frequency unchanged */ 17914 #define MC_CMD_SET_CLOCK_IN_ICORE_DOMAIN_DONT_CHANGE 0x0 17915 /* Requested frequency in MHz for DPCPU clock domain */ 17916 #define MC_CMD_SET_CLOCK_IN_DPCPU_FREQ_OFST 8 17917 #define MC_CMD_SET_CLOCK_IN_DPCPU_FREQ_LEN 4 17918 /* enum: Leave the DPCPU clock domain frequency unchanged */ 17919 #define MC_CMD_SET_CLOCK_IN_DPCPU_DOMAIN_DONT_CHANGE 0x0 17920 /* Requested frequency in MHz for PCS clock domain */ 17921 #define MC_CMD_SET_CLOCK_IN_PCS_FREQ_OFST 12 17922 #define MC_CMD_SET_CLOCK_IN_PCS_FREQ_LEN 4 17923 /* enum: Leave the PCS clock domain frequency unchanged */ 17924 #define MC_CMD_SET_CLOCK_IN_PCS_DOMAIN_DONT_CHANGE 0x0 17925 /* Requested frequency in MHz for MC clock domain */ 17926 #define MC_CMD_SET_CLOCK_IN_MC_FREQ_OFST 16 17927 #define MC_CMD_SET_CLOCK_IN_MC_FREQ_LEN 4 17928 /* enum: Leave the MC clock domain frequency unchanged */ 17929 #define MC_CMD_SET_CLOCK_IN_MC_DOMAIN_DONT_CHANGE 0x0 17930 /* Requested frequency in MHz for rmon clock domain */ 17931 #define MC_CMD_SET_CLOCK_IN_RMON_FREQ_OFST 20 17932 #define MC_CMD_SET_CLOCK_IN_RMON_FREQ_LEN 4 17933 /* enum: Leave the rmon clock domain frequency unchanged */ 17934 #define MC_CMD_SET_CLOCK_IN_RMON_DOMAIN_DONT_CHANGE 0x0 17935 /* Requested frequency in MHz for vswitch clock domain */ 17936 #define MC_CMD_SET_CLOCK_IN_VSWITCH_FREQ_OFST 24 17937 #define MC_CMD_SET_CLOCK_IN_VSWITCH_FREQ_LEN 4 17938 /* enum: Leave the vswitch clock domain frequency unchanged */ 17939 #define MC_CMD_SET_CLOCK_IN_VSWITCH_DOMAIN_DONT_CHANGE 0x0 17940 17941 /* MC_CMD_SET_CLOCK_OUT msgresponse */ 17942 #define MC_CMD_SET_CLOCK_OUT_LEN 28 17943 /* Resulting system frequency in MHz */ 17944 #define MC_CMD_SET_CLOCK_OUT_SYS_FREQ_OFST 0 17945 #define MC_CMD_SET_CLOCK_OUT_SYS_FREQ_LEN 4 17946 /* enum: The system clock domain doesn't exist */ 17947 #define MC_CMD_SET_CLOCK_OUT_SYS_DOMAIN_UNSUPPORTED 0x0 17948 /* Resulting inter-core frequency in MHz */ 17949 #define MC_CMD_SET_CLOCK_OUT_ICORE_FREQ_OFST 4 17950 #define MC_CMD_SET_CLOCK_OUT_ICORE_FREQ_LEN 4 17951 /* enum: The inter-core clock domain doesn't exist / isn't used */ 17952 #define MC_CMD_SET_CLOCK_OUT_ICORE_DOMAIN_UNSUPPORTED 0x0 17953 /* Resulting DPCPU frequency in MHz */ 17954 #define MC_CMD_SET_CLOCK_OUT_DPCPU_FREQ_OFST 8 17955 #define MC_CMD_SET_CLOCK_OUT_DPCPU_FREQ_LEN 4 17956 /* enum: The dpcpu clock domain doesn't exist */ 17957 #define MC_CMD_SET_CLOCK_OUT_DPCPU_DOMAIN_UNSUPPORTED 0x0 17958 /* Resulting PCS frequency in MHz */ 17959 #define MC_CMD_SET_CLOCK_OUT_PCS_FREQ_OFST 12 17960 #define MC_CMD_SET_CLOCK_OUT_PCS_FREQ_LEN 4 17961 /* enum: The PCS clock domain doesn't exist / isn't controlled */ 17962 #define MC_CMD_SET_CLOCK_OUT_PCS_DOMAIN_UNSUPPORTED 0x0 17963 /* Resulting MC frequency in MHz */ 17964 #define MC_CMD_SET_CLOCK_OUT_MC_FREQ_OFST 16 17965 #define MC_CMD_SET_CLOCK_OUT_MC_FREQ_LEN 4 17966 /* enum: The MC clock domain doesn't exist / isn't controlled */ 17967 #define MC_CMD_SET_CLOCK_OUT_MC_DOMAIN_UNSUPPORTED 0x0 17968 /* Resulting rmon frequency in MHz */ 17969 #define MC_CMD_SET_CLOCK_OUT_RMON_FREQ_OFST 20 17970 #define MC_CMD_SET_CLOCK_OUT_RMON_FREQ_LEN 4 17971 /* enum: The rmon clock domain doesn't exist / isn't controlled */ 17972 #define MC_CMD_SET_CLOCK_OUT_RMON_DOMAIN_UNSUPPORTED 0x0 17973 /* Resulting vswitch frequency in MHz */ 17974 #define MC_CMD_SET_CLOCK_OUT_VSWITCH_FREQ_OFST 24 17975 #define MC_CMD_SET_CLOCK_OUT_VSWITCH_FREQ_LEN 4 17976 /* enum: The vswitch clock domain doesn't exist / isn't controlled */ 17977 #define MC_CMD_SET_CLOCK_OUT_VSWITCH_DOMAIN_UNSUPPORTED 0x0 17978 17979 17980 /***********************************/ 17981 /* MC_CMD_DPCPU_RPC 17982 * Send an arbitrary DPCPU message. 17983 */ 17984 #define MC_CMD_DPCPU_RPC 0xae 17985 #undef MC_CMD_0xae_PRIVILEGE_CTG 17986 17987 #define MC_CMD_0xae_PRIVILEGE_CTG SRIOV_CTG_INSECURE 17988 17989 /* MC_CMD_DPCPU_RPC_IN msgrequest */ 17990 #define MC_CMD_DPCPU_RPC_IN_LEN 36 17991 #define MC_CMD_DPCPU_RPC_IN_CPU_OFST 0 17992 #define MC_CMD_DPCPU_RPC_IN_CPU_LEN 4 17993 /* enum: RxDPCPU0 */ 17994 #define MC_CMD_DPCPU_RPC_IN_DPCPU_RX0 0x0 17995 /* enum: TxDPCPU0 */ 17996 #define MC_CMD_DPCPU_RPC_IN_DPCPU_TX0 0x1 17997 /* enum: TxDPCPU1 */ 17998 #define MC_CMD_DPCPU_RPC_IN_DPCPU_TX1 0x2 17999 /* enum: RxDPCPU1 (Medford only) */ 18000 #define MC_CMD_DPCPU_RPC_IN_DPCPU_RX1 0x3 18001 /* enum: RxDPCPU (will be for the calling function; for now, just an alias of 18002 * DPCPU_RX0) 18003 */ 18004 #define MC_CMD_DPCPU_RPC_IN_DPCPU_RX 0x80 18005 /* enum: TxDPCPU (will be for the calling function; for now, just an alias of 18006 * DPCPU_TX0) 18007 */ 18008 #define MC_CMD_DPCPU_RPC_IN_DPCPU_TX 0x81 18009 /* First 8 bits [39:32] of DATA are consumed by MC-DPCPU protocol and must be 18010 * initialised to zero 18011 */ 18012 #define MC_CMD_DPCPU_RPC_IN_DATA_OFST 4 18013 #define MC_CMD_DPCPU_RPC_IN_DATA_LEN 32 18014 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_CMDNUM_OFST 4 18015 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_CMDNUM_LBN 8 18016 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_CMDNUM_WIDTH 8 18017 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_TXDPCPU_READ 0x6 /* enum */ 18018 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_TXDPCPU_WRITE 0x7 /* enum */ 18019 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_TXDPCPU_SELF_TEST 0xc /* enum */ 18020 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_TXDPCPU_CSR_ACCESS 0xe /* enum */ 18021 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_RXDPCPU_READ 0x46 /* enum */ 18022 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_RXDPCPU_WRITE 0x47 /* enum */ 18023 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_RXDPCPU_SELF_TEST 0x4a /* enum */ 18024 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_RXDPCPU_CSR_ACCESS 0x4c /* enum */ 18025 #define MC_CMD_DPCPU_RPC_IN_CMDNUM_RXDPCPU_SET_MC_REPLAY_CNTXT 0x4d /* enum */ 18026 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_OBJID_OFST 4 18027 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_OBJID_LBN 16 18028 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_OBJID_WIDTH 16 18029 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_ADDR_OFST 4 18030 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_ADDR_LBN 16 18031 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_ADDR_WIDTH 16 18032 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_COUNT_OFST 4 18033 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_COUNT_LBN 48 18034 #define MC_CMD_DPCPU_RPC_IN_HDR_CMD_REQ_COUNT_WIDTH 16 18035 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_INFO_OFST 4 18036 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_INFO_LBN 16 18037 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_INFO_WIDTH 240 18038 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_OFST 4 18039 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_LBN 16 18040 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_WIDTH 16 18041 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_STOP_RETURN_RESULT 0x0 /* enum */ 18042 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_START_READ 0x1 /* enum */ 18043 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_START_WRITE 0x2 /* enum */ 18044 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_START_WRITE_READ 0x3 /* enum */ 18045 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_CMD_START_PIPELINED_READ 0x4 /* enum */ 18046 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_START_DELAY_OFST 4 18047 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_START_DELAY_LBN 48 18048 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_START_DELAY_WIDTH 16 18049 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_RPT_COUNT_OFST 4 18050 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_RPT_COUNT_LBN 64 18051 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_RPT_COUNT_WIDTH 16 18052 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_GAP_DELAY_OFST 4 18053 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_GAP_DELAY_LBN 80 18054 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_GAP_DELAY_WIDTH 16 18055 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_OFST 4 18056 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_LBN 16 18057 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_WIDTH 16 18058 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_CUT_THROUGH 0x1 /* enum */ 18059 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_STORE_FORWARD 0x2 /* enum */ 18060 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_MODE_STORE_FORWARD_FIRST 0x3 /* enum */ 18061 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_CNTXT_OFST 4 18062 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_CNTXT_LBN 64 18063 #define MC_CMD_DPCPU_RPC_IN_MC_REPLAY_CNTXT_WIDTH 16 18064 #define MC_CMD_DPCPU_RPC_IN_WDATA_OFST 12 18065 #define MC_CMD_DPCPU_RPC_IN_WDATA_LEN 24 18066 /* Register data to write. Only valid in write/write-read. */ 18067 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_DATA_OFST 16 18068 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_DATA_LEN 4 18069 /* Register address. */ 18070 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_ADDRESS_OFST 20 18071 #define MC_CMD_DPCPU_RPC_IN_CSR_ACCESS_ADDRESS_LEN 4 18072 18073 /* MC_CMD_DPCPU_RPC_OUT msgresponse */ 18074 #define MC_CMD_DPCPU_RPC_OUT_LEN 36 18075 #define MC_CMD_DPCPU_RPC_OUT_RC_OFST 0 18076 #define MC_CMD_DPCPU_RPC_OUT_RC_LEN 4 18077 /* DATA */ 18078 #define MC_CMD_DPCPU_RPC_OUT_DATA_OFST 4 18079 #define MC_CMD_DPCPU_RPC_OUT_DATA_LEN 32 18080 #define MC_CMD_DPCPU_RPC_OUT_HDR_CMD_RESP_ERRCODE_OFST 4 18081 #define MC_CMD_DPCPU_RPC_OUT_HDR_CMD_RESP_ERRCODE_LBN 32 18082 #define MC_CMD_DPCPU_RPC_OUT_HDR_CMD_RESP_ERRCODE_WIDTH 16 18083 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_COUNT_OFST 4 18084 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_COUNT_LBN 48 18085 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_COUNT_WIDTH 16 18086 #define MC_CMD_DPCPU_RPC_OUT_RDATA_OFST 12 18087 #define MC_CMD_DPCPU_RPC_OUT_RDATA_LEN 24 18088 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_1_OFST 12 18089 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_1_LEN 4 18090 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_2_OFST 16 18091 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_2_LEN 4 18092 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_3_OFST 20 18093 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_3_LEN 4 18094 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_4_OFST 24 18095 #define MC_CMD_DPCPU_RPC_OUT_CSR_ACCESS_READ_VAL_4_LEN 4 18096 18097 18098 /***********************************/ 18099 /* MC_CMD_TRIGGER_INTERRUPT 18100 * Trigger an interrupt by prodding the BIU. 18101 */ 18102 #define MC_CMD_TRIGGER_INTERRUPT 0xe3 18103 #undef MC_CMD_0xe3_PRIVILEGE_CTG 18104 18105 #define MC_CMD_0xe3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18106 18107 /* MC_CMD_TRIGGER_INTERRUPT_IN msgrequest */ 18108 #define MC_CMD_TRIGGER_INTERRUPT_IN_LEN 4 18109 /* Interrupt level relative to base for function. */ 18110 #define MC_CMD_TRIGGER_INTERRUPT_IN_INTR_LEVEL_OFST 0 18111 #define MC_CMD_TRIGGER_INTERRUPT_IN_INTR_LEVEL_LEN 4 18112 18113 /* MC_CMD_TRIGGER_INTERRUPT_OUT msgresponse */ 18114 #define MC_CMD_TRIGGER_INTERRUPT_OUT_LEN 0 18115 18116 18117 /***********************************/ 18118 /* MC_CMD_SHMBOOT_OP 18119 * Special operations to support (for now) shmboot. 18120 */ 18121 #define MC_CMD_SHMBOOT_OP 0xe6 18122 #undef MC_CMD_0xe6_PRIVILEGE_CTG 18123 18124 #define MC_CMD_0xe6_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 18125 18126 /* MC_CMD_SHMBOOT_OP_IN msgrequest */ 18127 #define MC_CMD_SHMBOOT_OP_IN_LEN 4 18128 /* Identifies the operation to perform */ 18129 #define MC_CMD_SHMBOOT_OP_IN_SHMBOOT_OP_OFST 0 18130 #define MC_CMD_SHMBOOT_OP_IN_SHMBOOT_OP_LEN 4 18131 /* enum: Copy slave_data section to the slave core. (Greenport only) */ 18132 #define MC_CMD_SHMBOOT_OP_IN_PUSH_SLAVE_DATA 0x0 18133 18134 /* MC_CMD_SHMBOOT_OP_OUT msgresponse */ 18135 #define MC_CMD_SHMBOOT_OP_OUT_LEN 0 18136 18137 18138 /***********************************/ 18139 /* MC_CMD_CAP_BLK_READ 18140 * Read multiple 64bit words from capture block memory 18141 */ 18142 #define MC_CMD_CAP_BLK_READ 0xe7 18143 #undef MC_CMD_0xe7_PRIVILEGE_CTG 18144 18145 #define MC_CMD_0xe7_PRIVILEGE_CTG SRIOV_CTG_INSECURE 18146 18147 /* MC_CMD_CAP_BLK_READ_IN msgrequest */ 18148 #define MC_CMD_CAP_BLK_READ_IN_LEN 12 18149 #define MC_CMD_CAP_BLK_READ_IN_CAP_REG_OFST 0 18150 #define MC_CMD_CAP_BLK_READ_IN_CAP_REG_LEN 4 18151 #define MC_CMD_CAP_BLK_READ_IN_ADDR_OFST 4 18152 #define MC_CMD_CAP_BLK_READ_IN_ADDR_LEN 4 18153 #define MC_CMD_CAP_BLK_READ_IN_COUNT_OFST 8 18154 #define MC_CMD_CAP_BLK_READ_IN_COUNT_LEN 4 18155 18156 /* MC_CMD_CAP_BLK_READ_OUT msgresponse */ 18157 #define MC_CMD_CAP_BLK_READ_OUT_LENMIN 8 18158 #define MC_CMD_CAP_BLK_READ_OUT_LENMAX 248 18159 #define MC_CMD_CAP_BLK_READ_OUT_LENMAX_MCDI2 1016 18160 #define MC_CMD_CAP_BLK_READ_OUT_LEN(num) (0+8*(num)) 18161 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_NUM(len) (((len)-0)/8) 18162 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_OFST 0 18163 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LEN 8 18164 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_LO_OFST 0 18165 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_HI_OFST 4 18166 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_MINNUM 1 18167 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_MAXNUM 31 18168 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_MAXNUM_MCDI2 127 18169 18170 18171 /***********************************/ 18172 /* MC_CMD_DUMP_DO 18173 * Take a dump of the DUT state 18174 */ 18175 #define MC_CMD_DUMP_DO 0xe8 18176 #undef MC_CMD_0xe8_PRIVILEGE_CTG 18177 18178 #define MC_CMD_0xe8_PRIVILEGE_CTG SRIOV_CTG_INSECURE 18179 18180 /* MC_CMD_DUMP_DO_IN msgrequest */ 18181 #define MC_CMD_DUMP_DO_IN_LEN 52 18182 #define MC_CMD_DUMP_DO_IN_PADDING_OFST 0 18183 #define MC_CMD_DUMP_DO_IN_PADDING_LEN 4 18184 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_OFST 4 18185 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_LEN 4 18186 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM 0x0 /* enum */ 18187 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_DEFAULT 0x1 /* enum */ 18188 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_TYPE_OFST 8 18189 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_TYPE_LEN 4 18190 #define MC_CMD_DUMP_DO_IN_DUMP_LOCATION_NVRAM 0x1 /* enum */ 18191 #define MC_CMD_DUMP_DO_IN_DUMP_LOCATION_HOST_MEMORY 0x2 /* enum */ 18192 #define MC_CMD_DUMP_DO_IN_DUMP_LOCATION_HOST_MEMORY_MLI 0x3 /* enum */ 18193 #define MC_CMD_DUMP_DO_IN_DUMP_LOCATION_UART 0x4 /* enum */ 18194 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_OFST 12 18195 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4 18196 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_OFST 16 18197 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_LEN 4 18198 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_OFST 12 18199 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4 18200 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_OFST 16 18201 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4 18202 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_OFST 12 18203 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4 18204 #define MC_CMD_DUMP_DO_IN_HOST_MEMORY_MLI_PAGE_SIZE 0x1000 /* enum */ 18205 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_OFST 16 18206 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4 18207 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_OFST 20 18208 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4 18209 #define MC_CMD_DUMP_DO_IN_HOST_MEMORY_MLI_MAX_DEPTH 0x2 /* enum */ 18210 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_OFST 12 18211 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_LEN 4 18212 /* enum: The uart port this command was received over (if using a uart 18213 * transport) 18214 */ 18215 #define MC_CMD_DUMP_DO_IN_UART_PORT_SRC 0xff 18216 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_SIZE_OFST 24 18217 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_SIZE_LEN 4 18218 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_OFST 28 18219 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_LEN 4 18220 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM 0x0 /* enum */ 18221 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_NVRAM_DUMP_PARTITION 0x1 /* enum */ 18222 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_TYPE_OFST 32 18223 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_TYPE_LEN 4 18224 /* Enum values, see field(s): */ 18225 /* MC_CMD_DUMP_DO_IN/DUMPSPEC_SRC_CUSTOM_TYPE */ 18226 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_OFST 36 18227 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4 18228 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_OFST 40 18229 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_LEN 4 18230 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_OFST 36 18231 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4 18232 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_OFST 40 18233 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4 18234 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_OFST 36 18235 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4 18236 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_OFST 40 18237 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4 18238 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_OFST 44 18239 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4 18240 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_UART_PORT_OFST 36 18241 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_UART_PORT_LEN 4 18242 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_SIZE_OFST 48 18243 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_SIZE_LEN 4 18244 18245 /* MC_CMD_DUMP_DO_OUT msgresponse */ 18246 #define MC_CMD_DUMP_DO_OUT_LEN 4 18247 #define MC_CMD_DUMP_DO_OUT_DUMPFILE_SIZE_OFST 0 18248 #define MC_CMD_DUMP_DO_OUT_DUMPFILE_SIZE_LEN 4 18249 18250 18251 /***********************************/ 18252 /* MC_CMD_DUMP_CONFIGURE_UNSOLICITED 18253 * Configure unsolicited dumps 18254 */ 18255 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED 0xe9 18256 #undef MC_CMD_0xe9_PRIVILEGE_CTG 18257 18258 #define MC_CMD_0xe9_PRIVILEGE_CTG SRIOV_CTG_INSECURE 18259 18260 /* MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN msgrequest */ 18261 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_LEN 52 18262 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_ENABLE_OFST 0 18263 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_ENABLE_LEN 4 18264 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_OFST 4 18265 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_LEN 4 18266 /* Enum values, see field(s): */ 18267 /* MC_CMD_DUMP_DO/MC_CMD_DUMP_DO_IN/DUMPSPEC_SRC */ 18268 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_TYPE_OFST 8 18269 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_TYPE_LEN 4 18270 /* Enum values, see field(s): */ 18271 /* MC_CMD_DUMP_DO/MC_CMD_DUMP_DO_IN/DUMPSPEC_SRC_CUSTOM_TYPE */ 18272 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_OFST 12 18273 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4 18274 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_OFST 16 18275 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_LEN 4 18276 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_OFST 12 18277 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4 18278 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_OFST 16 18279 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4 18280 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_OFST 12 18281 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4 18282 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_OFST 16 18283 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4 18284 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_OFST 20 18285 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4 18286 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_OFST 12 18287 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_LEN 4 18288 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_SIZE_OFST 24 18289 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_SIZE_LEN 4 18290 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_OFST 28 18291 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_LEN 4 18292 /* Enum values, see field(s): */ 18293 /* MC_CMD_DUMP_DO/MC_CMD_DUMP_DO_IN/DUMPFILE_DST */ 18294 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_TYPE_OFST 32 18295 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_TYPE_LEN 4 18296 /* Enum values, see field(s): */ 18297 /* MC_CMD_DUMP_DO/MC_CMD_DUMP_DO_IN/DUMPSPEC_SRC_CUSTOM_TYPE */ 18298 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_OFST 36 18299 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4 18300 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_OFST 40 18301 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_LEN 4 18302 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_OFST 36 18303 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4 18304 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_OFST 40 18305 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4 18306 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_OFST 36 18307 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4 18308 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_OFST 40 18309 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4 18310 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_OFST 44 18311 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4 18312 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_UART_PORT_OFST 36 18313 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_UART_PORT_LEN 4 18314 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_SIZE_OFST 48 18315 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_SIZE_LEN 4 18316 18317 18318 /***********************************/ 18319 /* MC_CMD_SET_PSU 18320 * Adjusts power supply parameters. This is a warranty-voiding operation. 18321 * Returns: ENOENT if the parameter or rail specified does not exist, EINVAL if 18322 * the parameter is out of range. 18323 */ 18324 #define MC_CMD_SET_PSU 0xea 18325 #undef MC_CMD_0xea_PRIVILEGE_CTG 18326 18327 #define MC_CMD_0xea_PRIVILEGE_CTG SRIOV_CTG_INSECURE 18328 18329 /* MC_CMD_SET_PSU_IN msgrequest */ 18330 #define MC_CMD_SET_PSU_IN_LEN 12 18331 #define MC_CMD_SET_PSU_IN_PARAM_OFST 0 18332 #define MC_CMD_SET_PSU_IN_PARAM_LEN 4 18333 #define MC_CMD_SET_PSU_IN_PARAM_SUPPLY_VOLTAGE 0x0 /* enum */ 18334 #define MC_CMD_SET_PSU_IN_RAIL_OFST 4 18335 #define MC_CMD_SET_PSU_IN_RAIL_LEN 4 18336 #define MC_CMD_SET_PSU_IN_RAIL_0V9 0x0 /* enum */ 18337 #define MC_CMD_SET_PSU_IN_RAIL_1V2 0x1 /* enum */ 18338 /* desired value, eg voltage in mV */ 18339 #define MC_CMD_SET_PSU_IN_VALUE_OFST 8 18340 #define MC_CMD_SET_PSU_IN_VALUE_LEN 4 18341 18342 /* MC_CMD_SET_PSU_OUT msgresponse */ 18343 #define MC_CMD_SET_PSU_OUT_LEN 0 18344 18345 18346 /***********************************/ 18347 /* MC_CMD_GET_FUNCTION_INFO 18348 * Get function information. PF and VF number. 18349 */ 18350 #define MC_CMD_GET_FUNCTION_INFO 0xec 18351 #undef MC_CMD_0xec_PRIVILEGE_CTG 18352 18353 #define MC_CMD_0xec_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18354 18355 /* MC_CMD_GET_FUNCTION_INFO_IN msgrequest */ 18356 #define MC_CMD_GET_FUNCTION_INFO_IN_LEN 0 18357 18358 /* MC_CMD_GET_FUNCTION_INFO_OUT msgresponse */ 18359 #define MC_CMD_GET_FUNCTION_INFO_OUT_LEN 8 18360 #define MC_CMD_GET_FUNCTION_INFO_OUT_PF_OFST 0 18361 #define MC_CMD_GET_FUNCTION_INFO_OUT_PF_LEN 4 18362 #define MC_CMD_GET_FUNCTION_INFO_OUT_VF_OFST 4 18363 #define MC_CMD_GET_FUNCTION_INFO_OUT_VF_LEN 4 18364 18365 18366 /***********************************/ 18367 /* MC_CMD_ENABLE_OFFLINE_BIST 18368 * Enters offline BIST mode. All queues are torn down, chip enters quiescent 18369 * mode, calling function gets exclusive MCDI ownership. The only way out is 18370 * reboot. 18371 */ 18372 #define MC_CMD_ENABLE_OFFLINE_BIST 0xed 18373 #undef MC_CMD_0xed_PRIVILEGE_CTG 18374 18375 #define MC_CMD_0xed_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 18376 18377 /* MC_CMD_ENABLE_OFFLINE_BIST_IN msgrequest */ 18378 #define MC_CMD_ENABLE_OFFLINE_BIST_IN_LEN 0 18379 18380 /* MC_CMD_ENABLE_OFFLINE_BIST_OUT msgresponse */ 18381 #define MC_CMD_ENABLE_OFFLINE_BIST_OUT_LEN 0 18382 18383 18384 /***********************************/ 18385 /* MC_CMD_UART_SEND_DATA 18386 * Send checksummed[sic] block of data over the uart. Response is a placeholder 18387 * should we wish to make this reliable; currently requests are fire-and- 18388 * forget. 18389 */ 18390 #define MC_CMD_UART_SEND_DATA 0xee 18391 #undef MC_CMD_0xee_PRIVILEGE_CTG 18392 18393 #define MC_CMD_0xee_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18394 18395 /* MC_CMD_UART_SEND_DATA_OUT msgrequest */ 18396 #define MC_CMD_UART_SEND_DATA_OUT_LENMIN 16 18397 #define MC_CMD_UART_SEND_DATA_OUT_LENMAX 252 18398 #define MC_CMD_UART_SEND_DATA_OUT_LENMAX_MCDI2 1020 18399 #define MC_CMD_UART_SEND_DATA_OUT_LEN(num) (16+1*(num)) 18400 #define MC_CMD_UART_SEND_DATA_OUT_DATA_NUM(len) (((len)-16)/1) 18401 /* CRC32 over OFFSET, LENGTH, RESERVED, DATA */ 18402 #define MC_CMD_UART_SEND_DATA_OUT_CHECKSUM_OFST 0 18403 #define MC_CMD_UART_SEND_DATA_OUT_CHECKSUM_LEN 4 18404 /* Offset at which to write the data */ 18405 #define MC_CMD_UART_SEND_DATA_OUT_OFFSET_OFST 4 18406 #define MC_CMD_UART_SEND_DATA_OUT_OFFSET_LEN 4 18407 /* Length of data */ 18408 #define MC_CMD_UART_SEND_DATA_OUT_LENGTH_OFST 8 18409 #define MC_CMD_UART_SEND_DATA_OUT_LENGTH_LEN 4 18410 /* Reserved for future use */ 18411 #define MC_CMD_UART_SEND_DATA_OUT_RESERVED_OFST 12 18412 #define MC_CMD_UART_SEND_DATA_OUT_RESERVED_LEN 4 18413 #define MC_CMD_UART_SEND_DATA_OUT_DATA_OFST 16 18414 #define MC_CMD_UART_SEND_DATA_OUT_DATA_LEN 1 18415 #define MC_CMD_UART_SEND_DATA_OUT_DATA_MINNUM 0 18416 #define MC_CMD_UART_SEND_DATA_OUT_DATA_MAXNUM 236 18417 #define MC_CMD_UART_SEND_DATA_OUT_DATA_MAXNUM_MCDI2 1004 18418 18419 /* MC_CMD_UART_SEND_DATA_IN msgresponse */ 18420 #define MC_CMD_UART_SEND_DATA_IN_LEN 0 18421 18422 18423 /***********************************/ 18424 /* MC_CMD_UART_RECV_DATA 18425 * Request checksummed[sic] block of data over the uart. Only a placeholder, 18426 * subject to change and not currently implemented. 18427 */ 18428 #define MC_CMD_UART_RECV_DATA 0xef 18429 #undef MC_CMD_0xef_PRIVILEGE_CTG 18430 18431 #define MC_CMD_0xef_PRIVILEGE_CTG SRIOV_CTG_GENERAL 18432 18433 /* MC_CMD_UART_RECV_DATA_OUT msgrequest */ 18434 #define MC_CMD_UART_RECV_DATA_OUT_LEN 16 18435 /* CRC32 over OFFSET, LENGTH, RESERVED */ 18436 #define MC_CMD_UART_RECV_DATA_OUT_CHECKSUM_OFST 0 18437 #define MC_CMD_UART_RECV_DATA_OUT_CHECKSUM_LEN 4 18438 /* Offset from which to read the data */ 18439 #define MC_CMD_UART_RECV_DATA_OUT_OFFSET_OFST 4 18440 #define MC_CMD_UART_RECV_DATA_OUT_OFFSET_LEN 4 18441 /* Length of data */ 18442 #define MC_CMD_UART_RECV_DATA_OUT_LENGTH_OFST 8 18443 #define MC_CMD_UART_RECV_DATA_OUT_LENGTH_LEN 4 18444 /* Reserved for future use */ 18445 #define MC_CMD_UART_RECV_DATA_OUT_RESERVED_OFST 12 18446 #define MC_CMD_UART_RECV_DATA_OUT_RESERVED_LEN 4 18447 18448 /* MC_CMD_UART_RECV_DATA_IN msgresponse */ 18449 #define MC_CMD_UART_RECV_DATA_IN_LENMIN 16 18450 #define MC_CMD_UART_RECV_DATA_IN_LENMAX 252 18451 #define MC_CMD_UART_RECV_DATA_IN_LENMAX_MCDI2 1020 18452 #define MC_CMD_UART_RECV_DATA_IN_LEN(num) (16+1*(num)) 18453 #define MC_CMD_UART_RECV_DATA_IN_DATA_NUM(len) (((len)-16)/1) 18454 /* CRC32 over RESERVED1, RESERVED2, RESERVED3, DATA */ 18455 #define MC_CMD_UART_RECV_DATA_IN_CHECKSUM_OFST 0 18456 #define MC_CMD_UART_RECV_DATA_IN_CHECKSUM_LEN 4 18457 /* Offset at which to write the data */ 18458 #define MC_CMD_UART_RECV_DATA_IN_RESERVED1_OFST 4 18459 #define MC_CMD_UART_RECV_DATA_IN_RESERVED1_LEN 4 18460 /* Length of data */ 18461 #define MC_CMD_UART_RECV_DATA_IN_RESERVED2_OFST 8 18462 #define MC_CMD_UART_RECV_DATA_IN_RESERVED2_LEN 4 18463 /* Reserved for future use */ 18464 #define MC_CMD_UART_RECV_DATA_IN_RESERVED3_OFST 12 18465 #define MC_CMD_UART_RECV_DATA_IN_RESERVED3_LEN 4 18466 #define MC_CMD_UART_RECV_DATA_IN_DATA_OFST 16 18467 #define MC_CMD_UART_RECV_DATA_IN_DATA_LEN 1 18468 #define MC_CMD_UART_RECV_DATA_IN_DATA_MINNUM 0 18469 #define MC_CMD_UART_RECV_DATA_IN_DATA_MAXNUM 236 18470 #define MC_CMD_UART_RECV_DATA_IN_DATA_MAXNUM_MCDI2 1004 18471 18472 18473 /***********************************/ 18474 /* MC_CMD_READ_FUSES 18475 * Read data programmed into the device One-Time-Programmable (OTP) Fuses 18476 */ 18477 #define MC_CMD_READ_FUSES 0xf0 18478 #undef MC_CMD_0xf0_PRIVILEGE_CTG 18479 18480 #define MC_CMD_0xf0_PRIVILEGE_CTG SRIOV_CTG_INSECURE 18481 18482 /* MC_CMD_READ_FUSES_IN msgrequest */ 18483 #define MC_CMD_READ_FUSES_IN_LEN 8 18484 /* Offset in OTP to read */ 18485 #define MC_CMD_READ_FUSES_IN_OFFSET_OFST 0 18486 #define MC_CMD_READ_FUSES_IN_OFFSET_LEN 4 18487 /* Length of data to read in bytes */ 18488 #define MC_CMD_READ_FUSES_IN_LENGTH_OFST 4 18489 #define MC_CMD_READ_FUSES_IN_LENGTH_LEN 4 18490 18491 /* MC_CMD_READ_FUSES_OUT msgresponse */ 18492 #define MC_CMD_READ_FUSES_OUT_LENMIN 4 18493 #define MC_CMD_READ_FUSES_OUT_LENMAX 252 18494 #define MC_CMD_READ_FUSES_OUT_LENMAX_MCDI2 1020 18495 #define MC_CMD_READ_FUSES_OUT_LEN(num) (4+1*(num)) 18496 #define MC_CMD_READ_FUSES_OUT_DATA_NUM(len) (((len)-4)/1) 18497 /* Length of returned OTP data in bytes */ 18498 #define MC_CMD_READ_FUSES_OUT_LENGTH_OFST 0 18499 #define MC_CMD_READ_FUSES_OUT_LENGTH_LEN 4 18500 /* Returned data */ 18501 #define MC_CMD_READ_FUSES_OUT_DATA_OFST 4 18502 #define MC_CMD_READ_FUSES_OUT_DATA_LEN 1 18503 #define MC_CMD_READ_FUSES_OUT_DATA_MINNUM 0 18504 #define MC_CMD_READ_FUSES_OUT_DATA_MAXNUM 248 18505 #define MC_CMD_READ_FUSES_OUT_DATA_MAXNUM_MCDI2 1016 18506 18507 18508 /***********************************/ 18509 /* MC_CMD_KR_TUNE 18510 * Get or set KR Serdes RXEQ and TX Driver settings 18511 */ 18512 #define MC_CMD_KR_TUNE 0xf1 18513 #undef MC_CMD_0xf1_PRIVILEGE_CTG 18514 18515 #define MC_CMD_0xf1_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 18516 18517 /* MC_CMD_KR_TUNE_IN msgrequest */ 18518 #define MC_CMD_KR_TUNE_IN_LENMIN 4 18519 #define MC_CMD_KR_TUNE_IN_LENMAX 252 18520 #define MC_CMD_KR_TUNE_IN_LENMAX_MCDI2 1020 18521 #define MC_CMD_KR_TUNE_IN_LEN(num) (4+4*(num)) 18522 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_NUM(len) (((len)-4)/4) 18523 /* Requested operation */ 18524 #define MC_CMD_KR_TUNE_IN_KR_TUNE_OP_OFST 0 18525 #define MC_CMD_KR_TUNE_IN_KR_TUNE_OP_LEN 1 18526 /* enum: Get current RXEQ settings */ 18527 #define MC_CMD_KR_TUNE_IN_RXEQ_GET 0x0 18528 /* enum: Override RXEQ settings */ 18529 #define MC_CMD_KR_TUNE_IN_RXEQ_SET 0x1 18530 /* enum: Get current TX Driver settings */ 18531 #define MC_CMD_KR_TUNE_IN_TXEQ_GET 0x2 18532 /* enum: Override TX Driver settings */ 18533 #define MC_CMD_KR_TUNE_IN_TXEQ_SET 0x3 18534 /* enum: Force KR Serdes reset / recalibration */ 18535 #define MC_CMD_KR_TUNE_IN_RECAL 0x4 18536 /* enum: Start KR Serdes Eye diagram plot on a given lane. Lane must have valid 18537 * signal. 18538 */ 18539 #define MC_CMD_KR_TUNE_IN_START_EYE_PLOT 0x5 18540 /* enum: Poll KR Serdes Eye diagram plot. Returns one row of BER data. The 18541 * caller should call this command repeatedly after starting eye plot, until no 18542 * more data is returned. 18543 */ 18544 #define MC_CMD_KR_TUNE_IN_POLL_EYE_PLOT 0x6 18545 /* enum: Read Figure Of Merit (eye quality, higher is better). */ 18546 #define MC_CMD_KR_TUNE_IN_READ_FOM 0x7 18547 /* enum: Start/stop link training frames */ 18548 #define MC_CMD_KR_TUNE_IN_LINK_TRAIN_RUN 0x8 18549 /* enum: Issue KR link training command (control training coefficients) */ 18550 #define MC_CMD_KR_TUNE_IN_LINK_TRAIN_CMD 0x9 18551 /* Align the arguments to 32 bits */ 18552 #define MC_CMD_KR_TUNE_IN_KR_TUNE_RSVD_OFST 1 18553 #define MC_CMD_KR_TUNE_IN_KR_TUNE_RSVD_LEN 3 18554 /* Arguments specific to the operation */ 18555 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_OFST 4 18556 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_LEN 4 18557 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_MINNUM 0 18558 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_MAXNUM 62 18559 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_MAXNUM_MCDI2 254 18560 18561 /* MC_CMD_KR_TUNE_OUT msgresponse */ 18562 #define MC_CMD_KR_TUNE_OUT_LEN 0 18563 18564 /* MC_CMD_KR_TUNE_RXEQ_GET_IN msgrequest */ 18565 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_LEN 4 18566 /* Requested operation */ 18567 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_OP_OFST 0 18568 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_OP_LEN 1 18569 /* Align the arguments to 32 bits */ 18570 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_RSVD_OFST 1 18571 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_RSVD_LEN 3 18572 18573 /* MC_CMD_KR_TUNE_RXEQ_GET_OUT msgresponse */ 18574 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LENMIN 4 18575 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LENMAX 252 18576 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LENMAX_MCDI2 1020 18577 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LEN(num) (0+4*(num)) 18578 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4) 18579 /* RXEQ Parameter */ 18580 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_OFST 0 18581 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LEN 4 18582 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_MINNUM 1 18583 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_MAXNUM 63 18584 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_MAXNUM_MCDI2 255 18585 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_ID_OFST 0 18586 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_ID_LBN 0 18587 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_ID_WIDTH 8 18588 /* enum: Attenuation (0-15, Huntington) */ 18589 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_ATT 0x0 18590 /* enum: CTLE Boost (0-15, Huntington) */ 18591 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_BOOST 0x1 18592 /* enum: Edge DFE Tap1 (Huntington - 0 - max negative, 64 - zero, 127 - max 18593 * positive, Medford - 0-31) 18594 */ 18595 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP1 0x2 18596 /* enum: Edge DFE Tap2 (Huntington - 0 - max negative, 32 - zero, 63 - max 18597 * positive, Medford - 0-31) 18598 */ 18599 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP2 0x3 18600 /* enum: Edge DFE Tap3 (Huntington - 0 - max negative, 32 - zero, 63 - max 18601 * positive, Medford - 0-16) 18602 */ 18603 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP3 0x4 18604 /* enum: Edge DFE Tap4 (Huntington - 0 - max negative, 32 - zero, 63 - max 18605 * positive, Medford - 0-16) 18606 */ 18607 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP4 0x5 18608 /* enum: Edge DFE Tap5 (Huntington - 0 - max negative, 32 - zero, 63 - max 18609 * positive, Medford - 0-16) 18610 */ 18611 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_TAP5 0x6 18612 /* enum: Edge DFE DLEV (0-128 for Medford) */ 18613 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_EDFE_DLEV 0x7 18614 /* enum: Variable Gain Amplifier (0-15, Medford) */ 18615 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_VGA 0x8 18616 /* enum: CTLE EQ Capacitor (0-15, Medford) */ 18617 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_EQC 0x9 18618 /* enum: CTLE EQ Resistor (0-7, Medford) */ 18619 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_EQRES 0xa 18620 /* enum: CTLE gain (0-31, Medford2) */ 18621 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_GAIN 0xb 18622 /* enum: CTLE pole (0-31, Medford2) */ 18623 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_POLE 0xc 18624 /* enum: CTLE peaking (0-31, Medford2) */ 18625 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CTLE_PEAK 0xd 18626 /* enum: DFE Tap1 - even path (Medford2 - 6 bit signed (-29 - +29)) */ 18627 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP1_EVEN 0xe 18628 /* enum: DFE Tap1 - odd path (Medford2 - 6 bit signed (-29 - +29)) */ 18629 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP1_ODD 0xf 18630 /* enum: DFE Tap2 (Medford2 - 6 bit signed (-20 - +20)) */ 18631 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP2 0x10 18632 /* enum: DFE Tap3 (Medford2 - 6 bit signed (-20 - +20)) */ 18633 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP3 0x11 18634 /* enum: DFE Tap4 (Medford2 - 6 bit signed (-20 - +20)) */ 18635 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP4 0x12 18636 /* enum: DFE Tap5 (Medford2 - 6 bit signed (-24 - +24)) */ 18637 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP5 0x13 18638 /* enum: DFE Tap6 (Medford2 - 6 bit signed (-24 - +24)) */ 18639 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP6 0x14 18640 /* enum: DFE Tap7 (Medford2 - 6 bit signed (-24 - +24)) */ 18641 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP7 0x15 18642 /* enum: DFE Tap8 (Medford2 - 6 bit signed (-24 - +24)) */ 18643 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP8 0x16 18644 /* enum: DFE Tap9 (Medford2 - 6 bit signed (-24 - +24)) */ 18645 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP9 0x17 18646 /* enum: DFE Tap10 (Medford2 - 6 bit signed (-24 - +24)) */ 18647 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP10 0x18 18648 /* enum: DFE Tap11 (Medford2 - 6 bit signed (-24 - +24)) */ 18649 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP11 0x19 18650 /* enum: DFE Tap12 (Medford2 - 6 bit signed (-24 - +24)) */ 18651 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP12 0x1a 18652 /* enum: I/Q clk offset (Medford2 - 4 bit signed (-5 - +5))) */ 18653 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_IQ_OFF 0x1b 18654 /* enum: Negative h1 polarity data sampler offset calibration code, even path 18655 * (Medford2 - 6 bit signed (-29 - +29))) 18656 */ 18657 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_H1N_OFF_EVEN 0x1c 18658 /* enum: Negative h1 polarity data sampler offset calibration code, odd path 18659 * (Medford2 - 6 bit signed (-29 - +29))) 18660 */ 18661 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_H1N_OFF_ODD 0x1d 18662 /* enum: Positive h1 polarity data sampler offset calibration code, even path 18663 * (Medford2 - 6 bit signed (-29 - +29))) 18664 */ 18665 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_H1P_OFF_EVEN 0x1e 18666 /* enum: Positive h1 polarity data sampler offset calibration code, odd path 18667 * (Medford2 - 6 bit signed (-29 - +29))) 18668 */ 18669 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_H1P_OFF_ODD 0x1f 18670 /* enum: CDR calibration loop code (Medford2) */ 18671 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CDR_PVT 0x20 18672 /* enum: CDR integral loop code (Medford2) */ 18673 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_CDR_INTEG 0x21 18674 /* enum: CTLE Boost stages - retimer lineside (Medford2 with DS250x retimer - 4 18675 * stages, 2 bits per stage) 18676 */ 18677 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_BOOST_RT_LS 0x22 18678 /* enum: DFE Tap1 - retimer lineside (Medford2 with DS250x retimer (-31 - 31)) 18679 */ 18680 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP1_RT_LS 0x23 18681 /* enum: DFE Tap2 - retimer lineside (Medford2 with DS250x retimer (-15 - 15)) 18682 */ 18683 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP2_RT_LS 0x24 18684 /* enum: DFE Tap3 - retimer lineside (Medford2 with DS250x retimer (-15 - 15)) 18685 */ 18686 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP3_RT_LS 0x25 18687 /* enum: DFE Tap4 - retimer lineside (Medford2 with DS250x retimer (-15 - 15)) 18688 */ 18689 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP4_RT_LS 0x26 18690 /* enum: DFE Tap5 - retimer lineside (Medford2 with DS250x retimer (-15 - 15)) 18691 */ 18692 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP5_RT_LS 0x27 18693 /* enum: CTLE Boost stages - retimer hostside (Medford2 with DS250x retimer - 4 18694 * stages, 2 bits per stage) 18695 */ 18696 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_BOOST_RT_HS 0x28 18697 /* enum: DFE Tap1 - retimer hostside (Medford2 with DS250x retimer (-31 - 31)) 18698 */ 18699 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP1_RT_HS 0x29 18700 /* enum: DFE Tap2 - retimer hostside (Medford2 with DS250x retimer (-15 - 15)) 18701 */ 18702 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP2_RT_HS 0x2a 18703 /* enum: DFE Tap3 - retimer hostside (Medford2 with DS250x retimer (-15 - 15)) 18704 */ 18705 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP3_RT_HS 0x2b 18706 /* enum: DFE Tap4 - retimer hostside (Medford2 with DS250x retimer (-15 - 15)) 18707 */ 18708 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP4_RT_HS 0x2c 18709 /* enum: DFE Tap5 - retimer hostside (Medford2 with DS250x retimer (-15 - 15)) 18710 */ 18711 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_DFE_TAP5_RT_HS 0x2d 18712 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LANE_OFST 0 18713 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LANE_LBN 8 18714 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LANE_WIDTH 3 18715 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_0 0x0 /* enum */ 18716 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_1 0x1 /* enum */ 18717 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_2 0x2 /* enum */ 18718 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_3 0x3 /* enum */ 18719 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LANE_ALL 0x4 /* enum */ 18720 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_OFST 0 18721 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_LBN 11 18722 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_WIDTH 1 18723 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_RESERVED_OFST 0 18724 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_RESERVED_LBN 12 18725 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_RESERVED_WIDTH 4 18726 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_INITIAL_OFST 0 18727 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_INITIAL_LBN 16 18728 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_INITIAL_WIDTH 8 18729 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_OFST 0 18730 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_LBN 24 18731 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_WIDTH 8 18732 18733 /* MC_CMD_KR_TUNE_RXEQ_SET_IN msgrequest */ 18734 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LENMIN 8 18735 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LENMAX 252 18736 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LENMAX_MCDI2 1020 18737 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LEN(num) (4+4*(num)) 18738 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_NUM(len) (((len)-4)/4) 18739 /* Requested operation */ 18740 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_OP_OFST 0 18741 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_OP_LEN 1 18742 /* Align the arguments to 32 bits */ 18743 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_RSVD_OFST 1 18744 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_RSVD_LEN 3 18745 /* RXEQ Parameter */ 18746 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_OFST 4 18747 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LEN 4 18748 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_MINNUM 1 18749 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_MAXNUM 62 18750 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_MAXNUM_MCDI2 254 18751 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_ID_OFST 4 18752 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_ID_LBN 0 18753 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_ID_WIDTH 8 18754 /* Enum values, see field(s): */ 18755 /* MC_CMD_KR_TUNE_RXEQ_GET_OUT/PARAM_ID */ 18756 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LANE_OFST 4 18757 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LANE_LBN 8 18758 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LANE_WIDTH 3 18759 /* Enum values, see field(s): */ 18760 /* MC_CMD_KR_TUNE_RXEQ_GET_OUT/PARAM_LANE */ 18761 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_OFST 4 18762 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_LBN 11 18763 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_WIDTH 1 18764 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED_OFST 4 18765 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED_LBN 12 18766 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED_WIDTH 4 18767 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_INITIAL_OFST 4 18768 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_INITIAL_LBN 16 18769 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_INITIAL_WIDTH 8 18770 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED2_OFST 4 18771 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED2_LBN 24 18772 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED2_WIDTH 8 18773 18774 /* MC_CMD_KR_TUNE_RXEQ_SET_OUT msgresponse */ 18775 #define MC_CMD_KR_TUNE_RXEQ_SET_OUT_LEN 0 18776 18777 /* MC_CMD_KR_TUNE_TXEQ_GET_IN msgrequest */ 18778 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_LEN 4 18779 /* Requested operation */ 18780 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_OP_OFST 0 18781 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_OP_LEN 1 18782 /* Align the arguments to 32 bits */ 18783 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_RSVD_OFST 1 18784 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_RSVD_LEN 3 18785 18786 /* MC_CMD_KR_TUNE_TXEQ_GET_OUT msgresponse */ 18787 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LENMIN 4 18788 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LENMAX 252 18789 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LENMAX_MCDI2 1020 18790 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LEN(num) (0+4*(num)) 18791 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4) 18792 /* TXEQ Parameter */ 18793 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_OFST 0 18794 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LEN 4 18795 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_MINNUM 1 18796 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_MAXNUM 63 18797 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_MAXNUM_MCDI2 255 18798 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_ID_OFST 0 18799 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_ID_LBN 0 18800 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_ID_WIDTH 8 18801 /* enum: TX Amplitude (Huntington, Medford, Medford2) */ 18802 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_LEV 0x0 18803 /* enum: De-Emphasis Tap1 Magnitude (0-7) (Huntington) */ 18804 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_MODE 0x1 18805 /* enum: De-Emphasis Tap1 Fine */ 18806 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_DTLEV 0x2 18807 /* enum: De-Emphasis Tap2 Magnitude (0-6) (Huntington) */ 18808 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_D2 0x3 18809 /* enum: De-Emphasis Tap2 Fine (Huntington) */ 18810 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_D2TLEV 0x4 18811 /* enum: Pre-Emphasis Magnitude (Huntington) */ 18812 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_E 0x5 18813 /* enum: Pre-Emphasis Fine (Huntington) */ 18814 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_ETLEV 0x6 18815 /* enum: TX Slew Rate Coarse control (Huntington) */ 18816 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_PREDRV_DLY 0x7 18817 /* enum: TX Slew Rate Fine control (Huntington) */ 18818 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_SR_SET 0x8 18819 /* enum: TX Termination Impedance control (Huntington) */ 18820 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_RT_SET 0x9 18821 /* enum: TX Amplitude Fine control (Medford) */ 18822 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_LEV_FINE 0xa 18823 /* enum: Pre-cursor Tap (Medford, Medford2) */ 18824 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_ADV 0xb 18825 /* enum: Post-cursor Tap (Medford, Medford2) */ 18826 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_DLY 0xc 18827 /* enum: TX Amplitude (Retimer Lineside) */ 18828 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_LEV_RT_LS 0xd 18829 /* enum: Pre-cursor Tap (Retimer Lineside) */ 18830 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_ADV_RT_LS 0xe 18831 /* enum: Post-cursor Tap (Retimer Lineside) */ 18832 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_DLY_RT_LS 0xf 18833 /* enum: TX Amplitude (Retimer Hostside) */ 18834 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TX_LEV_RT_HS 0x10 18835 /* enum: Pre-cursor Tap (Retimer Hostside) */ 18836 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_ADV_RT_HS 0x11 18837 /* enum: Post-cursor Tap (Retimer Hostside) */ 18838 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_TAP_DLY_RT_HS 0x12 18839 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LANE_OFST 0 18840 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LANE_LBN 8 18841 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LANE_WIDTH 3 18842 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_0 0x0 /* enum */ 18843 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_1 0x1 /* enum */ 18844 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_2 0x2 /* enum */ 18845 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_3 0x3 /* enum */ 18846 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LANE_ALL 0x4 /* enum */ 18847 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED_OFST 0 18848 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED_LBN 11 18849 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED_WIDTH 5 18850 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_INITIAL_OFST 0 18851 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_INITIAL_LBN 16 18852 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_INITIAL_WIDTH 8 18853 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED2_OFST 0 18854 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED2_LBN 24 18855 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_RESERVED2_WIDTH 8 18856 18857 /* MC_CMD_KR_TUNE_TXEQ_SET_IN msgrequest */ 18858 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LENMIN 8 18859 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LENMAX 252 18860 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LENMAX_MCDI2 1020 18861 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LEN(num) (4+4*(num)) 18862 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_NUM(len) (((len)-4)/4) 18863 /* Requested operation */ 18864 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_OP_OFST 0 18865 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_OP_LEN 1 18866 /* Align the arguments to 32 bits */ 18867 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_RSVD_OFST 1 18868 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_RSVD_LEN 3 18869 /* TXEQ Parameter */ 18870 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_OFST 4 18871 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LEN 4 18872 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_MINNUM 1 18873 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_MAXNUM 62 18874 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_MAXNUM_MCDI2 254 18875 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_ID_OFST 4 18876 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_ID_LBN 0 18877 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_ID_WIDTH 8 18878 /* Enum values, see field(s): */ 18879 /* MC_CMD_KR_TUNE_TXEQ_GET_OUT/PARAM_ID */ 18880 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LANE_OFST 4 18881 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LANE_LBN 8 18882 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LANE_WIDTH 3 18883 /* Enum values, see field(s): */ 18884 /* MC_CMD_KR_TUNE_TXEQ_GET_OUT/PARAM_LANE */ 18885 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED_OFST 4 18886 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED_LBN 11 18887 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED_WIDTH 5 18888 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_INITIAL_OFST 4 18889 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_INITIAL_LBN 16 18890 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_INITIAL_WIDTH 8 18891 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED2_OFST 4 18892 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED2_LBN 24 18893 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED2_WIDTH 8 18894 18895 /* MC_CMD_KR_TUNE_TXEQ_SET_OUT msgresponse */ 18896 #define MC_CMD_KR_TUNE_TXEQ_SET_OUT_LEN 0 18897 18898 /* MC_CMD_KR_TUNE_RECAL_IN msgrequest */ 18899 #define MC_CMD_KR_TUNE_RECAL_IN_LEN 4 18900 /* Requested operation */ 18901 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_OP_OFST 0 18902 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_OP_LEN 1 18903 /* Align the arguments to 32 bits */ 18904 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_RSVD_OFST 1 18905 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_RSVD_LEN 3 18906 18907 /* MC_CMD_KR_TUNE_RECAL_OUT msgresponse */ 18908 #define MC_CMD_KR_TUNE_RECAL_OUT_LEN 0 18909 18910 /* MC_CMD_KR_TUNE_START_EYE_PLOT_IN msgrequest */ 18911 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_LEN 8 18912 /* Requested operation */ 18913 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_OP_OFST 0 18914 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_OP_LEN 1 18915 /* Align the arguments to 32 bits */ 18916 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_RSVD_OFST 1 18917 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_RSVD_LEN 3 18918 /* Port-relative lane to scan eye on */ 18919 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_LANE_OFST 4 18920 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_LANE_LEN 4 18921 18922 /* MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN msgrequest */ 18923 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LEN 12 18924 /* Requested operation */ 18925 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_OP_OFST 0 18926 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_OP_LEN 1 18927 /* Align the arguments to 32 bits */ 18928 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_RSVD_OFST 1 18929 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_RSVD_LEN 3 18930 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_OFST 4 18931 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_LEN 4 18932 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_NUM_OFST 4 18933 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_NUM_LBN 0 18934 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_NUM_WIDTH 8 18935 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_ABS_REL_OFST 4 18936 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_ABS_REL_LBN 31 18937 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_ABS_REL_WIDTH 1 18938 /* Scan duration / cycle count */ 18939 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_BER_OFST 8 18940 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_BER_LEN 4 18941 18942 /* MC_CMD_KR_TUNE_START_EYE_PLOT_OUT msgresponse */ 18943 #define MC_CMD_KR_TUNE_START_EYE_PLOT_OUT_LEN 0 18944 18945 /* MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN msgrequest */ 18946 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_LEN 4 18947 /* Requested operation */ 18948 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_OP_OFST 0 18949 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_OP_LEN 1 18950 /* Align the arguments to 32 bits */ 18951 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_RSVD_OFST 1 18952 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_RSVD_LEN 3 18953 18954 /* MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT msgresponse */ 18955 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_LENMIN 0 18956 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_LENMAX 252 18957 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_LENMAX_MCDI2 1020 18958 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_LEN(num) (0+2*(num)) 18959 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_NUM(len) (((len)-0)/2) 18960 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_OFST 0 18961 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_LEN 2 18962 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MINNUM 0 18963 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MAXNUM 126 18964 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MAXNUM_MCDI2 510 18965 18966 /* MC_CMD_KR_TUNE_READ_FOM_IN msgrequest */ 18967 #define MC_CMD_KR_TUNE_READ_FOM_IN_LEN 8 18968 /* Requested operation */ 18969 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_OP_OFST 0 18970 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_OP_LEN 1 18971 /* Align the arguments to 32 bits */ 18972 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_RSVD_OFST 1 18973 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_RSVD_LEN 3 18974 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_OFST 4 18975 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_LEN 4 18976 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_NUM_OFST 4 18977 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_NUM_LBN 0 18978 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_NUM_WIDTH 8 18979 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_ABS_REL_OFST 4 18980 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_ABS_REL_LBN 31 18981 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_ABS_REL_WIDTH 1 18982 18983 /* MC_CMD_KR_TUNE_READ_FOM_OUT msgresponse */ 18984 #define MC_CMD_KR_TUNE_READ_FOM_OUT_LEN 4 18985 #define MC_CMD_KR_TUNE_READ_FOM_OUT_FOM_OFST 0 18986 #define MC_CMD_KR_TUNE_READ_FOM_OUT_FOM_LEN 4 18987 18988 /* MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN msgrequest */ 18989 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_LEN 8 18990 /* Requested operation */ 18991 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_OP_OFST 0 18992 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_OP_LEN 1 18993 /* Align the arguments to 32 bits */ 18994 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_RSVD_OFST 1 18995 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_RSVD_LEN 3 18996 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_RUN_OFST 4 18997 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_RUN_LEN 4 18998 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_STOP 0x0 /* enum */ 18999 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_START 0x1 /* enum */ 19000 19001 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN msgrequest */ 19002 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_LEN 28 19003 /* Requested operation */ 19004 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_OP_OFST 0 19005 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_OP_LEN 1 19006 /* Align the arguments to 32 bits */ 19007 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_RSVD_OFST 1 19008 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_RSVD_LEN 3 19009 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_LANE_OFST 4 19010 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_LANE_LEN 4 19011 /* Set INITIALIZE state */ 19012 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_INITIALIZE_OFST 8 19013 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_INITIALIZE_LEN 4 19014 /* Set PRESET state */ 19015 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_PRESET_OFST 12 19016 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_PRESET_LEN 4 19017 /* C(-1) request */ 19018 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CM1_OFST 16 19019 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CM1_LEN 4 19020 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_REQ_HOLD 0x0 /* enum */ 19021 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_REQ_INCREMENT 0x1 /* enum */ 19022 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_REQ_DECREMENT 0x2 /* enum */ 19023 /* C(0) request */ 19024 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_C0_OFST 20 19025 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_C0_LEN 4 19026 /* Enum values, see field(s): */ 19027 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN/CM1 */ 19028 /* C(+1) request */ 19029 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CP1_OFST 24 19030 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CP1_LEN 4 19031 /* Enum values, see field(s): */ 19032 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN/CM1 */ 19033 19034 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT msgresponse */ 19035 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_LEN 24 19036 /* C(-1) status */ 19037 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_STATUS_OFST 0 19038 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_STATUS_LEN 4 19039 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_STATUS_NOT_UPDATED 0x0 /* enum */ 19040 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_STATUS_UPDATED 0x1 /* enum */ 19041 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_STATUS_MINIMUM 0x2 /* enum */ 19042 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_STATUS_MAXIMUM 0x3 /* enum */ 19043 /* C(0) status */ 19044 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_STATUS_OFST 4 19045 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_STATUS_LEN 4 19046 /* Enum values, see field(s): */ 19047 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN/CM1 */ 19048 /* C(+1) status */ 19049 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_STATUS_OFST 8 19050 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_STATUS_LEN 4 19051 /* Enum values, see field(s): */ 19052 /* MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN/CM1 */ 19053 /* C(-1) value */ 19054 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_VALUE_OFST 12 19055 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_VALUE_LEN 4 19056 /* C(0) value */ 19057 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_VALUE_OFST 16 19058 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_VALUE_LEN 4 19059 /* C(+1) status */ 19060 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_VALUE_OFST 20 19061 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_VALUE_LEN 4 19062 19063 19064 /***********************************/ 19065 /* MC_CMD_PCIE_TUNE 19066 * Get or set PCIE Serdes RXEQ and TX Driver settings 19067 */ 19068 #define MC_CMD_PCIE_TUNE 0xf2 19069 #undef MC_CMD_0xf2_PRIVILEGE_CTG 19070 19071 #define MC_CMD_0xf2_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 19072 19073 /* MC_CMD_PCIE_TUNE_IN msgrequest */ 19074 #define MC_CMD_PCIE_TUNE_IN_LENMIN 4 19075 #define MC_CMD_PCIE_TUNE_IN_LENMAX 252 19076 #define MC_CMD_PCIE_TUNE_IN_LENMAX_MCDI2 1020 19077 #define MC_CMD_PCIE_TUNE_IN_LEN(num) (4+4*(num)) 19078 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_NUM(len) (((len)-4)/4) 19079 /* Requested operation */ 19080 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_OP_OFST 0 19081 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_OP_LEN 1 19082 /* enum: Get current RXEQ settings */ 19083 #define MC_CMD_PCIE_TUNE_IN_RXEQ_GET 0x0 19084 /* enum: Override RXEQ settings */ 19085 #define MC_CMD_PCIE_TUNE_IN_RXEQ_SET 0x1 19086 /* enum: Get current TX Driver settings */ 19087 #define MC_CMD_PCIE_TUNE_IN_TXEQ_GET 0x2 19088 /* enum: Override TX Driver settings */ 19089 #define MC_CMD_PCIE_TUNE_IN_TXEQ_SET 0x3 19090 /* enum: Start PCIe Serdes Eye diagram plot on a given lane. */ 19091 #define MC_CMD_PCIE_TUNE_IN_START_EYE_PLOT 0x5 19092 /* enum: Poll PCIe Serdes Eye diagram plot. Returns one row of BER data. The 19093 * caller should call this command repeatedly after starting eye plot, until no 19094 * more data is returned. 19095 */ 19096 #define MC_CMD_PCIE_TUNE_IN_POLL_EYE_PLOT 0x6 19097 /* enum: Enable the SERDES BIST and set it to generate a 200MHz square wave */ 19098 #define MC_CMD_PCIE_TUNE_IN_BIST_SQUARE_WAVE 0x7 19099 /* Align the arguments to 32 bits */ 19100 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_RSVD_OFST 1 19101 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_RSVD_LEN 3 19102 /* Arguments specific to the operation */ 19103 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_OFST 4 19104 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_LEN 4 19105 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_MINNUM 0 19106 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_MAXNUM 62 19107 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_MAXNUM_MCDI2 254 19108 19109 /* MC_CMD_PCIE_TUNE_OUT msgresponse */ 19110 #define MC_CMD_PCIE_TUNE_OUT_LEN 0 19111 19112 /* MC_CMD_PCIE_TUNE_RXEQ_GET_IN msgrequest */ 19113 #define MC_CMD_PCIE_TUNE_RXEQ_GET_IN_LEN 4 19114 /* Requested operation */ 19115 #define MC_CMD_PCIE_TUNE_RXEQ_GET_IN_PCIE_TUNE_OP_OFST 0 19116 #define MC_CMD_PCIE_TUNE_RXEQ_GET_IN_PCIE_TUNE_OP_LEN 1 19117 /* Align the arguments to 32 bits */ 19118 #define MC_CMD_PCIE_TUNE_RXEQ_GET_IN_PCIE_TUNE_RSVD_OFST 1 19119 #define MC_CMD_PCIE_TUNE_RXEQ_GET_IN_PCIE_TUNE_RSVD_LEN 3 19120 19121 /* MC_CMD_PCIE_TUNE_RXEQ_GET_OUT msgresponse */ 19122 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LENMIN 4 19123 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LENMAX 252 19124 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LENMAX_MCDI2 1020 19125 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LEN(num) (0+4*(num)) 19126 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4) 19127 /* RXEQ Parameter */ 19128 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_OFST 0 19129 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_LEN 4 19130 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_MINNUM 1 19131 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_MAXNUM 63 19132 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_MAXNUM_MCDI2 255 19133 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_ID_OFST 0 19134 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_ID_LBN 0 19135 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_ID_WIDTH 8 19136 /* enum: Attenuation (0-15) */ 19137 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_ATT 0x0 19138 /* enum: CTLE Boost (0-15) */ 19139 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_BOOST 0x1 19140 /* enum: DFE Tap1 (0 - max negative, 64 - zero, 127 - max positive) */ 19141 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_TAP1 0x2 19142 /* enum: DFE Tap2 (0 - max negative, 32 - zero, 63 - max positive) */ 19143 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_TAP2 0x3 19144 /* enum: DFE Tap3 (0 - max negative, 32 - zero, 63 - max positive) */ 19145 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_TAP3 0x4 19146 /* enum: DFE Tap4 (0 - max negative, 32 - zero, 63 - max positive) */ 19147 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_TAP4 0x5 19148 /* enum: DFE Tap5 (0 - max negative, 32 - zero, 63 - max positive) */ 19149 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_TAP5 0x6 19150 /* enum: DFE DLev */ 19151 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_DFE_DLEV 0x7 19152 /* enum: Figure of Merit */ 19153 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_FOM 0x8 19154 /* enum: CTLE EQ Capacitor (HF Gain) */ 19155 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_CTLE_EQC 0x9 19156 /* enum: CTLE EQ Resistor (DC Gain) */ 19157 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_CTLE_EQRES 0xa 19158 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_LANE_OFST 0 19159 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_LANE_LBN 8 19160 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_LANE_WIDTH 5 19161 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_0 0x0 /* enum */ 19162 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_1 0x1 /* enum */ 19163 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_2 0x2 /* enum */ 19164 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_3 0x3 /* enum */ 19165 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_4 0x4 /* enum */ 19166 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_5 0x5 /* enum */ 19167 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_6 0x6 /* enum */ 19168 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_7 0x7 /* enum */ 19169 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_8 0x8 /* enum */ 19170 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_9 0x9 /* enum */ 19171 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_10 0xa /* enum */ 19172 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_11 0xb /* enum */ 19173 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_12 0xc /* enum */ 19174 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_13 0xd /* enum */ 19175 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_14 0xe /* enum */ 19176 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_15 0xf /* enum */ 19177 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_LANE_ALL 0x10 /* enum */ 19178 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_OFST 0 19179 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_LBN 13 19180 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_WIDTH 1 19181 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_RESERVED_OFST 0 19182 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_RESERVED_LBN 14 19183 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_RESERVED_WIDTH 10 19184 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_OFST 0 19185 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_LBN 24 19186 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_CURRENT_WIDTH 8 19187 19188 /* MC_CMD_PCIE_TUNE_RXEQ_SET_IN msgrequest */ 19189 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_LENMIN 8 19190 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_LENMAX 252 19191 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_LENMAX_MCDI2 1020 19192 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_LEN(num) (4+4*(num)) 19193 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_NUM(len) (((len)-4)/4) 19194 /* Requested operation */ 19195 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PCIE_TUNE_OP_OFST 0 19196 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PCIE_TUNE_OP_LEN 1 19197 /* Align the arguments to 32 bits */ 19198 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PCIE_TUNE_RSVD_OFST 1 19199 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PCIE_TUNE_RSVD_LEN 3 19200 /* RXEQ Parameter */ 19201 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_OFST 4 19202 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_LEN 4 19203 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_MINNUM 1 19204 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_MAXNUM 62 19205 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_MAXNUM_MCDI2 254 19206 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_ID_OFST 4 19207 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_ID_LBN 0 19208 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_ID_WIDTH 8 19209 /* Enum values, see field(s): */ 19210 /* MC_CMD_PCIE_TUNE_RXEQ_GET_OUT/PARAM_ID */ 19211 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_LANE_OFST 4 19212 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_LANE_LBN 8 19213 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_LANE_WIDTH 5 19214 /* Enum values, see field(s): */ 19215 /* MC_CMD_PCIE_TUNE_RXEQ_GET_OUT/PARAM_LANE */ 19216 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_OFST 4 19217 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_LBN 13 19218 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_WIDTH 1 19219 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED_OFST 4 19220 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED_LBN 14 19221 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED_WIDTH 2 19222 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_INITIAL_OFST 4 19223 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_INITIAL_LBN 16 19224 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_INITIAL_WIDTH 8 19225 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED2_OFST 4 19226 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED2_LBN 24 19227 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_RESERVED2_WIDTH 8 19228 19229 /* MC_CMD_PCIE_TUNE_RXEQ_SET_OUT msgresponse */ 19230 #define MC_CMD_PCIE_TUNE_RXEQ_SET_OUT_LEN 0 19231 19232 /* MC_CMD_PCIE_TUNE_TXEQ_GET_IN msgrequest */ 19233 #define MC_CMD_PCIE_TUNE_TXEQ_GET_IN_LEN 4 19234 /* Requested operation */ 19235 #define MC_CMD_PCIE_TUNE_TXEQ_GET_IN_PCIE_TUNE_OP_OFST 0 19236 #define MC_CMD_PCIE_TUNE_TXEQ_GET_IN_PCIE_TUNE_OP_LEN 1 19237 /* Align the arguments to 32 bits */ 19238 #define MC_CMD_PCIE_TUNE_TXEQ_GET_IN_PCIE_TUNE_RSVD_OFST 1 19239 #define MC_CMD_PCIE_TUNE_TXEQ_GET_IN_PCIE_TUNE_RSVD_LEN 3 19240 19241 /* MC_CMD_PCIE_TUNE_TXEQ_GET_OUT msgresponse */ 19242 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_LENMIN 4 19243 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_LENMAX 252 19244 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_LENMAX_MCDI2 1020 19245 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_LEN(num) (0+4*(num)) 19246 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4) 19247 /* RXEQ Parameter */ 19248 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_OFST 0 19249 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_LEN 4 19250 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_MINNUM 1 19251 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_MAXNUM 63 19252 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_MAXNUM_MCDI2 255 19253 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_ID_OFST 0 19254 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_ID_LBN 0 19255 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_ID_WIDTH 8 19256 /* enum: TxMargin (PIPE) */ 19257 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_TXMARGIN 0x0 19258 /* enum: TxSwing (PIPE) */ 19259 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_TXSWING 0x1 19260 /* enum: De-emphasis coefficient C(-1) (PIPE) */ 19261 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_CM1 0x2 19262 /* enum: De-emphasis coefficient C(0) (PIPE) */ 19263 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_C0 0x3 19264 /* enum: De-emphasis coefficient C(+1) (PIPE) */ 19265 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_CP1 0x4 19266 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_LANE_OFST 0 19267 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_LANE_LBN 8 19268 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_LANE_WIDTH 4 19269 /* Enum values, see field(s): */ 19270 /* MC_CMD_PCIE_TUNE_RXEQ_GET_OUT/PARAM_LANE */ 19271 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_RESERVED_OFST 0 19272 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_RESERVED_LBN 12 19273 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_RESERVED_WIDTH 12 19274 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_CURRENT_OFST 0 19275 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_CURRENT_LBN 24 19276 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_CURRENT_WIDTH 8 19277 19278 /* MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN msgrequest */ 19279 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_LEN 8 19280 /* Requested operation */ 19281 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_PCIE_TUNE_OP_OFST 0 19282 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_PCIE_TUNE_OP_LEN 1 19283 /* Align the arguments to 32 bits */ 19284 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_PCIE_TUNE_RSVD_OFST 1 19285 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_PCIE_TUNE_RSVD_LEN 3 19286 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_LANE_OFST 4 19287 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_IN_LANE_LEN 4 19288 19289 /* MC_CMD_PCIE_TUNE_START_EYE_PLOT_OUT msgresponse */ 19290 #define MC_CMD_PCIE_TUNE_START_EYE_PLOT_OUT_LEN 0 19291 19292 /* MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN msgrequest */ 19293 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN_LEN 4 19294 /* Requested operation */ 19295 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN_PCIE_TUNE_OP_OFST 0 19296 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN_PCIE_TUNE_OP_LEN 1 19297 /* Align the arguments to 32 bits */ 19298 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN_PCIE_TUNE_RSVD_OFST 1 19299 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_IN_PCIE_TUNE_RSVD_LEN 3 19300 19301 /* MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT msgresponse */ 19302 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_LENMIN 0 19303 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_LENMAX 252 19304 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_LENMAX_MCDI2 1020 19305 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_LEN(num) (0+2*(num)) 19306 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_NUM(len) (((len)-0)/2) 19307 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_OFST 0 19308 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_LEN 2 19309 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MINNUM 0 19310 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MAXNUM 126 19311 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_MAXNUM_MCDI2 510 19312 19313 /* MC_CMD_PCIE_TUNE_BIST_SQUARE_WAVE_IN msgrequest */ 19314 #define MC_CMD_PCIE_TUNE_BIST_SQUARE_WAVE_IN_LEN 0 19315 19316 /* MC_CMD_PCIE_TUNE_BIST_SQUARE_WAVE_OUT msgrequest */ 19317 #define MC_CMD_PCIE_TUNE_BIST_SQUARE_WAVE_OUT_LEN 0 19318 19319 19320 /***********************************/ 19321 /* MC_CMD_LICENSING 19322 * Operations on the NVRAM_PARTITION_TYPE_LICENSE application license partition 19323 * - not used for V3 licensing 19324 */ 19325 #define MC_CMD_LICENSING 0xf3 19326 #undef MC_CMD_0xf3_PRIVILEGE_CTG 19327 19328 #define MC_CMD_0xf3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19329 19330 /* MC_CMD_LICENSING_IN msgrequest */ 19331 #define MC_CMD_LICENSING_IN_LEN 4 19332 /* identifies the type of operation requested */ 19333 #define MC_CMD_LICENSING_IN_OP_OFST 0 19334 #define MC_CMD_LICENSING_IN_OP_LEN 4 19335 /* enum: re-read and apply licenses after a license key partition update; note 19336 * that this operation returns a zero-length response 19337 */ 19338 #define MC_CMD_LICENSING_IN_OP_UPDATE_LICENSE 0x0 19339 /* enum: report counts of installed licenses */ 19340 #define MC_CMD_LICENSING_IN_OP_GET_KEY_STATS 0x1 19341 19342 /* MC_CMD_LICENSING_OUT msgresponse */ 19343 #define MC_CMD_LICENSING_OUT_LEN 28 19344 /* count of application keys which are valid */ 19345 #define MC_CMD_LICENSING_OUT_VALID_APP_KEYS_OFST 0 19346 #define MC_CMD_LICENSING_OUT_VALID_APP_KEYS_LEN 4 19347 /* sum of UNVERIFIABLE_APP_KEYS + WRONG_NODE_APP_KEYS (for compatibility with 19348 * MC_CMD_FC_OP_LICENSE) 19349 */ 19350 #define MC_CMD_LICENSING_OUT_INVALID_APP_KEYS_OFST 4 19351 #define MC_CMD_LICENSING_OUT_INVALID_APP_KEYS_LEN 4 19352 /* count of application keys which are invalid due to being blacklisted */ 19353 #define MC_CMD_LICENSING_OUT_BLACKLISTED_APP_KEYS_OFST 8 19354 #define MC_CMD_LICENSING_OUT_BLACKLISTED_APP_KEYS_LEN 4 19355 /* count of application keys which are invalid due to being unverifiable */ 19356 #define MC_CMD_LICENSING_OUT_UNVERIFIABLE_APP_KEYS_OFST 12 19357 #define MC_CMD_LICENSING_OUT_UNVERIFIABLE_APP_KEYS_LEN 4 19358 /* count of application keys which are invalid due to being for the wrong node 19359 */ 19360 #define MC_CMD_LICENSING_OUT_WRONG_NODE_APP_KEYS_OFST 16 19361 #define MC_CMD_LICENSING_OUT_WRONG_NODE_APP_KEYS_LEN 4 19362 /* licensing state (for diagnostics; the exact meaning of the bits in this 19363 * field are private to the firmware) 19364 */ 19365 #define MC_CMD_LICENSING_OUT_LICENSING_STATE_OFST 20 19366 #define MC_CMD_LICENSING_OUT_LICENSING_STATE_LEN 4 19367 /* licensing subsystem self-test report (for manftest) */ 19368 #define MC_CMD_LICENSING_OUT_LICENSING_SELF_TEST_OFST 24 19369 #define MC_CMD_LICENSING_OUT_LICENSING_SELF_TEST_LEN 4 19370 /* enum: licensing subsystem self-test failed */ 19371 #define MC_CMD_LICENSING_OUT_SELF_TEST_FAIL 0x0 19372 /* enum: licensing subsystem self-test passed */ 19373 #define MC_CMD_LICENSING_OUT_SELF_TEST_PASS 0x1 19374 19375 19376 /***********************************/ 19377 /* MC_CMD_LICENSING_V3 19378 * Operations on the NVRAM_PARTITION_TYPE_LICENSE application license partition 19379 * - V3 licensing (Medford) 19380 */ 19381 #define MC_CMD_LICENSING_V3 0xd0 19382 #undef MC_CMD_0xd0_PRIVILEGE_CTG 19383 19384 #define MC_CMD_0xd0_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19385 19386 /* MC_CMD_LICENSING_V3_IN msgrequest */ 19387 #define MC_CMD_LICENSING_V3_IN_LEN 4 19388 /* identifies the type of operation requested */ 19389 #define MC_CMD_LICENSING_V3_IN_OP_OFST 0 19390 #define MC_CMD_LICENSING_V3_IN_OP_LEN 4 19391 /* enum: re-read and apply licenses after a license key partition update; note 19392 * that this operation returns a zero-length response 19393 */ 19394 #define MC_CMD_LICENSING_V3_IN_OP_UPDATE_LICENSE 0x0 19395 /* enum: report counts of installed licenses Returns EAGAIN if license 19396 * processing (updating) has been started but not yet completed. 19397 */ 19398 #define MC_CMD_LICENSING_V3_IN_OP_REPORT_LICENSE 0x1 19399 19400 /* MC_CMD_LICENSING_V3_OUT msgresponse */ 19401 #define MC_CMD_LICENSING_V3_OUT_LEN 88 19402 /* count of keys which are valid */ 19403 #define MC_CMD_LICENSING_V3_OUT_VALID_KEYS_OFST 0 19404 #define MC_CMD_LICENSING_V3_OUT_VALID_KEYS_LEN 4 19405 /* sum of UNVERIFIABLE_KEYS + WRONG_NODE_KEYS (for compatibility with 19406 * MC_CMD_FC_OP_LICENSE) 19407 */ 19408 #define MC_CMD_LICENSING_V3_OUT_INVALID_KEYS_OFST 4 19409 #define MC_CMD_LICENSING_V3_OUT_INVALID_KEYS_LEN 4 19410 /* count of keys which are invalid due to being unverifiable */ 19411 #define MC_CMD_LICENSING_V3_OUT_UNVERIFIABLE_KEYS_OFST 8 19412 #define MC_CMD_LICENSING_V3_OUT_UNVERIFIABLE_KEYS_LEN 4 19413 /* count of keys which are invalid due to being for the wrong node */ 19414 #define MC_CMD_LICENSING_V3_OUT_WRONG_NODE_KEYS_OFST 12 19415 #define MC_CMD_LICENSING_V3_OUT_WRONG_NODE_KEYS_LEN 4 19416 /* licensing state (for diagnostics; the exact meaning of the bits in this 19417 * field are private to the firmware) 19418 */ 19419 #define MC_CMD_LICENSING_V3_OUT_LICENSING_STATE_OFST 16 19420 #define MC_CMD_LICENSING_V3_OUT_LICENSING_STATE_LEN 4 19421 /* licensing subsystem self-test report (for manftest) */ 19422 #define MC_CMD_LICENSING_V3_OUT_LICENSING_SELF_TEST_OFST 20 19423 #define MC_CMD_LICENSING_V3_OUT_LICENSING_SELF_TEST_LEN 4 19424 /* enum: licensing subsystem self-test failed */ 19425 #define MC_CMD_LICENSING_V3_OUT_SELF_TEST_FAIL 0x0 19426 /* enum: licensing subsystem self-test passed */ 19427 #define MC_CMD_LICENSING_V3_OUT_SELF_TEST_PASS 0x1 19428 /* bitmask of licensed applications */ 19429 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_OFST 24 19430 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LEN 8 19431 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_OFST 24 19432 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_OFST 28 19433 /* reserved for future use */ 19434 #define MC_CMD_LICENSING_V3_OUT_RESERVED_0_OFST 32 19435 #define MC_CMD_LICENSING_V3_OUT_RESERVED_0_LEN 24 19436 /* bitmask of licensed features */ 19437 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_OFST 56 19438 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LEN 8 19439 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_OFST 56 19440 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_OFST 60 19441 /* reserved for future use */ 19442 #define MC_CMD_LICENSING_V3_OUT_RESERVED_1_OFST 64 19443 #define MC_CMD_LICENSING_V3_OUT_RESERVED_1_LEN 24 19444 19445 19446 /***********************************/ 19447 /* MC_CMD_LICENSING_GET_ID_V3 19448 * Get ID and type from the NVRAM_PARTITION_TYPE_LICENSE application license 19449 * partition - V3 licensing (Medford) 19450 */ 19451 #define MC_CMD_LICENSING_GET_ID_V3 0xd1 19452 #undef MC_CMD_0xd1_PRIVILEGE_CTG 19453 19454 #define MC_CMD_0xd1_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19455 19456 /* MC_CMD_LICENSING_GET_ID_V3_IN msgrequest */ 19457 #define MC_CMD_LICENSING_GET_ID_V3_IN_LEN 0 19458 19459 /* MC_CMD_LICENSING_GET_ID_V3_OUT msgresponse */ 19460 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LENMIN 8 19461 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LENMAX 252 19462 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LENMAX_MCDI2 1020 19463 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LEN(num) (8+1*(num)) 19464 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_NUM(len) (((len)-8)/1) 19465 /* type of license (eg 3) */ 19466 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_TYPE_OFST 0 19467 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_TYPE_LEN 4 19468 /* length of the license ID (in bytes) */ 19469 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_LENGTH_OFST 4 19470 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_LENGTH_LEN 4 19471 /* the unique license ID of the adapter */ 19472 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_OFST 8 19473 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_LEN 1 19474 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_MINNUM 0 19475 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_MAXNUM 244 19476 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_MAXNUM_MCDI2 1012 19477 19478 19479 /***********************************/ 19480 /* MC_CMD_MC2MC_PROXY 19481 * Execute an arbitrary MCDI command on the slave MC of a dual-core device. 19482 * This will fail on a single-core system. 19483 */ 19484 #define MC_CMD_MC2MC_PROXY 0xf4 19485 #undef MC_CMD_0xf4_PRIVILEGE_CTG 19486 19487 #define MC_CMD_0xf4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19488 19489 /* MC_CMD_MC2MC_PROXY_IN msgrequest */ 19490 #define MC_CMD_MC2MC_PROXY_IN_LEN 0 19491 19492 /* MC_CMD_MC2MC_PROXY_OUT msgresponse */ 19493 #define MC_CMD_MC2MC_PROXY_OUT_LEN 0 19494 19495 19496 /***********************************/ 19497 /* MC_CMD_GET_LICENSED_APP_STATE 19498 * Query the state of an individual licensed application. (Note that the actual 19499 * state may be invalidated by the MC_CMD_LICENSING OP_UPDATE_LICENSE operation 19500 * or a reboot of the MC.) Not used for V3 licensing 19501 */ 19502 #define MC_CMD_GET_LICENSED_APP_STATE 0xf5 19503 #undef MC_CMD_0xf5_PRIVILEGE_CTG 19504 19505 #define MC_CMD_0xf5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19506 19507 /* MC_CMD_GET_LICENSED_APP_STATE_IN msgrequest */ 19508 #define MC_CMD_GET_LICENSED_APP_STATE_IN_LEN 4 19509 /* application ID to query (LICENSED_APP_ID_xxx) */ 19510 #define MC_CMD_GET_LICENSED_APP_STATE_IN_APP_ID_OFST 0 19511 #define MC_CMD_GET_LICENSED_APP_STATE_IN_APP_ID_LEN 4 19512 19513 /* MC_CMD_GET_LICENSED_APP_STATE_OUT msgresponse */ 19514 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_LEN 4 19515 /* state of this application */ 19516 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_STATE_OFST 0 19517 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_STATE_LEN 4 19518 /* enum: no (or invalid) license is present for the application */ 19519 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_NOT_LICENSED 0x0 19520 /* enum: a valid license is present for the application */ 19521 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_LICENSED 0x1 19522 19523 19524 /***********************************/ 19525 /* MC_CMD_GET_LICENSED_V3_APP_STATE 19526 * Query the state of an individual licensed application. (Note that the actual 19527 * state may be invalidated by the MC_CMD_LICENSING_V3 OP_UPDATE_LICENSE 19528 * operation or a reboot of the MC.) Used for V3 licensing (Medford) 19529 */ 19530 #define MC_CMD_GET_LICENSED_V3_APP_STATE 0xd2 19531 #undef MC_CMD_0xd2_PRIVILEGE_CTG 19532 19533 #define MC_CMD_0xd2_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19534 19535 /* MC_CMD_GET_LICENSED_V3_APP_STATE_IN msgrequest */ 19536 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_LEN 8 19537 /* application ID to query (LICENSED_V3_APPS_xxx) expressed as a single bit 19538 * mask 19539 */ 19540 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_OFST 0 19541 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LEN 8 19542 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_LO_OFST 0 19543 #define MC_CMD_GET_LICENSED_V3_APP_STATE_IN_APP_ID_HI_OFST 4 19544 19545 /* MC_CMD_GET_LICENSED_V3_APP_STATE_OUT msgresponse */ 19546 #define MC_CMD_GET_LICENSED_V3_APP_STATE_OUT_LEN 4 19547 /* state of this application */ 19548 #define MC_CMD_GET_LICENSED_V3_APP_STATE_OUT_STATE_OFST 0 19549 #define MC_CMD_GET_LICENSED_V3_APP_STATE_OUT_STATE_LEN 4 19550 /* enum: no (or invalid) license is present for the application */ 19551 #define MC_CMD_GET_LICENSED_V3_APP_STATE_OUT_NOT_LICENSED 0x0 19552 /* enum: a valid license is present for the application */ 19553 #define MC_CMD_GET_LICENSED_V3_APP_STATE_OUT_LICENSED 0x1 19554 19555 19556 /***********************************/ 19557 /* MC_CMD_GET_LICENSED_V3_FEATURE_STATES 19558 * Query the state of an one or more licensed features. (Note that the actual 19559 * state may be invalidated by the MC_CMD_LICENSING_V3 OP_UPDATE_LICENSE 19560 * operation or a reboot of the MC.) Used for V3 licensing (Medford) 19561 */ 19562 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES 0xd3 19563 #undef MC_CMD_0xd3_PRIVILEGE_CTG 19564 19565 #define MC_CMD_0xd3_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19566 19567 /* MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN msgrequest */ 19568 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_LEN 8 19569 /* features to query (LICENSED_V3_FEATURES_xxx) expressed as a mask with one or 19570 * more bits set 19571 */ 19572 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_OFST 0 19573 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LEN 8 19574 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_LO_OFST 0 19575 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_IN_FEATURES_HI_OFST 4 19576 19577 /* MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT msgresponse */ 19578 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_LEN 8 19579 /* states of these features - bit set for licensed, clear for not licensed */ 19580 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_OFST 0 19581 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LEN 8 19582 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_LO_OFST 0 19583 #define MC_CMD_GET_LICENSED_V3_FEATURE_STATES_OUT_STATES_HI_OFST 4 19584 19585 19586 /***********************************/ 19587 /* MC_CMD_LICENSED_APP_OP 19588 * Perform an action for an individual licensed application - not used for V3 19589 * licensing. 19590 */ 19591 #define MC_CMD_LICENSED_APP_OP 0xf6 19592 #undef MC_CMD_0xf6_PRIVILEGE_CTG 19593 19594 #define MC_CMD_0xf6_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19595 19596 /* MC_CMD_LICENSED_APP_OP_IN msgrequest */ 19597 #define MC_CMD_LICENSED_APP_OP_IN_LENMIN 8 19598 #define MC_CMD_LICENSED_APP_OP_IN_LENMAX 252 19599 #define MC_CMD_LICENSED_APP_OP_IN_LENMAX_MCDI2 1020 19600 #define MC_CMD_LICENSED_APP_OP_IN_LEN(num) (8+4*(num)) 19601 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_NUM(len) (((len)-8)/4) 19602 /* application ID */ 19603 #define MC_CMD_LICENSED_APP_OP_IN_APP_ID_OFST 0 19604 #define MC_CMD_LICENSED_APP_OP_IN_APP_ID_LEN 4 19605 /* the type of operation requested */ 19606 #define MC_CMD_LICENSED_APP_OP_IN_OP_OFST 4 19607 #define MC_CMD_LICENSED_APP_OP_IN_OP_LEN 4 19608 /* enum: validate application */ 19609 #define MC_CMD_LICENSED_APP_OP_IN_OP_VALIDATE 0x0 19610 /* enum: mask application */ 19611 #define MC_CMD_LICENSED_APP_OP_IN_OP_MASK 0x1 19612 /* arguments specific to this particular operation */ 19613 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_OFST 8 19614 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_LEN 4 19615 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_MINNUM 0 19616 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_MAXNUM 61 19617 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_MAXNUM_MCDI2 253 19618 19619 /* MC_CMD_LICENSED_APP_OP_OUT msgresponse */ 19620 #define MC_CMD_LICENSED_APP_OP_OUT_LENMIN 0 19621 #define MC_CMD_LICENSED_APP_OP_OUT_LENMAX 252 19622 #define MC_CMD_LICENSED_APP_OP_OUT_LENMAX_MCDI2 1020 19623 #define MC_CMD_LICENSED_APP_OP_OUT_LEN(num) (0+4*(num)) 19624 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_NUM(len) (((len)-0)/4) 19625 /* result specific to this particular operation */ 19626 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_OFST 0 19627 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_LEN 4 19628 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_MINNUM 0 19629 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_MAXNUM 63 19630 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_MAXNUM_MCDI2 255 19631 19632 /* MC_CMD_LICENSED_APP_OP_VALIDATE_IN msgrequest */ 19633 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_LEN 72 19634 /* application ID */ 19635 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_APP_ID_OFST 0 19636 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_APP_ID_LEN 4 19637 /* the type of operation requested */ 19638 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_OP_OFST 4 19639 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_OP_LEN 4 19640 /* validation challenge */ 19641 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_CHALLENGE_OFST 8 19642 #define MC_CMD_LICENSED_APP_OP_VALIDATE_IN_CHALLENGE_LEN 64 19643 19644 /* MC_CMD_LICENSED_APP_OP_VALIDATE_OUT msgresponse */ 19645 #define MC_CMD_LICENSED_APP_OP_VALIDATE_OUT_LEN 68 19646 /* feature expiry (time_t) */ 19647 #define MC_CMD_LICENSED_APP_OP_VALIDATE_OUT_EXPIRY_OFST 0 19648 #define MC_CMD_LICENSED_APP_OP_VALIDATE_OUT_EXPIRY_LEN 4 19649 /* validation response */ 19650 #define MC_CMD_LICENSED_APP_OP_VALIDATE_OUT_RESPONSE_OFST 4 19651 #define MC_CMD_LICENSED_APP_OP_VALIDATE_OUT_RESPONSE_LEN 64 19652 19653 /* MC_CMD_LICENSED_APP_OP_MASK_IN msgrequest */ 19654 #define MC_CMD_LICENSED_APP_OP_MASK_IN_LEN 12 19655 /* application ID */ 19656 #define MC_CMD_LICENSED_APP_OP_MASK_IN_APP_ID_OFST 0 19657 #define MC_CMD_LICENSED_APP_OP_MASK_IN_APP_ID_LEN 4 19658 /* the type of operation requested */ 19659 #define MC_CMD_LICENSED_APP_OP_MASK_IN_OP_OFST 4 19660 #define MC_CMD_LICENSED_APP_OP_MASK_IN_OP_LEN 4 19661 /* flag */ 19662 #define MC_CMD_LICENSED_APP_OP_MASK_IN_FLAG_OFST 8 19663 #define MC_CMD_LICENSED_APP_OP_MASK_IN_FLAG_LEN 4 19664 19665 /* MC_CMD_LICENSED_APP_OP_MASK_OUT msgresponse */ 19666 #define MC_CMD_LICENSED_APP_OP_MASK_OUT_LEN 0 19667 19668 19669 /***********************************/ 19670 /* MC_CMD_LICENSED_V3_VALIDATE_APP 19671 * Perform validation for an individual licensed application - V3 licensing 19672 * (Medford) 19673 */ 19674 #define MC_CMD_LICENSED_V3_VALIDATE_APP 0xd4 19675 #undef MC_CMD_0xd4_PRIVILEGE_CTG 19676 19677 #define MC_CMD_0xd4_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19678 19679 /* MC_CMD_LICENSED_V3_VALIDATE_APP_IN msgrequest */ 19680 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_LEN 56 19681 /* challenge for validation (384 bits) */ 19682 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_CHALLENGE_OFST 0 19683 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_CHALLENGE_LEN 48 19684 /* application ID expressed as a single bit mask */ 19685 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_OFST 48 19686 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LEN 8 19687 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_LO_OFST 48 19688 #define MC_CMD_LICENSED_V3_VALIDATE_APP_IN_APP_ID_HI_OFST 52 19689 19690 /* MC_CMD_LICENSED_V3_VALIDATE_APP_OUT msgresponse */ 19691 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_LEN 116 19692 /* validation response to challenge in the form of ECDSA signature consisting 19693 * of two 384-bit integers, r and s, in big-endian order. The signature signs a 19694 * SHA-384 digest of a message constructed from the concatenation of the input 19695 * message and the remaining fields of this output message, e.g. challenge[48 19696 * bytes] ... expiry_time[4 bytes] ... 19697 */ 19698 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_RESPONSE_OFST 0 19699 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_RESPONSE_LEN 96 19700 /* application expiry time */ 19701 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_TIME_OFST 96 19702 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_TIME_LEN 4 19703 /* application expiry units */ 19704 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_UNITS_OFST 100 19705 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_UNITS_LEN 4 19706 /* enum: expiry units are accounting units */ 19707 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_UNIT_ACC 0x0 19708 /* enum: expiry units are calendar days */ 19709 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_EXPIRY_UNIT_DAYS 0x1 19710 /* base MAC address of the NIC stored in NVRAM (note that this is a constant 19711 * value for a given NIC regardless which function is calling, effectively this 19712 * is PF0 base MAC address) 19713 */ 19714 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_BASE_MACADDR_OFST 104 19715 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_BASE_MACADDR_LEN 6 19716 /* MAC address of v-adaptor associated with the client. If no such v-adapator 19717 * exists, then the field is filled with 0xFF. 19718 */ 19719 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_VADAPTOR_MACADDR_OFST 110 19720 #define MC_CMD_LICENSED_V3_VALIDATE_APP_OUT_VADAPTOR_MACADDR_LEN 6 19721 19722 19723 /***********************************/ 19724 /* MC_CMD_LICENSED_V3_MASK_FEATURES 19725 * Mask features - V3 licensing (Medford) 19726 */ 19727 #define MC_CMD_LICENSED_V3_MASK_FEATURES 0xd5 19728 #undef MC_CMD_0xd5_PRIVILEGE_CTG 19729 19730 #define MC_CMD_0xd5_PRIVILEGE_CTG SRIOV_CTG_ADMIN 19731 19732 /* MC_CMD_LICENSED_V3_MASK_FEATURES_IN msgrequest */ 19733 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_LEN 12 19734 /* mask to be applied to features to be changed */ 19735 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_OFST 0 19736 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LEN 8 19737 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_LO_OFST 0 19738 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_MASK_HI_OFST 4 19739 /* whether to turn on or turn off the masked features */ 19740 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_FLAG_OFST 8 19741 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_FLAG_LEN 4 19742 /* enum: turn the features off */ 19743 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_OFF 0x0 19744 /* enum: turn the features back on */ 19745 #define MC_CMD_LICENSED_V3_MASK_FEATURES_IN_ON 0x1 19746 19747 /* MC_CMD_LICENSED_V3_MASK_FEATURES_OUT msgresponse */ 19748 #define MC_CMD_LICENSED_V3_MASK_FEATURES_OUT_LEN 0 19749 19750 19751 /***********************************/ 19752 /* MC_CMD_LICENSING_V3_TEMPORARY 19753 * Perform operations to support installation of a single temporary license in 19754 * the adapter, in addition to those found in the licensing partition. See 19755 * SF-116124-SW for an overview of how this could be used. The license is 19756 * stored in MC persistent data and so will survive a MC reboot, but will be 19757 * erased when the adapter is power cycled 19758 */ 19759 #define MC_CMD_LICENSING_V3_TEMPORARY 0xd6 19760 #undef MC_CMD_0xd6_PRIVILEGE_CTG 19761 19762 #define MC_CMD_0xd6_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 19763 19764 /* MC_CMD_LICENSING_V3_TEMPORARY_IN msgrequest */ 19765 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_LEN 4 19766 /* operation code */ 19767 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_OP_OFST 0 19768 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_OP_LEN 4 19769 /* enum: install a new license, overwriting any existing temporary license. 19770 * This is an asynchronous operation owing to the time taken to validate an 19771 * ECDSA license 19772 */ 19773 #define MC_CMD_LICENSING_V3_TEMPORARY_SET 0x0 19774 /* enum: clear the license immediately rather than waiting for the next power 19775 * cycle 19776 */ 19777 #define MC_CMD_LICENSING_V3_TEMPORARY_CLEAR 0x1 19778 /* enum: get the status of the asynchronous MC_CMD_LICENSING_V3_TEMPORARY_SET 19779 * operation 19780 */ 19781 #define MC_CMD_LICENSING_V3_TEMPORARY_STATUS 0x2 19782 19783 /* MC_CMD_LICENSING_V3_TEMPORARY_IN_SET msgrequest */ 19784 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_SET_LEN 164 19785 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_SET_OP_OFST 0 19786 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_SET_OP_LEN 4 19787 /* ECDSA license and signature */ 19788 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_SET_LICENSE_OFST 4 19789 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_SET_LICENSE_LEN 160 19790 19791 /* MC_CMD_LICENSING_V3_TEMPORARY_IN_CLEAR msgrequest */ 19792 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_CLEAR_LEN 4 19793 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_CLEAR_OP_OFST 0 19794 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_CLEAR_OP_LEN 4 19795 19796 /* MC_CMD_LICENSING_V3_TEMPORARY_IN_STATUS msgrequest */ 19797 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_STATUS_LEN 4 19798 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_STATUS_OP_OFST 0 19799 #define MC_CMD_LICENSING_V3_TEMPORARY_IN_STATUS_OP_LEN 4 19800 19801 /* MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS msgresponse */ 19802 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LEN 12 19803 /* status code */ 19804 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_STATUS_OFST 0 19805 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_STATUS_LEN 4 19806 /* enum: finished validating and installing license */ 19807 #define MC_CMD_LICENSING_V3_TEMPORARY_STATUS_OK 0x0 19808 /* enum: license validation and installation in progress */ 19809 #define MC_CMD_LICENSING_V3_TEMPORARY_STATUS_IN_PROGRESS 0x1 19810 /* enum: licensing error. More specific error messages are not provided to 19811 * avoid exposing details of the licensing system to the client 19812 */ 19813 #define MC_CMD_LICENSING_V3_TEMPORARY_STATUS_ERROR 0x2 19814 /* bitmask of licensed features */ 19815 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_OFST 4 19816 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LEN 8 19817 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_LO_OFST 4 19818 #define MC_CMD_LICENSING_V3_TEMPORARY_OUT_STATUS_LICENSED_FEATURES_HI_OFST 8 19819 19820 19821 /***********************************/ 19822 /* MC_CMD_SET_PORT_SNIFF_CONFIG 19823 * Configure RX port sniffing for the physical port associated with the calling 19824 * function. Only a privileged function may change the port sniffing 19825 * configuration. A copy of all traffic delivered to the host (non-promiscuous 19826 * mode) or all traffic arriving at the port (promiscuous mode) may be 19827 * delivered to a specific queue, or a set of queues with RSS. 19828 */ 19829 #define MC_CMD_SET_PORT_SNIFF_CONFIG 0xf7 19830 #undef MC_CMD_0xf7_PRIVILEGE_CTG 19831 19832 #define MC_CMD_0xf7_PRIVILEGE_CTG SRIOV_CTG_ADMIN 19833 19834 /* MC_CMD_SET_PORT_SNIFF_CONFIG_IN msgrequest */ 19835 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_LEN 16 19836 /* configuration flags */ 19837 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_FLAGS_OFST 0 19838 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_FLAGS_LEN 4 19839 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_ENABLE_OFST 0 19840 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_ENABLE_LBN 0 19841 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_ENABLE_WIDTH 1 19842 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_PROMISCUOUS_OFST 0 19843 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_PROMISCUOUS_LBN 1 19844 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_PROMISCUOUS_WIDTH 1 19845 /* receive queue handle (for RSS mode, this is the base queue) */ 19846 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_QUEUE_OFST 4 19847 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_QUEUE_LEN 4 19848 /* receive mode */ 19849 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_MODE_OFST 8 19850 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_MODE_LEN 4 19851 /* enum: receive to just the specified queue */ 19852 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_MODE_SIMPLE 0x0 19853 /* enum: receive to multiple queues using RSS context */ 19854 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_MODE_RSS 0x1 19855 /* RSS context (for RX_MODE_RSS) as returned by MC_CMD_RSS_CONTEXT_ALLOC. Note 19856 * that these handles should be considered opaque to the host, although a value 19857 * of 0xFFFFFFFF is guaranteed never to be a valid handle. 19858 */ 19859 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_CONTEXT_OFST 12 19860 #define MC_CMD_SET_PORT_SNIFF_CONFIG_IN_RX_CONTEXT_LEN 4 19861 19862 /* MC_CMD_SET_PORT_SNIFF_CONFIG_OUT msgresponse */ 19863 #define MC_CMD_SET_PORT_SNIFF_CONFIG_OUT_LEN 0 19864 19865 19866 /***********************************/ 19867 /* MC_CMD_GET_PORT_SNIFF_CONFIG 19868 * Obtain the current RX port sniffing configuration for the physical port 19869 * associated with the calling function. Only a privileged function may read 19870 * the configuration. 19871 */ 19872 #define MC_CMD_GET_PORT_SNIFF_CONFIG 0xf8 19873 #undef MC_CMD_0xf8_PRIVILEGE_CTG 19874 19875 #define MC_CMD_0xf8_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19876 19877 /* MC_CMD_GET_PORT_SNIFF_CONFIG_IN msgrequest */ 19878 #define MC_CMD_GET_PORT_SNIFF_CONFIG_IN_LEN 0 19879 19880 /* MC_CMD_GET_PORT_SNIFF_CONFIG_OUT msgresponse */ 19881 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_LEN 16 19882 /* configuration flags */ 19883 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_FLAGS_OFST 0 19884 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_FLAGS_LEN 4 19885 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_ENABLE_OFST 0 19886 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_ENABLE_LBN 0 19887 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_ENABLE_WIDTH 1 19888 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_PROMISCUOUS_OFST 0 19889 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_PROMISCUOUS_LBN 1 19890 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_PROMISCUOUS_WIDTH 1 19891 /* receiving queue handle (for RSS mode, this is the base queue) */ 19892 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_QUEUE_OFST 4 19893 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_QUEUE_LEN 4 19894 /* receive mode */ 19895 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_MODE_OFST 8 19896 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_MODE_LEN 4 19897 /* enum: receiving to just the specified queue */ 19898 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_MODE_SIMPLE 0x0 19899 /* enum: receiving to multiple queues using RSS context */ 19900 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_MODE_RSS 0x1 19901 /* RSS context (for RX_MODE_RSS) */ 19902 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_CONTEXT_OFST 12 19903 #define MC_CMD_GET_PORT_SNIFF_CONFIG_OUT_RX_CONTEXT_LEN 4 19904 19905 19906 /***********************************/ 19907 /* MC_CMD_SET_PARSER_DISP_CONFIG 19908 * Change configuration related to the parser-dispatcher subsystem. 19909 */ 19910 #define MC_CMD_SET_PARSER_DISP_CONFIG 0xf9 19911 #undef MC_CMD_0xf9_PRIVILEGE_CTG 19912 19913 #define MC_CMD_0xf9_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19914 19915 /* MC_CMD_SET_PARSER_DISP_CONFIG_IN msgrequest */ 19916 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LENMIN 12 19917 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LENMAX 252 19918 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LENMAX_MCDI2 1020 19919 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LEN(num) (8+4*(num)) 19920 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_NUM(len) (((len)-8)/4) 19921 /* the type of configuration setting to change */ 19922 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_TYPE_OFST 0 19923 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_TYPE_LEN 4 19924 /* enum: Per-TXQ enable for multicast UDP destination lookup for possible 19925 * internal loopback. (ENTITY is a queue handle, VALUE is a single boolean.) 19926 */ 19927 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_TXQ_MCAST_UDP_DST_LOOKUP_EN 0x0 19928 /* enum: Per-v-adaptor enable for suppression of self-transmissions on the 19929 * internal loopback path. (ENTITY is an EVB_PORT_ID, VALUE is a single 19930 * boolean.) 19931 */ 19932 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VADAPTOR_SUPPRESS_SELF_TX 0x1 19933 /* handle for the entity to update: queue handle, EVB port ID, etc. depending 19934 * on the type of configuration setting being changed 19935 */ 19936 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_ENTITY_OFST 4 19937 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_ENTITY_LEN 4 19938 /* new value: the details depend on the type of configuration setting being 19939 * changed 19940 */ 19941 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_OFST 8 19942 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_LEN 4 19943 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_MINNUM 1 19944 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_MAXNUM 61 19945 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_MAXNUM_MCDI2 253 19946 19947 /* MC_CMD_SET_PARSER_DISP_CONFIG_OUT msgresponse */ 19948 #define MC_CMD_SET_PARSER_DISP_CONFIG_OUT_LEN 0 19949 19950 19951 /***********************************/ 19952 /* MC_CMD_GET_PARSER_DISP_CONFIG 19953 * Read configuration related to the parser-dispatcher subsystem. 19954 */ 19955 #define MC_CMD_GET_PARSER_DISP_CONFIG 0xfa 19956 #undef MC_CMD_0xfa_PRIVILEGE_CTG 19957 19958 #define MC_CMD_0xfa_PRIVILEGE_CTG SRIOV_CTG_GENERAL 19959 19960 /* MC_CMD_GET_PARSER_DISP_CONFIG_IN msgrequest */ 19961 #define MC_CMD_GET_PARSER_DISP_CONFIG_IN_LEN 8 19962 /* the type of configuration setting to read */ 19963 #define MC_CMD_GET_PARSER_DISP_CONFIG_IN_TYPE_OFST 0 19964 #define MC_CMD_GET_PARSER_DISP_CONFIG_IN_TYPE_LEN 4 19965 /* Enum values, see field(s): */ 19966 /* MC_CMD_SET_PARSER_DISP_CONFIG/MC_CMD_SET_PARSER_DISP_CONFIG_IN/TYPE */ 19967 /* handle for the entity to query: queue handle, EVB port ID, etc. depending on 19968 * the type of configuration setting being read 19969 */ 19970 #define MC_CMD_GET_PARSER_DISP_CONFIG_IN_ENTITY_OFST 4 19971 #define MC_CMD_GET_PARSER_DISP_CONFIG_IN_ENTITY_LEN 4 19972 19973 /* MC_CMD_GET_PARSER_DISP_CONFIG_OUT msgresponse */ 19974 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_LENMIN 4 19975 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_LENMAX 252 19976 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_LENMAX_MCDI2 1020 19977 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_LEN(num) (0+4*(num)) 19978 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_NUM(len) (((len)-0)/4) 19979 /* current value: the details depend on the type of configuration setting being 19980 * read 19981 */ 19982 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_OFST 0 19983 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_LEN 4 19984 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_MINNUM 1 19985 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_MAXNUM 63 19986 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_MAXNUM_MCDI2 255 19987 19988 19989 /***********************************/ 19990 /* MC_CMD_SET_TX_PORT_SNIFF_CONFIG 19991 * Configure TX port sniffing for the physical port associated with the calling 19992 * function. Only a privileged function may change the port sniffing 19993 * configuration. A copy of all traffic transmitted through the port may be 19994 * delivered to a specific queue, or a set of queues with RSS. Note that these 19995 * packets are delivered with transmit timestamps in the packet prefix, not 19996 * receive timestamps, so it is likely that the queue(s) will need to be 19997 * dedicated as TX sniff receivers. 19998 */ 19999 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG 0xfb 20000 #undef MC_CMD_0xfb_PRIVILEGE_CTG 20001 20002 #define MC_CMD_0xfb_PRIVILEGE_CTG SRIOV_CTG_ADMIN 20003 20004 /* MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN msgrequest */ 20005 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_LEN 16 20006 /* configuration flags */ 20007 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_FLAGS_OFST 0 20008 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_FLAGS_LEN 4 20009 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_ENABLE_OFST 0 20010 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_ENABLE_LBN 0 20011 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_ENABLE_WIDTH 1 20012 /* receive queue handle (for RSS mode, this is the base queue) */ 20013 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_QUEUE_OFST 4 20014 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_QUEUE_LEN 4 20015 /* receive mode */ 20016 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_MODE_OFST 8 20017 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_MODE_LEN 4 20018 /* enum: receive to just the specified queue */ 20019 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_MODE_SIMPLE 0x0 20020 /* enum: receive to multiple queues using RSS context */ 20021 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_MODE_RSS 0x1 20022 /* RSS context (for RX_MODE_RSS) as returned by MC_CMD_RSS_CONTEXT_ALLOC. Note 20023 * that these handles should be considered opaque to the host, although a value 20024 * of 0xFFFFFFFF is guaranteed never to be a valid handle. 20025 */ 20026 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_CONTEXT_OFST 12 20027 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_IN_RX_CONTEXT_LEN 4 20028 20029 /* MC_CMD_SET_TX_PORT_SNIFF_CONFIG_OUT msgresponse */ 20030 #define MC_CMD_SET_TX_PORT_SNIFF_CONFIG_OUT_LEN 0 20031 20032 20033 /***********************************/ 20034 /* MC_CMD_GET_TX_PORT_SNIFF_CONFIG 20035 * Obtain the current TX port sniffing configuration for the physical port 20036 * associated with the calling function. Only a privileged function may read 20037 * the configuration. 20038 */ 20039 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG 0xfc 20040 #undef MC_CMD_0xfc_PRIVILEGE_CTG 20041 20042 #define MC_CMD_0xfc_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20043 20044 /* MC_CMD_GET_TX_PORT_SNIFF_CONFIG_IN msgrequest */ 20045 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_IN_LEN 0 20046 20047 /* MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT msgresponse */ 20048 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_LEN 16 20049 /* configuration flags */ 20050 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_FLAGS_OFST 0 20051 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_FLAGS_LEN 4 20052 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_ENABLE_OFST 0 20053 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_ENABLE_LBN 0 20054 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_ENABLE_WIDTH 1 20055 /* receiving queue handle (for RSS mode, this is the base queue) */ 20056 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_QUEUE_OFST 4 20057 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_QUEUE_LEN 4 20058 /* receive mode */ 20059 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_MODE_OFST 8 20060 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_MODE_LEN 4 20061 /* enum: receiving to just the specified queue */ 20062 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_MODE_SIMPLE 0x0 20063 /* enum: receiving to multiple queues using RSS context */ 20064 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_MODE_RSS 0x1 20065 /* RSS context (for RX_MODE_RSS) */ 20066 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_CONTEXT_OFST 12 20067 #define MC_CMD_GET_TX_PORT_SNIFF_CONFIG_OUT_RX_CONTEXT_LEN 4 20068 20069 20070 /***********************************/ 20071 /* MC_CMD_RMON_STATS_RX_ERRORS 20072 * Per queue rx error stats. 20073 */ 20074 #define MC_CMD_RMON_STATS_RX_ERRORS 0xfe 20075 #undef MC_CMD_0xfe_PRIVILEGE_CTG 20076 20077 #define MC_CMD_0xfe_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20078 20079 /* MC_CMD_RMON_STATS_RX_ERRORS_IN msgrequest */ 20080 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_LEN 8 20081 /* The rx queue to get stats for. */ 20082 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_RX_QUEUE_OFST 0 20083 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_RX_QUEUE_LEN 4 20084 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_FLAGS_OFST 4 20085 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_FLAGS_LEN 4 20086 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_RST_OFST 4 20087 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_RST_LBN 0 20088 #define MC_CMD_RMON_STATS_RX_ERRORS_IN_RST_WIDTH 1 20089 20090 /* MC_CMD_RMON_STATS_RX_ERRORS_OUT msgresponse */ 20091 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_LEN 16 20092 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_CRC_ERRORS_OFST 0 20093 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_CRC_ERRORS_LEN 4 20094 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_TRUNC_ERRORS_OFST 4 20095 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_TRUNC_ERRORS_LEN 4 20096 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_RX_NO_DESC_DROPS_OFST 8 20097 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_RX_NO_DESC_DROPS_LEN 4 20098 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_RX_ABORT_OFST 12 20099 #define MC_CMD_RMON_STATS_RX_ERRORS_OUT_RX_ABORT_LEN 4 20100 20101 20102 /***********************************/ 20103 /* MC_CMD_GET_PCIE_RESOURCE_INFO 20104 * Find out about available PCIE resources 20105 */ 20106 #define MC_CMD_GET_PCIE_RESOURCE_INFO 0xfd 20107 #undef MC_CMD_0xfd_PRIVILEGE_CTG 20108 20109 #define MC_CMD_0xfd_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20110 20111 /* MC_CMD_GET_PCIE_RESOURCE_INFO_IN msgrequest */ 20112 #define MC_CMD_GET_PCIE_RESOURCE_INFO_IN_LEN 0 20113 20114 /* MC_CMD_GET_PCIE_RESOURCE_INFO_OUT msgresponse */ 20115 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_LEN 28 20116 /* The maximum number of PFs the device can expose */ 20117 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_PFS_OFST 0 20118 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_PFS_LEN 4 20119 /* The maximum number of VFs the device can expose in total */ 20120 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VFS_OFST 4 20121 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VFS_LEN 4 20122 /* The maximum number of MSI-X vectors the device can provide in total */ 20123 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VECTORS_OFST 8 20124 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VECTORS_LEN 4 20125 /* the number of MSI-X vectors the device will allocate by default to each PF 20126 */ 20127 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_DEFAULT_PF_VECTORS_OFST 12 20128 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_DEFAULT_PF_VECTORS_LEN 4 20129 /* the number of MSI-X vectors the device will allocate by default to each VF 20130 */ 20131 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_DEFAULT_VF_VECTORS_OFST 16 20132 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_DEFAULT_VF_VECTORS_LEN 4 20133 /* the maximum number of MSI-X vectors the device can allocate to any one PF */ 20134 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_PF_VECTORS_OFST 20 20135 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_PF_VECTORS_LEN 4 20136 /* the maximum number of MSI-X vectors the device can allocate to any one VF */ 20137 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VF_VECTORS_OFST 24 20138 #define MC_CMD_GET_PCIE_RESOURCE_INFO_OUT_MAX_VF_VECTORS_LEN 4 20139 20140 20141 /***********************************/ 20142 /* MC_CMD_GET_PORT_MODES 20143 * Find out about available port modes 20144 */ 20145 #define MC_CMD_GET_PORT_MODES 0xff 20146 #undef MC_CMD_0xff_PRIVILEGE_CTG 20147 20148 #define MC_CMD_0xff_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20149 20150 /* MC_CMD_GET_PORT_MODES_IN msgrequest */ 20151 #define MC_CMD_GET_PORT_MODES_IN_LEN 0 20152 20153 /* MC_CMD_GET_PORT_MODES_OUT msgresponse */ 20154 #define MC_CMD_GET_PORT_MODES_OUT_LEN 12 20155 /* Bitmask of port modes available on the board (indexed by TLV_PORT_MODE_*) 20156 * that are supported for customer use in production firmware. 20157 */ 20158 #define MC_CMD_GET_PORT_MODES_OUT_MODES_OFST 0 20159 #define MC_CMD_GET_PORT_MODES_OUT_MODES_LEN 4 20160 /* Default (canonical) board mode */ 20161 #define MC_CMD_GET_PORT_MODES_OUT_DEFAULT_MODE_OFST 4 20162 #define MC_CMD_GET_PORT_MODES_OUT_DEFAULT_MODE_LEN 4 20163 /* Current board mode */ 20164 #define MC_CMD_GET_PORT_MODES_OUT_CURRENT_MODE_OFST 8 20165 #define MC_CMD_GET_PORT_MODES_OUT_CURRENT_MODE_LEN 4 20166 20167 /* MC_CMD_GET_PORT_MODES_OUT_V2 msgresponse */ 20168 #define MC_CMD_GET_PORT_MODES_OUT_V2_LEN 16 20169 /* Bitmask of port modes available on the board (indexed by TLV_PORT_MODE_*) 20170 * that are supported for customer use in production firmware. 20171 */ 20172 #define MC_CMD_GET_PORT_MODES_OUT_V2_MODES_OFST 0 20173 #define MC_CMD_GET_PORT_MODES_OUT_V2_MODES_LEN 4 20174 /* Default (canonical) board mode */ 20175 #define MC_CMD_GET_PORT_MODES_OUT_V2_DEFAULT_MODE_OFST 4 20176 #define MC_CMD_GET_PORT_MODES_OUT_V2_DEFAULT_MODE_LEN 4 20177 /* Current board mode */ 20178 #define MC_CMD_GET_PORT_MODES_OUT_V2_CURRENT_MODE_OFST 8 20179 #define MC_CMD_GET_PORT_MODES_OUT_V2_CURRENT_MODE_LEN 4 20180 /* Bitmask of engineering port modes available on the board (indexed by 20181 * TLV_PORT_MODE_*). A superset of MC_CMD_GET_PORT_MODES_OUT/MODES that 20182 * contains all modes implemented in firmware for a particular board. Modes 20183 * listed in MODES are considered production modes and should be exposed in 20184 * userland tools. Modes listed in in ENGINEERING_MODES, but not in MODES 20185 * should be considered hidden (not to be exposed in userland tools) and for 20186 * engineering use only. There are no other semantic differences and any mode 20187 * listed in either MODES or ENGINEERING_MODES can be set on the board. 20188 */ 20189 #define MC_CMD_GET_PORT_MODES_OUT_V2_ENGINEERING_MODES_OFST 12 20190 #define MC_CMD_GET_PORT_MODES_OUT_V2_ENGINEERING_MODES_LEN 4 20191 20192 20193 /***********************************/ 20194 /* MC_CMD_OVERRIDE_PORT_MODE 20195 * Override flash config port mode for subsequent MC reboot(s). Override data 20196 * is stored in the presistent data section of DMEM and activated on next MC 20197 * warm reboot. A cold reboot resets the override. It is assumed that a 20198 * sufficient number of PFs are available and that port mapping is valid for 20199 * the new port mode, as the override does not affect PF configuration. 20200 */ 20201 #define MC_CMD_OVERRIDE_PORT_MODE 0x137 20202 #undef MC_CMD_0x137_PRIVILEGE_CTG 20203 20204 #define MC_CMD_0x137_PRIVILEGE_CTG SRIOV_CTG_ADMIN 20205 20206 /* MC_CMD_OVERRIDE_PORT_MODE_IN msgrequest */ 20207 #define MC_CMD_OVERRIDE_PORT_MODE_IN_LEN 8 20208 #define MC_CMD_OVERRIDE_PORT_MODE_IN_FLAGS_OFST 0 20209 #define MC_CMD_OVERRIDE_PORT_MODE_IN_FLAGS_LEN 4 20210 #define MC_CMD_OVERRIDE_PORT_MODE_IN_ENABLE_OFST 0 20211 #define MC_CMD_OVERRIDE_PORT_MODE_IN_ENABLE_LBN 0 20212 #define MC_CMD_OVERRIDE_PORT_MODE_IN_ENABLE_WIDTH 1 20213 /* New mode (TLV_PORT_MODE_*) to set, if override enabled */ 20214 #define MC_CMD_OVERRIDE_PORT_MODE_IN_MODE_OFST 4 20215 #define MC_CMD_OVERRIDE_PORT_MODE_IN_MODE_LEN 4 20216 20217 /* MC_CMD_OVERRIDE_PORT_MODE_OUT msgresponse */ 20218 #define MC_CMD_OVERRIDE_PORT_MODE_OUT_LEN 0 20219 20220 20221 /***********************************/ 20222 /* MC_CMD_READ_ATB 20223 * Sample voltages on the ATB 20224 */ 20225 #define MC_CMD_READ_ATB 0x100 20226 #undef MC_CMD_0x100_PRIVILEGE_CTG 20227 20228 #define MC_CMD_0x100_PRIVILEGE_CTG SRIOV_CTG_INSECURE 20229 20230 /* MC_CMD_READ_ATB_IN msgrequest */ 20231 #define MC_CMD_READ_ATB_IN_LEN 16 20232 #define MC_CMD_READ_ATB_IN_SIGNAL_BUS_OFST 0 20233 #define MC_CMD_READ_ATB_IN_SIGNAL_BUS_LEN 4 20234 #define MC_CMD_READ_ATB_IN_BUS_CCOM 0x0 /* enum */ 20235 #define MC_CMD_READ_ATB_IN_BUS_CKR 0x1 /* enum */ 20236 #define MC_CMD_READ_ATB_IN_BUS_CPCIE 0x8 /* enum */ 20237 #define MC_CMD_READ_ATB_IN_SIGNAL_EN_BITNO_OFST 4 20238 #define MC_CMD_READ_ATB_IN_SIGNAL_EN_BITNO_LEN 4 20239 #define MC_CMD_READ_ATB_IN_SIGNAL_SEL_OFST 8 20240 #define MC_CMD_READ_ATB_IN_SIGNAL_SEL_LEN 4 20241 #define MC_CMD_READ_ATB_IN_SETTLING_TIME_US_OFST 12 20242 #define MC_CMD_READ_ATB_IN_SETTLING_TIME_US_LEN 4 20243 20244 /* MC_CMD_READ_ATB_OUT msgresponse */ 20245 #define MC_CMD_READ_ATB_OUT_LEN 4 20246 #define MC_CMD_READ_ATB_OUT_SAMPLE_MV_OFST 0 20247 #define MC_CMD_READ_ATB_OUT_SAMPLE_MV_LEN 4 20248 20249 20250 /***********************************/ 20251 /* MC_CMD_GET_WORKAROUNDS 20252 * Read the list of all implemented and all currently enabled workarounds. The 20253 * enums here must correspond with those in MC_CMD_WORKAROUND. 20254 */ 20255 #define MC_CMD_GET_WORKAROUNDS 0x59 20256 #undef MC_CMD_0x59_PRIVILEGE_CTG 20257 20258 #define MC_CMD_0x59_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20259 20260 /* MC_CMD_GET_WORKAROUNDS_OUT msgresponse */ 20261 #define MC_CMD_GET_WORKAROUNDS_OUT_LEN 8 20262 /* Each workaround is represented by a single bit according to the enums below. 20263 */ 20264 #define MC_CMD_GET_WORKAROUNDS_OUT_IMPLEMENTED_OFST 0 20265 #define MC_CMD_GET_WORKAROUNDS_OUT_IMPLEMENTED_LEN 4 20266 #define MC_CMD_GET_WORKAROUNDS_OUT_ENABLED_OFST 4 20267 #define MC_CMD_GET_WORKAROUNDS_OUT_ENABLED_LEN 4 20268 /* enum: Bug 17230 work around. */ 20269 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG17230 0x2 20270 /* enum: Bug 35388 work around (unsafe EVQ writes). */ 20271 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG35388 0x4 20272 /* enum: Bug35017 workaround (A64 tables must be identity map) */ 20273 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG35017 0x8 20274 /* enum: Bug 41750 present (MC_CMD_TRIGGER_INTERRUPT won't work) */ 20275 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG41750 0x10 20276 /* enum: Bug 42008 present (Interrupts can overtake associated events). Caution 20277 * - before adding code that queries this workaround, remember that there's 20278 * released Monza firmware that doesn't understand MC_CMD_WORKAROUND_BUG42008, 20279 * and will hence (incorrectly) report that the bug doesn't exist. 20280 */ 20281 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG42008 0x20 20282 /* enum: Bug 26807 features present in firmware (multicast filter chaining) */ 20283 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG26807 0x40 20284 /* enum: Bug 61265 work around (broken EVQ TMR writes). */ 20285 #define MC_CMD_GET_WORKAROUNDS_OUT_BUG61265 0x80 20286 20287 20288 /***********************************/ 20289 /* MC_CMD_PRIVILEGE_MASK 20290 * Read/set privileges of an arbitrary PCIe function 20291 */ 20292 #define MC_CMD_PRIVILEGE_MASK 0x5a 20293 #undef MC_CMD_0x5a_PRIVILEGE_CTG 20294 20295 #define MC_CMD_0x5a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20296 20297 /* MC_CMD_PRIVILEGE_MASK_IN msgrequest */ 20298 #define MC_CMD_PRIVILEGE_MASK_IN_LEN 8 20299 /* The target function to have its mask read or set e.g. PF 0 = 0xFFFF0000, VF 20300 * 1,3 = 0x00030001 20301 */ 20302 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_OFST 0 20303 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_LEN 4 20304 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_PF_OFST 0 20305 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_PF_LBN 0 20306 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_PF_WIDTH 16 20307 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_VF_OFST 0 20308 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_VF_LBN 16 20309 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_VF_WIDTH 16 20310 #define MC_CMD_PRIVILEGE_MASK_IN_VF_NULL 0xffff /* enum */ 20311 /* New privilege mask to be set. The mask will only be changed if the MSB is 20312 * set to 1. 20313 */ 20314 #define MC_CMD_PRIVILEGE_MASK_IN_NEW_MASK_OFST 4 20315 #define MC_CMD_PRIVILEGE_MASK_IN_NEW_MASK_LEN 4 20316 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ADMIN 0x1 /* enum */ 20317 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_LINK 0x2 /* enum */ 20318 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ONLOAD 0x4 /* enum */ 20319 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_PTP 0x8 /* enum */ 20320 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_INSECURE_FILTERS 0x10 /* enum */ 20321 /* enum: Deprecated. Equivalent to MAC_SPOOFING_TX combined with CHANGE_MAC. */ 20322 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_MAC_SPOOFING 0x20 20323 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_UNICAST 0x40 /* enum */ 20324 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_MULTICAST 0x80 /* enum */ 20325 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_BROADCAST 0x100 /* enum */ 20326 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ALL_MULTICAST 0x200 /* enum */ 20327 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_PROMISCUOUS 0x400 /* enum */ 20328 /* enum: Allows to set the TX packets' source MAC address to any arbitrary MAC 20329 * adress. 20330 */ 20331 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_MAC_SPOOFING_TX 0x800 20332 /* enum: Privilege that allows a Function to change the MAC address configured 20333 * in its associated vAdapter/vPort. 20334 */ 20335 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_CHANGE_MAC 0x1000 20336 /* enum: Privilege that allows a Function to install filters that specify VLANs 20337 * that are not in the permit list for the associated vPort. This privilege is 20338 * primarily to support ESX where vPorts are created that restrict traffic to 20339 * only a set of permitted VLANs. See the vPort flag FLAG_VLAN_RESTRICT. 20340 */ 20341 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_UNRESTRICTED_VLAN 0x2000 20342 /* enum: Privilege for insecure commands. Commands that belong to this group 20343 * are not permitted on secure adapters regardless of the privilege mask. 20344 */ 20345 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_INSECURE 0x4000 20346 /* enum: Trusted Server Adapter (TSA) / ServerLock. Privilege for 20347 * administrator-level operations that are not allowed from the local host once 20348 * an adapter has Bound to a remote ServerLock Controller (see doxbox 20349 * SF-117064-DG for background). 20350 */ 20351 #define MC_CMD_PRIVILEGE_MASK_IN_GRP_ADMIN_TSA_UNBOUND 0x8000 20352 /* enum: Set this bit to indicate that a new privilege mask is to be set, 20353 * otherwise the command will only read the existing mask. 20354 */ 20355 #define MC_CMD_PRIVILEGE_MASK_IN_DO_CHANGE 0x80000000 20356 20357 /* MC_CMD_PRIVILEGE_MASK_OUT msgresponse */ 20358 #define MC_CMD_PRIVILEGE_MASK_OUT_LEN 4 20359 /* For an admin function, always all the privileges are reported. */ 20360 #define MC_CMD_PRIVILEGE_MASK_OUT_OLD_MASK_OFST 0 20361 #define MC_CMD_PRIVILEGE_MASK_OUT_OLD_MASK_LEN 4 20362 20363 20364 /***********************************/ 20365 /* MC_CMD_LINK_STATE_MODE 20366 * Read/set link state mode of a VF 20367 */ 20368 #define MC_CMD_LINK_STATE_MODE 0x5c 20369 #undef MC_CMD_0x5c_PRIVILEGE_CTG 20370 20371 #define MC_CMD_0x5c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20372 20373 /* MC_CMD_LINK_STATE_MODE_IN msgrequest */ 20374 #define MC_CMD_LINK_STATE_MODE_IN_LEN 8 20375 /* The target function to have its link state mode read or set, must be a VF 20376 * e.g. VF 1,3 = 0x00030001 20377 */ 20378 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_OFST 0 20379 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_LEN 4 20380 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_PF_OFST 0 20381 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_PF_LBN 0 20382 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_PF_WIDTH 16 20383 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_VF_OFST 0 20384 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_VF_LBN 16 20385 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_VF_WIDTH 16 20386 /* New link state mode to be set */ 20387 #define MC_CMD_LINK_STATE_MODE_IN_NEW_MODE_OFST 4 20388 #define MC_CMD_LINK_STATE_MODE_IN_NEW_MODE_LEN 4 20389 #define MC_CMD_LINK_STATE_MODE_IN_LINK_STATE_AUTO 0x0 /* enum */ 20390 #define MC_CMD_LINK_STATE_MODE_IN_LINK_STATE_UP 0x1 /* enum */ 20391 #define MC_CMD_LINK_STATE_MODE_IN_LINK_STATE_DOWN 0x2 /* enum */ 20392 /* enum: Use this value to just read the existing setting without modifying it. 20393 */ 20394 #define MC_CMD_LINK_STATE_MODE_IN_DO_NOT_CHANGE 0xffffffff 20395 20396 /* MC_CMD_LINK_STATE_MODE_OUT msgresponse */ 20397 #define MC_CMD_LINK_STATE_MODE_OUT_LEN 4 20398 #define MC_CMD_LINK_STATE_MODE_OUT_OLD_MODE_OFST 0 20399 #define MC_CMD_LINK_STATE_MODE_OUT_OLD_MODE_LEN 4 20400 20401 20402 /***********************************/ 20403 /* MC_CMD_GET_SNAPSHOT_LENGTH 20404 * Obtain the current range of allowable values for the SNAPSHOT_LENGTH 20405 * parameter to MC_CMD_INIT_RXQ. 20406 */ 20407 #define MC_CMD_GET_SNAPSHOT_LENGTH 0x101 20408 #undef MC_CMD_0x101_PRIVILEGE_CTG 20409 20410 #define MC_CMD_0x101_PRIVILEGE_CTG SRIOV_CTG_GENERAL 20411 20412 /* MC_CMD_GET_SNAPSHOT_LENGTH_IN msgrequest */ 20413 #define MC_CMD_GET_SNAPSHOT_LENGTH_IN_LEN 0 20414 20415 /* MC_CMD_GET_SNAPSHOT_LENGTH_OUT msgresponse */ 20416 #define MC_CMD_GET_SNAPSHOT_LENGTH_OUT_LEN 8 20417 /* Minimum acceptable snapshot length. */ 20418 #define MC_CMD_GET_SNAPSHOT_LENGTH_OUT_RX_SNAPLEN_MIN_OFST 0 20419 #define MC_CMD_GET_SNAPSHOT_LENGTH_OUT_RX_SNAPLEN_MIN_LEN 4 20420 /* Maximum acceptable snapshot length. */ 20421 #define MC_CMD_GET_SNAPSHOT_LENGTH_OUT_RX_SNAPLEN_MAX_OFST 4 20422 #define MC_CMD_GET_SNAPSHOT_LENGTH_OUT_RX_SNAPLEN_MAX_LEN 4 20423 20424 20425 /***********************************/ 20426 /* MC_CMD_FUSE_DIAGS 20427 * Additional fuse diagnostics 20428 */ 20429 #define MC_CMD_FUSE_DIAGS 0x102 20430 #undef MC_CMD_0x102_PRIVILEGE_CTG 20431 20432 #define MC_CMD_0x102_PRIVILEGE_CTG SRIOV_CTG_INSECURE 20433 20434 /* MC_CMD_FUSE_DIAGS_IN msgrequest */ 20435 #define MC_CMD_FUSE_DIAGS_IN_LEN 0 20436 20437 /* MC_CMD_FUSE_DIAGS_OUT msgresponse */ 20438 #define MC_CMD_FUSE_DIAGS_OUT_LEN 48 20439 /* Total number of mismatched bits between pairs in area 0 */ 20440 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_MISMATCH_BITS_OFST 0 20441 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_MISMATCH_BITS_LEN 4 20442 /* Total number of unexpectedly clear (set in B but not A) bits in area 0 */ 20443 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_PAIR_A_BAD_BITS_OFST 4 20444 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_PAIR_A_BAD_BITS_LEN 4 20445 /* Total number of unexpectedly clear (set in A but not B) bits in area 0 */ 20446 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_PAIR_B_BAD_BITS_OFST 8 20447 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_PAIR_B_BAD_BITS_LEN 4 20448 /* Checksum of data after logical OR of pairs in area 0 */ 20449 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_CHECKSUM_OFST 12 20450 #define MC_CMD_FUSE_DIAGS_OUT_AREA0_CHECKSUM_LEN 4 20451 /* Total number of mismatched bits between pairs in area 1 */ 20452 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_MISMATCH_BITS_OFST 16 20453 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_MISMATCH_BITS_LEN 4 20454 /* Total number of unexpectedly clear (set in B but not A) bits in area 1 */ 20455 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_PAIR_A_BAD_BITS_OFST 20 20456 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_PAIR_A_BAD_BITS_LEN 4 20457 /* Total number of unexpectedly clear (set in A but not B) bits in area 1 */ 20458 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_PAIR_B_BAD_BITS_OFST 24 20459 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_PAIR_B_BAD_BITS_LEN 4 20460 /* Checksum of data after logical OR of pairs in area 1 */ 20461 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_CHECKSUM_OFST 28 20462 #define MC_CMD_FUSE_DIAGS_OUT_AREA1_CHECKSUM_LEN 4 20463 /* Total number of mismatched bits between pairs in area 2 */ 20464 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_MISMATCH_BITS_OFST 32 20465 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_MISMATCH_BITS_LEN 4 20466 /* Total number of unexpectedly clear (set in B but not A) bits in area 2 */ 20467 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_PAIR_A_BAD_BITS_OFST 36 20468 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_PAIR_A_BAD_BITS_LEN 4 20469 /* Total number of unexpectedly clear (set in A but not B) bits in area 2 */ 20470 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_PAIR_B_BAD_BITS_OFST 40 20471 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_PAIR_B_BAD_BITS_LEN 4 20472 /* Checksum of data after logical OR of pairs in area 2 */ 20473 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_CHECKSUM_OFST 44 20474 #define MC_CMD_FUSE_DIAGS_OUT_AREA2_CHECKSUM_LEN 4 20475 20476 20477 /***********************************/ 20478 /* MC_CMD_PRIVILEGE_MODIFY 20479 * Modify the privileges of a set of PCIe functions. Note that this operation 20480 * only effects non-admin functions unless the admin privilege itself is 20481 * included in one of the masks provided. 20482 */ 20483 #define MC_CMD_PRIVILEGE_MODIFY 0x60 20484 #undef MC_CMD_0x60_PRIVILEGE_CTG 20485 20486 #define MC_CMD_0x60_PRIVILEGE_CTG SRIOV_CTG_ADMIN 20487 20488 /* MC_CMD_PRIVILEGE_MODIFY_IN msgrequest */ 20489 #define MC_CMD_PRIVILEGE_MODIFY_IN_LEN 16 20490 /* The groups of functions to have their privilege masks modified. */ 20491 #define MC_CMD_PRIVILEGE_MODIFY_IN_FN_GROUP_OFST 0 20492 #define MC_CMD_PRIVILEGE_MODIFY_IN_FN_GROUP_LEN 4 20493 #define MC_CMD_PRIVILEGE_MODIFY_IN_NONE 0x0 /* enum */ 20494 #define MC_CMD_PRIVILEGE_MODIFY_IN_ALL 0x1 /* enum */ 20495 #define MC_CMD_PRIVILEGE_MODIFY_IN_PFS_ONLY 0x2 /* enum */ 20496 #define MC_CMD_PRIVILEGE_MODIFY_IN_VFS_ONLY 0x3 /* enum */ 20497 #define MC_CMD_PRIVILEGE_MODIFY_IN_VFS_OF_PF 0x4 /* enum */ 20498 #define MC_CMD_PRIVILEGE_MODIFY_IN_ONE 0x5 /* enum */ 20499 /* For VFS_OF_PF specify the PF, for ONE specify the target function */ 20500 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_OFST 4 20501 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_LEN 4 20502 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_PF_OFST 4 20503 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_PF_LBN 0 20504 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_PF_WIDTH 16 20505 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_VF_OFST 4 20506 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_VF_LBN 16 20507 #define MC_CMD_PRIVILEGE_MODIFY_IN_FUNCTION_VF_WIDTH 16 20508 /* Privileges to be added to the target functions. For privilege definitions 20509 * refer to the command MC_CMD_PRIVILEGE_MASK 20510 */ 20511 #define MC_CMD_PRIVILEGE_MODIFY_IN_ADD_MASK_OFST 8 20512 #define MC_CMD_PRIVILEGE_MODIFY_IN_ADD_MASK_LEN 4 20513 /* Privileges to be removed from the target functions. For privilege 20514 * definitions refer to the command MC_CMD_PRIVILEGE_MASK 20515 */ 20516 #define MC_CMD_PRIVILEGE_MODIFY_IN_REMOVE_MASK_OFST 12 20517 #define MC_CMD_PRIVILEGE_MODIFY_IN_REMOVE_MASK_LEN 4 20518 20519 /* MC_CMD_PRIVILEGE_MODIFY_OUT msgresponse */ 20520 #define MC_CMD_PRIVILEGE_MODIFY_OUT_LEN 0 20521 20522 20523 /***********************************/ 20524 /* MC_CMD_XPM_READ_BYTES 20525 * Read XPM memory 20526 */ 20527 #define MC_CMD_XPM_READ_BYTES 0x103 20528 #undef MC_CMD_0x103_PRIVILEGE_CTG 20529 20530 #define MC_CMD_0x103_PRIVILEGE_CTG SRIOV_CTG_ADMIN 20531 20532 /* MC_CMD_XPM_READ_BYTES_IN msgrequest */ 20533 #define MC_CMD_XPM_READ_BYTES_IN_LEN 8 20534 /* Start address (byte) */ 20535 #define MC_CMD_XPM_READ_BYTES_IN_ADDR_OFST 0 20536 #define MC_CMD_XPM_READ_BYTES_IN_ADDR_LEN 4 20537 /* Count (bytes) */ 20538 #define MC_CMD_XPM_READ_BYTES_IN_COUNT_OFST 4 20539 #define MC_CMD_XPM_READ_BYTES_IN_COUNT_LEN 4 20540 20541 /* MC_CMD_XPM_READ_BYTES_OUT msgresponse */ 20542 #define MC_CMD_XPM_READ_BYTES_OUT_LENMIN 0 20543 #define MC_CMD_XPM_READ_BYTES_OUT_LENMAX 252 20544 #define MC_CMD_XPM_READ_BYTES_OUT_LENMAX_MCDI2 1020 20545 #define MC_CMD_XPM_READ_BYTES_OUT_LEN(num) (0+1*(num)) 20546 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_NUM(len) (((len)-0)/1) 20547 /* Data */ 20548 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_OFST 0 20549 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_LEN 1 20550 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_MINNUM 0 20551 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_MAXNUM 252 20552 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_MAXNUM_MCDI2 1020 20553 20554 20555 /***********************************/ 20556 /* MC_CMD_XPM_WRITE_BYTES 20557 * Write XPM memory 20558 */ 20559 #define MC_CMD_XPM_WRITE_BYTES 0x104 20560 #undef MC_CMD_0x104_PRIVILEGE_CTG 20561 20562 #define MC_CMD_0x104_PRIVILEGE_CTG SRIOV_CTG_INSECURE 20563 20564 /* MC_CMD_XPM_WRITE_BYTES_IN msgrequest */ 20565 #define MC_CMD_XPM_WRITE_BYTES_IN_LENMIN 8 20566 #define MC_CMD_XPM_WRITE_BYTES_IN_LENMAX 252 20567 #define MC_CMD_XPM_WRITE_BYTES_IN_LENMAX_MCDI2 1020 20568 #define MC_CMD_XPM_WRITE_BYTES_IN_LEN(num) (8+1*(num)) 20569 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_NUM(len) (((len)-8)/1) 20570 /* Start address (byte) */ 20571 #define MC_CMD_XPM_WRITE_BYTES_IN_ADDR_OFST 0 20572 #define MC_CMD_XPM_WRITE_BYTES_IN_ADDR_LEN 4 20573 /* Count (bytes) */ 20574 #define MC_CMD_XPM_WRITE_BYTES_IN_COUNT_OFST 4 20575 #define MC_CMD_XPM_WRITE_BYTES_IN_COUNT_LEN 4 20576 /* Data */ 20577 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_OFST 8 20578 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_LEN 1 20579 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_MINNUM 0 20580 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_MAXNUM 244 20581 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_MAXNUM_MCDI2 1012 20582 20583 /* MC_CMD_XPM_WRITE_BYTES_OUT msgresponse */ 20584 #define MC_CMD_XPM_WRITE_BYTES_OUT_LEN 0 20585 20586 20587 /***********************************/ 20588 /* MC_CMD_XPM_READ_SECTOR 20589 * Read XPM sector 20590 */ 20591 #define MC_CMD_XPM_READ_SECTOR 0x105 20592 #undef MC_CMD_0x105_PRIVILEGE_CTG 20593 20594 #define MC_CMD_0x105_PRIVILEGE_CTG SRIOV_CTG_INSECURE 20595 20596 /* MC_CMD_XPM_READ_SECTOR_IN msgrequest */ 20597 #define MC_CMD_XPM_READ_SECTOR_IN_LEN 8 20598 /* Sector index */ 20599 #define MC_CMD_XPM_READ_SECTOR_IN_INDEX_OFST 0 20600 #define MC_CMD_XPM_READ_SECTOR_IN_INDEX_LEN 4 20601 /* Sector size */ 20602 #define MC_CMD_XPM_READ_SECTOR_IN_SIZE_OFST 4 20603 #define MC_CMD_XPM_READ_SECTOR_IN_SIZE_LEN 4 20604 20605 /* MC_CMD_XPM_READ_SECTOR_OUT msgresponse */ 20606 #define MC_CMD_XPM_READ_SECTOR_OUT_LENMIN 4 20607 #define MC_CMD_XPM_READ_SECTOR_OUT_LENMAX 36 20608 #define MC_CMD_XPM_READ_SECTOR_OUT_LENMAX_MCDI2 36 20609 #define MC_CMD_XPM_READ_SECTOR_OUT_LEN(num) (4+1*(num)) 20610 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_NUM(len) (((len)-4)/1) 20611 /* Sector type */ 20612 #define MC_CMD_XPM_READ_SECTOR_OUT_TYPE_OFST 0 20613 #define MC_CMD_XPM_READ_SECTOR_OUT_TYPE_LEN 4 20614 #define MC_CMD_XPM_READ_SECTOR_OUT_BLANK 0x0 /* enum */ 20615 #define MC_CMD_XPM_READ_SECTOR_OUT_CRYPTO_KEY_128 0x1 /* enum */ 20616 #define MC_CMD_XPM_READ_SECTOR_OUT_CRYPTO_KEY_256 0x2 /* enum */ 20617 #define MC_CMD_XPM_READ_SECTOR_OUT_CRYPTO_DATA 0x3 /* enum */ 20618 #define MC_CMD_XPM_READ_SECTOR_OUT_INVALID 0xff /* enum */ 20619 /* Sector data */ 20620 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_OFST 4 20621 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_LEN 1 20622 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_MINNUM 0 20623 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_MAXNUM 32 20624 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_MAXNUM_MCDI2 32 20625 20626 20627 /***********************************/ 20628 /* MC_CMD_XPM_WRITE_SECTOR 20629 * Write XPM sector 20630 */ 20631 #define MC_CMD_XPM_WRITE_SECTOR 0x106 20632 #undef MC_CMD_0x106_PRIVILEGE_CTG 20633 20634 #define MC_CMD_0x106_PRIVILEGE_CTG SRIOV_CTG_INSECURE 20635 20636 /* MC_CMD_XPM_WRITE_SECTOR_IN msgrequest */ 20637 #define MC_CMD_XPM_WRITE_SECTOR_IN_LENMIN 12 20638 #define MC_CMD_XPM_WRITE_SECTOR_IN_LENMAX 44 20639 #define MC_CMD_XPM_WRITE_SECTOR_IN_LENMAX_MCDI2 44 20640 #define MC_CMD_XPM_WRITE_SECTOR_IN_LEN(num) (12+1*(num)) 20641 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_NUM(len) (((len)-12)/1) 20642 /* If writing fails due to an uncorrectable error, try up to RETRIES following 20643 * sectors (or until no more space available). If 0, only one write attempt is 20644 * made. Note that uncorrectable errors are unlikely, thanks to XPM self-repair 20645 * mechanism. 20646 */ 20647 #define MC_CMD_XPM_WRITE_SECTOR_IN_RETRIES_OFST 0 20648 #define MC_CMD_XPM_WRITE_SECTOR_IN_RETRIES_LEN 1 20649 #define MC_CMD_XPM_WRITE_SECTOR_IN_RESERVED_OFST 1 20650 #define MC_CMD_XPM_WRITE_SECTOR_IN_RESERVED_LEN 3 20651 /* Sector type */ 20652 #define MC_CMD_XPM_WRITE_SECTOR_IN_TYPE_OFST 4 20653 #define MC_CMD_XPM_WRITE_SECTOR_IN_TYPE_LEN 4 20654 /* Enum values, see field(s): */ 20655 /* MC_CMD_XPM_READ_SECTOR/MC_CMD_XPM_READ_SECTOR_OUT/TYPE */ 20656 /* Sector size */ 20657 #define MC_CMD_XPM_WRITE_SECTOR_IN_SIZE_OFST 8 20658 #define MC_CMD_XPM_WRITE_SECTOR_IN_SIZE_LEN 4 20659 /* Sector data */ 20660 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_OFST 12 20661 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_LEN 1 20662 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_MINNUM 0 20663 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_MAXNUM 32 20664 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_MAXNUM_MCDI2 32 20665 20666 /* MC_CMD_XPM_WRITE_SECTOR_OUT msgresponse */ 20667 #define MC_CMD_XPM_WRITE_SECTOR_OUT_LEN 4 20668 /* New sector index */ 20669 #define MC_CMD_XPM_WRITE_SECTOR_OUT_INDEX_OFST 0 20670 #define MC_CMD_XPM_WRITE_SECTOR_OUT_INDEX_LEN 4 20671 20672 20673 /***********************************/ 20674 /* MC_CMD_XPM_INVALIDATE_SECTOR 20675 * Invalidate XPM sector 20676 */ 20677 #define MC_CMD_XPM_INVALIDATE_SECTOR 0x107 20678 #undef MC_CMD_0x107_PRIVILEGE_CTG 20679 20680 #define MC_CMD_0x107_PRIVILEGE_CTG SRIOV_CTG_INSECURE 20681 20682 /* MC_CMD_XPM_INVALIDATE_SECTOR_IN msgrequest */ 20683 #define MC_CMD_XPM_INVALIDATE_SECTOR_IN_LEN 4 20684 /* Sector index */ 20685 #define MC_CMD_XPM_INVALIDATE_SECTOR_IN_INDEX_OFST 0 20686 #define MC_CMD_XPM_INVALIDATE_SECTOR_IN_INDEX_LEN 4 20687 20688 /* MC_CMD_XPM_INVALIDATE_SECTOR_OUT msgresponse */ 20689 #define MC_CMD_XPM_INVALIDATE_SECTOR_OUT_LEN 0 20690 20691 20692 /***********************************/ 20693 /* MC_CMD_XPM_BLANK_CHECK 20694 * Blank-check XPM memory and report bad locations 20695 */ 20696 #define MC_CMD_XPM_BLANK_CHECK 0x108 20697 #undef MC_CMD_0x108_PRIVILEGE_CTG 20698 20699 #define MC_CMD_0x108_PRIVILEGE_CTG SRIOV_CTG_INSECURE 20700 20701 /* MC_CMD_XPM_BLANK_CHECK_IN msgrequest */ 20702 #define MC_CMD_XPM_BLANK_CHECK_IN_LEN 8 20703 /* Start address (byte) */ 20704 #define MC_CMD_XPM_BLANK_CHECK_IN_ADDR_OFST 0 20705 #define MC_CMD_XPM_BLANK_CHECK_IN_ADDR_LEN 4 20706 /* Count (bytes) */ 20707 #define MC_CMD_XPM_BLANK_CHECK_IN_COUNT_OFST 4 20708 #define MC_CMD_XPM_BLANK_CHECK_IN_COUNT_LEN 4 20709 20710 /* MC_CMD_XPM_BLANK_CHECK_OUT msgresponse */ 20711 #define MC_CMD_XPM_BLANK_CHECK_OUT_LENMIN 4 20712 #define MC_CMD_XPM_BLANK_CHECK_OUT_LENMAX 252 20713 #define MC_CMD_XPM_BLANK_CHECK_OUT_LENMAX_MCDI2 1020 20714 #define MC_CMD_XPM_BLANK_CHECK_OUT_LEN(num) (4+2*(num)) 20715 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_NUM(len) (((len)-4)/2) 20716 /* Total number of bad (non-blank) locations */ 20717 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_COUNT_OFST 0 20718 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_COUNT_LEN 4 20719 /* Addresses of bad locations (may be less than BAD_COUNT, if all cannot fit 20720 * into MCDI response) 20721 */ 20722 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_OFST 4 20723 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_LEN 2 20724 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_MINNUM 0 20725 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_MAXNUM 124 20726 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_MAXNUM_MCDI2 508 20727 20728 20729 /***********************************/ 20730 /* MC_CMD_XPM_REPAIR 20731 * Blank-check and repair XPM memory 20732 */ 20733 #define MC_CMD_XPM_REPAIR 0x109 20734 #undef MC_CMD_0x109_PRIVILEGE_CTG 20735 20736 #define MC_CMD_0x109_PRIVILEGE_CTG SRIOV_CTG_INSECURE 20737 20738 /* MC_CMD_XPM_REPAIR_IN msgrequest */ 20739 #define MC_CMD_XPM_REPAIR_IN_LEN 8 20740 /* Start address (byte) */ 20741 #define MC_CMD_XPM_REPAIR_IN_ADDR_OFST 0 20742 #define MC_CMD_XPM_REPAIR_IN_ADDR_LEN 4 20743 /* Count (bytes) */ 20744 #define MC_CMD_XPM_REPAIR_IN_COUNT_OFST 4 20745 #define MC_CMD_XPM_REPAIR_IN_COUNT_LEN 4 20746 20747 /* MC_CMD_XPM_REPAIR_OUT msgresponse */ 20748 #define MC_CMD_XPM_REPAIR_OUT_LEN 0 20749 20750 20751 /***********************************/ 20752 /* MC_CMD_XPM_DECODER_TEST 20753 * Test XPM memory address decoders for gross manufacturing defects. Can only 20754 * be performed on an unprogrammed part. 20755 */ 20756 #define MC_CMD_XPM_DECODER_TEST 0x10a 20757 #undef MC_CMD_0x10a_PRIVILEGE_CTG 20758 20759 #define MC_CMD_0x10a_PRIVILEGE_CTG SRIOV_CTG_INSECURE 20760 20761 /* MC_CMD_XPM_DECODER_TEST_IN msgrequest */ 20762 #define MC_CMD_XPM_DECODER_TEST_IN_LEN 0 20763 20764 /* MC_CMD_XPM_DECODER_TEST_OUT msgresponse */ 20765 #define MC_CMD_XPM_DECODER_TEST_OUT_LEN 0 20766 20767 20768 /***********************************/ 20769 /* MC_CMD_XPM_WRITE_TEST 20770 * XPM memory write test. Test XPM write logic for gross manufacturing defects 20771 * by writing to a dedicated test row. There are 16 locations in the test row 20772 * and the test can only be performed on locations that have not been 20773 * previously used (i.e. can be run at most 16 times). The test will pick the 20774 * first available location to use, or fail with ENOSPC if none left. 20775 */ 20776 #define MC_CMD_XPM_WRITE_TEST 0x10b 20777 #undef MC_CMD_0x10b_PRIVILEGE_CTG 20778 20779 #define MC_CMD_0x10b_PRIVILEGE_CTG SRIOV_CTG_INSECURE 20780 20781 /* MC_CMD_XPM_WRITE_TEST_IN msgrequest */ 20782 #define MC_CMD_XPM_WRITE_TEST_IN_LEN 0 20783 20784 /* MC_CMD_XPM_WRITE_TEST_OUT msgresponse */ 20785 #define MC_CMD_XPM_WRITE_TEST_OUT_LEN 0 20786 20787 20788 /***********************************/ 20789 /* MC_CMD_EXEC_SIGNED 20790 * Check the CMAC of the contents of IMEM and DMEM against the value supplied 20791 * and if correct begin execution from the start of IMEM. The caller supplies a 20792 * key ID, the length of IMEM and DMEM to validate and the expected CMAC. CMAC 20793 * computation runs from the start of IMEM, and from the start of DMEM + 16k, 20794 * to match flash booting. The command will respond with EINVAL if the CMAC 20795 * does match, otherwise it will respond with success before it jumps to IMEM. 20796 */ 20797 #define MC_CMD_EXEC_SIGNED 0x10c 20798 #undef MC_CMD_0x10c_PRIVILEGE_CTG 20799 20800 #define MC_CMD_0x10c_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 20801 20802 /* MC_CMD_EXEC_SIGNED_IN msgrequest */ 20803 #define MC_CMD_EXEC_SIGNED_IN_LEN 28 20804 /* the length of code to include in the CMAC */ 20805 #define MC_CMD_EXEC_SIGNED_IN_CODELEN_OFST 0 20806 #define MC_CMD_EXEC_SIGNED_IN_CODELEN_LEN 4 20807 /* the length of date to include in the CMAC */ 20808 #define MC_CMD_EXEC_SIGNED_IN_DATALEN_OFST 4 20809 #define MC_CMD_EXEC_SIGNED_IN_DATALEN_LEN 4 20810 /* the XPM sector containing the key to use */ 20811 #define MC_CMD_EXEC_SIGNED_IN_KEYSECTOR_OFST 8 20812 #define MC_CMD_EXEC_SIGNED_IN_KEYSECTOR_LEN 4 20813 /* the expected CMAC value */ 20814 #define MC_CMD_EXEC_SIGNED_IN_CMAC_OFST 12 20815 #define MC_CMD_EXEC_SIGNED_IN_CMAC_LEN 16 20816 20817 /* MC_CMD_EXEC_SIGNED_OUT msgresponse */ 20818 #define MC_CMD_EXEC_SIGNED_OUT_LEN 0 20819 20820 20821 /***********************************/ 20822 /* MC_CMD_PREPARE_SIGNED 20823 * Prepare to upload a signed image. This will scrub the specified length of 20824 * the data region, which must be at least as large as the DATALEN supplied to 20825 * MC_CMD_EXEC_SIGNED. 20826 */ 20827 #define MC_CMD_PREPARE_SIGNED 0x10d 20828 #undef MC_CMD_0x10d_PRIVILEGE_CTG 20829 20830 #define MC_CMD_0x10d_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 20831 20832 /* MC_CMD_PREPARE_SIGNED_IN msgrequest */ 20833 #define MC_CMD_PREPARE_SIGNED_IN_LEN 4 20834 /* the length of data area to clear */ 20835 #define MC_CMD_PREPARE_SIGNED_IN_DATALEN_OFST 0 20836 #define MC_CMD_PREPARE_SIGNED_IN_DATALEN_LEN 4 20837 20838 /* MC_CMD_PREPARE_SIGNED_OUT msgresponse */ 20839 #define MC_CMD_PREPARE_SIGNED_OUT_LEN 0 20840 20841 20842 /***********************************/ 20843 /* MC_CMD_SET_SECURITY_RULE 20844 * Set blacklist and/or whitelist action for a particular match criteria. 20845 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See 20846 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 20847 * been used in any released code and may change during development. This note 20848 * will be removed once it is regarded as stable. 20849 */ 20850 #define MC_CMD_SET_SECURITY_RULE 0x10f 20851 #undef MC_CMD_0x10f_PRIVILEGE_CTG 20852 20853 #define MC_CMD_0x10f_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 20854 20855 /* MC_CMD_SET_SECURITY_RULE_IN msgrequest */ 20856 #define MC_CMD_SET_SECURITY_RULE_IN_LEN 92 20857 /* fields to include in match criteria */ 20858 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_FIELDS_OFST 0 20859 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_FIELDS_LEN 4 20860 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_IP_OFST 0 20861 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_IP_LBN 0 20862 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_IP_WIDTH 1 20863 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_IP_OFST 0 20864 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_IP_LBN 1 20865 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_IP_WIDTH 1 20866 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_MAC_OFST 0 20867 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_MAC_LBN 2 20868 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_MAC_WIDTH 1 20869 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORT_OFST 0 20870 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORT_LBN 3 20871 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORT_WIDTH 1 20872 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_MAC_OFST 0 20873 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_MAC_LBN 4 20874 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_MAC_WIDTH 1 20875 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORT_OFST 0 20876 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORT_LBN 5 20877 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORT_WIDTH 1 20878 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_ETHER_TYPE_OFST 0 20879 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_ETHER_TYPE_LBN 6 20880 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_ETHER_TYPE_WIDTH 1 20881 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_INNER_VLAN_OFST 0 20882 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_INNER_VLAN_LBN 7 20883 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_INNER_VLAN_WIDTH 1 20884 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_OUTER_VLAN_OFST 0 20885 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_OUTER_VLAN_LBN 8 20886 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_OUTER_VLAN_WIDTH 1 20887 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_IP_PROTO_OFST 0 20888 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_IP_PROTO_LBN 9 20889 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_IP_PROTO_WIDTH 1 20890 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_PHYSICAL_PORT_OFST 0 20891 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_PHYSICAL_PORT_LBN 10 20892 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_PHYSICAL_PORT_WIDTH 1 20893 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_RESERVED_OFST 0 20894 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_RESERVED_LBN 11 20895 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_RESERVED_WIDTH 1 20896 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_SUBNET_ID_OFST 0 20897 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_SUBNET_ID_LBN 12 20898 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_SUBNET_ID_WIDTH 1 20899 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORTRANGE_ID_OFST 0 20900 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORTRANGE_ID_LBN 13 20901 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_REMOTE_PORTRANGE_ID_WIDTH 1 20902 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORTRANGE_ID_OFST 0 20903 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORTRANGE_ID_LBN 14 20904 #define MC_CMD_SET_SECURITY_RULE_IN_MATCH_LOCAL_PORTRANGE_ID_WIDTH 1 20905 /* remote MAC address to match (as bytes in network order) */ 20906 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_MAC_OFST 4 20907 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_MAC_LEN 6 20908 /* remote port to match (as bytes in network order) */ 20909 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_PORT_OFST 10 20910 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_PORT_LEN 2 20911 /* local MAC address to match (as bytes in network order) */ 20912 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_MAC_OFST 12 20913 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_MAC_LEN 6 20914 /* local port to match (as bytes in network order) */ 20915 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_PORT_OFST 18 20916 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_PORT_LEN 2 20917 /* Ethernet type to match (as bytes in network order) */ 20918 #define MC_CMD_SET_SECURITY_RULE_IN_ETHER_TYPE_OFST 20 20919 #define MC_CMD_SET_SECURITY_RULE_IN_ETHER_TYPE_LEN 2 20920 /* Inner VLAN tag to match (as bytes in network order) */ 20921 #define MC_CMD_SET_SECURITY_RULE_IN_INNER_VLAN_OFST 22 20922 #define MC_CMD_SET_SECURITY_RULE_IN_INNER_VLAN_LEN 2 20923 /* Outer VLAN tag to match (as bytes in network order) */ 20924 #define MC_CMD_SET_SECURITY_RULE_IN_OUTER_VLAN_OFST 24 20925 #define MC_CMD_SET_SECURITY_RULE_IN_OUTER_VLAN_LEN 2 20926 /* IP protocol to match (in low byte; set high byte to 0) */ 20927 #define MC_CMD_SET_SECURITY_RULE_IN_IP_PROTO_OFST 26 20928 #define MC_CMD_SET_SECURITY_RULE_IN_IP_PROTO_LEN 2 20929 /* Physical port to match (as little-endian 32-bit value) */ 20930 #define MC_CMD_SET_SECURITY_RULE_IN_PHYSICAL_PORT_OFST 28 20931 #define MC_CMD_SET_SECURITY_RULE_IN_PHYSICAL_PORT_LEN 4 20932 /* Reserved; set to 0 */ 20933 #define MC_CMD_SET_SECURITY_RULE_IN_RESERVED_OFST 32 20934 #define MC_CMD_SET_SECURITY_RULE_IN_RESERVED_LEN 4 20935 /* remote IP address to match (as bytes in network order; set last 12 bytes to 20936 * 0 for IPv4 address) 20937 */ 20938 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_IP_OFST 36 20939 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_IP_LEN 16 20940 /* local IP address to match (as bytes in network order; set last 12 bytes to 0 20941 * for IPv4 address) 20942 */ 20943 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_IP_OFST 52 20944 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_IP_LEN 16 20945 /* remote subnet ID to match (as little-endian 32-bit value); note that remote 20946 * subnets are matched by mapping the remote IP address to a "subnet ID" via a 20947 * data structure which must already have been configured using 20948 * MC_CMD_SUBNET_MAP_SET_NODE appropriately 20949 */ 20950 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_SUBNET_ID_OFST 68 20951 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_SUBNET_ID_LEN 4 20952 /* remote portrange ID to match (as little-endian 32-bit value); note that 20953 * remote port ranges are matched by mapping the remote port to a "portrange 20954 * ID" via a data structure which must already have been configured using 20955 * MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE 20956 */ 20957 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_PORTRANGE_ID_OFST 72 20958 #define MC_CMD_SET_SECURITY_RULE_IN_REMOTE_PORTRANGE_ID_LEN 4 20959 /* local portrange ID to match (as little-endian 32-bit value); note that local 20960 * port ranges are matched by mapping the local port to a "portrange ID" via a 20961 * data structure which must already have been configured using 20962 * MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE 20963 */ 20964 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_PORTRANGE_ID_OFST 76 20965 #define MC_CMD_SET_SECURITY_RULE_IN_LOCAL_PORTRANGE_ID_LEN 4 20966 /* set the action for transmitted packets matching this rule */ 20967 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_OFST 80 20968 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_LEN 4 20969 /* enum: make no decision */ 20970 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_NONE 0x0 20971 /* enum: decide to accept the packet */ 20972 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_WHITELIST 0x1 20973 /* enum: decide to drop the packet */ 20974 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_BLACKLIST 0x2 20975 /* enum: inform the TSA controller about some sample of packets matching this 20976 * rule (via MC_CMD_TSA_INFO_IN_PKT_SAMPLE messages); may be bitwise-ORed with 20977 * either the WHITELIST or BLACKLIST action 20978 */ 20979 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_SAMPLE 0x4 20980 /* enum: do not change the current TX action */ 20981 #define MC_CMD_SET_SECURITY_RULE_IN_TX_ACTION_UNCHANGED 0xffffffff 20982 /* set the action for received packets matching this rule */ 20983 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_OFST 84 20984 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_LEN 4 20985 /* enum: make no decision */ 20986 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_NONE 0x0 20987 /* enum: decide to accept the packet */ 20988 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_WHITELIST 0x1 20989 /* enum: decide to drop the packet */ 20990 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_BLACKLIST 0x2 20991 /* enum: inform the TSA controller about some sample of packets matching this 20992 * rule (via MC_CMD_TSA_INFO_IN_PKT_SAMPLE messages); may be bitwise-ORed with 20993 * either the WHITELIST or BLACKLIST action 20994 */ 20995 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_SAMPLE 0x4 20996 /* enum: do not change the current RX action */ 20997 #define MC_CMD_SET_SECURITY_RULE_IN_RX_ACTION_UNCHANGED 0xffffffff 20998 /* counter ID to associate with this rule; IDs are allocated using 20999 * MC_CMD_SECURITY_RULE_COUNTER_ALLOC 21000 */ 21001 #define MC_CMD_SET_SECURITY_RULE_IN_COUNTER_ID_OFST 88 21002 #define MC_CMD_SET_SECURITY_RULE_IN_COUNTER_ID_LEN 4 21003 /* enum: special value for the null counter ID */ 21004 #define MC_CMD_SET_SECURITY_RULE_IN_COUNTER_ID_NONE 0x0 21005 /* enum: special value to tell the MC to allocate an available counter */ 21006 #define MC_CMD_SET_SECURITY_RULE_IN_COUNTER_ID_SW_AUTO 0xeeeeeeee 21007 /* enum: special value to request use of hardware counter (Medford2 only) */ 21008 #define MC_CMD_SET_SECURITY_RULE_IN_COUNTER_ID_HW 0xffffffff 21009 21010 /* MC_CMD_SET_SECURITY_RULE_OUT msgresponse */ 21011 #define MC_CMD_SET_SECURITY_RULE_OUT_LEN 32 21012 /* new reference count for uses of counter ID */ 21013 #define MC_CMD_SET_SECURITY_RULE_OUT_COUNTER_REFCNT_OFST 0 21014 #define MC_CMD_SET_SECURITY_RULE_OUT_COUNTER_REFCNT_LEN 4 21015 /* constructed match bits for this rule (as a tracing aid only) */ 21016 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_MATCH_BITS_OFST 4 21017 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_MATCH_BITS_LEN 12 21018 /* constructed discriminator bits for this rule (as a tracing aid only) */ 21019 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_DISCRIMINATOR_OFST 16 21020 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_DISCRIMINATOR_LEN 4 21021 /* base location for probes for this rule (as a tracing aid only) */ 21022 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_PROBE_BASE_OFST 20 21023 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_PROBE_BASE_LEN 4 21024 /* step for probes for this rule (as a tracing aid only) */ 21025 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_PROBE_STEP_OFST 24 21026 #define MC_CMD_SET_SECURITY_RULE_OUT_LUE_PROBE_STEP_LEN 4 21027 /* ID for reading back the counter */ 21028 #define MC_CMD_SET_SECURITY_RULE_OUT_COUNTER_ID_OFST 28 21029 #define MC_CMD_SET_SECURITY_RULE_OUT_COUNTER_ID_LEN 4 21030 21031 21032 /***********************************/ 21033 /* MC_CMD_RESET_SECURITY_RULES 21034 * Reset all blacklist and whitelist actions for a particular physical port, or 21035 * all ports. (Medford-only; for use by SolarSecure apps, not directly by 21036 * drivers. See SF-114946-SW.) NOTE - this message definition is provisional. 21037 * It has not yet been used in any released code and may change during 21038 * development. This note will be removed once it is regarded as stable. 21039 */ 21040 #define MC_CMD_RESET_SECURITY_RULES 0x110 21041 #undef MC_CMD_0x110_PRIVILEGE_CTG 21042 21043 #define MC_CMD_0x110_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 21044 21045 /* MC_CMD_RESET_SECURITY_RULES_IN msgrequest */ 21046 #define MC_CMD_RESET_SECURITY_RULES_IN_LEN 4 21047 /* index of physical port to reset (or ALL_PHYSICAL_PORTS to reset all) */ 21048 #define MC_CMD_RESET_SECURITY_RULES_IN_PHYSICAL_PORT_OFST 0 21049 #define MC_CMD_RESET_SECURITY_RULES_IN_PHYSICAL_PORT_LEN 4 21050 /* enum: special value to reset all physical ports */ 21051 #define MC_CMD_RESET_SECURITY_RULES_IN_ALL_PHYSICAL_PORTS 0xffffffff 21052 21053 /* MC_CMD_RESET_SECURITY_RULES_OUT msgresponse */ 21054 #define MC_CMD_RESET_SECURITY_RULES_OUT_LEN 0 21055 21056 21057 /***********************************/ 21058 /* MC_CMD_GET_SECURITY_RULESET_VERSION 21059 * Return a large hash value representing a "version" of the complete set of 21060 * currently active blacklist / whitelist rules and associated data structures. 21061 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See 21062 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 21063 * been used in any released code and may change during development. This note 21064 * will be removed once it is regarded as stable. 21065 */ 21066 #define MC_CMD_GET_SECURITY_RULESET_VERSION 0x111 21067 #undef MC_CMD_0x111_PRIVILEGE_CTG 21068 21069 #define MC_CMD_0x111_PRIVILEGE_CTG SRIOV_CTG_ADMIN 21070 21071 /* MC_CMD_GET_SECURITY_RULESET_VERSION_IN msgrequest */ 21072 #define MC_CMD_GET_SECURITY_RULESET_VERSION_IN_LEN 0 21073 21074 /* MC_CMD_GET_SECURITY_RULESET_VERSION_OUT msgresponse */ 21075 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_LENMIN 1 21076 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_LENMAX 252 21077 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_LENMAX_MCDI2 1020 21078 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_LEN(num) (0+1*(num)) 21079 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_NUM(len) (((len)-0)/1) 21080 /* Opaque hash value; length may vary depending on the hash scheme used */ 21081 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_OFST 0 21082 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_LEN 1 21083 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_MINNUM 1 21084 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_MAXNUM 252 21085 #define MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION_MAXNUM_MCDI2 1020 21086 21087 21088 /***********************************/ 21089 /* MC_CMD_SECURITY_RULE_COUNTER_ALLOC 21090 * Allocate counters for use with blacklist / whitelist rules. (Medford-only; 21091 * for use by SolarSecure apps, not directly by drivers. See SF-114946-SW.) 21092 * NOTE - this message definition is provisional. It has not yet been used in 21093 * any released code and may change during development. This note will be 21094 * removed once it is regarded as stable. 21095 */ 21096 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC 0x112 21097 #undef MC_CMD_0x112_PRIVILEGE_CTG 21098 21099 #define MC_CMD_0x112_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 21100 21101 /* MC_CMD_SECURITY_RULE_COUNTER_ALLOC_IN msgrequest */ 21102 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_IN_LEN 4 21103 /* the number of new counter IDs to request */ 21104 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_IN_NUM_COUNTERS_OFST 0 21105 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_IN_NUM_COUNTERS_LEN 4 21106 21107 /* MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT msgresponse */ 21108 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_LENMIN 4 21109 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_LENMAX 252 21110 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_LENMAX_MCDI2 1020 21111 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_LEN(num) (4+4*(num)) 21112 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_NUM(len) (((len)-4)/4) 21113 /* the number of new counter IDs allocated (may be less than the number 21114 * requested if resources are unavailable) 21115 */ 21116 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_NUM_COUNTERS_OFST 0 21117 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_NUM_COUNTERS_LEN 4 21118 /* new counter ID(s) */ 21119 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_OFST 4 21120 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_LEN 4 21121 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_MINNUM 0 21122 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_MAXNUM 62 21123 #define MC_CMD_SECURITY_RULE_COUNTER_ALLOC_OUT_COUNTER_ID_MAXNUM_MCDI2 254 21124 21125 21126 /***********************************/ 21127 /* MC_CMD_SECURITY_RULE_COUNTER_FREE 21128 * Allocate counters for use with blacklist / whitelist rules. (Medford-only; 21129 * for use by SolarSecure apps, not directly by drivers. See SF-114946-SW.) 21130 * NOTE - this message definition is provisional. It has not yet been used in 21131 * any released code and may change during development. This note will be 21132 * removed once it is regarded as stable. 21133 */ 21134 #define MC_CMD_SECURITY_RULE_COUNTER_FREE 0x113 21135 #undef MC_CMD_0x113_PRIVILEGE_CTG 21136 21137 #define MC_CMD_0x113_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 21138 21139 /* MC_CMD_SECURITY_RULE_COUNTER_FREE_IN msgrequest */ 21140 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_LENMIN 4 21141 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_LENMAX 252 21142 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_LENMAX_MCDI2 1020 21143 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_LEN(num) (4+4*(num)) 21144 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_NUM(len) (((len)-4)/4) 21145 /* the number of counter IDs to free */ 21146 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_NUM_COUNTERS_OFST 0 21147 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_NUM_COUNTERS_LEN 4 21148 /* the counter ID(s) to free */ 21149 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_OFST 4 21150 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_LEN 4 21151 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_MINNUM 0 21152 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_MAXNUM 62 21153 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_IN_COUNTER_ID_MAXNUM_MCDI2 254 21154 21155 /* MC_CMD_SECURITY_RULE_COUNTER_FREE_OUT msgresponse */ 21156 #define MC_CMD_SECURITY_RULE_COUNTER_FREE_OUT_LEN 0 21157 21158 21159 /***********************************/ 21160 /* MC_CMD_SUBNET_MAP_SET_NODE 21161 * Atomically update a trie node in the map of subnets to subnet IDs. The 21162 * constants in the descriptions of the fields of this message may be retrieved 21163 * by the GET_SECURITY_RULE_INFO op of MC_CMD_GET_PARSER_DISP_INFO. (Medford- 21164 * only; for use by SolarSecure apps, not directly by drivers. See 21165 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 21166 * been used in any released code and may change during development. This note 21167 * will be removed once it is regarded as stable. 21168 */ 21169 #define MC_CMD_SUBNET_MAP_SET_NODE 0x114 21170 #undef MC_CMD_0x114_PRIVILEGE_CTG 21171 21172 #define MC_CMD_0x114_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 21173 21174 /* MC_CMD_SUBNET_MAP_SET_NODE_IN msgrequest */ 21175 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_LENMIN 6 21176 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_LENMAX 252 21177 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_LENMAX_MCDI2 1020 21178 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_LEN(num) (4+2*(num)) 21179 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_NUM(len) (((len)-4)/2) 21180 /* node to update in the range 0 .. SUBNET_MAP_NUM_NODES-1 */ 21181 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_NODE_ID_OFST 0 21182 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_NODE_ID_LEN 4 21183 /* SUBNET_MAP_NUM_ENTRIES_PER_NODE new entries; each entry is either a pointer 21184 * to the next node, expressed as an offset in the trie memory (i.e. node ID 21185 * multiplied by SUBNET_MAP_NUM_ENTRIES_PER_NODE), or a leaf value in the range 21186 * SUBNET_ID_MIN .. SUBNET_ID_MAX 21187 */ 21188 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_OFST 4 21189 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_LEN 2 21190 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_MINNUM 1 21191 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_MAXNUM 124 21192 #define MC_CMD_SUBNET_MAP_SET_NODE_IN_ENTRY_MAXNUM_MCDI2 508 21193 21194 /* MC_CMD_SUBNET_MAP_SET_NODE_OUT msgresponse */ 21195 #define MC_CMD_SUBNET_MAP_SET_NODE_OUT_LEN 0 21196 21197 /* PORTRANGE_TREE_ENTRY structuredef */ 21198 #define PORTRANGE_TREE_ENTRY_LEN 4 21199 /* key for branch nodes (<= key takes left branch, > key takes right branch), 21200 * or magic value for leaf nodes 21201 */ 21202 #define PORTRANGE_TREE_ENTRY_BRANCH_KEY_OFST 0 21203 #define PORTRANGE_TREE_ENTRY_BRANCH_KEY_LEN 2 21204 #define PORTRANGE_TREE_ENTRY_LEAF_NODE_KEY 0xffff /* enum */ 21205 #define PORTRANGE_TREE_ENTRY_BRANCH_KEY_LBN 0 21206 #define PORTRANGE_TREE_ENTRY_BRANCH_KEY_WIDTH 16 21207 /* final portrange ID for leaf nodes (don't care for branch nodes) */ 21208 #define PORTRANGE_TREE_ENTRY_LEAF_PORTRANGE_ID_OFST 2 21209 #define PORTRANGE_TREE_ENTRY_LEAF_PORTRANGE_ID_LEN 2 21210 #define PORTRANGE_TREE_ENTRY_LEAF_PORTRANGE_ID_LBN 16 21211 #define PORTRANGE_TREE_ENTRY_LEAF_PORTRANGE_ID_WIDTH 16 21212 21213 21214 /***********************************/ 21215 /* MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE 21216 * Atomically update the entire tree mapping remote port ranges to portrange 21217 * IDs. The constants in the descriptions of the fields of this message may be 21218 * retrieved by the GET_SECURITY_RULE_INFO op of MC_CMD_GET_PARSER_DISP_INFO. 21219 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See 21220 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 21221 * been used in any released code and may change during development. This note 21222 * will be removed once it is regarded as stable. 21223 */ 21224 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE 0x115 21225 #undef MC_CMD_0x115_PRIVILEGE_CTG 21226 21227 #define MC_CMD_0x115_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 21228 21229 /* MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN msgrequest */ 21230 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_LENMIN 4 21231 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_LENMAX 252 21232 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_LENMAX_MCDI2 1020 21233 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_LEN(num) (0+4*(num)) 21234 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_NUM(len) (((len)-0)/4) 21235 /* PORTRANGE_TREE_NUM_ENTRIES new entries, each laid out as a 21236 * PORTRANGE_TREE_ENTRY 21237 */ 21238 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_OFST 0 21239 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_LEN 4 21240 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MINNUM 1 21241 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MAXNUM 63 21242 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MAXNUM_MCDI2 255 21243 21244 /* MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_OUT msgresponse */ 21245 #define MC_CMD_REMOTE_PORTRANGE_MAP_SET_TREE_OUT_LEN 0 21246 21247 21248 /***********************************/ 21249 /* MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE 21250 * Atomically update the entire tree mapping remote port ranges to portrange 21251 * IDs. The constants in the descriptions of the fields of this message may be 21252 * retrieved by the GET_SECURITY_RULE_INFO op of MC_CMD_GET_PARSER_DISP_INFO. 21253 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See 21254 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet 21255 * been used in any released code and may change during development. This note 21256 * will be removed once it is regarded as stable. 21257 */ 21258 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE 0x116 21259 #undef MC_CMD_0x116_PRIVILEGE_CTG 21260 21261 #define MC_CMD_0x116_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 21262 21263 /* MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN msgrequest */ 21264 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_LENMIN 4 21265 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_LENMAX 252 21266 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_LENMAX_MCDI2 1020 21267 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_LEN(num) (0+4*(num)) 21268 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_NUM(len) (((len)-0)/4) 21269 /* PORTRANGE_TREE_NUM_ENTRIES new entries, each laid out as a 21270 * PORTRANGE_TREE_ENTRY 21271 */ 21272 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_OFST 0 21273 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_LEN 4 21274 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MINNUM 1 21275 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MAXNUM 63 21276 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_IN_ENTRIES_MAXNUM_MCDI2 255 21277 21278 /* MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_OUT msgresponse */ 21279 #define MC_CMD_LOCAL_PORTRANGE_MAP_SET_TREE_OUT_LEN 0 21280 21281 /* TUNNEL_ENCAP_UDP_PORT_ENTRY structuredef */ 21282 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_LEN 4 21283 /* UDP port (the standard ports are named below but any port may be used) */ 21284 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_UDP_PORT_OFST 0 21285 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_UDP_PORT_LEN 2 21286 /* enum: the IANA allocated UDP port for VXLAN */ 21287 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_IANA_VXLAN_UDP_PORT 0x12b5 21288 /* enum: the IANA allocated UDP port for Geneve */ 21289 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_IANA_GENEVE_UDP_PORT 0x17c1 21290 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_UDP_PORT_LBN 0 21291 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_UDP_PORT_WIDTH 16 21292 /* tunnel encapsulation protocol (only those named below are supported) */ 21293 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_PROTOCOL_OFST 2 21294 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_PROTOCOL_LEN 2 21295 /* enum: This port will be used for VXLAN on both IPv4 and IPv6 */ 21296 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_VXLAN 0x0 21297 /* enum: This port will be used for Geneve on both IPv4 and IPv6 */ 21298 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_GENEVE 0x1 21299 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_PROTOCOL_LBN 16 21300 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_PROTOCOL_WIDTH 16 21301 21302 21303 /***********************************/ 21304 /* MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS 21305 * Configure UDP ports for tunnel encapsulation hardware acceleration. The 21306 * parser-dispatcher will attempt to parse traffic on these ports as tunnel 21307 * encapsulation PDUs and filter them using the tunnel encapsulation filter 21308 * chain rather than the standard filter chain. Note that this command can 21309 * cause all functions to see a reset. (Available on Medford only.) 21310 */ 21311 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS 0x117 21312 #undef MC_CMD_0x117_PRIVILEGE_CTG 21313 21314 #define MC_CMD_0x117_PRIVILEGE_CTG SRIOV_CTG_ADMIN 21315 21316 /* MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN msgrequest */ 21317 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LENMIN 4 21318 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LENMAX 68 21319 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LENMAX_MCDI2 68 21320 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LEN(num) (4+4*(num)) 21321 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_NUM(len) (((len)-4)/4) 21322 /* Flags */ 21323 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_FLAGS_OFST 0 21324 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_FLAGS_LEN 2 21325 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_UNLOADING_OFST 0 21326 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_UNLOADING_LBN 0 21327 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_UNLOADING_WIDTH 1 21328 /* The number of entries in the ENTRIES array */ 21329 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_NUM_ENTRIES_OFST 2 21330 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_NUM_ENTRIES_LEN 2 21331 /* Entries defining the UDP port to protocol mapping, each laid out as a 21332 * TUNNEL_ENCAP_UDP_PORT_ENTRY 21333 */ 21334 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_OFST 4 21335 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_LEN 4 21336 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_MINNUM 0 21337 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_MAXNUM 16 21338 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_MAXNUM_MCDI2 16 21339 21340 /* MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT msgresponse */ 21341 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_LEN 2 21342 /* Flags */ 21343 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_FLAGS_OFST 0 21344 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_FLAGS_LEN 2 21345 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_RESETTING_OFST 0 21346 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_RESETTING_LBN 0 21347 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_RESETTING_WIDTH 1 21348 21349 21350 /***********************************/ 21351 /* MC_CMD_RX_BALANCING 21352 * Configure a port upconverter to distribute the packets on both RX engines. 21353 * Packets are distributed based on a table with the destination vFIFO. The 21354 * index of the table is a hash of source and destination of IPV4 and VLAN 21355 * priority. 21356 */ 21357 #define MC_CMD_RX_BALANCING 0x118 21358 #undef MC_CMD_0x118_PRIVILEGE_CTG 21359 21360 #define MC_CMD_0x118_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 21361 21362 /* MC_CMD_RX_BALANCING_IN msgrequest */ 21363 #define MC_CMD_RX_BALANCING_IN_LEN 16 21364 /* The RX port whose upconverter table will be modified */ 21365 #define MC_CMD_RX_BALANCING_IN_PORT_OFST 0 21366 #define MC_CMD_RX_BALANCING_IN_PORT_LEN 4 21367 /* The VLAN priority associated to the table index and vFIFO */ 21368 #define MC_CMD_RX_BALANCING_IN_PRIORITY_OFST 4 21369 #define MC_CMD_RX_BALANCING_IN_PRIORITY_LEN 4 21370 /* The resulting bit of SRC^DST for indexing the table */ 21371 #define MC_CMD_RX_BALANCING_IN_SRC_DST_OFST 8 21372 #define MC_CMD_RX_BALANCING_IN_SRC_DST_LEN 4 21373 /* The RX engine to which the vFIFO in the table entry will point to */ 21374 #define MC_CMD_RX_BALANCING_IN_ENG_OFST 12 21375 #define MC_CMD_RX_BALANCING_IN_ENG_LEN 4 21376 21377 /* MC_CMD_RX_BALANCING_OUT msgresponse */ 21378 #define MC_CMD_RX_BALANCING_OUT_LEN 0 21379 21380 21381 /***********************************/ 21382 /* MC_CMD_TSA_BIND 21383 * TSAN - TSAC binding communication protocol. Refer to SF-115479-TC for more 21384 * info in respect to the binding protocol. 21385 */ 21386 #define MC_CMD_TSA_BIND 0x119 21387 #undef MC_CMD_0x119_PRIVILEGE_CTG 21388 21389 #define MC_CMD_0x119_PRIVILEGE_CTG SRIOV_CTG_ADMIN 21390 21391 /* MC_CMD_TSA_BIND_IN msgrequest: Protocol operation code */ 21392 #define MC_CMD_TSA_BIND_IN_LEN 4 21393 #define MC_CMD_TSA_BIND_IN_OP_OFST 0 21394 #define MC_CMD_TSA_BIND_IN_OP_LEN 4 21395 /* enum: Obsolete. Use MC_CMD_SECURE_NIC_INFO_IN_STATUS. */ 21396 #define MC_CMD_TSA_BIND_OP_GET_ID 0x1 21397 /* enum: Get a binding ticket from the TSAN. The binding ticket is used as part 21398 * of the binding procedure to authorize the binding of an adapter to a TSAID. 21399 * Refer to SF-114946-SW for more information. This sub-command is only 21400 * available over a TLS secure connection between the TSAN and TSAC. 21401 */ 21402 #define MC_CMD_TSA_BIND_OP_GET_TICKET 0x2 21403 /* enum: Opcode associated with the propagation of a private key that TSAN uses 21404 * as part of post-binding authentication procedure. More specifically, TSAN 21405 * uses this key for a signing operation. TSAC uses the counterpart public key 21406 * to verify the signature. Note - The post-binding authentication occurs when 21407 * the TSAN-TSAC connection terminates and TSAN tries to reconnect. Refer to 21408 * SF-114946-SW for more information. This sub-command is only available over a 21409 * TLS secure connection between the TSAN and TSAC. 21410 */ 21411 #define MC_CMD_TSA_BIND_OP_SET_KEY 0x3 21412 /* enum: Request an insecure unbinding operation. This sub-command is available 21413 * for any privileged client. 21414 */ 21415 #define MC_CMD_TSA_BIND_OP_UNBIND 0x4 21416 /* enum: Obsolete. Use MC_CMD_TSA_BIND_OP_SECURE_UNBIND. */ 21417 #define MC_CMD_TSA_BIND_OP_UNBIND_EXT 0x5 21418 /* enum: Opcode associated with the propagation of the unbinding secret token. 21419 * TSAN persists the unbinding secret token. Refer to SF-115479-TC for more 21420 * information. This sub-command is only available over a TLS secure connection 21421 * between the TSAN and TSAC. 21422 */ 21423 #define MC_CMD_TSA_BIND_OP_SET_UNBINDTOKEN 0x6 21424 /* enum: Obsolete. Use MC_CMD_TSA_BIND_OP_SECURE_DECOMMISSION. */ 21425 #define MC_CMD_TSA_BIND_OP_DECOMMISSION 0x7 21426 /* enum: Obsolete. Use MC_CMD_GET_CERTIFICATE. */ 21427 #define MC_CMD_TSA_BIND_OP_GET_CERTIFICATE 0x8 21428 /* enum: Request a secure unbinding operation using unbinding token. This sub- 21429 * command is available for any privileged client. 21430 */ 21431 #define MC_CMD_TSA_BIND_OP_SECURE_UNBIND 0x9 21432 /* enum: Request a secure decommissioning operation. This sub-command is 21433 * available for any privileged client. 21434 */ 21435 #define MC_CMD_TSA_BIND_OP_SECURE_DECOMMISSION 0xa 21436 /* enum: Test facility that allows an adapter to be configured to behave as if 21437 * Bound to a TSA controller with restricted MCDI administrator operations. 21438 * This operation is primarily intended to aid host driver development. 21439 */ 21440 #define MC_CMD_TSA_BIND_OP_TEST_MCDI 0xb 21441 21442 /* MC_CMD_TSA_BIND_IN_GET_ID msgrequest: Obsolete. Use 21443 * MC_CMD_SECURE_NIC_INFO_IN_STATUS. 21444 */ 21445 #define MC_CMD_TSA_BIND_IN_GET_ID_LEN 20 21446 /* The operation requested. */ 21447 #define MC_CMD_TSA_BIND_IN_GET_ID_OP_OFST 0 21448 #define MC_CMD_TSA_BIND_IN_GET_ID_OP_LEN 4 21449 /* Cryptographic nonce that TSAC generates and sends to TSAN. TSAC generates 21450 * the nonce every time as part of the TSAN post-binding authentication 21451 * procedure when the TSAN-TSAC connection terminates and TSAN does need to re- 21452 * connect to the TSAC. Refer to SF-114946-SW for more information. 21453 */ 21454 #define MC_CMD_TSA_BIND_IN_GET_ID_NONCE_OFST 4 21455 #define MC_CMD_TSA_BIND_IN_GET_ID_NONCE_LEN 16 21456 21457 /* MC_CMD_TSA_BIND_IN_GET_TICKET msgrequest */ 21458 #define MC_CMD_TSA_BIND_IN_GET_TICKET_LEN 4 21459 /* The operation requested. */ 21460 #define MC_CMD_TSA_BIND_IN_GET_TICKET_OP_OFST 0 21461 #define MC_CMD_TSA_BIND_IN_GET_TICKET_OP_LEN 4 21462 21463 /* MC_CMD_TSA_BIND_IN_SET_KEY msgrequest */ 21464 #define MC_CMD_TSA_BIND_IN_SET_KEY_LENMIN 5 21465 #define MC_CMD_TSA_BIND_IN_SET_KEY_LENMAX 252 21466 #define MC_CMD_TSA_BIND_IN_SET_KEY_LENMAX_MCDI2 1020 21467 #define MC_CMD_TSA_BIND_IN_SET_KEY_LEN(num) (4+1*(num)) 21468 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_NUM(len) (((len)-4)/1) 21469 /* The operation requested. */ 21470 #define MC_CMD_TSA_BIND_IN_SET_KEY_OP_OFST 0 21471 #define MC_CMD_TSA_BIND_IN_SET_KEY_OP_LEN 4 21472 /* This data blob contains the private key generated by the TSAC. TSAN uses 21473 * this key for a signing operation. Note- This private key is used in 21474 * conjunction with the post-binding TSAN authentication procedure that occurs 21475 * when the TSAN-TSAC connection terminates and TSAN tries to reconnect. Refer 21476 * to SF-114946-SW for more information. 21477 */ 21478 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_OFST 4 21479 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_LEN 1 21480 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_MINNUM 1 21481 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_MAXNUM 248 21482 #define MC_CMD_TSA_BIND_IN_SET_KEY_DATKEY_MAXNUM_MCDI2 1016 21483 21484 /* MC_CMD_TSA_BIND_IN_UNBIND msgrequest: Request an insecure unbinding 21485 * operation. 21486 */ 21487 #define MC_CMD_TSA_BIND_IN_UNBIND_LEN 10 21488 /* The operation requested. */ 21489 #define MC_CMD_TSA_BIND_IN_UNBIND_OP_OFST 0 21490 #define MC_CMD_TSA_BIND_IN_UNBIND_OP_LEN 4 21491 /* TSAN unique identifier for the network adapter */ 21492 #define MC_CMD_TSA_BIND_IN_UNBIND_TSANID_OFST 4 21493 #define MC_CMD_TSA_BIND_IN_UNBIND_TSANID_LEN 6 21494 21495 /* MC_CMD_TSA_BIND_IN_UNBIND_EXT msgrequest: Obsolete. Use 21496 * MC_CMD_TSA_BIND_IN_SECURE_UNBIND. 21497 */ 21498 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_LENMIN 93 21499 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_LENMAX 252 21500 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_LENMAX_MCDI2 1020 21501 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_LEN(num) (92+1*(num)) 21502 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_NUM(len) (((len)-92)/1) 21503 /* The operation requested. */ 21504 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_OP_OFST 0 21505 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_OP_LEN 4 21506 /* TSAN unique identifier for the network adapter */ 21507 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSANID_OFST 4 21508 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSANID_LEN 6 21509 /* Align the arguments to 32 bits */ 21510 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSANID_RSVD_OFST 10 21511 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSANID_RSVD_LEN 2 21512 /* This attribute identifies the TSA infrastructure domain. The length of the 21513 * TSAID attribute is limited to 64 bytes. This is how TSA SDK defines the max 21514 * length. Note- The TSAID is the Organizational Unit Name filed as part of the 21515 * root and server certificates. 21516 */ 21517 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSAID_OFST 12 21518 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSAID_LEN 1 21519 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_TSAID_NUM 64 21520 /* Unbinding secret token. The adapter validates this unbinding token by 21521 * comparing it against the one stored on the adapter as part of the 21522 * MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN msgrequest. Refer to SF-115479-TC for 21523 * more information. 21524 */ 21525 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_UNBINDTOKEN_OFST 76 21526 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_UNBINDTOKEN_LEN 16 21527 /* This is the signature of the above mentioned fields- TSANID, TSAID and 21528 * UNBINDTOKEN. As per current requirements, the SIG opaque data blob contains 21529 * ECDSA ECC-384 based signature. The ECC curve is secp384r1. The signature is 21530 * also ASN-1 encoded. Note- The signature is verified based on the public key 21531 * stored into the root certificate that is provisioned on the adapter side. 21532 * This key is known as the PUKtsaid. Refer to SF-115479-TC for more 21533 * information. 21534 */ 21535 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_OFST 92 21536 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_LEN 1 21537 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_MINNUM 1 21538 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_MAXNUM 160 21539 #define MC_CMD_TSA_BIND_IN_UNBIND_EXT_SIG_MAXNUM_MCDI2 928 21540 21541 /* MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN msgrequest */ 21542 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_LEN 20 21543 /* The operation requested. */ 21544 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_OP_OFST 0 21545 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_OP_LEN 4 21546 /* Unbinding secret token. TSAN persists the unbinding secret token. Refer to 21547 * SF-115479-TC for more information. 21548 */ 21549 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_UNBINDTOKEN_OFST 4 21550 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_UNBINDTOKEN_LEN 16 21551 /* enum: There are situations when the binding process does not complete 21552 * successfully due to key, other attributes corruption at the database level 21553 * (Controller). Adapter can't connect to the controller anymore. To recover, 21554 * make usage of the decommission command that forces the adapter into 21555 * unbinding state. 21556 */ 21557 #define MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN_ADAPTER_BINDING_FAILURE 0x1 21558 21559 /* MC_CMD_TSA_BIND_IN_DECOMMISSION msgrequest: Obsolete. Use 21560 * MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION. 21561 */ 21562 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_LENMIN 109 21563 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_LENMAX 252 21564 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_LENMAX_MCDI2 1020 21565 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_LEN(num) (108+1*(num)) 21566 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_NUM(len) (((len)-108)/1) 21567 /* This is the signature of the above mentioned fields- TSAID, USER and REASON. 21568 * As per current requirements, the SIG opaque data blob contains ECDSA ECC-384 21569 * based signature. The ECC curve is secp384r1. The signature is also ASN-1 21570 * encoded . Note- The signature is verified based on the public key stored 21571 * into the root certificate that is provisioned on the adapter side. This key 21572 * is known as the PUKtsaid. Refer to SF-115479-TC for more information. 21573 */ 21574 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_OFST 108 21575 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_LEN 1 21576 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_MINNUM 1 21577 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_MAXNUM 144 21578 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_SIG_MAXNUM_MCDI2 912 21579 /* The operation requested. */ 21580 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_OP_OFST 0 21581 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_OP_LEN 4 21582 /* This attribute identifies the TSA infrastructure domain. The length of the 21583 * TSAID attribute is limited to 64 bytes. This is how TSA SDK defines the max 21584 * length. Note- The TSAID is the Organizational Unit Name filed as part of the 21585 * root and server certificates. 21586 */ 21587 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_TSAID_OFST 4 21588 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_TSAID_LEN 1 21589 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_TSAID_NUM 64 21590 /* User ID that comes, as an example, from the Controller. Note- The 33 byte 21591 * length of this attribute is max length of the linux user name plus null 21592 * character. 21593 */ 21594 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_USER_OFST 68 21595 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_USER_LEN 1 21596 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_USER_NUM 33 21597 /* Align the arguments to 32 bits */ 21598 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_USER_RSVD_OFST 101 21599 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_USER_RSVD_LEN 3 21600 /* Reason of why decommissioning happens Note- The list of reasons, defined as 21601 * part of the enumeration below, can be extended. 21602 */ 21603 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_REASON_OFST 104 21604 #define MC_CMD_TSA_BIND_IN_DECOMMISSION_REASON_LEN 4 21605 21606 /* MC_CMD_TSA_BIND_IN_GET_CERTIFICATE msgrequest: Obsolete. Use 21607 * MC_CMD_GET_CERTIFICATE. 21608 */ 21609 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_LEN 8 21610 /* The operation requested, must be MC_CMD_TSA_BIND_OP_GET_CERTIFICATE. */ 21611 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_OP_OFST 0 21612 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_OP_LEN 4 21613 /* Type of the certificate to be retrieved. */ 21614 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_TYPE_OFST 4 21615 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_TYPE_LEN 4 21616 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_UNUSED 0x0 /* enum */ 21617 /* enum: Adapter Authentication Certificate (AAC). The AAC is used by the 21618 * controller to verify the authenticity of the adapter. 21619 */ 21620 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_AAC 0x1 21621 /* enum: Adapter Authentication Signing Certificate (AASC). The AASC is used by 21622 * the controller to verify the validity of AAC. 21623 */ 21624 #define MC_CMD_TSA_BIND_IN_GET_CERTIFICATE_AASC 0x2 21625 21626 /* MC_CMD_TSA_BIND_IN_SECURE_UNBIND msgrequest: Request a secure unbinding 21627 * operation using unbinding token. 21628 */ 21629 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_LENMIN 97 21630 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_LENMAX 200 21631 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_LENMAX_MCDI2 200 21632 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_LEN(num) (96+1*(num)) 21633 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_NUM(len) (((len)-96)/1) 21634 /* The operation requested, must be MC_CMD_TSA_BIND_OP_SECURE_UNBIND. */ 21635 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_OP_OFST 0 21636 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_OP_LEN 4 21637 /* Type of the message. (MESSAGE_TYPE_xxx) Must be 21638 * MESSAGE_TYPE_TSA_SECURE_UNBIND. 21639 */ 21640 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_MESSAGE_TYPE_OFST 4 21641 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_MESSAGE_TYPE_LEN 4 21642 /* TSAN unique identifier for the network adapter */ 21643 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSANID_OFST 8 21644 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSANID_LEN 6 21645 /* Align the arguments to 32 bits */ 21646 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSANID_RSVD_OFST 14 21647 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSANID_RSVD_LEN 2 21648 /* A NUL padded US-ASCII string identifying the TSA infrastructure domain. This 21649 * field is for information only, and not used by the firmware. Note- The TSAID 21650 * is the Organizational Unit Name field as part of the root and server 21651 * certificates. 21652 */ 21653 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSAID_OFST 16 21654 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSAID_LEN 1 21655 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_TSAID_NUM 64 21656 /* Unbinding secret token. The adapter validates this unbinding token by 21657 * comparing it against the one stored on the adapter as part of the 21658 * MC_CMD_TSA_BIND_IN_SET_UNBINDTOKEN msgrequest. Refer to SF-115479-TC for 21659 * more information. 21660 */ 21661 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_UNBINDTOKEN_OFST 80 21662 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_UNBINDTOKEN_LEN 16 21663 /* The signature computed and encoded as specified by MESSAGE_TYPE. */ 21664 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_OFST 96 21665 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_LEN 1 21666 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_MINNUM 1 21667 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_MAXNUM 104 21668 #define MC_CMD_TSA_BIND_IN_SECURE_UNBIND_SIG_MAXNUM_MCDI2 104 21669 21670 /* MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION msgrequest: Request a secure 21671 * decommissioning operation. 21672 */ 21673 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_LENMIN 113 21674 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_LENMAX 216 21675 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_LENMAX_MCDI2 216 21676 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_LEN(num) (112+1*(num)) 21677 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_NUM(len) (((len)-112)/1) 21678 /* The operation requested, must be MC_CMD_TSA_BIND_OP_SECURE_DECOMMISSION. */ 21679 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_OP_OFST 0 21680 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_OP_LEN 4 21681 /* Type of the message. (MESSAGE_TYPE_xxx) Must be 21682 * MESSAGE_TYPE_SECURE_DECOMMISSION. 21683 */ 21684 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_MESSAGE_TYPE_OFST 4 21685 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_MESSAGE_TYPE_LEN 4 21686 /* A NUL padded US-ASCII string identifying the TSA infrastructure domain. This 21687 * field is for information only, and not used by the firmware. Note- The TSAID 21688 * is the Organizational Unit Name field as part of the root and server 21689 * certificates. 21690 */ 21691 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_TSAID_OFST 8 21692 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_TSAID_LEN 1 21693 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_TSAID_NUM 64 21694 /* A NUL padded US-ASCII string containing user name of the creator of the 21695 * decommissioning ticket. This field is for information only, and not used by 21696 * the firmware. 21697 */ 21698 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_USER_OFST 72 21699 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_USER_LEN 1 21700 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_USER_NUM 36 21701 /* Reason of why decommissioning happens */ 21702 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_REASON_OFST 108 21703 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_REASON_LEN 4 21704 /* enum: There are situations when the binding process does not complete 21705 * successfully due to key, other attributes corruption at the database level 21706 * (Controller). Adapter can't connect to the controller anymore. To recover, 21707 * use the decommission command to force the adapter into unbound state. 21708 */ 21709 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_ADAPTER_BINDING_FAILURE 0x1 21710 /* The signature computed and encoded as specified by MESSAGE_TYPE. */ 21711 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_OFST 112 21712 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_LEN 1 21713 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_MINNUM 1 21714 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_MAXNUM 104 21715 #define MC_CMD_TSA_BIND_IN_SECURE_DECOMMISSION_SIG_MAXNUM_MCDI2 104 21716 21717 /* MC_CMD_TSA_BIND_IN_TEST_MCDI msgrequest: Test mode that emulates MCDI 21718 * interface restrictions of a bound adapter. This operation is intended for 21719 * test use on adapters that are not deployed and bound to a TSA Controller. 21720 * Using it on a Bound adapter will succeed but will not alter the MCDI 21721 * privileges as MCDI operations will already be restricted. 21722 */ 21723 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_LEN 8 21724 /* The operation requested must be MC_CMD_TSA_BIND_OP_TEST_MCDI. */ 21725 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_OP_OFST 0 21726 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_OP_LEN 4 21727 /* Enable or disable emulation of bound adapter */ 21728 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_CTRL_OFST 4 21729 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_CTRL_LEN 4 21730 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_DISABLE 0x0 /* enum */ 21731 #define MC_CMD_TSA_BIND_IN_TEST_MCDI_ENABLE 0x1 /* enum */ 21732 21733 /* MC_CMD_TSA_BIND_OUT_GET_ID msgresponse: Obsolete. Use 21734 * MC_CMD_SECURE_NIC_INFO_OUT_STATUS. 21735 */ 21736 #define MC_CMD_TSA_BIND_OUT_GET_ID_LENMIN 15 21737 #define MC_CMD_TSA_BIND_OUT_GET_ID_LENMAX 252 21738 #define MC_CMD_TSA_BIND_OUT_GET_ID_LENMAX_MCDI2 1020 21739 #define MC_CMD_TSA_BIND_OUT_GET_ID_LEN(num) (14+1*(num)) 21740 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_NUM(len) (((len)-14)/1) 21741 /* The protocol operation code MC_CMD_TSA_BIND_OP_GET_ID that is sent back to 21742 * the caller. 21743 */ 21744 #define MC_CMD_TSA_BIND_OUT_GET_ID_OP_OFST 0 21745 #define MC_CMD_TSA_BIND_OUT_GET_ID_OP_LEN 4 21746 /* Rules engine type. Note- The rules engine type allows TSAC to further 21747 * identify the connected endpoint (e.g. TSAN, NIC Emulator) type and take the 21748 * proper action accordingly. As an example, TSAC uses the rules engine type to 21749 * select the SF key that differs in the case of TSAN vs. NIC Emulator. 21750 */ 21751 #define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_OFST 4 21752 #define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_LEN 4 21753 /* enum: Hardware rules engine. */ 21754 #define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_TSAN 0x1 21755 /* enum: Nic emulator rules engine. */ 21756 #define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_NEMU 0x2 21757 /* enum: SSFE. */ 21758 #define MC_CMD_TSA_BIND_OUT_GET_ID_RULE_ENGINE_SSFE 0x3 21759 /* TSAN unique identifier for the network adapter */ 21760 #define MC_CMD_TSA_BIND_OUT_GET_ID_TSANID_OFST 8 21761 #define MC_CMD_TSA_BIND_OUT_GET_ID_TSANID_LEN 6 21762 /* The signature data blob. The signature is computed against the message 21763 * formed by TSAN ID concatenated with the NONCE value. Refer to SF-115479-TC 21764 * for more information also in respect to the private keys that are used to 21765 * sign the message based on TSAN pre/post-binding authentication procedure. 21766 */ 21767 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_OFST 14 21768 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_LEN 1 21769 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_MINNUM 1 21770 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_MAXNUM 238 21771 #define MC_CMD_TSA_BIND_OUT_GET_ID_SIG_MAXNUM_MCDI2 1006 21772 21773 /* MC_CMD_TSA_BIND_OUT_GET_TICKET msgresponse */ 21774 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_LENMIN 5 21775 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_LENMAX 252 21776 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_LENMAX_MCDI2 1020 21777 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_LEN(num) (4+1*(num)) 21778 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_NUM(len) (((len)-4)/1) 21779 /* The protocol operation code MC_CMD_TSA_BIND_OP_GET_TICKET that is sent back 21780 * to the caller. 21781 */ 21782 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_OP_OFST 0 21783 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_OP_LEN 4 21784 /* The ticket represents the data blob construct that TSAN sends to TSAC as 21785 * part of the binding protocol. From the TSAN perspective the ticket is an 21786 * opaque construct. For more info refer to SF-115479-TC. 21787 */ 21788 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_OFST 4 21789 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_LEN 1 21790 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_MINNUM 1 21791 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_MAXNUM 248 21792 #define MC_CMD_TSA_BIND_OUT_GET_TICKET_TICKET_MAXNUM_MCDI2 1016 21793 21794 /* MC_CMD_TSA_BIND_OUT_SET_KEY msgresponse */ 21795 #define MC_CMD_TSA_BIND_OUT_SET_KEY_LEN 4 21796 /* The protocol operation code MC_CMD_TSA_BIND_OP_SET_KEY that is sent back to 21797 * the caller. 21798 */ 21799 #define MC_CMD_TSA_BIND_OUT_SET_KEY_OP_OFST 0 21800 #define MC_CMD_TSA_BIND_OUT_SET_KEY_OP_LEN 4 21801 21802 /* MC_CMD_TSA_BIND_OUT_UNBIND msgresponse: Response to insecure unbind request. 21803 */ 21804 #define MC_CMD_TSA_BIND_OUT_UNBIND_LEN 8 21805 /* Same as MC_CMD_ERR field, but included as 0 in success cases */ 21806 #define MC_CMD_TSA_BIND_OUT_UNBIND_RESULT_OFST 0 21807 #define MC_CMD_TSA_BIND_OUT_UNBIND_RESULT_LEN 4 21808 /* Extra status information */ 21809 #define MC_CMD_TSA_BIND_OUT_UNBIND_INFO_OFST 4 21810 #define MC_CMD_TSA_BIND_OUT_UNBIND_INFO_LEN 4 21811 /* enum: Unbind successful. */ 21812 #define MC_CMD_TSA_BIND_OUT_UNBIND_OK_UNBOUND 0x0 21813 /* enum: TSANID mismatch */ 21814 #define MC_CMD_TSA_BIND_OUT_UNBIND_ERR_BAD_TSANID 0x1 21815 /* enum: Unable to remove the binding ticket from persistent storage. */ 21816 #define MC_CMD_TSA_BIND_OUT_UNBIND_ERR_REMOVE_TICKET 0x2 21817 /* enum: TSAN is not bound to a binding ticket. */ 21818 #define MC_CMD_TSA_BIND_OUT_UNBIND_ERR_NOT_BOUND 0x3 21819 21820 /* MC_CMD_TSA_BIND_OUT_UNBIND_EXT msgresponse: Obsolete. Use 21821 * MC_CMD_TSA_BIND_OUT_SECURE_UNBIND. 21822 */ 21823 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_LEN 8 21824 /* Same as MC_CMD_ERR field, but included as 0 in success cases */ 21825 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_RESULT_OFST 0 21826 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_RESULT_LEN 4 21827 /* Extra status information */ 21828 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_INFO_OFST 4 21829 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_INFO_LEN 4 21830 /* enum: Unbind successful. */ 21831 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_OK_UNBOUND 0x0 21832 /* enum: TSANID mismatch */ 21833 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_ERR_BAD_TSANID 0x1 21834 /* enum: Unable to remove the binding ticket from persistent storage. */ 21835 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_ERR_REMOVE_TICKET 0x2 21836 /* enum: TSAN is not bound to a binding ticket. */ 21837 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_ERR_NOT_BOUND 0x3 21838 /* enum: Invalid unbind token */ 21839 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_ERR_BAD_TOKEN 0x4 21840 /* enum: Invalid signature */ 21841 #define MC_CMD_TSA_BIND_OUT_UNBIND_EXT_ERR_BAD_SIGNATURE 0x5 21842 21843 /* MC_CMD_TSA_BIND_OUT_SET_UNBINDTOKEN msgresponse */ 21844 #define MC_CMD_TSA_BIND_OUT_SET_UNBINDTOKEN_LEN 4 21845 /* The protocol operation code MC_CMD_TSA_BIND_OP_SET_UNBINDTOKEN that is sent 21846 * back to the caller. 21847 */ 21848 #define MC_CMD_TSA_BIND_OUT_SET_UNBINDTOKEN_OP_OFST 0 21849 #define MC_CMD_TSA_BIND_OUT_SET_UNBINDTOKEN_OP_LEN 4 21850 21851 /* MC_CMD_TSA_BIND_OUT_DECOMMISSION msgresponse: Obsolete. Use 21852 * MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION. 21853 */ 21854 #define MC_CMD_TSA_BIND_OUT_DECOMMISSION_LEN 4 21855 /* The protocol operation code MC_CMD_TSA_BIND_OP_DECOMMISSION that is sent 21856 * back to the caller. 21857 */ 21858 #define MC_CMD_TSA_BIND_OUT_DECOMMISSION_OP_OFST 0 21859 #define MC_CMD_TSA_BIND_OUT_DECOMMISSION_OP_LEN 4 21860 21861 /* MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE msgresponse */ 21862 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_LENMIN 9 21863 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_LENMAX 252 21864 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_LENMAX_MCDI2 1020 21865 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_LEN(num) (8+1*(num)) 21866 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_NUM(len) (((len)-8)/1) 21867 /* The protocol operation code MC_CMD_TSA_BIND_OP_GET_CERTIFICATE that is sent 21868 * back to the caller. 21869 */ 21870 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_OP_OFST 0 21871 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_OP_LEN 4 21872 /* Type of the certificate. */ 21873 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_TYPE_OFST 4 21874 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_TYPE_LEN 4 21875 /* Enum values, see field(s): */ 21876 /* MC_CMD_TSA_BIND_IN_GET_CERTIFICATE/TYPE */ 21877 /* The certificate data. */ 21878 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_OFST 8 21879 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_LEN 1 21880 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_MINNUM 1 21881 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_MAXNUM 244 21882 #define MC_CMD_TSA_BIND_OUT_GET_CERTIFICATE_DATA_MAXNUM_MCDI2 1012 21883 21884 /* MC_CMD_TSA_BIND_OUT_SECURE_UNBIND msgresponse: Response to secure unbind 21885 * request. 21886 */ 21887 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_LEN 8 21888 /* The protocol operation code that is sent back to the caller. */ 21889 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_OP_OFST 0 21890 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_OP_LEN 4 21891 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_RESULT_OFST 4 21892 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_RESULT_LEN 4 21893 /* enum: Unbind successful. */ 21894 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_OK_UNBOUND 0x0 21895 /* enum: TSANID mismatch */ 21896 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_ERR_BAD_TSANID 0x1 21897 /* enum: Unable to remove the binding ticket from persistent storage. */ 21898 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_ERR_REMOVE_TICKET 0x2 21899 /* enum: TSAN is not bound to a domain. */ 21900 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_ERR_NOT_BOUND 0x3 21901 /* enum: Invalid unbind token */ 21902 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_ERR_BAD_TOKEN 0x4 21903 /* enum: Invalid signature */ 21904 #define MC_CMD_TSA_BIND_OUT_SECURE_UNBIND_ERR_BAD_SIGNATURE 0x5 21905 21906 /* MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION msgresponse: Response to secure 21907 * decommission request. 21908 */ 21909 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_LEN 8 21910 /* The protocol operation code that is sent back to the caller. */ 21911 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_OP_OFST 0 21912 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_OP_LEN 4 21913 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_RESULT_OFST 4 21914 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_RESULT_LEN 4 21915 /* enum: Unbind successful. */ 21916 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_OK_UNBOUND 0x0 21917 /* enum: TSANID mismatch */ 21918 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_ERR_BAD_TSANID 0x1 21919 /* enum: Unable to remove the binding ticket from persistent storage. */ 21920 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_ERR_REMOVE_TICKET 0x2 21921 /* enum: TSAN is not bound to a domain. */ 21922 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_ERR_NOT_BOUND 0x3 21923 /* enum: Invalid unbind token */ 21924 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_ERR_BAD_TOKEN 0x4 21925 /* enum: Invalid signature */ 21926 #define MC_CMD_TSA_BIND_OUT_SECURE_DECOMMISSION_ERR_BAD_SIGNATURE 0x5 21927 21928 /* MC_CMD_TSA_BIND_OUT_TEST_MCDI msgrequest */ 21929 #define MC_CMD_TSA_BIND_OUT_TEST_MCDI_LEN 4 21930 /* The protocol operation code MC_CMD_TSA_BIND_OP_TEST_MCDI that is sent back 21931 * to the caller. 21932 */ 21933 #define MC_CMD_TSA_BIND_OUT_TEST_MCDI_OP_OFST 0 21934 #define MC_CMD_TSA_BIND_OUT_TEST_MCDI_OP_LEN 4 21935 21936 21937 /***********************************/ 21938 /* MC_CMD_MANAGE_SECURITY_RULESET_CACHE 21939 * Manage the persistent NVRAM cache of security rules created with 21940 * MC_CMD_SET_SECURITY_RULE. Note that the cache is not automatically updated 21941 * as rules are added or removed; the active ruleset must be explicitly 21942 * committed to the cache. The cache may also be explicitly invalidated, 21943 * without affecting the currently active ruleset. When the cache is valid, it 21944 * will be loaded at power on or MC reboot, instead of the default ruleset. 21945 * Rollback of the currently active ruleset to the cached version (when it is 21946 * valid) is also supported. (Medford-only; for use by SolarSecure apps, not 21947 * directly by drivers. See SF-114946-SW.) NOTE - The only sub-operation 21948 * allowed in an adapter bound to a TSA controller from the local host is 21949 * OP_GET_CACHED_VERSION. All other sub-operations are prohibited. 21950 */ 21951 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE 0x11a 21952 #undef MC_CMD_0x11a_PRIVILEGE_CTG 21953 21954 #define MC_CMD_0x11a_PRIVILEGE_CTG SRIOV_CTG_ADMIN 21955 21956 /* MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN msgrequest */ 21957 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_LEN 4 21958 /* the operation to perform */ 21959 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_OFST 0 21960 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_LEN 4 21961 /* enum: reports the ruleset version that is cached in persistent storage but 21962 * performs no other action 21963 */ 21964 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_GET_CACHED_VERSION 0x0 21965 /* enum: rolls back the active state to the cached version. (May fail with 21966 * ENOENT if there is no valid cached version.) 21967 */ 21968 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_ROLLBACK 0x1 21969 /* enum: commits the active state to the persistent cache */ 21970 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_COMMIT 0x2 21971 /* enum: invalidates the persistent cache without affecting the active state */ 21972 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_IN_OP_INVALIDATE 0x3 21973 21974 /* MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT msgresponse */ 21975 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_LENMIN 5 21976 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_LENMAX 252 21977 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_LENMAX_MCDI2 1020 21978 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_LEN(num) (4+1*(num)) 21979 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_NUM(len) (((len)-4)/1) 21980 /* indicates whether the persistent cache is valid (after completion of the 21981 * requested operation in the case of rollback, commit, or invalidate) 21982 */ 21983 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_STATE_OFST 0 21984 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_STATE_LEN 4 21985 /* enum: persistent cache is invalid (the VERSION field will be empty in this 21986 * case) 21987 */ 21988 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_STATE_INVALID 0x0 21989 /* enum: persistent cache is valid */ 21990 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_STATE_VALID 0x1 21991 /* cached ruleset version (after completion of the requested operation, in the 21992 * case of rollback, commit, or invalidate) as an opaque hash value in the same 21993 * form as MC_CMD_GET_SECURITY_RULESET_VERSION_OUT_VERSION 21994 */ 21995 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_OFST 4 21996 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_LEN 1 21997 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_MINNUM 1 21998 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_MAXNUM 248 21999 #define MC_CMD_MANAGE_SECURITY_RULESET_CACHE_OUT_VERSION_MAXNUM_MCDI2 1016 22000 22001 22002 /***********************************/ 22003 /* MC_CMD_NVRAM_PRIVATE_APPEND 22004 * Append a single TLV to the MC_USAGE_TLV partition. Returns MC_CMD_ERR_EEXIST 22005 * if the tag is already present. 22006 */ 22007 #define MC_CMD_NVRAM_PRIVATE_APPEND 0x11c 22008 #undef MC_CMD_0x11c_PRIVILEGE_CTG 22009 22010 #define MC_CMD_0x11c_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 22011 22012 /* MC_CMD_NVRAM_PRIVATE_APPEND_IN msgrequest */ 22013 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LENMIN 9 22014 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LENMAX 252 22015 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LENMAX_MCDI2 1020 22016 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LEN(num) (8+1*(num)) 22017 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_NUM(len) (((len)-8)/1) 22018 /* The tag to be appended */ 22019 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_TAG_OFST 0 22020 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_TAG_LEN 4 22021 /* The length of the data */ 22022 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LENGTH_OFST 4 22023 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_LENGTH_LEN 4 22024 /* The data to be contained in the TLV structure */ 22025 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_OFST 8 22026 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_LEN 1 22027 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_MINNUM 1 22028 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_MAXNUM 244 22029 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_MAXNUM_MCDI2 1012 22030 22031 /* MC_CMD_NVRAM_PRIVATE_APPEND_OUT msgresponse */ 22032 #define MC_CMD_NVRAM_PRIVATE_APPEND_OUT_LEN 0 22033 22034 22035 /***********************************/ 22036 /* MC_CMD_XPM_VERIFY_CONTENTS 22037 * Verify that the contents of the XPM memory is correct (Medford only). This 22038 * is used during manufacture to check that the XPM memory has been programmed 22039 * correctly at ATE. 22040 */ 22041 #define MC_CMD_XPM_VERIFY_CONTENTS 0x11b 22042 #undef MC_CMD_0x11b_PRIVILEGE_CTG 22043 22044 #define MC_CMD_0x11b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 22045 22046 /* MC_CMD_XPM_VERIFY_CONTENTS_IN msgrequest */ 22047 #define MC_CMD_XPM_VERIFY_CONTENTS_IN_LEN 4 22048 /* Data type to be checked */ 22049 #define MC_CMD_XPM_VERIFY_CONTENTS_IN_DATA_TYPE_OFST 0 22050 #define MC_CMD_XPM_VERIFY_CONTENTS_IN_DATA_TYPE_LEN 4 22051 22052 /* MC_CMD_XPM_VERIFY_CONTENTS_OUT msgresponse */ 22053 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_LENMIN 12 22054 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_LENMAX 252 22055 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_LENMAX_MCDI2 1020 22056 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_LEN(num) (12+1*(num)) 22057 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_NUM(len) (((len)-12)/1) 22058 /* Number of sectors found (test builds only) */ 22059 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_NUM_SECTORS_OFST 0 22060 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_NUM_SECTORS_LEN 4 22061 /* Number of bytes found (test builds only) */ 22062 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_NUM_BYTES_OFST 4 22063 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_NUM_BYTES_LEN 4 22064 /* Length of signature */ 22065 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIG_LENGTH_OFST 8 22066 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIG_LENGTH_LEN 4 22067 /* Signature */ 22068 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_OFST 12 22069 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_LEN 1 22070 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_MINNUM 0 22071 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_MAXNUM 240 22072 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_MAXNUM_MCDI2 1008 22073 22074 22075 /***********************************/ 22076 /* MC_CMD_SET_EVQ_TMR 22077 * Update the timer load, timer reload and timer mode values for a given EVQ. 22078 * The requested timer values (in TMR_LOAD_REQ_NS and TMR_RELOAD_REQ_NS) will 22079 * be rounded up to the granularity supported by the hardware, then truncated 22080 * to the range supported by the hardware. The resulting value after the 22081 * rounding and truncation will be returned to the caller (in TMR_LOAD_ACT_NS 22082 * and TMR_RELOAD_ACT_NS). 22083 */ 22084 #define MC_CMD_SET_EVQ_TMR 0x120 22085 #undef MC_CMD_0x120_PRIVILEGE_CTG 22086 22087 #define MC_CMD_0x120_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22088 22089 /* MC_CMD_SET_EVQ_TMR_IN msgrequest */ 22090 #define MC_CMD_SET_EVQ_TMR_IN_LEN 16 22091 /* Function-relative queue instance */ 22092 #define MC_CMD_SET_EVQ_TMR_IN_INSTANCE_OFST 0 22093 #define MC_CMD_SET_EVQ_TMR_IN_INSTANCE_LEN 4 22094 /* Requested value for timer load (in nanoseconds) */ 22095 #define MC_CMD_SET_EVQ_TMR_IN_TMR_LOAD_REQ_NS_OFST 4 22096 #define MC_CMD_SET_EVQ_TMR_IN_TMR_LOAD_REQ_NS_LEN 4 22097 /* Requested value for timer reload (in nanoseconds) */ 22098 #define MC_CMD_SET_EVQ_TMR_IN_TMR_RELOAD_REQ_NS_OFST 8 22099 #define MC_CMD_SET_EVQ_TMR_IN_TMR_RELOAD_REQ_NS_LEN 4 22100 /* Timer mode. Meanings as per EVQ_TMR_REG.TC_TIMER_VAL */ 22101 #define MC_CMD_SET_EVQ_TMR_IN_TMR_MODE_OFST 12 22102 #define MC_CMD_SET_EVQ_TMR_IN_TMR_MODE_LEN 4 22103 #define MC_CMD_SET_EVQ_TMR_IN_TIMER_MODE_DIS 0x0 /* enum */ 22104 #define MC_CMD_SET_EVQ_TMR_IN_TIMER_MODE_IMMED_START 0x1 /* enum */ 22105 #define MC_CMD_SET_EVQ_TMR_IN_TIMER_MODE_TRIG_START 0x2 /* enum */ 22106 #define MC_CMD_SET_EVQ_TMR_IN_TIMER_MODE_INT_HLDOFF 0x3 /* enum */ 22107 22108 /* MC_CMD_SET_EVQ_TMR_OUT msgresponse */ 22109 #define MC_CMD_SET_EVQ_TMR_OUT_LEN 8 22110 /* Actual value for timer load (in nanoseconds) */ 22111 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_LOAD_ACT_NS_OFST 0 22112 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_LOAD_ACT_NS_LEN 4 22113 /* Actual value for timer reload (in nanoseconds) */ 22114 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_RELOAD_ACT_NS_OFST 4 22115 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_RELOAD_ACT_NS_LEN 4 22116 22117 22118 /***********************************/ 22119 /* MC_CMD_GET_EVQ_TMR_PROPERTIES 22120 * Query properties about the event queue timers. 22121 */ 22122 #define MC_CMD_GET_EVQ_TMR_PROPERTIES 0x122 22123 #undef MC_CMD_0x122_PRIVILEGE_CTG 22124 22125 #define MC_CMD_0x122_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22126 22127 /* MC_CMD_GET_EVQ_TMR_PROPERTIES_IN msgrequest */ 22128 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_IN_LEN 0 22129 22130 /* MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT msgresponse */ 22131 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_LEN 36 22132 /* Reserved for future use. */ 22133 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_FLAGS_OFST 0 22134 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_FLAGS_LEN 4 22135 /* For timers updated via writes to EVQ_TMR_REG, this is the time interval (in 22136 * nanoseconds) for each increment of the timer load/reload count. The 22137 * requested duration of a timer is this value multiplied by the timer 22138 * load/reload count. 22139 */ 22140 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_NS_PER_COUNT_OFST 4 22141 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_NS_PER_COUNT_LEN 4 22142 /* For timers updated via writes to EVQ_TMR_REG, this is the maximum value 22143 * allowed for timer load/reload counts. 22144 */ 22145 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_MAX_COUNT_OFST 8 22146 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_MAX_COUNT_LEN 4 22147 /* For timers updated via writes to EVQ_TMR_REG, timer load/reload counts not a 22148 * multiple of this step size will be rounded in an implementation defined 22149 * manner. 22150 */ 22151 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_STEP_OFST 12 22152 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_STEP_LEN 4 22153 /* Maximum timer duration (in nanoseconds) for timers updated via MCDI. Only 22154 * meaningful if MC_CMD_SET_EVQ_TMR is implemented. 22155 */ 22156 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_MAX_NS_OFST 16 22157 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_MAX_NS_LEN 4 22158 /* Timer durations requested via MCDI that are not a multiple of this step size 22159 * will be rounded up. Only meaningful if MC_CMD_SET_EVQ_TMR is implemented. 22160 */ 22161 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_STEP_NS_OFST 20 22162 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_STEP_NS_LEN 4 22163 /* For timers updated using the bug35388 workaround, this is the time interval 22164 * (in nanoseconds) for each increment of the timer load/reload count. The 22165 * requested duration of a timer is this value multiplied by the timer 22166 * load/reload count. This field is only meaningful if the bug35388 workaround 22167 * is enabled. 22168 */ 22169 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_NS_PER_COUNT_OFST 24 22170 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_NS_PER_COUNT_LEN 4 22171 /* For timers updated using the bug35388 workaround, this is the maximum value 22172 * allowed for timer load/reload counts. This field is only meaningful if the 22173 * bug35388 workaround is enabled. 22174 */ 22175 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_MAX_COUNT_OFST 28 22176 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_MAX_COUNT_LEN 4 22177 /* For timers updated using the bug35388 workaround, timer load/reload counts 22178 * not a multiple of this step size will be rounded in an implementation 22179 * defined manner. This field is only meaningful if the bug35388 workaround is 22180 * enabled. 22181 */ 22182 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_STEP_OFST 32 22183 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_STEP_LEN 4 22184 22185 22186 /***********************************/ 22187 /* MC_CMD_ALLOCATE_TX_VFIFO_CP 22188 * When we use the TX_vFIFO_ULL mode, we can allocate common pools using the 22189 * non used switch buffers. 22190 */ 22191 #define MC_CMD_ALLOCATE_TX_VFIFO_CP 0x11d 22192 #undef MC_CMD_0x11d_PRIVILEGE_CTG 22193 22194 #define MC_CMD_0x11d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22195 22196 /* MC_CMD_ALLOCATE_TX_VFIFO_CP_IN msgrequest */ 22197 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_LEN 20 22198 /* Desired instance. Must be set to a specific instance, which is a function 22199 * local queue index. 22200 */ 22201 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_INSTANCE_OFST 0 22202 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_INSTANCE_LEN 4 22203 /* Will the common pool be used as TX_vFIFO_ULL (1) */ 22204 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_MODE_OFST 4 22205 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_MODE_LEN 4 22206 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_ENABLED 0x1 /* enum */ 22207 /* enum: Using this interface without TX_vFIFO_ULL is not supported for now */ 22208 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_DISABLED 0x0 22209 /* Number of buffers to reserve for the common pool */ 22210 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_SIZE_OFST 8 22211 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_SIZE_LEN 4 22212 /* TX datapath to which the Common Pool is connected to. */ 22213 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_INGRESS_OFST 12 22214 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_INGRESS_LEN 4 22215 /* enum: Extracts information from function */ 22216 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_USE_FUNCTION_VALUE -0x1 22217 /* Network port or RX Engine to which the common pool connects. */ 22218 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_EGRESS_OFST 16 22219 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_EGRESS_LEN 4 22220 /* enum: Extracts information from function */ 22221 /* MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_USE_FUNCTION_VALUE -0x1 */ 22222 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_PORT0 0x0 /* enum */ 22223 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_PORT1 0x1 /* enum */ 22224 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_PORT2 0x2 /* enum */ 22225 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_PORT3 0x3 /* enum */ 22226 /* enum: To enable Switch loopback with Rx engine 0 */ 22227 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_RX_ENGINE0 0x4 22228 /* enum: To enable Switch loopback with Rx engine 1 */ 22229 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_RX_ENGINE1 0x5 22230 22231 /* MC_CMD_ALLOCATE_TX_VFIFO_CP_OUT msgresponse */ 22232 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_OUT_LEN 4 22233 /* ID of the common pool allocated */ 22234 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_OUT_CP_ID_OFST 0 22235 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_OUT_CP_ID_LEN 4 22236 22237 22238 /***********************************/ 22239 /* MC_CMD_ALLOCATE_TX_VFIFO_VFIFO 22240 * When we use the TX_vFIFO_ULL mode, we can allocate vFIFOs using the 22241 * previously allocated common pools. 22242 */ 22243 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO 0x11e 22244 #undef MC_CMD_0x11e_PRIVILEGE_CTG 22245 22246 #define MC_CMD_0x11e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22247 22248 /* MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN msgrequest */ 22249 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_LEN 20 22250 /* Common pool previously allocated to which the new vFIFO will be associated 22251 */ 22252 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_CP_OFST 0 22253 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_CP_LEN 4 22254 /* Port or RX engine to associate the vFIFO egress */ 22255 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_EGRESS_OFST 4 22256 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_EGRESS_LEN 4 22257 /* enum: Extracts information from common pool */ 22258 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_USE_CP_VALUE -0x1 22259 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PORT0 0x0 /* enum */ 22260 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PORT1 0x1 /* enum */ 22261 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PORT2 0x2 /* enum */ 22262 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PORT3 0x3 /* enum */ 22263 /* enum: To enable Switch loopback with Rx engine 0 */ 22264 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_RX_ENGINE0 0x4 22265 /* enum: To enable Switch loopback with Rx engine 1 */ 22266 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_RX_ENGINE1 0x5 22267 /* Minimum number of buffers that the pool must have */ 22268 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_SIZE_OFST 8 22269 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_SIZE_LEN 4 22270 /* enum: Do not check the space available */ 22271 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_NO_MINIMUM 0x0 22272 /* Will the vFIFO be used as TX_vFIFO_ULL */ 22273 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_MODE_OFST 12 22274 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_MODE_LEN 4 22275 /* Network priority of the vFIFO,if applicable */ 22276 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PRIORITY_OFST 16 22277 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_PRIORITY_LEN 4 22278 /* enum: Search for the lowest unused priority */ 22279 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_LOWEST_AVAILABLE -0x1 22280 22281 /* MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT msgresponse */ 22282 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT_LEN 8 22283 /* Short vFIFO ID */ 22284 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT_VID_OFST 0 22285 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT_VID_LEN 4 22286 /* Network priority of the vFIFO */ 22287 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT_PRIORITY_OFST 4 22288 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_OUT_PRIORITY_LEN 4 22289 22290 22291 /***********************************/ 22292 /* MC_CMD_TEARDOWN_TX_VFIFO_VF 22293 * This interface clears the configuration of the given vFIFO and leaves it 22294 * ready to be re-used. 22295 */ 22296 #define MC_CMD_TEARDOWN_TX_VFIFO_VF 0x11f 22297 #undef MC_CMD_0x11f_PRIVILEGE_CTG 22298 22299 #define MC_CMD_0x11f_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22300 22301 /* MC_CMD_TEARDOWN_TX_VFIFO_VF_IN msgrequest */ 22302 #define MC_CMD_TEARDOWN_TX_VFIFO_VF_IN_LEN 4 22303 /* Short vFIFO ID */ 22304 #define MC_CMD_TEARDOWN_TX_VFIFO_VF_IN_VFIFO_OFST 0 22305 #define MC_CMD_TEARDOWN_TX_VFIFO_VF_IN_VFIFO_LEN 4 22306 22307 /* MC_CMD_TEARDOWN_TX_VFIFO_VF_OUT msgresponse */ 22308 #define MC_CMD_TEARDOWN_TX_VFIFO_VF_OUT_LEN 0 22309 22310 22311 /***********************************/ 22312 /* MC_CMD_DEALLOCATE_TX_VFIFO_CP 22313 * This interface clears the configuration of the given common pool and leaves 22314 * it ready to be re-used. 22315 */ 22316 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP 0x121 22317 #undef MC_CMD_0x121_PRIVILEGE_CTG 22318 22319 #define MC_CMD_0x121_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22320 22321 /* MC_CMD_DEALLOCATE_TX_VFIFO_CP_IN msgrequest */ 22322 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP_IN_LEN 4 22323 /* Common pool ID given when pool allocated */ 22324 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP_IN_POOL_ID_OFST 0 22325 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP_IN_POOL_ID_LEN 4 22326 22327 /* MC_CMD_DEALLOCATE_TX_VFIFO_CP_OUT msgresponse */ 22328 #define MC_CMD_DEALLOCATE_TX_VFIFO_CP_OUT_LEN 0 22329 22330 22331 /***********************************/ 22332 /* MC_CMD_REKEY 22333 * This request causes the NIC to generate a new per-NIC key and program it 22334 * into the write-once memory. During the process all flash partitions that are 22335 * protected with a CMAC are verified with the old per-NIC key and then signed 22336 * with the new per-NIC key. If the NIC has already reached its rekey limit the 22337 * REKEY op will return MC_CMD_ERR_ERANGE. The REKEY op may block until 22338 * completion or it may return 0 and continue processing, therefore the caller 22339 * must poll at least once to confirm that the rekeying has completed. The POLL 22340 * operation returns MC_CMD_ERR_EBUSY if the rekey process is still running 22341 * otherwise it will return the result of the last completed rekey operation, 22342 * or 0 if there has not been a previous rekey. 22343 */ 22344 #define MC_CMD_REKEY 0x123 22345 #undef MC_CMD_0x123_PRIVILEGE_CTG 22346 22347 #define MC_CMD_0x123_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 22348 22349 /* MC_CMD_REKEY_IN msgrequest */ 22350 #define MC_CMD_REKEY_IN_LEN 4 22351 /* the type of operation requested */ 22352 #define MC_CMD_REKEY_IN_OP_OFST 0 22353 #define MC_CMD_REKEY_IN_OP_LEN 4 22354 /* enum: Start the rekeying operation */ 22355 #define MC_CMD_REKEY_IN_OP_REKEY 0x0 22356 /* enum: Poll for completion of the rekeying operation */ 22357 #define MC_CMD_REKEY_IN_OP_POLL 0x1 22358 22359 /* MC_CMD_REKEY_OUT msgresponse */ 22360 #define MC_CMD_REKEY_OUT_LEN 0 22361 22362 22363 /***********************************/ 22364 /* MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS 22365 * This interface allows the host to find out how many common pool buffers are 22366 * not yet assigned. 22367 */ 22368 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS 0x124 22369 #undef MC_CMD_0x124_PRIVILEGE_CTG 22370 22371 #define MC_CMD_0x124_PRIVILEGE_CTG SRIOV_CTG_GENERAL 22372 22373 /* MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_IN msgrequest */ 22374 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_IN_LEN 0 22375 22376 /* MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT msgresponse */ 22377 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_LEN 8 22378 /* Available buffers for the ENG to NET vFIFOs. */ 22379 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_NET_OFST 0 22380 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_NET_LEN 4 22381 /* Available buffers for the ENG to ENG and NET to ENG vFIFOs. */ 22382 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_ENG_OFST 4 22383 #define MC_CMD_SWITCH_GET_UNASSIGNED_BUFFERS_OUT_ENG_LEN 4 22384 22385 22386 /***********************************/ 22387 /* MC_CMD_SET_SECURITY_FUSES 22388 * Change the security level of the adapter by setting bits in the write-once 22389 * memory. The firmware maps each flag in the message to a set of one or more 22390 * hardware-defined or software-defined bits and sets these bits in the write- 22391 * once memory. For Medford the hardware-defined bits are defined in 22392 * SF-112079-PS 5.3, the software-defined bits are defined in xpm.h. Returns 0 22393 * if all of the required bits were set and returns MC_CMD_ERR_EIO if any of 22394 * the required bits were not set. 22395 */ 22396 #define MC_CMD_SET_SECURITY_FUSES 0x126 22397 #undef MC_CMD_0x126_PRIVILEGE_CTG 22398 22399 #define MC_CMD_0x126_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 22400 22401 /* MC_CMD_SET_SECURITY_FUSES_IN msgrequest */ 22402 #define MC_CMD_SET_SECURITY_FUSES_IN_LEN 4 22403 /* Flags specifying what type of security features are being set */ 22404 #define MC_CMD_SET_SECURITY_FUSES_IN_FLAGS_OFST 0 22405 #define MC_CMD_SET_SECURITY_FUSES_IN_FLAGS_LEN 4 22406 #define MC_CMD_SET_SECURITY_FUSES_IN_SECURE_BOOT_OFST 0 22407 #define MC_CMD_SET_SECURITY_FUSES_IN_SECURE_BOOT_LBN 0 22408 #define MC_CMD_SET_SECURITY_FUSES_IN_SECURE_BOOT_WIDTH 1 22409 #define MC_CMD_SET_SECURITY_FUSES_IN_REJECT_TEST_SIGNED_OFST 0 22410 #define MC_CMD_SET_SECURITY_FUSES_IN_REJECT_TEST_SIGNED_LBN 1 22411 #define MC_CMD_SET_SECURITY_FUSES_IN_REJECT_TEST_SIGNED_WIDTH 1 22412 #define MC_CMD_SET_SECURITY_FUSES_IN_SOFT_CONFIG_OFST 0 22413 #define MC_CMD_SET_SECURITY_FUSES_IN_SOFT_CONFIG_LBN 31 22414 #define MC_CMD_SET_SECURITY_FUSES_IN_SOFT_CONFIG_WIDTH 1 22415 22416 /* MC_CMD_SET_SECURITY_FUSES_OUT msgresponse */ 22417 #define MC_CMD_SET_SECURITY_FUSES_OUT_LEN 0 22418 22419 /* MC_CMD_SET_SECURITY_FUSES_V2_OUT msgresponse */ 22420 #define MC_CMD_SET_SECURITY_FUSES_V2_OUT_LEN 4 22421 /* Flags specifying which security features are enforced on the NIC after the 22422 * flags in the request have been applied. See 22423 * MC_CMD_SET_SECURITY_FUSES_IN/FLAGS for flag definitions. 22424 */ 22425 #define MC_CMD_SET_SECURITY_FUSES_V2_OUT_FLAGS_OFST 0 22426 #define MC_CMD_SET_SECURITY_FUSES_V2_OUT_FLAGS_LEN 4 22427 22428 22429 /***********************************/ 22430 /* MC_CMD_TSA_INFO 22431 * Messages sent from TSA adapter to TSA controller. This command is only valid 22432 * when the MCDI header has MESSAGE_TYPE set to MCDI_MESSAGE_TYPE_TSA. This 22433 * command is not sent by the driver to the MC; it is sent from the MC to a TSA 22434 * controller, being treated more like an alert message rather than a command; 22435 * hence the MC does not expect a response in return. Doxbox reference 22436 * SF-117371-SW 22437 */ 22438 #define MC_CMD_TSA_INFO 0x127 22439 #undef MC_CMD_0x127_PRIVILEGE_CTG 22440 22441 #define MC_CMD_0x127_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 22442 22443 /* MC_CMD_TSA_INFO_IN msgrequest */ 22444 #define MC_CMD_TSA_INFO_IN_LEN 4 22445 #define MC_CMD_TSA_INFO_IN_OP_HDR_OFST 0 22446 #define MC_CMD_TSA_INFO_IN_OP_HDR_LEN 4 22447 #define MC_CMD_TSA_INFO_IN_OP_OFST 0 22448 #define MC_CMD_TSA_INFO_IN_OP_LBN 0 22449 #define MC_CMD_TSA_INFO_IN_OP_WIDTH 16 22450 /* enum: Information about recently discovered local IP address of the adapter 22451 */ 22452 #define MC_CMD_TSA_INFO_OP_LOCAL_IP 0x1 22453 /* enum: Information about a sampled packet that either - did not match any 22454 * black/white-list filters and was allowed by the default filter or - did not 22455 * match any black/white-list filters and was denied by the default filter 22456 */ 22457 #define MC_CMD_TSA_INFO_OP_PKT_SAMPLE 0x2 22458 /* enum: Information about an unbind or decommission attempt. */ 22459 #define MC_CMD_TSA_INFO_OP_UNBIND 0x3 22460 22461 /* MC_CMD_TSA_INFO_IN_LOCAL_IP msgrequest: 22462 * 22463 * The TSA controller maintains a list of IP addresses valid for each port of a 22464 * TSA adapter. The TSA controller requires information from the adapter 22465 * inorder to learn new IP addresses assigned to a physical port and to 22466 * identify those that are no longer assigned to the physical port. For this 22467 * purpose, the TSA adapter snoops ARP replys, gratuitous ARP requests and ARP 22468 * probe packets seen on each physical port. This definition describes the 22469 * format of the notification message sent from a TSA adapter to a TSA 22470 * controller related to any information related to a change in IP address 22471 * assignment for a port. Doxbox reference SF-117371. 22472 * 22473 * There may be a possibility of combining multiple notifications in a single 22474 * message in future. When that happens, a new flag can be defined using the 22475 * reserved bits to describe the extended format of this notification. 22476 */ 22477 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_LEN 18 22478 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_OP_HDR_OFST 0 22479 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_OP_HDR_LEN 4 22480 /* Additional metadata describing the IP address information such as source of 22481 * information retrieval, type of IP address, physical port number. 22482 */ 22483 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_OFST 4 22484 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_LEN 4 22485 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_PORT_INDEX_OFST 4 22486 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_PORT_INDEX_LBN 0 22487 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_PORT_INDEX_WIDTH 8 22488 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED_OFST 4 22489 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED_LBN 8 22490 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED_WIDTH 8 22491 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_REASON_OFST 4 22492 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_REASON_LBN 16 22493 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_REASON_WIDTH 8 22494 /* enum: ARP reply sent out of the physical port */ 22495 #define MC_CMD_TSA_INFO_IP_REASON_TX_ARP 0x0 22496 /* enum: ARP probe packet received on the physical port */ 22497 #define MC_CMD_TSA_INFO_IP_REASON_RX_ARP_PROBE 0x1 22498 /* enum: Gratuitous ARP packet received on the physical port */ 22499 #define MC_CMD_TSA_INFO_IP_REASON_RX_GRATUITOUS_ARP 0x2 22500 /* enum: DHCP ACK packet received on the physical port */ 22501 #define MC_CMD_TSA_INFO_IP_REASON_RX_DHCP_ACK 0x3 22502 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_IPV4_OFST 4 22503 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_IPV4_LBN 24 22504 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_META_IPV4_WIDTH 1 22505 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED1_OFST 4 22506 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED1_LBN 25 22507 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_RESERVED1_WIDTH 7 22508 /* IPV4 address retrieved from the sampled packets. This field is relevant only 22509 * when META_IPV4 is set to 1. 22510 */ 22511 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_IPV4_ADDR_OFST 8 22512 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_IPV4_ADDR_LEN 4 22513 /* Target MAC address retrieved from the sampled packet. */ 22514 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_MAC_ADDR_OFST 12 22515 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_MAC_ADDR_LEN 1 22516 #define MC_CMD_TSA_INFO_IN_LOCAL_IP_MAC_ADDR_NUM 6 22517 22518 /* MC_CMD_TSA_INFO_IN_PKT_SAMPLE msgrequest: 22519 * 22520 * It is desireable for the TSA controller to learn the traffic pattern of 22521 * packets seen at the network port being monitored. In order to learn about 22522 * the traffic pattern, the TSA controller may want to sample packets seen at 22523 * the network port. Based on the packet samples that the TSA controller 22524 * receives from the adapter, the controller may choose to configure additional 22525 * black-list or white-list rules to allow or block packets as required. 22526 * 22527 * Although the entire sampled packet as seen on the network port is available 22528 * to the MC the length of sampled packet sent to controller is restricted by 22529 * MCDI payload size. Besides, the TSA controller does not require the entire 22530 * packet to make decisions about filter updates. Hence the packet sample being 22531 * passed to the controller is truncated to 128 bytes. This length is large 22532 * enough to hold the ethernet header, IP header and maximum length of 22533 * supported L4 protocol headers (IPv4 only, but can hold IPv6 header too, if 22534 * required in future). 22535 * 22536 * The intention is that any future changes to this message format that are not 22537 * backwards compatible will be defined with a new operation code. 22538 */ 22539 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_LEN 136 22540 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_OP_HDR_OFST 0 22541 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_OP_HDR_LEN 4 22542 /* Additional metadata describing the sampled packet */ 22543 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_OFST 4 22544 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_LEN 4 22545 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_PORT_INDEX_OFST 4 22546 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_PORT_INDEX_LBN 0 22547 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_PORT_INDEX_WIDTH 8 22548 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_DIRECTION_OFST 4 22549 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_DIRECTION_LBN 8 22550 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_DIRECTION_WIDTH 1 22551 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_RESERVED_OFST 4 22552 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_RESERVED_LBN 9 22553 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_RESERVED_WIDTH 7 22554 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_MASK_OFST 4 22555 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_MASK_LBN 16 22556 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_MASK_WIDTH 4 22557 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_ALLOW_OFST 4 22558 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_ALLOW_LBN 16 22559 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_ALLOW_WIDTH 1 22560 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_DENY_OFST 4 22561 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_DENY_LBN 17 22562 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_DENY_WIDTH 1 22563 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_COUNT_OFST 4 22564 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_COUNT_LBN 18 22565 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_META_ACTION_COUNT_WIDTH 1 22566 /* 128-byte raw prefix of the sampled packet which includes the ethernet 22567 * header, IP header and L4 protocol header (only IPv4 supported initially). 22568 * This provides the controller enough information about the packet sample to 22569 * report traffic patterns seen on a network port and to make decisions 22570 * concerning rule-set updates. 22571 */ 22572 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_PACKET_DATA_OFST 8 22573 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_PACKET_DATA_LEN 1 22574 #define MC_CMD_TSA_INFO_IN_PKT_SAMPLE_PACKET_DATA_NUM 128 22575 22576 /* MC_CMD_TSA_INFO_IN_UNBIND msgrequest: Information about an unbind or 22577 * decommission attempt. The purpose of this event is to let the controller 22578 * know about unbind and decommission attempts (both successful and failed) 22579 * received from the adapter host. The event is not sent if the unbind or 22580 * decommission request was received from the controller. 22581 */ 22582 #define MC_CMD_TSA_INFO_IN_UNBIND_LEN 12 22583 #define MC_CMD_TSA_INFO_IN_UNBIND_OP_HDR_OFST 0 22584 #define MC_CMD_TSA_INFO_IN_UNBIND_OP_HDR_LEN 4 22585 #define MC_CMD_TSA_INFO_IN_UNBIND_OP_OFST 0 22586 #define MC_CMD_TSA_INFO_IN_UNBIND_OP_LBN 0 22587 #define MC_CMD_TSA_INFO_IN_UNBIND_OP_WIDTH 16 22588 /* Type of the unbind attempt. */ 22589 #define MC_CMD_TSA_INFO_IN_UNBIND_TYPE_OFST 4 22590 #define MC_CMD_TSA_INFO_IN_UNBIND_TYPE_LEN 4 22591 /* enum: This event is sent because MC_CMD_TSA_BIND_OP_SECURE_UNBIND was 22592 * received from the adapter local host. 22593 */ 22594 #define MC_CMD_TSA_INFO_UNBIND_TYPE_SECURE_UNBIND 0x1 22595 /* enum: This event is sent because MC_CMD_TSA_BIND_OP_SECURE_DECOMMISSION was 22596 * received from the adapter local host. 22597 */ 22598 #define MC_CMD_TSA_INFO_UNBIND_TYPE_SECURE_DECOMMISSION 0x2 22599 /* Result of the attempt. */ 22600 #define MC_CMD_TSA_INFO_IN_UNBIND_RESULT_OFST 8 22601 #define MC_CMD_TSA_INFO_IN_UNBIND_RESULT_LEN 4 22602 /* Enum values, see field(s): */ 22603 /* MC_CMD_TSA_BIND/MC_CMD_TSA_BIND_OUT_SECURE_UNBIND/RESULT */ 22604 22605 /* MC_CMD_TSA_INFO_OUT msgresponse */ 22606 #define MC_CMD_TSA_INFO_OUT_LEN 0 22607 22608 22609 /***********************************/ 22610 /* MC_CMD_HOST_INFO 22611 * Commands to appply or retrieve host-related information from an adapter. 22612 * Doxbox reference SF-117371-SW 22613 */ 22614 #define MC_CMD_HOST_INFO 0x128 22615 #undef MC_CMD_0x128_PRIVILEGE_CTG 22616 22617 #define MC_CMD_0x128_PRIVILEGE_CTG SRIOV_CTG_ADMIN 22618 22619 /* MC_CMD_HOST_INFO_IN msgrequest */ 22620 #define MC_CMD_HOST_INFO_IN_LEN 4 22621 /* sub-operation code info */ 22622 #define MC_CMD_HOST_INFO_IN_OP_HDR_OFST 0 22623 #define MC_CMD_HOST_INFO_IN_OP_HDR_LEN 4 22624 #define MC_CMD_HOST_INFO_IN_OP_OFST 0 22625 #define MC_CMD_HOST_INFO_IN_OP_LBN 0 22626 #define MC_CMD_HOST_INFO_IN_OP_WIDTH 16 22627 /* enum: Read a 16-byte unique host identifier from the adapter. This UUID 22628 * helps to identify the host that an adapter is plugged into. This identifier 22629 * is ideally the system UUID retrieved and set by the UEFI driver. If the UEFI 22630 * driver is unable to extract the system UUID, it would still set a random 22631 * 16-byte value into each supported SF adapter plugged into it. Host UUIDs may 22632 * change if the system is power-cycled, however, they persist across adapter 22633 * resets. If the host UUID was not set on an adapter, due to an unsupported 22634 * version of UEFI driver, then this command returns an error. Doxbox reference 22635 * - SF-117371-SW section 'Host UUID'. 22636 */ 22637 #define MC_CMD_HOST_INFO_OP_GET_UUID 0x0 22638 /* enum: Set a 16-byte unique host identifier on the adapter to identify the 22639 * host that the adapter is plugged into. See MC_CMD_HOST_INFO_OP_GET_UUID for 22640 * further details. 22641 */ 22642 #define MC_CMD_HOST_INFO_OP_SET_UUID 0x1 22643 22644 /* MC_CMD_HOST_INFO_IN_GET_UUID msgrequest */ 22645 #define MC_CMD_HOST_INFO_IN_GET_UUID_LEN 4 22646 /* sub-operation code info */ 22647 #define MC_CMD_HOST_INFO_IN_GET_UUID_OP_HDR_OFST 0 22648 #define MC_CMD_HOST_INFO_IN_GET_UUID_OP_HDR_LEN 4 22649 22650 /* MC_CMD_HOST_INFO_OUT_GET_UUID msgresponse */ 22651 #define MC_CMD_HOST_INFO_OUT_GET_UUID_LEN 16 22652 /* 16-byte host UUID read out of the adapter. See MC_CMD_HOST_INFO_OP_GET_UUID 22653 * for further details. 22654 */ 22655 #define MC_CMD_HOST_INFO_OUT_GET_UUID_HOST_UUID_OFST 0 22656 #define MC_CMD_HOST_INFO_OUT_GET_UUID_HOST_UUID_LEN 1 22657 #define MC_CMD_HOST_INFO_OUT_GET_UUID_HOST_UUID_NUM 16 22658 22659 /* MC_CMD_HOST_INFO_IN_SET_UUID msgrequest */ 22660 #define MC_CMD_HOST_INFO_IN_SET_UUID_LEN 20 22661 /* sub-operation code info */ 22662 #define MC_CMD_HOST_INFO_IN_SET_UUID_OP_HDR_OFST 0 22663 #define MC_CMD_HOST_INFO_IN_SET_UUID_OP_HDR_LEN 4 22664 /* 16-byte host UUID set on the adapter. See MC_CMD_HOST_INFO_OP_GET_UUID for 22665 * further details. 22666 */ 22667 #define MC_CMD_HOST_INFO_IN_SET_UUID_HOST_UUID_OFST 4 22668 #define MC_CMD_HOST_INFO_IN_SET_UUID_HOST_UUID_LEN 1 22669 #define MC_CMD_HOST_INFO_IN_SET_UUID_HOST_UUID_NUM 16 22670 22671 /* MC_CMD_HOST_INFO_OUT_SET_UUID msgresponse */ 22672 #define MC_CMD_HOST_INFO_OUT_SET_UUID_LEN 0 22673 22674 22675 /***********************************/ 22676 /* MC_CMD_TSAN_INFO 22677 * Get TSA adapter information. TSA controllers query each TSA adapter to learn 22678 * some configuration parameters of each adapter. Doxbox reference SF-117371-SW 22679 * section 'Adapter Information' 22680 */ 22681 #define MC_CMD_TSAN_INFO 0x129 22682 #undef MC_CMD_0x129_PRIVILEGE_CTG 22683 22684 #define MC_CMD_0x129_PRIVILEGE_CTG SRIOV_CTG_ADMIN 22685 22686 /* MC_CMD_TSAN_INFO_IN msgrequest */ 22687 #define MC_CMD_TSAN_INFO_IN_LEN 4 22688 /* sub-operation code info */ 22689 #define MC_CMD_TSAN_INFO_IN_OP_HDR_OFST 0 22690 #define MC_CMD_TSAN_INFO_IN_OP_HDR_LEN 4 22691 #define MC_CMD_TSAN_INFO_IN_OP_OFST 0 22692 #define MC_CMD_TSAN_INFO_IN_OP_LBN 0 22693 #define MC_CMD_TSAN_INFO_IN_OP_WIDTH 16 22694 /* enum: Read configuration parameters and IDs that uniquely identify an 22695 * adapter. The parameters include - host identification, adapter 22696 * identification string and number of physical ports on the adapter. 22697 */ 22698 #define MC_CMD_TSAN_INFO_OP_GET_CFG 0x0 22699 22700 /* MC_CMD_TSAN_INFO_IN_GET_CFG msgrequest */ 22701 #define MC_CMD_TSAN_INFO_IN_GET_CFG_LEN 4 22702 /* sub-operation code info */ 22703 #define MC_CMD_TSAN_INFO_IN_GET_CFG_OP_HDR_OFST 0 22704 #define MC_CMD_TSAN_INFO_IN_GET_CFG_OP_HDR_LEN 4 22705 22706 /* MC_CMD_TSAN_INFO_OUT_GET_CFG msgresponse */ 22707 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_LEN 26 22708 /* Information about the configuration parameters returned in this response. */ 22709 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_CONFIG_WORD_OFST 0 22710 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_CONFIG_WORD_LEN 4 22711 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_CAP_FLAGS_OFST 0 22712 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_CAP_FLAGS_LBN 0 22713 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_CAP_FLAGS_WIDTH 16 22714 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_FLAG_HOST_UUID_VALID_OFST 0 22715 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_FLAG_HOST_UUID_VALID_LBN 0 22716 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_FLAG_HOST_UUID_VALID_WIDTH 1 22717 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_NUM_PORTS_OFST 0 22718 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_NUM_PORTS_LBN 16 22719 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_NUM_PORTS_WIDTH 8 22720 /* 16-byte host UUID read out of the adapter. See MC_CMD_HOST_INFO_OP_GET_UUID 22721 * for further details. 22722 */ 22723 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_HOST_UUID_OFST 4 22724 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_HOST_UUID_LEN 1 22725 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_HOST_UUID_NUM 16 22726 /* A unique identifier per adapter. The base MAC address of the card is used 22727 * for this purpose. 22728 */ 22729 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_GUID_OFST 20 22730 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_GUID_LEN 1 22731 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_GUID_NUM 6 22732 22733 /* MC_CMD_TSAN_INFO_OUT_GET_CFG_V2 msgresponse */ 22734 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_LEN 36 22735 /* Information about the configuration parameters returned in this response. */ 22736 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_CONFIG_WORD_OFST 0 22737 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_CONFIG_WORD_LEN 4 22738 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_CAP_FLAGS_OFST 0 22739 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_CAP_FLAGS_LBN 0 22740 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_CAP_FLAGS_WIDTH 16 22741 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_FLAG_HOST_UUID_VALID_OFST 0 22742 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_FLAG_HOST_UUID_VALID_LBN 0 22743 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_FLAG_HOST_UUID_VALID_WIDTH 1 22744 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_NUM_PORTS_OFST 0 22745 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_NUM_PORTS_LBN 16 22746 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_NUM_PORTS_WIDTH 8 22747 /* 16-byte host UUID read out of the adapter. See MC_CMD_HOST_INFO_OP_GET_UUID 22748 * for further details. 22749 */ 22750 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_HOST_UUID_OFST 4 22751 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_HOST_UUID_LEN 1 22752 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_HOST_UUID_NUM 16 22753 /* A unique identifier per adapter. The base MAC address of the card is used 22754 * for this purpose. 22755 */ 22756 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_GUID_OFST 20 22757 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_GUID_LEN 1 22758 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_GUID_NUM 6 22759 /* Unused bytes, defined for 32-bit alignment of new fields. */ 22760 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_UNUSED_OFST 26 22761 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_UNUSED_LEN 2 22762 /* Maximum number of TSA statistics counters in each direction of dataflow 22763 * supported on the card. Note that the statistics counters are always 22764 * allocated in pairs, i.e. a counter ID is associated with one Tx and one Rx 22765 * counter. 22766 */ 22767 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_MAX_STATS_OFST 28 22768 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_MAX_STATS_LEN 4 22769 /* Width of each statistics counter (represented in bits). This gives an 22770 * indication of wrap point to the user. 22771 */ 22772 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_STATS_WIDTH_OFST 32 22773 #define MC_CMD_TSAN_INFO_OUT_GET_CFG_V2_STATS_WIDTH_LEN 4 22774 22775 22776 /***********************************/ 22777 /* MC_CMD_TSA_STATISTICS 22778 * TSA adapter statistics operations. 22779 */ 22780 #define MC_CMD_TSA_STATISTICS 0x130 22781 #undef MC_CMD_0x130_PRIVILEGE_CTG 22782 22783 #define MC_CMD_0x130_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 22784 22785 /* MC_CMD_TSA_STATISTICS_IN msgrequest */ 22786 #define MC_CMD_TSA_STATISTICS_IN_LEN 4 22787 /* TSA statistics sub-operation code */ 22788 #define MC_CMD_TSA_STATISTICS_IN_OP_CODE_OFST 0 22789 #define MC_CMD_TSA_STATISTICS_IN_OP_CODE_LEN 4 22790 /* enum: Get the configuration parameters that describe the TSA statistics 22791 * layout on the adapter. 22792 */ 22793 #define MC_CMD_TSA_STATISTICS_OP_GET_CONFIG 0x0 22794 /* enum: Read and/or clear TSA statistics counters. */ 22795 #define MC_CMD_TSA_STATISTICS_OP_READ_CLEAR 0x1 22796 22797 /* MC_CMD_TSA_STATISTICS_IN_GET_CONFIG msgrequest */ 22798 #define MC_CMD_TSA_STATISTICS_IN_GET_CONFIG_LEN 4 22799 /* TSA statistics sub-operation code */ 22800 #define MC_CMD_TSA_STATISTICS_IN_GET_CONFIG_OP_CODE_OFST 0 22801 #define MC_CMD_TSA_STATISTICS_IN_GET_CONFIG_OP_CODE_LEN 4 22802 22803 /* MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG msgresponse */ 22804 #define MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG_LEN 8 22805 /* Maximum number of TSA statistics counters in each direction of dataflow 22806 * supported on the card. Note that the statistics counters are always 22807 * allocated in pairs, i.e. a counter ID is associated with one Tx and one Rx 22808 * counter. 22809 */ 22810 #define MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG_MAX_STATS_OFST 0 22811 #define MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG_MAX_STATS_LEN 4 22812 /* Width of each statistics counter (represented in bits). This gives an 22813 * indication of wrap point to the user. 22814 */ 22815 #define MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG_STATS_WIDTH_OFST 4 22816 #define MC_CMD_TSA_STATISTICS_OUT_GET_CONFIG_STATS_WIDTH_LEN 4 22817 22818 /* MC_CMD_TSA_STATISTICS_IN_READ_CLEAR msgrequest */ 22819 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_LENMIN 20 22820 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_LENMAX 252 22821 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_LENMAX_MCDI2 1020 22822 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_LEN(num) (16+4*(num)) 22823 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_NUM(len) (((len)-16)/4) 22824 /* TSA statistics sub-operation code */ 22825 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_OP_CODE_OFST 0 22826 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_OP_CODE_LEN 4 22827 /* Parameters describing the statistics operation */ 22828 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_FLAGS_OFST 4 22829 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_FLAGS_LEN 4 22830 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_READ_OFST 4 22831 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_READ_LBN 0 22832 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_READ_WIDTH 1 22833 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_CLEAR_OFST 4 22834 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_CLEAR_LBN 1 22835 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_CLEAR_WIDTH 1 22836 /* Counter ID list specification type */ 22837 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_MODE_OFST 8 22838 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_MODE_LEN 4 22839 /* enum: The statistics counters are specified as an unordered list of 22840 * individual counter ID. 22841 */ 22842 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_LIST 0x0 22843 /* enum: The statistics counters are specified as a range of consecutive 22844 * counter IDs. 22845 */ 22846 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_RANGE 0x1 22847 /* Number of statistics counters */ 22848 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_NUM_STATS_OFST 12 22849 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_NUM_STATS_LEN 4 22850 /* Counter IDs to be read/cleared. When mode is set to LIST, this entry holds a 22851 * list of counter IDs to be operated on. When mode is set to RANGE, this entry 22852 * holds a single counter ID representing the start of the range of counter IDs 22853 * to be operated on. 22854 */ 22855 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_OFST 16 22856 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_LEN 4 22857 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_MINNUM 1 22858 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_MAXNUM 59 22859 #define MC_CMD_TSA_STATISTICS_IN_READ_CLEAR_COUNTER_ID_MAXNUM_MCDI2 251 22860 22861 /* MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR msgresponse */ 22862 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_LENMIN 24 22863 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_LENMAX 248 22864 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_LENMAX_MCDI2 1016 22865 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_LEN(num) (8+16*(num)) 22866 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_NUM(len) (((len)-8)/16) 22867 /* Number of statistics counters returned in this response */ 22868 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_NUM_STATS_OFST 0 22869 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_NUM_STATS_LEN 4 22870 /* MC_TSA_STATISTICS_ENTRY Note that this field is expected to start at a 22871 * 64-bit aligned offset 22872 */ 22873 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_OFST 8 22874 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_LEN 16 22875 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_MINNUM 1 22876 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_MAXNUM 15 22877 #define MC_CMD_TSA_STATISTICS_OUT_READ_CLEAR_STATS_COUNTERS_MAXNUM_MCDI2 63 22878 22879 /* MC_TSA_STATISTICS_ENTRY structuredef */ 22880 #define MC_TSA_STATISTICS_ENTRY_LEN 16 22881 /* Tx statistics counter */ 22882 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_OFST 0 22883 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_LEN 8 22884 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_LO_OFST 0 22885 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_HI_OFST 4 22886 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_LBN 0 22887 #define MC_TSA_STATISTICS_ENTRY_TX_STAT_WIDTH 64 22888 /* Rx statistics counter */ 22889 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_OFST 8 22890 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_LEN 8 22891 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_LO_OFST 8 22892 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_HI_OFST 12 22893 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_LBN 64 22894 #define MC_TSA_STATISTICS_ENTRY_RX_STAT_WIDTH 64 22895 22896 22897 /***********************************/ 22898 /* MC_CMD_ERASE_INITIAL_NIC_SECRET 22899 * This request causes the NIC to find the initial NIC secret (programmed 22900 * during ATE) in XPM memory and if and only if the NIC has already been 22901 * rekeyed with MC_CMD_REKEY, erase it. This is used by manftest after 22902 * installing TSA binding certificates. See SF-117631-TC. 22903 */ 22904 #define MC_CMD_ERASE_INITIAL_NIC_SECRET 0x131 22905 #undef MC_CMD_0x131_PRIVILEGE_CTG 22906 22907 #define MC_CMD_0x131_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 22908 22909 /* MC_CMD_ERASE_INITIAL_NIC_SECRET_IN msgrequest */ 22910 #define MC_CMD_ERASE_INITIAL_NIC_SECRET_IN_LEN 0 22911 22912 /* MC_CMD_ERASE_INITIAL_NIC_SECRET_OUT msgresponse */ 22913 #define MC_CMD_ERASE_INITIAL_NIC_SECRET_OUT_LEN 0 22914 22915 22916 /***********************************/ 22917 /* MC_CMD_TSA_CONFIG 22918 * TSA adapter configuration operations. This command is used to prepare the 22919 * NIC for TSA binding. 22920 */ 22921 #define MC_CMD_TSA_CONFIG 0x64 22922 #undef MC_CMD_0x64_PRIVILEGE_CTG 22923 22924 #define MC_CMD_0x64_PRIVILEGE_CTG SRIOV_CTG_ADMIN 22925 22926 /* MC_CMD_TSA_CONFIG_IN msgrequest */ 22927 #define MC_CMD_TSA_CONFIG_IN_LEN 4 22928 /* TSA configuration sub-operation code */ 22929 #define MC_CMD_TSA_CONFIG_IN_OP_OFST 0 22930 #define MC_CMD_TSA_CONFIG_IN_OP_LEN 4 22931 /* enum: Append a single item to the tsa_config partition. Items will be 22932 * encrypted unless they are declared as non-sensitive. Returns 22933 * MC_CMD_ERR_EEXIST if the tag is already present. 22934 */ 22935 #define MC_CMD_TSA_CONFIG_OP_APPEND 0x1 22936 /* enum: Reset the tsa_config partition to a clean state. */ 22937 #define MC_CMD_TSA_CONFIG_OP_RESET 0x2 22938 /* enum: Read back a configured item from tsa_config partition. Returns 22939 * MC_CMD_ERR_ENOENT if the item doesn't exist, or MC_CMD_ERR_EPERM if the item 22940 * is declared as sensitive (i.e. is encrypted). 22941 */ 22942 #define MC_CMD_TSA_CONFIG_OP_READ 0x3 22943 22944 /* MC_CMD_TSA_CONFIG_IN_APPEND msgrequest */ 22945 #define MC_CMD_TSA_CONFIG_IN_APPEND_LENMIN 12 22946 #define MC_CMD_TSA_CONFIG_IN_APPEND_LENMAX 252 22947 #define MC_CMD_TSA_CONFIG_IN_APPEND_LENMAX_MCDI2 1020 22948 #define MC_CMD_TSA_CONFIG_IN_APPEND_LEN(num) (12+1*(num)) 22949 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_NUM(len) (((len)-12)/1) 22950 /* TSA configuration sub-operation code. The value shall be 22951 * MC_CMD_TSA_CONFIG_OP_APPEND. 22952 */ 22953 #define MC_CMD_TSA_CONFIG_IN_APPEND_OP_OFST 0 22954 #define MC_CMD_TSA_CONFIG_IN_APPEND_OP_LEN 4 22955 /* The tag to be appended */ 22956 #define MC_CMD_TSA_CONFIG_IN_APPEND_TAG_OFST 4 22957 #define MC_CMD_TSA_CONFIG_IN_APPEND_TAG_LEN 4 22958 /* The length of the data in bytes */ 22959 #define MC_CMD_TSA_CONFIG_IN_APPEND_LENGTH_OFST 8 22960 #define MC_CMD_TSA_CONFIG_IN_APPEND_LENGTH_LEN 4 22961 /* The item data */ 22962 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_OFST 12 22963 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_LEN 1 22964 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_MINNUM 0 22965 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_MAXNUM 240 22966 #define MC_CMD_TSA_CONFIG_IN_APPEND_DATA_MAXNUM_MCDI2 1008 22967 22968 /* MC_CMD_TSA_CONFIG_OUT_APPEND msgresponse */ 22969 #define MC_CMD_TSA_CONFIG_OUT_APPEND_LEN 0 22970 22971 /* MC_CMD_TSA_CONFIG_IN_RESET msgrequest */ 22972 #define MC_CMD_TSA_CONFIG_IN_RESET_LEN 4 22973 /* TSA configuration sub-operation code. The value shall be 22974 * MC_CMD_TSA_CONFIG_OP_RESET. 22975 */ 22976 #define MC_CMD_TSA_CONFIG_IN_RESET_OP_OFST 0 22977 #define MC_CMD_TSA_CONFIG_IN_RESET_OP_LEN 4 22978 22979 /* MC_CMD_TSA_CONFIG_OUT_RESET msgresponse */ 22980 #define MC_CMD_TSA_CONFIG_OUT_RESET_LEN 0 22981 22982 /* MC_CMD_TSA_CONFIG_IN_READ msgrequest */ 22983 #define MC_CMD_TSA_CONFIG_IN_READ_LEN 8 22984 /* TSA configuration sub-operation code. The value shall be 22985 * MC_CMD_TSA_CONFIG_OP_READ. 22986 */ 22987 #define MC_CMD_TSA_CONFIG_IN_READ_OP_OFST 0 22988 #define MC_CMD_TSA_CONFIG_IN_READ_OP_LEN 4 22989 /* The tag to be read */ 22990 #define MC_CMD_TSA_CONFIG_IN_READ_TAG_OFST 4 22991 #define MC_CMD_TSA_CONFIG_IN_READ_TAG_LEN 4 22992 22993 /* MC_CMD_TSA_CONFIG_OUT_READ msgresponse */ 22994 #define MC_CMD_TSA_CONFIG_OUT_READ_LENMIN 8 22995 #define MC_CMD_TSA_CONFIG_OUT_READ_LENMAX 252 22996 #define MC_CMD_TSA_CONFIG_OUT_READ_LENMAX_MCDI2 1020 22997 #define MC_CMD_TSA_CONFIG_OUT_READ_LEN(num) (8+1*(num)) 22998 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_NUM(len) (((len)-8)/1) 22999 /* The tag that was read */ 23000 #define MC_CMD_TSA_CONFIG_OUT_READ_TAG_OFST 0 23001 #define MC_CMD_TSA_CONFIG_OUT_READ_TAG_LEN 4 23002 /* The length of the data in bytes */ 23003 #define MC_CMD_TSA_CONFIG_OUT_READ_LENGTH_OFST 4 23004 #define MC_CMD_TSA_CONFIG_OUT_READ_LENGTH_LEN 4 23005 /* The data of the item. */ 23006 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_OFST 8 23007 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_LEN 1 23008 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_MINNUM 0 23009 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_MAXNUM 244 23010 #define MC_CMD_TSA_CONFIG_OUT_READ_DATA_MAXNUM_MCDI2 1012 23011 23012 /* MC_TSA_IPV4_ITEM structuredef */ 23013 #define MC_TSA_IPV4_ITEM_LEN 8 23014 /* Additional metadata describing the IP address information such as the 23015 * physical port number the address is being used on. Unused space in this 23016 * field is reserved for future expansion. 23017 */ 23018 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_META_OFST 0 23019 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_META_LEN 4 23020 #define MC_TSA_IPV4_ITEM_PORT_IDX_OFST 0 23021 #define MC_TSA_IPV4_ITEM_PORT_IDX_LBN 0 23022 #define MC_TSA_IPV4_ITEM_PORT_IDX_WIDTH 8 23023 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_META_LBN 0 23024 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_META_WIDTH 32 23025 /* The IPv4 address in little endian byte order. */ 23026 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_OFST 4 23027 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_LEN 4 23028 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_LBN 32 23029 #define MC_TSA_IPV4_ITEM_IPV4_ADDR_WIDTH 32 23030 23031 23032 /***********************************/ 23033 /* MC_CMD_TSA_IPADDR 23034 * TSA operations relating to the monitoring and expiry of local IP addresses 23035 * discovered by the controller. These commands are sent from a TSA controller 23036 * to a TSA adapter. 23037 */ 23038 #define MC_CMD_TSA_IPADDR 0x65 23039 #undef MC_CMD_0x65_PRIVILEGE_CTG 23040 23041 #define MC_CMD_0x65_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 23042 23043 /* MC_CMD_TSA_IPADDR_IN msgrequest */ 23044 #define MC_CMD_TSA_IPADDR_IN_LEN 4 23045 /* Header containing information to identify which sub-operation of this 23046 * command to perform. The header contains a 16-bit op-code. Unused space in 23047 * this field is reserved for future expansion. 23048 */ 23049 #define MC_CMD_TSA_IPADDR_IN_OP_HDR_OFST 0 23050 #define MC_CMD_TSA_IPADDR_IN_OP_HDR_LEN 4 23051 #define MC_CMD_TSA_IPADDR_IN_OP_OFST 0 23052 #define MC_CMD_TSA_IPADDR_IN_OP_LBN 0 23053 #define MC_CMD_TSA_IPADDR_IN_OP_WIDTH 16 23054 /* enum: Request that the adapter verifies that the IPv4 addresses supplied are 23055 * still in use by the host by sending ARP probes to the host. The MC does not 23056 * wait for a response to the probes and sends an MCDI response to the 23057 * controller once the probes have been sent to the host. The response to the 23058 * probes (if there are any) will be forwarded to the controller using 23059 * MC_CMD_TSA_INFO alerts. 23060 */ 23061 #define MC_CMD_TSA_IPADDR_OP_VALIDATE_IPV4 0x1 23062 /* enum: Notify the adapter that one or more IPv4 addresses are no longer valid 23063 * for the host of the adapter. The adapter should remove the IPv4 addresses 23064 * from its local cache. 23065 */ 23066 #define MC_CMD_TSA_IPADDR_OP_REMOVE_IPV4 0x2 23067 23068 /* MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4 msgrequest */ 23069 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_LENMIN 16 23070 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_LENMAX 248 23071 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_LENMAX_MCDI2 1016 23072 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_LEN(num) (8+8*(num)) 23073 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_NUM(len) (((len)-8)/8) 23074 /* Header containing information to identify which sub-operation of this 23075 * command to perform. The header contains a 16-bit op-code. Unused space in 23076 * this field is reserved for future expansion. 23077 */ 23078 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_OP_HDR_OFST 0 23079 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_OP_HDR_LEN 4 23080 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_OP_OFST 0 23081 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_OP_LBN 0 23082 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_OP_WIDTH 16 23083 /* Number of IPv4 addresses to validate. */ 23084 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_NUM_ITEMS_OFST 4 23085 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_NUM_ITEMS_LEN 4 23086 /* The IPv4 addresses to validate, in struct MC_TSA_IPV4_ITEM format. */ 23087 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_OFST 8 23088 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_LEN 8 23089 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_LO_OFST 8 23090 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_HI_OFST 12 23091 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_MINNUM 1 23092 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_MAXNUM 30 23093 #define MC_CMD_TSA_IPADDR_IN_VALIDATE_IPV4_IPV4_ITEM_MAXNUM_MCDI2 126 23094 23095 /* MC_CMD_TSA_IPADDR_OUT_VALIDATE_IPV4 msgresponse */ 23096 #define MC_CMD_TSA_IPADDR_OUT_VALIDATE_IPV4_LEN 0 23097 23098 /* MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4 msgrequest */ 23099 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_LENMIN 16 23100 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_LENMAX 248 23101 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_LENMAX_MCDI2 1016 23102 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_LEN(num) (8+8*(num)) 23103 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_NUM(len) (((len)-8)/8) 23104 /* Header containing information to identify which sub-operation of this 23105 * command to perform. The header contains a 16-bit op-code. Unused space in 23106 * this field is reserved for future expansion. 23107 */ 23108 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_OP_HDR_OFST 0 23109 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_OP_HDR_LEN 4 23110 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_OP_OFST 0 23111 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_OP_LBN 0 23112 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_OP_WIDTH 16 23113 /* Number of IPv4 addresses to remove. */ 23114 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_NUM_ITEMS_OFST 4 23115 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_NUM_ITEMS_LEN 4 23116 /* The IPv4 addresses that have expired, in struct MC_TSA_IPV4_ITEM format. */ 23117 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_OFST 8 23118 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_LEN 8 23119 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_LO_OFST 8 23120 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_HI_OFST 12 23121 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_MINNUM 1 23122 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_MAXNUM 30 23123 #define MC_CMD_TSA_IPADDR_IN_REMOVE_IPV4_IPV4_ITEM_MAXNUM_MCDI2 126 23124 23125 /* MC_CMD_TSA_IPADDR_OUT_REMOVE_IPV4 msgresponse */ 23126 #define MC_CMD_TSA_IPADDR_OUT_REMOVE_IPV4_LEN 0 23127 23128 23129 /***********************************/ 23130 /* MC_CMD_SECURE_NIC_INFO 23131 * Get secure NIC information. While many of the features reported by these 23132 * commands are related to TSA, they must be supported in firmware where TSA is 23133 * disabled. 23134 */ 23135 #define MC_CMD_SECURE_NIC_INFO 0x132 23136 #undef MC_CMD_0x132_PRIVILEGE_CTG 23137 23138 #define MC_CMD_0x132_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23139 23140 /* MC_CMD_SECURE_NIC_INFO_IN msgrequest */ 23141 #define MC_CMD_SECURE_NIC_INFO_IN_LEN 4 23142 /* sub-operation code info */ 23143 #define MC_CMD_SECURE_NIC_INFO_IN_OP_HDR_OFST 0 23144 #define MC_CMD_SECURE_NIC_INFO_IN_OP_HDR_LEN 4 23145 #define MC_CMD_SECURE_NIC_INFO_IN_OP_OFST 0 23146 #define MC_CMD_SECURE_NIC_INFO_IN_OP_LBN 0 23147 #define MC_CMD_SECURE_NIC_INFO_IN_OP_WIDTH 16 23148 /* enum: Get the status of various security settings, all signed along with a 23149 * challenge chosen by the host. 23150 */ 23151 #define MC_CMD_SECURE_NIC_INFO_OP_STATUS 0x0 23152 23153 /* MC_CMD_SECURE_NIC_INFO_IN_STATUS msgrequest */ 23154 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_LEN 24 23155 /* sub-operation code, must be MC_CMD_SECURE_NIC_INFO_OP_STATUS */ 23156 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_OP_HDR_OFST 0 23157 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_OP_HDR_LEN 4 23158 /* Type of key to be used to sign response. */ 23159 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_KEY_TYPE_OFST 4 23160 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_KEY_TYPE_LEN 4 23161 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_UNUSED 0x0 /* enum */ 23162 /* enum: Solarflare adapter authentication key, installed by Manftest. */ 23163 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_SF_ADAPTER_AUTH 0x1 23164 /* enum: TSA binding key, installed after adapter is bound to a TSA controller. 23165 * This is not supported in firmware which does not support TSA. 23166 */ 23167 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_TSA_BINDING 0x2 23168 /* enum: Customer adapter authentication key. Installed by the customer in the 23169 * field, but otherwise similar to the Solarflare adapter authentication key. 23170 */ 23171 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_CUSTOMER_ADAPTER_AUTH 0x3 23172 /* Random challenge generated by the host. */ 23173 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_CHALLENGE_OFST 8 23174 #define MC_CMD_SECURE_NIC_INFO_IN_STATUS_CHALLENGE_LEN 16 23175 23176 /* MC_CMD_SECURE_NIC_INFO_OUT_STATUS msgresponse */ 23177 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_LEN 420 23178 /* Length of the signature in MSG_SIGNATURE. */ 23179 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MSG_SIGNATURE_LEN_OFST 0 23180 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MSG_SIGNATURE_LEN_LEN 4 23181 /* Signature over the message, starting at MESSAGE_TYPE and continuing to the 23182 * end of the MCDI response, allowing the message format to be extended. The 23183 * signature uses ECDSA 384 encoding in ASN.1 format. It has variable length, 23184 * with a maximum of 384 bytes. 23185 */ 23186 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MSG_SIGNATURE_OFST 4 23187 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MSG_SIGNATURE_LEN 384 23188 /* Enum value indicating the type of response. This protects against chosen 23189 * message attacks. The enum values are random rather than sequential to make 23190 * it unlikely that values will be reused should other commands in a different 23191 * namespace need to create signed messages. 23192 */ 23193 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MESSAGE_TYPE_OFST 388 23194 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_MESSAGE_TYPE_LEN 4 23195 /* enum: Message type value for the response to a 23196 * MC_CMD_SECURE_NIC_INFO_IN_STATUS message. 23197 */ 23198 #define MC_CMD_SECURE_NIC_INFO_STATUS 0xdb4 23199 /* The challenge provided by the host in the MC_CMD_SECURE_NIC_INFO_IN_STATUS 23200 * message 23201 */ 23202 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_CHALLENGE_OFST 392 23203 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_CHALLENGE_LEN 16 23204 /* The first 32 bits of XPM memory, which include security and flag bits, die 23205 * ID and chip ID revision. The meaning of these bits is defined in 23206 * mc/include/mc/xpm.h in the firmwaresrc repository. 23207 */ 23208 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_XPM_STATUS_BITS_OFST 408 23209 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_XPM_STATUS_BITS_LEN 4 23210 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_A_OFST 412 23211 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_A_LEN 2 23212 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_B_OFST 414 23213 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_B_LEN 2 23214 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_C_OFST 416 23215 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_C_LEN 2 23216 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_D_OFST 418 23217 #define MC_CMD_SECURE_NIC_INFO_OUT_STATUS_FIRMWARE_VERSION_D_LEN 2 23218 23219 23220 /***********************************/ 23221 /* MC_CMD_TSA_TEST 23222 * A simple ping-pong command just to test the adapter<>controller MCDI 23223 * communication channel. This command makes not changes to the TSA adapter's 23224 * internal state. It is used by the controller just to verify that the MCDI 23225 * communication channel is working fine. This command takes no additonal 23226 * parameters in request or response. 23227 */ 23228 #define MC_CMD_TSA_TEST 0x125 23229 #undef MC_CMD_0x125_PRIVILEGE_CTG 23230 23231 #define MC_CMD_0x125_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 23232 23233 /* MC_CMD_TSA_TEST_IN msgrequest */ 23234 #define MC_CMD_TSA_TEST_IN_LEN 0 23235 23236 /* MC_CMD_TSA_TEST_OUT msgresponse */ 23237 #define MC_CMD_TSA_TEST_OUT_LEN 0 23238 23239 23240 /***********************************/ 23241 /* MC_CMD_TSA_RULESET_OVERRIDE 23242 * Override TSA ruleset that is currently active on the adapter. This operation 23243 * does not modify the ruleset itself. This operation provides a mechanism to 23244 * apply an allow-all or deny-all operation on all packets, thereby completely 23245 * ignoring the rule-set configured on the adapter. The main purpose of this 23246 * operation is to provide a deterministic state to the TSA firewall during 23247 * rule-set transitions. 23248 */ 23249 #define MC_CMD_TSA_RULESET_OVERRIDE 0x12a 23250 #undef MC_CMD_0x12a_PRIVILEGE_CTG 23251 23252 #define MC_CMD_0x12a_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 23253 23254 /* MC_CMD_TSA_RULESET_OVERRIDE_IN msgrequest */ 23255 #define MC_CMD_TSA_RULESET_OVERRIDE_IN_LEN 4 23256 /* The override state to apply. */ 23257 #define MC_CMD_TSA_RULESET_OVERRIDE_IN_STATE_OFST 0 23258 #define MC_CMD_TSA_RULESET_OVERRIDE_IN_STATE_LEN 4 23259 /* enum: No override in place - the existing ruleset is in operation. */ 23260 #define MC_CMD_TSA_RULESET_OVERRIDE_NONE 0x0 23261 /* enum: Block all packets seen on all datapath channel except those packets 23262 * required for basic configuration of the TSA NIC such as ARPs and TSA- 23263 * communication traffic. Such exceptional traffic is handled differently 23264 * compared to TSA rulesets. 23265 */ 23266 #define MC_CMD_TSA_RULESET_OVERRIDE_BLOCK 0x1 23267 /* enum: Allow all packets through all datapath channel. The TSA adapter 23268 * behaves like a normal NIC without any firewalls. 23269 */ 23270 #define MC_CMD_TSA_RULESET_OVERRIDE_ALLOW 0x2 23271 23272 /* MC_CMD_TSA_RULESET_OVERRIDE_OUT msgresponse */ 23273 #define MC_CMD_TSA_RULESET_OVERRIDE_OUT_LEN 0 23274 23275 23276 /***********************************/ 23277 /* MC_CMD_TSAC_REQUEST 23278 * Generic command to send requests from a TSA controller to a TSA adapter. 23279 * Specific usage is determined by the TYPE field. 23280 */ 23281 #define MC_CMD_TSAC_REQUEST 0x12b 23282 #undef MC_CMD_0x12b_PRIVILEGE_CTG 23283 23284 #define MC_CMD_0x12b_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 23285 23286 /* MC_CMD_TSAC_REQUEST_IN msgrequest */ 23287 #define MC_CMD_TSAC_REQUEST_IN_LEN 4 23288 /* The type of request from the controller. */ 23289 #define MC_CMD_TSAC_REQUEST_IN_TYPE_OFST 0 23290 #define MC_CMD_TSAC_REQUEST_IN_TYPE_LEN 4 23291 /* enum: Request the adapter to resend localIP information from it's cache. The 23292 * command does not return any IP address information; IP addresses are sent as 23293 * TSA notifications as descibed in MC_CMD_TSA_INFO_IN_LOCAL_IP. 23294 */ 23295 #define MC_CMD_TSAC_REQUEST_LOCALIP 0x0 23296 23297 /* MC_CMD_TSAC_REQUEST_OUT msgresponse */ 23298 #define MC_CMD_TSAC_REQUEST_OUT_LEN 0 23299 23300 23301 /***********************************/ 23302 /* MC_CMD_SUC_VERSION 23303 * Get the version of the SUC 23304 */ 23305 #define MC_CMD_SUC_VERSION 0x134 23306 #undef MC_CMD_0x134_PRIVILEGE_CTG 23307 23308 #define MC_CMD_0x134_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23309 23310 /* MC_CMD_SUC_VERSION_IN msgrequest */ 23311 #define MC_CMD_SUC_VERSION_IN_LEN 0 23312 23313 /* MC_CMD_SUC_VERSION_OUT msgresponse */ 23314 #define MC_CMD_SUC_VERSION_OUT_LEN 24 23315 /* The SUC firmware version as four numbers - a.b.c.d */ 23316 #define MC_CMD_SUC_VERSION_OUT_VERSION_OFST 0 23317 #define MC_CMD_SUC_VERSION_OUT_VERSION_LEN 4 23318 #define MC_CMD_SUC_VERSION_OUT_VERSION_NUM 4 23319 /* The date, in seconds since the Unix epoch, when the firmware image was 23320 * built. 23321 */ 23322 #define MC_CMD_SUC_VERSION_OUT_BUILD_DATE_OFST 16 23323 #define MC_CMD_SUC_VERSION_OUT_BUILD_DATE_LEN 4 23324 /* The ID of the SUC chip. This is specific to the platform but typically 23325 * indicates family, memory sizes etc. See SF-116728-SW for further details. 23326 */ 23327 #define MC_CMD_SUC_VERSION_OUT_CHIP_ID_OFST 20 23328 #define MC_CMD_SUC_VERSION_OUT_CHIP_ID_LEN 4 23329 23330 /* MC_CMD_SUC_BOOT_VERSION_IN msgrequest: Get the version of the SUC boot 23331 * loader. 23332 */ 23333 #define MC_CMD_SUC_BOOT_VERSION_IN_LEN 4 23334 #define MC_CMD_SUC_BOOT_VERSION_IN_MAGIC_OFST 0 23335 #define MC_CMD_SUC_BOOT_VERSION_IN_MAGIC_LEN 4 23336 /* enum: Requests the SUC boot version. */ 23337 #define MC_CMD_SUC_VERSION_GET_BOOT_VERSION 0xb007700b 23338 23339 /* MC_CMD_SUC_BOOT_VERSION_OUT msgresponse */ 23340 #define MC_CMD_SUC_BOOT_VERSION_OUT_LEN 4 23341 /* The SUC boot version */ 23342 #define MC_CMD_SUC_BOOT_VERSION_OUT_VERSION_OFST 0 23343 #define MC_CMD_SUC_BOOT_VERSION_OUT_VERSION_LEN 4 23344 23345 23346 /***********************************/ 23347 /* MC_CMD_SUC_MANFTEST 23348 * Operations to support manftest on SUC based systems. 23349 */ 23350 #define MC_CMD_SUC_MANFTEST 0x135 23351 #undef MC_CMD_0x135_PRIVILEGE_CTG 23352 23353 #define MC_CMD_0x135_PRIVILEGE_CTG SRIOV_CTG_ADMIN_TSA_UNBOUND 23354 23355 /* MC_CMD_SUC_MANFTEST_IN msgrequest */ 23356 #define MC_CMD_SUC_MANFTEST_IN_LEN 4 23357 /* The manftest operation to be performed. */ 23358 #define MC_CMD_SUC_MANFTEST_IN_OP_OFST 0 23359 #define MC_CMD_SUC_MANFTEST_IN_OP_LEN 4 23360 /* enum: Read serial number and use count. */ 23361 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ 0x0 23362 /* enum: Update use count on wearout adapter. */ 23363 #define MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE 0x1 23364 /* enum: Start an ADC calibration. */ 23365 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START 0x2 23366 /* enum: Read the status of an ADC calibration. */ 23367 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS 0x3 23368 /* enum: Read the results of an ADC calibration. */ 23369 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT 0x4 23370 /* enum: Read the PCIe configuration. */ 23371 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ 0x5 23372 /* enum: Write the PCIe configuration. */ 23373 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE 0x6 23374 /* enum: Write FRU information to SUC. The FRU information is taken from the 23375 * FRU_INFORMATION partition. Attempts to write to read-only FRUs are rejected. 23376 */ 23377 #define MC_CMD_SUC_MANFTEST_FRU_WRITE 0x7 23378 /* enum: Read UDID Vendor Specific ID from SUC persistent storage. */ 23379 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ 0x8 23380 /* enum: Write UDID Vendor Specific ID to SUC persistent storage for use in 23381 * SMBus ARP. 23382 */ 23383 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE 0x9 23384 23385 /* MC_CMD_SUC_MANFTEST_OUT msgresponse */ 23386 #define MC_CMD_SUC_MANFTEST_OUT_LEN 0 23387 23388 /* MC_CMD_SUC_MANFTEST_WEAROUT_READ_IN msgrequest */ 23389 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_IN_LEN 4 23390 /* The manftest operation to be performed. This must be 23391 * MC_CMD_SUC_MANFTEST_WEAROUT_READ. 23392 */ 23393 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_IN_OP_OFST 0 23394 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_IN_OP_LEN 4 23395 23396 /* MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT msgresponse */ 23397 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT_LEN 20 23398 /* The serial number of the wearout adapter, see SF-112717-PR for format. */ 23399 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT_SERIAL_NUMBER_OFST 0 23400 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT_SERIAL_NUMBER_LEN 16 23401 /* The use count of the wearout adapter. */ 23402 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT_USE_COUNT_OFST 16 23403 #define MC_CMD_SUC_MANFTEST_WEAROUT_READ_OUT_USE_COUNT_LEN 4 23404 23405 /* MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_IN msgrequest */ 23406 #define MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_IN_LEN 4 23407 /* The manftest operation to be performed. This must be 23408 * MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE. 23409 */ 23410 #define MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_IN_OP_OFST 0 23411 #define MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_IN_OP_LEN 4 23412 23413 /* MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_OUT msgresponse */ 23414 #define MC_CMD_SUC_MANFTEST_WEAROUT_UPDATE_OUT_LEN 0 23415 23416 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_IN msgrequest */ 23417 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_IN_LEN 4 23418 /* The manftest operation to be performed. This must be 23419 * MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START. 23420 */ 23421 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_IN_OP_OFST 0 23422 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_IN_OP_LEN 4 23423 23424 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_OUT msgresponse */ 23425 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_START_OUT_LEN 0 23426 23427 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_IN msgrequest */ 23428 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_IN_LEN 4 23429 /* The manftest operation to be performed. This must be 23430 * MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS. 23431 */ 23432 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_IN_OP_OFST 0 23433 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_IN_OP_LEN 4 23434 23435 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT msgresponse */ 23436 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_LEN 4 23437 /* The combined status of the calibration operation. */ 23438 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_FLAGS_OFST 0 23439 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_FLAGS_LEN 4 23440 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_CALIBRATING_OFST 0 23441 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_CALIBRATING_LBN 0 23442 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_CALIBRATING_WIDTH 1 23443 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_FAILED_OFST 0 23444 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_FAILED_LBN 1 23445 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_FAILED_WIDTH 1 23446 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_RESULT_OFST 0 23447 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_RESULT_LBN 2 23448 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_RESULT_WIDTH 4 23449 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_INDEX_OFST 0 23450 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_INDEX_LBN 6 23451 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_STATUS_OUT_INDEX_WIDTH 2 23452 23453 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_IN msgrequest */ 23454 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_IN_LEN 4 23455 /* The manftest operation to be performed. This must be 23456 * MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT. 23457 */ 23458 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_IN_OP_OFST 0 23459 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_IN_OP_LEN 4 23460 23461 /* MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_OUT msgresponse */ 23462 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_OUT_LEN 12 23463 /* The set of calibration results. */ 23464 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_OUT_VALUE_OFST 0 23465 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_OUT_VALUE_LEN 4 23466 #define MC_CMD_SUC_MANFTEST_ADC_CALIBRATE_RESULT_OUT_VALUE_NUM 3 23467 23468 /* MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_IN msgrequest */ 23469 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_IN_LEN 4 23470 /* The manftest operation to be performed. This must be 23471 * MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ. 23472 */ 23473 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_IN_OP_OFST 0 23474 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_IN_OP_LEN 4 23475 23476 /* MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT msgresponse */ 23477 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT_LEN 4 23478 /* The PCIe vendor ID. */ 23479 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT_VENDOR_ID_OFST 0 23480 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT_VENDOR_ID_LEN 2 23481 /* The PCIe device ID. */ 23482 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT_DEVICE_ID_OFST 2 23483 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_READ_OUT_DEVICE_ID_LEN 2 23484 23485 /* MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN msgrequest */ 23486 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_LEN 8 23487 /* The manftest operation to be performed. This must be 23488 * MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE. 23489 */ 23490 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_OP_OFST 0 23491 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_OP_LEN 4 23492 /* The PCIe vendor ID. */ 23493 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_VENDOR_ID_OFST 4 23494 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_VENDOR_ID_LEN 2 23495 /* The PCIe device ID. */ 23496 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_DEVICE_ID_OFST 6 23497 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_IN_DEVICE_ID_LEN 2 23498 23499 /* MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_OUT msgresponse */ 23500 #define MC_CMD_SUC_MANFTEST_CONFIG_PCIE_WRITE_OUT_LEN 0 23501 23502 /* MC_CMD_SUC_MANFTEST_FRU_WRITE_IN msgrequest */ 23503 #define MC_CMD_SUC_MANFTEST_FRU_WRITE_IN_LEN 4 23504 /* The manftest operation to be performed. This must be 23505 * MC_CMD_SUC_MANFTEST_FRU_WRITE 23506 */ 23507 #define MC_CMD_SUC_MANFTEST_FRU_WRITE_IN_OP_OFST 0 23508 #define MC_CMD_SUC_MANFTEST_FRU_WRITE_IN_OP_LEN 4 23509 23510 /* MC_CMD_SUC_MANFTEST_FRU_WRITE_OUT msgresponse */ 23511 #define MC_CMD_SUC_MANFTEST_FRU_WRITE_OUT_LEN 0 23512 23513 /* MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_IN msgrequest */ 23514 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_IN_LEN 4 23515 /* The manftest operation to be performed. This must be 23516 * MC_CMD_SUC_MANFTEST_SMBUS_ID_READ. 23517 */ 23518 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_IN_OP_OFST 0 23519 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_IN_OP_LEN 4 23520 23521 /* MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_OUT msgresponse */ 23522 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_OUT_LEN 4 23523 /* The SMBus ID. */ 23524 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_OUT_SMBUS_ID_OFST 0 23525 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_READ_OUT_SMBUS_ID_LEN 4 23526 23527 /* MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN msgrequest */ 23528 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN_LEN 8 23529 /* The manftest operation to be performed. This must be 23530 * MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE. 23531 */ 23532 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN_OP_OFST 0 23533 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN_OP_LEN 4 23534 /* The SMBus ID. */ 23535 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN_SMBUS_ID_OFST 4 23536 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_IN_SMBUS_ID_LEN 4 23537 23538 /* MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_OUT msgresponse */ 23539 #define MC_CMD_SUC_MANFTEST_SMBUS_ID_WRITE_OUT_LEN 0 23540 23541 23542 /***********************************/ 23543 /* MC_CMD_GET_CERTIFICATE 23544 * Request a certificate. 23545 */ 23546 #define MC_CMD_GET_CERTIFICATE 0x12c 23547 #undef MC_CMD_0x12c_PRIVILEGE_CTG 23548 23549 #define MC_CMD_0x12c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23550 23551 /* MC_CMD_GET_CERTIFICATE_IN msgrequest */ 23552 #define MC_CMD_GET_CERTIFICATE_IN_LEN 8 23553 /* Type of the certificate to be retrieved. */ 23554 #define MC_CMD_GET_CERTIFICATE_IN_TYPE_OFST 0 23555 #define MC_CMD_GET_CERTIFICATE_IN_TYPE_LEN 4 23556 #define MC_CMD_GET_CERTIFICATE_IN_UNUSED 0x0 /* enum */ 23557 #define MC_CMD_GET_CERTIFICATE_IN_AAC 0x1 /* enum */ 23558 /* enum: Adapter Authentication Certificate (AAC). The AAC is unique to each 23559 * adapter and is used to verify its authenticity. It is installed by Manftest. 23560 */ 23561 #define MC_CMD_GET_CERTIFICATE_IN_ADAPTER_AUTH 0x1 23562 #define MC_CMD_GET_CERTIFICATE_IN_AASC 0x2 /* enum */ 23563 /* enum: Adapter Authentication Signing Certificate (AASC). The AASC is shared 23564 * by a group of adapters (typically a purchase order) and is used to verify 23565 * the validity of AAC along with the SF root certificate. It is installed by 23566 * Manftest. 23567 */ 23568 #define MC_CMD_GET_CERTIFICATE_IN_ADAPTER_AUTH_SIGNING 0x2 23569 #define MC_CMD_GET_CERTIFICATE_IN_CUSTOMER_AAC 0x3 /* enum */ 23570 /* enum: Customer Adapter Authentication Certificate. The Customer AAC is 23571 * unique to each adapter and is used to verify its authenticity in cases where 23572 * either the AAC is not installed or a customer desires to use their own 23573 * certificate chain. It is installed by the customer. 23574 */ 23575 #define MC_CMD_GET_CERTIFICATE_IN_CUSTOMER_ADAPTER_AUTH 0x3 23576 #define MC_CMD_GET_CERTIFICATE_IN_CUSTOMER_AASC 0x4 /* enum */ 23577 /* enum: Customer Adapter Authentication Certificate. The Customer AASC is 23578 * shared by a group of adapters and is used to verify the validity of the 23579 * Customer AAC along with the customers root certificate. It is installed by 23580 * the customer. 23581 */ 23582 #define MC_CMD_GET_CERTIFICATE_IN_CUSTOMER_ADAPTER_AUTH_SIGNING 0x4 23583 /* Offset, measured in bytes, relative to the start of the certificate data 23584 * from which the certificate is to be retrieved. 23585 */ 23586 #define MC_CMD_GET_CERTIFICATE_IN_OFFSET_OFST 4 23587 #define MC_CMD_GET_CERTIFICATE_IN_OFFSET_LEN 4 23588 23589 /* MC_CMD_GET_CERTIFICATE_OUT msgresponse */ 23590 #define MC_CMD_GET_CERTIFICATE_OUT_LENMIN 13 23591 #define MC_CMD_GET_CERTIFICATE_OUT_LENMAX 252 23592 #define MC_CMD_GET_CERTIFICATE_OUT_LENMAX_MCDI2 1020 23593 #define MC_CMD_GET_CERTIFICATE_OUT_LEN(num) (12+1*(num)) 23594 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_NUM(len) (((len)-12)/1) 23595 /* Type of the certificate. */ 23596 #define MC_CMD_GET_CERTIFICATE_OUT_TYPE_OFST 0 23597 #define MC_CMD_GET_CERTIFICATE_OUT_TYPE_LEN 4 23598 /* Enum values, see field(s): */ 23599 /* MC_CMD_GET_CERTIFICATE_IN/TYPE */ 23600 /* Offset, measured in bytes, relative to the start of the certificate data 23601 * from which data in this message starts. 23602 */ 23603 #define MC_CMD_GET_CERTIFICATE_OUT_OFFSET_OFST 4 23604 #define MC_CMD_GET_CERTIFICATE_OUT_OFFSET_LEN 4 23605 /* Total length of the certificate data. */ 23606 #define MC_CMD_GET_CERTIFICATE_OUT_TOTAL_LENGTH_OFST 8 23607 #define MC_CMD_GET_CERTIFICATE_OUT_TOTAL_LENGTH_LEN 4 23608 /* The certificate data. */ 23609 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_OFST 12 23610 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_LEN 1 23611 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_MINNUM 1 23612 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_MAXNUM 240 23613 #define MC_CMD_GET_CERTIFICATE_OUT_DATA_MAXNUM_MCDI2 1008 23614 23615 23616 /***********************************/ 23617 /* MC_CMD_GET_NIC_GLOBAL 23618 * Get a global value which applies to all PCI functions 23619 */ 23620 #define MC_CMD_GET_NIC_GLOBAL 0x12d 23621 #undef MC_CMD_0x12d_PRIVILEGE_CTG 23622 23623 #define MC_CMD_0x12d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23624 23625 /* MC_CMD_GET_NIC_GLOBAL_IN msgrequest */ 23626 #define MC_CMD_GET_NIC_GLOBAL_IN_LEN 4 23627 /* Key to request value for, see enum values in MC_CMD_SET_NIC_GLOBAL. If the 23628 * given key is unknown to the current firmware, the call will fail with 23629 * ENOENT. 23630 */ 23631 #define MC_CMD_GET_NIC_GLOBAL_IN_KEY_OFST 0 23632 #define MC_CMD_GET_NIC_GLOBAL_IN_KEY_LEN 4 23633 23634 /* MC_CMD_GET_NIC_GLOBAL_OUT msgresponse */ 23635 #define MC_CMD_GET_NIC_GLOBAL_OUT_LEN 4 23636 /* Value of requested key, see key descriptions below. */ 23637 #define MC_CMD_GET_NIC_GLOBAL_OUT_VALUE_OFST 0 23638 #define MC_CMD_GET_NIC_GLOBAL_OUT_VALUE_LEN 4 23639 23640 23641 /***********************************/ 23642 /* MC_CMD_SET_NIC_GLOBAL 23643 * Set a global value which applies to all PCI functions. Most global values 23644 * can only be changed under specific conditions, and this call will return an 23645 * appropriate error otherwise (see key descriptions). 23646 */ 23647 #define MC_CMD_SET_NIC_GLOBAL 0x12e 23648 #undef MC_CMD_0x12e_PRIVILEGE_CTG 23649 23650 #define MC_CMD_0x12e_PRIVILEGE_CTG SRIOV_CTG_ADMIN 23651 23652 /* MC_CMD_SET_NIC_GLOBAL_IN msgrequest */ 23653 #define MC_CMD_SET_NIC_GLOBAL_IN_LEN 8 23654 /* Key to change value of. Firmware will return ENOENT for keys it doesn't know 23655 * about. 23656 */ 23657 #define MC_CMD_SET_NIC_GLOBAL_IN_KEY_OFST 0 23658 #define MC_CMD_SET_NIC_GLOBAL_IN_KEY_LEN 4 23659 /* enum: Request switching the datapath firmware sub-variant. Currently only 23660 * useful when running the DPDK f/w variant. See key values below, and the DPDK 23661 * section of the EF10 Driver Writers Guide. Note that any driver attaching 23662 * with the SUBVARIANT_AWARE flag cleared is implicitly considered as a request 23663 * to switch back to the default sub-variant, and will thus reset this value. 23664 * If a sub-variant switch happens, all other PCI functions will get their 23665 * resources reset (they will see an MC reboot). 23666 */ 23667 #define MC_CMD_SET_NIC_GLOBAL_IN_FIRMWARE_SUBVARIANT 0x1 23668 /* New value to set, see key descriptions above. */ 23669 #define MC_CMD_SET_NIC_GLOBAL_IN_VALUE_OFST 4 23670 #define MC_CMD_SET_NIC_GLOBAL_IN_VALUE_LEN 4 23671 /* enum: Only if KEY = FIRMWARE_SUBVARIANT. Default sub-variant with support 23672 * for maximum features for the current f/w variant. A request from a 23673 * privileged function to set this particular value will always succeed. 23674 */ 23675 #define MC_CMD_SET_NIC_GLOBAL_IN_FW_SUBVARIANT_DEFAULT 0x0 23676 /* enum: Only if KEY = FIRMWARE_SUBVARIANT. Increases packet rate at the cost 23677 * of not supporting any TX checksum offloads. Only supported when running some 23678 * f/w variants, others will return ENOTSUP (as reported by the homonymous bit 23679 * in MC_CMD_GET_CAPABILITIES_V2). Can only be set when no other drivers are 23680 * attached, and the calling driver must have no resources allocated. See the 23681 * DPDK section of the EF10 Driver Writers Guide for a more detailed 23682 * description with possible error codes. 23683 */ 23684 #define MC_CMD_SET_NIC_GLOBAL_IN_FW_SUBVARIANT_NO_TX_CSUM 0x1 23685 23686 23687 /***********************************/ 23688 /* MC_CMD_LTSSM_TRACE_POLL 23689 * Medford2 hardware has support for logging all LTSSM state transitions to a 23690 * hardware buffer. When built with WITH_LTSSM_TRACE=1, the firmware will 23691 * periodially dump the contents of this hardware buffer to an internal 23692 * firmware buffer for later extraction. 23693 */ 23694 #define MC_CMD_LTSSM_TRACE_POLL 0x12f 23695 #undef MC_CMD_0x12f_PRIVILEGE_CTG 23696 23697 #define MC_CMD_0x12f_PRIVILEGE_CTG SRIOV_CTG_ADMIN 23698 23699 /* MC_CMD_LTSSM_TRACE_POLL_IN msgrequest: Read transitions from the firmware 23700 * internal buffer. 23701 */ 23702 #define MC_CMD_LTSSM_TRACE_POLL_IN_LEN 4 23703 /* The maximum number of row that the caller can accept. The format of each row 23704 * is defined in MC_CMD_LTSSM_TRACE_POLL_OUT. 23705 */ 23706 #define MC_CMD_LTSSM_TRACE_POLL_IN_MAX_ROW_COUNT_OFST 0 23707 #define MC_CMD_LTSSM_TRACE_POLL_IN_MAX_ROW_COUNT_LEN 4 23708 23709 /* MC_CMD_LTSSM_TRACE_POLL_OUT msgresponse */ 23710 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LENMIN 16 23711 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LENMAX 248 23712 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LENMAX_MCDI2 1016 23713 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LEN(num) (8+8*(num)) 23714 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_NUM(len) (((len)-8)/8) 23715 #define MC_CMD_LTSSM_TRACE_POLL_OUT_FLAGS_OFST 0 23716 #define MC_CMD_LTSSM_TRACE_POLL_OUT_FLAGS_LEN 4 23717 #define MC_CMD_LTSSM_TRACE_POLL_OUT_HW_BUFFER_OVERFLOW_OFST 0 23718 #define MC_CMD_LTSSM_TRACE_POLL_OUT_HW_BUFFER_OVERFLOW_LBN 0 23719 #define MC_CMD_LTSSM_TRACE_POLL_OUT_HW_BUFFER_OVERFLOW_WIDTH 1 23720 #define MC_CMD_LTSSM_TRACE_POLL_OUT_FW_BUFFER_OVERFLOW_OFST 0 23721 #define MC_CMD_LTSSM_TRACE_POLL_OUT_FW_BUFFER_OVERFLOW_LBN 1 23722 #define MC_CMD_LTSSM_TRACE_POLL_OUT_FW_BUFFER_OVERFLOW_WIDTH 1 23723 #define MC_CMD_LTSSM_TRACE_POLL_OUT_CONTINUES_OFST 0 23724 #define MC_CMD_LTSSM_TRACE_POLL_OUT_CONTINUES_LBN 31 23725 #define MC_CMD_LTSSM_TRACE_POLL_OUT_CONTINUES_WIDTH 1 23726 /* The number of rows present in this response. */ 23727 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROW_COUNT_OFST 4 23728 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROW_COUNT_LEN 4 23729 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_OFST 8 23730 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_LEN 8 23731 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_LO_OFST 8 23732 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_HI_OFST 12 23733 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_MINNUM 0 23734 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_MAXNUM 30 23735 #define MC_CMD_LTSSM_TRACE_POLL_OUT_ROWS_MAXNUM_MCDI2 126 23736 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LTSSM_STATE_OFST 8 23737 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LTSSM_STATE_LBN 0 23738 #define MC_CMD_LTSSM_TRACE_POLL_OUT_LTSSM_STATE_WIDTH 6 23739 #define MC_CMD_LTSSM_TRACE_POLL_OUT_RDLH_LINK_UP_OFST 8 23740 #define MC_CMD_LTSSM_TRACE_POLL_OUT_RDLH_LINK_UP_LBN 6 23741 #define MC_CMD_LTSSM_TRACE_POLL_OUT_RDLH_LINK_UP_WIDTH 1 23742 #define MC_CMD_LTSSM_TRACE_POLL_OUT_WAKE_N_OFST 8 23743 #define MC_CMD_LTSSM_TRACE_POLL_OUT_WAKE_N_LBN 7 23744 #define MC_CMD_LTSSM_TRACE_POLL_OUT_WAKE_N_WIDTH 1 23745 #define MC_CMD_LTSSM_TRACE_POLL_OUT_TIMESTAMP_PS_OFST 8 23746 #define MC_CMD_LTSSM_TRACE_POLL_OUT_TIMESTAMP_PS_LBN 8 23747 #define MC_CMD_LTSSM_TRACE_POLL_OUT_TIMESTAMP_PS_WIDTH 24 23748 /* The time of the LTSSM transition. Times are reported as fractional 23749 * microseconds since MC boot (wrapping at 2^32us). The fractional part is 23750 * reported in picoseconds. 0 <= TIMESTAMP_PS < 1000000 timestamp in seconds = 23751 * ((TIMESTAMP_US + TIMESTAMP_PS / 1000000) / 1000000) 23752 */ 23753 #define MC_CMD_LTSSM_TRACE_POLL_OUT_TIMESTAMP_US_OFST 12 23754 #define MC_CMD_LTSSM_TRACE_POLL_OUT_TIMESTAMP_US_LEN 4 23755 23756 23757 /***********************************/ 23758 /* MC_CMD_TELEMETRY_ENABLE 23759 * This command enables telemetry processing of packets, allowing a remote host 23760 * to gather information and analytics passing on the card. Enabling telemetry 23761 * will have a performance cost. Not supported on all hardware and datapath 23762 * variants. As of writing, only supported on Medford2 running full-featured 23763 * firmware variant. 23764 */ 23765 #define MC_CMD_TELEMETRY_ENABLE 0x138 23766 #undef MC_CMD_0x138_PRIVILEGE_CTG 23767 23768 #define MC_CMD_0x138_PRIVILEGE_CTG SRIOV_CTG_ADMIN 23769 23770 /* MC_CMD_TELEMETRY_ENABLE_IN msgrequest */ 23771 #define MC_CMD_TELEMETRY_ENABLE_IN_LEN 4 23772 #define MC_CMD_TELEMETRY_ENABLE_IN_STATE_OFST 0 23773 #define MC_CMD_TELEMETRY_ENABLE_IN_STATE_LEN 4 23774 /* enum: Disables telemetry functionality, returns the card to default 23775 * behaviour of the configured datapath variant. 23776 */ 23777 #define MC_CMD_TELEMETRY_ENABLE_IN_DISABLE 0x0 23778 /* enum: Enables telemetry functionality on the currently configured datapath 23779 * variant if supported. 23780 */ 23781 #define MC_CMD_TELEMETRY_ENABLE_IN_ENABLE 0x1 23782 23783 /* MC_CMD_TELEMETRY_ENABLE_OUT msgresponse */ 23784 #define MC_CMD_TELEMETRY_ENABLE_OUT_LEN 0 23785 23786 /* TELEMETRY_CONFIG structuredef */ 23787 #define TELEMETRY_CONFIG_LEN 36 23788 /* Bitfields to identify the list of config parameters included in the command. 23789 * A bit-value of 1 indicates that the relevant config parameter field is 23790 * valid; 0 indicates invalid and the config parameter field must be ignored by 23791 * firmware. Firmware may however apply some default values for certain 23792 * parameters. 23793 */ 23794 #define TELEMETRY_CONFIG_FLAGS_OFST 0 23795 #define TELEMETRY_CONFIG_FLAGS_LEN 4 23796 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_VALID_OFST 0 23797 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_VALID_LBN 0 23798 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_VALID_WIDTH 1 23799 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_VALID_OFST 0 23800 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_VALID_LBN 1 23801 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_VALID_WIDTH 1 23802 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_VALID_OFST 0 23803 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_VALID_LBN 2 23804 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_VALID_WIDTH 1 23805 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_VALID_OFST 0 23806 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_VALID_LBN 3 23807 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_VALID_WIDTH 1 23808 #define TELEMETRY_CONFIG_RESERVED1_OFST 0 23809 #define TELEMETRY_CONFIG_RESERVED1_LBN 4 23810 #define TELEMETRY_CONFIG_RESERVED1_WIDTH 28 23811 #define TELEMETRY_CONFIG_FLAGS_LBN 0 23812 #define TELEMETRY_CONFIG_FLAGS_WIDTH 32 23813 /* Collector IPv4/IPv6 address to which latency measurements are forwarded from 23814 * the adapter (as bytes in network order; set last 12 bytes to 0 for IPv4 23815 * address). 23816 */ 23817 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_OFST 4 23818 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_LEN 16 23819 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_LBN 32 23820 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_IP_WIDTH 128 23821 /* Collector Port number to which latency measurements are forwarded from the 23822 * adapter (as bytes in network order). 23823 */ 23824 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_OFST 20 23825 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_LEN 2 23826 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_LBN 160 23827 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_PORT_WIDTH 16 23828 /* Unused - set to 0. */ 23829 #define TELEMETRY_CONFIG_RESERVED2_OFST 22 23830 #define TELEMETRY_CONFIG_RESERVED2_LEN 2 23831 #define TELEMETRY_CONFIG_RESERVED2_LBN 176 23832 #define TELEMETRY_CONFIG_RESERVED2_WIDTH 16 23833 /* MAC address of the collector (as bytes in network order). */ 23834 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_MAC_ADDR_OFST 24 23835 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_MAC_ADDR_LEN 6 23836 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_MAC_ADDR_LBN 192 23837 #define TELEMETRY_CONFIG_METRICS_COLLECTOR_MAC_ADDR_WIDTH 48 23838 /* Maximum number of latency measurements to be made on a telemetry flow. */ 23839 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_OFST 30 23840 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_LEN 2 23841 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_LBN 240 23842 #define TELEMETRY_CONFIG_MAX_METRICS_COUNT_WIDTH 16 23843 /* Maximum duration for which a telemetry flow is monitored (in millisecs). */ 23844 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_OFST 32 23845 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_LEN 4 23846 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_LBN 256 23847 #define TELEMETRY_CONFIG_MONITOR_TIMEOUT_MS_WIDTH 32 23848 23849 23850 /***********************************/ 23851 /* MC_CMD_TELEMETRY_CONFIG 23852 * This top-level command includes various sub-opcodes that are used to apply 23853 * (and read-back) telemetry related configuration parameters on the NIC. 23854 * Reference - SF-120569-SW Telemetry Firmware Design. 23855 */ 23856 #define MC_CMD_TELEMETRY_CONFIG 0x139 23857 #undef MC_CMD_0x139_PRIVILEGE_CTG 23858 23859 #define MC_CMD_0x139_PRIVILEGE_CTG SRIOV_CTG_ADMIN 23860 23861 /* MC_CMD_TELEMETRY_CONFIG_IN msgrequest */ 23862 #define MC_CMD_TELEMETRY_CONFIG_IN_LEN 4 23863 /* Telemetry configuration sub-operation code */ 23864 #define MC_CMD_TELEMETRY_CONFIG_IN_OP_OFST 0 23865 #define MC_CMD_TELEMETRY_CONFIG_IN_OP_LEN 4 23866 /* enum: Configure parameters for telemetry measurements. */ 23867 #define MC_CMD_TELEMETRY_CONFIG_OP_SET 0x1 23868 /* enum: Read current values of parameters for telemetry measurements. */ 23869 #define MC_CMD_TELEMETRY_CONFIG_OP_GET 0x2 23870 23871 /* MC_CMD_TELEMETRY_CONFIG_IN_SET msgrequest: This command configures the 23872 * parameters necessary for tcp-latency measurements. The adapter adds a filter 23873 * for every new tcp flow seen in both tx and rx directions and tracks the 23874 * telemetry measurements related to the flow in a tracking table. Entries in 23875 * the tracking table live as long as N measurements are made on the flow or 23876 * the flow has been in the tracking table for the maximum configured duration. 23877 * Telemetry measurements in this command refer to tcp-latency measurements for 23878 * data-to-ack latency as well as data-to-data latency. All telemetry 23879 * measurements are bundled into a UDP packet and forwarded to a collector 23880 * whose IP address is configured using this command. 23881 */ 23882 #define MC_CMD_TELEMETRY_CONFIG_IN_SET_LEN 40 23883 /* Telemetry configuration sub-operation code. Must be set to 23884 * MC_CMD_TELEMETRY_CONFIG_OP_SET. 23885 */ 23886 #define MC_CMD_TELEMETRY_CONFIG_IN_SET_OP_OFST 0 23887 #define MC_CMD_TELEMETRY_CONFIG_IN_SET_OP_LEN 4 23888 /* struct of type TELEMETRY_CONFIG. */ 23889 #define MC_CMD_TELEMETRY_CONFIG_IN_SET_PARAMETERS_OFST 4 23890 #define MC_CMD_TELEMETRY_CONFIG_IN_SET_PARAMETERS_LEN 36 23891 23892 /* MC_CMD_TELEMETRY_CONFIG_OUT_SET msgresponse */ 23893 #define MC_CMD_TELEMETRY_CONFIG_OUT_SET_LEN 0 23894 23895 /* MC_CMD_TELEMETRY_CONFIG_IN_GET msgrequest: This command reads out the 23896 * current values of config parameters necessary for tcp-latency measurements. 23897 * See MC_CMD_TELEMETRY_SET_CONFIG for more information about the configuration 23898 * parameters. 23899 */ 23900 #define MC_CMD_TELEMETRY_CONFIG_IN_GET_LEN 4 23901 /* Telemetry configuration sub-operation code. Must be set to 23902 * MC_CMD_TELEMETRY_CONFIG_OP_GET. 23903 */ 23904 #define MC_CMD_TELEMETRY_CONFIG_IN_GET_OP_OFST 0 23905 #define MC_CMD_TELEMETRY_CONFIG_IN_GET_OP_LEN 4 23906 23907 /* MC_CMD_TELEMETRY_CONFIG_OUT_GET msgresponse */ 23908 #define MC_CMD_TELEMETRY_CONFIG_OUT_GET_LEN 36 23909 /* struct of type TELEMETRY_CONFIG. */ 23910 #define MC_CMD_TELEMETRY_CONFIG_OUT_GET_PARAMETERS_OFST 0 23911 #define MC_CMD_TELEMETRY_CONFIG_OUT_GET_PARAMETERS_LEN 36 23912 23913 23914 /***********************************/ 23915 /* MC_CMD_GET_RX_PREFIX_ID 23916 * This command is part of the mechanism for configuring the format of the RX 23917 * packet prefix. It takes as input a bitmask of the fields the host would like 23918 * to be in the prefix. If the hardware supports RX prefixes with that 23919 * combination of fields, then this command returns a list of prefix-ids, 23920 * opaque identifiers suitable for use in the RX_PREFIX_ID field of a 23921 * MC_CMD_INIT_RXQ_V5_IN message. If the combination of fields is not 23922 * supported, returns ENOTSUP. If the firmware can't create any new prefix-ids 23923 * due to resource constraints, returns ENOSPC. 23924 */ 23925 #define MC_CMD_GET_RX_PREFIX_ID 0x13b 23926 #undef MC_CMD_0x13b_PRIVILEGE_CTG 23927 23928 #define MC_CMD_0x13b_PRIVILEGE_CTG SRIOV_CTG_GENERAL 23929 23930 /* MC_CMD_GET_RX_PREFIX_ID_IN msgrequest */ 23931 #define MC_CMD_GET_RX_PREFIX_ID_IN_LEN 8 23932 /* Field bitmask. */ 23933 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_OFST 0 23934 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LEN 8 23935 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_LO_OFST 0 23936 #define MC_CMD_GET_RX_PREFIX_ID_IN_FIELDS_HI_OFST 4 23937 #define MC_CMD_GET_RX_PREFIX_ID_IN_LENGTH_OFST 0 23938 #define MC_CMD_GET_RX_PREFIX_ID_IN_LENGTH_LBN 0 23939 #define MC_CMD_GET_RX_PREFIX_ID_IN_LENGTH_WIDTH 1 23940 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_VALID_OFST 0 23941 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_VALID_LBN 1 23942 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_VALID_WIDTH 1 23943 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_FLAG_OFST 0 23944 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_FLAG_LBN 2 23945 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_FLAG_WIDTH 1 23946 #define MC_CMD_GET_RX_PREFIX_ID_IN_CLASS_OFST 0 23947 #define MC_CMD_GET_RX_PREFIX_ID_IN_CLASS_LBN 3 23948 #define MC_CMD_GET_RX_PREFIX_ID_IN_CLASS_WIDTH 1 23949 #define MC_CMD_GET_RX_PREFIX_ID_IN_PARTIAL_TSTAMP_OFST 0 23950 #define MC_CMD_GET_RX_PREFIX_ID_IN_PARTIAL_TSTAMP_LBN 4 23951 #define MC_CMD_GET_RX_PREFIX_ID_IN_PARTIAL_TSTAMP_WIDTH 1 23952 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_OFST 0 23953 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_LBN 5 23954 #define MC_CMD_GET_RX_PREFIX_ID_IN_RSS_HASH_WIDTH 1 23955 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_MARK_OFST 0 23956 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_MARK_LBN 6 23957 #define MC_CMD_GET_RX_PREFIX_ID_IN_USER_MARK_WIDTH 1 23958 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_VPORT_OFST 0 23959 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_VPORT_LBN 7 23960 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_VPORT_WIDTH 1 23961 #define MC_CMD_GET_RX_PREFIX_ID_IN_CSUM_FRAME_OFST 0 23962 #define MC_CMD_GET_RX_PREFIX_ID_IN_CSUM_FRAME_LBN 8 23963 #define MC_CMD_GET_RX_PREFIX_ID_IN_CSUM_FRAME_WIDTH 1 23964 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIP_TCI_OFST 0 23965 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIP_TCI_LBN 9 23966 #define MC_CMD_GET_RX_PREFIX_ID_IN_VLAN_STRIP_TCI_WIDTH 1 23967 23968 /* MC_CMD_GET_RX_PREFIX_ID_OUT msgresponse */ 23969 #define MC_CMD_GET_RX_PREFIX_ID_OUT_LENMIN 8 23970 #define MC_CMD_GET_RX_PREFIX_ID_OUT_LENMAX 252 23971 #define MC_CMD_GET_RX_PREFIX_ID_OUT_LENMAX_MCDI2 1020 23972 #define MC_CMD_GET_RX_PREFIX_ID_OUT_LEN(num) (4+4*(num)) 23973 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_NUM(len) (((len)-4)/4) 23974 /* Number of prefix-ids returned */ 23975 #define MC_CMD_GET_RX_PREFIX_ID_OUT_NUM_RX_PREFIX_IDS_OFST 0 23976 #define MC_CMD_GET_RX_PREFIX_ID_OUT_NUM_RX_PREFIX_IDS_LEN 4 23977 /* Opaque prefix identifiers which can be passed into MC_CMD_INIT_RXQ_V5 or 23978 * MC_CMD_QUERY_PREFIX_ID 23979 */ 23980 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_OFST 4 23981 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_LEN 4 23982 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_MINNUM 1 23983 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_MAXNUM 62 23984 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_MAXNUM_MCDI2 254 23985 23986 /* RX_PREFIX_FIELD_INFO structuredef: Information about a single RX prefix 23987 * field 23988 */ 23989 #define RX_PREFIX_FIELD_INFO_LEN 4 23990 /* The offset of the field from the start of the prefix, in bits */ 23991 #define RX_PREFIX_FIELD_INFO_OFFSET_BITS_OFST 0 23992 #define RX_PREFIX_FIELD_INFO_OFFSET_BITS_LEN 2 23993 #define RX_PREFIX_FIELD_INFO_OFFSET_BITS_LBN 0 23994 #define RX_PREFIX_FIELD_INFO_OFFSET_BITS_WIDTH 16 23995 /* The width of the field, in bits */ 23996 #define RX_PREFIX_FIELD_INFO_WIDTH_BITS_OFST 2 23997 #define RX_PREFIX_FIELD_INFO_WIDTH_BITS_LEN 1 23998 #define RX_PREFIX_FIELD_INFO_WIDTH_BITS_LBN 16 23999 #define RX_PREFIX_FIELD_INFO_WIDTH_BITS_WIDTH 8 24000 /* The type of the field. These enum values are in the same order as the fields 24001 * in the MC_CMD_GET_RX_PREFIX_ID_IN bitmask 24002 */ 24003 #define RX_PREFIX_FIELD_INFO_TYPE_OFST 3 24004 #define RX_PREFIX_FIELD_INFO_TYPE_LEN 1 24005 #define RX_PREFIX_FIELD_INFO_LENGTH 0x0 /* enum */ 24006 #define RX_PREFIX_FIELD_INFO_RSS_HASH_VALID 0x1 /* enum */ 24007 #define RX_PREFIX_FIELD_INFO_USER_FLAG 0x2 /* enum */ 24008 #define RX_PREFIX_FIELD_INFO_CLASS 0x3 /* enum */ 24009 #define RX_PREFIX_FIELD_INFO_PARTIAL_TSTAMP 0x4 /* enum */ 24010 #define RX_PREFIX_FIELD_INFO_RSS_HASH 0x5 /* enum */ 24011 #define RX_PREFIX_FIELD_INFO_USER_MARK 0x6 /* enum */ 24012 #define RX_PREFIX_FIELD_INFO_INGRESS_VPORT 0x7 /* enum */ 24013 #define RX_PREFIX_FIELD_INFO_CSUM_FRAME 0x8 /* enum */ 24014 #define RX_PREFIX_FIELD_INFO_VLAN_STRIP_TCI 0x9 /* enum */ 24015 #define RX_PREFIX_FIELD_INFO_TYPE_LBN 24 24016 #define RX_PREFIX_FIELD_INFO_TYPE_WIDTH 8 24017 24018 /* RX_PREFIX_FIXED_RESPONSE structuredef: Information about an RX prefix in 24019 * which every field has a fixed offset and width 24020 */ 24021 #define RX_PREFIX_FIXED_RESPONSE_LENMIN 4 24022 #define RX_PREFIX_FIXED_RESPONSE_LENMAX 252 24023 #define RX_PREFIX_FIXED_RESPONSE_LENMAX_MCDI2 1020 24024 #define RX_PREFIX_FIXED_RESPONSE_LEN(num) (4+4*(num)) 24025 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_NUM(len) (((len)-4)/4) 24026 /* Length of the RX prefix in bytes */ 24027 #define RX_PREFIX_FIXED_RESPONSE_PREFIX_LENGTH_BYTES_OFST 0 24028 #define RX_PREFIX_FIXED_RESPONSE_PREFIX_LENGTH_BYTES_LEN 1 24029 #define RX_PREFIX_FIXED_RESPONSE_PREFIX_LENGTH_BYTES_LBN 0 24030 #define RX_PREFIX_FIXED_RESPONSE_PREFIX_LENGTH_BYTES_WIDTH 8 24031 /* Number of fields present in the prefix */ 24032 #define RX_PREFIX_FIXED_RESPONSE_FIELD_COUNT_OFST 1 24033 #define RX_PREFIX_FIXED_RESPONSE_FIELD_COUNT_LEN 1 24034 #define RX_PREFIX_FIXED_RESPONSE_FIELD_COUNT_LBN 8 24035 #define RX_PREFIX_FIXED_RESPONSE_FIELD_COUNT_WIDTH 8 24036 #define RX_PREFIX_FIXED_RESPONSE_RESERVED_OFST 2 24037 #define RX_PREFIX_FIXED_RESPONSE_RESERVED_LEN 2 24038 #define RX_PREFIX_FIXED_RESPONSE_RESERVED_LBN 16 24039 #define RX_PREFIX_FIXED_RESPONSE_RESERVED_WIDTH 16 24040 /* Array of RX_PREFIX_FIELD_INFO structures, of length FIELD_COUNT */ 24041 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_OFST 4 24042 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_LEN 4 24043 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_MINNUM 0 24044 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_MAXNUM 62 24045 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_MAXNUM_MCDI2 254 24046 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_LBN 32 24047 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_WIDTH 32 24048 24049 24050 /***********************************/ 24051 /* MC_CMD_QUERY_RX_PREFIX_ID 24052 * This command takes an RX prefix id (obtained from MC_CMD_GET_RX_PREFIX_ID) 24053 * and returns a description of the RX prefix of packets delievered to an RXQ 24054 * created with that prefix id 24055 */ 24056 #define MC_CMD_QUERY_RX_PREFIX_ID 0x13c 24057 #undef MC_CMD_0x13c_PRIVILEGE_CTG 24058 24059 #define MC_CMD_0x13c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24060 24061 /* MC_CMD_QUERY_RX_PREFIX_ID_IN msgrequest */ 24062 #define MC_CMD_QUERY_RX_PREFIX_ID_IN_LEN 4 24063 /* Prefix id to query */ 24064 #define MC_CMD_QUERY_RX_PREFIX_ID_IN_RX_PREFIX_ID_OFST 0 24065 #define MC_CMD_QUERY_RX_PREFIX_ID_IN_RX_PREFIX_ID_LEN 4 24066 24067 /* MC_CMD_QUERY_RX_PREFIX_ID_OUT msgresponse */ 24068 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_LENMIN 4 24069 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_LENMAX 252 24070 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_LENMAX_MCDI2 1020 24071 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_LEN(num) (4+1*(num)) 24072 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_NUM(len) (((len)-4)/1) 24073 /* An enum describing the structure of this response. */ 24074 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_TYPE_OFST 0 24075 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_TYPE_LEN 1 24076 /* enum: The response is of format RX_PREFIX_FIXED_RESPONSE */ 24077 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_TYPE_FIXED 0x0 24078 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESERVED_OFST 1 24079 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESERVED_LEN 3 24080 /* The response. Its format is as defined by the RESPONSE_TYPE value */ 24081 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_OFST 4 24082 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_LEN 1 24083 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_MINNUM 0 24084 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_MAXNUM 248 24085 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_MAXNUM_MCDI2 1016 24086 24087 24088 /***********************************/ 24089 /* MC_CMD_BUNDLE 24090 * A command to perform various bundle-related operations on insecure cards. 24091 */ 24092 #define MC_CMD_BUNDLE 0x13d 24093 #undef MC_CMD_0x13d_PRIVILEGE_CTG 24094 24095 #define MC_CMD_0x13d_PRIVILEGE_CTG SRIOV_CTG_INSECURE 24096 24097 /* MC_CMD_BUNDLE_IN msgrequest */ 24098 #define MC_CMD_BUNDLE_IN_LEN 4 24099 /* Sub-command code */ 24100 #define MC_CMD_BUNDLE_IN_OP_OFST 0 24101 #define MC_CMD_BUNDLE_IN_OP_LEN 4 24102 /* enum: Get the current host access mode set on component partitions. */ 24103 #define MC_CMD_BUNDLE_IN_OP_COMPONENT_ACCESS_GET 0x0 24104 /* enum: Set the host access mode set on component partitions. */ 24105 #define MC_CMD_BUNDLE_IN_OP_COMPONENT_ACCESS_SET 0x1 24106 24107 /* MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_IN msgrequest: Retrieve the current 24108 * access mode on component partitions such as MC_FIRMWARE, SUC_FIRMWARE and 24109 * EXPANSION_UEFI. This command only works on engineering (insecure) cards. On 24110 * secure adapters, this command returns MC_CMD_ERR_EPERM. 24111 */ 24112 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_IN_LEN 4 24113 /* Sub-command code. Must be OP_COMPONENT_ACCESS_GET. */ 24114 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_IN_OP_OFST 0 24115 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_IN_OP_LEN 4 24116 24117 /* MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_OUT msgresponse: Returns the access 24118 * control mode. 24119 */ 24120 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_OUT_LEN 4 24121 /* Access mode of component partitions. */ 24122 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_OUT_ACCESS_MODE_OFST 0 24123 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_OUT_ACCESS_MODE_LEN 4 24124 /* enum: Component partitions are read-only from the host. */ 24125 #define MC_CMD_BUNDLE_COMPONENTS_READ_ONLY 0x0 24126 /* enum: Component partitions can read read-from written-to by the host. */ 24127 #define MC_CMD_BUNDLE_COMPONENTS_READ_WRITE 0x1 24128 24129 /* MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN msgrequest: The component 24130 * partitions such as MC_FIRMWARE, SUC_FIRMWARE, EXPANSION_UEFI are set as 24131 * read-only on firmware built with bundle support. This command marks these 24132 * partitions as read/writeable. The access status set by this command does not 24133 * persist across MC reboots. This command only works on engineering (insecure) 24134 * cards. On secure adapters, this command returns MC_CMD_ERR_EPERM. 24135 */ 24136 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN_LEN 8 24137 /* Sub-command code. Must be OP_COMPONENT_ACCESS_SET. */ 24138 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN_OP_OFST 0 24139 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN_OP_LEN 4 24140 /* Access mode of component partitions. */ 24141 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN_ACCESS_MODE_OFST 4 24142 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_IN_ACCESS_MODE_LEN 4 24143 /* Enum values, see field(s): */ 24144 /* MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_GET_OUT/ACCESS_MODE */ 24145 24146 /* MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_OUT msgresponse */ 24147 #define MC_CMD_BUNDLE_OP_COMPONENT_ACCESS_SET_OUT_LEN 0 24148 24149 24150 /***********************************/ 24151 /* MC_CMD_GET_VPD 24152 * Read all VPD starting from a given address 24153 */ 24154 #define MC_CMD_GET_VPD 0x165 24155 #undef MC_CMD_0x165_PRIVILEGE_CTG 24156 24157 #define MC_CMD_0x165_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24158 24159 /* MC_CMD_GET_VPD_IN msgresponse */ 24160 #define MC_CMD_GET_VPD_IN_LEN 4 24161 /* VPD address to start from. In case VPD is longer than MCDI buffer 24162 * (unlikely), user can make multiple calls with different starting addresses. 24163 */ 24164 #define MC_CMD_GET_VPD_IN_ADDR_OFST 0 24165 #define MC_CMD_GET_VPD_IN_ADDR_LEN 4 24166 24167 /* MC_CMD_GET_VPD_OUT msgresponse */ 24168 #define MC_CMD_GET_VPD_OUT_LENMIN 0 24169 #define MC_CMD_GET_VPD_OUT_LENMAX 252 24170 #define MC_CMD_GET_VPD_OUT_LENMAX_MCDI2 1020 24171 #define MC_CMD_GET_VPD_OUT_LEN(num) (0+1*(num)) 24172 #define MC_CMD_GET_VPD_OUT_DATA_NUM(len) (((len)-0)/1) 24173 /* VPD data returned. */ 24174 #define MC_CMD_GET_VPD_OUT_DATA_OFST 0 24175 #define MC_CMD_GET_VPD_OUT_DATA_LEN 1 24176 #define MC_CMD_GET_VPD_OUT_DATA_MINNUM 0 24177 #define MC_CMD_GET_VPD_OUT_DATA_MAXNUM 252 24178 #define MC_CMD_GET_VPD_OUT_DATA_MAXNUM_MCDI2 1020 24179 24180 24181 /***********************************/ 24182 /* MC_CMD_GET_NCSI_INFO 24183 * Provide information about the NC-SI stack 24184 */ 24185 #define MC_CMD_GET_NCSI_INFO 0x167 24186 #undef MC_CMD_0x167_PRIVILEGE_CTG 24187 24188 #define MC_CMD_0x167_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24189 24190 /* MC_CMD_GET_NCSI_INFO_IN msgrequest */ 24191 #define MC_CMD_GET_NCSI_INFO_IN_LEN 8 24192 /* Operation to be performed */ 24193 #define MC_CMD_GET_NCSI_INFO_IN_OP_OFST 0 24194 #define MC_CMD_GET_NCSI_INFO_IN_OP_LEN 4 24195 /* enum: Information on the link settings. */ 24196 #define MC_CMD_GET_NCSI_INFO_IN_OP_LINK 0x0 24197 /* enum: Statistics associated with the channel */ 24198 #define MC_CMD_GET_NCSI_INFO_IN_OP_STATISTICS 0x1 24199 /* The NC-SI channel on which the operation is to be performed */ 24200 #define MC_CMD_GET_NCSI_INFO_IN_CHANNEL_OFST 4 24201 #define MC_CMD_GET_NCSI_INFO_IN_CHANNEL_LEN 4 24202 24203 /* MC_CMD_GET_NCSI_INFO_LINK_OUT msgresponse */ 24204 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_LEN 12 24205 /* Settings as received from BMC. */ 24206 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_SETTINGS_OFST 0 24207 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_SETTINGS_LEN 4 24208 /* Advertised capabilities applied to channel. */ 24209 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ADV_CAP_OFST 4 24210 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ADV_CAP_LEN 4 24211 /* General status */ 24212 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_STATUS_OFST 8 24213 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_STATUS_LEN 4 24214 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_STATE_OFST 8 24215 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_STATE_LBN 0 24216 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_STATE_WIDTH 2 24217 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ENABLE_OFST 8 24218 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ENABLE_LBN 2 24219 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ENABLE_WIDTH 1 24220 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_NETWORK_TX_OFST 8 24221 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_NETWORK_TX_LBN 3 24222 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_NETWORK_TX_WIDTH 1 24223 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ATTACHED_OFST 8 24224 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ATTACHED_LBN 4 24225 #define MC_CMD_GET_NCSI_INFO_LINK_OUT_ATTACHED_WIDTH 1 24226 24227 /* MC_CMD_GET_NCSI_INFO_STATISTICS_OUT msgresponse */ 24228 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_LEN 28 24229 /* The number of NC-SI commands received. */ 24230 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMDS_RX_OFST 0 24231 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMDS_RX_LEN 4 24232 /* The number of NC-SI commands dropped. */ 24233 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_PKTS_DROPPED_OFST 4 24234 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_PKTS_DROPPED_LEN 4 24235 /* The number of invalid NC-SI commands received. */ 24236 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMD_TYPE_ERRS_OFST 8 24237 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMD_TYPE_ERRS_LEN 4 24238 /* The number of checksum errors seen. */ 24239 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMD_CSUM_ERRS_OFST 12 24240 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_CMD_CSUM_ERRS_LEN 4 24241 /* The number of NC-SI requests received. */ 24242 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_RX_PKTS_OFST 16 24243 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_RX_PKTS_LEN 4 24244 /* The number of NC-SI responses sent (includes AENs) */ 24245 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_TX_PKTS_OFST 20 24246 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_NCSI_TX_PKTS_LEN 4 24247 /* The number of NC-SI AENs sent */ 24248 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_AENS_SENT_OFST 24 24249 #define MC_CMD_GET_NCSI_INFO_STATISTICS_OUT_AENS_SENT_LEN 4 24250 24251 24252 /***********************************/ 24253 /* MC_CMD_FIRMWARE_SET_LOCKDOWN 24254 * System lockdown, when enabled firmware updates are blocked. 24255 */ 24256 #define MC_CMD_FIRMWARE_SET_LOCKDOWN 0x16f 24257 #undef MC_CMD_0x16f_PRIVILEGE_CTG 24258 24259 #define MC_CMD_0x16f_PRIVILEGE_CTG SRIOV_CTG_ADMIN 24260 24261 /* MC_CMD_FIRMWARE_SET_LOCKDOWN_IN msgrequest: This MCDI command is to enable 24262 * only because lockdown can only be disabled by a PMCI command or a cold reset 24263 * of the system. 24264 */ 24265 #define MC_CMD_FIRMWARE_SET_LOCKDOWN_IN_LEN 0 24266 24267 /* MC_CMD_FIRMWARE_SET_LOCKDOWN_OUT msgresponse */ 24268 #define MC_CMD_FIRMWARE_SET_LOCKDOWN_OUT_LEN 0 24269 24270 24271 /***********************************/ 24272 /* MC_CMD_GET_TEST_FEATURES 24273 * This command returns device details knowledge of which may be required by 24274 * test infrastructure. Although safe, it is not intended to be used by 24275 * production drivers, and the structure returned intentionally has no public 24276 * documentation. 24277 */ 24278 #define MC_CMD_GET_TEST_FEATURES 0x1ac 24279 #undef MC_CMD_0x1ac_PRIVILEGE_CTG 24280 24281 #define MC_CMD_0x1ac_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24282 24283 /* MC_CMD_GET_TEST_FEATURES_IN msgrequest: Request test features. */ 24284 #define MC_CMD_GET_TEST_FEATURES_IN_LEN 0 24285 24286 /* MC_CMD_GET_TEST_FEATURE_OUT msgresponse */ 24287 #define MC_CMD_GET_TEST_FEATURE_OUT_LENMIN 4 24288 #define MC_CMD_GET_TEST_FEATURE_OUT_LENMAX 252 24289 #define MC_CMD_GET_TEST_FEATURE_OUT_LENMAX_MCDI2 1020 24290 #define MC_CMD_GET_TEST_FEATURE_OUT_LEN(num) (0+4*(num)) 24291 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_NUM(len) (((len)-0)/4) 24292 /* Test-specific NIC information. Production drivers must treat this as opaque. 24293 * The layout is defined in the private TEST_FEATURES_LAYOUT structure. 24294 */ 24295 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_OFST 0 24296 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_LEN 4 24297 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_MINNUM 1 24298 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_MAXNUM 63 24299 #define MC_CMD_GET_TEST_FEATURE_OUT_TEST_FEATURES_MAXNUM_MCDI2 255 24300 24301 /* CLOCK_INFO structuredef: Information about a single hardware clock */ 24302 #define CLOCK_INFO_LEN 28 24303 /* Enumeration that uniquely identifies the clock */ 24304 #define CLOCK_INFO_CLOCK_ID_OFST 0 24305 #define CLOCK_INFO_CLOCK_ID_LEN 2 24306 /* enum: The Riverhead CMC (card MC) */ 24307 #define CLOCK_INFO_CLOCK_CMC 0x0 24308 /* enum: The Riverhead NMC (network MC) */ 24309 #define CLOCK_INFO_CLOCK_NMC 0x1 24310 /* enum: The Riverhead SDNET slice main logic */ 24311 #define CLOCK_INFO_CLOCK_SDNET 0x2 24312 /* enum: The Riverhead SDNET LUT */ 24313 #define CLOCK_INFO_CLOCK_SDNET_LUT 0x3 24314 /* enum: The Riverhead SDNET control logic */ 24315 #define CLOCK_INFO_CLOCK_SDNET_CTRL 0x4 24316 /* enum: The Riverhead Streaming SubSystem */ 24317 #define CLOCK_INFO_CLOCK_SSS 0x5 24318 /* enum: The Riverhead network MAC and associated CSR registers */ 24319 #define CLOCK_INFO_CLOCK_MAC 0x6 24320 #define CLOCK_INFO_CLOCK_ID_LBN 0 24321 #define CLOCK_INFO_CLOCK_ID_WIDTH 16 24322 /* Assorted flags */ 24323 #define CLOCK_INFO_FLAGS_OFST 2 24324 #define CLOCK_INFO_FLAGS_LEN 2 24325 #define CLOCK_INFO_SETTABLE_OFST 2 24326 #define CLOCK_INFO_SETTABLE_LBN 0 24327 #define CLOCK_INFO_SETTABLE_WIDTH 1 24328 #define CLOCK_INFO_FLAGS_LBN 16 24329 #define CLOCK_INFO_FLAGS_WIDTH 16 24330 /* The frequency in HZ */ 24331 #define CLOCK_INFO_FREQUENCY_OFST 4 24332 #define CLOCK_INFO_FREQUENCY_LEN 8 24333 #define CLOCK_INFO_FREQUENCY_LO_OFST 4 24334 #define CLOCK_INFO_FREQUENCY_HI_OFST 8 24335 #define CLOCK_INFO_FREQUENCY_LBN 32 24336 #define CLOCK_INFO_FREQUENCY_WIDTH 64 24337 /* Human-readable ASCII name for clock, with NUL termination */ 24338 #define CLOCK_INFO_NAME_OFST 12 24339 #define CLOCK_INFO_NAME_LEN 1 24340 #define CLOCK_INFO_NAME_NUM 16 24341 #define CLOCK_INFO_NAME_LBN 96 24342 #define CLOCK_INFO_NAME_WIDTH 8 24343 24344 24345 /***********************************/ 24346 /* MC_CMD_GET_CLOCKS_INFO 24347 * Get information about the device clocks 24348 */ 24349 #define MC_CMD_GET_CLOCKS_INFO 0x166 24350 #undef MC_CMD_0x166_PRIVILEGE_CTG 24351 24352 #define MC_CMD_0x166_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24353 24354 /* MC_CMD_GET_CLOCKS_INFO_IN msgrequest */ 24355 #define MC_CMD_GET_CLOCKS_INFO_IN_LEN 0 24356 24357 /* MC_CMD_GET_CLOCKS_INFO_OUT msgresponse */ 24358 #define MC_CMD_GET_CLOCKS_INFO_OUT_LENMIN 0 24359 #define MC_CMD_GET_CLOCKS_INFO_OUT_LENMAX 252 24360 #define MC_CMD_GET_CLOCKS_INFO_OUT_LENMAX_MCDI2 1008 24361 #define MC_CMD_GET_CLOCKS_INFO_OUT_LEN(num) (0+28*(num)) 24362 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_NUM(len) (((len)-0)/28) 24363 /* An array of CLOCK_INFO structures. */ 24364 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_OFST 0 24365 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_LEN 28 24366 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_MINNUM 0 24367 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_MAXNUM 9 24368 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_MAXNUM_MCDI2 36 24369 24370 24371 /***********************************/ 24372 /* MC_CMD_VNIC_ENCAP_RULE_ADD 24373 * Add a rule for detecting encapsulations in the VNIC stage. Currently this 24374 * only affects checksum validation in VNIC RX - on TX the send descriptor 24375 * explicitly specifies encapsulation. These rules are per-VNIC, i.e. only 24376 * apply to the current driver. If a rule matches, then the packet is 24377 * considered to have the corresponding encapsulation type, and the inner 24378 * packet is parsed. It is up to the driver to ensure that overlapping rules 24379 * are not inserted. (If a packet would match multiple rules, a random one of 24380 * them will be used.) A rule with the exact same match criteria may not be 24381 * inserted twice (EALREADY). Only a limited number MATCH_FLAGS values are 24382 * supported, use MC_CMD_GET_PARSER_DISP_INFO with OP 24383 * OP_GET_SUPPORTED_VNIC_ENCAP_RULE_MATCHES to get a list of supported 24384 * combinations. Each driver may only have a limited set of active rules - 24385 * returns ENOSPC if the caller's table is full. 24386 */ 24387 #define MC_CMD_VNIC_ENCAP_RULE_ADD 0x16d 24388 #undef MC_CMD_0x16d_PRIVILEGE_CTG 24389 24390 #define MC_CMD_0x16d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24391 24392 /* MC_CMD_VNIC_ENCAP_RULE_ADD_IN msgrequest */ 24393 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_LEN 36 24394 /* Set to MAE_MPORT_SELECTOR_ASSIGNED. In the future this may be relaxed. */ 24395 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MPORT_SELECTOR_OFST 0 24396 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MPORT_SELECTOR_LEN 4 24397 /* Any non-zero bits other than the ones named below or an unsupported 24398 * combination will cause the NIC to return EOPNOTSUPP. In the future more 24399 * flags may be added. 24400 */ 24401 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_FLAGS_OFST 4 24402 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_FLAGS_LEN 4 24403 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_ETHER_TYPE_OFST 4 24404 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_ETHER_TYPE_LBN 0 24405 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_ETHER_TYPE_WIDTH 1 24406 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_OUTER_VLAN_OFST 4 24407 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_OUTER_VLAN_LBN 1 24408 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_OUTER_VLAN_WIDTH 1 24409 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_IP_OFST 4 24410 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_IP_LBN 2 24411 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_IP_WIDTH 1 24412 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_IP_PROTO_OFST 4 24413 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_IP_PROTO_LBN 3 24414 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_IP_PROTO_WIDTH 1 24415 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_PORT_OFST 4 24416 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_PORT_LBN 4 24417 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_MATCH_DST_PORT_WIDTH 1 24418 /* Only if MATCH_ETHER_TYPE is set. Ethertype value as bytes in network order. 24419 * Currently only IPv4 (0x0800) and IPv6 (0x86DD) ethertypes may be used. 24420 */ 24421 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ETHER_TYPE_OFST 8 24422 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ETHER_TYPE_LEN 2 24423 /* Only if MATCH_OUTER_VLAN is set. VID value as bytes in network order. 24424 * (Deprecated) 24425 */ 24426 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_LBN 80 24427 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_WIDTH 12 24428 /* Only if MATCH_OUTER_VLAN is set. Aligned wrapper for OUTER_VLAN_VID. */ 24429 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_WORD_OFST 10 24430 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_WORD_LEN 2 24431 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_VID_OFST 10 24432 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_VID_LBN 0 24433 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_OUTER_VLAN_VID_WIDTH 12 24434 /* Only if MATCH_DST_IP is set. IP address as bytes in network order. In the 24435 * case of IPv4, the IP should be in the first 4 bytes and all other bytes 24436 * should be zero. 24437 */ 24438 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_DST_IP_OFST 12 24439 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_DST_IP_LEN 16 24440 /* Only if MATCH_IP_PROTO is set. Currently only UDP proto (17) may be used. */ 24441 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_IP_PROTO_OFST 28 24442 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_IP_PROTO_LEN 1 24443 /* Actions that should be applied to packets match the rule. */ 24444 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ACTION_FLAGS_OFST 29 24445 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ACTION_FLAGS_LEN 1 24446 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STRIP_OUTER_VLAN_OFST 29 24447 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STRIP_OUTER_VLAN_LBN 0 24448 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_STRIP_OUTER_VLAN_WIDTH 1 24449 /* Only if MATCH_DST_PORT is set. Port number as bytes in network order. */ 24450 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_DST_PORT_OFST 30 24451 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_DST_PORT_LEN 2 24452 /* Resulting encapsulation type, as per MAE_MCDI_ENCAP_TYPE enumeration. */ 24453 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ENCAP_TYPE_OFST 32 24454 #define MC_CMD_VNIC_ENCAP_RULE_ADD_IN_ENCAP_TYPE_LEN 4 24455 24456 /* MC_CMD_VNIC_ENCAP_RULE_ADD_OUT msgresponse */ 24457 #define MC_CMD_VNIC_ENCAP_RULE_ADD_OUT_LEN 4 24458 /* Handle to inserted rule. Used for removing the rule. */ 24459 #define MC_CMD_VNIC_ENCAP_RULE_ADD_OUT_HANDLE_OFST 0 24460 #define MC_CMD_VNIC_ENCAP_RULE_ADD_OUT_HANDLE_LEN 4 24461 24462 24463 /***********************************/ 24464 /* MC_CMD_VNIC_ENCAP_RULE_REMOVE 24465 * Remove a VNIC encapsulation rule. Packets which would have previously 24466 * matched the rule will then be considered as unencapsulated. Returns EALREADY 24467 * if the input HANDLE doesn't correspond to an existing rule. 24468 */ 24469 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE 0x16e 24470 #undef MC_CMD_0x16e_PRIVILEGE_CTG 24471 24472 #define MC_CMD_0x16e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24473 24474 /* MC_CMD_VNIC_ENCAP_RULE_REMOVE_IN msgrequest */ 24475 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE_IN_LEN 4 24476 /* Handle which was returned by MC_CMD_VNIC_ENCAP_RULE_ADD. */ 24477 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE_IN_HANDLE_OFST 0 24478 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE_IN_HANDLE_LEN 4 24479 24480 /* MC_CMD_VNIC_ENCAP_RULE_REMOVE_OUT msgresponse */ 24481 #define MC_CMD_VNIC_ENCAP_RULE_REMOVE_OUT_LEN 0 24482 24483 /* UUID structuredef: An RFC4122 standard UUID. The values here are stored in 24484 * the endianness specified by the RFC; users should ignore the broken-out 24485 * fields and instead do straight memory copies to ensure correct ordering. 24486 */ 24487 #define UUID_LEN 16 24488 #define UUID_TIME_LOW_OFST 0 24489 #define UUID_TIME_LOW_LEN 4 24490 #define UUID_TIME_LOW_LBN 0 24491 #define UUID_TIME_LOW_WIDTH 32 24492 #define UUID_TIME_MID_OFST 4 24493 #define UUID_TIME_MID_LEN 2 24494 #define UUID_TIME_MID_LBN 32 24495 #define UUID_TIME_MID_WIDTH 16 24496 #define UUID_TIME_HI_LBN 52 24497 #define UUID_TIME_HI_WIDTH 12 24498 #define UUID_VERSION_LBN 48 24499 #define UUID_VERSION_WIDTH 4 24500 #define UUID_RESERVED_LBN 64 24501 #define UUID_RESERVED_WIDTH 2 24502 #define UUID_CLK_SEQ_LBN 66 24503 #define UUID_CLK_SEQ_WIDTH 14 24504 #define UUID_NODE_OFST 10 24505 #define UUID_NODE_LEN 6 24506 #define UUID_NODE_LBN 80 24507 #define UUID_NODE_WIDTH 48 24508 24509 /* MC_CMD_DEVEL_DUMP_VI_ENTRY structuredef */ 24510 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_LEN 28 24511 /* Type of entry */ 24512 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_TYPE_OFST 0 24513 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_TYPE_LEN 4 24514 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_QDMA_SW_C2H 0x0 /* enum */ 24515 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_QDMA_SW_H2C 0x1 /* enum */ 24516 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_QDMA_HW_C2H 0x2 /* enum */ 24517 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_QDMA_HW_H2C 0x3 /* enum */ 24518 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_QDMA_CR_C2H 0x4 /* enum */ 24519 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_QDMA_CR_H2C 0x5 /* enum */ 24520 /* enum: First QDMA writeback/completion queue. Used for ef100, C2H VDPA and 24521 * plain virtio. 24522 */ 24523 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_QDMA_WRB 0x6 24524 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_QDMA_PFTCH 0x7 /* enum */ 24525 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_DMAC_H2C_QTBL 0x100 /* enum */ 24526 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_DMAC_C2H_QTBL 0x101 /* enum */ 24527 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_DMAC_H2C_VIO 0x10a /* enum */ 24528 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_TYPE_LBN 0 24529 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_TYPE_WIDTH 32 24530 /* Internal QDMA/dmac queue number for this entry */ 24531 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_QUEUE_NUMBER_OFST 4 24532 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_QUEUE_NUMBER_LEN 4 24533 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_QUEUE_NUMBER_LBN 32 24534 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_QUEUE_NUMBER_WIDTH 32 24535 /* Size of entry data */ 24536 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_SIZE_OFST 8 24537 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_SIZE_LEN 4 24538 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_SIZE_LBN 64 24539 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_SIZE_WIDTH 32 24540 /* Offset of entry data from start of MCDI message response payload */ 24541 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_OFFSET_OFST 12 24542 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_OFFSET_LEN 4 24543 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_OFFSET_LBN 96 24544 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_OFFSET_WIDTH 32 24545 /* Absolute VI of the entry, or 0xffffffff if not available/applicable */ 24546 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_ABS_VI_OFST 16 24547 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_ABS_VI_LEN 4 24548 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_NO_ABS_VI 0xffffffff /* enum */ 24549 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_ABS_VI_LBN 128 24550 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_ABS_VI_WIDTH 32 24551 /* Reserved */ 24552 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_RESERVED_OFST 20 24553 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_RESERVED_LEN 8 24554 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_RESERVED_LO_OFST 20 24555 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_RESERVED_HI_OFST 24 24556 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_RESERVED_LBN 160 24557 #define MC_CMD_DEVEL_DUMP_VI_ENTRY_RESERVED_WIDTH 64 24558 24559 24560 /***********************************/ 24561 /* MC_CMD_DEVEL_DUMP_VI 24562 * Dump various parts of the hardware's state for a VI. 24563 */ 24564 #define MC_CMD_DEVEL_DUMP_VI 0x1b5 24565 #undef MC_CMD_0x1b5_PRIVILEGE_CTG 24566 24567 #define MC_CMD_0x1b5_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24568 24569 /* MC_CMD_DEVEL_DUMP_VI_IN msgrequest */ 24570 #define MC_CMD_DEVEL_DUMP_VI_IN_LEN 4 24571 /* Absolute queue id of queue to dump state for */ 24572 #define MC_CMD_DEVEL_DUMP_VI_IN_QID_OFST 0 24573 #define MC_CMD_DEVEL_DUMP_VI_IN_QID_LEN 4 24574 24575 /* MC_CMD_DEVEL_DUMP_VI_IN_V2 msgrequest */ 24576 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_LEN 20 24577 /* Which queue to dump. The meaning of this field dependes on ADDRESS_MODE. */ 24578 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_ID_OFST 0 24579 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_ID_LEN 4 24580 /* Method of referring to the queue to dump */ 24581 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_ADDRESS_MODE_OFST 4 24582 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_ADDRESS_MODE_LEN 4 24583 /* enum: First field refers to queue number as understood by QDMA/DMAC hardware 24584 */ 24585 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_QUEUE_NUMBER 0x0 24586 /* enum: First field refers to absolute VI number */ 24587 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_ABS_VI 0x1 24588 /* enum: First field refers to function-relative VI number on the command's 24589 * function 24590 */ 24591 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_REL_VI 0x2 24592 /* enum: First field refers to function-relative VI number on a specified 24593 * function 24594 */ 24595 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_REL_VI_PROXY 0x3 24596 /* Type of VI. Not needed if ADDRESS_MODE is QUEUE_NUMBER. */ 24597 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_VI_TYPE_OFST 8 24598 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_VI_TYPE_LEN 4 24599 /* enum: Return only entries used for ef100 queues (a single hardware queue) */ 24600 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_EF100 0x0 24601 /* enum: Return entries used for virtio (Potentially two hardware queues, 24602 * depending on hardware implementation) 24603 */ 24604 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_VIRTIO 0x1 24605 /* Only if ADDRESS_MODE is REL_VI_PROXY. Interface of function the queue is on. 24606 */ 24607 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_PCIE_INTERFACE_OFST 12 24608 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_PCIE_INTERFACE_LEN 4 24609 /* Enum values, see field(s): */ 24610 /* DEVEL_PCIE_INTERFACE */ 24611 /* Only if ADDRESS_MODE is REL_VI_PROXY. PF number of the function the queue is 24612 * on. 24613 */ 24614 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_PF_OFST 16 24615 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_PF_LEN 2 24616 /* Only if ADDRESS_MODE is REL_VI_PROXY. VF number of the function the queue is 24617 * on. 24618 */ 24619 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_VF_OFST 18 24620 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_VF_LEN 2 24621 /* enum: The function is on a PF, not a VF. */ 24622 #define MC_CMD_DEVEL_DUMP_VI_IN_V2_VF_NULL 0xffff 24623 24624 /* MC_CMD_DEVEL_DUMP_VI_OUT msgresponse */ 24625 #define MC_CMD_DEVEL_DUMP_VI_OUT_LENMIN 4 24626 #define MC_CMD_DEVEL_DUMP_VI_OUT_LENMAX 252 24627 #define MC_CMD_DEVEL_DUMP_VI_OUT_LENMAX_MCDI2 1012 24628 #define MC_CMD_DEVEL_DUMP_VI_OUT_LEN(num) (0+1*(num)) 24629 #define MC_CMD_DEVEL_DUMP_VI_OUT_DATA_NUM(len) (((len)-0)/1) 24630 /* Number of dump entries returned */ 24631 #define MC_CMD_DEVEL_DUMP_VI_OUT_NUM_ENTRIES_OFST 0 24632 #define MC_CMD_DEVEL_DUMP_VI_OUT_NUM_ENTRIES_LEN 4 24633 #define MC_CMD_DEVEL_DUMP_VI_OUT_DATA_OFST 0 24634 #define MC_CMD_DEVEL_DUMP_VI_OUT_DATA_LBN 0 24635 #define MC_CMD_DEVEL_DUMP_VI_OUT_DATA_WIDTH 8 24636 #define MC_CMD_DEVEL_DUMP_VI_OUT_DATA_MINNUM 0 24637 #define MC_CMD_DEVEL_DUMP_VI_OUT_DATA_MAXNUM 252 24638 #define MC_CMD_DEVEL_DUMP_VI_OUT_DATA_MAXNUM_MCDI2 1020 24639 /* Array of MC_CMD_DEVEL_DUMP_VI_ENTRY structures of length NUM_ENTRIES */ 24640 #define MC_CMD_DEVEL_DUMP_VI_OUT_ENTRIES_OFST 4 24641 #define MC_CMD_DEVEL_DUMP_VI_OUT_ENTRIES_LEN 28 24642 #define MC_CMD_DEVEL_DUMP_VI_OUT_ENTRIES_MINNUM 0 24643 #define MC_CMD_DEVEL_DUMP_VI_OUT_ENTRIES_MAXNUM 8 24644 #define MC_CMD_DEVEL_DUMP_VI_OUT_ENTRIES_MAXNUM_MCDI2 36 24645 24646 /* MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY structuredef */ 24647 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_LEN 16 24648 /* What register this is */ 24649 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_REG_OFST 0 24650 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_REG_LEN 4 24651 /* enum: Catchall for registers that aren't in this enum. Nothing should be in 24652 * this long-term 24653 */ 24654 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_UNKNOWN 0xffffffff 24655 /* enum: S2IC Converter Debug Packet Counter register. Informs number of 24656 * packets passed through Converter. 24657 */ 24658 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_H2C_S2IC_DBG_PKT_CNT 0x0 24659 /* enum: IC2S Converter Debug Packet Counter register. Informs number of 24660 * packets passed through Converter. 24661 */ 24662 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_C2H_IC2S_DBG_PKT_CNT 0x1 24663 /* enum: Event Controller Tx path Debug register. Count of Moderator Tx events, 24664 * not incl D2C, VirtIO, Dproxy. 24665 */ 24666 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_EVC_TX_DEBUG 0x2 24667 /* enum: Event Controller Rx path Debug register. Count of Moderator Rx events. 24668 */ 24669 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_EVC_RX_DEBUG 0x3 24670 /* enum: Event Controller Debug register. Count of Total EVC events. */ 24671 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_EVC_TOTAL_DEBUG 0x4 24672 /* enum: Same info as EVC_RX_DEBUG; collected at different location in design 24673 */ 24674 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_EVC_RX_EF100_DEBUG 0x5 24675 /* enum: Same info as EVC_TX_DEBUG; collected at different location in design 24676 */ 24677 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_EVC_TX_EF100_DEBUG 0x6 24678 /* enum: Event Controller Debug register. Count of Tx VirtIO events. */ 24679 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_EVC_TX_VIRTIO_DEBUG 0x7 24680 /* enum: Event Controller Debug register. Count of Tx Descriptor Proxy events. 24681 */ 24682 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_EVC_TX_DPRXY_DEBUG 0x8 24683 /* enum: Event Controller Debug register. Count of Tx VirtQ Descriptor Proxy 24684 * events. 24685 */ 24686 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_EVC_TX_VIRTQ_DPRXY_DEBUG 0x9 24687 /* enum: Event Controller Debug register. Count of Tx Descriptor-to-Completion 24688 * events. 24689 */ 24690 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_EVC_TX_D2C_DEBUG 0xa 24691 /* enum: Event Controller Debug register. Count of Tx VirtIO Descriptor-to- 24692 * Completion events. 24693 */ 24694 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_EVC_TX_VIRTQ_D2C_DEBUG 0xb 24695 /* enum: Event Controller Debug register. Count of Tx Timestamp events. */ 24696 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_EVC_TX_TSTAMP_DEBUG 0xc 24697 /* enum: Event Controller Debug register. Count of Rx EvQ Timeout events. */ 24698 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_EVC_RX_EVQ_TIMEOUT_DEBUG 0xd 24699 /* enum: Event Controller Debug register. Count of MC events. */ 24700 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_EVC_MC_DEBUG 0xe 24701 /* enum: Event Controller Debug register. Count of EQDMA VirtIO Control events. 24702 */ 24703 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_EVC_EQDMA_VIO_CTL_DEBUG 0xf 24704 /* enum: Counter of QDMA Dropped C2H packets. */ 24705 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_DMAC_C2H_DROP_CTR_REG 0x10 24706 /* enum: Number of packets received by c host fifo. */ 24707 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_C_H_PACKETS_IN_TBL 0x11 24708 /* enum: Number of packets sent by c host fifo. */ 24709 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_C_H_PACKETS_OUT_TBL 0x12 24710 /* enum: Number of packets received by c plugin fifo. */ 24711 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_C_P_PACKETS_IN_TBL 0x13 24712 /* enum: Number of packets received by b host fifo. */ 24713 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_B_H_PACKETS_IN_TBL 0x14 24714 /* enum: Number of packets received by b net fifo. */ 24715 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_B_N_PACKETS_IN_TBL 0x15 24716 /* enum: Number of packets received by b host fifo. */ 24717 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_B_PH_PACKETS_IN_TBL 0x16 24718 /* enum: Number of packets received by b net fifo. */ 24719 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_B_PN_PACKETS_IN_TBL 0x17 24720 /* enum: Number of packets sent by b net fifo. */ 24721 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_B_PACKETS_OUT_TBL 0x18 24722 /* enum: Number of packets received by c net fifo. */ 24723 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_C_N_PACKETS_IN_TBL 0x19 24724 /* enum: Number of packets sent by c net fifo. */ 24725 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_C_N_PACKETS_OUT_TBL 0x1a 24726 /* enum: Number of packets received by ha fifo. */ 24727 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_HA_PACKETS_IN_TBL 0x1b 24728 /* enum: Number of packets received by ha host shadow fifo. */ 24729 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_HA_PH_PACKETS_IN_TBL 0x1c 24730 /* enum: Number of packets received by ha fifo. */ 24731 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_HA_PACKETS_OUT_TBL 0x1d 24732 /* enum: Number of packets received by d hub fifo. */ 24733 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_D_PACKETS_IN_TBL 0x1e 24734 /* enum: Number of packets received by d hub plugin fifo. */ 24735 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_D_P_PACKETS_IN_TBL 0x1f 24736 /* enum: Number of packets received by d hub plugin fifo. */ 24737 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_D_O_PACKETS_IN_TBL 0x20 24738 /* enum: Number of packets sent to dmac. */ 24739 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_D_PACKETS_OUT_TBL 0x21 24740 /* enum: Number of packets received by na fifo. */ 24741 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_NA_PACKETS_IN_TBL 0x22 24742 /* enum: Number of packets dropped by na fifo. */ 24743 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_NA_PACKETS_DROPPED_TBL 0x23 24744 /* enum: Number of packets sent by na fifo. */ 24745 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_NA_PACKETS_OUT_TBL 0x24 24746 /* enum: Number of packets received by rp hub fifo. */ 24747 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_RP_PACKETS_IN_TBL 0x25 24748 /* enum: Number of packets removed from fifo. */ 24749 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_SSS_RP_PACKETS_OUT_TBL 0x26 24750 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_REG_LBN 0 24751 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_REG_WIDTH 32 24752 /* If REG is a table, the table row. */ 24753 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_ROW_OFST 4 24754 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_ROW_LEN 4 24755 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_ROW_LBN 32 24756 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_ROW_WIDTH 32 24757 /* Address of the register (as seen by the MC) */ 24758 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_ADDRESS_OFST 8 24759 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_ADDRESS_LEN 4 24760 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_ADDRESS_LBN 64 24761 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_ADDRESS_WIDTH 32 24762 /* Value of the register */ 24763 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_VALUE_OFST 12 24764 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_VALUE_LEN 4 24765 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_VALUE_LBN 96 24766 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY_VALUE_WIDTH 32 24767 24768 24769 /***********************************/ 24770 /* MC_CMD_DEVEL_DUMP_RHEAD_REGS 24771 * Dump an assortment of hopefully useful riverhead debug registers 24772 */ 24773 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS 0x1b6 24774 #undef MC_CMD_0x1b6_PRIVILEGE_CTG 24775 24776 #define MC_CMD_0x1b6_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24777 24778 /* MC_CMD_DEVEL_DUMP_RHEAD_REGS_IN msgrequest */ 24779 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_IN_LEN 4 24780 /* Which page of registers to retrieve. Page 0 always exists, later pages may 24781 * also exist if there are too many registers to fit in a single mcdi response. 24782 * NUM_PAGES in the response will tell you how many there are. 24783 */ 24784 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_IN_PAGE_OFST 0 24785 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_IN_PAGE_LEN 4 24786 24787 /* MC_CMD_DEVEL_DUMP_RHEAD_REGS_OUT msgresponse */ 24788 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_OUT_LENMIN 8 24789 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_OUT_LENMAX 248 24790 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_OUT_LENMAX_MCDI2 1016 24791 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_OUT_LEN(num) (8+16*(num)) 24792 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_OUT_REGS_NUM(len) (((len)-8)/16) 24793 /* Number of registers dumped in this response */ 24794 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_OUT_NUM_REGS_OFST 0 24795 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_OUT_NUM_REGS_LEN 4 24796 /* How many pages of registers are available to extract */ 24797 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_OUT_NUM_PAGES_OFST 4 24798 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_OUT_NUM_PAGES_LEN 4 24799 /* Array of MC_CMD_DEVEL_DUMP_RHEAD_REGS_ENTRY structs, one for each register 24800 */ 24801 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_OUT_REGS_OFST 8 24802 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_OUT_REGS_LEN 16 24803 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_OUT_REGS_MINNUM 0 24804 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_OUT_REGS_MAXNUM 15 24805 #define MC_CMD_DEVEL_DUMP_RHEAD_REGS_OUT_REGS_MAXNUM_MCDI2 63 24806 24807 /* FUNCTION_PERSONALITY structuredef: The meanings of the personalities are 24808 * defined in SF-120734-TC with more information in SF-122717-TC. 24809 */ 24810 #define FUNCTION_PERSONALITY_LEN 4 24811 #define FUNCTION_PERSONALITY_ID_OFST 0 24812 #define FUNCTION_PERSONALITY_ID_LEN 4 24813 /* enum: Function has no assigned personality */ 24814 #define FUNCTION_PERSONALITY_NULL 0x0 24815 /* enum: Function has an EF100-style function control window and VI windows 24816 * with both EF100 and vDPA doorbells. 24817 */ 24818 #define FUNCTION_PERSONALITY_EF100 0x1 24819 /* enum: Function has virtio net device configuration registers and doorbells 24820 * for virtio queue pairs. 24821 */ 24822 #define FUNCTION_PERSONALITY_VIRTIO_NET 0x2 24823 /* enum: Function has virtio block device configuration registers and a 24824 * doorbell for a single virtqueue. 24825 */ 24826 #define FUNCTION_PERSONALITY_VIRTIO_BLK 0x3 24827 /* enum: Function is a Xilinx acceleration device - management function */ 24828 #define FUNCTION_PERSONALITY_ACCEL_MGMT 0x4 24829 /* enum: Function is a Xilinx acceleration device - user function */ 24830 #define FUNCTION_PERSONALITY_ACCEL_USR 0x5 24831 #define FUNCTION_PERSONALITY_ID_LBN 0 24832 #define FUNCTION_PERSONALITY_ID_WIDTH 32 24833 24834 24835 /***********************************/ 24836 /* MC_CMD_VIRTIO_GET_FEATURES 24837 * Get a list of the virtio features supported by the device. 24838 */ 24839 #define MC_CMD_VIRTIO_GET_FEATURES 0x168 24840 #undef MC_CMD_0x168_PRIVILEGE_CTG 24841 24842 #define MC_CMD_0x168_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24843 24844 /* MC_CMD_VIRTIO_GET_FEATURES_IN msgrequest */ 24845 #define MC_CMD_VIRTIO_GET_FEATURES_IN_LEN 4 24846 /* Type of device to get features for. Matches the device id as defined by the 24847 * virtio spec. 24848 */ 24849 #define MC_CMD_VIRTIO_GET_FEATURES_IN_DEVICE_ID_OFST 0 24850 #define MC_CMD_VIRTIO_GET_FEATURES_IN_DEVICE_ID_LEN 4 24851 /* enum: Reserved. Do not use. */ 24852 #define MC_CMD_VIRTIO_GET_FEATURES_IN_RESERVED 0x0 24853 /* enum: Net device. */ 24854 #define MC_CMD_VIRTIO_GET_FEATURES_IN_NET 0x1 24855 /* enum: Block device. */ 24856 #define MC_CMD_VIRTIO_GET_FEATURES_IN_BLOCK 0x2 24857 24858 /* MC_CMD_VIRTIO_GET_FEATURES_OUT msgresponse */ 24859 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_LEN 8 24860 /* Features supported by the device. The result is a bitfield in the format of 24861 * the feature bits of the specified device type as defined in the virtIO 1.1 24862 * specification ( https://docs.oasis- 24863 * open.org/virtio/virtio/v1.1/csprd01/virtio-v1.1-csprd01.pdf ) 24864 */ 24865 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_OFST 0 24866 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LEN 8 24867 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_OFST 0 24868 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_OFST 4 24869 24870 24871 /***********************************/ 24872 /* MC_CMD_VIRTIO_TEST_FEATURES 24873 * Query whether a given set of features is supported. Fails with ENOSUP if the 24874 * driver requests a feature the device doesn't support. Fails with EINVAL if 24875 * the driver fails to request a feature which the device requires. 24876 */ 24877 #define MC_CMD_VIRTIO_TEST_FEATURES 0x169 24878 #undef MC_CMD_0x169_PRIVILEGE_CTG 24879 24880 #define MC_CMD_0x169_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24881 24882 /* MC_CMD_VIRTIO_TEST_FEATURES_IN msgrequest */ 24883 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_LEN 16 24884 /* Type of device to test features for. Matches the device id as defined by the 24885 * virtio spec. 24886 */ 24887 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_DEVICE_ID_OFST 0 24888 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_DEVICE_ID_LEN 4 24889 /* Enum values, see field(s): */ 24890 /* MC_CMD_VIRTIO_GET_FEATURES/MC_CMD_VIRTIO_GET_FEATURES_IN/DEVICE_ID */ 24891 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_RESERVED_OFST 4 24892 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_RESERVED_LEN 4 24893 /* Features requested. Same format as the returned value from 24894 * MC_CMD_VIRTIO_GET_FEATURES. 24895 */ 24896 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_OFST 8 24897 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LEN 8 24898 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_OFST 8 24899 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_OFST 12 24900 24901 /* MC_CMD_VIRTIO_TEST_FEATURES_OUT msgresponse */ 24902 #define MC_CMD_VIRTIO_TEST_FEATURES_OUT_LEN 0 24903 24904 24905 /***********************************/ 24906 /* MC_CMD_VIRTIO_INIT_QUEUE 24907 * Create a virtio virtqueue. Fails with EALREADY if the queue already exists. 24908 * Fails with ENOSUP if a feature is requested that isn't supported. Fails with 24909 * EINVAL if a required feature isn't requested, or any other parameter is 24910 * invalid. 24911 */ 24912 #define MC_CMD_VIRTIO_INIT_QUEUE 0x16a 24913 #undef MC_CMD_0x16a_PRIVILEGE_CTG 24914 24915 #define MC_CMD_0x16a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 24916 24917 /* MC_CMD_VIRTIO_INIT_QUEUE_REQ msgrequest */ 24918 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_LEN 68 24919 /* Type of virtqueue to create. A network rxq and a txq can exist at the same 24920 * time on a single VI. 24921 */ 24922 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_QUEUE_TYPE_OFST 0 24923 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_QUEUE_TYPE_LEN 1 24924 /* enum: A network device receive queue */ 24925 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_NET_RXQ 0x0 24926 /* enum: A network device transmit queue */ 24927 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_NET_TXQ 0x1 24928 /* enum: A block device request queue */ 24929 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_BLOCK 0x2 24930 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED_OFST 1 24931 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED_LEN 1 24932 /* If the calling function is a PF and this field is not VF_NULL, create the 24933 * queue on the specified child VF instead of on the PF. 24934 */ 24935 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_TARGET_VF_OFST 2 24936 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_TARGET_VF_LEN 2 24937 /* enum: No VF, create queue on the PF. */ 24938 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_VF_NULL 0xffff 24939 /* Desired instance. This is the function-local index of the associated VI, not 24940 * the virtqueue number as counted by the virtqueue spec. 24941 */ 24942 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INSTANCE_OFST 4 24943 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INSTANCE_LEN 4 24944 /* Queue size, in entries. Must be a power of two. */ 24945 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_SIZE_OFST 8 24946 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_SIZE_LEN 4 24947 /* Flags */ 24948 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FLAGS_OFST 12 24949 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FLAGS_LEN 4 24950 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USE_PASID_OFST 12 24951 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USE_PASID_LBN 0 24952 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USE_PASID_WIDTH 1 24953 /* Address of the descriptor table in the virtqueue. */ 24954 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_OFST 16 24955 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LEN 8 24956 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_OFST 16 24957 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_OFST 20 24958 /* Address of the available ring in the virtqueue. */ 24959 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_OFST 24 24960 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LEN 8 24961 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_OFST 24 24962 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_OFST 28 24963 /* Address of the used ring in the virtqueue. */ 24964 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_OFST 32 24965 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LEN 8 24966 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_OFST 32 24967 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_OFST 36 24968 /* PASID to use on PCIe transactions involving this queue. Ignored if the 24969 * USE_PASID flag is not set. 24970 */ 24971 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_PASID_OFST 40 24972 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_PASID_LEN 4 24973 /* Which MSIX vector to use for this virtqueue, or NO_VECTOR if MSIX should not 24974 * be used. 24975 */ 24976 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MSIX_VECTOR_OFST 44 24977 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MSIX_VECTOR_LEN 2 24978 /* enum: Do not enable interrupts for this virtqueue */ 24979 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_NO_VECTOR 0xffff 24980 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED2_OFST 46 24981 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED2_LEN 2 24982 /* Virtio features to apply to this queue. Same format as the in the virtio 24983 * spec and in the return from MC_CMD_VIRTIO_GET_FEATURES. Must be a subset of 24984 * the features returned from MC_CMD_VIRTIO_GET_FEATURES. Features are per- 24985 * queue because with vDPA multiple queues on the same function can be passed 24986 * through to different virtual hosts as independent devices. 24987 */ 24988 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_OFST 48 24989 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LEN 8 24990 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_OFST 48 24991 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_OFST 52 24992 /* Enum values, see field(s): */ 24993 /* MC_CMD_VIRTIO_GET_FEATURES/MC_CMD_VIRTIO_GET_FEATURES_OUT/FEATURES */ 24994 /* The initial producer index for this queue's used ring. If this queue is 24995 * being created to be migrated into, this should be the FINAL_PIDX value 24996 * returned by MC_CMD_VIRTIO_FINI_QUEUE of the queue being migrated from. 24997 * Otherwise, it should be zero. 24998 */ 24999 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_PIDX_OFST 56 25000 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_PIDX_LEN 4 25001 /* The initial consumer index for this queue's available ring. If this queue is 25002 * being created to be migrated into, this should be the FINAL_CIDX value 25003 * returned by MC_CMD_VIRTIO_FINI_QUEUE of the queue being migrated from. 25004 * Otherwise, it should be zero. 25005 */ 25006 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_CIDX_OFST 60 25007 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_CIDX_LEN 4 25008 /* A MAE_MPORT_SELECTOR defining which mport this queue should be associated 25009 * with. Use MAE_MPORT_SELECTOR_ASSIGNED to request the default mport for the 25010 * function this queue is being created on. 25011 */ 25012 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MPORT_SELECTOR_OFST 64 25013 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MPORT_SELECTOR_LEN 4 25014 25015 /* MC_CMD_VIRTIO_INIT_QUEUE_RESP msgresponse */ 25016 #define MC_CMD_VIRTIO_INIT_QUEUE_RESP_LEN 0 25017 25018 25019 /***********************************/ 25020 /* MC_CMD_VIRTIO_FINI_QUEUE 25021 * Destroy a virtio virtqueue 25022 */ 25023 #define MC_CMD_VIRTIO_FINI_QUEUE 0x16b 25024 #undef MC_CMD_0x16b_PRIVILEGE_CTG 25025 25026 #define MC_CMD_0x16b_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25027 25028 /* MC_CMD_VIRTIO_FINI_QUEUE_REQ msgrequest */ 25029 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_LEN 8 25030 /* Type of virtqueue to destroy. */ 25031 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_QUEUE_TYPE_OFST 0 25032 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_QUEUE_TYPE_LEN 1 25033 /* Enum values, see field(s): */ 25034 /* MC_CMD_VIRTIO_INIT_QUEUE/MC_CMD_VIRTIO_INIT_QUEUE_REQ/QUEUE_TYPE */ 25035 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_RESERVED_OFST 1 25036 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_RESERVED_LEN 1 25037 /* If the calling function is a PF and this field is not VF_NULL, destroy the 25038 * queue on the specified child VF instead of on the PF. 25039 */ 25040 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_TARGET_VF_OFST 2 25041 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_TARGET_VF_LEN 2 25042 /* enum: No VF, destroy the queue on the PF. */ 25043 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_VF_NULL 0xffff 25044 /* Instance to destroy */ 25045 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_INSTANCE_OFST 4 25046 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_INSTANCE_LEN 4 25047 25048 /* MC_CMD_VIRTIO_FINI_QUEUE_RESP msgresponse */ 25049 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_LEN 8 25050 /* The producer index of the used ring when the queue was stopped. */ 25051 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_PIDX_OFST 0 25052 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_PIDX_LEN 4 25053 /* The consumer index of the available ring when the queue was stopped. */ 25054 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_CIDX_OFST 4 25055 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_CIDX_LEN 4 25056 25057 25058 /***********************************/ 25059 /* MC_CMD_VIRTIO_GET_DOORBELL_OFFSET 25060 * Get the offset in the BAR of the doorbells for a VI. Doesn't require the 25061 * queue(s) to be allocated. 25062 */ 25063 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET 0x16c 25064 #undef MC_CMD_0x16c_PRIVILEGE_CTG 25065 25066 #define MC_CMD_0x16c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 25067 25068 /* MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ msgrequest */ 25069 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_LEN 8 25070 /* Type of device to get information for. Matches the device id as defined by 25071 * the virtio spec. 25072 */ 25073 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_DEVICE_ID_OFST 0 25074 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_DEVICE_ID_LEN 1 25075 /* Enum values, see field(s): */ 25076 /* MC_CMD_VIRTIO_GET_FEATURES/MC_CMD_VIRTIO_GET_FEATURES_IN/DEVICE_ID */ 25077 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_RESERVED_OFST 1 25078 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_RESERVED_LEN 1 25079 /* If the calling function is a PF and this field is not VF_NULL, query the VI 25080 * on the specified child VF instead of on the PF. 25081 */ 25082 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_TARGET_VF_OFST 2 25083 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_TARGET_VF_LEN 2 25084 /* enum: No VF, query the PF. */ 25085 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_VF_NULL 0xffff 25086 /* VI instance to query */ 25087 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_INSTANCE_OFST 4 25088 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_INSTANCE_LEN 4 25089 25090 /* MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP msgresponse */ 25091 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_LEN 8 25092 /* Offset of RX doorbell in BAR */ 25093 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_RX_DBL_OFFSET_OFST 0 25094 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_RX_DBL_OFFSET_LEN 4 25095 /* Offset of TX doorbell in BAR */ 25096 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_TX_DBL_OFFSET_OFST 4 25097 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_TX_DBL_OFFSET_LEN 4 25098 25099 /* MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP msgresponse */ 25100 #define MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP_LEN 4 25101 /* Offset of request doorbell in BAR */ 25102 #define MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP_DBL_OFFSET_OFST 0 25103 #define MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP_DBL_OFFSET_LEN 4 25104 25105 /* PCIE_FUNCTION structuredef: Structure representing a PCIe function ID 25106 * (interface/PF/VF tuple) 25107 */ 25108 #define PCIE_FUNCTION_LEN 8 25109 /* PCIe PF function number */ 25110 #define PCIE_FUNCTION_PF_OFST 0 25111 #define PCIE_FUNCTION_PF_LEN 2 25112 /* enum: Wildcard value representing any available function (e.g in resource 25113 * allocation requests) 25114 */ 25115 #define PCIE_FUNCTION_PF_ANY 0xfffe 25116 /* enum: Value representing invalid (null) function */ 25117 #define PCIE_FUNCTION_PF_NULL 0xffff 25118 #define PCIE_FUNCTION_PF_LBN 0 25119 #define PCIE_FUNCTION_PF_WIDTH 16 25120 /* PCIe VF Function number (PF relative) */ 25121 #define PCIE_FUNCTION_VF_OFST 2 25122 #define PCIE_FUNCTION_VF_LEN 2 25123 /* enum: Wildcard value representing any available function (e.g in resource 25124 * allocation requests) 25125 */ 25126 #define PCIE_FUNCTION_VF_ANY 0xfffe 25127 /* enum: Function is a PF (when PF != PF_NULL) or invalid function (when PF == 25128 * PF_NULL) 25129 */ 25130 #define PCIE_FUNCTION_VF_NULL 0xffff 25131 #define PCIE_FUNCTION_VF_LBN 16 25132 #define PCIE_FUNCTION_VF_WIDTH 16 25133 /* PCIe interface of the function */ 25134 #define PCIE_FUNCTION_INTF_OFST 4 25135 #define PCIE_FUNCTION_INTF_LEN 4 25136 /* enum: Host PCIe interface */ 25137 #define PCIE_FUNCTION_INTF_HOST 0x0 25138 /* enum: Application Processor interface */ 25139 #define PCIE_FUNCTION_INTF_AP 0x1 25140 #define PCIE_FUNCTION_INTF_LBN 32 25141 #define PCIE_FUNCTION_INTF_WIDTH 32 25142 25143 25144 /***********************************/ 25145 /* MC_CMD_DESC_PROXY_FUNC_CREATE 25146 * Descriptor proxy functions are abstract devices that forward all request 25147 * submitted to the host PCIe function (descriptors submitted to Virtio or 25148 * EF100 queues) to be handled on another function (most commonly on the 25149 * embedded Application Processor), via EF100 descriptor proxy, memory-to- 25150 * memory and descriptor-to-completion mechanisms. Primary user is Virtio-blk 25151 * subsystem, see SF-122927-TC. This function allocates a new descriptor proxy 25152 * function on the host and assigns a user-defined label. The actual function 25153 * configuration is not persisted until the caller configures it with 25154 * MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN and commits with 25155 * MC_CMD_DESC_PROXY_FUNC_COMMIT_IN. 25156 */ 25157 #define MC_CMD_DESC_PROXY_FUNC_CREATE 0x172 25158 #undef MC_CMD_0x172_PRIVILEGE_CTG 25159 25160 #define MC_CMD_0x172_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25161 25162 /* MC_CMD_DESC_PROXY_FUNC_CREATE_IN msgrequest */ 25163 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_LEN 52 25164 /* PCIe Function ID to allocate (as struct PCIE_FUNCTION). Set to 25165 * {PF_ANY,VF_ANY,interface} for "any available function" Set to 25166 * {PF_ANY,VF_NULL,interface} for "any available PF" 25167 */ 25168 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_OFST 0 25169 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LEN 8 25170 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_LO_OFST 0 25171 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_FUNC_HI_OFST 4 25172 /* The personality to set. The meanings of the personalities are defined in 25173 * SF-120734-TC with more information in SF-122717-TC. At present, we only 25174 * support proxying for VIRTIO_BLK 25175 */ 25176 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_PERSONALITY_OFST 8 25177 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_PERSONALITY_LEN 4 25178 /* Enum values, see field(s): */ 25179 /* FUNCTION_PERSONALITY/ID */ 25180 /* User-defined label (zero-terminated ASCII string) to uniquely identify the 25181 * function 25182 */ 25183 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_LABEL_OFST 12 25184 #define MC_CMD_DESC_PROXY_FUNC_CREATE_IN_LABEL_LEN 40 25185 25186 /* MC_CMD_DESC_PROXY_FUNC_CREATE_OUT msgresponse */ 25187 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_LEN 12 25188 /* Handle to the descriptor proxy function */ 25189 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_HANDLE_OFST 0 25190 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_HANDLE_LEN 4 25191 /* Allocated function ID (as struct PCIE_FUNCTION) */ 25192 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_OFST 4 25193 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LEN 8 25194 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_LO_OFST 4 25195 #define MC_CMD_DESC_PROXY_FUNC_CREATE_OUT_FUNC_HI_OFST 8 25196 25197 25198 /***********************************/ 25199 /* MC_CMD_DESC_PROXY_FUNC_DESTROY 25200 * Remove an existing descriptor proxy function. Underlying function 25201 * personality and configuration reverts back to factory default. Function 25202 * configuration is committed immediately to specified store and any function 25203 * ownership is released. 25204 */ 25205 #define MC_CMD_DESC_PROXY_FUNC_DESTROY 0x173 25206 #undef MC_CMD_0x173_PRIVILEGE_CTG 25207 25208 #define MC_CMD_0x173_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25209 25210 /* MC_CMD_DESC_PROXY_FUNC_DESTROY_IN msgrequest */ 25211 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_IN_LEN 44 25212 /* User-defined label (zero-terminated ASCII string) to uniquely identify the 25213 * function 25214 */ 25215 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_IN_LABEL_OFST 0 25216 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_IN_LABEL_LEN 40 25217 /* Store from which to remove function configuration */ 25218 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_IN_STORE_OFST 40 25219 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_IN_STORE_LEN 4 25220 /* Enum values, see field(s): */ 25221 /* MC_CMD_DESC_PROXY_FUNC_COMMIT/MC_CMD_DESC_PROXY_FUNC_COMMIT_IN/STORE */ 25222 25223 /* MC_CMD_DESC_PROXY_FUNC_DESTROY_OUT msgresponse */ 25224 #define MC_CMD_DESC_PROXY_FUNC_DESTROY_OUT_LEN 0 25225 25226 /* VIRTIO_BLK_CONFIG structuredef: Virtio block device configuration. See 25227 * Virtio specification v1.1, Sections 5.2.3 and 6 for definition of feature 25228 * bits. See Virtio specification v1.1, Section 5.2.4 (struct 25229 * virtio_blk_config) for definition of remaining configuration fields 25230 */ 25231 #define VIRTIO_BLK_CONFIG_LEN 68 25232 /* Virtio block device features to advertise, per Virtio 1.1, 5.2.3 and 6 */ 25233 #define VIRTIO_BLK_CONFIG_FEATURES_OFST 0 25234 #define VIRTIO_BLK_CONFIG_FEATURES_LEN 8 25235 #define VIRTIO_BLK_CONFIG_FEATURES_LO_OFST 0 25236 #define VIRTIO_BLK_CONFIG_FEATURES_HI_OFST 4 25237 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BARRIER_OFST 0 25238 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BARRIER_LBN 0 25239 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BARRIER_WIDTH 1 25240 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SIZE_MAX_OFST 0 25241 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SIZE_MAX_LBN 1 25242 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SIZE_MAX_WIDTH 1 25243 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SEG_MAX_OFST 0 25244 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SEG_MAX_LBN 2 25245 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SEG_MAX_WIDTH 1 25246 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_GEOMETRY_OFST 0 25247 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_GEOMETRY_LBN 4 25248 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_GEOMETRY_WIDTH 1 25249 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_RO_OFST 0 25250 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_RO_LBN 5 25251 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_RO_WIDTH 1 25252 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BLK_SIZE_OFST 0 25253 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BLK_SIZE_LBN 6 25254 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_BLK_SIZE_WIDTH 1 25255 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SCSI_OFST 0 25256 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SCSI_LBN 7 25257 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SCSI_WIDTH 1 25258 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_FLUSH_OFST 0 25259 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_FLUSH_LBN 9 25260 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_FLUSH_WIDTH 1 25261 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_TOPOLOGY_OFST 0 25262 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_TOPOLOGY_LBN 10 25263 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_TOPOLOGY_WIDTH 1 25264 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_CONFIG_WCE_OFST 0 25265 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_CONFIG_WCE_LBN 11 25266 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_CONFIG_WCE_WIDTH 1 25267 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_MQ_OFST 0 25268 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_MQ_LBN 12 25269 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_MQ_WIDTH 1 25270 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_DISCARD_OFST 0 25271 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_DISCARD_LBN 13 25272 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_DISCARD_WIDTH 1 25273 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_WRITE_ZEROES_OFST 0 25274 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_WRITE_ZEROES_LBN 14 25275 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_WRITE_ZEROES_WIDTH 1 25276 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_INDIRECT_DESC_OFST 0 25277 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_INDIRECT_DESC_LBN 28 25278 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_INDIRECT_DESC_WIDTH 1 25279 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_EVENT_IDX_OFST 0 25280 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_EVENT_IDX_LBN 29 25281 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_EVENT_IDX_WIDTH 1 25282 #define VIRTIO_BLK_CONFIG_VIRTIO_F_VERSION_1_OFST 0 25283 #define VIRTIO_BLK_CONFIG_VIRTIO_F_VERSION_1_LBN 32 25284 #define VIRTIO_BLK_CONFIG_VIRTIO_F_VERSION_1_WIDTH 1 25285 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ACCESS_PLATFORM_OFST 0 25286 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ACCESS_PLATFORM_LBN 33 25287 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ACCESS_PLATFORM_WIDTH 1 25288 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_PACKED_OFST 0 25289 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_PACKED_LBN 34 25290 #define VIRTIO_BLK_CONFIG_VIRTIO_F_RING_PACKED_WIDTH 1 25291 #define VIRTIO_BLK_CONFIG_VIRTIO_F_IN_ORDER_OFST 0 25292 #define VIRTIO_BLK_CONFIG_VIRTIO_F_IN_ORDER_LBN 35 25293 #define VIRTIO_BLK_CONFIG_VIRTIO_F_IN_ORDER_WIDTH 1 25294 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ORDER_PLATFORM_OFST 0 25295 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ORDER_PLATFORM_LBN 36 25296 #define VIRTIO_BLK_CONFIG_VIRTIO_F_ORDER_PLATFORM_WIDTH 1 25297 #define VIRTIO_BLK_CONFIG_VIRTIO_F_SR_IOV_OFST 0 25298 #define VIRTIO_BLK_CONFIG_VIRTIO_F_SR_IOV_LBN 37 25299 #define VIRTIO_BLK_CONFIG_VIRTIO_F_SR_IOV_WIDTH 1 25300 #define VIRTIO_BLK_CONFIG_VIRTIO_F_NOTIFICATION_DATA_OFST 0 25301 #define VIRTIO_BLK_CONFIG_VIRTIO_F_NOTIFICATION_DATA_LBN 38 25302 #define VIRTIO_BLK_CONFIG_VIRTIO_F_NOTIFICATION_DATA_WIDTH 1 25303 #define VIRTIO_BLK_CONFIG_FEATURES_LBN 0 25304 #define VIRTIO_BLK_CONFIG_FEATURES_WIDTH 64 25305 /* The capacity of the device (expressed in 512-byte sectors) */ 25306 #define VIRTIO_BLK_CONFIG_CAPACITY_OFST 8 25307 #define VIRTIO_BLK_CONFIG_CAPACITY_LEN 8 25308 #define VIRTIO_BLK_CONFIG_CAPACITY_LO_OFST 8 25309 #define VIRTIO_BLK_CONFIG_CAPACITY_HI_OFST 12 25310 #define VIRTIO_BLK_CONFIG_CAPACITY_LBN 64 25311 #define VIRTIO_BLK_CONFIG_CAPACITY_WIDTH 64 25312 /* Maximum size of any single segment. Only valid when VIRTIO_BLK_F_SIZE_MAX is 25313 * set. 25314 */ 25315 #define VIRTIO_BLK_CONFIG_SIZE_MAX_OFST 16 25316 #define VIRTIO_BLK_CONFIG_SIZE_MAX_LEN 4 25317 #define VIRTIO_BLK_CONFIG_SIZE_MAX_LBN 128 25318 #define VIRTIO_BLK_CONFIG_SIZE_MAX_WIDTH 32 25319 /* Maximum number of segments in a request. Only valid when 25320 * VIRTIO_BLK_F_SEG_MAX is set. 25321 */ 25322 #define VIRTIO_BLK_CONFIG_SEG_MAX_OFST 20 25323 #define VIRTIO_BLK_CONFIG_SEG_MAX_LEN 4 25324 #define VIRTIO_BLK_CONFIG_SEG_MAX_LBN 160 25325 #define VIRTIO_BLK_CONFIG_SEG_MAX_WIDTH 32 25326 /* Disk-style geometry - cylinders. Only valid when VIRTIO_BLK_F_GEOMETRY is 25327 * set. 25328 */ 25329 #define VIRTIO_BLK_CONFIG_CYLINDERS_OFST 24 25330 #define VIRTIO_BLK_CONFIG_CYLINDERS_LEN 2 25331 #define VIRTIO_BLK_CONFIG_CYLINDERS_LBN 192 25332 #define VIRTIO_BLK_CONFIG_CYLINDERS_WIDTH 16 25333 /* Disk-style geometry - heads. Only valid when VIRTIO_BLK_F_GEOMETRY is set. 25334 */ 25335 #define VIRTIO_BLK_CONFIG_HEADS_OFST 26 25336 #define VIRTIO_BLK_CONFIG_HEADS_LEN 1 25337 #define VIRTIO_BLK_CONFIG_HEADS_LBN 208 25338 #define VIRTIO_BLK_CONFIG_HEADS_WIDTH 8 25339 /* Disk-style geometry - sectors. Only valid when VIRTIO_BLK_F_GEOMETRY is set. 25340 */ 25341 #define VIRTIO_BLK_CONFIG_SECTORS_OFST 27 25342 #define VIRTIO_BLK_CONFIG_SECTORS_LEN 1 25343 #define VIRTIO_BLK_CONFIG_SECTORS_LBN 216 25344 #define VIRTIO_BLK_CONFIG_SECTORS_WIDTH 8 25345 /* Block size of disk. Only valid when VIRTIO_BLK_F_BLK_SIZE is set. */ 25346 #define VIRTIO_BLK_CONFIG_BLK_SIZE_OFST 28 25347 #define VIRTIO_BLK_CONFIG_BLK_SIZE_LEN 4 25348 #define VIRTIO_BLK_CONFIG_BLK_SIZE_LBN 224 25349 #define VIRTIO_BLK_CONFIG_BLK_SIZE_WIDTH 32 25350 /* Block topology - number of logical blocks per physical block (log2). Only 25351 * valid when VIRTIO_BLK_F_TOPOLOGY is set. 25352 */ 25353 #define VIRTIO_BLK_CONFIG_PHYSICAL_BLOCK_EXP_OFST 32 25354 #define VIRTIO_BLK_CONFIG_PHYSICAL_BLOCK_EXP_LEN 1 25355 #define VIRTIO_BLK_CONFIG_PHYSICAL_BLOCK_EXP_LBN 256 25356 #define VIRTIO_BLK_CONFIG_PHYSICAL_BLOCK_EXP_WIDTH 8 25357 /* Block topology - offset of first aligned logical block. Only valid when 25358 * VIRTIO_BLK_F_TOPOLOGY is set. 25359 */ 25360 #define VIRTIO_BLK_CONFIG_ALIGNMENT_OFFSET_OFST 33 25361 #define VIRTIO_BLK_CONFIG_ALIGNMENT_OFFSET_LEN 1 25362 #define VIRTIO_BLK_CONFIG_ALIGNMENT_OFFSET_LBN 264 25363 #define VIRTIO_BLK_CONFIG_ALIGNMENT_OFFSET_WIDTH 8 25364 /* Block topology - suggested minimum I/O size in blocks. Only valid when 25365 * VIRTIO_BLK_F_TOPOLOGY is set. 25366 */ 25367 #define VIRTIO_BLK_CONFIG_MIN_IO_SIZE_OFST 34 25368 #define VIRTIO_BLK_CONFIG_MIN_IO_SIZE_LEN 2 25369 #define VIRTIO_BLK_CONFIG_MIN_IO_SIZE_LBN 272 25370 #define VIRTIO_BLK_CONFIG_MIN_IO_SIZE_WIDTH 16 25371 /* Block topology - optimal (suggested maximum) I/O size in blocks. Only valid 25372 * when VIRTIO_BLK_F_TOPOLOGY is set. 25373 */ 25374 #define VIRTIO_BLK_CONFIG_OPT_IO_SIZE_OFST 36 25375 #define VIRTIO_BLK_CONFIG_OPT_IO_SIZE_LEN 4 25376 #define VIRTIO_BLK_CONFIG_OPT_IO_SIZE_LBN 288 25377 #define VIRTIO_BLK_CONFIG_OPT_IO_SIZE_WIDTH 32 25378 /* Unused, set to zero. Note that virtio_blk_config.writeback is volatile and 25379 * not carried in config data. 25380 */ 25381 #define VIRTIO_BLK_CONFIG_UNUSED0_OFST 40 25382 #define VIRTIO_BLK_CONFIG_UNUSED0_LEN 2 25383 #define VIRTIO_BLK_CONFIG_UNUSED0_LBN 320 25384 #define VIRTIO_BLK_CONFIG_UNUSED0_WIDTH 16 25385 /* Number of queues. Only valid if the VIRTIO_BLK_F_MQ feature is negotiated. 25386 */ 25387 #define VIRTIO_BLK_CONFIG_NUM_QUEUES_OFST 42 25388 #define VIRTIO_BLK_CONFIG_NUM_QUEUES_LEN 2 25389 #define VIRTIO_BLK_CONFIG_NUM_QUEUES_LBN 336 25390 #define VIRTIO_BLK_CONFIG_NUM_QUEUES_WIDTH 16 25391 /* Maximum discard sectors size, in 512-byte units. Only valid if 25392 * VIRTIO_BLK_F_DISCARD is set. 25393 */ 25394 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SECTORS_OFST 44 25395 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SECTORS_LEN 4 25396 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SECTORS_LBN 352 25397 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SECTORS_WIDTH 32 25398 /* Maximum discard segment number. Only valid if VIRTIO_BLK_F_DISCARD is set. 25399 */ 25400 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SEG_OFST 48 25401 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SEG_LEN 4 25402 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SEG_LBN 384 25403 #define VIRTIO_BLK_CONFIG_MAX_DISCARD_SEG_WIDTH 32 25404 /* Discard sector alignment, in 512-byte units. Only valid if 25405 * VIRTIO_BLK_F_DISCARD is set. 25406 */ 25407 #define VIRTIO_BLK_CONFIG_DISCARD_SECTOR_ALIGNMENT_OFST 52 25408 #define VIRTIO_BLK_CONFIG_DISCARD_SECTOR_ALIGNMENT_LEN 4 25409 #define VIRTIO_BLK_CONFIG_DISCARD_SECTOR_ALIGNMENT_LBN 416 25410 #define VIRTIO_BLK_CONFIG_DISCARD_SECTOR_ALIGNMENT_WIDTH 32 25411 /* Maximum write zeroes sectors size, in 512-byte units. Only valid if 25412 * VIRTIO_BLK_F_WRITE_ZEROES is set. 25413 */ 25414 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SECTORS_OFST 56 25415 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SECTORS_LEN 4 25416 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SECTORS_LBN 448 25417 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SECTORS_WIDTH 32 25418 /* Maximum write zeroes segment number. Only valid if VIRTIO_BLK_F_WRITE_ZEROES 25419 * is set. 25420 */ 25421 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SEG_OFST 60 25422 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SEG_LEN 4 25423 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SEG_LBN 480 25424 #define VIRTIO_BLK_CONFIG_MAX_WRITE_ZEROES_SEG_WIDTH 32 25425 /* Write zeroes request can result in deallocating one or more sectors. Only 25426 * valid if VIRTIO_BLK_F_WRITE_ZEROES is set. 25427 */ 25428 #define VIRTIO_BLK_CONFIG_WRITE_ZEROES_MAY_UNMAP_OFST 64 25429 #define VIRTIO_BLK_CONFIG_WRITE_ZEROES_MAY_UNMAP_LEN 1 25430 #define VIRTIO_BLK_CONFIG_WRITE_ZEROES_MAY_UNMAP_LBN 512 25431 #define VIRTIO_BLK_CONFIG_WRITE_ZEROES_MAY_UNMAP_WIDTH 8 25432 /* Unused, set to zero. */ 25433 #define VIRTIO_BLK_CONFIG_UNUSED1_OFST 65 25434 #define VIRTIO_BLK_CONFIG_UNUSED1_LEN 3 25435 #define VIRTIO_BLK_CONFIG_UNUSED1_LBN 520 25436 #define VIRTIO_BLK_CONFIG_UNUSED1_WIDTH 24 25437 25438 25439 /***********************************/ 25440 /* MC_CMD_DESC_PROXY_FUNC_CONFIG_SET 25441 * Set configuration for an existing descriptor proxy function. Configuration 25442 * data must match function personality. The actual function configuration is 25443 * not persisted until the caller commits with MC_CMD_DESC_PROXY_FUNC_COMMIT_IN 25444 */ 25445 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET 0x174 25446 #undef MC_CMD_0x174_PRIVILEGE_CTG 25447 25448 #define MC_CMD_0x174_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25449 25450 /* MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN msgrequest */ 25451 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_LENMIN 20 25452 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_LENMAX 252 25453 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_LENMAX_MCDI2 1020 25454 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_LEN(num) (20+1*(num)) 25455 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_NUM(len) (((len)-20)/1) 25456 /* Handle to descriptor proxy function (as returned by 25457 * MC_CMD_DESC_PROXY_FUNC_OPEN) 25458 */ 25459 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_HANDLE_OFST 0 25460 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_HANDLE_LEN 4 25461 /* Reserved for future extension, set to zero. */ 25462 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_RESERVED_OFST 4 25463 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_RESERVED_LEN 16 25464 /* Configuration data. Format of configuration data is determined implicitly 25465 * from function personality referred to by HANDLE. Currently, only supported 25466 * format is VIRTIO_BLK_CONFIG. 25467 */ 25468 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_OFST 20 25469 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_LEN 1 25470 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_MINNUM 0 25471 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_MAXNUM 232 25472 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_MAXNUM_MCDI2 1000 25473 25474 /* MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_OUT msgresponse */ 25475 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_OUT_LEN 0 25476 25477 25478 /***********************************/ 25479 /* MC_CMD_DESC_PROXY_FUNC_COMMIT 25480 * Commit function configuration to non-volatile or volatile store. Once 25481 * configuration is applied to hardware (which may happen immediately or on 25482 * next function/device reset) a DESC_PROXY_FUNC_CONFIG_SET MCDI event will be 25483 * delivered to callers MCDI event queue. 25484 */ 25485 #define MC_CMD_DESC_PROXY_FUNC_COMMIT 0x175 25486 #undef MC_CMD_0x175_PRIVILEGE_CTG 25487 25488 #define MC_CMD_0x175_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25489 25490 /* MC_CMD_DESC_PROXY_FUNC_COMMIT_IN msgrequest */ 25491 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_LEN 8 25492 /* Handle to descriptor proxy function (as returned by 25493 * MC_CMD_DESC_PROXY_FUNC_OPEN) 25494 */ 25495 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_HANDLE_OFST 0 25496 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_HANDLE_LEN 4 25497 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_STORE_OFST 4 25498 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_STORE_LEN 4 25499 /* enum: Store into non-volatile (dynamic) config */ 25500 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_NON_VOLATILE 0x0 25501 /* enum: Store into volatile (ephemeral) config */ 25502 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_IN_VOLATILE 0x1 25503 25504 /* MC_CMD_DESC_PROXY_FUNC_COMMIT_OUT msgresponse */ 25505 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_OUT_LEN 4 25506 /* Generation count to be delivered in an event once configuration becomes live 25507 */ 25508 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_OUT_CONFIG_GENERATION_OFST 0 25509 #define MC_CMD_DESC_PROXY_FUNC_COMMIT_OUT_CONFIG_GENERATION_LEN 4 25510 25511 25512 /***********************************/ 25513 /* MC_CMD_DESC_PROXY_FUNC_OPEN 25514 * Retrieve a handle for an existing descriptor proxy function. Returns an 25515 * integer handle, valid until function is deallocated, MC rebooted or power- 25516 * cycle. Returns ENODEV if no function with given label exists. 25517 */ 25518 #define MC_CMD_DESC_PROXY_FUNC_OPEN 0x176 25519 #undef MC_CMD_0x176_PRIVILEGE_CTG 25520 25521 #define MC_CMD_0x176_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25522 25523 /* MC_CMD_DESC_PROXY_FUNC_OPEN_IN msgrequest */ 25524 #define MC_CMD_DESC_PROXY_FUNC_OPEN_IN_LEN 40 25525 /* User-defined label (zero-terminated ASCII string) to uniquely identify the 25526 * function 25527 */ 25528 #define MC_CMD_DESC_PROXY_FUNC_OPEN_IN_LABEL_OFST 0 25529 #define MC_CMD_DESC_PROXY_FUNC_OPEN_IN_LABEL_LEN 40 25530 25531 /* MC_CMD_DESC_PROXY_FUNC_OPEN_OUT msgresponse */ 25532 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_LENMIN 40 25533 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_LENMAX 252 25534 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_LENMAX_MCDI2 1020 25535 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_LEN(num) (40+1*(num)) 25536 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_NUM(len) (((len)-40)/1) 25537 /* Handle to the descriptor proxy function */ 25538 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_HANDLE_OFST 0 25539 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_HANDLE_LEN 4 25540 /* PCIe Function ID (as struct PCIE_FUNCTION) */ 25541 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_OFST 4 25542 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LEN 8 25543 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_LO_OFST 4 25544 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_FUNC_HI_OFST 8 25545 /* Function personality */ 25546 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_PERSONALITY_OFST 12 25547 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_PERSONALITY_LEN 4 25548 /* Enum values, see field(s): */ 25549 /* FUNCTION_PERSONALITY/ID */ 25550 /* Function configuration state */ 25551 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_STATUS_OFST 16 25552 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_STATUS_LEN 4 25553 /* enum: Function configuration is visible to the host (live) */ 25554 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_LIVE 0x0 25555 /* enum: Function configuration is pending reset */ 25556 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_PENDING 0x1 25557 /* enum: Function configuration is missing (created, but no configuration 25558 * committed) 25559 */ 25560 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_UNCONFIGURED 0x2 25561 /* Generation count to be delivered in an event once the configuration becomes 25562 * live (if status is "pending") 25563 */ 25564 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_GENERATION_OFST 20 25565 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_GENERATION_LEN 4 25566 /* Reserved for future extension, set to zero. */ 25567 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_RESERVED_OFST 24 25568 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_RESERVED_LEN 16 25569 /* Configuration data corresponding to function personality. Currently, only 25570 * supported format is VIRTIO_BLK_CONFIG. Not valid if status is UNCONFIGURED. 25571 */ 25572 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_OFST 40 25573 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_LEN 1 25574 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_MINNUM 0 25575 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_MAXNUM 212 25576 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_MAXNUM_MCDI2 980 25577 25578 25579 /***********************************/ 25580 /* MC_CMD_DESC_PROXY_FUNC_CLOSE 25581 * Releases a handle for an open descriptor proxy function. If proxying was 25582 * enabled on the device, the caller is expected to gracefully stop it using 25583 * MC_CMD_DESC_PROXY_FUNC_DISABLE prior to calling this function. Closing an 25584 * active device without disabling proxying will result in forced close, which 25585 * will put the device into a failed state and signal the host driver of the 25586 * error (for virtio, DEVICE_NEEDS_RESET flag would be set on the host side) 25587 */ 25588 #define MC_CMD_DESC_PROXY_FUNC_CLOSE 0x1a1 25589 #undef MC_CMD_0x1a1_PRIVILEGE_CTG 25590 25591 #define MC_CMD_0x1a1_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25592 25593 /* MC_CMD_DESC_PROXY_FUNC_CLOSE_IN msgrequest */ 25594 #define MC_CMD_DESC_PROXY_FUNC_CLOSE_IN_LEN 4 25595 /* Handle to the descriptor proxy function */ 25596 #define MC_CMD_DESC_PROXY_FUNC_CLOSE_IN_HANDLE_OFST 0 25597 #define MC_CMD_DESC_PROXY_FUNC_CLOSE_IN_HANDLE_LEN 4 25598 25599 /* MC_CMD_DESC_PROXY_FUNC_CLOSE_OUT msgresponse */ 25600 #define MC_CMD_DESC_PROXY_FUNC_CLOSE_OUT_LEN 0 25601 25602 /* DESC_PROXY_FUNC_MAP structuredef */ 25603 #define DESC_PROXY_FUNC_MAP_LEN 52 25604 /* PCIe function ID (as struct PCIE_FUNCTION) */ 25605 #define DESC_PROXY_FUNC_MAP_FUNC_OFST 0 25606 #define DESC_PROXY_FUNC_MAP_FUNC_LEN 8 25607 #define DESC_PROXY_FUNC_MAP_FUNC_LO_OFST 0 25608 #define DESC_PROXY_FUNC_MAP_FUNC_HI_OFST 4 25609 #define DESC_PROXY_FUNC_MAP_FUNC_LBN 0 25610 #define DESC_PROXY_FUNC_MAP_FUNC_WIDTH 64 25611 /* Function personality */ 25612 #define DESC_PROXY_FUNC_MAP_PERSONALITY_OFST 8 25613 #define DESC_PROXY_FUNC_MAP_PERSONALITY_LEN 4 25614 /* Enum values, see field(s): */ 25615 /* FUNCTION_PERSONALITY/ID */ 25616 #define DESC_PROXY_FUNC_MAP_PERSONALITY_LBN 64 25617 #define DESC_PROXY_FUNC_MAP_PERSONALITY_WIDTH 32 25618 /* User-defined label (zero-terminated ASCII string) to uniquely identify the 25619 * function 25620 */ 25621 #define DESC_PROXY_FUNC_MAP_LABEL_OFST 12 25622 #define DESC_PROXY_FUNC_MAP_LABEL_LEN 40 25623 #define DESC_PROXY_FUNC_MAP_LABEL_LBN 96 25624 #define DESC_PROXY_FUNC_MAP_LABEL_WIDTH 320 25625 25626 25627 /***********************************/ 25628 /* MC_CMD_DESC_PROXY_FUNC_ENUM 25629 * Enumerate existing descriptor proxy functions 25630 */ 25631 #define MC_CMD_DESC_PROXY_FUNC_ENUM 0x177 25632 #undef MC_CMD_0x177_PRIVILEGE_CTG 25633 25634 #define MC_CMD_0x177_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25635 25636 /* MC_CMD_DESC_PROXY_FUNC_ENUM_IN msgrequest */ 25637 #define MC_CMD_DESC_PROXY_FUNC_ENUM_IN_LEN 4 25638 /* Starting index, set to 0 on first request. See 25639 * MC_CMD_DESC_PROXY_FUNC_ENUM_OUT/FLAGS. 25640 */ 25641 #define MC_CMD_DESC_PROXY_FUNC_ENUM_IN_START_IDX_OFST 0 25642 #define MC_CMD_DESC_PROXY_FUNC_ENUM_IN_START_IDX_LEN 4 25643 25644 /* MC_CMD_DESC_PROXY_FUNC_ENUM_OUT msgresponse */ 25645 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_LENMIN 4 25646 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_LENMAX 212 25647 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_LENMAX_MCDI2 992 25648 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_LEN(num) (4+52*(num)) 25649 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_NUM(len) (((len)-4)/52) 25650 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FLAGS_OFST 0 25651 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FLAGS_LEN 4 25652 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_MORE_DATA_OFST 0 25653 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_MORE_DATA_LBN 0 25654 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_MORE_DATA_WIDTH 1 25655 /* Function map, as array of DESC_PROXY_FUNC_MAP */ 25656 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_OFST 4 25657 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_LEN 52 25658 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_MINNUM 0 25659 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_MAXNUM 4 25660 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_MAXNUM_MCDI2 19 25661 25662 25663 /***********************************/ 25664 /* MC_CMD_DESC_PROXY_FUNC_ENABLE 25665 * Enable descriptor proxying for function into target event queue. Returns VI 25666 * allocation info for the proxy source function, so that the caller can map 25667 * absolute VI IDs from descriptor proxy events back to the originating 25668 * function. 25669 */ 25670 #define MC_CMD_DESC_PROXY_FUNC_ENABLE 0x178 25671 #undef MC_CMD_0x178_PRIVILEGE_CTG 25672 25673 #define MC_CMD_0x178_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25674 25675 /* MC_CMD_DESC_PROXY_FUNC_ENABLE_IN msgrequest */ 25676 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_IN_LEN 8 25677 /* Handle to descriptor proxy function (as returned by 25678 * MC_CMD_DESC_PROXY_FUNC_OPEN) 25679 */ 25680 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_IN_HANDLE_OFST 0 25681 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_IN_HANDLE_LEN 4 25682 /* Descriptor proxy sink queue (caller function relative). Must be extended 25683 * width event queue 25684 */ 25685 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_IN_TARGET_EVQ_OFST 4 25686 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_IN_TARGET_EVQ_LEN 4 25687 25688 /* MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT msgresponse */ 25689 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT_LEN 8 25690 /* The number of VIs allocated on the function */ 25691 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT_VI_COUNT_OFST 0 25692 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT_VI_COUNT_LEN 4 25693 /* The base absolute VI number allocated to the function. */ 25694 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT_VI_BASE_OFST 4 25695 #define MC_CMD_DESC_PROXY_FUNC_ENABLE_OUT_VI_BASE_LEN 4 25696 25697 25698 /***********************************/ 25699 /* MC_CMD_DESC_PROXY_FUNC_DISABLE 25700 * Disable descriptor proxying for function 25701 */ 25702 #define MC_CMD_DESC_PROXY_FUNC_DISABLE 0x179 25703 #undef MC_CMD_0x179_PRIVILEGE_CTG 25704 25705 #define MC_CMD_0x179_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25706 25707 /* MC_CMD_DESC_PROXY_FUNC_DISABLE_IN msgrequest */ 25708 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_IN_LEN 4 25709 /* Handle to descriptor proxy function (as returned by 25710 * MC_CMD_DESC_PROXY_FUNC_OPEN) 25711 */ 25712 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_IN_HANDLE_OFST 0 25713 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_IN_HANDLE_LEN 4 25714 25715 /* MC_CMD_DESC_PROXY_FUNC_DISABLE_OUT msgresponse */ 25716 #define MC_CMD_DESC_PROXY_FUNC_DISABLE_OUT_LEN 0 25717 25718 25719 /***********************************/ 25720 /* MC_CMD_GET_ADDR_SPC_ID 25721 * Get Address space identifier for use in mem2mem descriptors for a given 25722 * target. See SF-120734-TC for details on ADDR_SPC_IDs and mem2mem 25723 * descriptors. 25724 */ 25725 #define MC_CMD_GET_ADDR_SPC_ID 0x1a0 25726 #undef MC_CMD_0x1a0_PRIVILEGE_CTG 25727 25728 #define MC_CMD_0x1a0_PRIVILEGE_CTG SRIOV_CTG_ADMIN 25729 25730 /* MC_CMD_GET_ADDR_SPC_ID_IN msgrequest */ 25731 #define MC_CMD_GET_ADDR_SPC_ID_IN_LEN 16 25732 /* Resource type to get ADDR_SPC_ID for */ 25733 #define MC_CMD_GET_ADDR_SPC_ID_IN_TYPE_OFST 0 25734 #define MC_CMD_GET_ADDR_SPC_ID_IN_TYPE_LEN 4 25735 /* enum: Address space ID for host/AP memory DMA over the same interface this 25736 * MCDI was called on 25737 */ 25738 #define MC_CMD_GET_ADDR_SPC_ID_IN_SELF 0x0 25739 /* enum: Address space ID for host/AP memory DMA via PCI interface and function 25740 * specified by FUNC 25741 */ 25742 #define MC_CMD_GET_ADDR_SPC_ID_IN_PCI_FUNC 0x1 25743 /* enum: Address space ID for host/AP memory DMA via PCI interface and function 25744 * specified by FUNC with PASID value specified by PASID 25745 */ 25746 #define MC_CMD_GET_ADDR_SPC_ID_IN_PCI_FUNC_PASID 0x2 25747 /* enum: Address space ID for host/AP memory DMA via PCI interface and function 25748 * specified by FUNC with PASID value of relative VI specified by VI 25749 */ 25750 #define MC_CMD_GET_ADDR_SPC_ID_IN_REL_VI 0x3 25751 /* enum: Address space ID for host/AP memory DMA via PCI interface, function 25752 * and PASID value of absolute VI specified by VI 25753 */ 25754 #define MC_CMD_GET_ADDR_SPC_ID_IN_ABS_VI 0x4 25755 /* enum: Address space ID for host memory DMA via PCI interface and function of 25756 * descriptor proxy function specified by HANDLE 25757 */ 25758 #define MC_CMD_GET_ADDR_SPC_ID_IN_DESC_PROXY_HANDLE 0x5 25759 /* enum: Address space ID for DMA to/from MC memory */ 25760 #define MC_CMD_GET_ADDR_SPC_ID_IN_MC_MEM 0x6 25761 /* enum: Address space ID for DMA to/from other SmartNIC memory (on-chip, DDR) 25762 */ 25763 #define MC_CMD_GET_ADDR_SPC_ID_IN_NIC_MEM 0x7 25764 /* PCIe Function ID (as struct PCIE_FUNCTION). Only valid if TYPE is PCI_FUNC, 25765 * PCI_FUNC_PASID or REL_VI. 25766 */ 25767 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_OFST 4 25768 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LEN 8 25769 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_LO_OFST 4 25770 #define MC_CMD_GET_ADDR_SPC_ID_IN_FUNC_HI_OFST 8 25771 /* PASID value. Only valid if TYPE is PCI_FUNC_PASID. */ 25772 #define MC_CMD_GET_ADDR_SPC_ID_IN_PASID_OFST 12 25773 #define MC_CMD_GET_ADDR_SPC_ID_IN_PASID_LEN 4 25774 /* Relative or absolute VI number. Only valid if TYPE is REL_VI or ABS_VI */ 25775 #define MC_CMD_GET_ADDR_SPC_ID_IN_VI_OFST 12 25776 #define MC_CMD_GET_ADDR_SPC_ID_IN_VI_LEN 4 25777 /* Descriptor proxy function handle. Only valid if TYPE is DESC_PROXY_HANDLE. 25778 */ 25779 #define MC_CMD_GET_ADDR_SPC_ID_IN_HANDLE_OFST 4 25780 #define MC_CMD_GET_ADDR_SPC_ID_IN_HANDLE_LEN 4 25781 25782 /* MC_CMD_GET_ADDR_SPC_ID_OUT msgresponse */ 25783 #define MC_CMD_GET_ADDR_SPC_ID_OUT_LEN 8 25784 /* Address Space ID for the requested target. Only the lower 36 bits are valid 25785 * in the current SmartNIC implementation. 25786 */ 25787 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_OFST 0 25788 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LEN 8 25789 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_LO_OFST 0 25790 #define MC_CMD_GET_ADDR_SPC_ID_OUT_ADDR_SPC_ID_HI_OFST 4 25791 25792 /* MAE_FIELD_FLAGS structuredef */ 25793 #define MAE_FIELD_FLAGS_LEN 4 25794 #define MAE_FIELD_FLAGS_FLAT_OFST 0 25795 #define MAE_FIELD_FLAGS_FLAT_LEN 4 25796 #define MAE_FIELD_FLAGS_SUPPORT_STATUS_OFST 0 25797 #define MAE_FIELD_FLAGS_SUPPORT_STATUS_LBN 0 25798 #define MAE_FIELD_FLAGS_SUPPORT_STATUS_WIDTH 6 25799 #define MAE_FIELD_FLAGS_MASK_AFFECTS_CLASS_OFST 0 25800 #define MAE_FIELD_FLAGS_MASK_AFFECTS_CLASS_LBN 6 25801 #define MAE_FIELD_FLAGS_MASK_AFFECTS_CLASS_WIDTH 1 25802 #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_OFST 0 25803 #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_LBN 7 25804 #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_WIDTH 1 25805 #define MAE_FIELD_FLAGS_FLAT_LBN 0 25806 #define MAE_FIELD_FLAGS_FLAT_WIDTH 32 25807 25808 /* MAE_ENC_FIELD_PAIRS structuredef: Mask and value pairs for all fields that 25809 * it makes sense to use to determine the encapsulation type of a packet. Its 25810 * intended use is to keep a common packing of fields across multiple MCDI 25811 * commands, keeping things inherently sychronised and allowing code shared. To 25812 * use in an MCDI command, the command should end with a variable length byte 25813 * array populated with this structure. Do not extend this structure. Instead, 25814 * create _Vx versions with the necessary fields appended. That way, the 25815 * existing semantics for extending MCDI commands are preserved. 25816 */ 25817 #define MAE_ENC_FIELD_PAIRS_LEN 156 25818 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_OFST 0 25819 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_LEN 4 25820 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_LBN 0 25821 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_WIDTH 32 25822 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_OFST 4 25823 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LEN 4 25824 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LBN 32 25825 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_WIDTH 32 25826 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_OFST 8 25827 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_LEN 2 25828 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_LBN 64 25829 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_WIDTH 16 25830 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_OFST 10 25831 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_LEN 2 25832 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_LBN 80 25833 #define MAE_ENC_FIELD_PAIRS_ENC_ETHER_TYPE_BE_MASK_WIDTH 16 25834 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_OFST 12 25835 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_LEN 2 25836 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_LBN 96 25837 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_WIDTH 16 25838 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_OFST 14 25839 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_LEN 2 25840 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_LBN 112 25841 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_TCI_BE_MASK_WIDTH 16 25842 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_OFST 16 25843 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_LEN 2 25844 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_LBN 128 25845 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_WIDTH 16 25846 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_OFST 18 25847 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LEN 2 25848 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LBN 144 25849 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN0_PROTO_BE_MASK_WIDTH 16 25850 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_OFST 20 25851 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_LEN 2 25852 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_LBN 160 25853 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_WIDTH 16 25854 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_OFST 22 25855 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_LEN 2 25856 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_LBN 176 25857 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_TCI_BE_MASK_WIDTH 16 25858 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_OFST 24 25859 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_LEN 2 25860 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_LBN 192 25861 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_WIDTH 16 25862 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_OFST 26 25863 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LEN 2 25864 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LBN 208 25865 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN1_PROTO_BE_MASK_WIDTH 16 25866 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_OFST 28 25867 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_LEN 6 25868 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_LBN 224 25869 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_WIDTH 48 25870 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_OFST 34 25871 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_LEN 6 25872 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_LBN 272 25873 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_SADDR_BE_MASK_WIDTH 48 25874 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_OFST 40 25875 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_LEN 6 25876 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_LBN 320 25877 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_WIDTH 48 25878 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_OFST 46 25879 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_LEN 6 25880 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_LBN 368 25881 #define MAE_ENC_FIELD_PAIRS_ENC_ETH_DADDR_BE_MASK_WIDTH 48 25882 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_OFST 52 25883 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_LEN 4 25884 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_LBN 416 25885 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_WIDTH 32 25886 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_OFST 56 25887 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_LEN 4 25888 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_LBN 448 25889 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_WIDTH 32 25890 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_OFST 60 25891 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_LEN 16 25892 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_LBN 480 25893 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_WIDTH 128 25894 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_OFST 76 25895 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_LEN 16 25896 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_LBN 608 25897 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP6_BE_MASK_WIDTH 128 25898 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_OFST 92 25899 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_LEN 4 25900 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_LBN 736 25901 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_WIDTH 32 25902 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_OFST 96 25903 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_LEN 4 25904 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_LBN 768 25905 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_WIDTH 32 25906 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_OFST 100 25907 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_LEN 16 25908 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_LBN 800 25909 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_WIDTH 128 25910 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_OFST 116 25911 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_LEN 16 25912 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_LBN 928 25913 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP6_BE_MASK_WIDTH 128 25914 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_OFST 132 25915 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_LEN 1 25916 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_LBN 1056 25917 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_WIDTH 8 25918 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_OFST 133 25919 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_LEN 1 25920 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_LBN 1064 25921 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_WIDTH 8 25922 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_OFST 134 25923 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_LEN 1 25924 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_LBN 1072 25925 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_WIDTH 8 25926 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_OFST 135 25927 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_LEN 1 25928 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_LBN 1080 25929 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_WIDTH 8 25930 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_OFST 136 25931 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_LEN 1 25932 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_LBN 1088 25933 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_WIDTH 8 25934 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_OFST 137 25935 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_LEN 1 25936 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_LBN 1096 25937 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_WIDTH 8 25938 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_OFST 140 25939 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_LEN 4 25940 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_LBN 1120 25941 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_WIDTH 32 25942 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_OFST 144 25943 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_LEN 4 25944 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_LBN 1152 25945 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_WIDTH 32 25946 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_OFST 148 25947 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_LEN 2 25948 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_LBN 1184 25949 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_WIDTH 16 25950 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_OFST 150 25951 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_LEN 2 25952 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_LBN 1200 25953 #define MAE_ENC_FIELD_PAIRS_ENC_L4_SPORT_BE_MASK_WIDTH 16 25954 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_OFST 152 25955 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_LEN 2 25956 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_LBN 1216 25957 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_WIDTH 16 25958 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_OFST 154 25959 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_LEN 2 25960 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_LBN 1232 25961 #define MAE_ENC_FIELD_PAIRS_ENC_L4_DPORT_BE_MASK_WIDTH 16 25962 25963 /* MAE_FIELD_MASK_VALUE_PAIRS structuredef: Mask and value pairs for all fields 25964 * currently defined. Same semantics as MAE_ENC_FIELD_PAIRS. 25965 */ 25966 #define MAE_FIELD_MASK_VALUE_PAIRS_LEN 344 25967 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_OFST 0 25968 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_LEN 4 25969 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_LBN 0 25970 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_WIDTH 32 25971 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_OFST 4 25972 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LEN 4 25973 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LBN 32 25974 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_WIDTH 32 25975 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_OFST 8 25976 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_LEN 4 25977 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_LBN 64 25978 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_WIDTH 32 25979 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_OFST 12 25980 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_LEN 4 25981 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_LBN 96 25982 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_WIDTH 32 25983 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_OFST 16 25984 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_LEN 2 25985 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_LBN 128 25986 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_WIDTH 16 25987 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_OFST 18 25988 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_LEN 2 25989 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_LBN 144 25990 #define MAE_FIELD_MASK_VALUE_PAIRS_ETHER_TYPE_BE_MASK_WIDTH 16 25991 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_OFST 20 25992 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_LEN 2 25993 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_LBN 160 25994 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_WIDTH 16 25995 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_OFST 22 25996 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_LEN 2 25997 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_LBN 176 25998 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_TCI_BE_MASK_WIDTH 16 25999 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_OFST 24 26000 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_LEN 2 26001 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_LBN 192 26002 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_WIDTH 16 26003 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_OFST 26 26004 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_LEN 2 26005 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_LBN 208 26006 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN0_PROTO_BE_MASK_WIDTH 16 26007 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_OFST 28 26008 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_LEN 2 26009 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_LBN 224 26010 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_WIDTH 16 26011 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_OFST 30 26012 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_LEN 2 26013 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_LBN 240 26014 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_TCI_BE_MASK_WIDTH 16 26015 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_OFST 32 26016 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_LEN 2 26017 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_LBN 256 26018 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_WIDTH 16 26019 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_OFST 34 26020 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_LEN 2 26021 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_LBN 272 26022 #define MAE_FIELD_MASK_VALUE_PAIRS_VLAN1_PROTO_BE_MASK_WIDTH 16 26023 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_OFST 36 26024 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_LEN 6 26025 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_LBN 288 26026 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_WIDTH 48 26027 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_OFST 42 26028 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_LEN 6 26029 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_LBN 336 26030 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_SADDR_BE_MASK_WIDTH 48 26031 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_OFST 48 26032 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_LEN 6 26033 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_LBN 384 26034 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_WIDTH 48 26035 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_OFST 54 26036 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_LEN 6 26037 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_LBN 432 26038 #define MAE_FIELD_MASK_VALUE_PAIRS_ETH_DADDR_BE_MASK_WIDTH 48 26039 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_OFST 60 26040 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_LEN 4 26041 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_LBN 480 26042 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_WIDTH 32 26043 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_OFST 64 26044 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_LEN 4 26045 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_LBN 512 26046 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_WIDTH 32 26047 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_OFST 68 26048 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_LEN 16 26049 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_LBN 544 26050 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_WIDTH 128 26051 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_OFST 84 26052 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_LEN 16 26053 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_LBN 672 26054 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP6_BE_MASK_WIDTH 128 26055 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_OFST 100 26056 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_LEN 4 26057 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_LBN 800 26058 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_WIDTH 32 26059 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_OFST 104 26060 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_LEN 4 26061 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_LBN 832 26062 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_WIDTH 32 26063 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_OFST 108 26064 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_LEN 16 26065 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_LBN 864 26066 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_WIDTH 128 26067 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_OFST 124 26068 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_LEN 16 26069 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_LBN 992 26070 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP6_BE_MASK_WIDTH 128 26071 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_OFST 140 26072 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_LEN 1 26073 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_LBN 1120 26074 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_WIDTH 8 26075 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_OFST 141 26076 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_LEN 1 26077 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_LBN 1128 26078 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_WIDTH 8 26079 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_OFST 142 26080 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_LEN 1 26081 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_LBN 1136 26082 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_WIDTH 8 26083 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_OFST 143 26084 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_LEN 1 26085 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_LBN 1144 26086 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_WIDTH 8 26087 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_OFST 144 26088 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_LEN 1 26089 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_LBN 1152 26090 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_WIDTH 8 26091 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_OFST 145 26092 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_LEN 1 26093 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_LBN 1160 26094 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_WIDTH 8 26095 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_OFST 148 26096 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_LEN 4 26097 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_LBN 1184 26098 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_WIDTH 32 26099 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_OFST 152 26100 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_LEN 4 26101 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_LBN 1216 26102 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_WIDTH 32 26103 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_OFST 156 26104 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_LEN 2 26105 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_LBN 1248 26106 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_WIDTH 16 26107 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_OFST 158 26108 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_LEN 2 26109 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_LBN 1264 26110 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_SPORT_BE_MASK_WIDTH 16 26111 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_OFST 160 26112 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_LEN 2 26113 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_LBN 1280 26114 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_WIDTH 16 26115 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_OFST 162 26116 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_LEN 2 26117 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_LBN 1296 26118 #define MAE_FIELD_MASK_VALUE_PAIRS_L4_DPORT_BE_MASK_WIDTH 16 26119 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_OFST 164 26120 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_LEN 2 26121 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_LBN 1312 26122 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_WIDTH 16 26123 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_OFST 166 26124 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_LEN 2 26125 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_LBN 1328 26126 #define MAE_FIELD_MASK_VALUE_PAIRS_TCP_FLAGS_BE_MASK_WIDTH 16 26127 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_OFST 168 26128 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_LEN 4 26129 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_LBN 1344 26130 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_WIDTH 32 26131 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_OFST 172 26132 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_LEN 4 26133 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_LBN 1376 26134 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_WIDTH 32 26135 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_OFST 176 26136 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_LEN 4 26137 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_LBN 1408 26138 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_WIDTH 32 26139 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_OFST 180 26140 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_LEN 4 26141 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_LBN 1440 26142 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_WIDTH 32 26143 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_OFST 184 26144 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_LEN 2 26145 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_LBN 1472 26146 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_WIDTH 16 26147 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_OFST 188 26148 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_LEN 2 26149 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_LBN 1504 26150 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETHER_TYPE_BE_MASK_WIDTH 16 26151 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_OFST 192 26152 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_LEN 2 26153 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_LBN 1536 26154 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_WIDTH 16 26155 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_OFST 194 26156 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_LEN 2 26157 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_LBN 1552 26158 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_TCI_BE_MASK_WIDTH 16 26159 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_OFST 196 26160 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_LEN 2 26161 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_LBN 1568 26162 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_WIDTH 16 26163 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_OFST 198 26164 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LEN 2 26165 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_LBN 1584 26166 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN0_PROTO_BE_MASK_WIDTH 16 26167 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_OFST 200 26168 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_LEN 2 26169 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_LBN 1600 26170 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_WIDTH 16 26171 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_OFST 202 26172 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_LEN 2 26173 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_LBN 1616 26174 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_TCI_BE_MASK_WIDTH 16 26175 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_OFST 204 26176 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_LEN 2 26177 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_LBN 1632 26178 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_WIDTH 16 26179 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_OFST 206 26180 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LEN 2 26181 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_LBN 1648 26182 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VLAN1_PROTO_BE_MASK_WIDTH 16 26183 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_OFST 208 26184 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_LEN 6 26185 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_LBN 1664 26186 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_WIDTH 48 26187 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_OFST 214 26188 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_LEN 6 26189 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_LBN 1712 26190 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_SADDR_BE_MASK_WIDTH 48 26191 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_OFST 220 26192 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_LEN 6 26193 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_LBN 1760 26194 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_WIDTH 48 26195 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_OFST 226 26196 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_LEN 6 26197 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_LBN 1808 26198 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_ETH_DADDR_BE_MASK_WIDTH 48 26199 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_OFST 232 26200 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_LEN 4 26201 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_LBN 1856 26202 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_WIDTH 32 26203 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_OFST 236 26204 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_LEN 4 26205 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_LBN 1888 26206 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_WIDTH 32 26207 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_OFST 240 26208 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_LEN 16 26209 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_LBN 1920 26210 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_WIDTH 128 26211 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_OFST 256 26212 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_LEN 16 26213 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_LBN 2048 26214 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP6_BE_MASK_WIDTH 128 26215 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_OFST 272 26216 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_LEN 4 26217 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_LBN 2176 26218 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_WIDTH 32 26219 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_OFST 276 26220 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_LEN 4 26221 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_LBN 2208 26222 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_WIDTH 32 26223 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_OFST 280 26224 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_LEN 16 26225 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_LBN 2240 26226 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_WIDTH 128 26227 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_OFST 296 26228 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_LEN 16 26229 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_LBN 2368 26230 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP6_BE_MASK_WIDTH 128 26231 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_OFST 312 26232 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_LEN 1 26233 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_LBN 2496 26234 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_WIDTH 8 26235 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_OFST 313 26236 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_LEN 1 26237 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_LBN 2504 26238 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_WIDTH 8 26239 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_OFST 314 26240 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_LEN 1 26241 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_LBN 2512 26242 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_WIDTH 8 26243 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_OFST 315 26244 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_LEN 1 26245 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_LBN 2520 26246 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_WIDTH 8 26247 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_OFST 316 26248 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_LEN 1 26249 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_LBN 2528 26250 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_WIDTH 8 26251 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_OFST 317 26252 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_LEN 1 26253 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_LBN 2536 26254 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_WIDTH 8 26255 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_OFST 320 26256 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_LEN 4 26257 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_LBN 2560 26258 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_WIDTH 32 26259 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_OFST 324 26260 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_LEN 4 26261 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_LBN 2592 26262 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_WIDTH 32 26263 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_OFST 328 26264 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_LEN 2 26265 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_LBN 2624 26266 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_WIDTH 16 26267 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_OFST 330 26268 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_LEN 2 26269 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_LBN 2640 26270 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_SPORT_BE_MASK_WIDTH 16 26271 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_OFST 332 26272 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_LEN 2 26273 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_LBN 2656 26274 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_WIDTH 16 26275 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_OFST 334 26276 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_LEN 2 26277 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_LBN 2672 26278 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_L4_DPORT_BE_MASK_WIDTH 16 26279 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_OFST 336 26280 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_LEN 4 26281 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_LBN 2688 26282 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_WIDTH 32 26283 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_OFST 340 26284 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_LEN 4 26285 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_LBN 2720 26286 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_WIDTH 32 26287 26288 /* MAE_FIELD_MASK_VALUE_PAIRS_V2 structuredef */ 26289 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_LEN 372 26290 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_OFST 0 26291 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_LEN 4 26292 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_LBN 0 26293 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_WIDTH 32 26294 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_OFST 4 26295 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_LEN 4 26296 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_LBN 32 26297 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_WIDTH 32 26298 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_OFST 8 26299 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_LEN 4 26300 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_LBN 64 26301 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_WIDTH 32 26302 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_OFST 12 26303 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_LEN 4 26304 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_LBN 96 26305 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_WIDTH 32 26306 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_OFST 16 26307 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_LEN 2 26308 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_LBN 128 26309 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_WIDTH 16 26310 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_OFST 18 26311 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_LEN 2 26312 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_LBN 144 26313 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETHER_TYPE_BE_MASK_WIDTH 16 26314 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_OFST 20 26315 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_LEN 2 26316 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_LBN 160 26317 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_WIDTH 16 26318 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_OFST 22 26319 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_LEN 2 26320 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_LBN 176 26321 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_TCI_BE_MASK_WIDTH 16 26322 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_OFST 24 26323 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_LEN 2 26324 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_LBN 192 26325 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_WIDTH 16 26326 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_OFST 26 26327 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_LEN 2 26328 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_LBN 208 26329 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN0_PROTO_BE_MASK_WIDTH 16 26330 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_OFST 28 26331 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_LEN 2 26332 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_LBN 224 26333 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_WIDTH 16 26334 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_OFST 30 26335 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_LEN 2 26336 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_LBN 240 26337 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_TCI_BE_MASK_WIDTH 16 26338 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_OFST 32 26339 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_LEN 2 26340 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_LBN 256 26341 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_WIDTH 16 26342 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_OFST 34 26343 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_LEN 2 26344 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_LBN 272 26345 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_VLAN1_PROTO_BE_MASK_WIDTH 16 26346 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_OFST 36 26347 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_LEN 6 26348 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_LBN 288 26349 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_WIDTH 48 26350 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_OFST 42 26351 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_LEN 6 26352 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_LBN 336 26353 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_SADDR_BE_MASK_WIDTH 48 26354 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_OFST 48 26355 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_LEN 6 26356 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_LBN 384 26357 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_WIDTH 48 26358 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_OFST 54 26359 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_LEN 6 26360 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_LBN 432 26361 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ETH_DADDR_BE_MASK_WIDTH 48 26362 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_OFST 60 26363 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_LEN 4 26364 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_LBN 480 26365 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_WIDTH 32 26366 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_OFST 64 26367 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_LEN 4 26368 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_LBN 512 26369 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_WIDTH 32 26370 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_OFST 68 26371 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_LEN 16 26372 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_LBN 544 26373 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_WIDTH 128 26374 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_OFST 84 26375 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_LEN 16 26376 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_LBN 672 26377 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP6_BE_MASK_WIDTH 128 26378 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_OFST 100 26379 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_LEN 4 26380 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_LBN 800 26381 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_WIDTH 32 26382 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_OFST 104 26383 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_LEN 4 26384 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_LBN 832 26385 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_WIDTH 32 26386 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_OFST 108 26387 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_LEN 16 26388 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_LBN 864 26389 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_WIDTH 128 26390 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_OFST 124 26391 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_LEN 16 26392 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_LBN 992 26393 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP6_BE_MASK_WIDTH 128 26394 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_OFST 140 26395 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_LEN 1 26396 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_LBN 1120 26397 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_WIDTH 8 26398 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_OFST 141 26399 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_LEN 1 26400 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_LBN 1128 26401 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_WIDTH 8 26402 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_OFST 142 26403 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_LEN 1 26404 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_LBN 1136 26405 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_WIDTH 8 26406 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_OFST 143 26407 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_LEN 1 26408 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_LBN 1144 26409 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_WIDTH 8 26410 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_OFST 144 26411 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_LEN 1 26412 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_LBN 1152 26413 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_WIDTH 8 26414 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_OFST 145 26415 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_LEN 1 26416 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_LBN 1160 26417 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_WIDTH 8 26418 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_OFST 148 26419 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_LEN 4 26420 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_LBN 1184 26421 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_WIDTH 32 26422 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_OFST 152 26423 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_LEN 4 26424 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_LBN 1216 26425 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_WIDTH 32 26426 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_OFST 156 26427 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_LEN 2 26428 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_LBN 1248 26429 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_WIDTH 16 26430 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_OFST 158 26431 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_LEN 2 26432 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_LBN 1264 26433 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_SPORT_BE_MASK_WIDTH 16 26434 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_OFST 160 26435 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_LEN 2 26436 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_LBN 1280 26437 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_WIDTH 16 26438 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_OFST 162 26439 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_LEN 2 26440 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_LBN 1296 26441 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_L4_DPORT_BE_MASK_WIDTH 16 26442 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_OFST 164 26443 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_LEN 2 26444 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_LBN 1312 26445 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_WIDTH 16 26446 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_OFST 166 26447 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_LEN 2 26448 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_LBN 1328 26449 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_FLAGS_BE_MASK_WIDTH 16 26450 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_OFST 168 26451 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_LEN 4 26452 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_LBN 1344 26453 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_WIDTH 32 26454 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_OFST 172 26455 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_LEN 4 26456 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_LBN 1376 26457 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_WIDTH 32 26458 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_OFST 176 26459 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_LEN 4 26460 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_LBN 1408 26461 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_WIDTH 32 26462 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_OFST 180 26463 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_LEN 4 26464 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_LBN 1440 26465 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_WIDTH 32 26466 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_OFST 184 26467 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_LEN 2 26468 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_LBN 1472 26469 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_WIDTH 16 26470 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_OFST 188 26471 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_LEN 2 26472 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_LBN 1504 26473 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETHER_TYPE_BE_MASK_WIDTH 16 26474 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_OFST 192 26475 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_LEN 2 26476 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_LBN 1536 26477 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_WIDTH 16 26478 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_OFST 194 26479 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_LEN 2 26480 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_LBN 1552 26481 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_TCI_BE_MASK_WIDTH 16 26482 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_OFST 196 26483 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_LEN 2 26484 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_LBN 1568 26485 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_WIDTH 16 26486 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_OFST 198 26487 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_LEN 2 26488 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_LBN 1584 26489 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN0_PROTO_BE_MASK_WIDTH 16 26490 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_OFST 200 26491 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_LEN 2 26492 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_LBN 1600 26493 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_WIDTH 16 26494 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_OFST 202 26495 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_LEN 2 26496 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_LBN 1616 26497 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_TCI_BE_MASK_WIDTH 16 26498 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_OFST 204 26499 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_LEN 2 26500 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_LBN 1632 26501 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_WIDTH 16 26502 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_OFST 206 26503 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_LEN 2 26504 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_LBN 1648 26505 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VLAN1_PROTO_BE_MASK_WIDTH 16 26506 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_OFST 208 26507 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_LEN 6 26508 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_LBN 1664 26509 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_WIDTH 48 26510 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_OFST 214 26511 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_LEN 6 26512 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_LBN 1712 26513 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_SADDR_BE_MASK_WIDTH 48 26514 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_OFST 220 26515 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_LEN 6 26516 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_LBN 1760 26517 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_WIDTH 48 26518 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_OFST 226 26519 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_LEN 6 26520 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_LBN 1808 26521 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_ETH_DADDR_BE_MASK_WIDTH 48 26522 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_OFST 232 26523 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_LEN 4 26524 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_LBN 1856 26525 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_WIDTH 32 26526 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_OFST 236 26527 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_LEN 4 26528 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_LBN 1888 26529 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_WIDTH 32 26530 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_OFST 240 26531 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_LEN 16 26532 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_LBN 1920 26533 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_WIDTH 128 26534 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_OFST 256 26535 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_LEN 16 26536 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_LBN 2048 26537 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP6_BE_MASK_WIDTH 128 26538 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_OFST 272 26539 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_LEN 4 26540 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_LBN 2176 26541 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_WIDTH 32 26542 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_OFST 276 26543 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_LEN 4 26544 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_LBN 2208 26545 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_WIDTH 32 26546 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_OFST 280 26547 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_LEN 16 26548 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_LBN 2240 26549 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_WIDTH 128 26550 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_OFST 296 26551 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_LEN 16 26552 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_LBN 2368 26553 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP6_BE_MASK_WIDTH 128 26554 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_OFST 312 26555 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_LEN 1 26556 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_LBN 2496 26557 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_WIDTH 8 26558 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_OFST 313 26559 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_LEN 1 26560 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_LBN 2504 26561 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_WIDTH 8 26562 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_OFST 314 26563 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_LEN 1 26564 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_LBN 2512 26565 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_WIDTH 8 26566 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_OFST 315 26567 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_LEN 1 26568 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_LBN 2520 26569 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_WIDTH 8 26570 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_OFST 316 26571 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_LEN 1 26572 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_LBN 2528 26573 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_WIDTH 8 26574 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_OFST 317 26575 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_LEN 1 26576 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_LBN 2536 26577 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_WIDTH 8 26578 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_OFST 320 26579 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_LEN 4 26580 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_LBN 2560 26581 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_WIDTH 32 26582 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_OFST 324 26583 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_LEN 4 26584 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_LBN 2592 26585 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_WIDTH 32 26586 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_OFST 328 26587 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_LEN 2 26588 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_LBN 2624 26589 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_WIDTH 16 26590 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_OFST 330 26591 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_LEN 2 26592 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_LBN 2640 26593 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_SPORT_BE_MASK_WIDTH 16 26594 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_OFST 332 26595 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_LEN 2 26596 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_LBN 2656 26597 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_WIDTH 16 26598 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_OFST 334 26599 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_LEN 2 26600 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_LBN 2672 26601 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_L4_DPORT_BE_MASK_WIDTH 16 26602 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_OFST 336 26603 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_LEN 4 26604 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_LBN 2688 26605 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_WIDTH 32 26606 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_OFST 340 26607 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_LEN 4 26608 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_LBN 2720 26609 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_WIDTH 32 26610 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_OFST 344 26611 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_LEN 4 26612 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_IP_FRAG_OFST 344 26613 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_IP_FRAG_LBN 0 26614 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_IP_FRAG_WIDTH 1 26615 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_OFST 344 26616 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_LBN 1 26617 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_WIDTH 1 26618 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_HIT_OFST 344 26619 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_HIT_LBN 2 26620 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_HIT_WIDTH 1 26621 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_FROM_NETWORK_OFST 344 26622 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_FROM_NETWORK_LBN 3 26623 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_FROM_NETWORK_WIDTH 1 26624 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD_OFST 344 26625 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD_LBN 4 26626 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD_WIDTH 28 26627 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_LBN 2752 26628 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_WIDTH 32 26629 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_OFST 348 26630 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_LEN 4 26631 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_LBN 2784 26632 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_WIDTH 32 26633 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_OFST 352 26634 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_LEN 2 26635 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_LBN 2816 26636 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_WIDTH 16 26637 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_OFST 354 26638 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_LEN 2 26639 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_LBN 2832 26640 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_DOMAIN_MASK_WIDTH 16 26641 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_OFST 356 26642 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_LEN 4 26643 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_LBN 2848 26644 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_WIDTH 32 26645 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_OFST 360 26646 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_LEN 4 26647 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_LBN 2880 26648 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_WIDTH 32 26649 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_OFST 364 26650 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_LEN 1 26651 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_LBN 2912 26652 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_WIDTH 8 26653 /* Set to zero. */ 26654 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_OFST 365 26655 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_LEN 1 26656 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_LBN 2920 26657 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_WIDTH 8 26658 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_OFST 366 26659 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_LEN 1 26660 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_LBN 2928 26661 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_WIDTH 8 26662 /* Set to zero. */ 26663 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_OFST 367 26664 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_LEN 1 26665 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_LBN 2936 26666 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_WIDTH 8 26667 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_OFST 368 26668 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_LEN 1 26669 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_LBN 2944 26670 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_WIDTH 8 26671 /* Set to zero */ 26672 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_OFST 369 26673 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_LEN 1 26674 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_LBN 2952 26675 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_WIDTH 8 26676 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_OFST 370 26677 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_LEN 1 26678 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_LBN 2960 26679 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_WIDTH 8 26680 /* Set to zero */ 26681 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_OFST 371 26682 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_LEN 1 26683 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_LBN 2968 26684 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_WIDTH 8 26685 26686 /* MAE_MPORT_SELECTOR structuredef: MPORTS are identified by an opaque unsigned 26687 * integer value (mport_id) that is guaranteed to be representable within 26688 * 32-bits or within any NIC interface field that needs store the value 26689 * (whichever is narrowers). This selector structure provides a stable way to 26690 * refer to m-ports. 26691 */ 26692 #define MAE_MPORT_SELECTOR_LEN 4 26693 /* Used to force the tools to output bitfield-style defines for this structure. 26694 */ 26695 #define MAE_MPORT_SELECTOR_FLAT_OFST 0 26696 #define MAE_MPORT_SELECTOR_FLAT_LEN 4 26697 /* enum: An m-port selector value that is guaranteed never to represent a real 26698 * mport 26699 */ 26700 #define MAE_MPORT_SELECTOR_NULL 0x0 26701 /* enum: The m-port assigned to the calling client. */ 26702 #define MAE_MPORT_SELECTOR_ASSIGNED 0x1000000 26703 #define MAE_MPORT_SELECTOR_TYPE_OFST 0 26704 #define MAE_MPORT_SELECTOR_TYPE_LBN 24 26705 #define MAE_MPORT_SELECTOR_TYPE_WIDTH 8 26706 /* enum: The MPORT connected to a given physical port */ 26707 #define MAE_MPORT_SELECTOR_TYPE_PPORT 0x2 26708 /* enum: The MPORT assigned to a given PCIe function */ 26709 #define MAE_MPORT_SELECTOR_TYPE_FUNC 0x3 26710 /* enum: An mport_id */ 26711 #define MAE_MPORT_SELECTOR_TYPE_MPORT_ID 0x4 26712 #define MAE_MPORT_SELECTOR_MPORT_ID_OFST 0 26713 #define MAE_MPORT_SELECTOR_MPORT_ID_LBN 0 26714 #define MAE_MPORT_SELECTOR_MPORT_ID_WIDTH 24 26715 #define MAE_MPORT_SELECTOR_PPORT_ID_OFST 0 26716 #define MAE_MPORT_SELECTOR_PPORT_ID_LBN 0 26717 #define MAE_MPORT_SELECTOR_PPORT_ID_WIDTH 4 26718 #define MAE_MPORT_SELECTOR_FUNC_PF_ID_OFST 0 26719 #define MAE_MPORT_SELECTOR_FUNC_PF_ID_LBN 16 26720 #define MAE_MPORT_SELECTOR_FUNC_PF_ID_WIDTH 8 26721 #define MAE_MPORT_SELECTOR_FUNC_VF_ID_OFST 0 26722 #define MAE_MPORT_SELECTOR_FUNC_VF_ID_LBN 0 26723 #define MAE_MPORT_SELECTOR_FUNC_VF_ID_WIDTH 16 26724 /* enum: Used for VF_ID to indicate a physical function. */ 26725 #define MAE_MPORT_SELECTOR_FUNC_VF_ID_NULL 0xffff 26726 /* enum: Used for PF_ID to indicate the physical function of the calling 26727 * client. - When used by a PF with VF_ID == VF_ID_NULL, the mport selector 26728 * relates to the calling function. (For clarity, it is recommended that 26729 * clients use ASSIGNED to achieve this behaviour). - When used by a PF with 26730 * VF_ID != VF_ID_NULL, the mport selector relates to a VF child of the calling 26731 * function. - When used by a VF with VF_ID == VF_ID_NULL, the mport selector 26732 * relates to the PF owning the calling function. - When used by a VF with 26733 * VF_ID != VF_ID_NULL, the mport selector relates to a sibling VF of the 26734 * calling function. - Not meaningful used by a client that is not a PCIe 26735 * function. 26736 */ 26737 #define MAE_MPORT_SELECTOR_FUNC_PF_ID_CALLER 0xff 26738 #define MAE_MPORT_SELECTOR_FLAT_LBN 0 26739 #define MAE_MPORT_SELECTOR_FLAT_WIDTH 32 26740 26741 26742 /***********************************/ 26743 /* MC_CMD_MAE_GET_CAPS 26744 * Describes capabilities of the MAE (Match-Action Engine) 26745 */ 26746 #define MC_CMD_MAE_GET_CAPS 0x140 26747 #undef MC_CMD_0x140_PRIVILEGE_CTG 26748 26749 #define MC_CMD_0x140_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26750 26751 /* MC_CMD_MAE_GET_CAPS_IN msgrequest */ 26752 #define MC_CMD_MAE_GET_CAPS_IN_LEN 0 26753 26754 /* MC_CMD_MAE_GET_CAPS_OUT msgresponse */ 26755 #define MC_CMD_MAE_GET_CAPS_OUT_LEN 52 26756 /* The number of field IDs that the NIC supports. Any field with a ID greater 26757 * than or equal to the value returned in this field must be treated as having 26758 * a support level of MAE_FIELD_UNSUPPORTED in all requests. 26759 */ 26760 #define MC_CMD_MAE_GET_CAPS_OUT_MATCH_FIELD_COUNT_OFST 0 26761 #define MC_CMD_MAE_GET_CAPS_OUT_MATCH_FIELD_COUNT_LEN 4 26762 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPES_SUPPORTED_OFST 4 26763 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPES_SUPPORTED_LEN 4 26764 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_OFST 4 26765 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_LBN 0 26766 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_WIDTH 1 26767 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_OFST 4 26768 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_LBN 1 26769 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_WIDTH 1 26770 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_OFST 4 26771 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_LBN 2 26772 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_WIDTH 1 26773 /* The total number of counters available to allocate. */ 26774 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTERS_OFST 8 26775 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTERS_LEN 4 26776 /* The total number of counters lists available to allocate. A value of zero 26777 * indicates that counter lists are not supported by the NIC. (But single 26778 * counters may still be.) 26779 */ 26780 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTER_LISTS_OFST 12 26781 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTER_LISTS_LEN 4 26782 /* The total number of encap header structures available to allocate. */ 26783 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_HEADER_LIMIT_OFST 16 26784 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_HEADER_LIMIT_LEN 4 26785 /* Reserved. Should be zero. */ 26786 #define MC_CMD_MAE_GET_CAPS_OUT_RSVD_OFST 20 26787 #define MC_CMD_MAE_GET_CAPS_OUT_RSVD_LEN 4 26788 /* The total number of action sets available to allocate. */ 26789 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SETS_OFST 24 26790 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SETS_LEN 4 26791 /* The total number of action set lists available to allocate. */ 26792 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SET_LISTS_OFST 28 26793 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SET_LISTS_LEN 4 26794 /* The total number of outer rules available to allocate. */ 26795 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_RULES_OFST 32 26796 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_RULES_LEN 4 26797 /* The total number of action rules available to allocate. */ 26798 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_RULES_OFST 36 26799 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_RULES_LEN 4 26800 /* The number of priorities available for ACTION_RULE filters. It is invalid to 26801 * install a MATCH_ACTION filter with a priority number >= ACTION_PRIOS. 26802 */ 26803 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_PRIOS_OFST 40 26804 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_PRIOS_LEN 4 26805 /* The number of priorities available for OUTER_RULE filters. It is invalid to 26806 * install an OUTER_RULE filter with a priority number >= OUTER_PRIOS. 26807 */ 26808 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_PRIOS_OFST 44 26809 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_PRIOS_LEN 4 26810 /* MAE API major version. Currently 1. If this field is not present in the 26811 * response (i.e. response shorter than 384 bits), then its value is zero. If 26812 * the value does not match the client's expectations, the client should raise 26813 * a fatal error. 26814 */ 26815 #define MC_CMD_MAE_GET_CAPS_OUT_API_VER_OFST 48 26816 #define MC_CMD_MAE_GET_CAPS_OUT_API_VER_LEN 4 26817 26818 26819 /***********************************/ 26820 /* MC_CMD_MAE_GET_AR_CAPS 26821 * Get a level of support for match fields when used in match-action rules 26822 */ 26823 #define MC_CMD_MAE_GET_AR_CAPS 0x141 26824 #undef MC_CMD_0x141_PRIVILEGE_CTG 26825 26826 #define MC_CMD_0x141_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26827 26828 /* MC_CMD_MAE_GET_AR_CAPS_IN msgrequest */ 26829 #define MC_CMD_MAE_GET_AR_CAPS_IN_LEN 0 26830 26831 /* MC_CMD_MAE_GET_AR_CAPS_OUT msgresponse */ 26832 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LENMIN 4 26833 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LENMAX 252 26834 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LENMAX_MCDI2 1020 26835 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LEN(num) (4+4*(num)) 26836 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_NUM(len) (((len)-4)/4) 26837 /* Number of fields actually returned in FIELD_FLAGS. */ 26838 #define MC_CMD_MAE_GET_AR_CAPS_OUT_COUNT_OFST 0 26839 #define MC_CMD_MAE_GET_AR_CAPS_OUT_COUNT_LEN 4 26840 /* Array of values indicating the NIC's support for a given field, indexed by 26841 * field id. The driver must ensure space for 26842 * MC_CMD_MAE_GET_CAPS.MATCH_FIELD_COUNT entries in the array.. 26843 */ 26844 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_OFST 4 26845 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_LEN 4 26846 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_MINNUM 0 26847 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_MAXNUM 62 26848 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_MAXNUM_MCDI2 254 26849 26850 26851 /***********************************/ 26852 /* MC_CMD_MAE_GET_OR_CAPS 26853 * Get a level of support for fields used in outer rule keys. 26854 */ 26855 #define MC_CMD_MAE_GET_OR_CAPS 0x142 26856 #undef MC_CMD_0x142_PRIVILEGE_CTG 26857 26858 #define MC_CMD_0x142_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26859 26860 /* MC_CMD_MAE_GET_OR_CAPS_IN msgrequest */ 26861 #define MC_CMD_MAE_GET_OR_CAPS_IN_LEN 0 26862 26863 /* MC_CMD_MAE_GET_OR_CAPS_OUT msgresponse */ 26864 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LENMIN 4 26865 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LENMAX 252 26866 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LENMAX_MCDI2 1020 26867 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LEN(num) (4+4*(num)) 26868 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_NUM(len) (((len)-4)/4) 26869 /* Number of fields actually returned in FIELD_FLAGS. */ 26870 #define MC_CMD_MAE_GET_OR_CAPS_OUT_COUNT_OFST 0 26871 #define MC_CMD_MAE_GET_OR_CAPS_OUT_COUNT_LEN 4 26872 /* Same semantics as MC_CMD_MAE_GET_AR_CAPS.MAE_FIELD_FLAGS */ 26873 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_OFST 4 26874 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_LEN 4 26875 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_MINNUM 0 26876 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_MAXNUM 62 26877 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_MAXNUM_MCDI2 254 26878 26879 26880 /***********************************/ 26881 /* MC_CMD_MAE_COUNTER_ALLOC 26882 * Allocate match-action-engine counters, which can be referenced in Action 26883 * Rules. 26884 */ 26885 #define MC_CMD_MAE_COUNTER_ALLOC 0x143 26886 #undef MC_CMD_0x143_PRIVILEGE_CTG 26887 26888 #define MC_CMD_0x143_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26889 26890 /* MC_CMD_MAE_COUNTER_ALLOC_IN msgrequest */ 26891 #define MC_CMD_MAE_COUNTER_ALLOC_IN_LEN 4 26892 /* The number of counters that the driver would like allocated */ 26893 #define MC_CMD_MAE_COUNTER_ALLOC_IN_REQUESTED_COUNT_OFST 0 26894 #define MC_CMD_MAE_COUNTER_ALLOC_IN_REQUESTED_COUNT_LEN 4 26895 26896 /* MC_CMD_MAE_COUNTER_ALLOC_OUT msgresponse */ 26897 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LENMIN 12 26898 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LENMAX 252 26899 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LENMAX_MCDI2 1020 26900 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LEN(num) (8+4*(num)) 26901 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_NUM(len) (((len)-8)/4) 26902 /* Generation count. Packets with generation count >= GENERATION_COUNT will 26903 * contain valid counter values for counter IDs allocated in this call, unless 26904 * the counter values are zero and zero squash is enabled. 26905 */ 26906 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_GENERATION_COUNT_OFST 0 26907 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_GENERATION_COUNT_LEN 4 26908 /* The number of counter IDs that the NIC allocated. It is never less than 1; 26909 * failure to allocate a single counter will cause an error to be returned. It 26910 * is never greater than REQUESTED_COUNT, but may be less. 26911 */ 26912 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_COUNT_OFST 4 26913 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_COUNT_LEN 4 26914 /* An array containing the IDs for the counters allocated. */ 26915 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_OFST 8 26916 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_LEN 4 26917 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_MINNUM 1 26918 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_MAXNUM 61 26919 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_MAXNUM_MCDI2 253 26920 /* enum: A counter ID that is guaranteed never to represent a real counter */ 26921 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_NULL 0xffffffff 26922 26923 26924 /***********************************/ 26925 /* MC_CMD_MAE_COUNTER_FREE 26926 * Free match-action-engine counters 26927 */ 26928 #define MC_CMD_MAE_COUNTER_FREE 0x144 26929 #undef MC_CMD_0x144_PRIVILEGE_CTG 26930 26931 #define MC_CMD_0x144_PRIVILEGE_CTG SRIOV_CTG_GENERAL 26932 26933 /* MC_CMD_MAE_COUNTER_FREE_IN msgrequest */ 26934 #define MC_CMD_MAE_COUNTER_FREE_IN_LENMIN 8 26935 #define MC_CMD_MAE_COUNTER_FREE_IN_LENMAX 132 26936 #define MC_CMD_MAE_COUNTER_FREE_IN_LENMAX_MCDI2 132 26937 #define MC_CMD_MAE_COUNTER_FREE_IN_LEN(num) (4+4*(num)) 26938 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_NUM(len) (((len)-4)/4) 26939 /* The number of counter IDs to be freed. */ 26940 #define MC_CMD_MAE_COUNTER_FREE_IN_COUNTER_ID_COUNT_OFST 0 26941 #define MC_CMD_MAE_COUNTER_FREE_IN_COUNTER_ID_COUNT_LEN 4 26942 /* An array containing the counter IDs to be freed. */ 26943 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_OFST 4 26944 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_LEN 4 26945 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_MINNUM 1 26946 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_MAXNUM 32 26947 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_MAXNUM_MCDI2 32 26948 26949 /* MC_CMD_MAE_COUNTER_FREE_OUT msgresponse */ 26950 #define MC_CMD_MAE_COUNTER_FREE_OUT_LENMIN 12 26951 #define MC_CMD_MAE_COUNTER_FREE_OUT_LENMAX 136 26952 #define MC_CMD_MAE_COUNTER_FREE_OUT_LENMAX_MCDI2 136 26953 #define MC_CMD_MAE_COUNTER_FREE_OUT_LEN(num) (8+4*(num)) 26954 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_NUM(len) (((len)-8)/4) 26955 /* Generation count. A packet with generation count == GENERATION_COUNT will 26956 * contain the final values for these counter IDs, unless the counter values 26957 * are zero and zero squash is enabled. Receiving a packet with generation 26958 * count > GENERATION_COUNT guarantees that no more values will be written for 26959 * these counters. If values for these counter IDs are present, the counter ID 26960 * has been reallocated. A counter ID will not be reallocated within a single 26961 * read cycle as this would merge increments from the 'old' and 'new' counters. 26962 */ 26963 #define MC_CMD_MAE_COUNTER_FREE_OUT_GENERATION_COUNT_OFST 0 26964 #define MC_CMD_MAE_COUNTER_FREE_OUT_GENERATION_COUNT_LEN 4 26965 /* The number of counter IDs actually freed. It is never less than 1; failure 26966 * to free a single counter will cause an error to be returned. It is never 26967 * greater than the number that were requested to be freed, but may be less if 26968 * counters could not be freed. 26969 */ 26970 #define MC_CMD_MAE_COUNTER_FREE_OUT_COUNTER_ID_COUNT_OFST 4 26971 #define MC_CMD_MAE_COUNTER_FREE_OUT_COUNTER_ID_COUNT_LEN 4 26972 /* An array containing the IDs for the counters to that were freed. Note, 26973 * failure to free a counter can only occur on incorrect driver behaviour, so 26974 * asserting that the expected counters were freed is reasonable. When 26975 * debugging, attempting to free a single counter at a time will provide a 26976 * reason for the failure to free said counter. 26977 */ 26978 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_OFST 8 26979 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_LEN 4 26980 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_MINNUM 1 26981 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_MAXNUM 32 26982 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_MAXNUM_MCDI2 32 26983 26984 26985 /***********************************/ 26986 /* MC_CMD_MAE_COUNTERS_STREAM_START 26987 * Start streaming counter values, specifying an RxQ to deliver packets to. 26988 * Counters allocated to the calling function will be written in a round robin 26989 * at a fixed cycle rate, assuming sufficient credits are available. The driver 26990 * may cause the counter values to be written at a slower rate by constraining 26991 * the availability of credits. Note that if the driver wishes to deliver 26992 * packets to a different queue, it must call MAE_COUNTERS_STREAM_STOP to stop 26993 * delivering packets to the current queue first. 26994 */ 26995 #define MC_CMD_MAE_COUNTERS_STREAM_START 0x151 26996 26997 /* MC_CMD_MAE_COUNTERS_STREAM_START_IN msgrequest */ 26998 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_LEN 8 26999 /* The RxQ to write packets to. */ 27000 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_QID_OFST 0 27001 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_QID_LEN 2 27002 /* Maximum size in bytes of packets that may be written to the RxQ. */ 27003 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_PACKET_SIZE_OFST 2 27004 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_PACKET_SIZE_LEN 2 27005 /* Optional flags. */ 27006 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_FLAGS_OFST 4 27007 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_FLAGS_LEN 4 27008 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_OFST 4 27009 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_LBN 0 27010 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_WIDTH 1 27011 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_OFST 4 27012 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_LBN 1 27013 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_WIDTH 1 27014 27015 /* MC_CMD_MAE_COUNTERS_STREAM_START_OUT msgresponse */ 27016 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_LEN 4 27017 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_FLAGS_OFST 0 27018 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_FLAGS_LEN 4 27019 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_USES_CREDITS_OFST 0 27020 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_USES_CREDITS_LBN 0 27021 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_USES_CREDITS_WIDTH 1 27022 27023 27024 /***********************************/ 27025 /* MC_CMD_MAE_COUNTERS_STREAM_STOP 27026 * Stop streaming counter values to the specified RxQ. 27027 */ 27028 #define MC_CMD_MAE_COUNTERS_STREAM_STOP 0x152 27029 27030 /* MC_CMD_MAE_COUNTERS_STREAM_STOP_IN msgrequest */ 27031 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_IN_LEN 2 27032 /* The RxQ to stop writing packets to. */ 27033 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_IN_QID_OFST 0 27034 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_IN_QID_LEN 2 27035 27036 /* MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT msgresponse */ 27037 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_LEN 4 27038 /* Generation count. The final set of counter values will be written out in 27039 * packets with count == GENERATION_COUNT. An empty packet with count > 27040 * GENERATION_COUNT indicates that no more counter values will be written to 27041 * this stream. 27042 */ 27043 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_GENERATION_COUNT_OFST 0 27044 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_GENERATION_COUNT_LEN 4 27045 27046 27047 /***********************************/ 27048 /* MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS 27049 * Give a number of credits to the packetiser. Each credit received allows the 27050 * MC to write one packet to the RxQ, therefore for each credit the driver must 27051 * have written sufficient descriptors for a packet of length 27052 * MAE_COUNTERS_PACKETISER_STREAM_START/PACKET_SIZE and rung the doorbell. 27053 */ 27054 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS 0x153 27055 27056 /* MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN msgrequest */ 27057 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_LEN 4 27058 /* Number of credits to give to the packetiser. */ 27059 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_NUM_CREDITS_OFST 0 27060 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_NUM_CREDITS_LEN 4 27061 27062 /* MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_OUT msgresponse */ 27063 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_OUT_LEN 0 27064 27065 27066 /***********************************/ 27067 /* MC_CMD_MAE_ENCAP_HEADER_ALLOC 27068 * Allocate encap action metadata 27069 */ 27070 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC 0x148 27071 #undef MC_CMD_0x148_PRIVILEGE_CTG 27072 27073 #define MC_CMD_0x148_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27074 27075 /* MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN msgrequest */ 27076 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMIN 4 27077 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMAX 252 27078 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMAX_MCDI2 1020 27079 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LEN(num) (4+1*(num)) 27080 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_NUM(len) (((len)-4)/1) 27081 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_ENCAP_TYPE_OFST 0 27082 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_ENCAP_TYPE_LEN 4 27083 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_OFST 4 27084 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_LEN 1 27085 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_MINNUM 0 27086 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_MAXNUM 248 27087 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_MAXNUM_MCDI2 1016 27088 27089 /* MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT msgresponse */ 27090 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_LEN 4 27091 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_ENCAP_HEADER_ID_OFST 0 27092 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_ENCAP_HEADER_ID_LEN 4 27093 /* enum: An encap metadata ID that is guaranteed never to represent real encap 27094 * metadata 27095 */ 27096 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_ENCAP_HEADER_ID_NULL 0xffffffff 27097 27098 27099 /***********************************/ 27100 /* MC_CMD_MAE_ENCAP_HEADER_UPDATE 27101 * Update encap action metadata 27102 */ 27103 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE 0x149 27104 #undef MC_CMD_0x149_PRIVILEGE_CTG 27105 27106 #define MC_CMD_0x149_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27107 27108 /* MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN msgrequest */ 27109 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LENMIN 8 27110 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LENMAX 252 27111 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LENMAX_MCDI2 1020 27112 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LEN(num) (8+1*(num)) 27113 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_NUM(len) (((len)-8)/1) 27114 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_EH_ID_OFST 0 27115 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_EH_ID_LEN 4 27116 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_ENCAP_TYPE_OFST 4 27117 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_ENCAP_TYPE_LEN 4 27118 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_OFST 8 27119 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_LEN 1 27120 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_MINNUM 0 27121 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_MAXNUM 244 27122 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_MAXNUM_MCDI2 1012 27123 27124 /* MC_CMD_MAE_ENCAP_HEADER_UPDATE_OUT msgresponse */ 27125 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_OUT_LEN 0 27126 27127 27128 /***********************************/ 27129 /* MC_CMD_MAE_ENCAP_HEADER_FREE 27130 * Free encap action metadata 27131 */ 27132 #define MC_CMD_MAE_ENCAP_HEADER_FREE 0x14a 27133 #undef MC_CMD_0x14a_PRIVILEGE_CTG 27134 27135 #define MC_CMD_0x14a_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27136 27137 /* MC_CMD_MAE_ENCAP_HEADER_FREE_IN msgrequest */ 27138 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMIN 4 27139 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMAX 128 27140 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMAX_MCDI2 128 27141 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LEN(num) (0+4*(num)) 27142 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_NUM(len) (((len)-0)/4) 27143 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 27144 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_OFST 0 27145 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_LEN 4 27146 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_MINNUM 1 27147 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_MAXNUM 32 27148 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_MAXNUM_MCDI2 32 27149 27150 /* MC_CMD_MAE_ENCAP_HEADER_FREE_OUT msgresponse */ 27151 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LENMIN 4 27152 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LENMAX 128 27153 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LENMAX_MCDI2 128 27154 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LEN(num) (0+4*(num)) 27155 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_NUM(len) (((len)-0)/4) 27156 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 27157 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_OFST 0 27158 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_LEN 4 27159 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_MINNUM 1 27160 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_MAXNUM 32 27161 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_MAXNUM_MCDI2 32 27162 27163 27164 /***********************************/ 27165 /* MC_CMD_MAE_MAC_ADDR_ALLOC 27166 * Allocate MAC address. Hardware implementations have MAC addresses programmed 27167 * into an indirection table, and clients should take care not to allocate the 27168 * same MAC address twice (but instead reuse its ID). 27169 */ 27170 #define MC_CMD_MAE_MAC_ADDR_ALLOC 0x15e 27171 #undef MC_CMD_0x15e_PRIVILEGE_CTG 27172 27173 #define MC_CMD_0x15e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27174 27175 /* MC_CMD_MAE_MAC_ADDR_ALLOC_IN msgrequest */ 27176 #define MC_CMD_MAE_MAC_ADDR_ALLOC_IN_LEN 6 27177 /* MAC address as bytes in network order. */ 27178 #define MC_CMD_MAE_MAC_ADDR_ALLOC_IN_MAC_ADDR_OFST 0 27179 #define MC_CMD_MAE_MAC_ADDR_ALLOC_IN_MAC_ADDR_LEN 6 27180 27181 /* MC_CMD_MAE_MAC_ADDR_ALLOC_OUT msgresponse */ 27182 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_LEN 4 27183 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_MAC_ID_OFST 0 27184 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_MAC_ID_LEN 4 27185 /* enum: An MAC address ID that is guaranteed never to represent a real MAC 27186 * address. 27187 */ 27188 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_MAC_ID_NULL 0xffffffff 27189 27190 27191 /***********************************/ 27192 /* MC_CMD_MAE_MAC_ADDR_FREE 27193 * Free MAC address. 27194 */ 27195 #define MC_CMD_MAE_MAC_ADDR_FREE 0x15f 27196 #undef MC_CMD_0x15f_PRIVILEGE_CTG 27197 27198 #define MC_CMD_0x15f_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27199 27200 /* MC_CMD_MAE_MAC_ADDR_FREE_IN msgrequest */ 27201 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMIN 4 27202 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMAX 128 27203 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMAX_MCDI2 128 27204 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LEN(num) (0+4*(num)) 27205 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_NUM(len) (((len)-0)/4) 27206 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 27207 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_OFST 0 27208 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_LEN 4 27209 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_MINNUM 1 27210 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_MAXNUM 32 27211 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_MAXNUM_MCDI2 32 27212 27213 /* MC_CMD_MAE_MAC_ADDR_FREE_OUT msgresponse */ 27214 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LENMIN 4 27215 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LENMAX 128 27216 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LENMAX_MCDI2 128 27217 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LEN(num) (0+4*(num)) 27218 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_NUM(len) (((len)-0)/4) 27219 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 27220 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_OFST 0 27221 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_LEN 4 27222 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_MINNUM 1 27223 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_MAXNUM 32 27224 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_MAXNUM_MCDI2 32 27225 27226 27227 /***********************************/ 27228 /* MC_CMD_MAE_ACTION_SET_ALLOC 27229 * Allocate an action set, which can be referenced either in response to an 27230 * Action Rule, or as part of an Action Set List. 27231 */ 27232 #define MC_CMD_MAE_ACTION_SET_ALLOC 0x14d 27233 #undef MC_CMD_0x14d_PRIVILEGE_CTG 27234 27235 #define MC_CMD_0x14d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27236 27237 /* MC_CMD_MAE_ACTION_SET_ALLOC_IN msgrequest */ 27238 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LEN 44 27239 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAGS_OFST 0 27240 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAGS_LEN 4 27241 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_PUSH_OFST 0 27242 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_PUSH_LBN 0 27243 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_PUSH_WIDTH 2 27244 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_POP_OFST 0 27245 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_POP_LBN 4 27246 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_POP_WIDTH 2 27247 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DECAP_OFST 0 27248 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DECAP_LBN 8 27249 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DECAP_WIDTH 1 27250 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_OFST 0 27251 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_LBN 9 27252 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_WIDTH 1 27253 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAG_OFST 0 27254 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAG_LBN 10 27255 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAG_WIDTH 1 27256 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_NAT_OFST 0 27257 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_NAT_LBN 11 27258 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_NAT_WIDTH 1 27259 /* If VLAN_PUSH >= 1, TCI value to be inserted as outermost VLAN. */ 27260 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_TCI_BE_OFST 4 27261 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_TCI_BE_LEN 2 27262 /* If VLAN_PUSH >= 1, TPID value to be inserted as outermost VLAN. */ 27263 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_PROTO_BE_OFST 6 27264 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_PROTO_BE_LEN 2 27265 /* If VLAN_PUSH == 2, inner TCI value to be inserted. */ 27266 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_TCI_BE_OFST 8 27267 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_TCI_BE_LEN 2 27268 /* If VLAN_PUSH == 2, inner TPID value to be inserted. */ 27269 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_PROTO_BE_OFST 10 27270 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN1_PROTO_BE_LEN 2 27271 /* Reserved. Ignored by firmware. Should be set to zero or 0xffffffff. */ 27272 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_RSVD_OFST 12 27273 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_RSVD_LEN 4 27274 /* Set to ENCAP_HEADER_ID_NULL to request no encap action */ 27275 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_ENCAP_HEADER_ID_OFST 16 27276 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_ENCAP_HEADER_ID_LEN 4 27277 /* An m-port selector identifying the m-port that the modified packet should be 27278 * delivered to. Set to MPORT_SELECTOR_NULL to request no delivery of the 27279 * packet. 27280 */ 27281 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DELIVER_OFST 20 27282 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DELIVER_LEN 4 27283 /* Allows an action set to trigger several counter updates. Set to 27284 * COUNTER_LIST_ID_NULL to request no counter action. 27285 */ 27286 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_LIST_ID_OFST 24 27287 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_LIST_ID_LEN 4 27288 /* If a driver only wished to update one counter within this action set, then 27289 * it can supply a COUNTER_ID instead of allocating a single-element counter 27290 * list. This field should be set to COUNTER_ID_NULL if this behaviour is not 27291 * required. It is not valid to supply a non-NULL value for both 27292 * COUNTER_LIST_ID and COUNTER_ID. 27293 */ 27294 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_ID_OFST 28 27295 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_ID_LEN 4 27296 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_VALUE_OFST 32 27297 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_VALUE_LEN 4 27298 /* Set to MAC_ID_NULL to request no source MAC replacement. */ 27299 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SRC_MAC_ID_OFST 36 27300 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SRC_MAC_ID_LEN 4 27301 /* Set to MAC_ID_NULL to request no destination MAC replacement. */ 27302 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DST_MAC_ID_OFST 40 27303 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DST_MAC_ID_LEN 4 27304 27305 /* MC_CMD_MAE_ACTION_SET_ALLOC_OUT msgresponse */ 27306 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_LEN 4 27307 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_AS_ID_OFST 0 27308 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_AS_ID_LEN 4 27309 /* enum: An action set ID that is guaranteed never to represent an action set 27310 */ 27311 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_ACTION_SET_ID_NULL 0xffffffff 27312 27313 27314 /***********************************/ 27315 /* MC_CMD_MAE_ACTION_SET_FREE 27316 */ 27317 #define MC_CMD_MAE_ACTION_SET_FREE 0x14e 27318 #undef MC_CMD_0x14e_PRIVILEGE_CTG 27319 27320 #define MC_CMD_0x14e_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27321 27322 /* MC_CMD_MAE_ACTION_SET_FREE_IN msgrequest */ 27323 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMIN 4 27324 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMAX 128 27325 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMAX_MCDI2 128 27326 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LEN(num) (0+4*(num)) 27327 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_NUM(len) (((len)-0)/4) 27328 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 27329 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_OFST 0 27330 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_LEN 4 27331 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_MINNUM 1 27332 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_MAXNUM 32 27333 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_MAXNUM_MCDI2 32 27334 27335 /* MC_CMD_MAE_ACTION_SET_FREE_OUT msgresponse */ 27336 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LENMIN 4 27337 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LENMAX 128 27338 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LENMAX_MCDI2 128 27339 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LEN(num) (0+4*(num)) 27340 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_NUM(len) (((len)-0)/4) 27341 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 27342 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_OFST 0 27343 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_LEN 4 27344 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_MINNUM 1 27345 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_MAXNUM 32 27346 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_MAXNUM_MCDI2 32 27347 27348 27349 /***********************************/ 27350 /* MC_CMD_MAE_ACTION_SET_LIST_ALLOC 27351 * Allocate an action set list (ASL) that can be referenced by an ID. The ASL 27352 * ID can be used when inserting an action rule, so that for each packet 27353 * matching the rule every action set in the list is applied. 27354 */ 27355 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC 0x14f 27356 #undef MC_CMD_0x14f_PRIVILEGE_CTG 27357 27358 #define MC_CMD_0x14f_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27359 27360 /* MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN msgrequest */ 27361 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LENMIN 8 27362 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LENMAX 252 27363 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LENMAX_MCDI2 1020 27364 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LEN(num) (4+4*(num)) 27365 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_NUM(len) (((len)-4)/4) 27366 /* Number of elements in the AS_IDS field. */ 27367 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_COUNT_OFST 0 27368 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_COUNT_LEN 4 27369 /* The IDs of the action sets in this list. The last element of this list may 27370 * be the ID of an already allocated ASL. In this case the action sets from the 27371 * already allocated ASL will be applied after the action sets supplied by this 27372 * request. This mechanism can be used to reduce resource usage in the case 27373 * where one ASL is a sublist of another ASL. The sublist should be allocated 27374 * first, then the superlist should be allocated by supplying all required 27375 * action set IDs that are not in the sublist followed by the ID of the 27376 * sublist. One sublist can be referenced by multiple superlists. 27377 */ 27378 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_OFST 4 27379 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_LEN 4 27380 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_MINNUM 1 27381 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_MAXNUM 62 27382 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_MAXNUM_MCDI2 254 27383 27384 /* MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT msgresponse */ 27385 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_LEN 4 27386 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_ASL_ID_OFST 0 27387 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_ASL_ID_LEN 4 27388 /* enum: An action set list ID that is guaranteed never to represent an action 27389 * set list 27390 */ 27391 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_ACTION_SET_LIST_ID_NULL 0xffffffff 27392 27393 27394 /***********************************/ 27395 /* MC_CMD_MAE_ACTION_SET_LIST_FREE 27396 * Free match-action-engine redirect_lists 27397 */ 27398 #define MC_CMD_MAE_ACTION_SET_LIST_FREE 0x150 27399 #undef MC_CMD_0x150_PRIVILEGE_CTG 27400 27401 #define MC_CMD_0x150_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27402 27403 /* MC_CMD_MAE_ACTION_SET_LIST_FREE_IN msgrequest */ 27404 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMIN 4 27405 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMAX 128 27406 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMAX_MCDI2 128 27407 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LEN(num) (0+4*(num)) 27408 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_NUM(len) (((len)-0)/4) 27409 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 27410 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_OFST 0 27411 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_LEN 4 27412 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_MINNUM 1 27413 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_MAXNUM 32 27414 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_MAXNUM_MCDI2 32 27415 27416 /* MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT msgresponse */ 27417 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LENMIN 4 27418 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LENMAX 128 27419 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LENMAX_MCDI2 128 27420 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LEN(num) (0+4*(num)) 27421 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_NUM(len) (((len)-0)/4) 27422 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 27423 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_OFST 0 27424 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_LEN 4 27425 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_MINNUM 1 27426 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_MAXNUM 32 27427 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_MAXNUM_MCDI2 32 27428 27429 27430 /***********************************/ 27431 /* MC_CMD_MAE_OUTER_RULE_INSERT 27432 * Inserts an Outer Rule, which controls encapsulation parsing, and may 27433 * influence the Lookup Sequence. 27434 */ 27435 #define MC_CMD_MAE_OUTER_RULE_INSERT 0x15a 27436 #undef MC_CMD_0x15a_PRIVILEGE_CTG 27437 27438 #define MC_CMD_0x15a_PRIVILEGE_CTG SRIOV_CTG_ADMIN 27439 27440 /* MC_CMD_MAE_OUTER_RULE_INSERT_IN msgrequest */ 27441 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LENMIN 16 27442 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LENMAX 252 27443 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LENMAX_MCDI2 1020 27444 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LEN(num) (16+1*(num)) 27445 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_NUM(len) (((len)-16)/1) 27446 /* Packets matching the rule will be parsed with this encapsulation. */ 27447 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ENCAP_TYPE_OFST 0 27448 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ENCAP_TYPE_LEN 4 27449 /* Enum values, see field(s): */ 27450 /* MAE_MCDI_ENCAP_TYPE */ 27451 /* Match priority. Lower values have higher priority. Must be less than 27452 * MC_CMD_MAE_GET_CAPS_OUT.ENCAP_PRIOS If a packet matches two filters with 27453 * equal priority then it is unspecified which takes priority. 27454 */ 27455 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_PRIO_OFST 4 27456 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_PRIO_LEN 4 27457 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LOOKUP_CONTROL_OFST 8 27458 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LOOKUP_CONTROL_LEN 4 27459 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_CT_OFST 8 27460 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_CT_LBN 0 27461 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_CT_WIDTH 1 27462 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_VNI_MODE_OFST 8 27463 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_VNI_MODE_LBN 1 27464 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_VNI_MODE_WIDTH 2 27465 /* Enum values, see field(s): */ 27466 /* MAE_CT_VNI_MODE */ 27467 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RECIRC_ID_OFST 8 27468 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RECIRC_ID_LBN 8 27469 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RECIRC_ID_WIDTH 8 27470 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_DOMAIN_OFST 8 27471 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_DOMAIN_LBN 16 27472 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_DOMAIN_WIDTH 16 27473 /* Reserved for future use. Must be set to zero. */ 27474 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RSVD_OFST 12 27475 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_RSVD_LEN 4 27476 /* Structure of the format MAE_ENC_FIELD_PAIRS. */ 27477 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_OFST 16 27478 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_LEN 1 27479 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_MINNUM 0 27480 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_MAXNUM 236 27481 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_MAXNUM_MCDI2 1004 27482 27483 /* MC_CMD_MAE_OUTER_RULE_INSERT_OUT msgresponse */ 27484 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_LEN 4 27485 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_OR_ID_OFST 0 27486 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_OR_ID_LEN 4 27487 /* enum: An outer match ID that is guaranteed never to represent an outer match 27488 */ 27489 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_OUTER_RULE_ID_NULL 0xffffffff 27490 27491 27492 /***********************************/ 27493 /* MC_CMD_MAE_OUTER_RULE_REMOVE 27494 */ 27495 #define MC_CMD_MAE_OUTER_RULE_REMOVE 0x15b 27496 #undef MC_CMD_0x15b_PRIVILEGE_CTG 27497 27498 #define MC_CMD_0x15b_PRIVILEGE_CTG SRIOV_CTG_ADMIN 27499 27500 /* MC_CMD_MAE_OUTER_RULE_REMOVE_IN msgrequest */ 27501 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMIN 4 27502 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMAX 128 27503 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMAX_MCDI2 128 27504 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LEN(num) (0+4*(num)) 27505 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_NUM(len) (((len)-0)/4) 27506 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 27507 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_OFST 0 27508 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_LEN 4 27509 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_MINNUM 1 27510 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_MAXNUM 32 27511 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_MAXNUM_MCDI2 32 27512 27513 /* MC_CMD_MAE_OUTER_RULE_REMOVE_OUT msgresponse */ 27514 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LENMIN 4 27515 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LENMAX 128 27516 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LENMAX_MCDI2 128 27517 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LEN(num) (0+4*(num)) 27518 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_NUM(len) (((len)-0)/4) 27519 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 27520 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_OFST 0 27521 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_LEN 4 27522 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_MINNUM 1 27523 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_MAXNUM 32 27524 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_MAXNUM_MCDI2 32 27525 27526 /* MAE_ACTION_RULE_RESPONSE structuredef */ 27527 #define MAE_ACTION_RULE_RESPONSE_LEN 16 27528 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_OFST 0 27529 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_LEN 4 27530 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_LBN 0 27531 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_WIDTH 32 27532 /* Only one of ASL_ID or AS_ID may have a non-NULL value. */ 27533 #define MAE_ACTION_RULE_RESPONSE_AS_ID_OFST 4 27534 #define MAE_ACTION_RULE_RESPONSE_AS_ID_LEN 4 27535 #define MAE_ACTION_RULE_RESPONSE_AS_ID_LBN 32 27536 #define MAE_ACTION_RULE_RESPONSE_AS_ID_WIDTH 32 27537 /* Controls lookup flow when this rule is hit. See sub-fields for details. More 27538 * info on the lookup sequence can be found in SF-122976-TC. It is an error to 27539 * set both DO_CT and DO_RECIRC. 27540 */ 27541 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_OFST 8 27542 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_LEN 4 27543 #define MAE_ACTION_RULE_RESPONSE_DO_CT_OFST 8 27544 #define MAE_ACTION_RULE_RESPONSE_DO_CT_LBN 0 27545 #define MAE_ACTION_RULE_RESPONSE_DO_CT_WIDTH 1 27546 #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_OFST 8 27547 #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_LBN 1 27548 #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_WIDTH 1 27549 #define MAE_ACTION_RULE_RESPONSE_CT_VNI_MODE_OFST 8 27550 #define MAE_ACTION_RULE_RESPONSE_CT_VNI_MODE_LBN 2 27551 #define MAE_ACTION_RULE_RESPONSE_CT_VNI_MODE_WIDTH 2 27552 /* Enum values, see field(s): */ 27553 /* MAE_CT_VNI_MODE */ 27554 #define MAE_ACTION_RULE_RESPONSE_RECIRC_ID_OFST 8 27555 #define MAE_ACTION_RULE_RESPONSE_RECIRC_ID_LBN 8 27556 #define MAE_ACTION_RULE_RESPONSE_RECIRC_ID_WIDTH 8 27557 #define MAE_ACTION_RULE_RESPONSE_CT_DOMAIN_OFST 8 27558 #define MAE_ACTION_RULE_RESPONSE_CT_DOMAIN_LBN 16 27559 #define MAE_ACTION_RULE_RESPONSE_CT_DOMAIN_WIDTH 16 27560 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_LBN 64 27561 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_WIDTH 32 27562 /* Counter ID to increment if DO_CT or DO_RECIRC is set. Must be set to 27563 * COUNTER_ID_NULL otherwise. 27564 */ 27565 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_OFST 12 27566 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_LEN 4 27567 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_LBN 96 27568 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_WIDTH 32 27569 27570 27571 /***********************************/ 27572 /* MC_CMD_MAE_ACTION_RULE_INSERT 27573 * Insert a rule specify that packets matching a filter be processed according 27574 * to a previous allocated action. Masks can be set as indicated by 27575 * MC_CMD_MAE_GET_MATCH_FIELD_CAPABILITIES. 27576 */ 27577 #define MC_CMD_MAE_ACTION_RULE_INSERT 0x15c 27578 #undef MC_CMD_0x15c_PRIVILEGE_CTG 27579 27580 #define MC_CMD_0x15c_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27581 27582 /* MC_CMD_MAE_ACTION_RULE_INSERT_IN msgrequest */ 27583 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LENMIN 28 27584 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LENMAX 252 27585 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LENMAX_MCDI2 1020 27586 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LEN(num) (28+1*(num)) 27587 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_NUM(len) (((len)-28)/1) 27588 /* See MC_CMD_MAE_OUTER_RULE_REGISTER_IN/PRIO. */ 27589 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_PRIO_OFST 0 27590 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_PRIO_LEN 4 27591 /* Structure of the format MAE_ACTION_RULE_RESPONSE */ 27592 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RESPONSE_OFST 4 27593 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RESPONSE_LEN 20 27594 /* Reserved for future use. Must be set to zero. */ 27595 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RSVD_OFST 24 27596 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RSVD_LEN 4 27597 /* Structure of the format MAE_FIELD_MASK_VALUE_PAIRS */ 27598 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_OFST 28 27599 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_LEN 1 27600 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_MINNUM 0 27601 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_MAXNUM 224 27602 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_MAXNUM_MCDI2 992 27603 27604 /* MC_CMD_MAE_ACTION_RULE_INSERT_OUT msgresponse */ 27605 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_LEN 4 27606 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_AR_ID_OFST 0 27607 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_AR_ID_LEN 4 27608 /* enum: An action rule ID that is guaranteed never to represent an action rule 27609 */ 27610 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_ACTION_RULE_ID_NULL 0xffffffff 27611 27612 27613 /***********************************/ 27614 /* MC_CMD_MAE_ACTION_RULE_UPDATE 27615 * Atomically change the response of an action rule. Firmware may return 27616 * ENOTSUP, in which case the driver should DELETE/INSERT. 27617 */ 27618 #define MC_CMD_MAE_ACTION_RULE_UPDATE 0x15d 27619 #undef MC_CMD_0x15d_PRIVILEGE_CTG 27620 27621 #define MC_CMD_0x15d_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27622 27623 /* MC_CMD_MAE_ACTION_RULE_UPDATE_IN msgrequest */ 27624 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_LEN 24 27625 /* ID of action rule to update */ 27626 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_AR_ID_OFST 0 27627 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_AR_ID_LEN 4 27628 /* Structure of the format MAE_ACTION_RULE_RESPONSE */ 27629 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_RESPONSE_OFST 4 27630 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_RESPONSE_LEN 20 27631 27632 /* MC_CMD_MAE_ACTION_RULE_UPDATE_OUT msgresponse */ 27633 #define MC_CMD_MAE_ACTION_RULE_UPDATE_OUT_LEN 0 27634 27635 27636 /***********************************/ 27637 /* MC_CMD_MAE_ACTION_RULE_DELETE 27638 */ 27639 #define MC_CMD_MAE_ACTION_RULE_DELETE 0x155 27640 #undef MC_CMD_0x155_PRIVILEGE_CTG 27641 27642 #define MC_CMD_0x155_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27643 27644 /* MC_CMD_MAE_ACTION_RULE_DELETE_IN msgrequest */ 27645 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMIN 4 27646 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMAX 128 27647 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMAX_MCDI2 128 27648 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LEN(num) (0+4*(num)) 27649 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_NUM(len) (((len)-0)/4) 27650 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 27651 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_OFST 0 27652 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_LEN 4 27653 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_MINNUM 1 27654 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_MAXNUM 32 27655 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_MAXNUM_MCDI2 32 27656 27657 /* MC_CMD_MAE_ACTION_RULE_DELETE_OUT msgresponse */ 27658 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LENMIN 4 27659 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LENMAX 128 27660 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LENMAX_MCDI2 128 27661 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LEN(num) (0+4*(num)) 27662 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_NUM(len) (((len)-0)/4) 27663 /* Same semantics as MC_CMD_MAE_COUNTER_FREE */ 27664 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_OFST 0 27665 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_LEN 4 27666 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_MINNUM 1 27667 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_MAXNUM 32 27668 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_MAXNUM_MCDI2 32 27669 27670 27671 /***********************************/ 27672 /* MC_CMD_MAE_MPORT_LOOKUP 27673 * Return the m-port corresponding to a selector. 27674 */ 27675 #define MC_CMD_MAE_MPORT_LOOKUP 0x160 27676 #undef MC_CMD_0x160_PRIVILEGE_CTG 27677 27678 #define MC_CMD_0x160_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27679 27680 /* MC_CMD_MAE_MPORT_LOOKUP_IN msgrequest */ 27681 #define MC_CMD_MAE_MPORT_LOOKUP_IN_LEN 4 27682 #define MC_CMD_MAE_MPORT_LOOKUP_IN_MPORT_SELECTOR_OFST 0 27683 #define MC_CMD_MAE_MPORT_LOOKUP_IN_MPORT_SELECTOR_LEN 4 27684 27685 /* MC_CMD_MAE_MPORT_LOOKUP_OUT msgresponse */ 27686 #define MC_CMD_MAE_MPORT_LOOKUP_OUT_LEN 4 27687 #define MC_CMD_MAE_MPORT_LOOKUP_OUT_MPORT_ID_OFST 0 27688 #define MC_CMD_MAE_MPORT_LOOKUP_OUT_MPORT_ID_LEN 4 27689 27690 27691 /***********************************/ 27692 /* MC_CMD_MAE_MPORT_ALLOC 27693 * Allocates a m-port, which can subsequently be used in action rules as a 27694 * match or delivery argument. 27695 */ 27696 #define MC_CMD_MAE_MPORT_ALLOC 0x163 27697 #undef MC_CMD_0x163_PRIVILEGE_CTG 27698 27699 #define MC_CMD_0x163_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27700 27701 /* MC_CMD_MAE_MPORT_ALLOC_IN msgrequest */ 27702 #define MC_CMD_MAE_MPORT_ALLOC_IN_LEN 20 27703 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain 27704 * types. 27705 */ 27706 #define MC_CMD_MAE_MPORT_ALLOC_IN_TYPE_OFST 0 27707 #define MC_CMD_MAE_MPORT_ALLOC_IN_TYPE_LEN 4 27708 /* enum: Traffic can be sent to this type of m-port using an override 27709 * descriptor. Traffic received on this type of m-port will go to the VNIC on a 27710 * nominated m-port, and will be delivered with metadata identifying the alias 27711 * m-port. 27712 */ 27713 #define MC_CMD_MAE_MPORT_ALLOC_IN_MPORT_TYPE_ALIAS 0x1 27714 /* enum: This type of m-port has a VNIC attached. Queues can be created on this 27715 * VNIC by specifying the created m-port as an m-port selector at queue 27716 * creation time. 27717 */ 27718 #define MC_CMD_MAE_MPORT_ALLOC_IN_MPORT_TYPE_VNIC 0x2 27719 /* 128-bit value for use by the driver. */ 27720 #define MC_CMD_MAE_MPORT_ALLOC_IN_UUID_OFST 4 27721 #define MC_CMD_MAE_MPORT_ALLOC_IN_UUID_LEN 16 27722 27723 /* MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN msgrequest */ 27724 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_LEN 24 27725 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain 27726 * types. 27727 */ 27728 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_TYPE_OFST 0 27729 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_TYPE_LEN 4 27730 /* enum: Traffic can be sent to this type of m-port using an override 27731 * descriptor. Traffic received on this type of m-port will go to the VNIC on a 27732 * nominated m-port, and will be delivered with metadata identifying the alias 27733 * m-port. 27734 */ 27735 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_MPORT_TYPE_ALIAS 0x1 27736 /* enum: This type of m-port has a VNIC attached. Queues can be created on this 27737 * VNIC by specifying the created m-port as an m-port selector at queue 27738 * creation time. 27739 */ 27740 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_MPORT_TYPE_VNIC 0x2 27741 /* 128-bit value for use by the driver. */ 27742 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_UUID_OFST 4 27743 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_UUID_LEN 16 27744 /* An m-port selector identifying the VNIC to which traffic should be 27745 * delivered. This must currently be set to MAE_MPORT_SELECTOR_ASSIGNED (i.e. 27746 * the m-port assigned to the calling client). 27747 */ 27748 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_DELIVER_MPORT_OFST 20 27749 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_DELIVER_MPORT_LEN 4 27750 27751 /* MC_CMD_MAE_MPORT_ALLOC_VNIC_IN msgrequest */ 27752 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_LEN 20 27753 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain 27754 * types. 27755 */ 27756 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_TYPE_OFST 0 27757 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_TYPE_LEN 4 27758 /* enum: Traffic can be sent to this type of m-port using an override 27759 * descriptor. Traffic received on this type of m-port will go to the VNIC on a 27760 * nominated m-port, and will be delivered with metadata identifying the alias 27761 * m-port. 27762 */ 27763 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_MPORT_TYPE_ALIAS 0x1 27764 /* enum: This type of m-port has a VNIC attached. Queues can be created on this 27765 * VNIC by specifying the created m-port as an m-port selector at queue 27766 * creation time. 27767 */ 27768 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_MPORT_TYPE_VNIC 0x2 27769 /* 128-bit value for use by the driver. */ 27770 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_UUID_OFST 4 27771 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_UUID_LEN 16 27772 27773 /* MC_CMD_MAE_MPORT_ALLOC_OUT msgresponse */ 27774 #define MC_CMD_MAE_MPORT_ALLOC_OUT_LEN 4 27775 /* ID of newly-allocated m-port. */ 27776 #define MC_CMD_MAE_MPORT_ALLOC_OUT_MPORT_ID_OFST 0 27777 #define MC_CMD_MAE_MPORT_ALLOC_OUT_MPORT_ID_LEN 4 27778 27779 /* MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT msgrequest */ 27780 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_LEN 24 27781 /* ID of newly-allocated m-port. */ 27782 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_MPORT_ID_OFST 0 27783 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_MPORT_ID_LEN 4 27784 /* A value that will appear in the packet metadata for any packets delivered 27785 * using an alias type m-port. This value is guaranteed unique on the VNIC 27786 * being delivered to, and is guaranteed not to exceed the range of values 27787 * representable in the relevant metadata field. 27788 */ 27789 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_LABEL_OFST 20 27790 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_LABEL_LEN 4 27791 27792 /* MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT msgrequest */ 27793 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_LEN 4 27794 /* ID of newly-allocated m-port. */ 27795 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_MPORT_ID_OFST 0 27796 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_MPORT_ID_LEN 4 27797 27798 27799 /***********************************/ 27800 /* MC_CMD_MAE_MPORT_FREE 27801 * Free a m-port which was previously allocated by the driver. 27802 */ 27803 #define MC_CMD_MAE_MPORT_FREE 0x164 27804 #undef MC_CMD_0x164_PRIVILEGE_CTG 27805 27806 #define MC_CMD_0x164_PRIVILEGE_CTG SRIOV_CTG_GENERAL 27807 27808 /* MC_CMD_MAE_MPORT_FREE_IN msgrequest */ 27809 #define MC_CMD_MAE_MPORT_FREE_IN_LEN 4 27810 /* MPORT_ID as returned by MC_CMD_MAE_MPORT_ALLOC. */ 27811 #define MC_CMD_MAE_MPORT_FREE_IN_MPORT_ID_OFST 0 27812 #define MC_CMD_MAE_MPORT_FREE_IN_MPORT_ID_LEN 4 27813 27814 /* MC_CMD_MAE_MPORT_FREE_OUT msgresponse */ 27815 #define MC_CMD_MAE_MPORT_FREE_OUT_LEN 0 27816 27817 /* MAE_MPORT_DESC structuredef */ 27818 #define MAE_MPORT_DESC_LEN 52 27819 #define MAE_MPORT_DESC_MPORT_ID_OFST 0 27820 #define MAE_MPORT_DESC_MPORT_ID_LEN 4 27821 #define MAE_MPORT_DESC_MPORT_ID_LBN 0 27822 #define MAE_MPORT_DESC_MPORT_ID_WIDTH 32 27823 /* Reserved for future purposes, contains information independent of caller */ 27824 #define MAE_MPORT_DESC_FLAGS_OFST 4 27825 #define MAE_MPORT_DESC_FLAGS_LEN 4 27826 #define MAE_MPORT_DESC_FLAGS_LBN 32 27827 #define MAE_MPORT_DESC_FLAGS_WIDTH 32 27828 #define MAE_MPORT_DESC_CALLER_FLAGS_OFST 8 27829 #define MAE_MPORT_DESC_CALLER_FLAGS_LEN 4 27830 #define MAE_MPORT_DESC_CAN_RECEIVE_ON_OFST 8 27831 #define MAE_MPORT_DESC_CAN_RECEIVE_ON_LBN 0 27832 #define MAE_MPORT_DESC_CAN_RECEIVE_ON_WIDTH 1 27833 #define MAE_MPORT_DESC_CAN_DELIVER_TO_OFST 8 27834 #define MAE_MPORT_DESC_CAN_DELIVER_TO_LBN 1 27835 #define MAE_MPORT_DESC_CAN_DELIVER_TO_WIDTH 1 27836 #define MAE_MPORT_DESC_CAN_DELETE_OFST 8 27837 #define MAE_MPORT_DESC_CAN_DELETE_LBN 2 27838 #define MAE_MPORT_DESC_CAN_DELETE_WIDTH 1 27839 #define MAE_MPORT_DESC_CALLER_FLAGS_LBN 64 27840 #define MAE_MPORT_DESC_CALLER_FLAGS_WIDTH 32 27841 /* Not the ideal name; it's really the type of thing connected to the m-port */ 27842 #define MAE_MPORT_DESC_MPORT_TYPE_OFST 12 27843 #define MAE_MPORT_DESC_MPORT_TYPE_LEN 4 27844 /* enum: Connected to a MAC... */ 27845 #define MAE_MPORT_DESC_MPORT_TYPE_NET_PORT 0x0 27846 /* enum: Adds metadata and delivers to another m-port */ 27847 #define MAE_MPORT_DESC_MPORT_TYPE_ALIAS 0x1 27848 /* enum: Connected to a VNIC. */ 27849 #define MAE_MPORT_DESC_MPORT_TYPE_VNIC 0x2 27850 #define MAE_MPORT_DESC_MPORT_TYPE_LBN 96 27851 #define MAE_MPORT_DESC_MPORT_TYPE_WIDTH 32 27852 /* 128-bit value available to drivers for m-port identification. */ 27853 #define MAE_MPORT_DESC_UUID_OFST 16 27854 #define MAE_MPORT_DESC_UUID_LEN 16 27855 #define MAE_MPORT_DESC_UUID_LBN 128 27856 #define MAE_MPORT_DESC_UUID_WIDTH 128 27857 /* Big wadge of space reserved for other common properties */ 27858 #define MAE_MPORT_DESC_RESERVED_OFST 32 27859 #define MAE_MPORT_DESC_RESERVED_LEN 8 27860 #define MAE_MPORT_DESC_RESERVED_LO_OFST 32 27861 #define MAE_MPORT_DESC_RESERVED_HI_OFST 36 27862 #define MAE_MPORT_DESC_RESERVED_LBN 256 27863 #define MAE_MPORT_DESC_RESERVED_WIDTH 64 27864 /* Logical port index. Only valid when type NET Port. */ 27865 #define MAE_MPORT_DESC_NET_PORT_IDX_OFST 40 27866 #define MAE_MPORT_DESC_NET_PORT_IDX_LEN 4 27867 #define MAE_MPORT_DESC_NET_PORT_IDX_LBN 320 27868 #define MAE_MPORT_DESC_NET_PORT_IDX_WIDTH 32 27869 /* The m-port delivered to */ 27870 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_OFST 40 27871 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_LEN 4 27872 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_LBN 320 27873 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_WIDTH 32 27874 /* The type of thing that owns the VNIC */ 27875 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_OFST 40 27876 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_LEN 4 27877 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_FUNCTION 0x1 /* enum */ 27878 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_PLUGIN 0x2 /* enum */ 27879 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_LBN 320 27880 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_WIDTH 32 27881 /* The PCIe interface on which the function lives. CJK: We need an enumeration 27882 * of interfaces that we extend as new interface (types) appear. This belongs 27883 * elsewhere and should be referenced from here 27884 */ 27885 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_OFST 44 27886 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_LEN 4 27887 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_LBN 352 27888 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_WIDTH 32 27889 #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_OFST 48 27890 #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_LEN 2 27891 #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_LBN 384 27892 #define MAE_MPORT_DESC_VNIC_FUNCTION_PF_IDX_WIDTH 16 27893 #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_OFST 50 27894 #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_LEN 2 27895 /* enum: Indicates that the function is a PF */ 27896 #define MAE_MPORT_DESC_VF_IDX_NULL 0xffff 27897 #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_LBN 400 27898 #define MAE_MPORT_DESC_VNIC_FUNCTION_VF_IDX_WIDTH 16 27899 /* Reserved. Should be ignored for now. */ 27900 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_OFST 44 27901 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_LEN 4 27902 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_LBN 352 27903 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_WIDTH 32 27904 27905 27906 /***********************************/ 27907 /* MC_CMD_MAE_MPORT_ENUMERATE 27908 */ 27909 #define MC_CMD_MAE_MPORT_ENUMERATE 0x17c 27910 27911 /* MC_CMD_MAE_MPORT_ENUMERATE_IN msgrequest */ 27912 #define MC_CMD_MAE_MPORT_ENUMERATE_IN_LEN 0 27913 27914 /* MC_CMD_MAE_MPORT_ENUMERATE_OUT msgresponse */ 27915 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_LENMIN 8 27916 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_LENMAX 252 27917 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_LENMAX_MCDI2 1020 27918 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_LEN(num) (8+1*(num)) 27919 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_NUM(len) (((len)-8)/1) 27920 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_COUNT_OFST 0 27921 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_COUNT_LEN 4 27922 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_SIZEOF_MPORT_DESC_OFST 4 27923 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_SIZEOF_MPORT_DESC_LEN 4 27924 /* Any array of MAE_MPORT_DESC structures. The MAE_MPORT_DESC structure may 27925 * grow in future version of this command. Drivers should use a stride of 27926 * SIZEOF_MPORT_DESC. Fields beyond SIZEOF_MPORT_DESC are not present. 27927 */ 27928 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_OFST 8 27929 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_LEN 1 27930 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_MINNUM 0 27931 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_MAXNUM 244 27932 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_MAXNUM_MCDI2 1012 27933 27934 #endif /* _SIENA_MC_DRIVER_PCOL_H */ 27935