summaryrefslogtreecommitdiff
path: root/sys/arch/mac68k/dev/if_mcreg.h
blob: 45d53bab6522e499f409b0ad9f37a5d59b85b1e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
/*	$OpenBSD: if_mcreg.h,v 1.2 2004/12/15 06:48:24 martin Exp $	*/
/*	NetBSD: if_mcreg.h,v 1.3 2004/03/26 12:15:46 wiz Exp $	*/

/*-
 * Copyright (c) 1997 David Huang <khym@azeotrope.org>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 */

/*
 * AMD MACE (Am79C940) register definitions
 */
#define	MACE_RCVFIFO	0   /* Receive FIFO [15-00] (read only) */
#define	MACE_XMTFIFO	1   /* Transmit FIFO [15-00] (write only) */
#define	MACE_XMTFC	2   /* Transmit Frame Control (read/write) */
#define	MACE_XMTFS	3   /* Transmit Frame Status (read only) */
#define	MACE_XMTRC	4   /* Transmit Retry Count (read only) */
#define	MACE_RCVFC	5   /* Receive Frame Control (read/write) */
#define	MACE_RCVFS	6   /* Receive Frame Status (4 bytes) (read only) */
#define	MACE_FIFOFC	7   /* FIFO Frame Count (read only) */
#define	MACE_IR		8   /* Interrupt Register (read only) */
#define	MACE_IMR	9   /* Interrupt Mask Register (read/write) */
#define	MACE_PR		10  /* Poll Register (read only) */
#define	MACE_BIUCC	11  /* BIU Configuration Control (read/write) */
#define	MACE_FIFOCC	12  /* FIFO Configuration Control (read/write) */
#define	MACE_MACCC	13  /* MAC Configuration Control (read/write) */
#define	MACE_PLSCC	14  /* PLS Configuration Control (read/write) */
#define	MACE_PHYCC	15  /* PHY Confiuration Control (read/write) */
#define	MACE_CHIPIDL	16  /* Chip ID Register [07-00] (read only) */
#define	MACE_CHIPIDH	17  /* Chip ID Register [15-08] (read only) */
#define	MACE_IAC	18  /* Internal Address Configuration (read/write) */
/*	RESERVED	19     Reserved (read/write as 0) */
#define	MACE_LADRF	20  /* Logical Address Filter (8 bytes) (read/write) */
#define	MACE_PADR	21  /* Physical Address (6 bytes) (read/write) */
/*	RESERVED	22     Reserved (read/write as 0) */
/*	RESERVED	23     Reserved (read/write as 0) */
#define	MACE_MPC	24  /* Missed Packet Count (read only) */
/*	RESERVED	25     Reserved (read/write as 0) */
#define	MACE_RNTPC	26  /* Runt Packet Count (read only) */
#define	MACE_RCVCC	27  /* Receive Collision Count (read only) */
/*	RESERVED	28     Reserved (read/write as 0) */
#define	MACE_UTR	29  /* User Test Register (read/write) */
#define	MACE_RTR1	30  /* Reserved Test Register 1 (read/write as 0) */
#define	MACE_RTR2	31  /* Reserved Test Register 2 (read/write as 0) */

#define	MACE_NREGS	32

/* 2: Transmit Frame Control (XMTFC) */
#define	DRTRY		0x80	/* Disable Retry */
#define	DXMTFCS		0x08	/* Disable Transmit FCS */
#define	APADXMT		0x01	/* Auto Pad Transmit */

/* 3: Transmit Frame Status (XMTFS) */
#define	XMTSV		0x80	/* Transmit Status Valid */
#define	UFLO		0x40	/* Underflow */
#define	LCOL		0x20	/* Late Collision */
#define	MORE		0x10	/* More than one retry needed */
#define	ONE		0x08	/* Exactly one retry needed */
#define	DEFER		0x04	/* Transmission deferred */
#define	LCAR		0x02	/* Loss of Carrier */
#define	RTRY		0x01	/* Retry Error */

/* 4: Transmit Retry Count (XMTRC) */
#define	EXDEF		0x80	/* Excessive Defer */
#define	XMTRC		0x0f	/* Transmit Retry Count */

/* 5: Receive Frame Control (RCVFC) */
#define	LLRCV		0x08	/* Low Latency Receive */
#define	MR		0x04	/* Match/Reject */
#define	ASTRPRCV	0x01	/* Auto Strip Receive */

/* 6: Receive Frame Status (RCVFS) */
/* 4 byte register; read 4 times to get all of the bytes */
/* Read 1: RFS0 - Receive Message Byte Count [7-0] (RCVCNT) */

/* Read 2: RFS1 - Receive Status (RCVSTS) */
#define	OFLO		0x80	/* Overflow flag */
#define	CLSN		0x40	/* Collision flag */
#define	FRAM		0x20	/* Framing Error flag */
#define	FCS		0x10	/* FCS Error flag */
#define	RCVCNT		0x0f	/* Receive Message Byte Count [11-8] */

/* Read 3: RFS2 - Runt Packet Count (RNTPC) [7-0] */

/* Read 4: RFS3 - Receive Collision Count (RCVCC) [7-0] */

/* 7: FIFO Frame Count (FIFOFC) */
#define	RCVFC		0xf0	/* Receive Frame Count */
#define	XMTFC		0x0f	/* Transmit Frame Count */

/* 8: Interrupt Register (IR) */
#define	JAB		0x80	/* Jabber Error */
#define	BABL		0x40	/* Babble Error */
#define	CERR		0x20	/* Collision Error */
#define	RCVCCO		0x10	/* Receive Collision Count Overflow */
#define	RNTPCO		0x08	/* Runt Packet Count Overflow */
#define	MPCO		0x04	/* Missed Packet Count Overflow */
#define	RCVINT		0x02	/* Receive Interrupt */
#define	XMTINT		0x01	/* Transmit Interrupt */

/* 9: Interrut Mask Register (IMR) */
#define	JABM		0x80	/* Jabber Error Mask */
#define	BABLM		0x40	/* Babble Error Mask */
#define	CERRM		0x20	/* Collision Error Mask */
#define	RCVCCOM		0x10	/* Receive Collision Count Overflow Mask */
#define	RNTPCOM		0x08	/* Runt Packet Count Overflow Mask */
#define	MPCOM		0x04	/* Missed Packet Count Overflow Mask */
#define	RCVINTM		0x02	/* Receive Interrupt Mask */
#define	XMTINTM		0x01	/* Transmit Interrupt Mask */

/* 10: Poll Register (PR) */
#define	XMTSV		0x80	/* Transmit Status Valid */
#define	TDTREQ		0x40	/* Transmit Data Transfer Request */
#define	RDTREQ		0x20	/* Receive Data Transfer Request */

/* 11: BIU Configuration Control (BIUCC) */
#define	BSWP		0x40	/* Byte Swap */
#define	XMTSP		0x30	/* Transmit Start Point */
#define	XMTSP_4		0x00	/* 4 bytes */
#define	XMTSP_16	0x10	/* 16 bytes */
#define	XMTSP_64	0x20	/* 64 bytes */
#define	XMTSP_112	0x30	/* 112 bytes */
#define	SWRST		0x01	/* Software Reset */

/* 12: FIFO Configuration Control (FIFOCC) */
#define	XMTFW		0xc0	/* Transmit FIFO Watermark */
#define	XMTFW_8		0x00	/* 8 write cycles */
#define	XMTFW_16	0x40	/* 16 write cycles */
#define	XMTFW_32	0x80	/* 32 write cycles */
#define	RCVFW		0x30	/* Receive FIFO Watermark */
#define	RCVFW_16	0x00	/* 16 bytes */
#define	RCVFW_32	0x10	/* 32 bytes */
#define	RCVFW_64	0x20	/* 64 bytes */
#define	XMTFWU		0x08	/* Transmit FIFO Watermark Update */
#define	RCVFWU		0x04	/* Receive FIFO Watermark Update */
#define	XMTBRST		0x02	/* Transmit Burst */
#define	RCVBRST		0x01	/* Receive Burst */

/* 13: MAC Configuration (MACCC) */
#define	PROM		0x80	/* Promiscuous */
#define	DXMT2PD		0x40	/* Disable Transmit Two Part Deferral */
#define	EMBA		0x20	/* Enable Modified Back-off Algorithm */
#define	DRCVPA		0x08	/* Disable Receive Physical Address */
#define	DRCVBC		0x04	/* Disable Receive Broadcast */
#define	ENXMT		0x02	/* Enable Transmit */
#define	ENRCV		0x01	/* Enable Receive */

/* 14: PLS Configuration Control (PLSCC) */
#define	XMTSEL		0x08	/* Transmit Mode Select */
#define	PORTSEL		0x06	/* Port Select */
#define	PORTSEL_AUI	0x00	/* Select AUI */
#define	PORTSEL_10BT	0x02	/* Select 10BASE-T */
#define	PORTSEL_DAI	0x04	/* Select DAI port */
#define	PORTSEL_GPSI	0x06	/* Select GPSI */
#define	ENPLSIO		0x01	/* Enable PLS I/O */

/* 15: PHY Configuration (PHYCC) */
#define	LNKFL		0x80	/* Link Fail */
#define	DLNKTST		0x40	/* Disable Link Test */
#define	REVPOL		0x20	/* Reversed Polarity */
#define	DAPC		0x10	/* Disable Auto Polarity Correction */
#define	LRT		0x08	/* Low Receive Threshold */
#define	ASEL		0x04	/* Auto Select */
#define	RWAKE		0x02	/* Remote Wake */
#define	AWAKE		0x01	/* Auto Wake */

/* 18: Internal Address Configuration (IAC) */
#define	ADDRCHG		0x80	/* Address Change */
#define	PHYADDR		0x04	/* Physical Address Reset */
#define	LOGADDR		0x02	/* Logical Address Reset */

/* 28: User Test Register (UTR) */
#define	RTRE		0x80	/* Reserved Test Register Enable */
#define	RTRD		0x40	/* Reserved Test Register Disable */
#define	RPA		0x20	/* Run Packet Accept */
#define	FCOLL		0x10	/* Force Collision */
#define	RCVFCSE		0x08	/* Receive FCS Enable */
#define	LOOP		0x06	/* Loopback Control */
#define	LOOP_NONE	0x00	/* No Loopback */
#define	LOOP_EXT	0x02	/* External Loopback */
#define	LOOP_INT	0x04	/* Internal Loopback, excludes MENDEC */
#define	LOOP_INT_MENDEC	0x06	/* Internal Loopback, includes MENDEC */