1/*	$NetBSD: if_bmreg.h,v 1.1 1999/01/01 01:27:52 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