summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkato <kato@FreeBSD.org>1998-10-08 17:04:59 +0000
committerkato <kato@FreeBSD.org>1998-10-08 17:04:59 +0000
commit4d4145bdee56e16ff93373626bf9b4fd9bc95ff9 (patch)
treed9dea2ca0ed6ca40fd59d8e533848a904c68c649
parent29d7df02f8728dd4394f77fcda079f89eee96912 (diff)
downloadFreeBSD-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.h15
-rw-r--r--sys/i386/isa/if_edreg.h15
-rw-r--r--sys/pc98/pc98/if_ed.c13
-rw-r--r--sys/pc98/pc98/if_ed98.h28
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)
OpenPOWER on IntegriCloud