| [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 **/ | 
|---|