tefmod_enum_defines.h (52058B)
1 /*---------------------------------------------------------------------- 2 * 3 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 4 * 5 * Copyright 2007-2019 Broadcom Inc. All rights reserved. 6 * 7 * $Copyright: (c) 2014 Broadcom Corporation All Rights Reserved.$ 8 * Broadcom Corporation 9 * Proprietary and Confidential information 10 * All rights reserved 11 * This source file is the property of Broadcom Corporation, and 12 * may not be copied or distributed in any isomorphic form without the 13 * prior written consent of Broadcom Corporation. 14 *--------------------------------------------------------------------- 15 ############### THIS FILE IS AUTOMATICALLY GENERATED. ############### 16 ############### DO !! NOT !! MANUALLY EDIT THIS FILE. ############### 17 *--------------------------------------------------------------------- 18 * Description: This file contains enums, elems and doxyten comments 19 * needed for SerDes Configuration programs. 20 *--------------------------------------------------------------------- 21 * CVS INFORMATION: 22 * Please see inc/enum_desc.txt for CVS information. 23 *---------------------------------------------------------------------- 24 */ 25 26 /* This file is automatically generated. Do not modify it. Modify the 27 * inc/enum_desc.txt to change enums, elems, or comments. For issues about 28 * the process that creates this file contact the tefmod development team. 29 */ 30 31 #ifndef _TSCFMOD_ENUM_DEFINES_H 32 #define _TSCFMOD_ENUM_DEFINES_H 33 34 /*! \enum tefmod_lane_select_t 35 36 tefmod_lane_select_t selects for programming, any combination of 4 lanes of PHY. 37 A '1' in the latter part of the enum name selects the lane. Other parameters 38 will decide what to do with the selected lane(s). In most cases we 39 enable/disable a feature on the selected lanes. 40 41 If lane_select is set to TEFMOD_LANE_BCST for writes we broadcast to all lanes. 42 43 Note that you cannot read in broadcast mode. 44 45 */ 46 47 typedef enum { 48 TEFMOD_LANE_0_0_0_0 = 0 , /*!< No lane selected */ 49 TEFMOD_LANE_0_0_0_1 , /*!< lane number 0 selected */ 50 TEFMOD_LANE_0_0_1_0 , /*!< lane number 1 selected */ 51 TEFMOD_LANE_0_0_1_1 , /*!< lane numbers 0,1 selected */ 52 TEFMOD_LANE_0_1_0_0 , /*!< lane number 2 selected */ 53 TEFMOD_LANE_0_1_0_1 , /*!< lane numbers 2,0 selected */ 54 TEFMOD_LANE_0_1_1_0 , /*!< lane numbers 2,1 selected */ 55 TEFMOD_LANE_0_1_1_1 , /*!< lane numbers 2,1,0 selected */ 56 TEFMOD_LANE_1_0_0_0 , /*!< lane number 3 selected */ 57 TEFMOD_LANE_1_0_0_1 , /*!< lane numbers 3,0 selected */ 58 TEFMOD_LANE_1_0_1_0 , /*!< lane numbers 3,1 selected */ 59 TEFMOD_LANE_1_0_1_1 , /*!< lane numbers 3,1,0 selected */ 60 TEFMOD_LANE_1_1_0_0 , /*!< lane numbers 3,2 selected */ 61 TEFMOD_LANE_1_1_0_1 , /*!< lane numbers 3,2,0 selected */ 62 TEFMOD_LANE_1_1_1_0 , /*!< lane numbers 3,2,1 selected */ 63 TEFMOD_LANE_1_1_1_1 , /*!< lane numbers 3,2,1,0 selected */ 64 TEFMOD_LANE_BCST , /*!< lane numbers 3,2,1,0 BCST */ 65 TEFMOD_LANE_ILLEGAL /*!< Illegal (programmatic boundary) */ 66 } tefmod_lane_select_t; 67 68 /*! \def CNT_tefmod_lane_select_t Types of enum tefmod_lane_select_t */ 69 #define CNT_tefmod_lane_select_t 18 70 71 /*! 72 \brief 73 This array returns the string version of the enum #tefmod_lane_select_t when 74 indexed by the enum var. 75 76 */ 77 extern char* e2s_tefmod_lane_select_t [CNT_tefmod_lane_select_t]; 78 /*! 79 \brief 80 This array associates the enum #tefmod_lane_select_t enum with a bit mask. 81 The index is the #tefmod_lane_select_t enum value. The value for each entry is 82 interpreted as follows. If bit [n] is 1, then lane [n] is enabled; if bit [n] 83 is 0, then lane [n] is disabled. By enabled, we mean that such-and-such 84 function is to be called for a lane; by disabled, we mean that such-and-such 85 function is not to be called for a lane. So a value of 0xF indicates that all 86 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled. 87 88 */ 89 extern int e2n_tefmod_lane_select_t [CNT_tefmod_lane_select_t]; 90 /*! \enum tefmod_spd_intfc_type_t 91 92 All legal speed-interface combination are encapsulated in this enum 93 94 There are several speed and interface combinations allowed for a logical PHY 95 port. Names and speeds are self explanatory. 96 97 Speed and interface selection is combined because we don't want the speeds 98 to be incompatible with interface. 99 100 */ 101 102 typedef enum { 103 TEFMOD_SPD_ZERO = 0 , /*!< Illegal value (enum boundary) */ 104 TEFMOD_SPD_10_SGMII , /*!< 10Mb SGMII (serial) */ 105 TEFMOD_SPD_100_SGMII , /*!< 100Mb SGMII (serial) */ 106 TEFMOD_SPD_1000_SGMII , /*!< 1Gb SGMII (serial) */ 107 TEFMOD_SPD_2500 , /*!< 2.5Gb based on 1000BASE-X */ 108 TEFMOD_SPD_10000_XFI , /*!< 10Gb serial XFI */ 109 TEFMOD_SPD_10600_XFI_HG , /*!< 10.5Gb serial XFI (HgSOLO) */ 110 TEFMOD_SPD_20000_XFI , /*!< 20Gb serial XFI */ 111 TEFMOD_SPD_21200_XFI_HG , /*!< 21.2Gb serial XFI (HgSOLO) */ 112 TEFMOD_SPD_25000_XFI , /*!< 25Gb serial XFI */ 113 TEFMOD_SPD_26500_XFI_HG , /*!< 26.5Gb serial XFI (HgSOLO) */ 114 TEFMOD_SPD_20G_MLD_X2 , /*!< 20Gb serial XFI */ 115 TEFMOD_SPD_21G_MLD_HG_X2 , /*!< 21.5Gb serial XFI (HgSOLO) */ 116 TEFMOD_SPD_40G_MLD_X2 , /*!< 40Gb serial XFI */ 117 TEFMOD_SPD_42G_MLD_HG_X2 , /*!< 42.4Gb serial XFI (HgSOLO) */ 118 TEFMOD_SPD_40G_MLD_X4 , /*!< 40Gb serial XFI */ 119 TEFMOD_SPD_42G_MLD_HG_X4 , /*!< 42.4Gb serial XFI (HgSOLO) */ 120 TEFMOD_SPD_50G_MLD_X2 , /*!< 50Gb serial XFI */ 121 TEFMOD_SPD_53G_MLD_HG_X2 , /*!< 53.0Gb serial XFI (HgSOLO) */ 122 TEFMOD_SPD_100G_MLD_X4 , /*!< 100Gb serial XFI */ 123 TEFMOD_SPD_106G_MLD_HG_X4 , /*!< 106.0Gb serial XFI (HgSOLO) */ 124 TEFMOD_SPD_10000_HI , /*!< 10Gb XAUI HiG */ 125 TEFMOD_SPD_10000 , /*!< 10Gb XAUI */ 126 TEFMOD_SPD_12000_HI , /*!< 12Gb XAUI HiG */ 127 TEFMOD_SPD_13000 , /*!< 13Gb XAUI */ 128 TEFMOD_SPD_15000 , /*!< 15Gb XAUI */ 129 TEFMOD_SPD_16000 , /*!< 16Gb XAUI */ 130 TEFMOD_SPD_20000 , /*!< 20Gb XFI */ 131 TEFMOD_SPD_20000_SCR , /*!< 20Gb XAUI scrambled */ 132 TEFMOD_SPD_21000 , /*!< 21Gb XAUI */ 133 TEFMOD_SPD_25455 , /*!< 25Gb XFI 64/66 codec */ 134 TEFMOD_SPD_31500 , /*!< 31.5Gb quad lane XAUI */ 135 TEFMOD_SPD_40G_X4 , /*!< 40Gb quad lane XAUI */ 136 TEFMOD_SPD_42G_X4 , /*!< 40Gb quad lane XAUI HiG */ 137 TEFMOD_SPD_40G_XLAUI , /*!< 40Gb quad lane MLD */ 138 TEFMOD_SPD_42G_XLAUI , /*!< 42Gb quad lane MLD */ 139 TEFMOD_SPD_10000_X2 , /*!< 10Gb dual lane */ 140 TEFMOD_SPD_10000_HI_DXGXS , /*!< 10Gb dual lane XGXS HiG */ 141 TEFMOD_SPD_10000_DXGXS , /*!< 10Gb dual lane XGXS */ 142 TEFMOD_SPD_10000_HI_DXGXS_SCR , /*!< 10Gb dual lane,scrambled,HiG */ 143 TEFMOD_SPD_10000_DXGXS_SCR , /*!< 10Gb dual lane scrambled */ 144 TEFMOD_SPD_10500_HI_DXGXS , /*!< 10.5Gb dual lane XGXS HiG */ 145 TEFMOD_SPD_12773_HI_DXGXS , /*!< 12.73Gb dual lane XGXS HiG */ 146 TEFMOD_SPD_12773_DXGXS , /*!< 12.73Gb dual lane XGXS */ 147 TEFMOD_SPD_15750_HI_DXGXS , /*!< 15.75Gb scrambled dual lane HiG */ 148 TEFMOD_SPD_20G_MLD_DXGXS , /*!< 20Gb dual lane MLD */ 149 TEFMOD_SPD_21G_HI_MLD_DXGXS , /*!< 20Gb dual lane HiG MLD */ 150 TEFMOD_SPD_20G_DXGXS , /*!< 20Gb dual lane BRCM */ 151 TEFMOD_SPD_21G_HI_DXGXS , /*!< 21.2Gb dual HiG(20+plldiv=70) */ 152 TEFMOD_SPD_100G_CR10 , /*!< 100G */ 153 TEFMOD_SPD_120G_CR12 , /*!< 120G */ 154 TEFMOD_SPD_10000_XFI_HG2 , /*!< 10G HG2 */ 155 TEFMOD_SPD_50G_MLD_X4 , /*!< 50G Serial XFI */ 156 TEFMOD_SPD_53G_MLD_HG_X4 , /*!< 53G Serial XFI (HgSOLO) */ 157 TEFMOD_SPD_10000_XFI_CR1 , /*!< 10Gb serial XFI */ 158 TEFMOD_SPD_10600_XFI_HG_CR1 , /*!< 10Gb serial XFI */ 159 TEFMOD_SPD_CL73_20G , /*!< 1G CL73 Auto-neg */ 160 TEFMOD_SPD_CL73_25G , /*!< 1G CL73 Auto-neg */ 161 TEFMOD_SPD_1G_20G , /*!< 1G CL36 1G */ 162 TEFMOD_SPD_1G_25G , /*!< 1G CL36 1G */ 163 TEFMOD_SPD_10G_25G , /*!< 10G CL36 with 25G vco */ 164 TEFMOD_SPD_ILLEGAL /*!< Illegal value (enum boundary) */ 165 } tefmod_spd_intfc_type_t; 166 167 /*! \def CNT_tefmod_spd_intfc_type_t Types of enum tefmod_spd_intfc_type_t */ 168 #define CNT_tefmod_spd_intfc_type_t 62 169 170 /*! 171 \brief 172 This array returns the string version of the enum #tefmod_lane_select_t when 173 indexed by the enum var. 174 175 */ 176 extern char* e2s_tefmod_spd_intfc_type_t [CNT_tefmod_spd_intfc_type_t]; 177 /*! 178 \brief 179 This array associates the enum #tefmod_lane_select_t enum with a bit mask. 180 The index is the #tefmod_lane_select_t enum value. The value for each entry is 181 interpreted as follows. If bit [n] is 1, then lane [n] is enabled; if bit [n] 182 is 0, then lane [n] is disabled. By enabled, we mean that such-and-such 183 function is to be called for a lane; by disabled, we mean that such-and-such 184 function is not to be called for a lane. So a value of 0xF indicates that all 185 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled. 186 187 */ 188 extern int e2n_tefmod_spd_intfc_type_t [CNT_tefmod_spd_intfc_type_t]; 189 190 /*! \enum tefmod_regacc_type_t 191 MDIO access to PHY registers are no longer supported. 192 */ 193 194 typedef enum { 195 TEFMOD_REGACC_CL22 = 0 , /*!< IEEE clause 22 based MDIO (for PMD only) */ 196 TEFMOD_REGACC_CL45 , /*!< IEEE clause 45 based MDIO (for PMD only) */ 197 TEFMOD_REGACC_TOTSC , /*!< Mission mode */ 198 TEFMOD_REGACC_SBUS_FD , /*!< Probably used in PM testbenches */ 199 TEFMOD_REGACC_SBUS_BD , /*!< Probably used in PM testbenches */ 200 TEFMOD_REGACC_ILLEGAL /*!< Illegal value (enum boundary) */ 201 } tefmod_regacc_type_t; 202 203 /*! \def CNT_tefmod_regacc_type_t Types of enum tefmod_regacc_type_t */ 204 #define CNT_tefmod_regacc_type_t 6 205 206 /*! 207 \brief 208 This array returns the string version of the enum #e2s_tefmod_regacc_type_t when indexed 209 by the enum var. 210 211 */ 212 extern char* e2s_tefmod_regacc_type_t [CNT_tefmod_regacc_type_t]; 213 /*! \enum tefmod_port_type_t 214 215 This is the port mode type enumeration. 216 217 WC can be configured in combo mode (i.e. entire WC is a single port) or 218 independent mode (i.e. WC has more than one port (2, 3, or 4) that are 219 controlled individually. 220 221 */ 222 223 typedef enum { 224 TEFMOD_MULTI_PORT = 0 , /*!< Each channel is one logical port */ 225 TEFMOD_TRI1_PORT , /*!< 3 ports, one of them paird as follows (0,1,2-3) */ 226 TEFMOD_TRI2_PORT , /*!< 3 ports, one of them paird as follows (0-1,2,3) */ 227 TEFMOD_DXGXS , /*!< Each paired channel(0-1, 2-3) is one logical port */ 228 TEFMOD_SINGLE_PORT , /*!< single port mode: 4 channels as one logical port */ 229 TEFMOD_PORT_MODE_ILLEGAL /*!< Illegal value (enum boundary) */ 230 } tefmod_port_type_t; 231 232 /*! \def CNT_tefmod_port_type_t Types of enum tefmod_port_type_t */ 233 #define CNT_tefmod_port_type_t 6 234 235 /*! 236 \brief 237 This array returns the string version of the enum #tefmod_port_type_t when indexed 238 by the enum var. 239 240 */ 241 extern char* e2s_tefmod_port_type_t [CNT_tefmod_port_type_t]; 242 /*! \enum tefmod_sc_mode_type_t 243 244 This is the sc mode type enumeration. 245 246 247 248 */ 249 250 typedef enum { 251 TEFMOD_SC_MODE_HT_WITH_BASIC_OVERRIDE = 0 , /*!< TEFMOD_SC_MODE_HT_WITH_BASIC_OVERRIDE */ 252 TEFMOD_SC_MODE_HT_OVERRIDE , /*!< TEFMOD_SC_MODE_ST_OVERRIDE */ 253 TEFMOD_SC_MODE_ST , /*!< TEFMOD_SC_MODE_ST */ 254 TEFMOD_SC_MODE_ST_OVERRIDE , /*!< TEFMOD_SC_MODE_ST */ 255 TEFMOD_SC_MODE_AN_CL37 , /*!< TEFMOD_SC_MODE_AN_CL73 */ 256 TEFMOD_SC_MODE_AN_CL73 , /*!< TEFMOD_SC_MODE_AN_CL73 */ 257 TEFMOD_SC_MODE_BYPASS , /*!< TEFMOD_SC_MODE_BYPASS */ 258 TEFMOD_SC_MODE_ILLEGAL /*!< Illegal value (enum boundary) */ 259 } tefmod_sc_mode_type_t; 260 261 /*! \def CNT_tefmod_sc_mode_type_t Types of enum tefmod_sc_mode_type_t */ 262 #define CNT_tefmod_sc_mode_type_t 8 263 264 /*! 265 \brief 266 This array returns the string version of the enum #tefmod_port_type_t when indexed 267 by the enum var. 268 269 */ 270 extern char* e2s_tefmod_sc_mode_type_t [CNT_tefmod_sc_mode_type_t]; 271 /*! \enum tefmod_diag_type_t 272 273 tefmod_diag_type_t enumerates categories of diagnostic data. 274 has many intermediate stages between down and up. This enum is work in progress 275 276 277 <table cellspacing=0> 278 <tr><td colspan=3><B>'per_lane_control' bit-mappings</B></td></tr> 279 280 <tr><td><B>Type</B></td><td><B>Description</B></td><td><B>Scope</B></td></tr> 281 282 <tr><td>General</td> 283 <td> Combo/independent, Device and Revision Id, VCO settings, Firmware state 284 and version, active/passive lanes, MDIO type. PLL info, Oversampling Info</td> 285 <td>Device</td></tr> 286 287 <tr><td>Link</td> 288 <td> Speeds, oversampling, interface, forced/Autoneg, link status, sync 289 status, RX sequencer on/off </td> 290 <td>Lane</td></tr> 291 292 <tr><td>Autoneg</td> 293 <td> Local and remote advertisement, link status, cl73/37/BAM info </td> 294 <td>Lane</td></tr> 295 296 <tr><td>Internal Traffic</td> 297 <td> PRBS type, CJPat Type, Prog_data value, Any associated recorded errors, 298 and misc. info (IPG etc.)</td> 299 <td>Lane </td></tr> 300 301 <tr> 302 <td>DFE</td> 303 <td>Equalization info, Tap settings. (pre/post/overrides), peaking filter values </td> 304 <td>Lane</td></tr> 305 306 <tr><td>IEEE info</td> 307 <td>Clause 72, FEC</td> 308 <td>Lane</td></tr> 309 310 <tr><td>Topology</td> 311 <td>Looping info (Gloop/rloop), lane swapping, polarity swap info</td> 312 <td>Device</td></tr> 313 314 <tr><td>EEE</td> 315 <td>EEE full, passthru modes, some window values?</td> 316 <td>Lane</td></tr> 317 318 <tr><td>Eye Margin</td> 319 <td>Eye margin measurement (readout only)</td> 320 <td>Lane</td></tr> 321 322 <tr><td>All</td> 323 <td>All of the above. Except eye margin.</td> 324 <td>Device</td></tr> 325 326 </table> 327 328 329 */ 330 331 typedef enum { 332 TEFMOD_DIAG_GENERAL = 0x00000001 , /*!< General device wide information. */ 333 TEFMOD_DIAG_TOPOLOGY = 0x00000002 , /*!< Loopbacks etc. */ 334 TEFMOD_DIAG_LINK = 0x00000004 , /*!< Link specific info. */ 335 TEFMOD_DIAG_SPEED = 0x00000008 , /*!< sub-category of TEFMOD_DIAG_LINK(for SDK)*/ 336 TEFMOD_DIAG_ANEG = 0x00000010 , /*!< Autoneg specific info. */ 337 TEFMOD_DIAG_TFC = 0x00000020 , /*!< State of tx/rx internal tfc */ 338 TEFMOD_DIAG_AN_TIMERS = 0x00000040 , /*!< AN timers */ 339 TEFMOD_DIAG_STATE = 0x00000080 , /*!< Debug state registers */ 340 TEFMOD_DIAG_DEBUG = 0x00000100 , /*!< Debug */ 341 TEFMOD_DIAG_IEEE = 0x00000200 , /*!< IEEE related info */ 342 TEFMOD_DIAG_EEE = 0x00000400 , /*!< EEE */ 343 344 TEFMOD_DIAG_BER = 0x00000800 , /*!< BER - PMD bit error rate */ 345 TEFMOD_DIAG_CFG = 0x00001000 , /*!< CFG - PMD Lane/Core Config */ 346 TEFMOD_DIAG_CL72 = 0x00002000 , /*!< CL72 - Status */ 347 TEFMOD_DIAG_DSC = 0x00004000 , /*!< DSC dump */ 348 TEFMOD_DIAG_DSC_STD = 0x00010000 , /*!< DSC dump */ 349 #if 0 350 TEFMOD_SERDES_DIAG = 0x80000000UL , /*!< PMD Triage */ 351 TEFMOD_DIAG_ALL = 0xffffffffUL , /*!< Everything but eye margin */ 352 #else 353 TEFMOD_SERDES_DIAG = 0x00008000 , /*!< PMD Triage */ 354 TEFMOD_DIAG_ALL = 0x0000ffff , /*!< Everything but eye margin */ 355 #endif 356 TEFMOD_DIAG_ILLEGAL = 0x00000000 /*!< Illegal value. programmatic boundary. */ 357 } tefmod_diag_type_t; 358 359 /*! \def CNT_tefmod_diag_type_t Types of enum tefmod_diag_type_t */ 360 #define CNT_tefmod_diag_type_t 18 361 362 /*! 363 \brief 364 This array returns the string version of the enum #tefmod_port_type_t when indexed 365 by the enum var. 366 367 */ 368 extern char* e2s_tefmod_diag_type_t [CNT_tefmod_diag_type_t]; 369 /*! \enum tefmod_model_type_t 370 371 tefmod_model_type_t enumerates different generations and revisions of PHY. 372 Note that we pretty much only look at different versions of PHY. 373 374 We rely on all the information being in the SERDES_ID register. 375 376 377 */ 378 379 typedef enum { 380 TEFMOD_WC = 0 , /*!< Generic PHY (any model) */ 381 TEFMOD_WC_A0 , /*!< PHY Version A0 */ 382 TEFMOD_WC_A1 , /*!< PHY Version A1 */ 383 TEFMOD_WC_A2 , /*!< PHY Version A2 */ 384 TEFMOD_WC_B0 , /*!< PHY Version B0 */ 385 TEFMOD_WC_B1 , /*!< PHY Version B1 */ 386 TEFMOD_WC_B2 , /*!< PHY Version B2 */ 387 TEFMOD_WC_C0 , /*!< PHY Version C0, model no. differs from other WCs */ 388 TEFMOD_WC_C1 , /*!< PHY Version C1, model no. differs from other WCs */ 389 TEFMOD_WC_C2 , /*!< PHY Version C2, model no. differs from other WCs */ 390 TEFMOD_WC_D0 , /*!< PHY Version D0 */ 391 TEFMOD_WC_D1 , /*!< PHY Version D1 */ 392 TEFMOD_WC_D2 , /*!< PHY Version D2 */ 393 TEFMOD_XN , /*!< Generic Xenia Core (any model) */ 394 TEFMOD_WL , /*!< Generic PHY Lite (any model) */ 395 TEFMOD_WL_A0 , /*!< WarpLite Core */ 396 TEFMOD_QS , /*!< Generic QSGMII core (any model) */ 397 TEFMOD_QS_A0 , /*!< QSGMII core Version A0 */ 398 TEFMOD_QS_B0 , /*!< QSGMII core Version B0 */ 399 TEFMOD_MODEL_TYPE_ILLEGAL /*!< Illegal value. programmatic boundary. */ 400 } tefmod_model_type_t; 401 402 /*! \def CNT_tefmod_model_type_t Types of enum tefmod_model_type_t */ 403 #define CNT_tefmod_model_type_t 20 404 405 /*! 406 \brief 407 This array returns the string version of the enum #tefmod_port_type_t when indexed 408 by the enum var. 409 410 */ 411 extern char* e2s_tefmod_model_type_t [CNT_tefmod_model_type_t]; 412 /*! \enum tefmod_an_type_t 413 414 tefmod_an_type_t enumerates different types of autoneg modes in the PHY. 415 416 */ 417 418 typedef enum { 419 TEFMOD_CL73 = 0 , /*!< PHY autoneg CL73 enable */ 420 TEFMOD_CL37 , /*!< PHY autoneg CL37 enable */ 421 TEFMOD_CL73_BAM , /*!< PHY autoneg CL73 enable with Brcm Aneg Mode */ 422 TEFMOD_CL37_BAM , /*!< PHY autoneg CL37 enable with Brcm Aneg Mode */ 423 TEFMOD_CL37_SGMII , /*!< PHY autoneg for SGMII */ 424 TEFMOD_HPAM , /*!< PHY autoneg for HP aneg */ 425 TEFMOD_MSA , /*!< PHY autoneg for 25G/50G consortium spec */ 426 TEFMOD_CL73_MSA , /*!< PHY autoneg for CL73 and 25G/50G consortium spec */ 427 TEFMOD_AN_TYPE_ILLEGAL /*!< Illegal value. programmatic boundary. */ 428 } tefmod_an_type_t; 429 430 /*! \def CNT_tefmod_an_type_t Types of enum tefmod_an_type_t */ 431 #define CNT_tefmod_an_type_t 9 432 433 /*! 434 \brief 435 This array returns the string version of the enum #tefmod_port_type_t when indexed 436 by the enum var. 437 438 */ 439 extern char* e2s_tefmod_an_type_t [CNT_tefmod_an_type_t]; 440 /*! \enum tefmod_eye_direction_t 441 442 The direction of slicer changing always moves from the middle of the eye. 443 Currently all speeds have the following bit positions. 444 445 \li TEFMOD_EYE_VU: Vertical, Upward direction 446 \li TEFMOD_EYE_VD: Vertical, Downward direction 447 \li TEFMOD_EYE_HL: Horizontal, Left direction 448 \li TEFMOD_EYE_HR: Horizontal, Right direction 449 450 */ 451 452 typedef enum { 453 TEFMOD_EYE_VU = 0 , /*!< Vertical, Upward direction */ 454 TEFMOD_EYE_VD , /*!< Vertical, Downward direction */ 455 TEFMOD_EYE_HL , /*!< Horizontal, Left direction */ 456 TEFMOD_EYE_HR , /*!< Horizontal, Right direction */ 457 TEFMOD_EYE_ILLEGAL /*!< Programmatic illegal boundary. */ 458 } tefmod_eye_direction_t; 459 460 /*! \def CNT_tefmod_eye_direction_t Types of enum tefmod_eye_direction_t */ 461 #define CNT_tefmod_eye_direction_t 5 462 463 /*! 464 \brief 465 This array returns the string version of the enum #tefmod_port_type_t when indexed 466 by the enum var. 467 468 */ 469 extern char* e2s_tefmod_eye_direction_t [CNT_tefmod_eye_direction_t]; 470 471 472 typedef enum { 473 TEFMOD_ASPD_10M = 0 , /*!< No documentation */ 474 TEFMOD_ASPD_100M , /*!< No documentation */ 475 TEFMOD_ASPD_1000M , /*!< No documentation */ 476 TEFMOD_ASPD_2p5G_X1 , /*!< No documentation */ 477 TEFMOD_ASPD_5G_X4 , /*!< No documentation */ 478 TEFMOD_ASPD_6G_X4 , /*!< No documentation */ 479 TEFMOD_ASPD_10G_X4 , /*!< No documentation */ 480 TEFMOD_ASPD_10G_CX4 , /*!< No documentation */ 481 TEFMOD_ASPD_12G_X4 , /*!< No documentation */ 482 TEFMOD_ASPD_12p5G_X4 , /*!< No documentation */ 483 TEFMOD_ASPD_13G_X4 , /*!< No documentation */ 484 TEFMOD_ASPD_15G_X4 , /*!< No documentation */ 485 TEFMOD_ASPD_16G_X4 , /*!< No documentation */ 486 TEFMOD_ASPD_1G_KX1 , /*!< No documentation */ 487 TEFMOD_ASPD_10G_KX4 , /*!< No documentation */ 488 TEFMOD_ASPD_10G_KR1 , /*!< No documentation */ 489 TEFMOD_ASPD_5G_X1 , /*!< No documentation */ 490 TEFMOD_ASPD_6p36G_X1 , /*!< No documentation */ 491 TEFMOD_ASPD_20G_CX4 , /*!< No documentation */ 492 TEFMOD_ASPD_21G_X4 , /*!< No documentation */ 493 TEFMOD_ASPD_25p45G_X4 , /*!< No documentation */ 494 TEFMOD_ASPD_10G_X2_NOSCRAMBLE , /*!< No documentation */ 495 TEFMOD_ASPD_10G_CX2_NOSCRAMBLE , /*!< No documentation */ 496 TEFMOD_ASPD_10p5G_X2 , /*!< No documentation */ 497 TEFMOD_ASPD_10p5G_CX2_NOSCRAMBLE , /*!< No documentation */ 498 TEFMOD_ASPD_12p7G_X2 , /*!< No documentation */ 499 TEFMOD_ASPD_12p7G_CX2 , /*!< No documentation */ 500 TEFMOD_ASPD_10G_X1 , /*!< No documentation */ 501 TEFMOD_ASPD_40G_X4 , /*!< No documentation */ 502 TEFMOD_ASPD_20G_X2 , /*!< No documentation */ 503 TEFMOD_ASPD_20G_CX2 , /*!< No documentation */ 504 TEFMOD_ASPD_10G_SFI , /*!< No documentation */ 505 TEFMOD_ASPD_31p5G_X4 , /*!< No documentation */ 506 TEFMOD_ASPD_32p7G_X4 , /*!< No documentation */ 507 TEFMOD_ASPD_20G_X4 , /*!< No documentation */ 508 TEFMOD_ASPD_10G_X2 , /*!< No documentation */ 509 TEFMOD_ASPD_10G_CX2 , /*!< No documentation */ 510 TEFMOD_ASPD_12G_SCO_R2 , /*!< No documentation */ 511 TEFMOD_ASPD_10G_SCO_X2 , /*!< No documentation */ 512 TEFMOD_ASPD_40G_KR4 , /*!< No documentation */ 513 TEFMOD_ASPD_40G_CR4 , /*!< No documentation */ 514 TEFMOD_ASPD_100G_CR10 , /*!< No documentation */ 515 TEFMOD_ASPD_5G_X2 , /*!< No documentation */ 516 TEFMOD_ASPD_15p75G_X2 , /*!< No documentation */ 517 TEFMOD_ASPD_2G_FC , /*!< No documentation */ 518 TEFMOD_ASPD_4G_FC , /*!< No documentation */ 519 TEFMOD_ASPD_8G_FC , /*!< No documentation */ 520 TEFMOD_ASPD_10G_CX1 , /*!< No documentation */ 521 TEFMOD_ASPD_1G_CX1 , /*!< No documentation */ 522 TEFMOD_ASPD_20G_KR2 , /*!< No documentation */ 523 TEFMOD_ASPD_20G_CR2 , /*!< No documentation */ 524 TEFMOD_ASPD_TYPE_ILLEGAL /*!< Programmatic illegal boundary. */ 525 } tefmod_aspd_type_t; 526 527 /*! \def CNT_tefmod_aspd_type_t Types of enum tefmod_aspd_type_t */ 528 #define CNT_tefmod_aspd_type_t 52 529 530 /*! 531 \brief 532 This array returns the string version of the enum #tefmod_port_type_t when indexed 533 by the enum var. 534 535 */ 536 extern char* e2s_tefmod_aspd_type_t [CNT_tefmod_aspd_type_t]; 537 /*! 538 \brief 539 This array associates the enum #tefmod_lane_select_t enum with a bit mask. 540 The index is the #tefmod_lane_select_t enum value. The value for each entry is 541 interpreted as follows. If bit [n] is 1, then lane [n] is enabled; if bit [n] 542 is 0, then lane [n] is disabled. By enabled, we mean that such-and-such 543 function is to be called for a lane; by disabled, we mean that such-and-such 544 function is not to be called for a lane. So a value of 0xF indicates that all 545 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled. 546 547 */ 548 extern int e2n_tefmod_aspd_type_t [CNT_tefmod_aspd_type_t]; 549 /*! \enum tefmod_tech_ability_t 550 551 tefmod_tech_ability_t enumerates different types of speed advertisements in the 552 basic autoneg page. Currently for CL73 only. 553 554 Currently all speeds have the following bit positions in tefmod_st 555 556 \li TEFMOD_ABILITY_1G Bit Pos: 0 557 \li TEFMOD_ABILITY_10G_KR Bit Pos: 1 558 \li TEFMOD_ABILITY_40G_KR4 Bit Pos: 2 559 \li TEFMOD_ABILITY_40G_CR4 Bit Pos: 3 560 \li TEFMOD_ABILITY_100G_CR10 Bit Pos: 4 561 \li TEFMOD_ABILITY_10G_HIGIG Bit Pos: 5 562 \li TEFMOD_ABILITY_10G_CX4 Bit Pos: 6 563 \li TEFMOD_ABILITY_20G_X4 Bit Pos: 7 564 \li TEFMOD_ABILITY_40G Bit Pos: 8 565 \li TEFMOD_ABILITY_25P455G Bit Pos: 9 566 \li TEFMOD_ABILITY_21G_X4 Bit Pos: 10 567 \li TEFMOD_ABILITY_20G_X4S Bit Pos: 11 568 \li TEFMOD_ABILITY_10G_DXGXS_HIGIG Bit Pos: 12 569 \li TEFMOD_ABILITY_10G_DXGXS Bit Pos: 13 570 \li TEFMOD_ABILITY_10P5G_DXGXS Bit Pos: 14 571 \li TEFMOD_ABILITY_12P5_DXGXS Bit Pos: 15 572 \li TEFMOD_ABILITY_20G_KR2_HIGIG Bit Pos: 16 573 \li TEFMOD_ABILITY_20G_KR2 Bit Pos: 17 574 \li TEFMOD_ABILITY_20G_CR2 Bit Pos: 18 575 \li TEFMOD_ABILITY_15P75G_R2 Bit Pos: 19 576 \li TEFMOD_ABILITY_100G_KR4 Bit Pos: 20 577 \li TEFMOD_ABILITY_100G_CR4 Bit Pos: 21 578 \li TEFMOD_ABILITY_40G_KR2 Bit Pos: 22 579 \li TEFMOD_ABILITY_40G_CR2 Bit Pos: 23 580 \li TEFMOD_ABILITY_50G_KR2 Bit Pos: 24 581 \li TEFMOD_ABILITY_50G_CR2 Bit Pos: 25 582 \li TEFMOD_ABILITY_50G_KR4 Bit Pos: 26 583 \li TEFMOD_ABILITY_50G_CR4 Bit Pos: 27 584 \li TEFMOD_ABILITY_20G_KR1 Bit Pos: 28 585 \li TEFMOD_ABILITY_20G_CR1 Bit Pos: 29 586 \li TEFMOD_ABILITY_25G_KR1 Bit Pos: 30 587 \li TEFMOD_ABILITY_25G_CR1 Bit Pos: 31 588 589 590 */ 591 592 typedef enum { 593 TEFMOD_ABILITY_1G = 0 , /*!< please write comments */ 594 TEFMOD_ABILITY_10G_KR , /*!< please write comments */ 595 TEFMOD_ABILITY_40G_KR4 , /*!< please write comments */ 596 TEFMOD_ABILITY_40G_CR4 , /*!< please write comments */ 597 TEFMOD_ABILITY_100G_CR10 , /*!< please write comments */ 598 TEFMOD_ABILITY_10G_HIGIG , /*!< please write comments */ 599 TEFMOD_ABILITY_10G_CX4 , /*!< please write comments */ 600 TEFMOD_ABILITY_20G_X4 , /*!< please write comments */ 601 TEFMOD_ABILITY_40G , /*!< please write comments */ 602 TEFMOD_ABILITY_25P455G , /*!< please write comments */ 603 TEFMOD_ABILITY_21G_X4 , /*!< please write comments */ 604 TEFMOD_ABILITY_20G_X4S , /*!< XAUI 8b10b scrambled data */ 605 TEFMOD_ABILITY_10G_DXGXS_HIGIG , /*!< please write comments */ 606 TEFMOD_ABILITY_10G_DXGXS , /*!< please write comments */ 607 TEFMOD_ABILITY_10P5G_DXGXS , /*!< please write comments */ 608 TEFMOD_ABILITY_12P5_DXGXS , /*!< please write comments */ 609 TEFMOD_ABILITY_20G_KR2_HIGIG , /*!< please write comments */ 610 TEFMOD_ABILITY_20G_KR2 , /*!< please write comments */ 611 TEFMOD_ABILITY_20G_CR2 , /*!< please write comments */ 612 TEFMOD_ABILITY_15P75G_R2 , /*!< please write comments */ 613 TEFMOD_ABILITY_100G_KR4 , /*!< please write comments */ 614 TEFMOD_ABILITY_100G_CR4 , /*!< please write comments */ 615 TEFMOD_ABILITY_40G_KR2 , /*!< please write comments */ 616 TEFMOD_ABILITY_40G_CR2 , /*!< please write comments */ 617 TEFMOD_ABILITY_50G_KR2 , /*!< please write comments */ 618 TEFMOD_ABILITY_50G_CR2 , /*!< please write comments */ 619 TEFMOD_ABILITY_50G_KR4 , /*!< please write comments */ 620 TEFMOD_ABILITY_50G_CR4 , /*!< please write comments */ 621 TEFMOD_ABILITY_20G_KR1 , /*!< please write comments */ 622 TEFMOD_ABILITY_20G_CR1 , /*!< please write comments */ 623 TEFMOD_ABILITY_25G_KR1 , /*!< please write comments */ 624 TEFMOD_ABILITY_25G_CR1 , /*!< please write comments */ 625 TEFMOD_ABILITY_ILLEGAL /*!< Illegal. Programmatic boundary */ 626 } tefmod_tech_ability_t; 627 628 /*! \def CNT_tefmod_tech_ability_t Types of enum tefmod_tech_ability_t */ 629 #define CNT_tefmod_tech_ability_t 33 630 631 /*! 632 \brief 633 This array returns the string version of the enum #tefmod_port_type_t when indexed 634 by the enum var. 635 636 */ 637 extern char* e2s_tefmod_tech_ability_t [CNT_tefmod_tech_ability_t]; 638 /*! 639 \brief 640 This array associates the enum #tefmod_lane_select_t enum with a bit mask. 641 The index is the #tefmod_lane_select_t enum value. The value for each entry is 642 interpreted as follows. If bit [n] is 1, then lane [n] is enabled; if bit [n] 643 is 0, then lane [n] is disabled. By enabled, we mean that such-and-such 644 function is to be called for a lane; by disabled, we mean that such-and-such 645 function is not to be called for a lane. So a value of 0xF indicates that all 646 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled. 647 648 */ 649 extern int e2n_tefmod_tech_ability_t [CNT_tefmod_tech_ability_t]; 650 /*! \enum tefmod_cl37bam_ability_t 651 652 This array associates the enum #tefmod_lane_select_t enum with a bit mask. 653 The index is the #tefmod_lane_select_t enum value. The value for each entry is 654 interpreted as follows. If bit [n] is 1, then lane [n] is enabled; if bit [n] 655 is 0, then lane [n] is disabled. Enabled implies the function under 656 consideration be enebled for the lane. Disabled means the opposite. So a value 657 of 0xF indicates that all lanes or enabled, while 0x5 indicates that only lanes 658 0 and 2 are enabled. 659 660 tefmod_cl37bam_ability_t enumerates different types of speed advertisements in the 661 basic autoneg page for CL37BAM only. 662 663 Currently all speeds have the following bit positions in tefmod_st 664 665 \li TEFMOD_BAM37ABL_2P5G Bit Pos: 0 666 \li TEFMOD_BAM37ABL_5G_X4 Bit Pos: 1 667 \li TEFMOD_BAM37ABL_6G_X4 Bit Pos: 2 668 \li TEFMOD_BAM37ABL_10G_HIGIG Bit Pos: 3 669 \li TEFMOD_BAM37ABL_10G_CX4 Bit Pos: 4 670 \li TEFMOD_BAM37ABL_12G_X4 Bit Pos: 5 671 \li TEFMOD_BAM37ABL_12P5_X4 Bit Pos: 6 672 \li TEFMOD_BAM37ABL_13G_X4 Bit Pos: 7 673 \li TEFMOD_BAM37ABL_15G_X4 Bit Pos: 8 674 \li TEFMOD_BAM37ABL_16G_X4 Bit Pos: 9 675 \li TEFMOD_BAM37ABL_20G_X4_CX4 Bit Pos: 10 676 \li TEFMOD_BAM37ABL_20G_X4 Bit Pos: 11 677 \li TEFMOD_BAM37ABL_21G_X4 Bit Pos: 12 678 \li TEFMOD_BAM37ABL_25P455G Bit Pos: 13 679 \li TEFMOD_BAM37ABL_31P5G Bit Pos: 14 680 \li TEFMOD_BAM37ABL_32P7G Bit Pos: 15 681 \li TEFMOD_BAM37ABL_40G Bit Pos: 16 682 \li TEFMOD_BAM37ABL_10G_X2_CX4 Bit Pos: 17 683 \li TEFMOD_BAM37ABL_10G_DXGXS Bit Pos: 18 684 \li TEFMOD_BAM37ABL_10P5G_DXGXS Bit Pos: 19 685 \li TEFMOD_BAM37ABL_12P7_DXGXS Bit Pos: 20 686 \li TEFMOD_BAM37ABL_15P75G_R2 Bit Pos: 21 687 \li TEFMOD_BAM37ABL_20G_X2_CX4 Bit Pos: 22 688 \li TEFMOD_BAM37ABL_20G_X2 Bit Pos: 23 689 690 691 */ 692 693 typedef enum { 694 TEFMOD_BAM37ABL_2P5G = 0 , /*!< X1 BRCM */ 695 TEFMOD_BAM37ABL_5G_X4 , /*!< BRCM */ 696 TEFMOD_BAM37ABL_6G_X4 , /*!< BRCM */ 697 TEFMOD_BAM37ABL_10G_HIGIG , /*!< HG (10G_X4) */ 698 TEFMOD_BAM37ABL_10G_CX4 , /*!< (10G_X4_CX4) */ 699 TEFMOD_BAM37ABL_12G_X4 , /*!< HG */ 700 TEFMOD_BAM37ABL_12P5_X4 , /*!< HG */ 701 TEFMOD_BAM37ABL_13G_X4 , /*!< HG */ 702 TEFMOD_BAM37ABL_15G_X4 , /*!< HG */ 703 TEFMOD_BAM37ABL_16G_X4 , /*!< HG */ 704 TEFMOD_BAM37ABL_20G_X4_CX4 , /*!< XAUI 8b10b scram(20G_X4S) */ 705 TEFMOD_BAM37ABL_20G_X4 , /*!< HG */ 706 TEFMOD_BAM37ABL_21G_X4 , /*!< HG */ 707 TEFMOD_BAM37ABL_25P455G , /*!< X4 HG */ 708 TEFMOD_BAM37ABL_31P5G , /*!< X4 HG */ 709 TEFMOD_BAM37ABL_32P7G , /*!< X4 HG */ 710 TEFMOD_BAM37ABL_40G , /*!< X4 BRCM HG (40G_X4) */ 711 TEFMOD_BAM37ABL_10G_X2_CX4 , /*!< 10G_X2_CX4 */ 712 TEFMOD_BAM37ABL_10G_DXGXS , /*!< 10G_X2 */ 713 TEFMOD_BAM37ABL_10P5G_DXGXS , /*!< 10P5_X2 */ 714 TEFMOD_BAM37ABL_12P7_DXGXS , /*!< 12P7_X2 */ 715 TEFMOD_BAM37ABL_15P75G_R2 , /*!< 15P75_X2 */ 716 TEFMOD_BAM37ABL_20G_X2_CX4 , /*!< 20G_X2_CX4 */ 717 TEFMOD_BAM37ABL_20G_X2 , /*!< 20G_X2 */ 718 TEFMOD_BAM37ABL_ILLEGAL /*!< Illegal. Programmatic boundary */ 719 } tefmod_cl37bam_ability_t; 720 721 /*! \def CNT_tefmod_cl37bam_ability_t Types of enum tefmod_cl37bam_ability_t */ 722 #define CNT_tefmod_cl37bam_ability_t 25 723 724 /*! 725 \brief 726 This array returns the string version of the enum #tefmod_port_type_t when indexed 727 by the enum var. 728 729 */ 730 extern char* e2s_tefmod_cl37bam_ability_t [CNT_tefmod_cl37bam_ability_t]; 731 /*! \enum tefmod_diag_an_type_t 732 733 This array associates the enum #tefmod_lane_select_t enum with a bit mask. 734 The index is the #tefmod_lane_select_t enum value. The value for each entry is 735 interpreted as follows. If bit [n] is 1, then lane [n] is enabled; if bit [n] 736 is 0, then lane [n] is disabled. By enabled, we mean that such-and-such 737 function is to be called for a lane; by disabled, we mean that such-and-such 738 function is not to be called for a lane. So a value of 0xF indicates that all 739 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled. 740 741 */ 742 743 typedef enum { 744 TEFMOD_DIAG_AN_DONE = 0 , /*!< AN completion check */ 745 TEFMOD_DIAG_AN_HCD , /*!< AN HCD speed check */ 746 TEFMOD_DIAG_AN_TYPE_ILLEGAL /*!< Illegal value. programmatic boundary */ 747 } tefmod_diag_an_type_t; 748 749 /*! \def CNT_tefmod_diag_an_type_t Types of enum tefmod_diag_an_type_t */ 750 #define CNT_tefmod_diag_an_type_t 3 751 752 /*! 753 \brief 754 This array returns the string version of the enum #tefmod_port_type_t when indexed 755 by the enum var. 756 757 */ 758 extern char* e2s_tefmod_diag_an_type_t [CNT_tefmod_diag_an_type_t]; 759 /*! \enum tefmod_tier1_function_type_t 760 761 This array associates the enum #tefmod_lane_select_t enum with a bit mask. 762 The index is the #tefmod_lane_select_t enum value. The value for each entry is 763 interpreted as follows. If bit [n] is 1, then lane [n] is enabled; if bit [n] 764 is 0, then lane [n] is disabled. By enabled, we mean that such-and-such 765 function is to be called for a lane; by disabled, we mean that such-and-such 766 function is not to be called for a lane. So a value of 0xF indicates that all 767 lanes or enabled, while 0x5 indicates that only lanes 0 and 2 are enabled. 768 769 */ 770 771 typedef enum { 772 PCS_BYPASS_CTL = 0 , /*!< tefmod_pcs_bypass_ctl */ 773 CREDIT_SET , /*!< tefmod_credit_set */ 774 ENCODE_SET , /*!< tefmod_encode_set */ 775 DECODE_SET , /*!< tefmod_decode_set */ 776 CREDIT_CONTROL , /*!< tefmod_credit_control */ 777 AFE_SPEED_UP_DSC_VGA , /*!< tefmod_afe_speed_up_dsc_vga */ 778 TX_LANE_CONTROL , /*!< tefmod_tx_lane_control */ 779 RX_LANE_CONTROL , /*!< tefmod_rx_lane_control */ 780 TX_LANE_DISABLE , /*!< tefmod_tx_lane_disable */ 781 POWER_CONTROL , /*!< tefmod_power_control */ 782 AUTONEG_SET , /*!< tefmod_autoneg_set */ 783 AUTONEG_GET , /*!< tefmod_autoneg_get */ 784 AUTONEG_CONTROL , /*!< tefmod_autoneg_control */ 785 AUTONEG_PAGE_SET , /*!< tefmod_autoneg_page_set */ 786 REG_READ , /*!< tefmod_reg_read */ 787 REG_WRITE , /*!< tefmod_reg_write */ 788 PRBS_CHECK , /*!< tefmod_prbs_check */ 789 CJPAT_CRPAT_CONTROL , /*!< tefmod_cjpat_crpat_control */ 790 CJPAT_CRPAT_CHECK , /*!< tefmod_cjpat_crpat_check */ 791 TEFMOD_DIAG , /*!< tefmod_diag */ 792 LANE_SWAP , /*!< tefmod_lane_swap */ 793 PARALLEL_DETECT_CONTROL , /*!< tefmod_parallel_detect_control */ 794 CLAUSE_72_CONTROL , /*!< tefmod_clause72_control */ 795 PLL_SEQUENCER_CONTROL , /*!< tefmod_pll_sequencer_control */ 796 PLL_LOCK_WAIT , /*!< tefmod_pll_lock_wait */ 797 DUPLEX_CONTROL , /*!< tefmod_duplex_control */ 798 REVID_READ , /*!< tefmod_revid_read */ 799 BYPASS_SC , /*!< tefmod_bypass_sc */ 800 SET_POLARITY , /*!< tefmod_tx_rx_polarity */ 801 SET_PORT_MODE , /*!< tefmod_set_port_mode */ 802 SET_AN_PORT_MODE , /*!< tefmod_set_an_port_mode */ 803 PRBS_CONTROL , /*!< tefmod_prbs_control */ 804 PRBS_MODE , /*!< tefmod_prbs_mode */ 805 SOFT_RESET , /*!< tefmod_soft_reset */ 806 SET_SPD_INTF , /*!< tefmod_set_spd_intf */ 807 TX_BERT_CONTROL , /*!< tefmod_tx_bert_control */ 808 RX_LOOPBACK_CONTROL , /*!< tefmod_rx_loopback_control */ 809 RX_PMD_LOOPBACK_CONTROL , /*!< tefmod_rx_pmd_loopback_control */ 810 TX_LOOPBACK_CONTROL , /*!< tefmod_tx_loopback_control */ 811 TX_PMD_LOOPBACK_CONTROL , /*!< tefmod_tx_pmd_loopback_control */ 812 CORE_RESET , /*!< tefmod_core_reset */ 813 REFCLK_SET , /*!< tefmod_refclk_set */ 814 WAIT_PMD_LOCK , /*!< tefmod_wait_pmd_lock */ 815 FIRMWARE_SET , /*!< tefmod_firmware_set */ 816 INIT_PCS_FALCON , /*!< tefmod_init_pcs_falcon */ 817 DISABLE_PCS_FALCON , /*!< tefmod_disable_pcs_falcon */ 818 INIT_PMD_FALCON , /*!< tefmod_init_pmd_falcon */ 819 PMD_LANE_SWAP_TX , /*!< tefmod_pmd_lane_swap_tx */ 820 PMD_LANE_SWAP , /*!< tefmod_pmd_lane_swap */ 821 PCS_LANE_SWAP , /*!< tefmod_pcs_lane_swap */ 822 SET_SC_SPEED , /*!< tefmod_set_sc_speed */ 823 CHECK_SC_STATS , /*!< tefmod_check_status */ 824 SET_OVERRIDE_0 , /*!< tefmod_set_override_0 */ 825 SET_OVERRIDE_1 , /*!< tefmod_set_override_1 */ 826 PMD_RESET_REMOVE , /*!< tefmod_pmd_reset_remove */ 827 PMD_RESET_BYPASS , /*!< tefmod_pmd_reset_bypass */ 828 INIT_PCS_ILKN , /*!< tefmod_init_pcs_ilkn */ 829 TOGGLE_SW_SPEED_CHANGE , /*!< tefmod_toggle_sw_speed_change */ 830 TIER1_FUNCTION_ILLEGAL /*!< illegal */ 831 } tefmod_tier1_function_type_t; 832 833 /*! \def CNT_tefmod_tier1_function_type_t Types of enum tefmod_tier1_function_type_t */ 834 #define CNT_tefmod_tier1_function_type_t 59 835 836 /*! 837 \brief 838 This array returns the string version of the enum #tefmod_port_type_t when indexed 839 by the enum var. 840 841 */ 842 extern char* e2s_tefmod_tier1_function_type_t [CNT_tefmod_tier1_function_type_t]; 843 /*! \enum tefmod_fec_en_parm_t 844 845 For passing parameters to tefmod_FEC_control. 846 847 */ 848 849 typedef enum { 850 TEFMOD_CL91_TX_EN_DIS = 0x01 , /*!< Enable / Disable CL91 TX */ 851 TEFMOD_CL91_RX_EN_DIS = 0x02 , /*!< Enable / Disable CL91 RX */ 852 TEFMOD_CL91_IND_ONLY_EN_DIS = 0x04 , /*!< Enable / Disable CL91 indication only */ 853 TEFMOD_CL91_COR_ONLY_EN_DIS = 0x08 , /*!< Enable / Disable CL91 correction only */ 854 TEFMOD_CL74_TX_EN_DIS = 0x10 , /*!< Enable / Disable CL74 TX */ 855 TEFMOD_CL74_RX_EN_DIS = 0x20 , /*!< Enable / Disable CL74 RX */ 856 TEFMOD_CL74_CL91_EN_DIS = 0x40 /*!< Enable / Disable CL74CL91 for autoneg */ 857 } tefmod_fec_en_parm_t; 858 859 /*! \def CNT_tefmod_fec_en_parm_t Types of enum tefmod_fec_en_parm_t */ 860 #define CNT_tefmod_fec_en_parm_t 7 861 862 /*! 863 \brief 864 This array returns the string version of the enum #tefmod_port_type_t when indexed 865 by the enum var. 866 867 */ 868 extern char* e2s_tefmod_fec_en_parm_t [CNT_tefmod_fec_en_parm_t]; 869 870 /*! \enum tefmod_fec_type_t 871 872 For passing parameters to tefmod_FEC_control. 873 874 */ 875 876 typedef enum { 877 TEFMOD_CL74 = 0x01 , /*!< Enable / enable CL74 TX/RX */ 878 TEFMOD_CL91 = 0x02 , /*!< Enable / enable CL91 TX/RX */ 879 TEFMOD_CL108 = 0x03 /*!< Enable / enable CL108 TX/RX */ 880 } tefmod_fec_type_t; 881 882 /*! \def CNT_tefmod_fec_type_t Types of enum tefmod_fec_en_parm_t */ 883 #define CNT_tefmod_fec_type_t 3 884 885 /*! 886 \brief 887 This array returns the string version of the enum #tefmod_port_type_t when indexed 888 by the enum var. 889 890 */ 891 extern char* e2s_tefmod_fec_type_t [CNT_tefmod_fec_type_t]; 892 893 894 895 /*! \enum tefmod_tx_disable_enum_t 896 897 For various tx disable condition use this enum. 898 899 */ 900 901 typedef enum { 902 TEFMOD_TX_LANE_RESET = 0, 903 TEFMOD_TX_LANE_TRAFFIC_ENABLE = 1, 904 TEFMOD_TX_LANE_TRAFFIC_DISABLE = 2, 905 TEFMOD_TX_LANE_RESET_TRAFFIC_ENABLE = 3, 906 TEFMOD_TX_LANE_RESET_TRAFFIC_DISABLE = 4, 907 TEFMOD_TX_LANE_TYPE_COUNT 908 } tefmod_tx_disable_enum_t; 909 910 /*! \def CNT_tefmod_tx_disable_enum_t Types of enum tefmod_tx_disable_enum_t */ 911 #define CNT_tefmod_tx_disable_enum_t 2 912 913 /*! 914 \brief 915 This array returns the string version of the enum #tefmod_port_type_t when indexed 916 by the enum var. 917 918 */ 919 extern char* e2s_tefmod_tx_disable_enum_t [CNT_tefmod_tx_disable_enum_t]; 920 /*! \enum tefmod_os_mode_type 921 922 923 The oversampling mode means that bits are sent out more than once to reduce 924 the effective frequency of data transfer. For example you can send 5G bits 925 over a 10G bit lane by sending every bit twice, or OS=2. When the OS is 3.3 926 it's a bit tricky, we send bits 3 or 4 times in a pattern like so 927 3,3,3,4,3,3,3,4,... Similarly for OS = 8, we send 8,8,8,9,8,8,8,9,... 928 929 930 */ 931 932 typedef enum { 933 TEFMOD_PMA_OS_MODE_1 = 0 , /*!< Over sampling Mode 1 */ 934 TEFMOD_PMA_OS_MODE_2 = 1 , /*!< Over sampling Mode 2 */ 935 TEFMOD_PMA_OS_MODE_4 = 2 , /*!< Over sampling Mode 4 */ 936 TEFMOD_PMA_OS_MODE_16_25 = 8 , /*!< Over sampling Mode 8.25 */ 937 TEFMOD_PMA_OS_MODE_20_625 = 12 , /*!< Over sampling Mode 10 */ 938 TEFMOD_PMA_OS_MODE_ILLEGAL = 15 /*!< Over sampling Mode Illegal */ 939 } tefmod_os_mode_type; 940 941 /*! \def CNT_tefmod_os_mode_type Types of enum tefmod_os_mode_type */ 942 #define CNT_tefmod_os_mode_type 6 943 944 /*! 945 \brief 946 This array returns the string of #tefmod_os_mode_type when indexed by the enum. 947 948 */ 949 extern char* e2s_tefmod_os_mode_type [CNT_tefmod_os_mode_type]; 950 /*! 951 \brief 952 This array returns the over sampling value of #tefmod_os_mode_type when indexed by 953 the enum. For floating values 3.3 and 8.25 it returns 33 and 825. 954 955 */ 956 extern int e2n_tefmod_os_mode_type [CNT_tefmod_os_mode_type]; 957 /*! \enum tefmod_scr_mode 958 959 This mode indicates how many bits of a 'frame' will be scrambled. We have either 960 66 or 80 bits per frame (depending on 8b10b or 64b66b encoding). Normally 961 scrambling is 962 963 \li bypassed for baud rates under 6.25G (0). 964 \li we scramble all 66 bits (1) 965 \li all 80 bits(2) 966 \li only 64 of the 66b (3). i.e we don't scramble the 'sync' bits. 967 968 */ 969 970 typedef enum { 971 TEFMOD_SCR_MODE_BYPASS = 0 , /*!< Scrambling Mode bypassed */ 972 TEFMOD_SCR_MODE_CL49 = 1 , /*!< Scrambling Mode 66B */ 973 TEFMOD_SCR_MODE_40G_2_LANE = 2 , /*!< Scrambling Mode 80B */ 974 TEFMOD_SCR_MODE_100G = 3 , /*!< Scrambling Mode 64B */ 975 TEFMOD_SCR_MODE_20G = 4 , /*!< Scrambling Mode 64B */ 976 TEFMOD_SCR_MODE_40G_4_LANE = 5 , /*!< Scrambling Mode 64B */ 977 TEFMOD_SCR_MODE_ILLEGAL = 15 /*!< SCR Mode Mode Illegal */ 978 } tefmod_scr_mode; 979 980 /*! \def CNT_tefmod_scr_mode Types of enum tefmod_scr_mode */ 981 #define CNT_tefmod_scr_mode 7 982 983 /*! 984 \brief 985 This array returns the string of #tefmod_scr_mode when indexed by the enum. 986 987 */ 988 extern char* e2s_tefmod_scr_mode [CNT_tefmod_scr_mode]; 989 /*! 990 \brief 991 This array returns the scrambling mode of #tefmod_scr_mode when indexed by 992 the enum. 993 994 */ 995 extern int e2n_tefmod_scr_mode [CNT_tefmod_scr_mode]; 996 /*! \enum tefmod_encode_mode 997 998 Serial bits are encoded when transmitted. The encoding depends on the baud rate 999 and the link type 1000 \li 000 All encoding functions disabled for lane 1001 \li 001 8b10b (cl48 ) 1002 \li 010 8b10b (cl48 rxaui) 1003 \li 011 8b10b (cl36 ) 1004 \li 100 64b66b (cl82 ) 1005 \li 101 64b66b (cl49 ) 1006 \li 110 64b66b (brcm ) 1007 1008 */ 1009 1010 typedef enum { 1011 TEFMOD_ENCODE_MODE_NONE = 0 , /*!< Encoding Mode NONE */ 1012 TEFMOD_ENCODE_MODE_CL49 = 1 , /*!< Encoding Mode CL49 */ 1013 TEFMOD_ENCODE_MODE_CL82 = 2 , /*!< Encoding Mode CL82 */ 1014 TEFMOD_ENCODE_MODE_ILLEGAL = 15 /*!< Encoding Mode Illegal */ 1015 } tefmod_encode_mode; 1016 1017 /*! \def CNT_tefmod_encode_mode Types of enum tefmod_encode_mode */ 1018 #define CNT_tefmod_encode_mode 4 1019 1020 /*! 1021 \brief 1022 This array returns the string of #tefmod_encode_mode when indexed by the enum. 1023 1024 */ 1025 extern char* e2s_tefmod_encode_mode [CNT_tefmod_encode_mode]; 1026 /*! 1027 \brief 1028 This array returns the encoding mode of #tefmod_encode_mode when indexed by 1029 the enum. 1030 1031 */ 1032 extern int e2n_tefmod_encode_mode [CNT_tefmod_encode_mode]; 1033 /*! \enum tefmod_descrambler_mode 1034 1035 The descrambling must match the scrambling done at the transmitting port. 1036 1037 */ 1038 1039 typedef enum { 1040 TEFMOD_R_DESCR_MODE_BYPASS = 0 , /*!< No descrambling */ 1041 TEFMOD_R_DESCR_MODE_CL49 = 1 , /*!< CL49 */ 1042 TEFMOD_R_DESCR_MODE_CL82 = 2 , /*!< CL82 */ 1043 TEFMOD_R_DESCR_MODE_ILLEGAL = 3 /*!< Illegal */ 1044 } tefmod_descrambler_mode; 1045 1046 /*! \def CNT_tefmod_descrambler_mode Types of enum tefmod_descrambler_mode */ 1047 #define CNT_tefmod_descrambler_mode 4 1048 1049 /*! 1050 \brief 1051 This array returns the string of #tefmod_descrambler_mode when indexed by the enum. 1052 1053 */ 1054 extern char* e2s_tefmod_descrambler_mode [CNT_tefmod_descrambler_mode]; 1055 /*! \enum tefmod_dec_tl_mode 1056 1057 The descrambling must match the scrambling done at the transmitting port. 1058 1059 */ 1060 1061 typedef enum { 1062 TEFMOD_DEC_TL_MODE_NONE = 0 , /*!< decoder mode NONE */ 1063 TEFMOD_DEC_TL_MODE_CL49 = 1 , /*!< decoder mode CL49 */ 1064 TEFMOD_DEC_TL_MODE_CL82 = 2 , /*!< decoder mode CL82 */ 1065 TEFMOD_DEC_TL_MODE_ILLEGAL = 7 /*!< decoder mode ILLEGAL */ 1066 } tefmod_dec_tl_mode; 1067 1068 /*! \def CNT_tefmod_dec_tl_mode Types of enum tefmod_dec_tl_mode */ 1069 #define CNT_tefmod_dec_tl_mode 4 1070 1071 /*! 1072 \brief 1073 This array returns the string of #tefmod_dec_tl_mode when indexed by the enum. 1074 1075 */ 1076 extern char* e2s_tefmod_dec_tl_mode [CNT_tefmod_dec_tl_mode]; 1077 /*! \enum tefmod_dec_fsm_mode 1078 1079 The descrambling must match the scrambling done at the transmitting port. 1080 1081 */ 1082 1083 typedef enum { 1084 TEFMOD_DEC_FSM_MODE_NONE = 0 , /*!< decoder mode NONE */ 1085 TEFMOD_DEC_FSM_MODE_CL49 = 1 , /*!< decoder mode CL49 */ 1086 TEFMOD_DEC_FSM_MODE_CL82 = 2 , /*!< decoder mode CL82 */ 1087 TEFMOD_DEC_FSM_MODE_ILLEGAL = 7 /*!< decoder mode ILLEGAL */ 1088 } tefmod_dec_fsm_mode; 1089 1090 /*! \def CNT_tefmod_dec_fsm_mode Types of enum tefmod_dec_fsm_mode */ 1091 #define CNT_tefmod_dec_fsm_mode 4 1092 1093 /*! 1094 \brief 1095 This array returns the string of #tefmod_dec_fsm_mode when indexed by the enum. 1096 1097 */ 1098 extern char* e2s_tefmod_dec_fsm_mode [CNT_tefmod_dec_fsm_mode]; 1099 /*! \enum tefmod_deskew_mode 1100 1101 Deskew Mode is a function of speed. 1102 1103 */ 1104 1105 typedef enum { 1106 TEFMOD_R_DESKEW_MODE_BYPASSi = 0 , /*!< deskew mode BYPASS */ 1107 TEFMOD_R_DESKEW_MODE_10G = 1 , /*!< deskew mode 10G */ 1108 TEFMOD_R_DESKEW_MODE_40G_4_LANE = 2 , /*!< deskew mode 40G_4_LANE */ 1109 TEFMOD_R_DESKEW_MODE_40G_2_LANE = 3 , /*!< deskew mode 40G_2_LANE */ 1110 TEFMOD_R_DESKEW_MODE_100G = 4 , /*!< deskew mode 100G */ 1111 TEFMOD_R_DESKEW_MODE_CL49 = 5 , /*!< deskew mode CL49 */ 1112 TEFMOD_R_DESKEW_MODE_CL91 = 6 , /*!< deskew mode CL91 */ 1113 TEFMOD_R_DESKEW_MODE_ILLEGAL = 7 /*!< deskew mode ILLEGAL */ 1114 } tefmod_deskew_mode; 1115 1116 /*! \def CNT_tefmod_deskew_mode Types of enum tefmod_deskew_mode */ 1117 #define CNT_tefmod_deskew_mode 8 1118 1119 /*! 1120 \brief 1121 This array returns the string of #tefmod_deskew_mode when indexed by the enum. 1122 1123 */ 1124 extern char* e2s_tefmod_deskew_mode [CNT_tefmod_deskew_mode]; 1125 /*! \enum tefmod_t_fifo_mode 1126 1127 1128 */ 1129 1130 typedef enum { 1131 TEFMOD_T_FIFO_MODE_NONE = 0 , /*!< t_fifo mode NONE */ 1132 TEFMOD_T_FIFO_MODE_40G = 1 , /*!< t_fifo mode 40G */ 1133 TEFMOD_T_FIFO_MODE_100G = 2 , /*!< t_fifo mode 100G */ 1134 TEFMOD_T_FIFO_MODE_20G = 3 , /*!< t_fifo mode 20G */ 1135 TEFMOD_T_FIFO_MODE_ILLEGAL = 7 /*!< t_fifo mode ILLEGAL */ 1136 } tefmod_t_fifo_mode; 1137 1138 /*! \def CNT_tefmod_t_fifo_mode Types of enum tefmod_t_fifo_mode */ 1139 #define CNT_tefmod_t_fifo_mode 5 1140 1141 /*! 1142 \brief 1143 This array returns the string of #tefmod_t_fifo_mode when indexed by the enum. 1144 1145 */ 1146 extern char* e2s_tefmod_t_fifo_mode [CNT_tefmod_t_fifo_mode]; 1147 /*! \enum tefmod_bs_btmx_mode 1148 1149 1150 */ 1151 1152 typedef enum { 1153 TEFMOD_BS_BTMX_MODE_NONE = 0 , /*!< bs_btmx mode NONE */ 1154 TEFMOD_BS_BTMX_MODE_1to1 = 1 , /*!< bs_btmx mode 1to1 */ 1155 TEFMOD_BS_BTMX_MODE_2to1 = 2 , /*!< bs_btmx mode 2to1 */ 1156 TEFMOD_BS_BTMX_MODE_5to1 = 2 , /*!< bs_btmx mode 5to1 */ 1157 TEFMOD_BS_BTMX_MODE_ILLEGAL = 7 /*!< bs_btmx mode ILLEGAL */ 1158 } tefmod_bs_btmx_mode; 1159 1160 /*! \def CNT_tefmod_bs_btmx_mode Types of enum tefmod_bs_btmx_mode */ 1161 #define CNT_tefmod_bs_btmx_mode 5 1162 1163 /*! 1164 \brief 1165 This array returns the string of #tefmod_bs_btmx_mode when indexed by the enum. 1166 1167 */ 1168 extern char* e2s_tefmod_bs_btmx_mode [CNT_tefmod_bs_btmx_mode]; 1169 /*! \enum tefmod_bs_dist_mode 1170 1171 1172 */ 1173 1174 typedef enum { 1175 TEFMOD_BS_DIST_MODE_5_LANE_TDM = 0 , /*!< bs_dist mode 5LN_TDM */ 1176 TEFMOD_BS_DIST_MODE_2_LANE_TDM_2_VLANE = 1 , /*!< bs_dist mode 2LN_TDM_2VLN */ 1177 TEFMOD_BS_DIST_MODE_2_LANE_TDM_1_VLANE = 2 , /*!< bs_dist mode 2LN_TDM_1VLN */ 1178 TEFMOD_BS_DIST_MODE_NO_TDM = 3 , /*!< bs_dist mode NO_TDM */ 1179 TEFMOD_BS_DIST_MODE_ILLEGAL = 7 /*!< bs_dist mode ILLEGAL */ 1180 } tefmod_bs_dist_mode; 1181 1182 /*! \def CNT_tefmod_bs_dist_mode Types of enum tefmod_bs_dist_mode */ 1183 #define CNT_tefmod_bs_dist_mode 5 1184 1185 /*! 1186 \brief 1187 This array returns the string of #tefmod_bs_dist_mode when indexed by the enum. 1188 1189 */ 1190 extern char* e2s_tefmod_bs_dist_mode [CNT_tefmod_bs_dist_mode]; 1191 1192 typedef enum { 1193 TEFMOD_AN_PROPERTY_ENABLE_NONE = 0x00000000 , /*!< */ 1194 TEFMOD_AN_PROPERTY_ENABLE_HPAM_TO_CL73_AUTO = 0x00000001 , /*!< */ 1195 TEFMOD_AN_PROPERTY_ENABLE_CL73_BAM_TO_HPAM_AUTO = 0x00000002 , /*!< */ 1196 TEFMOD_AN_PROPERTY_ENABLE_ILLEGAL = 0x00000004 /*!< */ 1197 } an_property_enable; 1198 1199 /*! \def CNT_an_property_enable Types of enum an_property_enable */ 1200 #define CNT_an_property_enable 4 1201 1202 #endif /* _TSCFMOD_ENUM_DEFINES_H */