|
|
1.1 root 1: /*
2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
3: *
4: * @APPLE_LICENSE_HEADER_START@
5: *
6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights
7: * Reserved. This file contains Original Code and/or Modifications of
8: * Original Code as defined in and that are subject to the Apple Public
9: * Source License Version 1.1 (the "License"). You may not use this file
10: * except in compliance with the License. Please obtain a copy of the
11: * License at http://www.apple.com/publicsource and read it before using
12: * this file.
13: *
14: * The Original Code and all software distributed under the License are
15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
19: * License for the specific language governing rights and limitations
20: * under the License.
21: *
22: * @APPLE_LICENSE_HEADER_END@
23: */
24:
25: /*
26: * Copyright 1996 1995 by Open Software Foundation, Inc. 1997 1996 1995 1994 1993 1992 1991
27: * All Rights Reserved
28: *
29: * Permission to use, copy, modify, and distribute this software and
30: * its documentation for any purpose and without fee is hereby granted,
31: * provided that the above copyright notice appears in all copies and
32: * that both the copyright notice and this permission notice appear in
33: * supporting documentation.
34: *
35: * OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
36: * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
37: * FOR A PARTICULAR PURPOSE.
38: *
39: * IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
40: * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
41: * LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
42: * NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
43: * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
44: *
45: */
46: /*
47: * Copyright 1996 1995 by Apple Computer, Inc. 1997 1996 1995 1994 1993 1992 1991
48: * All Rights Reserved
49: *
50: * Permission to use, copy, modify, and distribute this software and
51: * its documentation for any purpose and without fee is hereby granted,
52: * provided that the above copyright notice appears in all copies and
53: * that both the copyright notice and this permission notice appear in
54: * supporting documentation.
55: *
56: * APPLE COMPUTER DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
57: * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
58: * FOR A PARTICULAR PURPOSE.
59: *
60: * IN NO EVENT SHALL APPLE COMPUTER BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
61: * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
62: * LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
63: * NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
64: * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
65: */
66: /*
67: * MKLINUX-1.0DR2
68: */
69: /*
70: * PMach Operating System
71: * Copyright (c) 1995 Santa Clara University
72: * All Rights Reserved.
73: */
74: /*
75: * Mach Operating System
76: * Copyright (c) 1991,1990,1989 Carnegie Mellon University
77: * All Rights Reserved.
78: *
79: * Permission to use, copy, modify and distribute this software and its
80: * documentation is hereby granted, provided that both the copyright
81: * notice and this permission notice appear in all copies of the
82: * software, derivative works or modified versions, and any portions
83: * thereof, and that both notices appear in supporting documentation.
84: *
85: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
86: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
87: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
88: *
89: * Carnegie Mellon requests users of this software to return to
90: *
91: * Software Distribution Coordinator or [email protected]
92: * School of Computer Science
93: * Carnegie Mellon University
94: * Pittsburgh PA 15213-3890
95: *
96: * any improvements or extensions that they make and grant Carnegie Mellon
97: * the rights to redistribute these changes.
98: */
99: /*
100: * File: if_3c501.h
101: * Author: Philippe Bernadat
102: * Date: 1989
103: * Copyright (c) 1989 OSF Research Institute
104: *
105: * 3COM Etherlink 3C501 Mach Ethernet drvier
106: */
107: /*
108: Copyright 1990 by Open Software Foundation,
109: Cambridge, MA.
110:
111: All Rights Reserved
112:
113: Permission to use, copy, modify, and distribute this software and
114: its documentation for any purpose and without fee is hereby granted,
115: provided that the above copyright notice appears in all copies and
116: that both the copyright notice and this permission notice appear in
117: supporting documentation, and that the name of OSF or Open Software
118: Foundation not be used in advertising or publicity pertaining to
119: distribution of the software without specific, written prior
120: permission.
121:
122: OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
123: INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
124: IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
125: CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
126: LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
127: NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
128: WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
129: */
130:
131: #ifdef _KERNEL
132: #include <sys/cdefs.h>
133: #endif
134:
135:
136: #define ENETPAD(n) char n[15]
137:
138: /* 0x50f0a000 */
139: struct mace_board {
140: volatile unsigned char rcvfifo; /* 00 receive fifo */
141: ENETPAD(epad0);
142: volatile unsigned char xmtfifo; /* 01 transmit fifo */
143: ENETPAD(epad1);
144: volatile unsigned char xmtfc; /* 02 transmit frame control */
145: ENETPAD(epad2);
146: volatile unsigned char xmtfs; /* 03 transmit frame status */
147: ENETPAD(epad3);
148: volatile unsigned char xmtrc; /* 04 transmit retry count */
149: ENETPAD(epad4);
150: volatile unsigned char rcvfc; /* 05 receive frame control -- 4 bytes */
151: ENETPAD(epad5);
152: volatile unsigned char rcvfs; /* 06 receive frame status */
153: ENETPAD(epad6);
154: volatile unsigned char fifofc; /* 07 fifo frame count */
155: ENETPAD(epad7);
156: volatile unsigned char ir; /* 08 interrupt */
157: ENETPAD(epad8);
158: volatile unsigned char imr; /* 09 interrupt mask */
159: ENETPAD(epad9);
160: volatile unsigned char pr; /* 10 poll */
161: ENETPAD(epad10);
162: volatile unsigned char biucc; /* 11 bus interface unit configuration control */
163: ENETPAD(epad11);
164: volatile unsigned char fifocc; /* 12 fifo configuration control */
165: ENETPAD(epad12);
166: volatile unsigned char maccc; /* 13 media access control configuration control */
167: ENETPAD(epad13);
168: volatile unsigned char plscc; /* 14 physical layer signalling configuration control */
169: ENETPAD(epad14);
170: volatile unsigned char phycc; /* 15 physical layer configuration control */
171: ENETPAD(epad15);
172: volatile unsigned char chipid1; /* 16 chip identification LSB */
173: ENETPAD(epad16);
174: volatile unsigned char chipid2; /* 17 chip identification MSB */
175: ENETPAD(epad17);
176: volatile unsigned char iac; /* 18 internal address configuration */
177: ENETPAD(epad18);
178: volatile unsigned char res1; /* 19 */
179: ENETPAD(epad19);
180: volatile unsigned char ladrf; /* 20 logical address filter -- 8 bytes */
181: ENETPAD(epad20);
182: volatile unsigned char padr; /* 21 physical address -- 6 bytes */
183: ENETPAD(epad21);
184: volatile unsigned char res2; /* 22 */
185: ENETPAD(epad22);
186: volatile unsigned char res3; /* 23 */
187: ENETPAD(epad23);
188: volatile unsigned char mpc; /* 24 missed packet count */
189: ENETPAD(epad24);
190: volatile unsigned char res4; /* 25 */
191: ENETPAD(epad25);
192: volatile unsigned char rntpc; /* 26 runt packet count */
193: ENETPAD(epad26);
194: volatile unsigned char rcvcc; /* 27 receive collision count */
195: ENETPAD(epad27);
196: volatile unsigned char res5; /* 28 */
197: ENETPAD(epad28);
198: volatile unsigned char utr; /* 29 user test */
199: ENETPAD(epad29);
200: volatile unsigned char res6; /* 30 */
201: ENETPAD(epad30);
202: volatile unsigned char res7; /* 31 */
203: };
204:
205: /*
206: * Chip Revisions..
207: */
208:
209: #define MACE_REVISION_B0 0x0940
210: #define MACE_REVISION_A2 0x0941
211:
212: /* xmtfc */
213: #define XMTFC_DRTRY 0X80
214: #define XMTFC_DXMTFCS 0x08
215: #define XMTFC_APADXNT 0x01
216:
217: /* xmtfs */
218: #define XMTFS_XNTSV 0x80
219: #define XMTFS_XMTFS 0x40
220: #define XMTFS_LCOL 0x20
221: #define XMTFS_MORE 0x10
222: #define XMTFS_ONE 0x08
223: #define XMTFS_DEFER 0x04
224: #define XMTFS_LCAR 0x02
225: #define XMTFS_RTRY 0x01
226:
227: /* xmtrc */
228: #define XMTRC_EXDEF 0x80
229:
230: /* rcvfc */
231: #define RCVFC_LLRCV 0x08
232: #define RCVFC_M_R 0x04
233: #define RCVFC_ASTRPRCV 0x01
234:
235: /* rcvfs */
236: #define RCVFS_OFLO 0x80
237: #define RCVFS_CLSN 0x40
238: #define RCVFS_FRAM 0x20
239: #define RCVFS_FCS 0x10
240: #define RCVFS_REVCNT 0x0f
241:
242: /* fifofc */
243: #define FIFOCC_XFW_8 0x00
244: #define FIFOCC_XFW_16 0x40
245: #define FIFOCC_XFW_32 0x80
246: #define FIFOCC_XFW_XX 0xc0
247: #define FIFOCC_RFW_16 0x00
248: #define FIFOCC_RFW_32 0x10
249: #define FIFOCC_RFW_64 0x20
250: #define FIFOCC_RFW_XX 0x30
251: #define FIFOCC_XFWU 0x08
252: #define FIFOCC_RFWU 0x04
253: #define FIFOCC_XBRST 0x02
254: #define FIFOCC_RBRST 0x01
255:
256:
257: /* ir */
258: #define IR_JAB 0x80
259: #define IR_BABL 0x40
260: #define IR_CERR 0x20
261: #define IR_RCVCCO 0x10
262: #define IR_RNTPCO 0x08
263: #define IR_MPCO 0x04
264: #define IR_RCVINT 0x02
265: #define IR_XMTINT 0x01
266:
267: /* imr */
268: #define IMR_MJAB 0x80
269: #define IMR_MBABL 0x40
270: #define IMR_MCERR 0x20
271: #define IMR_MRCVCCO 0x10
272: #define IMR_MRNTPCO 0x08
273: #define IMR_MMPCO 0x04
274: #define IMR_MRCVINT 0x02
275: #define IMR_MXMTINT 0x01
276:
277: /* pr */
278: #define PR_XMTSV 0x80
279: #define PR_TDTREQ 0x40
280: #define PR_RDTREQ 0x20
281:
282: /* biucc */
283: #define BIUCC_BSWP 0x40
284: #define BIUCC_XMTSP04 0x00
285: #define BIUCC_XMTSP16 0x10
286: #define BIUCC_XMTSP64 0x20
287: #define BIUCC_XMTSP112 0x30
288: #define BIUCC_SWRST 0x01
289:
290: /* fifocc */
291: #define FIFOCC_XMTFW08W 0x00
292: #define FIFOCC_XMTFW16W 0x40
293: #define FIFOCC_XMTFW32W 0x80
294:
295: #define FIFOCC_RCVFW16 0x00
296: #define FIFOCC_RCVFW32 0x10
297: #define FIFOCC_RCVFW64 0x20
298:
299: #define FIFOCC_XMTFWU 0x08
300: #define FIFOCC_RCVFWU 0x04
301: #define FIFOCC_XMTBRST 0x02
302: #define FIFOCC_RCVBRST 0x01
303:
304: /* maccc */
305: #define MACCC_PROM 0x80
306: #define MACCC_DXMT2PD 0x40
307: #define MACCC_EMBA 0x20
308: #define MACCC_DRCVPA 0x08
309: #define MACCC_DRCVBC 0x04
310: #define MACCC_ENXMT 0x02
311: #define MACCC_ENRCV 0x01
312:
313: /* plscc */
314: #define PLSCC_XMTSEL 0x08
315: #define PLSCC_AUI 0x00
316: #define PLSCC_TENBASE 0x02
317: #define PLSCC_DAI 0x04
318: #define PLSCC_GPSI 0x06
319: #define PLSCC_ENPLSIO 0x01
320:
321: /* phycc */
322: #define PHYCC_LNKFL 0x80
323: #define PHYCC_DLNKTST 0x40
324: #define PHYCC_REVPOL 0x20
325: #define PHYCC_DAPC 0x10
326: #define PHYCC_LRT 0x08
327: #define PHYCC_ASEL 0x04
328: #define PHYCC_RWAKE 0x02
329: #define PHYCC_AWAKE 0x01
330:
331: /* iac */
332: #define IAC_ADDRCHG 0x80
333: #define IAC_PHYADDR 0x04
334: #define IAC_LOGADDR 0x02
335:
336: /* utr */
337: #define UTR_RTRE 0x80
338: #define UTR_RTRD 0x40
339: #define UTR_RPA 0x20
340: #define UTR_FCOLL 0x10
341: #define UTR_RCVFCSE 0x08
342:
343: #define UTR_NOLOOP 0x00
344: #define UTR_EXTLOOP 0x02
345: #define UTR_INLOOP 0x04
346: #define UTR_INLOOP_M 0x06
347:
348: #define ENET_PHYADDR_LEN 6
349: #define ENET_HEADER 14
350:
351: #define BFRSIZ 2048
352: #define ETHER_ADD_SIZE 6 /* size of a MAC address */
353: #define DSF_LOCK 1
354: #define DSF_RUNNING 2
355: #define MOD_ENAL 1
356: #define MOD_PROM 2
357:
358: /*
359: * MACE Chip revision codes
360: */
361: #define MACERevA2 0x0941
362: #define MACERevB0 0x0940
363:
364: #ifdef _KERNEL
365: int mace_delmulti __P((register struct ifreq *, register struct arpcom *,
366: struct ether_addr *));
367: int mace_addmulti __P((register struct ifreq *, register struct arpcom *));
368: void mace_sync_mcast __P((register struct ifnet *));
369: void mace_sync_promisc __P((register struct ifnet *));
370: #endif /* _KERNEL */
371:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.