Lines Matching +full:led +full:- +full:7 +full:seg

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 */
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
68 * 0 7 8 16 20 22 23 24 31
71 * | | \--- Response
72 * | \------- Error
73 * \------------------------------ Resync (always set)
96 #define MCDI_HEADER_CODE_WIDTH 7
97 #define MCDI_HEADER_RESYNC_LBN 7
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
151 * non-existent MCDI command MC_CMD_DEBUG_LOG.
153 * 0 7 8
156 * Since the event is written in big-endian byte order, this works
157 * providing bits 56-63 of the event are 0xc0.
185 #define SIENA_MC_BOOTROM_COPYCODE_VEC (0x800 - 3 * 0x4)
186 #define HUNT_MC_BOOTROM_COPYCODE_VEC (0x8000 - 3 * 0x4)
187 #define MEDFORD_MC_BOOTROM_COPYCODE_VEC (0x10000 - 3 * 0x4)
189 #define SIENA_MC_BOOTROM_NOFLASH_VEC (0x800 - 2 * 0x4)
190 #define HUNT_MC_BOOTROM_NOFLASH_VEC (0x8000 - 2 * 0x4)
191 #define MEDFORD_MC_BOOTROM_NOFLASH_VEC (0x10000 - 2 * 0x4)
193 #define SIENA_MC_BOOTROM_RECOVERY_VEC (0x800 - 2 * 0x4)
194 #define HUNT_MC_BOOTROM_RECOVERY_VEC (0x8000 - 2 * 0x4)
195 #define MEDFORD_MC_BOOTROM_RECOVERY_VEC (0x10000 - 2 * 0x4)
198 #define MEDFORD_MC_BOOTROM_REAL_NOFLASH_VEC (0x10000 - 4 * 0x4)
226 /* This may be ORed with an EVB_PORT_ID_xxx constant to pass a non-default
227 * stack ID (which must be in the range 1-255) along with an EVB port ID.
233 * may be followed by the (0-based) number of the first argument that
240 * specific to Solarflare firmware should use values in the range 0x1000 -
241 * 0x10ff. The range 0x2000 - 0x20ff is reserved for private error codes (see
246 /* enum: Non-existent command target */
268 /* enum: Read-only */
274 /* enum: Non-recursive resource is already acquired */
299 /* enum: V-adaptor not found. */
303 /* enum: V-switch not found. */
311 /* enum: Invalid v-switch type. */
313 /* enum: Invalid v-port type. */
334 * event and then resend its request. This error code is followed by a 32-bit
349 * an operation failed due to lack of SR-IOV privilege. Normally it is
358 * sub-variant switching.
400 /* enum: Legacy mode as described in XN-200039-TC. */
402 /* enum: Switchdev mode as described in XN-200039-TC. */
404 /* enum: Bootstrap mode as described in XN-200039-TC. */
406 /* enum: Link-mode change is in-progress as described in XN-200039-TC. */
424 * an on-NIC ARM module is expected to be connected.
447 * and must never set a non-zero mask value for this field.
478 * lookup. (Values are not arbitrary - constrained by table access ABI.)
554 * matching? TODO: there was a proposal for driver-allocation fields. The
620 * should be treated same as NONE. (Values are not arbitrary - constrained by
641 * from CT counter 42. Generation counts are also type-specific. This value is
645 /* enum: Action Rule counters - can be referenced in AR response. */
647 /* enum: Conntrack counters - can be referenced in CT response. */
649 /* enum: Outer Rule counters - can be referenced in OR response. */
652 /* TABLE_ID enum: Unique IDs for tables. The 32-bit ID values have been
655 * [15:8] a unique ID within the block, and [7:0] reserved for future
658 * all supported - MC_CMD_TABLE_LIST returns the list of actually supported
661 /* enum: Outer_Rule_Table in the MAE - refer to SF-123102-TC. */
663 /* enum: Outer_Rule_No_CT_Table in the MAE - refer to SF-123102-TC. */
665 /* enum: Mgmt_Filter_Table in the MAE - refer to SF-123102-TC. */
667 /* enum: Conntrack_Table in the MAE - refer to SF-123102-TC. */
669 /* enum: Action_Rule_Table in the MAE - refer to SF-123102-TC. */
671 /* enum: Mgroup_Default_Action_Set_Table in the MAE - refer to SF-123102-TC. */
673 /* enum: Encap_Hdr_Part1_Table in the MAE - refer to SF-123102-TC. */
675 /* enum: Encap_Hdr_Part2_Table in the MAE - refer to SF-123102-TC. */
677 /* enum: Replace_Src_MAC_Table in the MAE - refer to SF-123102-TC. */
679 /* enum: Replace_Dst_MAC_Table in the MAE - refer to SF-123102-TC. */
681 /* enum: Dst_Mport_VC_Table in the MAE - refer to SF-123102-TC. */
683 /* enum: LACP_LAG_Config_Table in the MAE - refer to SF-123102-TC. */
685 /* enum: LACP_Balance_Table in the MAE - refer to SF-123102-TC. */
687 /* enum: Dst_Mport_Host_Chan_Table in the MAE - refer to SF-123102-TC. */
689 /* enum: VNIC_Rx_Encap_Table in VNIC Rx - refer to SF-123102-TC. */
691 /* enum: Steering_Table in VNIC Rx - refer to SF-123102-TC. */
693 /* enum: RSS_Context_Table in VNIC Rx - refer to SF-123102-TC. */
695 /* enum: Indirection_Table in VNIC Rx - refer to SF-123102-TC. */
741 * corresponding table definitions in SF-123102-TC; however, the mapping should
753 /* enum: Source m-port (a full m-port label). */
755 /* enum: Destination m-port (a full m-port label). */
757 /* enum: Source m-group ID. */
759 /* enum: Physical network port ID (or m-port ID; same thing, for physical
774 /* enum: Counter ID associated with a response. All-bits-1 is a null value to
784 * 48-bit value for this field is in network order, i.e. a MAC address of
785 * AA:BB:CC:DD:EE:FF becomes a 48-bit value of 0xAABBCCDDEEFF.
794 /* enum: Outer VLAN ID (least significant 12 bits of full 16-bit TCI) only. */
800 /* enum: Inner VLAN ID (least significant 12 bits of full 16-bit TCI) only. */
805 * frame to the 128-bit value for this field is in network order, with IPv4
813 /* enum: IPv4 Type-of-Service or IPv6 Traffic Class field. */
851 /* enum: True if only/inner frame has an IP Time-To-Live of <= 1. (Note: the
853 * with TTL=0 - which we shouldn't be seeing! - as well.)
876 /* enum: Construction mode for encap_tunnel_id - see MAE_CT_VNI_MODE enum. */
891 /* enum: Encapsulation type - see MAE_MCDI_ENCAP_TYPE enum. */
903 * byte mapped to a 32-bit value in network order, i.e. the IPv4 address
917 /* enum: True to suppress delivery when source and destination m-ports match.
930 /* enum: True to decrement IP Time-To-Live. */
957 /* enum: True to override the reported source m-port for host deliveries. */
976 /* enum: 64-byte chunk of added encapsulation header. */
978 /* enum: 32-byte chunk of added encapsulation header. */
980 /* enum: 16-byte chunk of added encapsulation header. */
982 /* enum: 8-byte chunk of added encapsulation header. */
984 /* enum: 4-byte chunk of added encapsulation header. */
986 /* enum: 2-byte chunk of added encapsulation header. */
996 * encapsulated packet to a LAG m-port.
1008 /* enum: Next action set payload ID for replay. The null value is all-1-bits.
1011 /* enum: Next action set row ID for replay. The null value is all-1-bits. */
1014 * null value is all-1-bits.
1018 * value is all-1-bits.
1021 /* enum: True to include layer 4 in LACP hash on delivery to a LAG m-port. */
1029 /* enum: UDP port to match for UDP-based encapsulations; required to be 0 for
1046 * false to bitwise-OR the USER_MARK into it.
1050 * false to bitwise-OR the USER_FLAG into it.
1059 /* enum: Key mode for IPv4 TCP packets - see TABLE_RSS_KEY_MODE enum. */
1061 /* enum: Key mode for IPv6 TCP packets - see TABLE_RSS_KEY_MODE enum. */
1063 /* enum: Key mode for IPv4 UDP packets - see TABLE_RSS_KEY_MODE enum. */
1065 /* enum: Key mode for IPv6 UDP packets - see TABLE_RSS_KEY_MODE enum. */
1067 /* enum: Key mode for other IPv4 packets - see TABLE_RSS_KEY_MODE enum. */
1069 /* enum: Key mode for other IPv6 packets - see TABLE_RSS_KEY_MODE enum. */
1071 /* enum: Spreading mode - 0=>indirection; 1=>even. */
1075 * spread across (only values 1-255 are valid for this mode).
1167 /* enum: Descriptor loader reported failure. Specific to EF10-family NICs. */
1170 * EF10-family NICs
1173 /* enum: Overlength packet. Specific to EF10-family NICs. */
1175 /* enum: Malformed option descriptor. Specific to EF10-family NICs. */
1177 /* enum: Option descriptor part way through a packet. Specific to EF10-family
1181 /* enum: DMA or PIO data access error. Specific to EF10-family NICs */
1206 /* enum: AOE failed to load - no valid image? */
1214 /* enum: Generic AOE fault - likely to have been reported via other means too
1244 /* enum: FPGA boot-flash contains an invalid image header */
1316 /* enum: MUM failed to load - no valid image? */
1480 * MC_CMD_DESC_PROXY_FUNC_CONFIG_COMMIT and SF-122927-TC for details.
1485 * SF-122927-TC for details.
1494 * SF-122927-TC for details.
1582 /* For CODE_PTP_TIME events, bits 19-26 of the minor value of the PTP clock */
1600 /* For CODE_PTP_TIME events where report sync status is enabled, bits 21-26 of
1619 * should resend it. A non-zero value means that the authorization has been
1718 /* enum: Port id config to map MC-FC port idx */
1772 * such that bits 32-63 containing | event code, level, source etc remain the
1780 #define FCDI_EXTENDED_EVENT_PPS_TIMESTAMPS_NUM(len) (((len)-8)/8)
1915 * Read multiple 32byte words from MC memory. Note - this command really
1936 #define MC_CMD_READ32_OUT_BUFFER_NUM(len) (((len)-0)/4)
1958 #define MC_CMD_WRITE32_IN_BUFFER_NUM(len) (((len)-4)/4)
1973 * Copy MC code between two locations and jump. Note - this command really
2038 * Select function for function-specific commands.
2111 /* enum: A system-level assertion has failed. */
2113 /* enum: A thread-level assertion has failed. */
2145 /* enum: A system-level assertion has failed. */
2147 /* enum: A thread-level assertion has failed. */
2183 /* enum: A system-level assertion has failed. */
2185 /* enum: A thread-level assertion has failed. */
2211 /* MC firmware unique build ID (as binary SHA-1 value) */
2239 /* MC firmware extra version info (as null-terminated US-ASCII string) */
2242 /* MC firmware build name (as null-terminated US-ASCII string) */
2406 #define MC_CMD_GET_VERSION_V2_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7
2426 /* MC firmware unique build ID (as binary SHA-1 value) */
2432 /* MC firmware build name (as null-terminated US-ASCII string) */
2435 /* The SUC firmware version as four numbers - a.b.c.d */
2439 /* SUC firmware build date (as 64-bit Unix timestamp) */
2451 * indicates family, memory sizes etc. See SF-116728-SW for further details.
2455 /* The CMC firmware version as four numbers - a.b.c.d */
2459 /* CMC firmware build date (as 64-bit Unix timestamp) */
2473 * => B, ...) FPGA_VERSION[2]: Sub-revision number
2478 /* Extra FPGA revision information (as null-terminated US-ASCII string) */
2481 /* Board name / adapter model (as null-terminated US-ASCII string) */
2487 /* Board serial number (as null-terminated US-ASCII string) */
2545 #define MC_CMD_GET_VERSION_V3_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7
2565 /* MC firmware unique build ID (as binary SHA-1 value) */
2571 /* MC firmware build name (as null-terminated US-ASCII string) */
2574 /* The SUC firmware version as four numbers - a.b.c.d */
2578 /* SUC firmware build date (as 64-bit Unix timestamp) */
2590 * indicates family, memory sizes etc. See SF-116728-SW for further details.
2594 /* The CMC firmware version as four numbers - a.b.c.d */
2598 /* CMC firmware build date (as 64-bit Unix timestamp) */
2612 * => B, ...) FPGA_VERSION[2]: Sub-revision number
2617 /* Extra FPGA revision information (as null-terminated US-ASCII string) */
2620 /* Board name / adapter model (as null-terminated US-ASCII string) */
2626 /* Board serial number (as null-terminated US-ASCII string) */
2629 /* The version of the datapath hardware design as three number - a.b.c */
2634 * number - a.b.c
2691 #define MC_CMD_GET_VERSION_V4_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7
2711 /* MC firmware unique build ID (as binary SHA-1 value) */
2717 /* MC firmware build name (as null-terminated US-ASCII string) */
2720 /* The SUC firmware version as four numbers - a.b.c.d */
2724 /* SUC firmware build date (as 64-bit Unix timestamp) */
2736 * indicates family, memory sizes etc. See SF-116728-SW for further details.
2740 /* The CMC firmware version as four numbers - a.b.c.d */
2744 /* CMC firmware build date (as 64-bit Unix timestamp) */
2758 * => B, ...) FPGA_VERSION[2]: Sub-revision number
2763 /* Extra FPGA revision information (as null-terminated US-ASCII string) */
2766 /* Board name / adapter model (as null-terminated US-ASCII string) */
2772 /* Board serial number (as null-terminated US-ASCII string) */
2775 /* The version of the datapath hardware design as three number - a.b.c */
2780 * number - a.b.c
2785 /* The SOC boot version as four numbers - a.b.c.d */
2789 /* The SOC uboot version as four numbers - a.b.c.d */
2793 /* The SOC main rootfs version as four numbers - a.b.c.d */
2797 /* The SOC recovery buildroot version as four numbers - a.b.c.d */
2853 #define MC_CMD_GET_VERSION_V5_OUT_SOC_BOOT_VERSION_PRESENT_LBN 7
2873 /* MC firmware unique build ID (as binary SHA-1 value) */
2879 /* MC firmware build name (as null-terminated US-ASCII string) */
2882 /* The SUC firmware version as four numbers - a.b.c.d */
2886 /* SUC firmware build date (as 64-bit Unix timestamp) */
2898 * indicates family, memory sizes etc. See SF-116728-SW for further details.
2902 /* The CMC firmware version as four numbers - a.b.c.d */
2906 /* CMC firmware build date (as 64-bit Unix timestamp) */
2920 * => B, ...) FPGA_VERSION[2]: Sub-revision number
2925 /* Extra FPGA revision information (as null-terminated US-ASCII string) */
2928 /* Board name / adapter model (as null-terminated US-ASCII string) */
2934 /* Board serial number (as null-terminated US-ASCII string) */
2937 /* The version of the datapath hardware design as three number - a.b.c */
2942 * number - a.b.c
2947 /* The SOC boot version as four numbers - a.b.c.d */
2951 /* The SOC uboot version as four numbers - a.b.c.d */
2955 /* The SOC main rootfs version as four numbers - a.b.c.d */
2959 /* The SOC recovery buildroot version as four numbers - a.b.c.d */
2963 /* Board version as four numbers - a.b.c.d. BOARD_VERSION[0] duplicates the
2969 /* Bundle version as four numbers - a.b.c.d */
3046 /* enum: Get the clock attributes. NOTE- extended version of
3087 /* enum: PTP, version 1, with VLAN headers - deprecated */
3091 /* enum: PTP, version 2, with VLAN headers - deprecated */
3110 #define MC_CMD_PTP_IN_TRANSMIT_PACKET_NUM(len) (((len)-12)/1)
3296 #define MC_CMD_PTP_IN_FPGAWRITE_BUFFER_NUM(len) (((len)-12)/1)
3526 /* NIC - Host System Clock Synchronization status */
3656 #define MC_CMD_PTP_OUT_SYNCHRONIZE_TIMESET_NUM(len) (((len)-0)/20)
3741 #define MC_CMD_PTP_OUT_FPGAREAD_BUFFER_NUM(len) (((len)-0)/1)
3753 * be assumed. Note this enum is deprecated. Do not add to it- use the
3762 /* enum: Major register has units of seconds, minor 2^-27s per tick */
3778 /* enum: Major register has units of seconds, minor 2^-27s per tick */
3827 /* enum: Major register has units of seconds, minor 2^-27s per tick */
3865 * response is not supported a value of -0.1 ns should be assumed, which is
3866 * equivalent to a -10% adjustment.
3924 /* Uncorrected error on non-PTP transmit timestamps in NIC clock format */
3927 /* Uncorrected error on non-PTP receive timestamps in NIC clock format */
3967 #define MC_CMD_CSR_READ32_OUT_BUFFER_NUM(len) (((len)-0)/4)
3990 #define MC_CMD_CSR_WRITE32_IN_BUFFER_NUM(len) (((len)-8)/4)
4020 /* HP OCSD sub-command. When address is not NULL, request activation of OCSD at
4028 /* enum: OCSD (Option Card Sensor Data) sub-command. */
4030 /* enum: Last known valid HP sub-command. */
4032 /* The address to the array of sensor fields. (Or NULL to use a sub-command.)
4044 /* The requested update interval, in seconds. (Or the sub-command if ADDR is
4079 #define MC_CMD_STACKINFO_OUT_THREAD_INFO_NUM(len) (((len)-0)/12)
4198 #define MC_CMD_DBI_WRITE_IN_DBIWROP_NUM(len) (((len)-0)/12)
4238 * Read a 32-bit register from the indirect port register map. The port to
4261 * Write a 32-bit register to the indirect port register map. The port to
4284 * Read a 128-bit register from the indirect port register map. The port to
4307 * Write a 128-bit register to the indirect port register map. The port to
4350 #define MC_CMD_CAPABILITIES_RESERVED_LBN 7
4371 #define MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_NUM(len) (((len)-72)/2)
4416 /* Siena only. This field contains a 16-bit value for each of the types of
4431 * Read DBI register(s) -- extended functionality
4443 #define MC_CMD_DBI_READX_IN_DBIRDOP_NUM(len) (((len)-0)/8)
4464 #define MC_CMD_DBI_READX_OUT_VALUE_NUM(len) (((len)-0)/4)
4495 * Set the 16byte seed for the MC pseudo-random generator.
4526 #define MC_CMD_LTSSM_HIST_OUT_DATA_NUM(len) (((len)-0)/4)
4527 /* variable number of LTSSM values, as bytes. The history is read-to-clear. */
4605 /* enum: Prefer to use "l3xudp" custom datapath firmware (see SF-119495-PD and
4612 * (i.e. non-production) builds.
4615 /* enum: Only this option is allowed for non-admin functions */
4676 /* enum: Prefer to use "l3xudp" custom datapath firmware (see SF-119495-PD and
4683 * (i.e. non-production) builds.
4686 /* enum: Only this option is allowed for non-admin functions */
4688 /* Version of the driver to be reported by management protocols (e.g. NC-SI)
4689 * handled by the NIC. This is a zero-terminated ASCII string.
4708 /* enum: Labels the lowest-numbered function visible to the OS */
4727 /* enum: If set, indicates that TX only spreading is enabled. Even-numbered
4728 * TXQs will use one engine, and odd-numbered TXQs will use the other. This
4729 * also has the effect that only even-numbered RXQs will receive traffic.
4752 * Generic per-port reset. There is no equivalent for per-board reset. Locks
4753 * required: None; Return code: 0, ETIME. NOTE: This command is deprecated -
4770 * Generic per-resource reset. There is no equivalent for per-board reset.
4900 #define MC_CMD_PUTS_IN_STRING_NUM(len) (((len)-12)/1)
4985 #define MC_CMD_PHY_CAP_10000FDX_LBN 7
5143 /* enum: Timed-out. */
5170 /* enum: Intra-pair short. */
5172 /* enum: Inter-pair short. */
5231 /* enum: RAM test - walk ones. */
5233 /* enum: RAM test - walk zeros. */
5235 /* enum: RAM test - walking inversions zeros/ones. */
5237 /* enum: RAM test - walking inversions checkerboard. */
5239 /* enum: Register test - set / clear individual bits. */
5300 #define MC_CMD_FLUSH_RX_QUEUES_IN_QID_OFST_NUM(len) (((len)-0)/4)
5370 /* enum: PMA-PMD. */
5372 /* enum: Cross-Port. */
5374 /* enum: XGMII-Wireside. */
5390 /* enum: PMA lanes MAC-Serdes. */
5396 /* enum: PMA lanes MAC-Serdes Wireside. */
5516 /* enum: PMA-PMD. */
5518 /* enum: Cross-Port. */
5520 /* enum: XGMII-Wireside. */
5536 /* enum: PMA lanes MAC-Serdes. */
5542 /* enum: PMA lanes MAC-Serdes Wireside. */
5652 /* AN_TYPE structuredef: Auto-negotiation types defined in IEEE802.3 */
5658 /* enum: Clause 28 - BASE-T */
5660 /* enum: Clause 37 - BASE-X */
5662 /* enum: Clause 73 - BASE-R startup protocol for backplane and copper cable
5663 * assemblies. Includes Clause 72/Clause 92 link-training.
5676 /* enum: Clause 74 BASE-R FEC (a.k.a Firecode) */
5678 /* enum: Clause 91/Clause 108 Reed-Solomon FEC */
5699 /* Near-side advertised capabilities. Refer to
5704 /* Link-partner advertised capabilities. Refer to
5710 * reads non-zero.
5737 #define MC_CMD_GET_LINK_OUT_LINK_FAULT_TX_LBN 7
5767 /* Near-side advertised capabilities. Refer to
5772 /* Link-partner advertised capabilities. Refer to
5778 * reads non-zero.
5805 #define MC_CMD_GET_LINK_OUT_V2_LINK_FAULT_TX_LBN 7
5833 * e.g. plugged-in module). In general, subset of
5836 * to SUPPORTED_CAP for non-pluggable PMDs. Refer to
5841 /* Auto-negotiation type used on the link */
5875 #define MC_CMD_GET_LINK_OUT_V2_FEC_LOCK_LBN 7
5897 /* Near-side advertised capabilities. Refer to
5933 /* Near-side advertised capabilities. Refer to
5967 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_NUMBER_WIDTH 7
5969 #define MC_CMD_SET_LINK_IN_V2_MODULE_SEQ_IGNORE_LBN 7
5978 * Set identification LED state. Locks required: None. Return code: 0, EINVAL
5987 /* Set LED state. */
6201 * and 4. Some could be implementation-specific and fail with ENOTSUP if not
6202 * available (no examples exist right now). See SF-123581-TC section 4.3 for
6265 * statistics are dmad to that (page-aligned location). Locks required: None.
6297 /* enum: PMA-PMD Link Up. */
6299 /* enum: PMA-PMD RX Fault. */
6301 /* enum: PMA-PMD TX Fault. */
6303 /* enum: PMA-PMD Signal */
6305 /* enum: PMA-PMD SNR A. */
6307 /* enum: PMA-PMD SNR B. */
6309 /* enum: PMA-PMD SNR C. */
6311 /* enum: PMA-PMD SNR D. */
6333 /* enum: AN link-up. */
6339 /* enum: Clause 22 Link-Up. */
6352 * DMA_ADDR != 0, then the statistics are dmad to that (page-aligned location).
6521 /* enum: RXDP counter: Number of non-host packets. Valid for EF10 with
6562 * 64-bit word of the DMA buffer (at DMA_LEN - sizeof(uint64_t)). Note that
6564 * the last 64-bit word in the buffer when DMA_LEN == MC_CMD_MAC_NSTATS *
6565 * sizeof(uint64_t). See SF-109306-TC, Section 9.2 for details.
6588 /* enum: Number of uncorrected FEC codewords on link (RS-FEC only for Medford2)
6591 /* enum: Number of corrected FEC codewords on link (RS-FEC only for Medford2)
6594 /* enum: Number of corrected 10-bit symbol errors, lane 0 (RS-FEC only) */
6596 /* enum: Number of corrected 10-bit symbol errors, lane 1 (RS-FEC only) */
6598 /* enum: Number of corrected 10-bit symbol errors, lane 2 (RS-FEC only) */
6600 /* enum: Number of corrected 10-bit symbol errors, lane 3 (RS-FEC only) */
6658 * or not 32-bit aligned
6822 #define MC_CMD_MEMCPY_IN_RECORD_NUM(len) (((len)-0)/32)
6827 #define MC_CMD_MEMCPY_IN_RECORD_MAXNUM 7
7121 #define MC_CMD_NVRAM_INFO_OUT_A_B_LBN 7
7153 #define MC_CMD_NVRAM_INFO_V2_OUT_A_B_LBN 7
7246 * from. This allows it to perform a read-modify-write-verify with the write
7262 /* enum: Read from the non-current (i.e. to be updated) partition of an A/B
7272 #define MC_CMD_NVRAM_READ_OUT_READ_BUFFER_NUM(len) (((len)-0)/1)
7296 #define MC_CMD_NVRAM_WRITE_IN_WRITE_BUFFER_NUM(len) (((len)-12)/1)
7411 * per-partition nvram lock in firmware is only released after the verification
7417 * the field are marked with a prefix 'Internal-error'.
7421 /* enum: Invalid return code; only non-zero values are defined. Defined as
7433 /* enum: Error in message digest calculated over the reflash-header, payload
7434 * and reflash-trailer.
7451 /* enum: The image contains a test-signed certificate, but the adapter accepts
7457 /* enum: Internal-error. The signed image is missing the 'contents' section,
7461 /* enum: Internal-error. The bundle header is invalid. */
7463 /* enum: Internal-error. The bundle does not have a valid reflash image layout.
7466 /* enum: Internal-error. The bundle has an inconsistent layout of components or
7470 /* enum: Internal-error. The bundle manifest is inconsistent with components in
7474 /* enum: Internal-error. The number of components in a bundle do not match the
7478 /* enum: Internal-error. The bundle contains too many components for the MC
7482 /* enum: Internal-error. The bundle manifest has an invalid/inconsistent
7486 /* enum: Internal-error. The hash of a component does not match the hash stored
7490 /* enum: Internal-error. Component hash calculation failed. */
7492 /* enum: Internal-error. The component does not have a valid reflash image
7500 /* enum: The update operation is in-progress. */
7556 #define MC_CMD_SCHEDINFO_OUT_DATA_NUM(len) (((len)-0)/4)
7580 /* enum: Power-on Reset. */
7587 #define MC_CMD_REBOOT_MODE_IN_FAKE_LBN 7
7668 #define MC_CMD_SENSOR_INFO_OUT_MC_CMD_SENSOR_ENTRY_NUM(len) (((len)-4)/8)
7763 /* enum: Port 0 PHY power switch over-current: bool */
7765 /* enum: Port 1 PHY power switch over-current: bool */
7767 /* enum: Mop-up microcontroller reference voltage: mV */
7857 /* enum: Engineering sensor 7 */
7883 #define MC_CMD_SENSOR_INFO_EXT_OUT_MC_CMD_SENSOR_ENTRY_NUM(len) (((len)-4)/8)
8076 * 802.1Qbb control. 8 Tx queues that map to priorities 0 - 7. Use all 1s to
8110 * Add a protocol offload to NIC for lights-out state. Locks required: None.
8123 #define MC_CMD_ADD_LIGHTSOUT_OFFLOAD_IN_DATA_NUM(len) (((len)-4)/4)
8162 * Remove a protocol offload from NIC for lights-out state. Locks required:
8196 * Deliberately trigger an assert-detonation in the firmware for testing
8238 * understand the given workaround number - which should not be treated as a
8240 * workaround, that's between the driver and the mcfw on a per-workaround
8262 * - before adding code that queries this workaround, remember that there's
8277 /* 0 = disable the workaround indicated by TYPE; any non-zero value = enable
8299 * Read media-specific data from PHY (e.g. SFP/SFP+ module ID information for
8302 * output data, are interpreted on a per-type basis. For SFP+, PAGE=0 or 1
8303 * returns a 128-byte block read from module I2C address 0xA0 offset 0 or 0x80.
8304 * For QSFP, PAGE=-1 is the lower (unbanked) page. PAGE=2 is the EEPROM and
8308 * of "0xffff:0xffff" retrieves the lower (unbanked) page. Locks required -
8309 * None. Return code - 0.
8332 #define MC_CMD_GET_PHY_MEDIA_INFO_OUT_DATA_NUM(len) (((len)-4)/1)
8382 /* 0-6 low->high de-emph. */
8385 /* 0-8 low->high ref.V */
8388 /* 0-8 0-8 low->high boost */
8391 /* 0-8 low->high ref.V */
8417 * Adjusts the sensor limits. This is a warranty-voiding operation. Returns:
8432 /* interpretation is is sensor-specific. */
8435 /* interpretation is is sensor-specific. */
8438 /* interpretation is is sensor-specific. */
8441 /* interpretation is is sensor-specific. */
8487 #define MC_CMD_NVRAM_PARTITIONS_OUT_TYPE_ID_NUM(len) (((len)-4)/4)
8520 #define MC_CMD_NVRAM_METADATA_OUT_DESCRIPTION_NUM(len) (((len)-20)/1)
8550 /* Zero-terminated string describing the content of this partition */
8588 * Perform a CLP related operation, see SF-110495-PS for details of CLP
8590 * different manufacturers which are to be found in SF-119187-TC, SF-119186-TC,
8591 * SF-120509-TC and SF-117282-PS.
8630 * restores the permanent (factory-programmed) MAC address associated with the
8631 * port. A non-zero MAC address persists until a PCIe reset or a power cycle.
8647 * restores the permanent (factory-programmed) MAC address associated with the
8648 * port. A non-zero MAC address persists until a PCIe reset or a power cycle.
8782 /* enum: Hittite HMC1035 clock generator for NIC-side on Sorrento board */
8784 /* 32-bit address to read from */
8796 #define MC_CMD_MUM_IN_WRITE_BUFFER_NUM(len) (((len)-12)/4)
8805 /* 32-bit address to write to */
8820 #define MC_CMD_MUM_IN_RAW_CMD_WRITE_DATA_NUM(len) (((len)-16)/1)
8889 /* The first 32-bit word to be written to the GPIO OUT register. */
8892 /* The second 32-bit word to be written to the GPIO OUT register. */
8909 /* The first 32-bit word to be written to the GPIO OUT ENABLE register. */
8912 /* The second 32-bit word to be written to the GPIO OUT ENABLE register. */
8996 /* Bit-mask of clocks to be programmed */
9145 #define MC_CMD_MUM_OUT_RAW_CMD_DATA_NUM(len) (((len)-0)/1)
9158 #define MC_CMD_MUM_OUT_READ_BUFFER_NUM(len) (((len)-0)/4)
9176 /* The first 32-bit word read from the GPIO IN register. */
9179 /* The second 32-bit word read from the GPIO IN register. */
9188 /* The first 32-bit word read from the GPIO OUT register. */
9191 /* The second 32-bit word read from the GPIO OUT register. */
9224 #define MC_CMD_MUM_OUT_READ_SENSORS_DATA_NUM(len) (((len)-0)/4)
9279 #define MC_CMD_MUM_OUT_QSFP_GET_MEDIA_INFO_DATA_NUM(len) (((len)-4)/1)
9306 #define MC_CMD_MUM_OUT_READ_DDR_INFO_SODIMM_INFO_RECORD_NUM(len) (((len)-8)/8)
9355 /* enum: Values 5-15 are reserved for future usage */
9432 /* A human-readable name for the sensor (zero terminated string, max 32 bytes)
9502 * MC_CMD_READ_SENSORS command. On multi-MC systems this may include sensors
9538 #define MC_CMD_DYNAMIC_SENSORS_LIST_OUT_HANDLES_NUM(len) (((len)-8)/4)
9580 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_IN_HANDLES_NUM(len) (((len)-0)/4)
9593 #define MC_CMD_DYNAMIC_SENSORS_GET_DESCRIPTIONS_OUT_SENSORS_NUM(len) (((len)-0)/64)
9629 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_IN_HANDLES_NUM(len) (((len)-0)/4)
9642 #define MC_CMD_DYNAMIC_SENSORS_GET_READINGS_OUT_VALUES_NUM(len) (((len)-0)/12)
9666 #define MC_CMD_EVENT_CTRL_IN_EVENT_TYPE_NUM(len) (((len)-0)/4)
9733 /* the raw 64-bit address field from the SMC, not adjusted for page size */
9782 /* enum: Non-volatile log output partition */
9784 /* enum: Non-volatile log output partition for NMC firmware (this is
9788 /* enum: Non-volatile log output of second core on dual-core device */
9808 /* enum: Non-volatile log output partition for FC */
9832 /* enum: MUM Non-volatile log output partition. */
9834 /* enum: SUC Non-volatile log output partition (this is intentionally an alias
9852 /* enum: Non-volatile log output partition for Expansion ROM (this is
9889 * platforms. See SF-119124-PS. The STATIC_CONFIG partition may contain a
9899 /* enum: Bundle update non-volatile log output partition */
9911 /* enum: System microcontroller access to primary System-on-Chip flash */
9913 /* enum: System microcontroller access to secondary System-on-Chip flash (if
9922 /* enum: System-on-Chip configuration information (see XN-200467-PS). */
9924 /* enum: System-on-Chip update information. */
9932 /* enum: Recovery Flash Partition Table, see SF-122606-TC. (this is
9938 /* enum: Flash Partition Table, see SF-122606-TC. (this is intentionally an
10019 #define LICENSED_FEATURES_TX_SNIFF_LBN 7
10065 #define LICENSED_V3_APPS_NETWORK_ACCESS_CONTROL_LBN 7
10129 #define LICENSED_V3_FEATURES_TX_SNIFF_LBN 7
10179 /* The RSS mode for a particular packet type is a value from 0 - 15 which can
10233 /* Same order as MIPS GDB (r0-r31, sr, lo, hi, bad, cause, 32 x float, fsr,
10256 #define MC_CMD_INIT_EVQ_IN_DMA_ADDR_NUM(len) (((len)-36)/8)
10261 * local queue index. The calling client must be the currently-assigned user of
10270 /* The reload value is ignored in one-shot modes */
10305 /* enum: Hold-off */
10330 /* 64-bit address of 4k of 4k-aligned host memory buffer */
10356 #define MC_CMD_INIT_EVQ_V2_IN_DMA_ADDR_NUM(len) (((len)-36)/8)
10361 * local queue index. The calling client must be the currently-assigned user of
10370 /* The reload value is ignored in one-shot modes */
10398 #define MC_CMD_INIT_EVQ_V2_IN_FLAG_TYPE_LBN 7
10403 * over-ridden by firmware based on licenses and firmware variant in order to
10409 * over-ridden by firmware based on licenses and firmware variant in order to
10414 /* enum: MEDFORD only. Certain initialisation flags may be over-ridden by
10430 /* enum: Hold-off */
10455 /* 64-bit address of 4k of 4k-aligned host memory buffer */
10491 /* MC_CMD_INIT_EVQ_V3_IN msgrequest: Extended request to specify per-queue
10499 * local queue index. The calling client must be the currently-assigned user of
10508 /* The reload value is ignored in one-shot modes */
10536 #define MC_CMD_INIT_EVQ_V3_IN_FLAG_TYPE_LBN 7
10541 * over-ridden by firmware based on licenses and firmware variant in order to
10547 * over-ridden by firmware based on licenses and firmware variant in order to
10552 /* enum: MEDFORD only. Certain initialisation flags may be over-ridden by
10568 /* enum: Hold-off */
10593 /* 64-bit address of 4k of 4k-aligned host memory buffer */
10609 * value. This field is ignored and per-queue merging is disabled if
10616 * value. This field is ignored and per-queue merging is disabled if
10681 #define MC_CMD_INIT_RXQ_IN_DMA_ADDR_NUM(len) (((len)-28)/8)
10693 * local queue index. The calling client must be the currently-assigned user of
10714 #define MC_CMD_INIT_RXQ_IN_FLAG_CHAIN_LBN 7
10728 /* The port ID associated with the v-adaptor which should contain this DMAQ. */
10731 /* 64-bit address of 4k of 4k-aligned host memory buffer */
10765 * local queue index. The calling client must be the currently-assigned user of
10786 #define MC_CMD_INIT_RXQ_EXT_IN_FLAG_CHAIN_LBN 7
10803 * multiple fixed-size packet buffers within each bucket. For a full
10804 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath
10833 /* The port ID associated with the v-adaptor which should contain this DMAQ. */
10836 /* 64-bit address of 4k of 4k-aligned host memory buffer */
10871 * local queue index. The calling client must be the currently-assigned user of
10892 #define MC_CMD_INIT_RXQ_V3_IN_FLAG_CHAIN_LBN 7
10909 * multiple fixed-size packet buffers within each bucket. For a full
10910 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath
10939 /* The port ID associated with the v-adaptor which should contain this DMAQ. */
10942 /* 64-bit address of 4k of 4k-aligned host memory buffer */
11006 * local queue index. The calling client must be the currently-assigned user of
11027 #define MC_CMD_INIT_RXQ_V4_IN_FLAG_CHAIN_LBN 7
11044 * multiple fixed-size packet buffers within each bucket. For a full
11045 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath
11074 /* The port ID associated with the v-adaptor which should contain this DMAQ. */
11077 /* 64-bit address of 4k of 4k-aligned host memory buffer */
11125 * to zero if using this message on non-QDMA based platforms. Currently in
11154 * local queue index. The calling client must be the currently-assigned user of
11175 #define MC_CMD_INIT_RXQ_V5_IN_FLAG_CHAIN_LBN 7
11192 * multiple fixed-size packet buffers within each bucket. For a full
11193 * description see SF-119419-TC. This mode is only supported by "dpdk" datapath
11222 /* The port ID associated with the v-adaptor which should contain this DMAQ. */
11225 /* 64-bit address of 4k of 4k-aligned host memory buffer */
11273 * to zero if using this message on non-QDMA based platforms. Currently in
11321 #define MC_CMD_INIT_TXQ_IN_DMA_ADDR_NUM(len) (((len)-28)/8)
11334 * local queue index. The calling client must be the currently-assigned user of
11372 /* The port ID associated with the v-adaptor which should contain this DMAQ. */
11375 /* 64-bit address of 4k of 4k-aligned host memory buffer */
11406 * local queue index. The calling client must be the currently-assigned user of
11462 /* The port ID associated with the v-adaptor which should contain this DMAQ. */
11465 /* 64-bit address of 4k of 4k-aligned host memory buffer */
11569 /* Bits 0 - 63 of event */
11883 #define MC_CMD_PROGRAM_BUFTBL_ENTRIES_IN_ENTRY_NUM(len) (((len)-12)/8)
11942 /* enum: single-recipient filter insert */
11944 /* enum: single-recipient filter remove */
11946 /* enum: multi-recipient filter subscribe */
11948 /* enum: multi-recipient filter unsubscribe */
11950 /* enum: replace one recipient with another (warning - the filter handle may
11965 /* The port ID associated with the v-adaptor which should contain this filter.
11994 #define MC_CMD_FILTER_OP_IN_MATCH_INNER_VLAN_LBN 7
12130 /* The port ID associated with the v-adaptor which should contain this filter.
12159 #define MC_CMD_FILTER_OP_EXT_IN_MATCH_INNER_VLAN_LBN 7
12418 /* The port ID associated with the v-adaptor which should contain this filter.
12447 #define MC_CMD_FILTER_OP_V3_IN_MATCH_INNER_VLAN_LBN 7
12709 * functionality of this field in an ABI-backwards-compatible manner, and
12714 * Firmware Driver Interface (SF-119419-TC). Requesting anything other than
12792 * Get information related to the parser-dispatcher subsystem
12810 /* enum: read properties relating to security rules (Medford-only; for use by
12811 * SolarSecure apps, not directly by drivers. See SF-114946-SW.)
12831 #define MC_CMD_GET_PARSER_DISP_INFO_OUT_SUPPORTED_MATCHES_NUM(len) (((len)-8)/4)
12873 #define MC_CMD_GET_PARSER_DISP_VNIC_ENCAP_MATCHES_OUT_SUPPORTED_MATCHES_NUM(len) (((len)-8)/4)
12918 * Direct read/write of parser-dispatcher state (DICPUs and LUE) for debugging.
12962 /* enum: Read-modify-write a word of DICPU DMEM (not valid for LUE). Not
12977 /* XOR value (for DMEM read-modify-writes: new = (old & mask) ^ value) */
12980 /* AND mask (for DMEM read-modify-writes: new = (old & mask) ^ value) */
12998 /* up to 8 32-bit words of additional soft state from the LUE manager (the
12999 * exact content is firmware-dependent and intended only for debug use)
13063 * sense - e.g. virtio-blk), in which case the return value is NULL_PORT.
13108 /* MC_CMD_ALLOC_VIS_OUT msgresponse: Huntington-compatible VI_ALLOC request.
13484 * GRP_FUNC_DMA privilege and must be the currently-assigned user of this VI or
13525 * GRP_FUNC_DMA privilege and must be the currently-assigned user of this VI or
13726 * 2) PHASE_IMEMS for each of the IMEM targets (target IDs 0-11). Each download
13728 * be a checksum (a simple 32-bit sum) of the transferred data. An individual
13731 * 3) PHASE_VECTORS for each of the vector table targets (target IDs 12-15),
13743 #define MC_CMD_SATELLITE_DOWNLOAD_IN_CHUNK_DATA_NUM(len) (((len)-16)/4)
13869 #define MC_CMD_GET_CAPABILITIES_OUT_DRV_ATTACH_PREBOOT_LBN 7
13970 /* enum: RXDP Test firmware image 7 */
14007 /* enum: reserved value - do not use (may indicate alternative interpretation
14018 /* enum: RX PD firmware with approximately Siena-compatible behaviour
14040 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
14058 /* enum: reserved value - do not use (may indicate alternative interpretation
14069 /* enum: TX PD firmware with approximately Siena-compatible behaviour
14088 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
14122 #define MC_CMD_GET_CAPABILITIES_V2_OUT_DRV_ATTACH_PREBOOT_LBN 7
14223 /* enum: RXDP Test firmware image 7 */
14260 /* enum: reserved value - do not use (may indicate alternative interpretation
14271 /* enum: RX PD firmware with approximately Siena-compatible behaviour
14293 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
14311 /* enum: reserved value - do not use (may indicate alternative interpretation
14322 /* enum: TX PD firmware with approximately Siena-compatible behaviour
14341 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
14378 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7
14381 #define MC_CMD_GET_CAPABILITIES_V2_OUT_INIT_EVQ_V2_LBN 7
14532 #define MC_CMD_GET_CAPABILITIES_V3_OUT_DRV_ATTACH_PREBOOT_LBN 7
14633 /* enum: RXDP Test firmware image 7 */
14670 /* enum: reserved value - do not use (may indicate alternative interpretation
14681 /* enum: RX PD firmware with approximately Siena-compatible behaviour
14703 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
14721 /* enum: reserved value - do not use (may indicate alternative interpretation
14732 /* enum: TX PD firmware with approximately Siena-compatible behaviour
14751 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
14788 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7
14791 #define MC_CMD_GET_CAPABILITIES_V3_OUT_INIT_EVQ_V2_LBN 7
14925 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
14939 * (SF-115995-SW) in the present configuration of firmware and port mode.
14944 * (SF-115995-SW) in the present configuration of firmware and port mode.
14967 #define MC_CMD_GET_CAPABILITIES_V4_OUT_DRV_ATTACH_PREBOOT_LBN 7
15068 /* enum: RXDP Test firmware image 7 */
15105 /* enum: reserved value - do not use (may indicate alternative interpretation
15116 /* enum: RX PD firmware with approximately Siena-compatible behaviour
15138 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
15156 /* enum: reserved value - do not use (may indicate alternative interpretation
15167 /* enum: TX PD firmware with approximately Siena-compatible behaviour
15186 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
15223 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7
15226 #define MC_CMD_GET_CAPABILITIES_V4_OUT_INIT_EVQ_V2_LBN 7
15360 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
15374 * (SF-115995-SW) in the present configuration of firmware and port mode.
15379 * (SF-115995-SW) in the present configuration of firmware and port mode.
15385 * hold at least this many 64-bit stats values, if they wish to receive all
15410 #define MC_CMD_GET_CAPABILITIES_V5_OUT_DRV_ATTACH_PREBOOT_LBN 7
15511 /* enum: RXDP Test firmware image 7 */
15548 /* enum: reserved value - do not use (may indicate alternative interpretation
15559 /* enum: RX PD firmware with approximately Siena-compatible behaviour
15581 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
15599 /* enum: reserved value - do not use (may indicate alternative interpretation
15610 /* enum: TX PD firmware with approximately Siena-compatible behaviour
15629 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
15666 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7
15669 #define MC_CMD_GET_CAPABILITIES_V5_OUT_INIT_EVQ_V2_LBN 7
15803 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
15817 * (SF-115995-SW) in the present configuration of firmware and port mode.
15822 * (SF-115995-SW) in the present configuration of firmware and port mode.
15828 * hold at least this many 64-bit stats values, if they wish to receive all
15835 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set.
15858 #define MC_CMD_GET_CAPABILITIES_V6_OUT_DRV_ATTACH_PREBOOT_LBN 7
15959 /* enum: RXDP Test firmware image 7 */
15996 /* enum: reserved value - do not use (may indicate alternative interpretation
16007 /* enum: RX PD firmware with approximately Siena-compatible behaviour
16029 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
16047 /* enum: reserved value - do not use (may indicate alternative interpretation
16058 /* enum: TX PD firmware with approximately Siena-compatible behaviour
16077 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
16114 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7
16117 #define MC_CMD_GET_CAPABILITIES_V6_OUT_INIT_EVQ_V2_LBN 7
16251 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
16265 * (SF-115995-SW) in the present configuration of firmware and port mode.
16270 * (SF-115995-SW) in the present configuration of firmware and port mode.
16276 * hold at least this many 64-bit stats values, if they wish to receive all
16283 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set.
16317 #define MC_CMD_GET_CAPABILITIES_V7_OUT_DRV_ATTACH_PREBOOT_LBN 7
16418 /* enum: RXDP Test firmware image 7 */
16455 /* enum: reserved value - do not use (may indicate alternative interpretation
16466 /* enum: RX PD firmware with approximately Siena-compatible behaviour
16488 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
16506 /* enum: reserved value - do not use (may indicate alternative interpretation
16517 /* enum: TX PD firmware with approximately Siena-compatible behaviour
16536 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
16573 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7
16576 #define MC_CMD_GET_CAPABILITIES_V7_OUT_INIT_EVQ_V2_LBN 7
16710 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
16724 * (SF-115995-SW) in the present configuration of firmware and port mode.
16729 * (SF-115995-SW) in the present configuration of firmware and port mode.
16735 * hold at least this many 64-bit stats values, if they wish to receive all
16742 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set.
16782 #define MC_CMD_GET_CAPABILITIES_V7_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7
16821 #define MC_CMD_GET_CAPABILITIES_V8_OUT_DRV_ATTACH_PREBOOT_LBN 7
16922 /* enum: RXDP Test firmware image 7 */
16959 /* enum: reserved value - do not use (may indicate alternative interpretation
16970 /* enum: RX PD firmware with approximately Siena-compatible behaviour
16992 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
17010 /* enum: reserved value - do not use (may indicate alternative interpretation
17021 /* enum: TX PD firmware with approximately Siena-compatible behaviour
17040 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
17077 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7
17080 #define MC_CMD_GET_CAPABILITIES_V8_OUT_INIT_EVQ_V2_LBN 7
17214 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
17228 * (SF-115995-SW) in the present configuration of firmware and port mode.
17233 * (SF-115995-SW) in the present configuration of firmware and port mode.
17239 * hold at least this many 64-bit stats values, if they wish to receive all
17246 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set.
17286 #define MC_CMD_GET_CAPABILITIES_V8_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7
17306 /* These bits are reserved for communicating test-specific capabilities to
17307 * host-side test software. All production drivers should treat this field as
17339 #define MC_CMD_GET_CAPABILITIES_V9_OUT_DRV_ATTACH_PREBOOT_LBN 7
17440 /* enum: RXDP Test firmware image 7 */
17477 /* enum: reserved value - do not use (may indicate alternative interpretation
17488 /* enum: RX PD firmware with approximately Siena-compatible behaviour
17510 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
17528 /* enum: reserved value - do not use (may indicate alternative interpretation
17539 /* enum: TX PD firmware with approximately Siena-compatible behaviour
17558 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
17595 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7
17598 #define MC_CMD_GET_CAPABILITIES_V9_OUT_INIT_EVQ_V2_LBN 7
17732 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
17746 * (SF-115995-SW) in the present configuration of firmware and port mode.
17751 * (SF-115995-SW) in the present configuration of firmware and port mode.
17757 * hold at least this many 64-bit stats values, if they wish to receive all
17764 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set.
17804 #define MC_CMD_GET_CAPABILITIES_V9_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7
17824 /* These bits are reserved for communicating test-specific capabilities to
17825 * host-side test software. All production drivers should treat this field as
17856 /* The maximum number of queues that can be used by an RSS context in even-
17857 * spreading mode. In even-spreading mode the context has no indirection table
17892 #define MC_CMD_GET_CAPABILITIES_V10_OUT_DRV_ATTACH_PREBOOT_LBN 7
17993 /* enum: RXDP Test firmware image 7 */
18030 /* enum: reserved value - do not use (may indicate alternative interpretation
18041 /* enum: RX PD firmware with approximately Siena-compatible behaviour
18063 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
18081 /* enum: reserved value - do not use (may indicate alternative interpretation
18092 /* enum: TX PD firmware with approximately Siena-compatible behaviour
18111 /* enum: Custom firmware variant (see SF-119495-PD and bug69716) */
18148 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_TYPE_SUPPORTED_LBN 7
18151 #define MC_CMD_GET_CAPABILITIES_V10_OUT_INIT_EVQ_V2_LBN 7
18285 * discover the VI to address mapping. Cut-through PIO (CTPIO) is not available
18299 * (SF-115995-SW) in the present configuration of firmware and port mode.
18304 * (SF-115995-SW) in the present configuration of firmware and port mode.
18310 * hold at least this many 64-bit stats values, if they wish to receive all
18317 * will only be non-zero if MC_CMD_GET_CAPABILITIES/FILTER_ACTION_MARK is set.
18357 #define MC_CMD_GET_CAPABILITIES_V10_OUT_UNSOL_EV_CREDIT_SUPPORTED_LBN 7
18377 /* These bits are reserved for communicating test-specific capabilities to
18378 * host-side test software. All production drivers should treat this field as
18409 /* The maximum number of queues that can be used by an RSS context in even-
18410 * spreading mode. In even-spreading mode the context has no indirection table
18678 * allocate and initialise a v-switch.
18687 /* The port to connect to the v-switch's upstream port. */
18690 /* The type of v-switch to create. */
18703 /* Flags controlling v-port creation */
18709 /* The number of VLAN tags to allow for attached v-ports. For VLAN aggregators,
18710 * this must be one or greated, and the attached v-ports must have exactly this
18711 * number of tags. For other v-switch types, this must be zero of greater, and
18712 * is an upper limit on the number of VLAN tags for attached v-ports. An error
18714 * v-ports with this number of tags.
18725 * de-allocate a v-switch.
18734 /* The port to which the v-switch is connected. */
18744 * read some config of v-switch. For now this command is an empty placeholder.
18745 * It may be used to check if a v-switch is connected to a given EVB port (if
18755 /* The port to which the v-switch is connected. */
18765 * allocate a v-port.
18774 /* The port to which the v-switch is connected. */
18777 /* The type of the new v-port. */
18786 /* enum: A normal v-port receives packets which match a specified MAC and/or
18790 /* enum: An expansion v-port packets traffic which don't match any other
18791 * v-port.
18794 /* enum: An test v-port receives packets which match any filters installed by
18798 /* Flags controlling v-port creation */
18809 * v-switch.
18825 /* The handle of the new v-port */
18832 * de-allocate a v-port.
18841 /* The handle of the v-port */
18851 * allocate a v-adaptor.
18860 /* The port to connect to the v-adaptor's port. */
18863 /* Flags controlling v-adaptor creation */
18887 /* The MAC address to assign to this v-adaptor */
18899 * de-allocate a v-adaptor.
18908 /* The port to which the v-adaptor is connected. */
18918 * assign a new MAC address to a v-adaptor.
18927 /* The port to which the v-adaptor is connected. */
18930 /* The new MAC address to assign to this v-adaptor */
18940 * read the MAC address assigned to a v-adaptor.
18949 /* The port to which the v-adaptor is connected. */
18955 /* The MAC address assigned to this v-adaptor */
18962 * read some config of v-adaptor.
18971 /* The port to which the v-adaptor is connected. */
18980 /* The v-adaptor flags as defined at MC_CMD_VADAPTOR_ALLOC. */
19035 /* Write enable bits 0-3, set to write, clear to read. */
19118 * queues, but the key and indirection table are pre-configured and may not be
19131 * the indirection table will be in the range 0 to NUM_QUEUES-1. For even-
19153 * queues, but the key and indirection table are pre-configured and may not be
19166 * the indirection table will be in the range 0 to NUM_QUEUES-1. For even-
19229 /* The 40-byte Toeplitz hash key (TBD endianness issues?) */
19254 /* The 40-byte Toeplitz hash key (TBD endianness issues?) */
19275 /* The 128-byte indirection table (1 byte per entry) */
19302 /* The 128-byte indirection table (1 byte per entry) */
19309 * Write a portion of a selectable-size indirection table for an RSS context.
19323 #define MC_CMD_RSS_CONTEXT_WRITE_TABLE_IN_ENTRIES_NUM(len) (((len)-4)/4)
19327 /* An array of index-value pairs to be written to the table. Structure is
19355 * Read a portion of a selectable-size indirection table for an RSS context.
19369 #define MC_CMD_RSS_CONTEXT_READ_TABLE_IN_INDICES_NUM(len) (((len)-4)/2)
19385 #define MC_CMD_RSS_CONTEXT_READ_TABLE_OUT_DATA_NUM(len) (((len)-0)/2)
19410 * in this case, the MODE fields may be set to non-zero values, and will take
19479 * capability), the _EN bits report the state. If any _MODE bits are non-zero
19482 * guaranteed to be consistent with the _EN flags for a freshly-allocated RSS
19541 /* Number of queues spanned by this mapping, in the range 1-64; valid fixed
19542 * offsets in the mapping table will be in the range 0 to NUM_QUEUES-1, and
19593 /* Per-priority mappings (1 32-bit word per entry - an offset or RSS context
19620 /* Per-priority mappings (1 32-bit word per entry - an offset or RSS context
19681 * Add a MAC address to a v-port
19690 /* The handle of the v-port */
19703 * Delete a MAC address from a v-port
19712 /* The handle of the v-port */
19725 * Delete a MAC address from a v-port
19734 /* The handle of the v-port */
19743 #define MC_CMD_VPORT_GET_MAC_ADDRESSES_OUT_MACADDR_NUM(len) (((len)-4)/6)
19757 * Replace VLAN tags and/or MAC addresses of an existing v-port. If the v-port
19758 * has already been passed to another function (v-port's user), then that
19768 /* The handle of the v-port */
19782 * v-switch.
19814 * read some config of v-port.
19823 /* The handle of the v-port */
19832 /* The number of VLAN tags that may be used on a v-adaptor connected to this
19865 #define MC_CMD_DUMP_BUFTBL_ENTRIES_OUT_ENTRY_NUM(len) (((len)-0)/12)
19968 /* Requested frequency in MHz for inter-core clock domain */
19971 /* enum: Leave the inter-core clock domain frequency unchanged */
20006 /* Resulting inter-core frequency in MHz */
20009 /* enum: The inter-core clock domain doesn't exist / isn't used */
20067 /* First 8 bits [39:32] of DATA are consumed by MC-DPCPU protocol and must be
20124 /* Register data to write. Only valid in write/write-read. */
20219 #define MC_CMD_CAP_BLK_READ_OUT_BUFFER_NUM(len) (((len)-0)/8)
20384 * Adjusts power supply parameters. This is a warranty-voiding operation.
20463 * should we wish to make this reliable; currently requests are fire-and-
20476 #define MC_CMD_UART_SEND_DATA_OUT_DATA_NUM(len) (((len)-16)/1)
20529 #define MC_CMD_UART_RECV_DATA_IN_DATA_NUM(len) (((len)-16)/1)
20551 * Read data programmed into the device One-Time-Programmable (OTP) Fuses
20572 #define MC_CMD_READ_FUSES_OUT_DATA_NUM(len) (((len)-4)/1)
20598 #define MC_CMD_KR_TUNE_IN_KR_TUNE_ARGS_NUM(len) (((len)-4)/4)
20654 #define MC_CMD_KR_TUNE_RXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4)
20664 /* enum: Attenuation (0-15, Huntington) */
20666 /* enum: CTLE Boost (0-15, Huntington) */
20668 /* enum: Edge DFE Tap1 (Huntington - 0 - max negative, 64 - zero, 127 - max
20669 * positive, Medford - 0-31)
20672 /* enum: Edge DFE Tap2 (Huntington - 0 - max negative, 32 - zero, 63 - max
20673 * positive, Medford - 0-31)
20676 /* enum: Edge DFE Tap3 (Huntington - 0 - max negative, 32 - zero, 63 - max
20677 * positive, Medford - 0-16)
20680 /* enum: Edge DFE Tap4 (Huntington - 0 - max negative, 32 - zero, 63 - max
20681 * positive, Medford - 0-16)
20684 /* enum: Edge DFE Tap5 (Huntington - 0 - max negative, 32 - zero, 63 - max
20685 * positive, Medford - 0-16)
20688 /* enum: Edge DFE DLEV (0-128 for Medford) */
20690 /* enum: Variable Gain Amplifier (0-15, Medford) */
20692 /* enum: CTLE EQ Capacitor (0-15, Medford) */
20694 /* enum: CTLE EQ Resistor (0-7, Medford) */
20696 /* enum: CTLE gain (0-31, Medford2) */
20698 /* enum: CTLE pole (0-31, Medford2) */
20700 /* enum: CTLE peaking (0-31, Medford2) */
20702 /* enum: DFE Tap1 - even path (Medford2 - 6 bit signed (-29 - +29)) */
20704 /* enum: DFE Tap1 - odd path (Medford2 - 6 bit signed (-29 - +29)) */
20706 /* enum: DFE Tap2 (Medford2 - 6 bit signed (-20 - +20)) */
20708 /* enum: DFE Tap3 (Medford2 - 6 bit signed (-20 - +20)) */
20710 /* enum: DFE Tap4 (Medford2 - 6 bit signed (-20 - +20)) */
20712 /* enum: DFE Tap5 (Medford2 - 6 bit signed (-24 - +24)) */
20714 /* enum: DFE Tap6 (Medford2 - 6 bit signed (-24 - +24)) */
20716 /* enum: DFE Tap7 (Medford2 - 6 bit signed (-24 - +24)) */
20718 /* enum: DFE Tap8 (Medford2 - 6 bit signed (-24 - +24)) */
20720 /* enum: DFE Tap9 (Medford2 - 6 bit signed (-24 - +24)) */
20722 /* enum: DFE Tap10 (Medford2 - 6 bit signed (-24 - +24)) */
20724 /* enum: DFE Tap11 (Medford2 - 6 bit signed (-24 - +24)) */
20726 /* enum: DFE Tap12 (Medford2 - 6 bit signed (-24 - +24)) */
20728 /* enum: I/Q clk offset (Medford2 - 4 bit signed (-5 - +5))) */
20731 * (Medford2 - 6 bit signed (-29 - +29)))
20735 * (Medford2 - 6 bit signed (-29 - +29)))
20739 * (Medford2 - 6 bit signed (-29 - +29)))
20743 * (Medford2 - 6 bit signed (-29 - +29)))
20750 /* enum: CTLE Boost stages - retimer lineside (Medford2 with DS250x retimer - 4
20754 /* enum: DFE Tap1 - retimer lineside (Medford2 with DS250x retimer (-31 - 31))
20757 /* enum: DFE Tap2 - retimer lineside (Medford2 with DS250x retimer (-15 - 15))
20760 /* enum: DFE Tap3 - retimer lineside (Medford2 with DS250x retimer (-15 - 15))
20763 /* enum: DFE Tap4 - retimer lineside (Medford2 with DS250x retimer (-15 - 15))
20766 /* enum: DFE Tap5 - retimer lineside (Medford2 with DS250x retimer (-15 - 15))
20769 /* enum: CTLE Boost stages - retimer hostside (Medford2 with DS250x retimer - 4
20773 /* enum: DFE Tap1 - retimer hostside (Medford2 with DS250x retimer (-31 - 31))
20776 /* enum: DFE Tap2 - retimer hostside (Medford2 with DS250x retimer (-15 - 15))
20779 /* enum: DFE Tap3 - retimer hostside (Medford2 with DS250x retimer (-15 - 15))
20782 /* enum: DFE Tap4 - retimer hostside (Medford2 with DS250x retimer (-15 - 15))
20785 /* enum: DFE Tap5 - retimer hostside (Medford2 with DS250x retimer (-15 - 15))
20814 #define MC_CMD_KR_TUNE_RXEQ_SET_IN_PARAM_NUM(len) (((len)-4)/4)
20867 #define MC_CMD_KR_TUNE_TXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4)
20879 /* enum: De-Emphasis Tap1 Magnitude (0-7) (Huntington) */
20881 /* enum: De-Emphasis Tap1 Fine */
20883 /* enum: De-Emphasis Tap2 Magnitude (0-6) (Huntington) */
20885 /* enum: De-Emphasis Tap2 Fine (Huntington) */
20887 /* enum: Pre-Emphasis Magnitude (Huntington) */
20889 /* enum: Pre-Emphasis Fine (Huntington) */
20899 /* enum: Pre-cursor Tap (Medford, Medford2) */
20901 /* enum: Post-cursor Tap (Medford, Medford2) */
20905 /* enum: Pre-cursor Tap (Retimer Lineside) */
20907 /* enum: Post-cursor Tap (Retimer Lineside) */
20911 /* enum: Pre-cursor Tap (Retimer Hostside) */
20913 /* enum: Post-cursor Tap (Retimer Hostside) */
20938 #define MC_CMD_KR_TUNE_TXEQ_SET_IN_PARAM_NUM(len) (((len)-4)/4)
20994 /* Port-relative lane to scan eye on */
21035 #define MC_CMD_KR_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_NUM(len) (((len)-0)/2)
21093 /* C(-1) request */
21112 /* C(-1) status */
21129 /* C(-1) value */
21154 #define MC_CMD_PCIE_TUNE_IN_PCIE_TUNE_ARGS_NUM(len) (((len)-4)/4)
21202 #define MC_CMD_PCIE_TUNE_RXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4)
21212 /* enum: Attenuation (0-15) */
21214 /* enum: CTLE Boost (0-15) */
21216 /* enum: DFE Tap1 (0 - max negative, 64 - zero, 127 - max positive) */
21218 /* enum: DFE Tap2 (0 - max negative, 32 - zero, 63 - max positive) */
21220 /* enum: DFE Tap3 (0 - max negative, 32 - zero, 63 - max positive) */
21222 /* enum: DFE Tap4 (0 - max negative, 32 - zero, 63 - max positive) */
21224 /* enum: DFE Tap5 (0 - max negative, 32 - zero, 63 - max positive) */
21269 #define MC_CMD_PCIE_TUNE_RXEQ_SET_IN_PARAM_NUM(len) (((len)-4)/4)
21322 #define MC_CMD_PCIE_TUNE_TXEQ_GET_OUT_PARAM_NUM(len) (((len)-0)/4)
21336 /* enum: De-emphasis coefficient C(-1) (PIPE) */
21338 /* enum: De-emphasis coefficient C(0) (PIPE) */
21340 /* enum: De-emphasis coefficient C(+1) (PIPE) */
21382 #define MC_CMD_PCIE_TUNE_POLL_EYE_PLOT_OUT_SAMPLES_NUM(len) (((len)-0)/2)
21399 * - not used for V3 licensing
21411 /* enum: re-read and apply licenses after a license key partition update; note
21412 * that this operation returns a zero-length response
21443 /* licensing subsystem self-test report (for manftest) */
21446 /* enum: licensing subsystem self-test failed */
21448 /* enum: licensing subsystem self-test passed */
21455 * - V3 licensing (Medford)
21467 /* enum: re-read and apply licenses after a license key partition update; note
21468 * that this operation returns a zero-length response
21497 /* licensing subsystem self-test report (for manftest) */
21500 /* enum: licensing subsystem self-test failed */
21502 /* enum: licensing subsystem self-test passed */
21537 * partition - V3 licensing (Medford)
21552 #define MC_CMD_LICENSING_GET_ID_V3_OUT_LICENSE_ID_NUM(len) (((len)-8)/1)
21569 * Execute an arbitrary MCDI command on the slave MC of a dual-core device.
21570 * This will fail on a single-core system.
21679 /* states of these features - bit set for licensed, clear for not licensed */
21694 * Perform an action for an individual licensed application - not used for V3
21707 #define MC_CMD_LICENSED_APP_OP_IN_ARGS_NUM(len) (((len)-8)/4)
21730 #define MC_CMD_LICENSED_APP_OP_OUT_RESULT_NUM(len) (((len)-0)/4)
21777 * Perform validation for an individual licensed application - V3 licensing
21805 * of two 384-bit integers, r and s, in big-endian order. The signature signs a
21806 * SHA-384 digest of a message constructed from the concatenation of the input
21828 /* MAC address of v-adaptor associated with the client. If no such v-adapator
21837 * Mask features - V3 licensing (Medford)
21873 * SF-116124-SW for an overview of how this could be used. The license is
21949 * configuration. A copy of all traffic delivered to the host (non-promiscuous
22032 * Change configuration related to the parser-dispatcher subsystem.
22044 #define MC_CMD_SET_PARSER_DISP_CONFIG_IN_VALUE_NUM(len) (((len)-8)/4)
22048 /* enum: Per-TXQ enable for multicast UDP destination lookup for possible
22052 /* enum: Per-v-adaptor enable for suppression of self-transmissions on the
22077 * Read configuration related to the parser-dispatcher subsystem.
22102 #define MC_CMD_GET_PARSER_DISP_CONFIG_OUT_VALUE_NUM(len) (((len)-0)/4)
22246 /* The maximum number of MSI-X vectors the device can provide in total */
22249 /* the number of MSI-X vectors the device will allocate by default to each PF
22253 /* the number of MSI-X vectors the device will allocate by default to each VF
22257 /* the maximum number of MSI-X vectors the device can allocate to any one PF */
22260 /* the maximum number of MSI-X vectors the device can allocate to any one VF */
22401 * - before adding code that queries this workaround, remember that there's
22471 * administrator-level operations that are not allowed from the local host once
22473 * SF-117064-DG for background).
22476 /* enum: Control the Match-Action Engine if present. See mcdi_mae.yml. */
22487 * the device and to on-device DDR. It allows clients to use TX-DESC2CMPT-DESC
22488 * descriptors, and to use TX-SEG-DESC and TX-MEM2MEM-DESC with an address
22620 * only effects non-admin functions unless the admin privilege itself is
22686 #define MC_CMD_XPM_READ_BYTES_OUT_DATA_NUM(len) (((len)-0)/1)
22709 #define MC_CMD_XPM_WRITE_BYTES_IN_DATA_NUM(len) (((len)-8)/1)
22750 #define MC_CMD_XPM_READ_SECTOR_OUT_DATA_NUM(len) (((len)-4)/1)
22781 #define MC_CMD_XPM_WRITE_SECTOR_IN_DATA_NUM(len) (((len)-12)/1)
22784 * made. Note that uncorrectable errors are unlikely, thanks to XPM self-repair
22834 * Blank-check XPM memory and report bad locations
22855 #define MC_CMD_XPM_BLANK_CHECK_OUT_BAD_ADDR_NUM(len) (((len)-4)/2)
22856 /* Total number of bad (non-blank) locations */
22871 * Blank-check and repair XPM memory
23007 * parser-dispatcher will attempt to parse traffic on these ports as tunnel
23022 #define MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS_IN_ENTRIES_NUM(len) (((len)-4)/4)
23097 #define MC_CMD_NVRAM_PRIVATE_APPEND_IN_DATA_BUFFER_NUM(len) (((len)-8)/1)
23137 #define MC_CMD_XPM_VERIFY_CONTENTS_OUT_SIGNATURE_NUM(len) (((len)-12)/1)
23171 /* Function-relative queue instance */
23279 * local queue index. The calling client must be the currently-assigned user of
23297 #define MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_USE_FUNCTION_VALUE -0x1
23302 /* MC_CMD_ALLOCATE_TX_VFIFO_CP_IN_USE_FUNCTION_VALUE -0x1 */
23339 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_USE_CP_VALUE -0x1
23360 #define MC_CMD_ALLOCATE_TX_VFIFO_VFIFO_IN_LOWEST_AVAILABLE -0x1
23375 * ready to be re-used.
23395 * it ready to be re-used.
23449 /* The SUC firmware version as four numbers - a.b.c.d */
23459 * indicates family, memory sizes etc. See SF-116728-SW for further details.
23485 * combination of fields, then this command returns a list of prefix-ids,
23488 * supported, returns ENOTSUP. If the firmware can't create any new prefix-ids
23531 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_MPORT_LBN 7
23534 #define MC_CMD_GET_RX_PREFIX_ID_IN_INGRESS_VPORT_LBN 7
23554 #define MC_CMD_GET_RX_PREFIX_ID_OUT_RX_PREFIX_ID_NUM(len) (((len)-4)/4)
23555 /* Number of prefix-ids returned */
23609 #define RX_PREFIX_FIXED_RESPONSE_FIELDS_NUM(len) (((len)-4)/4)
23656 #define MC_CMD_QUERY_RX_PREFIX_ID_OUT_RESPONSE_NUM(len) (((len)-4)/1)
23674 * A command to perform various bundle-related operations on insecure cards.
23683 /* Sub-command code */
23697 /* Sub-command code. Must be OP_COMPONENT_ACCESS_GET. */
23708 /* enum: Component partitions are read-only from the host. */
23710 /* enum: Component partitions can read read-from written-to by the host. */
23715 * read-only on firmware built with bundle support. This command marks these
23721 /* Sub-command code. Must be OP_COMPONENT_ACCESS_SET. */
23756 #define MC_CMD_GET_VPD_OUT_DATA_NUM(len) (((len)-0)/1)
23767 * Provide information about the NC-SI stack
23783 /* The NC-SI channel on which the operation is to be performed */
23813 /* The number of NC-SI commands received. */
23816 /* The number of NC-SI commands dropped. */
23819 /* The number of invalid NC-SI commands received. */
23825 /* The number of NC-SI requests received. */
23828 /* The number of NC-SI responses sent (includes AENs) */
23831 /* The number of NC-SI AENs sent */
23839 * be found within XN-200418-TC.
23893 /* Human-readable ASCII name for clock, with NUL termination */
23902 /* The instance of the scheduler. Refer to XN-200389-AW for the location of
23969 #define MC_CMD_GET_CLOCKS_INFO_OUT_INFOS_NUM(len) (((len)-0)/28)
23981 * only affects checksum validation in VNIC RX - on TX the send descriptor
23982 * explicitly specifies encapsulation. These rules are per-VNIC, i.e. only
23991 * combinations. Each driver may only have a limited set of active rules -
24004 /* Any non-zero bits other than the ones named below or an unsupported
24097 * the endianness specified by the RFC; users should ignore the broken-out
24126 * currently-loaded plugin offering the given functionality (as identified by
24132 * the newest and that is the one opened. See SF-123625-SW for architectural
24217 /* semver sub-version of this plugin extension */
24220 /* semver micro-version of this plugin extension */
24266 * extension in a human-readable way. Contrast with
24283 /* enum: Top-level information about the extension. The returned data is an
24285 * the extension. The data is a back-to-back list of zero-terminated strings;
24286 * the even-numbered fields (0,2,4,...) are keys and their following odd-
24288 * nominally UTF-8. Per RFC5013, the same key may be repeated any number of
24290 * and the UTF-8 encoding) may have been provided by the plugin author, so
24292 * top-level structure to separate out the keys and values; the contents of the
24293 * values is not expected to be machine-readable.
24307 #define MC_CMD_PLUGIN_GET_META_PUBLISHER_OUT_DATA_NUM(len) (((len)-4)/1)
24351 /* Short human-readable codename for this message. This is conventionally
24419 #define MC_CMD_PLUGIN_GET_ALL_OUT_EXTENSIONS_NUM(len) (((len)-0)/20)
24434 * identified by a 32-bit ID.
24446 #define MC_CMD_PLUGIN_REQ_IN_DATA_NUM(len) (((len)-8)/1)
24467 #define MC_CMD_PLUGIN_REQ_OUT_DATA_NUM(len) (((len)-0)/1)
24480 * WINDOW_SIZE_LOG2) map to TRGT_ADDR = DESC_ADDR - DESC_ADDR_BASE +
24552 /* The type of mapping; see SF-nnnnnn-xx (EF100 driver writer's guide, once
24582 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_NUM(len) (((len)-0)/32)
24589 #define MC_CMD_GET_DESC_ADDR_REGIONS_OUT_REGIONS_MAXNUM 7
24607 #define MC_CMD_SET_DESC_ADDR_REGIONS_IN_TRGT_ADDR_BASE_NUM(len) (((len)-8)/8)
24670 * unit. See also MC_CMD_CLIENT_CMD. See XN-200265-TC for background, concepts
24672 * clients". The newly-created client is a child of the client which sent this
24722 * created are then owned by the user-client. Only the VI owner can call this
24733 /* Function-relative VI number to modify. */
24798 #define MC_CMD_GET_CLIENT_MAC_ADDRESSES_OUT_MAC_ADDRS_NUM(len) (((len)-0)/6)
24823 #define MC_CMD_SET_CLIENT_MAC_ADDRESSES_IN_MAC_ADDRS_NUM(len) (((len)-4)/6)
24840 * Retrieve physical build-level board attributes as configured at
24841 * manufacturing stage. Fields originate from EEPROM and per-platform constants
24861 * response-message.
24908 * Retrieve current state of the System-on-Chip. This command is valid when
24976 * into pages. This field specifies which (0-indexed) page to request. A
24990 #define MC_CMD_CHECK_SCHEDULER_CREDITS_OUT_RESULTS_NUM(len) (((len)-16)/16)
25014 * Query per-TXQ statistics.
25038 #define MC_CMD_TXQ_STATS_OUT_STATISTICS_NUM(len) (((len)-0)/8)
25055 * defined in SF-120734-TC with more information in SF-122717-TC.
25062 /* enum: Function has an EF100-style function control window and VI windows
25074 /* enum: Function is a Xilinx acceleration device - management function */
25076 /* enum: Function is a Xilinx acceleration device - user function */
25109 * specification ( https://docs.oasis-
25110 * open.org/virtio/virtio/v1.1/csprd01/virtio-v1.1-csprd01.pdf )
25170 * allowed on multi-queue devices is returned. Response is expected to be
25229 /* Desired instance. This is the function-local index of the associated VI, not
25292 * the features returned from MC_CMD_VIRTIO_GET_FEATURES. Features are per-
25501 * embedded Application Processor), via EF100 descriptor proxy, memory-to-
25502 * memory and descriptor-to-completion mechanisms. Primary user is Virtio-blk
25503 * subsystem, see SF-122927-TC. This function allocates a new descriptor proxy
25504 * function on the host and assigns a user-defined label. The actual function
25537 * SF-120734-TC with more information in SF-122717-TC. At present, we only
25544 /* User-defined label (zero-terminated ASCII string) to uniquely identify the
25588 /* User-defined label (zero-terminated ASCII string) to uniquely identify the
25638 #define VIRTIO_BLK_CONFIG_VIRTIO_BLK_F_SCSI_LBN 7
25687 /* The capacity of the device (expressed in 512-byte sectors) */
25714 /* Disk-style geometry - cylinders. Only valid when VIRTIO_BLK_F_GEOMETRY is
25721 /* Disk-style geometry - heads. Only valid when VIRTIO_BLK_F_GEOMETRY is set.
25727 /* Disk-style geometry - sectors. Only valid when VIRTIO_BLK_F_GEOMETRY is set.
25738 /* Block topology - number of logical blocks per physical block (log2). Only
25745 /* Block topology - offset of first aligned logical block. Only valid when
25752 /* Block topology - suggested minimum I/O size in blocks. Only valid when
25759 /* Block topology - optimal (suggested maximum) I/O size in blocks. Only valid
25779 /* Maximum discard sectors size, in 512-byte units. Only valid if
25792 /* Discard sector alignment, in 512-byte units. Only valid if
25799 /* Maximum write zeroes sectors size, in 512-byte units. Only valid if
25843 #define MC_CMD_DESC_PROXY_FUNC_CONFIG_SET_IN_CONFIG_NUM(len) (((len)-20)/1)
25868 * Commit function configuration to non-volatile or volatile store. Once
25887 /* enum: Store into non-volatile (dynamic) config */
25903 * integer handle, valid until function is deallocated, MC rebooted or power-
25913 /* User-defined label (zero-terminated ASCII string) to uniquely identify the
25924 #define MC_CMD_DESC_PROXY_FUNC_OPEN_OUT_CONFIG_NUM(len) (((len)-40)/1)
26036 /* User-defined label (zero-terminated ASCII string) to uniquely identify the
26067 #define MC_CMD_DESC_PROXY_FUNC_ENUM_OUT_FUNC_MAP_NUM(len) (((len)-4)/52)
26090 * supports multi-queue devices and has no dependency on host driver attach.
26124 * source function (0 to max_virtqueues-1). For a multi-queue device, the
26157 * Disable descriptor proxying for function. For multi-queue functions,
26228 #define MC_CMD_DESC_PROXY_FUNC_GET_VI_INFO_OUT_VI_MAP_NUM(len) (((len)-0)/4)
26230 * queues (in order from 0 to max_virtqueues-1), as array of QUEUE_ID
26249 * target. See SF-120734-TC for details on ADDR_SPC_IDs and mem2mem
26288 /* enum: Address space ID for DMA to/from other SmartNIC memory (on-chip, DDR)
26355 /* enum: Obtain a client handle for a PCIe function-type client. */
26357 /* PCIe Function ID (as struct PCIE_FUNCTION). Valid when TYPE==FUNC. Use: -
26358 * INTF=CALLER, PF=PF_NULL, VF=VF_NULL to refer to the calling function -
26360 * a sibling VF of the calling VF. - INTF=CALLER, PF=..., VF=VF_NULL to refer
26361 * to a PF on the calling interface - INTF=CALLER, PF=..., VF=... to refer to a
26362 * VF on the calling interface - INTF=..., PF=..., VF=VF_NULL to refer to a PF
26363 * on a named interface - INTF=..., PF=..., VF=... to refer to a VF on a named
26406 #define MAE_FIELD_FLAGS_MATCH_AFFECTS_CLASS_LBN 7
27283 #define MAE_FIELD_MASK_VALUE_PAIRS_V2_ENC_HAS_IVLAN_LBN 7
27352 * 32-bits or within any NIC interface field that needs store the value
27354 * refer to m-ports.
27357 /* Used to force the tools to output bitfield-style defines for this structure.
27361 /* enum: An m-port selector value that is guaranteed never to represent a real
27365 /* enum: The m-port assigned to the calling client. */
27378 /* enum: The MPORT assigned to a given PCIe function (see also FWRIVERHD-1108)
27409 * client. - When used by a PF with VF_ID == VF_ID_NULL, the mport selector
27411 * clients use ASSIGNED to achieve this behaviour). - When used by a PF with
27413 * function. - When used by a VF with VF_ID == VF_ID_NULL, the mport selector
27414 * relates to the PF owning the calling function. - When used by a VF with
27416 * calling function. - Not meaningful used by a client that is not a PCIe
27454 /* enum: Set FLAT to this value to obtain backward-compatible behaviour in
27466 * Describes capabilities of the MAE (Match-Action Engine)
27714 * Get a level of support for match fields when used in match-action rules
27729 #define MC_CMD_MAE_GET_AR_CAPS_OUT_FIELD_FLAGS_NUM(len) (((len)-4)/4)
27761 #define MC_CMD_MAE_GET_OR_CAPS_OUT_FIELD_FLAGS_NUM(len) (((len)-4)/4)
27775 * Allocate match-action-engine counters, which can be referenced in various
27807 #define MC_CMD_MAE_COUNTER_ALLOC_OUT_COUNTER_ID_NUM(len) (((len)-8)/4)
27836 * Free match-action-engine counters
27850 #define MC_CMD_MAE_COUNTER_FREE_IN_FREE_COUNTER_ID_NUM(len) (((len)-4)/4)
27883 #define MC_CMD_MAE_COUNTER_FREE_OUT_FREED_COUNTER_ID_NUM(len) (((len)-8)/4)
28021 #define MC_CMD_MAE_COUNTERS_STREAM_STOP_V2_OUT_GENERATION_COUNT_NUM(len) (((len)-0)/4)
28023 * MAE_COUNTER_TYPE_AR==0, this response is backwards-compatible with V1. The
28061 * header must be constructed as a valid packet with 0-length payload.
28077 #define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_HDR_DATA_NUM(len) (((len)-4)/1)
28110 #define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_HDR_DATA_NUM(len) (((len)-8)/1)
28139 #define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_EH_ID_NUM(len) (((len)-0)/4)
28152 #define MC_CMD_MAE_ENCAP_HEADER_FREE_OUT_FREED_EH_ID_NUM(len) (((len)-0)/4)
28204 #define MC_CMD_MAE_MAC_ADDR_FREE_IN_MAC_ID_NUM(len) (((len)-0)/4)
28217 #define MC_CMD_MAE_MAC_ADDR_FREE_OUT_FREED_MAC_ID_NUM(len) (((len)-0)/4)
28287 /* An m-port selector identifying the m-port that the modified packet should be
28299 * it can supply a COUNTER_ID instead of allocating a single-element counter
28302 * not valid to supply a non-NULL value for both COUNTER_LIST_ID and
28368 /* An m-port selector identifying the m-port that the modified packet should be
28380 * it can supply a COUNTER_ID instead of allocating a single-element counter
28383 * not valid to supply a non-NULL value for both COUNTER_LIST_ID and
28396 /* Source m-port ID to be reported for DO_SET_SRC_MPORT action. */
28399 /* Actions for modifying the Differentiated Services Code-Point (DSCP) bits
28466 #define MC_CMD_MAE_ACTION_SET_FREE_IN_AS_ID_NUM(len) (((len)-0)/4)
28479 #define MC_CMD_MAE_ACTION_SET_FREE_OUT_FREED_AS_ID_NUM(len) (((len)-0)/4)
28506 #define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_AS_IDS_NUM(len) (((len)-4)/4)
28540 * Free match-action-engine redirect_lists
28552 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_ASL_ID_NUM(len) (((len)-0)/4)
28565 #define MC_CMD_MAE_ACTION_SET_LIST_FREE_OUT_FREED_ASL_ID_NUM(len) (((len)-0)/4)
28590 #define MC_CMD_MAE_OUTER_RULE_INSERT_IN_FIELD_MATCH_CRITERIA_NUM(len) (((len)-16)/1)
28662 #define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_OR_ID_NUM(len) (((len)-0)/4)
28675 #define MC_CMD_MAE_OUTER_RULE_REMOVE_OUT_REMOVED_OR_ID_NUM(len) (((len)-0)/4)
28741 /* Only one of ASL_ID or AS_ID may have a non-NULL value. */
28746 /* Controls lookup flow when this rule is hit. See sub-fields for details. More
28747 * info on the lookup sequence can be found in SF-122976-TC. It is an error to
28798 #define MC_CMD_MAE_ACTION_RULE_INSERT_IN_MATCH_CRITERIA_NUM(len) (((len)-28)/1)
28860 #define MC_CMD_MAE_ACTION_RULE_DELETE_IN_AR_ID_NUM(len) (((len)-0)/4)
28873 #define MC_CMD_MAE_ACTION_RULE_DELETE_OUT_DELETED_AR_ID_NUM(len) (((len)-0)/4)
28884 * Return the m-port corresponding to a selector.
28904 * Allocates a m-port, which can subsequently be used in action rules as a
28914 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain
28919 /* enum: Traffic can be sent to this type of m-port using an override
28920 * descriptor. Traffic received on this type of m-port will go to the VNIC on a
28921 * nominated m-port, and will be delivered with metadata identifying the alias
28922 * m-port.
28925 /* enum: This type of m-port has a VNIC attached. Queues can be created on this
28926 * VNIC by specifying the created m-port as an m-port selector at queue
28930 /* 128-bit value for use by the driver. */
28936 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain
28941 /* enum: Traffic can be sent to this type of m-port using an override
28942 * descriptor. Traffic received on this type of m-port will go to the VNIC on a
28943 * nominated m-port, and will be delivered with metadata identifying the alias
28944 * m-port.
28947 /* enum: This type of m-port has a VNIC attached. Queues can be created on this
28948 * VNIC by specifying the created m-port as an m-port selector at queue
28952 /* 128-bit value for use by the driver. */
28955 /* An m-port selector identifying the VNIC to which traffic should be
28957 * the m-port assigned to the calling client).
28964 /* The type of m-port to allocate. Firmware may return ENOTSUP for certain
28969 /* enum: Traffic can be sent to this type of m-port using an override
28970 * descriptor. Traffic received on this type of m-port will go to the VNIC on a
28971 * nominated m-port, and will be delivered with metadata identifying the alias
28972 * m-port.
28975 /* enum: This type of m-port has a VNIC attached. Queues can be created on this
28976 * VNIC by specifying the created m-port as an m-port selector at queue
28980 /* 128-bit value for use by the driver. */
28986 /* ID of newly-allocated m-port. */
28992 /* ID of newly-allocated m-port. */
28996 * using an alias type m-port. This value is guaranteed unique on the VNIC
29005 /* ID of newly-allocated m-port. */
29012 * Free a m-port which was previously allocated by the driver.
29055 /* Not the ideal name; it's really the type of thing connected to the m-port */
29060 /* enum: Adds metadata and delivers to another m-port */
29066 /* 128-bit value available to drivers for m-port identification. */
29089 /* The m-port delivered to */
29152 /* Not the ideal name; it's really the type of thing connected to the m-port */
29157 /* enum: Adds metadata and delivers to another m-port */
29163 /* 128-bit value available to drivers for m-port identification. */
29186 /* The m-port delivered to */
29246 #define MC_CMD_MAE_MPORT_ENUMERATE_OUT_MPORT_DESC_DATA_NUM(len) (((len)-8)/1)
29264 * Firmware maintains a per-client journal of mport creations and deletions.
29265 * This journal is clear-on-read, i.e. repeated calls of this command will
29285 #define MC_CMD_MAE_MPORT_READ_JOURNAL_OUT_MPORT_DESC_DATA_NUM(len) (((len)-12)/1)
29308 * describes the location and properties of one N-bit field within a wider
29309 * M-bit key/mask/response value.
29349 #define TABLE_FIELD_DESCR_SCHEME_OFST 7
29378 #define MC_CMD_TABLE_LIST_OUT_TABLE_ID_NUM(len) (((len)-4)/4)
29383 * items can be obtained by repeating the call with a non-zero
29425 #define MC_CMD_TABLE_DESCRIPTOR_OUT_FIELDS_NUM(len) (((len)-20)/8)
29446 /* enum: STCAM (semi-TCAM) table: like a TCAM but entries shared a limited
29464 * 0=highest to N_PRIORITIES-1=lowest.
29488 * by repeating the call with a non-zero FIRST_FIELDS_INDEX.
29523 #define MC_CMD_TABLE_INSERT_IN_DATA_NUM(len) (((len)-12)/4)
29543 /* Mask ID for STCAM table - used instead of mask data if the table descriptor
29548 /* Priority for TCAM or STCAM, in range 0..N_PRIORITIES-1, otherwise 0. */
29551 /* (32-bit alignment padding - set to 0) */
29555 * data values. Each of these items is logically treated as a single wide N-bit
29558 * N-bit value is padded with 0 bits at the MSB end if necessary to make a
29560 * sequence of 32-bit words, bits [31:0] first, then bits [63:32], etc.
29590 #define MC_CMD_TABLE_UPDATE_IN_DATA_NUM(len) (((len)-12)/4)
29610 /* Mask ID for STCAM table - used instead of mask data if the table descriptor
29615 /* Priority for TCAM or STCAM, in range 0..N_PRIORITIES-1, otherwise 0. */
29618 /* (32-bit alignment padding - set to 0) */
29622 * data values. Each of these items is logically treated as a single wide N-bit
29625 * N-bit value is padded with 0 bits at the MSB end if necessary to make a
29627 * sequence of 32-bit words, bits [31:0] first, then bits [63:32], etc.
29657 #define MC_CMD_TABLE_DELETE_IN_DATA_NUM(len) (((len)-12)/4)
29677 /* Mask ID for STCAM table - used instead of mask data if the table descriptor
29682 /* Priority for TCAM or STCAM, in range 0..N_PRIORITIES-1, otherwise 0. */
29685 /* (32-bit alignment padding - set to 0) */
29689 * data values. Each of these items is logically treated as a single wide N-bit
29692 * N-bit value is padded with 0 bits at the MSB end if necessary to make a
29694 * sequence of 32-bit words, bits [31:0] first, then bits [63:32], etc.