Lines Matching +full:1 +full:- +full:of +full:- +full:4
1 /* SPDX-License-Identifier: GPL-2.0-only */
4 * Copyright 2009-2018 Solarflare Communications Inc.
5 * Copyright 2019-2020 Xilinx Inc.
13 /* Power-on reset state */
14 #define MC_FW_STATE_POR (1)
19 #define MC_FW_STATE_BOOTING (4)
35 /* The 'doorbell' addresses are hard-wired to alert the MC when written */
38 /* The rest of these are firmware-defined */
46 /* Values to be written to the per-port status dword in shared
54 /* The current version of the MCDI protocol.
63 /* MCDI version 1
71 * | | \--- Response
72 * | \------- Error
73 * \------------------------------ Resync (always set)
98 #define MCDI_HEADER_RESYNC_WIDTH 1
102 #define MCDI_HEADER_SEQ_WIDTH 4
104 #define MCDI_HEADER_RSVD_WIDTH 1
106 #define MCDI_HEADER_NOT_EPOCH_WIDTH 1
108 #define MCDI_HEADER_ERROR_WIDTH 1
110 #define MCDI_HEADER_RESPONSE_WIDTH 1
118 /* Maximum number of payload bytes */
126 * - To advance a shared memory request if XFLAGS_EVREQ was set
127 * - As a notification (link state, i2c event), controlled
139 * - LEVEL==INFO Command succeeded
140 * - LEVEL==ERR Command failed
145 * These fields are taken directly out of the standard MCDI header, i.e.,
148 * Events can be squirted out of the UART (using LOG_CTRL) without a
151 * non-existent MCDI command MC_CMD_DEBUG_LOG.
156 * Since the event is written in big-endian byte order, this works
157 * providing bits 56-63 of the event are 0xc0.
170 #define MC_CMD_ERR_PROXY_PENDING_HANDLE_OFST 4
186 #define SIENA_MC_BOOTROM_COPYCODE_VEC (0x800 - 3 * 0x4)
187 #define HUNT_MC_BOOTROM_COPYCODE_VEC (0x8000 - 3 * 0x4)
188 #define MEDFORD_MC_BOOTROM_COPYCODE_VEC (0x10000 - 3 * 0x4)
190 #define SIENA_MC_BOOTROM_NOFLASH_VEC (0x800 - 2 * 0x4)
191 #define HUNT_MC_BOOTROM_NOFLASH_VEC (0x8000 - 2 * 0x4)
192 #define MEDFORD_MC_BOOTROM_NOFLASH_VEC (0x10000 - 2 * 0x4)
194 #define SIENA_MC_BOOTROM_RECOVERY_VEC (0x800 - 2 * 0x4)
195 #define HUNT_MC_BOOTROM_RECOVERY_VEC (0x8000 - 2 * 0x4)
196 #define MEDFORD_MC_BOOTROM_RECOVERY_VEC (0x10000 - 2 * 0x4)
199 #define MEDFORD_MC_BOOTROM_REAL_NOFLASH_VEC (0x10000 - 4 * 0x4)
203 (1 << MC_CMD_READ32) | \
204 (1 << MC_CMD_WRITE32) | \
205 (1 << MC_CMD_COPYCODE) | \
206 (1 << MC_CMD_GET_VERSION), \
227 /* This may be ORed with an EVB_PORT_ID_xxx constant to pass a non-default
228 * stack ID (which must be in the range 1-255) along with an EVB port ID.
234 * may be followed by the (0-based) number of the first argument that
237 #define MC_CMD_ERR_ARG_OFST 4
241 * specific to Solarflare firmware should use values in the range 0x1000 -
242 * 0x10ff. The range 0x2000 - 0x20ff is reserved for private error codes (see
247 /* enum: Non-existent command target */
257 /* enum: Out of memory */
269 /* enum: Read-only */
273 /* enum: Out of range */
275 /* enum: Non-recursive resource is already acquired */
300 /* enum: V-adaptor not found. */
304 /* enum: V-switch not found. */
312 /* enum: Invalid v-switch type. */
314 /* enum: Invalid v-port type. */
335 * event and then resend its request. This error code is followed by a 32-bit
350 * an operation failed due to lack of SR-IOV privilege. Normally it is
359 * sub-variant switching.
406 * an on-NIC ARM module is expected to be connected.
411 /* enum: The PCIe logical interface 1. */
434 * all match fields defined at the time of its compilation. If a driver see a
437 * and must never set a non-zero mask value for this field.
458 * or a consecutive set of ones following by all zeroes (starting from MSB).
467 /* MAE_CT_VNI_MODE enum: Controls the layout of the VNI input to the conntrack
468 * lookup. (Values are not arbitrary - constrained by table access ABI.)
497 /* enum: Undefined unless CT_HIT=1. */
499 /* enum: Undefined unless DO_CT=1. */
501 /* enum: Undefined unless CT_HIT=1. */
503 /* enum: 1 if the packet ingressed the NIC from one of the MACs, else 0. */
505 /* enum: 1 if the packet has 1 or more VLAN tags, else 0. */
507 /* enum: 1 if the packet has 2 or more VLAN tags, else 0. */
509 /* enum: 1 if the outer packet has 1 or more VLAN tags, else 0; only present
513 /* enum: 1 if the outer packet has 2 or more VLAN tags, else 0; only present
544 * matching? TODO: there was a proposal for driver-allocation fields. The
557 /* enum: TCP packet with any of SYN, FIN or RST flag set */
561 /* enum: The type of encapsulated used for this packet. Value as per
565 /* enum: The ID of the outer rule that marked this packet as encapsulated.
603 /* enum: VNI (when VXLAN or GENEVE) VSID (when NVGRE) Bottom 24 bits of Key
610 * should be treated same as NONE. (Values are not arbitrary - constrained by
620 /* MAE_MPORT_END enum: Selects which end of the logical link identified by an
628 /* MAE_COUNTER_TYPE enum: The datapath maintains several sets of counters, each
631 * from CT counter 42. Generation counts are also type-specific. This value is
632 * also present in the header of streaming counter packets, in the IDENTIFIER
639 /* enum: Action Rule counters - can be referenced in AR response. */
641 /* enum: Conntrack counters - can be referenced in CT response. */
643 /* enum: Outer Rule counters - can be referenced in OR response. */
645 /* enum: LACP counters - linked to LACP balance table entries. */
648 /* MAE_COUNTER_ID enum: ID of allocated counter or counter list. */
654 /* TABLE_ID enum: Unique IDs for tables. The 32-bit ID values have been
656 * block the tables belongs to (0=VNIC TX, none currently; 1=MAE; 2=VNIC RX),
658 * variations of the same table. (All of the tables currently defined within
660 * all supported - MC_CMD_TABLE_LIST returns the list of actually supported
665 /* enum: Outer_Rule_Table in the MAE - refer to SF-123102-TC. */
667 /* enum: Outer_Rule_No_CT_Table in the MAE - refer to SF-123102-TC. */
669 /* enum: Mgmt_Filter_Table in the MAE - refer to SF-123102-TC. */
671 /* enum: Conntrack_Table in the MAE - refer to SF-123102-TC. */
673 /* enum: Action_Rule_Table in the MAE - refer to SF-123102-TC. */
675 /* enum: Mgroup_Default_Action_Set_Table in the MAE - refer to SF-123102-TC. */
677 /* enum: Encap_Hdr_Part1_Table in the MAE - refer to SF-123102-TC. */
679 /* enum: Encap_Hdr_Part2_Table in the MAE - refer to SF-123102-TC. */
681 /* enum: Replace_Src_MAC_Table in the MAE - refer to SF-123102-TC. */
683 /* enum: Replace_Dst_MAC_Table in the MAE - refer to SF-123102-TC. */
685 /* enum: Dst_Mport_VC_Table in the MAE - refer to SF-123102-TC. */
687 /* enum: LACP_LAG_Config_Table in the MAE - refer to SF-123102-TC. */
689 /* enum: LACP_Balance_Table in the MAE - refer to SF-123102-TC. */
691 /* enum: Dst_Mport_Host_Chan_Table in the MAE - refer to SF-123102-TC. */
693 /* enum: VNIC_Rx_Encap_Table in VNIC Rx - refer to SF-123102-TC. */
695 /* enum: Steering_Table in VNIC Rx - refer to SF-123102-TC. */
697 /* enum: RSS_Context_Table in VNIC Rx - refer to SF-123102-TC. */
699 /* enum: Indirection_Table in VNIC Rx - refer to SF-123102-TC. */
701 /* enum: DPU.host read pipe first CRC offload engine profiles - refer to
702 * XN-200147-AN.
705 /* enum: DPU.host read pipe second CRC offload engine profiles - refer to
706 * XN-200147-AN.
709 /* enum: DPU.host write pipe first CRC offload engine profiles - refer to
710 * XN-200147-AN.
713 /* enum: DPU.host write pipe second CRC offload engine profiles - refer to
714 * XN-200147-AN.
717 /* enum: DPU.net 'full' receive pipe CRC offload engine profiles - refer to
718 * XN-200147-AN.
721 /* enum: DPU.net 'full' receive pipe first checksum offload engine profiles -
722 * refer to XN-200147-AN.
725 /* enum: DPU.net 'full' receive pipe second checksum offload engine profiles -
726 * refer to XN-200147-AN.
729 /* enum: DPU.net 'full' receive pipe AES-GCM offload engine profiles - refer to
730 * XN-200147-AN.
733 /* enum: DPU.net 'lite' receive pipe CRC offload engine profiles - refer to
734 * XN-200147-AN.
737 /* enum: DPU.net 'lite' receive pipe checksum offload engine profiles - refer
738 * to XN-200147-AN.
741 /* enum: DPU.net 'full' transmit pipe CRC offload engine profiles - refer to
742 * XN-200147-AN.
745 /* enum: DPU.net 'full' transmit pipe first checksum offload engine profiles -
746 * refer to XN-200147-AN.
749 /* enum: DPU.net 'full' transmit pipe second checksum offload engine profiles -
750 * refer to XN-200147-AN.
753 /* enum: DPU.net 'full' transmit pipe AES-GCM offload engine profiles - refer
754 * to XN-200147-AN.
757 /* enum: DPU.net 'lite' transmit pipe CRC offload engine profiles - refer to
758 * XN-200147-AN.
761 /* enum: DPU.net 'lite' transmit pipe checksum offload engine profiles - refer
762 * to XN-200147-AN.
769 * cases this sharing means that they are not used with the exact names of the
770 * corresponding table definitions in SF-123102-TC; however, the mapping should
771 * still be clear. The intent is that a list of fields, with their associated
773 * of the fields in a key or response. (Again, this list includes all of the
775 * actually be used by the supported list of tables.)
782 /* enum: Source m-port (a full m-port label). */
784 /* enum: Destination m-port (a full m-port label). */
786 /* enum: Source m-group ID. */
788 /* enum: Physical network port ID (or m-port ID; same thing, for physical
797 /* enum: Low bits of virtual channel from capsule header. */
803 /* enum: Counter ID associated with a response. All-bits-1 is a null value to
808 * allows plugins to make a reinterpretation of packet fields in these keys
813 * 48-bit value for this field is in network order, i.e. a MAC address of
814 * AA:BB:CC:DD:EE:FF becomes a 48-bit value of 0xAABBCCDDEEFF.
823 /* enum: Outer VLAN ID (least significant 12 bits of full 16-bit TCI) only. */
829 /* enum: Inner VLAN ID (least significant 12 bits of full 16-bit TCI) only. */
834 * frame to the 128-bit value for this field is in network order, with IPv4
835 * addresses assumed to have 12 bytes of trailing zeroes. i.e. the IPv6 address
842 /* enum: IPv4 Type-of-Service or IPv6 Traffic Class field. */
846 /* enum: Layer 4 source port. */
848 /* enum: Layer 4 destination port. */
860 /* enum: True if encap header is some sort of IP. */
870 /* enum: True if only/inner frame is some sort of IP. */
880 /* enum: True if only/inner frame has an IP Time-To-Live of <= 1. (Note: the
882 * with TTL=0 - which we shouldn't be seeing! - as well.)
885 /* enum: True if only/inner frame has any of TCP SYN, FIN or RST flags set. */
889 /* enum: Enable update of CH_ROUTE_RDP_C_PL route bit. */
891 /* enum: New value of CH_ROUTE_RDP_C_PL route bit. */
893 /* enum: Enable update of CH_ROUTE_RDP_D_PL route bit. */
895 /* enum: New value of CH_ROUTE_RDP_D_PL route bit. */
897 /* enum: Enable update of CH_ROUTE_RDP_OUT_HOST_CHAN route bit. */
899 /* enum: New value of CH_ROUTE_RDP_OUT_HOST_CHAN route bit. */
905 /* enum: Construction mode for encap_tunnel_id - see MAE_CT_VNI_MODE enum. */
920 /* enum: Encapsulation type - see MAE_MCDI_ENCAP_TYPE enum. */
932 * byte mapped to a 32-bit value in network order, i.e. the IPv4 address
936 /* enum: NAT direction: 0=>source, 1=>destination. */
946 /* enum: True to suppress delivery when source and destination m-ports match.
959 /* enum: True to decrement IP Time-To-Live. */
965 /* enum: Number of VLAN tags to pop. Valid values are 0, 1, or 2. */
967 /* enum: Number of VLANs tags to push. Valid values are 0, 1, or 2. */
986 /* enum: True to override the reported source m-port for host deliveries. */
993 * DO_REPLACE_ECN is not set, ECN_CONTROL[0] and ECN_CONTROL[1] are set to
994 * request remapping of ECT0 and ECT1 ECN codepoints respectively to CE.
1005 /* enum: 64-byte chunk of added encapsulation header. */
1007 /* enum: 32-byte chunk of added encapsulation header. */
1009 /* enum: 16-byte chunk of added encapsulation header. */
1011 /* enum: 8-byte chunk of added encapsulation header. */
1013 /* enum: 4-byte chunk of added encapsulation header. */
1015 /* enum: 2-byte chunk of added encapsulation header. */
1019 /* enum: Static value for layer 2/3 LACP hash of the encapsulation header. */
1021 /* enum: Static value for layer 4 LACP hash of the encapsulation header. */
1024 * instead of the calculated values for the inner frame when delivering a newly
1025 * encapsulated packet to a LAG m-port.
1037 /* enum: Next action set payload ID for replay. The null value is all-1-bits.
1040 /* enum: Next action set row ID for replay. The null value is all-1-bits. */
1043 * null value is all-1-bits.
1047 * value is all-1-bits.
1050 /* enum: True to include layer 4 in LACP hash on delivery to a LAG m-port. */
1056 /* enum: Length of balance table region: 0=>64, 1=>128, 2=>256. */
1058 /* enum: LACP LAG ID (i.e. the low 3 bits of LACP LAG mport ID), indexing
1059 * LACP_LAG_Config_Table. Refer to SF-123102-TC.
1065 * to SF-123102-TC.
1068 /* enum: UDP port to match for UDP-based encapsulations; required to be 0 for
1085 * false to bitwise-OR the USER_MARK into it.
1089 * false to bitwise-OR the USER_FLAG into it.
1098 /* enum: Key mode for IPv4 TCP packets - see TABLE_RSS_KEY_MODE enum. */
1100 /* enum: Key mode for IPv6 TCP packets - see TABLE_RSS_KEY_MODE enum. */
1102 /* enum: Key mode for IPv4 UDP packets - see TABLE_RSS_KEY_MODE enum. */
1104 /* enum: Key mode for IPv6 UDP packets - see TABLE_RSS_KEY_MODE enum. */
1106 /* enum: Key mode for other IPv4 packets - see TABLE_RSS_KEY_MODE enum. */
1108 /* enum: Key mode for other IPv6 packets - see TABLE_RSS_KEY_MODE enum. */
1110 /* enum: Spreading mode - 0=>indirection; 1=>even. */
1112 /* enum: For indirection spreading mode, the base address of a region within
1113 * the Indirection_Table. For even spreading mode, the number of queues to
1114 * spread across (only values 1-255 are valid for this mode).
1117 /* enum: For indirection spreading mode, identifies the length of a region
1126 /* enum: Width of the CRC to calculate - see CRC_VARIANT enum. */
1128 /* enum: If set, reflect the bits of each input byte, bit 7 is LSB, bit 0 is
1132 /* enum: If set, reflect the bits of each output byte, bit 7 is LSB, bit 0 is
1136 /* enum: If set, invert every bit of the output value. */
1140 /* enum: Operation for the checksum engine to perform - see DPU_CSUM_OP enum.
1143 /* enum: Byte offset of checksum relative to region_start (for VALIDATE_*
1151 /* enum: Log2 data size of additional data on OPR bus. */
1153 /* enum: 4 byte offset of where to find the additional data on the OPR bus. */
1155 /* enum: Operation type for the AES-GCM core - see GCM_OP_CODE enum. */
1157 /* enum: Key length - AES_KEY_LEN enum. */
1159 /* enum: OPR 4 byte offset for ICV or GHASH output (only in BULK_* mode) or
1164 * indicates IPSEC-ESN mode.
1174 /* MCDI_EVENT structuredef: The structure of an MCDI_EVENT on Siena/EF10/EF100
1179 #define MCDI_EVENT_CONT_WIDTH 1
1191 #define MCDI_EVENT_DATA_LEN 4
1206 #define MCDI_EVENT_LINKCHANGE_SPEED_WIDTH 4
1211 /* enum: 1Gbs */
1225 #define MCDI_EVENT_LINKCHANGE_FCNTL_WIDTH 4
1237 #define MCDI_EVENT_PORT_LINKCHANGE_LINK_UP_WIDTH 1
1246 #define MCDI_EVENT_PORT_MODULECHANGE_MDI_CONNECTED_WIDTH 1
1272 #define MCDI_EVENT_TX_ERR_TYPE_WIDTH 4
1273 /* enum: Descriptor loader reported failure. Specific to EF10-family NICs. */
1276 * EF10-family NICs
1279 /* enum: Overlength packet. Specific to EF10-family NICs. */
1281 /* enum: Malformed option descriptor. Specific to EF10-family NICs. */
1283 /* enum: Option descriptor part way through a packet. Specific to EF10-family
1287 /* enum: DMA or PIO data access error. Specific to EF10-family NICs */
1294 #define MCDI_EVENT_TX_FLUSH_TO_DRIVER_WIDTH 1
1312 /* enum: AOE failed to load - no valid image? */
1320 /* enum: Generic AOE fault - likely to have been reported via other means too
1324 /* enum: Results of reprogramming the CPLD (status in AOE_ERR_DATA) */
1328 /* enum: AOE DMA operation completed (LSB of HOST_HANDLE in AOE_ERR_DATA) */
1350 /* enum: FPGA boot-flash contains an invalid image header */
1380 /* enum: DDR Voltage out of supported range */
1406 #define MCDI_EVENT_RX_ERR_TYPE_WIDTH 4
1412 #define MCDI_EVENT_RX_FLUSH_TO_DRIVER_WIDTH 1
1422 /* enum: MUM failed to load - no valid image? */
1456 #define MCDI_EVENT_LINKCHANGE_V2_SPEED_WIDTH 4
1461 #define MCDI_EVENT_LINKCHANGE_V2_FLAGS_LINK_UP_WIDTH 1
1492 #define MCDI_EVENT_EV_EVQ_PHASE_WIDTH 1
1494 #define MCDI_EVENT_EV_CODE_WIDTH 4
1555 /* enum: notify the designated PF of a new authorization request */
1567 /* enum: Link change. This event is sent instead of LINKCHANGE if
1582 /* enum: Notification that a sensor has changed state as a result of a reading
1589 * pushed to "live" status (visible to host). SRC field contains the handle of
1591 * count of configuration set applied. See MC_CMD_DESC_PROXY_FUNC_CONFIG_SET /
1592 * MC_CMD_DESC_PROXY_FUNC_CONFIG_COMMIT and SF-122927-TC for details.
1596 * field contains the handle of the affected descriptor proxy function. See
1597 * SF-122927-TC for details.
1601 * SRC field contains the handle of the affected descriptor proxy function. For
1602 * Virtio proxy functions this message consists of two MCDI events, where the
1603 * first event's (CONT=1) DATA field carries negotiated virtio feature bits 0
1605 * functions event length and meaning of DATA field is not yet defined. See
1606 * SF-122927-TC for details.
1616 * sink queue. SRC field contains the handle of the affected descriptor proxy
1621 /* enum: Notification of a change in link state and/or link speed of a network
1627 /* enum: Notification of a change in the state of an MDI (external connector)
1628 * of a network port. This typically corresponds to module plug/unplug for
1645 #define MCDI_EVENT_CMDDONE_DATA_LEN 4
1649 #define MCDI_EVENT_LINKCHANGE_DATA_LEN 4
1653 #define MCDI_EVENT_PORT_LINKCHANGE_DATA_LEN 4
1657 #define MCDI_EVENT_PORT_MODULECHANGE_DATA_LEN 4
1661 #define MCDI_EVENT_SENSOREVT_DATA_LEN 4
1665 #define MCDI_EVENT_MAC_STATS_DMA_GENERATION_LEN 4
1669 #define MCDI_EVENT_TX_ERR_DATA_LEN 4
1672 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the seconds field of
1676 #define MCDI_EVENT_PTP_SECONDS_LEN 4
1679 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the major field of
1683 #define MCDI_EVENT_PTP_MAJOR_LEN 4
1687 * of timestamp
1690 #define MCDI_EVENT_PTP_NANOSECONDS_LEN 4
1693 /* For CODE_PTP_RX, CODE_PTP_PPS and CODE_HW_PPS events the minor field of
1697 #define MCDI_EVENT_PTP_MINOR_LEN 4
1700 /* For CODE_PTP_RX events, the lowest four bytes of sourceUUID from PTP packet
1703 #define MCDI_EVENT_PTP_UUID_LEN 4
1707 #define MCDI_EVENT_RX_ERR_DATA_LEN 4
1711 #define MCDI_EVENT_PAR_ERR_DATA_LEN 4
1715 #define MCDI_EVENT_ECC_CORR_ERR_DATA_LEN 4
1719 #define MCDI_EVENT_ECC_FATAL_ERR_DATA_LEN 4
1722 /* For CODE_PTP_TIME events, the major value of the PTP clock */
1724 #define MCDI_EVENT_PTP_TIME_MAJOR_LEN 4
1727 /* For CODE_PTP_TIME events, bits 19-26 of the minor value of the PTP clock */
1730 /* For CODE_PTP_TIME events, most significant bits of the minor value of the
1731 * PTP clock. This is a more generic equivalent of PTP_TIME_MINOR_26_19.
1739 #define MCDI_EVENT_PTP_TIME_NIC_CLOCK_VALID_WIDTH 1
1744 #define MCDI_EVENT_PTP_TIME_HOST_NIC_IN_SYNC_WIDTH 1
1745 /* For CODE_PTP_TIME events where report sync status is enabled, bits 21-26 of
1746 * the minor value of the PTP clock
1750 /* For CODE_PTP_TIME events, most significant bits of the minor value of the
1751 * PTP clock. This is a more generic equivalent of PTP_TIME_MINOR_26_21.
1756 #define MCDI_EVENT_PROXY_REQUEST_BUFF_INDEX_LEN 4
1760 #define MCDI_EVENT_PROXY_RESPONSE_HANDLE_LEN 4
1764 * should resend it. A non-zero value means that the authorization has been
1770 #define MCDI_EVENT_DBRET_DATA_LEN 4
1774 #define MCDI_EVENT_LINKCHANGE_V2_DATA_LEN 4
1778 #define MCDI_EVENT_MODULECHANGE_DATA_LEN 4
1783 #define MCDI_EVENT_DYNAMIC_SENSORS_GENERATION_LEN 4
1786 /* The handle of a dynamic sensor. */
1788 #define MCDI_EVENT_DYNAMIC_SENSORS_HANDLE_LEN 4
1791 /* The current values of a sensor. */
1793 #define MCDI_EVENT_DYNAMIC_SENSORS_VALUE_LEN 4
1796 /* The current state of a sensor. */
1800 #define MCDI_EVENT_DESC_PROXY_DATA_LEN 4
1803 /* Generation count of applied configuration set */
1805 #define MCDI_EVENT_DESC_PROXY_GENERATION_LEN 4
1808 /* Virtio features negotiated with the host driver. First event (CONT=1)
1812 #define MCDI_EVENT_DESC_PROXY_VIRTIO_FEATURES_LEN 4
1819 * Read multiple 32byte words from MC memory. Note - this command really
1831 #define MC_CMD_READ32_IN_ADDR_LEN 4
1832 #define MC_CMD_READ32_IN_NUMWORDS_OFST 4
1833 #define MC_CMD_READ32_IN_NUMWORDS_LEN 4
1836 #define MC_CMD_READ32_OUT_LENMIN 4
1839 #define MC_CMD_READ32_OUT_LEN(num) (0+4*(num))
1840 #define MC_CMD_READ32_OUT_BUFFER_NUM(len) (((len)-0)/4)
1842 #define MC_CMD_READ32_OUT_BUFFER_LEN 4
1843 #define MC_CMD_READ32_OUT_BUFFER_MINNUM 1
1861 #define MC_CMD_WRITE32_IN_LEN(num) (4+4*(num))
1862 #define MC_CMD_WRITE32_IN_BUFFER_NUM(len) (((len)-4)/4)
1864 #define MC_CMD_WRITE32_IN_ADDR_LEN 4
1865 #define MC_CMD_WRITE32_IN_BUFFER_OFST 4
1866 #define MC_CMD_WRITE32_IN_BUFFER_LEN 4
1867 #define MC_CMD_WRITE32_IN_BUFFER_MINNUM 1
1891 #define MC_CMD_GET_BOOT_STATUS_OUT_BOOT_OFFSET_LEN 4
1894 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_OFST 4
1895 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_LEN 4
1896 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_WATCHDOG_OFST 4
1898 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_WATCHDOG_WIDTH 1
1899 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_PRIMARY_OFST 4
1900 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_PRIMARY_LBN 1
1901 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_PRIMARY_WIDTH 1
1902 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_BACKUP_OFST 4
1904 #define MC_CMD_GET_BOOT_STATUS_OUT_FLAGS_BACKUP_WIDTH 1
1919 #define MC_CMD_GET_ASSERTS_IN_LEN 4
1922 #define MC_CMD_GET_ASSERTS_IN_CLEAR_LEN 4
1928 #define MC_CMD_GET_ASSERTS_OUT_GLOBAL_FLAGS_LEN 4
1931 /* enum: A system-level assertion has failed. */
1933 /* enum: A thread-level assertion has failed. */
1940 #define MC_CMD_GET_ASSERTS_OUT_SAVED_PC_OFFS_OFST 4
1941 #define MC_CMD_GET_ASSERTS_OUT_SAVED_PC_OFFS_LEN 4
1944 #define MC_CMD_GET_ASSERTS_OUT_GP_REGS_OFFS_LEN 4
1946 /* enum: A magic value hinting that the value in this register at the time of
1952 #define MC_CMD_GET_ASSERTS_OUT_THREAD_OFFS_LEN 4
1954 #define MC_CMD_GET_ASSERTS_OUT_RESERVED_LEN 4
1962 #define MC_CMD_GET_ASSERTS_OUT_V2_GLOBAL_FLAGS_LEN 4
1965 /* enum: A system-level assertion has failed. */
1967 /* enum: A thread-level assertion has failed. */
1974 #define MC_CMD_GET_ASSERTS_OUT_V2_SAVED_PC_OFFS_OFST 4
1975 #define MC_CMD_GET_ASSERTS_OUT_V2_SAVED_PC_OFFS_LEN 4
1978 #define MC_CMD_GET_ASSERTS_OUT_V2_GP_REGS_OFFS_LEN 4
1980 /* enum: A magic value hinting that the value in this register at the time of
1986 #define MC_CMD_GET_ASSERTS_OUT_V2_THREAD_OFFS_LEN 4
1988 #define MC_CMD_GET_ASSERTS_OUT_V2_RESERVED_LEN 4
1991 #define MC_CMD_GET_ASSERTS_OUT_V2_SF_REGS_OFFS_LEN 4
2000 #define MC_CMD_GET_ASSERTS_OUT_V3_GLOBAL_FLAGS_LEN 4
2003 /* enum: A system-level assertion has failed. */
2005 /* enum: A thread-level assertion has failed. */
2012 #define MC_CMD_GET_ASSERTS_OUT_V3_SAVED_PC_OFFS_OFST 4
2013 #define MC_CMD_GET_ASSERTS_OUT_V3_SAVED_PC_OFFS_LEN 4
2016 #define MC_CMD_GET_ASSERTS_OUT_V3_GP_REGS_OFFS_LEN 4
2018 /* enum: A magic value hinting that the value in this register at the time of
2024 #define MC_CMD_GET_ASSERTS_OUT_V3_THREAD_OFFS_LEN 4
2026 #define MC_CMD_GET_ASSERTS_OUT_V3_RESERVED_LEN 4
2029 #define MC_CMD_GET_ASSERTS_OUT_V3_SF_REGS_OFFS_LEN 4
2031 /* MC firmware unique build ID (as binary SHA-1 value) */
2038 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_LO_LEN 4
2042 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_BUILD_TIMESTAMP_HI_LEN 4
2049 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_LO_LEN 4
2053 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_VERSION_HI_LEN 4
2058 #define MC_CMD_GET_ASSERTS_OUT_V3_MC_FW_SECURITY_LEVEL_LEN 4
2059 /* MC firmware extra version info (as null-terminated US-ASCII string) */
2062 /* MC firmware build name (as null-terminated US-ASCII string) */
2081 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_LEN 4
2088 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_EVQ_OFST 4
2089 #define MC_CMD_LOG_CTRL_IN_LOG_DEST_EVQ_LEN 4
2108 #define MC_CMD_GET_VERSION_EXT_IN_LEN 4
2111 #define MC_CMD_GET_VERSION_EXT_IN_EXT_FLAGS_LEN 4
2114 #define MC_CMD_GET_VERSION_V0_OUT_LEN 4
2116 #define MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4
2128 /* This is normally the UTC build time in seconds since epoch or one of the
2132 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */
2135 #define MC_CMD_GET_VERSION_OUT_PCOL_OFST 4
2136 #define MC_CMD_GET_VERSION_OUT_PCOL_LEN 4
2137 /* 128bit mask of functions supported by the current firmware */
2143 #define MC_CMD_GET_VERSION_OUT_VERSION_LO_LEN 4
2147 #define MC_CMD_GET_VERSION_OUT_VERSION_HI_LEN 4
2153 /* This is normally the UTC build time in seconds since epoch or one of the
2157 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */
2160 #define MC_CMD_GET_VERSION_EXT_OUT_PCOL_OFST 4
2161 #define MC_CMD_GET_VERSION_EXT_OUT_PCOL_LEN 4
2162 /* 128bit mask of functions supported by the current firmware */
2168 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_LO_LEN 4
2172 #define MC_CMD_GET_VERSION_EXT_OUT_VERSION_HI_LEN 4
2186 /* This is normally the UTC build time in seconds since epoch or one of the
2190 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */
2193 #define MC_CMD_GET_VERSION_V2_OUT_PCOL_OFST 4
2194 #define MC_CMD_GET_VERSION_V2_OUT_PCOL_LEN 4
2195 /* 128bit mask of functions supported by the current firmware */
2201 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_LO_LEN 4
2205 #define MC_CMD_GET_VERSION_V2_OUT_VERSION_HI_LEN 4
2213 #define MC_CMD_GET_VERSION_V2_OUT_FLAGS_LEN 4
2216 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1
2218 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1
2219 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1
2222 #define MC_CMD_GET_VERSION_V2_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1
2225 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1
2227 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_LBN 4
2228 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1
2231 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1
2234 #define MC_CMD_GET_VERSION_V2_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1
2237 #define MC_CMD_GET_VERSION_V2_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1
2240 #define MC_CMD_GET_VERSION_V2_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1
2243 #define MC_CMD_GET_VERSION_V2_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1
2246 #define MC_CMD_GET_VERSION_V2_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1
2249 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_PRESENT_WIDTH 1
2252 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_VERSION_PRESENT_WIDTH 1
2255 #define MC_CMD_GET_VERSION_V2_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1
2256 /* MC firmware unique build ID (as binary SHA-1 value) */
2261 #define MC_CMD_GET_VERSION_V2_OUT_MCFW_SECURITY_LEVEL_LEN 4
2262 /* MC firmware build name (as null-terminated US-ASCII string) */
2265 /* The SUC firmware version as four numbers - a.b.c.d */
2267 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_LEN 4
2268 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_VERSION_NUM 4
2269 /* SUC firmware build date (as 64-bit Unix timestamp) */
2273 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_LO_LEN 4
2277 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_BUILD_DATE_HI_LEN 4
2280 /* The ID of the SUC chip. This is specific to the platform but typically
2281 * indicates family, memory sizes etc. See SF-116728-SW for further details.
2284 #define MC_CMD_GET_VERSION_V2_OUT_SUCFW_CHIP_ID_LEN 4
2285 /* The CMC firmware version as four numbers - a.b.c.d */
2287 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_VERSION_LEN 4
2288 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_VERSION_NUM 4
2289 /* CMC firmware build date (as 64-bit Unix timestamp) */
2293 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_LO_LEN 4
2297 #define MC_CMD_GET_VERSION_V2_OUT_CMCFW_BUILD_DATE_HI_LEN 4
2302 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1
2303 * => B, ...) FPGA_VERSION[2]: Sub-revision number
2306 #define MC_CMD_GET_VERSION_V2_OUT_FPGA_VERSION_LEN 4
2308 /* Extra FPGA revision information (as null-terminated US-ASCII string) */
2311 /* Board name / adapter model (as null-terminated US-ASCII string) */
2316 #define MC_CMD_GET_VERSION_V2_OUT_BOARD_REVISION_LEN 4
2317 /* Board serial number (as null-terminated US-ASCII string) */
2328 /* This is normally the UTC build time in seconds since epoch or one of the
2332 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */
2335 #define MC_CMD_GET_VERSION_V3_OUT_PCOL_OFST 4
2336 #define MC_CMD_GET_VERSION_V3_OUT_PCOL_LEN 4
2337 /* 128bit mask of functions supported by the current firmware */
2343 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_LO_LEN 4
2347 #define MC_CMD_GET_VERSION_V3_OUT_VERSION_HI_LEN 4
2355 #define MC_CMD_GET_VERSION_V3_OUT_FLAGS_LEN 4
2358 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1
2360 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1
2361 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1
2364 #define MC_CMD_GET_VERSION_V3_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1
2367 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1
2369 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_EXT_INFO_PRESENT_LBN 4
2370 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1
2373 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1
2376 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1
2379 #define MC_CMD_GET_VERSION_V3_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1
2382 #define MC_CMD_GET_VERSION_V3_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1
2385 #define MC_CMD_GET_VERSION_V3_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1
2388 #define MC_CMD_GET_VERSION_V3_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1
2391 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_PRESENT_WIDTH 1
2394 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_VERSION_PRESENT_WIDTH 1
2397 #define MC_CMD_GET_VERSION_V3_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1
2398 /* MC firmware unique build ID (as binary SHA-1 value) */
2403 #define MC_CMD_GET_VERSION_V3_OUT_MCFW_SECURITY_LEVEL_LEN 4
2404 /* MC firmware build name (as null-terminated US-ASCII string) */
2407 /* The SUC firmware version as four numbers - a.b.c.d */
2409 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_LEN 4
2410 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_VERSION_NUM 4
2411 /* SUC firmware build date (as 64-bit Unix timestamp) */
2415 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_LO_LEN 4
2419 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_BUILD_DATE_HI_LEN 4
2422 /* The ID of the SUC chip. This is specific to the platform but typically
2423 * indicates family, memory sizes etc. See SF-116728-SW for further details.
2426 #define MC_CMD_GET_VERSION_V3_OUT_SUCFW_CHIP_ID_LEN 4
2427 /* The CMC firmware version as four numbers - a.b.c.d */
2429 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_VERSION_LEN 4
2430 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_VERSION_NUM 4
2431 /* CMC firmware build date (as 64-bit Unix timestamp) */
2435 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_LO_LEN 4
2439 #define MC_CMD_GET_VERSION_V3_OUT_CMCFW_BUILD_DATE_HI_LEN 4
2444 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1
2445 * => B, ...) FPGA_VERSION[2]: Sub-revision number
2448 #define MC_CMD_GET_VERSION_V3_OUT_FPGA_VERSION_LEN 4
2450 /* Extra FPGA revision information (as null-terminated US-ASCII string) */
2453 /* Board name / adapter model (as null-terminated US-ASCII string) */
2458 #define MC_CMD_GET_VERSION_V3_OUT_BOARD_REVISION_LEN 4
2459 /* Board serial number (as null-terminated US-ASCII string) */
2462 /* The version of the datapath hardware design as three number - a.b.c */
2464 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_HW_VERSION_LEN 4
2466 /* The version of the firmware library used to control the datapath as three
2467 * number - a.b.c
2470 #define MC_CMD_GET_VERSION_V3_OUT_DATAPATH_FW_VERSION_LEN 4
2477 /* This is normally the UTC build time in seconds since epoch or one of the
2481 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */
2484 #define MC_CMD_GET_VERSION_V4_OUT_PCOL_OFST 4
2485 #define MC_CMD_GET_VERSION_V4_OUT_PCOL_LEN 4
2486 /* 128bit mask of functions supported by the current firmware */
2492 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_LO_LEN 4
2496 #define MC_CMD_GET_VERSION_V4_OUT_VERSION_HI_LEN 4
2504 #define MC_CMD_GET_VERSION_V4_OUT_FLAGS_LEN 4
2507 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1
2509 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1
2510 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1
2513 #define MC_CMD_GET_VERSION_V4_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1
2516 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1
2518 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_EXT_INFO_PRESENT_LBN 4
2519 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1
2522 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1
2525 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1
2528 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1
2531 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1
2534 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1
2537 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1
2540 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_PRESENT_WIDTH 1
2543 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_VERSION_PRESENT_WIDTH 1
2546 #define MC_CMD_GET_VERSION_V4_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1
2547 /* MC firmware unique build ID (as binary SHA-1 value) */
2552 #define MC_CMD_GET_VERSION_V4_OUT_MCFW_SECURITY_LEVEL_LEN 4
2553 /* MC firmware build name (as null-terminated US-ASCII string) */
2556 /* The SUC firmware version as four numbers - a.b.c.d */
2558 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_LEN 4
2559 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_VERSION_NUM 4
2560 /* SUC firmware build date (as 64-bit Unix timestamp) */
2564 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_LO_LEN 4
2568 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_BUILD_DATE_HI_LEN 4
2571 /* The ID of the SUC chip. This is specific to the platform but typically
2572 * indicates family, memory sizes etc. See SF-116728-SW for further details.
2575 #define MC_CMD_GET_VERSION_V4_OUT_SUCFW_CHIP_ID_LEN 4
2576 /* The CMC firmware version as four numbers - a.b.c.d */
2578 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_VERSION_LEN 4
2579 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_VERSION_NUM 4
2580 /* CMC firmware build date (as 64-bit Unix timestamp) */
2584 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_LO_LEN 4
2588 #define MC_CMD_GET_VERSION_V4_OUT_CMCFW_BUILD_DATE_HI_LEN 4
2593 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1
2594 * => B, ...) FPGA_VERSION[2]: Sub-revision number
2597 #define MC_CMD_GET_VERSION_V4_OUT_FPGA_VERSION_LEN 4
2599 /* Extra FPGA revision information (as null-terminated US-ASCII string) */
2602 /* Board name / adapter model (as null-terminated US-ASCII string) */
2607 #define MC_CMD_GET_VERSION_V4_OUT_BOARD_REVISION_LEN 4
2608 /* Board serial number (as null-terminated US-ASCII string) */
2611 /* The version of the datapath hardware design as three number - a.b.c */
2613 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_HW_VERSION_LEN 4
2615 /* The version of the firmware library used to control the datapath as three
2616 * number - a.b.c
2619 #define MC_CMD_GET_VERSION_V4_OUT_DATAPATH_FW_VERSION_LEN 4
2621 /* The SOC boot version as four numbers - a.b.c.d */
2623 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_LEN 4
2624 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_NUM 4
2625 /* The SOC uboot version as four numbers - a.b.c.d */
2627 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_LEN 4
2628 #define MC_CMD_GET_VERSION_V4_OUT_SOC_UBOOT_VERSION_NUM 4
2629 /* The SOC main rootfs version as four numbers - a.b.c.d */
2631 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_LEN 4
2632 #define MC_CMD_GET_VERSION_V4_OUT_SOC_MAIN_ROOTFS_VERSION_NUM 4
2633 /* The SOC recovery buildroot version as four numbers - a.b.c.d */
2635 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_LEN 4
2636 #define MC_CMD_GET_VERSION_V4_OUT_SOC_RECOVERY_BUILDROOT_VERSION_NUM 4
2642 /* This is normally the UTC build time in seconds since epoch or one of the
2646 /* MC_CMD_GET_VERSION_OUT_FIRMWARE_LEN 4 */
2649 #define MC_CMD_GET_VERSION_V5_OUT_PCOL_OFST 4
2650 #define MC_CMD_GET_VERSION_V5_OUT_PCOL_LEN 4
2651 /* 128bit mask of functions supported by the current firmware */
2657 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_LO_LEN 4
2661 #define MC_CMD_GET_VERSION_V5_OUT_VERSION_HI_LEN 4
2669 #define MC_CMD_GET_VERSION_V5_OUT_FLAGS_LEN 4
2672 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_EXT_INFO_PRESENT_WIDTH 1
2674 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_EXT_INFO_PRESENT_LBN 1
2675 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_EXT_INFO_PRESENT_WIDTH 1
2678 #define MC_CMD_GET_VERSION_V5_OUT_CMC_EXT_INFO_PRESENT_WIDTH 1
2681 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_EXT_INFO_PRESENT_WIDTH 1
2683 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_EXT_INFO_PRESENT_LBN 4
2684 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_EXT_INFO_PRESENT_WIDTH 1
2687 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_PRESENT_WIDTH 1
2690 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_PRESENT_WIDTH 1
2693 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_PRESENT_WIDTH 1
2696 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_PRESENT_WIDTH 1
2699 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_PRESENT_WIDTH 1
2702 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_PRESENT_WIDTH 1
2705 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_PRESENT_WIDTH 1
2708 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_PRESENT_WIDTH 1
2711 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_PRESENT_WIDTH 1
2712 /* MC firmware unique build ID (as binary SHA-1 value) */
2717 #define MC_CMD_GET_VERSION_V5_OUT_MCFW_SECURITY_LEVEL_LEN 4
2718 /* MC firmware build name (as null-terminated US-ASCII string) */
2721 /* The SUC firmware version as four numbers - a.b.c.d */
2723 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_LEN 4
2724 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_VERSION_NUM 4
2725 /* SUC firmware build date (as 64-bit Unix timestamp) */
2729 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_LO_LEN 4
2733 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_BUILD_DATE_HI_LEN 4
2736 /* The ID of the SUC chip. This is specific to the platform but typically
2737 * indicates family, memory sizes etc. See SF-116728-SW for further details.
2740 #define MC_CMD_GET_VERSION_V5_OUT_SUCFW_CHIP_ID_LEN 4
2741 /* The CMC firmware version as four numbers - a.b.c.d */
2743 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_VERSION_LEN 4
2744 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_VERSION_NUM 4
2745 /* CMC firmware build date (as 64-bit Unix timestamp) */
2749 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_LO_LEN 4
2753 #define MC_CMD_GET_VERSION_V5_OUT_CMCFW_BUILD_DATE_HI_LEN 4
2758 * FPGA_VERSION[0]: x => Image H{x} FPGA_VERSION[1]: Revision letter (0 => A, 1
2759 * => B, ...) FPGA_VERSION[2]: Sub-revision number
2762 #define MC_CMD_GET_VERSION_V5_OUT_FPGA_VERSION_LEN 4
2764 /* Extra FPGA revision information (as null-terminated US-ASCII string) */
2767 /* Board name / adapter model (as null-terminated US-ASCII string) */
2772 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_REVISION_LEN 4
2773 /* Board serial number (as null-terminated US-ASCII string) */
2776 /* The version of the datapath hardware design as three number - a.b.c */
2778 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_HW_VERSION_LEN 4
2780 /* The version of the firmware library used to control the datapath as three
2781 * number - a.b.c
2784 #define MC_CMD_GET_VERSION_V5_OUT_DATAPATH_FW_VERSION_LEN 4
2786 /* The SOC boot version as four numbers - a.b.c.d */
2788 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_LEN 4
2789 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_NUM 4
2790 /* The SOC uboot version as four numbers - a.b.c.d */
2792 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_LEN 4
2793 #define MC_CMD_GET_VERSION_V5_OUT_SOC_UBOOT_VERSION_NUM 4
2794 /* The SOC main rootfs version as four numbers - a.b.c.d */
2796 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_LEN 4
2797 #define MC_CMD_GET_VERSION_V5_OUT_SOC_MAIN_ROOTFS_VERSION_NUM 4
2798 /* The SOC recovery buildroot version as four numbers - a.b.c.d */
2800 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_LEN 4
2801 #define MC_CMD_GET_VERSION_V5_OUT_SOC_RECOVERY_BUILDROOT_VERSION_NUM 4
2802 /* Board version as four numbers - a.b.c.d. BOARD_VERSION[0] duplicates the
2806 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_LEN 4
2807 #define MC_CMD_GET_VERSION_V5_OUT_BOARD_VERSION_NUM 4
2808 /* Bundle version as four numbers - a.b.c.d */
2810 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_LEN 4
2811 #define MC_CMD_GET_VERSION_V5_OUT_BUNDLE_VERSION_NUM 4
2824 #define MC_CMD_PTP_IN_LEN 1
2827 #define MC_CMD_PTP_IN_OP_LEN 1
2851 /* enum: Reset some of the PTP related statistics */
2879 /* enum: Reset value of Timer Reg. Not implemented. */
2881 /* enum: Enable the forwarding of PPS events to the host */
2885 /* enum: Get the clock attributes. NOTE- extended version of
2907 /* enum: X4 and later adapters should use this instead of
2923 #define MC_CMD_PTP_IN_CMD_LEN 4
2924 #define MC_CMD_PTP_IN_PERIPH_ID_OFST 4
2925 #define MC_CMD_PTP_IN_PERIPH_ID_LEN 4
2930 #define MC_CMD_PTP_IN_ENABLE_QUEUE_LEN 4
2933 #define MC_CMD_PTP_IN_ENABLE_MODE_LEN 4
2934 /* enum: PTP, version 1 */
2936 /* enum: PTP, version 1, with VLAN headers - deprecated */
2940 /* enum: PTP, version 2, with VLAN headers - deprecated */
2950 /* MC_CMD_PTP_IN_CMD_LEN 4 */
2951 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
2952 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
2958 #define MC_CMD_PTP_IN_TRANSMIT_LEN(num) (12+1*(num))
2959 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_NUM(len) (((len)-12)/1)
2961 /* MC_CMD_PTP_IN_CMD_LEN 4 */
2962 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
2963 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
2966 #define MC_CMD_PTP_IN_TRANSMIT_LENGTH_LEN 4
2969 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_LEN 1
2970 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_MINNUM 1
2977 /* MC_CMD_PTP_IN_CMD_LEN 4 */
2978 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
2979 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
2984 /* MC_CMD_PTP_IN_CMD_LEN 4 */
2985 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
2986 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
2991 /* MC_CMD_PTP_IN_CMD_LEN 4 */
2992 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
2993 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
2998 /* MC_CMD_PTP_IN_CMD_LEN 4 */
2999 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3000 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3005 #define MC_CMD_PTP_IN_ADJUST_FREQ_LO_LEN 4
3009 #define MC_CMD_PTP_IN_ADJUST_FREQ_HI_LEN 4
3012 /* enum: Number of fractional bits in frequency adjustment */
3014 /* enum: Number of fractional bits in frequency adjustment when FP44_FREQ_ADJ
3021 #define MC_CMD_PTP_IN_ADJUST_SECONDS_LEN 4
3024 #define MC_CMD_PTP_IN_ADJUST_MAJOR_LEN 4
3027 #define MC_CMD_PTP_IN_ADJUST_NANOSECONDS_LEN 4
3030 #define MC_CMD_PTP_IN_ADJUST_MINOR_LEN 4
3035 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3036 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3037 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3042 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_LO_LEN 4
3046 #define MC_CMD_PTP_IN_ADJUST_V2_FREQ_HI_LEN 4
3049 /* enum: Number of fractional bits in frequency adjustment */
3051 /* enum: Number of fractional bits in frequency adjustment when FP44_FREQ_ADJ
3058 #define MC_CMD_PTP_IN_ADJUST_V2_SECONDS_LEN 4
3061 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_LEN 4
3064 #define MC_CMD_PTP_IN_ADJUST_V2_NANOSECONDS_LEN 4
3067 #define MC_CMD_PTP_IN_ADJUST_V2_MINOR_LEN 4
3068 /* Upper 32bits of major time offset adjustment */
3070 #define MC_CMD_PTP_IN_ADJUST_V2_MAJOR_HI_LEN 4
3075 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3076 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3077 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3078 /* Number of time readings to capture */
3080 #define MC_CMD_PTP_IN_SYNCHRONIZE_NUMTIMESETS_LEN 4
3087 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_LO_LEN 4
3091 #define MC_CMD_PTP_IN_SYNCHRONIZE_START_ADDR_HI_LEN 4
3098 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3099 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3100 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3105 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3106 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3107 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3110 #define MC_CMD_PTP_IN_MANFTEST_PACKET_TEST_ENABLE_LEN 4
3115 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3116 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3117 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3122 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3123 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3124 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3127 #define MC_CMD_PTP_IN_DEBUG_DEBUG_PARAM_LEN 4
3132 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3133 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3134 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3136 #define MC_CMD_PTP_IN_FPGAREAD_ADDR_LEN 4
3138 #define MC_CMD_PTP_IN_FPGAREAD_NUMBYTES_LEN 4
3144 #define MC_CMD_PTP_IN_FPGAWRITE_LEN(num) (12+1*(num))
3145 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_NUM(len) (((len)-12)/1)
3147 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3148 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3149 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3151 #define MC_CMD_PTP_IN_FPGAWRITE_ADDR_LEN 4
3153 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_LEN 1
3154 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_MINNUM 1
3161 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3162 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3163 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3166 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_SECONDS_LEN 4
3169 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MAJOR_LEN 4
3172 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_NANOSECONDS_LEN 4
3175 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_MINOR_LEN 4
3180 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3181 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3182 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3185 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_SECONDS_LEN 4
3188 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_LEN 4
3191 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_NANOSECONDS_LEN 4
3194 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MINOR_LEN 4
3195 /* Upper 32bits of major time offset adjustment */
3197 #define MC_CMD_PTP_IN_CLOCK_OFFSET_ADJUST_V2_MAJOR_HI_LEN 4
3202 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3203 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3204 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3209 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_LO_LEN 4
3213 #define MC_CMD_PTP_IN_CLOCK_FREQ_ADJUST_FREQ_HI_LEN 4
3222 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3223 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3224 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3225 /* Number of VLAN tags, 0 if not VLAN */
3227 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_NUM_VLAN_TAGS_LEN 4
3228 /* Set of VLAN tags to filter against */
3230 #define MC_CMD_PTP_IN_RX_SET_VLAN_FILTER_VLAN_TAG_LEN 4
3236 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3237 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3238 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3239 /* 1 to enable UUID filtering, 0 to disable */
3241 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_ENABLE_LEN 4
3246 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_LO_LEN 4
3250 #define MC_CMD_PTP_IN_RX_SET_UUID_FILTER_UUID_HI_LEN 4
3257 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3258 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3259 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3260 /* 1 to enable Domain filtering, 0 to disable */
3262 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_ENABLE_LEN 4
3265 #define MC_CMD_PTP_IN_RX_SET_DOMAIN_FILTER_DOMAIN_LEN 4
3270 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3271 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3272 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3275 #define MC_CMD_PTP_IN_SET_CLK_SRC_CLK_LEN 4
3281 /* MC_CMD_PTP_IN_RST_CLK msgrequest: Reset value of Timer Reg. */
3284 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3285 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3286 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3291 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3293 #define MC_CMD_PTP_IN_PPS_ENABLE_OP_OFST 4
3294 #define MC_CMD_PTP_IN_PPS_ENABLE_OP_LEN 4
3303 #define MC_CMD_PTP_IN_PPS_ENABLE_QUEUE_ID_LEN 4
3308 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3309 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3310 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3315 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3316 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3317 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3322 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3323 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3324 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3329 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3330 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3331 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3334 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_QUEUE_LEN 4
3340 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_REPORT_SYNC_STATUS_WIDTH 1
3345 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3346 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3347 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3350 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_CONTROL_LEN 4
3357 #define MC_CMD_PTP_IN_TIME_EVENT_UNSUBSCRIBE_QUEUE_LEN 4
3362 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3363 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3364 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3367 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_V2_QUEUE_ID_LEN 4
3370 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_V2_FLAGS_LEN 4
3373 #define MC_CMD_PTP_IN_TIME_EVENT_SUBSCRIBE_V2_REPORT_SYNC_STATUS_WIDTH 1
3378 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3379 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3380 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3381 /* 1 to enable PPS test mode, 0 to disable and return result. */
3383 #define MC_CMD_PTP_IN_MANFTEST_PPS_TEST_ENABLE_LEN 4
3388 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3389 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3390 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3391 /* NIC - Host System Clock Synchronization status */
3393 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_STATUS_LEN 4
3398 /* If synchronized, number of seconds until clocks should be considered to be
3402 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_TIMEOUT_LEN 4
3404 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED0_LEN 4
3406 #define MC_CMD_PTP_IN_SET_SYNC_STATUS_RESERVED1_LEN 4
3411 /* MC_CMD_PTP_IN_CMD_LEN 4 */
3412 /* MC_CMD_PTP_IN_PERIPH_ID_OFST 4 */
3413 /* MC_CMD_PTP_IN_PERIPH_ID_LEN 4 */
3420 /* Value of seconds timestamp */
3422 #define MC_CMD_PTP_OUT_TRANSMIT_SECONDS_LEN 4
3425 #define MC_CMD_PTP_OUT_TRANSMIT_MAJOR_LEN 4
3426 /* Value of nanoseconds timestamp */
3427 #define MC_CMD_PTP_OUT_TRANSMIT_NANOSECONDS_OFST 4
3428 #define MC_CMD_PTP_OUT_TRANSMIT_NANOSECONDS_LEN 4
3430 #define MC_CMD_PTP_OUT_TRANSMIT_MINOR_OFST 4
3431 #define MC_CMD_PTP_OUT_TRANSMIT_MINOR_LEN 4
3441 /* Value of seconds timestamp */
3443 #define MC_CMD_PTP_OUT_READ_NIC_TIME_SECONDS_LEN 4
3446 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MAJOR_LEN 4
3447 /* Value of nanoseconds timestamp */
3448 #define MC_CMD_PTP_OUT_READ_NIC_TIME_NANOSECONDS_OFST 4
3449 #define MC_CMD_PTP_OUT_READ_NIC_TIME_NANOSECONDS_LEN 4
3451 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MINOR_OFST 4
3452 #define MC_CMD_PTP_OUT_READ_NIC_TIME_MINOR_LEN 4
3456 /* Value of seconds timestamp */
3458 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_SECONDS_LEN 4
3461 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_LEN 4
3462 /* Value of nanoseconds timestamp */
3463 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_NANOSECONDS_OFST 4
3464 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_NANOSECONDS_LEN 4
3466 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MINOR_OFST 4
3467 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MINOR_LEN 4
3468 /* Upper 32bits of major timestamp value */
3470 #define MC_CMD_PTP_OUT_READ_NIC_TIME_V2_MAJOR_HI_LEN 4
3474 /* Frequency of NIC's hardware clock */
3476 #define MC_CMD_PTP_OUT_STATUS_CLOCK_FREQ_LEN 4
3477 /* Number of packets transmitted and timestamped */
3478 #define MC_CMD_PTP_OUT_STATUS_STATS_TX_OFST 4
3479 #define MC_CMD_PTP_OUT_STATUS_STATS_TX_LEN 4
3480 /* Number of packets received and timestamped */
3482 #define MC_CMD_PTP_OUT_STATUS_STATS_RX_LEN 4
3483 /* Number of packets timestamped by the FPGA */
3485 #define MC_CMD_PTP_OUT_STATUS_STATS_TS_LEN 4
3486 /* Number of packets filter matched */
3488 #define MC_CMD_PTP_OUT_STATUS_STATS_FM_LEN 4
3489 /* Number of packets not filter matched */
3491 #define MC_CMD_PTP_OUT_STATUS_STATS_NFM_LEN 4
3492 /* Number of PPS overflows (noise on input?) */
3494 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFLOW_LEN 4
3495 /* Number of PPS bad periods */
3497 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_BAD_LEN 4
3498 /* Minimum period of PPS pulse in nanoseconds */
3500 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MIN_LEN 4
3501 /* Maximum period of PPS pulse in nanoseconds */
3503 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MAX_LEN 4
3504 /* Last period of PPS pulse in nanoseconds */
3506 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_LAST_LEN 4
3507 /* Mean period of PPS pulse in nanoseconds */
3509 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_PER_MEAN_LEN 4
3510 /* Minimum offset of PPS pulse in nanoseconds (signed) */
3512 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MIN_LEN 4
3513 /* Maximum offset of PPS pulse in nanoseconds (signed) */
3515 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MAX_LEN 4
3516 /* Last offset of PPS pulse in nanoseconds (signed) */
3518 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_LAST_LEN 4
3519 /* Mean offset of PPS pulse in nanoseconds (signed) */
3521 #define MC_CMD_PTP_OUT_STATUS_STATS_PPS_OFF_MEAN_LEN 4
3528 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_NUM(len) (((len)-0)/20)
3529 /* A set of host and NIC times */
3532 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_MINNUM 1
3537 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTSTART_LEN 4
3538 /* Value of seconds timestamp */
3539 #define MC_CMD_PTP_OUT_SYNCHRONIZE_SECONDS_OFST 4
3540 #define MC_CMD_PTP_OUT_SYNCHRONIZE_SECONDS_LEN 4
3542 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MAJOR_OFST 4
3543 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MAJOR_LEN 4
3544 /* Value of nanoseconds timestamp */
3546 #define MC_CMD_PTP_OUT_SYNCHRONIZE_NANOSECONDS_LEN 4
3549 #define MC_CMD_PTP_OUT_SYNCHRONIZE_MINOR_LEN 4
3552 #define MC_CMD_PTP_OUT_SYNCHRONIZE_HOSTEND_LEN 4
3553 /* Number of nanoseconds waited after reading NIC's hardware clock */
3555 #define MC_CMD_PTP_OUT_SYNCHRONIZE_WAITNS_LEN 4
3559 /* Results of testing */
3561 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_RESULT_LEN 4
3584 /* enum: PPS time event period not sufficiently close to 1s. */
3592 /* Presence of external oscillator */
3593 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_EXTOSC_OFST 4
3594 #define MC_CMD_PTP_OUT_MANFTEST_BASIC_TEST_EXTOSC_LEN 4
3598 /* Results of testing */
3600 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_RESULT_LEN 4
3601 /* Number of packets received by FPGA */
3602 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FPGACOUNT_OFST 4
3603 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FPGACOUNT_LEN 4
3604 /* Number of packets received by Siena filters */
3606 #define MC_CMD_PTP_OUT_MANFTEST_PACKET_TEST_FILTERCOUNT_LEN 4
3609 #define MC_CMD_PTP_OUT_FPGAREAD_LENMIN 1
3612 #define MC_CMD_PTP_OUT_FPGAREAD_LEN(num) (0+1*(num))
3613 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_NUM(len) (((len)-0)/1)
3615 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_LEN 1
3616 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_MINNUM 1
3621 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_LEN 4
3624 * is not supported (older firmware) a format of seconds and nanoseconds should
3625 * be assumed. Note this enum is deprecated. Do not add to it- use the
3629 #define MC_CMD_PTP_OUT_GET_TIME_FORMAT_FORMAT_LEN 4
3632 /* enum: Major register has units of 16 second per tick, minor 8 ns per tick */
3634 /* enum: Major register has units of seconds, minor 2^-27s per tick */
3641 * is not supported (older firmware) a format of seconds and nanoseconds should
3645 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_TIME_FORMAT_LEN 4
3648 /* enum: Major register has units of 16 second per tick, minor 8 ns per tick */
3650 /* enum: Major register has units of seconds, minor 2^-27s per tick */
3656 * comparing host and NIC clock times, the MC returns a set of samples that
3662 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SYNC_WINDOW_MIN_OFST 4
3663 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_SYNC_WINDOW_MIN_LEN 4
3666 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_CAPABILITIES_LEN 4
3669 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_REPORT_SYNC_STATUS_WIDTH 1
3671 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RX_TSTAMP_OOB_LBN 1
3672 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RX_TSTAMP_OOB_WIDTH 1
3675 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_64BIT_SECONDS_WIDTH 1
3678 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_FP44_FREQ_ADJ_WIDTH 1
3680 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED0_LEN 4
3682 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED1_LEN 4
3684 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_RESERVED2_LEN 4
3690 * is not supported (older firmware) a format of seconds and nanoseconds should
3694 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_TIME_FORMAT_LEN 4
3697 /* enum: Major register has units of 16 second per tick, minor 8 ns per tick */
3699 /* enum: Major register has units of seconds, minor 2^-27s per tick */
3705 * comparing host and NIC clock times, the MC returns a set of samples that
3711 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SYNC_WINDOW_MIN_OFST 4
3712 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_SYNC_WINDOW_MIN_LEN 4
3715 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_CAPABILITIES_LEN 4
3718 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_REPORT_SYNC_STATUS_WIDTH 1
3720 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RX_TSTAMP_OOB_LBN 1
3721 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RX_TSTAMP_OOB_WIDTH 1
3724 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_64BIT_SECONDS_WIDTH 1
3727 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FP44_FREQ_ADJ_WIDTH 1
3729 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED0_LEN 4
3731 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED1_LEN 4
3733 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_RESERVED2_LEN 4
3737 * response is not supported a value of -0.1 ns should be assumed, which is
3738 * equivalent to a -10% adjustment.
3743 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_LO_LEN 4
3747 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MIN_HI_LEN 4
3753 * response is not supported a value of 0.1 ns should be assumed, which is
3759 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_LO_LEN 4
3763 #define MC_CMD_PTP_OUT_GET_ATTRIBUTES_V2_FREQ_ADJ_MAX_HI_LEN 4
3771 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_TRANSMIT_LEN 4
3773 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_RECEIVE_OFST 4
3774 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_RECEIVE_LEN 4
3777 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_OUT_LEN 4
3780 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_PPS_IN_LEN 4
3786 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_TX_LEN 4
3788 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_RX_OFST 4
3789 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PTP_RX_LEN 4
3792 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_OUT_LEN 4
3795 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_PPS_IN_LEN 4
3796 /* Uncorrected error on non-PTP transmit timestamps in NIC clock format */
3798 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_TX_LEN 4
3799 /* Uncorrected error on non-PTP receive timestamps in NIC clock format */
3801 #define MC_CMD_PTP_OUT_GET_TIMESTAMP_CORRECTIONS_V2_GENERAL_RX_LEN 4
3804 #define MC_CMD_PTP_OUT_MANFTEST_PPS_LEN 4
3805 /* Results of testing */
3807 #define MC_CMD_PTP_OUT_MANFTEST_PPS_TEST_RESULT_LEN 4
3818 #define MC_CMD_PTP_OUT_GET_SYNC_TIMEOUT_CURRENT_LEN 4
3820 #define MC_CMD_PTP_OUT_GET_SYNC_TIMEOUT_MAXIMUM_OFST 4
3821 #define MC_CMD_PTP_OUT_GET_SYNC_TIMEOUT_MAXIMUM_LEN 4
3841 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_NUM(len) (((len)-72)/2)
3843 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_TYPE_LEN 4
3844 #define MC_CMD_GET_BOARD_CFG_OUT_BOARD_NAME_OFST 4
3850 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT0_LEN 4
3855 #define MC_CMD_GET_BOARD_CFG_OUT_CAPABILITIES_PORT1_LEN 4
3866 /* Size of MAC address pool for Siena Port0. Unused on EF10 and later (use
3870 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT0_LEN 4
3871 /* Size of MAC address pool for Siena Port1. Unused on EF10 and later (use
3875 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_COUNT_PORT1_LEN 4
3880 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT0_LEN 4
3885 #define MC_CMD_GET_BOARD_CFG_OUT_MAC_STRIDE_PORT1_LEN 4
3886 /* Siena only. This field contains a 16-bit value for each of the types of
3889 * by the driver to manage selection of appropriate firmware updates. Unused on
3915 /* new state to set if UPDATE=1 */
3917 #define MC_CMD_DRV_ATTACH_IN_NEW_STATE_LEN 4
3920 #define MC_CMD_DRV_ATTACH_WIDTH 1
3923 #define MC_CMD_DRV_ATTACH_IN_ATTACH_WIDTH 1
3925 #define MC_CMD_DRV_PREBOOT_LBN 1
3926 #define MC_CMD_DRV_PREBOOT_WIDTH 1
3928 #define MC_CMD_DRV_ATTACH_IN_PREBOOT_LBN 1
3929 #define MC_CMD_DRV_ATTACH_IN_PREBOOT_WIDTH 1
3932 #define MC_CMD_DRV_ATTACH_IN_SUBVARIANT_AWARE_WIDTH 1
3935 #define MC_CMD_DRV_ATTACH_IN_WANT_VI_SPREADING_WIDTH 1
3937 #define MC_CMD_DRV_ATTACH_IN_WANT_V2_LINKCHANGES_LBN 4
3938 #define MC_CMD_DRV_ATTACH_IN_WANT_V2_LINKCHANGES_WIDTH 1
3941 #define MC_CMD_DRV_ATTACH_IN_WANT_RX_VI_SPREADING_INHIBIT_WIDTH 1
3944 #define MC_CMD_DRV_ATTACH_IN_WANT_TX_ONLY_SPREADING_WIDTH 1
3945 /* 1 to set new state, or 0 to just report the existing state */
3946 #define MC_CMD_DRV_ATTACH_IN_UPDATE_OFST 4
3947 #define MC_CMD_DRV_ATTACH_IN_UPDATE_LEN 4
3950 #define MC_CMD_DRV_ATTACH_IN_FIRMWARE_ID_LEN 4
3969 /* enum: Prefer to use "l3xudp" custom datapath firmware (see SF-119495-PD and
3976 * (i.e. non-production) builds.
3979 /* enum: Only this option is allowed for non-admin functions */
3986 /* new state to set if UPDATE=1 */
3988 #define MC_CMD_DRV_ATTACH_IN_V2_NEW_STATE_LEN 4
3991 /* MC_CMD_DRV_ATTACH_WIDTH 1 */
3994 #define MC_CMD_DRV_ATTACH_IN_V2_ATTACH_WIDTH 1
3996 /* MC_CMD_DRV_PREBOOT_LBN 1 */
3997 /* MC_CMD_DRV_PREBOOT_WIDTH 1 */
3999 #define MC_CMD_DRV_ATTACH_IN_V2_PREBOOT_LBN 1
4000 #define MC_CMD_DRV_ATTACH_IN_V2_PREBOOT_WIDTH 1
4003 #define MC_CMD_DRV_ATTACH_IN_V2_SUBVARIANT_AWARE_WIDTH 1
4006 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_VI_SPREADING_WIDTH 1
4008 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_V2_LINKCHANGES_LBN 4
4009 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_V2_LINKCHANGES_WIDTH 1
4012 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_RX_VI_SPREADING_INHIBIT_WIDTH 1
4015 #define MC_CMD_DRV_ATTACH_IN_V2_WANT_TX_ONLY_SPREADING_WIDTH 1
4016 /* 1 to set new state, or 0 to just report the existing state */
4017 #define MC_CMD_DRV_ATTACH_IN_V2_UPDATE_OFST 4
4018 #define MC_CMD_DRV_ATTACH_IN_V2_UPDATE_LEN 4
4021 #define MC_CMD_DRV_ATTACH_IN_V2_FIRMWARE_ID_LEN 4
4040 /* enum: Prefer to use "l3xudp" custom datapath firmware (see SF-119495-PD and
4047 * (i.e. non-production) builds.
4050 /* enum: Only this option is allowed for non-admin functions */
4052 /* Version of the driver to be reported by management protocols (e.g. NC-SI)
4053 * handled by the NIC. This is a zero-terminated ASCII string.
4059 #define MC_CMD_DRV_ATTACH_OUT_LEN 4
4062 #define MC_CMD_DRV_ATTACH_OUT_OLD_STATE_LEN 4
4068 #define MC_CMD_DRV_ATTACH_EXT_OUT_OLD_STATE_LEN 4
4070 #define MC_CMD_DRV_ATTACH_EXT_OUT_FUNC_FLAGS_OFST 4
4071 #define MC_CMD_DRV_ATTACH_EXT_OUT_FUNC_FLAGS_LEN 4
4073 /* enum: Labels the lowest-numbered function visible to the OS */
4075 /* enum: The function can control the link state of the physical port it is
4086 * indicate the current state, regardless of the value in the WANT_VI_SPREADING
4092 /* enum: If set, indicates that TX only spreading is enabled. Even-numbered
4093 * TXQs will use one engine, and odd-numbered TXQs will use the other. This
4094 * also has the effect that only even-numbered RXQs will receive traffic.
4101 * Generic per-port reset. There is no equivalent for per-board reset. Locks
4102 * required: None; Return code: 0, ETIME. NOTE: This command is deprecated -
4119 * Generic per-resource reset. There is no equivalent for per-board reset.
4121 * extended version of the deprecated MC_CMD_PORT_RESET with added fields.
4127 #define MC_CMD_ENTITY_RESET_IN_LEN 4
4132 #define MC_CMD_ENTITY_RESET_IN_FLAG_LEN 4
4135 #define MC_CMD_ENTITY_RESET_IN_FUNCTION_RESOURCE_RESET_WIDTH 1
4143 * Copy the given ASCII string out onto UART and/or out of the network port.
4154 #define MC_CMD_PUTS_IN_LEN(num) (12+1*(num))
4155 #define MC_CMD_PUTS_IN_STRING_NUM(len) (((len)-12)/1)
4157 #define MC_CMD_PUTS_IN_DEST_LEN 4
4160 #define MC_CMD_PUTS_IN_UART_WIDTH 1
4162 #define MC_CMD_PUTS_IN_PORT_LBN 1
4163 #define MC_CMD_PUTS_IN_PORT_WIDTH 1
4164 #define MC_CMD_PUTS_IN_DHOST_OFST 4
4167 #define MC_CMD_PUTS_IN_STRING_LEN 1
4168 #define MC_CMD_PUTS_IN_STRING_MINNUM 1
4198 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LO_LEN 4
4201 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_HI_OFST 4
4202 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_HI_LEN 4
4207 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_LEN 4
4209 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FLAT_LEN 4
4211 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_TYPE_LEN 1
4215 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4
4217 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4
4219 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4
4221 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1
4224 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LINK_END_OFST 4
4225 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_LINK_END_LEN 4
4229 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_LO_LEN 4
4232 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_HI_OFST 4
4233 #define MC_CMD_GET_PHY_CFG_IN_V2_TARGET_FLAT_HI_LEN 4
4241 #define MC_CMD_GET_PHY_CFG_OUT_FLAGS_LEN 4
4244 #define MC_CMD_GET_PHY_CFG_OUT_PRESENT_WIDTH 1
4246 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_SHORT_LBN 1
4247 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_SHORT_WIDTH 1
4250 #define MC_CMD_GET_PHY_CFG_OUT_BIST_CABLE_LONG_WIDTH 1
4253 #define MC_CMD_GET_PHY_CFG_OUT_LOWPOWER_WIDTH 1
4255 #define MC_CMD_GET_PHY_CFG_OUT_POWEROFF_LBN 4
4256 #define MC_CMD_GET_PHY_CFG_OUT_POWEROFF_WIDTH 1
4259 #define MC_CMD_GET_PHY_CFG_OUT_TXDIS_WIDTH 1
4262 #define MC_CMD_GET_PHY_CFG_OUT_BIST_WIDTH 1
4264 #define MC_CMD_GET_PHY_CFG_OUT_TYPE_OFST 4
4265 #define MC_CMD_GET_PHY_CFG_OUT_TYPE_LEN 4
4266 /* Bitmask of supported capabilities */
4268 #define MC_CMD_GET_PHY_CFG_OUT_SUPPORTED_CAP_LEN 4
4270 #define MC_CMD_PHY_CAP_10HDX_LBN 1
4271 #define MC_CMD_PHY_CAP_10HDX_WIDTH 1
4274 #define MC_CMD_PHY_CAP_10FDX_WIDTH 1
4277 #define MC_CMD_PHY_CAP_100HDX_WIDTH 1
4279 #define MC_CMD_PHY_CAP_100FDX_LBN 4
4280 #define MC_CMD_PHY_CAP_100FDX_WIDTH 1
4283 #define MC_CMD_PHY_CAP_1000HDX_WIDTH 1
4286 #define MC_CMD_PHY_CAP_1000FDX_WIDTH 1
4289 #define MC_CMD_PHY_CAP_10000FDX_WIDTH 1
4292 #define MC_CMD_PHY_CAP_PAUSE_WIDTH 1
4295 #define MC_CMD_PHY_CAP_ASYM_WIDTH 1
4298 #define MC_CMD_PHY_CAP_AN_WIDTH 1
4301 #define MC_CMD_PHY_CAP_40000FDX_WIDTH 1
4304 #define MC_CMD_PHY_CAP_DDM_WIDTH 1
4307 #define MC_CMD_PHY_CAP_100000FDX_WIDTH 1
4310 #define MC_CMD_PHY_CAP_25000FDX_WIDTH 1
4313 #define MC_CMD_PHY_CAP_50000FDX_WIDTH 1
4316 #define MC_CMD_PHY_CAP_BASER_FEC_WIDTH 1
4319 #define MC_CMD_PHY_CAP_BASER_FEC_REQUESTED_WIDTH 1
4322 #define MC_CMD_PHY_CAP_RS_FEC_WIDTH 1
4325 #define MC_CMD_PHY_CAP_RS_FEC_REQUESTED_WIDTH 1
4328 #define MC_CMD_PHY_CAP_25G_BASER_FEC_WIDTH 1
4331 #define MC_CMD_PHY_CAP_25G_BASER_FEC_REQUESTED_WIDTH 1
4334 #define MC_CMD_PHY_CAP_200000FDX_WIDTH 1
4337 #define MC_CMD_GET_PHY_CFG_OUT_CHANNEL_LEN 4
4340 #define MC_CMD_GET_PHY_CFG_OUT_PRT_LEN 4
4343 #define MC_CMD_GET_PHY_CFG_OUT_STATS_MASK_LEN 4
4349 #define MC_CMD_GET_PHY_CFG_OUT_MEDIA_TYPE_LEN 4
4367 #define MC_CMD_GET_PHY_CFG_OUT_MMD_MASK_LEN 4
4397 #define MC_CMD_START_BIST_IN_LEN 4
4398 /* Type of test. */
4400 #define MC_CMD_START_BIST_IN_TYPE_LEN 4
4443 #define MC_CMD_POLL_BIST_OUT_RESULT_LEN 4
4450 /* enum: Timed-out. */
4452 #define MC_CMD_POLL_BIST_OUT_PRIVATE_OFST 4
4453 #define MC_CMD_POLL_BIST_OUT_PRIVATE_LEN 4
4459 /* MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 */
4462 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_A_OFST 4
4463 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_A_LEN 4
4465 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_B_LEN 4
4467 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_C_LEN 4
4469 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_LENGTH_D_LEN 4
4470 /* Status of each channel A */
4472 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_A_LEN 4
4477 /* enum: Intra-pair short. */
4479 /* enum: Inter-pair short. */
4483 /* Status of each channel B */
4485 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_B_LEN 4
4488 /* Status of each channel C */
4490 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_C_LEN 4
4493 /* Status of each channel D */
4495 #define MC_CMD_POLL_BIST_OUT_SFT9001_CABLE_STATUS_D_LEN 4
4503 /* MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 */
4506 #define MC_CMD_POLL_BIST_OUT_MRSFP_TEST_OFST 4
4507 #define MC_CMD_POLL_BIST_OUT_MRSFP_TEST_LEN 4
4531 /* MC_CMD_POLL_BIST_OUT_RESULT_LEN 4 */
4534 #define MC_CMD_POLL_BIST_OUT_MEM_TEST_OFST 4
4535 #define MC_CMD_POLL_BIST_OUT_MEM_TEST_LEN 4
4538 /* enum: RAM test - walk ones. */
4540 /* enum: RAM test - walk zeros. */
4542 /* enum: RAM test - walking inversions zeros/ones. */
4544 /* enum: RAM test - walking inversions checkerboard. */
4546 /* enum: Register test - set / clear individual bits. */
4552 #define MC_CMD_POLL_BIST_OUT_MEM_ADDR_LEN 4
4555 #define MC_CMD_POLL_BIST_OUT_MEM_BUS_LEN 4
4576 #define MC_CMD_POLL_BIST_OUT_MEM_EXPECT_LEN 4
4579 #define MC_CMD_POLL_BIST_OUT_MEM_ACTUAL_LEN 4
4582 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_LEN 4
4585 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_PARITY_LEN 4
4588 #define MC_CMD_POLL_BIST_OUT_MEM_ECC_FATAL_LEN 4
4593 * Returns a bitmask of loopback modes available at each speed.
4612 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LO_LEN 4
4615 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_HI_OFST 4
4616 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_HI_LEN 4
4621 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_LEN 4
4623 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FLAT_LEN 4
4625 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_TYPE_LEN 1
4629 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4
4631 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4
4633 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4
4635 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1
4638 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LINK_END_OFST 4
4639 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_LINK_END_LEN 4
4643 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_LO_LEN 4
4646 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_HI_OFST 4
4647 #define MC_CMD_GET_LOOPBACK_MODES_IN_V2_TARGET_FLAT_HI_LEN 4
4657 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_LO_LEN 4
4660 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_OFST 4
4661 #define MC_CMD_GET_LOOPBACK_MODES_OUT_100M_HI_LEN 4
4699 /* enum: PMA-PMD. */
4701 /* enum: Cross-Port. */
4703 /* enum: XGMII-Wireside. */
4719 /* enum: PMA lanes MAC-Serdes. */
4725 /* enum: PMA lanes MAC-Serdes Wireside. */
4735 /* enum: Near side of AOE Siena side port */
4747 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_LO_LEN 4
4751 #define MC_CMD_GET_LOOPBACK_MODES_OUT_1G_HI_LEN 4
4761 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_LO_LEN 4
4765 #define MC_CMD_GET_LOOPBACK_MODES_OUT_10G_HI_LEN 4
4775 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LO_LEN 4
4779 #define MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_HI_LEN 4
4789 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_LO_LEN 4
4793 #define MC_CMD_GET_LOOPBACK_MODES_OUT_40G_HI_LEN 4
4808 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_LO_LEN 4
4811 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_OFST 4
4812 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100M_HI_LEN 4
4850 /* enum: PMA-PMD. */
4852 /* enum: Cross-Port. */
4854 /* enum: XGMII-Wireside. */
4870 /* enum: PMA lanes MAC-Serdes. */
4876 /* enum: PMA lanes MAC-Serdes Wireside. */
4886 /* enum: Near side of AOE Siena side port */
4898 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_LO_LEN 4
4902 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_1G_HI_LEN 4
4912 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_LO_LEN 4
4916 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_10G_HI_LEN 4
4926 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_LO_LEN 4
4930 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_SUGGESTED_HI_LEN 4
4940 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_LO_LEN 4
4944 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_40G_HI_LEN 4
4954 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_LO_LEN 4
4958 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_25G_HI_LEN 4
4968 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_LO_LEN 4
4972 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_50G_HI_LEN 4
4982 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_LO_LEN 4
4986 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V2_100G_HI_LEN 4
5001 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_LO_LEN 4
5004 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_HI_OFST 4
5005 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100M_HI_LEN 4
5043 /* enum: PMA-PMD. */
5045 /* enum: Cross-Port. */
5047 /* enum: XGMII-Wireside. */
5063 /* enum: PMA lanes MAC-Serdes. */
5069 /* enum: PMA lanes MAC-Serdes Wireside. */
5079 /* enum: Near side of AOE Siena side port */
5091 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_LO_LEN 4
5095 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_1G_HI_LEN 4
5105 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_LO_LEN 4
5109 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_10G_HI_LEN 4
5119 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_LO_LEN 4
5123 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_SUGGESTED_HI_LEN 4
5133 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_LO_LEN 4
5137 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_40G_HI_LEN 4
5147 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_LO_LEN 4
5151 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_25G_HI_LEN 4
5161 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_LO_LEN 4
5165 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_50G_HI_LEN 4
5175 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_LO_LEN 4
5179 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_100G_HI_LEN 4
5189 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_LO_LEN 4
5193 #define MC_CMD_GET_LOOPBACK_MODES_OUT_V3_200G_HI_LEN 4
5200 /* AN_TYPE structuredef: Auto-negotiation types defined in IEEE802.3 */
5201 #define AN_TYPE_LEN 4
5203 #define AN_TYPE_TYPE_LEN 4
5206 /* enum: Clause 28 - BASE-T */
5208 /* enum: Clause 37 - BASE-X */
5210 /* enum: Clause 73 - BASE-R startup protocol for backplane and copper cable
5211 * assemblies. Includes Clause 72/Clause 92 link-training.
5219 #define FEC_TYPE_LEN 4
5221 #define FEC_TYPE_TYPE_LEN 4
5224 /* enum: IEEE 802.3, Clause 74 BASE-R FEC (a.k.a Firecode) */
5226 /* enum: IEEE 802.3, Clause 91/Clause 108 Reed-Solomon FEC */
5228 /* enum: IEEE 802.3, Clause 161, interleaved RS-FEC sublayer for 100GBASE-R
5232 /* enum: Ethernet Consortium, Low Latency RS-FEC. RS(272, 258). Replaces FEC
5251 * them arise. An incomplete list of possible expansion in the future include:
5257 /* enum: 1000BASE-KX - 1000BASE-X PCS/PMA over an electrical backplane PMD. See
5261 /* enum: 10GBASE-R - PCS/PMA over an electrical backplane PMD. Refer to IEEE
5265 /* enum: 40GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3
5269 /* enum: 40GBASE-R PCS/PMA over 4 lane shielded copper balanced cable PMD. See
5273 /* enum: 40GBASE-R PCS/PMA over 4 lane multimode fiber PMD as specified in
5277 /* enum: 40GBASE-R PCS/PMA over 4 WDM lane single mode fiber PMD with long
5281 /* enum: 25GBASE-R PCS/PMA over shielded balanced copper cable PMD. See IEEE
5285 /* enum: 25GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3
5289 /* enum: 25GBASE-R PCS/PMA over multimode fiber PMD. Refer to IEEE 802.3 Clause
5293 /* enum: An Ethernet Physical layer operating at 50 Gb/s on twin-axial copper
5301 /* enum: 100GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3
5305 /* enum: 100GBASE-R PCS/PMA over 4 lane multimode fiber PMD. See IEEE 802.3
5309 /* enum: 100GBASE-R PCS/PMA over 4 lane shielded copper balanced cable PMD. See
5313 /* enum: 100GBASE-R PCS/PMA over 4 WDM lane single mode fiber PMD, with
5325 /* enum: Non-standardised. 10G direct attach */
5327 /* enum: 10GBASE-SR fiber over 850nm optics. See IEEE 802.3 Clause 52 */
5329 /* enum: 10GBASE-LR fiber over 1310nm optics. See IEEE 802.3 Clause 52 */
5331 /* enum: 10GBASE-LRM fiber over 1310 nm optics. See IEEE 802.3 Clause 68 */
5333 /* enum: 10GBASE-ER fiber over 1550nm optics. See IEEE 802.3 Clause 52 */
5335 /* enum: 50GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3
5339 /* enum: 50GBASE-SR PCS/PMA over multimode fiber PMD as specified in Clause 138
5342 /* enum: 50GBASE-CR PCS/PMA over shielded copper balanced cable PMD. See IEEE
5346 /* enum: 50GBASE-R PCS/PMA over single mode fiber PMD as specified in Clause
5350 /* enum: 100 Gb/s PHY using 100GBASE-R encoding over single-mode fiber with
5354 /* enum: 100GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3
5358 /* enum: 100GBASE-R PCS/PMA over 2 lane multimode fiber PMD. See IEEE 802.3
5362 /* enum: 100GBASE-R PCS/PMA over 2 lane shielded copper balanced cable PMD. See
5370 /* enum: 200GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3
5374 /* enum: 200GBASE-R PCS/PMA over 4 lane multimode fiber PMD. See IEEE 802.3
5378 /* enum: 200GBASE-R PCS/PMA over 4 WDM lane single-mode fiber PMD as specified
5382 /* enum: 200GBASE-R PCS/PMA over 4-lane single-mode fiber PMD. See IEEE 802.3
5386 /* enum: 200GBASE-R PCS/PMA over 4 lane shielded copper balanced cable PMD as
5390 /* enum: Ethernet Technology Consortium 400G AN Spec. 400GBASE-KR8 PMD uses
5394 /* enum: 400GBASE-R PCS/PMA over 8-lane multimode fiber PMD. See IEEE 802.3
5398 /* enum: 400GBASE-R PCS/PMA over 8 WDM lane single-mode fiber PMD. See IEEE
5404 /* enum: Ethernet Technology Consortium 400G AN Spec. 400GBASE-CR8 PMD uses
5408 /* enum: 100GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3ck
5416 /* enum: 100G PMD together with single-mode fiber medium. See IEEE 802.3 Clause
5420 /* enum: 100GBASE-R PCS/PMA over shielded balanced copper cable PMD. See IEEE
5424 /* enum: 100G PMD together with single-mode fiber medium. See IEEE 802.3 Clause
5428 /* enum: 200GBASE-R PCS/PMA over an electrical backplane PMD as specified in
5440 /* enum: 200GBASE-R PCS/PMA over 2 lane shielded balanced copper cable PMD as
5444 /* enum: 400GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3
5448 /* enum: 400G PHY with PMD over short reach fiber. See Clause 167 of IEEE
5452 /* enum: 400GBASE-R PCS/PMA over 4 WDM lane single-mode fiber PMD. See IEEE
5456 /* enum: 400GBASE-R PCS/PMA over 4-lane single-mode fiber PMD as specified in
5460 /* enum: 400GBASE-R PCS/PMA over 4 lane shielded balanced copper cable PMD as
5461 * specified in Clause 162 of IEEE 802.3ck.
5466 /* enum: See IEEE 802.3cc-2017 Clause 114 */
5469 * each) See IEEE 802.3ba-2010 Clause 85
5479 /* Flags used to report the current configuration/state of the link. */
5483 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_LO_LEN 4
5486 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_HI_OFST 4
5487 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_HI_LEN 4
5515 /* enum: If set, the module is indicating Loss of Signal */
5517 /* enum: If set, PMA is indicating loss of CDR lock (clock sync) */
5519 /* enum: If set, PMA is indicating loss of analog signal */
5521 /* enum: If set, PCS is indicating loss of block lock */
5523 /* enum: If set, PCS is indicating loss of alignment marker lock on one or more
5527 /* enum: If set, PCS is indicating loss of overall alignment lock */
5531 /* enum: If set, FEC is indicating loss of FEC lock */
5533 /* enum: If set, indicates that the number of symbol errors in a 8192-codeword
5541 /* enum: If set, the number of symbol errors is over an internal threshold. */
5543 /* enum: If set, autonegotiation has detected an auto-negotiation capable link
5551 /* enum: If set, autonegotiation has failed to negotiate a common set of
5571 #define MC_CMD_PAUSE_MODE_LEN 1
5573 #define MC_CMD_PAUSE_MODE_TYPE_LEN 1
5582 * Auto-Negotiation. Warning - This is fixed size and cannot be extended. This
5587 /* Mask of Ethernet technologies. The bit indices in this mask are taken from
5597 /* Mask of supported FEC modes */
5599 #define MC_CMD_ETH_AN_FIELDS_FEC_MASK_LEN 4
5605 /* Mask of requested FEC modes */
5607 #define MC_CMD_ETH_AN_FIELDS_FEC_REQ_LEN 4
5613 /* Bitmask of negotiated pause modes */
5615 #define MC_CMD_ETH_AN_FIELDS_PAUSE_MASK_LEN 1
5626 #define MC_CMD_LOOPBACK_V2_LEN 4
5628 #define MC_CMD_LOOPBACK_V2_MODE_LEN 4
5653 #define MC_CMD_FCNTL_LEN 4
5655 #define MC_CMD_FCNTL_MASK_LEN 4
5672 #define MC_CMD_LINK_FLAGS_LEN 4
5677 #define MC_CMD_LINK_FLAGS_MASK_LEN 4
5679 /* enum: Enable auto-negotiation. If AN is enabled, link technology and FEC
5712 #define MC_CMD_LINK_CTRL_IN_PORT_HANDLE_LEN 4
5714 #define MC_CMD_LINK_CTRL_IN_CONTROL_FLAGS_OFST 4
5715 #define MC_CMD_LINK_CTRL_IN_CONTROL_FLAGS_LEN 4
5725 #define MC_CMD_LINK_CTRL_IN_RESERVED_LO_LEN 4
5729 #define MC_CMD_LINK_CTRL_IN_RESERVED_HI_LEN 4
5732 /* Technology abilities to advertise during auto-negotiation */
5738 /* Pause abilities to advertise during auto-negotiation. Valid when auto-
5740 * MC_CMD_FCNTL_AUTO. If auto-negotiation is disabled the driver must
5744 #define MC_CMD_LINK_CTRL_IN_ADVERTISED_PAUSE_ABILITIES_MASK_LEN 1
5748 /* When auto-negotiation is enabled, this is the FEC mode to request. Note that
5751 * actual negotiated FEC mode. When auto-negotiation is disabled, this is the
5755 #define MC_CMD_LINK_CTRL_IN_FEC_MODE_LEN 1
5759 /* This is only to be used when auto-negotiation is disabled (forced speed or
5768 /* The sequence number of the last MODULECHANGE event. If this doesn't match,
5772 #define MC_CMD_LINK_CTRL_IN_MODULE_SEQ_LEN 1
5773 /* Loopback Mode. Only valid when auto-negotiation is disabled. */
5775 #define MC_CMD_LINK_CTRL_IN_LOOPBACK_LEN 1
5793 #define MC_CMD_LINK_STATE_IN_LEN 4
5796 #define MC_CMD_LINK_STATE_IN_PORT_HANDLE_LEN 4
5800 /* Flags used to report the current configuration/state of the link. */
5804 #define MC_CMD_LINK_STATE_OUT_STATUS_FLAGS_LO_LEN 4
5807 #define MC_CMD_LINK_STATE_OUT_STATUS_FLAGS_HI_OFST 4
5808 #define MC_CMD_LINK_STATE_OUT_STATUS_FLAGS_HI_LEN 4
5824 #define MC_CMD_LINK_STATE_OUT_FEC_MODE_LEN 1
5828 /* Bitmask of auto-negotiated pause modes */
5830 #define MC_CMD_LINK_STATE_OUT_PAUSE_MASK_LEN 1
5836 #define MC_CMD_LINK_STATE_OUT_LOOPBACK_LEN 1
5840 /* Abilities requested by the driver to advertise during auto-negotiation */
5847 #define MC_CMD_LINK_STATE_OUT_ADVERTISED_ABILITIES_FEC_MASK_LEN 4
5849 #define MC_CMD_LINK_STATE_OUT_ADVERTISED_ABILITIES_FEC_REQ_LEN 4
5851 #define MC_CMD_LINK_STATE_OUT_ADVERTISED_ABILITIES_PAUSE_MASK_LEN 1
5852 /* Abilities advertised by the link partner during auto-negotiation */
5859 #define MC_CMD_LINK_STATE_OUT_LINK_PARTNER_ABILITIES_FEC_MASK_LEN 4
5861 #define MC_CMD_LINK_STATE_OUT_LINK_PARTNER_ABILITIES_FEC_REQ_LEN 4
5863 #define MC_CMD_LINK_STATE_OUT_LINK_PARTNER_ABILITIES_PAUSE_MASK_LEN 1
5873 #define MC_CMD_LINK_STATE_OUT_SUPPORTED_ABILITIES_FEC_MASK_LEN 4
5875 #define MC_CMD_LINK_STATE_OUT_SUPPORTED_ABILITIES_FEC_REQ_LEN 4
5877 #define MC_CMD_LINK_STATE_OUT_SUPPORTED_ABILITIES_PAUSE_MASK_LEN 1
5880 #define MC_CMD_LINK_STATE_OUT_CONTROL_FLAGS_LEN 4
5886 #define MC_CMD_LINK_STATE_OUT_PORT_LINKCHANGE_SEQ_NUM_LEN 1
5889 #define MC_CMD_LINK_STATE_OUT_PORT_MODULECHANGE_SEQ_NUM_LEN 1
5895 /* Flags used to report the current configuration/state of the link. */
5899 #define MC_CMD_LINK_STATE_OUT_V2_STATUS_FLAGS_LO_LEN 4
5902 #define MC_CMD_LINK_STATE_OUT_V2_STATUS_FLAGS_HI_OFST 4
5903 #define MC_CMD_LINK_STATE_OUT_V2_STATUS_FLAGS_HI_LEN 4
5919 #define MC_CMD_LINK_STATE_OUT_V2_FEC_MODE_LEN 1
5923 /* Bitmask of auto-negotiated pause modes */
5925 #define MC_CMD_LINK_STATE_OUT_V2_PAUSE_MASK_LEN 1
5931 #define MC_CMD_LINK_STATE_OUT_V2_LOOPBACK_LEN 1
5935 /* Abilities requested by the driver to advertise during auto-negotiation */
5938 /* Abilities advertised by the link partner during auto-negotiation */
5948 #define MC_CMD_LINK_STATE_OUT_V2_CONTROL_FLAGS_LEN 4
5954 #define MC_CMD_LINK_STATE_OUT_V2_PORT_LINKCHANGE_SEQ_NUM_LEN 1
5957 #define MC_CMD_LINK_STATE_OUT_V2_PORT_MODULECHANGE_SEQ_NUM_LEN 1
5958 /* Reports the auto-negotiation supported by the local device. This depends on
5962 #define MC_CMD_LINK_STATE_OUT_V2_LOCAL_AN_SUPPORT_LEN 4
5967 * reporting of the link speed and duplex mode.
5970 /* Flags used to report the current configuration/state of the link. */
5974 #define MC_CMD_LINK_STATE_OUT_V3_STATUS_FLAGS_LO_LEN 4
5977 #define MC_CMD_LINK_STATE_OUT_V3_STATUS_FLAGS_HI_OFST 4
5978 #define MC_CMD_LINK_STATE_OUT_V3_STATUS_FLAGS_HI_LEN 4
5994 #define MC_CMD_LINK_STATE_OUT_V3_FEC_MODE_LEN 1
5998 /* Bitmask of auto-negotiated pause modes */
6000 #define MC_CMD_LINK_STATE_OUT_V3_PAUSE_MASK_LEN 1
6006 #define MC_CMD_LINK_STATE_OUT_V3_LOOPBACK_LEN 1
6010 /* Abilities requested by the driver to advertise during auto-negotiation */
6013 /* Abilities advertised by the link partner during auto-negotiation */
6023 #define MC_CMD_LINK_STATE_OUT_V3_CONTROL_FLAGS_LEN 4
6029 #define MC_CMD_LINK_STATE_OUT_V3_PORT_LINKCHANGE_SEQ_NUM_LEN 1
6032 #define MC_CMD_LINK_STATE_OUT_V3_PORT_MODULECHANGE_SEQ_NUM_LEN 1
6033 /* Reports the auto-negotiation supported by the local device. This depends on
6037 #define MC_CMD_LINK_STATE_OUT_V3_LOCAL_AN_SUPPORT_LEN 4
6041 * reads non-zero. LINK_SPEED field is intended to be used by drivers without
6042 * the most up-to-date MCDI definitions, unable to deduce the link speed from
6046 #define MC_CMD_LINK_STATE_OUT_V3_LINK_SPEED_LEN 4
6048 #define MC_CMD_LINK_STATE_OUT_V3_FLAGS_LEN 4
6051 #define MC_CMD_LINK_STATE_OUT_V3_FULL_DUPLEX_WIDTH 1
6076 #define MC_CMD_GET_LINK_IN_V2_TARGET_LO_LEN 4
6079 #define MC_CMD_GET_LINK_IN_V2_TARGET_HI_OFST 4
6080 #define MC_CMD_GET_LINK_IN_V2_TARGET_HI_LEN 4
6085 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_LEN 4
6087 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FLAT_LEN 4
6089 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_TYPE_LEN 1
6093 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4
6095 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4
6097 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4
6099 #define MC_CMD_GET_LINK_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1
6102 #define MC_CMD_GET_LINK_IN_V2_TARGET_LINK_END_OFST 4
6103 #define MC_CMD_GET_LINK_IN_V2_TARGET_LINK_END_LEN 4
6107 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_LO_LEN 4
6110 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_HI_OFST 4
6111 #define MC_CMD_GET_LINK_IN_V2_TARGET_FLAT_HI_LEN 4
6117 /* Near-side advertised capabilities. Refer to
6121 #define MC_CMD_GET_LINK_OUT_CAP_LEN 4
6122 /* Link-partner advertised capabilities. Refer to
6125 #define MC_CMD_GET_LINK_OUT_LP_CAP_OFST 4
6126 #define MC_CMD_GET_LINK_OUT_LP_CAP_LEN 4
6128 * reads non-zero.
6131 #define MC_CMD_GET_LINK_OUT_LINK_SPEED_LEN 4
6134 #define MC_CMD_GET_LINK_OUT_LOOPBACK_MODE_LEN 4
6138 #define MC_CMD_GET_LINK_OUT_FLAGS_LEN 4
6141 #define MC_CMD_GET_LINK_OUT_LINK_UP_WIDTH 1
6143 #define MC_CMD_GET_LINK_OUT_FULL_DUPLEX_LBN 1
6144 #define MC_CMD_GET_LINK_OUT_FULL_DUPLEX_WIDTH 1
6147 #define MC_CMD_GET_LINK_OUT_BPX_LINK_WIDTH 1
6150 #define MC_CMD_GET_LINK_OUT_PHY_LINK_WIDTH 1
6153 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_RX_WIDTH 1
6156 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_TX_WIDTH 1
6159 #define MC_CMD_GET_LINK_OUT_MODULE_UP_VALID_WIDTH 1
6162 #define MC_CMD_GET_LINK_OUT_MODULE_UP_WIDTH 1
6165 #define MC_CMD_GET_LINK_OUT_FCNTL_LEN 4
6170 #define MC_CMD_GET_LINK_OUT_MAC_FAULT_LEN 4
6173 #define MC_CMD_MAC_FAULT_XGMII_LOCAL_WIDTH 1
6175 #define MC_CMD_MAC_FAULT_XGMII_REMOTE_LBN 1
6176 #define MC_CMD_MAC_FAULT_XGMII_REMOTE_WIDTH 1
6179 #define MC_CMD_MAC_FAULT_SGMII_REMOTE_WIDTH 1
6182 #define MC_CMD_MAC_FAULT_PENDING_RECONFIG_WIDTH 1
6186 /* Near-side advertised capabilities. Refer to
6190 #define MC_CMD_GET_LINK_OUT_V2_CAP_LEN 4
6191 /* Link-partner advertised capabilities. Refer to
6194 #define MC_CMD_GET_LINK_OUT_V2_LP_CAP_OFST 4
6195 #define MC_CMD_GET_LINK_OUT_V2_LP_CAP_LEN 4
6197 * reads non-zero.
6200 #define MC_CMD_GET_LINK_OUT_V2_LINK_SPEED_LEN 4
6203 #define MC_CMD_GET_LINK_OUT_V2_LOOPBACK_MODE_LEN 4
6207 #define MC_CMD_GET_LINK_OUT_V2_FLAGS_LEN 4
6210 #define MC_CMD_GET_LINK_OUT_V2_LINK_UP_WIDTH 1
6212 #define MC_CMD_GET_LINK_OUT_V2_FULL_DUPLEX_LBN 1
6213 #define MC_CMD_GET_LINK_OUT_V2_FULL_DUPLEX_WIDTH 1
6216 #define MC_CMD_GET_LINK_OUT_V2_BPX_LINK_WIDTH 1
6219 #define MC_CMD_GET_LINK_OUT_V2_PHY_LINK_WIDTH 1
6222 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_RX_WIDTH 1
6225 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_TX_WIDTH 1
6228 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_VALID_WIDTH 1
6231 #define MC_CMD_GET_LINK_OUT_V2_MODULE_UP_WIDTH 1
6234 #define MC_CMD_GET_LINK_OUT_V2_FCNTL_LEN 4
6239 #define MC_CMD_GET_LINK_OUT_V2_MAC_FAULT_LEN 4
6242 /* MC_CMD_MAC_FAULT_XGMII_LOCAL_WIDTH 1 */
6244 /* MC_CMD_MAC_FAULT_XGMII_REMOTE_LBN 1 */
6245 /* MC_CMD_MAC_FAULT_XGMII_REMOTE_WIDTH 1 */
6248 /* MC_CMD_MAC_FAULT_SGMII_REMOTE_WIDTH 1 */
6251 /* MC_CMD_MAC_FAULT_PENDING_RECONFIG_WIDTH 1 */
6253 * e.g. plugged-in module). In general, subset of
6256 * to SUPPORTED_CAP for non-pluggable PMDs. Refer to
6260 #define MC_CMD_GET_LINK_OUT_V2_LD_CAP_LEN 4
6261 /* Auto-negotiation type used on the link */
6263 #define MC_CMD_GET_LINK_OUT_V2_AN_TYPE_LEN 4
6268 #define MC_CMD_GET_LINK_OUT_V2_FEC_TYPE_LEN 4
6272 #define MC_CMD_GET_LINK_OUT_V2_EXT_FLAGS_LEN 4
6275 #define MC_CMD_GET_LINK_OUT_V2_PMD_MDI_CONNECTED_WIDTH 1
6277 #define MC_CMD_GET_LINK_OUT_V2_PMD_READY_LBN 1
6278 #define MC_CMD_GET_LINK_OUT_V2_PMD_READY_WIDTH 1
6281 #define MC_CMD_GET_LINK_OUT_V2_PMD_LINK_UP_WIDTH 1
6284 #define MC_CMD_GET_LINK_OUT_V2_PMA_LINK_UP_WIDTH 1
6286 #define MC_CMD_GET_LINK_OUT_V2_PCS_LOCK_LBN 4
6287 #define MC_CMD_GET_LINK_OUT_V2_PCS_LOCK_WIDTH 1
6290 #define MC_CMD_GET_LINK_OUT_V2_ALIGN_LOCK_WIDTH 1
6293 #define MC_CMD_GET_LINK_OUT_V2_HI_BER_WIDTH 1
6296 #define MC_CMD_GET_LINK_OUT_V2_FEC_LOCK_WIDTH 1
6299 #define MC_CMD_GET_LINK_OUT_V2_AN_DONE_WIDTH 1
6302 #define MC_CMD_GET_LINK_OUT_V2_PORT_SHUTDOWN_WIDTH 1
6317 /* Near-side advertised capabilities. Refer to
6321 #define MC_CMD_SET_LINK_IN_CAP_LEN 4
6323 #define MC_CMD_SET_LINK_IN_FLAGS_OFST 4
6324 #define MC_CMD_SET_LINK_IN_FLAGS_LEN 4
6325 #define MC_CMD_SET_LINK_IN_LOWPOWER_OFST 4
6327 #define MC_CMD_SET_LINK_IN_LOWPOWER_WIDTH 1
6328 #define MC_CMD_SET_LINK_IN_POWEROFF_OFST 4
6329 #define MC_CMD_SET_LINK_IN_POWEROFF_LBN 1
6330 #define MC_CMD_SET_LINK_IN_POWEROFF_WIDTH 1
6331 #define MC_CMD_SET_LINK_IN_TXDIS_OFST 4
6333 #define MC_CMD_SET_LINK_IN_TXDIS_WIDTH 1
6334 #define MC_CMD_SET_LINK_IN_LINKDOWN_OFST 4
6336 #define MC_CMD_SET_LINK_IN_LINKDOWN_WIDTH 1
6339 #define MC_CMD_SET_LINK_IN_LOOPBACK_MODE_LEN 4
6342 /* A loopback speed of "0" is supported, and means (choose any available
6346 #define MC_CMD_SET_LINK_IN_LOOPBACK_SPEED_LEN 4
6353 /* Near-side advertised capabilities. Refer to
6357 #define MC_CMD_SET_LINK_IN_V2_CAP_LEN 4
6359 #define MC_CMD_SET_LINK_IN_V2_FLAGS_OFST 4
6360 #define MC_CMD_SET_LINK_IN_V2_FLAGS_LEN 4
6361 #define MC_CMD_SET_LINK_IN_V2_LOWPOWER_OFST 4
6363 #define MC_CMD_SET_LINK_IN_V2_LOWPOWER_WIDTH 1
6364 #define MC_CMD_SET_LINK_IN_V2_POWEROFF_OFST 4
6365 #define MC_CMD_SET_LINK_IN_V2_POWEROFF_LBN 1
6366 #define MC_CMD_SET_LINK_IN_V2_POWEROFF_WIDTH 1
6367 #define MC_CMD_SET_LINK_IN_V2_TXDIS_OFST 4
6369 #define MC_CMD_SET_LINK_IN_V2_TXDIS_WIDTH 1
6370 #define MC_CMD_SET_LINK_IN_V2_LINKDOWN_OFST 4
6372 #define MC_CMD_SET_LINK_IN_V2_LINKDOWN_WIDTH 1
6375 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_MODE_LEN 4
6378 /* A loopback speed of "0" is supported, and means (choose any available
6382 #define MC_CMD_SET_LINK_IN_V2_LOOPBACK_SPEED_LEN 4
6384 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_LEN 1
6390 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_IGNORE_WIDTH 1
6394 /* Near-side advertised capabilities. Refer to
6398 #define MC_CMD_SET_LINK_IN_V3_CAP_LEN 4
6400 #define MC_CMD_SET_LINK_IN_V3_FLAGS_OFST 4
6401 #define MC_CMD_SET_LINK_IN_V3_FLAGS_LEN 4
6402 #define MC_CMD_SET_LINK_IN_V3_LOWPOWER_OFST 4
6404 #define MC_CMD_SET_LINK_IN_V3_LOWPOWER_WIDTH 1
6405 #define MC_CMD_SET_LINK_IN_V3_POWEROFF_OFST 4
6406 #define MC_CMD_SET_LINK_IN_V3_POWEROFF_LBN 1
6407 #define MC_CMD_SET_LINK_IN_V3_POWEROFF_WIDTH 1
6408 #define MC_CMD_SET_LINK_IN_V3_TXDIS_OFST 4
6410 #define MC_CMD_SET_LINK_IN_V3_TXDIS_WIDTH 1
6411 #define MC_CMD_SET_LINK_IN_V3_LINKDOWN_OFST 4
6413 #define MC_CMD_SET_LINK_IN_V3_LINKDOWN_WIDTH 1
6416 #define MC_CMD_SET_LINK_IN_V3_LOOPBACK_MODE_LEN 4
6419 /* A loopback speed of "0" is supported, and means (choose any available
6423 #define MC_CMD_SET_LINK_IN_V3_LOOPBACK_SPEED_LEN 4
6425 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_LEN 1
6431 #define MC_CMD_SET_LINK_IN_V3_MODULE_SEQ_IGNORE_WIDTH 1
6442 #define MC_CMD_SET_LINK_IN_V3_TARGET_LO_LEN 4
6446 #define MC_CMD_SET_LINK_IN_V3_TARGET_HI_LEN 4
6451 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_LEN 4
6453 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FLAT_LEN 4
6455 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_TYPE_LEN 1
6459 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4
6461 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4
6463 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4
6465 #define MC_CMD_SET_LINK_IN_V3_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1
6469 #define MC_CMD_SET_LINK_IN_V3_TARGET_LINK_END_LEN 4
6473 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_LO_LEN 4
6477 #define MC_CMD_SET_LINK_IN_V3_TARGET_FLAT_HI_LEN 4
6495 #define MC_CMD_SET_ID_LED_IN_LEN 4
6498 #define MC_CMD_SET_ID_LED_IN_STATE_LEN 4
6518 /* The MTU is the MTU programmed directly into the XMAC/GMAC (inclusive of
6522 #define MC_CMD_SET_MAC_IN_MTU_LEN 4
6523 #define MC_CMD_SET_MAC_IN_DRAIN_OFST 4
6524 #define MC_CMD_SET_MAC_IN_DRAIN_LEN 4
6528 #define MC_CMD_SET_MAC_IN_ADDR_LO_LEN 4
6532 #define MC_CMD_SET_MAC_IN_ADDR_HI_LEN 4
6536 #define MC_CMD_SET_MAC_IN_REJECT_LEN 4
6539 #define MC_CMD_SET_MAC_IN_REJECT_UNCST_WIDTH 1
6541 #define MC_CMD_SET_MAC_IN_REJECT_BRDCST_LBN 1
6542 #define MC_CMD_SET_MAC_IN_REJECT_BRDCST_WIDTH 1
6544 #define MC_CMD_SET_MAC_IN_FCNTL_LEN 4
6558 #define MC_CMD_SET_MAC_IN_FLAGS_LEN 4
6561 #define MC_CMD_SET_MAC_IN_FLAG_INCLUDE_FCS_WIDTH 1
6565 /* The MTU is the MTU programmed directly into the XMAC/GMAC (inclusive of
6569 #define MC_CMD_SET_MAC_EXT_IN_MTU_LEN 4
6570 #define MC_CMD_SET_MAC_EXT_IN_DRAIN_OFST 4
6571 #define MC_CMD_SET_MAC_EXT_IN_DRAIN_LEN 4
6575 #define MC_CMD_SET_MAC_EXT_IN_ADDR_LO_LEN 4
6579 #define MC_CMD_SET_MAC_EXT_IN_ADDR_HI_LEN 4
6583 #define MC_CMD_SET_MAC_EXT_IN_REJECT_LEN 4
6586 #define MC_CMD_SET_MAC_EXT_IN_REJECT_UNCST_WIDTH 1
6588 #define MC_CMD_SET_MAC_EXT_IN_REJECT_BRDCST_LBN 1
6589 #define MC_CMD_SET_MAC_EXT_IN_REJECT_BRDCST_WIDTH 1
6591 #define MC_CMD_SET_MAC_EXT_IN_FCNTL_LEN 4
6605 #define MC_CMD_SET_MAC_EXT_IN_FLAGS_LEN 4
6608 #define MC_CMD_SET_MAC_EXT_IN_FLAG_INCLUDE_FCS_WIDTH 1
6615 #define MC_CMD_SET_MAC_EXT_IN_CONTROL_LEN 4
6618 #define MC_CMD_SET_MAC_EXT_IN_CFG_MTU_WIDTH 1
6620 #define MC_CMD_SET_MAC_EXT_IN_CFG_DRAIN_LBN 1
6621 #define MC_CMD_SET_MAC_EXT_IN_CFG_DRAIN_WIDTH 1
6624 #define MC_CMD_SET_MAC_EXT_IN_CFG_REJECT_WIDTH 1
6627 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCNTL_WIDTH 1
6629 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCS_LBN 4
6630 #define MC_CMD_SET_MAC_EXT_IN_CFG_FCS_WIDTH 1
6634 /* The MTU is the MTU programmed directly into the XMAC/GMAC (inclusive of
6638 #define MC_CMD_SET_MAC_V3_IN_MTU_LEN 4
6639 #define MC_CMD_SET_MAC_V3_IN_DRAIN_OFST 4
6640 #define MC_CMD_SET_MAC_V3_IN_DRAIN_LEN 4
6644 #define MC_CMD_SET_MAC_V3_IN_ADDR_LO_LEN 4
6648 #define MC_CMD_SET_MAC_V3_IN_ADDR_HI_LEN 4
6652 #define MC_CMD_SET_MAC_V3_IN_REJECT_LEN 4
6655 #define MC_CMD_SET_MAC_V3_IN_REJECT_UNCST_WIDTH 1
6657 #define MC_CMD_SET_MAC_V3_IN_REJECT_BRDCST_LBN 1
6658 #define MC_CMD_SET_MAC_V3_IN_REJECT_BRDCST_WIDTH 1
6660 #define MC_CMD_SET_MAC_V3_IN_FCNTL_LEN 4
6674 #define MC_CMD_SET_MAC_V3_IN_FLAGS_LEN 4
6677 #define MC_CMD_SET_MAC_V3_IN_FLAG_INCLUDE_FCS_WIDTH 1
6684 #define MC_CMD_SET_MAC_V3_IN_CONTROL_LEN 4
6687 #define MC_CMD_SET_MAC_V3_IN_CFG_MTU_WIDTH 1
6689 #define MC_CMD_SET_MAC_V3_IN_CFG_DRAIN_LBN 1
6690 #define MC_CMD_SET_MAC_V3_IN_CFG_DRAIN_WIDTH 1
6693 #define MC_CMD_SET_MAC_V3_IN_CFG_REJECT_WIDTH 1
6696 #define MC_CMD_SET_MAC_V3_IN_CFG_FCNTL_WIDTH 1
6698 #define MC_CMD_SET_MAC_V3_IN_CFG_FCS_LBN 4
6699 #define MC_CMD_SET_MAC_V3_IN_CFG_FCS_WIDTH 1
6707 #define MC_CMD_SET_MAC_V3_IN_TARGET_LO_LEN 4
6711 #define MC_CMD_SET_MAC_V3_IN_TARGET_HI_LEN 4
6716 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_LEN 4
6718 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FLAT_LEN 4
6720 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_TYPE_LEN 1
6724 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4
6726 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4
6728 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4
6730 #define MC_CMD_SET_MAC_V3_IN_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1
6734 #define MC_CMD_SET_MAC_V3_IN_TARGET_LINK_END_LEN 4
6738 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_LO_LEN 4
6742 #define MC_CMD_SET_MAC_V3_IN_TARGET_FLAT_HI_LEN 4
6750 #define MC_CMD_SET_MAC_V2_OUT_LEN 4
6756 #define MC_CMD_SET_MAC_V2_OUT_MTU_LEN 4
6765 * statistics are dmad to that (page-aligned location). Locks required: None.
6779 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_LO_LEN 4
6782 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_OFST 4
6783 #define MC_CMD_PHY_STATS_IN_DMA_ADDR_HI_LEN 4
6793 #define MC_CMD_PHY_STATS_OUT_NO_DMA_STATISTICS_LEN 4
6797 /* enum: PMA-PMD Link Up. */
6799 /* enum: PMA-PMD RX Fault. */
6801 /* enum: PMA-PMD TX Fault. */
6803 /* enum: PMA-PMD Signal */
6805 /* enum: PMA-PMD SNR A. */
6807 /* enum: PMA-PMD SNR B. */
6809 /* enum: PMA-PMD SNR C. */
6811 /* enum: PMA-PMD SNR D. */
6833 /* enum: AN link-up. */
6839 /* enum: Clause 22 Link-Up. */
6852 * DMA_ADDR != 0, then the statistics are dmad to that (page-aligned location).
6867 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_LO_LEN 4
6870 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_OFST 4
6871 #define MC_CMD_MAC_STATS_IN_DMA_ADDR_HI_LEN 4
6875 #define MC_CMD_MAC_STATS_IN_CMD_LEN 4
6878 #define MC_CMD_MAC_STATS_IN_DMA_WIDTH 1
6880 #define MC_CMD_MAC_STATS_IN_CLEAR_LBN 1
6881 #define MC_CMD_MAC_STATS_IN_CLEAR_WIDTH 1
6884 #define MC_CMD_MAC_STATS_IN_PERIODIC_CHANGE_WIDTH 1
6887 #define MC_CMD_MAC_STATS_IN_PERIODIC_ENABLE_WIDTH 1
6889 #define MC_CMD_MAC_STATS_IN_PERIODIC_CLEAR_LBN 4
6890 #define MC_CMD_MAC_STATS_IN_PERIODIC_CLEAR_WIDTH 1
6893 #define MC_CMD_MAC_STATS_IN_PERIODIC_NOEVENT_WIDTH 1
6903 #define MC_CMD_MAC_STATS_IN_DMA_LEN_LEN 4
6906 #define MC_CMD_MAC_STATS_IN_PORT_ID_LEN 4
6914 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_LO_LEN 4
6917 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_HI_OFST 4
6918 #define MC_CMD_MAC_STATS_V2_IN_DMA_ADDR_HI_LEN 4
6922 #define MC_CMD_MAC_STATS_V2_IN_CMD_LEN 4
6925 #define MC_CMD_MAC_STATS_V2_IN_DMA_WIDTH 1
6927 #define MC_CMD_MAC_STATS_V2_IN_CLEAR_LBN 1
6928 #define MC_CMD_MAC_STATS_V2_IN_CLEAR_WIDTH 1
6931 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_CHANGE_WIDTH 1
6934 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_ENABLE_WIDTH 1
6936 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_CLEAR_LBN 4
6937 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_CLEAR_WIDTH 1
6940 #define MC_CMD_MAC_STATS_V2_IN_PERIODIC_NOEVENT_WIDTH 1
6950 #define MC_CMD_MAC_STATS_V2_IN_DMA_LEN_LEN 4
6953 #define MC_CMD_MAC_STATS_V2_IN_PORT_ID_LEN 4
6961 #define MC_CMD_MAC_STATS_V2_IN_TARGET_LO_LEN 4
6965 #define MC_CMD_MAC_STATS_V2_IN_TARGET_HI_LEN 4
6970 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_LEN 4
6972 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FLAT_LEN 4
6974 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_TYPE_LEN 1
6978 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4
6980 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4
6982 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4
6984 #define MC_CMD_MAC_STATS_V2_IN_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1
6988 #define MC_CMD_MAC_STATS_V2_IN_TARGET_LINK_END_LEN 4
6992 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_LO_LEN 4
6996 #define MC_CMD_MAC_STATS_V2_IN_TARGET_FLAT_HI_LEN 4
7008 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_LO_LEN 4
7011 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_OFST 4
7012 #define MC_CMD_MAC_STATS_OUT_NO_DMA_STATISTICS_HI_LEN 4
7106 /* enum: RXDP counter: Number of packets dropped due to the queue being
7110 /* enum: RXDP counter: Number of packets dropped by the DICPU. Valid for EF10
7114 /* enum: RXDP counter: Number of non-host packets. Valid for EF10 with
7118 /* enum: RXDP counter: Number of times an hlb descriptor fetch was performed.
7122 /* enum: RXDP counter: Number of times the DPCPU waited for an existing
7146 /* enum: Start of GMAC stats buffer space, for Siena only. */
7148 /* enum: End of GMAC stats buffer space, for Siena only. */
7151 * consistency of DMAd data. For legacy firmware / drivers without extended
7155 * 64-bit word of the DMA buffer (at DMA_LEN - sizeof(uint64_t)). Note that
7157 * the last 64-bit word in the buffer when DMA_LEN == MC_CMD_MAC_NSTATS *
7158 * sizeof(uint64_t). See SF-109306-TC, Section 9.2 for details.
7171 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_LO_LEN 4
7174 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_OFST 4
7175 #define MC_CMD_MAC_STATS_V2_OUT_NO_DMA_STATISTICS_HI_LEN 4
7180 /* enum: Start of FEC stats buffer space, Medford2 and up */
7182 /* enum: Number of uncorrected FEC codewords on link (RS-FEC only for Medford2)
7185 /* enum: Number of corrected FEC codewords on link (RS-FEC only for Medford2)
7188 /* enum: Number of corrected 10-bit symbol errors, lane 0 (RS-FEC only) */
7190 /* enum: Number of corrected 10-bit symbol errors, lane 1 (RS-FEC only) */
7192 /* enum: Number of corrected 10-bit symbol errors, lane 2 (RS-FEC only) */
7194 /* enum: Number of corrected 10-bit symbol errors, lane 3 (RS-FEC only) */
7211 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_LO_LEN 4
7214 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_OFST 4
7215 #define MC_CMD_MAC_STATS_V3_OUT_NO_DMA_STATISTICS_HI_LEN 4
7220 /* enum: Start of CTPIO stats buffer space, Medford2 and up */
7222 /* enum: Number of CTPIO fallbacks because a DMA packet was in progress on the
7226 /* enum: Number of times a CTPIO send wrote beyond frame end (informational
7230 /* enum: Number of CTPIO failures because the TX doorbell was written before
7231 * the end of the frame data
7234 /* enum: Number of CTPIO failures because the internal FIFO overflowed */
7236 /* enum: Number of CTPIO failures because the host did not deliver data fast
7240 /* enum: Number of CTPIO failures because the host did not deliver all the
7244 /* enum: Number of CTPIO failures because the frame data arrived out of order
7248 /* enum: Number of CTPIO failures because the host started a new frame before
7252 /* enum: Number of CTPIO failures because a write was not a multiple of 32 bits
7253 * or not 32-bit aligned
7256 /* enum: Number of CTPIO fallbacks because another VI on the same port was
7260 /* enum: Number of CTPIO fallbacks because target VI did not have CTPIO enabled
7263 /* enum: Number of CTPIO fallbacks because length in header was less than 29
7267 /* enum: Total number of successful CTPIO sends on this port */
7269 /* enum: Total number of CTPIO fallbacks on this port */
7271 /* enum: Total number of CTPIO poisoned frames on this port, whether erased or
7275 /* enum: Total number of CTPIO erased frames on this port */
7292 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_LO_LEN 4
7295 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_OFST 4
7296 #define MC_CMD_MAC_STATS_V4_OUT_NO_DMA_STATISTICS_HI_LEN 4
7301 /* enum: Start of V4 stats buffer space */
7303 /* enum: RXDP counter: Number of packets truncated because scattering was
7307 /* enum: RXDP counter: Number of times the RXDP head of line blocked waiting
7311 /* enum: RXDP counter: Number of times the RXDP timed out while head of line
7330 #define MC_CMD_MAC_STATS_V5_OUT_NO_DMA_STATISTICS_LO_LEN 4
7333 #define MC_CMD_MAC_STATS_V5_OUT_NO_DMA_STATISTICS_HI_OFST 4
7334 #define MC_CMD_MAC_STATS_V5_OUT_NO_DMA_STATISTICS_HI_LEN 4
7339 /* enum: Start of V5 stats buffer space */
7341 /* enum: Link toggle counter: Number of times the link has toggled between
7365 #define MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4
7368 /* A type value of 1 is unused. */
7369 #define MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4
7370 #define MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4
7386 #define MC_CMD_WOL_FILTER_SET_IN_DATA_LEN 4
7392 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */
7393 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */
7394 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */
7398 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_LO_LEN 4
7402 #define MC_CMD_WOL_FILTER_SET_IN_MAGIC_MAC_HI_LEN 4
7409 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */
7410 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */
7411 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */
7413 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_SRC_IP_LEN 4
7415 #define MC_CMD_WOL_FILTER_SET_IN_IPV4_SYN_DST_IP_LEN 4
7424 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */
7425 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */
7426 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */
7439 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */
7440 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */
7441 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */
7447 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LEN_LEN 1
7449 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER3_LEN 1
7451 #define MC_CMD_WOL_FILTER_SET_IN_BITMAP_LAYER4_LEN 1
7456 /* MC_CMD_WOL_FILTER_SET_IN_FILTER_MODE_LEN 4 */
7457 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_OFST 4 */
7458 /* MC_CMD_WOL_FILTER_SET_IN_WOL_TYPE_LEN 4 */
7460 #define MC_CMD_WOL_FILTER_SET_IN_LINK_MASK_LEN 4
7463 #define MC_CMD_WOL_FILTER_SET_IN_LINK_UP_WIDTH 1
7465 #define MC_CMD_WOL_FILTER_SET_IN_LINK_DOWN_LBN 1
7466 #define MC_CMD_WOL_FILTER_SET_IN_LINK_DOWN_WIDTH 1
7469 #define MC_CMD_WOL_FILTER_SET_OUT_LEN 4
7471 #define MC_CMD_WOL_FILTER_SET_OUT_FILTER_ID_LEN 4
7484 #define MC_CMD_WOL_FILTER_REMOVE_IN_LEN 4
7486 #define MC_CMD_WOL_FILTER_REMOVE_IN_FILTER_ID_LEN 4
7503 #define MC_CMD_WOL_FILTER_RESET_IN_LEN 4
7505 #define MC_CMD_WOL_FILTER_RESET_IN_MASK_LEN 4
7516 * Return bitfield indicating available types of virtual NVRAM partitions.
7528 #define MC_CMD_NVRAM_TYPES_OUT_LEN 4
7529 /* Bit mask of supported types. */
7531 #define MC_CMD_NVRAM_TYPES_OUT_TYPES_LEN 4
7588 #define MC_CMD_NVRAM_INFO_IN_LEN 4
7590 #define MC_CMD_NVRAM_INFO_IN_TYPE_LEN 4
7597 #define MC_CMD_NVRAM_INFO_OUT_TYPE_LEN 4
7600 #define MC_CMD_NVRAM_INFO_OUT_SIZE_OFST 4
7601 #define MC_CMD_NVRAM_INFO_OUT_SIZE_LEN 4
7603 #define MC_CMD_NVRAM_INFO_OUT_ERASESIZE_LEN 4
7605 #define MC_CMD_NVRAM_INFO_OUT_FLAGS_LEN 4
7608 #define MC_CMD_NVRAM_INFO_OUT_PROTECTED_WIDTH 1
7610 #define MC_CMD_NVRAM_INFO_OUT_TLV_LBN 1
7611 #define MC_CMD_NVRAM_INFO_OUT_TLV_WIDTH 1
7614 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_IF_TSA_BOUND_WIDTH 1
7617 #define MC_CMD_NVRAM_INFO_OUT_CRC_WIDTH 1
7620 #define MC_CMD_NVRAM_INFO_OUT_READ_ONLY_WIDTH 1
7623 #define MC_CMD_NVRAM_INFO_OUT_CMAC_WIDTH 1
7626 #define MC_CMD_NVRAM_INFO_OUT_A_B_WIDTH 1
7628 #define MC_CMD_NVRAM_INFO_OUT_PHYSDEV_LEN 4
7630 #define MC_CMD_NVRAM_INFO_OUT_PHYSADDR_LEN 4
7635 #define MC_CMD_NVRAM_INFO_V2_OUT_TYPE_LEN 4
7638 #define MC_CMD_NVRAM_INFO_V2_OUT_SIZE_OFST 4
7639 #define MC_CMD_NVRAM_INFO_V2_OUT_SIZE_LEN 4
7641 #define MC_CMD_NVRAM_INFO_V2_OUT_ERASESIZE_LEN 4
7643 #define MC_CMD_NVRAM_INFO_V2_OUT_FLAGS_LEN 4
7646 #define MC_CMD_NVRAM_INFO_V2_OUT_PROTECTED_WIDTH 1
7648 #define MC_CMD_NVRAM_INFO_V2_OUT_TLV_LBN 1
7649 #define MC_CMD_NVRAM_INFO_V2_OUT_TLV_WIDTH 1
7652 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_IF_TSA_BOUND_WIDTH 1
7655 #define MC_CMD_NVRAM_INFO_V2_OUT_READ_ONLY_WIDTH 1
7658 #define MC_CMD_NVRAM_INFO_V2_OUT_A_B_WIDTH 1
7661 #define MC_CMD_NVRAM_INFO_V2_OUT_WRITE_ONLY_WIDTH 1
7664 #define MC_CMD_NVRAM_INFO_V2_OUT_SEQUENTIAL_WRITE_WIDTH 1
7666 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSDEV_LEN 4
7668 #define MC_CMD_NVRAM_INFO_V2_OUT_PHYSADDR_LEN 4
7669 /* Writes must be multiples of this size. Added to support the MUM on Sorrento.
7672 #define MC_CMD_NVRAM_INFO_V2_OUT_WRITESIZE_LEN 4
7677 * Start a group of update operations on a virtual NVRAM partition. Locks
7680 * MC_CMD_NVRAM_UPDATE_START can only be used on a subset of partition types
7693 #define MC_CMD_NVRAM_UPDATE_START_IN_LEN 4
7695 #define MC_CMD_NVRAM_UPDATE_START_IN_TYPE_LEN 4
7700 * request with additional flags indicating version of command in use. See
7701 * MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT for details of extended functionality. Use
7706 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_TYPE_LEN 4
7709 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAGS_OFST 4
7710 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAGS_LEN 4
7711 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT_OFST 4
7713 #define MC_CMD_NVRAM_UPDATE_START_V2_IN_FLAG_REPORT_VERIFY_RESULT_WIDTH 1
7733 #define MC_CMD_NVRAM_READ_IN_TYPE_LEN 4
7736 #define MC_CMD_NVRAM_READ_IN_OFFSET_OFST 4
7737 #define MC_CMD_NVRAM_READ_IN_OFFSET_LEN 4
7740 #define MC_CMD_NVRAM_READ_IN_LENGTH_LEN 4
7745 #define MC_CMD_NVRAM_READ_IN_V2_TYPE_LEN 4
7748 #define MC_CMD_NVRAM_READ_IN_V2_OFFSET_OFST 4
7749 #define MC_CMD_NVRAM_READ_IN_V2_OFFSET_LEN 4
7752 #define MC_CMD_NVRAM_READ_IN_V2_LENGTH_LEN 4
7756 * from. This allows it to perform a read-modify-write-verify with the write
7762 #define MC_CMD_NVRAM_READ_IN_V2_MODE_LEN 4
7768 /* enum: Read from the current partition of an A/B pair, even if holding the
7772 /* enum: Read from the non-current (i.e. to be updated) partition of an A/B
7778 #define MC_CMD_NVRAM_READ_OUT_LENMIN 1
7781 #define MC_CMD_NVRAM_READ_OUT_LEN(num) (0+1*(num))
7782 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_NUM(len) (((len)-0)/1)
7784 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_LEN 1
7785 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_MINNUM 1
7805 #define MC_CMD_NVRAM_WRITE_IN_LEN(num) (12+1*(num))
7806 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_NUM(len) (((len)-12)/1)
7808 #define MC_CMD_NVRAM_WRITE_IN_TYPE_LEN 4
7811 #define MC_CMD_NVRAM_WRITE_IN_OFFSET_OFST 4
7812 #define MC_CMD_NVRAM_WRITE_IN_OFFSET_LEN 4
7814 #define MC_CMD_NVRAM_WRITE_IN_LENGTH_LEN 4
7816 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_LEN 1
7817 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_MINNUM 1
7839 #define MC_CMD_NVRAM_ERASE_IN_TYPE_LEN 4
7842 #define MC_CMD_NVRAM_ERASE_IN_OFFSET_OFST 4
7843 #define MC_CMD_NVRAM_ERASE_IN_OFFSET_LEN 4
7845 #define MC_CMD_NVRAM_ERASE_IN_LENGTH_LEN 4
7853 * Finish a group of update operations on a virtual NVRAM partition. Locks
7856 * a TSA controller, MC_CMD_NVRAM_UPDATE_FINISH can only be used on a subset of
7871 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_TYPE_LEN 4
7874 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_REBOOT_OFST 4
7875 #define MC_CMD_NVRAM_UPDATE_FINISH_IN_REBOOT_LEN 4
7878 * request with additional flags indicating version of NVRAM_UPDATE commands in
7879 * use. See MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT for details of extended
7884 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_TYPE_LEN 4
7887 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_REBOOT_OFST 4
7888 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_REBOOT_LEN 4
7890 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAGS_LEN 4
7893 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_REPORT_VERIFY_RESULT_WIDTH 1
7895 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_RUN_IN_BACKGROUND_LBN 1
7896 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_RUN_IN_BACKGROUND_WIDTH 1
7899 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_POLL_VERIFY_RESULT_WIDTH 1
7902 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_IN_FLAG_ABORT_WIDTH 1
7911 * Extended NVRAM_UPDATE_FINISH response that communicates the result of secure
7920 * payload includes the results of the signature verification. Note that the
7921 * per-partition nvram lock in firmware is only released after the verification
7924 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_LEN 4
7925 /* Result of nvram update completion processing. Result codes that indicate an
7927 * the field are marked with a prefix 'Internal-error'.
7930 #define MC_CMD_NVRAM_UPDATE_FINISH_V2_OUT_RESULT_CODE_LEN 4
7931 /* enum: Invalid return code; only non-zero values are defined. Defined as
7943 /* enum: Error in message digest calculated over the reflash-header, payload
7944 * and reflash-trailer.
7957 /* enum: The signers of the signatures in the image are not listed in the
7961 /* enum: The image contains a test-signed certificate, but the adapter accepts
7967 /* enum: Internal-error. The signed image is missing the 'contents' section,
7971 /* enum: Internal-error. The bundle header is invalid. */
7973 /* enum: Internal-error. The bundle does not have a valid reflash image layout.
7976 /* enum: Internal-error. The bundle has an inconsistent layout of components or
7980 /* enum: Internal-error. The bundle manifest is inconsistent with components in
7984 /* enum: Internal-error. The number of components in a bundle do not match the
7985 * number of components advertised by the bundle manifest.
7988 /* enum: Internal-error. The bundle contains too many components for the MC
7992 /* enum: Internal-error. The bundle manifest has an invalid/inconsistent
7996 /* enum: Internal-error. The hash of a component does not match the hash stored
8000 /* enum: Internal-error. Component hash calculation failed. */
8002 /* enum: Internal-error. The component does not have a valid reflash image
8010 /* enum: The update operation is in-progress. */
8021 /* Result of nvram update completion processing. Result codes that indicate an
8023 * the field are marked with a prefix 'Internal-error'.
8026 #define MC_CMD_NVRAM_UPDATE_FINISH_V3_OUT_RESULT_CODE_LEN 4
8027 /* enum: Invalid return code; only non-zero values are defined. Defined as
8039 /* enum: Error in message digest calculated over the reflash-header, payload
8040 * and reflash-trailer.
8053 /* enum: The signers of the signatures in the image are not listed in the
8057 /* enum: The image contains a test-signed certificate, but the adapter accepts
8063 /* enum: Internal-error. The signed image is missing the 'contents' section,
8067 /* enum: Internal-error. The bundle header is invalid. */
8069 /* enum: Internal-error. The bundle does not have a valid reflash image layout.
8072 /* enum: Internal-error. The bundle has an inconsistent layout of components or
8076 /* enum: Internal-error. The bundle manifest is inconsistent with components in
8080 /* enum: Internal-error. The number of components in a bundle do not match the
8081 * number of components advertised by the bundle manifest.
8084 /* enum: Internal-error. The bundle contains too many components for the MC
8088 /* enum: Internal-error. The bundle manifest has an invalid/inconsistent
8092 /* enum: Internal-error. The hash of a component does not match the hash stored
8096 /* enum: Internal-error. Component hash calculation failed. */
8098 /* enum: Internal-error. The component does not have a valid reflash image
8106 /* enum: The update operation is in-progress. */
8117 #define MC_CMD_NVRAM_UPDATE_FINISH_V3_OUT_ACTIONS_REQUIRED_OFST 4
8118 #define MC_CMD_NVRAM_UPDATE_FINISH_V3_OUT_ACTIONS_REQUIRED_LEN 4
8129 /* If the update failed with MC_CMD_NVRAM_VERIFY_RC_BAD_CONFIG, a null-
8130 * terminated US-ASCII string suitable for showing to the user.
8145 * Production mc firmwares are generally compiled with REBOOT_ON_ASSERT=1,
8146 * which means that they will automatically reboot out of the assertion
8151 * Locks required: NONE Returns: Nothing. You get back a response with ERR=1,
8160 #define MC_CMD_REBOOT_IN_LEN 4
8162 #define MC_CMD_REBOOT_IN_FLAGS_LEN 4
8177 * This call returns a mask (32bit) of the sensors that are supported by this
8178 * platform, then an array of sensor information structures, in order of sensor
8192 * page 0 of sensor information, with bit 31 in the sensor mask cleared.
8195 * mask and sensor information array for that page of sensors. In this case bit
8209 #define MC_CMD_SENSOR_INFO_EXT_IN_LEN 4
8210 /* Which page of sensors to report.
8214 * Page 1 contains sensors 32 to 62 (sensor 63 is the next page bit). etc.
8217 #define MC_CMD_SENSOR_INFO_EXT_IN_PAGE_LEN 4
8221 /* Which page of sensors to report.
8225 * Page 1 contains sensors 32 to 62 (sensor 63 is the next page bit). etc.
8228 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_PAGE_LEN 4
8230 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_FLAGS_OFST 4
8231 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_FLAGS_LEN 4
8232 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_ENGINEERING_OFST 4
8234 #define MC_CMD_SENSOR_INFO_EXT_IN_V2_ENGINEERING_WIDTH 1
8237 #define MC_CMD_SENSOR_INFO_OUT_LENMIN 4
8240 #define MC_CMD_SENSOR_INFO_OUT_LEN(num) (4+8*(num))
8241 #define MC_CMD_SENSOR_INFO_OUT_MC_CMD_SENSOR_ENTRY_NUM(len) (((len)-4)/8)
8243 #define MC_CMD_SENSOR_INFO_OUT_MASK_LEN 4
8254 /* enum: Phy 1 temperature: degC */
8256 /* enum: Phy 1 cooling: bool */
8284 /* enum: Fan 1 speed: RPM */
8290 /* enum: Fan 4 speed: RPM */
8336 /* enum: Port 0 PHY power switch over-current: bool */
8338 /* enum: Port 1 PHY power switch over-current: bool */
8340 /* enum: Mop-up microcontroller reference voltage: mV */
8354 /* enum: CCOM AVREG 1v2 supply (interval ADC): mV */
8356 /* enum: CCOM AVREG 1v2 supply (external ADC): mV */
8358 /* enum: CCOM AVREG 1v8 supply (interval ADC): mV */
8360 /* enum: CCOM AVREG 1v8 supply (external ADC): mV */
8392 /* enum: Temperature of SODIMM 0 (if installed): degC */
8394 /* enum: Temperature of SODIMM 1 (if installed): degC */
8398 /* enum: Voltage supplied to the QSFP #1 from their power supply: mV */
8418 /* enum: Engineering sensor 1 */
8424 /* enum: Engineering sensor 4 */
8437 #define MC_CMD_SENSOR_ENTRY_OFST 4
8439 #define MC_CMD_SENSOR_ENTRY_LO_OFST 4
8440 #define MC_CMD_SENSOR_ENTRY_LO_LEN 4
8444 #define MC_CMD_SENSOR_ENTRY_HI_LEN 4
8452 #define MC_CMD_SENSOR_INFO_EXT_OUT_LENMIN 4
8455 #define MC_CMD_SENSOR_INFO_EXT_OUT_LEN(num) (4+8*(num))
8456 #define MC_CMD_SENSOR_INFO_EXT_OUT_MC_CMD_SENSOR_ENTRY_NUM(len) (((len)-4)/8)
8458 #define MC_CMD_SENSOR_INFO_EXT_OUT_MASK_LEN 4
8463 #define MC_CMD_SENSOR_INFO_EXT_OUT_NEXT_PAGE_WIDTH 1
8465 /* MC_CMD_SENSOR_ENTRY_OFST 4 */
8467 /* MC_CMD_SENSOR_ENTRY_LO_OFST 4 */
8468 /* MC_CMD_SENSOR_ENTRY_LO_LEN 4 */
8472 /* MC_CMD_SENSOR_ENTRY_HI_LEN 4 */
8489 #define MC_CMD_SENSOR_INFO_ENTRY_TYPEDEF_MIN2_OFST 4
8501 * Returns the current reading from each sensor. DMAs an array of sensor
8502 * readings, in order of sensor type (but without gaps for unimplemented
8523 /* DMA address of host buffer for sensor readings (must be 4Kbyte aligned).
8531 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_LO_LEN 4
8534 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_OFST 4
8535 #define MC_CMD_READ_SENSORS_IN_DMA_ADDR_HI_LEN 4
8541 /* DMA address of host buffer for sensor readings (must be 4Kbyte aligned).
8549 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_LO_LEN 4
8552 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_OFST 4
8553 #define MC_CMD_READ_SENSORS_EXT_IN_DMA_ADDR_HI_LEN 4
8556 /* Size in bytes of host buffer. */
8558 #define MC_CMD_READ_SENSORS_EXT_IN_LENGTH_LEN 4
8562 /* DMA address of host buffer for sensor readings (must be 4Kbyte aligned).
8570 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_LO_LEN 4
8573 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_OFST 4
8574 #define MC_CMD_READ_SENSORS_EXT_IN_V2_DMA_ADDR_HI_LEN 4
8577 /* Size in bytes of host buffer. */
8579 #define MC_CMD_READ_SENSORS_EXT_IN_V2_LENGTH_LEN 4
8582 #define MC_CMD_READ_SENSORS_EXT_IN_V2_FLAGS_LEN 4
8585 #define MC_CMD_READ_SENSORS_EXT_IN_V2_ENGINEERING_WIDTH 1
8594 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_LEN 4
8600 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_STATE_LEN 1
8616 #define MC_CMD_SENSOR_VALUE_ENTRY_TYPEDEF_TYPE_LEN 1
8625 * Report current state of PHY. A 'zombie' PHY is a PHY that has failed to boot
8646 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LO_LEN 4
8649 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_HI_OFST 4
8650 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_HI_LEN 4
8655 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_LEN 4
8657 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FLAT_LEN 4
8659 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_TYPE_LEN 1
8663 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4
8665 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4
8667 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4
8669 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1
8672 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LINK_END_OFST 4
8673 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_LINK_END_LEN 4
8677 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_LO_LEN 4
8680 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_HI_OFST 4
8681 #define MC_CMD_GET_PHY_STATE_IN_V2_TARGET_FLAT_HI_LEN 4
8686 #define MC_CMD_GET_PHY_STATE_OUT_LEN 4
8688 #define MC_CMD_GET_PHY_STATE_OUT_STATE_LEN 4
8697 * Retrieve ID of any WoL filters. Locks required: None. Returns: 0, ENOSYS
8708 #define MC_CMD_WOL_FILTER_GET_OUT_LEN 4
8710 #define MC_CMD_WOL_FILTER_GET_OUT_FILTER_ID_LEN 4
8716 * understand the given workaround number - which should not be treated as a
8718 * workaround, that's between the driver and the mcfw on a per-workaround
8730 #define MC_CMD_WORKAROUND_IN_TYPE_LEN 4
8740 * - before adding code that queries this workaround, remember that there's
8755 /* 0 = disable the workaround indicated by TYPE; any non-zero value = enable
8758 #define MC_CMD_WORKAROUND_IN_ENABLED_OFST 4
8759 #define MC_CMD_WORKAROUND_IN_ENABLED_LEN 4
8767 #define MC_CMD_WORKAROUND_EXT_OUT_LEN 4
8769 #define MC_CMD_WORKAROUND_EXT_OUT_FLAGS_LEN 4
8772 #define MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_WIDTH 1
8777 * Read media-specific data from PHY (e.g. SFP/SFP+ module ID information for
8780 * output data, are interpreted on a per-type basis. For SFP+, PAGE=0 or 1
8781 * returns a 128-byte block read from module I2C address 0xA0 offset 0 or 0x80.
8782 * For QSFP, PAGE=-1 is the lower (unbanked) page. PAGE=2 is the EEPROM and
8784 * "BANK:PAGE". Not every bank has the same number of pages. See the Common
8786 * of "0xffff:0xffff" retrieves the lower (unbanked) page. Locks required -
8787 * None. Return code - 0.
8795 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_LEN 4
8797 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_PAGE_LEN 4
8808 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_PAGE_LEN 4
8819 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_OFST 4
8821 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LO_OFST 4
8822 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LO_LEN 4
8826 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_HI_LEN 4
8830 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_OFST 4
8831 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_LEN 4
8832 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FLAT_OFST 4
8833 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FLAT_LEN 4
8835 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_TYPE_LEN 1
8836 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_MPORT_ID_OFST 4
8839 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_PPORT_ID_WIDTH 4
8841 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4
8843 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4
8845 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_PF_ID_LEN 1
8846 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_MPORT_SELECTOR_FUNC_VF_ID_OFST 4
8849 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_LINK_END_LEN 4
8850 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_OFST 4
8852 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_LO_OFST 4
8853 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_LO_LEN 4
8857 #define MC_CMD_GET_PHY_MEDIA_INFO_IN_V2_TARGET_FLAT_HI_LEN 4
8865 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_LEN(num) (4+1*(num))
8866 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_NUM(len) (((len)-4)/1)
8869 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATALEN_LEN 4
8870 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_OFST 4
8871 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_LEN 1
8872 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_MINNUM 1
8880 * on the type of partition).
8888 #define MC_CMD_NVRAM_TEST_IN_LEN 4
8890 #define MC_CMD_NVRAM_TEST_IN_TYPE_LEN 4
8895 #define MC_CMD_NVRAM_TEST_OUT_LEN 4
8897 #define MC_CMD_NVRAM_TEST_OUT_RESULT_LEN 4
8908 * Reads the list of available virtual NVRAM partition types. Locks required:
8920 #define MC_CMD_NVRAM_PARTITIONS_OUT_LENMIN 4
8923 #define MC_CMD_NVRAM_PARTITIONS_OUT_LEN(num) (4+4*(num))
8924 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_NUM(len) (((len)-4)/4)
8925 /* total number of partitions */
8927 #define MC_CMD_NVRAM_PARTITIONS_OUT_NUM_PARTITIONS_LEN 4
8928 /* type ID code for each of NUM_PARTITIONS partitions */
8929 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_OFST 4
8930 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_LEN 4
8947 #define MC_CMD_NVRAM_METADATA_IN_LEN 4
8950 #define MC_CMD_NVRAM_METADATA_IN_TYPE_LEN 4
8956 #define MC_CMD_NVRAM_METADATA_OUT_LEN(num) (20+1*(num))
8957 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_NUM(len) (((len)-20)/1)
8960 #define MC_CMD_NVRAM_METADATA_OUT_TYPE_LEN 4
8961 #define MC_CMD_NVRAM_METADATA_OUT_FLAGS_OFST 4
8962 #define MC_CMD_NVRAM_METADATA_OUT_FLAGS_LEN 4
8963 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_VALID_OFST 4
8965 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_VALID_WIDTH 1
8966 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_VALID_OFST 4
8967 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_VALID_LBN 1
8968 #define MC_CMD_NVRAM_METADATA_OUT_VERSION_VALID_WIDTH 1
8969 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_VALID_OFST 4
8971 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_VALID_WIDTH 1
8972 /* Subtype ID code for content of this partition */
8974 #define MC_CMD_NVRAM_METADATA_OUT_SUBTYPE_LEN 4
8975 /* 1st component of W.X.Y.Z version number for content of this partition */
8978 /* 2nd component of W.X.Y.Z version number for content of this partition */
8981 /* 3rd component of W.X.Y.Z version number for content of this partition */
8984 /* 4th component of W.X.Y.Z version number for content of this partition */
8987 /* Zero-terminated string describing the content of this partition */
8989 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_LEN 1
9015 /* Number of allocated MAC addresses */
9017 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_COUNT_LEN 4
9018 /* Spacing of allocated MAC addresses */
9020 #define MC_CMD_GET_MAC_ADDRESSES_OUT_MAC_STRIDE_LEN 4
9022 /* MC_CMD_DYNAMIC_SENSORS_LIMITS structuredef: Set of sensor limits. This
9028 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_WARNING_LEN 4
9032 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_OFST 4
9033 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_CRITICAL_LEN 4
9038 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_LO_FATAL_LEN 4
9043 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_WARNING_LEN 4
9048 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_CRITICAL_LEN 4
9053 #define MC_CMD_DYNAMIC_SENSORS_LIMITS_HI_FATAL_LEN 4
9057 /* MC_CMD_DYNAMIC_SENSORS_DESCRIPTION structuredef: Description of a sensor.
9066 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_HANDLE_LEN 4
9069 /* A human-readable name for the sensor (zero terminated string, max 32 bytes)
9071 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_NAME_OFST 4
9075 /* The type of the sensor device, and by implication the unit of that the
9079 #define MC_CMD_DYNAMIC_SENSORS_DESCRIPTION_TYPE_LEN 4
9098 /* MC_CMD_DYNAMIC_SENSORS_READING structuredef: State and value of a sensor.
9105 #define MC_CMD_DYNAMIC_SENSORS_READING_HANDLE_LEN 4
9108 /* The current value of the sensor */
9109 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_OFST 4
9110 #define MC_CMD_DYNAMIC_SENSORS_READING_VALUE_LEN 4
9115 #define MC_CMD_DYNAMIC_SENSORS_READING_STATE_LEN 4
9136 * Return a complete list of handles for sensors currently managed by the MC,
9137 * and a generation count for this version of the sensor table. On systems
9139 * MC_CMD_READ_SENSORS command. On multi-MC systems this may include sensors
9140 * added by the NMC. Sensor handles are persistent for the lifetime of the
9149 * again to update it's copy of the sensor table. The sensor count is provided
9169 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_LEN(num) (8+4*(num))
9170 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_NUM(len) (((len)-8)/4)
9175 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_GENERATION_LEN 4
9176 /* Number of sensors managed by the MC. Note that in principle, this can be
9177 * larger than the size of the HANDLES array.
9179 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_COUNT_OFST 4
9180 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_COUNT_LEN 4
9181 /* Array of sensor handles */
9183 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_LEN 4
9191 * Get descriptions for a set of sensors, specified as an array of sensor
9195 * effectively means the set of usable sensors is the intersection between the
9196 * sets of sensors known to the driver and the MC. On Riverhead this command is
9209 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_LEN(num) (0+4*(num))
9210 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_NUM(len) (((len)-0)/4)
9211 /* Array of sensor handles */
9213 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_LEN 4
9223 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_NUM(len) (((len)-0)/64)
9224 /* Array of MC_CMD_DYNAMIC_SENSORS_DESCRIPTION structures */
9234 * Read the state and value for a set of sensors, specified as an array of
9235 * sensor handles as returned by MC_CMD_DYNAMIC_SENSORS_LIST. In the case of a
9236 * broken sensor, then the state of the response's MC_CMD_DYNAMIC_SENSORS_VALUE
9240 * sensor table update is in progress, and effectively means the set of usable
9241 * sensors is the intersection between the sets of sensors known to the driver
9254 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_LEN(num) (0+4*(num))
9255 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_NUM(len) (((len)-0)/4)
9256 /* Array of sensor handles */
9258 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_LEN 4
9268 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_NUM(len) (((len)-0)/12)
9269 /* Array of MC_CMD_DYNAMIC_SENSORS_READING structures */
9277 #define MC_CMD_MAC_FLAGS_LEN 4
9282 #define MC_CMD_MAC_FLAGS_MASK_LEN 4
9292 #define MC_CMD_TRANSMISSION_MODE_LEN 4
9294 #define MC_CMD_TRANSMISSION_MODE_MASK_LEN 4
9303 #define MC_CMD_MAC_CONFIG_OPTIONS_LEN 4
9305 #define MC_CMD_MAC_CONFIG_OPTIONS_MASK_LEN 4
9334 #define MC_CMD_MAC_CTRL_IN_PORT_HANDLE_LEN 4
9338 #define MC_CMD_MAC_CTRL_IN_CONTROL_FLAGS_OFST 4
9339 #define MC_CMD_MAC_CTRL_IN_CONTROL_FLAGS_LEN 4
9343 /* MAC address of the device. */
9347 #define MC_CMD_MAC_CTRL_IN_ADDR_LO_LEN 4
9351 #define MC_CMD_MAC_CTRL_IN_ADDR_HI_LEN 4
9356 #define MC_CMD_MAC_CTRL_IN_MAX_FRAME_LEN_LEN 4
9359 #define MC_CMD_MAC_CTRL_IN_FCNTL_LEN 4
9363 /* Configure the MAC to transmit in one of promiscuous, unicast or broadcast
9367 #define MC_CMD_MAC_CTRL_IN_TRANSMISSION_MODE_LEN 4
9371 /* Flags to control and expand the configuration of the MAC. */
9373 #define MC_CMD_MAC_CTRL_IN_FLAGS_LEN 4
9382 #define MC_CMD_MAC_CTRL_IN_V2_PORT_HANDLE_LEN 4
9386 #define MC_CMD_MAC_CTRL_IN_V2_CONTROL_FLAGS_OFST 4
9387 #define MC_CMD_MAC_CTRL_IN_V2_CONTROL_FLAGS_LEN 4
9391 /* MAC address of the device. */
9395 #define MC_CMD_MAC_CTRL_IN_V2_ADDR_LO_LEN 4
9399 #define MC_CMD_MAC_CTRL_IN_V2_ADDR_HI_LEN 4
9404 #define MC_CMD_MAC_CTRL_IN_V2_MAX_FRAME_LEN_LEN 4
9407 #define MC_CMD_MAC_CTRL_IN_V2_FCNTL_LEN 4
9411 /* Configure the MAC to transmit in one of promiscuous, unicast or broadcast
9415 #define MC_CMD_MAC_CTRL_IN_V2_TRANSMISSION_MODE_LEN 4
9419 /* Flags to control and expand the configuration of the MAC. */
9421 #define MC_CMD_MAC_CTRL_IN_V2_FLAGS_LEN 4
9425 /* Priority-based flow control mask (QBB). PRIO7 corresponds to the highest
9430 #define MC_CMD_MAC_CTRL_IN_V2_PRIO_FCNTL_MASK_LEN 1
9455 #define MC_CMD_MAC_STATE_IN_LEN 4
9458 #define MC_CMD_MAC_STATE_IN_PORT_HANDLE_LEN 4
9462 /* The configured maximum frame length of the MAC. */
9464 #define MC_CMD_MAC_STATE_OUT_MAX_FRAME_LEN_LEN 4
9466 #define MC_CMD_MAC_STATE_OUT_FCNTL_OFST 4
9467 #define MC_CMD_MAC_STATE_OUT_FCNTL_LEN 4
9471 /* MAC address of the device. */
9475 #define MC_CMD_MAC_STATE_OUT_ADDR_LO_LEN 4
9479 #define MC_CMD_MAC_STATE_OUT_ADDR_HI_LEN 4
9484 #define MC_CMD_MAC_STATE_OUT_MAC_FAULT_FLAGS_LEN 4
9490 /* enum: Indicates a pending reconfiguration of the MAC. */
9492 /* The flags that were used to configure the MAC. This is a copy of the FLAGS
9496 #define MC_CMD_MAC_STATE_OUT_FLAGS_LEN 4
9500 /* The transmission mode that was used to configure the MAC. This is a copy of
9504 #define MC_CMD_MAC_STATE_OUT_TRANSMISSION_MODE_LEN 4
9508 /* The control flags that were used to configure the MAC. This is a copy of the
9512 #define MC_CMD_MAC_STATE_OUT_CONTROL_FLAGS_LEN 4
9520 * Obtain a handle that can be operated on to configure and query the status of
9533 #define MC_CMD_GET_ASSIGNED_PORT_HANDLE_OUT_LEN 4
9536 #define MC_CMD_GET_ASSIGNED_PORT_HANDLE_OUT_PORT_HANDLE_LEN 4
9539 #define MC_CMD_STAT_ID_LEN 4
9554 /* enum: This value is used to mark the start of a generation of statistics for
9555 * DMA synchronization. It is incremented whenever a new set of statistics is
9559 /* enum: This value is used to mark the end of a generation of statistics for
9573 /* enum: Total number of packets transmitted (includes pause frames). */
9617 /* enum: Total number of good packets received. */
9619 /* enum: Total number of BAD packets received. */
9621 /* enum: Total number of control frames received. */
9623 /* enum: Total number of unicast packets received. */
9625 /* enum: Total number of multicast packets received. */
9627 /* enum: Total number of broadcast packets received. */
9629 /* enum: Total number of bytes received. */
9631 /* enum: Total number of bytes received with bad CRC. */
9633 /* enum: Total number of bytes received with GOOD CRC. */
9675 /* enum: Packets received with lanes 0 and 1 character error. */
9679 /* enum: Packets received with lanes 0 and 1 disparity error. */
9691 /* enum: Number of uncorrected FEC codewords on link (RS-FEC only from Medford2
9695 /* enum: Number of corrected FEC codewords on link (RS-FEC only from Medford2
9699 /* enum: Number of corrected 10-bit symbol errors, lane 0 (RS-FEC only) */
9701 /* enum: Number of corrected 10-bit symbol errors, lane 1 (RS-FEC only) */
9703 /* enum: Number of corrected 10-bit symbol errors, lane 2 (RS-FEC only) */
9705 /* enum: Number of corrected 10-bit symbol errors, lane 3 (RS-FEC only) */
9710 /* MC_CMD_STAT_DESC structuredef: Structure describing the layout and size of
9714 /* Unique identifier of the statistic. Formatted as MC_CMD_STAT_ID */
9716 #define MC_CMD_STAT_DESC_STAT_ID_LEN 4
9736 /* Index of the statistic in the DMA buffer. */
9737 #define MC_CMD_STAT_DESC_STAT_INDEX_OFST 4
9741 /* Reserved for future extension (e.g. flags field) - currently always 0. */
9750 * Get a list of descriptors that describe the layout and size of the stats
9752 * the list is formatted as MC_CMD_STAT_DESC and provides the ID of each stat
9754 * size of the DMA buffer required when DMA mode is used. Note that the first
9760 * Provisions are made (but currently unused) for extending the size of the
9761 * descriptors, extending the size of the list beyond the maximum MCDI response
9762 * size, as well as the dynamic runtime updates of the list. Returns: 0 on
9763 * success, ENOENT on non-existent port handle
9772 /* Handle of port to get MAC statitstics descriptors for. */
9774 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_IN_PORT_HANDLE_LEN 4
9775 /* Offset of the first entry to return, for cases where not all entries fit in
9777 * requests updated by the number of entries already returned, as long as the
9780 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_IN_OFFSET_OFST 4
9781 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_IN_OFFSET_LEN 4
9788 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_NUM(len) (((len)-20)/8)
9789 /* Generation number of the stats buffer. This is incremented each time the
9790 * buffer is updated, and is used to verify the consistency of the buffer
9795 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_GENERATION_LEN 4
9796 /* Minimum size of the DMA buffer required to retrieve all statistics for the
9797 * port. This is the sum of the sizes of all the statistics, plus the size of
9799 * statistics. Drivers will typically round up this value to the granularity of
9802 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_DMA_BUFFER_SIZE_OFST 4
9803 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_DMA_BUFFER_SIZE_LEN 4
9805 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_FLAGS_LEN 4
9808 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_MORE_ENTRIES_WIDTH 1
9809 /* Size of the individual descriptor entry in the list. Determines the entry
9810 * stride in the list. Currently always set to size of MC_CMD_STAT_DESC, larger
9812 * new data to the end of the existing structure.
9815 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRY_SIZE_LEN 4
9816 /* Number of entries returned in the descriptor list. */
9818 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRY_COUNT_LEN 4
9819 /* List of descriptors. Each entry is formatted as MC_CMD_STAT_DESC and
9820 * provides the ID of each stat and its location and size in the buffer. The
9827 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_LO_LEN 4
9831 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_HI_LEN 4
9834 #define MC_CMD_MAC_STATISTICS_DESCRIPTOR_OUT_ENTRIES_MINNUM 1
9844 * aforementioned command for the format and contents of the stats DMA buffer.
9847 * success, ETIME if the DMA buffer is not ready, ENOENT on non-existent port
9857 /* Handle of port to get MAC statistics for. */
9859 #define MC_CMD_MAC_STATISTICS_IN_PORT_HANDLE_LEN 4
9861 #define MC_CMD_MAC_STATISTICS_IN_CMD_OFST 4
9862 #define MC_CMD_MAC_STATISTICS_IN_CMD_LEN 4
9863 #define MC_CMD_MAC_STATISTICS_IN_DMA_OFST 4
9865 #define MC_CMD_MAC_STATISTICS_IN_DMA_WIDTH 1
9866 #define MC_CMD_MAC_STATISTICS_IN_CLEAR_OFST 4
9867 #define MC_CMD_MAC_STATISTICS_IN_CLEAR_LBN 1
9868 #define MC_CMD_MAC_STATISTICS_IN_CLEAR_WIDTH 1
9869 #define MC_CMD_MAC_STATISTICS_IN_PERIODIC_CHANGE_OFST 4
9871 #define MC_CMD_MAC_STATISTICS_IN_PERIODIC_CHANGE_WIDTH 1
9872 #define MC_CMD_MAC_STATISTICS_IN_PERIODIC_ENABLE_OFST 4
9874 #define MC_CMD_MAC_STATISTICS_IN_PERIODIC_ENABLE_WIDTH 1
9875 #define MC_CMD_MAC_STATISTICS_IN_PERIODIC_NOEVENT_OFST 4
9876 #define MC_CMD_MAC_STATISTICS_IN_PERIODIC_NOEVENT_LBN 4
9877 #define MC_CMD_MAC_STATISTICS_IN_PERIODIC_NOEVENT_WIDTH 1
9878 #define MC_CMD_MAC_STATISTICS_IN_PERIOD_MS_OFST 4
9881 /* This is the address of the DMA buffer to use for transfer of the statistics.
9882 * Only valid if the DMA flag is set to 1.
9887 #define MC_CMD_MAC_STATISTICS_IN_DMA_ADDR_LO_LEN 4
9891 #define MC_CMD_MAC_STATISTICS_IN_DMA_ADDR_HI_LEN 4
9894 /* This is the length of the DMA buffer to use for the transfer of the
9897 * the command will fail with EINVAL. Only valid if the DMA flag is set to 1.
9900 #define MC_CMD_MAC_STATISTICS_IN_DMA_LEN_LEN 4
9906 #define MC_CMD_MAC_STATISTICS_OUT_LEN(num) (4+1*(num))
9907 #define MC_CMD_MAC_STATISTICS_OUT_DATA_NUM(len) (((len)-4)/1)
9908 /* length of the data in bytes */
9910 #define MC_CMD_MAC_STATISTICS_OUT_DATALEN_LEN 4
9911 #define MC_CMD_MAC_STATISTICS_OUT_DATA_OFST 4
9912 #define MC_CMD_MAC_STATISTICS_OUT_DATA_LEN 1
9913 #define MC_CMD_MAC_STATISTICS_OUT_DATA_MINNUM 1
9923 #define NET_PORT_HANDLE_DESC_PORT_HANDLE_LEN 4
9926 /* Includes the type of port e.g. physical, virtual or MAE MPORT and other
9929 #define NET_PORT_HANDLE_DESC_PORT_PROPERTIES_OFST 4
9931 #define NET_PORT_HANDLE_DESC_PORT_PROPERTIES_LO_OFST 4
9932 #define NET_PORT_HANDLE_DESC_PORT_PROPERTIES_LO_LEN 4
9936 #define NET_PORT_HANDLE_DESC_PORT_PROPERTIES_HI_LEN 4
9939 #define NET_PORT_HANDLE_DESC_PORT_TYPE_OFST 4
9945 #define NET_PORT_HANDLE_DESC_IS_ZOMBIE_OFST 4
9947 #define NET_PORT_HANDLE_DESC_IS_ZOMBIE_WIDTH 1
9952 #define NET_PORT_HANDLE_DESC_ENTRY_SRC_LEN 1
9955 /* enum: The port was enumerated at start of day. */
9963 /* This is an opaque 40 byte label exposed to users as a unique identifier of
9964 * the port. It is represented as a zero-terminated ASCII string and assigned
9979 * function type of each port (either physical or virtual) is also reported.
9980 * After a start-of-day port enumeration, firmware keeps track of all available
9984 * ports. The command is also clear-on-read and repeated calls will drain the
9999 #define MC_CMD_ENUM_PORTS_OUT_LEN(num) (12+1*(num))
10000 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_NUM(len) (((len)-12)/1)
10003 #define MC_CMD_ENUM_PORTS_OUT_FLAGS_LEN 4
10006 #define MC_CMD_ENUM_PORTS_OUT_MORE_WIDTH 1
10007 /* The number of NET_PORT_HANDLE_DESC structures in PORT_HANDLES. */
10008 #define MC_CMD_ENUM_PORTS_OUT_PORT_COUNT_OFST 4
10009 #define MC_CMD_ENUM_PORTS_OUT_PORT_COUNT_LEN 4
10011 #define MC_CMD_ENUM_PORTS_OUT_SIZEOF_NET_PORT_HANDLE_DESC_LEN 4
10012 /* Array of NET_PORT_HANDLE_DESC structures. Callers must use must use the
10018 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_LEN 1
10024 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_HANDLE_LEN 4
10028 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_PROPERTIES_LO_LEN 4
10032 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_PORT_PROPERTIES_HI_LEN 4
10038 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_IS_ZOMBIE_WIDTH 1
10040 #define MC_CMD_ENUM_PORTS_OUT_PORT_HANDLES_ENTRY_SRC_LEN 1
10047 * Read properties of the transceiver associated with the port. Can be either
10058 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_IN_LEN 4
10061 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_IN_PORT_HANDLE_LEN 4
10076 /* Preferred FEC modes. This is a function of the cable type and length. */
10078 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_PREFERRED_FEC_MASK_LEN 4
10082 /* SFF-8042 code reported by the module. */
10087 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_MEDIUM_LEN 1
10095 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_MEDIA_SUBTYPE_LEN 1
10098 /* enum: Ethernet over twisted-pair copper cables for distances up to 100
10102 /* enum: Ethernet over twin-axial, balanced copper cable. */
10128 /* enum: BASE-R encoding and PAM4 over single-mode fiber with reach up to at
10132 /* String of the vendor name as intepreted by NMC firmware. NMC firmware
10134 * presented as 16 bytes of ASCII characters padded with spaces. It can also be
10135 * represented as 16 bytes of zeros if the field is unspecified for the
10136 * connected module. See SFF-8472/CMIS specifications for details.
10139 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_VENDOR_NAME_LEN 1
10142 * as 16 bytes of ASCII chars padded with spaces. It can also be 16 bytes of
10146 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_VENDOR_PN_LEN 1
10148 /* Serial number of the module presented as 16 bytes of ASCII characters padded
10149 * with spaces. It can also be 16 bytes of zeros if the field is unspecified
10150 * for the connected module. See SFF-8472/CMIS specifications for details.
10153 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_SERIAL_NUMBER_LEN 1
10155 /* This reports the number of module changes detected by the NMC firmware. */
10157 #define MC_CMD_GET_TRANSCEIVER_PROPERTIES_OUT_PORT_MODULECHANGE_SEQ_NUM_LEN 1
10169 * consists of the MAC and the PHY, and excludes any modules inserted into the
10175 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_IN_LEN 4
10178 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_IN_PORT_HANDLE_LEN 4
10182 /* Supported capabilities of the port in its current configuration. */
10189 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_ABILITIES_FEC_MASK_LEN 4
10191 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_ABILITIES_FEC_REQ_LEN 4
10193 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_ABILITIES_PAUSE_MASK_LEN 1
10194 /* Number of lanes supported by the port in its current configuration. */
10196 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_NUM_LANES_LEN 1
10197 /* Bitmask of supported loopback modes. Where the response to this command
10202 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_LOOPBACK_MODES_MASK_LEN 1
10211 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_MDI_INDEX_LEN 1
10216 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_MDI_LANE_MASK_LEN 1
10219 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_MAX_FRAME_LEN_LEN 4
10223 /* Supported capabilities of the port in its current configuration. */
10226 /* Number of lanes supported by the port in its current configuration. */
10228 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_NUM_LANES_LEN 1
10229 /* Bitmask of supported loopback modes. Where the response to this command
10234 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_LOOPBACK_MODES_MASK_LEN 1
10243 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_MDI_INDEX_LEN 1
10248 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_MDI_LANE_MASK_LEN 1
10251 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_MAX_FRAME_LEN_LEN 4
10252 /* Bitmask of supported loopback modes. This field replaces the
10253 * LOOPBACK_MODES_MASK field which is defined under version 1 of this command.
10258 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_LOOPBACK_MODES_MASK_V2_LO_LEN 4
10262 #define MC_CMD_GET_FIXED_PORT_PROPERTIES_OUT_V2_LOOPBACK_MODES_MASK_V2_HI_LEN 4
10272 * Read media-specific data from the PHY (e.g. SFP/SFP+ module ID information
10286 #define MC_CMD_GET_MODULE_DATA_IN_PORT_HANDLE_LEN 4
10287 /* 7 bit I2C address of the device. DEPRECATED: This field is replaced by
10288 * MODULE_ADDR in V2. Use V2 of this command for proper alignment and easier
10293 /* 0 if the page does not support banked access, non-zero otherwise. Non-zero
10294 * BANK is valid if OFFSET is in the range 80h - ffh, i.e. in the Upper Memory
10299 /* 0 if paged access is not supported, non-zero otherwise. Non-zero PAGE is
10300 * valid if OFFSET is in the range 80h - ffh.
10304 /* Offset in the range 00h - 7fh to access lower memory. Offset in the range
10305 * 80h - ffh to access upper memory
10308 #define MC_CMD_GET_MODULE_DATA_IN_OFFSET_LEN 1
10310 #define MC_CMD_GET_MODULE_DATA_IN_LENGTH_LEN 4
10313 * 8-bit wide ADDRESSING field. This new field provides a correctly aligned
10314 * container for the 7-bit DEVADDR field from V1, now renamed MODULE_ADDR, to
10320 #define MC_CMD_GET_MODULE_DATA_IN_V2_PORT_HANDLE_LEN 4
10321 /* 7 bit I2C address of the device. DEPRECATED: This field is replaced by
10322 * MODULE_ADDR in V2. Use V2 of this command for proper alignment and easier
10327 /* 0 if the page does not support banked access, non-zero otherwise. Non-zero
10328 * BANK is valid if OFFSET is in the range 80h - ffh, i.e. in the Upper Memory
10333 /* 0 if paged access is not supported, non-zero otherwise. Non-zero PAGE is
10334 * valid if OFFSET is in the range 80h - ffh.
10338 /* Offset in the range 00h - 7fh to access lower memory. Offset in the range
10339 * 80h - ffh to access upper memory
10342 #define MC_CMD_GET_MODULE_DATA_IN_V2_OFFSET_LEN 1
10344 #define MC_CMD_GET_MODULE_DATA_IN_V2_LENGTH_LEN 4
10346 #define MC_CMD_GET_MODULE_DATA_IN_V2_ADDRESSING_OFST 4
10347 #define MC_CMD_GET_MODULE_DATA_IN_V2_ADDRESSING_LEN 1
10348 #define MC_CMD_GET_MODULE_DATA_IN_V2_MODULE_ADDR_OFST 4
10356 #define MC_CMD_GET_MODULE_DATA_OUT_LEN(num) (4+1*(num))
10357 #define MC_CMD_GET_MODULE_DATA_OUT_DATA_NUM(len) (((len)-4)/1)
10358 /* length of the data in bytes */
10360 #define MC_CMD_GET_MODULE_DATA_OUT_DATALEN_LEN 4
10361 #define MC_CMD_GET_MODULE_DATA_OUT_DATA_OFST 4
10362 #define MC_CMD_GET_MODULE_DATA_OUT_DATA_LEN 1
10363 #define MC_CMD_GET_MODULE_DATA_OUT_DATA_MINNUM 1
10368 #define EVENT_MASK_LEN 4
10370 #define EVENT_MASK_TYPE_LEN 4
10387 /* MC_CMD_SET_NETPORT_EVENTS_MASK_IN msgrequest: Enable or disable delivery of
10389 * start of day, or after any control interface reset (FLR, ENTITY_RESET,
10396 #define MC_CMD_SET_NETPORT_EVENTS_MASK_IN_PORT_HANDLE_LEN 4
10397 /* Bitmask of events to enable. Event delivery is enabled when corresponding
10398 * bit is 1, disabled when 0.
10400 #define MC_CMD_SET_NETPORT_EVENTS_MASK_IN_EVENT_MASK_OFST 4
10401 #define MC_CMD_SET_NETPORT_EVENTS_MASK_IN_EVENT_MASK_LEN 4
10421 #define MC_CMD_GET_NETPORT_EVENTS_MASK_IN_LEN 4
10424 #define MC_CMD_GET_NETPORT_EVENTS_MASK_IN_PORT_HANDLE_LEN 4
10427 #define MC_CMD_GET_NETPORT_EVENTS_MASK_OUT_LEN 4
10428 /* Bitmask of events enabled. Event delivery is enabled when corresponding bit
10429 * is 1, disabled when 0.
10432 #define MC_CMD_GET_NETPORT_EVENTS_MASK_OUT_EVENT_MASK_LEN 4
10453 #define MC_CMD_GET_SUPPORTED_NETPORT_EVENTS_OUT_LEN 4
10454 /* Bitmask of events enabled. Event delivery is enabled when corresponding bit
10455 * is 1, disabled when 0.
10458 #define MC_CMD_GET_SUPPORTED_NETPORT_EVENTS_OUT_EVENT_MASK_LEN 4
10469 * aforementioned command for the format and contents of the stats DMA buffer.
10472 * success, ETIME if the DMA buffer is not ready, ENOENT on non-existent port
10482 /* Handle of port to get MAC statistics for. */
10484 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PORT_HANDLE_LEN 4
10486 #define MC_CMD_GET_NETPORT_STATISTICS_IN_CMD_OFST 4
10487 #define MC_CMD_GET_NETPORT_STATISTICS_IN_CMD_LEN 4
10488 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_OFST 4
10490 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_WIDTH 1
10491 #define MC_CMD_GET_NETPORT_STATISTICS_IN_CLEAR_OFST 4
10492 #define MC_CMD_GET_NETPORT_STATISTICS_IN_CLEAR_LBN 1
10493 #define MC_CMD_GET_NETPORT_STATISTICS_IN_CLEAR_WIDTH 1
10494 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIODIC_CHANGE_OFST 4
10496 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIODIC_CHANGE_WIDTH 1
10497 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIODIC_ENABLE_OFST 4
10499 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIODIC_ENABLE_WIDTH 1
10500 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIODIC_NOEVENT_OFST 4
10501 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIODIC_NOEVENT_LBN 4
10502 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIODIC_NOEVENT_WIDTH 1
10503 #define MC_CMD_GET_NETPORT_STATISTICS_IN_PERIOD_MS_OFST 4
10506 /* Specifies the physical address of the DMA buffer to use for statistics
10507 * transfer. This field must contain a valid address under either of these
10508 * conditions: 1. DMA flag is set (immediate DMA requested) 2. Both
10514 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_ADDR_LO_LEN 4
10518 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_ADDR_HI_LEN 4
10521 /* Specifies the length of the DMA buffer in bytes for statistics transfer. The
10525 * either of these conditions: 1. DMA flag is set (immediate DMA requested) 2.
10529 #define MC_CMD_GET_NETPORT_STATISTICS_IN_DMA_LEN_LEN 4
10536 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_NUM(len) (((len)-0)/8)
10537 /* Statistics buffer. Zero-length if DMA mode is used. The statistics buffer is
10538 * an array of 8-byte counter values, containing the generation start marker,
10539 * stats counters, and generation end marker. The index of each counter in the
10546 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_LO_LEN 4
10549 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_HI_OFST 4
10550 #define MC_CMD_GET_NETPORT_STATISTICS_OUT_STATS_HI_LEN 4
10558 #define EVB_PORT_ID_LEN 4
10560 #define EVB_PORT_ID_PORT_ID_LEN 4
10567 /* enum: External network port 1 */
10582 /* enum: NMC firmware partition (this is intentionally an alias of MC_FIRMWARE)
10591 /* enum: Factory configuration TLV partition (this is intentionally an alias of
10597 /* enum: User configuration TLV partition (this is intentionally an alias of
10605 /* enum: Expansion ROM configuration data for port 1 */
10611 /* enum: Non-volatile log output partition */
10613 /* enum: Non-volatile log output partition for NMC firmware (this is
10614 * intentionally an alias of LOG)
10617 /* enum: Non-volatile log output of second core on dual-core device */
10627 /* enum: Start of range used for PHY partitions (low 8 bits are the PHY ID) */
10629 /* enum: End of range used for PHY partitions (low 8 bits are the PHY ID) */
10639 /* enum: Non-volatile log output partition for FC */
10641 /* enum: FPGA Stage 1 bitstream */
10647 /* enum: FPGA User XCLBIN (this is intentionally an alias of FPGA_REGION0) */
10659 /* enum: SUC firmware partition (this is intentionally an alias of
10663 /* enum: MUM Non-volatile log output partition. */
10665 /* enum: SUC Non-volatile log output partition (this is intentionally an alias
10666 * of MUM_LOG).
10683 /* enum: Non-volatile log output partition for Expansion ROM (this is
10684 * intentionally an alias of PXE_LOG).
10687 /* enum: Used for XIP code of shmbooted images */
10696 * of MANUFACTURING)
10699 /* enum: Spare partition 4 */
10720 * platforms. See SF-119124-PS. The STATIC_CONFIG partition may contain a
10721 * subset of the information stored in this partition.
10730 /* enum: Bundle update non-volatile log output partition */
10734 /* enum: Partition to store ASN.1 format Bundle Signature for checking. */
10742 /* enum: System microcontroller access to primary System-on-Chip flash */
10744 /* enum: System microcontroller access to secondary System-on-Chip flash (if
10749 * details of sensors leading up to a critical failure (where the board is shut
10753 /* enum: System-on-Chip configuration information (see XN-200467-PS). */
10755 /* enum: System-on-Chip update information. */
10757 /* enum: Virtual partition. Write-only. Writes will actually be sent to an
10763 /* enum: MC/NMC (first stage) bootloader firmware. (For X4, see XN-202072-PS
10764 * and XN-202084-SW section 3.1).
10767 /* enum: Start of reserved value range (firmware may use for any purpose) */
10769 /* enum: End of reserved value range (firmware may use for any purpose) */
10773 /* enum: Recovery Flash Partition Table, see SF-122606-TC. (this is
10774 * intentionally an alias of RECOVERY_MAP)
10779 /* enum: Flash Partition Table, see SF-122606-TC. (this is intentionally an
10780 * alias of PARTITION_MAP)
10787 #define LICENSED_APP_ID_LEN 4
10789 #define LICENSED_APP_ID_ID_LEN 4
10814 /* enum: Capture SolarSystem 1G */
10827 /* Bitmask of licensed firmware features */
10831 #define LICENSED_V3_FEATURES_MASK_LO_LEN 4
10834 #define LICENSED_V3_FEATURES_MASK_HI_OFST 4
10835 #define LICENSED_V3_FEATURES_MASK_HI_LEN 4
10840 #define LICENSED_V3_FEATURES_RX_CUT_THROUGH_WIDTH 1
10842 #define LICENSED_V3_FEATURES_PIO_LBN 1
10843 #define LICENSED_V3_FEATURES_PIO_WIDTH 1
10846 #define LICENSED_V3_FEATURES_EVQ_TIMER_WIDTH 1
10849 #define LICENSED_V3_FEATURES_CLOCK_WIDTH 1
10851 #define LICENSED_V3_FEATURES_RX_TIMESTAMPS_LBN 4
10852 #define LICENSED_V3_FEATURES_RX_TIMESTAMPS_WIDTH 1
10855 #define LICENSED_V3_FEATURES_TX_TIMESTAMPS_WIDTH 1
10858 #define LICENSED_V3_FEATURES_RX_SNIFF_WIDTH 1
10861 #define LICENSED_V3_FEATURES_TX_SNIFF_WIDTH 1
10864 #define LICENSED_V3_FEATURES_PROXY_FILTER_OPS_WIDTH 1
10867 #define LICENSED_V3_FEATURES_EVENT_CUT_THROUGH_WIDTH 1
10873 /* lower 16 bits of timestamp data */
10878 /* Type of TX event, ordinary TX completion, low or high part of TX timestamp
10881 #define TX_TIMESTAMP_EVENT_TX_EV_TYPE_LEN 1
10888 /* enum: This is the low part of a TX timestamp for a CTPIO transmission. The
10892 /* enum: This is the high part of a TX timestamp for a CTPIO transmission. The
10896 /* enum: This is the low part of a TX timestamp event */
10898 /* enum: This is the high part of a TX timestamp event */
10902 /* upper 16 bits of timestamp data */
10903 #define TX_TIMESTAMP_EVENT_TSTAMP_DATA_HI_OFST 4
10909 #define RSS_MODE_LEN 1
10910 /* The RSS mode for a particular packet type is a value from 0 - 15 which can
10911 * be considered as 4 bits selecting which fields are included in the hash. (A
10913 * generation tools require this structure to be a whole number of bytes wide,
10914 * but only 4 bits are relevant.
10917 #define RSS_MODE_HASH_SELECTOR_LEN 1
10920 #define RSS_MODE_HASH_SRC_ADDR_WIDTH 1
10922 #define RSS_MODE_HASH_DST_ADDR_LBN 1
10923 #define RSS_MODE_HASH_DST_ADDR_WIDTH 1
10926 #define RSS_MODE_HASH_SRC_PORT_WIDTH 1
10929 #define RSS_MODE_HASH_DST_PORT_WIDTH 1
10937 * end with an address for each 4k of host memory required to back the EVQ.
10949 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_NUM(len) (((len)-36)/8)
10952 #define MC_CMD_INIT_EVQ_IN_SIZE_LEN 4
10954 * local queue index. The calling client must be the currently-assigned user of
10957 #define MC_CMD_INIT_EVQ_IN_INSTANCE_OFST 4
10958 #define MC_CMD_INIT_EVQ_IN_INSTANCE_LEN 4
10962 #define MC_CMD_INIT_EVQ_IN_TMR_LOAD_LEN 4
10963 /* The reload value is ignored in one-shot modes */
10965 #define MC_CMD_INIT_EVQ_IN_TMR_RELOAD_LEN 4
10968 #define MC_CMD_INIT_EVQ_IN_FLAGS_LEN 4
10971 #define MC_CMD_INIT_EVQ_IN_FLAG_INTERRUPTING_WIDTH 1
10973 #define MC_CMD_INIT_EVQ_IN_FLAG_RPTR_DOS_LBN 1
10974 #define MC_CMD_INIT_EVQ_IN_FLAG_RPTR_DOS_WIDTH 1
10977 #define MC_CMD_INIT_EVQ_IN_FLAG_INT_ARMD_WIDTH 1
10980 #define MC_CMD_INIT_EVQ_IN_FLAG_CUT_THRU_WIDTH 1
10982 #define MC_CMD_INIT_EVQ_IN_FLAG_RX_MERGE_LBN 4
10983 #define MC_CMD_INIT_EVQ_IN_FLAG_RX_MERGE_WIDTH 1
10986 #define MC_CMD_INIT_EVQ_IN_FLAG_TX_MERGE_WIDTH 1
10989 #define MC_CMD_INIT_EVQ_IN_FLAG_USE_TIMER_WIDTH 1
10991 #define MC_CMD_INIT_EVQ_IN_TMR_MODE_LEN 4
10998 /* enum: Hold-off */
11002 #define MC_CMD_INIT_EVQ_IN_TARGET_EVQ_LEN 4
11008 #define MC_CMD_INIT_EVQ_IN_IRQ_NUM_LEN 4
11011 #define MC_CMD_INIT_EVQ_IN_COUNT_MODE_LEN 4
11022 #define MC_CMD_INIT_EVQ_IN_COUNT_THRSHLD_LEN 4
11023 /* 64-bit address of 4k of 4k-aligned host memory buffer */
11027 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_LO_LEN 4
11031 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_HI_LEN 4
11034 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_MINNUM 1
11039 #define MC_CMD_INIT_EVQ_OUT_LEN 4
11042 #define MC_CMD_INIT_EVQ_OUT_IRQ_LEN 4
11049 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_NUM(len) (((len)-36)/8)
11052 #define MC_CMD_INIT_EVQ_V2_IN_SIZE_LEN 4
11054 * local queue index. The calling client must be the currently-assigned user of
11057 #define MC_CMD_INIT_EVQ_V2_IN_INSTANCE_OFST 4
11058 #define MC_CMD_INIT_EVQ_V2_IN_INSTANCE_LEN 4
11062 #define MC_CMD_INIT_EVQ_V2_IN_TMR_LOAD_LEN 4
11063 /* The reload value is ignored in one-shot modes */
11065 #define MC_CMD_INIT_EVQ_V2_IN_TMR_RELOAD_LEN 4
11068 #define MC_CMD_INIT_EVQ_V2_IN_FLAGS_LEN 4
11071 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INTERRUPTING_WIDTH 1
11073 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RPTR_DOS_LBN 1
11074 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RPTR_DOS_WIDTH 1
11077 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_INT_ARMD_WIDTH 1
11080 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_CUT_THRU_WIDTH 1
11082 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RX_MERGE_LBN 4
11083 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_RX_MERGE_WIDTH 1
11086 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TX_MERGE_WIDTH 1
11089 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_USE_TIMER_WIDTH 1
11092 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_WIDTH 4
11096 * over-ridden by firmware based on licenses and firmware variant in order to
11098 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags.
11102 * over-ridden by firmware based on licenses and firmware variant in order to
11104 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags.
11107 /* enum: MEDFORD only. Certain initialisation flags may be over-ridden by
11109 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags.
11114 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_EXT_WIDTH_WIDTH 1
11116 #define MC_CMD_INIT_EVQ_V2_IN_TMR_MODE_LEN 4
11123 /* enum: Hold-off */
11127 #define MC_CMD_INIT_EVQ_V2_IN_TARGET_EVQ_LEN 4
11133 #define MC_CMD_INIT_EVQ_V2_IN_IRQ_NUM_LEN 4
11136 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_MODE_LEN 4
11147 #define MC_CMD_INIT_EVQ_V2_IN_COUNT_THRSHLD_LEN 4
11148 /* 64-bit address of 4k of 4k-aligned host memory buffer */
11152 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_LO_LEN 4
11156 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_HI_LEN 4
11159 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_MINNUM 1
11167 #define MC_CMD_INIT_EVQ_V2_OUT_IRQ_LEN 4
11169 #define MC_CMD_INIT_EVQ_V2_OUT_FLAGS_OFST 4
11170 #define MC_CMD_INIT_EVQ_V2_OUT_FLAGS_LEN 4
11171 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_CUT_THRU_OFST 4
11173 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_CUT_THRU_WIDTH 1
11174 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RX_MERGE_OFST 4
11175 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RX_MERGE_LBN 1
11176 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RX_MERGE_WIDTH 1
11177 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_TX_MERGE_OFST 4
11179 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_TX_MERGE_WIDTH 1
11180 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_OFST 4
11182 #define MC_CMD_INIT_EVQ_V2_OUT_FLAG_RXQ_FORCE_EV_MERGING_WIDTH 1
11184 /* MC_CMD_INIT_EVQ_V3_IN msgrequest: Extended request to specify per-queue
11190 #define MC_CMD_INIT_EVQ_V3_IN_SIZE_LEN 4
11192 * local queue index. The calling client must be the currently-assigned user of
11195 #define MC_CMD_INIT_EVQ_V3_IN_INSTANCE_OFST 4
11196 #define MC_CMD_INIT_EVQ_V3_IN_INSTANCE_LEN 4
11200 #define MC_CMD_INIT_EVQ_V3_IN_TMR_LOAD_LEN 4
11201 /* The reload value is ignored in one-shot modes */
11203 #define MC_CMD_INIT_EVQ_V3_IN_TMR_RELOAD_LEN 4
11206 #define MC_CMD_INIT_EVQ_V3_IN_FLAGS_LEN 4
11209 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INTERRUPTING_WIDTH 1
11211 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RPTR_DOS_LBN 1
11212 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RPTR_DOS_WIDTH 1
11215 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_INT_ARMD_WIDTH 1
11218 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_CUT_THRU_WIDTH 1
11220 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RX_MERGE_LBN 4
11221 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_RX_MERGE_WIDTH 1
11224 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TX_MERGE_WIDTH 1
11227 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_USE_TIMER_WIDTH 1
11230 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_WIDTH 4
11234 * over-ridden by firmware based on licenses and firmware variant in order to
11236 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags.
11240 * over-ridden by firmware based on licenses and firmware variant in order to
11242 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags.
11245 /* enum: MEDFORD only. Certain initialisation flags may be over-ridden by
11247 * MC_CMD_INIT_EVQ_V2/MC_CMD_INIT_EVQ_V2_OUT/FLAGS for list of affected flags.
11252 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_EXT_WIDTH_WIDTH 1
11254 #define MC_CMD_INIT_EVQ_V3_IN_TMR_MODE_LEN 4
11261 /* enum: Hold-off */
11265 #define MC_CMD_INIT_EVQ_V3_IN_TARGET_EVQ_LEN 4
11271 #define MC_CMD_INIT_EVQ_V3_IN_IRQ_NUM_LEN 4
11274 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_MODE_LEN 4
11285 #define MC_CMD_INIT_EVQ_V3_IN_COUNT_THRSHLD_LEN 4
11286 /* 64-bit address of 4k of 4k-aligned host memory buffer */
11290 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_LO_LEN 4
11294 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_HI_LEN 4
11297 #define MC_CMD_INIT_EVQ_V3_IN_DMA_ADDR_MINNUM 1
11302 * value. This field is ignored and per-queue merging is disabled if
11306 #define MC_CMD_INIT_EVQ_V3_IN_RX_MERGE_TIMEOUT_NS_LEN 4
11309 * value. This field is ignored and per-queue merging is disabled if
11313 #define MC_CMD_INIT_EVQ_V3_IN_TX_MERGE_TIMEOUT_NS_LEN 4
11319 #define MC_CMD_INIT_EVQ_V3_OUT_IRQ_LEN 4
11321 #define MC_CMD_INIT_EVQ_V3_OUT_FLAGS_OFST 4
11322 #define MC_CMD_INIT_EVQ_V3_OUT_FLAGS_LEN 4
11323 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_CUT_THRU_OFST 4
11325 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_CUT_THRU_WIDTH 1
11326 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RX_MERGE_OFST 4
11327 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RX_MERGE_LBN 1
11328 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RX_MERGE_WIDTH 1
11329 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_TX_MERGE_OFST 4
11331 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_TX_MERGE_WIDTH 1
11332 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RXQ_FORCE_EV_MERGING_OFST 4
11334 #define MC_CMD_INIT_EVQ_V3_OUT_FLAG_RXQ_FORCE_EV_MERGING_WIDTH 1
11340 * arguments end with an address for each 4k of host memory required to back
11355 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_NUM(len) (((len)-28)/8)
11358 #define MC_CMD_INIT_RXQ_IN_SIZE_LEN 4
11361 #define MC_CMD_INIT_RXQ_IN_TARGET_EVQ_OFST 4
11362 #define MC_CMD_INIT_RXQ_IN_TARGET_EVQ_LEN 4
11365 #define MC_CMD_INIT_RXQ_IN_LABEL_LEN 4
11367 * local queue index. The calling client must be the currently-assigned user of
11371 #define MC_CMD_INIT_RXQ_IN_INSTANCE_LEN 4
11374 #define MC_CMD_INIT_RXQ_IN_FLAGS_LEN 4
11377 #define MC_CMD_INIT_RXQ_IN_FLAG_BUFF_MODE_WIDTH 1
11379 #define MC_CMD_INIT_RXQ_IN_FLAG_HDR_SPLIT_LBN 1
11380 #define MC_CMD_INIT_RXQ_IN_FLAG_HDR_SPLIT_WIDTH 1
11383 #define MC_CMD_INIT_RXQ_IN_FLAG_TIMESTAMP_WIDTH 1
11386 #define MC_CMD_INIT_RXQ_IN_CRC_MODE_WIDTH 4
11389 #define MC_CMD_INIT_RXQ_IN_FLAG_CHAIN_WIDTH 1
11392 #define MC_CMD_INIT_RXQ_IN_FLAG_PREFIX_WIDTH 1
11395 #define MC_CMD_INIT_RXQ_IN_FLAG_DISABLE_SCATTER_WIDTH 1
11398 #define MC_CMD_INIT_RXQ_IN_UNUSED_WIDTH 1
11401 #define MC_CMD_INIT_RXQ_IN_OWNER_ID_LEN 4
11402 /* The port ID associated with the v-adaptor which should contain this DMAQ. */
11404 #define MC_CMD_INIT_RXQ_IN_PORT_ID_LEN 4
11405 /* 64-bit address of 4k of 4k-aligned host memory buffer */
11409 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_LO_LEN 4
11413 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_HI_LEN 4
11416 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_MINNUM 1
11426 #define MC_CMD_INIT_RXQ_EXT_IN_SIZE_LEN 4
11430 #define MC_CMD_INIT_RXQ_EXT_IN_TARGET_EVQ_OFST 4
11431 #define MC_CMD_INIT_RXQ_EXT_IN_TARGET_EVQ_LEN 4
11437 #define MC_CMD_INIT_RXQ_EXT_IN_LABEL_LEN 4
11439 * local queue index. The calling client must be the currently-assigned user of
11443 #define MC_CMD_INIT_RXQ_EXT_IN_INSTANCE_LEN 4
11446 #define MC_CMD_INIT_RXQ_EXT_IN_FLAGS_LEN 4
11449 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_BUFF_MODE_WIDTH 1
11451 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_HDR_SPLIT_LBN 1
11452 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_HDR_SPLIT_WIDTH 1
11455 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_TIMESTAMP_WIDTH 1
11458 #define MC_CMD_INIT_RXQ_EXT_IN_CRC_MODE_WIDTH 4
11461 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_CHAIN_WIDTH 1
11464 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_PREFIX_WIDTH 1
11467 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_DISABLE_SCATTER_WIDTH 1
11470 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_MODE_WIDTH 4
11476 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with
11477 * multiple fixed-size packet buffers within each bucket. For a full
11478 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath
11486 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SNAPSHOT_MODE_WIDTH 1
11497 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1
11500 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_FORCE_EV_MERGING_WIDTH 1
11503 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_NO_CONT_EV_WIDTH 1
11506 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_SUPPRESS_RX_EVENTS_WIDTH 1
11509 #define MC_CMD_INIT_RXQ_EXT_IN_OWNER_ID_LEN 4
11510 /* The port ID associated with the v-adaptor which should contain this DMAQ. */
11512 #define MC_CMD_INIT_RXQ_EXT_IN_PORT_ID_LEN 4
11513 /* 64-bit address of 4k of 4k-aligned host memory buffer */
11517 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_LO_LEN 4
11521 #define MC_CMD_INIT_RXQ_EXT_IN_DMA_ADDR_HI_LEN 4
11527 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */
11529 #define MC_CMD_INIT_RXQ_EXT_IN_SNAPSHOT_LENGTH_LEN 4
11535 #define MC_CMD_INIT_RXQ_V3_IN_SIZE_LEN 4
11539 #define MC_CMD_INIT_RXQ_V3_IN_TARGET_EVQ_OFST 4
11540 #define MC_CMD_INIT_RXQ_V3_IN_TARGET_EVQ_LEN 4
11546 #define MC_CMD_INIT_RXQ_V3_IN_LABEL_LEN 4
11548 * local queue index. The calling client must be the currently-assigned user of
11552 #define MC_CMD_INIT_RXQ_V3_IN_INSTANCE_LEN 4
11555 #define MC_CMD_INIT_RXQ_V3_IN_FLAGS_LEN 4
11558 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_BUFF_MODE_WIDTH 1
11560 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_HDR_SPLIT_LBN 1
11561 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_HDR_SPLIT_WIDTH 1
11564 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_TIMESTAMP_WIDTH 1
11567 #define MC_CMD_INIT_RXQ_V3_IN_CRC_MODE_WIDTH 4
11570 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_CHAIN_WIDTH 1
11573 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_PREFIX_WIDTH 1
11576 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_DISABLE_SCATTER_WIDTH 1
11579 #define MC_CMD_INIT_RXQ_V3_IN_DMA_MODE_WIDTH 4
11585 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with
11586 * multiple fixed-size packet buffers within each bucket. For a full
11587 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath
11595 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SNAPSHOT_MODE_WIDTH 1
11606 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1
11609 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_FORCE_EV_MERGING_WIDTH 1
11612 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_NO_CONT_EV_WIDTH 1
11615 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_SUPPRESS_RX_EVENTS_WIDTH 1
11618 #define MC_CMD_INIT_RXQ_V3_IN_OWNER_ID_LEN 4
11619 /* The port ID associated with the v-adaptor which should contain this DMAQ. */
11621 #define MC_CMD_INIT_RXQ_V3_IN_PORT_ID_LEN 4
11622 /* 64-bit address of 4k of 4k-aligned host memory buffer */
11626 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_LO_LEN 4
11630 #define MC_CMD_INIT_RXQ_V3_IN_DMA_ADDR_HI_LEN 4
11636 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */
11638 #define MC_CMD_INIT_RXQ_V3_IN_SNAPSHOT_LENGTH_LEN 4
11639 /* The number of packet buffers that will be contained within each
11644 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_BUFFERS_PER_BUCKET_LEN 4
11645 /* The length in bytes of the area in each packet buffer that can be written to
11651 #define MC_CMD_INIT_RXQ_V3_IN_ES_MAX_DMA_LEN_LEN 4
11652 /* The length in bytes of a single packet buffer within a
11657 #define MC_CMD_INIT_RXQ_V3_IN_ES_PACKET_STRIDE_LEN 4
11660 * are still no descriptors then the packet will be dropped. A timeout of 0
11665 #define MC_CMD_INIT_RXQ_V3_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_LEN 4
11673 #define MC_CMD_INIT_RXQ_V4_IN_SIZE_LEN 4
11677 #define MC_CMD_INIT_RXQ_V4_IN_TARGET_EVQ_OFST 4
11678 #define MC_CMD_INIT_RXQ_V4_IN_TARGET_EVQ_LEN 4
11684 #define MC_CMD_INIT_RXQ_V4_IN_LABEL_LEN 4
11686 * local queue index. The calling client must be the currently-assigned user of
11690 #define MC_CMD_INIT_RXQ_V4_IN_INSTANCE_LEN 4
11693 #define MC_CMD_INIT_RXQ_V4_IN_FLAGS_LEN 4
11696 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_BUFF_MODE_WIDTH 1
11698 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_HDR_SPLIT_LBN 1
11699 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_HDR_SPLIT_WIDTH 1
11702 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_TIMESTAMP_WIDTH 1
11705 #define MC_CMD_INIT_RXQ_V4_IN_CRC_MODE_WIDTH 4
11708 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_CHAIN_WIDTH 1
11711 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_PREFIX_WIDTH 1
11714 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_DISABLE_SCATTER_WIDTH 1
11717 #define MC_CMD_INIT_RXQ_V4_IN_DMA_MODE_WIDTH 4
11723 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with
11724 * multiple fixed-size packet buffers within each bucket. For a full
11725 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath
11733 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SNAPSHOT_MODE_WIDTH 1
11744 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1
11747 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_FORCE_EV_MERGING_WIDTH 1
11750 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_NO_CONT_EV_WIDTH 1
11753 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_SUPPRESS_RX_EVENTS_WIDTH 1
11756 #define MC_CMD_INIT_RXQ_V4_IN_OWNER_ID_LEN 4
11757 /* The port ID associated with the v-adaptor which should contain this DMAQ. */
11759 #define MC_CMD_INIT_RXQ_V4_IN_PORT_ID_LEN 4
11760 /* 64-bit address of 4k of 4k-aligned host memory buffer */
11764 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_LO_LEN 4
11768 #define MC_CMD_INIT_RXQ_V4_IN_DMA_ADDR_HI_LEN 4
11774 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */
11776 #define MC_CMD_INIT_RXQ_V4_IN_SNAPSHOT_LENGTH_LEN 4
11777 /* The number of packet buffers that will be contained within each
11782 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_BUFFERS_PER_BUCKET_LEN 4
11783 /* The length in bytes of the area in each packet buffer that can be written to
11789 #define MC_CMD_INIT_RXQ_V4_IN_ES_MAX_DMA_LEN_LEN 4
11790 /* The length in bytes of a single packet buffer within a
11795 #define MC_CMD_INIT_RXQ_V4_IN_ES_PACKET_STRIDE_LEN 4
11798 * are still no descriptors then the packet will be dropped. A timeout of 0
11803 #define MC_CMD_INIT_RXQ_V4_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_LEN 4
11806 #define MC_CMD_INIT_RXQ_V4_IN_V4_DATA_LEN 4
11807 /* Size in bytes of buffers attached to descriptors posted to this queue. Set
11808 * to zero if using this message on non-QDMA based platforms. Currently in
11809 * Riverhead there is a global limit of eight different buffer sizes across all
11810 * active queues. A 2KB and 4KB buffer is guaranteed to be available, but a
11816 #define MC_CMD_INIT_RXQ_V4_IN_BUFFER_SIZE_BYTES_LEN 4
11824 #define MC_CMD_INIT_RXQ_V5_IN_SIZE_LEN 4
11828 #define MC_CMD_INIT_RXQ_V5_IN_TARGET_EVQ_OFST 4
11829 #define MC_CMD_INIT_RXQ_V5_IN_TARGET_EVQ_LEN 4
11835 #define MC_CMD_INIT_RXQ_V5_IN_LABEL_LEN 4
11837 * local queue index. The calling client must be the currently-assigned user of
11841 #define MC_CMD_INIT_RXQ_V5_IN_INSTANCE_LEN 4
11844 #define MC_CMD_INIT_RXQ_V5_IN_FLAGS_LEN 4
11847 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_BUFF_MODE_WIDTH 1
11849 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_HDR_SPLIT_LBN 1
11850 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_HDR_SPLIT_WIDTH 1
11853 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_TIMESTAMP_WIDTH 1
11856 #define MC_CMD_INIT_RXQ_V5_IN_CRC_MODE_WIDTH 4
11859 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_CHAIN_WIDTH 1
11862 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_PREFIX_WIDTH 1
11865 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_DISABLE_SCATTER_WIDTH 1
11868 #define MC_CMD_INIT_RXQ_V5_IN_DMA_MODE_WIDTH 4
11874 * to maximise packet rate. This mode uses 1 "bucket" per descriptor with
11875 * multiple fixed-size packet buffers within each bucket. For a full
11876 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath
11884 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SNAPSHOT_MODE_WIDTH 1
11895 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_WANT_OUTER_CLASSES_WIDTH 1
11898 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_FORCE_EV_MERGING_WIDTH 1
11901 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_NO_CONT_EV_WIDTH 1
11904 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_SUPPRESS_RX_EVENTS_WIDTH 1
11907 #define MC_CMD_INIT_RXQ_V5_IN_OWNER_ID_LEN 4
11908 /* The port ID associated with the v-adaptor which should contain this DMAQ. */
11910 #define MC_CMD_INIT_RXQ_V5_IN_PORT_ID_LEN 4
11911 /* 64-bit address of 4k of 4k-aligned host memory buffer */
11915 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_LO_LEN 4
11919 #define MC_CMD_INIT_RXQ_V5_IN_DMA_ADDR_HI_LEN 4
11925 /* Maximum length of packet to receive, if SNAPSHOT_MODE flag is set */
11927 #define MC_CMD_INIT_RXQ_V5_IN_SNAPSHOT_LENGTH_LEN 4
11928 /* The number of packet buffers that will be contained within each
11933 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_BUFFERS_PER_BUCKET_LEN 4
11934 /* The length in bytes of the area in each packet buffer that can be written to
11940 #define MC_CMD_INIT_RXQ_V5_IN_ES_MAX_DMA_LEN_LEN 4
11941 /* The length in bytes of a single packet buffer within a
11946 #define MC_CMD_INIT_RXQ_V5_IN_ES_PACKET_STRIDE_LEN 4
11949 * are still no descriptors then the packet will be dropped. A timeout of 0
11954 #define MC_CMD_INIT_RXQ_V5_IN_ES_HEAD_OF_LINE_BLOCK_TIMEOUT_LEN 4
11957 #define MC_CMD_INIT_RXQ_V5_IN_V4_DATA_LEN 4
11958 /* Size in bytes of buffers attached to descriptors posted to this queue. Set
11959 * to zero if using this message on non-QDMA based platforms. Currently in
11960 * Riverhead there is a global limit of eight different buffer sizes across all
11961 * active queues. A 2KB and 4KB buffer is guaranteed to be available, but a
11967 #define MC_CMD_INIT_RXQ_V5_IN_BUFFER_SIZE_BYTES_LEN 4
11971 * MC_CMD_GET_RX_PREFIX_ID with a requested set of prefix fields.
11974 #define MC_CMD_INIT_RXQ_V5_IN_RX_PREFIX_ID_LEN 4
12007 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_NUM(len) (((len)-28)/8)
12010 #define MC_CMD_INIT_TXQ_IN_SIZE_LEN 4
12014 #define MC_CMD_INIT_TXQ_IN_TARGET_EVQ_OFST 4
12015 #define MC_CMD_INIT_TXQ_IN_TARGET_EVQ_LEN 4
12018 #define MC_CMD_INIT_TXQ_IN_LABEL_LEN 4
12020 * local queue index. The calling client must be the currently-assigned user of
12024 #define MC_CMD_INIT_TXQ_IN_INSTANCE_LEN 4
12027 #define MC_CMD_INIT_TXQ_IN_FLAGS_LEN 4
12030 #define MC_CMD_INIT_TXQ_IN_FLAG_BUFF_MODE_WIDTH 1
12032 #define MC_CMD_INIT_TXQ_IN_FLAG_IP_CSUM_DIS_LBN 1
12033 #define MC_CMD_INIT_TXQ_IN_FLAG_IP_CSUM_DIS_WIDTH 1
12036 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_CSUM_DIS_WIDTH 1
12039 #define MC_CMD_INIT_TXQ_IN_FLAG_TCP_UDP_ONLY_WIDTH 1
12041 #define MC_CMD_INIT_TXQ_IN_CRC_MODE_LBN 4
12042 #define MC_CMD_INIT_TXQ_IN_CRC_MODE_WIDTH 4
12045 #define MC_CMD_INIT_TXQ_IN_FLAG_TIMESTAMP_WIDTH 1
12048 #define MC_CMD_INIT_TXQ_IN_FLAG_PACER_BYPASS_WIDTH 1
12051 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_IP_CSUM_EN_WIDTH 1
12054 #define MC_CMD_INIT_TXQ_IN_FLAG_INNER_TCP_CSUM_EN_WIDTH 1
12057 #define MC_CMD_INIT_TXQ_IN_OWNER_ID_LEN 4
12058 /* The port ID associated with the v-adaptor which should contain this DMAQ. */
12060 #define MC_CMD_INIT_TXQ_IN_PORT_ID_LEN 4
12061 /* 64-bit address of 4k of 4k-aligned host memory buffer */
12065 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_LO_LEN 4
12069 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_HI_LEN 4
12072 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_MINNUM 1
12082 #define MC_CMD_INIT_TXQ_EXT_IN_SIZE_LEN 4
12086 #define MC_CMD_INIT_TXQ_EXT_IN_TARGET_EVQ_OFST 4
12087 #define MC_CMD_INIT_TXQ_EXT_IN_TARGET_EVQ_LEN 4
12090 #define MC_CMD_INIT_TXQ_EXT_IN_LABEL_LEN 4
12092 * local queue index. The calling client must be the currently-assigned user of
12096 #define MC_CMD_INIT_TXQ_EXT_IN_INSTANCE_LEN 4
12099 #define MC_CMD_INIT_TXQ_EXT_IN_FLAGS_LEN 4
12102 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_BUFF_MODE_WIDTH 1
12104 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_IP_CSUM_DIS_LBN 1
12105 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_IP_CSUM_DIS_WIDTH 1
12108 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_CSUM_DIS_WIDTH 1
12111 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TCP_UDP_ONLY_WIDTH 1
12113 #define MC_CMD_INIT_TXQ_EXT_IN_CRC_MODE_LBN 4
12114 #define MC_CMD_INIT_TXQ_EXT_IN_CRC_MODE_WIDTH 4
12117 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TIMESTAMP_WIDTH 1
12120 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_PACER_BYPASS_WIDTH 1
12123 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_IP_CSUM_EN_WIDTH 1
12126 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_INNER_TCP_CSUM_EN_WIDTH 1
12129 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN_WIDTH 1
12132 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_WIDTH 1
12135 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_CTPIO_UTHRESH_WIDTH 1
12138 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_M2M_D2C_WIDTH 1
12141 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_DESC_PROXY_WIDTH 1
12144 #define MC_CMD_INIT_TXQ_EXT_IN_FLAG_ABS_TARGET_EVQ_WIDTH 1
12147 #define MC_CMD_INIT_TXQ_EXT_IN_OWNER_ID_LEN 4
12148 /* The port ID associated with the v-adaptor which should contain this DMAQ. */
12150 #define MC_CMD_INIT_TXQ_EXT_IN_PORT_ID_LEN 4
12151 /* 64-bit address of 4k of 4k-aligned host memory buffer */
12155 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_LO_LEN 4
12159 #define MC_CMD_INIT_TXQ_EXT_IN_DMA_ADDR_HI_LEN 4
12167 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_FLAGS_LEN 4
12170 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_ENABLE_WIDTH 1
12172 #define MC_CMD_INIT_TXQ_EXT_IN_QBB_PRIORITY_LBN 1
12192 #define MC_CMD_FINI_EVQ_IN_LEN 4
12193 /* Instance of EVQ to destroy. Should be the same instance as that previously
12197 #define MC_CMD_FINI_EVQ_IN_INSTANCE_LEN 4
12213 #define MC_CMD_FINI_RXQ_IN_LEN 4
12214 /* Instance of RXQ to destroy */
12216 #define MC_CMD_FINI_RXQ_IN_INSTANCE_LEN 4
12232 #define MC_CMD_FINI_TXQ_IN_LEN 4
12233 /* Instance of TXQ to destroy */
12235 #define MC_CMD_FINI_TXQ_IN_INSTANCE_LEN 4
12252 /* Handle of target EVQ */
12254 #define MC_CMD_DRIVER_EVENT_IN_EVQ_LEN 4
12255 /* Bits 0 - 63 of event */
12256 #define MC_CMD_DRIVER_EVENT_IN_DATA_OFST 4
12258 #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_OFST 4
12259 #define MC_CMD_DRIVER_EVENT_IN_DATA_LO_LEN 4
12263 #define MC_CMD_DRIVER_EVENT_IN_DATA_HI_LEN 4
12273 * Execute an arbitrary MCDI command on behalf of a different function, subject
12284 #define MC_CMD_PROXY_CMD_IN_LEN 4
12285 /* The handle of the target function. */
12287 #define MC_CMD_PROXY_CMD_IN_TARGET_LEN 4
12311 /* identifies the type of operation requested */
12313 #define MC_CMD_FILTER_OP_IN_OP_LEN 4
12314 /* enum: single-recipient filter insert */
12316 /* enum: single-recipient filter remove */
12318 /* enum: multi-recipient filter subscribe */
12320 /* enum: multi-recipient filter unsubscribe */
12322 /* enum: replace one recipient with another (warning - the filter handle may
12327 #define MC_CMD_FILTER_OP_IN_HANDLE_OFST 4
12329 #define MC_CMD_FILTER_OP_IN_HANDLE_LO_OFST 4
12330 #define MC_CMD_FILTER_OP_IN_HANDLE_LO_LEN 4
12334 #define MC_CMD_FILTER_OP_IN_HANDLE_HI_LEN 4
12337 /* The port ID associated with the v-adaptor which should contain this filter.
12340 #define MC_CMD_FILTER_OP_IN_PORT_ID_LEN 4
12343 #define MC_CMD_FILTER_OP_IN_MATCH_FIELDS_LEN 4
12346 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_IP_WIDTH 1
12348 #define MC_CMD_FILTER_OP_IN_MATCH_DST_IP_LBN 1
12349 #define MC_CMD_FILTER_OP_IN_MATCH_DST_IP_WIDTH 1
12352 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_MAC_WIDTH 1
12355 #define MC_CMD_FILTER_OP_IN_MATCH_SRC_PORT_WIDTH 1
12357 #define MC_CMD_FILTER_OP_IN_MATCH_DST_MAC_LBN 4
12358 #define MC_CMD_FILTER_OP_IN_MATCH_DST_MAC_WIDTH 1
12361 #define MC_CMD_FILTER_OP_IN_MATCH_DST_PORT_WIDTH 1
12364 #define MC_CMD_FILTER_OP_IN_MATCH_ETHER_TYPE_WIDTH 1
12367 #define MC_CMD_FILTER_OP_IN_MATCH_INNER_VLAN_WIDTH 1
12370 #define MC_CMD_FILTER_OP_IN_MATCH_OUTER_VLAN_WIDTH 1
12373 #define MC_CMD_FILTER_OP_IN_MATCH_IP_PROTO_WIDTH 1
12376 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF0_WIDTH 1
12379 #define MC_CMD_FILTER_OP_IN_MATCH_FWDEF1_WIDTH 1
12382 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_WIDTH 1
12385 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1
12388 #define MC_CMD_FILTER_OP_IN_MATCH_UNKNOWN_UCAST_DST_WIDTH 1
12391 #define MC_CMD_FILTER_OP_IN_RX_DEST_LEN 4
12400 /* enum: loop back to TXDP 1 */
12404 #define MC_CMD_FILTER_OP_IN_RX_QUEUE_LEN 4
12407 #define MC_CMD_FILTER_OP_IN_RX_MODE_LEN 4
12412 /* enum: receive to multiple queues using .1p mapping */
12417 /* RSS context (for RX_MODE_RSS) or .1p mapping handle (for
12422 #define MC_CMD_FILTER_OP_IN_RX_CONTEXT_LEN 4
12425 #define MC_CMD_FILTER_OP_IN_TX_DOMAIN_LEN 4
12431 #define MC_CMD_FILTER_OP_IN_TX_DEST_LEN 4
12436 #define MC_CMD_FILTER_OP_IN_TX_DEST_MAC_WIDTH 1
12438 #define MC_CMD_FILTER_OP_IN_TX_DEST_PM_LBN 1
12439 #define MC_CMD_FILTER_OP_IN_TX_DEST_PM_WIDTH 1
12466 #define MC_CMD_FILTER_OP_IN_FWDEF0_LEN 4
12467 /* Firmware defined register 1 to match (reserved; set to 0) */
12469 #define MC_CMD_FILTER_OP_IN_FWDEF1_LEN 4
12482 * include handling of VXLAN/NVGRE encapsulated frame filtering (which is
12486 /* identifies the type of operation requested */
12488 #define MC_CMD_FILTER_OP_EXT_IN_OP_LEN 4
12492 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_OFST 4
12494 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_OFST 4
12495 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_LO_LEN 4
12499 #define MC_CMD_FILTER_OP_EXT_IN_HANDLE_HI_LEN 4
12502 /* The port ID associated with the v-adaptor which should contain this filter.
12505 #define MC_CMD_FILTER_OP_EXT_IN_PORT_ID_LEN 4
12508 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FIELDS_LEN 4
12511 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_IP_WIDTH 1
12513 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_IP_LBN 1
12514 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_IP_WIDTH 1
12517 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_MAC_WIDTH 1
12520 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_SRC_PORT_WIDTH 1
12522 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_MAC_LBN 4
12523 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_MAC_WIDTH 1
12526 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_DST_PORT_WIDTH 1
12529 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_ETHER_TYPE_WIDTH 1
12532 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_INNER_VLAN_WIDTH 1
12535 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_OUTER_VLAN_WIDTH 1
12538 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IP_PROTO_WIDTH 1
12541 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_FWDEF0_WIDTH 1
12544 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_VNI_OR_VSID_WIDTH 1
12547 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_IP_WIDTH 1
12550 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_IP_WIDTH 1
12553 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_MAC_WIDTH 1
12556 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_SRC_PORT_WIDTH 1
12559 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_MAC_WIDTH 1
12562 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_DST_PORT_WIDTH 1
12565 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_ETHER_TYPE_WIDTH 1
12568 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_INNER_VLAN_WIDTH 1
12571 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_OUTER_VLAN_WIDTH 1
12574 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_IP_PROTO_WIDTH 1
12577 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF0_WIDTH 1
12580 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_FWDEF1_WIDTH 1
12583 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_WIDTH 1
12586 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_WIDTH 1
12589 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_WIDTH 1
12592 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1
12595 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_UNKNOWN_UCAST_DST_WIDTH 1
12598 #define MC_CMD_FILTER_OP_EXT_IN_RX_DEST_LEN 4
12607 /* enum: loop back to TXDP 1 */
12611 #define MC_CMD_FILTER_OP_EXT_IN_RX_QUEUE_LEN 4
12614 #define MC_CMD_FILTER_OP_EXT_IN_RX_MODE_LEN 4
12619 /* enum: receive to multiple queues using .1p mapping */
12624 /* RSS context (for RX_MODE_RSS) or .1p mapping handle (for
12629 #define MC_CMD_FILTER_OP_EXT_IN_RX_CONTEXT_LEN 4
12632 #define MC_CMD_FILTER_OP_EXT_IN_TX_DOMAIN_LEN 4
12638 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_LEN 4
12643 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_MAC_WIDTH 1
12645 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_PM_LBN 1
12646 #define MC_CMD_FILTER_OP_EXT_IN_TX_DEST_PM_WIDTH 1
12673 #define MC_CMD_FILTER_OP_EXT_IN_FWDEF0_LEN 4
12676 * VXLAN/NVGRE, or 1 for Geneve)
12679 #define MC_CMD_FILTER_OP_EXT_IN_VNI_OR_VSID_LEN 4
12749 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF0_LEN 4
12750 /* VXLAN/NVGRE inner frame Firmware defined register 1 to match (reserved; set
12754 #define MC_CMD_FILTER_OP_EXT_IN_IFRM_FWDEF1_LEN 4
12767 * filter actions for EF100. Some of these actions are also supported on EF10,
12770 * driver included as part of DPDK, used in conjunction with the dpdk datapath
12774 /* identifies the type of operation requested */
12776 #define MC_CMD_FILTER_OP_V3_IN_OP_LEN 4
12780 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_OFST 4
12782 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_OFST 4
12783 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_LO_LEN 4
12787 #define MC_CMD_FILTER_OP_V3_IN_HANDLE_HI_LEN 4
12790 /* The port ID associated with the v-adaptor which should contain this filter.
12793 #define MC_CMD_FILTER_OP_V3_IN_PORT_ID_LEN 4
12796 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FIELDS_LEN 4
12799 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_IP_WIDTH 1
12801 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_IP_LBN 1
12802 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_IP_WIDTH 1
12805 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_MAC_WIDTH 1
12808 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SRC_PORT_WIDTH 1
12810 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_MAC_LBN 4
12811 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_MAC_WIDTH 1
12814 #define MC_CMD_FILTER_OP_V3_IN_MATCH_DST_PORT_WIDTH 1
12817 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ETHER_TYPE_WIDTH 1
12820 #define MC_CMD_FILTER_OP_V3_IN_MATCH_INNER_VLAN_WIDTH 1
12823 #define MC_CMD_FILTER_OP_V3_IN_MATCH_OUTER_VLAN_WIDTH 1
12826 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IP_PROTO_WIDTH 1
12829 #define MC_CMD_FILTER_OP_V3_IN_MATCH_FWDEF0_WIDTH 1
12832 #define MC_CMD_FILTER_OP_V3_IN_MATCH_VNI_OR_VSID_WIDTH 1
12835 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_IP_WIDTH 1
12838 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_IP_WIDTH 1
12841 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_MAC_WIDTH 1
12844 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_SRC_PORT_WIDTH 1
12847 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_MAC_WIDTH 1
12850 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_DST_PORT_WIDTH 1
12853 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_ETHER_TYPE_WIDTH 1
12856 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_INNER_VLAN_WIDTH 1
12859 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_OUTER_VLAN_WIDTH 1
12862 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_IP_PROTO_WIDTH 1
12865 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF0_WIDTH 1
12868 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_FWDEF1_WIDTH 1
12871 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_MCAST_DST_WIDTH 1
12874 #define MC_CMD_FILTER_OP_V3_IN_MATCH_IFRM_UNKNOWN_UCAST_DST_WIDTH 1
12877 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_IPV4_MCAST_DST_WIDTH 1
12880 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_MCAST_DST_WIDTH 1
12883 #define MC_CMD_FILTER_OP_V3_IN_MATCH_UNKNOWN_UCAST_DST_WIDTH 1
12886 #define MC_CMD_FILTER_OP_V3_IN_RX_DEST_LEN 4
12895 /* enum: loop back to TXDP 1 */
12899 #define MC_CMD_FILTER_OP_V3_IN_RX_QUEUE_LEN 4
12902 #define MC_CMD_FILTER_OP_V3_IN_RX_MODE_LEN 4
12907 /* enum: receive to multiple queues using .1p mapping */
12912 /* RSS context (for RX_MODE_RSS) or .1p mapping handle (for
12917 #define MC_CMD_FILTER_OP_V3_IN_RX_CONTEXT_LEN 4
12920 #define MC_CMD_FILTER_OP_V3_IN_TX_DOMAIN_LEN 4
12926 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_LEN 4
12931 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_MAC_WIDTH 1
12933 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_PM_LBN 1
12934 #define MC_CMD_FILTER_OP_V3_IN_TX_DEST_PM_WIDTH 1
12961 #define MC_CMD_FILTER_OP_V3_IN_FWDEF0_LEN 4
12964 * VXLAN/NVGRE, or 1 for Geneve)
12967 #define MC_CMD_FILTER_OP_V3_IN_VNI_OR_VSID_LEN 4
13037 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF0_LEN 4
13038 /* VXLAN/NVGRE inner frame Firmware defined register 1 to match (reserved; set
13042 #define MC_CMD_FILTER_OP_V3_IN_IFRM_FWDEF1_LEN 4
13053 /* Flags controlling mutations of the packet and/or metadata when the filter is
13055 * (req.MATCH_BITOR_FLAG == 1) user_flag = req.MATCH_SET_FLAG bit_or user_flag;
13057 * = 0; else if (req.MATCH_BITOR_MARK == 1) user_mark = req.MATCH_SET_MARK
13059 * overlap with the MATCH_ACTION field, which is deprecated in favour of this
13060 * field. For the cases where these flags induce a valid encoding of the
13064 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_FLAGS_LEN 4
13067 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_FLAG_WIDTH 1
13069 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_LBN 1
13070 #define MC_CMD_FILTER_OP_V3_IN_MATCH_SET_MARK_WIDTH 1
13073 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_FLAG_WIDTH 1
13076 #define MC_CMD_FILTER_OP_V3_IN_MATCH_BITOR_MARK_WIDTH 1
13078 #define MC_CMD_FILTER_OP_V3_IN_MATCH_STRIP_VLAN_LBN 4
13079 #define MC_CMD_FILTER_OP_V3_IN_MATCH_STRIP_VLAN_WIDTH 1
13080 /* Deprecated: the overlapping MATCH_ACTION_FLAGS field exposes all of the
13081 * functionality of this field in an ABI-backwards-compatible manner, and
13086 * Firmware Driver Interface (SF-119419-TC). Requesting anything other than
13091 #define MC_CMD_FILTER_OP_V3_IN_MATCH_ACTION_LEN 4
13109 #define MC_CMD_FILTER_OP_V3_IN_MATCH_MARK_VALUE_LEN 4
13113 /* identifies the type of operation requested */
13115 #define MC_CMD_FILTER_OP_OUT_OP_LEN 4
13119 * handles should be considered opaque to the host, although a value of
13122 #define MC_CMD_FILTER_OP_OUT_HANDLE_OFST 4
13124 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_OFST 4
13125 #define MC_CMD_FILTER_OP_OUT_HANDLE_LO_LEN 4
13129 #define MC_CMD_FILTER_OP_OUT_HANDLE_HI_LEN 4
13139 /* identifies the type of operation requested */
13141 #define MC_CMD_FILTER_OP_EXT_OUT_OP_LEN 4
13145 * handles should be considered opaque to the host, although a value of
13148 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_OFST 4
13150 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_OFST 4
13151 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_LO_LEN 4
13155 #define MC_CMD_FILTER_OP_EXT_OUT_HANDLE_HI_LEN 4
13164 * Get information related to the parser-dispatcher subsystem
13172 #define MC_CMD_GET_PARSER_DISP_INFO_IN_LEN 4
13173 /* identifies the type of operation requested */
13175 #define MC_CMD_GET_PARSER_DISP_INFO_IN_OP_LEN 4
13176 /* enum: read the list of supported RX filter matches */
13182 /* enum: read properties relating to security rules (Medford-only; for use by
13183 * SolarSecure apps, not directly by drivers. See SF-114946-SW.)
13186 /* enum: read the list of supported RX filter matches for VXLAN/NVGRE
13191 /* enum: read the list of supported matches for the encapsulation detection
13197 /* enum: read the supported RX filter matches for low-latency queues (as
13206 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_LEN(num) (8+4*(num))
13207 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_NUM(len) (((len)-8)/4)
13208 /* identifies the type of operation requested */
13210 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_OP_LEN 4
13213 /* number of supported match types */
13214 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_NUM_SUPPORTED_MATCHES_OFST 4
13215 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_NUM_SUPPORTED_MATCHES_LEN 4
13216 /* array of supported match types (valid MATCH_FIELDS values for
13220 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_LEN 4
13227 /* identifies the type of operation requested */
13229 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_OP_LEN 4
13232 /* bitfield of filter insertion restrictions */
13233 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_RESTRICTION_FLAGS_OFST 4
13234 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_RESTRICTION_FLAGS_LEN 4
13235 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_DST_IP_MCAST_ONLY_OFST 4
13237 #define MC_CMD_GET_PARSER_DISP_RESTRICTIONS_OUT_DST_IP_MCAST_ONLY_WIDTH 1
13241 * (Medford-only; for use by SolarSecure apps, not directly by drivers. See
13242 * SF-114946-SW.) NOTE - this message definition is provisional. It has not yet
13247 /* identifies the type of operation requested */
13249 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_OP_LEN 4
13252 /* a version number representing the set of rule lookups that are implemented
13255 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_RULES_VERSION_OFST 4
13256 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_RULES_VERSION_LEN 4
13257 /* enum: implements lookup sequences described in SF-114946-SW draft C */
13259 /* the number of nodes in the subnet map */
13261 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_NODES_LEN 4
13262 /* the number of entries in one subnet map node */
13264 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_MAP_NUM_ENTRIES_PER_NODE_LEN 4
13267 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MIN_LEN 4
13270 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_SUBNET_ID_MAX_LEN 4
13271 /* the number of entries in the local and remote port range maps */
13273 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_TREE_NUM_ENTRIES_LEN 4
13276 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MIN_LEN 4
13279 #define MC_CMD_GET_PARSER_DISP_SECURITY_RULE_INFO_OUT_PORTRANGE_ID_MAX_LEN 4
13290 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_LEN(num) (8+4*(num))
13291 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_NUM(len) (((len)-8)/4)
13294 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_OP_LEN 4
13297 /* number of supported match types */
13298 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_NUM_SUPPORTED_MATCHES_OFST 4
13299 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_NUM_SUPPORTED_MATCHES_LEN 4
13300 /* array of supported match types (valid MATCH_FLAGS values for
13304 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_LEN 4
13315 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_OP_LEN 4
13318 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPES_SUPPORTED_OFST 4
13319 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPES_SUPPORTED_LEN 4
13320 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_VXLAN_OFST 4
13322 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_VXLAN_WIDTH 1
13323 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_NVGRE_OFST 4
13324 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_NVGRE_LBN 1
13325 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_NVGRE_WIDTH 1
13326 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_GENEVE_OFST 4
13328 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_GENEVE_WIDTH 1
13329 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_L2GRE_OFST 4
13331 #define MC_CMD_GET_PARSER_DISP_SUPPORTED_VNIC_ENCAP_TYPES_OUT_ENCAP_TYPE_L2GRE_WIDTH 1
13347 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_LEN 4
13351 * sense - e.g. virtio-blk), in which case the return value is NULL_PORT.
13354 #define MC_CMD_GET_PORT_ASSIGNMENT_OUT_PORT_LEN 4
13370 /* The minimum number of VIs that is acceptable */
13372 #define MC_CMD_ALLOC_VIS_IN_MIN_VI_COUNT_LEN 4
13373 /* The maximum number of VIs that would be useful */
13374 #define MC_CMD_ALLOC_VIS_IN_MAX_VI_COUNT_OFST 4
13375 #define MC_CMD_ALLOC_VIS_IN_MAX_VI_COUNT_LEN 4
13377 /* MC_CMD_ALLOC_VIS_OUT msgresponse: Huntington-compatible VI_ALLOC request.
13381 /* The number of VIs allocated on this function */
13383 #define MC_CMD_ALLOC_VIS_OUT_VI_COUNT_LEN 4
13387 #define MC_CMD_ALLOC_VIS_OUT_VI_BASE_OFST 4
13388 #define MC_CMD_ALLOC_VIS_OUT_VI_BASE_LEN 4
13392 /* The number of VIs allocated on this function */
13394 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_COUNT_LEN 4
13398 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_BASE_OFST 4
13399 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_BASE_LEN 4
13402 #define MC_CMD_ALLOC_VIS_EXT_OUT_VI_SHIFT_LEN 4
13436 /* Number of VFs currently enabled. */
13438 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_CURRENT_LEN 4
13439 /* Max number of VFs before sriov stride and offset may need to be changed. */
13440 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_MAX_OFST 4
13441 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_MAX_LEN 4
13443 #define MC_CMD_GET_SRIOV_CFG_OUT_FLAGS_LEN 4
13446 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_ENABLED_WIDTH 1
13447 /* RID offset of first VF from PF. */
13449 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_OFFSET_LEN 4
13450 /* RID offset of each subsequent VF from the previous. */
13452 #define MC_CMD_GET_SRIOV_CFG_OUT_VF_STRIDE_LEN 4
13468 #define MC_CMD_ALLOC_PIOBUF_OUT_LEN 4
13471 #define MC_CMD_ALLOC_PIOBUF_OUT_PIOBUF_HANDLE_LEN 4
13484 #define MC_CMD_FREE_PIOBUF_IN_LEN 4
13487 #define MC_CMD_FREE_PIOBUF_IN_PIOBUF_HANDLE_LEN 4
13496 * GRP_FUNC_DMA privilege and must be the currently-assigned user of this VI or
13497 * an ancestor of the current user (see MC_CMD_SET_VI_USER).
13505 #define MC_CMD_GET_VI_TLP_PROCESSING_IN_LEN 4
13508 #define MC_CMD_GET_VI_TLP_PROCESSING_IN_INSTANCE_LEN 4
13514 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_LEN 4
13516 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_DATA_LEN 4
13525 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_RELAXED_ORDERING_WIDTH 1
13528 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_RELAXED_ORDERING_PACKET_DATA_WIDTH 1
13531 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_ID_BASED_ORDERING_WIDTH 1
13534 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_NO_SNOOP_WIDTH 1
13537 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_TPH_ON_WIDTH 1
13540 #define MC_CMD_GET_VI_TLP_PROCESSING_V2_OUT_RELAXED_ORDERING_SYNC_DATA_WIDTH 1
13546 * GRP_FUNC_DMA privilege and must be the currently-assigned user of this VI or
13547 * an ancestor of the current user (see MC_CMD_SET_VI_USER). Note that LL
13549 * of the queue. TLP options of a queue are fixed after queue is initialised,
13565 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_INSTANCE_LEN 4
13566 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_DATA_OFST 4
13567 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_DATA_LEN 4
13568 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_TPH_TAG1_RX_OFST 4
13571 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_TPH_TAG2_EV_OFST 4
13574 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_RELAXED_ORDERING_OFST 4
13576 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_RELAXED_ORDERING_WIDTH 1
13577 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_RELAXED_ORDERING_PACKET_DATA_OFST 4
13579 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_RELAXED_ORDERING_PACKET_DATA_WIDTH 1
13580 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_ID_BASED_ORDERING_OFST 4
13582 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_ID_BASED_ORDERING_WIDTH 1
13583 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_NO_SNOOP_OFST 4
13585 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_NO_SNOOP_WIDTH 1
13586 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_TPH_ON_OFST 4
13588 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_TPH_ON_WIDTH 1
13589 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_RELAXED_ORDERING_SYNC_DATA_OFST 4
13591 #define MC_CMD_SET_VI_TLP_PROCESSING_V2_IN_RELAXED_ORDERING_SYNC_DATA_WIDTH 1
13613 /* First word of flags. */
13615 #define MC_CMD_GET_CAPABILITIES_OUT_FLAGS1_LEN 4
13618 #define MC_CMD_GET_CAPABILITIES_OUT_VPORT_RECONFIGURE_WIDTH 1
13620 #define MC_CMD_GET_CAPABILITIES_OUT_TX_STRIPING_LBN 4
13621 #define MC_CMD_GET_CAPABILITIES_OUT_TX_STRIPING_WIDTH 1
13624 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_QUERY_WIDTH 1
13627 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1
13630 #define MC_CMD_GET_CAPABILITIES_OUT_DRV_ATTACH_PREBOOT_WIDTH 1
13633 #define MC_CMD_GET_CAPABILITIES_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1
13636 #define MC_CMD_GET_CAPABILITIES_OUT_SET_MAC_ENHANCED_WIDTH 1
13639 #define MC_CMD_GET_CAPABILITIES_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1
13642 #define MC_CMD_GET_CAPABILITIES_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1
13645 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1
13648 #define MC_CMD_GET_CAPABILITIES_OUT_ADDITIONAL_RSS_MODES_WIDTH 1
13651 #define MC_CMD_GET_CAPABILITIES_OUT_QBB_WIDTH 1
13654 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1
13657 #define MC_CMD_GET_CAPABILITIES_OUT_RX_RSS_LIMITED_WIDTH 1
13660 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PACKED_STREAM_WIDTH 1
13663 #define MC_CMD_GET_CAPABILITIES_OUT_RX_INCLUDE_FCS_WIDTH 1
13666 #define MC_CMD_GET_CAPABILITIES_OUT_TX_VLAN_INSERTION_WIDTH 1
13669 #define MC_CMD_GET_CAPABILITIES_OUT_RX_VLAN_STRIPPING_WIDTH 1
13672 #define MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_WIDTH 1
13675 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_0_WIDTH 1
13678 #define MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_14_WIDTH 1
13681 #define MC_CMD_GET_CAPABILITIES_OUT_RX_TIMESTAMP_WIDTH 1
13684 #define MC_CMD_GET_CAPABILITIES_OUT_RX_BATCHING_WIDTH 1
13687 #define MC_CMD_GET_CAPABILITIES_OUT_MCAST_FILTER_CHAINING_WIDTH 1
13690 #define MC_CMD_GET_CAPABILITIES_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1
13693 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DISABLE_SCATTER_WIDTH 1
13696 #define MC_CMD_GET_CAPABILITIES_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1
13699 #define MC_CMD_GET_CAPABILITIES_OUT_EVB_WIDTH 1
13702 #define MC_CMD_GET_CAPABILITIES_OUT_VXLAN_NVGRE_WIDTH 1
13704 #define MC_CMD_GET_CAPABILITIES_OUT_RX_DPCPU_FW_ID_OFST 4
13718 /* enum: RXDP Test firmware image 1 */
13724 /* enum: RXDP Test firmware image 4 */
13753 /* enum: TXDP Test firmware image 1 */
13766 #define MC_CMD_GET_CAPABILITIES_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4
13767 /* enum: reserved value - do not use (may indicate alternative interpretation
13768 * of REV field in future)
13778 /* enum: RX PD firmware with approximately Siena-compatible behaviour
13800 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
13817 #define MC_CMD_GET_CAPABILITIES_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4
13818 /* enum: reserved value - do not use (may indicate alternative interpretation
13819 * of REV field in future)
13829 /* enum: TX PD firmware with approximately Siena-compatible behaviour
13848 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
13854 /* Hardware capabilities of NIC */
13856 #define MC_CMD_GET_CAPABILITIES_OUT_HW_CAPABILITIES_LEN 4
13859 #define MC_CMD_GET_CAPABILITIES_OUT_LICENSE_CAPABILITIES_LEN 4
13866 /* First word of flags. */
13868 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS1_LEN 4
13871 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VPORT_RECONFIGURE_WIDTH 1
13873 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_STRIPING_LBN 4
13874 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_STRIPING_WIDTH 1
13877 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_QUERY_WIDTH 1
13880 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1
13883 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DRV_ATTACH_PREBOOT_WIDTH 1
13886 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1
13889 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SET_MAC_ENHANCED_WIDTH 1
13892 …efine MC_CMD_GET_CAPABILITIES_V2_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1
13895 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1
13898 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1
13901 #define MC_CMD_GET_CAPABILITIES_V2_OUT_ADDITIONAL_RSS_MODES_WIDTH 1
13904 #define MC_CMD_GET_CAPABILITIES_V2_OUT_QBB_WIDTH 1
13907 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1
13910 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_RSS_LIMITED_WIDTH 1
13913 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PACKED_STREAM_WIDTH 1
13916 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_INCLUDE_FCS_WIDTH 1
13919 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VLAN_INSERTION_WIDTH 1
13922 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_VLAN_STRIPPING_WIDTH 1
13925 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_WIDTH 1
13928 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_0_WIDTH 1
13931 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_PREFIX_LEN_14_WIDTH 1
13934 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_TIMESTAMP_WIDTH 1
13937 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_BATCHING_WIDTH 1
13940 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCAST_FILTER_CHAINING_WIDTH 1
13943 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1
13946 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DISABLE_SCATTER_WIDTH 1
13949 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1
13952 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVB_WIDTH 1
13955 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VXLAN_NVGRE_WIDTH 1
13957 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DPCPU_FW_ID_OFST 4
13971 /* enum: RXDP Test firmware image 1 */
13977 /* enum: RXDP Test firmware image 4 */
14006 /* enum: TXDP Test firmware image 1 */
14019 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4
14020 /* enum: reserved value - do not use (may indicate alternative interpretation
14021 * of REV field in future)
14031 /* enum: RX PD firmware with approximately Siena-compatible behaviour
14053 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
14070 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4
14071 /* enum: reserved value - do not use (may indicate alternative interpretation
14072 * of REV field in future)
14082 /* enum: TX PD firmware with approximately Siena-compatible behaviour
14101 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
14107 /* Hardware capabilities of NIC */
14109 #define MC_CMD_GET_CAPABILITIES_V2_OUT_HW_CAPABILITIES_LEN 4
14112 #define MC_CMD_GET_CAPABILITIES_V2_OUT_LICENSE_CAPABILITIES_LEN 4
14113 /* Second word of flags. Not present on older firmware (check the length). */
14115 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FLAGS2_LEN 4
14118 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_WIDTH 1
14120 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_ENCAP_LBN 1
14121 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_ENCAP_WIDTH 1
14124 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVQ_TIMER_CTRL_WIDTH 1
14127 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EVENT_CUT_THROUGH_WIDTH 1
14129 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_CUT_THROUGH_LBN 4
14130 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_CUT_THROUGH_WIDTH 1
14133 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_VFIFO_ULL_MODE_WIDTH 1
14136 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1
14139 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1
14142 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_V2_WIDTH 1
14145 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_MAC_TIMESTAMPING_WIDTH 1
14148 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TIMESTAMP_WIDTH 1
14151 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_SNIFF_WIDTH 1
14154 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_SNIFF_WIDTH 1
14157 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1
14160 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_BACKGROUND_WIDTH 1
14163 #define MC_CMD_GET_CAPABILITIES_V2_OUT_MCDI_DB_RETURN_WIDTH 1
14166 #define MC_CMD_GET_CAPABILITIES_V2_OUT_CTPIO_WIDTH 1
14169 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_SUPPORT_WIDTH 1
14172 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TSA_BOUND_WIDTH 1
14175 #define MC_CMD_GET_CAPABILITIES_V2_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1
14178 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_FLAG_WIDTH 1
14181 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FILTER_ACTION_MARK_WIDTH 1
14184 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1
14187 #define MC_CMD_GET_CAPABILITIES_V2_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1
14190 #define MC_CMD_GET_CAPABILITIES_V2_OUT_L3XUDP_SUPPORT_WIDTH 1
14193 #define MC_CMD_GET_CAPABILITIES_V2_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1
14196 #define MC_CMD_GET_CAPABILITIES_V2_OUT_VI_SPREADING_WIDTH 1
14199 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RXDP_HLB_IDLE_WIDTH 1
14202 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1
14205 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1
14208 #define MC_CMD_GET_CAPABILITIES_V2_OUT_BUNDLE_UPDATE_WIDTH 1
14211 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V3_WIDTH 1
14214 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DYNAMIC_SENSORS_WIDTH 1
14217 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1
14218 /* Number of FATSOv2 contexts per datapath supported by this NIC (when
14219 * TX_TSO_V2 == 1). Not present on older firmware (check the length).
14223 /* One byte per PF containing the number of the external port assigned to this
14228 #define MC_CMD_GET_CAPABILITIES_V2_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1
14238 * complex scheme of PFs to ports mapping is being used. The future driver
14243 /* One byte per PF containing the number of its VFs, indexed by PF number. A
14247 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VFS_PER_PF_LEN 1
14253 /* Number of VIs available for external ports 0-3. For devices with more than
14259 #define MC_CMD_GET_CAPABILITIES_V2_OUT_NUM_VIS_PER_PORT_NUM 4
14260 /* Size of RX descriptor cache expressed as binary logarithm The actual size
14264 #define MC_CMD_GET_CAPABILITIES_V2_OUT_RX_DESC_CACHE_SIZE_LEN 1
14265 /* Size of TX descriptor cache expressed as binary logarithm The actual size
14269 #define MC_CMD_GET_CAPABILITIES_V2_OUT_TX_DESC_CACHE_SIZE_LEN 1
14270 /* Total number of available PIO buffers */
14273 /* Size of a single PIO buffer */
14279 /* First word of flags. */
14281 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS1_LEN 4
14284 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VPORT_RECONFIGURE_WIDTH 1
14286 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_STRIPING_LBN 4
14287 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_STRIPING_WIDTH 1
14290 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_QUERY_WIDTH 1
14293 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1
14296 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DRV_ATTACH_PREBOOT_WIDTH 1
14299 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1
14302 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SET_MAC_ENHANCED_WIDTH 1
14305 …efine MC_CMD_GET_CAPABILITIES_V3_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1
14308 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1
14311 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1
14314 #define MC_CMD_GET_CAPABILITIES_V3_OUT_ADDITIONAL_RSS_MODES_WIDTH 1
14317 #define MC_CMD_GET_CAPABILITIES_V3_OUT_QBB_WIDTH 1
14320 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1
14323 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_RSS_LIMITED_WIDTH 1
14326 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PACKED_STREAM_WIDTH 1
14329 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_INCLUDE_FCS_WIDTH 1
14332 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VLAN_INSERTION_WIDTH 1
14335 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_VLAN_STRIPPING_WIDTH 1
14338 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_WIDTH 1
14341 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_0_WIDTH 1
14344 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_PREFIX_LEN_14_WIDTH 1
14347 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_TIMESTAMP_WIDTH 1
14350 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_BATCHING_WIDTH 1
14353 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCAST_FILTER_CHAINING_WIDTH 1
14356 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1
14359 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DISABLE_SCATTER_WIDTH 1
14362 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1
14365 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVB_WIDTH 1
14368 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VXLAN_NVGRE_WIDTH 1
14370 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DPCPU_FW_ID_OFST 4
14384 /* enum: RXDP Test firmware image 1 */
14390 /* enum: RXDP Test firmware image 4 */
14419 /* enum: TXDP Test firmware image 1 */
14432 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4
14433 /* enum: reserved value - do not use (may indicate alternative interpretation
14434 * of REV field in future)
14444 /* enum: RX PD firmware with approximately Siena-compatible behaviour
14466 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
14483 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4
14484 /* enum: reserved value - do not use (may indicate alternative interpretation
14485 * of REV field in future)
14495 /* enum: TX PD firmware with approximately Siena-compatible behaviour
14514 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
14520 /* Hardware capabilities of NIC */
14522 #define MC_CMD_GET_CAPABILITIES_V3_OUT_HW_CAPABILITIES_LEN 4
14525 #define MC_CMD_GET_CAPABILITIES_V3_OUT_LICENSE_CAPABILITIES_LEN 4
14526 /* Second word of flags. Not present on older firmware (check the length). */
14528 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FLAGS2_LEN 4
14531 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_WIDTH 1
14533 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_ENCAP_LBN 1
14534 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V2_ENCAP_WIDTH 1
14537 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVQ_TIMER_CTRL_WIDTH 1
14540 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EVENT_CUT_THROUGH_WIDTH 1
14542 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_CUT_THROUGH_LBN 4
14543 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_CUT_THROUGH_WIDTH 1
14546 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_VFIFO_ULL_MODE_WIDTH 1
14549 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1
14552 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1
14555 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_V2_WIDTH 1
14558 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_MAC_TIMESTAMPING_WIDTH 1
14561 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TIMESTAMP_WIDTH 1
14564 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_SNIFF_WIDTH 1
14567 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_SNIFF_WIDTH 1
14570 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1
14573 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_BACKGROUND_WIDTH 1
14576 #define MC_CMD_GET_CAPABILITIES_V3_OUT_MCDI_DB_RETURN_WIDTH 1
14579 #define MC_CMD_GET_CAPABILITIES_V3_OUT_CTPIO_WIDTH 1
14582 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_SUPPORT_WIDTH 1
14585 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TSA_BOUND_WIDTH 1
14588 #define MC_CMD_GET_CAPABILITIES_V3_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1
14591 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_FLAG_WIDTH 1
14594 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FILTER_ACTION_MARK_WIDTH 1
14597 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1
14600 #define MC_CMD_GET_CAPABILITIES_V3_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1
14603 #define MC_CMD_GET_CAPABILITIES_V3_OUT_L3XUDP_SUPPORT_WIDTH 1
14606 #define MC_CMD_GET_CAPABILITIES_V3_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1
14609 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_SPREADING_WIDTH 1
14612 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RXDP_HLB_IDLE_WIDTH 1
14615 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1
14618 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1
14621 #define MC_CMD_GET_CAPABILITIES_V3_OUT_BUNDLE_UPDATE_WIDTH 1
14624 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_TSO_V3_WIDTH 1
14627 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DYNAMIC_SENSORS_WIDTH 1
14630 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1
14631 /* Number of FATSOv2 contexts per datapath supported by this NIC (when
14632 * TX_TSO_V2 == 1). Not present on older firmware (check the length).
14636 /* One byte per PF containing the number of the external port assigned to this
14641 #define MC_CMD_GET_CAPABILITIES_V3_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1
14651 * complex scheme of PFs to ports mapping is being used. The future driver
14656 /* One byte per PF containing the number of its VFs, indexed by PF number. A
14660 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VFS_PER_PF_LEN 1
14666 /* Number of VIs available for external ports 0-3. For devices with more than
14672 #define MC_CMD_GET_CAPABILITIES_V3_OUT_NUM_VIS_PER_PORT_NUM 4
14673 /* Size of RX descriptor cache expressed as binary logarithm The actual size
14677 #define MC_CMD_GET_CAPABILITIES_V3_OUT_RX_DESC_CACHE_SIZE_LEN 1
14678 /* Size of TX descriptor cache expressed as binary logarithm The actual size
14682 #define MC_CMD_GET_CAPABILITIES_V3_OUT_TX_DESC_CACHE_SIZE_LEN 1
14683 /* Total number of available PIO buffers */
14686 /* Size of a single PIO buffer */
14689 /* On chips later than Medford the amount of address space assigned to each VI
14691 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
14695 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE_LEN 1
14696 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k.
14700 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */
14702 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */
14704 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing
14705 * (SF-115995-SW) in the present configuration of firmware and port mode.
14708 #define MC_CMD_GET_CAPABILITIES_V3_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1
14709 /* Number of buffers per adapter that can be used for VFIFO Stuffing
14710 * (SF-115995-SW) in the present configuration of firmware and port mode.
14717 /* First word of flags. */
14719 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS1_LEN 4
14722 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VPORT_RECONFIGURE_WIDTH 1
14724 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_STRIPING_LBN 4
14725 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_STRIPING_WIDTH 1
14728 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_QUERY_WIDTH 1
14731 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1
14734 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DRV_ATTACH_PREBOOT_WIDTH 1
14737 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1
14740 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SET_MAC_ENHANCED_WIDTH 1
14743 …efine MC_CMD_GET_CAPABILITIES_V4_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1
14746 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1
14749 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1
14752 #define MC_CMD_GET_CAPABILITIES_V4_OUT_ADDITIONAL_RSS_MODES_WIDTH 1
14755 #define MC_CMD_GET_CAPABILITIES_V4_OUT_QBB_WIDTH 1
14758 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1
14761 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_RSS_LIMITED_WIDTH 1
14764 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PACKED_STREAM_WIDTH 1
14767 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_INCLUDE_FCS_WIDTH 1
14770 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VLAN_INSERTION_WIDTH 1
14773 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_VLAN_STRIPPING_WIDTH 1
14776 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_WIDTH 1
14779 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_0_WIDTH 1
14782 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_PREFIX_LEN_14_WIDTH 1
14785 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_TIMESTAMP_WIDTH 1
14788 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_BATCHING_WIDTH 1
14791 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCAST_FILTER_CHAINING_WIDTH 1
14794 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1
14797 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DISABLE_SCATTER_WIDTH 1
14800 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1
14803 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVB_WIDTH 1
14806 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VXLAN_NVGRE_WIDTH 1
14808 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DPCPU_FW_ID_OFST 4
14822 /* enum: RXDP Test firmware image 1 */
14828 /* enum: RXDP Test firmware image 4 */
14857 /* enum: TXDP Test firmware image 1 */
14870 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4
14871 /* enum: reserved value - do not use (may indicate alternative interpretation
14872 * of REV field in future)
14882 /* enum: RX PD firmware with approximately Siena-compatible behaviour
14904 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
14921 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4
14922 /* enum: reserved value - do not use (may indicate alternative interpretation
14923 * of REV field in future)
14933 /* enum: TX PD firmware with approximately Siena-compatible behaviour
14952 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
14958 /* Hardware capabilities of NIC */
14960 #define MC_CMD_GET_CAPABILITIES_V4_OUT_HW_CAPABILITIES_LEN 4
14963 #define MC_CMD_GET_CAPABILITIES_V4_OUT_LICENSE_CAPABILITIES_LEN 4
14964 /* Second word of flags. Not present on older firmware (check the length). */
14966 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FLAGS2_LEN 4
14969 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_WIDTH 1
14971 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_ENCAP_LBN 1
14972 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V2_ENCAP_WIDTH 1
14975 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVQ_TIMER_CTRL_WIDTH 1
14978 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EVENT_CUT_THROUGH_WIDTH 1
14980 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_CUT_THROUGH_LBN 4
14981 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_CUT_THROUGH_WIDTH 1
14984 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_VFIFO_ULL_MODE_WIDTH 1
14987 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1
14990 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1
14993 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_V2_WIDTH 1
14996 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_MAC_TIMESTAMPING_WIDTH 1
14999 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TIMESTAMP_WIDTH 1
15002 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_SNIFF_WIDTH 1
15005 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_SNIFF_WIDTH 1
15008 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1
15011 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_BACKGROUND_WIDTH 1
15014 #define MC_CMD_GET_CAPABILITIES_V4_OUT_MCDI_DB_RETURN_WIDTH 1
15017 #define MC_CMD_GET_CAPABILITIES_V4_OUT_CTPIO_WIDTH 1
15020 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_SUPPORT_WIDTH 1
15023 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TSA_BOUND_WIDTH 1
15026 #define MC_CMD_GET_CAPABILITIES_V4_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1
15029 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_FLAG_WIDTH 1
15032 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FILTER_ACTION_MARK_WIDTH 1
15035 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1
15038 #define MC_CMD_GET_CAPABILITIES_V4_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1
15041 #define MC_CMD_GET_CAPABILITIES_V4_OUT_L3XUDP_SUPPORT_WIDTH 1
15044 #define MC_CMD_GET_CAPABILITIES_V4_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1
15047 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_SPREADING_WIDTH 1
15050 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RXDP_HLB_IDLE_WIDTH 1
15053 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1
15056 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1
15059 #define MC_CMD_GET_CAPABILITIES_V4_OUT_BUNDLE_UPDATE_WIDTH 1
15062 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_TSO_V3_WIDTH 1
15065 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DYNAMIC_SENSORS_WIDTH 1
15068 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1
15069 /* Number of FATSOv2 contexts per datapath supported by this NIC (when
15070 * TX_TSO_V2 == 1). Not present on older firmware (check the length).
15074 /* One byte per PF containing the number of the external port assigned to this
15079 #define MC_CMD_GET_CAPABILITIES_V4_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1
15089 * complex scheme of PFs to ports mapping is being used. The future driver
15094 /* One byte per PF containing the number of its VFs, indexed by PF number. A
15098 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VFS_PER_PF_LEN 1
15104 /* Number of VIs available for external ports 0-3. For devices with more than
15110 #define MC_CMD_GET_CAPABILITIES_V4_OUT_NUM_VIS_PER_PORT_NUM 4
15111 /* Size of RX descriptor cache expressed as binary logarithm The actual size
15115 #define MC_CMD_GET_CAPABILITIES_V4_OUT_RX_DESC_CACHE_SIZE_LEN 1
15116 /* Size of TX descriptor cache expressed as binary logarithm The actual size
15120 #define MC_CMD_GET_CAPABILITIES_V4_OUT_TX_DESC_CACHE_SIZE_LEN 1
15121 /* Total number of available PIO buffers */
15124 /* Size of a single PIO buffer */
15127 /* On chips later than Medford the amount of address space assigned to each VI
15129 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
15133 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VI_WINDOW_MODE_LEN 1
15134 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k.
15138 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */
15140 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */
15142 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing
15143 * (SF-115995-SW) in the present configuration of firmware and port mode.
15146 #define MC_CMD_GET_CAPABILITIES_V4_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1
15147 /* Number of buffers per adapter that can be used for VFIFO Stuffing
15148 * (SF-115995-SW) in the present configuration of firmware and port mode.
15154 * hold at least this many 64-bit stats values, if they wish to receive all
15163 /* First word of flags. */
15165 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS1_LEN 4
15168 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VPORT_RECONFIGURE_WIDTH 1
15170 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_STRIPING_LBN 4
15171 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_STRIPING_WIDTH 1
15174 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_QUERY_WIDTH 1
15177 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1
15180 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DRV_ATTACH_PREBOOT_WIDTH 1
15183 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1
15186 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SET_MAC_ENHANCED_WIDTH 1
15189 …efine MC_CMD_GET_CAPABILITIES_V5_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1
15192 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1
15195 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1
15198 #define MC_CMD_GET_CAPABILITIES_V5_OUT_ADDITIONAL_RSS_MODES_WIDTH 1
15201 #define MC_CMD_GET_CAPABILITIES_V5_OUT_QBB_WIDTH 1
15204 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1
15207 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_RSS_LIMITED_WIDTH 1
15210 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PACKED_STREAM_WIDTH 1
15213 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_INCLUDE_FCS_WIDTH 1
15216 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VLAN_INSERTION_WIDTH 1
15219 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_VLAN_STRIPPING_WIDTH 1
15222 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_WIDTH 1
15225 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_0_WIDTH 1
15228 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_PREFIX_LEN_14_WIDTH 1
15231 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_TIMESTAMP_WIDTH 1
15234 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_BATCHING_WIDTH 1
15237 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCAST_FILTER_CHAINING_WIDTH 1
15240 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1
15243 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DISABLE_SCATTER_WIDTH 1
15246 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1
15249 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVB_WIDTH 1
15252 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VXLAN_NVGRE_WIDTH 1
15254 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DPCPU_FW_ID_OFST 4
15268 /* enum: RXDP Test firmware image 1 */
15274 /* enum: RXDP Test firmware image 4 */
15303 /* enum: TXDP Test firmware image 1 */
15316 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4
15317 /* enum: reserved value - do not use (may indicate alternative interpretation
15318 * of REV field in future)
15328 /* enum: RX PD firmware with approximately Siena-compatible behaviour
15350 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
15367 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4
15368 /* enum: reserved value - do not use (may indicate alternative interpretation
15369 * of REV field in future)
15379 /* enum: TX PD firmware with approximately Siena-compatible behaviour
15398 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
15404 /* Hardware capabilities of NIC */
15406 #define MC_CMD_GET_CAPABILITIES_V5_OUT_HW_CAPABILITIES_LEN 4
15409 #define MC_CMD_GET_CAPABILITIES_V5_OUT_LICENSE_CAPABILITIES_LEN 4
15410 /* Second word of flags. Not present on older firmware (check the length). */
15412 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FLAGS2_LEN 4
15415 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_WIDTH 1
15417 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_ENCAP_LBN 1
15418 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V2_ENCAP_WIDTH 1
15421 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVQ_TIMER_CTRL_WIDTH 1
15424 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EVENT_CUT_THROUGH_WIDTH 1
15426 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_CUT_THROUGH_LBN 4
15427 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_CUT_THROUGH_WIDTH 1
15430 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_VFIFO_ULL_MODE_WIDTH 1
15433 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1
15436 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1
15439 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_V2_WIDTH 1
15442 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_MAC_TIMESTAMPING_WIDTH 1
15445 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TIMESTAMP_WIDTH 1
15448 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_SNIFF_WIDTH 1
15451 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_SNIFF_WIDTH 1
15454 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1
15457 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_BACKGROUND_WIDTH 1
15460 #define MC_CMD_GET_CAPABILITIES_V5_OUT_MCDI_DB_RETURN_WIDTH 1
15463 #define MC_CMD_GET_CAPABILITIES_V5_OUT_CTPIO_WIDTH 1
15466 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_SUPPORT_WIDTH 1
15469 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TSA_BOUND_WIDTH 1
15472 #define MC_CMD_GET_CAPABILITIES_V5_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1
15475 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_FLAG_WIDTH 1
15478 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_WIDTH 1
15481 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1
15484 #define MC_CMD_GET_CAPABILITIES_V5_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1
15487 #define MC_CMD_GET_CAPABILITIES_V5_OUT_L3XUDP_SUPPORT_WIDTH 1
15490 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1
15493 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_SPREADING_WIDTH 1
15496 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RXDP_HLB_IDLE_WIDTH 1
15499 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1
15502 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1
15505 #define MC_CMD_GET_CAPABILITIES_V5_OUT_BUNDLE_UPDATE_WIDTH 1
15508 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_TSO_V3_WIDTH 1
15511 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DYNAMIC_SENSORS_WIDTH 1
15514 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1
15515 /* Number of FATSOv2 contexts per datapath supported by this NIC (when
15516 * TX_TSO_V2 == 1). Not present on older firmware (check the length).
15520 /* One byte per PF containing the number of the external port assigned to this
15525 #define MC_CMD_GET_CAPABILITIES_V5_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1
15535 * complex scheme of PFs to ports mapping is being used. The future driver
15540 /* One byte per PF containing the number of its VFs, indexed by PF number. A
15544 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VFS_PER_PF_LEN 1
15550 /* Number of VIs available for external ports 0-3. For devices with more than
15556 #define MC_CMD_GET_CAPABILITIES_V5_OUT_NUM_VIS_PER_PORT_NUM 4
15557 /* Size of RX descriptor cache expressed as binary logarithm The actual size
15561 #define MC_CMD_GET_CAPABILITIES_V5_OUT_RX_DESC_CACHE_SIZE_LEN 1
15562 /* Size of TX descriptor cache expressed as binary logarithm The actual size
15566 #define MC_CMD_GET_CAPABILITIES_V5_OUT_TX_DESC_CACHE_SIZE_LEN 1
15567 /* Total number of available PIO buffers */
15570 /* Size of a single PIO buffer */
15573 /* On chips later than Medford the amount of address space assigned to each VI
15575 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
15579 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VI_WINDOW_MODE_LEN 1
15580 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k.
15584 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */
15586 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */
15588 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing
15589 * (SF-115995-SW) in the present configuration of firmware and port mode.
15592 #define MC_CMD_GET_CAPABILITIES_V5_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1
15593 /* Number of buffers per adapter that can be used for VFIFO Stuffing
15594 * (SF-115995-SW) in the present configuration of firmware and port mode.
15600 * hold at least this many 64-bit stats values, if they wish to receive all
15607 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set.
15610 #define MC_CMD_GET_CAPABILITIES_V5_OUT_FILTER_ACTION_MARK_MAX_LEN 4
15614 /* First word of flags. */
15616 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS1_LEN 4
15619 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VPORT_RECONFIGURE_WIDTH 1
15621 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_STRIPING_LBN 4
15622 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_STRIPING_WIDTH 1
15625 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_QUERY_WIDTH 1
15628 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1
15631 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DRV_ATTACH_PREBOOT_WIDTH 1
15634 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1
15637 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SET_MAC_ENHANCED_WIDTH 1
15640 …efine MC_CMD_GET_CAPABILITIES_V6_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1
15643 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1
15646 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1
15649 #define MC_CMD_GET_CAPABILITIES_V6_OUT_ADDITIONAL_RSS_MODES_WIDTH 1
15652 #define MC_CMD_GET_CAPABILITIES_V6_OUT_QBB_WIDTH 1
15655 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1
15658 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_RSS_LIMITED_WIDTH 1
15661 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PACKED_STREAM_WIDTH 1
15664 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_INCLUDE_FCS_WIDTH 1
15667 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VLAN_INSERTION_WIDTH 1
15670 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_VLAN_STRIPPING_WIDTH 1
15673 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_WIDTH 1
15676 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_0_WIDTH 1
15679 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_PREFIX_LEN_14_WIDTH 1
15682 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_TIMESTAMP_WIDTH 1
15685 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_BATCHING_WIDTH 1
15688 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCAST_FILTER_CHAINING_WIDTH 1
15691 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1
15694 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DISABLE_SCATTER_WIDTH 1
15697 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1
15700 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVB_WIDTH 1
15703 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VXLAN_NVGRE_WIDTH 1
15705 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DPCPU_FW_ID_OFST 4
15719 /* enum: RXDP Test firmware image 1 */
15725 /* enum: RXDP Test firmware image 4 */
15754 /* enum: TXDP Test firmware image 1 */
15767 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4
15768 /* enum: reserved value - do not use (may indicate alternative interpretation
15769 * of REV field in future)
15779 /* enum: RX PD firmware with approximately Siena-compatible behaviour
15801 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
15818 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4
15819 /* enum: reserved value - do not use (may indicate alternative interpretation
15820 * of REV field in future)
15830 /* enum: TX PD firmware with approximately Siena-compatible behaviour
15849 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
15855 /* Hardware capabilities of NIC */
15857 #define MC_CMD_GET_CAPABILITIES_V6_OUT_HW_CAPABILITIES_LEN 4
15860 #define MC_CMD_GET_CAPABILITIES_V6_OUT_LICENSE_CAPABILITIES_LEN 4
15861 /* Second word of flags. Not present on older firmware (check the length). */
15863 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FLAGS2_LEN 4
15866 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_WIDTH 1
15868 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_ENCAP_LBN 1
15869 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V2_ENCAP_WIDTH 1
15872 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVQ_TIMER_CTRL_WIDTH 1
15875 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EVENT_CUT_THROUGH_WIDTH 1
15877 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_CUT_THROUGH_LBN 4
15878 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_CUT_THROUGH_WIDTH 1
15881 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_VFIFO_ULL_MODE_WIDTH 1
15884 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1
15887 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1
15890 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_V2_WIDTH 1
15893 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_MAC_TIMESTAMPING_WIDTH 1
15896 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TIMESTAMP_WIDTH 1
15899 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_SNIFF_WIDTH 1
15902 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_SNIFF_WIDTH 1
15905 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1
15908 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_BACKGROUND_WIDTH 1
15911 #define MC_CMD_GET_CAPABILITIES_V6_OUT_MCDI_DB_RETURN_WIDTH 1
15914 #define MC_CMD_GET_CAPABILITIES_V6_OUT_CTPIO_WIDTH 1
15917 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_SUPPORT_WIDTH 1
15920 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TSA_BOUND_WIDTH 1
15923 #define MC_CMD_GET_CAPABILITIES_V6_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1
15926 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_FLAG_WIDTH 1
15929 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_WIDTH 1
15932 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1
15935 #define MC_CMD_GET_CAPABILITIES_V6_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1
15938 #define MC_CMD_GET_CAPABILITIES_V6_OUT_L3XUDP_SUPPORT_WIDTH 1
15941 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1
15944 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_SPREADING_WIDTH 1
15947 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RXDP_HLB_IDLE_WIDTH 1
15950 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1
15953 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1
15956 #define MC_CMD_GET_CAPABILITIES_V6_OUT_BUNDLE_UPDATE_WIDTH 1
15959 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_TSO_V3_WIDTH 1
15962 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DYNAMIC_SENSORS_WIDTH 1
15965 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1
15966 /* Number of FATSOv2 contexts per datapath supported by this NIC (when
15967 * TX_TSO_V2 == 1). Not present on older firmware (check the length).
15971 /* One byte per PF containing the number of the external port assigned to this
15976 #define MC_CMD_GET_CAPABILITIES_V6_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1
15986 * complex scheme of PFs to ports mapping is being used. The future driver
15991 /* One byte per PF containing the number of its VFs, indexed by PF number. A
15995 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VFS_PER_PF_LEN 1
16001 /* Number of VIs available for external ports 0-3. For devices with more than
16007 #define MC_CMD_GET_CAPABILITIES_V6_OUT_NUM_VIS_PER_PORT_NUM 4
16008 /* Size of RX descriptor cache expressed as binary logarithm The actual size
16012 #define MC_CMD_GET_CAPABILITIES_V6_OUT_RX_DESC_CACHE_SIZE_LEN 1
16013 /* Size of TX descriptor cache expressed as binary logarithm The actual size
16017 #define MC_CMD_GET_CAPABILITIES_V6_OUT_TX_DESC_CACHE_SIZE_LEN 1
16018 /* Total number of available PIO buffers */
16021 /* Size of a single PIO buffer */
16024 /* On chips later than Medford the amount of address space assigned to each VI
16026 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
16030 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VI_WINDOW_MODE_LEN 1
16031 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k.
16035 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */
16037 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */
16039 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing
16040 * (SF-115995-SW) in the present configuration of firmware and port mode.
16043 #define MC_CMD_GET_CAPABILITIES_V6_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1
16044 /* Number of buffers per adapter that can be used for VFIFO Stuffing
16045 * (SF-115995-SW) in the present configuration of firmware and port mode.
16051 * hold at least this many 64-bit stats values, if they wish to receive all
16058 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set.
16061 #define MC_CMD_GET_CAPABILITIES_V6_OUT_FILTER_ACTION_MARK_MAX_LEN 4
16064 * they create an RX queue. Due to hardware limitations, only a small number of
16066 * this array are the sizes of buffers which the system guarantees will be
16071 #define MC_CMD_GET_CAPABILITIES_V6_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4
16076 /* First word of flags. */
16078 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS1_LEN 4
16081 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VPORT_RECONFIGURE_WIDTH 1
16083 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_STRIPING_LBN 4
16084 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_STRIPING_WIDTH 1
16087 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_QUERY_WIDTH 1
16090 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1
16093 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DRV_ATTACH_PREBOOT_WIDTH 1
16096 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1
16099 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SET_MAC_ENHANCED_WIDTH 1
16102 …efine MC_CMD_GET_CAPABILITIES_V7_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1
16105 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1
16108 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1
16111 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ADDITIONAL_RSS_MODES_WIDTH 1
16114 #define MC_CMD_GET_CAPABILITIES_V7_OUT_QBB_WIDTH 1
16117 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1
16120 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_RSS_LIMITED_WIDTH 1
16123 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PACKED_STREAM_WIDTH 1
16126 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_INCLUDE_FCS_WIDTH 1
16129 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VLAN_INSERTION_WIDTH 1
16132 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_WIDTH 1
16135 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_WIDTH 1
16138 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_0_WIDTH 1
16141 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_PREFIX_LEN_14_WIDTH 1
16144 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_TIMESTAMP_WIDTH 1
16147 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_BATCHING_WIDTH 1
16150 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCAST_FILTER_CHAINING_WIDTH 1
16153 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1
16156 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DISABLE_SCATTER_WIDTH 1
16159 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1
16162 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVB_WIDTH 1
16165 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VXLAN_NVGRE_WIDTH 1
16167 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DPCPU_FW_ID_OFST 4
16181 /* enum: RXDP Test firmware image 1 */
16187 /* enum: RXDP Test firmware image 4 */
16216 /* enum: TXDP Test firmware image 1 */
16229 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4
16230 /* enum: reserved value - do not use (may indicate alternative interpretation
16231 * of REV field in future)
16241 /* enum: RX PD firmware with approximately Siena-compatible behaviour
16263 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
16280 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4
16281 /* enum: reserved value - do not use (may indicate alternative interpretation
16282 * of REV field in future)
16292 /* enum: TX PD firmware with approximately Siena-compatible behaviour
16311 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
16317 /* Hardware capabilities of NIC */
16319 #define MC_CMD_GET_CAPABILITIES_V7_OUT_HW_CAPABILITIES_LEN 4
16322 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LICENSE_CAPABILITIES_LEN 4
16323 /* Second word of flags. Not present on older firmware (check the length). */
16325 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS2_LEN 4
16328 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_WIDTH 1
16330 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_ENCAP_LBN 1
16331 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V2_ENCAP_WIDTH 1
16334 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVQ_TIMER_CTRL_WIDTH 1
16337 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EVENT_CUT_THROUGH_WIDTH 1
16339 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_CUT_THROUGH_LBN 4
16340 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_CUT_THROUGH_WIDTH 1
16343 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_VFIFO_ULL_MODE_WIDTH 1
16346 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1
16349 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1
16352 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_V2_WIDTH 1
16355 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_MAC_TIMESTAMPING_WIDTH 1
16358 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TIMESTAMP_WIDTH 1
16361 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_SNIFF_WIDTH 1
16364 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_SNIFF_WIDTH 1
16367 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1
16370 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_BACKGROUND_WIDTH 1
16373 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MCDI_DB_RETURN_WIDTH 1
16376 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CTPIO_WIDTH 1
16379 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_SUPPORT_WIDTH 1
16382 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TSA_BOUND_WIDTH 1
16385 #define MC_CMD_GET_CAPABILITIES_V7_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1
16388 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_FLAG_WIDTH 1
16391 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_WIDTH 1
16394 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1
16397 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1
16400 #define MC_CMD_GET_CAPABILITIES_V7_OUT_L3XUDP_SUPPORT_WIDTH 1
16403 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1
16406 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_SPREADING_WIDTH 1
16409 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RXDP_HLB_IDLE_WIDTH 1
16412 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1
16415 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1
16418 #define MC_CMD_GET_CAPABILITIES_V7_OUT_BUNDLE_UPDATE_WIDTH 1
16421 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_TSO_V3_WIDTH 1
16424 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_SENSORS_WIDTH 1
16427 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1
16428 /* Number of FATSOv2 contexts per datapath supported by this NIC (when
16429 * TX_TSO_V2 == 1). Not present on older firmware (check the length).
16433 /* One byte per PF containing the number of the external port assigned to this
16438 #define MC_CMD_GET_CAPABILITIES_V7_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1
16448 * complex scheme of PFs to ports mapping is being used. The future driver
16453 /* One byte per PF containing the number of its VFs, indexed by PF number. A
16457 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VFS_PER_PF_LEN 1
16463 /* Number of VIs available for external ports 0-3. For devices with more than
16469 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NUM_VIS_PER_PORT_NUM 4
16470 /* Size of RX descriptor cache expressed as binary logarithm The actual size
16474 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_DESC_CACHE_SIZE_LEN 1
16475 /* Size of TX descriptor cache expressed as binary logarithm The actual size
16479 #define MC_CMD_GET_CAPABILITIES_V7_OUT_TX_DESC_CACHE_SIZE_LEN 1
16480 /* Total number of available PIO buffers */
16483 /* Size of a single PIO buffer */
16486 /* On chips later than Medford the amount of address space assigned to each VI
16488 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
16492 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VI_WINDOW_MODE_LEN 1
16493 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k.
16497 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */
16499 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */
16501 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing
16502 * (SF-115995-SW) in the present configuration of firmware and port mode.
16505 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1
16506 /* Number of buffers per adapter that can be used for VFIFO Stuffing
16507 * (SF-115995-SW) in the present configuration of firmware and port mode.
16513 * hold at least this many 64-bit stats values, if they wish to receive all
16520 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set.
16523 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FILTER_ACTION_MARK_MAX_LEN 4
16526 * they create an RX queue. Due to hardware limitations, only a small number of
16528 * this array are the sizes of buffers which the system guarantees will be
16533 #define MC_CMD_GET_CAPABILITIES_V7_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4
16535 /* Third word of flags. Not present on older firmware (check the length). */
16537 #define MC_CMD_GET_CAPABILITIES_V7_OUT_FLAGS3_LEN 4
16540 #define MC_CMD_GET_CAPABILITIES_V7_OUT_WOL_ETHERWAKE_WIDTH 1
16542 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_EVEN_SPREADING_LBN 1
16543 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_EVEN_SPREADING_WIDTH 1
16546 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1
16549 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_SUPPORTED_WIDTH 1
16551 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VDPA_SUPPORTED_LBN 4
16552 #define MC_CMD_GET_CAPABILITIES_V7_OUT_VDPA_SUPPORTED_WIDTH 1
16555 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1
16558 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1
16561 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1
16564 #define MC_CMD_GET_CAPABILITIES_V7_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1
16567 #define MC_CMD_GET_CAPABILITIES_V7_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1
16570 #define MC_CMD_GET_CAPABILITIES_V7_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1
16573 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1
16576 #define MC_CMD_GET_CAPABILITIES_V7_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1
16579 #define MC_CMD_GET_CAPABILITIES_V7_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_WIDTH 1
16582 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1
16585 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CLIENT_CMD_VF_PROXY_WIDTH 1
16588 #define MC_CMD_GET_CAPABILITIES_V7_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_WIDTH 1
16591 #define MC_CMD_GET_CAPABILITIES_V7_OUT_CXL_CONFIG_ENABLE_WIDTH 1
16595 /* First word of flags. */
16597 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS1_LEN 4
16600 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VPORT_RECONFIGURE_WIDTH 1
16602 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_STRIPING_LBN 4
16603 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_STRIPING_WIDTH 1
16606 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_QUERY_WIDTH 1
16609 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1
16612 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DRV_ATTACH_PREBOOT_WIDTH 1
16615 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1
16618 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SET_MAC_ENHANCED_WIDTH 1
16621 …efine MC_CMD_GET_CAPABILITIES_V8_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1
16624 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1
16627 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1
16630 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ADDITIONAL_RSS_MODES_WIDTH 1
16633 #define MC_CMD_GET_CAPABILITIES_V8_OUT_QBB_WIDTH 1
16636 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1
16639 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_RSS_LIMITED_WIDTH 1
16642 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PACKED_STREAM_WIDTH 1
16645 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_INCLUDE_FCS_WIDTH 1
16648 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VLAN_INSERTION_WIDTH 1
16651 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_WIDTH 1
16654 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_WIDTH 1
16657 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_0_WIDTH 1
16660 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_PREFIX_LEN_14_WIDTH 1
16663 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_TIMESTAMP_WIDTH 1
16666 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_BATCHING_WIDTH 1
16669 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCAST_FILTER_CHAINING_WIDTH 1
16672 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1
16675 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DISABLE_SCATTER_WIDTH 1
16678 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1
16681 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVB_WIDTH 1
16684 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VXLAN_NVGRE_WIDTH 1
16686 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DPCPU_FW_ID_OFST 4
16700 /* enum: RXDP Test firmware image 1 */
16706 /* enum: RXDP Test firmware image 4 */
16735 /* enum: TXDP Test firmware image 1 */
16748 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4
16749 /* enum: reserved value - do not use (may indicate alternative interpretation
16750 * of REV field in future)
16760 /* enum: RX PD firmware with approximately Siena-compatible behaviour
16782 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
16799 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4
16800 /* enum: reserved value - do not use (may indicate alternative interpretation
16801 * of REV field in future)
16811 /* enum: TX PD firmware with approximately Siena-compatible behaviour
16830 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
16836 /* Hardware capabilities of NIC */
16838 #define MC_CMD_GET_CAPABILITIES_V8_OUT_HW_CAPABILITIES_LEN 4
16841 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LICENSE_CAPABILITIES_LEN 4
16842 /* Second word of flags. Not present on older firmware (check the length). */
16844 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS2_LEN 4
16847 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_WIDTH 1
16849 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_ENCAP_LBN 1
16850 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V2_ENCAP_WIDTH 1
16853 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVQ_TIMER_CTRL_WIDTH 1
16856 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EVENT_CUT_THROUGH_WIDTH 1
16858 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_CUT_THROUGH_LBN 4
16859 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_CUT_THROUGH_WIDTH 1
16862 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_VFIFO_ULL_MODE_WIDTH 1
16865 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1
16868 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1
16871 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_V2_WIDTH 1
16874 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_MAC_TIMESTAMPING_WIDTH 1
16877 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TIMESTAMP_WIDTH 1
16880 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_SNIFF_WIDTH 1
16883 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_SNIFF_WIDTH 1
16886 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1
16889 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_BACKGROUND_WIDTH 1
16892 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MCDI_DB_RETURN_WIDTH 1
16895 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CTPIO_WIDTH 1
16898 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_SUPPORT_WIDTH 1
16901 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TSA_BOUND_WIDTH 1
16904 #define MC_CMD_GET_CAPABILITIES_V8_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1
16907 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_FLAG_WIDTH 1
16910 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_WIDTH 1
16913 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1
16916 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1
16919 #define MC_CMD_GET_CAPABILITIES_V8_OUT_L3XUDP_SUPPORT_WIDTH 1
16922 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1
16925 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_SPREADING_WIDTH 1
16928 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RXDP_HLB_IDLE_WIDTH 1
16931 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1
16934 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1
16937 #define MC_CMD_GET_CAPABILITIES_V8_OUT_BUNDLE_UPDATE_WIDTH 1
16940 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_TSO_V3_WIDTH 1
16943 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_SENSORS_WIDTH 1
16946 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1
16947 /* Number of FATSOv2 contexts per datapath supported by this NIC (when
16948 * TX_TSO_V2 == 1). Not present on older firmware (check the length).
16952 /* One byte per PF containing the number of the external port assigned to this
16957 #define MC_CMD_GET_CAPABILITIES_V8_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1
16967 * complex scheme of PFs to ports mapping is being used. The future driver
16972 /* One byte per PF containing the number of its VFs, indexed by PF number. A
16976 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VFS_PER_PF_LEN 1
16982 /* Number of VIs available for external ports 0-3. For devices with more than
16988 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NUM_VIS_PER_PORT_NUM 4
16989 /* Size of RX descriptor cache expressed as binary logarithm The actual size
16993 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_DESC_CACHE_SIZE_LEN 1
16994 /* Size of TX descriptor cache expressed as binary logarithm The actual size
16998 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TX_DESC_CACHE_SIZE_LEN 1
16999 /* Total number of available PIO buffers */
17002 /* Size of a single PIO buffer */
17005 /* On chips later than Medford the amount of address space assigned to each VI
17007 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
17011 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VI_WINDOW_MODE_LEN 1
17012 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k.
17016 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */
17018 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */
17020 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing
17021 * (SF-115995-SW) in the present configuration of firmware and port mode.
17024 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1
17025 /* Number of buffers per adapter that can be used for VFIFO Stuffing
17026 * (SF-115995-SW) in the present configuration of firmware and port mode.
17032 * hold at least this many 64-bit stats values, if they wish to receive all
17039 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set.
17042 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FILTER_ACTION_MARK_MAX_LEN 4
17045 * they create an RX queue. Due to hardware limitations, only a small number of
17047 * this array are the sizes of buffers which the system guarantees will be
17052 #define MC_CMD_GET_CAPABILITIES_V8_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4
17054 /* Third word of flags. Not present on older firmware (check the length). */
17056 #define MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS3_LEN 4
17059 #define MC_CMD_GET_CAPABILITIES_V8_OUT_WOL_ETHERWAKE_WIDTH 1
17061 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_EVEN_SPREADING_LBN 1
17062 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_EVEN_SPREADING_WIDTH 1
17065 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1
17068 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_SUPPORTED_WIDTH 1
17070 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VDPA_SUPPORTED_LBN 4
17071 #define MC_CMD_GET_CAPABILITIES_V8_OUT_VDPA_SUPPORTED_WIDTH 1
17074 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1
17077 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1
17080 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1
17083 #define MC_CMD_GET_CAPABILITIES_V8_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1
17086 #define MC_CMD_GET_CAPABILITIES_V8_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1
17089 #define MC_CMD_GET_CAPABILITIES_V8_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1
17092 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1
17095 #define MC_CMD_GET_CAPABILITIES_V8_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1
17098 #define MC_CMD_GET_CAPABILITIES_V8_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_WIDTH 1
17101 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1
17104 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CLIENT_CMD_VF_PROXY_WIDTH 1
17107 #define MC_CMD_GET_CAPABILITIES_V8_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_WIDTH 1
17110 #define MC_CMD_GET_CAPABILITIES_V8_OUT_CXL_CONFIG_ENABLE_WIDTH 1
17111 /* These bits are reserved for communicating test-specific capabilities to
17112 * host-side test software. All production drivers should treat this field as
17118 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_LO_LEN 4
17122 #define MC_CMD_GET_CAPABILITIES_V8_OUT_TEST_RESERVED_HI_LEN 4
17128 /* First word of flags. */
17130 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS1_LEN 4
17133 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VPORT_RECONFIGURE_WIDTH 1
17135 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_STRIPING_LBN 4
17136 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_STRIPING_WIDTH 1
17139 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_QUERY_WIDTH 1
17142 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1
17145 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DRV_ATTACH_PREBOOT_WIDTH 1
17148 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1
17151 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SET_MAC_ENHANCED_WIDTH 1
17154 …efine MC_CMD_GET_CAPABILITIES_V9_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1
17157 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1
17160 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1
17163 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ADDITIONAL_RSS_MODES_WIDTH 1
17166 #define MC_CMD_GET_CAPABILITIES_V9_OUT_QBB_WIDTH 1
17169 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1
17172 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_RSS_LIMITED_WIDTH 1
17175 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PACKED_STREAM_WIDTH 1
17178 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_INCLUDE_FCS_WIDTH 1
17181 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VLAN_INSERTION_WIDTH 1
17184 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_WIDTH 1
17187 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_WIDTH 1
17190 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_0_WIDTH 1
17193 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_PREFIX_LEN_14_WIDTH 1
17196 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_TIMESTAMP_WIDTH 1
17199 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_BATCHING_WIDTH 1
17202 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCAST_FILTER_CHAINING_WIDTH 1
17205 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1
17208 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DISABLE_SCATTER_WIDTH 1
17211 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1
17214 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVB_WIDTH 1
17217 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VXLAN_NVGRE_WIDTH 1
17219 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DPCPU_FW_ID_OFST 4
17233 /* enum: RXDP Test firmware image 1 */
17239 /* enum: RXDP Test firmware image 4 */
17268 /* enum: TXDP Test firmware image 1 */
17281 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4
17282 /* enum: reserved value - do not use (may indicate alternative interpretation
17283 * of REV field in future)
17293 /* enum: RX PD firmware with approximately Siena-compatible behaviour
17315 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
17332 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4
17333 /* enum: reserved value - do not use (may indicate alternative interpretation
17334 * of REV field in future)
17344 /* enum: TX PD firmware with approximately Siena-compatible behaviour
17363 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
17369 /* Hardware capabilities of NIC */
17371 #define MC_CMD_GET_CAPABILITIES_V9_OUT_HW_CAPABILITIES_LEN 4
17374 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LICENSE_CAPABILITIES_LEN 4
17375 /* Second word of flags. Not present on older firmware (check the length). */
17377 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS2_LEN 4
17380 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_WIDTH 1
17382 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_ENCAP_LBN 1
17383 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V2_ENCAP_WIDTH 1
17386 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVQ_TIMER_CTRL_WIDTH 1
17389 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EVENT_CUT_THROUGH_WIDTH 1
17391 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_CUT_THROUGH_LBN 4
17392 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_CUT_THROUGH_WIDTH 1
17395 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_VFIFO_ULL_MODE_WIDTH 1
17398 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1
17401 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1
17404 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_V2_WIDTH 1
17407 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_MAC_TIMESTAMPING_WIDTH 1
17410 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TIMESTAMP_WIDTH 1
17413 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_SNIFF_WIDTH 1
17416 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_SNIFF_WIDTH 1
17419 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1
17422 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_BACKGROUND_WIDTH 1
17425 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MCDI_DB_RETURN_WIDTH 1
17428 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CTPIO_WIDTH 1
17431 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_SUPPORT_WIDTH 1
17434 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TSA_BOUND_WIDTH 1
17437 #define MC_CMD_GET_CAPABILITIES_V9_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1
17440 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_FLAG_WIDTH 1
17443 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_WIDTH 1
17446 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1
17449 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1
17452 #define MC_CMD_GET_CAPABILITIES_V9_OUT_L3XUDP_SUPPORT_WIDTH 1
17455 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1
17458 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_SPREADING_WIDTH 1
17461 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RXDP_HLB_IDLE_WIDTH 1
17464 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1
17467 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1
17470 #define MC_CMD_GET_CAPABILITIES_V9_OUT_BUNDLE_UPDATE_WIDTH 1
17473 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_TSO_V3_WIDTH 1
17476 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_SENSORS_WIDTH 1
17479 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1
17480 /* Number of FATSOv2 contexts per datapath supported by this NIC (when
17481 * TX_TSO_V2 == 1). Not present on older firmware (check the length).
17485 /* One byte per PF containing the number of the external port assigned to this
17490 #define MC_CMD_GET_CAPABILITIES_V9_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1
17500 * complex scheme of PFs to ports mapping is being used. The future driver
17505 /* One byte per PF containing the number of its VFs, indexed by PF number. A
17509 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VFS_PER_PF_LEN 1
17515 /* Number of VIs available for external ports 0-3. For devices with more than
17521 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NUM_VIS_PER_PORT_NUM 4
17522 /* Size of RX descriptor cache expressed as binary logarithm The actual size
17526 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_DESC_CACHE_SIZE_LEN 1
17527 /* Size of TX descriptor cache expressed as binary logarithm The actual size
17531 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TX_DESC_CACHE_SIZE_LEN 1
17532 /* Total number of available PIO buffers */
17535 /* Size of a single PIO buffer */
17538 /* On chips later than Medford the amount of address space assigned to each VI
17540 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
17544 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VI_WINDOW_MODE_LEN 1
17545 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k.
17549 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */
17551 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */
17553 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing
17554 * (SF-115995-SW) in the present configuration of firmware and port mode.
17557 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1
17558 /* Number of buffers per adapter that can be used for VFIFO Stuffing
17559 * (SF-115995-SW) in the present configuration of firmware and port mode.
17565 * hold at least this many 64-bit stats values, if they wish to receive all
17572 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set.
17575 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FILTER_ACTION_MARK_MAX_LEN 4
17578 * they create an RX queue. Due to hardware limitations, only a small number of
17580 * this array are the sizes of buffers which the system guarantees will be
17585 #define MC_CMD_GET_CAPABILITIES_V9_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4
17587 /* Third word of flags. Not present on older firmware (check the length). */
17589 #define MC_CMD_GET_CAPABILITIES_V9_OUT_FLAGS3_LEN 4
17592 #define MC_CMD_GET_CAPABILITIES_V9_OUT_WOL_ETHERWAKE_WIDTH 1
17594 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_EVEN_SPREADING_LBN 1
17595 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_EVEN_SPREADING_WIDTH 1
17598 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1
17601 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_SUPPORTED_WIDTH 1
17603 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VDPA_SUPPORTED_LBN 4
17604 #define MC_CMD_GET_CAPABILITIES_V9_OUT_VDPA_SUPPORTED_WIDTH 1
17607 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1
17610 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1
17613 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1
17616 #define MC_CMD_GET_CAPABILITIES_V9_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1
17619 #define MC_CMD_GET_CAPABILITIES_V9_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1
17622 #define MC_CMD_GET_CAPABILITIES_V9_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1
17625 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1
17628 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1
17631 #define MC_CMD_GET_CAPABILITIES_V9_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_WIDTH 1
17634 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1
17637 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CLIENT_CMD_VF_PROXY_WIDTH 1
17640 #define MC_CMD_GET_CAPABILITIES_V9_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_WIDTH 1
17643 #define MC_CMD_GET_CAPABILITIES_V9_OUT_CXL_CONFIG_ENABLE_WIDTH 1
17644 /* These bits are reserved for communicating test-specific capabilities to
17645 * host-side test software. All production drivers should treat this field as
17651 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_LO_LEN 4
17655 #define MC_CMD_GET_CAPABILITIES_V9_OUT_TEST_RESERVED_HI_LEN 4
17658 /* The minimum size (in table entries) of indirection table to be allocated
17660 * power of 2.
17663 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_LEN 4
17664 /* The maximum size (in table entries) of indirection table to be allocated
17666 * power of 2.
17669 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_LEN 4
17670 /* The maximum number of queues that can be used by an RSS context in exclusive
17675 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_INDIRECTION_QUEUES_LEN 4
17676 /* The maximum number of queues that can be used by an RSS context in even-
17677 * spreading mode. In even-spreading mode the context has no indirection table
17681 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_LEN 4
17682 /* The total number of RSS contexts supported. Note that the number of
17684 * availability of indirection table space allocated from a common pool.
17687 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_NUM_CONTEXTS_LEN 4
17688 /* The total amount of indirection table space that can be shared between RSS
17692 #define MC_CMD_GET_CAPABILITIES_V9_OUT_RSS_TABLE_POOL_SIZE_LEN 4
17696 /* First word of flags. */
17698 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS1_LEN 4
17701 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VPORT_RECONFIGURE_WIDTH 1
17703 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_LBN 4
17704 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_STRIPING_WIDTH 1
17707 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_QUERY_WIDTH 1
17710 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1
17713 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_WIDTH 1
17716 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1
17719 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SET_MAC_ENHANCED_WIDTH 1
17722 …fine MC_CMD_GET_CAPABILITIES_V10_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1
17725 …efine MC_CMD_GET_CAPABILITIES_V10_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1
17728 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1
17731 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ADDITIONAL_RSS_MODES_WIDTH 1
17734 #define MC_CMD_GET_CAPABILITIES_V10_OUT_QBB_WIDTH 1
17737 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1
17740 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_RSS_LIMITED_WIDTH 1
17743 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PACKED_STREAM_WIDTH 1
17746 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_INCLUDE_FCS_WIDTH 1
17749 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VLAN_INSERTION_WIDTH 1
17752 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_WIDTH 1
17755 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_WIDTH 1
17758 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_0_WIDTH 1
17761 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_PREFIX_LEN_14_WIDTH 1
17764 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_TIMESTAMP_WIDTH 1
17767 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_BATCHING_WIDTH 1
17770 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCAST_FILTER_CHAINING_WIDTH 1
17773 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1
17776 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DISABLE_SCATTER_WIDTH 1
17779 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1
17782 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVB_WIDTH 1
17785 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VXLAN_NVGRE_WIDTH 1
17787 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DPCPU_FW_ID_OFST 4
17801 /* enum: RXDP Test firmware image 1 */
17807 /* enum: RXDP Test firmware image 4 */
17836 /* enum: TXDP Test firmware image 1 */
17849 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4
17850 /* enum: reserved value - do not use (may indicate alternative interpretation
17851 * of REV field in future)
17861 /* enum: RX PD firmware with approximately Siena-compatible behaviour
17883 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
17900 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4
17901 /* enum: reserved value - do not use (may indicate alternative interpretation
17902 * of REV field in future)
17912 /* enum: TX PD firmware with approximately Siena-compatible behaviour
17931 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
17937 /* Hardware capabilities of NIC */
17939 #define MC_CMD_GET_CAPABILITIES_V10_OUT_HW_CAPABILITIES_LEN 4
17942 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LICENSE_CAPABILITIES_LEN 4
17943 /* Second word of flags. Not present on older firmware (check the length). */
17945 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS2_LEN 4
17948 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_WIDTH 1
17950 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_LBN 1
17951 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V2_ENCAP_WIDTH 1
17954 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVQ_TIMER_CTRL_WIDTH 1
17957 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EVENT_CUT_THROUGH_WIDTH 1
17959 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_LBN 4
17960 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_CUT_THROUGH_WIDTH 1
17963 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_VFIFO_ULL_MODE_WIDTH 1
17966 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1
17969 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1
17972 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_WIDTH 1
17975 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_MAC_TIMESTAMPING_WIDTH 1
17978 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TIMESTAMP_WIDTH 1
17981 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_SNIFF_WIDTH 1
17984 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_SNIFF_WIDTH 1
17987 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1
17990 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_BACKGROUND_WIDTH 1
17993 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MCDI_DB_RETURN_WIDTH 1
17996 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CTPIO_WIDTH 1
17999 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_SUPPORT_WIDTH 1
18002 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TSA_BOUND_WIDTH 1
18005 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1
18008 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_FLAG_WIDTH 1
18011 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_WIDTH 1
18014 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1
18017 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1
18020 #define MC_CMD_GET_CAPABILITIES_V10_OUT_L3XUDP_SUPPORT_WIDTH 1
18023 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1
18026 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_SPREADING_WIDTH 1
18029 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RXDP_HLB_IDLE_WIDTH 1
18032 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1
18035 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1
18038 #define MC_CMD_GET_CAPABILITIES_V10_OUT_BUNDLE_UPDATE_WIDTH 1
18041 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_TSO_V3_WIDTH 1
18044 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_SENSORS_WIDTH 1
18047 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1
18048 /* Number of FATSOv2 contexts per datapath supported by this NIC (when
18049 * TX_TSO_V2 == 1). Not present on older firmware (check the length).
18053 /* One byte per PF containing the number of the external port assigned to this
18058 #define MC_CMD_GET_CAPABILITIES_V10_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1
18068 * complex scheme of PFs to ports mapping is being used. The future driver
18073 /* One byte per PF containing the number of its VFs, indexed by PF number. A
18077 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VFS_PER_PF_LEN 1
18083 /* Number of VIs available for external ports 0-3. For devices with more than
18089 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NUM_VIS_PER_PORT_NUM 4
18090 /* Size of RX descriptor cache expressed as binary logarithm The actual size
18094 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_DESC_CACHE_SIZE_LEN 1
18095 /* Size of TX descriptor cache expressed as binary logarithm The actual size
18099 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TX_DESC_CACHE_SIZE_LEN 1
18100 /* Total number of available PIO buffers */
18103 /* Size of a single PIO buffer */
18106 /* On chips later than Medford the amount of address space assigned to each VI
18108 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
18112 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VI_WINDOW_MODE_LEN 1
18113 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k.
18117 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */
18119 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */
18121 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing
18122 * (SF-115995-SW) in the present configuration of firmware and port mode.
18125 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1
18126 /* Number of buffers per adapter that can be used for VFIFO Stuffing
18127 * (SF-115995-SW) in the present configuration of firmware and port mode.
18133 * hold at least this many 64-bit stats values, if they wish to receive all
18140 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set.
18143 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FILTER_ACTION_MARK_MAX_LEN 4
18146 * they create an RX queue. Due to hardware limitations, only a small number of
18148 * this array are the sizes of buffers which the system guarantees will be
18153 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4
18155 /* Third word of flags. Not present on older firmware (check the length). */
18157 #define MC_CMD_GET_CAPABILITIES_V10_OUT_FLAGS3_LEN 4
18160 #define MC_CMD_GET_CAPABILITIES_V10_OUT_WOL_ETHERWAKE_WIDTH 1
18162 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_LBN 1
18163 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_EVEN_SPREADING_WIDTH 1
18166 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1
18169 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_SUPPORTED_WIDTH 1
18171 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_LBN 4
18172 #define MC_CMD_GET_CAPABILITIES_V10_OUT_VDPA_SUPPORTED_WIDTH 1
18175 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1
18178 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1
18181 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1
18184 #define MC_CMD_GET_CAPABILITIES_V10_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1
18187 #define MC_CMD_GET_CAPABILITIES_V10_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1
18190 #define MC_CMD_GET_CAPABILITIES_V10_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1
18193 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1
18196 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1
18199 #define MC_CMD_GET_CAPABILITIES_V10_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_WIDTH 1
18202 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1
18205 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CLIENT_CMD_VF_PROXY_WIDTH 1
18208 #define MC_CMD_GET_CAPABILITIES_V10_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_WIDTH 1
18211 #define MC_CMD_GET_CAPABILITIES_V10_OUT_CXL_CONFIG_ENABLE_WIDTH 1
18212 /* These bits are reserved for communicating test-specific capabilities to
18213 * host-side test software. All production drivers should treat this field as
18219 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_LO_LEN 4
18223 #define MC_CMD_GET_CAPABILITIES_V10_OUT_TEST_RESERVED_HI_LEN 4
18226 /* The minimum size (in table entries) of indirection table to be allocated
18228 * power of 2.
18231 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_LEN 4
18232 /* The maximum size (in table entries) of indirection table to be allocated
18234 * power of 2.
18237 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_LEN 4
18238 /* The maximum number of queues that can be used by an RSS context in exclusive
18243 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_INDIRECTION_QUEUES_LEN 4
18244 /* The maximum number of queues that can be used by an RSS context in even-
18245 * spreading mode. In even-spreading mode the context has no indirection table
18249 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_LEN 4
18250 /* The total number of RSS contexts supported. Note that the number of
18252 * availability of indirection table space allocated from a common pool.
18255 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_NUM_CONTEXTS_LEN 4
18256 /* The total amount of indirection table space that can be shared between RSS
18260 #define MC_CMD_GET_CAPABILITIES_V10_OUT_RSS_TABLE_POOL_SIZE_LEN 4
18261 /* A bitmap of the queue sizes the device can provide, where bit N being set
18263 * of different queue sizes that can exist simultaneously, so a bit being set
18264 * here does not guarantee that an attempt to create a queue of that size will
18268 #define MC_CMD_GET_CAPABILITIES_V10_OUT_SUPPORTED_QUEUE_SIZES_LEN 4
18269 /* A bitmap of queue sizes that are always available, in the same format as
18270 * SUPPORTED_QUEUE_SIZES. Attempting to create a queue with one of these sizes
18271 * will never fail due to unavailability of the requested size.
18274 #define MC_CMD_GET_CAPABILITIES_V10_OUT_GUARANTEED_QUEUE_SIZES_LEN 4
18278 /* First word of flags. */
18280 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FLAGS1_LEN 4
18283 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VPORT_RECONFIGURE_WIDTH 1
18285 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_STRIPING_LBN 4
18286 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_STRIPING_WIDTH 1
18289 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VADAPTOR_QUERY_WIDTH 1
18292 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1
18295 #define MC_CMD_GET_CAPABILITIES_V11_OUT_DRV_ATTACH_PREBOOT_WIDTH 1
18298 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1
18301 #define MC_CMD_GET_CAPABILITIES_V11_OUT_SET_MAC_ENHANCED_WIDTH 1
18304 …fine MC_CMD_GET_CAPABILITIES_V11_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1
18307 …efine MC_CMD_GET_CAPABILITIES_V11_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1
18310 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1
18313 #define MC_CMD_GET_CAPABILITIES_V11_OUT_ADDITIONAL_RSS_MODES_WIDTH 1
18316 #define MC_CMD_GET_CAPABILITIES_V11_OUT_QBB_WIDTH 1
18319 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1
18322 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_RSS_LIMITED_WIDTH 1
18325 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_PACKED_STREAM_WIDTH 1
18328 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_INCLUDE_FCS_WIDTH 1
18331 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_VLAN_INSERTION_WIDTH 1
18334 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_VLAN_STRIPPING_WIDTH 1
18337 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_WIDTH 1
18340 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_PREFIX_LEN_0_WIDTH 1
18343 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_PREFIX_LEN_14_WIDTH 1
18346 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_TIMESTAMP_WIDTH 1
18349 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_BATCHING_WIDTH 1
18352 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MCAST_FILTER_CHAINING_WIDTH 1
18355 #define MC_CMD_GET_CAPABILITIES_V11_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1
18358 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_DISABLE_SCATTER_WIDTH 1
18361 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1
18364 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EVB_WIDTH 1
18367 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VXLAN_NVGRE_WIDTH 1
18369 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_DPCPU_FW_ID_OFST 4
18383 /* enum: RXDP Test firmware image 1 */
18389 /* enum: RXDP Test firmware image 4 */
18418 /* enum: TXDP Test firmware image 1 */
18431 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4
18432 /* enum: reserved value - do not use (may indicate alternative interpretation
18433 * of REV field in future)
18443 /* enum: RX PD firmware with approximately Siena-compatible behaviour
18465 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
18482 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4
18483 /* enum: reserved value - do not use (may indicate alternative interpretation
18484 * of REV field in future)
18494 /* enum: TX PD firmware with approximately Siena-compatible behaviour
18513 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
18519 /* Hardware capabilities of NIC */
18521 #define MC_CMD_GET_CAPABILITIES_V11_OUT_HW_CAPABILITIES_LEN 4
18524 #define MC_CMD_GET_CAPABILITIES_V11_OUT_LICENSE_CAPABILITIES_LEN 4
18525 /* Second word of flags. Not present on older firmware (check the length). */
18527 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FLAGS2_LEN 4
18530 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_V2_WIDTH 1
18532 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_V2_ENCAP_LBN 1
18533 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_V2_ENCAP_WIDTH 1
18536 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EVQ_TIMER_CTRL_WIDTH 1
18539 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EVENT_CUT_THROUGH_WIDTH 1
18541 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_CUT_THROUGH_LBN 4
18542 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_CUT_THROUGH_WIDTH 1
18545 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_VFIFO_ULL_MODE_WIDTH 1
18548 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1
18551 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1
18554 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INIT_EVQ_V2_WIDTH 1
18557 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_MAC_TIMESTAMPING_WIDTH 1
18560 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TIMESTAMP_WIDTH 1
18563 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_SNIFF_WIDTH 1
18566 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_SNIFF_WIDTH 1
18569 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1
18572 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MCDI_BACKGROUND_WIDTH 1
18575 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MCDI_DB_RETURN_WIDTH 1
18578 #define MC_CMD_GET_CAPABILITIES_V11_OUT_CTPIO_WIDTH 1
18581 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TSA_SUPPORT_WIDTH 1
18584 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TSA_BOUND_WIDTH 1
18587 #define MC_CMD_GET_CAPABILITIES_V11_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1
18590 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FILTER_ACTION_FLAG_WIDTH 1
18593 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FILTER_ACTION_MARK_WIDTH 1
18596 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1
18599 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1
18602 #define MC_CMD_GET_CAPABILITIES_V11_OUT_L3XUDP_SUPPORT_WIDTH 1
18605 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1
18608 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VI_SPREADING_WIDTH 1
18611 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RXDP_HLB_IDLE_WIDTH 1
18614 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1
18617 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1
18620 #define MC_CMD_GET_CAPABILITIES_V11_OUT_BUNDLE_UPDATE_WIDTH 1
18623 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_TSO_V3_WIDTH 1
18626 #define MC_CMD_GET_CAPABILITIES_V11_OUT_DYNAMIC_SENSORS_WIDTH 1
18629 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1
18630 /* Number of FATSOv2 contexts per datapath supported by this NIC (when
18631 * TX_TSO_V2 == 1). Not present on older firmware (check the length).
18635 /* One byte per PF containing the number of the external port assigned to this
18640 #define MC_CMD_GET_CAPABILITIES_V11_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1
18650 * complex scheme of PFs to ports mapping is being used. The future driver
18655 /* One byte per PF containing the number of its VFs, indexed by PF number. A
18659 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NUM_VFS_PER_PF_LEN 1
18665 /* Number of VIs available for external ports 0-3. For devices with more than
18671 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NUM_VIS_PER_PORT_NUM 4
18672 /* Size of RX descriptor cache expressed as binary logarithm The actual size
18676 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_DESC_CACHE_SIZE_LEN 1
18677 /* Size of TX descriptor cache expressed as binary logarithm The actual size
18681 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TX_DESC_CACHE_SIZE_LEN 1
18682 /* Total number of available PIO buffers */
18685 /* Size of a single PIO buffer */
18688 /* On chips later than Medford the amount of address space assigned to each VI
18690 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
18694 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VI_WINDOW_MODE_LEN 1
18695 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k.
18699 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */
18701 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */
18703 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing
18704 * (SF-115995-SW) in the present configuration of firmware and port mode.
18707 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1
18708 /* Number of buffers per adapter that can be used for VFIFO Stuffing
18709 * (SF-115995-SW) in the present configuration of firmware and port mode.
18715 * hold at least this many 64-bit stats values, if they wish to receive all
18722 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set.
18725 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FILTER_ACTION_MARK_MAX_LEN 4
18728 * they create an RX queue. Due to hardware limitations, only a small number of
18730 * this array are the sizes of buffers which the system guarantees will be
18735 #define MC_CMD_GET_CAPABILITIES_V11_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4
18737 /* Third word of flags. Not present on older firmware (check the length). */
18739 #define MC_CMD_GET_CAPABILITIES_V11_OUT_FLAGS3_LEN 4
18742 #define MC_CMD_GET_CAPABILITIES_V11_OUT_WOL_ETHERWAKE_WIDTH 1
18744 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_EVEN_SPREADING_LBN 1
18745 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_EVEN_SPREADING_WIDTH 1
18748 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1
18751 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAE_SUPPORTED_WIDTH 1
18753 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VDPA_SUPPORTED_LBN 4
18754 #define MC_CMD_GET_CAPABILITIES_V11_OUT_VDPA_SUPPORTED_WIDTH 1
18757 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1
18760 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1
18763 #define MC_CMD_GET_CAPABILITIES_V11_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1
18766 #define MC_CMD_GET_CAPABILITIES_V11_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1
18769 #define MC_CMD_GET_CAPABILITIES_V11_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1
18772 #define MC_CMD_GET_CAPABILITIES_V11_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1
18775 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1
18778 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1
18781 #define MC_CMD_GET_CAPABILITIES_V11_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_WIDTH 1
18784 #define MC_CMD_GET_CAPABILITIES_V11_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1
18787 #define MC_CMD_GET_CAPABILITIES_V11_OUT_CLIENT_CMD_VF_PROXY_WIDTH 1
18790 #define MC_CMD_GET_CAPABILITIES_V11_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_WIDTH 1
18793 #define MC_CMD_GET_CAPABILITIES_V11_OUT_CXL_CONFIG_ENABLE_WIDTH 1
18794 /* These bits are reserved for communicating test-specific capabilities to
18795 * host-side test software. All production drivers should treat this field as
18801 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TEST_RESERVED_LO_LEN 4
18805 #define MC_CMD_GET_CAPABILITIES_V11_OUT_TEST_RESERVED_HI_LEN 4
18808 /* The minimum size (in table entries) of indirection table to be allocated
18810 * power of 2.
18813 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_LEN 4
18814 /* The maximum size (in table entries) of indirection table to be allocated
18816 * power of 2.
18819 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_LEN 4
18820 /* The maximum number of queues that can be used by an RSS context in exclusive
18825 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_MAX_INDIRECTION_QUEUES_LEN 4
18826 /* The maximum number of queues that can be used by an RSS context in even-
18827 * spreading mode. In even-spreading mode the context has no indirection table
18831 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_LEN 4
18832 /* The total number of RSS contexts supported. Note that the number of
18834 * availability of indirection table space allocated from a common pool.
18837 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_NUM_CONTEXTS_LEN 4
18838 /* The total amount of indirection table space that can be shared between RSS
18842 #define MC_CMD_GET_CAPABILITIES_V11_OUT_RSS_TABLE_POOL_SIZE_LEN 4
18843 /* A bitmap of the queue sizes the device can provide, where bit N being set
18845 * of different queue sizes that can exist simultaneously, so a bit being set
18846 * here does not guarantee that an attempt to create a queue of that size will
18850 #define MC_CMD_GET_CAPABILITIES_V11_OUT_SUPPORTED_QUEUE_SIZES_LEN 4
18851 /* A bitmap of queue sizes that are always available, in the same format as
18852 * SUPPORTED_QUEUE_SIZES. Attempting to create a queue with one of these sizes
18853 * will never fail due to unavailability of the requested size.
18856 #define MC_CMD_GET_CAPABILITIES_V11_OUT_GUARANTEED_QUEUE_SIZES_LEN 4
18857 /* Number of available indirect memory maps. */
18859 #define MC_CMD_GET_CAPABILITIES_V11_OUT_INDIRECT_MAP_INDEX_COUNT_LEN 4
18863 /* First word of flags. */
18865 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FLAGS1_LEN 4
18868 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VPORT_RECONFIGURE_WIDTH 1
18870 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_STRIPING_LBN 4
18871 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_STRIPING_WIDTH 1
18874 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VADAPTOR_QUERY_WIDTH 1
18877 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EVB_PORT_VLAN_RESTRICT_WIDTH 1
18880 #define MC_CMD_GET_CAPABILITIES_V12_OUT_DRV_ATTACH_PREBOOT_WIDTH 1
18883 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_FORCE_EVENT_MERGING_WIDTH 1
18886 #define MC_CMD_GET_CAPABILITIES_V12_OUT_SET_MAC_ENHANCED_WIDTH 1
18889 …fine MC_CMD_GET_CAPABILITIES_V12_OUT_UNKNOWN_UCAST_DST_FILTER_ALWAYS_MULTI_RECIPIENT_WIDTH 1
18892 …efine MC_CMD_GET_CAPABILITIES_V12_OUT_VADAPTOR_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1
18895 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_MAC_SECURITY_FILTERING_WIDTH 1
18898 #define MC_CMD_GET_CAPABILITIES_V12_OUT_ADDITIONAL_RSS_MODES_WIDTH 1
18901 #define MC_CMD_GET_CAPABILITIES_V12_OUT_QBB_WIDTH 1
18904 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_PACKED_STREAM_VAR_BUFFERS_WIDTH 1
18907 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_RSS_LIMITED_WIDTH 1
18910 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_PACKED_STREAM_WIDTH 1
18913 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_INCLUDE_FCS_WIDTH 1
18916 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_VLAN_INSERTION_WIDTH 1
18919 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_VLAN_STRIPPING_WIDTH 1
18922 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_WIDTH 1
18925 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_PREFIX_LEN_0_WIDTH 1
18928 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_PREFIX_LEN_14_WIDTH 1
18931 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_TIMESTAMP_WIDTH 1
18934 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_BATCHING_WIDTH 1
18937 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MCAST_FILTER_CHAINING_WIDTH 1
18940 #define MC_CMD_GET_CAPABILITIES_V12_OUT_PM_AND_RXDP_COUNTERS_WIDTH 1
18943 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_DISABLE_SCATTER_WIDTH 1
18946 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_MCAST_UDP_LOOPBACK_WIDTH 1
18949 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EVB_WIDTH 1
18952 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VXLAN_NVGRE_WIDTH 1
18954 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_DPCPU_FW_ID_OFST 4
18968 /* enum: RXDP Test firmware image 1 */
18974 /* enum: RXDP Test firmware image 4 */
19003 /* enum: TXDP Test firmware image 1 */
19016 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXPD_FW_VERSION_TYPE_WIDTH 4
19017 /* enum: reserved value - do not use (may indicate alternative interpretation
19018 * of REV field in future)
19028 /* enum: RX PD firmware with approximately Siena-compatible behaviour
19050 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
19067 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TXPD_FW_VERSION_TYPE_WIDTH 4
19068 /* enum: reserved value - do not use (may indicate alternative interpretation
19069 * of REV field in future)
19079 /* enum: TX PD firmware with approximately Siena-compatible behaviour
19098 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
19104 /* Hardware capabilities of NIC */
19106 #define MC_CMD_GET_CAPABILITIES_V12_OUT_HW_CAPABILITIES_LEN 4
19109 #define MC_CMD_GET_CAPABILITIES_V12_OUT_LICENSE_CAPABILITIES_LEN 4
19110 /* Second word of flags. Not present on older firmware (check the length). */
19112 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FLAGS2_LEN 4
19115 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_V2_WIDTH 1
19117 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_V2_ENCAP_LBN 1
19118 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_V2_ENCAP_WIDTH 1
19121 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EVQ_TIMER_CTRL_WIDTH 1
19124 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EVENT_CUT_THROUGH_WIDTH 1
19126 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_CUT_THROUGH_LBN 4
19127 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_CUT_THROUGH_WIDTH 1
19130 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_VFIFO_ULL_MODE_WIDTH 1
19133 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAC_STATS_40G_TX_SIZE_BINS_WIDTH 1
19136 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INIT_EVQ_TYPE_SUPPORTED_WIDTH 1
19139 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INIT_EVQ_V2_WIDTH 1
19142 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_MAC_TIMESTAMPING_WIDTH 1
19145 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TIMESTAMP_WIDTH 1
19148 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_SNIFF_WIDTH 1
19151 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_SNIFF_WIDTH 1
19154 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NVRAM_UPDATE_REPORT_VERIFY_RESULT_WIDTH 1
19157 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MCDI_BACKGROUND_WIDTH 1
19160 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MCDI_DB_RETURN_WIDTH 1
19163 #define MC_CMD_GET_CAPABILITIES_V12_OUT_CTPIO_WIDTH 1
19166 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TSA_SUPPORT_WIDTH 1
19169 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TSA_BOUND_WIDTH 1
19172 #define MC_CMD_GET_CAPABILITIES_V12_OUT_SF_ADAPTER_AUTHENTICATION_WIDTH 1
19175 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FILTER_ACTION_FLAG_WIDTH 1
19178 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FILTER_ACTION_MARK_WIDTH 1
19181 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EQUAL_STRIDE_SUPER_BUFFER_WIDTH 1
19184 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EQUAL_STRIDE_PACKED_STREAM_WIDTH 1
19187 #define MC_CMD_GET_CAPABILITIES_V12_OUT_L3XUDP_SUPPORT_WIDTH 1
19190 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FW_SUBVARIANT_NO_TX_CSUM_WIDTH 1
19193 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VI_SPREADING_WIDTH 1
19196 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RXDP_HLB_IDLE_WIDTH 1
19199 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INIT_RXQ_NO_CONT_EV_WIDTH 1
19202 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INIT_RXQ_WITH_BUFFER_SIZE_WIDTH 1
19205 #define MC_CMD_GET_CAPABILITIES_V12_OUT_BUNDLE_UPDATE_WIDTH 1
19208 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_TSO_V3_WIDTH 1
19211 #define MC_CMD_GET_CAPABILITIES_V12_OUT_DYNAMIC_SENSORS_WIDTH 1
19214 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NVRAM_UPDATE_POLL_VERIFY_RESULT_WIDTH 1
19215 /* Number of FATSOv2 contexts per datapath supported by this NIC (when
19216 * TX_TSO_V2 == 1). Not present on older firmware (check the length).
19220 /* One byte per PF containing the number of the external port assigned to this
19225 #define MC_CMD_GET_CAPABILITIES_V12_OUT_PFS_TO_PORTS_ASSIGNMENT_LEN 1
19235 * complex scheme of PFs to ports mapping is being used. The future driver
19240 /* One byte per PF containing the number of its VFs, indexed by PF number. A
19244 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NUM_VFS_PER_PF_LEN 1
19250 /* Number of VIs available for external ports 0-3. For devices with more than
19256 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NUM_VIS_PER_PORT_NUM 4
19257 /* Size of RX descriptor cache expressed as binary logarithm The actual size
19261 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_DESC_CACHE_SIZE_LEN 1
19262 /* Size of TX descriptor cache expressed as binary logarithm The actual size
19266 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TX_DESC_CACHE_SIZE_LEN 1
19267 /* Total number of available PIO buffers */
19270 /* Size of a single PIO buffer */
19273 /* On chips later than Medford the amount of address space assigned to each VI
19275 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
19279 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VI_WINDOW_MODE_LEN 1
19280 /* enum: Each VI occupies 8k as on Huntington and Medford. PIO is at offset 4k.
19284 /* enum: Each VI occupies 16k. PIO is at offset 4k. CTPIO is at offset 12k. */
19286 /* enum: Each VI occupies 64k. PIO is at offset 4k. CTPIO is at offset 12k. */
19288 /* Number of vFIFOs per adapter that can be used for VFIFO Stuffing
19289 * (SF-115995-SW) in the present configuration of firmware and port mode.
19292 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VFIFO_STUFFING_NUM_VFIFOS_LEN 1
19293 /* Number of buffers per adapter that can be used for VFIFO Stuffing
19294 * (SF-115995-SW) in the present configuration of firmware and port mode.
19300 * hold at least this many 64-bit stats values, if they wish to receive all
19307 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set.
19310 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FILTER_ACTION_MARK_MAX_LEN 4
19313 * they create an RX queue. Due to hardware limitations, only a small number of
19315 * this array are the sizes of buffers which the system guarantees will be
19320 #define MC_CMD_GET_CAPABILITIES_V12_OUT_GUARANTEED_RX_BUFFER_SIZES_LEN 4
19322 /* Third word of flags. Not present on older firmware (check the length). */
19324 #define MC_CMD_GET_CAPABILITIES_V12_OUT_FLAGS3_LEN 4
19327 #define MC_CMD_GET_CAPABILITIES_V12_OUT_WOL_ETHERWAKE_WIDTH 1
19329 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_EVEN_SPREADING_LBN 1
19330 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_EVEN_SPREADING_WIDTH 1
19333 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_SELECTABLE_TABLE_SIZE_WIDTH 1
19336 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAE_SUPPORTED_WIDTH 1
19338 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VDPA_SUPPORTED_LBN 4
19339 #define MC_CMD_GET_CAPABILITIES_V12_OUT_VDPA_SUPPORTED_WIDTH 1
19342 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RX_VLAN_STRIPPING_PER_ENCAP_RULE_WIDTH 1
19345 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EXTENDED_WIDTH_EVQS_SUPPORTED_WIDTH 1
19348 #define MC_CMD_GET_CAPABILITIES_V12_OUT_UNSOL_EV_CREDIT_SUPPORTED_WIDTH 1
19351 #define MC_CMD_GET_CAPABILITIES_V12_OUT_ENCAPSULATED_MCDI_SUPPORTED_WIDTH 1
19354 #define MC_CMD_GET_CAPABILITIES_V12_OUT_EXTERNAL_MAE_SUPPORTED_WIDTH 1
19357 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NVRAM_UPDATE_ABORT_SUPPORTED_WIDTH 1
19360 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAE_ACTION_SET_ALLOC_V2_SUPPORTED_WIDTH 1
19363 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_STEER_ON_OUTER_SUPPORTED_WIDTH 1
19366 #define MC_CMD_GET_CAPABILITIES_V12_OUT_MAE_ACTION_SET_ALLOC_V3_SUPPORTED_WIDTH 1
19369 #define MC_CMD_GET_CAPABILITIES_V12_OUT_DYNAMIC_MPORT_JOURNAL_WIDTH 1
19372 #define MC_CMD_GET_CAPABILITIES_V12_OUT_CLIENT_CMD_VF_PROXY_WIDTH 1
19375 #define MC_CMD_GET_CAPABILITIES_V12_OUT_LL_RX_EVENT_SUPPRESSION_SUPPORTED_WIDTH 1
19378 #define MC_CMD_GET_CAPABILITIES_V12_OUT_CXL_CONFIG_ENABLE_WIDTH 1
19379 /* These bits are reserved for communicating test-specific capabilities to
19380 * host-side test software. All production drivers should treat this field as
19386 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TEST_RESERVED_LO_LEN 4
19390 #define MC_CMD_GET_CAPABILITIES_V12_OUT_TEST_RESERVED_HI_LEN 4
19393 /* The minimum size (in table entries) of indirection table to be allocated
19395 * power of 2.
19398 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_MIN_INDIRECTION_TABLE_SIZE_LEN 4
19399 /* The maximum size (in table entries) of indirection table to be allocated
19401 * power of 2.
19404 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_MAX_INDIRECTION_TABLE_SIZE_LEN 4
19405 /* The maximum number of queues that can be used by an RSS context in exclusive
19410 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_MAX_INDIRECTION_QUEUES_LEN 4
19411 /* The maximum number of queues that can be used by an RSS context in even-
19412 * spreading mode. In even-spreading mode the context has no indirection table
19416 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_MAX_EVEN_SPREADING_QUEUES_LEN 4
19417 /* The total number of RSS contexts supported. Note that the number of
19419 * availability of indirection table space allocated from a common pool.
19422 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_NUM_CONTEXTS_LEN 4
19423 /* The total amount of indirection table space that can be shared between RSS
19427 #define MC_CMD_GET_CAPABILITIES_V12_OUT_RSS_TABLE_POOL_SIZE_LEN 4
19428 /* A bitmap of the queue sizes the device can provide, where bit N being set
19430 * of different queue sizes that can exist simultaneously, so a bit being set
19431 * here does not guarantee that an attempt to create a queue of that size will
19435 #define MC_CMD_GET_CAPABILITIES_V12_OUT_SUPPORTED_QUEUE_SIZES_LEN 4
19436 /* A bitmap of queue sizes that are always available, in the same format as
19437 * SUPPORTED_QUEUE_SIZES. Attempting to create a queue with one of these sizes
19438 * will never fail due to unavailability of the requested size.
19441 #define MC_CMD_GET_CAPABILITIES_V12_OUT_GUARANTEED_QUEUE_SIZES_LEN 4
19442 /* Number of available indirect memory maps. */
19444 #define MC_CMD_GET_CAPABILITIES_V12_OUT_INDIRECT_MAP_INDEX_COUNT_LEN 4
19445 /* Number of VIs available for external ports 4-7. Information for ports 0-3 is
19450 #define MC_CMD_GET_CAPABILITIES_V12_OUT_NUM_VIS_PER_PORT2_NUM 4
19460 #define MC_CMD_V2_EXTN_IN_LEN 4
19465 #define MC_CMD_V2_EXTN_IN_UNUSED_WIDTH 1
19466 /* the actual length of the encapsulated command (which is not in the v1
19473 /* Type of command/response */
19475 #define MC_CMD_V2_EXTN_IN_MESSAGE_TYPE_WIDTH 4
19478 /* enum: MCDI command directed to a TSA controller. MCDI responses of this type
19483 * are used for low-level operations directed at the platform as a whole (e.g.
19504 #define MC_CMD_LINK_PIOBUF_IN_PIOBUF_HANDLE_LEN 4
19506 #define MC_CMD_LINK_PIOBUF_IN_TXQ_INSTANCE_OFST 4
19507 #define MC_CMD_LINK_PIOBUF_IN_TXQ_INSTANCE_LEN 4
19523 #define MC_CMD_UNLINK_PIOBUF_IN_LEN 4
19526 #define MC_CMD_UNLINK_PIOBUF_IN_TXQ_INSTANCE_LEN 4
19534 * allocate and initialise a v-switch.
19543 /* The port to connect to the v-switch's upstream port. */
19545 #define MC_CMD_VSWITCH_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4
19546 /* The type of v-switch to create. */
19547 #define MC_CMD_VSWITCH_ALLOC_IN_TYPE_OFST 4
19548 #define MC_CMD_VSWITCH_ALLOC_IN_TYPE_LEN 4
19559 /* Flags controlling v-port creation */
19561 #define MC_CMD_VSWITCH_ALLOC_IN_FLAGS_LEN 4
19564 #define MC_CMD_VSWITCH_ALLOC_IN_FLAG_AUTO_PORT_WIDTH 1
19565 /* The number of VLAN tags to allow for attached v-ports. For VLAN aggregators,
19566 * this must be one or greated, and the attached v-ports must have exactly this
19567 * number of tags. For other v-switch types, this must be zero of greater, and
19568 * is an upper limit on the number of VLAN tags for attached v-ports. An error
19570 * v-ports with this number of tags.
19573 #define MC_CMD_VSWITCH_ALLOC_IN_NUM_VLAN_TAGS_LEN 4
19581 * de-allocate a v-switch.
19589 #define MC_CMD_VSWITCH_FREE_IN_LEN 4
19590 /* The port to which the v-switch is connected. */
19592 #define MC_CMD_VSWITCH_FREE_IN_UPSTREAM_PORT_ID_LEN 4
19600 * allocate a v-port.
19609 /* The port to which the v-switch is connected. */
19611 #define MC_CMD_VPORT_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4
19612 /* The type of the new v-port. */
19613 #define MC_CMD_VPORT_ALLOC_IN_TYPE_OFST 4
19614 #define MC_CMD_VPORT_ALLOC_IN_TYPE_LEN 4
19621 /* enum: A normal v-port receives packets which match a specified MAC and/or
19625 /* enum: An expansion v-port packets traffic which don't match any other
19626 * v-port.
19629 /* enum: An test v-port receives packets which match any filters installed by
19633 /* Flags controlling v-port creation */
19635 #define MC_CMD_VPORT_ALLOC_IN_FLAGS_LEN 4
19638 #define MC_CMD_VPORT_ALLOC_IN_FLAG_AUTO_PORT_WIDTH 1
19640 #define MC_CMD_VPORT_ALLOC_IN_FLAG_VLAN_RESTRICT_LBN 1
19641 #define MC_CMD_VPORT_ALLOC_IN_FLAG_VLAN_RESTRICT_WIDTH 1
19642 /* The number of VLAN tags to insert/remove. An error will be returned if
19643 * incompatible with the number of VLAN tags specified for the upstream
19644 * v-switch.
19647 #define MC_CMD_VPORT_ALLOC_IN_NUM_VLAN_TAGS_LEN 4
19650 #define MC_CMD_VPORT_ALLOC_IN_VLAN_TAGS_LEN 4
19659 #define MC_CMD_VPORT_ALLOC_OUT_LEN 4
19660 /* The handle of the new v-port */
19662 #define MC_CMD_VPORT_ALLOC_OUT_VPORT_ID_LEN 4
19667 * de-allocate a v-port.
19675 #define MC_CMD_VPORT_FREE_IN_LEN 4
19676 /* The handle of the v-port */
19678 #define MC_CMD_VPORT_FREE_IN_VPORT_ID_LEN 4
19686 * allocate a v-adaptor.
19695 /* The port to connect to the v-adaptor's port. */
19697 #define MC_CMD_VADAPTOR_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4
19698 /* Flags controlling v-adaptor creation */
19700 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAGS_LEN 4
19703 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_AUTO_VADAPTOR_WIDTH 1
19705 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_LBN 1
19706 #define MC_CMD_VADAPTOR_ALLOC_IN_FLAG_PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED_WIDTH 1
19707 /* The number of VLAN tags to strip on receive */
19709 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLANS_LEN 4
19710 /* The number of VLAN tags to transparently insert/remove. */
19712 #define MC_CMD_VADAPTOR_ALLOC_IN_NUM_VLAN_TAGS_LEN 4
19715 #define MC_CMD_VADAPTOR_ALLOC_IN_VLAN_TAGS_LEN 4
19722 /* The MAC address to assign to this v-adaptor */
19734 * de-allocate a v-adaptor.
19742 #define MC_CMD_VADAPTOR_FREE_IN_LEN 4
19743 /* The port to which the v-adaptor is connected. */
19745 #define MC_CMD_VADAPTOR_FREE_IN_UPSTREAM_PORT_ID_LEN 4
19753 * assign a new MAC address to a v-adaptor.
19762 /* The port to which the v-adaptor is connected. */
19764 #define MC_CMD_VADAPTOR_SET_MAC_IN_UPSTREAM_PORT_ID_LEN 4
19765 /* The new MAC address to assign to this v-adaptor */
19766 #define MC_CMD_VADAPTOR_SET_MAC_IN_MACADDR_OFST 4
19775 * read some config of v-adaptor.
19783 #define MC_CMD_VADAPTOR_QUERY_IN_LEN 4
19784 /* The port to which the v-adaptor is connected. */
19786 #define MC_CMD_VADAPTOR_QUERY_IN_UPSTREAM_PORT_ID_LEN 4
19792 #define MC_CMD_VADAPTOR_QUERY_OUT_PORT_FLAGS_LEN 4
19793 /* The v-adaptor flags as defined at MC_CMD_VADAPTOR_ALLOC. */
19794 #define MC_CMD_VADAPTOR_QUERY_OUT_VADAPTOR_FLAGS_OFST 4
19795 #define MC_CMD_VADAPTOR_QUERY_OUT_VADAPTOR_FLAGS_LEN 4
19796 /* The number of VLAN tags that may still be added */
19798 #define MC_CMD_VADAPTOR_QUERY_OUT_NUM_AVAILABLE_VLAN_TAGS_LEN 4
19814 #define MC_CMD_EVB_PORT_ASSIGN_IN_PORT_ID_LEN 4
19816 #define MC_CMD_EVB_PORT_ASSIGN_IN_FUNCTION_OFST 4
19817 #define MC_CMD_EVB_PORT_ASSIGN_IN_FUNCTION_LEN 4
19818 #define MC_CMD_EVB_PORT_ASSIGN_IN_PF_OFST 4
19821 #define MC_CMD_EVB_PORT_ASSIGN_IN_VF_OFST 4
19840 /* The handle of the owning upstream port */
19842 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_UPSTREAM_PORT_ID_LEN 4
19843 /* The type of context to allocate */
19844 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_OFST 4
19845 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_TYPE_LEN 4
19850 /* enum: Allocate a context for shared use; this will spread across a range of
19851 * queues, but the key and indirection table are pre-configured and may not be
19852 * changed. For this mode, NUM_QUEUES must 2, 4, 8, 16, 32 or 64.
19855 /* enum: Allocate a context to spread evenly across an arbitrary number of
19860 /* Number of queues spanned by this context. For exclusive contexts this must
19861 * be in the range 1 to RSS_MAX_INDIRECTION_QUEUES, where
19864 * the indirection table will be in the range 0 to NUM_QUEUES-1. For even-
19865 * spreading contexts this must be in the range 1 to
19867 * that specifying NUM_QUEUES = 1 will not perform any spreading but may still
19868 * be useful as a way of obtaining the Toeplitz hash.
19871 #define MC_CMD_RSS_CONTEXT_ALLOC_IN_NUM_QUEUES_LEN 4
19875 /* The handle of the owning upstream port */
19877 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_UPSTREAM_PORT_ID_LEN 4
19878 /* The type of context to allocate */
19879 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_OFST 4
19880 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_TYPE_LEN 4
19885 /* enum: Allocate a context for shared use; this will spread across a range of
19886 * queues, but the key and indirection table are pre-configured and may not be
19887 * changed. For this mode, NUM_QUEUES must 2, 4, 8, 16, 32 or 64.
19890 /* enum: Allocate a context to spread evenly across an arbitrary number of
19895 /* Number of queues spanned by this context. For exclusive contexts this must
19896 * be in the range 1 to RSS_MAX_INDIRECTION_QUEUES, where
19899 * the indirection table will be in the range 0 to NUM_QUEUES-1. For even-
19900 * spreading contexts this must be in the range 1 to
19902 * that specifying NUM_QUEUES = 1 will not perform any spreading but may still
19903 * be useful as a way of obtaining the Toeplitz hash.
19906 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_NUM_QUEUES_LEN 4
19907 /* Size of indirection table to be allocated to this context from the pool.
19908 * Must be a power of 2. The minimum and maximum table size can be queried
19915 #define MC_CMD_RSS_CONTEXT_ALLOC_V2_IN_INDIRECTION_TABLE_SIZE_LEN 4
19918 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_LEN 4
19919 /* The handle of the new RSS context. This should be considered opaque to the
19920 * host, although a value of 0xFFFFFFFF is guaranteed never to be a valid
19924 #define MC_CMD_RSS_CONTEXT_ALLOC_OUT_RSS_CONTEXT_ID_LEN 4
19939 #define MC_CMD_RSS_CONTEXT_FREE_IN_LEN 4
19940 /* The handle of the RSS context */
19942 #define MC_CMD_RSS_CONTEXT_FREE_IN_RSS_CONTEXT_ID_LEN 4
19959 /* The handle of the RSS context */
19961 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_RSS_CONTEXT_ID_LEN 4
19962 /* The 40-byte Toeplitz hash key (TBD endianness issues?) */
19963 #define MC_CMD_RSS_CONTEXT_SET_KEY_IN_TOEPLITZ_KEY_OFST 4
19980 #define MC_CMD_RSS_CONTEXT_GET_KEY_IN_LEN 4
19981 /* The handle of the RSS context */
19983 #define MC_CMD_RSS_CONTEXT_GET_KEY_IN_RSS_CONTEXT_ID_LEN 4
19987 /* The 40-byte Toeplitz hash key (TBD endianness issues?) */
19988 #define MC_CMD_RSS_CONTEXT_GET_KEY_OUT_TOEPLITZ_KEY_OFST 4
20005 /* The handle of the RSS context */
20007 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_RSS_CONTEXT_ID_LEN 4
20008 /* The 128-byte indirection table (1 byte per entry) */
20009 #define MC_CMD_RSS_CONTEXT_SET_TABLE_IN_INDIRECTION_TABLE_OFST 4
20028 #define MC_CMD_RSS_CONTEXT_GET_TABLE_IN_LEN 4
20029 /* The handle of the RSS context */
20031 #define MC_CMD_RSS_CONTEXT_GET_TABLE_IN_RSS_CONTEXT_ID_LEN 4
20035 /* The 128-byte indirection table (1 byte per entry) */
20036 #define MC_CMD_RSS_CONTEXT_GET_TABLE_OUT_INDIRECTION_TABLE_OFST 4
20051 /* The handle of the RSS context */
20053 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RSS_CONTEXT_ID_LEN 4
20056 * in this case, the MODE fields may be set to non-zero values, and will take
20057 * effect regardless of the settings of the _EN flags. See the RSS_MODE
20058 * structure for the meaning of the mode bits. Drivers must check the
20066 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_FLAGS_OFST 4
20067 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_FLAGS_LEN 4
20068 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN_OFST 4
20070 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN_WIDTH 1
20071 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN_OFST 4
20072 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN_LBN 1
20073 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN_WIDTH 1
20074 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV6_EN_OFST 4
20076 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV6_EN_WIDTH 1
20077 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV6_EN_OFST 4
20079 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV6_EN_WIDTH 1
20080 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RESERVED_OFST 4
20081 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RESERVED_LBN 4
20082 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_RESERVED_WIDTH 4
20083 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV4_RSS_MODE_OFST 4
20085 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV4_RSS_MODE_WIDTH 4
20086 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV4_RSS_MODE_OFST 4
20088 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV4_RSS_MODE_WIDTH 4
20089 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV4_RSS_MODE_OFST 4
20091 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV4_RSS_MODE_WIDTH 4
20092 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV6_RSS_MODE_OFST 4
20094 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV6_RSS_MODE_WIDTH 4
20095 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV6_RSS_MODE_OFST 4
20097 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_UDP_IPV6_RSS_MODE_WIDTH 4
20098 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV6_RSS_MODE_OFST 4
20100 #define MC_CMD_RSS_CONTEXT_SET_FLAGS_IN_OTHER_IPV6_RSS_MODE_WIDTH 4
20116 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_IN_LEN 4
20117 /* The handle of the RSS context */
20119 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_IN_RSS_CONTEXT_ID_LEN 4
20125 * capability), the _EN bits report the state. If any _MODE bits are non-zero
20128 * guaranteed to be consistent with the _EN flags for a freshly-allocated RSS
20134 * always be used for a SET regardless of old/new driver vs. old/new firmware.
20136 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_FLAGS_OFST 4
20137 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_FLAGS_LEN 4
20138 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV4_EN_OFST 4
20140 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV4_EN_WIDTH 1
20141 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV4_EN_OFST 4
20142 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV4_EN_LBN 1
20143 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV4_EN_WIDTH 1
20144 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV6_EN_OFST 4
20146 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_IPV6_EN_WIDTH 1
20147 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV6_EN_OFST 4
20149 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TOEPLITZ_TCPV6_EN_WIDTH 1
20150 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_RESERVED_OFST 4
20151 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_RESERVED_LBN 4
20152 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_RESERVED_WIDTH 4
20153 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV4_RSS_MODE_OFST 4
20155 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV4_RSS_MODE_WIDTH 4
20156 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV4_RSS_MODE_OFST 4
20158 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV4_RSS_MODE_WIDTH 4
20159 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV4_RSS_MODE_OFST 4
20161 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV4_RSS_MODE_WIDTH 4
20162 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV6_RSS_MODE_OFST 4
20164 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_TCP_IPV6_RSS_MODE_WIDTH 4
20165 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV6_RSS_MODE_OFST 4
20167 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_UDP_IPV6_RSS_MODE_WIDTH 4
20168 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV6_RSS_MODE_OFST 4
20170 #define MC_CMD_RSS_CONTEXT_GET_FLAGS_OUT_OTHER_IPV6_RSS_MODE_WIDTH 4
20175 * Add a MAC address to a v-port
20184 /* The handle of the v-port */
20186 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_VPORT_ID_LEN 4
20188 #define MC_CMD_VPORT_ADD_MAC_ADDRESS_IN_MACADDR_OFST 4
20197 * Delete a MAC address from a v-port
20206 /* The handle of the v-port */
20208 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_VPORT_ID_LEN 4
20210 #define MC_CMD_VPORT_DEL_MAC_ADDRESS_IN_MACADDR_OFST 4
20219 * Delete a MAC address from a v-port
20227 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_IN_LEN 4
20228 /* The handle of the v-port */
20230 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_IN_VPORT_ID_LEN 4
20233 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LENMIN 4
20236 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_LEN(num) (4+6*(num))
20237 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_NUM(len) (((len)-4)/6)
20238 /* The number of MAC addresses returned */
20240 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_COUNT_LEN 4
20241 /* Array of MAC addresses */
20242 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_OFST 4
20251 * Replace VLAN tags and/or MAC addresses of an existing v-port. If the v-port
20252 * has already been passed to another function (v-port's user), then that
20262 /* The handle of the v-port */
20264 #define MC_CMD_VPORT_RECONFIGURE_IN_VPORT_ID_LEN 4
20266 #define MC_CMD_VPORT_RECONFIGURE_IN_FLAGS_OFST 4
20267 #define MC_CMD_VPORT_RECONFIGURE_IN_FLAGS_LEN 4
20268 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_VLAN_TAGS_OFST 4
20270 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_VLAN_TAGS_WIDTH 1
20271 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_MACADDRS_OFST 4
20272 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_MACADDRS_LBN 1
20273 #define MC_CMD_VPORT_RECONFIGURE_IN_REPLACE_MACADDRS_WIDTH 1
20274 /* The number of VLAN tags to insert/remove. An error will be returned if
20275 * incompatible with the number of VLAN tags specified for the upstream
20276 * v-switch.
20279 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_VLAN_TAGS_LEN 4
20282 #define MC_CMD_VPORT_RECONFIGURE_IN_VLAN_TAGS_LEN 4
20289 /* The number of MAC addresses to add */
20291 #define MC_CMD_VPORT_RECONFIGURE_IN_NUM_MACADDRS_LEN 4
20295 #define MC_CMD_VPORT_RECONFIGURE_IN_MACADDRS_NUM 4
20298 #define MC_CMD_VPORT_RECONFIGURE_OUT_LEN 4
20300 #define MC_CMD_VPORT_RECONFIGURE_OUT_FLAGS_LEN 4
20303 #define MC_CMD_VPORT_RECONFIGURE_OUT_RESET_DONE_WIDTH 1
20322 #define MC_CMD_GET_CLOCK_OUT_SYS_FREQ_LEN 4
20324 #define MC_CMD_GET_CLOCK_OUT_DPCPU_FREQ_OFST 4
20325 #define MC_CMD_GET_CLOCK_OUT_DPCPU_FREQ_LEN 4
20338 #define MC_CMD_TRIGGER_INTERRUPT_IN_LEN 4
20341 #define MC_CMD_TRIGGER_INTERRUPT_IN_INTR_LEVEL_LEN 4
20349 * Take a dump of the DUT state
20359 #define MC_CMD_DUMP_DO_IN_PADDING_LEN 4
20360 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_OFST 4
20361 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_LEN 4
20365 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_TYPE_LEN 4
20371 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4
20373 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_LEN 4
20375 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4
20377 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4
20379 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4
20382 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4
20384 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4
20387 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_LEN 4
20393 #define MC_CMD_DUMP_DO_IN_DUMPSPEC_SRC_CUSTOM_SIZE_LEN 4
20395 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_LEN 4
20399 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_TYPE_LEN 4
20403 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4
20405 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_LEN 4
20407 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4
20409 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4
20411 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4
20413 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4
20415 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4
20417 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_UART_PORT_LEN 4
20419 #define MC_CMD_DUMP_DO_IN_DUMPFILE_DST_CUSTOM_SIZE_LEN 4
20422 #define MC_CMD_DUMP_DO_OUT_LEN 4
20424 #define MC_CMD_DUMP_DO_OUT_DUMPFILE_SIZE_LEN 4
20439 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_ENABLE_LEN 4
20440 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_OFST 4
20441 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_LEN 4
20445 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_TYPE_LEN 4
20449 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4
20451 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_NVRAM_OFFSET_LEN 4
20453 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4
20455 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4
20457 …e MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4
20459 …e MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4
20461 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4
20463 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_UART_PORT_LEN 4
20465 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPSPEC_SRC_CUSTOM_SIZE_LEN 4
20467 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_LEN 4
20471 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_TYPE_LEN 4
20475 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_PARTITION_TYPE_ID_LEN 4
20477 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_NVRAM_OFFSET_LEN 4
20479 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_LO_LEN 4
20481 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_ADDR_HI_LEN 4
20483 …e MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_LO_LEN 4
20485 …e MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_ROOT_ADDR_HI_LEN 4
20487 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_HOST_MEMORY_MLI_DEPTH_LEN 4
20489 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_UART_PORT_LEN 4
20491 #define MC_CMD_DUMP_CONFIGURE_UNSOLICITED_IN_DUMPFILE_DST_CUSTOM_SIZE_LEN 4
20509 #define MC_CMD_GET_FUNCTION_INFO_OUT_PF_LEN 4
20510 #define MC_CMD_GET_FUNCTION_INFO_OUT_VF_OFST 4
20511 #define MC_CMD_GET_FUNCTION_INFO_OUT_VF_LEN 4
20516 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_PF_LEN 4
20517 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_VF_OFST 4
20518 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_VF_LEN 4
20520 * in the case of a V1 response, this should be HOST_PRIMARY.
20523 #define MC_CMD_GET_FUNCTION_INFO_OUT_V2_INTF_LEN 4
20554 #define MC_CMD_KR_TUNE_IN_LENMIN 4
20557 #define MC_CMD_KR_TUNE_IN_LEN(num) (4+4*(num))
20558 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_NUM(len) (((len)-4)/4)
20561 #define MC_CMD_KR_TUNE_IN_KR_TUNE_OP_LEN 1
20576 /* enum: Poll KR Serdes Eye diagram plot. Returns one row of BER data. The
20581 /* enum: Read Figure Of Merit (eye quality, higher is better). */
20588 #define MC_CMD_KR_TUNE_IN_KR_TUNE_RSVD_OFST 1
20591 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_OFST 4
20592 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_LEN 4
20601 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_LEN 4
20604 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_OP_LEN 1
20606 #define MC_CMD_KR_TUNE_RXEQ_GET_IN_KR_TUNE_RSVD_OFST 1
20610 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LENMIN 4
20613 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_LEN(num) (0+4*(num))
20614 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4)
20617 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_LEN 4
20618 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_MINNUM 1
20624 /* enum: Attenuation (0-15, Huntington) */
20626 /* enum: CTLE Boost (0-15, Huntington) */
20628 /* enum: Edge DFE Tap1 (Huntington - 0 - max negative, 64 - zero, 127 - max
20629 * positive, Medford - 0-31)
20632 /* enum: Edge DFE Tap2 (Huntington - 0 - max negative, 32 - zero, 63 - max
20633 * positive, Medford - 0-31)
20636 /* enum: Edge DFE Tap3 (Huntington - 0 - max negative, 32 - zero, 63 - max
20637 * positive, Medford - 0-16)
20640 /* enum: Edge DFE Tap4 (Huntington - 0 - max negative, 32 - zero, 63 - max
20641 * positive, Medford - 0-16)
20644 /* enum: Edge DFE Tap5 (Huntington - 0 - max negative, 32 - zero, 63 - max
20645 * positive, Medford - 0-16)
20648 /* enum: Edge DFE DLEV (0-128 for Medford) */
20650 /* enum: Variable Gain Amplifier (0-15, Medford) */
20652 /* enum: CTLE EQ Capacitor (0-15, Medford) */
20654 /* enum: CTLE EQ Resistor (0-7, Medford) */
20656 /* enum: CTLE gain (0-31, Medford2) */
20658 /* enum: CTLE pole (0-31, Medford2) */
20660 /* enum: CTLE peaking (0-31, Medford2) */
20662 /* enum: DFE Tap1 - even path (Medford2 - 6 bit signed (-29 - +29)) */
20664 /* enum: DFE Tap1 - odd path (Medford2 - 6 bit signed (-29 - +29)) */
20666 /* enum: DFE Tap2 (Medford2 - 6 bit signed (-20 - +20)) */
20668 /* enum: DFE Tap3 (Medford2 - 6 bit signed (-20 - +20)) */
20670 /* enum: DFE Tap4 (Medford2 - 6 bit signed (-20 - +20)) */
20672 /* enum: DFE Tap5 (Medford2 - 6 bit signed (-24 - +24)) */
20674 /* enum: DFE Tap6 (Medford2 - 6 bit signed (-24 - +24)) */
20676 /* enum: DFE Tap7 (Medford2 - 6 bit signed (-24 - +24)) */
20678 /* enum: DFE Tap8 (Medford2 - 6 bit signed (-24 - +24)) */
20680 /* enum: DFE Tap9 (Medford2 - 6 bit signed (-24 - +24)) */
20682 /* enum: DFE Tap10 (Medford2 - 6 bit signed (-24 - +24)) */
20684 /* enum: DFE Tap11 (Medford2 - 6 bit signed (-24 - +24)) */
20686 /* enum: DFE Tap12 (Medford2 - 6 bit signed (-24 - +24)) */
20688 /* enum: I/Q clk offset (Medford2 - 4 bit signed (-5 - +5))) */
20691 * (Medford2 - 6 bit signed (-29 - +29)))
20695 * (Medford2 - 6 bit signed (-29 - +29)))
20699 * (Medford2 - 6 bit signed (-29 - +29)))
20703 * (Medford2 - 6 bit signed (-29 - +29)))
20710 /* enum: CTLE Boost stages - retimer lineside (Medford2 with DS250x retimer - 4
20714 /* enum: DFE Tap1 - retimer lineside (Medford2 with DS250x retimer (-31 - 31))
20717 /* enum: DFE Tap2 - retimer lineside (Medford2 with DS250x retimer (-15 - 15))
20720 /* enum: DFE Tap3 - retimer lineside (Medford2 with DS250x retimer (-15 - 15))
20723 /* enum: DFE Tap4 - retimer lineside (Medford2 with DS250x retimer (-15 - 15))
20726 /* enum: DFE Tap5 - retimer lineside (Medford2 with DS250x retimer (-15 - 15))
20729 /* enum: CTLE Boost stages - retimer hostside (Medford2 with DS250x retimer - 4
20733 /* enum: DFE Tap1 - retimer hostside (Medford2 with DS250x retimer (-31 - 31))
20736 /* enum: DFE Tap2 - retimer hostside (Medford2 with DS250x retimer (-15 - 15))
20739 /* enum: DFE Tap3 - retimer hostside (Medford2 with DS250x retimer (-15 - 15))
20742 /* enum: DFE Tap4 - retimer hostside (Medford2 with DS250x retimer (-15 - 15))
20745 /* enum: DFE Tap5 - retimer hostside (Medford2 with DS250x retimer (-15 - 15))
20758 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_AUTOCAL_WIDTH 1
20761 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_RESERVED_WIDTH 4
20773 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_LEN(num) (4+4*(num))
20774 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_NUM(len) (((len)-4)/4)
20777 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_OP_LEN 1
20779 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_KR_TUNE_RSVD_OFST 1
20782 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_OFST 4
20783 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LEN 4
20784 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_MINNUM 1
20787 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_ID_OFST 4
20792 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_LANE_OFST 4
20797 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_OFST 4
20799 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_AUTOCAL_WIDTH 1
20800 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED_OFST 4
20802 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED_WIDTH 4
20803 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_INITIAL_OFST 4
20806 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_RESERVED2_OFST 4
20814 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_LEN 4
20817 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_OP_LEN 1
20819 #define MC_CMD_KR_TUNE_TXEQ_GET_IN_KR_TUNE_RSVD_OFST 1
20823 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LENMIN 4
20826 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_LEN(num) (0+4*(num))
20827 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4)
20830 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_LEN 4
20831 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_MINNUM 1
20839 /* enum: De-Emphasis Tap1 Magnitude (0-7) (Huntington) */
20841 /* enum: De-Emphasis Tap1 Fine */
20843 /* enum: De-Emphasis Tap2 Magnitude (0-6) (Huntington) */
20845 /* enum: De-Emphasis Tap2 Fine (Huntington) */
20847 /* enum: Pre-Emphasis Magnitude (Huntington) */
20849 /* enum: Pre-Emphasis Fine (Huntington) */
20859 /* enum: Pre-cursor Tap (Medford, Medford2) */
20861 /* enum: Post-cursor Tap (Medford, Medford2) */
20865 /* enum: Pre-cursor Tap (Retimer Lineside) */
20867 /* enum: Post-cursor Tap (Retimer Lineside) */
20871 /* enum: Pre-cursor Tap (Retimer Hostside) */
20873 /* enum: Post-cursor Tap (Retimer Hostside) */
20897 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_LEN(num) (4+4*(num))
20898 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_NUM(len) (((len)-4)/4)
20901 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_OP_LEN 1
20903 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_KR_TUNE_RSVD_OFST 1
20906 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_OFST 4
20907 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LEN 4
20908 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_MINNUM 1
20911 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_ID_OFST 4
20916 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_LANE_OFST 4
20921 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED_OFST 4
20924 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_INITIAL_OFST 4
20927 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_RESERVED2_OFST 4
20935 #define MC_CMD_KR_TUNE_RECAL_IN_LEN 4
20938 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_OP_LEN 1
20940 #define MC_CMD_KR_TUNE_RECAL_IN_KR_TUNE_RSVD_OFST 1
20950 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_OP_LEN 1
20952 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_KR_TUNE_RSVD_OFST 1
20954 /* Port-relative lane to scan eye on */
20955 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_LANE_OFST 4
20956 #define MC_CMD_KR_TUNE_START_EYE_PLOT_IN_LANE_LEN 4
20962 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_OP_LEN 1
20964 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_KR_TUNE_RSVD_OFST 1
20966 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_OFST 4
20967 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_LEN 4
20968 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_NUM_OFST 4
20971 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_ABS_REL_OFST 4
20973 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_LANE_ABS_REL_WIDTH 1
20976 #define MC_CMD_KR_TUNE_START_EYE_PLOT_V2_IN_BER_LEN 4
20982 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_LEN 4
20985 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_OP_LEN 1
20987 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_IN_KR_TUNE_RSVD_OFST 1
20995 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_NUM(len) (((len)-0)/2)
21006 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_OP_LEN 1
21008 #define MC_CMD_KR_TUNE_READ_FOM_IN_KR_TUNE_RSVD_OFST 1
21010 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_OFST 4
21011 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_LEN 4
21012 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_NUM_OFST 4
21015 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_ABS_REL_OFST 4
21017 #define MC_CMD_KR_TUNE_READ_FOM_IN_LANE_ABS_REL_WIDTH 1
21020 #define MC_CMD_KR_TUNE_READ_FOM_OUT_LEN 4
21022 #define MC_CMD_KR_TUNE_READ_FOM_OUT_FOM_LEN 4
21028 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_OP_LEN 1
21030 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_KR_TUNE_RSVD_OFST 1
21032 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_RUN_OFST 4
21033 #define MC_CMD_KR_TUNE_LINK_TRAIN_RUN_IN_RUN_LEN 4
21041 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_OP_LEN 1
21043 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_KR_TUNE_RSVD_OFST 1
21045 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_LANE_OFST 4
21046 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_LANE_LEN 4
21049 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_INITIALIZE_LEN 4
21052 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_PRESET_LEN 4
21053 /* C(-1) request */
21055 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CM1_LEN 4
21061 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_C0_LEN 4
21064 /* C(+1) request */
21066 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_IN_CP1_LEN 4
21072 /* C(-1) status */
21074 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_STATUS_LEN 4
21080 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_STATUS_OFST 4
21081 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_STATUS_LEN 4
21084 /* C(+1) status */
21086 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_STATUS_LEN 4
21089 /* C(-1) value */
21091 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CM1_VALUE_LEN 4
21094 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_C0_VALUE_LEN 4
21095 /* C(+1) status */
21097 #define MC_CMD_KR_TUNE_LINK_TRAIN_CMD_OUT_CP1_VALUE_LEN 4
21103 * - not used for V3 licensing
21111 #define MC_CMD_LICENSING_IN_LEN 4
21112 /* identifies the type of operation requested */
21114 #define MC_CMD_LICENSING_IN_OP_LEN 4
21115 /* enum: re-read and apply licenses after a license key partition update; note
21116 * that this operation returns a zero-length response
21119 /* enum: report counts of installed licenses */
21124 /* count of application keys which are valid */
21126 #define MC_CMD_LICENSING_OUT_VALID_APP_KEYS_LEN 4
21127 /* sum of UNVERIFIABLE_APP_KEYS + WRONG_NODE_APP_KEYS (for compatibility with
21130 #define MC_CMD_LICENSING_OUT_INVALID_APP_KEYS_OFST 4
21131 #define MC_CMD_LICENSING_OUT_INVALID_APP_KEYS_LEN 4
21132 /* count of application keys which are invalid due to being blacklisted */
21134 #define MC_CMD_LICENSING_OUT_BLACKLISTED_APP_KEYS_LEN 4
21135 /* count of application keys which are invalid due to being unverifiable */
21137 #define MC_CMD_LICENSING_OUT_UNVERIFIABLE_APP_KEYS_LEN 4
21138 /* count of application keys which are invalid due to being for the wrong node
21141 #define MC_CMD_LICENSING_OUT_WRONG_NODE_APP_KEYS_LEN 4
21142 /* licensing state (for diagnostics; the exact meaning of the bits in this
21146 #define MC_CMD_LICENSING_OUT_LICENSING_STATE_LEN 4
21147 /* licensing subsystem self-test report (for manftest) */
21149 #define MC_CMD_LICENSING_OUT_LICENSING_SELF_TEST_LEN 4
21150 /* enum: licensing subsystem self-test failed */
21152 /* enum: licensing subsystem self-test passed */
21159 * - V3 licensing (Medford)
21167 #define MC_CMD_LICENSING_V3_IN_LEN 4
21168 /* identifies the type of operation requested */
21170 #define MC_CMD_LICENSING_V3_IN_OP_LEN 4
21171 /* enum: re-read and apply licenses after a license key partition update; note
21172 * that this operation returns a zero-length response
21175 /* enum: report counts of installed licenses Returns EAGAIN if license
21182 /* count of keys which are valid */
21184 #define MC_CMD_LICENSING_V3_OUT_VALID_KEYS_LEN 4
21185 /* sum of UNVERIFIABLE_KEYS + WRONG_NODE_KEYS (for compatibility with
21188 #define MC_CMD_LICENSING_V3_OUT_INVALID_KEYS_OFST 4
21189 #define MC_CMD_LICENSING_V3_OUT_INVALID_KEYS_LEN 4
21190 /* count of keys which are invalid due to being unverifiable */
21192 #define MC_CMD_LICENSING_V3_OUT_UNVERIFIABLE_KEYS_LEN 4
21193 /* count of keys which are invalid due to being for the wrong node */
21195 #define MC_CMD_LICENSING_V3_OUT_WRONG_NODE_KEYS_LEN 4
21196 /* licensing state (for diagnostics; the exact meaning of the bits in this
21200 #define MC_CMD_LICENSING_V3_OUT_LICENSING_STATE_LEN 4
21201 /* licensing subsystem self-test report (for manftest) */
21203 #define MC_CMD_LICENSING_V3_OUT_LICENSING_SELF_TEST_LEN 4
21204 /* enum: licensing subsystem self-test failed */
21206 /* enum: licensing subsystem self-test passed */
21208 /* bitmask of licensed applications */
21212 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_LO_LEN 4
21216 #define MC_CMD_LICENSING_V3_OUT_LICENSED_APPS_HI_LEN 4
21222 /* bitmask of licensed features */
21226 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_LO_LEN 4
21230 #define MC_CMD_LICENSING_V3_OUT_LICENSED_FEATURES_HI_LEN 4
21240 * Query the state of an individual licensed application. (Note that the actual
21242 * or a reboot of the MC.) Not used for V3 licensing
21250 #define MC_CMD_GET_LICENSED_APP_STATE_IN_LEN 4
21253 #define MC_CMD_GET_LICENSED_APP_STATE_IN_APP_ID_LEN 4
21256 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_LEN 4
21257 /* state of this application */
21259 #define MC_CMD_GET_LICENSED_APP_STATE_OUT_STATE_LEN 4
21268 * Change configuration related to the parser-dispatcher subsystem.
21279 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_LEN(num) (8+4*(num))
21280 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_NUM(len) (((len)-8)/4)
21281 /* the type of configuration setting to change */
21283 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_TYPE_LEN 4
21284 /* enum: Per-TXQ enable for multicast UDP destination lookup for possible
21288 /* enum: Per-v-adaptor enable for suppression of self-transmissions on the
21294 * on the type of configuration setting being changed
21296 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_ENTITY_OFST 4
21297 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_ENTITY_LEN 4
21298 /* new value: the details depend on the type of configuration setting being
21302 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_LEN 4
21303 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_MINNUM 1
21313 * Read the list of all implemented and all currently enabled workarounds. The
21326 #define MC_CMD_GET_WORKAROUNDS_OUT_IMPLEMENTED_LEN 4
21327 #define MC_CMD_GET_WORKAROUNDS_OUT_ENABLED_OFST 4
21328 #define MC_CMD_GET_WORKAROUNDS_OUT_ENABLED_LEN 4
21338 * - before adding code that queries this workaround, remember that there's
21351 * Read/set privileges of an arbitrary PCIe function
21361 * 1,3 = 0x00030001
21364 #define MC_CMD_PRIVILEGE_MASK_IN_FUNCTION_LEN 4
21373 * set to 1.
21375 #define MC_CMD_PRIVILEGE_MASK_IN_NEW_MASK_OFST 4
21376 #define MC_CMD_PRIVILEGE_MASK_IN_NEW_MASK_LEN 4
21400 * only a set of permitted VLANs. See the vPort flag FLAG_VLAN_RESTRICT.
21404 * are not permitted on secure adapters regardless of the privilege mask.
21408 * administrator-level operations that are not allowed from the local host once
21410 * SF-117064-DG for background).
21413 /* enum: Control the Match-Action Engine if present. See mcdi_mae.yml. */
21416 * dynamic client children of itself.
21424 * the device and to on-device DDR. It allows clients to use TX-DESC2CMPT-DESC
21425 * descriptors, and to use TX-SEG-DESC and TX-MEM2MEM-DESC with an address
21435 #define MC_CMD_PRIVILEGE_MASK_OUT_LEN 4
21438 #define MC_CMD_PRIVILEGE_MASK_OUT_OLD_MASK_LEN 4
21443 * Read/set link state mode of a VF
21453 * e.g. VF 1,3 = 0x00030001
21456 #define MC_CMD_LINK_STATE_MODE_IN_FUNCTION_LEN 4
21464 #define MC_CMD_LINK_STATE_MODE_IN_NEW_MODE_OFST 4
21465 #define MC_CMD_LINK_STATE_MODE_IN_NEW_MODE_LEN 4
21474 #define MC_CMD_LINK_STATE_MODE_OUT_LEN 4
21476 #define MC_CMD_LINK_STATE_MODE_OUT_OLD_MODE_LEN 4
21479 #define TUNNEL_ENCAP_UDP_PORT_ENTRY_LEN 4
21503 * parser-dispatcher will attempt to parse traffic on these ports as tunnel
21514 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LENMIN 4
21517 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_LEN(num) (4+4*(num))
21518 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_NUM(len) (((len)-4)/4)
21524 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_UNLOADING_WIDTH 1
21525 /* The number of entries in the ENTRIES array */
21531 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_OFST 4
21532 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_LEN 4
21544 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_OUT_RESETTING_WIDTH 1
21563 /* Function-relative queue instance */
21565 #define MC_CMD_SET_EVQ_TMR_IN_INSTANCE_LEN 4
21567 #define MC_CMD_SET_EVQ_TMR_IN_TMR_LOAD_REQ_NS_OFST 4
21568 #define MC_CMD_SET_EVQ_TMR_IN_TMR_LOAD_REQ_NS_LEN 4
21571 #define MC_CMD_SET_EVQ_TMR_IN_TMR_RELOAD_REQ_NS_LEN 4
21574 #define MC_CMD_SET_EVQ_TMR_IN_TMR_MODE_LEN 4
21584 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_LOAD_ACT_NS_LEN 4
21586 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_RELOAD_ACT_NS_OFST 4
21587 #define MC_CMD_SET_EVQ_TMR_OUT_TMR_RELOAD_ACT_NS_LEN 4
21606 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_FLAGS_LEN 4
21608 * nanoseconds) for each increment of the timer load/reload count. The
21609 * requested duration of a timer is this value multiplied by the timer
21612 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_NS_PER_COUNT_OFST 4
21613 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_NS_PER_COUNT_LEN 4
21618 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_MAX_COUNT_LEN 4
21620 * multiple of this step size will be rounded in an implementation defined
21624 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_TMR_REG_STEP_LEN 4
21629 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_MAX_NS_LEN 4
21630 /* Timer durations requested via MCDI that are not a multiple of this step size
21634 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_MCDI_TMR_STEP_NS_LEN 4
21636 * (in nanoseconds) for each increment of the timer load/reload count. The
21637 * requested duration of a timer is this value multiplied by the timer
21642 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_NS_PER_COUNT_LEN 4
21648 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_MAX_COUNT_LEN 4
21650 * not a multiple of this step size will be rounded in an implementation
21655 #define MC_CMD_GET_EVQ_TMR_PROPERTIES_OUT_BUG35388_TMR_STEP_LEN 4
21658 * requests of the device and that can own resources managed by the device.
21659 * Examples of clients include PCIe functions and dynamic clients. A client
21661 * be found within XN-200418-TC.
21663 #define CLIENT_HANDLE_LEN 4
21665 #define CLIENT_HANDLE_OPAQUE_LEN 4
21675 /* The instance of the scheduler. Refer to XN-200389-AW (snic/hnic) and
21676 * XN-200425-TC (cdx) for the location of these schedulers in the hardware.
21679 #define SCHED_CREDIT_CHECK_RESULT_SCHED_INSTANCE_LEN 1
21702 /* The type of node that this result refers to. */
21703 #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_OFST 1
21704 #define SCHED_CREDIT_CHECK_RESULT_NODE_TYPE_LEN 1
21709 /* enum: Destination node credit type 1 (new to the Keystone schedulers, see
21710 * SF-120268-TC)
21715 /* Level of node in scheduler hierarchy (level 0 is the bottom of the
21723 #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_OFST 4
21724 #define SCHED_CREDIT_CHECK_RESULT_NODE_INDEX_LEN 4
21727 /* The number of credits the node is expected to have. */
21729 #define SCHED_CREDIT_CHECK_RESULT_EXPECTED_CREDITS_LEN 4
21732 /* The number of credits the node actually had. */
21734 #define SCHED_CREDIT_CHECK_RESULT_ACTUAL_CREDITS_LEN 4
21741 …* Returns a description of the mapping from DESC_ADDR to TRGT_ADDR for the calling function's addr…
21752 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_LEN 4
21753 /* The type of mapping; see SF-nnnnnn-xx (EF100 driver writer's guide, once
21754 * written) for details of each type.
21757 #define MC_CMD_GET_DESC_ADDR_INFO_OUT_MAPPING_TYPE_LEN 4
21768 …* Returns a list of the DESC_ADDR regions for the calling function's address space. Only valid if…
21783 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_NUM(len) (((len)-0)/32)
21784 /* An array of DESC_ADDR_REGION strutures. The number of entries in the array
21785 * indicates the number of available regions.
21789 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_MINNUM 1
21796 …* Set the base TRGT_ADDR for a set of DESC_ADDR regions for the calling function's address space. …
21808 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_NUM(len) (((len)-8)/8)
21811 * should be set to 1.
21814 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_SET_REGION_MASK_LEN 4
21816 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_RSVD_OFST 4
21817 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_RSVD_LEN 4
21818 /* An array of values used to updated the base TRGT_ADDR for DESC_ADDR regions.
21826 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_LO_LEN 4
21830 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_HI_LEN 4
21833 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_MINNUM 1
21843 * Execute an arbitrary MCDI command on behalf of a different client. The
21844 * consequences of the command (e.g. ownership of any resources created) apply
21847 * indicated client. The given client must be a descendant of the requestor.
21858 #define MC_CMD_CLIENT_CMD_IN_LEN 4
21861 #define MC_CMD_CLIENT_CMD_IN_CLIENT_ID_LEN 4
21870 * resource ownership, such that groups of resources may be torn down as a
21871 * unit. See also MC_CMD_CLIENT_CMD. See XN-200265-TC for background, concepts
21873 * clients". The newly-created client is a child of the client which sent this
21887 #define MC_CMD_CLIENT_ALLOC_OUT_LEN 4
21888 /* The ID of the new client object which has been created. */
21890 #define MC_CMD_CLIENT_ALLOC_OUT_CLIENT_ID_LEN 4
21905 #define MC_CMD_CLIENT_FREE_IN_LEN 4
21906 /* The ID of the client to be freed. This client must be a descendant of the
21910 #define MC_CMD_CLIENT_FREE_IN_CLIENT_ID_LEN 4
21923 * created are then owned by the user-client. Only the VI owner can call this
21934 /* Function-relative VI number to modify. */
21936 #define MC_CMD_SET_VI_USER_IN_INSTANCE_LEN 4
21937 /* Client ID to become the new user. This must be a descendant of the owning
21941 #define MC_CMD_SET_VI_USER_IN_CLIENT_ID_OFST 4
21942 #define MC_CMD_SET_VI_USER_IN_CLIENT_ID_LEN 4
21950 * A device reports a set of MAC addresses for each client to use, known as the
21954 * to identity itself. This API exists solely to allow communication of MAC
21957 * be able to send traffic with a source MAC address taken from the list of MAC
21959 * resource traffic with a destination MAC taken from the list of MAC
21969 * EVB_PORT_ASSIGNED, that list of MAC addresses will be augmented with the MAC
21971 * (i.e. MC_CMD_VPORT_GET_MAC_ADDRESSES) or implicit (e.g. creation of a
21986 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN_LEN 4
21992 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_LEN 4
21999 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_NUM(len) (((len)-0)/6)
22000 /* An array of MAC addresses assigned to the client. */
22011 * administrator of the target client. See MC_CMD_GET_CLIENT_MAC_ADDRESSES for
22020 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LENMIN 4
22023 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_LEN(num) (4+6*(num))
22024 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_NUM(len) (((len)-4)/6)
22027 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_CLIENT_HANDLE_LEN 4
22028 /* An array of MAC addresses to assign to the client. */
22029 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_OFST 4
22042 * schedulers, check whether the number of credits is as it should be. This
22056 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_FLAGS_LEN 4
22059 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_REPORT_ALL_WIDTH 1
22061 * into pages. This field specifies which (0-indexed) page to request. A
22067 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_PAGE_OFST 4
22068 #define MC_CMD_CHECK_SCHEDULER_CREDITS_IN_PAGE_LEN 4
22075 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_NUM(len) (((len)-16)/16)
22076 /* The total number of results (across all pages). */
22078 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_TOTAL_RESULTS_LEN 4
22079 /* The number of pages that the response is split across. */
22080 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_NUM_PAGES_OFST 4
22081 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_NUM_PAGES_LEN 4
22082 /* The number of results in this response. */
22084 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_THIS_PAGE_LEN 4
22088 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_GENERATION_LEN 4
22089 /* The results, as an array of SCHED_CREDIT_CHECK_RESULT structures. */
22099 * Get a list of the virtio features supported by the device.
22107 #define MC_CMD_VIRTIO_GET_FEATURES_IN_LEN 4
22108 /* Type of device to get features for. Matches the device id as defined by the
22112 #define MC_CMD_VIRTIO_GET_FEATURES_IN_DEVICE_ID_LEN 4
22122 /* Features supported by the device. The result is a bitfield in the format of
22123 * the feature bits of the specified device type as defined in the virtIO 1.1
22124 * specification ( https://docs.oasis-
22125 * open.org/virtio/virtio/v1.1/csprd01/virtio-v1.1-csprd01.pdf )
22130 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_LO_LEN 4
22133 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_OFST 4
22134 #define MC_CMD_VIRTIO_GET_FEATURES_OUT_FEATURES_HI_LEN 4
22141 * Query whether a given set of features is supported. Fails with ENOSUP if the
22152 /* Type of device to test features for. Matches the device id as defined by the
22156 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_DEVICE_ID_LEN 4
22159 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_RESERVED_OFST 4
22160 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_RESERVED_LEN 4
22167 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_LO_LEN 4
22171 #define MC_CMD_VIRTIO_TEST_FEATURES_IN_FEATURES_HI_LEN 4
22193 /* Type of virtqueue to create. A network rxq and a txq can exist at the same
22197 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_QUEUE_TYPE_LEN 1
22204 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED_OFST 1
22205 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_RESERVED_LEN 1
22207 * queue on the specified child VF instead of on the PF.
22213 /* Desired instance. This is the function-local index of the associated VI, not
22216 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INSTANCE_OFST 4
22217 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INSTANCE_LEN 4
22218 /* Queue size, in entries. Must be a power of two. */
22220 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_SIZE_LEN 4
22223 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FLAGS_LEN 4
22226 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USE_PASID_WIDTH 1
22227 /* Address of the descriptor table in the virtqueue. */
22231 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_LO_LEN 4
22235 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_DESC_TBL_ADDR_HI_LEN 4
22238 /* Address of the available ring in the virtqueue. */
22242 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_LO_LEN 4
22246 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_AVAIL_RING_ADDR_HI_LEN 4
22249 /* Address of the used ring in the virtqueue. */
22253 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_LO_LEN 4
22257 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_USED_RING_ADDR_HI_LEN 4
22264 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_PASID_LEN 4
22275 * spec and in the return from MC_CMD_VIRTIO_GET_FEATURES. Must be a subset of
22276 * the features returned from MC_CMD_VIRTIO_GET_FEATURES. Features are per-
22283 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_LO_LEN 4
22287 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_FEATURES_HI_LEN 4
22294 * returned by MC_CMD_VIRTIO_FINI_QUEUE of the queue being migrated from (or
22299 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_AVAIL_IDX_LEN 4
22300 /* Alias of INITIAL_AVAIL_IDX, kept for compatibility. */
22302 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_PIDX_LEN 4
22305 * MC_CMD_VIRTIO_FINI_QUEUE of the queue being migrated from (or equivalent if
22310 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_USED_IDX_LEN 4
22311 /* Alias of INITIAL_USED_IDX, kept for compatibility. */
22313 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_INITIAL_CIDX_LEN 4
22319 #define MC_CMD_VIRTIO_INIT_QUEUE_REQ_MPORT_SELECTOR_LEN 4
22336 /* Type of virtqueue to destroy. */
22338 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_QUEUE_TYPE_LEN 1
22341 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_RESERVED_OFST 1
22342 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_RESERVED_LEN 1
22344 * queue on the specified child VF instead of on the PF.
22351 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_INSTANCE_OFST 4
22352 #define MC_CMD_VIRTIO_FINI_QUEUE_REQ_INSTANCE_LEN 4
22356 /* The available index of the virtqueue when the queue was stopped. */
22358 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_AVAIL_IDX_LEN 4
22359 /* Alias of FINAL_AVAIL_IDX, kept for compatibility. */
22361 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_PIDX_LEN 4
22362 /* The used index of the virtqueue when the queue was stopped. */
22363 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_USED_IDX_OFST 4
22364 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_USED_IDX_LEN 4
22365 /* Alias of FINAL_USED_IDX, kept for compatibility. */
22366 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_CIDX_OFST 4
22367 #define MC_CMD_VIRTIO_FINI_QUEUE_RESP_FINAL_CIDX_LEN 4
22372 * Get the offset in the BAR of the doorbells for a VI. Doesn't require the
22382 /* Type of device to get information for. Matches the device id as defined by
22386 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_DEVICE_ID_LEN 1
22389 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_RESERVED_OFST 1
22390 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_RESERVED_LEN 1
22392 * on the specified child VF instead of on the PF.
22399 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_INSTANCE_OFST 4
22400 #define MC_CMD_VIRTIO_GET_DOORBELL_OFFSET_REQ_INSTANCE_LEN 4
22404 /* Offset of RX doorbell in BAR */
22406 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_RX_DBL_OFFSET_LEN 4
22407 /* Offset of TX doorbell in BAR */
22408 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_TX_DBL_OFFSET_OFST 4
22409 #define MC_CMD_VIRTIO_GET_NET_DOORBELL_OFFSET_RESP_TX_DBL_OFFSET_LEN 4
22412 #define MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP_LEN 4
22413 /* Offset of request doorbell in BAR */
22415 #define MC_CMD_VIRTIO_GET_BLOCK_DOORBELL_OFFSET_RESP_DBL_OFFSET_LEN 4
22445 /* PCIe interface of the function. Values should be taken from the
22448 #define PCIE_FUNCTION_INTF_OFST 4
22449 #define PCIE_FUNCTION_INTF_LEN 4
22464 * Obtain a handle for a client given a description of that client. N.B. this
22476 /* Type of client to get a client handle for */
22478 #define MC_CMD_GET_CLIENT_HANDLE_IN_TYPE_LEN 4
22479 /* enum: Obtain a client handle for a PCIe function-type client. */
22481 /* PCIe Function ID (as struct PCIE_FUNCTION). Valid when TYPE==FUNC. Use: -
22482 * INTF=CALLER, PF=PF_NULL, VF=VF_NULL to refer to the calling function -
22483 * INTF=CALLER, PF=PF_NULL, VF=... to refer to a VF child of the calling PF or
22484 * a sibling VF of the calling VF. - INTF=CALLER, PF=..., VF=VF_NULL to refer
22485 * to a PF on the calling interface - INTF=CALLER, PF=..., VF=... to refer to a
22486 * VF on the calling interface - INTF=..., PF=PF_NULL, VF=VF_NULL to refer to
22487 * the named interface itself - INTF=..., PF=..., VF=VF_NULL to refer to a PF
22488 * on a named interface - INTF=..., PF=..., VF=... to refer to a VF on a named
22494 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_OFST 4
22496 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_OFST 4
22497 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_LO_LEN 4
22501 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_HI_LEN 4
22504 /* enum: NULL value for the INTF field of struct PCIE_FUNCTION. Provided for
22509 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_PF_OFST 4
22514 #define MC_CMD_GET_CLIENT_HANDLE_IN_FUNC_INTF_LEN 4
22517 #define MC_CMD_GET_CLIENT_HANDLE_OUT_LEN 4
22519 #define MC_CMD_GET_CLIENT_HANDLE_OUT_HANDLE_LEN 4
22522 #define MAE_FIELD_FLAGS_LEN 4
22524 #define MAE_FIELD_FLAGS_FLAT_LEN 4
22530 #define MAE_FIELD_FLAGS_MASK_AFFECTS_CLASS_WIDTH 1
22533 #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_WIDTH 1
22538 * it makes sense to use to determine the encapsulation type of a packet. Its
22539 * intended use is to keep a common packing of fields across multiple MCDI
22548 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_LEN 4
22551 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_OFST 4
22552 #define MAE_ENC_FIELD_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LEN 4
22612 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_LEN 4
22616 #define MAE_ENC_FIELD_PAIRS_ENC_SRC_IP4_BE_MASK_LEN 4
22628 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_LEN 4
22632 #define MAE_ENC_FIELD_PAIRS_ENC_DST_IP4_BE_MASK_LEN 4
22644 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_LEN 1
22648 #define MAE_ENC_FIELD_PAIRS_ENC_IP_PROTO_MASK_LEN 1
22652 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_LEN 1
22656 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TOS_MASK_LEN 1
22660 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_LEN 1
22664 #define MAE_ENC_FIELD_PAIRS_ENC_IP_TTL_MASK_LEN 1
22667 /* Deprecated in favour of ENC_FLAGS alias. */
22669 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_LEN 1
22672 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_WIDTH 1
22674 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_LBN 1
22675 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_WIDTH 1
22678 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_WIDTH 1
22683 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_LEN 1
22686 /* Deprecated in favour of ENC_FLAGS_MASK alias. */
22688 #define MAE_ENC_FIELD_PAIRS_ENC_VLAN_FLAGS_MASK_LEN 1
22691 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_OVLAN_MASK_WIDTH 1
22693 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_MASK_LBN 1
22694 #define MAE_ENC_FIELD_PAIRS_ENC_HAS_IVLAN_MASK_WIDTH 1
22697 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FRAG_MASK_WIDTH 1
22702 #define MAE_ENC_FIELD_PAIRS_ENC_FLAGS_MASK_LEN 1
22706 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_LEN 4
22710 #define MAE_ENC_FIELD_PAIRS_ENC_IP_FLAGS_BE_MASK_LEN 4
22735 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_LEN 4
22738 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_OFST 4
22739 #define MAE_FIELD_MASK_VALUE_PAIRS_INGRESS_MPORT_SELECTOR_MASK_LEN 4
22743 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_LEN 4
22747 #define MAE_FIELD_MASK_VALUE_PAIRS_MARK_MASK_LEN 4
22807 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_LEN 4
22811 #define MAE_FIELD_MASK_VALUE_PAIRS_SRC_IP4_BE_MASK_LEN 4
22823 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_LEN 4
22827 #define MAE_FIELD_MASK_VALUE_PAIRS_DST_IP4_BE_MASK_LEN 4
22839 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_LEN 1
22843 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_PROTO_MASK_LEN 1
22847 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_LEN 1
22851 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TOS_MASK_LEN 1
22856 * other than 1.
22859 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_LEN 1
22863 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_TTL_MASK_LEN 1
22867 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_LEN 4
22871 #define MAE_FIELD_MASK_VALUE_PAIRS_IP_FLAGS_BE_MASK_LEN 4
22899 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_LEN 4
22903 #define MAE_FIELD_MASK_VALUE_PAIRS_ENCAP_TYPE_MASK_LEN 4
22907 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_LEN 4
22911 #define MAE_FIELD_MASK_VALUE_PAIRS_OUTER_RULE_ID_MASK_LEN 4
22971 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_LEN 4
22975 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_SRC_IP4_BE_MASK_LEN 4
22987 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_LEN 4
22991 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_DST_IP4_BE_MASK_LEN 4
23003 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_LEN 1
23007 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_PROTO_MASK_LEN 1
23011 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_LEN 1
23015 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TOS_MASK_LEN 1
23019 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_LEN 1
23023 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_TTL_MASK_LEN 1
23027 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_LEN 4
23031 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_IP_FLAGS_BE_MASK_LEN 4
23051 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_LEN 4
23055 #define MAE_FIELD_MASK_VALUE_PAIRS_ENC_VNET_ID_BE_MASK_LEN 4
23062 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_LEN 4
23065 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_OFST 4
23066 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_INGRESS_MPORT_SELECTOR_MASK_LEN 4
23070 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_LEN 4
23074 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_MARK_MASK_LEN 4
23134 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_LEN 4
23138 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_SRC_IP4_BE_MASK_LEN 4
23150 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_LEN 4
23154 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DST_IP4_BE_MASK_LEN 4
23166 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_LEN 1
23170 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_PROTO_MASK_LEN 1
23174 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_LEN 1
23178 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TOS_MASK_LEN 1
23183 * other than 1.
23186 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_LEN 1
23190 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_TTL_MASK_LEN 1
23194 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_LEN 4
23198 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FLAGS_BE_MASK_LEN 4
23226 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_LEN 4
23230 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENCAP_TYPE_MASK_LEN 4
23234 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_LEN 4
23238 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_OUTER_RULE_ID_MASK_LEN 4
23298 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_LEN 4
23302 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_SRC_IP4_BE_MASK_LEN 4
23314 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_LEN 4
23318 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_DST_IP4_BE_MASK_LEN 4
23330 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_LEN 1
23334 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_PROTO_MASK_LEN 1
23338 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_LEN 1
23342 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TOS_MASK_LEN 1
23346 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_LEN 1
23350 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_TTL_MASK_LEN 1
23354 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_LEN 4
23358 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_IP_FLAGS_BE_MASK_LEN 4
23378 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_LEN 4
23382 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_VNET_ID_BE_MASK_LEN 4
23386 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_LEN 4
23389 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_IP_FRAG_WIDTH 1
23391 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_LBN 1
23392 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_DO_CT_WIDTH 1
23395 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_HIT_WIDTH 1
23398 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IS_FROM_NETWORK_WIDTH 1
23400 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_OVLAN_LBN 4
23401 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_OVLAN_WIDTH 1
23404 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_HAS_IVLAN_WIDTH 1
23407 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_OVLAN_WIDTH 1
23410 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_IVLAN_WIDTH 1
23413 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_TCP_SYN_FIN_RST_WIDTH 1
23416 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_IP_FIRST_FRAG_WIDTH 1
23420 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_FLAGS_MASK_LEN 4
23432 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_LEN 4
23436 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_MARK_MASK_LEN 4
23440 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_LEN 1
23445 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD2_LEN 1
23449 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_CT_PRIVATE_FLAGS_MASK_LEN 1
23454 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD3_LEN 1
23458 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_LEN 1
23463 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD4_LEN 1
23467 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RECIRC_ID_MASK_LEN 1
23472 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_RSVD5_LEN 1
23478 * 32-bits or within any NIC interface field that needs store the value
23480 * refer to m-ports.
23482 #define MAE_MPORT_SELECTOR_LEN 4
23483 /* Used to force the tools to output bitfield-style defines for this structure.
23486 #define MAE_MPORT_SELECTOR_FLAT_LEN 4
23487 /* enum: An m-port selector value that is guaranteed never to represent a real
23491 /* enum: The m-port assigned to the calling client. */
23498 /* enum: The MPORT assigned to a given PCIe function. Deprecated in favour of
23504 /* enum: The MPORT assigned to a given PCIe function (see also FWRIVERHD-1108)
23514 #define MAE_MPORT_SELECTOR_PPORT_ID_WIDTH 4
23517 #define MAE_MPORT_SELECTOR_FUNC_INTF_ID_WIDTH 4
23525 #define MAE_MPORT_SELECTOR_FUNC_MH_PF_ID_WIDTH 4
23534 /* enum: Used for PF_ID to indicate the physical function of the calling
23535 * client. - When used by a PF with VF_ID == VF_ID_NULL, the mport selector
23537 * clients use ASSIGNED to achieve this behaviour). - When used by a PF with
23538 * VF_ID != VF_ID_NULL, the mport selector relates to a VF child of the calling
23539 * function. - When used by a VF with VF_ID == VF_ID_NULL, the mport selector
23540 * relates to the PF owning the calling function. - When used by a VF with
23541 * VF_ID != VF_ID_NULL, the mport selector relates to a sibling VF of the
23542 * calling function. - Not meaningful used by a client that is not a PCIe
23556 * equivalent to using the previous version of the command. Not all possible
23557 * combinations of MPORT_END and MPORT_SELECTOR in MAE_LINK_ENDPOINT_SELECTOR
23558 * will work in all circumstances. 1. Some will always work (e.g. a VF can
23561 * to address the VNIC end of a link to a physical port), 3. Some are
23564 * cannot administer), and 4. Some could be implementation-specific and fail
23566 * SF-123581-TC section 4.3 for more details.
23569 /* Identifier for the MAE MPORT of interest */
23571 #define MAE_LINK_ENDPOINT_SELECTOR_MPORT_SELECTOR_LEN 4
23574 /* Which end of the link identified by MPORT to consider */
23575 #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_OFST 4
23576 #define MAE_LINK_ENDPOINT_SELECTOR_LINK_END_LEN 4
23581 /* A field for accessing the endpoint selector as a collection of bits */
23585 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_LO_LEN 4
23588 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_OFST 4
23589 #define MAE_LINK_ENDPOINT_SELECTOR_FLAT_HI_LEN 4
23592 /* enum: Set FLAT to this value to obtain backward-compatible behaviour in
23604 * Describes capabilities of the MAE (Match-Action Engine)
23616 /* The number of field IDs that the NIC supports. Any field with a ID greater
23618 * a support level of MAE_FIELD_UNSUPPORTED in all requests.
23621 #define MC_CMD_MAE_GET_CAPS_OUT_MATCH_FIELD_COUNT_LEN 4
23622 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPES_SUPPORTED_OFST 4
23623 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPES_SUPPORTED_LEN 4
23624 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_OFST 4
23626 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_VXLAN_WIDTH 1
23627 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_OFST 4
23628 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_LBN 1
23629 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_NVGRE_WIDTH 1
23630 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_OFST 4
23632 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_GENEVE_WIDTH 1
23633 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_L2GRE_OFST 4
23635 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_TYPE_L2GRE_WIDTH 1
23638 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTERS_LEN 4
23639 /* The total number of AR counters available to allocate. */
23641 #define MC_CMD_MAE_GET_CAPS_OUT_AR_COUNTERS_LEN 4
23642 /* The total number of counters lists available to allocate. A value of zero
23647 #define MC_CMD_MAE_GET_CAPS_OUT_COUNTER_LISTS_LEN 4
23648 /* The total number of encap header structures available to allocate. */
23650 #define MC_CMD_MAE_GET_CAPS_OUT_ENCAP_HEADER_LIMIT_LEN 4
23653 #define MC_CMD_MAE_GET_CAPS_OUT_RSVD_LEN 4
23654 /* The total number of action sets available to allocate. */
23656 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SETS_LEN 4
23657 /* The total number of action set lists available to allocate. */
23659 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_SET_LISTS_LEN 4
23660 /* The total number of outer rules available to allocate. */
23662 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_RULES_LEN 4
23663 /* The total number of action rules available to allocate. */
23665 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_RULES_LEN 4
23666 /* The number of priorities available for ACTION_RULE filters. It is invalid to
23670 #define MC_CMD_MAE_GET_CAPS_OUT_ACTION_PRIOS_LEN 4
23671 /* The number of priorities available for OUTER_RULE filters. It is invalid to
23675 #define MC_CMD_MAE_GET_CAPS_OUT_OUTER_PRIOS_LEN 4
23676 /* MAE API major version. Currently 1. If this field is not present in the
23682 #define MC_CMD_MAE_GET_CAPS_OUT_API_VER_LEN 4
23686 /* The number of field IDs that the NIC supports. Any field with a ID greater
23688 * a support level of MAE_FIELD_UNSUPPORTED in all requests.
23691 #define MC_CMD_MAE_GET_CAPS_V2_OUT_MATCH_FIELD_COUNT_LEN 4
23692 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPES_SUPPORTED_OFST 4
23693 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPES_SUPPORTED_LEN 4
23694 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_VXLAN_OFST 4
23696 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_VXLAN_WIDTH 1
23697 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_NVGRE_OFST 4
23698 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_NVGRE_LBN 1
23699 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_NVGRE_WIDTH 1
23700 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_GENEVE_OFST 4
23702 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_GENEVE_WIDTH 1
23703 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_L2GRE_OFST 4
23705 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_TYPE_L2GRE_WIDTH 1
23708 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTERS_LEN 4
23709 /* The total number of AR counters available to allocate. */
23711 #define MC_CMD_MAE_GET_CAPS_V2_OUT_AR_COUNTERS_LEN 4
23712 /* The total number of counters lists available to allocate. A value of zero
23717 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_LISTS_LEN 4
23718 /* The total number of encap header structures available to allocate. */
23720 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ENCAP_HEADER_LIMIT_LEN 4
23723 #define MC_CMD_MAE_GET_CAPS_V2_OUT_RSVD_LEN 4
23724 /* The total number of action sets available to allocate. */
23726 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SETS_LEN 4
23727 /* The total number of action set lists available to allocate. */
23729 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_SET_LISTS_LEN 4
23730 /* The total number of outer rules available to allocate. */
23732 #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_RULES_LEN 4
23733 /* The total number of action rules available to allocate. */
23735 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_RULES_LEN 4
23736 /* The number of priorities available for ACTION_RULE filters. It is invalid to
23740 #define MC_CMD_MAE_GET_CAPS_V2_OUT_ACTION_PRIOS_LEN 4
23741 /* The number of priorities available for OUTER_RULE filters. It is invalid to
23745 #define MC_CMD_MAE_GET_CAPS_V2_OUT_OUTER_PRIOS_LEN 4
23746 /* MAE API major version. Currently 1. If this field is not present in the
23752 #define MC_CMD_MAE_GET_CAPS_V2_OUT_API_VER_LEN 4
23753 /* Mask of supported counter types. Each bit position corresponds to a value of
23760 #define MC_CMD_MAE_GET_CAPS_V2_OUT_COUNTER_TYPES_SUPPORTED_LEN 4
23761 /* The total number of conntrack counters available to allocate. */
23763 #define MC_CMD_MAE_GET_CAPS_V2_OUT_CT_COUNTERS_LEN 4
23767 /* The number of field IDs that the NIC supports. Any field with a ID greater
23769 * a support level of MAE_FIELD_UNSUPPORTED in all requests.
23772 #define MC_CMD_MAE_GET_CAPS_V3_OUT_MATCH_FIELD_COUNT_LEN 4
23773 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPES_SUPPORTED_OFST 4
23774 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPES_SUPPORTED_LEN 4
23775 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_VXLAN_OFST 4
23777 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_VXLAN_WIDTH 1
23778 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_NVGRE_OFST 4
23779 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_NVGRE_LBN 1
23780 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_NVGRE_WIDTH 1
23781 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_GENEVE_OFST 4
23783 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_GENEVE_WIDTH 1
23784 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_L2GRE_OFST 4
23786 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_TYPE_L2GRE_WIDTH 1
23789 #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTERS_LEN 4
23790 /* The total number of AR counters available to allocate. */
23792 #define MC_CMD_MAE_GET_CAPS_V3_OUT_AR_COUNTERS_LEN 4
23793 /* The total number of counters lists available to allocate. A value of zero
23798 #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTER_LISTS_LEN 4
23799 /* The total number of encap header structures available to allocate. */
23801 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ENCAP_HEADER_LIMIT_LEN 4
23804 #define MC_CMD_MAE_GET_CAPS_V3_OUT_RSVD_LEN 4
23805 /* The total number of action sets available to allocate. */
23807 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_SETS_LEN 4
23808 /* The total number of action set lists available to allocate. */
23810 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_SET_LISTS_LEN 4
23811 /* The total number of outer rules available to allocate. */
23813 #define MC_CMD_MAE_GET_CAPS_V3_OUT_OUTER_RULES_LEN 4
23814 /* The total number of action rules available to allocate. */
23816 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_RULES_LEN 4
23817 /* The number of priorities available for ACTION_RULE filters. It is invalid to
23821 #define MC_CMD_MAE_GET_CAPS_V3_OUT_ACTION_PRIOS_LEN 4
23822 /* The number of priorities available for OUTER_RULE filters. It is invalid to
23826 #define MC_CMD_MAE_GET_CAPS_V3_OUT_OUTER_PRIOS_LEN 4
23827 /* MAE API major version. Currently 1. If this field is not present in the
23833 #define MC_CMD_MAE_GET_CAPS_V3_OUT_API_VER_LEN 4
23834 /* Mask of supported counter types. Each bit position corresponds to a value of
23841 #define MC_CMD_MAE_GET_CAPS_V3_OUT_COUNTER_TYPES_SUPPORTED_LEN 4
23842 /* The total number of conntrack counters available to allocate. */
23844 #define MC_CMD_MAE_GET_CAPS_V3_OUT_CT_COUNTERS_LEN 4
23845 /* The total number of Outer Rule counters available to allocate. */
23847 #define MC_CMD_MAE_GET_CAPS_V3_OUT_OR_COUNTERS_LEN 4
23852 * Get a level of support for match fields when used in match-action rules
23863 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LENMIN 4
23866 #define MC_CMD_MAE_GET_AR_CAPS_OUT_LEN(num) (4+4*(num))
23867 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_NUM(len) (((len)-4)/4)
23868 /* Number of fields actually returned in FIELD_FLAGS. */
23870 #define MC_CMD_MAE_GET_AR_CAPS_OUT_COUNT_LEN 4
23871 /* Array of values indicating the NIC's support for a given field, indexed by
23875 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_OFST 4
23876 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_LEN 4
23884 * Get a level of support for fields used in outer rule keys.
23895 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LENMIN 4
23898 #define MC_CMD_MAE_GET_OR_CAPS_OUT_LEN(num) (4+4*(num))
23899 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_NUM(len) (((len)-4)/4)
23900 /* Number of fields actually returned in FIELD_FLAGS. */
23902 #define MC_CMD_MAE_GET_OR_CAPS_OUT_COUNT_LEN 4
23904 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_OFST 4
23905 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_LEN 4
23913 * Allocate match-action-engine counters, which can be referenced in various
23924 #define MC_CMD_MAE_COUNTER_ALLOC_IN_LEN 4
23925 /* The number of counters that the driver would like allocated */
23927 #define MC_CMD_MAE_COUNTER_ALLOC_IN_REQUESTED_COUNT_LEN 4
23931 /* The number of counters that the driver would like allocated */
23933 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_REQUESTED_COUNT_LEN 4
23934 /* Which type of counter to allocate. */
23935 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_COUNTER_TYPE_OFST 4
23936 #define MC_CMD_MAE_COUNTER_ALLOC_V2_IN_COUNTER_TYPE_LEN 4
23944 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_LEN(num) (8+4*(num))
23945 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_NUM(len) (((len)-8)/4)
23950 * counts wrap from 0xffffffff to 1.
23953 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_GENERATION_COUNT_LEN 4
23956 /* The number of counter IDs that the NIC allocated. It is never less than 1;
23960 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_COUNT_OFST 4
23961 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_COUNT_LEN 4
23964 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_LEN 4
23965 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_MINNUM 1
23976 * Free match-action-engine counters
23989 #define MC_CMD_MAE_COUNTER_FREE_IN_LEN(num) (4+4*(num))
23990 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_NUM(len) (((len)-4)/4)
23991 /* The number of counter IDs to be freed. */
23993 #define MC_CMD_MAE_COUNTER_FREE_IN_COUNTER_ID_COUNT_LEN 4
23995 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_OFST 4
23996 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_LEN 4
23997 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_MINNUM 1
24003 /* The number of counter IDs to be freed. */
24005 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_ID_COUNT_LEN 4
24007 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_OFST 4
24008 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_LEN 4
24009 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_FREE_COUNTER_ID_MINNUM 1
24012 /* Which type of counter to free. */
24014 #define MC_CMD_MAE_COUNTER_FREE_V2_IN_COUNTER_TYPE_LEN 4
24022 #define MC_CMD_MAE_COUNTER_FREE_OUT_LEN(num) (8+4*(num))
24023 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_NUM(len) (((len)-8)/4)
24036 #define MC_CMD_MAE_COUNTER_FREE_OUT_GENERATION_COUNT_LEN 4
24037 /* The number of counter IDs actually freed. It is never less than 1; failure
24042 #define MC_CMD_MAE_COUNTER_FREE_OUT_COUNTER_ID_COUNT_OFST 4
24043 #define MC_CMD_MAE_COUNTER_FREE_OUT_COUNTER_ID_COUNT_LEN 4
24051 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_LEN 4
24052 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_MINNUM 1
24063 * the availability of credits. Note that if the driver wishes to deliver
24079 /* Maximum size in bytes of packets that may be written to the RxQ. */
24083 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_FLAGS_OFST 4
24084 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_FLAGS_LEN 4
24085 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_OFST 4
24087 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_ZERO_SQUASH_DISABLE_WIDTH 1
24088 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_OFST 4
24089 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_LBN 1
24090 #define MC_CMD_MAE_COUNTERS_STREAM_START_IN_COUNTER_STALL_EN_WIDTH 1
24097 /* Maximum size in bytes of packets that may be written to the RxQ. */
24101 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_FLAGS_OFST 4
24102 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_FLAGS_LEN 4
24103 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_ZERO_SQUASH_DISABLE_OFST 4
24105 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_ZERO_SQUASH_DISABLE_WIDTH 1
24106 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_STALL_EN_OFST 4
24107 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_STALL_EN_LBN 1
24108 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_STALL_EN_WIDTH 1
24109 /* Mask of which counter types should be reported. Each bit position
24110 * corresponds to a value of the MAE_COUNTER_TYPE enum. For example a value of
24111 * 0x3 requests both AR and CT counters. A value of zero is invalid. Counter
24119 #define MC_CMD_MAE_COUNTERS_STREAM_START_V2_IN_COUNTER_TYPES_MASK_LEN 4
24122 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_LEN 4
24124 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_FLAGS_LEN 4
24127 #define MC_CMD_MAE_COUNTERS_STREAM_START_OUT_USES_CREDITS_WIDTH 1
24146 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_LEN 4
24147 /* Generation count for AR counters. The final set of AR counter values will be
24149 * count > GENERATION_COUNT indicates that no more counter values of this type
24154 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_OUT_GENERATION_COUNT_LEN 4
24157 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LENMIN 4
24160 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_LEN(num) (0+4*(num))
24161 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_NUM(len) (((len)-0)/4)
24162 /* Array of generation counts, indexed by MAE_COUNTER_TYPE. Note that since
24163 * MAE_COUNTER_TYPE_AR==0, this response is backwards-compatible with V1. The
24164 * final set of counter values will be written out in packets with count ==
24166 * that no more counter values of this type will be written to this stream.
24170 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_LEN 4
24171 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_MINNUM 1
24178 * Give a number of credits to the packetiser. Each credit received allows the
24180 * have written sufficient descriptors for a packet of length
24189 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_LEN 4
24190 /* Number of credits to give to the packetiser. */
24192 #define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_NUM_CREDITS_LEN 4
24201 * header must be constructed as a valid packet with 0-length payload.
24204 * UDP are supported. If the maximum number of headers have already been
24213 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMIN 4
24216 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LEN(num) (4+1*(num))
24217 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_NUM(len) (((len)-4)/1)
24219 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_ENCAP_TYPE_LEN 4
24220 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_OFST 4
24221 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_LEN 1
24227 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_LEN 4
24229 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_OUT_ENCAP_HEADER_ID_LEN 4
24249 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LEN(num) (8+1*(num))
24250 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_NUM(len) (((len)-8)/1)
24252 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_EH_ID_LEN 4
24253 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_ENCAP_TYPE_OFST 4
24254 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_ENCAP_TYPE_LEN 4
24256 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_LEN 1
24275 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMIN 4
24278 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LEN(num) (0+4*(num))
24279 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_NUM(len) (((len)-0)/4)
24282 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_LEN 4
24283 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_MINNUM 1
24288 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LENMIN 4
24291 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_LEN(num) (0+4*(num))
24292 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_NUM(len) (((len)-0)/4)
24295 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_LEN 4
24296 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_MINNUM 1
24305 * same MAC address twice (but instead reuse its ID). If the maximum number of
24321 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_LEN 4
24323 #define MC_CMD_MAE_MAC_ADDR_ALLOC_OUT_MAC_ID_LEN 4
24340 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMIN 4
24343 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_LEN(num) (0+4*(num))
24344 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_NUM(len) (((len)-0)/4)
24347 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_LEN 4
24348 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_MINNUM 1
24353 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LENMIN 4
24356 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_LEN(num) (0+4*(num))
24357 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_NUM(len) (((len)-0)/4)
24360 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_LEN 4
24361 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_MINNUM 1
24369 * Action Rule, or as part of an Action Set List. If the maxmimum number of
24381 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAGS_LEN 4
24386 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN_POP_LBN 4
24390 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DECAP_WIDTH 1
24393 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_WIDTH 1
24396 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_FLAG_WIDTH 1
24399 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_NAT_WIDTH 1
24402 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_DECR_IP_TTL_WIDTH 1
24405 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_SRC_MPORT_WIDTH 1
24408 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SUPPRESS_SELF_DELIVERY_WIDTH 1
24411 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_C_PL_WIDTH 1
24414 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_D_PL_WIDTH 1
24417 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_WIDTH 1
24420 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DO_SET_NET_CHAN_WIDTH 1
24423 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LACP_PLUGIN_WIDTH 1
24426 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LACP_INC_L4_WIDTH 1
24427 /* If VLAN_PUSH >= 1, TCI value to be inserted as outermost VLAN. */
24428 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_VLAN0_TCI_BE_OFST 4
24430 /* If VLAN_PUSH >= 1, TPID value to be inserted as outermost VLAN. */
24441 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_RSVD_LEN 4
24444 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_ENCAP_HEADER_ID_LEN 4
24445 /* An m-port selector identifying the m-port that the modified packet should be
24446 * delivered to. Set to MPORT_SELECTOR_NULL to request no delivery of the
24450 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DELIVER_LEN 4
24455 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_LIST_ID_LEN 4
24459 * it can supply a COUNTER_ID instead of allocating a single-element counter
24462 * is not valid to supply a non-NULL value for both COUNTER_LIST_ID and
24466 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_COUNTER_ID_LEN 4
24470 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_MARK_VALUE_LEN 4
24473 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_SRC_MAC_ID_LEN 4
24476 #define MC_CMD_MAE_ACTION_SET_ALLOC_IN_DST_MAC_ID_LEN 4
24484 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAGS_LEN 4
24489 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN_POP_LBN 4
24493 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DECAP_WIDTH 1
24496 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_WIDTH 1
24499 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_FLAG_WIDTH 1
24502 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_NAT_WIDTH 1
24505 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DECR_IP_TTL_WIDTH 1
24508 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_SRC_MPORT_WIDTH 1
24511 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SUPPRESS_SELF_DELIVERY_WIDTH 1
24514 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_C_PL_WIDTH 1
24517 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_D_PL_WIDTH 1
24520 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_WIDTH 1
24523 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_SET_NET_CHAN_WIDTH 1
24526 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LACP_PLUGIN_WIDTH 1
24529 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_LACP_INC_L4_WIDTH 1
24530 /* If VLAN_PUSH >= 1, TCI value to be inserted as outermost VLAN. */
24531 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_VLAN0_TCI_BE_OFST 4
24533 /* If VLAN_PUSH >= 1, TPID value to be inserted as outermost VLAN. */
24544 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_RSVD_LEN 4
24547 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ENCAP_HEADER_ID_LEN 4
24548 /* An m-port selector identifying the m-port that the modified packet should be
24549 * delivered to. Set to MPORT_SELECTOR_NULL to request no delivery of the
24553 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DELIVER_LEN 4
24558 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_LIST_ID_LEN 4
24562 * it can supply a COUNTER_ID instead of allocating a single-element counter
24565 * is not valid to supply a non-NULL value for both COUNTER_LIST_ID and
24569 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_COUNTER_ID_LEN 4
24573 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_MARK_VALUE_LEN 4
24576 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_SRC_MAC_ID_LEN 4
24579 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DST_MAC_ID_LEN 4
24580 /* Source m-port ID to be reported for DO_SET_SRC_MPORT action. */
24582 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_REPORTED_SRC_MPORT_LEN 4
24583 /* Actions for modifying the Differentiated Services Code-Point (DSCP) bits
24590 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_ENCAP_COPY_WIDTH 1
24592 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_DECAP_COPY_LBN 1
24593 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_DSCP_DECAP_COPY_WIDTH 1
24596 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_DSCP_WIDTH 1
24604 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_CONTROL_LEN 1
24607 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_ENCAP_COPY_WIDTH 1
24609 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_DECAP_COPY_LBN 1
24610 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_ECN_DECAP_COPY_WIDTH 1
24613 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_DO_REPLACE_ECN_WIDTH 1
24619 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_0_TO_CE_WIDTH 1
24622 #define MC_CMD_MAE_ACTION_SET_ALLOC_V2_IN_ECN_ECT_1_TO_CE_WIDTH 1
24630 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_FLAGS_LEN 4
24635 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN_POP_LBN 4
24639 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DECAP_WIDTH 1
24642 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_MARK_WIDTH 1
24645 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_FLAG_WIDTH 1
24648 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_NAT_WIDTH 1
24651 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DECR_IP_TTL_WIDTH 1
24654 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_SET_SRC_MPORT_WIDTH 1
24657 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_SUPPRESS_SELF_DELIVERY_WIDTH 1
24660 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_C_PL_WIDTH 1
24663 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_D_PL_WIDTH 1
24666 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_RDP_OUT_HOST_CHAN_WIDTH 1
24669 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_SET_NET_CHAN_WIDTH 1
24672 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_LACP_PLUGIN_WIDTH 1
24675 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_LACP_INC_L4_WIDTH 1
24676 /* If VLAN_PUSH >= 1, TCI value to be inserted as outermost VLAN. */
24677 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_VLAN0_TCI_BE_OFST 4
24679 /* If VLAN_PUSH >= 1, TPID value to be inserted as outermost VLAN. */
24690 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RSVD_LEN 4
24693 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ENCAP_HEADER_ID_LEN 4
24694 /* An m-port selector identifying the m-port that the modified packet should be
24695 * delivered to. Set to MPORT_SELECTOR_NULL to request no delivery of the
24699 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DELIVER_LEN 4
24704 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_COUNTER_LIST_ID_LEN 4
24708 * it can supply a COUNTER_ID instead of allocating a single-element counter
24711 * is not valid to supply a non-NULL value for both COUNTER_LIST_ID and
24715 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_COUNTER_ID_LEN 4
24719 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_MARK_VALUE_LEN 4
24722 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_SRC_MAC_ID_LEN 4
24725 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DST_MAC_ID_LEN 4
24726 /* Source m-port ID to be reported for DO_SET_SRC_MPORT action. */
24728 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_REPORTED_SRC_MPORT_LEN 4
24729 /* Actions for modifying the Differentiated Services Code-Point (DSCP) bits
24736 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DSCP_ENCAP_COPY_WIDTH 1
24738 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DSCP_DECAP_COPY_LBN 1
24739 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_DSCP_DECAP_COPY_WIDTH 1
24742 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_DSCP_WIDTH 1
24750 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_CONTROL_LEN 1
24753 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_ECN_ENCAP_COPY_WIDTH 1
24755 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_ECN_DECAP_COPY_LBN 1
24756 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_ECN_DECAP_COPY_WIDTH 1
24759 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_DO_REPLACE_ECN_WIDTH 1
24765 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_ECT_0_TO_CE_WIDTH 1
24768 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_ECN_ECT_1_TO_CE_WIDTH 1
24771 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_OVERWRITE_LEN 1
24774 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_C_PL_WIDTH 1
24776 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_D_PL_LBN 1
24777 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_D_PL_WIDTH 1
24780 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_PL_CHAN_WIDTH 1
24783 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_RDP_OUT_HOST_CHAN_WIDTH 1
24788 #define MC_CMD_MAE_ACTION_SET_ALLOC_V3_IN_NET_CHAN_LEN 1
24791 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_LEN 4
24792 /* The MSB of the AS_ID is guaranteed to be clear if the ID is not
24797 #define MC_CMD_MAE_ACTION_SET_ALLOC_OUT_AS_ID_LEN 4
24812 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMIN 4
24815 #define MC_CMD_MAE_ACTION_SET_FREE_IN_LEN(num) (0+4*(num))
24816 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_NUM(len) (((len)-0)/4)
24819 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_LEN 4
24820 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_MINNUM 1
24825 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LENMIN 4
24828 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_LEN(num) (0+4*(num))
24829 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_NUM(len) (((len)-0)/4)
24832 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_LEN 4
24833 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_MINNUM 1
24843 * number of ASLs have already been allocated then the command will fail with
24855 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LEN(num) (4+4*(num))
24856 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_NUM(len) (((len)-4)/4)
24857 /* Number of elements in the AS_IDS field. */
24859 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_COUNT_LEN 4
24860 /* The IDs of the action sets in this list. The last element of this list may
24861 * be the ID of an already allocated ASL. In this case the action sets from the
24864 * where one ASL is a sublist of another ASL. The sublist should be allocated
24866 * action set IDs that are not in the sublist followed by the ID of the
24869 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_OFST 4
24870 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_LEN 4
24871 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_MINNUM 1
24876 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_LEN 4
24877 /* The MSB of the ASL_ID is guaranteed to be set. This allows an ASL_ID to be
24881 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_OUT_ASL_ID_LEN 4
24890 * Free match-action-engine redirect_lists
24898 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMIN 4
24901 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LEN(num) (0+4*(num))
24902 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_NUM(len) (((len)-0)/4)
24905 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_LEN 4
24906 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_MINNUM 1
24911 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LENMIN 4
24914 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_LEN(num) (0+4*(num))
24915 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_NUM(len) (((len)-0)/4)
24918 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_LEN 4
24919 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_MINNUM 1
24927 * influence the Lookup Sequence. If the maximum number of rules have already
24939 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LEN(num) (16+1*(num))
24940 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_NUM(len) (((len)-16)/1)
24943 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ENCAP_TYPE_LEN 4
24950 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_PRIO_OFST 4
24951 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_PRIO_LEN 4
24954 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LOOKUP_CONTROL_LEN 4
24957 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_CT_WIDTH 1
24959 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_VNI_MODE_LBN 1
24965 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_DO_COUNT_WIDTH 1
24967 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_TCP_FLAGS_INHIBIT_LBN 4
24968 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_CT_TCP_FLAGS_INHIBIT_WIDTH 1
24977 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_ACTION_CONTROL_LEN 4
24978 /* ID of counter to increment when the rule is hit. Only used if the DO_COUNT
24982 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_COUNTER_ID_LEN 4
24983 /* Structure of the format MAE_ENC_FIELD_PAIRS. */
24985 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_LEN 1
24991 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_LEN 4
24993 #define MC_CMD_MAE_OUTER_RULE_INSERT_OUT_OR_ID_LEN 4
25008 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMIN 4
25011 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LEN(num) (0+4*(num))
25012 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_NUM(len) (((len)-0)/4)
25015 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_LEN 4
25016 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_MINNUM 1
25021 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LENMIN 4
25024 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_LEN(num) (0+4*(num))
25025 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_NUM(len) (((len)-0)/4)
25028 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_LEN 4
25029 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_MINNUM 1
25036 #define MAE_ACTION_RULE_RESPONSE_ASL_ID_LEN 4
25039 /* Only one of ASL_ID or AS_ID may have a non-NULL value. */
25040 #define MAE_ACTION_RULE_RESPONSE_AS_ID_OFST 4
25041 #define MAE_ACTION_RULE_RESPONSE_AS_ID_LEN 4
25044 /* Controls lookup flow when this rule is hit. See sub-fields for details. More
25045 * info on the lookup sequence can be found in SF-122976-TC. It is an error to
25049 #define MAE_ACTION_RULE_RESPONSE_LOOKUP_CONTROL_LEN 4
25052 #define MAE_ACTION_RULE_RESPONSE_DO_CT_WIDTH 1
25054 #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_LBN 1
25055 #define MAE_ACTION_RULE_RESPONSE_DO_RECIRC_WIDTH 1
25074 #define MAE_ACTION_RULE_RESPONSE_COUNTER_ID_LEN 4
25083 * MC_CMD_MAE_GET_MATCH_FIELD_CAPABILITIES. If the maximum number of rules have
25095 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LEN(num) (28+1*(num))
25096 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_NUM(len) (((len)-28)/1)
25099 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_PRIO_LEN 4
25100 /* Structure of the format MAE_ACTION_RULE_RESPONSE */
25101 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RESPONSE_OFST 4
25105 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_RSVD_LEN 4
25106 /* Structure of the format MAE_FIELD_MASK_VALUE_PAIRS */
25108 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_LEN 1
25114 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_LEN 4
25116 #define MC_CMD_MAE_ACTION_RULE_INSERT_OUT_AR_ID_LEN 4
25124 * Atomically change the response of an action rule. Firmware may return
25134 /* ID of action rule to update */
25136 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_AR_ID_LEN 4
25137 /* Structure of the format MAE_ACTION_RULE_RESPONSE */
25138 #define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_RESPONSE_OFST 4
25154 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMIN 4
25157 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LEN(num) (0+4*(num))
25158 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_NUM(len) (((len)-0)/4)
25161 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_LEN 4
25162 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_MINNUM 1
25167 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LENMIN 4
25170 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_LEN(num) (0+4*(num))
25171 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_NUM(len) (((len)-0)/4)
25174 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_LEN 4
25175 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_MINNUM 1
25182 * Return the m-port corresponding to a selector.
25190 #define MC_CMD_MAE_MPORT_LOOKUP_IN_LEN 4
25192 #define MC_CMD_MAE_MPORT_LOOKUP_IN_MPORT_SELECTOR_LEN 4
25195 #define MC_CMD_MAE_MPORT_LOOKUP_OUT_LEN 4
25197 #define MC_CMD_MAE_MPORT_LOOKUP_OUT_MPORT_ID_LEN 4
25202 * Allocates a m-port, which can subsequently be used in action rules as a
25212 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain
25216 #define MC_CMD_MAE_MPORT_ALLOC_IN_TYPE_LEN 4
25217 /* enum: Traffic can be sent to this type of m-port using an override
25218 * descriptor. Traffic received on this type of m-port will go to the VNIC on a
25219 * nominated m-port, and will be delivered with metadata identifying the alias
25220 * m-port.
25223 /* enum: This type of m-port has a VNIC attached. Queues can be created on this
25224 * VNIC by specifying the created m-port as an m-port selector at queue
25228 /* 128-bit value for use by the driver. */
25229 #define MC_CMD_MAE_MPORT_ALLOC_IN_UUID_OFST 4
25234 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain
25238 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_TYPE_LEN 4
25239 /* enum: Traffic can be sent to this type of m-port using an override
25240 * descriptor. Traffic received on this type of m-port will go to the VNIC on a
25241 * nominated m-port, and will be delivered with metadata identifying the alias
25242 * m-port.
25245 /* enum: This type of m-port has a VNIC attached. Queues can be created on this
25246 * VNIC by specifying the created m-port as an m-port selector at queue
25250 /* 128-bit value for use by the driver. */
25251 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_UUID_OFST 4
25253 /* An m-port selector identifying the VNIC to which traffic should be
25255 * the m-port assigned to the calling client).
25258 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_IN_DELIVER_MPORT_LEN 4
25262 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain
25266 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_TYPE_LEN 4
25267 /* enum: Traffic can be sent to this type of m-port using an override
25268 * descriptor. Traffic received on this type of m-port will go to the VNIC on a
25269 * nominated m-port, and will be delivered with metadata identifying the alias
25270 * m-port.
25273 /* enum: This type of m-port has a VNIC attached. Queues can be created on this
25274 * VNIC by specifying the created m-port as an m-port selector at queue
25278 /* 128-bit value for use by the driver. */
25279 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_IN_UUID_OFST 4
25283 #define MC_CMD_MAE_MPORT_ALLOC_OUT_LEN 4
25284 /* ID of newly-allocated m-port. */
25286 #define MC_CMD_MAE_MPORT_ALLOC_OUT_MPORT_ID_LEN 4
25290 /* ID of newly-allocated m-port. */
25292 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_MPORT_ID_LEN 4
25294 * using an alias type m-port. This value is guaranteed unique on the VNIC
25295 * being delivered to, and is guaranteed not to exceed the range of values
25299 #define MC_CMD_MAE_MPORT_ALLOC_ALIAS_OUT_LABEL_LEN 4
25302 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_LEN 4
25303 /* ID of newly-allocated m-port. */
25305 #define MC_CMD_MAE_MPORT_ALLOC_VNIC_OUT_MPORT_ID_LEN 4
25310 * Free a m-port which was previously allocated by the driver.
25318 #define MC_CMD_MAE_MPORT_FREE_IN_LEN 4
25321 #define MC_CMD_MAE_MPORT_FREE_IN_MPORT_ID_LEN 4
25329 #define MAE_MPORT_DESC_MPORT_ID_LEN 4
25332 /* Reserved for future purposes, contains information independent of caller */
25333 #define MAE_MPORT_DESC_FLAGS_OFST 4
25334 #define MAE_MPORT_DESC_FLAGS_LEN 4
25338 #define MAE_MPORT_DESC_CALLER_FLAGS_LEN 4
25341 #define MAE_MPORT_DESC_CAN_RECEIVE_ON_WIDTH 1
25343 #define MAE_MPORT_DESC_CAN_DELIVER_TO_LBN 1
25344 #define MAE_MPORT_DESC_CAN_DELIVER_TO_WIDTH 1
25347 #define MAE_MPORT_DESC_CAN_DELETE_WIDTH 1
25350 #define MAE_MPORT_DESC_IS_ZOMBIE_WIDTH 1
25353 /* Not the ideal name; it's really the type of thing connected to the m-port */
25355 #define MAE_MPORT_DESC_MPORT_TYPE_LEN 4
25358 /* enum: Adds metadata and delivers to another m-port */
25364 /* 128-bit value available to drivers for m-port identification. */
25369 /* Big wadge of space reserved for other common properties */
25373 #define MAE_MPORT_DESC_RESERVED_LO_LEN 4
25377 #define MAE_MPORT_DESC_RESERVED_HI_LEN 4
25384 #define MAE_MPORT_DESC_NET_PORT_IDX_LEN 4
25387 /* The m-port delivered to */
25389 #define MAE_MPORT_DESC_ALIAS_DELIVER_MPORT_ID_LEN 4
25392 /* The type of thing that owns the VNIC */
25394 #define MAE_MPORT_DESC_VNIC_CLIENT_TYPE_LEN 4
25400 * of interfaces that we extend as new interface (types) appear. This belongs
25404 #define MAE_MPORT_DESC_VNIC_FUNCTION_INTERFACE_LEN 4
25419 #define MAE_MPORT_DESC_VNIC_PLUGIN_TBD_LEN 4
25426 * Firmware maintains a per-client journal of mport creations and deletions.
25427 * This journal is clear-on-read, i.e. repeated calls of this command will
25437 #define MC_CMD_MAE_MPORT_READ_JOURNAL_IN_LEN 4
25440 #define MC_CMD_MAE_MPORT_READ_JOURNAL_IN_FLAGS_LEN 4
25446 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_LEN(num) (12+1*(num))
25447 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_NUM(len) (((len)-12)/1)
25450 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_FLAGS_LEN 4
25453 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MORE_WIDTH 1
25454 /* The number of MAE_MPORT_DESC structures in MPORT_DESC_DATA. May be zero. */
25455 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_COUNT_OFST 4
25456 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_COUNT_LEN 4
25458 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_SIZEOF_MPORT_DESC_LEN 4
25459 /* Any array of MAE_MPORT_DESC structures. The MAE_MPORT_DESC structure may
25460 * grow in future version of this command. Drivers should use a stride of
25464 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_LEN 1
25470 * describes the location and properties of one N-bit field within a wider
25471 * M-bit key/mask/response value.
25481 /* Lowest (least significant) bit number of the bits of this field. */
25486 /* Width of this field in bits. */
25487 #define TABLE_FIELD_DESCR_WIDTH_OFST 4
25492 * of responses are always reported with the EXACT type.)
25495 #define TABLE_FIELD_DESCR_MASK_TYPE_LEN 1
25502 /* enum: Whole field match: mask must be all 1 bits, or all 0 bits. */
25504 /* enum: Longest prefix match: mask must be 1 bit(s) followed by 0 bit(s). */
25512 #define TABLE_FIELD_DESCR_SCHEME_LEN 1
25519 * Return the list of tables which may be accessed via this table API.
25527 #define MC_CMD_TABLE_LIST_IN_LEN 4
25528 /* Index of the first item to be returned in the TABLE_ID sequence. (Set to 0
25533 #define MC_CMD_TABLE_LIST_IN_FIRST_TABLE_ID_INDEX_LEN 4
25536 #define MC_CMD_TABLE_LIST_OUT_LENMIN 4
25539 #define MC_CMD_TABLE_LIST_OUT_LEN(num) (4+4*(num))
25540 #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_NUM(len) (((len)-4)/4)
25541 /* The total number of tables. */
25543 #define MC_CMD_TABLE_LIST_OUT_N_TABLES_LEN 4
25544 /* A sequence of table identifiers. If all N_TABLES items do not fit, further
25545 * items can be obtained by repeating the call with a non-zero
25548 #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_OFST 4
25549 #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_LEN 4
25560 * properties of the table and the format of the key and response. May return
25572 #define MC_CMD_TABLE_DESCRIPTOR_IN_TABLE_ID_LEN 4
25575 /* Index of the first item to be returned in the FIELDS sequence. (Set to 0 for
25579 #define MC_CMD_TABLE_DESCRIPTOR_IN_FIRST_FIELDS_INDEX_OFST 4
25580 #define MC_CMD_TABLE_DESCRIPTOR_IN_FIRST_FIELDS_INDEX_LEN 4
25587 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_NUM(len) (((len)-20)/8)
25588 /* Maximum number of entries in this table. */
25590 #define MC_CMD_TABLE_DESCRIPTOR_OUT_MAX_ENTRIES_LEN 4
25591 /* The type of table. (This is really just informational; the important
25592 * properties of a table that affect programming can be deduced from other
25595 #define MC_CMD_TABLE_DESCRIPTOR_OUT_TYPE_OFST 4
25608 /* enum: STCAM (semi-TCAM) table: like a TCAM but entries shared a limited
25609 * number of unique masks.
25612 /* Width of key (and corresponding mask, for TCAM or STCAM) in bits. */
25615 /* Width of response in bits. */
25618 /* The total number of fields in the key. */
25621 /* The total number of fields in the response. */
25624 /* Number of priorities for STCAM or TCAM; otherwise 0. The priority of a table
25626 * 0=highest to N_PRIORITIES-1=lowest.
25630 /* Maximum number of masks for STCAM; otherwise 0. */
25635 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FLAGS_LEN 1
25638 #define MC_CMD_TABLE_DESCRIPTOR_OUT_ALLOC_MASKS_WIDTH 1
25639 /* Access scheme version code, allowing the method of accessing table entries
25641 * of this field should assume that it cannot program this table. Currently
25646 #define MC_CMD_TABLE_DESCRIPTOR_OUT_SCHEME_LEN 1
25647 /* A sequence of TABLE_FIELD_DESCR structures: N_KEY_FIELDS items describing
25650 * by repeating the call with a non-zero FIRST_FIELDS_INDEX.
25655 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_LO_LEN 4
25659 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_HI_LEN 4
25662 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_MINNUM 1
25672 * operation is not permitted. In case of an error, the additional MCDI error
25684 #define MC_CMD_TABLE_INSERT_IN_LEN(num) (12+4*(num))
25685 #define MC_CMD_TABLE_INSERT_IN_DATA_NUM(len) (((len)-12)/4)
25688 #define MC_CMD_TABLE_INSERT_IN_TABLE_ID_LEN 4
25691 /* Width in bits of supplied key data (must match table properties). */
25692 #define MC_CMD_TABLE_INSERT_IN_KEY_WIDTH_OFST 4
25694 /* Width in bits of supplied mask data (0 for direct/BCAM tables, or for STCAM
25699 /* Width in bits of supplied response data (for INSERT and UPDATE operations
25705 /* Mask ID for STCAM table - used instead of mask data if the table descriptor
25706 * reports ALLOC_MASKS==1. Otherwise set to 0.
25710 /* Priority for TCAM or STCAM, in range 0..N_PRIORITIES-1, otherwise 0. */
25713 /* (32-bit alignment padding - set to 0) */
25716 /* Sequence of key, mask (if MASK_WIDTH > 0), and response (if RESP_WIDTH > 0)
25717 * data values. Each of these items is logically treated as a single wide N-bit
25720 * N-bit value is padded with 0 bits at the MSB end if necessary to make a
25721 * multiple of 32 bits. The value is then packed into this command as a
25722 * sequence of 32-bit words, bits [31:0] first, then bits [63:32], etc.
25725 #define MC_CMD_TABLE_INSERT_IN_DATA_LEN 4
25726 #define MC_CMD_TABLE_INSERT_IN_DATA_MINNUM 1
25738 * EPERM if the operation is not permitted. In case of an error, the additional
25751 #define MC_CMD_TABLE_DELETE_IN_LEN(num) (12+4*(num))
25752 #define MC_CMD_TABLE_DELETE_IN_DATA_NUM(len) (((len)-12)/4)
25755 #define MC_CMD_TABLE_DELETE_IN_TABLE_ID_LEN 4
25758 /* Width in bits of supplied key data (must match table properties). */
25759 #define MC_CMD_TABLE_DELETE_IN_KEY_WIDTH_OFST 4
25761 /* Width in bits of supplied mask data (0 for direct/BCAM tables, or for STCAM
25766 /* Width in bits of supplied response data (for INSERT and UPDATE operations
25772 /* Mask ID for STCAM table - used instead of mask data if the table descriptor
25773 * reports ALLOC_MASKS==1. Otherwise set to 0.
25777 /* Priority for TCAM or STCAM, in range 0..N_PRIORITIES-1, otherwise 0. */
25780 /* (32-bit alignment padding - set to 0) */
25783 /* Sequence of key, mask (if MASK_WIDTH > 0), and response (if RESP_WIDTH > 0)
25784 * data values. Each of these items is logically treated as a single wide N-bit
25787 * N-bit value is padded with 0 bits at the MSB end if necessary to make a
25788 * multiple of 32 bits. The value is then packed into this command as a
25789 * sequence of 32-bit words, bits [31:0] first, then bits [63:32], etc.
25792 #define MC_CMD_TABLE_DELETE_IN_DATA_LEN 4
25793 #define MC_CMD_TABLE_DELETE_IN_DATA_MINNUM 1
25800 /* MC_CMD_QUEUE_HANDLE structuredef: On X4, to distinguish between full-
25801 * featured (X2-style) VIs and low-latency (X3-style) queues, we use the top
25802 * bits of the queue handle to specify the queue type in all MCDI calls which
25806 #define MC_CMD_QUEUE_HANDLE_LEN 4
25811 #define MC_CMD_QUEUE_HANDLE_QUEUE_HANDLE_LEN 4
25818 /* enum: Indicates that the queue instance is a full-featured VI */
25832 * Allocate low latency (X3-style) queues for current PCI function. Can be
25842 /* The minimum number of TXQs that is acceptable */
25844 #define MC_CMD_ALLOC_LL_QUEUES_IN_MIN_TXQ_COUNT_LEN 4
25845 /* The maximum number of TXQs that would be useful */
25846 #define MC_CMD_ALLOC_LL_QUEUES_IN_MAX_TXQ_COUNT_OFST 4
25847 #define MC_CMD_ALLOC_LL_QUEUES_IN_MAX_TXQ_COUNT_LEN 4
25848 /* The minimum number of RXQs that is acceptable */
25850 #define MC_CMD_ALLOC_LL_QUEUES_IN_MIN_RXQ_COUNT_LEN 4
25851 /* The maximum number of RXQs that would be useful */
25853 #define MC_CMD_ALLOC_LL_QUEUES_IN_MAX_RXQ_COUNT_LEN 4
25854 /* The minimum number of EVQs that is acceptable */
25856 #define MC_CMD_ALLOC_LL_QUEUES_IN_MIN_EVQ_COUNT_LEN 4
25857 /* The maximum number of EVQs that would be useful */
25859 #define MC_CMD_ALLOC_LL_QUEUES_IN_MAX_EVQ_COUNT_LEN 4
25865 #define MC_CMD_ALLOC_LL_QUEUES_OUT_LEN(num) (12+4*(num))
25866 #define MC_CMD_ALLOC_LL_QUEUES_OUT_QUEUES_NUM(len) (((len)-12)/4)
25867 /* The number of TXQs allocated in this request */
25869 #define MC_CMD_ALLOC_LL_QUEUES_OUT_TXQ_COUNT_LEN 4
25870 /* The number of RXQs allocated in this request */
25871 #define MC_CMD_ALLOC_LL_QUEUES_OUT_RXQ_COUNT_OFST 4
25872 #define MC_CMD_ALLOC_LL_QUEUES_OUT_RXQ_COUNT_LEN 4
25873 /* The number of EVQs allocated in this request */
25875 #define MC_CMD_ALLOC_LL_QUEUES_OUT_EVQ_COUNT_LEN 4
25876 /* A list of allocated queues, returned as MC_CMD_QUEUE_HANDLEs, not
25878 * EVQs. The type of each queue is indicated by the top bits (see the
25882 #define MC_CMD_ALLOC_LL_QUEUES_OUT_QUEUES_LEN 4
25883 #define MC_CMD_ALLOC_LL_QUEUES_OUT_QUEUES_MINNUM 1
25890 * Free low latency (X3-style) queues for current PCI function.
25901 #define MC_CMD_FREE_LL_QUEUES_IN_LEN(num) (4+4*(num))
25902 #define MC_CMD_FREE_LL_QUEUES_IN_QUEUES_NUM(len) (((len)-4)/4)
25903 /* The number of queues to free. */
25905 #define MC_CMD_FREE_LL_QUEUES_IN_QUEUE_COUNT_LEN 4
25906 /* A list of queues to free, as a list of MC_CMD_QUEUE_HANDLEs. They must have
25907 * all been previously allocated by MC_CMD_ALLOC_LL_QUEUES. The type of each
25910 #define MC_CMD_FREE_LL_QUEUES_IN_QUEUES_OFST 4
25911 #define MC_CMD_FREE_LL_QUEUES_IN_QUEUES_LEN 4
25912 #define MC_CMD_FREE_LL_QUEUES_IN_QUEUES_MINNUM 1