Annotation of qemu/roms/ipxe/src/drivers/net/ns8390.h, revision 1.1

1.1     ! root        1: /**************************************************************************
        !             2: ETHERBOOT -  BOOTP/TFTP Bootstrap Program
        !             3: 
        !             4: Author: Martin Renters
        !             5:   Date: Jun/94
        !             6: 
        !             7: **************************************************************************/
        !             8: 
        !             9: FILE_LICENCE ( BSD2 );
        !            10: 
        !            11: #define VENDOR_NONE    0
        !            12: #define VENDOR_WD      1
        !            13: #define VENDOR_NOVELL  2
        !            14: #define VENDOR_3COM    3
        !            15: 
        !            16: #define FLAG_PIO       0x01
        !            17: #define FLAG_16BIT     0x02
        !            18: #define FLAG_790       0x04
        !            19: 
        !            20: #define MEM_8192       32
        !            21: #define MEM_16384      64
        !            22: #define MEM_32768      128
        !            23: 
        !            24: #define        ISA_MAX_ADDR    0x400
        !            25: 
        !            26: /**************************************************************************
        !            27: Western Digital/SMC Board Definitions
        !            28: **************************************************************************/
        !            29: #define WD_LOW_BASE    0x200
        !            30: #define WD_HIGH_BASE   0x3e0
        !            31: #ifndef        WD_DEFAULT_MEM
        !            32: #define WD_DEFAULT_MEM 0xD0000
        !            33: #endif
        !            34: #define WD_NIC_ADDR    0x10
        !            35: 
        !            36: /**************************************************************************
        !            37: Western Digital/SMC ASIC Addresses
        !            38: **************************************************************************/
        !            39: #define WD_MSR         0x00
        !            40: #define WD_ICR         0x01
        !            41: #define WD_IAR         0x02
        !            42: #define WD_BIO         0x03
        !            43: #define WD_IRR         0x04
        !            44: #define WD_LAAR                0x05
        !            45: #define WD_IJR         0x06
        !            46: #define WD_GP2         0x07
        !            47: #define WD_LAR         0x08
        !            48: #define WD_BID         0x0E
        !            49: 
        !            50: #define WD_ICR_16BIT   0x01
        !            51: 
        !            52: #define WD_MSR_MENB    0x40
        !            53: 
        !            54: #define WD_LAAR_L16EN  0x40
        !            55: #define WD_LAAR_M16EN  0x80
        !            56: 
        !            57: #define WD_SOFTCONFIG  0x20
        !            58: 
        !            59: /**************************************************************************
        !            60: Western Digital/SMC Board Types
        !            61: **************************************************************************/
        !            62: #define TYPE_WD8003S   0x02
        !            63: #define TYPE_WD8003E   0x03
        !            64: #define TYPE_WD8013EBT 0x05
        !            65: #define TYPE_WD8003W   0x24
        !            66: #define TYPE_WD8003EB  0x25
        !            67: #define TYPE_WD8013W   0x26
        !            68: #define TYPE_WD8013EP  0x27
        !            69: #define TYPE_WD8013WC  0x28
        !            70: #define TYPE_WD8013EPC 0x29
        !            71: #define TYPE_SMC8216T  0x2a
        !            72: #define TYPE_SMC8216C  0x2b
        !            73: #define TYPE_SMC8416T  0x00    /* Bogus entries: the 8416 generates the */
        !            74: #define TYPE_SMC8416C  0x00    /* the same codes as the 8216. */
        !            75: #define TYPE_SMC8013EBP        0x2c
        !            76: 
        !            77: /**************************************************************************
        !            78: 3com 3c503 definitions
        !            79: **************************************************************************/
        !            80: 
        !            81: #ifndef        _3COM_BASE
        !            82: #define _3COM_BASE 0x300
        !            83: #endif
        !            84: 
        !            85: #define _3COM_TX_PAGE_OFFSET_8BIT     0x20
        !            86: #define _3COM_TX_PAGE_OFFSET_16BIT    0x0
        !            87: #define _3COM_RX_PAGE_OFFSET_16BIT    0x20
        !            88: 
        !            89: #define _3COM_ASIC_OFFSET 0x400
        !            90: #define _3COM_NIC_OFFSET 0x0
        !            91: 
        !            92: #define _3COM_PSTR            0
        !            93: #define _3COM_PSPR            1
        !            94: 
        !            95: #define _3COM_BCFR            3
        !            96: #define _3COM_BCFR_2E0        0x01
        !            97: #define _3COM_BCFR_2A0        0x02
        !            98: #define _3COM_BCFR_280        0x04
        !            99: #define _3COM_BCFR_250        0x08
        !           100: #define _3COM_BCFR_350        0x10
        !           101: #define _3COM_BCFR_330        0x20
        !           102: #define _3COM_BCFR_310        0x40
        !           103: #define _3COM_BCFR_300        0x80
        !           104: #define _3COM_PCFR            4
        !           105: #define _3COM_PCFR_PIO        0
        !           106: #define _3COM_PCFR_C8000      0x10
        !           107: #define _3COM_PCFR_CC000      0x20
        !           108: #define _3COM_PCFR_D8000      0x40
        !           109: #define _3COM_PCFR_DC000      0x80
        !           110: #define _3COM_CR              6
        !           111: #define _3COM_CR_RST          0x01    /* Reset GA and NIC */
        !           112: #define _3COM_CR_XSEL         0x02    /* Transceiver select. BNC=1(def) AUI=0 */
        !           113: #define _3COM_CR_EALO         0x04    /* window EA PROM 0-15 to I/O base */
        !           114: #define _3COM_CR_EAHI         0x08    /* window EA PROM 16-31 to I/O base */
        !           115: #define _3COM_CR_SHARE        0x10    /* select interrupt sharing option */
        !           116: #define _3COM_CR_DBSEL        0x20    /* Double buffer select */
        !           117: #define _3COM_CR_DDIR         0x40    /* DMA direction select */
        !           118: #define _3COM_CR_START        0x80    /* Start DMA controller */
        !           119: #define _3COM_GACFR           5
        !           120: #define _3COM_GACFR_MBS0      0x01
        !           121: #define _3COM_GACFR_MBS1      0x02
        !           122: #define _3COM_GACFR_MBS2      0x04
        !           123: #define _3COM_GACFR_RSEL      0x08    /* enable shared memory */
        !           124: #define _3COM_GACFR_TEST      0x10    /* for GA testing */
        !           125: #define _3COM_GACFR_OWS       0x20    /* select 0WS access to GA */
        !           126: #define _3COM_GACFR_TCM       0x40    /* Mask DMA interrupts */
        !           127: #define _3COM_GACFR_NIM       0x80    /* Mask NIC interrupts */
        !           128: #define _3COM_STREG           7
        !           129: #define _3COM_STREG_REV       0x07    /* GA revision */
        !           130: #define _3COM_STREG_DIP       0x08    /* DMA in progress */
        !           131: #define _3COM_STREG_DTC       0x10    /* DMA terminal count */
        !           132: #define _3COM_STREG_OFLW      0x20    /* Overflow */
        !           133: #define _3COM_STREG_UFLW      0x40    /* Underflow */
        !           134: #define _3COM_STREG_DPRDY     0x80    /* Data port ready */
        !           135: #define _3COM_IDCFR           8
        !           136: #define _3COM_IDCFR_DRQ0      0x01    /* DMA request 1 select */
        !           137: #define _3COM_IDCFR_DRQ1      0x02    /* DMA request 2 select */
        !           138: #define _3COM_IDCFR_DRQ2      0x04    /* DMA request 3 select */
        !           139: #define _3COM_IDCFR_UNUSED    0x08    /* not used */
        !           140: #define _3COM_IDCFR_IRQ2      0x10    /* Interrupt request 2 select */
        !           141: #define _3COM_IDCFR_IRQ3      0x20    /* Interrupt request 3 select */
        !           142: #define _3COM_IDCFR_IRQ4      0x40    /* Interrupt request 4 select */
        !           143: #define _3COM_IDCFR_IRQ5      0x80    /* Interrupt request 5 select */
        !           144: #define _3COM_IRQ2      2
        !           145: #define _3COM_IRQ3      3
        !           146: #define _3COM_IRQ4      4
        !           147: #define _3COM_IRQ5      5
        !           148: #define _3COM_DAMSB           9
        !           149: #define _3COM_DALSB           0x0a
        !           150: #define _3COM_VPTR2           0x0b
        !           151: #define _3COM_VPTR1           0x0c
        !           152: #define _3COM_VPTR0           0x0d
        !           153: #define _3COM_RFMSB           0x0e
        !           154: #define _3COM_RFLSB           0x0f
        !           155: 
        !           156: /**************************************************************************
        !           157: NE1000/2000 definitions
        !           158: **************************************************************************/
        !           159: #define NE_ASIC_OFFSET 0x10
        !           160: #define NE_RESET       0x0F            /* Used to reset card */
        !           161: #define NE_DATA                0x00            /* Used to read/write NIC mem */
        !           162: 
        !           163: #define COMPEX_RL2000_TRIES    200
        !           164: 
        !           165: /**************************************************************************
        !           166: 8390 Register Definitions
        !           167: **************************************************************************/
        !           168: #define D8390_P0_COMMAND       0x00
        !           169: #define D8390_P0_PSTART                0x01
        !           170: #define D8390_P0_PSTOP         0x02
        !           171: #define D8390_P0_BOUND         0x03
        !           172: #define D8390_P0_TSR           0x04
        !           173: #define        D8390_P0_TPSR           0x04
        !           174: #define D8390_P0_TBCR0         0x05
        !           175: #define D8390_P0_TBCR1         0x06
        !           176: #define D8390_P0_ISR           0x07
        !           177: #define D8390_P0_RSAR0         0x08
        !           178: #define D8390_P0_RSAR1         0x09
        !           179: #define D8390_P0_RBCR0         0x0A
        !           180: #define D8390_P0_RBCR1         0x0B
        !           181: #define D8390_P0_RSR           0x0C
        !           182: #define D8390_P0_RCR           0x0C
        !           183: #define D8390_P0_TCR           0x0D
        !           184: #define D8390_P0_DCR           0x0E
        !           185: #define D8390_P0_IMR           0x0F
        !           186: #define D8390_P1_COMMAND       0x00
        !           187: #define D8390_P1_PAR0          0x01
        !           188: #define D8390_P1_PAR1          0x02
        !           189: #define D8390_P1_PAR2          0x03
        !           190: #define D8390_P1_PAR3          0x04
        !           191: #define D8390_P1_PAR4          0x05
        !           192: #define D8390_P1_PAR5          0x06
        !           193: #define D8390_P1_CURR          0x07
        !           194: #define D8390_P1_MAR0          0x08
        !           195: 
        !           196: #define D8390_COMMAND_PS0      0x0             /* Page 0 select */
        !           197: #define D8390_COMMAND_PS1      0x40            /* Page 1 select */
        !           198: #define D8390_COMMAND_PS2      0x80            /* Page 2 select */
        !           199: #define        D8390_COMMAND_RD2       0x20            /* Remote DMA control */
        !           200: #define D8390_COMMAND_RD1      0x10
        !           201: #define D8390_COMMAND_RD0      0x08
        !           202: #define D8390_COMMAND_TXP      0x04            /* transmit packet */
        !           203: #define D8390_COMMAND_STA      0x02            /* start */
        !           204: #define D8390_COMMAND_STP      0x01            /* stop */
        !           205: 
        !           206: #define D8390_RCR_MON          0x20            /* monitor mode */
        !           207: 
        !           208: #define D8390_DCR_FT1          0x40
        !           209: #define D8390_DCR_LS           0x08            /* Loopback select */
        !           210: #define D8390_DCR_WTS          0x01            /* Word transfer select */
        !           211: 
        !           212: #define D8390_ISR_PRX          0x01            /* successful recv */
        !           213: #define D8390_ISR_PTX          0x02            /* successful xmit */
        !           214: #define D8390_ISR_RXE          0x04            /* receive error */
        !           215: #define D8390_ISR_TXE          0x08            /* transmit error */
        !           216: #define D8390_ISR_OVW          0x10            /* Overflow */
        !           217: #define D8390_ISR_CNT          0x20            /* Counter overflow */
        !           218: #define D8390_ISR_RDC          0x40            /* Remote DMA complete */
        !           219: #define D8390_ISR_RST          0x80            /* reset */
        !           220: 
        !           221: #define D8390_RSTAT_PRX                0x01            /* successful recv */
        !           222: #define D8390_RSTAT_CRC                0x02            /* CRC error */
        !           223: #define D8390_RSTAT_FAE                0x04            /* Frame alignment error */
        !           224: #define D8390_RSTAT_OVER       0x08            /* FIFO overrun */
        !           225: 
        !           226: #define D8390_TXBUF_SIZE       6
        !           227: #define D8390_RXBUF_END                32
        !           228: #define D8390_PAGE_SIZE         256
        !           229: 
        !           230: struct ringbuffer {
        !           231:        unsigned char status;
        !           232:        unsigned char next;
        !           233:        unsigned short len;
        !           234: };
        !           235: /*
        !           236:  * Local variables:
        !           237:  *  c-basic-offset: 8
        !           238:  * End:
        !           239:  */
        !           240: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.