|
|
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: * File: if_3c501.h
28: * Author: Philippe Bernadat
29: * Date: 1989
30: * Copyright (c) 1989 OSF Research Institute
31: *
32: * 3COM Etherlink 3C501 Mach Ethernet drvier
33: */
34: /*
35: Copyright 1990 by Open Software Foundation,
36: Cambridge, MA.
37:
38: All Rights Reserved
39:
40: Permission to use, copy, modify, and distribute this software and
41: its documentation for any purpose and without fee is hereby granted,
42: provided that the above copyright notice appears in all copies and
43: that both the copyright notice and this permission notice appear in
44: supporting documentation, and that the name of OSF or Open Software
45: Foundation not be used in advertising or publicity pertaining to
46: distribution of the software without specific, written prior
47: permission.
48:
49: OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
50: INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
51: IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
52: CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
53: LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
54: NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
55: WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
56: */
57:
58: /* The various IE command registers */
59:
60: #define EDLC_ADDR(base) (base) /* EDLC station address, 6 bytes*/
61: #define EDLC_RCV(base) ((base)+0x6) /* EDLC receive cmd. & stat. */
62: #define EDLC_XMT(base) ((base)+0x7) /* EDLC transmit cmd. & stat. */
63: #define IE_GP(base) ((base)+0x8) /* General Purpose pointer */
64: #define IE_RP(base) ((base)+0xa) /* Receive buffer pointer */
65: #define IE_SAPROM(base) ((base)+0xc) /* station addr prom window */
66: #define IE_CSR(base) ((base)+0xe) /* IE command and status */
67: #define IE_BFR(base) ((base)+0xf) /* 1 byte window on packet buffer*/
68:
69: /* CSR Status Register (read)
70: *
71: * _______________________________________________________________________
72: * | | | | | | | | |
73: * | XMTBSY | RIDE | DMA | EDMA | BUFCTL | | RCVBSY |
74: * |________|________|________|________|________|________|________|________|
75: *
76: */
77:
78: /* CSR Command Register (write)
79: *
80: * _______________________________________________________________________
81: * | | | | | | | | |
82: * | RESET | RIDE | DMA | | BUFCTL | | IRE |
83: * |________|________|________|________|________|________|________|________|
84: *
85: */
86:
87: #define IE_XMTBSY 0x80 /* Transmitter busy (ro) */
88: #define IE_RESET 0x80 /* reset the controller (wo) */
89: #define IE_RIDE 0x40 /* request interrupt/DMA enable (rw) */
90: #define IE_DMA 0x20 /* DMA request (rw) */
91: #define IE_EDMA 0x10 /* DMA done (ro) */
92: #define IE_BUFCTL 0x0c /* mask for buffer control field (rw) */
93: #define IE_RCVBSY 0x01 /* receive in progress (ro) */
94: #define IE_IRE 0x01 /* Interrupt request enable */
95:
96: /* BUFCTL values */
97:
98: #define IE_LOOP 0x0c /* 2 bit field in bits 2,3, loopback */
99: #define IE_RCVEDLC 0x08 /* gives buffer to receiver */
100: #define IE_XMTEDLC 0x04 /* gives buffer to transmit */
101: #define IE_SYSBFR 0x00 /* gives buffer to processor */
102:
103: /* XMTCSR Transmit Status Register (read)
104: *
105: * _______________________________________________________________________
106: * | | | | | | | | |
107: * | | | | | IDLE | 16 | JAM | UNDER |
108: * |________|________|________|________|________|________|________|________|
109: *
110: */
111:
112: /* XMTCSR Transmit Command Register (write) enables interrupts when written
113: *
114: * _______________________________________________________________________
115: * | | | | | | | | |
116: * | | | | | | | | |
117: * |________|________|________|________|________|________|________|________|
118: *
119: */
120:
121: #define EDLC_IDLE 0x08 /* transmit idle */
122: #define EDLC_16 0x04 /* packet experienced 16 collisions */
123: #define EDLC_JAM 0x02 /* packet experienced a collision */
124: #define EDLC_UNDER 0x01 /* data underflow */
125:
126: /* RCVCSR Receive Status Register (read)
127: *
128: * _______________________________________________________________________
129: * | | | | | | | | |
130: * | STALE | | GOOD | ANY | SHORT | DRIBBLE| FCS | OVER |
131: * |________|________|________|________|________|________|________|________|
132: *
133: */
134:
135: /* RCVCSR Receive Command Register (write) enables interrupt when written
136: *
137: * _______________________________________________________________________
138: * | | | | | | | | |
139: * | ADDR MATCH MODE | GOOD | ANY | SHORT | DRIBBLE| FCS | OVER |
140: * |________|________|________|________|________|________|________|________|
141: *
142: */
143:
144: #define EDLC_STALE 0x80 /* receive CSR status previously read */
145: #define EDLC_GOOD 0x20 /* well formed packets only */
146: #define EDLC_ANY 0x10 /* any packet, even those with errors */
147: #define EDLC_SHORT 0x08 /* short frame */
148: #define EDLC_DRIBBLE 0x04 /* dribble error */
149: #define EDLC_FCS 0x02 /* CRC error */
150: #define EDLC_OVER 0x01 /* data overflow */
151:
152: /* Address Match Mode */
153:
154: #define EDLC_NONE 0x00 /* match mode in bits 5-6, write only */
155: #define EDLC_ALL 0x40 /* promiscuous receive, write only */
156: #define EDLC_BROAD 0x80 /* station address plus broadcast */
157: #define EDLC_MULTI 0xc0 /* station address plus multicast */
158:
159: /* Packet Buffer size */
160:
161: #define BFRSIZ 2048
162:
163: #define NAT3C501 1
164: #define ETHER_ADD_SIZE 6 /* size of a MAC address */
165:
166: #ifndef TRUE
167: #define TRUE 1
168: #endif TRUE
169: #define HZ 100
170:
171: #define DSF_LOCK 1
172: #define DSF_RUNNING 2
173:
174: #define MOD_ENAL 1
175: #define MOD_PROM 2
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.