[9] | 1 | /*
|
---|
| 2 | ** File: wd.h
|
---|
| 3 | **
|
---|
| 4 | ** Created: before Dec 28, 1992 by Philip Homburg
|
---|
| 5 | ** $PchId: wdeth.h,v 1.4 1995/12/22 08:36:57 philip Exp $
|
---|
| 6 | **
|
---|
| 7 | ** $Log: wd.h,v $
|
---|
| 8 | ** Revision 1.2 2005/08/22 15:17:40 beng
|
---|
| 9 | ** Remove double-blank lines (Al)
|
---|
| 10 | **
|
---|
| 11 | ** Revision 1.1 2005/06/29 10:16:46 beng
|
---|
| 12 | ** Import of dpeth 3c501/3c509b/.. ethernet driver by
|
---|
| 13 | ** Giovanni Falzoni <fgalzoni@inwind.it>.
|
---|
| 14 | **
|
---|
| 15 | ** Revision 2.0 2005/06/26 16:16:46 lsodgf0
|
---|
| 16 | ** Initial revision for Minix 3.0.6
|
---|
| 17 | **
|
---|
| 18 | ** $Id: wd.h,v 1.2 2005/08/22 15:17:40 beng Exp $
|
---|
| 19 | */
|
---|
| 20 |
|
---|
| 21 | #ifndef WDETH_H
|
---|
| 22 | #define WDETH_H
|
---|
| 23 |
|
---|
| 24 | /* Western Digital Ethercard Plus, or WD8003E card. */
|
---|
| 25 |
|
---|
| 26 | #define EPL_REG0 0x0 /* Control(write) and status(read) */
|
---|
| 27 | #define EPL_REG1 0x1
|
---|
| 28 | #define EPL_REG2 0x2
|
---|
| 29 | #define EPL_REG3 0x3
|
---|
| 30 | #define EPL_REG4 0x4
|
---|
| 31 | #define EPL_REG5 0x5
|
---|
| 32 | #define EPL_REG6 0x6
|
---|
| 33 | #define EPL_REG7 0x7
|
---|
| 34 | #define EPL_EA0 0x8 /* Most significant eaddr byte */
|
---|
| 35 | #define EPL_EA1 0x9
|
---|
| 36 | #define EPL_EA2 0xA
|
---|
| 37 | #define EPL_EA3 0xB
|
---|
| 38 | #define EPL_EA4 0xC
|
---|
| 39 | #define EPL_EA5 0xD /* Least significant eaddr byte */
|
---|
| 40 | #define EPL_TLB 0xE
|
---|
| 41 | #define EPL_CHKSUM 0xF /* sum from epl_ea0 upto here is 0xFF */
|
---|
| 42 | #define EPL_DP8390 0x10 /* NatSemi chip */
|
---|
| 43 |
|
---|
| 44 | #define EPL_MSR EPL_REG0/* memory select register */
|
---|
| 45 | #define EPL_ICR EPL_REG1/* interface configuration register */
|
---|
| 46 | #define EPL_IRR EPL_REG4/* interrupt request register (IRR) */
|
---|
| 47 | #define EPL_790_HWR EPL_REG4/* '790 hardware support register */
|
---|
| 48 | #define EPL_LAAR EPL_REG5/* LA address register (write only) */
|
---|
| 49 | #define EPL_790_ICR EPL_REG6/* '790 interrupt control register */
|
---|
| 50 | #define EPL_GP2 EPL_REG7/* general purpose register 2 */
|
---|
| 51 | #define EPL_790_B EPL_EA3 /* '790 memory register */
|
---|
| 52 | #define EPL_790_GCR EPL_EA5 /* '790 General Control Register */
|
---|
| 53 |
|
---|
| 54 | /* Bits in EPL_MSR */
|
---|
| 55 | #define E_MSR_MEMADDR 0x3F /* Bits SA18-SA13, SA19 implicit 1 */
|
---|
| 56 | #define E_MSR_MENABLE 0x40 /* Memory Enable */
|
---|
| 57 | #define E_MSR_RESET 0x80 /* Software Reset */
|
---|
| 58 |
|
---|
| 59 | /* Bits in EPL_ICR */
|
---|
| 60 | #define E_ICR_16BIT 0x01 /* 16 bit bus */
|
---|
| 61 | #define E_ICR_IR2 0x04 /* bit 2 of encoded IRQ */
|
---|
| 62 | #define E_ICR_MEMBIT 0x08 /* 583 mem size mask */
|
---|
| 63 |
|
---|
| 64 | /* Bits in EPL_IRR */
|
---|
| 65 | #define E_IRR_IR0 0x20 /* bit 0 of encoded IRQ */
|
---|
| 66 | #define E_IRR_IR1 0x40 /* bit 1 of encoded IRQ */
|
---|
| 67 | #define E_IRR_IEN 0x80 /* enable interrupts */
|
---|
| 68 |
|
---|
| 69 | /* Bits in EPL_LAAR */
|
---|
| 70 | #define E_LAAR_A19 0x01 /* address lines for above 1M ram */
|
---|
| 71 | #define E_LAAR_A20 0x02 /* address lines for above 1M ram */
|
---|
| 72 | #define E_LAAR_A21 0x04 /* address lines for above 1M ram */
|
---|
| 73 | #define E_LAAR_A22 0x08 /* address lines for above 1M ram */
|
---|
| 74 | #define E_LAAR_A23 0x10 /* address lines for above 1M ram */
|
---|
| 75 | #define E_LAAR_SOFTINT 0x20 /* enable software interrupt */
|
---|
| 76 | #define E_LAAR_LAN16E 0x40 /* enables 16 bit RAM for LAN */
|
---|
| 77 | #define E_LAAR_MEM16E 0x80 /* enables 16 bit RAM for host */
|
---|
| 78 |
|
---|
| 79 | /* Bits and values in EPL_TLB */
|
---|
| 80 | #define E_TLB_EB 0x05 /* WD8013EB */
|
---|
| 81 | #define E_TLB_E 0x27 /* WD8013 Elite */
|
---|
| 82 | #define E_TLB_SMCE 0x29 /* SMC Elite 16 */
|
---|
| 83 | #define E_TLB_SMC8216C 0x2B /* SMC 8216 C */
|
---|
| 84 |
|
---|
| 85 | #define E_TLB_REV 0x1F /* revision mask */
|
---|
| 86 | #define E_TLB_SOFT 0x20 /* soft config */
|
---|
| 87 | #define E_TLB_RAM 0x40 /* extra ram bit */
|
---|
| 88 |
|
---|
| 89 | /* Bits in EPL_790_HWR */
|
---|
| 90 | #define E_790_HWR_SWH 0x80 /* switch register set */
|
---|
| 91 |
|
---|
| 92 | /* Bits in EPL_790_ICR */
|
---|
| 93 | #define E_790_ICR_EIL 0x01 /* enable interrupts */
|
---|
| 94 |
|
---|
| 95 | /* Bits in EPL_790_GCR when E_790_HWR_SWH is set in EPL_790_HWR */
|
---|
| 96 | #define E_790_GCR_IR0 0x04 /* bit 0 of encoded IRQ */
|
---|
| 97 | #define E_790_GCR_IR1 0x08 /* bit 1 of encoded IRQ */
|
---|
| 98 | #define E_790_GCR_IR2 0x40 /* bit 2 of encoded IRQ */
|
---|
| 99 |
|
---|
| 100 | #define inb_we(dep, reg) (inb(dep->de_base_port+reg))
|
---|
| 101 | #define outb_we(dep, reg, data) (outb(dep->de_base_port+reg, data))
|
---|
| 102 |
|
---|
| 103 | #endif /* WDETH_H */
|
---|
| 104 |
|
---|
| 105 | /** wd.h **/
|
---|