|
|
1.1 root 1: /*
2: * Mach Operating System
3: * Copyright (c) 1991,1990,1989 Carnegie Mellon University
4: * All Rights Reserved.
5: *
6: * Permission to use, copy, modify and distribute this software and its
7: * documentation is hereby granted, provided that both the copyright
8: * notice and this permission notice appear in all copies of the
9: * software, derivative works or modified versions, and any portions
10: * thereof, and that both notices appear in supporting documentation.
11: *
12: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
13: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
14: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
15: *
16: * Carnegie Mellon requests users of this software to return to
17: *
18: * Software Distribution Coordinator or [email protected]
19: * School of Computer Science
20: * Carnegie Mellon University
21: * Pittsburgh PA 15213-3890
22: *
23: * any improvements or extensions that they make and grant Carnegie Mellon
24: * the rights to redistribute these changes.
25: */
26: /*
27: * Olivetti PC586 Mach Ethernet driver v1.0
28: * Copyright Ing. C. Olivetti & C. S.p.A. 1988, 1989
29: * All rights reserved.
30: *
31: */
32: /*
33: Copyright 1988, 1989 by Olivetti Advanced Technology Center, Inc.,
34: Cupertino, California.
35:
36: All Rights Reserved
37:
38: Permission to use, copy, modify, and distribute this software and
39: its documentation for any purpose and without fee is hereby
40: granted, provided that the above copyright notice appears in all
41: copies and that both the copyright notice and this permission notice
42: appear in supporting documentation, and that the name of Olivetti
43: not be used in advertising or publicity pertaining to distribution
44: of the software without specific, written prior permission.
45:
46: OLIVETTI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
47: INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
48: IN NO EVENT SHALL OLIVETTI BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
49: CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
50: LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
51: NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUR OF OR IN CONNECTION
52: WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
53: */
54:
55: /*
56: Copyright 1988, 1989 by Intel Corporation, Santa Clara, California.
57:
58: All Rights Reserved
59:
60: Permission to use, copy, modify, and distribute this software and
61: its documentation for any purpose and without fee is hereby
62: granted, provided that the above copyright notice appears in all
63: copies and that both the copyright notice and this permission notice
64: appear in supporting documentation, and that the name of Intel
65: not be used in advertising or publicity pertaining to distribution
66: of the software without specific, written prior permission.
67:
68: INTEL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
69: INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
70: IN NO EVENT SHALL INTEL BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
71: CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
72: LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
73: NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
74: WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
75: */
76:
77: #include <i386at/i82586.h> /* chip/board specific defines */
78:
79: #define STATUS_TRIES 15000
80: #define ETHER_ADD_SIZE 6 /* size of a MAC address */
81: #define ETHER_PCK_SIZE 1500 /* maximum size of an ethernet packet */
82:
83: /*
84: * Board Specific Defines:
85: */
86:
87: #define OFFSET_NORMMODE 0x3000
88: #define OFFSET_CHANATT 0x3002
89: #define OFFSET_RESET 0x3004
90: #define OFFSET_INTENAB 0x3006
91: #define OFFSET_XFERMODE 0x3008
92: #define OFFSET_SYSTYPE 0x300a
93: #define OFFSET_INTSTAT 0x300c
94: #define OFFSET_PROM 0x2000
95:
96: #define EXTENDED_ADDR 0x20000
97: #define OFFSET_SCP (0x7ff6 - 0x4000)
98: #define OFFSET_ISCP (0x7fee - 0x4000)
99: #define OFFSET_SCB (0x7fde - 0x4000)
100: #define OFFSET_RU (0x4000 - 0x4000)
101: #define OFFSET_RBD (0x4228 - 0x4000)
102: #define OFFSET_CU (0x7814 - 0x4000)
103:
104: #define OFFSET_TBD (0x7914 - 0x4000)
105: #define OFFSET_TBUF (0x79a4 - 0x4000)
106: #define N_FD 25
107: #define N_RBD 25
108: #define N_TBD 18
109: #define RCVBUFSIZE 540
110: #define DL_DEAD 0xffff
111:
112: #define CMD_0 0
113: #define CMD_1 0xffff
114:
115: #define PC586NULL 0xffff /* pc586 NULL for lists */
116:
117: #define DSF_LOCK 1
118: #define DSF_RUNNING 2
119:
120: #define MOD_ENAL 1
121: #define MOD_PROM 2
122:
123: /*
124: * Driver (not board) specific defines and structures:
125: */
126:
127: typedef struct {
128: rbd_t r;
129: char rbd_pad[2];
130: char rbuffer[RCVBUFSIZE];
131: } ru_t;
132:
133: #ifdef MACH_KERNEL
134: #else MACH_KERNEL
135: #ifndef TRUE
136: #define TRUE 1
137: #endif TRUE
138: #define HZ 100
139: #endif MACH_KERNEL
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.