| Commit | Line | Data |
|---|---|---|
| 984263bc MD |
1 | /* Copyright (c) 1994, Matthew E. Kimmel. Permission is hereby granted |
| 2 | * to use, copy, modify and distribute this software provided that both | |
| 3 | * the copyright notice and this permission notice appear in all copies | |
| 4 | * of the software, derivative works or modified versions, and any | |
| 5 | * portions thereof. | |
| 6 | * | |
| 7 | * $FreeBSD: src/sys/i386/isa/if_elreg.h,v 1.7 1999/08/28 00:44:45 peter Exp $ | |
| 1de703da | 8 | * $DragonFly: src/sys/dev/netif/el/if_elreg.h,v 1.2 2003/06/17 04:28:37 dillon Exp $ |
| 984263bc MD |
9 | */ |
| 10 | /* 3COM Etherlink 3C501 Register Definitions */ | |
| 11 | ||
| 12 | /* I/O Ports */ | |
| 13 | #define EL_RXS 0x6 /* Receive status register */ | |
| 14 | #define EL_RXC 0x6 /* Receive command register */ | |
| 15 | #define EL_TXS 0x7 /* Transmit status register */ | |
| 16 | #define EL_TXC 0x7 /* Transmit command register */ | |
| 17 | #define EL_GPBL 0x8 /* GP buffer ptr low byte */ | |
| 18 | #define EL_GPBH 0x9 /* GP buffer ptr high byte */ | |
| 19 | #define EL_RBL 0xa /* Receive buffer ptr low byte */ | |
| 20 | #define EL_RBC 0xa /* Receive buffer clear */ | |
| 21 | #define EL_RBH 0xb /* Receive buffer ptr high byte */ | |
| 22 | #define EL_EAW 0xc /* Ethernet address window */ | |
| 23 | #define EL_AS 0xe /* Auxiliary status register */ | |
| 24 | #define EL_AC 0xe /* Auxiliary command register */ | |
| 25 | #define EL_BUF 0xf /* Data buffer */ | |
| 26 | ||
| 27 | /* Receive status register bits */ | |
| 28 | #define EL_RXS_OFLOW 0x01 /* Overflow error */ | |
| 29 | #define EL_RXS_FCS 0x02 /* FCS error */ | |
| 30 | #define EL_RXS_DRIB 0x04 /* Dribble error */ | |
| 31 | #define EL_RXS_SHORT 0x08 /* Short frame */ | |
| 32 | #define EL_RXS_NOFLOW 0x10 /* No overflow */ | |
| 33 | #define EL_RXS_GOOD 0x20 /* Received good frame */ | |
| 34 | #define EL_RXS_STALE 0x80 /* Stale receive status */ | |
| 35 | ||
| 36 | /* Receive command register bits */ | |
| 37 | #define EL_RXC_DISABLE 0x00 /* Receiver disabled */ | |
| 38 | #define EL_RXC_DOFLOW 0x01 /* Detect overflow */ | |
| 39 | #define EL_RXC_DFCS 0x02 /* Detect FCS errs */ | |
| 40 | #define EL_RXC_DDRIB 0x04 /* Detect dribble errors */ | |
| 41 | #define EL_RXC_DSHORT 0x08 /* Detect short frames */ | |
| 42 | #define EL_RXC_DNOFLOW 0x10 /* Detect frames w/o overflow ??? */ | |
| 43 | #define EL_RXC_AGF 0x20 /* Accept Good Frames */ | |
| 44 | #define EL_RXC_PROMISC 0x40 /* Promiscuous mode */ | |
| 45 | #define EL_RXC_ABROAD 0x80 /* Accept address, broadcast */ | |
| 46 | #define EL_RXC_AMULTI 0xc0 /* Accept address, multicast */ | |
| 47 | ||
| 48 | /* Transmit status register bits */ | |
| 49 | #define EL_TXS_UFLOW 0x01 /* Underflow */ | |
| 50 | #define EL_TXS_COLL 0x02 /* Collision */ | |
| 51 | #define EL_TXS_COLL16 0x04 /* Collision 16 */ | |
| 52 | #define EL_TXS_READY 0x08 /* Ready for new frame */ | |
| 53 | ||
| 54 | /* Transmit command register bits */ | |
| 55 | #define EL_TXC_DUFLOW 0x01 /* Detect underflow */ | |
| 56 | #define EL_TXC_DCOLL 0x02 /* Detect collisions */ | |
| 57 | #define EL_TXC_DCOLL16 0x04 /* Detect collision 16 */ | |
| 58 | #define EL_TXC_DSUCCESS 0x08 /* Detect success */ | |
| 59 | ||
| 60 | /* Auxiliary status register bits */ | |
| 61 | #define EL_AS_RXBUSY 0x01 /* Receive busy */ | |
| 62 | #define EL_AS_DMADONE 0x10 /* DMA finished */ | |
| 63 | #define EL_AS_TXBUSY 0x80 /* Transmit busy */ | |
| 64 | ||
| 65 | /* Auxiliary command register bits */ | |
| 66 | #define EL_AC_HOST 0x00 /* System bus can access buffer */ | |
| 67 | #define EL_AC_IRQE 0x01 /* IRQ enable */ | |
| 68 | #define EL_AC_TXBAD 0x02 /* Transmit frames with bad FCS */ | |
| 69 | #define EL_AC_TXFRX 0x04 /* Transmit followed by receive */ | |
| 70 | #define EL_AC_RX 0x08 /* Receive */ | |
| 71 | #define EL_AC_LB 0x0c /* Loopback */ | |
| 72 | #define EL_AC_DRQ 0x20 /* DMA request */ | |
| 73 | #define EL_AC_RIDE 0x40 /* DRQ and IRQ enabled */ | |
| 74 | #define EL_AC_RESET 0x80 /* Reset */ | |
| 75 | ||
| 76 | /* Packet buffer size */ | |
| 77 | #define EL_BUFSIZ 2048 |