16f45ec7bSml29623 /* 26f45ec7bSml29623 * CDDL HEADER START 36f45ec7bSml29623 * 46f45ec7bSml29623 * The contents of this file are subject to the terms of the 56f45ec7bSml29623 * Common Development and Distribution License (the "License"). 66f45ec7bSml29623 * You may not use this file except in compliance with the License. 76f45ec7bSml29623 * 86f45ec7bSml29623 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 96f45ec7bSml29623 * or http://www.opensolaris.org/os/licensing. 106f45ec7bSml29623 * See the License for the specific language governing permissions 116f45ec7bSml29623 * and limitations under the License. 126f45ec7bSml29623 * 136f45ec7bSml29623 * When distributing Covered Code, include this CDDL HEADER in each 146f45ec7bSml29623 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 156f45ec7bSml29623 * If applicable, add the following below this CDDL HEADER, with the 166f45ec7bSml29623 * fields enclosed by brackets "[]" replaced with your own identifying 176f45ec7bSml29623 * information: Portions Copyright [yyyy] [name of copyright owner] 186f45ec7bSml29623 * 196f45ec7bSml29623 * CDDL HEADER END 206f45ec7bSml29623 */ 216f45ec7bSml29623 /* 22d81011f0Ssbehera * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 236f45ec7bSml29623 * Use is subject to license terms. 246f45ec7bSml29623 */ 256f45ec7bSml29623 266f45ec7bSml29623 #ifndef _SYS_NXGE_NXGE_MII_H_ 276f45ec7bSml29623 #define _SYS_NXGE_NXGE_MII_H_ 286f45ec7bSml29623 296f45ec7bSml29623 #pragma ident "%Z%%M% %I% %E% SMI" 306f45ec7bSml29623 316f45ec7bSml29623 #ifdef __cplusplus 326f45ec7bSml29623 extern "C" { 336f45ec7bSml29623 #endif 346f45ec7bSml29623 35*6b438925Ssbehera #include <sys/miiregs.h> 36*6b438925Ssbehera 376f45ec7bSml29623 /* 386f45ec7bSml29623 * Configuration Register space. 396f45ec7bSml29623 */ 406f45ec7bSml29623 41*6b438925Ssbehera #define NXGE_MII_LPRXNPR 8 42*6b438925Ssbehera #define NXGE_MII_GCR 9 43*6b438925Ssbehera #define NXGE_MII_GSR 10 44*6b438925Ssbehera #define NXGE_MII_RES0 11 45*6b438925Ssbehera #define NXGE_MII_RES1 12 46*6b438925Ssbehera #define NXGE_MII_RES2 13 47*6b438925Ssbehera #define NXGE_MII_RES3 14 48*6b438925Ssbehera #define NXGE_MII_ESR 15 49*6b438925Ssbehera 50*6b438925Ssbehera #define NXGE_MII_SHADOW MII_VENDOR(0xc) 51d81011f0Ssbehera /* Shadow register definition */ 52*6b438925Ssbehera #define NXGE_MII_MODE_CONTROL_REG MII_VENDOR(0xf) 536f45ec7bSml29623 546f45ec7bSml29623 #define NXGE_MAX_MII_REGS 32 556f45ec7bSml29623 566f45ec7bSml29623 /* 576f45ec7bSml29623 * Configuration Register space. 586f45ec7bSml29623 */ 596f45ec7bSml29623 typedef struct _mii_regs { 606f45ec7bSml29623 uchar_t bmcr; /* Basic mode control register */ 616f45ec7bSml29623 uchar_t bmsr; /* Basic mode status register */ 626f45ec7bSml29623 uchar_t idr1; /* Phy identifier register 1 */ 636f45ec7bSml29623 uchar_t idr2; /* Phy identifier register 2 */ 646f45ec7bSml29623 uchar_t anar; /* Auto-Negotiation advertisement register */ 656f45ec7bSml29623 uchar_t anlpar; /* Auto-Negotiation link Partner ability reg */ 666f45ec7bSml29623 uchar_t aner; /* Auto-Negotiation expansion register */ 676f45ec7bSml29623 uchar_t nptxr; /* Next page transmit register */ 686f45ec7bSml29623 uchar_t lprxnpr; /* Link partner received next page register */ 696f45ec7bSml29623 uchar_t gcr; /* Gigabit basic mode control register. */ 706f45ec7bSml29623 uchar_t gsr; /* Gigabit basic mode status register */ 716f45ec7bSml29623 uchar_t mii_res1[4]; /* For future use by MII working group */ 726f45ec7bSml29623 uchar_t esr; /* Extended status register. */ 73d81011f0Ssbehera uchar_t vendor_res[12]; /* For future use by Phy Vendors */ 74d81011f0Ssbehera uchar_t shadow; 75d81011f0Ssbehera uchar_t vendor_res2[3]; /* For future use by Phy Vendors */ 766f45ec7bSml29623 } mii_regs_t, *p_mii_regs_t; 776f45ec7bSml29623 786f45ec7bSml29623 /* 796f45ec7bSml29623 * MII Register 0: Basic mode control register. 806f45ec7bSml29623 */ 816f45ec7bSml29623 typedef union _mii_bmcr { 826f45ec7bSml29623 uint16_t value; 836f45ec7bSml29623 struct { 846f45ec7bSml29623 #if defined(_BIT_FIELDS_HTOL) 856f45ec7bSml29623 uint16_t reset:1; 866f45ec7bSml29623 uint16_t loopback:1; 876f45ec7bSml29623 uint16_t speed_sel:1; 886f45ec7bSml29623 uint16_t enable_autoneg:1; 896f45ec7bSml29623 uint16_t power_down:1; 906f45ec7bSml29623 uint16_t isolate:1; 916f45ec7bSml29623 uint16_t restart_autoneg:1; 926f45ec7bSml29623 uint16_t duplex_mode:1; 936f45ec7bSml29623 uint16_t col_test:1; 946f45ec7bSml29623 uint16_t speed_1000_sel:1; 956f45ec7bSml29623 uint16_t res1:6; 966f45ec7bSml29623 #elif defined(_BIT_FIELDS_LTOH) 976f45ec7bSml29623 uint16_t res1:6; 986f45ec7bSml29623 uint16_t speed_1000_sel:1; 996f45ec7bSml29623 uint16_t col_test:1; 1006f45ec7bSml29623 uint16_t duplex_mode:1; 1016f45ec7bSml29623 uint16_t restart_autoneg:1; 1026f45ec7bSml29623 uint16_t isolate:1; 1036f45ec7bSml29623 uint16_t power_down:1; 1046f45ec7bSml29623 uint16_t enable_autoneg:1; 1056f45ec7bSml29623 uint16_t speed_sel:1; 1066f45ec7bSml29623 uint16_t loopback:1; 1076f45ec7bSml29623 uint16_t reset:1; 1086f45ec7bSml29623 #endif 1096f45ec7bSml29623 } bits; 1106f45ec7bSml29623 } mii_bmcr_t, *p_mii_bmcr_t; 1116f45ec7bSml29623 1126f45ec7bSml29623 /* 1136f45ec7bSml29623 * MII Register 1: Basic mode status register. 1146f45ec7bSml29623 */ 1156f45ec7bSml29623 typedef union _mii_bmsr { 1166f45ec7bSml29623 uint16_t value; 1176f45ec7bSml29623 struct { 1186f45ec7bSml29623 #if defined(_BIT_FIELDS_HTOL) 1196f45ec7bSml29623 uint16_t link_100T4:1; 1206f45ec7bSml29623 uint16_t link_100fdx:1; 1216f45ec7bSml29623 uint16_t link_100hdx:1; 1226f45ec7bSml29623 uint16_t link_10fdx:1; 1236f45ec7bSml29623 uint16_t link_10hdx:1; 1246f45ec7bSml29623 uint16_t res2:2; 1256f45ec7bSml29623 uint16_t extend_status:1; 1266f45ec7bSml29623 uint16_t res1:1; 1276f45ec7bSml29623 uint16_t preamble_supress:1; 1286f45ec7bSml29623 uint16_t auto_neg_complete:1; 1296f45ec7bSml29623 uint16_t remote_fault:1; 1306f45ec7bSml29623 uint16_t auto_neg_able:1; 1316f45ec7bSml29623 uint16_t link_status:1; 1326f45ec7bSml29623 uint16_t jabber_detect:1; 1336f45ec7bSml29623 uint16_t ext_cap:1; 1346f45ec7bSml29623 #elif defined(_BIT_FIELDS_LTOH) 1356f45ec7bSml29623 int16_t ext_cap:1; 1366f45ec7bSml29623 uint16_t jabber_detect:1; 1376f45ec7bSml29623 uint16_t link_status:1; 1386f45ec7bSml29623 uint16_t auto_neg_able:1; 1396f45ec7bSml29623 uint16_t remote_fault:1; 1406f45ec7bSml29623 uint16_t auto_neg_complete:1; 1416f45ec7bSml29623 uint16_t preamble_supress:1; 1426f45ec7bSml29623 uint16_t res1:1; 1436f45ec7bSml29623 uint16_t extend_status:1; 1446f45ec7bSml29623 uint16_t res2:2; 1456f45ec7bSml29623 uint16_t link_10hdx:1; 1466f45ec7bSml29623 uint16_t link_10fdx:1; 1476f45ec7bSml29623 uint16_t link_100hdx:1; 1486f45ec7bSml29623 uint16_t link_100fdx:1; 1496f45ec7bSml29623 uint16_t link_100T4:1; 1506f45ec7bSml29623 #endif 1516f45ec7bSml29623 } bits; 1526f45ec7bSml29623 } mii_bmsr_t, *p_mii_bmsr_t; 1536f45ec7bSml29623 1546f45ec7bSml29623 /* 1556f45ec7bSml29623 * MII Register 2: Physical Identifier 1. 1566f45ec7bSml29623 */ 1576f45ec7bSml29623 /* contains BCM OUI bits [3:18] */ 1586f45ec7bSml29623 typedef union _mii_idr1 { 1596f45ec7bSml29623 uint16_t value; 1606f45ec7bSml29623 struct { 1616f45ec7bSml29623 uint16_t ieee_address:16; 1626f45ec7bSml29623 } bits; 1636f45ec7bSml29623 } mii_idr1_t, *p_mii_idr1_t; 1646f45ec7bSml29623 1656f45ec7bSml29623 /* 1666f45ec7bSml29623 * MII Register 3: Physical Identifier 2. 1676f45ec7bSml29623 */ 1686f45ec7bSml29623 typedef union _mii_idr2 { 1696f45ec7bSml29623 uint16_t value; 1706f45ec7bSml29623 struct { 1716f45ec7bSml29623 #if defined(_BIT_FIELDS_HTOL) 1726f45ec7bSml29623 uint16_t ieee_address:6; 1736f45ec7bSml29623 uint16_t model_no:6; 1746f45ec7bSml29623 uint16_t rev_no:4; 1756f45ec7bSml29623 #elif defined(_BIT_FIELDS_LTOH) 1766f45ec7bSml29623 uint16_t rev_no:4; 1776f45ec7bSml29623 uint16_t model_no:6; 1786f45ec7bSml29623 uint16_t ieee_address:6; 1796f45ec7bSml29623 #endif 1806f45ec7bSml29623 } bits; 1816f45ec7bSml29623 } mii_idr2_t, *p_mii_idr2_t; 1826f45ec7bSml29623 1836f45ec7bSml29623 /* 1846f45ec7bSml29623 * MII Register 4: Auto-negotiation advertisement register. 1856f45ec7bSml29623 */ 1866f45ec7bSml29623 typedef union _mii_anar { 1876f45ec7bSml29623 uint16_t value; 1886f45ec7bSml29623 struct { 1896f45ec7bSml29623 #if defined(_BIT_FIELDS_HTOL) 1906f45ec7bSml29623 uint16_t np_indication:1; 1916f45ec7bSml29623 uint16_t acknowledge:1; 1926f45ec7bSml29623 uint16_t remote_fault:1; 1936f45ec7bSml29623 uint16_t res1:1; 1946f45ec7bSml29623 uint16_t cap_asmpause:1; 1956f45ec7bSml29623 uint16_t cap_pause:1; 1966f45ec7bSml29623 uint16_t cap_100T4:1; 1976f45ec7bSml29623 uint16_t cap_100fdx:1; 1986f45ec7bSml29623 uint16_t cap_100hdx:1; 1996f45ec7bSml29623 uint16_t cap_10fdx:1; 2006f45ec7bSml29623 uint16_t cap_10hdx:1; 2016f45ec7bSml29623 uint16_t selector:5; 2026f45ec7bSml29623 #elif defined(_BIT_FIELDS_LTOH) 2036f45ec7bSml29623 uint16_t selector:5; 2046f45ec7bSml29623 uint16_t cap_10hdx:1; 2056f45ec7bSml29623 uint16_t cap_10fdx:1; 2066f45ec7bSml29623 uint16_t cap_100hdx:1; 2076f45ec7bSml29623 uint16_t cap_100fdx:1; 2086f45ec7bSml29623 uint16_t cap_100T4:1; 2096f45ec7bSml29623 uint16_t cap_pause:1; 2106f45ec7bSml29623 uint16_t cap_asmpause:1; 2116f45ec7bSml29623 uint16_t res1:1; 2126f45ec7bSml29623 uint16_t remote_fault:1; 2136f45ec7bSml29623 uint16_t acknowledge:1; 2146f45ec7bSml29623 uint16_t np_indication:1; 2156f45ec7bSml29623 #endif 2166f45ec7bSml29623 } bits; 2176f45ec7bSml29623 } mii_anar_t, *p_mii_anar_t; 2186f45ec7bSml29623 2196f45ec7bSml29623 /* 2206f45ec7bSml29623 * MII Register 5: Auto-negotiation link partner ability register. 2216f45ec7bSml29623 */ 2226f45ec7bSml29623 typedef mii_anar_t mii_anlpar_t, *pmii_anlpar_t; 2236f45ec7bSml29623 2246f45ec7bSml29623 /* 2256f45ec7bSml29623 * MII Register 6: Auto-negotiation expansion register. 2266f45ec7bSml29623 */ 2276f45ec7bSml29623 typedef union _mii_aner { 2286f45ec7bSml29623 uint16_t value; 2296f45ec7bSml29623 struct { 2306f45ec7bSml29623 #if defined(_BIT_FIELDS_HTOL) 2316f45ec7bSml29623 uint16_t res:11; 2326f45ec7bSml29623 uint16_t mlf:1; 2336f45ec7bSml29623 uint16_t lp_np_able:1; 2346f45ec7bSml29623 uint16_t np_able:1; 2356f45ec7bSml29623 uint16_t page_rx:1; 2366f45ec7bSml29623 uint16_t lp_an_able:1; 2376f45ec7bSml29623 #else 2386f45ec7bSml29623 uint16_t lp_an_able:1; 2396f45ec7bSml29623 uint16_t page_rx:1; 2406f45ec7bSml29623 uint16_t np_able:1; 2416f45ec7bSml29623 uint16_t lp_np_able:1; 2426f45ec7bSml29623 uint16_t mlf:1; 2436f45ec7bSml29623 uint16_t res:11; 2446f45ec7bSml29623 #endif 2456f45ec7bSml29623 } bits; 2466f45ec7bSml29623 } mii_aner_t, *p_mii_aner_t; 2476f45ec7bSml29623 2486f45ec7bSml29623 /* 2496f45ec7bSml29623 * MII Register 7: Next page transmit register. 2506f45ec7bSml29623 */ 2516f45ec7bSml29623 typedef union _mii_nptxr { 2526f45ec7bSml29623 uint16_t value; 2536f45ec7bSml29623 struct { 2546f45ec7bSml29623 #if defined(_BIT_FIELDS_HTOL) 2556f45ec7bSml29623 uint16_t np:1; 2566f45ec7bSml29623 uint16_t res:1; 2576f45ec7bSml29623 uint16_t msgp:1; 2586f45ec7bSml29623 uint16_t ack2:1; 2596f45ec7bSml29623 uint16_t toggle:1; 2606f45ec7bSml29623 uint16_t res1:11; 2616f45ec7bSml29623 #else 2626f45ec7bSml29623 uint16_t res1:11; 2636f45ec7bSml29623 uint16_t toggle:1; 2646f45ec7bSml29623 uint16_t ack2:1; 2656f45ec7bSml29623 uint16_t msgp:1; 2666f45ec7bSml29623 uint16_t res:1; 2676f45ec7bSml29623 uint16_t np:1; 2686f45ec7bSml29623 #endif 2696f45ec7bSml29623 } bits; 2706f45ec7bSml29623 } mii_nptxr_t, *p_mii_nptxr_t; 2716f45ec7bSml29623 2726f45ec7bSml29623 /* 2736f45ec7bSml29623 * MII Register 8: Link partner received next page register. 2746f45ec7bSml29623 */ 2756f45ec7bSml29623 typedef union _mii_lprxnpr { 2766f45ec7bSml29623 uint16_t value; 2776f45ec7bSml29623 struct { 2786f45ec7bSml29623 #if defined(_BIT_FIELDS_HTOL) 2796f45ec7bSml29623 uint16_t np:1; 2806f45ec7bSml29623 uint16_t ack:1; 2816f45ec7bSml29623 uint16_t msgp:1; 2826f45ec7bSml29623 uint16_t ack2:1; 2836f45ec7bSml29623 uint16_t toggle:1; 2846f45ec7bSml29623 uint16_t mcf:11; 2856f45ec7bSml29623 #else 2866f45ec7bSml29623 uint16_t mcf:11; 2876f45ec7bSml29623 uint16_t toggle:1; 2886f45ec7bSml29623 uint16_t ack2:1; 2896f45ec7bSml29623 uint16_t msgp:1; 2906f45ec7bSml29623 uint16_t ack:1; 2916f45ec7bSml29623 uint16_t np:1; 2926f45ec7bSml29623 #endif 2936f45ec7bSml29623 } bits; 2946f45ec7bSml29623 } mii_lprxnpr_t, *p_mii_lprxnpr_t; 2956f45ec7bSml29623 2966f45ec7bSml29623 /* 2976f45ec7bSml29623 * MII Register 9: 1000BaseT control register. 2986f45ec7bSml29623 */ 2996f45ec7bSml29623 typedef union _mii_gcr { 3006f45ec7bSml29623 uint16_t value; 3016f45ec7bSml29623 struct { 3026f45ec7bSml29623 #if defined(_BIT_FIELDS_HTOL) 3036f45ec7bSml29623 uint16_t test_mode:3; 3046f45ec7bSml29623 uint16_t ms_mode_en:1; 3056f45ec7bSml29623 uint16_t master:1; 3066f45ec7bSml29623 uint16_t dte_or_repeater:1; 3076f45ec7bSml29623 uint16_t link_1000fdx:1; 3086f45ec7bSml29623 uint16_t link_1000hdx:1; 3096f45ec7bSml29623 uint16_t res:8; 3106f45ec7bSml29623 #else 3116f45ec7bSml29623 uint16_t res:8; 3126f45ec7bSml29623 uint16_t link_1000hdx:1; 3136f45ec7bSml29623 uint16_t link_1000fdx:1; 3146f45ec7bSml29623 uint16_t dte_or_repeater:1; 3156f45ec7bSml29623 uint16_t master:1; 3166f45ec7bSml29623 uint16_t ms_mode_en:1; 3176f45ec7bSml29623 uint16_t test_mode:3; 3186f45ec7bSml29623 #endif 3196f45ec7bSml29623 } bits; 3206f45ec7bSml29623 } mii_gcr_t, *p_mii_gcr_t; 3216f45ec7bSml29623 3226f45ec7bSml29623 /* 3236f45ec7bSml29623 * MII Register 10: 1000BaseT status register. 3246f45ec7bSml29623 */ 3256f45ec7bSml29623 typedef union _mii_gsr { 3266f45ec7bSml29623 uint16_t value; 3276f45ec7bSml29623 struct { 3286f45ec7bSml29623 #if defined(_BIT_FIELDS_HTOL) 3296f45ec7bSml29623 uint16_t ms_config_fault:1; 3306f45ec7bSml29623 uint16_t ms_resolve:1; 3316f45ec7bSml29623 uint16_t local_rx_status:1; 3326f45ec7bSml29623 uint16_t remote_rx_status:1; 3336f45ec7bSml29623 uint16_t link_1000fdx:1; 3346f45ec7bSml29623 uint16_t link_1000hdx:1; 3356f45ec7bSml29623 uint16_t res:2; 3366f45ec7bSml29623 uint16_t idle_err_cnt:8; 3376f45ec7bSml29623 #else 3386f45ec7bSml29623 uint16_t idle_err_cnt:8; 3396f45ec7bSml29623 uint16_t res:2; 3406f45ec7bSml29623 uint16_t link_1000hdx:1; 3416f45ec7bSml29623 uint16_t link_1000fdx:1; 3426f45ec7bSml29623 uint16_t remote_rx_status:1; 3436f45ec7bSml29623 uint16_t local_rx_status:1; 3446f45ec7bSml29623 uint16_t ms_resolve:1; 3456f45ec7bSml29623 uint16_t ms_config_fault:1; 3466f45ec7bSml29623 #endif 3476f45ec7bSml29623 } bits; 3486f45ec7bSml29623 } mii_gsr_t, *p_mii_gsr_t; 3496f45ec7bSml29623 3506f45ec7bSml29623 /* 3516f45ec7bSml29623 * MII Register 15: Extended status register. 3526f45ec7bSml29623 */ 3536f45ec7bSml29623 typedef union _mii_esr { 3546f45ec7bSml29623 uint16_t value; 3556f45ec7bSml29623 struct { 3566f45ec7bSml29623 #if defined(_BIT_FIELDS_HTOL) 3576f45ec7bSml29623 uint16_t link_1000Xfdx:1; 3586f45ec7bSml29623 uint16_t link_1000Xhdx:1; 3596f45ec7bSml29623 uint16_t link_1000fdx:1; 3606f45ec7bSml29623 uint16_t link_1000hdx:1; 3616f45ec7bSml29623 uint16_t res:12; 3626f45ec7bSml29623 #else 3636f45ec7bSml29623 uint16_t res:12; 3646f45ec7bSml29623 uint16_t link_1000hdx:1; 3656f45ec7bSml29623 uint16_t link_1000fdx:1; 3666f45ec7bSml29623 uint16_t link_1000Xhdx:1; 3676f45ec7bSml29623 uint16_t link_1000Xfdx:1; 3686f45ec7bSml29623 #endif 3696f45ec7bSml29623 } bits; 3706f45ec7bSml29623 } mii_esr_t, *p_mii_esr_t; 3716f45ec7bSml29623 372d81011f0Ssbehera #define NXGE_MODE_SELECT_FIBER 0x01 373d81011f0Ssbehera /* Shadow regiser 0x11111 */ 374d81011f0Ssbehera typedef union _mii_mode_control_stat { 375d81011f0Ssbehera uint16_t value; 376d81011f0Ssbehera struct { 377d81011f0Ssbehera #if defined(_BIT_FIELDS_HTOL) 378d81011f0Ssbehera uint16_t write_enable:1; 379d81011f0Ssbehera uint16_t shadow:5; 380d81011f0Ssbehera uint16_t rsv:1; 381d81011f0Ssbehera uint16_t change:1; 382d81011f0Ssbehera uint16_t copper:1; 383d81011f0Ssbehera uint16_t fiber:1; 384d81011f0Ssbehera uint16_t copper_energy:1; 385d81011f0Ssbehera uint16_t fiber_signal:1; 386d81011f0Ssbehera uint16_t rsv1:1; 387d81011f0Ssbehera uint16_t mode:2; 388d81011f0Ssbehera uint16_t enable:1; 389d81011f0Ssbehera #elif defined(_BIT_FIELDS_LTOH) 390d81011f0Ssbehera uint16_t enable:1; 391d81011f0Ssbehera uint16_t mode:2; 392d81011f0Ssbehera uint16_t rsv1:1; 393d81011f0Ssbehera uint16_t fiber_signal:1; 394d81011f0Ssbehera uint16_t copper_energy:1; 395d81011f0Ssbehera uint16_t fiber:1; 396d81011f0Ssbehera uint16_t copper:1; 397d81011f0Ssbehera uint16_t change:1; 398d81011f0Ssbehera uint16_t rsv:1; 399d81011f0Ssbehera uint16_t shadow:5; 400d81011f0Ssbehera uint16_t write_enable:1; 401d81011f0Ssbehera #endif 402d81011f0Ssbehera } bits; 403d81011f0Ssbehera } mii_mode_control_stat_t, *p_mode_control_stat_t; 404d81011f0Ssbehera 4056f45ec7bSml29623 #ifdef __cplusplus 4066f45ec7bSml29623 } 4076f45ec7bSml29623 #endif 4086f45ec7bSml29623 4096f45ec7bSml29623 #endif /* _SYS_NXGE_NXGE_MII_H_ */ 410