xref: /netbsd/sys/arch/mac68k/dev/if_mcreg.h (revision bf9ec67e)
1 /*	$NetBSD: if_mcreg.h,v 1.2 1997/11/07 13:31:18 briggs Exp $	*/
2 
3 /*-
4  * Copyright (c) 1997 David Huang <khym@bga.com>
5  * 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. The name of the author may not be used to endorse or promote products
13  *    derived from this software without specific prior written permission
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25  *
26  */
27 
28 /*
29  * AMD MACE (Am79C940) register definitions
30  */
31 #define	MACE_RCVFIFO	0   /* Receive FIFO [15-00] (read only) */
32 #define	MACE_XMTFIFO	1   /* Transmit FIFO [15-00] (write only) */
33 #define	MACE_XMTFC	2   /* Transmit Frame Control (read/write) */
34 #define	MACE_XMTFS	3   /* Transmit Frame Status (read only) */
35 #define	MACE_XMTRC	4   /* Transmit Retry Count (read only) */
36 #define	MACE_RCVFC	5   /* Receive Frame Control (read/write) */
37 #define	MACE_RCVFS	6   /* Receive Frame Status (4 bytes) (read only) */
38 #define	MACE_FIFOFC	7   /* FIFO Frame Count (read only) */
39 #define	MACE_IR		8   /* Interrupt Register (read only) */
40 #define	MACE_IMR	9   /* Interrupt Mask Register (read/write) */
41 #define	MACE_PR		10  /* Poll Register (read only) */
42 #define	MACE_BIUCC	11  /* BIU Configuration Control (read/write) */
43 #define	MACE_FIFOCC	12  /* FIFO Configuration Control (read/write) */
44 #define	MACE_MACCC	13  /* MAC Configuration Control (read/write) */
45 #define	MACE_PLSCC	14  /* PLS Configuration Control (read/write) */
46 #define	MACE_PHYCC	15  /* PHY Confiuration Control (read/write) */
47 #define	MACE_CHIPIDL	16  /* Chip ID Register [07-00] (read only) */
48 #define	MACE_CHIPIDH	17  /* Chip ID Register [15-08] (read only) */
49 #define	MACE_IAC	18  /* Internal Address Configuration (read/write) */
50 /*	RESERVED	19     Reserved (read/write as 0) */
51 #define	MACE_LADRF	20  /* Logical Address Filter (8 bytes) (read/write) */
52 #define	MACE_PADR	21  /* Physical Address (6 bytes) (read/write) */
53 /*	RESERVED	22     Reserved (read/write as 0) */
54 /*	RESERVED	23     Reserved (read/write as 0) */
55 #define	MACE_MPC	24  /* Missed Packet Count (read only) */
56 /*	RESERVED	25     Reserved (read/write as 0) */
57 #define	MACE_RNTPC	26  /* Runt Packet Count (read only) */
58 #define	MACE_RCVCC	27  /* Receive Collision Count (read only) */
59 /*	RESERVED	28     Reserved (read/write as 0) */
60 #define	MACE_UTR	29  /* User Test Register (read/write) */
61 #define	MACE_RTR1	30  /* Reserved Test Register 1 (read/write as 0) */
62 #define	MACE_RTR2	31  /* Reserved Test Register 2 (read/write as 0) */
63 
64 #define	MACE_NREGS	32
65 
66 /* 2: Transmit Frame Control (XMTFC) */
67 #define	DRTRY		0x80	/* Disable Retry */
68 #define	DXMTFCS		0x08	/* Disable Transmit FCS */
69 #define	APADXMT		0x01	/* Auto Pad Transmit */
70 
71 /* 3: Transmit Frame Status (XMTFS) */
72 #define	XMTSV		0x80	/* Transmit Status Valid */
73 #define	UFLO		0x40	/* Underflow */
74 #define	LCOL		0x20	/* Late Collision */
75 #define	MORE		0x10	/* More than one retry needed */
76 #define	ONE		0x08	/* Exactly one retry needed */
77 #define	DEFER		0x04	/* Transmission deferred */
78 #define	LCAR		0x02	/* Loss of Carrier */
79 #define	RTRY		0x01	/* Retry Error */
80 
81 /* 4: Transmit Retry Count (XMTRC) */
82 #define	EXDEF		0x80	/* Excessive Defer */
83 #define	XMTRC		0x0f	/* Transmit Retry Count */
84 
85 /* 5: Receive Frame Control (RCVFC) */
86 #define	LLRCV		0x08	/* Low Latency Receive */
87 #define	MR		0x04	/* Match/Reject */
88 #define	ASTRPRCV	0x01	/* Auto Strip Receive */
89 
90 /* 6: Receive Frame Status (RCVFS) */
91 /* 4 byte register; read 4 times to get all of the bytes */
92 /* Read 1: RFS0 - Receive Message Byte Count [7-0] (RCVCNT) */
93 
94 /* Read 2: RFS1 - Receive Status (RCVSTS) */
95 #define	OFLO		0x80	/* Overflow flag */
96 #define	CLSN		0x40	/* Collision flag */
97 #define	FRAM		0x20	/* Framing Error flag */
98 #define	FCS		0x10	/* FCS Error flag */
99 #define	RCVCNT		0x0f	/* Receive Message Byte Count [11-8] */
100 
101 /* Read 3: RFS2 - Runt Packet Count (RNTPC) [7-0] */
102 
103 /* Read 4: RFS3 - Receive Collision Count (RCVCC) [7-0] */
104 
105 /* 7: FIFO Frame Count (FIFOFC) */
106 #define	RCVFC		0xf0	/* Receive Frame Count */
107 #define	XMTFC		0x0f	/* Transmit Frame Count */
108 
109 /* 8: Interrupt Register (IR) */
110 #define	JAB		0x80	/* Jabber Error */
111 #define	BABL		0x40	/* Babble Error */
112 #define	CERR		0x20	/* Collision Error */
113 #define	RCVCCO		0x10	/* Receive Collision Count Overflow */
114 #define	RNTPCO		0x08	/* Runt Packet Count Overflow */
115 #define	MPCO		0x04	/* Missed Packet Count Overflow */
116 #define	RCVINT		0x02	/* Receive Interrupt */
117 #define	XMTINT		0x01	/* Transmit Interrupt */
118 
119 /* 9: Interrut Mask Register (IMR) */
120 #define	JABM		0x80	/* Jabber Error Mask */
121 #define	BABLM		0x40	/* Babble Error Mask */
122 #define	CERRM		0x20	/* Collision Error Mask */
123 #define	RCVCCOM		0x10	/* Receive Collision Count Overflow Mask */
124 #define	RNTPCOM		0x08	/* Runt Packet Count Overflow Mask */
125 #define	MPCOM		0x04	/* Missed Packet Count Overflow Mask */
126 #define	RCVINTM		0x02	/* Receive Interrupt Mask */
127 #define	XMTINTM		0x01	/* Transmit Interrupt Mask */
128 
129 /* 10: Poll Register (PR) */
130 #define	XMTSV		0x80	/* Transmit Status Valid */
131 #define	TDTREQ		0x40	/* Transmit Data Transfer Request */
132 #define	RDTREQ		0x20	/* Receive Data Transfer Request */
133 
134 /* 11: BIU Configuration Control (BIUCC) */
135 #define	BSWP		0x40	/* Byte Swap */
136 #define	XMTSP		0x30	/* Transmit Start Point */
137 #define	XMTSP_4		0x00	/* 4 bytes */
138 #define	XMTSP_16	0x10	/* 16 bytes */
139 #define	XMTSP_64	0x20	/* 64 bytes */
140 #define	XMTSP_112	0x30	/* 112 bytes */
141 #define	SWRST		0x01	/* Software Reset */
142 
143 /* 12: FIFO Configuration Control (FIFOCC) */
144 #define	XMTFW		0xc0	/* Transmit FIFO Watermark */
145 #define	XMTFW_8		0x00	/* 8 write cycles */
146 #define	XMTFW_16	0x40	/* 16 write cycles */
147 #define	XMTFW_32	0x80	/* 32 write cycles */
148 #define	RCVFW		0x30	/* Receive FIFO Watermark */
149 #define	RCVFW_16	0x00	/* 16 bytes */
150 #define	RCVFW_32	0x10	/* 32 bytes */
151 #define	RCVFW_64	0x20	/* 64 bytes */
152 #define	XMTFWU		0x08	/* Transmit FIFO Watermark Update */
153 #define	RCVFWU		0x04	/* Receive FIFO Watermark Update */
154 #define	XMTBRST		0x02	/* Transmit Burst */
155 #define	RCVBRST		0x01	/* Receive Burst */
156 
157 /* 13: MAC Configuration (MACCC) */
158 #define	PROM		0x80	/* Promiscuous */
159 #define	DXMT2PD		0x40	/* Disable Transmit Two Part Deferral */
160 #define	EMBA		0x20	/* Enable Modified Back-off Algorithm */
161 #define	DRCVPA		0x08	/* Disable Receive Physical Address */
162 #define	DRCVBC		0x04	/* Disable Receive Broadcast */
163 #define	ENXMT		0x02	/* Enable Transmit */
164 #define	ENRCV		0x01	/* Enable Receive */
165 
166 /* 14: PLS Configuration Control (PLSCC) */
167 #define	XMTSEL		0x08	/* Transmit Mode Select */
168 #define	PORTSEL		0x06	/* Port Select */
169 #define	PORTSEL_AUI	0x00	/* Select AUI */
170 #define	PORTSEL_10BT	0x02	/* Select 10BASE-T */
171 #define	PORTSEL_DAI	0x04	/* Select DAI port */
172 #define	PORTSEL_GPSI	0x06	/* Select GPSI */
173 #define	ENPLSIO		0x01	/* Enable PLS I/O */
174 
175 /* 15: PHY Configuration (PHYCC) */
176 #define	LNKFL		0x80	/* Link Fail */
177 #define	DLNKTST		0x40	/* Disable Link Test */
178 #define	REVPOL		0x20	/* Reversed Polarity */
179 #define	DAPC		0x10	/* Disable Auto Polarity Correction */
180 #define	LRT		0x08	/* Low Receive Threshold */
181 #define	ASEL		0x04	/* Auto Select */
182 #define	RWAKE		0x02	/* Remote Wake */
183 #define	AWAKE		0x01	/* Auto Wake */
184 
185 /* 18: Internal Address Configuration (IAC) */
186 #define	ADDRCHG		0x80	/* Address Change */
187 #define	PHYADDR		0x04	/* Physical Address Reset */
188 #define	LOGADDR		0x02	/* Logical Address Reset */
189 
190 /* 28: User Test Register (UTR) */
191 #define	RTRE		0x80	/* Reserved Test Register Enable */
192 #define	RTRD		0x40	/* Reserved Test Register Disable */
193 #define	RPA		0x20	/* Run Packet Accept */
194 #define	FCOLL		0x10	/* Force Collision */
195 #define	RCVFCSE		0x08	/* Receive FCS Enable */
196 #define	LOOP		0x06	/* Loopback Control */
197 #define	LOOP_NONE	0x00	/* No Loopback */
198 #define	LOOP_EXT	0x02	/* External Loopback */
199 #define	LOOP_INT	0x04	/* Internal Loopback, excludes MENDEC */
200 #define	LOOP_INT_MENDEC	0x06	/* Internal Loopback, includes MENDEC */
201