diff options
author | kato <kato@FreeBSD.org> | 1998-10-08 17:04:59 +0000 |
---|---|---|
committer | kato <kato@FreeBSD.org> | 1998-10-08 17:04:59 +0000 |
commit | 4d4145bdee56e16ff93373626bf9b4fd9bc95ff9 (patch) | |
tree | d9dea2ca0ed6ca40fd59d8e533848a904c68c649 | |
parent | 29d7df02f8728dd4394f77fcda079f89eee96912 (diff) | |
download | FreeBSD-src-4d4145bdee56e16ff93373626bf9b4fd9bc95ff9.zip FreeBSD-src-4d4145bdee56e16ff93373626bf9b4fd9bc95ff9.tar.gz |
Add SMC EtherEZ98 support to ed driver (PC-98).
Reviewed by: kato
Submitted by: chi@bd.mbn.or.jp (Chiharu Shibata)
-rw-r--r-- | sys/dev/ed/if_edreg.h | 15 | ||||
-rw-r--r-- | sys/i386/isa/if_edreg.h | 15 | ||||
-rw-r--r-- | sys/pc98/pc98/if_ed.c | 13 | ||||
-rw-r--r-- | sys/pc98/pc98/if_ed98.h | 28 |
4 files changed, 54 insertions, 17 deletions
diff --git a/sys/dev/ed/if_edreg.h b/sys/dev/ed/if_edreg.h index a6d611c..47ddfa1 100644 --- a/sys/dev/ed/if_edreg.h +++ b/sys/dev/ed/if_edreg.h @@ -6,7 +6,7 @@ * of this software, nor does the author assume any responsibility * for damages incurred with its use. * - * $Id$ + * $Id: if_edreg.h,v 1.23 1997/02/22 09:36:21 peter Exp $ */ /* * National Semiconductor DS8390 NIC register definitions @@ -786,9 +786,22 @@ struct ed_ring { #define ED_WD_ROM_CHECKSUM_TOTAL 0xFF #endif +#ifdef PC98 +/* + * SMC EtherEZ98(SMC8498BTA) + */ +#define ED_WD_NIC_OFFSET 0x100 /* I/O base offset to NIC */ +#define ED_WD_ASIC_OFFSET 0 /* I/O base offset to ASIC */ +/* + * XXX - The I/O address range is fragmented in the EtherEZ98; + * this is the number of regs at iobase. + */ +#define ED_WD_IO_PORTS 16 /* # of i/o addresses used */ +#else #define ED_WD_NIC_OFFSET 0x10 /* I/O base offset to NIC */ #define ED_WD_ASIC_OFFSET 0 /* I/O base offset to ASIC */ #define ED_WD_IO_PORTS 32 /* # of i/o addresses used */ +#endif /* PC98 */ #define ED_WD_PAGE_OFFSET 0 /* page offset for NIC access to mem */ diff --git a/sys/i386/isa/if_edreg.h b/sys/i386/isa/if_edreg.h index a6d611c..47ddfa1 100644 --- a/sys/i386/isa/if_edreg.h +++ b/sys/i386/isa/if_edreg.h @@ -6,7 +6,7 @@ * of this software, nor does the author assume any responsibility * for damages incurred with its use. * - * $Id$ + * $Id: if_edreg.h,v 1.23 1997/02/22 09:36:21 peter Exp $ */ /* * National Semiconductor DS8390 NIC register definitions @@ -786,9 +786,22 @@ struct ed_ring { #define ED_WD_ROM_CHECKSUM_TOTAL 0xFF #endif +#ifdef PC98 +/* + * SMC EtherEZ98(SMC8498BTA) + */ +#define ED_WD_NIC_OFFSET 0x100 /* I/O base offset to NIC */ +#define ED_WD_ASIC_OFFSET 0 /* I/O base offset to ASIC */ +/* + * XXX - The I/O address range is fragmented in the EtherEZ98; + * this is the number of regs at iobase. + */ +#define ED_WD_IO_PORTS 16 /* # of i/o addresses used */ +#else #define ED_WD_NIC_OFFSET 0x10 /* I/O base offset to NIC */ #define ED_WD_ASIC_OFFSET 0 /* I/O base offset to ASIC */ #define ED_WD_IO_PORTS 32 /* # of i/o addresses used */ +#endif /* PC98 */ #define ED_WD_PAGE_OFFSET 0 /* page offset for NIC access to mem */ diff --git a/sys/pc98/pc98/if_ed.c b/sys/pc98/pc98/if_ed.c index 010cc64..92be549 100644 --- a/sys/pc98/pc98/if_ed.c +++ b/sys/pc98/pc98/if_ed.c @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: if_ed.c,v 1.51 1998/08/28 12:47:44 kato Exp $ + * $Id: if_ed.c,v 1.52 1998/09/14 11:37:29 kato Exp $ */ /* @@ -356,6 +356,16 @@ static unsigned short ed_intr_mask[] = { * Interrupt conversion table for 83C790 */ static unsigned short ed_790_intr_mask[] = { +#ifdef PC98 + 0, + IRQ3, + IRQ5, + IRQ6, + 0, + IRQ9, + IRQ12, + IRQ13 +#else 0, IRQ9, IRQ3, @@ -364,6 +374,7 @@ static unsigned short ed_790_intr_mask[] = { IRQ10, IRQ11, IRQ15 +#endif }; /* diff --git a/sys/pc98/pc98/if_ed98.h b/sys/pc98/pc98/if_ed98.h index 6320064..ccea419 100644 --- a/sys/pc98/pc98/if_ed98.h +++ b/sys/pc98/pc98/if_ed98.h @@ -90,20 +90,20 @@ static int pc98_set_register_unit __P((struct ed_softc *sc, int type, int iobase * 0xa0 Contec C-NET(98). * 0xb0 Contec C-NET(98)E/L. */ -#define ED_TYPE98_BASE 0x10 - -#define ED_TYPE98_GENERIC 0x10 -#define ED_TYPE98_LPC 0x11 -#define ED_TYPE98_BDN 0x12 -#define ED_TYPE98_EGY 0x13 -#define ED_TYPE98_LGY 0x14 -#define ED_TYPE98_ICM 0x15 -#define ED_TYPE98_SIC 0x16 -#define ED_TYPE98_108 0x18 -#define ED_TYPE98_LA98 0x19 -#define ED_TYPE98_CNET98 0x1a -#define ED_TYPE98_CNET98EL 0x1b -#define ED_TYPE98_UE2212 0x1c +#define ED_TYPE98_BASE 0x80 + +#define ED_TYPE98_GENERIC 0x80 +#define ED_TYPE98_LPC 0x81 +#define ED_TYPE98_BDN 0x82 +#define ED_TYPE98_EGY 0x83 +#define ED_TYPE98_LGY 0x84 +#define ED_TYPE98_ICM 0x85 +#define ED_TYPE98_SIC 0x86 +#define ED_TYPE98_108 0x88 +#define ED_TYPE98_LA98 0x89 +#define ED_TYPE98_CNET98 0x8a +#define ED_TYPE98_CNET98EL 0x8b +#define ED_TYPE98_UE2212 0x8c #define ED_TYPE98(x) (((x & 0xffff0000) >> 20) | ED_TYPE98_BASE) #define ED_TYPE98SUB(x) ((x & 0xf0000) >> 16) |