/* * Copyright (c) Advanced Micro Devices, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ /* This file is automatically generated. DO NOT EDIT IT. To make * changes, edit the .yml files under doc/mcdi/ and rebuild this file * with "make mcdi_headers". */ #ifndef IFOE_MCDI_HOSTAPP_H #define IFOE_MCDI_HOSTAPP_H /* PMA_TXEQ_CURSOR_TYPE enum: This enum defines the TXEQ parameters that can be * set or retrieved using the PMA_TXEQ_GET/SET commands. */ /* enum: Pre-cursor3 */ #define PMA_TXEQ_CURSOR_TYPE_PRE3 0x0 /* enum: Pre-cursor2 */ #define PMA_TXEQ_CURSOR_TYPE_PRE2 0x1 /* enum: Pre-cursor1 */ #define PMA_TXEQ_CURSOR_TYPE_PRE1 0x2 /* enum: Main Cursor */ #define PMA_TXEQ_CURSOR_TYPE_MAIN 0x3 /* enum: Post-cursor1 */ #define PMA_TXEQ_CURSOR_TYPE_POST1 0x4 /* PMA_POLARITY_TYPE enum: This enum defines the polarity modes that can be * used for PMA_CONFIGURE_LANE. */ /* enum: Use the default polarity for the board. */ #define PMA_POLARITY_TYPE_BOARD_DEFAULT 0x0 /* enum: Don't invert channel polarity. */ #define PMA_POLARITY_TYPE_NON_INVERTED 0x1 /* enum: Invert channel polarity. */ #define PMA_POLARITY_TYPE_INVERTED 0x2 /* PMA_RATE_SPECIFIER enum: This enum defines a combined per-lane Gbps baud * rates (symbol rate) and the modulation scheme for use with * PMA_CONFIGURE_LANE command. The rates represent lane symbol rates, not port * rates nor the lane frequency. `P` in the enum names indicates the decimal * point after gigabauds. e.g. 1P250 = 1.25 Gbd. */ /* enum: Power down the lane. No transmission or reception should be enabled in * neither direction nor internally. */ #define PMA_RATE_SPECIFIER_POWER_DOWN 0x0 /* enum: 1.25 Gbd NRZ */ #define PMA_RATE_SPECIFIER_1P250_NRZ 0x1 /* enum: 10.3125 Gbd NRZ */ #define PMA_RATE_SPECIFIER_10P3125_NRZ 0x2 /* enum: 25.78125 Gbd NRZ */ #define PMA_RATE_SPECIFIER_25P78125_NRZ 0x3 /* enum: 53.125 Gbd PAM4 */ #define PMA_RATE_SPECIFIER_53P125_PAM4 0x4 /* enum: 106.25 Gbd PAM4 */ #define PMA_RATE_SPECIFIER_106P25_PAM4 0x5 /* enum: 212.5 Gbd PAM4 */ #define PMA_RATE_SPECIFIER_212P5_PAM4 0x6 /* PMA_PRBS_PATTERN enum: This enum defines the PRBS patterns that can be used * for PMA_PRBS_TX and PMA_PRBS_RX operations. */ /* enum: Special enum element to indicate to turn off PRBS transmission or * listening (receive). I.e. This has different meanings for TX and RX. */ #define PMA_PRBS_PATTERN_OFF 0x0 /* enum: Special enum element to indicate to ask MC FW to use its default. This * eliminates the need for clients to know which PRBS patterns are supported by * the MC FW. This may differ between products but should remain the same * across different MC FW versions of the same product. */ #define PMA_PRBS_PATTERN_DEFAULT 0x1 #define PMA_PRBS_PATTERN_PRBS7 0x2 /* enum */ #define PMA_PRBS_PATTERN_PRBS9 0x3 /* enum */ #define PMA_PRBS_PATTERN_PRBS11 0x4 /* enum */ #define PMA_PRBS_PATTERN_PRBS13 0x5 /* enum */ #define PMA_PRBS_PATTERN_PRBS15 0x6 /* enum */ #define PMA_PRBS_PATTERN_PRBS23 0x7 /* enum */ #define PMA_PRBS_PATTERN_PRBS31 0x8 /* enum */ #define PMA_PRBS_PATTERN_QPRBS13 0x9 /* enum */ #define PMA_PRBS_PATTERN_JP03A 0xa /* enum */ #define PMA_PRBS_PATTERN_JP03B 0xb /* enum */ #define PMA_PRBS_PATTERN_TRANS_LINEARITY 0xc /* enum */ /* enum: USER_DEFINED pattern must be accompanied with a USER_PATTERN field */ #define PMA_PRBS_PATTERN_USER_DEFINED 0xd /* AN_TYPE structuredef: Auto-negotiation types defined in IEEE802.3 */ #define AN_TYPE_LEN 4 #define AN_TYPE_TYPE_OFST 0 #define AN_TYPE_TYPE_LEN 4 /* enum: None, AN disabled or not supported */ #define MC_CMD_AN_NONE 0x0 /* enum: Clause 28 - BASE-T */ #define MC_CMD_AN_CLAUSE28 0x1 /* enum: Clause 37 - BASE-X */ #define MC_CMD_AN_CLAUSE37 0x2 /* enum: Clause 73 - BASE-R startup protocol for backplane and copper cable * assemblies. Includes Clause 72/Clause 92 link-training. */ #define MC_CMD_AN_CLAUSE73 0x3 #define AN_TYPE_TYPE_LBN 0 #define AN_TYPE_TYPE_WIDTH 32 /* FEC_TYPE structuredef: Forward error correction types defined in IEEE802.3 */ #define FEC_TYPE_LEN 4 #define FEC_TYPE_TYPE_OFST 0 #define FEC_TYPE_TYPE_LEN 4 /* enum: No FEC */ #define MC_CMD_FEC_NONE 0x0 /* enum: IEEE 802.3, Clause 74 BASE-R FEC (a.k.a Firecode) */ #define MC_CMD_FEC_BASER 0x1 /* enum: IEEE 802.3, Clause 91/Clause 108 Reed-Solomon FEC */ #define MC_CMD_FEC_RS 0x2 /* enum: IEEE 802.3, Clause 161, interleaved RS-FEC sublayer for 100GBASE-R * PHYs */ #define MC_CMD_FEC_IEEE_RS_INT 0x3 /* enum: Ethernet Consortium, Low Latency RS-FEC. RS(272, 258). Replaces FEC * specified in Clause 119 for 100/200G PHY. Replaces FEC specified in Clause * 134 for 50G PHY. */ #define MC_CMD_FEC_ETCS_RS_LL 0x4 /* enum: FEC mode selected automatically */ #define MC_CMD_FEC_AUTO 0x5 #define FEC_TYPE_TYPE_LBN 0 #define FEC_TYPE_TYPE_WIDTH 32 /* MC_CMD_ETH_TECH structuredef: Ethernet technology as defined by IEEE802.3, * Ethernet Technology Consortium, proprietary technologies. The driver must * not use technologies labelled NONE and AUTO. */ #define MC_CMD_ETH_TECH_LEN 16 /* The enums in this field can be used either as bitwise indices into a tech * mask (e.g. see MC_CMD_ETH_AN_FIELDS/TECH_MASK for example) or as regular * enums (e.g. see MC_CMD_LINK_CTRL_IN/ADVERTISED_TECH_ABILITIES_MASK). This * structure must be updated to add new technologies when projects that need * them arise. An incomplete list of possible expansion in the future include: * 100GBASE_KP4, 800GBASE_CR8, 800GBASE_KR8, 800GBASE_DR8, 800GBASE_SR8 * 800GBASE_VR8 */ #define MC_CMD_ETH_TECH_TECH_OFST 0 #define MC_CMD_ETH_TECH_TECH_LEN 16 /* enum: 1000BASE-KX - 1000BASE-X PCS/PMA over an electrical backplane PMD. See * IEEE 802.3 Clause 70 */ #define MC_CMD_ETH_TECH_1000BASE_KX 0x0 /* enum: Compatibility alias for 1000BASE_KX. Do not use in new code. */ #define MC_CMD_ETH_TECH_1000BASEKX 0x0 /* enum: 10GBASE-R - PCS/PMA over an electrical backplane PMD. Refer to IEEE * 802.3 Clause 72 */ #define MC_CMD_ETH_TECH_10GBASE_KR 0x1 /* enum: 40GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3 * Clause 84. */ #define MC_CMD_ETH_TECH_40GBASE_KR4 0x2 /* enum: 40GBASE-R PCS/PMA over 4 lane shielded copper balanced cable PMD. See * IEEE 802.3 Clause 85 */ #define MC_CMD_ETH_TECH_40GBASE_CR4 0x3 /* enum: 40GBASE-R PCS/PMA over 4 lane multimode fiber PMD as specified in * Clause 86 */ #define MC_CMD_ETH_TECH_40GBASE_SR4 0x4 /* enum: 40GBASE-R PCS/PMA over 4 WDM lane single mode fiber PMD with long * reach. See IEEE 802.3 Clause 87 */ #define MC_CMD_ETH_TECH_40GBASE_LR4 0x5 /* enum: 25GBASE-R PCS/PMA over shielded balanced copper cable PMD. See IEEE * 802.3 Clause 110 */ #define MC_CMD_ETH_TECH_25GBASE_CR 0x6 /* enum: 25GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3 * Clause 111 */ #define MC_CMD_ETH_TECH_25GBASE_KR 0x7 /* enum: 25GBASE-R PCS/PMA over multimode fiber PMD. Refer to IEEE 802.3 Clause * 112 */ #define MC_CMD_ETH_TECH_25GBASE_SR 0x8 /* enum: An Ethernet Physical layer operating at 50 Gb/s on twin-axial copper * cable. Refer to Ethernet Technology Consortium 25/50G Ethernet Spec. */ #define MC_CMD_ETH_TECH_50GBASE_CR2 0x9 /* enum: An Ethernet Physical layer operating at 50 Gb/s on copper backplane. * Refer to Ethernet Technology Consortium 25/50G Ethernet Spec. */ #define MC_CMD_ETH_TECH_50GBASE_KR2 0xa /* enum: 100GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3 * Clause 93 */ #define MC_CMD_ETH_TECH_100GBASE_KR4 0xb /* enum: 100GBASE-R PCS/PMA over 4 lane multimode fiber PMD. See IEEE 802.3 * Clause 95 */ #define MC_CMD_ETH_TECH_100GBASE_SR4 0xc /* enum: 100GBASE-R PCS/PMA over 4 lane shielded copper balanced cable PMD. See * IEEE 802.3 Clause 92 */ #define MC_CMD_ETH_TECH_100GBASE_CR4 0xd /* enum: 100GBASE-R PCS/PMA over 4 WDM lane single mode fiber PMD, with * long/extended reach,. See IEEE 802.3 Clause 88 */ #define MC_CMD_ETH_TECH_100GBASE_LR4_ER4 0xe /* enum: An Ethernet Physical layer operating at 50 Gb/s on short reach fiber. * Refer to Ethernet Technology Consortium 25/50G Ethernet Spec. */ #define MC_CMD_ETH_TECH_50GBASE_SR2 0xf /* enum: 1000BASEX PCS/PMA. See IEEE 802.3 Clause 36 over undefined PMD, duplex * mode unknown */ #define MC_CMD_ETH_TECH_1000BASE_X 0x10 /* enum: Compatibility alias for 1000BASE_X. Do not use in new code. */ #define MC_CMD_ETH_TECH_1000BASEX 0x10 /* enum: Non-standardised. 10G direct attach */ #define MC_CMD_ETH_TECH_10GBASE_CR 0x11 /* enum: 10GBASE-SR fiber over 850nm optics. See IEEE 802.3 Clause 52 */ #define MC_CMD_ETH_TECH_10GBASE_SR 0x12 /* enum: 10GBASE-LR fiber over 1310nm optics. See IEEE 802.3 Clause 52 */ #define MC_CMD_ETH_TECH_10GBASE_LR 0x13 /* enum: 10GBASE-LRM fiber over 1310 nm optics. See IEEE 802.3 Clause 68 */ #define MC_CMD_ETH_TECH_10GBASE_LRM 0x14 /* enum: 10GBASE-ER fiber over 1550nm optics. See IEEE 802.3 Clause 52 */ #define MC_CMD_ETH_TECH_10GBASE_ER 0x15 /* enum: 50GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3 * Clause 137 */ #define MC_CMD_ETH_TECH_50GBASE_KR 0x16 /* enum: 50GBASE-SR PCS/PMA over multimode fiber PMD as specified in Clause 138 */ #define MC_CMD_ETH_TECH_50GBASE_SR 0x17 /* enum: 50GBASE-CR PCS/PMA over shielded copper balanced cable PMD. See IEEE * 802.3 Clause 136 */ #define MC_CMD_ETH_TECH_50GBASE_CR 0x18 /* enum: 50GBASE-R PCS/PMA over single mode fiber PMD as specified in Clause * 139. */ #define MC_CMD_ETH_TECH_50GBASE_LR_ER_FR 0x19 /* enum: 100 Gb/s PHY using 100GBASE-R encoding over single-mode fiber with * reach up to at least 500 m (see IEEE 802.3 Clause 140) */ #define MC_CMD_ETH_TECH_50GBASE_DR 0x1a /* enum: 100GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3 * Clause 137 */ #define MC_CMD_ETH_TECH_100GBASE_KR2 0x1b /* enum: 100GBASE-R PCS/PMA over 2 lane multimode fiber PMD. See IEEE 802.3 * Clause 138 */ #define MC_CMD_ETH_TECH_100GBASE_SR2 0x1c /* enum: 100GBASE-R PCS/PMA over 2 lane shielded copper balanced cable PMD. See * IEEE 802.3 Clause 136 */ #define MC_CMD_ETH_TECH_100GBASE_CR2 0x1d /* enum: Unknown source */ #define MC_CMD_ETH_TECH_100GBASE_LR2_ER2_FR2 0x1e /* enum: Unknown source */ #define MC_CMD_ETH_TECH_100GBASE_DR2 0x1f /* enum: 200GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3 * Clause 137 */ #define MC_CMD_ETH_TECH_200GBASE_KR4 0x20 /* enum: 200GBASE-R PCS/PMA over 4 lane multimode fiber PMD. See IEEE 802.3 * Clause 138 */ #define MC_CMD_ETH_TECH_200GBASE_SR4 0x21 /* enum: 200GBASE-R PCS/PMA over 4 WDM lane single-mode fiber PMD as specified * in Clause 122 */ #define MC_CMD_ETH_TECH_200GBASE_LR4_ER4_FR4 0x22 /* enum: 200GBASE-R PCS/PMA over 4-lane single-mode fiber PMD. See IEEE 802.3 * Clause 121 */ #define MC_CMD_ETH_TECH_200GBASE_DR4 0x23 /* enum: 200GBASE-R PCS/PMA over 4 lane shielded copper balanced cable PMD as * specified in Clause 136 */ #define MC_CMD_ETH_TECH_200GBASE_CR4 0x24 /* enum: Ethernet Technology Consortium 400G AN Spec. 400GBASE-KR8 PMD uses * 802.3 Clause 137, but the number PMD lanes is 8. */ #define MC_CMD_ETH_TECH_400GBASE_KR8 0x25 /* enum: 400GBASE-R PCS/PMA over 8-lane multimode fiber PMD. See IEEE 802.3 * Clause 138 */ #define MC_CMD_ETH_TECH_400GBASE_SR8 0x26 /* enum: 400GBASE-R PCS/PMA over 8 WDM lane single-mode fiber PMD. See IEEE * 802.3 Clause 122 */ #define MC_CMD_ETH_TECH_400GBASE_LR8_ER8_FR8 0x27 /* enum: Unknown source */ #define MC_CMD_ETH_TECH_400GBASE_DR8 0x28 /* enum: Ethernet Technology Consortium 400G AN Spec. 400GBASE-CR8 PMD uses * IEEE 802.3 Clause 136, but the number PMD lanes is 8. */ #define MC_CMD_ETH_TECH_400GBASE_CR8 0x29 /* enum: 100GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3ck * Clause 163. */ #define MC_CMD_ETH_TECH_100GBASE_KR 0x2a /* enum: IEEE 802.3ck. 100G PHY with PMD as specified in Clause 167 over short * reach fiber */ #define MC_CMD_ETH_TECH_100GBASE_SR 0x2b /* enum: 100G PMD together with single-mode fiber medium. See IEEE 802.3 Clause * 140 */ #define MC_CMD_ETH_TECH_100GBASE_LR_ER_FR 0x2c /* enum: 100GBASE-R PCS/PMA over shielded balanced copper cable PMD. See IEEE * 802.3 in Clause 162 IEEE 802.3ck. */ #define MC_CMD_ETH_TECH_100GBASE_CR 0x2d /* enum: 100G PMD together with single-mode fiber medium. See IEEE 802.3 Clause * 140 */ #define MC_CMD_ETH_TECH_100GBASE_DR 0x2e /* enum: 200GBASE-R PCS/PMA over an electrical backplane PMD as specified in * Clause 163 IEEE 802.3ck */ #define MC_CMD_ETH_TECH_200GBASE_KR2 0x2f /* enum: 200G PHY with PMD as specified in Clause 167 over short reach fiber * IEEE 802.3ck */ #define MC_CMD_ETH_TECH_200GBASE_SR2 0x30 /* enum: Unknown source */ #define MC_CMD_ETH_TECH_200GBASE_LR2_ER2_FR2 0x31 /* enum: Unknown source */ #define MC_CMD_ETH_TECH_200GBASE_DR2 0x32 /* enum: 200GBASE-R PCS/PMA over 2 lane shielded balanced copper cable PMD as * specified in Clause 162 IEEE 802.3ck. */ #define MC_CMD_ETH_TECH_200GBASE_CR2 0x33 /* enum: 400GBASE-R PCS/PMA over an electrical backplane PMD. See IEEE 802.3 * Clause 163 IEEE 802.3ck. */ #define MC_CMD_ETH_TECH_400GBASE_KR4 0x34 /* enum: 400G PHY with PMD over short reach fiber. See Clause 167 of IEEE * 802.3ck. */ #define MC_CMD_ETH_TECH_400GBASE_SR4 0x35 /* enum: 400GBASE-R PCS/PMA over 4 WDM lane single-mode fiber PMD. See IEEE * 802.3 Clause 151 */ #define MC_CMD_ETH_TECH_400GBASE_LR4_ER4_FR4 0x36 /* enum: 400GBASE-R PCS/PMA over 4-lane single-mode fiber PMD as specified in * Clause 124 */ #define MC_CMD_ETH_TECH_400GBASE_DR4 0x37 /* enum: 400GBASE-R PCS/PMA over 4 lane shielded balanced copper cable PMD as * specified in Clause 162 of IEEE 802.3ck. */ #define MC_CMD_ETH_TECH_400GBASE_CR4 0x38 /* enum: Automatic tech mode. The driver must not use this. */ #define MC_CMD_ETH_TECH_AUTO 0x39 /* enum: See IEEE 802.3cc-2017 Clause 114 */ #define MC_CMD_ETH_TECH_25GBASE_LR_ER 0x3a /* enum: Up to 7 m over twinaxial copper cable assembly (10 lanes, 10 Gbit/s * each) See IEEE 802.3ba-2010 Clause 85 */ #define MC_CMD_ETH_TECH_100GBASE_CR10 0x3b /* enum: 800GBASE-R PCS/PMA over an electrical backplane PMD. 8-lane backplane; * clause TBD (IEEE 802.3dj draft) */ #define MC_CMD_ETH_TECH_800GBASE_KR8 0x3c /* enum: 800GBASE-R PCS/PMA over 8 lane shielded balanced copper cable PMD * (twinax). Clause TBD (IEEE 802.3dj draft) */ #define MC_CMD_ETH_TECH_800GBASE_CR8 0x3d /* enum: 800GBASE-R PCS/PMA over 8-lane multimode fiber PMD (short reach). * Clause TBD (IEEE 802.3dj draft) */ #define MC_CMD_ETH_TECH_800GBASE_SR8 0x3e /* enum: 800GBASE-R PCS/PMA over 8-lane single-mode fiber PMD (direct reach). * Clause TBD (IEEE 802.3dj draft) */ #define MC_CMD_ETH_TECH_800GBASE_DR8 0x3f /* enum: 800GBASE-R PCS/PMA over 8-lane very short reach medium (e.g., copper * or fiber). Clause TBD (IEEE 802.3dj draft) */ #define MC_CMD_ETH_TECH_800GBASE_VR8 0x40 /* enum: 800GBASE-R PCS/PMA over an electrical backplane PMD. 4-lane backplane * at 200 Gb/s per lane; clause TBD (IEEE 802.3dj draft) */ #define MC_CMD_ETH_TECH_800GBASE_KR4 0x41 /* enum: 800GBASE-R PCS/PMA over 4-lane shielded balanced copper cable PMD * (twinax), 200 Gb/s per lane; clause TBD (IEEE 802.3dj draft) */ #define MC_CMD_ETH_TECH_800GBASE_CR4 0x42 /* enum: 800GBASE-R PCS/PMA over 4-lane single-mode fiber PMD (direct reach), * 200 Gb/s per lane; clause TBD (IEEE 802.3dj draft) */ #define MC_CMD_ETH_TECH_800GBASE_DR4 0x43 /* enum: 10BASE-T PCS/PMA over twisted-pair copper cable. Refer to IEEE 802.3 * Clause 14 */ #define MC_CMD_ETH_TECH_10BASE_T 0x44 /* enum: 100BASEX PCS/PMA. See IEEE 802.3 Clause 24 over undefined PMD, duplex * mode unknown. */ #define MC_CMD_ETH_TECH_100BASE_X 0x45 /* enum: 1000BASE-SX PCS/PMA using short wavelength laser devices over * multimode fiber. Refer to IEEE 802.3 Clause 38 */ #define MC_CMD_ETH_TECH_1000BASE_SX 0x46 /* enum: 1000BASE-LX PCS/PMA using long wavelength laser devices over multimode * and single-mode fiber. Refer to IEEE 802.3 Clause 38 */ #define MC_CMD_ETH_TECH_1000BASE_LX 0x47 /* enum: 1000BASE-LX10 PCS/PMA for point-to-point link over two single-mode or * multimode optical fibers. Refer to IEEE 802.3 Clause 59 and Clause 66 */ #define MC_CMD_ETH_TECH_1000BASE_LX10 0x48 /* enum: 1000BASE-BX10 PCS/PMA for point-to-point link over one single-mode * optical fiber. Refer to IEEE 802.3 Clause 59 and Clause 66 */ #define MC_CMD_ETH_TECH_1000BASE_BX10 0x49 /* enum: 2.5GBASE-KX PCS/PMA over an electrical backplane PMD. Refer to IEEE * 802.3 Clause 128 */ #define MC_CMD_ETH_TECH_2500BASE_KX 0x4a /* enum: 5GBASE-KR PCS/PMA over an electrical backplane PMD. Refer to IEEE * 802.3 Clause 130 */ #define MC_CMD_ETH_TECH_5GBASE_KR 0x4b /* enum: 200GBASE-R PCS/PMA over an electrical backplane PMD. Clause 170 (IEEE * 802.3dj draft) */ #define MC_CMD_ETH_TECH_200GBASE_KR1 0x4c /* enum: 200GBASE-R PCS/PMA over 1 lane shielded balanced copper cable PMD. * Clause 179 (IEEE 802.3dj draft) */ #define MC_CMD_ETH_TECH_200GBASE_CR1 0x4d /* enum: 200GBASE-R PCS/PMA over 1-lane single-mode fiber PMD. Clause 180 (IEEE * 802.3dj draft) */ #define MC_CMD_ETH_TECH_200GBASE_DR1 0x4e /* enum: 400GBASE-R PCS/PMA over an electrical backplane PMD. Clause 178 (IEEE * 802.3dj draft) */ #define MC_CMD_ETH_TECH_400GBASE_KR2 0x4f /* enum: 400GBASE-R PCS/PMA over 2 lane shielded balanced copper cable PMD. * Clause 179 (IEEE 802.3dj draft) */ #define MC_CMD_ETH_TECH_400GBASE_CR2 0x50 /* enum: 400GBASE-R PCS/PMA over 2-lane single-mode fiber PMD. Clause 180 (IEEE * 802.3dj draft) */ #define MC_CMD_ETH_TECH_400GBASE_DR2 0x51 /* enum: Invalid tech mode. The driver must not use this. */ #define MC_CMD_ETH_TECH_NONE 0x7f #define MC_CMD_ETH_TECH_TECH_LBN 0 #define MC_CMD_ETH_TECH_TECH_WIDTH 128 /* MC_CMD_LINK_STATUS_FLAGS structuredef */ #define MC_CMD_LINK_STATUS_FLAGS_LEN 8 /* Flags used to report the current configuration/state of the link. */ #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_OFST 0 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_LEN 8 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_LO_OFST 0 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_LO_LEN 4 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_LO_LBN 0 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_LO_WIDTH 32 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_HI_OFST 4 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_HI_LEN 4 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_HI_LBN 32 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_HI_WIDTH 32 /* enum property: bitshift */ /* enum: Whether we have overall link up */ #define MC_CMD_LINK_STATUS_FLAGS_LINK_UP 0x0 /* enum: If set, the PHY has no external RX link synchronisation */ #define MC_CMD_LINK_STATUS_FLAGS_NO_PHY_LINK 0x1 /* enum: If set, PMD/MDI is not connected (e.g. cable disconnected, module cage * empty) */ #define MC_CMD_LINK_STATUS_FLAGS_PMD_MDI_DISCONNECTED 0x2 /* enum: Set on error while decoding module data (e.g. module EEPROM does not * contain valid values, has checksum errors, etc.) */ #define MC_CMD_LINK_STATUS_FLAGS_PMD_BAD 0x3 /* enum: Set when module unsupported (e.g. unsupported link rate or link * technology) */ #define MC_CMD_LINK_STATUS_FLAGS_PMD_UNSUPPORTED 0x4 /* enum: Set on error while communicating with the module (e.g. I2C errors * while reading EEPROM) */ #define MC_CMD_LINK_STATUS_FLAGS_PMD_COMMS_FAULT 0x5 /* enum: Set on module overcurrent/overvoltage condition */ #define MC_CMD_LINK_STATUS_FLAGS_PMD_POWER_FAULT 0x6 /* enum: Set on module overtemperature condition */ #define MC_CMD_LINK_STATUS_FLAGS_PMD_THERMAL_FAULT 0x7 /* enum: If set, the module is indicating Loss of Signal */ #define MC_CMD_LINK_STATUS_FLAGS_PMD_LOS 0x8 /* enum: If set, PMA is indicating loss of CDR lock (clock sync) */ #define MC_CMD_LINK_STATUS_FLAGS_PMA_NO_CDR_LOCK 0x9 /* enum: If set, PMA is indicating loss of analog signal */ #define MC_CMD_LINK_STATUS_FLAGS_PMA_LOS 0xa /* enum: If set, PCS is indicating loss of block lock */ #define MC_CMD_LINK_STATUS_FLAGS_PCS_NO_BLOCK_LOCK 0xb /* enum: If set, PCS is indicating loss of alignment marker lock on one or more * lanes */ #define MC_CMD_LINK_STATUS_FLAGS_PCS_NO_AM_LOCK 0xc /* enum: If set, PCS is indicating loss of overall alignment lock */ #define MC_CMD_LINK_STATUS_FLAGS_PCS_NO_ALIGN_LOCK 0xd /* enum: If set, PCS is indicating high bit error rate condition. */ #define MC_CMD_LINK_STATUS_FLAGS_PCS_HI_BER 0xe /* enum: If set, FEC is indicating loss of FEC lock */ #define MC_CMD_LINK_STATUS_FLAGS_FEC_NO_LOCK 0xf /* enum: If set, indicates that the number of symbol errors in a 8192-codeword * window has exceeded the threshold K (417). */ #define MC_CMD_LINK_STATUS_FLAGS_FEC_HI_SER 0x10 /* enum: If set, the receiver has detected the local FEC has degraded. */ #define MC_CMD_LINK_STATUS_FLAGS_FEC_LOCAL_DEGRADED 0x11 /* enum: If set, the receiver has detected the remote FEC has degraded. */ #define MC_CMD_LINK_STATUS_FLAGS_FEC_RM_DEGRADED 0x12 /* enum: If set, the number of symbol errors is over an internal threshold. */ #define MC_CMD_LINK_STATUS_FLAGS_FEC_DEGRADED_SER 0x13 /* enum: If set, autonegotiation has detected an auto-negotiation capable link * partner */ #define MC_CMD_LINK_STATUS_FLAGS_AN_ABLE 0x14 /* enum: If set, autonegotiation base page exchange has failed */ #define MC_CMD_LINK_STATUS_FLAGS_AN_BP_FAILED 0x15 /* enum: If set, autonegotiation next page exchange has failed */ #define MC_CMD_LINK_STATUS_FLAGS_AN_NP_FAILED 0x16 /* enum: If set, autonegotiation has failed to negotiate a common set of * capabilities */ #define MC_CMD_LINK_STATUS_FLAGS_AN_NO_HCD 0x17 /* enum: If set, local end link training has failed to establish link training * frame lock on one or more lanes */ #define MC_CMD_LINK_STATUS_FLAGS_LT_NO_LOCAL_FRAME_LOCK 0x18 /* enum: If set, remote end link training has failed to establish link training * frame lock on one or more lanes */ #define MC_CMD_LINK_STATUS_FLAGS_LT_NO_RM_FRAME_LOCK 0x19 /* enum: If set, remote end has failed to assert Receiver Ready (link training * success) within the designated timeout */ #define MC_CMD_LINK_STATUS_FLAGS_LT_NO_RX_READY 0x1a #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_LBN 0 #define MC_CMD_LINK_STATUS_FLAGS_STATUS_FLAGS_WIDTH 64 /* MC_CMD_PAUSE_MODE structuredef */ #define MC_CMD_PAUSE_MODE_LEN 1 #define MC_CMD_PAUSE_MODE_TYPE_OFST 0 #define MC_CMD_PAUSE_MODE_TYPE_LEN 1 /* enum: See IEEE 802.3 Clause 73.6.6 */ #define MC_CMD_PAUSE_MODE_AN_PAUSE 0x0 /* enum: See IEEE 802.3 Clause 73.6.6 */ #define MC_CMD_PAUSE_MODE_AN_ASYM_DIR 0x1 #define MC_CMD_PAUSE_MODE_TYPE_LBN 0 #define MC_CMD_PAUSE_MODE_TYPE_WIDTH 8 /* MC_CMD_LOOPBACK_V2 structuredef: Loopback modes for use with the new * MC_CMD_LINK_CTRL and MC_CMD_LINK_STATE. These loopback modes are not * supported in other getlink/setlink commands. */ #define MC_CMD_LOOPBACK_V2_LEN 4 #define MC_CMD_LOOPBACK_V2_MODE_OFST 0 #define MC_CMD_LOOPBACK_V2_MODE_LEN 4 /* enum: No loopback */ #define MC_CMD_LOOPBACK_V2_NONE 0x0 /* enum: Let firmware choose a supported loopback mode */ #define MC_CMD_LOOPBACK_V2_AUTO 0x1 /* enum: Loopback after the MAC */ #define MC_CMD_LOOPBACK_V2_POST_MAC 0x2 /* enum: Loopback after the PCS */ #define MC_CMD_LOOPBACK_V2_POST_PCS 0x3 /* enum: Loopback after the PMA */ #define MC_CMD_LOOPBACK_V2_POST_PMA 0x4 /* enum: Loopback after the MDI Wireside */ #define MC_CMD_LOOPBACK_V2_POST_MDI_WS 0x5 /* enum: Loopback after the PMA Wireside */ #define MC_CMD_LOOPBACK_V2_POST_PMA_WS 0x6 /* enum: Loopback after the PCS Wireside */ #define MC_CMD_LOOPBACK_V2_POST_PCS_WS 0x7 /* enum: Loopback after the MAC Wireside */ #define MC_CMD_LOOPBACK_V2_POST_MAC_WS 0x8 /* enum: Loopback after the MAC FIFOs (before the MAC) */ #define MC_CMD_LOOPBACK_V2_PRE_MAC 0x9 #define MC_CMD_LOOPBACK_V2_MODE_LBN 0 #define MC_CMD_LOOPBACK_V2_MODE_WIDTH 32 /* MC_CMD_FCNTL structuredef */ #define MC_CMD_FCNTL_LEN 4 #define MC_CMD_FCNTL_MASK_OFST 0 #define MC_CMD_FCNTL_MASK_LEN 4 /* enum: Flow control is off. */ #define MC_CMD_FCNTL_OFF 0x0 /* enum: Respond to flow control. */ #define MC_CMD_FCNTL_RESPOND 0x1 /* enum: Respond to and Issue flow control. */ #define MC_CMD_FCNTL_BIDIR 0x2 /* enum: Auto negotiate flow control. */ #define MC_CMD_FCNTL_AUTO 0x3 /* enum: Priority flow control. This is only supported on KSB. */ #define MC_CMD_FCNTL_QBB 0x4 /* enum: Issue flow control. */ #define MC_CMD_FCNTL_GENERATE 0x5 #define MC_CMD_FCNTL_MASK_LBN 0 #define MC_CMD_FCNTL_MASK_WIDTH 32 /* MC_CMD_LINK_FLAGS structuredef */ #define MC_CMD_LINK_FLAGS_LEN 4 /* The enums defined in this field are used as indices into the * MC_CMD_LINK_FLAGS bitmask. */ #define MC_CMD_LINK_FLAGS_MASK_OFST 0 #define MC_CMD_LINK_FLAGS_MASK_LEN 4 /* enum property: bitshift */ /* enum: Enable auto-negotiation. If AN is enabled, link technology and FEC * mode are determined by advertised capabilities and requested FEC modes, * combined with link partner capabilities. If AN is disabled, link technology * is forced to LINK_TECHNOLOGY and FEC mode is forced to FEC_MODE. Not valid * if loopback is enabled */ #define MC_CMD_LINK_FLAGS_AUTONEG_EN 0x0 /* enum: Enable parallel detect. In addition to AN, try to sense partner forced * speed/FEC mode (when partner AN disabled). Only valid if AN is enabled. */ #define MC_CMD_LINK_FLAGS_PARALLEL_DETECT_EN 0x1 /* enum: Force link down, in electrical idle. */ #define MC_CMD_LINK_FLAGS_LINK_DISABLE 0x2 /* enum: Ignore the sequence number and always apply. */ #define MC_CMD_LINK_FLAGS_IGNORE_MODULE_SEQ 0x3 /* enum: Power off the network port hardware. Low power capabilities vary * between different hardware solution but typically this will power down the * PHY, disable high speed I/O and gate the associated clocks. */ #define MC_CMD_LINK_FLAGS_POWER_OFF 0x4 #define MC_CMD_LINK_FLAGS_MASK_LBN 0 #define MC_CMD_LINK_FLAGS_MASK_WIDTH 32 /* PMA_TXEQ_CURSOR structuredef: This structure is used to represent the TXEQ * parameters for a given lane. It is used for PMA_TXEQ_GET/SET commands. Must * be 4-byte aligned so that arrays and arguments of the commands can be 32-bit * aligned. */ #define PMA_TXEQ_CURSOR_LEN 8 /* TXEQ cursor type describing the weight/coefficient/tap */ #define PMA_TXEQ_CURSOR_TYPE_OFST 0 #define PMA_TXEQ_CURSOR_TYPE_LEN 4 /* enum property: value */ /* Enum values, see field(s): */ /* PMA_TXEQ_CURSOR_TYPE */ #define PMA_TXEQ_CURSOR_TYPE_LBN 0 #define PMA_TXEQ_CURSOR_TYPE_WIDTH 32 /* TXEQ cursor value (weight/coefficient/tap etc.) */ #define PMA_TXEQ_CURSOR_VALUE_OFST 4 #define PMA_TXEQ_CURSOR_VALUE_LEN 4 #define PMA_TXEQ_CURSOR_VALUE_LBN 32 #define PMA_TXEQ_CURSOR_VALUE_WIDTH 32 #endif /* IFOE_MCDI_HOSTAPP_H */