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