diff options
| author | jdolecek <jdolecek@NetBSD.org> | 2000-05-11 15:42:00 +0000 |
|---|---|---|
| committer | jdolecek <jdolecek@NetBSD.org> | 2000-05-11 15:42:00 +0000 |
| commit | 2185bcc386e6e29032ccfa2d3606dcd26dbe2c50 (patch) | |
| tree | f9965c54d715df6572a037f8c6487f9123605c08 /sys/dev/mca | |
| parent | 2d2ad4f3e865d2eb356eedf8edee79226fb5e7aa (diff) | |
MI part of MicroChannel Architecture bus support
This work is based on code written by Scott D. Telford, the IBM
Token Ring card attachment was written by Gregory McGarry.
XXX this is still very experimental and development version; use at your
XXX own risk
Diffstat (limited to 'sys/dev/mca')
| -rw-r--r-- | sys/dev/mca/LINKS | 2 | ||||
| -rw-r--r-- | sys/dev/mca/Makefile.mcadevs | 15 | ||||
| -rw-r--r-- | sys/dev/mca/TODO | 15 | ||||
| -rw-r--r-- | sys/dev/mca/aha_mca.c | 150 | ||||
| -rw-r--r-- | sys/dev/mca/devlist2h.awk | 113 | ||||
| -rw-r--r-- | sys/dev/mca/files.mca | 33 | ||||
| -rw-r--r-- | sys/dev/mca/if_tr_mca.c | 212 | ||||
| -rw-r--r-- | sys/dev/mca/mca.c | 168 | ||||
| -rw-r--r-- | sys/dev/mca/mca_subr.c | 107 | ||||
| -rw-r--r-- | sys/dev/mca/mcadevs | 374 | ||||
| -rw-r--r-- | sys/dev/mca/mcadevs.h | 42 | ||||
| -rw-r--r-- | sys/dev/mca/mcadevs_data.h | 358 | ||||
| -rw-r--r-- | sys/dev/mca/mcareg.h | 55 | ||||
| -rw-r--r-- | sys/dev/mca/mcavar.h | 82 |
14 files changed, 1726 insertions, 0 deletions
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_ */ |
