[BACK]Return to brgphyreg.h CVS log [TXT][DIR] Up to [local] / sys / dev / mii

Annotation of sys/dev/mii/brgphyreg.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: brgphyreg.h,v 1.9 2007/01/30 02:35:16 krw Exp $       */
        !             2:
        !             3: /*
        !             4:  * Copyright (c) 2000
        !             5:  *     Bill Paul <wpaul@ee.columbia.edu>.  All rights reserved.
        !             6:  *
        !             7:  * Redistribution and use in source and binary forms, with or without
        !             8:  * modification, are permitted provided that the following conditions
        !             9:  * are met:
        !            10:  * 1. Redistributions of source code must retain the above copyright
        !            11:  *    notice, this list of conditions and the following disclaimer.
        !            12:  * 2. Redistributions in binary form must reproduce the above copyright
        !            13:  *    notice, this list of conditions and the following disclaimer in the
        !            14:  *    documentation and/or other materials provided with the distribution.
        !            15:  * 3. All advertising materials mentioning features or use of this software
        !            16:  *    must display the following acknowledgement:
        !            17:  *     This product includes software developed by Bill Paul.
        !            18:  * 4. Neither the name of the author nor the names of any co-contributors
        !            19:  *    may be used to endorse or promote products derived from this software
        !            20:  *    without specific prior written permission.
        !            21:  *
        !            22:  * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
        !            23:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        !            24:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
        !            25:  * ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
        !            26:  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
        !            27:  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
        !            28:  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
        !            29:  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
        !            30:  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
        !            31:  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
        !            32:  * THE POSSIBILITY OF SUCH DAMAGE.
        !            33:  *
        !            34:  * $FreeBSD: brgphyreg.h,v 1.4 2001/09/27 17:32:49 wpaul Exp $
        !            35:  */
        !            36:
        !            37: #ifndef _DEV_MII_BRGPHYREG_H_
        !            38: #define        _DEV_MII_BRGPHYREG_H_
        !            39:
        !            40: /*
        !            41:  * Broadcom BCM5400 registers
        !            42:  */
        !            43:
        !            44: #define BRGPHY_MII_BMCR                0x00
        !            45: #define BRGPHY_BMCR_RESET      0x8000
        !            46: #define BRGPHY_BMCR_LOOP       0x4000
        !            47: #define BRGPHY_BMCR_SPD0       0x2000  /* speed select, lower bit */
        !            48: #define BRGPHY_BMCR_AUTOEN     0x1000  /* Autoneg enabled */
        !            49: #define BRGPHY_BMCR_PDOWN      0x0800  /* Power down */
        !            50: #define BRGPHY_BMCR_ISO                0x0400  /* Isolate */
        !            51: #define BRGPHY_BMCR_STARTNEG   0x0200  /* Restart autoneg */
        !            52: #define BRGPHY_BMCR_FDX                0x0100  /* Duplex mode */
        !            53: #define BRGPHY_BMCR_CTEST      0x0080  /* Collision test enable */
        !            54: #define BRGPHY_BMCR_SPD1       0x0040  /* Speed select, upper bit */
        !            55:
        !            56: #define BRGPHY_S1000           BRGPHY_BMCR_SPD1        /* 1000mbps */
        !            57: #define BRGPHY_S100            BRGPHY_BMCR_SPD0        /* 100mpbs */
        !            58: #define BRGPHY_S10             0                       /* 10mbps */
        !            59:
        !            60: #define BRGPHY_MII_BMSR                0x01
        !            61: #define BRGPHY_BMSR_EXTSTS     0x0100  /* Extended status present */
        !            62: #define BRGPHY_BMSR_PRESUB     0x0040  /* Preamble suppression */
        !            63: #define BRGPHY_BMSR_ACOMP      0x0020  /* Autoneg complete */
        !            64: #define BRGPHY_BMSR_RFAULT     0x0010  /* Remote fault condition occurred */
        !            65: #define BRGPHY_BMSR_ANEG       0x0008  /* Autoneg capable */
        !            66: #define BRGPHY_BMSR_LINK       0x0004  /* Link status */
        !            67: #define BRGPHY_BMSR_JABBER     0x0002  /* Jabber detected */
        !            68: #define BRGPHY_BMSR_EXT                0x0001  /* Extended capability */
        !            69:
        !            70: #define BRGPHY_MII_ANAR                0x04
        !            71: #define BRGPHY_ANAR_NP         0x8000  /* Next page */
        !            72: #define BRGPHY_ANAR_RF         0x2000  /* Remote fault */
        !            73: #define BRGPHY_ANAR_ASP                0x0800  /* Asymmetric Pause */
        !            74: #define BRGPHY_ANAR_PC         0x0400  /* Pause capable */
        !            75: #define BRGPHY_ANAR_SEL                0x001F  /* selector field, 00001=Ethernet */
        !            76:
        !            77: #define BRGPHY_MII_ANLPAR      0x05
        !            78: #define BRGPHY_ANLPAR_NP       0x8000  /* Next page */
        !            79: #define BRGPHY_ANLPAR_RF       0x2000  /* Remote fault */
        !            80: #define BRGPHY_ANLPAR_ASP      0x0800  /* Asymmetric Pause */
        !            81: #define BRGPHY_ANLPAR_PC       0x0400  /* Pause capable */
        !            82: #define BRGPHY_ANLPAR_SEL      0x001F  /* selector field, 00001=Ethernet */
        !            83:
        !            84: #define BRGPHY_SEL_TYPE                0x0001  /* ethernet */
        !            85:
        !            86: #define BRGPHY_MII_ANER                0x06
        !            87: #define BRGPHY_ANER_PDF                0x0010  /* Parallel detection fault */
        !            88: #define BRGPHY_ANER_LPNP       0x0008  /* Link partner can next page */
        !            89: #define BRGPHY_ANER_NP         0x0004  /* Local PHY can next page */
        !            90: #define BRGPHY_ANER_RX         0x0002  /* Next page received */
        !            91: #define BRGPHY_ANER_LPAN       0x0001  /* Link partner autoneg capable */
        !            92:
        !            93: #define BRGPHY_MII_NEXTP       0x07    /* Next page */
        !            94:
        !            95: #define BRGPHY_MII_NEXTP_LP    0x08    /* Next page of link partner */
        !            96:
        !            97: #define BRGPHY_MII_1000CTL     0x09    /* 1000baseT control */
        !            98: #define BRGPHY_1000CTL_TST     0xE000  /* test modes */
        !            99: #define BRGPHY_1000CTL_MSE     0x1000  /* Master/Slave enable */
        !           100: #define BRGPHY_1000CTL_MSC     0x0800  /* Master/Slave configuration */
        !           101: #define BRGPHY_1000CTL_RD      0x0400  /* Repeater/DTE */
        !           102: #define BRGPHY_1000CTL_AFD     0x0200  /* Advertise full duplex */
        !           103: #define BRGPHY_1000CTL_AHD     0x0100  /* Advertise half duplex */
        !           104:
        !           105: #define BRGPHY_MII_1000STS     0x0A    /* 1000baseT status */
        !           106: #define BRGPHY_1000STS_MSF     0x8000  /* Master/slave fault */
        !           107: #define BRGPHY_1000STS_MSR     0x4000  /* Master/slave result */
        !           108: #define BRGPHY_1000STS_LRS     0x2000  /* Local receiver status */
        !           109: #define BRGPHY_1000STS_RRS     0x1000  /* Remote receiver status */
        !           110: #define BRGPHY_1000STS_LPFD    0x0800  /* Link partner can FD */
        !           111: #define BRGPHY_1000STS_LPHD    0x0400  /* Link partner can HD */
        !           112: #define BRGPHY_1000STS_IEC     0x00FF  /* Idle error count */
        !           113:
        !           114: #define BRGPHY_MII_EXTSTS      0x0F    /* Extended status */
        !           115: #define BRGPHY_EXTSTS_X_FD_CAP 0x8000  /* 1000base-X FD capable */
        !           116: #define BRGPHY_EXTSTS_X_HD_CAP 0x4000  /* 1000base-X HD capable */
        !           117: #define BRGPHY_EXTSTS_T_FD_CAP 0x2000  /* 1000base-T FD capable */
        !           118: #define BRGPHY_EXTSTS_T_HD_CAP 0x1000  /* 1000base-T HD capable */
        !           119:
        !           120: #define BRGPHY_MII_PHY_EXTCTL  0x10    /* PHY extended control */
        !           121: #define BRGPHY_PHY_EXTCTL_MAC_PHY      0x8000  /* 10BIT/GMI-interface */
        !           122: #define BRGPHY_PHY_EXTCTL_DIS_CROSS    0x4000  /* Disable MDI crossover */
        !           123: #define BRGPHY_PHY_EXTCTL_TX_DIS       0x2000  /* Tx output disable d*/
        !           124: #define BRGPHY_PHY_EXTCTL_INT_DIS      0x1000  /* Interrupts disabled */
        !           125: #define BRGPHY_PHY_EXTCTL_F_INT                0x0800  /* Force interrupt */
        !           126: #define BRGPHY_PHY_EXTCTL_BY_45                0x0400  /* Bypass 4B5B-Decoder */
        !           127: #define BRGPHY_PHY_EXTCTL_BY_SCR       0x0200  /* Bypass scrambler */
        !           128: #define BRGPHY_PHY_EXTCTL_BY_MLT3      0x0100  /* Bypass MLT3 encoder */
        !           129: #define BRGPHY_PHY_EXTCTL_BY_RXA       0x0080  /* Bypass RX alignment */
        !           130: #define BRGPHY_PHY_EXTCTL_RES_SCR      0x0040  /* Reset scrambler */
        !           131: #define BRGPHY_PHY_EXTCTL_EN_LTR       0x0020  /* Enable LED traffic mode */
        !           132: #define BRGPHY_PHY_EXTCTL_LED_ON       0x0010  /* Force LEDs on */
        !           133: #define BRGPHY_PHY_EXTCTL_LED_OFF      0x0008  /* Force LEDs off */
        !           134: #define BRGPHY_PHY_EXTCTL_EX_IPG       0x0004  /* Extended TX IPG mode */
        !           135: #define BRGPHY_PHY_EXTCTL_3_LED                0x0002  /* Three link LED mode */
        !           136: #define BRGPHY_PHY_EXTCTL_HIGH_LA      0x0001  /* GMII Fifo Elasticy (?) */
        !           137:
        !           138: #define BRGPHY_MII_PHY_EXTSTS  0x11    /* PHY extended status */
        !           139: #define BRGPHY_PHY_EXTSTS_CROSS_STAT   0x2000  /* MDI crossover status */
        !           140: #define BRGPHY_PHY_EXTSTS_INT_STAT     0x1000  /* Interrupt status */
        !           141: #define BRGPHY_PHY_EXTSTS_RRS          0x0800  /* Remote receiver status */
        !           142: #define BRGPHY_PHY_EXTSTS_LRS          0x0400  /* Local receiver status */
        !           143: #define BRGPHY_PHY_EXTSTS_LOCKED       0x0200  /* Locked */
        !           144: #define BRGPHY_PHY_EXTSTS_LS           0x0100  /* Link status */
        !           145: #define BRGPHY_PHY_EXTSTS_RF           0x0080  /* Remove fault */
        !           146: #define BRGPHY_PHY_EXTSTS_CE_ER                0x0040  /* Carrier ext error */
        !           147: #define BRGPHY_PHY_EXTSTS_BAD_SSD      0x0020  /* Bad SSD */
        !           148: #define BRGPHY_PHY_EXTSTS_BAD_ESD      0x0010  /* Bad ESS */
        !           149: #define BRGPHY_PHY_EXTSTS_RX_ER                0x0008  /* RX error */
        !           150: #define BRGPHY_PHY_EXTSTS_TX_ER                0x0004  /* TX error */
        !           151: #define BRGPHY_PHY_EXTSTS_LOCK_ER      0x0002  /* Lock error */
        !           152: #define BRGPHY_PHY_EXTSTS_MLT3_ER      0x0001  /* MLT3 code error */
        !           153:
        !           154: #define BRGPHY_MII_RXERRCNT    0x12    /* RX error counter */
        !           155:
        !           156: #define BRGPHY_MII_FCERRCNT    0x13    /* false carrier sense counter */
        !           157: #define BGRPHY_FCERRCNT                0x00FF  /* False carrier counter */
        !           158:
        !           159: #define BRGPHY_MII_RXNOCNT     0x14    /* RX not OK counter */
        !           160: #define BRGPHY_RXNOCNT_LOCAL   0xFF00  /* Local RX not OK counter */
        !           161: #define BRGPHY_RXNOCNT_REMOTE  0x00FF  /* Local RX not OK counter */
        !           162:
        !           163: #define BRGPHY_MII_DSP_RW_PORT 0x15    /* DSP coefficient r/w port */
        !           164:
        !           165: #define BRGPHY_MII_DSP_ADDR_REG        0x17    /* DSP coefficient addr register */
        !           166:
        !           167: #define BRGPHY_DSP_TAP_NUMBER_MASK             0x00
        !           168: #define BRGPHY_DSP_AGC_A                       0x00
        !           169: #define BRGPHY_DSP_AGC_B                       0x01
        !           170: #define BRGPHY_DSP_MSE_PAIR_STATUS             0x02
        !           171: #define BRGPHY_DSP_SOFT_DECISION               0x03
        !           172: #define BRGPHY_DSP_PHASE_REG                   0x04
        !           173: #define BRGPHY_DSP_SKEW                                0x05
        !           174: #define BRGPHY_DSP_POWER_SAVER_UPPER_BOUND     0x06
        !           175: #define BRGPHY_DSP_POWER_SAVER_LOWER_BOUND     0x07
        !           176: #define BRGPHY_DSP_LAST_ECHO                   0x08
        !           177: #define BRGPHY_DSP_FREQUENCY                   0x09
        !           178: #define BRGPHY_DSP_PLL_BANDWIDTH               0x0A
        !           179: #define BRGPHY_DSP_PLL_PHASE_OFFSET            0x0B
        !           180:
        !           181: #define BRGPHYDSP_FILTER_DCOFFSET              0x0C00
        !           182: #define BRGPHY_DSP_FILTER_FEXT3                        0x0B00
        !           183: #define BRGPHY_DSP_FILTER_FEXT2                        0x0A00
        !           184: #define BRGPHY_DSP_FILTER_FEXT1                        0x0900
        !           185: #define BRGPHY_DSP_FILTER_FEXT0                        0x0800
        !           186: #define BRGPHY_DSP_FILTER_NEXT3                        0x0700
        !           187: #define BRGPHY_DSP_FILTER_NEXT2                        0x0600
        !           188: #define BRGPHY_DSP_FILTER_NEXT1                        0x0500
        !           189: #define BRGPHY_DSP_FILTER_NEXT0                        0x0400
        !           190: #define BRGPHY_DSP_FILTER_ECHO                 0x0300
        !           191: #define BRGPHY_DSP_FILTER_DFE                  0x0200
        !           192: #define BRGPHY_DSP_FILTER_FFE                  0x0100
        !           193:
        !           194: #define BRGPHY_DSP_CONTROL_ALL_FILTERS         0x1000
        !           195:
        !           196: #define BRGPHY_DSP_SEL_CH_0                    0x0000
        !           197: #define BRGPHY_DSP_SEL_CH_1                    0x2000
        !           198: #define BRGPHY_DSP_SEL_CH_2                    0x4000
        !           199: #define BRGPHY_DSP_SEL_CH_3                    0x6000
        !           200:
        !           201: #define BRGPHY_MII_AUXCTL      0x18    /* AUX control */
        !           202: #define BRGPHY_AUXCTL_LOW_SQ   0x8000  /* Low squelch */
        !           203: #define BRGPHY_AUXCTL_LONG_PKT 0x4000  /* RX long packets */
        !           204: #define BRGPHY_AUXCTL_ER_CTL   0x3000  /* Edgerate control */
        !           205: #define BRGPHY_AUXCTL_TX_TST   0x0400  /* TX test, always 1 */
        !           206: #define BRGPHY_AUXCTL_DIS_PRF  0x0080  /* dis part resp filter */
        !           207: #define BRGPHY_AUXCTL_DIAG_MODE        0x0004  /* Diagnostic mode */
        !           208:
        !           209: #define BRGPHY_MII_AUXSTS      0x19    /* AUX status */
        !           210: #define BRGPHY_AUXSTS_ACOMP    0x8000  /* autoneg complete */
        !           211: #define BRGPHY_AUXSTS_AN_ACK   0x4000  /* autoneg complete ack */
        !           212: #define BRGPHY_AUXSTS_AN_ACK_D 0x2000  /* autoneg complete ack detect */
        !           213: #define BRGPHY_AUXSTS_AN_NPW   0x1000  /* autoneg next page wait */
        !           214: #define BRGPHY_AUXSTS_AN_RES   0x0700  /* AN HDC */
        !           215: #define BRGPHY_AUXSTS_PDF      0x0080  /* Parallel detect. fault */
        !           216: #define BRGPHY_AUXSTS_RF       0x0040  /* remote fault */
        !           217: #define BRGPHY_AUXSTS_ANP_R    0x0020  /* AN page received */
        !           218: #define BRGPHY_AUXSTS_LP_ANAB  0x0010  /* LP AN ability */
        !           219: #define BRGPHY_AUXSTS_LP_NPAB  0x0008  /* LP Next page ability */
        !           220: #define BRGPHY_AUXSTS_LINK     0x0004  /* Link status */
        !           221: #define BRGPHY_AUXSTS_PRR      0x0002  /* Pause resolution-RX */
        !           222: #define BRGPHY_AUXSTS_PRT      0x0001  /* Pause resolution-TX */
        !           223:
        !           224: #define BRGPHY_RES_1000FD      0x0700  /* 1000baseT full duplex */
        !           225: #define BRGPHY_RES_1000HD      0x0600  /* 1000baseT half duplex */
        !           226: #define BRGPHY_RES_100FD       0x0500  /* 100baseT full duplex */
        !           227: #define BRGPHY_RES_100T4       0x0400  /* 100baseT4 */
        !           228: #define BRGPHY_RES_100HD       0x0300  /* 100baseT half duplex */
        !           229: #define BRGPHY_RES_10FD                0x0200  /* 10baseT full duplex */
        !           230: #define BRGPHY_RES_10HD                0x0100  /* 10baseT half duplex */
        !           231:
        !           232: #define BRGPHY_MII_ISR         0x1A    /* interrupt status */
        !           233: #define BRGPHY_ISR_PSERR       0x4000  /* Pair swap error */
        !           234: #define BRGPHY_ISR_MDXI_SC     0x2000  /* MDIX Status Change */
        !           235: #define BRGPHY_ISR_HCT         0x1000  /* counter above 32K */
        !           236: #define BRGPHY_ISR_LCT         0x0800  /* all counter below 128 */
        !           237: #define BRGPHY_ISR_AN_PR       0x0400  /* Autoneg page received */
        !           238: #define BRGPHY_ISR_NO_HDCL     0x0200  /* No HCD Link */
        !           239: #define BRGPHY_ISR_NO_HDC      0x0100  /* No HCD */
        !           240: #define BRGPHY_ISR_USHDC       0x0080  /* Negotiated Unsupported HCD */
        !           241: #define BRGPHY_ISR_SCR_S_ERR   0x0040  /* Scrambler sync error */
        !           242: #define BRGPHY_ISR_RRS_CHG     0x0020  /* Remote RX status change */
        !           243: #define BRGPHY_ISR_LRS_CHG     0x0010  /* Local RX status change */
        !           244: #define BRGPHY_ISR_DUP_CHG     0x0008  /* Duplex mode change */
        !           245: #define BRGPHY_ISR_LSP_CHG     0x0004  /* Link speed changed */
        !           246: #define BRGPHY_ISR_LNK_CHG     0x0002  /* Link status change */
        !           247: #define BRGPHY_ISR_CRCERR      0x0001  /* CEC error */
        !           248:
        !           249: #define BRGPHY_MII_IMR         0x1B    /* interrupt mask */
        !           250: #define BRGPHY_IMR_PSERR       0x4000  /* Pair swap error */
        !           251: #define BRGPHY_IMR_MDXI_SC     0x2000  /* MDIX Status Change */
        !           252: #define BRGPHY_IMR_HCT         0x1000  /* counter above 32K */
        !           253: #define BRGPHY_IMR_LCT         0x0800  /* all counter below 128 */
        !           254: #define BRGPHY_IMR_AN_PR       0x0400  /* Autoneg page received */
        !           255: #define BRGPHY_IMR_NO_HDCL     0x0200  /* No HCD Link */
        !           256: #define BRGPHY_IMR_NO_HDC      0x0100  /* No HCD */
        !           257: #define BRGPHY_IMR_USHDC       0x0080  /* Negotiated Unsupported HCD */
        !           258: #define BRGPHY_IMR_SCR_S_ERR   0x0040  /* Scrambler sync error */
        !           259: #define BRGPHY_IMR_RRS_CHG     0x0020  /* Remote RX status change */
        !           260: #define BRGPHY_IMR_LRS_CHG     0x0010  /* Local RX status change */
        !           261: #define BRGPHY_IMR_DUP_CHG     0x0008  /* Duplex mode change */
        !           262: #define BRGPHY_IMR_LSP_CHG     0x0004  /* Link speed changed */
        !           263: #define BRGPHY_IMR_LNK_CHG     0x0002  /* Link status change */
        !           264: #define BRGPHY_IMR_CRCERR      0x0001  /* CEC error */
        !           265:
        !           266: #define BRGPHY_TEST1           0x1E
        !           267: #define BRGPHY_TEST1_TRIM_EN   0x0010
        !           268:
        !           269: #define BRGPHY_INTRS   \
        !           270:        ~(BRGPHY_IMR_LNK_CHG|BRGPHY_IMR_LSP_CHG|BRGPHY_IMR_DUP_CHG)
        !           271:
        !           272: #endif /* _DEV_BRGPHY_MIIREG_H_ */

CVSweb