[BACK]Return to if_ecreg.h CVS log [TXT][DIR] Up to [local] / sys / dev / isa

Annotation of sys/dev/isa/if_ecreg.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: if_ecreg.h,v 1.2 2001/01/25 03:50:50 todd Exp $       */
                      2: /*     $NetBSD: if_ecreg.h,v 1.1 1997/11/02 00:44:26 thorpej Exp $     */
                      3:
                      4: /*
                      5:  * 3Com Etherlink II (3c503) register definitions.
                      6:  *
                      7:  * Copyright (C) 1993, David Greenman.  This software may be used, modified,
                      8:  * copied, distributed, and sold, in both source and binary form provided that
                      9:  * the above copyright and these terms are retained.  Under no circumstances is
                     10:  * the author responsible for the proper functioning of this software, nor does
                     11:  * the author assume any responsibility for damages incurred with its use.
                     12:  */
                     13:
                     14: #ifndef _DEV_ISA_IF_ECREG_H_
                     15: #define        _DEV_ISA_IF_ECREG_H_
                     16:
                     17: #define ELINK2_NIC_OFFSET      0
                     18: #define ELINK2_ASIC_OFFSET     0x400   /* offset to nic i/o regs */
                     19:
                     20: /*
                     21:  * XXX - The I/O address range is fragmented in the 3c503; this is the
                     22:  *     number of regs at iobase.
                     23:  */
                     24: #define ELINK2_NIC_PORTS       16
                     25: #define        ELINK2_ASIC_PORTS       16
                     26:
                     27: /* tx memory starts in second bank on 8bit cards */
                     28: #define ELINK2_TX_PAGE_OFFSET_8BIT     0x20
                     29:
                     30: /* tx memory starts in first bank on 16bit cards */
                     31: #define ELINK2_TX_PAGE_OFFSET_16BIT    0x0
                     32:
                     33: /* ...and rx memory starts in second bank */
                     34: #define ELINK2_RX_PAGE_OFFSET_16BIT    0x20
                     35:
                     36:
                     37: /*
                     38:  * Page Start Register.  Must match PSTART in NIC.
                     39:  */
                     40: #define ELINK2_PSTR            0
                     41:
                     42: /*
                     43:  * Page Stop Register.  Must match PSTOP in NIC.
                     44:  */
                     45: #define ELINK2_PSPR            1
                     46:
                     47: /*
                     48:  * DrQ Timer Register.  Determines number of bytes to be transferred during a
                     49:  * DMA burst.
                     50:  */
                     51: #define ELINK2_DQTR            2
                     52:
                     53: /*
                     54:  * Base Configuration Register.  Read-only register which contains the
                     55:  * board-configured I/O base address of the adapter.  Bit encoded.
                     56:  */
                     57: #define ELINK2_BCFR            3
                     58:
                     59: /*
                     60:  * EPROM Configuration Register.  Read-only register which contains the
                     61:  * board-configured memory base address.  Bit encoded.
                     62:  */
                     63: #define ELINK2_PCFR            4
                     64:
                     65: /*
                     66:  * GA Configuration Register.  Gate-Array Configuration Register.
                     67:  *
                     68:  * mbs2  mbs1  mbs0    start address
                     69:  *  0     0     0      0x0000
                     70:  *  0     0     1      0x2000
                     71:  *  0     1     0      0x4000
                     72:  *  0     1     1      0x6000
                     73:  *
                     74:  * Note that with adapters with only 8K, the setting for 0x2000 must always be
                     75:  * used.
                     76:  */
                     77: #define ELINK2_GACFR           5
                     78:
                     79: #define ELINK2_GACFR_MBS0      0x01
                     80: #define ELINK2_GACFR_MBS1      0x02
                     81: #define ELINK2_GACFR_MBS2      0x04
                     82:
                     83: #define ELINK2_GACFR_RSEL      0x08    /* enable shared memory */
                     84: #define ELINK2_GACFR_TEST      0x10    /* for GA testing */
                     85: #define ELINK2_GACFR_OWS       0x20    /* select 0WS access to GA */
                     86: #define ELINK2_GACFR_TCM       0x40    /* Mask DMA interrupts */
                     87: #define ELINK2_GACFR_NIM       0x80    /* Mask NIC interrupts */
                     88:
                     89: /*
                     90:  * Control Register.  Miscellaneous control functions.
                     91:  */
                     92: #define ELINK2_CR              6
                     93:
                     94: #define ELINK2_CR_RST          0x01    /* Reset GA and NIC */
                     95: #define ELINK2_CR_XSEL         0x02    /* Transceiver select.  BNC=1(def) AUI=0 */
                     96: #define ELINK2_CR_EALO         0x04    /* window EA PROM 0-15 to I/O base */
                     97: #define ELINK2_CR_EAHI         0x08    /* window EA PROM 16-31 to I/O base */
                     98: #define ELINK2_CR_SHARE                0x10    /* select interrupt sharing option */
                     99: #define ELINK2_CR_DBSEL                0x20    /* Double buffer select */
                    100: #define ELINK2_CR_DDIR         0x40    /* DMA direction select */
                    101: #define ELINK2_CR_START                0x80    /* Start DMA controller */
                    102:
                    103: /*
                    104:  * Status Register.  Miscellaneous status information.
                    105:  */
                    106: #define ELINK2_STREG           7
                    107:
                    108: #define ELINK2_STREG_REV       0x07    /* GA revision */
                    109: #define ELINK2_STREG_DIP       0x08    /* DMA in progress */
                    110: #define ELINK2_STREG_DTC       0x10    /* DMA terminal count */
                    111: #define ELINK2_STREG_OFLW      0x20    /* Overflow */
                    112: #define ELINK2_STREG_UFLW      0x40    /* Underflow */
                    113: #define ELINK2_STREG_DPRDY     0x80    /* Data port ready */
                    114:
                    115: /*
                    116:  * Interrupt/DMA Configuration Register
                    117:  */
                    118: #define ELINK2_IDCFR           8
                    119:
                    120: #define ELINK2_IDCFR_DRQ       0x07    /* DMA request */
                    121: #define ELINK2_IDCFR_UNUSED    0x08    /* not used */
                    122: #if 0
                    123: #define ELINK2_IDCFR_IRQ       0xF0    /* Interrupt request */
                    124: #else
                    125: #define ELINK2_IDCFR_IRQ2      0x10    /* Interrupt request 2 select */
                    126: #define ELINK2_IDCFR_IRQ3      0x20    /* Interrupt request 3 select */
                    127: #define ELINK2_IDCFR_IRQ4      0x40    /* Interrupt request 4 select */
                    128: #define ELINK2_IDCFR_IRQ5      0x80    /* Interrupt request 5 select */
                    129: #endif
                    130:
                    131: /*
                    132:  * DMA Address Register MSB
                    133:  */
                    134: #define ELINK2_DAMSB           9
                    135:
                    136: /*
                    137:  * DMA Address Register LSB
                    138:  */
                    139: #define ELINK2_DALSB           0x0a
                    140:
                    141: /*
                    142:  * Vector Pointer Register 2
                    143:  */
                    144: #define ELINK2_VPTR2           0x0b
                    145:
                    146: /*
                    147:  * Vector Pointer Register 1
                    148:  */
                    149: #define ELINK2_VPTR1           0x0c
                    150:
                    151: /*
                    152:  * Vector Pointer Register 0
                    153:  */
                    154: #define ELINK2_VPTR0           0x0d
                    155:
                    156: /*
                    157:  * Register File Access MSB
                    158:  */
                    159: #define ELINK2_RFMSB           0x0e
                    160:
                    161: /*
                    162:  * Register File Access LSB
                    163:  */
                    164: #define ELINK2_RFLSB           0x0f
                    165:
                    166: #endif /* _DEV_ISA_IF_ECREG_H_ */

CVSweb