]> CyberLeo.Net >> Repos - FreeBSD/releng/8.1.git/blob - sys/dev/mii/bmtphyreg.h
Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.
[FreeBSD/releng/8.1.git] / sys / dev / mii / bmtphyreg.h
1 /*-
2  * Copyright (c) 2001 The NetBSD Foundation, Inc.
3  * All rights reserved.
4  *
5  * This code is derived from software contributed to The NetBSD Foundation
6  * by Jason R. Thorpe.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  * 3. All advertising materials mentioning features or use of this software
17  *    must display the following acknowledgement:
18  *      This product includes software developed by the NetBSD
19  *      Foundation, Inc. and its contributors.
20  * 4. Neither the name of The NetBSD Foundation nor the names of its
21  *    contributors may be used to endorse or promote products derived
22  *    from this software without specific prior written permission.
23  *
24  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
25  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
26  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
27  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
28  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34  * POSSIBILITY OF SUCH DAMAGE.
35  *
36  *      from NetBSD: bmtphyreg.h,v 1.1 2001/06/02 21:42:10 thorpej Exp
37  *
38  * $FreeBSD$
39  */
40
41 #ifndef _DEV_MII_BMTPHYREG_H_
42 #define _DEV_MII_BMTPHYREG_H_
43
44 /*
45  * BCM5201/BCM5202 registers.
46  */
47
48 #define MII_BMTPHY_AUX_CTL      0x10    /* auxiliary control */
49 #define AUX_CTL_TXDIS           0x2000  /* transmitter disable */
50 #define AUX_CTL_4B5B_BYPASS     0x0400  /* bypass 4b5b encoder */
51 #define AUX_CTL_SCR_BYPASS      0x0200  /* bypass scrambler */
52 #define AUX_CTL_NRZI_BYPASS     0x0100  /* bypass NRZI encoder */
53 #define AUX_CTL_RXALIGN_BYPASS  0x0080  /* bypass rx symbol alignment */
54 #define AUX_CTL_BASEWANDER_DIS  0x0040  /* disable baseline wander correction */
55 #define AUX_CTL_FEF_EN          0x0020  /* far-end fault enable */
56
57
58 #define MII_BMTPHY_AUX_STS      0x11    /* auxiliary status */
59 #define AUX_STS_FX_MODE         0x0400  /* 100base-FX mode (strap pin) */
60 #define AUX_STS_LOCKED          0x0200  /* descrambler locked */
61 #define AUX_STS_100BASE_LINK    0x0100  /* 1 = 100base link */
62 #define AUX_STS_REMFAULT        0x0080  /* remote fault */
63 #define AUX_STS_DISCON_STATE    0x0040  /* disconnect state */
64 #define AUX_STS_FCARDET         0x0020  /* false carrier detected */
65 #define AUX_STS_BAD_ESD         0x0010  /* bad ESD detected */
66 #define AUX_STS_RXERROR         0x0008  /* Rx error detected */
67 #define AUX_STS_TXERROR         0x0004  /* Tx error detected */
68 #define AUX_STS_LOCKERROR       0x0002  /* lock error detected */
69 #define AUX_STS_MLT3ERROR       0x0001  /* MLT3 code error detected */
70
71
72 #define MII_BMTPHY_RXERROR_CTR  0x12    /* 100base-X Rx error counter */
73 #define RXERROR_CTR_MASK        0x00ff
74
75
76 #define MII_BMTPHY_FCS_CTR      0x13    /* 100base-X false carrier counter */
77 #define FCS_CTR_MASK            0x00ff
78
79
80 #define MII_BMTPHY_DIS_CTR      0x14    /* 100base-X disconnect counter */
81 #define DIS_CTR_MASK            0x00ff
82
83
84 #define MII_BMTPHY_PTEST        0x17    /* PTEST */
85
86
87 #define MII_BMTPHY_AUX_CSR      0x18    /* auxiliary control/status */
88 #define AUX_CSR_JABBER_DIS      0x8000  /* jabber disable */
89 #define AUX_CSR_FLINK           0x4000  /* force 10baseT link pass */
90 #define AUX_CSR_HSQ             0x0080  /* SQ high */
91 #define AUX_CSR_LSQ             0x0040  /* SQ low */
92 #define AUX_CSR_ER1             0x0020  /* edge rate 1 */
93 #define AUX_CSR_ER0             0x0010  /* edge rate 0 */
94 #define AUX_CSR_ANEG            0x0008  /* auto-negotiation activated */
95 #define AUX_CSR_F100            0x0004  /* force 100base */
96 #define AUX_CSR_SPEED           0x0002  /* 1 = 100, 0 = 10 */
97 #define AUX_CSR_FDX             0x0001  /* full-duplex */
98
99
100 #define MII_BMTPHY_AUX_SS       0x19    /* auxiliary status summary */
101 #define AUX_SS_ACOMP            0x8000  /* auto-negotiation complete */
102 #define AUX_SS_ACOMP_ACK        0x4000  /* auto-negotiation compl. ack */
103 #define AUX_SS_AACK_DET         0x2000  /* auto-neg. ack detected */
104 #define AUX_SS_ANLPAD           0x1000  /* auto-neg. link part. ability det */
105 #define AUX_SS_ANEG_PAUSE       0x0800  /* pause operation bit */
106 #define AUX_SS_HCD              0x0700  /* highest common denominator */
107 #define AUX_SS_HCD_NONE         0x0000  /*    none */
108 #define AUX_SS_HCD_10T          0x0100  /*    10baseT */
109 #define AUX_SS_HCD_10T_FDX      0x0200  /*    10baseT-FDX */
110 #define AUX_SS_HCD_100TX        0x0300  /*    100baseTX-FDX */
111 #define AUX_SS_HCD_100T4        0x0400  /*    100baseT4 */
112 #define AUX_SS_HCD_100TX_FDX    0x0500  /*    100baseTX-FDX */
113 #define AUX_SS_PDF              0x0080  /* parallel detection fault */
114 #define AUX_SS_LPRF             0x0040  /* link partner remote fault */
115 #define AUX_SS_LPPR             0x0020  /* link partner page received */
116 #define AUX_SS_LPANA            0x0010  /* link partner auto-neg able */
117 #define AUX_SS_SPEED            0x0008  /* 1 = 100, 0 = 10 */
118 #define AUX_SS_LINK             0x0004  /* link pass */
119 #define AUX_SS_ANEN             0x0002  /* auto-neg. enabled */
120 #define AUX_SS_JABBER           0x0001  /* jabber detected */
121
122
123 #define MII_BMTPHY_INTR         0x1a    /* interrupt register */
124 #define INTR_FDX_LED            0x8000  /* full-duplex led enable */
125 #define INTR_INTR_EN            0x4000  /* interrupt enable */
126 #define INTR_FDX_MASK           0x0800  /* full-dupled intr mask */
127 #define INTR_SPD_MASK           0x0400  /* speed intr mask */
128 #define INTR_LINK_MASK          0x0200  /* link intr mask */
129 #define INTR_INTR_MASK          0x0100  /* master interrupt mask */
130 #define INTR_FDX_CHANGE         0x0008  /* full-duplex change */
131 #define INTR_SPD_CHANGE         0x0004  /* speed change */
132 #define INTR_LINK_CHANGE        0x0002  /* link change */
133 #define INTR_INTR_STATUS        0x0001  /* interrupt status */
134
135
136 #define MII_BMTPHY_AUX2         0x1b    /* auliliary mode 2 */
137 #define AUX2_BLOCK_RXDV         0x0200  /* block RXDV mode enabled */
138 #define AUX2_ANPDQ              0x0100  /* auto-neg parallel detection Q mode */
139 #define AUX2_TRAFFIC_LED        0x0040  /* traffic meter led enable */
140 #define AUX2_FXMTRCV_LED        0x0020  /* force Tx and Rx LEDs */
141 #define AUX2_HS_TOKEN           0x0010  /* high-speed token ring mode */
142 #define AUX2_AUTO_LP            0x0008  /* auto low-power mode */
143 #define AUX2_TWOLINK_LED        0x0004  /* two link LEDs */
144 #define AUX2_SQE_DIS            0x0002  /* disable SQE pulse */
145
146
147 #define MII_BMTPHY_AUXERR       0x1c    /* auxiliary error */
148 #define AUXERR_MANCHESTER       0x0400  /* Manchester code error */
149 #define AUXERR_EOF              0x0200  /* EOF detection error */
150 #define AUXERR_POLARITY         0x0100  /* polarity inversion */
151 #define AUXERR_ANEG             0x0008  /* autonegotiation enabled */
152 #define AUXERR_F100             0x0004  /* force 100base */
153 #define AUXERR_SPEED            0x0002  /* 1 = 100, 0 = 10 */
154 #define AUXERR_FDX              0x0001  /* full-duplex */
155
156
157 #define MII_BMTPHY_AUXMODE      0x1d    /* auxiliary mode */
158 #define AUXMODE_ACT_LED_DIS     0x0010  /* activity LED disable */
159 #define AUXMODE_LINK_LED_DIS    0x0008  /* link LED disable */
160 #define AUXMODE_BLOCK_TXEN      0x0002  /* enable block TXEN */
161
162
163 #define MII_BMTPHY_AUXMPHY      0x1e    /* auxiliary multiple phy register */
164 #define AUXMPHY_HCD_TX_FDX      0x8000  /* res. is 100baseTX-FDX */
165 #define AUXMPHY_HCD_T4          0x4000  /* res. is 100baseT4 */
166 #define AUXMPHY_HCD_TX          0x2000  /* res. is 100baseTX */
167 #define AUXMPHY_HCD_10T_FDX     0x1000  /* res. is 10baseT-FDX */
168 #define AUXMPHY_HCD_10T         0x0800  /* res. is 10baseT */
169 #define AUXMPHY_RES_ANEG        0x0100  /* restart auto-negotiation */
170 #define AUXMPHY_ANEG_COMP       0x0080  /* auto-negotiation complete */
171 #define AUXMPHY_ACK_COMP        0x0040  /* acknowledge complete */
172 #define AUXMPHY_ACK_DET         0x0020  /* acknowledge detected */
173 #define AUXMPHY_ABILITY_DET     0x0010  /* waiting for LP ability */
174 #define AUXMPHY_SUPER_ISO       0x0008  /* super-isolate mode */
175 #define AUXMPHY_10T_SERIAL      0x0002  /* 10baseT serial mode */
176
177
178 #define MII_BMTPHY_TEST         0x1d    /* Broadcom test register */
179
180
181 #endif /* _DEV_MII_BMTPHYREG_H_ */