summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/isa/fd.c31
-rw-r--r--sys/dev/mca/LINKS2
-rw-r--r--sys/dev/mca/Makefile.mcadevs15
-rw-r--r--sys/dev/mca/TODO15
-rw-r--r--sys/dev/mca/aha_mca.c150
-rw-r--r--sys/dev/mca/devlist2h.awk113
-rw-r--r--sys/dev/mca/files.mca33
-rw-r--r--sys/dev/mca/if_tr_mca.c212
-rw-r--r--sys/dev/mca/mca.c168
-rw-r--r--sys/dev/mca/mca_subr.c107
-rw-r--r--sys/dev/mca/mcadevs374
-rw-r--r--sys/dev/mca/mcadevs.h42
-rw-r--r--sys/dev/mca/mcadevs_data.h358
-rw-r--r--sys/dev/mca/mcareg.h55
-rw-r--r--sys/dev/mca/mcavar.h82
15 files changed, 1754 insertions, 3 deletions
diff --git a/sys/dev/isa/fd.c b/sys/dev/isa/fd.c
index 279e9be2c61..d5894fa8ad5 100644
--- a/sys/dev/isa/fd.c
+++ b/sys/dev/isa/fd.c
@@ -1,4 +1,4 @@
-/* $NetBSD: fd.c,v 1.4 2000/05/02 03:32:09 thorpej Exp $ */
+/* $NetBSD: fd.c,v 1.5 2000/05/11 15:42:00 jdolecek Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -141,8 +141,15 @@
#include <dev/isa/fdcvar.h>
#if defined(__i386__)
+
#include <dev/ic/mc146818reg.h> /* for NVRAM access */
#include <i386/isa/nvram.h>
+
+#include "mca.h"
+#if NMCA > 0
+#include <machine/mca_machdep.h> /* for MCA_system */
+#endif
+
#endif /* __i386__ */
#define FDUNIT(dev) (minor(dev) / 8)
@@ -176,6 +183,14 @@ struct fd_type {
char *name;
};
+#if NMCA > 0
+/* MCA - specific entries */
+struct fd_type mca_fd_types[] = {
+ { 18,2,36,2,0xff,0x0f,0x1b,0x6c,80,2880,1,FDC_500KBPS,0xf6,1, "1.44MB" }, /* 1.44MB diskette - XXX try 16ms step rate */
+ { 9,2,18,2,0xff,0x4f,0x2a,0x50,80,1440,1,FDC_250KBPS,0xf6,1, "720KB" }, /* 3.5 inch 720kB diskette - XXX try 24ms step rate */
+};
+#endif /* NMCA > 0 */
+
/* The order of entries in the following table is important -- BEWARE! */
struct fd_type fd_types[] = {
{ 18,2,36,2,0xff,0xcf,0x1b,0x6c,80,2880,1,FDC_500KBPS,0xf6,1, "1.44MB" }, /* 1.44MB diskette */
@@ -472,11 +487,21 @@ fd_nvtotype(fdc, nvraminfo, drive)
case NVRAM_DISKETTE_TYPE6:
/* XXX We really ought to handle 2.88MB format. */
case NVRAM_DISKETTE_144M:
- return &fd_types[0];
+#if NMCA > 0
+ if (MCA_system)
+ return &mca_fd_types[0];
+ else
+#endif /* NMCA > 0 */
+ return &fd_types[0];
case NVRAM_DISKETTE_360K:
return &fd_types[3];
case NVRAM_DISKETTE_720K:
- return &fd_types[4];
+#if NMCA > 0
+ if (MCA_system)
+ return &mca_fd_types[1];
+ else
+#endif /* NMCA > 0 */
+ return &fd_types[4];
default:
printf("%s: drive %d: unknown device type 0x%x\n",
fdc, drive, type);
diff --git a/sys/dev/mca/LINKS b/sys/dev/mca/LINKS
new file mode 100644
index 00000000000..dfb235ee77f
--- /dev/null
+++ b/sys/dev/mca/LINKS
@@ -0,0 +1,2 @@
+IBM - PS/2 MicroChannel POSID - ADF files
+http://servicepac.mainz.ibm.com/eprmhtml/epradf/adf0_4.htm
diff --git a/sys/dev/mca/Makefile.mcadevs b/sys/dev/mca/Makefile.mcadevs
new file mode 100644
index 00000000000..5e2f9e818ef
--- /dev/null
+++ b/sys/dev/mca/Makefile.mcadevs
@@ -0,0 +1,15 @@
+# $NetBSD: Makefile.mcadevs,v 1.1 2000/05/11 15:42:02 jdolecek Exp $
+#
+# The proper procedure is
+#
+# 1.) Change "src/sys/dev/mca/mcadevs".
+# 2.) Commit "src/sys/dev/mca/mcadevs".
+# 3.) Execute "make -f Makefile.mcadevs" in "src/sys/dev/mca".
+# 4.) Commit "src/sys/dev/mca/mcadevs.h" and "src/sys/dev/mca/mcadevs_data.h".
+
+
+AWK?= awk
+
+mcadevs.h mcadevs_data.h: mcadevs devlist2h.awk
+ /bin/rm -f mcadevs.h mcadevs_data.h
+ ${AWK} -f devlist2h.awk mcadevs
diff --git a/sys/dev/mca/TODO b/sys/dev/mca/TODO
new file mode 100644
index 00000000000..95eaddc611b
--- /dev/null
+++ b/sys/dev/mca/TODO
@@ -0,0 +1,15 @@
+# $NetBSD: TODO,v 1.1 2000/05/11 15:42:03 jdolecek Exp $
+
+Bugs:
+* i386: detect the existence of MCA bus by BIOS call
+* i386: make isa/clock.c parse PS/2 CMOS correctly
+* i386: keyboard freezes when booting from floppy in fd_mountroothook
+ (timing issue ? works OK if I break to ddb before the mountroot hook
+ is executed)
+
+Projects:
+* bus_dma(8) support (primarily for AHA-1650)
+* 3Com 3c507 driver (prolly port of ef driver - originally, 1.3 ie driver
+ has been ported in MCA release 2.1 by Scott Telford, the ISA
+ attachment was then (after 1.3) split into ex, ef, ai)
+* ESDI support
diff --git a/sys/dev/mca/aha_mca.c b/sys/dev/mca/aha_mca.c
new file mode 100644
index 00000000000..0de72193562
--- /dev/null
+++ b/sys/dev/mca/aha_mca.c
@@ -0,0 +1,150 @@
+/* $NetBSD: aha_mca.c,v 1.1 2000/05/11 15:42:04 jdolecek Exp $ */
+
+/*
+ * Copyright (c) 2000 The NetBSD Foundation, Inc.
+ * Copyright (c) 1996-1999 Scott D. Telford.
+ * Copyright (c) 1994, 1996 Charles M. Hannum. All rights reserved.
+ * Portions:
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Charles M. Hannum.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Originally written by Julian Elischer (julian@tfs.com)
+ * for TRW Financial Systems for use under the MACH(2.5) operating system.
+ *
+ * TRW Financial Systems, in accordance with their agreement with Carnegie
+ * Mellon University, makes this software available to CMU to distribute
+ * or use in any manner that they see fit as long as this message is kept with
+ * the software. For this reason TFS also grants any other persons or
+ * organisations permission to use or modify this software.
+ *
+ * TFS supplies this software to be publicly redistributed
+ * on the understanding that TFS is not responsible for the correct
+ * functioning of this software in any circumstances.
+ */
+
+/*
+ * AHA-1640 MCA bus code by Scott Telford
+ */
+
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/systm.h>
+#include <sys/device.h>
+
+#include <machine/bus.h>
+#include <machine/intr.h>
+
+#include <dev/scsipi/scsi_all.h>
+#include <dev/scsipi/scsipi_all.h>
+#include <dev/scsipi/scsiconf.h>
+
+#include <dev/isa/isavar.h>
+#include <dev/isa/isadmavar.h>
+
+#include <dev/ic/ahareg.h>
+#include <dev/ic/ahavar.h>
+
+#include <dev/mca/mcareg.h>
+#include <dev/mca/mcavar.h>
+#include <dev/mca/mcadevs.h>
+
+#define AHA_ISA_IOSIZE 4
+
+int aha_mca_probe __P((struct device *, struct cfdata *, void *));
+void aha_mca_attach __P((struct device *, struct device *, void *));
+
+struct cfattach aha_mca_ca = {
+ sizeof(struct aha_softc), aha_mca_probe, aha_mca_attach
+};
+
+
+int
+aha_mca_probe(parent, match, aux)
+ struct device *parent;
+ struct cfdata *match;
+ void *aux;
+{
+ register struct mca_attach_args *ma = aux;
+
+ switch(ma->ma_id) {
+ case MCA_PRODUCT_AHA1640:
+ return 1;
+ }
+
+ return 0;
+}
+
+
+/*
+ * Attach all the sub-devices we can find
+ */
+void
+aha_mca_attach(parent, self, aux)
+ struct device *parent, *self;
+ void *aux;
+{
+ struct mca_attach_args *ma = aux;
+ struct aha_softc *sc = (void *)self;
+ bus_space_tag_t iot = ma->ma_iot;
+ bus_space_handle_t ioh;
+ struct aha_probe_data apd;
+ mca_chipset_tag_t mc = ma->ma_mc;
+ bus_addr_t iobase;
+
+ printf("\n");
+
+ iobase=((ma->ma_pos[3] & 0x03) << 8) + 0x30 +
+ ((ma->ma_pos[3] & 0x40) >> 4);
+
+ if (bus_space_map(iot, iobase, AHA_ISA_IOSIZE, 0, &ioh)) {
+ printf("%s: can't map i/o space\n", sc->sc_dev.dv_xname);
+ return;
+ }
+
+ sc->sc_iot = iot;
+ sc->sc_ioh = ioh;
+ sc->sc_dmat = ma->ma_dmat;
+
+ apd.sc_irq=(ma->ma_pos[4] & 0x7) + 8;
+ apd.sc_drq=ma->ma_pos[5] & 0xf;
+ apd.sc_scsi_dev=(ma->ma_pos[4] & 0xe0) >> 5;
+
+#ifdef notyet
+ if (apd.sc_drq != -1)
+ isa_dmacascade(mc, apd.sc_drq);
+#endif
+
+ sc->sc_ih = mca_intr_establish(mc, apd.sc_irq, IPL_BIO, aha_intr, sc);
+ if (sc->sc_ih == NULL) {
+ printf("%s: couldn't establish interrupt\n",
+ sc->sc_dev.dv_xname);
+ return;
+ }
+
+ aha_attach(sc, &apd);
+}
diff --git a/sys/dev/mca/devlist2h.awk b/sys/dev/mca/devlist2h.awk
new file mode 100644
index 00000000000..258b462252c
--- /dev/null
+++ b/sys/dev/mca/devlist2h.awk
@@ -0,0 +1,113 @@
+#! /usr/bin/awk -f
+# $NetBSD: devlist2h.awk,v 1.1 2000/05/11 15:42:04 jdolecek Exp $
+#
+# Copyright (c) 1995, 1996 Christopher G. Demetriou
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+# Adapted for MCA needs by Jaromir Dolecek.
+
+BEGIN {
+ nproducts = nvendors = 0
+ dfile="mcadevs_data.h"
+ hfile="mcadevs.h"
+ FS=" "
+ alias=""
+ id=""
+}
+NR == 1 {
+ VERSION = $0
+ gsub("\\$", "", VERSION)
+
+ printf("/*\t\$NetBSD\$\t*/\n\n") > dfile
+ printf("/*\n") > dfile
+ printf(" * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.\n") \
+ > dfile
+ printf(" *\n") > dfile
+ printf(" * generated from:\n") > dfile
+ printf(" *\t%s\n", VERSION) > dfile
+ printf(" */\n") > dfile
+
+ printf("/*\t\$NetBSD\$\t*/\n\n") > hfile
+ printf("/*\n") > hfile
+ printf(" * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.\n") \
+ > hfile
+ printf(" *\n") > hfile
+ printf(" * generated from:\n") > hfile
+ printf(" *\t%s\n", VERSION) > hfile
+ printf(" */\n") > hfile
+
+ next
+}
+
+$1 == "product" {
+ nproducts++
+
+ alias = $3
+ id = $2
+
+ products[nproducts, 1] = $2; # product id
+
+ # get name - it's enclosed in parenthesis
+ sub("[^\"]*\"", "")
+ sub("\".*", "")
+ products[nproducts, 2] = $0; # name
+
+ # if third parameter is an alias, print appropriate entry to hfile,
+ # otherwise just store the entry for later processing
+ if (substr(alias, 1, 1) != "\"") {
+ printf("#define\tMCA_PRODUCT_%s\t%s\t/* %s */\n", alias, id,\
+ $0) > hfile
+ }
+
+}
+{
+ if ($0 == "")
+ blanklines++
+ if (blanklines < 2) {
+ print $0 > hfile
+ print $0 > dfile
+ }
+ else if (blanklines == 2) {
+ printf("\n/*\n * List of known MCA devices\n */\n\n") > dfile
+ printf("\n/*\n * Supported MCA devices\n */\n\n") > hfile
+ }
+
+ next
+}
+END {
+ # print out the match tables
+
+ printf("const struct mca_knowndev mca_knowndevs[] = {\n") > dfile
+ for (i = 1; i <= nproducts; i++) {
+ printf(" { %s,\t\"%s\" },\n", products[i, 1],
+ products[i, 2]) > dfile
+ }
+ printf(" { 0, NULL, }\n") > dfile
+ printf("};\n") > dfile
+}
diff --git a/sys/dev/mca/files.mca b/sys/dev/mca/files.mca
new file mode 100644
index 00000000000..3487939d554
--- /dev/null
+++ b/sys/dev/mca/files.mca
@@ -0,0 +1,33 @@
+# $NetBSD: files.mca,v 1.1 2000/05/11 15:42:04 jdolecek Exp $
+#
+# Config.new file and device description for machine-independent MCA code.
+# Included by ports that need it.
+
+defopt MCAVERBOSE
+
+#device mca {[slot = -1]}
+attach mca at mcabus
+file dev/mca/mca.c mca needs-flag
+file dev/mca/mca_subr.c mca
+
+# 3Com 3C523 - new in 3.0, dissapeared in 3.1; re-port from isa attach
+# device ef: ether, ifnet, arp, elink, i82586
+attach ef at mca with ef_mca
+file dev/mca/if_ef_mca.c ef_mca
+
+# 3Com 3C529 (not yet)
+#attach ep at mca with ep_mca: elink
+#file dev/mca/if_ep_mca.c ep_mca
+
+# WD/SMC 80x3/A (not yet)
+#device we: ether, ifnet, arp, dp8390nic
+#attach we at mca
+#file dev/mca/if_we_mca.c we_mca
+
+# Adaptec AHA-1640
+attach aha at mca with aha_mca: isadma
+file dev/mca/aha_mca.c aha_mca
+
+# TROPIC based Token-Ring (IBM)
+attach tr at mca with tr_mca
+file dev/mca/if_tr_mca.c tr_mca
diff --git a/sys/dev/mca/if_tr_mca.c b/sys/dev/mca/if_tr_mca.c
new file mode 100644
index 00000000000..7286f362a68
--- /dev/null
+++ b/sys/dev/mca/if_tr_mca.c
@@ -0,0 +1,212 @@
+/* $NetBSD: if_tr_mca.c,v 1.1 2000/05/11 15:42:04 jdolecek Exp $ */
+
+/*_
+ * Copyright (c) 2000 The NetBSD Foundation, Inc.
+ * Copyright (c) 1998, 1999 Gregory McGarry.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Gregory McGarry <g.mcgarry@qut.edu.au>.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the NetBSD
+ * Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/socket.h>
+#include <sys/device.h>
+
+#include <machine/cpu.h>
+#include <machine/bus.h>
+#include <machine/intr.h>
+
+#include <dev/mca/mcareg.h>
+#include <dev/mca/mcavar.h>
+#include <dev/mca/mcadevs.h>
+
+#include <net/if.h>
+#include <net/if_media.h>
+#include <net/if_ether.h>
+
+#include <dev/ic/tropicreg.h>
+#include <dev/ic/tropicvar.h>
+
+#ifdef DEBUG
+#define DPRINTF(x) printf x
+#else
+#define DPRINTF(x)
+#endif
+
+#define TR_PRI_IOADDR 0x0a20
+#define TR_ALT_IOADDR 0x0a24
+#define TR_PIOSIZE 4
+#define TR_MMIOSIZE 8192
+#define TR_MBPS_4 0
+#define TR_MBPS_16 1
+
+int tr_mca_probe __P((struct device *, struct cfdata *, void *));
+void tr_mca_attach __P((struct device *, struct device *, void *));
+
+struct cfattach tr_mca_ca = {
+ sizeof(struct tr_softc), tr_mca_probe, tr_mca_attach
+};
+
+int
+tr_mca_probe(parent, match, aux)
+ struct device *parent;
+ struct cfdata *match;
+ void *aux;
+{
+ struct mca_attach_args *ma = aux;
+
+ switch (ma->ma_id) {
+ case MCA_PRODUCT_ITR:
+ return 1;
+ }
+
+ return 0;
+}
+
+
+void
+tr_mca_attach(parent, self, aux)
+ struct device *parent, *self;
+ void *aux;
+{
+ struct tr_softc *sc = (void *) self;
+ struct mca_attach_args *ma = aux;
+ bus_space_handle_t pioh, mmioh, sramh;
+ int iobase, irq, sram_size, sram_addr, rom_addr;
+ int pos2, pos3, pos4, pos5;
+
+ pos2 = mca_conf_read(ma->ma_mc, ma->ma_slot, 2);
+ pos3 = mca_conf_read(ma->ma_mc, ma->ma_slot, 3);
+ pos4 = mca_conf_read(ma->ma_mc, ma->ma_slot, 4);
+ pos5 = mca_conf_read(ma->ma_mc, ma->ma_slot, 5);
+
+ /*
+ * POS register 2: (adf pos0)
+ *
+ * 7 6 5 4 3 2 1 0
+ * \___________/ \__ enable: 0=adapter disabled, 1=adapter enabled
+ * \__________ RAM addr: pos2&0xfe
+ *
+ * POS register 3: (adf pos1)
+ *
+ * 7 6 5 4 3 2 1 0
+ * | \___/ | | | \__ port address: 1=0x0a24-0x0a27, 0=0x0a20-0x0a23
+ * | | \ / \____ speed: 0=4Mbps, 1=16Mbps
+ * | | \_______ RAM size: 00=8kb, 01=16kb, 10=32kb, 11=64kb
+ * | \____________ reserved: 010
+ * \________________ irq component: 0=2, 1=3 (see also pos4)
+ *
+ * POS register 4: (adf pos2)
+ *
+ * 7 6 5 4 3 2 1 0
+ * \___________/ \__ interrupt controller: 0=1st, 1=2nd
+ * \__________ ROM address: pos4&0xfe
+ *
+ * POS register 5: (adf pos3)
+ *
+ * 7 6 5 4 3 2 1 0
+ * | | \_____/
+ * | | \_____ reserved: 0x0
+ * | \__________ autosense: 0=off, 1=on
+ * \____________ boot rom: 0=enabled, 1=disabled
+ */
+
+ if (pos3 & 0x01)
+ iobase = TR_ALT_IOADDR;
+ else
+ iobase = TR_PRI_IOADDR;
+
+ irq = 2 + (pos3 >> 7) + ((pos4 & 0x01) << 3);
+ if (irq == 2)
+ irq = 9;
+
+ sram_size = 8 << (((pos3 & 0x0c) >> 2) + 10);
+ sram_addr = (pos2 & 0xfe) << 12;
+
+ rom_addr = (pos4 & 0xfe) << 12;
+
+ /* map the pio registers */
+ if (bus_space_map(ma->ma_iot, iobase, TR_PIOSIZE, 0, &pioh)) {
+ printf("%s: unable to map PIO space\n", sc->sc_dev.dv_xname);
+ return;
+ }
+
+ /* map the mmio registers */
+ if (bus_space_map(ma->ma_memt, rom_addr, TR_MMIOSIZE, 0, &mmioh)) {
+ printf("%s: unable to map MMIO space\n", sc->sc_dev.dv_xname);
+ return;
+ }
+
+ /* map the sram space */
+ if (bus_space_map(ma->ma_memt, sram_addr, sram_size, 0, &sramh)) {
+ printf("%s: unable to map SRAM space\n", sc->sc_dev.dv_xname);
+ return;
+ }
+
+ sc->sc_piot = ma->ma_iot;
+ sc->sc_pioh = pioh;
+ sc->sc_memt = ma->ma_memt;
+ sc->sc_mmioh = mmioh;
+ sc->sc_sramh = sramh;
+
+ /* set ACA offset */
+ sc->sc_aca = TR_ACA_OFFSET;
+ sc->sc_memwinsz = sram_size;
+ sc->sc_maddr = sram_addr;
+
+ /*
+ * Determine total RAM on adapter and decide how much to use.
+ * XXX Since we don't use RAM paging, use sc_memwinsz for now.
+ */
+ sc->sc_memsize = sc->sc_memwinsz;
+ sc->sc_memreserved = 0;
+
+ if (tr_reset(sc) != 0)
+ return;
+
+ /* XXX not implemented (yet) */
+ sc->sc_mediastatus = NULL;
+ sc->sc_mediachange = NULL;
+
+ /* do generic attach */
+ if (tr_attach(sc) != 0)
+ return;
+
+ /* establish interrupt handler */
+ sc->sc_ih = mca_intr_establish(ma->ma_mc, irq, IPL_NET, tr_intr, sc);
+ if (sc->sc_ih == NULL)
+ printf("%s: couldn't establish interrupt handler\n",
+ sc->sc_dev.dv_xname);
+ else
+ printf("%s: interrupting at irq %d\n", sc->sc_dev.dv_xname, irq);
+
+}
diff --git a/sys/dev/mca/mca.c b/sys/dev/mca/mca.c
new file mode 100644
index 00000000000..983d505b0e8
--- /dev/null
+++ b/sys/dev/mca/mca.c
@@ -0,0 +1,168 @@
+/* $NetBSD: mca.c,v 1.1 2000/05/11 15:42:05 jdolecek Exp $ */
+
+/*-
+ * Copyright (c) 2000 The NetBSD Foundation, Inc.
+ * Copyright (c) 1996-1999 Scott D. Telford.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Scott Telford <s.telford@ed.ac.uk>.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the NetBSD
+ * Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * MCA Bus device
+ */
+
+#include "opt_mcaverbose.h"
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/device.h>
+
+#include <machine/bus.h>
+
+#include <dev/mca/mcareg.h>
+#include <dev/mca/mcavar.h>
+
+
+int mca_match __P((struct device *, struct cfdata *, void *));
+void mca_attach __P((struct device *, struct device *, void *));
+
+struct cfattach mca_ca = {
+ sizeof(struct device), mca_match, mca_attach
+};
+
+int mca_submatch __P((struct device *, struct cfdata *, void *));
+int mca_print __P((void *, const char *));
+
+int
+mca_match(parent, cf, aux)
+ struct device *parent;
+ struct cfdata *cf;
+ void *aux;
+{
+ struct mcabus_attach_args *mba = aux;
+
+ if (strcmp(mba->mba_busname, cf->cf_driver->cd_name))
+ return (0);
+
+ /* sanity (only mca0 supported currently) */
+ if (mba->mba_bus < 0 || mba->mba_bus > 0)
+ return (0);
+
+ /* XXX check other indicators? */
+
+ return (1);
+}
+
+int
+mca_print(aux, pnp)
+ void *aux;
+ const char *pnp;
+{
+ register struct mca_attach_args *ma = aux;
+ char devinfo[256];
+
+ if (pnp) {
+ mca_devinfo(ma->ma_id, devinfo);
+ printf("%s slot %d: %s", pnp, ma->ma_slot + 1, devinfo);
+ }
+
+ return (mca_issupp(ma->ma_id)) ? UNCONF : UNSUPP;
+}
+
+int
+mca_submatch(parent, cf, aux)
+ struct device *parent;
+ struct cfdata *cf;
+ void *aux;
+{
+ struct mca_attach_args *ma = aux;
+
+ if (cf->mcacf_slot != MCA_UNKNOWN_SLOT &&
+ cf->mcacf_slot != ma->ma_slot)
+ return 0;
+ return ((*cf->cf_attach->ca_match)(parent, cf, aux));
+}
+
+void
+mca_attach(parent, self, aux)
+ struct device *parent, *self;
+ void *aux;
+{
+ struct mcabus_attach_args *mba = aux;
+ bus_space_tag_t iot, memt;
+ bus_dma_tag_t dmat;
+ mca_chipset_tag_t mc;
+ int slot;
+
+ mca_attach_hook(parent, self, mba);
+ printf("\n");
+
+ iot = mba->mba_iot;
+ memt = mba->mba_memt;
+ mc = mba->mba_mc;
+ dmat = mba->mba_dmat;
+
+ /*
+ * Search for and attach subdevices.
+ *
+ * NB: In the adapter setup register, slots are numbered from 0,
+ * but officially they are numbered from 1.
+ * We use the former convention internally and the latter for text
+ * messages and in config files.
+ */
+
+ for (slot = 0; slot < MCA_MAX_SLOTS; slot++) {
+ struct mca_attach_args ma;
+ int reg;
+
+ ma.ma_iot = iot;
+ ma.ma_memt = memt;
+ ma.ma_dmat = dmat;
+ ma.ma_mc = mc;
+ ma.ma_slot = slot;
+
+ for(reg = 0; reg < 8; reg++)
+ ma.ma_pos[reg]=mca_conf_read(mc, slot, reg);
+
+ ma.ma_id = ma.ma_pos[0] + (ma.ma_pos[1] << 8);
+ if (ma.ma_id == 0xffff) /* no adapter here */
+ continue;
+
+ if (ma.ma_pos[2] & MCA_POS2_ENABLE)
+ config_found_sm(self, &ma, mca_print, mca_submatch);
+ else {
+ mca_print(&ma, self->dv_xname);
+ printf(" disabled\n");
+ }
+ }
+}
diff --git a/sys/dev/mca/mca_subr.c b/sys/dev/mca/mca_subr.c
new file mode 100644
index 00000000000..156aefaa7b7
--- /dev/null
+++ b/sys/dev/mca/mca_subr.c
@@ -0,0 +1,107 @@
+/* $NetBSD: mca_subr.c,v 1.1 2000/05/11 15:42:05 jdolecek Exp $ */
+
+/*-
+ * Copyright (c) 2000 The NetBSD Foundation, Inc.
+ * Copyright (c) 1996-1999 Scott D. Telford.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Scott Telford <s.telford@ed.ac.uk>.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the NetBSD
+ * Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * MCA Bus subroutines
+ */
+
+#include "opt_mcaverbose.h"
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/device.h>
+
+#include <dev/mca/mcavar.h>
+#include <dev/mca/mcadevs.h>
+
+#ifdef MCAVERBOSE
+/*
+ * Descriptions of of known MCA devices
+ */
+struct mca_knowndev {
+ int id; /* MCA ID */
+ const char *name; /* text description */
+};
+
+#include <dev/mca/mcadevs_data.h>
+
+#endif /* MCAVERBOSE */
+
+/* supported peripheals */
+const int mca_suppdevs[] = {
+ MCA_PRODUCT_AHA1640,
+ MCA_PRODUCT_3C523,
+ MCA_PRODUCT_ITR,
+ 0
+};
+
+/*
+ * Returns 1 if a device is supported (i.e. device driver exists for it)
+ * 0 otherwise.
+ */
+int
+mca_issupp(id)
+ int id;
+{
+ int i;
+ for(i=0; mca_suppdevs[i]; i++) {
+ if (id == mca_suppdevs[i])
+ return 1;
+ }
+
+ return 0;
+}
+
+void
+mca_devinfo(id, cp)
+ int id;
+ char *cp;
+{
+#ifdef MCAVERBOSE
+ const struct mca_knowndev *kdp;
+
+ kdp = mca_knowndevs;
+ for (; kdp->name != NULL && kdp->id != id; kdp++);
+
+ if (kdp->name != NULL)
+ sprintf(cp, "%s (0x%04x)", kdp->name, id);
+ else
+#endif /* MCAVERBOSE */
+ sprintf(cp, "product 0x%04x", id);
+}
diff --git a/sys/dev/mca/mcadevs b/sys/dev/mca/mcadevs
new file mode 100644
index 00000000000..a2bfc01495e
--- /dev/null
+++ b/sys/dev/mca/mcadevs
@@ -0,0 +1,374 @@
+$NetBSD: mcadevs,v 1.1 2000/05/11 15:42:05 jdolecek Exp $
+
+/*-
+ * Copyright (c) 2000 The NetBSD Foundation, Inc.
+ * Copyright (c) 1996-1999 Scott D. Telford.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Scott Telford <s.telford@ed.ac.uk>.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the NetBSD
+ * Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+/*
+ * MCA device ID and description flag table.
+ *
+ * Comment indicates where entry was gleaned from:
+ * [1] Crynwyr packet drivers for DOS, release 11c
+ * [2] MCA Linux kernel patches
+ * [3] IBM PS/2 Model 70/80 (8570/8580) Reference Diskette
+ * [4] ADF files via Steve Siirila
+ * [5] Research Machines plc Support BBS file ADFLIST.ZIP
+ * [6] http://www.ncr.com/support/pc/pcdesc/library/adfs.shtml
+ * [7] http://www.apricot.co.uk/ftp/bbs/area40/deal.lst (Apricot Insight BBS)
+ * [8] QBMCA.DAT
+ */
+
+/*
+ * Format is:
+ * product id [alias] "name" [source]
+ */
+product 0x002D "Madge Smart 16/4 MC RingNode Adapter" [6]
+product 0x0041 "3Com 3C527 Ethernet Adapter" [6]
+product 0x004E "NCR 53C700 SCSI Host Adapter" [6]
+product 0x004F "NCR 53C710 SCSI Host Adapter" [6]
+product 0x0061 "NCR Dual Channel Ethernet Adapter" [6]
+product 0x0069 "Network Peripherals FDDI Adapter" [6]
+product 0x0074 "Madge Smart 16/4 MC32 RingNode Adapter" [6]
+product 0x0086 "Orchid Pro II/MC v2.0/HiColor Adapter" [7]
+product 0x0092 "NCR 53C700 SCSI MCA Adapter" [6]
+product 0x00C4 "Racore 16/4 Token-Ring Adapter" [6]
+product 0x00C5 "Racore 16/4 Token-Ring Adapter" [6]
+product 0x0100 "NCR 16/4 Token-Ring Adapter/MC" [6]
+product 0x0101 "Proteon p1840 ProNET-4 Network Adapter" [6]
+product 0x01B2 "Cogent E/MASTER III MCA Ethernet Adapter" [6]
+product 0x01BA "NCR 53C710 SCSI Host Adapter" [6]
+product 0x01BB "NCR 3360 SCSI Host Adapter" [6]
+product 0x01DB "Corvus Omninet1 Adapter" [7]
+product 0x0202 "Proteon p1890 4/16 Token Ring Adapter" [6]
+product 0x0280 "Systech 6280 Host Adapter" [6]
+product 0x0300 "NCR SIMPL SCSI Host Adapter" [6]
+product 0x0301 "Wichita 6298 (ADP 3702) Adapter" [6]
+product 0x0425 "Superfax Modem Adapter" [6]
+product 0x04FF "Viking PS/2 Display Controller" [7]
+product 0x0500 "CORE CNT-MCK Fixed Disk Adapter" [6]
+product 0x0708 "BusTek BT-640A SCSI Host Adapter" [6]
+product 0x0803 "Madge MCA Ring Node Adapter" [6]
+product 0x0808 "BICC Isolan 4110 Ethernet Adapter" [1]
+product 0x0F1F AHA1640 "Adaptec AHA-1640 SCSI Adapter" AHA-1640 ADF
+product 0x0F2F "Lantana Cypress/2 Token Ring MCA" [6]
+product 0x0F5F "GSS MC1000/Eizo GC40 Video Adapter" [7]
+product 0x0F7F "Metacomp PSconnect/PScomm4" [6]
+product 0x0FCC "D-Link Ethernet Adapter" [6]
+product 0x0FDF "MICOM-Interlan NI9210 Ethernet Adapter" [1]
+product 0x1185 "Ven-Tel 2400 Modem" [6]
+product 0x35FF "Dual UART Adapter" [6]
+product 0x5022 "Online CDI-210S (Sony) CD-ROM Adapter" [6]
+product 0x5084 "Creative Labs Sound Blaster/MC" [6]
+product 0x5103 "Creative Labs Sound Blaster Pro MCV CT5330" [6]
+product 0x5116 "NCR Business Audio w/ FM Synthesis" [6]
+product 0x5125 "Tecmar QT-60/90/125 Tape Drive Adapter" [6]
+product 0x5126 "Tecmar Floppy Tape Adapter" [6]
+product 0x5136 "NCR Audio Adapter w/o FM Synthesis" [6]
+product 0x5333 "National Inst. MC-GPIB IEEE-488 Adapter" [6]
+product 0x5500 "COREtape QIC-02 Tape Adapter" [6]
+product 0x568B "MaynStream QIC-02 Tape Drive Adapter" [5]
+product 0x568D "MaynStream SCSI Tape Drive Adapter" [5]
+product 0x57FE "Cipher/Archive Tape Drive Adapter" [5]
+product 0x5822 "Chase Serial I/O Controller (small 4-port)" [7]
+product 0x5823 "Chase Serial I/O Controller (4-port)" [7]
+product 0x5824 "Chase Serial I/O Controller (8-port)" [7]
+product 0x5825 "Chase Serial I/O Controller (16-port)" [7]
+product 0x5830 "Axel Tape Drive Adapter" [7]
+product 0x5962 "Alert Technology Serial Adapter" [5]
+product 0x5EEE "Hitachi CD-ROM Adapter" [5]
+product 0x5F77 "Future Domain SCSI Adapter" [5]
+product 0x5FF8 "Plus Passport MC Adapter" [5]
+product 0x6001 "Tiara LANcard/E Ethernet Adapter" [1]
+product 0x6014 "Standard Microsystems ARCNET-PS110 Adapter" [6]
+product 0x6018 "Gateway Comms. G/Ethernet Adapter" [6]
+product 0x601F "HP Scanner Interface Adapter" [5]
+product 0x602F "Arcmaster ARCnet Adapter" [6]
+product 0x6042 3C523 "3Com 3C523 Ethernet Adapter" 3C523 EtherDisk
+product 0x6060 "IDEAcomm 5251 7 LU Adapter" [6]
+product 0x6091 "Stallion ONboard2 Terminal Adapter" [6]
+product 0x609E "Microtek MS-PS/2 Interface Adapter" [5]
+product 0x60C9 "Boca Bidirectional Parallel Adapter" [6]
+product 0x60D0 "Hayes JT Fax 4800P" [6]
+product 0x60E5 "Boca Dual Async/Parallel Adapter 2" [5]
+product 0x60ED "M-DCB/2 Disc Coprocessor Board" [6]
+product 0x6127 "Future Domain MCS-600/700 SCSI Host Adapter" [7]
+product 0x613D "Rabbit RB75 Remote Comms. Processor" [6]
+product 0x613F "SONIC Model 50" [6]
+product 0x6157 "Novell Remote III Adapter" [7]
+product 0x616A "NewPort WNIC Adapter" [7]
+product 0x617E "Computone PS8 8-port Adapter" [6]
+product 0x61BF "Intel SatisFAXtion Adapter" [6]
+product 0x61C8 "WD/SMC 8013EP/A Ethernet Adapter" [1]
+product 0x61C9 "WD/SMC 8013WP/A Ethernet Adapter" [1]
+product 0x61FD "Computone PSCC Cluster Controller" [6]
+product 0x6201 "Quadport PS/Q I/O Adapter" [6]
+product 0x6203 "Quadport PS/Q I/O Adapter" [6]
+product 0x6205 "Excelan EXOS 215T Ethernet Adapter" [7]
+product 0x621C "NCR 16-Port Serial Controller/MC" [6]
+product 0x621F "HP ScanJet II Adapter" [6]
+product 0x6222 "NCI 4700 PCI/MC" [6]
+product 0x6262 "Proteon p1800 ProNET-10 Network Adapter" [6]
+product 0x6263 "Arco AC-1070 IDE Adapter" [6]
+product 0x626B "Apricot AdLOC Security Card" [7]
+product 0x627C "3Com 3C529 Ethernet Adapter" [6]
+product 0x627D "3Com 3C529-TP Ethernet Adapter" [6]
+product 0x628B "Intel EtherExpress 16/MC Adapter" [1]
+product 0x62B6 "Arco AC-1079 SLIM Drive Adapter" [6]
+product 0x62DB "3Com 3C529 Ethernet Adapter (test mode)" [2]
+product 0x62F0 "Plexus AIP2 Card" [6]
+product 0x62F6 "3Com 3C529 Ethernet Adapter (10base2/T)" [2]
+product 0x62F7 "3Com 3C529 Ethernet Adapter (10baseT)" [2]
+product 0x6361 "Arnet Smartport/2 Communications Adapter" [6]
+product 0x63B3 "CH GameCard III-Automatic/MCA Adapter" [5]
+product 0x63CA "HP 27246 Ethernet Adapter" [1]
+product 0x6406 "AT&T GIS 8-Port Serial Controller/MC" [8]
+product 0x6407 "Stargate Adapter" [6]
+product 0x64B6 "Thomas-Conrad ARC-CARD/MC" [6]
+product 0x64B7 "Thomas-Conrad TCNS/MC" [7]
+product 0x651B "Racore Token-Ring Adapter" [6]
+product 0x651E "Racore LANpac II" [6]
+product 0x6612 "Evercom Modem" [6]
+product 0x6780 "Roalan/NeoTecH 4-Channel Serial Adapter" [7]
+product 0x6781 "Roalan/NeoTecH Serial Adapter" [5]
+product 0x6782 "Roalan/NeoTecH Parallel Adapter" [5]
+product 0x6783 "Roalan/NeoTecH Serial/Parallel Adapter" [5]
+product 0x6784 "Roalan/NeoTecH Dual RS-422/485 Serial Adapter" [5]
+product 0x6785 "Roalan/NeoTecH RS-422/485 Serial Adapter" [6]
+product 0x6786 "Roalan/NeoTecH DP/1A Dual Parallel Adapter" [5]
+product 0x6787 "Roalan/NeoTecH MS/4A 4-Channel Serial Adapter" [5]
+product 0x6788 "Roalan/NeoTecH MS/4B 4-Channel Serial Adapter" [5]
+product 0x6789 "Roalan/NeoTecH MS/4C 4-Channel Serial Adapter" [5]
+product 0x678B "NeoTecH Dual RS-232 Async. Adapter" [6]
+product 0x678C "NeoTecH S2M100 Dual RS-232 Async. Adapter" [6]
+product 0x678D "NeoTecH MSP/4 4-Channel Serial/Parallel Adapter" [6]
+product 0x678F "BBS GPIB-3000 IEEE-488 Adapter" [5]
+product 0x6792 "NeoTecH SPM121/SPM321 Serial/Parallel Adapter" [6]
+product 0x6795 "NeoTecH S1M200 Single RS-422/485 Async. Adapter" [6]
+product 0x6796 "NeoTecH PM101 Single Bidirectional Parallel Adapter" [6]
+product 0x6797 "NeoTecH PM102 Dual Bidirectional Parallel Adapter" [6]
+product 0x67E1 "NCR 8-Port Serial Controller/MC" [6]
+product 0x68FF "RM Z-Net LAN Controller" [5]
+product 0x6A14 "NCR WaveLAN Adapter" [6]
+product 0x6A21 "Microeye 1 C Mk2 Video Digitiser" [5]
+product 0x6A22 "RM Ethernet-MC/2 Adapter" [5]
+product 0x6A40 "Microeye Picturebook Adapter" [5]
+product 0x6A5C "Specialix RIO Communications Adapter" [7]
+product 0x6A7B "Tueplan Dual Channel Parallel Adapter" [7]
+product 0x6A7F "RM M-Series BBC I/O Adapter" [5]
+product 0x6A8D "Quattro PS Modem" [7]
+product 0x6AB4 "Mayze Syncro 24PS V.26bis Modem" [7]
+product 0x6AB5 "Mayze Syncro 48PS V.27ter Modem" [7]
+product 0x6ABF "RM Ethernet MC Adapter" [5]
+product 0x6AE7 "Dacom Unity Gold+/2 Modem" [7]
+product 0x6AFB "Miracom Keycard/PS Modem" [7]
+product 0x6B76 "Network Designers Garnet 2 Adapter" [7]
+product 0x6B80 "DataFlex Chameleo Modem" [7]
+product 0x6B95 "CORE ESDI Fixed Disk Adapter" [6]
+product 0x6B9B "Specialix Multi-port Serial Adapter" [7]
+product 0x6B9C "HWF-MC2 Serial Communications Adapter" [7]
+product 0x6B9D "SoftWare Forge SWF-MC1 X.25 Adapter" [7]
+product 0x6BBA "Apricot On-board Ethernet Adapter" [7]
+product 0x6BBB "Barr Synchronous Communications Adapter" [6]
+product 0x6BBC "Apricot Synchronous Communications Adapter" [7]
+product 0x6BCB "CONNECT ARCnet Adapter" [6]
+product 0x6BE7 "Symicron dtsx12 Token Ring Adapter" [7]
+product 0x6BFF "Torus Ethernet Adapter/MC" [6]
+product 0x6C0F "Roland MIDI Processing Unit MPU-IMC" [5]
+product 0x6DAC "Logitech ScanMan Adapter" [5]
+product 0x6DD4 "FasTalk 2/V.32/42b" [6]
+product 0x6DD5 "UDS Sync-Up 2/V.32/42b" [6]
+product 0x6DD6 "UDS Sync-Up 2/201" [6]
+product 0x6DD7 "UDS Sync-Up 2/V.26" [6]
+product 0x6DE0 "UDS Sync-Up 2/V.32" [6]
+product 0x6DE1 "UDS Sync-Up 2/T9628B" [6]
+product 0x6DE2 "FasTalk 2/V.32" [6]
+product 0x6DE3 "FasTalk 2/2400" [6]
+product 0x6DE4 "UDS FasTalk 2/1200" [6]
+product 0x6DE5 "UDS Sync-Up 2/V.22bis" [6]
+product 0x6DE6 "UDS Sync-Up 2/201/212" [6]
+product 0x6DE7 "UDS Sync-Up 2/208/201" [6]
+product 0x6DEF "DEC DE210 (DEMCA) Ethernet Adapter" [5]
+product 0x6E6C "IBM Audio Capture & Playback Adapter/A" [8]
+product 0x6E78 "DCA IRMA 2-MCA Adapter" [5]
+product 0x6E79 "DCA IRMA 3 3270 Adapter" [5]
+product 0x6E7C "DCA Intelligent Comm Adapter" [6]
+product 0x6EE7 "IMC PCnic II Ethernet Adapter" [6]
+product 0x6EEE "UDS Sync-Up 2/Multi-Protocol Adapter" [6]
+product 0x6EF8 "IRMA 3t 3270 Coax Adapter" [6]
+product 0x6F01 "Hayes Smartmodem 2400P" [6]
+product 0x6F57 "Octocom OSI8224APS Modem" [7]
+product 0x6F77 "Lantana Tamarix/2 Ethernet Adapter" [6]
+product 0x6FB6 "Canmax DLC 01 Serial Comms Adapter" [6]
+product 0x6FBF "Natural MicroSystems WATSON" [6]
+product 0x6FC0 "WD 8003E/A Ethernet Adapter" [1]
+product 0x6FC1 "WD 8003ST/A Starlan Adapter" [1]
+product 0x6FC2 "WD 8003W/A Ethernet Adapter" [1]
+product 0x6FE4 "DigiBoard PS-COM/16" [6]
+product 0x6FE5 "DigiBoard PS-COM/8" [6]
+product 0x6FE6 "DigiBoard PS-COM/4" [6]
+product 0x6FE9 "DigiBoard Open-Ender" [6]
+product 0x6FEA "DigiBoard Open-Ender RS422" [6]
+product 0x6FEC "DigiCHANNEL MC C/X Adapter" [6]
+product 0x6FF0 "Arnet Multiport/2 Communications Adapter" [6]
+product 0x7000 "AST Advantage/2" [6]
+product 0x7001 "AST Advantage/2 w/ Dual Serial Port" [6]
+product 0x7002 "AST Advantage/2 w/ Serial & Parallel Port" [6]
+product 0x7007 "HyperRAM MC 32/16 Memory Expansion" [7]
+product 0x7010 "Tecmar MicroRAM 386 Multifunction Board" [6]
+product 0x7011 "Tecmar MicroRAM Multifunction Board" [6]
+product 0x7012 "Net/One NIUps LAN Adapter" [6]
+product 0x7020 "Cumulus 2Mb Memory Multifunction Adapter" [6]
+product 0x7021 "Cumulus 4Mb Memory Multifunction Adapter" [6]
+product 0x7022 "Cumulus 8Mb Memory Multifunction Adapter" [6]
+product 0x7024 "InterQuadram QuadMEG PS8 Extended Memory/Adapter" [5]
+product 0x7026 "Cumulus 2400 Baud Internal Modem" [6]
+product 0x7046 "Alloy IMP8/PS Adapter" [6]
+product 0x7047 "Alloy IMP2/PS Adapter" [6]
+product 0x7048 "Excelogic Micromem" [6]
+product 0x7049 "Micron Beyond 50/60 Memory Expansion" [5]
+product 0x704E "Video Capture Adapter/A" [6]
+product 0x704F "NCR MPCA/MC Adapter" [6]
+product 0x7050 "AST RampagePlus/MC Memory Expansion" PCW Jul 89, p149
+product 0x7064 "AW RCP Adapter" [6]
+product 0x706F "Aox MicroMASTER 386" [5]
+product 0x707D "Corollary 8x4mc" [6]
+product 0x707E "Irwin 4100MC Controller" [6]
+product 0x708E "Kingston KTM-8000/286 Memory Expansion" [5]
+product 0x708F "Kingston KTM-8000/386 Memory Expansion" [5]
+product 0x70B0 "Intel AboveBoard MC32" [6]
+product 0x70D0 "Kingston KTM-16000/386 Memory Expansion" [6]
+product 0x70D4 "Kingston KTM-609/16 Memory Expansion" [4]
+product 0x7151 "Novell NE/2-32 Ethernet Adapter" [6]
+product 0x7154 "Novell NE/2 Ethernet Adapter" [1]
+product 0x7188 "Mountain QIC-02 Tape Adapter" [6]
+product 0x71D4 "Kingston DataCard 16 Adapter" [4]
+product 0x72F3 "HyperRAM MC 32/16 SIMM-MF Memory Expansion" [7]
+product 0x7411 "Quadboard PS/Q Multifunction Adapter" [6]
+product 0x7422 "Quadboard PS/Q Multifunction Adapter" [6]
+product 0x7520 "ALR MicroChannel AT Embedded Adapter" [6]
+product 0x7522 "ALR MicroChannel AT Embedded Adapter" [6]
+product 0x76DA "Quadmeg PS/Q Memory Adapter" [6]
+product 0x76DE "Quadmeg PS/Q Memory Adapter" [6]
+product 0x7788 "Intel AboveBoard 2 Plus" [5]
+product 0x77FB "Everex EV-136 4Mb Memory Expansion" [6]
+product 0x77FF "Alloy HI-2 PC Expansion Bus Interface" [6]
+product 0x7A7A "Boca BOCARAM/2 PLUS Memory Expansion" [6]
+product 0x7D7F "Orchid RAMQuest Extra 16/32" [6]
+product 0x7E76 "Overland XL/2 9-Track Tape Coupler" [7]
+product 0x7F4C "NCR 53C94 SCSI Host Adapter" [6]
+product 0x7F4D "NCR 3421 SCSI Host Adapter" [6]
+product 0x7F4E "NCR SCSI Host Adapter" [6]
+product 0x7F4F "NCR SCSI Host Adapter" [6]
+product 0x7F99 "DigiCHANNEL MC/4i or MC/8i" [6]
+product 0x7FBE "FTG PXL-480 Hi-Res Lightpen Adapter" [5]
+product 0x7FCE "Connect Tech Intellicon MC8 (Canmax CS-6060MCA)" [6]
+product 0x7FD5 "NCI 4700 PCI/MC" [6]
+product 0x7FE9 "DigiBoard Open-Ender DOS" [6]
+product 0x7FEA "DigiBoard MC/Xi DOS RS422" [6]
+product 0x7FF9 "Iomega PC4 SCSI Host Adapter" [5]
+product 0x7FFA "Iomega PC4B-50 SCSI Host Adapter" [5]
+product 0x8002 "Ahead VGA Enhancer-Z Rev. A" [6]
+product 0x8009 "Vermont COBRA/2" [5]
+product 0x800D "Pixelworks PS/2 Ultra Clipper Graphics Subsystem" [6]
+product 0x8010 "Microeye 1C Video Digitiser" [5]
+product 0x8016 "ETAP NEFTIS/20 or ATRIS/20 Display Adapter" [5]
+product 0x803F "RM High Resolution Mono Display Adapter" [5]
+product 0x8044 "Paradise 8514/A Plus Video Adapter" [5]
+product 0x8057 "Digithurst Video Output" [5]
+product 0x8088 "ATI 8514/Ultra Display Adapter" [6]
+product 0x8089 "ATI Graphics Ultra MCA Video Accelerator" [6]
+product 0x80A5 "Cornerstone SinglePage XL Display" [5]
+product 0x80B3 "M-Motion Video Adapter/A" [6]
+product 0x80C3 "Artist XJS MC" [6]
+product 0x80E6 "RasterOps ColorBoard 1024MC" [6]
+product 0x80E8 "Matrox MG-104/108-M Video Adapter" [7]
+product 0x80EC "Matrox MGA Video Adapter" [6]
+product 0x80F6 "RasterOps ColorBoard 1024MC" [6]
+product 0x812E "NCR 3350/3355 HPG Video Adapter (w/o ROM)" [6]
+product 0x8202 "Ahead VGA Enhancer-Z Rev. A" [6]
+product 0x8EF8 "IBM Expansion Unit SCSI Adapter" [2]
+product 0x8EFC "IBM Fast SCSI-2 Adapter" [2]
+product 0x8EFD "IBM 7568 SCSI Adapter w/cache" [2]
+product 0x8EFE "IBM SCSI Adapter" [3]
+product 0x8EFF "IBM SCSI Adapter w/cache" [3]
+product 0x8FA0 "IBM LANStreamer MC 32 Adapter" [6]
+product 0x8FC8 "IBM Token Ring 16/4 Busmaster Server Adapter/A" [6]
+product 0x8FD6 "IBM Audiovation Adapter" PS/2 FAQ
+product 0x8FD8 "IBM XGA/XGA-2 Display Adapter" [2]
+product 0x8FD9 "IBM XGA/XGA-2 Display Adapter" [2]
+product 0x8FDA "IBM XGA/XGA-2 Display Adapter" [2]
+product 0x8FDB "IBM XGA/XGA-2 Display Adapter" [2]
+product 0xDDFF "IBM ESDI Fixed Disk Controller" [3]
+product 0xDEFF "IBM Multi-Protocol Communications Adapter" [3]
+product 0xDF7F "IBM 3363 Optical Disk Adapter" [5]
+product 0xDF9F "IBM Integ. ESDI Fixed Disk & Controller" [3]
+product 0xDFBF "IBM 6157 Streaming Tape Adapter" [5]
+product 0xDFFA "IBM 5.25in Diskette Adapter/A" [5]
+product 0xDFFD "IBM ST506 Fixed Disk Adapter" [6]
+product 0xE000 "IBM Token Ring Adapter/A" [7]
+product 0xE001 ITR "IBM Token Ring 16/4 Adapter/A" [2]
+product 0xE016 "IBM 300/1200/2400 Internal Modem/A" [6]
+product 0xE04E "IBM High Speed Adapter/A" [5]
+product 0xE04F "IBM 3119 Adapter/A" [5]
+product 0xE1FF "IBM 3270 Connection Version B" [3]
+product 0xE7FF "IBM 3270 Connection Version A" [3]
+product 0xE9FF "IBM Expansion Unit Model 002" [5]
+product 0xEDFF "IBM Internal Modem" [3]
+product 0xEEBB "Miracom OEM Modem" [7]
+product 0xEEE7 "IBM Serial Port 2" [6]
+product 0xEEFF "IBM Dual Async Adapter" [3]
+product 0xEF7F "IBM 8514/A Display Adapter" [3]
+product 0xEFCF "IBM Store Loop Adapter/A" [6]
+product 0xEFD4 "IBM Ethernet Adapter/A (10base2)" [1]
+product 0xEFD5 "IBM Ethernet Adapter/A (10baseT)" [1]
+product 0xEFDC "Intel DS2 Adapter" [6]
+product 0xEFDF "ARCnet ASTER/2 Adapter" [6]
+product 0xEFE5 "IBM Ethernet Adapter/A" [1]
+product 0xEFEF "IBM PC Network Adapter" [3]
+product 0xEFF0 "IBM Realtime I/f Co-proc. Multiport/2 or X.25/2" [5]
+product 0xEFF5 "UB NIC-PS/2 Ethernet Adapter" [1]
+product 0xEFF6 "IBM PagePrinter Adapter/2" [5]
+product 0xEFFD "IBM VGA Adapter" [5]
+product 0xF04F "IBM 3117 Scanner Adapter/A" [5]
+product 0xF7F7 "IBM 2-8Mb 80286 Memory Expansion" [5]
+product 0xF7FE "IBM Expanded Memory" [5]
+product 0xFAFF "IBM 32-bit Memory Expansion" [7]
+product 0xFCFF "IBM Memory Expansion" [5]
+product 0xFDDE "IBM Enhanced 80386 Memory Expansion w/ROM" [5]
+product 0xFDDF "IBM Enhanced 80386 Memory Expansion" [5]
+product 0xFEFE "IBM 2Mb 16-bit Memory Adapter" [5]
+product 0xFFF8 "IBM 5250 Workstation Emulation Adapter" [5]
diff --git a/sys/dev/mca/mcadevs.h b/sys/dev/mca/mcadevs.h
new file mode 100644
index 00000000000..adb6e3f39e4
--- /dev/null
+++ b/sys/dev/mca/mcadevs.h
@@ -0,0 +1,42 @@
+/* $NetBSD: mcadevs.h,v 1.1 2000/05/11 15:42:06 jdolecek Exp $ */
+
+/*
+ * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.
+ *
+ * generated from:
+ * NetBSD
+ */
+
+/*
+ * Copyright (c) 1996-1999 Scott D. Telford. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Supported MCA devices
+ */
+
+#define MCA_PRODUCT_AHA1640 0x0F1F /* Adaptec AHA-1640 SCSI Adapter */
+#define MCA_PRODUCT_3C523 0x6042 /* 3Com 3C523 Ethernet Adapter */
+#define MCA_PRODUCT_ITR 0xE001 /* IBM Token Ring 16/4 Adapter/A */
diff --git a/sys/dev/mca/mcadevs_data.h b/sys/dev/mca/mcadevs_data.h
new file mode 100644
index 00000000000..215a04d8cb7
--- /dev/null
+++ b/sys/dev/mca/mcadevs_data.h
@@ -0,0 +1,358 @@
+/* $NetBSD: mcadevs_data.h,v 1.1 2000/05/11 15:42:06 jdolecek Exp $ */
+
+/*
+ * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.
+ *
+ * generated from:
+ * NetBSD
+ */
+
+/*
+ * Copyright (c) 1996-1999 Scott D. Telford. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * List of known MCA devices
+ */
+
+const struct mca_knowndev mca_knowndevs[] = {
+ { 0x002D, "Madge Smart 16/4 MC RingNode Adapter" },
+ { 0x0041, "3Com 3C527 Ethernet Adapter" },
+ { 0x004E, "NCR 53C700 SCSI Host Adapter" },
+ { 0x004F, "NCR 53C710 SCSI Host Adapter" },
+ { 0x0061, "NCR Dual Channel Ethernet Adapter" },
+ { 0x0069, "Network Peripherals FDDI Adapter" },
+ { 0x0074, "Madge Smart 16/4 MC32 RingNode Adapter" },
+ { 0x0086, "Orchid Pro II/MC v2.0/HiColor Adapter" },
+ { 0x0092, "NCR 53C700 SCSI MCA Adapter" },
+ { 0x00C4, "Racore 16/4 Token-Ring Adapter" },
+ { 0x00C5, "Racore 16/4 Token-Ring Adapter" },
+ { 0x0100, "NCR 16/4 Token-Ring Adapter/MC" },
+ { 0x0101, "Proteon p1840 ProNET-4 Network Adapter" },
+ { 0x01B2, "Cogent E/MASTER III MCA Ethernet Adapter" },
+ { 0x01BA, "NCR 53C710 SCSI Host Adapter" },
+ { 0x01BB, "NCR 3360 SCSI Host Adapter" },
+ { 0x01DB, "Corvus Omninet1 Adapter" },
+ { 0x0202, "Proteon p1890 4/16 Token Ring Adapter" },
+ { 0x0280, "Systech 6280 Host Adapter" },
+ { 0x0300, "NCR SIMPL SCSI Host Adapter" },
+ { 0x0301, "Wichita 6298 (ADP 3702) Adapter" },
+ { 0x0425, "Superfax Modem Adapter" },
+ { 0x04FF, "Viking PS/2 Display Controller" },
+ { 0x0500, "CORE CNT-MCK Fixed Disk Adapter" },
+ { 0x0708, "BusTek BT-640A SCSI Host Adapter" },
+ { 0x0803, "Madge MCA Ring Node Adapter" },
+ { 0x0808, "BICC Isolan 4110 Ethernet Adapter" },
+ { 0x0F1F, "Adaptec AHA-1640 SCSI Adapter" },
+ { 0x0F2F, "Lantana Cypress/2 Token Ring MCA" },
+ { 0x0F5F, "GSS MC1000/Eizo GC40 Video Adapter" },
+ { 0x0F7F, "Metacomp PSconnect/PScomm4" },
+ { 0x0FCC, "D-Link Ethernet Adapter" },
+ { 0x0FDF, "MICOM-Interlan NI9210 Ethernet Adapter" },
+ { 0x1185, "Ven-Tel 2400 Modem" },
+ { 0x35FF, "Dual UART Adapter" },
+ { 0x5022, "Online CDI-210S (Sony) CD-ROM Adapter" },
+ { 0x5084, "Creative Labs Sound Blaster/MC" },
+ { 0x5103, "Creative Labs Sound Blaster Pro MCV CT5330" },
+ { 0x5116, "NCR Business Audio w/ FM Synthesis" },
+ { 0x5125, "Tecmar QT-60/90/125 Tape Drive Adapter" },
+ { 0x5126, "Tecmar Floppy Tape Adapter" },
+ { 0x5136, "NCR Audio Adapter w/o FM Synthesis" },
+ { 0x5333, "National Inst. MC-GPIB IEEE-488 Adapter" },
+ { 0x5500, "COREtape QIC-02 Tape Adapter" },
+ { 0x568B, "MaynStream QIC-02 Tape Drive Adapter" },
+ { 0x568D, "MaynStream SCSI Tape Drive Adapter" },
+ { 0x57FE, "Cipher/Archive Tape Drive Adapter" },
+ { 0x5822, "Chase Serial I/O Controller (small 4-port)" },
+ { 0x5823, "Chase Serial I/O Controller (4-port)" },
+ { 0x5824, "Chase Serial I/O Controller (8-port)" },
+ { 0x5825, "Chase Serial I/O Controller (16-port)" },
+ { 0x5830, "Axel Tape Drive Adapter" },
+ { 0x5962, "Alert Technology Serial Adapter" },
+ { 0x5EEE, "Hitachi CD-ROM Adapter" },
+ { 0x5F77, "Future Domain SCSI Adapter" },
+ { 0x5FF8, "Plus Passport MC Adapter" },
+ { 0x6001, "Tiara LANcard/E Ethernet Adapter" },
+ { 0x6014, "Standard Microsystems ARCNET-PS110 Adapter" },
+ { 0x6018, "Gateway Comms. G/Ethernet Adapter" },
+ { 0x601F, "HP Scanner Interface Adapter" },
+ { 0x602F, "Arcmaster ARCnet Adapter" },
+ { 0x6042, "3Com 3C523 Ethernet Adapter" },
+ { 0x6060, "IDEAcomm 5251 7 LU Adapter" },
+ { 0x6091, "Stallion ONboard2 Terminal Adapter" },
+ { 0x609E, "Microtek MS-PS/2 Interface Adapter" },
+ { 0x60C9, "Boca Bidirectional Parallel Adapter" },
+ { 0x60D0, "Hayes JT Fax 4800P" },
+ { 0x60E5, "Boca Dual Async/Parallel Adapter 2" },
+ { 0x60ED, "M-DCB/2 Disc Coprocessor Board" },
+ { 0x6127, "Future Domain MCS-600/700 SCSI Host Adapter" },
+ { 0x613D, "Rabbit RB75 Remote Comms. Processor" },
+ { 0x613F, "SONIC Model 50" },
+ { 0x6157, "Novell Remote III Adapter" },
+ { 0x616A, "NewPort WNIC Adapter" },
+ { 0x617E, "Computone PS8 8-port Adapter" },
+ { 0x61BF, "Intel SatisFAXtion Adapter" },
+ { 0x61C8, "WD/SMC 8013EP/A Ethernet Adapter" },
+ { 0x61C9, "WD/SMC 8013WP/A Ethernet Adapter" },
+ { 0x61FD, "Computone PSCC Cluster Controller" },
+ { 0x6201, "Quadport PS/Q I/O Adapter" },
+ { 0x6203, "Quadport PS/Q I/O Adapter" },
+ { 0x6205, "Excelan EXOS 215T Ethernet Adapter" },
+ { 0x621C, "NCR 16-Port Serial Controller/MC" },
+ { 0x621F, "HP ScanJet II Adapter" },
+ { 0x6222, "NCI 4700 PCI/MC" },
+ { 0x6262, "Proteon p1800 ProNET-10 Network Adapter" },
+ { 0x6263, "Arco AC-1070 IDE Adapter" },
+ { 0x626B, "Apricot AdLOC Security Card" },
+ { 0x627C, "3Com 3C529 Ethernet Adapter" },
+ { 0x627D, "3Com 3C529-TP Ethernet Adapter" },
+ { 0x628B, "Intel EtherExpress 16/MC Adapter" },
+ { 0x62B6, "Arco AC-1079 SLIM Drive Adapter" },
+ { 0x62DB, "3Com 3C529 Ethernet Adapter (test mode)" },
+ { 0x62F0, "Plexus AIP2 Card" },
+ { 0x62F6, "3Com 3C529 Ethernet Adapter (10base2/T)" },
+ { 0x62F7, "3Com 3C529 Ethernet Adapter (10baseT)" },
+ { 0x6361, "Arnet Smartport/2 Communications Adapter" },
+ { 0x63B3, "CH GameCard III-Automatic/MCA Adapter" },
+ { 0x63CA, "HP 27246 Ethernet Adapter" },
+ { 0x6406, "AT&T GIS 8-Port Serial Controller/MC" },
+ { 0x6407, "Stargate Adapter" },
+ { 0x64B6, "Thomas-Conrad ARC-CARD/MC" },
+ { 0x64B7, "Thomas-Conrad TCNS/MC" },
+ { 0x651B, "Racore Token-Ring Adapter" },
+ { 0x651E, "Racore LANpac II" },
+ { 0x6612, "Evercom Modem" },
+ { 0x6780, "Roalan/NeoTecH 4-Channel Serial Adapter" },
+ { 0x6781, "Roalan/NeoTecH Serial Adapter" },
+ { 0x6782, "Roalan/NeoTecH Parallel Adapter" },
+ { 0x6783, "Roalan/NeoTecH Serial/Parallel Adapter" },
+ { 0x6784, "Roalan/NeoTecH Dual RS-422/485 Serial Adapter" },
+ { 0x6785, "Roalan/NeoTecH RS-422/485 Serial Adapter" },
+ { 0x6786, "Roalan/NeoTecH DP/1A Dual Parallel Adapter" },
+ { 0x6787, "Roalan/NeoTecH MS/4A 4-Channel Serial Adapter" },
+ { 0x6788, "Roalan/NeoTecH MS/4B 4-Channel Serial Adapter" },
+ { 0x6789, "Roalan/NeoTecH MS/4C 4-Channel Serial Adapter" },
+ { 0x678B, "NeoTecH Dual RS-232 Async. Adapter" },
+ { 0x678C, "NeoTecH S2M100 Dual RS-232 Async. Adapter" },
+ { 0x678D, "NeoTecH MSP/4 4-Channel Serial/Parallel Adapter" },
+ { 0x678F, "BBS GPIB-3000 IEEE-488 Adapter" },
+ { 0x6792, "NeoTecH SPM121/SPM321 Serial/Parallel Adapter" },
+ { 0x6795, "NeoTecH S1M200 Single RS-422/485 Async. Adapter" },
+ { 0x6796, "NeoTecH PM101 Single Bidirectional Parallel Adapter" },
+ { 0x6797, "NeoTecH PM102 Dual Bidirectional Parallel Adapter" },
+ { 0x67E1, "NCR 8-Port Serial Controller/MC" },
+ { 0x68FF, "RM Z-Net LAN Controller" },
+ { 0x6A14, "NCR WaveLAN Adapter" },
+ { 0x6A21, "Microeye 1 C Mk2 Video Digitiser" },
+ { 0x6A22, "RM Ethernet-MC/2 Adapter" },
+ { 0x6A40, "Microeye Picturebook Adapter" },
+ { 0x6A5C, "Specialix RIO Communications Adapter" },
+ { 0x6A7B, "Tueplan Dual Channel Parallel Adapter" },
+ { 0x6A7F, "RM M-Series BBC I/O Adapter" },
+ { 0x6A8D, "Quattro PS Modem" },
+ { 0x6AB4, "Mayze Syncro 24PS V.26bis Modem" },
+ { 0x6AB5, "Mayze Syncro 48PS V.27ter Modem" },
+ { 0x6ABF, "RM Ethernet MC Adapter" },
+ { 0x6AE7, "Dacom Unity Gold+/2 Modem" },
+ { 0x6AFB, "Miracom Keycard/PS Modem" },
+ { 0x6B76, "Network Designers Garnet 2 Adapter" },
+ { 0x6B80, "DataFlex Chameleo Modem" },
+ { 0x6B95, "CORE ESDI Fixed Disk Adapter" },
+ { 0x6B9B, "Specialix Multi-port Serial Adapter" },
+ { 0x6B9C, "HWF-MC2 Serial Communications Adapter" },
+ { 0x6B9D, "SoftWare Forge SWF-MC1 X.25 Adapter" },
+ { 0x6BBA, "Apricot On-board Ethernet Adapter" },
+ { 0x6BBB, "Barr Synchronous Communications Adapter" },
+ { 0x6BBC, "Apricot Synchronous Communications Adapter" },
+ { 0x6BCB, "CONNECT ARCnet Adapter" },
+ { 0x6BE7, "Symicron dtsx12 Token Ring Adapter" },
+ { 0x6BFF, "Torus Ethernet Adapter/MC" },
+ { 0x6C0F, "Roland MIDI Processing Unit MPU-IMC" },
+ { 0x6DAC, "Logitech ScanMan Adapter" },
+ { 0x6DD4, "FasTalk 2/V.32/42b" },
+ { 0x6DD5, "UDS Sync-Up 2/V.32/42b" },
+ { 0x6DD6, "UDS Sync-Up 2/201" },
+ { 0x6DD7, "UDS Sync-Up 2/V.26" },
+ { 0x6DE0, "UDS Sync-Up 2/V.32" },
+ { 0x6DE1, "UDS Sync-Up 2/T9628B" },
+ { 0x6DE2, "FasTalk 2/V.32" },
+ { 0x6DE3, "FasTalk 2/2400" },
+ { 0x6DE4, "UDS FasTalk 2/1200" },
+ { 0x6DE5, "UDS Sync-Up 2/V.22bis" },
+ { 0x6DE6, "UDS Sync-Up 2/201/212" },
+ { 0x6DE7, "UDS Sync-Up 2/208/201" },
+ { 0x6DEF, "DEC DE210 (DEMCA) Ethernet Adapter" },
+ { 0x6E6C, "IBM Audio Capture & Playback Adapter/A" },
+ { 0x6E78, "DCA IRMA 2-MCA Adapter" },
+ { 0x6E79, "DCA IRMA 3 3270 Adapter" },
+ { 0x6E7C, "DCA Intelligent Comm Adapter" },
+ { 0x6EE7, "IMC PCnic II Ethernet Adapter" },
+ { 0x6EEE, "UDS Sync-Up 2/Multi-Protocol Adapter" },
+ { 0x6EF8, "IRMA 3t 3270 Coax Adapter" },
+ { 0x6F01, "Hayes Smartmodem 2400P" },
+ { 0x6F57, "Octocom OSI8224APS Modem" },
+ { 0x6F77, "Lantana Tamarix/2 Ethernet Adapter" },
+ { 0x6FB6, "Canmax DLC 01 Serial Comms Adapter" },
+ { 0x6FBF, "Natural MicroSystems WATSON" },
+ { 0x6FC0, "WD 8003E/A Ethernet Adapter" },
+ { 0x6FC1, "WD 8003ST/A Starlan Adapter" },
+ { 0x6FC2, "WD 8003W/A Ethernet Adapter" },
+ { 0x6FE4, "DigiBoard PS-COM/16" },
+ { 0x6FE5, "DigiBoard PS-COM/8" },
+ { 0x6FE6, "DigiBoard PS-COM/4" },
+ { 0x6FE9, "DigiBoard Open-Ender" },
+ { 0x6FEA, "DigiBoard Open-Ender RS422" },
+ { 0x6FEC, "DigiCHANNEL MC C/X Adapter" },
+ { 0x6FF0, "Arnet Multiport/2 Communications Adapter" },
+ { 0x7000, "AST Advantage/2" },
+ { 0x7001, "AST Advantage/2 w/ Dual Serial Port" },
+ { 0x7002, "AST Advantage/2 w/ Serial & Parallel Port" },
+ { 0x7007, "HyperRAM MC 32/16 Memory Expansion" },
+ { 0x7010, "Tecmar MicroRAM 386 Multifunction Board" },
+ { 0x7011, "Tecmar MicroRAM Multifunction Board" },
+ { 0x7012, "Net/One NIUps LAN Adapter" },
+ { 0x7020, "Cumulus 2Mb Memory Multifunction Adapter" },
+ { 0x7021, "Cumulus 4Mb Memory Multifunction Adapter" },
+ { 0x7022, "Cumulus 8Mb Memory Multifunction Adapter" },
+ { 0x7024, "InterQuadram QuadMEG PS8 Extended Memory/Adapter" },
+ { 0x7026, "Cumulus 2400 Baud Internal Modem" },
+ { 0x7046, "Alloy IMP8/PS Adapter" },
+ { 0x7047, "Alloy IMP2/PS Adapter" },
+ { 0x7048, "Excelogic Micromem" },
+ { 0x7049, "Micron Beyond 50/60 Memory Expansion" },
+ { 0x704E, "Video Capture Adapter/A" },
+ { 0x704F, "NCR MPCA/MC Adapter" },
+ { 0x7050, "AST RampagePlus/MC Memory Expansion" },
+ { 0x7064, "AW RCP Adapter" },
+ { 0x706F, "Aox MicroMASTER 386" },
+ { 0x707D, "Corollary 8x4mc" },
+ { 0x707E, "Irwin 4100MC Controller" },
+ { 0x708E, "Kingston KTM-8000/286 Memory Expansion" },
+ { 0x708F, "Kingston KTM-8000/386 Memory Expansion" },
+ { 0x70B0, "Intel AboveBoard MC32" },
+ { 0x70D0, "Kingston KTM-16000/386 Memory Expansion" },
+ { 0x70D4, "Kingston KTM-609/16 Memory Expansion" },
+ { 0x7151, "Novell NE/2-32 Ethernet Adapter" },
+ { 0x7154, "Novell NE/2 Ethernet Adapter" },
+ { 0x7188, "Mountain QIC-02 Tape Adapter" },
+ { 0x71D4, "Kingston DataCard 16 Adapter" },
+ { 0x72F3, "HyperRAM MC 32/16 SIMM-MF Memory Expansion" },
+ { 0x7411, "Quadboard PS/Q Multifunction Adapter" },
+ { 0x7422, "Quadboard PS/Q Multifunction Adapter" },
+ { 0x7520, "ALR MicroChannel AT Embedded Adapter" },
+ { 0x7522, "ALR MicroChannel AT Embedded Adapter" },
+ { 0x76DA, "Quadmeg PS/Q Memory Adapter" },
+ { 0x76DE, "Quadmeg PS/Q Memory Adapter" },
+ { 0x7788, "Intel AboveBoard 2 Plus" },
+ { 0x77FB, "Everex EV-136 4Mb Memory Expansion" },
+ { 0x77FF, "Alloy HI-2 PC Expansion Bus Interface" },
+ { 0x7A7A, "Boca BOCARAM/2 PLUS Memory Expansion" },
+ { 0x7D7F, "Orchid RAMQuest Extra 16/32" },
+ { 0x7E76, "Overland XL/2 9-Track Tape Coupler" },
+ { 0x7F4C, "NCR 53C94 SCSI Host Adapter" },
+ { 0x7F4D, "NCR 3421 SCSI Host Adapter" },
+ { 0x7F4E, "NCR SCSI Host Adapter" },
+ { 0x7F4F, "NCR SCSI Host Adapter" },
+ { 0x7F99, "DigiCHANNEL MC/4i or MC/8i" },
+ { 0x7FBE, "FTG PXL-480 Hi-Res Lightpen Adapter" },
+ { 0x7FCE, "Connect Tech Intellicon MC8 (Canmax CS-6060MCA)" },
+ { 0x7FD5, "NCI 4700 PCI/MC" },
+ { 0x7FE9, "DigiBoard Open-Ender DOS" },
+ { 0x7FEA, "DigiBoard MC/Xi DOS RS422" },
+ { 0x7FF9, "Iomega PC4 SCSI Host Adapter" },
+ { 0x7FFA, "Iomega PC4B-50 SCSI Host Adapter" },
+ { 0x8002, "Ahead VGA Enhancer-Z Rev. A" },
+ { 0x8009, "Vermont COBRA/2" },
+ { 0x800D, "Pixelworks PS/2 Ultra Clipper Graphics Subsystem" },
+ { 0x8010, "Microeye 1C Video Digitiser" },
+ { 0x8016, "ETAP NEFTIS/20 or ATRIS/20 Display Adapter" },
+ { 0x803F, "RM High Resolution Mono Display Adapter" },
+ { 0x8044, "Paradise 8514/A Plus Video Adapter" },
+ { 0x8057, "Digithurst Video Output" },
+ { 0x8088, "ATI 8514/Ultra Display Adapter" },
+ { 0x8089, "ATI Graphics Ultra MCA Video Accelerator" },
+ { 0x80A5, "Cornerstone SinglePage XL Display" },
+ { 0x80B3, "M-Motion Video Adapter/A" },
+ { 0x80C3, "Artist XJS MC" },
+ { 0x80E6, "RasterOps ColorBoard 1024MC" },
+ { 0x80E8, "Matrox MG-104/108-M Video Adapter" },
+ { 0x80EC, "Matrox MGA Video Adapter" },
+ { 0x80F6, "RasterOps ColorBoard 1024MC" },
+ { 0x812E, "NCR 3350/3355 HPG Video Adapter (w/o ROM)" },
+ { 0x8202, "Ahead VGA Enhancer-Z Rev. A" },
+ { 0x8EF8, "IBM Expansion Unit SCSI Adapter" },
+ { 0x8EFC, "IBM Fast SCSI-2 Adapter" },
+ { 0x8EFD, "IBM 7568 SCSI Adapter w/cache" },
+ { 0x8EFE, "IBM SCSI Adapter" },
+ { 0x8EFF, "IBM SCSI Adapter w/cache" },
+ { 0x8FA0, "IBM LANStreamer MC 32 Adapter" },
+ { 0x8FC8, "IBM Token Ring 16/4 Busmaster Server Adapter/A" },
+ { 0x8FD6, "IBM Audiovation Adapter" },
+ { 0x8FD8, "IBM XGA/XGA-2 Display Adapter" },
+ { 0x8FD9, "IBM XGA/XGA-2 Display Adapter" },
+ { 0x8FDA, "IBM XGA/XGA-2 Display Adapter" },
+ { 0x8FDB, "IBM XGA/XGA-2 Display Adapter" },
+ { 0xDDFF, "IBM ESDI Fixed Disk Controller" },
+ { 0xDEFF, "IBM Multi-Protocol Communications Adapter" },
+ { 0xDF7F, "IBM 3363 Optical Disk Adapter" },
+ { 0xDF9F, "IBM Integ. ESDI Fixed Disk & Controller" },
+ { 0xDFBF, "IBM 6157 Streaming Tape Adapter" },
+ { 0xDFFA, "IBM 5.25in Diskette Adapter/A" },
+ { 0xDFFD, "IBM ST506 Fixed Disk Adapter" },
+ { 0xE000, "IBM Token Ring Adapter/A" },
+ { 0xE001, "IBM Token Ring 16/4 Adapter/A" },
+ { 0xE016, "IBM 300/1200/2400 Internal Modem/A" },
+ { 0xE04E, "IBM High Speed Adapter/A" },
+ { 0xE04F, "IBM 3119 Adapter/A" },
+ { 0xE1FF, "IBM 3270 Connection Version B" },
+ { 0xE7FF, "IBM 3270 Connection Version A" },
+ { 0xE9FF, "IBM Expansion Unit Model 002" },
+ { 0xEDFF, "IBM Internal Modem" },
+ { 0xEEBB, "Miracom OEM Modem" },
+ { 0xEEE7, "IBM Serial Port 2" },
+ { 0xEEFF, "IBM Dual Async Adapter" },
+ { 0xEF7F, "IBM 8514/A Display Adapter" },
+ { 0xEFCF, "IBM Store Loop Adapter/A" },
+ { 0xEFD4, "IBM Ethernet Adapter/A (10base2)" },
+ { 0xEFD5, "IBM Ethernet Adapter/A (10baseT)" },
+ { 0xEFDC, "Intel DS2 Adapter" },
+ { 0xEFDF, "ARCnet ASTER/2 Adapter" },
+ { 0xEFE5, "IBM Ethernet Adapter/A" },
+ { 0xEFEF, "IBM PC Network Adapter" },
+ { 0xEFF0, "IBM Realtime I/f Co-proc. Multiport/2 or X.25/2" },
+ { 0xEFF5, "UB NIC-PS/2 Ethernet Adapter" },
+ { 0xEFF6, "IBM PagePrinter Adapter/2" },
+ { 0xEFFD, "IBM VGA Adapter" },
+ { 0xF04F, "IBM 3117 Scanner Adapter/A" },
+ { 0xF7F7, "IBM 2-8Mb 80286 Memory Expansion" },
+ { 0xF7FE, "IBM Expanded Memory" },
+ { 0xFAFF, "IBM 32-bit Memory Expansion" },
+ { 0xFCFF, "IBM Memory Expansion" },
+ { 0xFDDE, "IBM Enhanced 80386 Memory Expansion w/ROM" },
+ { 0xFDDF, "IBM Enhanced 80386 Memory Expansion" },
+ { 0xFEFE, "IBM 2Mb 16-bit Memory Adapter" },
+ { 0xFFF8, "IBM 5250 Workstation Emulation Adapter" },
+ { 0, NULL, }
+};
diff --git a/sys/dev/mca/mcareg.h b/sys/dev/mca/mcareg.h
new file mode 100644
index 00000000000..ec6984026dc
--- /dev/null
+++ b/sys/dev/mca/mcareg.h
@@ -0,0 +1,55 @@
+/* $NetBSD: mcareg.h,v 1.1 2000/05/11 15:42:06 jdolecek Exp $ */
+
+/*-
+ * Copyright (c) 2000 The NetBSD Foundation, Inc.
+ * Copyright (c) 1996-1999 Scott D. Telford.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Scott Telford <s.telford@ed.ac.uk>.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the NetBSD
+ * Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _DEV_MCA_MCAREG_H_
+#define _DEV_MCA_MCAREG_H_
+
+/*
+ * Standardized MCA configuration information
+ */
+
+#define MCA_MAX_SLOTS 8 /* max number of slots per bus */
+
+/* POS register bits */
+
+#define MCA_POS2_ENABLE 0x01 /* POS2, hi => adapter enabled */
+#define MCA_POS5_CHCK_STAT 0x40 /* POS5, lo => CHCK status available */
+#define MCA_POS5_CHCK 0x80 /* POS5, lo => adapter CHCK signal */
+
+#endif /* _DEV_MCA_MCAREG_H_ */
diff --git a/sys/dev/mca/mcavar.h b/sys/dev/mca/mcavar.h
new file mode 100644
index 00000000000..90656f1a4e5
--- /dev/null
+++ b/sys/dev/mca/mcavar.h
@@ -0,0 +1,82 @@
+/* $NetBSD: mcavar.h,v 1.1 2000/05/11 15:42:07 jdolecek Exp $ */
+
+/*-
+ * Copyright (c) 2000 The NetBSD Foundation, Inc.
+ * Copyright (c) 1996-1999 Scott D. Telford.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Scott Telford <s.telford@ed.ac.uk>.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the NetBSD
+ * Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _DEV_MCA_MCAVAR_H_
+#define _DEV_MCA_MCAVAR_H_
+
+/*
+ * Definitions for MCA autoconfiguration.
+ *
+ * This file describes types and functions which are used for MCA
+ * configuration. Some of this information is machine-specific, and is
+ * separated into mca_machdep.h.
+ */
+
+#include <machine/bus.h>
+#include <machine/mca_machdep.h>
+
+struct mcabus_attach_args {
+ const char *mba_busname;
+ bus_space_tag_t mba_iot; /* MCA I/O space tag */
+ bus_space_tag_t mba_memt; /* MCA mem space tag */
+ bus_dma_tag_t mba_dmat; /* MCA DMA tag */
+ mca_chipset_tag_t mba_mc; /* currently unused */
+ int mba_bus; /* MCA bus number */
+};
+
+
+struct mca_attach_args {
+ struct device *ma_self; /* pointer to it's device struct */
+ bus_space_tag_t ma_iot; /* MCA I/O space tag */
+ bus_space_tag_t ma_memt; /* MCA mem space tag */
+ bus_dma_tag_t ma_dmat; /* MCA DMA tag */
+ mca_chipset_tag_t ma_mc; /* currently unused */
+
+ int ma_slot; /* MCA slot number */
+ int ma_pos[8]; /* MCA POS register values */
+ int ma_id; /* MCA device ID (POS1 + POS2<<8) */
+};
+
+#define mcacf_slot cf_loc[0]
+#define MCA_UNKNOWN_SLOT -1 /* wildcarded 'slot' */
+
+void mca_devinfo __P((int, char *));
+int mca_issupp __P((int));
+
+#endif /* _DEV_MCA_MCAVAR_H_ */