1/*
2 * Device driver for National Semiconductor DS8390/WD83C690 based ethernet
3 * adapters. By David Greenman, 29-April-1993
4 *
5 * Copyright (C) 1993, David Greenman. This software may be used, modified,
6 * copied, distributed, and sold, in both source and binary form provided
7 * that the above copyright and these terms are retained. Under no
8 * circumstances is the author responsible for the proper functioning
--- 6 unchanged lines hidden (view full) ---
15 *
16 * Thanks to Charles Hannum for proving to me with example code that the
17 * NE1000/2000 support could be added with minimal impact. Without
18 * this, I wouldn't have proceeded in this direction.
19 *
20 */
21
22/*
23 * $Id: if_ed.c,v 2.16 1993/11/29 16:55:56 davidg Exp davidg $
24 */
25
26/*
27 * Modification history
28 *
29 * Revision 2.16 1993/11/29 16:55:56 davidg
30 * merged in Garrett Wollman's strict prototype changes
31 *
32 * Revision 2.15 1993/11/29 16:32:58 davidg
33 * From Thomas Sandford <t.d.g.sandford@comp.brad.ac.uk>
34 * Add support for the 8013W board type
35 *
36 * Revision 2.14 1993/11/22 10:55:30 davidg
37 * change all splnet's to splimp's
38 *
39 * Revision 2.13 1993/11/22 10:53:52 davidg
40 * patch to add support for SMC8216 (Elite-Ultra) boards
41 * from Glen H. Lowe
42 *
43 * Revision 2.12 1993/11/07 18:04:13 davidg
--- 143 unchanged lines hidden (view full) ---
187 u_char txb_next_tx; /* pointer to next buffer ready to xmit */
188 u_short txb_len[8]; /* buffered xmit buffer lengths */
189 u_char tx_page_start; /* first page of TX buffer area */
190 u_char rec_page_start; /* first page of RX ring-buffer */
191 u_char rec_page_stop; /* last page of RX ring-buffer */
192 u_char next_packet; /* pointer to next unread RX packet */
193} ed_softc[NED];
194
195int ed_attach(struct isa_device *);
196void ed_init(int);
197void edintr(int);
198int ed_ioctl(struct ifnet *, int, caddr_t);
199int ed_probe(struct isa_device *);
200void ed_start(struct ifnet *);
201void ed_reset(int, int);
202void ed_watchdog(int);
203
204static void ed_get_packet(struct ed_softc *, char *, int /*u_short*/);
205static void ed_stop(int);
206
207static inline void ed_rint();
208static inline void ed_xmit();
209static inline char *ed_ring_copy();
210
211void ed_pio_readmem(), ed_pio_writemem();
--- 169 unchanged lines hidden (view full) ---
381 memsize = 8192;
382 isa16bit = 0;
383 break;
384 case ED_TYPE_WD8013EBT:
385 sc->type_str = "WD8013EBT";
386 memsize = 16384;
387 isa16bit = 1;
388 break;
389 case ED_TYPE_WD8013W:
390 sc->type_str = "WD8013W";
391 memsize = 16384;
392 isa16bit = 1;
393 break;
394 case ED_TYPE_WD8013EP: /* also WD8003EP */
395 if (inb(sc->asic_addr + ED_WD_ICR)
396 & ED_WD_ICR_16BIT) {
397 isa16bit = 1;
398 memsize = 16384;
399 sc->type_str = "WD8013EP";
400 } else {
401 isa16bit = 0;
--- 2102 unchanged lines hidden ---
2 * Device driver for National Semiconductor DS8390/WD83C690 based ethernet
3 * adapters. By David Greenman, 29-April-1993
4 *
5 * Copyright (C) 1993, David Greenman. This software may be used, modified,
6 * copied, distributed, and sold, in both source and binary form provided
7 * that the above copyright and these terms are retained. Under no
8 * circumstances is the author responsible for the proper functioning
--- 6 unchanged lines hidden (view full) ---
15 *
16 * Thanks to Charles Hannum for proving to me with example code that the
17 * NE1000/2000 support could be added with minimal impact. Without
18 * this, I wouldn't have proceeded in this direction.
19 *
20 */
21
22/*
23 * $Id: if_ed.c,v 2.16 1993/11/29 16:55:56 davidg Exp davidg $
24 */
25
26/*
27 * Modification history
28 *
29 * Revision 2.16 1993/11/29 16:55:56 davidg
30 * merged in Garrett Wollman's strict prototype changes
31 *
32 * Revision 2.15 1993/11/29 16:32:58 davidg
33 * From Thomas Sandford <t.d.g.sandford@comp.brad.ac.uk>
34 * Add support for the 8013W board type
35 *
36 * Revision 2.14 1993/11/22 10:55:30 davidg
37 * change all splnet's to splimp's
38 *
39 * Revision 2.13 1993/11/22 10:53:52 davidg
40 * patch to add support for SMC8216 (Elite-Ultra) boards
41 * from Glen H. Lowe
42 *
43 * Revision 2.12 1993/11/07 18:04:13 davidg
--- 143 unchanged lines hidden (view full) ---
187 u_char txb_next_tx; /* pointer to next buffer ready to xmit */
188 u_short txb_len[8]; /* buffered xmit buffer lengths */
189 u_char tx_page_start; /* first page of TX buffer area */
190 u_char rec_page_start; /* first page of RX ring-buffer */
191 u_char rec_page_stop; /* last page of RX ring-buffer */
192 u_char next_packet; /* pointer to next unread RX packet */
193} ed_softc[NED];
194
195int ed_attach(struct isa_device *);
196void ed_init(int);
197void edintr(int);
198int ed_ioctl(struct ifnet *, int, caddr_t);
199int ed_probe(struct isa_device *);
200void ed_start(struct ifnet *);
201void ed_reset(int, int);
202void ed_watchdog(int);
203
204static void ed_get_packet(struct ed_softc *, char *, int /*u_short*/);
205static void ed_stop(int);
206
207static inline void ed_rint();
208static inline void ed_xmit();
209static inline char *ed_ring_copy();
210
211void ed_pio_readmem(), ed_pio_writemem();
--- 169 unchanged lines hidden (view full) ---
381 memsize = 8192;
382 isa16bit = 0;
383 break;
384 case ED_TYPE_WD8013EBT:
385 sc->type_str = "WD8013EBT";
386 memsize = 16384;
387 isa16bit = 1;
388 break;
389 case ED_TYPE_WD8013W:
390 sc->type_str = "WD8013W";
391 memsize = 16384;
392 isa16bit = 1;
393 break;
394 case ED_TYPE_WD8013EP: /* also WD8003EP */
395 if (inb(sc->asic_addr + ED_WD_ICR)
396 & ED_WD_ICR_16BIT) {
397 isa16bit = 1;
398 memsize = 16384;
399 sc->type_str = "WD8013EP";
400 } else {
401 isa16bit = 0;
--- 2102 unchanged lines hidden ---