1 /*        $NetBSD: if_bmreg.h,v 1.2 2000/01/25 14:38:50 tsubai Exp $  */
2 
3 /*
4  * Copyright 1991-1998 by Open Software Foundation, Inc.
5  *              All Rights Reserved
6  *
7  * Permission to use, copy, modify, and distribute this software and
8  * its documentation for any purpose and without fee is hereby granted,
9  * provided that the above copyright notice appears in all copies and
10  * that both the copyright notice and this permission notice appear in
11  * supporting documentation.
12  *
13  * OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
14  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
15  * FOR A PARTICULAR PURPOSE.
16  *
17  * IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
18  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
19  * LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
20  * NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
21  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
22  */
23 
24 /* -------------------------------------------------------------------- */
25 /* Heathrow (F)eature (C)ontrol (R)egister Addresses                            */
26 /* -------------------------------------------------------------------- */
27 #define EnetEnable  0x60000000          /* enable Enet Xcvr/Controller */
28 #define ResetEnetCell         0x80000000          /* reset Enet cell */
29 
30 /* -------------------------------------------------------------------- */
31 /*        BigMac Register Numbers & Bit Assignments                             */
32 /* -------------------------------------------------------------------- */
33 #define XIFC                  0x0000
34 #define  TxOutputEnable                 0x0001
35 #define  MIILoopbackBits      0x0006
36 #define  MIIBufferEnable      0x0008
37 #define  SQETestEnable                  0x0010
38 #define LinkStatus  0x0100
39 #define TXFIFOCSR   0x0100
40 #define  TxFIFOEnable                   0x0001
41 #define  TxFIFO128            0x0000
42 #define TXTH                  0x0110
43 #define RXFIFOCSR   0x0120
44 #define  RxFIFOEnable                   TxFIFOEnable
45 #define  RxFIFO128            TxFIFO128
46 #define MEMADD                0x0130
47 #define MEMDATAHI   0x0140
48 #define MEMDATALO   0x0150
49 #define XCVRIF                0x0160
50 #define  COLActiveLow                   0x0002
51 #define  SerialMode           0x0004
52 #define  ClkBit                         0x0008
53 #define CHIPID                0x0170
54 #define MIFCSR                0x0180
55 #define  MIFDC                          0x0001    /* MII clock */
56 #define  MIFDO                          0x0002    /* MII data out */
57 #define  MIFDIR                         0x0004    /* MII direction (1: write) */
58 #define  MIFDI                          0x0008    /* MII data in */
59 #define SROMCSR               0x0190
60 #define TXPNTR                0x01A0
61 #define RXPNTR                0x01B0
62 #define STATUS                0x0200
63 #define INTDISABLE  0x0210
64 #define  IntFrameReceived     0x0001
65 #define  IntRxFrameCntExp     0x0002
66 #define  IntRxAlignCntExp     0x0004
67 #define  IntRxCRCCntExp                 0x0008
68 #define  IntRxLenCntExp                 0x0010
69 #define  IntRxOverFlow                  0x0020
70 #define  IntRxCodeViolation   0x0040
71 #define  IntSQETestError      0x0080
72 #define  IntFrameSent                   0x0100
73 #define  IntTxUnderrun                  0x0200
74 #define  IntTxMaxSizeError    0x0400
75 #define  IntTxNormalCollExp   0x0800
76 #define  IntTxExcessCollExp   0x1000
77 #define  IntTxLateCollExp     0x2000
78 #define  IntTxNetworkCollExp  0x4000
79 #define  IntTxDeferTimerExp   0x8000
80 #define  NormalIntEvents      ~(IntFrameSent)
81 #define  NoEventsMask                   0xFFFF
82 
83 #define TxNeverGiveUp         0x0400
84 #define TXRST                 0x0420
85 #define  TxResetBit           0x0001
86 #define TXCFG                 0x0430
87 #define  TxMACEnable                    0x0001
88 #define  TxThreshold                    0x0004
89 #define  TxFullDuplex                   0x0200
90 #define IPG1                  0x0440
91 #define IPG2                  0x0450
92 #define ALIMIT                0x0460
93 #define SLOT                  0x0470
94 #define PALEN                 0x0480
95 #define PAPAT                 0x0490
96 #define TXSFD                 0x04A0
97 #define JAM                   0x04B0
98 #define TXMAX                 0x04C0
99 #define TXMIN                 0x04D0
100 #define PAREG                 0x04E0
101 #define DCNT                  0x04F0
102 #define NCCNT                 0x0500
103 #define NTCNT                 0x0510
104 #define EXCNT                 0x0520
105 #define LTCNT                 0x0530
106 #define RSEED                 0x0540
107 #define TXSM                  0x0550
108 #define RXRST                 0x0620
109 #define  RxResetValue                   0x0000
110 #define RXCFG                 0x0630
111 #define  RxMACEnable                    0x0001
112 #define  ReservedValue                  0x0004
113 #define  RxPromiscEnable      0x0040
114 #define  RxCRCEnable                    0x0100
115 #define  RxRejectOwnPackets   0x0200
116 #define  RxHashFilterEnable   0x0800
117 #define  RxAddrFilterEnable   0x1000
118 #define RXMAX                 0x0640
119 #define RXMIN                 0x0650
120 #define MADD2                 0x0660
121 #define MADD1                 0x0670
122 #define MADD0                 0x0680
123 #define FRCNT                 0x0690
124 #define LECNT                 0x06A0
125 #define AECNT                 0x06B0
126 #define FECNT                 0x06C0
127 #define RXSM                  0x06D0
128 #define RXCV                  0x06E0
129 #define HASH3                 0x0700
130 #define HASH2                 0x0710
131 #define HASH1                 0x0720
132 #define HASH0                 0x0730
133 #define AFR2                  0x0740
134 #define AFR1                  0x0750
135 #define AFR0                  0x0760
136 #define AFCR                  0x0770
137 #define  EnableAllCompares    0x0fff
138 
139 /* -------------------------------------------------------------------- */
140 /*        Misc. Bit definitions for BMac Status word                            */
141 /* -------------------------------------------------------------------- */
142 #define RxAbortBit  0x8000    /* status bit in BMac status for rx packets */
143 #define RxLengthMask          0x3FFF    /* bits that determine length of rx packets */
144 
145 #define NETWORK_BUFSIZE                 (ETHERMAXPACKET + ETHERCRC + 2)
146