aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--share/man/man4/aha.44
-rw-r--r--share/man/man4/le.413
-rw-r--r--share/man/man4/man4.i386/ep.42
-rw-r--r--sys/conf/files4
-rw-r--r--sys/conf/files.i3861
-rw-r--r--sys/conf/options1
-rw-r--r--sys/dev/aha/aha_mca.c231
-rw-r--r--sys/dev/buslogic/bt_mca.c341
-rw-r--r--sys/dev/ep/if_ep_mca.c161
-rw-r--r--sys/dev/mca/mca_bus.c533
-rw-r--r--sys/dev/mca/mca_busreg.h84
-rw-r--r--sys/dev/mca/mca_busvar.h70
-rw-r--r--sys/i386/bios/mca_machdep.c160
-rw-r--r--sys/i386/bios/mca_machdep.h31
-rw-r--r--sys/i386/conf/NOTES9
-rw-r--r--sys/x86/isa/atpic.c20
-rw-r--r--sys/x86/isa/clock.c10
-rw-r--r--sys/x86/isa/nmi.c10
-rw-r--r--sys/x86/x86/legacy.c13
-rw-r--r--tools/kerneldoc/subsys/Doxyfile-dev_mca21
20 files changed, 1 insertions, 1718 deletions
diff --git a/share/man/man4/aha.4 b/share/man/man4/aha.4
index f0f8aca23634..b63f5d55d1a9 100644
--- a/share/man/man4/aha.4
+++ b/share/man/man4/aha.4
@@ -74,10 +74,6 @@ locations and attaches to the first unattached card it finds.
The possible
port addresses for this card are 0x330, 0x334, 0x230, 0x234, 0x130, and
0x134.
-.Pp
-The AHA-1640 is an MCA bus card.
-Since the MCA bus is a self-identifying bus, no setting of hints is
-required.
.Sh HARDWARE
The
.Nm
diff --git a/share/man/man4/le.4 b/share/man/man4/le.4
index cd3f0f23ca10..c33e3b8ed49c 100644
--- a/share/man/man4/le.4
+++ b/share/man/man4/le.4
@@ -204,19 +204,6 @@ bus Ethernet adapters.
.\" .It
.\" .Tn DEC DE422
.\" .El
-.\" .Ss MCA
-.\" The
-.\" .Tn MCA
-.\" bus Ethernet cards supported by the
-.\" .Nm
-.\" driver are:
-.\" .Pp
-.\" .Bl -bullet -compact
-.\" .It
-.\" .Tn SKNET Personal MC2
-.\" .It
-.\" .Tn SKNET MC2+
-.\" .El
.Ss PCI
The
.Tn PCI
diff --git a/share/man/man4/man4.i386/ep.4 b/share/man/man4/man4.i386/ep.4
index 0814e8410738..8ff20b3116c8 100644
--- a/share/man/man4/man4.i386/ep.4
+++ b/share/man/man4/man4.i386/ep.4
@@ -95,8 +95,6 @@ driver supports Ethernet adapters based on the
.It
3Com 3C509B-TP, 3C509B-BNC, 3C509B-Combo, 3C509B-TPO, 3C509B-TPC ISA
.It
-3Com 3C529, 3C529-TP MCA
-.It
3Com 3C562/3C563 PCMCIA
.It
3Com 3C574, 3C574TX, 3C574-TX, 3CCFE574BT, 3CXFE574BT, 3C3FE574BT PCMCIA
diff --git a/sys/conf/files b/sys/conf/files
index ddab35a211dd..99565e940d77 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -694,7 +694,6 @@ dev/agp/agp.c optional agp pci
dev/agp/agp_if.m optional agp pci
dev/aha/aha.c optional aha
dev/aha/aha_isa.c optional aha isa
-dev/aha/aha_mca.c optional aha mca
dev/ahb/ahb.c optional ahb eisa
dev/ahci/ahci.c optional ahci
dev/ahci/ahciem.c optional ahci
@@ -1265,7 +1264,6 @@ dev/bnxt/if_bnxt.c optional bnxt iflib pci
dev/buslogic/bt.c optional bt
dev/buslogic/bt_eisa.c optional bt eisa
dev/buslogic/bt_isa.c optional bt isa
-dev/buslogic/bt_mca.c optional bt mca
dev/buslogic/bt_pci.c optional bt pci
dev/bwi/bwimac.c optional bwi
dev/bwi/bwiphy.c optional bwi
@@ -1609,7 +1607,6 @@ dev/en/midway.c optional en
dev/ep/if_ep.c optional ep
dev/ep/if_ep_eisa.c optional ep eisa
dev/ep/if_ep_isa.c optional ep isa
-dev/ep/if_ep_mca.c optional ep mca
dev/ep/if_ep_pccard.c optional ep pccard
dev/esp/esp_pci.c optional esp pci
dev/esp/ncr53c9x.c optional esp
@@ -2176,7 +2173,6 @@ dev/malo/if_malo.c optional malo
dev/malo/if_malohal.c optional malo
dev/malo/if_malo_pci.c optional malo pci
dev/mc146818/mc146818.c optional mc146818
-dev/mca/mca_bus.c optional mca
dev/md/md.c optional md
dev/mdio/mdio_if.m optional miiproxy | mdio
dev/mdio/mdio.c optional miiproxy | mdio
diff --git a/sys/conf/files.i386 b/sys/conf/files.i386
index daebc227f427..177b3ae0c266 100644
--- a/sys/conf/files.i386
+++ b/sys/conf/files.i386
@@ -474,7 +474,6 @@ acpi_wakedata.h optional acpi \
clean "acpi_wakedata.h"
#
i386/bios/apm.c optional apm
-i386/bios/mca_machdep.c optional mca
i386/bios/smapi.c optional smapi
i386/bios/smapi_bios.S optional smapi
i386/cloudabi32/cloudabi32_sysvec.c optional compat_cloudabi32
diff --git a/sys/conf/options b/sys/conf/options
index a857d9a216c8..59dc91bf0c31 100644
--- a/sys/conf/options
+++ b/sys/conf/options
@@ -723,7 +723,6 @@ ISAPNP opt_isa.h
# various 'device presence' options.
DEV_BPF opt_bpf.h
DEV_CARP opt_carp.h
-DEV_MCA opt_mca.h
DEV_NETMAP opt_global.h
DEV_PCI opt_pci.h
DEV_PF opt_pf.h
diff --git a/sys/dev/aha/aha_mca.c b/sys/dev/aha/aha_mca.c
deleted file mode 100644
index b954e07774ad..000000000000
--- a/sys/dev/aha/aha_mca.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/*-
- * Copyright (c) 1999 Matthew N. Dodd <winter@jurai.net>
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- * Based on aha_isa.c
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/lock.h>
-#include <sys/mutex.h>
-
-#include <sys/module.h>
-#include <sys/bus.h>
-#include <machine/bus.h>
-#include <machine/resource.h>
-#include <sys/rman.h>
-
-#include <isa/isavar.h>
-
-#include <dev/mca/mca_busreg.h>
-#include <dev/mca/mca_busvar.h>
-
-#include <dev/aha/ahareg.h>
-
-static struct mca_ident aha_mca_devs[] = {
- { 0x0f1f, "Adaptec AHA-1640 SCSI Adapter" },
- { 0, NULL },
-};
-
-#define AHA_MCA_IOPORT_POS MCA_ADP_POS(MCA_POS1)
-# define AHA_MCA_IOPORT_MASK1 0x07
-# define AHA_MCA_IOPORT_MASK2 0xc0
-# define AHA_MCA_IOPORT_SIZE 0x03
-# define AHA_MCA_IOPORT(pos) (0x30 + \
- (((uint32_t)pos & \
- AHA_MCA_IOPORT_MASK1) << 8) + \
- (((uint32_t)pos & \
- AHA_MCA_IOPORT_MASK2) >> 4))
-
-#define AHA_MCA_DRQ_POS MCA_ADP_POS(MCA_POS3)
-# define AHA_MCA_DRQ_MASK 0x0f
-# define AHA_MCA_DRQ(pos) (pos & AHA_MCA_DRQ_MASK)
-
-#define AHA_MCA_IRQ_POS MCA_ADP_POS(MCA_POS2)
-# define AHA_MCA_IRQ_MASK 0x07
-# define AHA_MCA_IRQ(pos) ((pos & AHA_MCA_IRQ_MASK) + 8)
-
-/*
- * Not needed as the board knows its config
- * internally and the ID will be fetched
- * via AOP_INQUIRE_SETUP_INFO command.
- */
-#define AHA_MCA_SCSIID_POS MCA_ADP_POS(MCA_POS2)
-#define AHA_MCA_SCSIID_MASK 0xe0
-#define AHA_MCA_SCSIID(pos) ((pos & AHA_MCA_SCSIID_MASK) >> 5)
-
-static int
-aha_mca_probe (device_t dev)
-{
- const char * desc;
- mca_id_t id = mca_get_id(dev);
- uint32_t iobase = 0;
- uint32_t iosize = 0;
- uint8_t drq = 0;
- uint8_t irq = 0;
- uint8_t pos;
-
- desc = mca_match_id(id, aha_mca_devs);
- if (!desc)
- return (ENXIO);
- device_set_desc(dev, desc);
-
- pos = mca_pos_read(dev, AHA_MCA_IOPORT_POS);
- iobase = AHA_MCA_IOPORT(pos);
- iosize = AHA_MCA_IOPORT_SIZE;
-
- pos = mca_pos_read(dev, AHA_MCA_DRQ_POS);
- drq = AHA_MCA_DRQ(pos);
-
- pos = mca_pos_read(dev, AHA_MCA_IRQ_POS);
- irq = AHA_MCA_IRQ(pos);
-
- mca_add_iospace(dev, iobase, iosize);
- mca_add_drq(dev, drq);
- mca_add_irq(dev, irq);
-
- return (0);
-}
-
-static int
-aha_mca_attach (device_t dev)
-{
- struct aha_softc * sc = device_get_softc(dev);
- int error = ENOMEM;
-
- sc->portrid = 0;
- sc->port = bus_alloc_resource_any(dev, SYS_RES_IOPORT, &sc->portrid,
- RF_ACTIVE);
- if (sc->port == NULL) {
- device_printf(dev, "No I/O space?!\n");
- goto bad;
- }
-
- sc->irqrid = 0;
- sc->irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &sc->irqrid,
- RF_ACTIVE);
- if (sc->irq == NULL) {
- device_printf(dev, "No IRQ?!\n");
- goto bad;
- }
-
- sc->drqrid = 0;
- sc->drq = bus_alloc_resource_any(dev, SYS_RES_DRQ, &sc->drqrid,
- RF_ACTIVE);
- if (sc->drq == NULL) {
- device_printf(dev, "No DRQ?!\n");
- goto bad;
- }
-
- aha_alloc(sc);
- error = aha_probe(sc);
- if (error) {
- device_printf(dev, "aha_probe() failed!\n");
- goto bad;
- }
-
- error = aha_fetch_adapter_info(sc);
- if (error) {
- device_printf(dev, "aha_fetch_adapter_info() failed!\n");
- goto bad;
- }
-
- isa_dmacascade(rman_get_start(sc->drq));
-
- error = bus_dma_tag_create(
- /* parent */ bus_get_dma_tag(dev),
- /* alignemnt */ 1,
- /* boundary */ 0,
- /* lowaddr */ BUS_SPACE_MAXADDR_24BIT,
- /* highaddr */ BUS_SPACE_MAXADDR,
- /* filter */ NULL,
- /* filterarg */ NULL,
- /* maxsize */ BUS_SPACE_MAXSIZE_24BIT,
- /* nsegments */ ~0,
- /* maxsegsz */ BUS_SPACE_MAXSIZE_24BIT,
- /* flags */ 0,
- /* lockfunc */ NULL,
- /* lockarg */ NULL,
- &sc->parent_dmat);
- if (error) {
- device_printf(dev, "bus_dma_tag_create() failed!\n");
- goto bad;
- }
-
- error = aha_init(sc);
- if (error) {
- device_printf(dev, "aha_init() failed\n");
- goto bad;
- }
-
- error = aha_attach(sc);
- if (error) {
- device_printf(dev, "aha_attach() failed\n");
- goto bad;
- }
-
- error = bus_setup_intr(dev, sc->irq, INTR_TYPE_CAM | INTR_ENTROPY |
- INTR_MPSAFE, NULL, aha_intr, sc, &sc->ih);
- if (error) {
- device_printf(dev, "Unable to register interrupt handler\n");
- aha_detach(sc);
- goto bad;
- }
-
- return (0);
-
-bad:
- aha_free(sc);
- bus_free_resource(dev, SYS_RES_IOPORT, sc->port);
- bus_free_resource(dev, SYS_RES_IRQ, sc->irq);
- bus_free_resource(dev, SYS_RES_DRQ, sc->drq);
- return (error);
-}
-
-static device_method_t aha_mca_methods[] = {
- DEVMETHOD(device_probe, aha_mca_probe),
- DEVMETHOD(device_attach, aha_mca_attach),
-
- { 0, 0 }
-};
-
-static driver_t aha_mca_driver = {
- "aha",
- aha_mca_methods,
- 1,
-/*
- sizeof(struct aha_softc *),
- */
-};
-
-static devclass_t aha_devclass;
-
-DRIVER_MODULE(aha, mca, aha_mca_driver, aha_devclass, 0, 0);
-MODULE_DEPEND(aha, mca, 1, 1, 1);
diff --git a/sys/dev/buslogic/bt_mca.c b/sys/dev/buslogic/bt_mca.c
deleted file mode 100644
index 97800fda1e10..000000000000
--- a/sys/dev/buslogic/bt_mca.c
+++ /dev/null
@@ -1,341 +0,0 @@
-/*-
- * Copyright (c) 1999 Matthew N. Dodd <winter@jurai.net>
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/*
- * Written using the bt_isa/bt_pci code as a reference.
- *
- * Thanks to Andy Farkas <andyf@speednet.com.au> for
- * testing and feedback.
- */
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/lock.h>
-#include <sys/mutex.h>
-
-#include <machine/cpufunc.h>
-#include <machine/md_var.h>
-
-#include <sys/module.h>
-#include <sys/bus.h>
-
-#include <machine/bus.h>
-#include <machine/resource.h>
-#include <sys/rman.h>
-
-#include <dev/mca/mca_busreg.h>
-#include <dev/mca/mca_busvar.h>
-
-#include <isa/isavar.h>
-
-#include <dev/buslogic/btreg.h>
-
-#include <cam/scsi/scsi_all.h>
-
-static struct mca_ident bt_mca_devs[] = {
- { 0x0708, "BusLogic 32 Bit Bus Master MCA-to-SCSI Host Adapter" },
- { 0x0708, "BusTek BT-640A Micro Channel to SCSI Host Adapter" },
- { 0x0708, "Storage Dimensions SDC3211B 32-bit SCSI Host Adapter" },
- { 0x0709, "Storage Dimensions SDC3211F 32-bit FAST SCSI Host Adapter" },
- { 0, NULL },
-};
-
-#define BT_MCA_IOPORT_POS1 MCA_ADP_POS(MCA_POS0)
-#define BT_MCA_IOPORT_POS2 MCA_ADP_POS(MCA_POS1)
-#define BT_MCA_IOPORT_MASK1 0x10
-#define BT_MCA_IOPORT_MASK2 0x03
-#define BT_MCA_IOPORT_SIZE 0x03
-#define BT_MCA_IOPORT(pos) (0x30 + \
- (((u_int32_t)pos &\
- BT_MCA_IOPORT_MASK2) << 8) + \
- (((u_int32_t)pos &\
- BT_MCA_IOPORT_MASK1) >> 2))
-
-#define BT_MCA_IRQ_POS MCA_ADP_POS(MCA_POS0)
-#define BT_MCA_IRQ_MASK 0x0e
-#define BT_MCA_IRQ(pos) (((pos & BT_MCA_IRQ_MASK) >> 1) + 8)
-
-#define BT_MCA_DRQ_POS MCA_ADP_POS(MCA_POS3)
-#define BT_MCA_DRQ_MASK 0x0f
-#define BT_MCA_DRQ(pos) (pos & BT_MCA_DRQ_MASK)
-
-#define BT_MCA_SCSIID_POS MCA_ADP_POS(MCA_POS2)
-#define BT_MCA_SCSIID_MASK 0xe0
-#define BT_MCA_SCSIID(pos) ((pos & BT_MCA_SCSIID_MASK) >> 5)
-
-static bus_dma_filter_t btvlbouncefilter;
-static bus_dmamap_callback_t btmapsensebuffers;
-
-static void
-bt_mca_release_resources (device_t dev)
-{
- struct bt_softc * bt = device_get_softc(dev);
-
- if (bt->port)
- bus_release_resource(dev, SYS_RES_IOPORT, 0, bt->port);
- if (bt->irq)
- bus_release_resource(dev, SYS_RES_IRQ, 0, bt->irq);
- if (bt->drq)
- bus_release_resource(dev, SYS_RES_DRQ, 0, bt->drq);
-
- bt_free_softc(dev);
-}
-
-#define BT_MCA_PROBE 0
-#define BT_MCA_ATTACH 1
-
-static int
-bt_mca_alloc_resources(device_t dev, int mode)
-{
- struct resource * io = NULL;
- struct resource * irq = NULL;
- struct resource * drq = NULL;
- int rid;
-
- rid = 0;
- io = bus_alloc_resource_any(dev, SYS_RES_IOPORT, &rid, RF_ACTIVE);
- if (io == NULL) {
- printf("bt_mca_alloc_resources() failed to allocate IOPORT\n");
- return (ENOMEM);
- }
-
- if (mode == BT_MCA_ATTACH) {
-
- rid = 0;
- irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_ACTIVE);
- if (irq == NULL) {
- printf("bt_mca_alloc_resources() failed to allocate IRQ\n");
- goto bad;
- }
-
- rid = 0;
- drq = bus_alloc_resource_any(dev, SYS_RES_DRQ, &rid, RF_ACTIVE);
- if (drq == NULL) {
- printf("bt_mca_alloc_resources() failed to allocate DRQ\n");
- goto bad;
- }
- }
-
- bt_init_softc(dev, io, irq, drq);
-
- return (0);
-bad:
- bt_mca_release_resources(dev);
- return (ENOMEM);
-}
-
-static int
-bt_mca_probe (device_t dev)
-{
- const char * desc;
- mca_id_t id = mca_get_id(dev);
- struct bt_probe_info info;
- u_int32_t iobase = 0;
- u_int32_t iosize = 0;
- u_int8_t drq = 0;
- u_int8_t irq = 0;
- u_int8_t pos;
- int result;
-
- desc = mca_match_id(id, bt_mca_devs);
- if (!desc)
- return (ENXIO);
- device_set_desc(dev, desc);
-
- pos = (mca_pos_read(dev, BT_MCA_IOPORT_POS1) & BT_MCA_IOPORT_MASK1) |
- (mca_pos_read(dev, BT_MCA_IOPORT_POS2) & BT_MCA_IOPORT_MASK2);
- iobase = BT_MCA_IOPORT(pos);
- iosize = BT_MCA_IOPORT_SIZE;
-
- pos = mca_pos_read(dev, BT_MCA_DRQ_POS);
- drq = BT_MCA_DRQ(pos);
-
- pos = mca_pos_read(dev, BT_MCA_IRQ_POS);
- irq = BT_MCA_IRQ(pos);
-
- bt_mark_probed_iop(iobase);
-
- mca_add_iospace(dev, iobase, iosize);
-
- /* And allocate them */
- bt_mca_alloc_resources(dev, BT_MCA_PROBE);
-
- if (bt_port_probe(dev, &info) != 0) {
- printf("bt_mca_probe: Probe failed for "
- "card at slot %d\n", mca_get_slot(dev) + 1);
- result = ENXIO;
- } else {
- mca_add_drq(dev, drq);
- mca_add_irq(dev, irq);
- result = BUS_PROBE_DEFAULT;
- }
- bt_mca_release_resources(dev);
-
- return (result);
-}
-
-static int
-bt_mca_attach (device_t dev)
-{
- struct bt_softc * bt = device_get_softc(dev);
- int error = 0;
-
- /* Allocate resources */
- if ((error = bt_mca_alloc_resources(dev, BT_MCA_ATTACH))) {
- device_printf(dev, "Unable to allocate resources in bt_mca_attach()\n");
- return (error);
- }
-
- isa_dmacascade(rman_get_start(bt->drq));
-
- /* Allocate a dmatag for our CCB DMA maps */
- if (bus_dma_tag_create( /* parent */ NULL,
- /* alignemnt */ 1,
- /* boundary */ 0,
- /* lowaddr */ BUS_SPACE_MAXADDR_24BIT,
- /* highaddr */ BUS_SPACE_MAXADDR,
- /* filter */ btvlbouncefilter,
- /* filterarg */ bt,
- /* maxsize */ BUS_SPACE_MAXSIZE_32BIT,
- /* nsegments */ ~0,
- /* maxsegsz */ BUS_SPACE_MAXSIZE_32BIT,
- /* flags */ 0,
- /* lockfunc */ NULL,
- /* lockarg */ NULL,
- &bt->parent_dmat) != 0) {
- bt_mca_release_resources(dev);
- return (ENOMEM);
- }
-
- if (bt_init(dev)) {
- bt_mca_release_resources(dev);
- return (ENOMEM);
- }
-
- /* DMA tag for our sense buffers */
- if (bus_dma_tag_create( /* parent */ bt->parent_dmat,
- /* alignment */ 1,
- /* boundary */ 0,
- /* lowaddr */ BUS_SPACE_MAXADDR,
- /* highaddr */ BUS_SPACE_MAXADDR,
- /* filter */ NULL,
- /* filterarg */ NULL,
- /* maxsize */ bt->max_ccbs *
- sizeof(struct scsi_sense_data),
- /* nsegments */ 1,
- /* maxsegsz */ BUS_SPACE_MAXSIZE_32BIT,
- /* flags */ 0,
- /* lockfunc */ NULL,
- /* lockarg */ NULL,
- &bt->sense_dmat) != 0) {
- bt_mca_release_resources(dev);
- return (ENOMEM);
- }
-
- bt->init_level++;
-
- /* Allocation of sense buffers */
- if (bus_dmamem_alloc(bt->sense_dmat,
- (void **)&bt->sense_buffers,
- BUS_DMA_NOWAIT, &bt->sense_dmamap) != 0) {
- bt_mca_release_resources(dev);
- return (ENOMEM);
- }
-
- bt->init_level++;
-
- /* And permanently map them */
- bus_dmamap_load(bt->sense_dmat, bt->sense_dmamap,
- bt->sense_buffers,
- bt->max_ccbs * sizeof(*bt->sense_buffers),
- btmapsensebuffers, bt, /*flags*/0);
-
- bt->init_level++;
-
- if ((error = bt_attach(dev))) {
- bt_mca_release_resources(dev);
- return (error);
- }
-
- return (0);
-}
-
-/*
- * This code should be shared with the ISA
- * stubs as its exactly the same.
- */
-
-#define BIOS_MAP_SIZE (16 * 1024)
-
-static int
-btvlbouncefilter(void *arg, bus_addr_t addr)
-{
- struct bt_softc *bt;
-
- bt = (struct bt_softc *)arg;
-
- addr &= BUS_SPACE_MAXADDR_24BIT;
-
- if (addr == 0
- || (addr >= bt->bios_addr
- && addr < (bt->bios_addr + BIOS_MAP_SIZE)))
- return (1);
- return (0);
-}
-
-static void
-btmapsensebuffers(void *arg, bus_dma_segment_t *segs, int nseg, int error)
-{
- struct bt_softc* bt;
-
- bt = (struct bt_softc*)arg;
- bt->sense_buffers_physbase = segs->ds_addr;
-}
-
-static device_method_t bt_mca_methods[] = {
- /* Device interface */
- DEVMETHOD(device_probe, bt_mca_probe),
- DEVMETHOD(device_attach, bt_mca_attach),
-
- { 0, 0 }
-};
-
-static driver_t bt_mca_driver = {
- "bt",
- bt_mca_methods,
- sizeof(struct bt_softc),
-};
-
-static devclass_t bt_devclass;
-
-DRIVER_MODULE(bt, mca, bt_mca_driver, bt_devclass, 0, 0);
-MODULE_DEPEND(bt, mca, 1, 1, 1);
diff --git a/sys/dev/ep/if_ep_mca.c b/sys/dev/ep/if_ep_mca.c
deleted file mode 100644
index 3a044bfca3c1..000000000000
--- a/sys/dev/ep/if_ep_mca.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/*-
- * Copyright (c) 1999 Matthew N. Dodd <winter@jurai.net>
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/socket.h>
-#include <sys/lock.h>
-#include <sys/module.h>
-#include <sys/mutex.h>
-#include <sys/bus.h>
-
-#include <machine/bus.h>
-#include <machine/resource.h>
-#include <sys/rman.h>
-
-#include <net/if.h>
-#include <net/if_media.h>
-
-#include <dev/mca/mca_busreg.h>
-#include <dev/mca/mca_busvar.h>
-
-#include <dev/ep/if_epreg.h>
-#include <dev/ep/if_epvar.h>
-
-#define EP_MCA_627C 0x627C
-#define EP_MCA_627D 0x627D
-#define EP_MCA_62DB 0x62db
-#define EP_MCA_62F6 0x62f6
-#define EP_MCA_62F7 0x62f7
-
-static struct mca_ident ep_mca_devs[] = {
- {EP_MCA_627C, "3Com 3C529 Network Adapter"},
- {EP_MCA_627D, "3Com 3C529-TP Network Adapter"},
-
- /*
- * These are from the linux 3c509 driver.
- * I have not seen the ADFs for them and have
- * not tested or even seen the hardware.
- * Someone with the ADFs should replace the names with
- * whatever is in the AdapterName field of the ADF.
- * (and fix the media setup for the cards as well.)
- */
- {EP_MCA_62DB, "3Com 3c529 EtherLink III (test mode)"},
- {EP_MCA_62F6, "3Com 3c529 EtherLink III (TP or coax)"},
- {EP_MCA_62F7, "3Com 3c529 EtherLink III (TP)"},
-
- {0, NULL},
-};
-
-#define EP_MCA_IOPORT_POS MCA_ADP_POS(MCA_POS2)
-#define EP_MCA_IOPORT_MASK 0xfc
-#define EP_MCA_IOPORT_SIZE EP_IOSIZE
-#define EP_MCA_IOPORT(pos) ((((uint32_t)pos & EP_MCA_IOPORT_MASK) \
- | 0x02) << 8)
-
-#define EP_MCA_IRQ_POS MCA_ADP_POS(MCA_POS3)
-#define EP_MCA_IRQ_MASK 0x0f
-#define EP_MCA_IRQ(pos) (pos & EP_MCA_IRQ_MASK)
-
-#define EP_MCA_MEDIA_POS MCA_ADP_POS(MCA_POS2)
-#define EP_MCA_MEDIA_MASK 0x03
-#define EP_MCA_MEDIA(pos) (pos & EP_MCA_MEDIA_MASK)
-
-static int
-ep_mca_probe(device_t dev)
-{
- const char *desc;
- uint32_t iobase = 0;
- uint8_t irq = 0;
- uint8_t pos;
-
- desc = mca_match_id(mca_get_id(dev), ep_mca_devs);
- if (!desc)
- return (ENXIO);
- device_set_desc(dev, desc);
-
- pos = mca_pos_read(dev, EP_MCA_IOPORT_POS);
- iobase = EP_MCA_IOPORT(pos);
-
- pos = mca_pos_read(dev, EP_MCA_IRQ_POS);
- irq = EP_MCA_IRQ(pos);
-
- mca_add_iospace(dev, iobase, EP_MCA_IOPORT_SIZE);
- mca_add_irq(dev, irq);
-
- return (0);
-}
-
-static int
-ep_mca_attach(device_t dev)
-{
- struct ep_softc *sc = device_get_softc(dev);
- int error = 0;
-
- if ((error = ep_alloc(dev)))
- goto bad;
- sc->stat = F_ACCESS_32_BITS;
-
- ep_get_media(sc);
-
- GO_WINDOW(sc, 0);
- SET_IRQ(sc, rman_get_start(sc->irq));
-
- if ((error = ep_attach(sc)))
- goto bad;
- if ((error = bus_setup_intr(dev, sc->irq, INTR_TYPE_NET | INTR_MPSAFE, NULL, ep_intr,
- sc, &sc->ep_intrhand))) {
- device_printf(dev, "bus_setup_intr() failed! (%d)\n", error);
- goto bad;
- }
- return (0);
-bad:
- ep_free(dev);
- return (error);
-}
-
-static device_method_t ep_mca_methods[] = {
- /* Device interface */
- DEVMETHOD(device_probe, ep_mca_probe),
- DEVMETHOD(device_attach, ep_mca_attach),
- DEVMETHOD(device_detach, ep_detach),
-
- DEVMETHOD_END
-};
-
-static driver_t ep_mca_driver = {
- "ep",
- ep_mca_methods,
- sizeof(struct ep_softc),
-};
-
-static devclass_t ep_devclass;
-
-DRIVER_MODULE(ep, mca, ep_mca_driver, ep_devclass, 0, 0);
diff --git a/sys/dev/mca/mca_bus.c b/sys/dev/mca/mca_bus.c
deleted file mode 100644
index 2de61da3d455..000000000000
--- a/sys/dev/mca/mca_bus.c
+++ /dev/null
@@ -1,533 +0,0 @@
-/*-
- * Copyright (c) 1999 Matthew N. Dodd <winter@jurai.net>
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/*
- * References:
- * The CMU Mach3 microkernel
- * NetBSD MCA patches by Scott Telford
- * Linux MCA code.
- */
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/queue.h>
-#include <sys/malloc.h>
-#include <sys/kernel.h>
-#include <sys/limits.h>
-#include <sys/module.h>
-#include <sys/bus.h>
-
-#include <machine/bus.h>
-#include <machine/resource.h>
-#include <sys/rman.h>
-
-#include <dev/mca/mca_busreg.h>
-#include <dev/mca/mca_busvar.h>
-
-#include <sys/interrupt.h>
-
-#define MAX_COL 79
-
-static void mca_reg_print (device_t, char *, char *, int *);
-
-struct mca_device {
- struct resource_list rl; /* Resources */
-
- mca_id_t id;
- u_int8_t slot;
- u_int8_t enabled;
- u_int8_t pos[8]; /* Programable Option Select Regs. */
-};
-
-/* Not supposed to use this function! */
-void
-mca_pos_set (device_t dev, u_int8_t reg, u_int8_t data)
-{
- struct mca_device * m_dev = device_get_ivars(dev);
- u_int8_t slot = mca_get_slot(dev);
-
- if ((slot > MCA_MAX_ADAPTERS) || (reg > MCA_POS7))
- return;
-
- /* Disable motherboard setup */
- outb(MCA_MB_SETUP_REG, MCA_MB_SETUP_DIS);
-
- /* Select adapter setup regs */
- outb(MCA_ADAP_SETUP_REG, ((slot & 0x0f) | MCA_ADAP_SET));
-
- /* Write the register */
- outb(MCA_POS_REG(reg), data);
-
- /* Disable adapter setup */
- outb(MCA_ADAP_SETUP_REG, MCA_ADAP_SETUP_DIS);
-
- /* Update the IVAR copy */
- m_dev->pos[reg] = data;
-
- return;
-}
-
-u_int8_t
-mca_pos_get (device_t dev, u_int8_t reg)
-{
- u_int8_t slot = mca_get_slot(dev);
- u_int8_t data = 0;
-
- if ((slot > MCA_MAX_ADAPTERS) || (reg > MCA_POS7))
- return (0);
-
- /* Disable motherboard setup */
- outb(MCA_MB_SETUP_REG, MCA_MB_SETUP_DIS);
-
- switch (slot) {
- case MCA_MB_SCSI_SLOT:
-
- /* Disable adapter setup */
- outb(MCA_ADAP_SETUP_REG, MCA_ADAP_SETUP_DIS);
-
- /* Select motherboard video setup regs */
- outb(MCA_MB_SETUP_REG, MCA_MB_SETUP_SCSI);
-
- /* read the register */
- data = inb(MCA_POS_REG(reg));
-
- /* Disable motherboard setup */
- outb(MCA_MB_SETUP_REG, MCA_MB_SETUP_DIS);
-
- break;
- case MCA_MB_VIDEO_SLOT:
- /* Disable adapter setup */
- outb(MCA_ADAP_SETUP_REG, MCA_ADAP_SETUP_DIS);
-
- /* Select motherboard scsi setup regs */
- outb(MCA_MB_SETUP_REG, MCA_MB_SETUP_VIDEO);
-
- /* read the register */
- data = inb(MCA_POS_REG(reg));
-
- /* Disable motherboard setup */
- outb(MCA_MB_SETUP_REG, MCA_MB_SETUP_DIS);
- break;
- default:
-
- /* Select adapter setup regs */
- outb(MCA_ADAP_SETUP_REG,
- ((slot & 0x0f) | MCA_ADAP_SET));
-
- /* read the register */
- data = inb(MCA_POS_REG(reg));
-
- /* Disable adapter setup */
- outb(MCA_ADAP_SETUP_REG, MCA_ADAP_SETUP_DIS);
- break;
- }
-
- return (data);
-}
-
-const char *
-mca_match_id (u_int16_t id, struct mca_ident *mca_devs)
-{
- struct mca_ident * m = mca_devs;
- while(m->name != NULL) {
- if (id == m->id)
- return (m->name);
- m++;
- }
- return (NULL);
-}
-
-u_int8_t
-mca_pos_read (device_t dev, u_int8_t reg)
-{
- struct mca_device * m_dev = device_get_ivars(dev);
-
- if (reg > MCA_POS7)
- return (0);
-
- return (m_dev->pos[reg]);
-}
-
-void
-mca_add_irq (dev, irq)
- device_t dev;
- int irq;
-{
- struct mca_device * m_dev = device_get_ivars(dev);
- int rid = 0;
-
- while (resource_list_find(&(m_dev->rl), SYS_RES_IRQ, rid)) rid++;
- resource_list_add(&(m_dev->rl), SYS_RES_IRQ, rid, irq, irq, 1);
-
- return;
-}
-
-void
-mca_add_drq (dev, drq)
- device_t dev;
- int drq;
-{
- struct mca_device * m_dev = device_get_ivars(dev);
- int rid = 0;
-
- while (resource_list_find(&(m_dev->rl), SYS_RES_DRQ, rid)) rid++;
- resource_list_add(&(m_dev->rl), SYS_RES_DRQ, rid, drq, drq, 1);
-
- return;
-}
-
-void
-mca_add_mspace (dev, mbase, msize)
- device_t dev;
- u_long mbase;
- u_long msize;
-{
- struct mca_device * m_dev = device_get_ivars(dev);
- int rid = 0;
-
- while (resource_list_find(&(m_dev->rl), SYS_RES_MEMORY, rid)) rid++;
- resource_list_add(&(m_dev->rl), SYS_RES_MEMORY, rid,
- mbase, (mbase + msize), msize);
-
- return;
-}
-
-void
-mca_add_iospace (dev, iobase, iosize)
- device_t dev;
- u_long iobase;
- u_long iosize;
-{
- struct mca_device * m_dev = device_get_ivars(dev);
- int rid = 0;
-
- while (resource_list_find(&(m_dev->rl), SYS_RES_IOPORT, rid)) rid++;
- resource_list_add(&(m_dev->rl), SYS_RES_IOPORT, rid,
- iobase, (iobase + iosize), iosize);
-
- return;
-}
-
-static int
-mca_probe (device_t dev)
-{
- device_t child;
- struct mca_device * m_dev = NULL;
- int devices_found = 0;
- u_int8_t slot;
- u_int8_t reg;
-
- device_set_desc(dev, "MCA bus");
-
- /* Disable adapter setup */
- outb(MCA_ADAP_SETUP_REG, MCA_ADAP_SETUP_DIS);
- /* Disable motherboard setup */
- outb(MCA_MB_SETUP_REG, MCA_MB_SETUP_DIS);
-
- if (bootverbose) {
- printf("POS REG 00 01 02 03 04 05 06 07\n");
- printf("-----------------------------------\n");
- }
-
- for (slot = 0; slot < MCA_MAX_SLOTS; slot++) {
-
- if (!m_dev) {
- m_dev = (struct mca_device *)malloc(sizeof(*m_dev),
- M_DEVBUF, M_NOWAIT);
- if (!m_dev) {
- device_printf(dev, "cannot malloc mca_device");
- break;
- }
- }
- bzero(m_dev, sizeof(*m_dev));
-
- /* Select adapter setup regs */
- outb(MCA_ADAP_SETUP_REG, ((slot & 0x0f) | MCA_ADAP_SET));
-
- /* Read the POS registers */
- for (reg = MCA_POS0; reg <= MCA_POS7; reg++) {
- m_dev->pos[reg] = inb(MCA_POS_REG(reg));
- }
-
- /* Disable adapter setup */
- outb(MCA_ADAP_SETUP_REG, MCA_ADAP_SETUP_DIS);
-
- if (bootverbose) {
- printf("mca slot %d:", slot + 1);
- for (reg = MCA_POS0; reg <= MCA_POS7; reg++) {
- printf(" %02x", m_dev->pos[reg]);
- }
- printf("\n");
- }
-
- m_dev->id = (u_int16_t)m_dev->pos[MCA_POS0] |
- ((u_int16_t)m_dev->pos[MCA_POS1] << 8);
-
- if (m_dev->id == 0xffff) {
- continue;
- }
-
- devices_found++;
-
- m_dev->enabled = (m_dev->pos[MCA_POS2] & MCA_POS2_ENABLE);
- m_dev->slot = slot;
-
- resource_list_init(&(m_dev->rl));
-
- child = device_add_child(dev, NULL, -1);
- device_set_ivars(child, m_dev);
-
- m_dev = NULL;
- }
-
- if (m_dev) {
- free(m_dev, M_DEVBUF);
- }
-
- return (devices_found ? 0 : ENXIO);
-}
-
-static void
-mca_reg_print (dev, string, separator, column)
- device_t dev;
- char * string;
- char * separator;
- int * column;
-{
- int length = strlen(string);
-
- length += (separator ? 2 : 1);
-
- if (((*column) + length) >= MAX_COL) {
- printf("\n");
- (*column) = 0;
- } else if ((*column) != 0) {
- if (separator) {
- printf("%c", *separator);
- (*column)++;
- }
- printf(" ");
- (*column)++;
- }
-
- if ((*column) == 0) {
- (*column) += device_printf(dev, "%s", string);
- } else {
- (*column) += printf("%s", string);
- }
-
- return;
-}
-
-static int
-mca_print_child (device_t dev, device_t child)
-{
- char buf[MAX_COL+1];
- struct mca_device * m_dev = device_get_ivars(child);
- int rid;
- struct resource_list_entry * rle;
- char separator = ',';
- int column = 0;
- int retval = 0;
-
- if (device_get_desc(child)) {
- snprintf(buf, sizeof(buf), "<%s>", device_get_desc(child));
- mca_reg_print(child, buf, NULL, &column);
- }
-
- rid = 0;
- while ((rle = resource_list_find(&(m_dev->rl), SYS_RES_IOPORT, rid++))) {
- if (rle->count == 1) {
- snprintf(buf, sizeof(buf), "%s%jx",
- ((rid == 1) ? "io 0x" : "0x"),
- rle->start);
- } else {
- snprintf(buf, sizeof(buf), "%s%jx-0x%jx",
- ((rid == 1) ? "io 0x" : "0x"),
- rle->start,
- (rle->start + rle->count));
- }
- mca_reg_print(child, buf,
- ((rid == 2) ? &separator : NULL), &column);
- }
-
- rid = 0;
- while ((rle = resource_list_find(&(m_dev->rl), SYS_RES_MEMORY, rid++))) {
- if (rle->count == 1) {
- snprintf(buf, sizeof(buf), "%s%jx",
- ((rid == 1) ? "mem 0x" : "0x"),
- rle->start);
- } else {
- snprintf(buf, sizeof(buf), "%s%jx-0x%jx",
- ((rid == 1) ? "mem 0x" : "0x"),
- rle->start,
- (rle->start + rle->count));
- }
- mca_reg_print(child, buf,
- ((rid == 2) ? &separator : NULL), &column);
- }
-
- rid = 0;
- while ((rle = resource_list_find(&(m_dev->rl), SYS_RES_IRQ, rid++))) {
- snprintf(buf, sizeof(buf), "irq %jd", rle->start);
- mca_reg_print(child, buf,
- ((rid == 1) ? &separator : NULL), &column);
- }
-
- rid = 0;
- while ((rle = resource_list_find(&(m_dev->rl), SYS_RES_DRQ, rid++))) {
- snprintf(buf, sizeof(buf), "drq %jx", rle->start);
- mca_reg_print(child, buf,
- ((rid == 1) ? &separator : NULL), &column);
- }
-
- snprintf(buf, sizeof(buf), "on %s id %04x slot %d\n",
- device_get_nameunit(dev),
- mca_get_id(child), mca_get_slot(child)+1);
- mca_reg_print(child, buf, NULL, &column);
-
- return (retval);
-}
-
-static void
-mca_probe_nomatch (device_t dev, device_t child)
-{
- mca_id_t mca_id = mca_get_id(child);
- u_int8_t slot = mca_get_slot(child);
- u_int8_t enabled = mca_get_enabled(child);
-
- device_printf(dev, "unknown card (id 0x%04x, %s) at slot %d\n",
- mca_id,
- (enabled ? "enabled" : "disabled"),
- slot + 1);
-
- return;
-}
-
-static int
-mca_read_ivar (device_t dev, device_t child, int which, uintptr_t * result)
-{
- struct mca_device * m_dev = device_get_ivars(child);
-
- switch (which) {
- case MCA_IVAR_SLOT:
- *result = m_dev->slot;
- break;
- case MCA_IVAR_ID:
- *result = m_dev->id;
- break;
- case MCA_IVAR_ENABLED:
- *result = m_dev->enabled;
- break;
- default:
- return (ENOENT);
- break;
- }
-
- return (0);
-}
-
-static struct resource *
-mca_alloc_resource (device_t dev, device_t child, int type, int *rid,
- rman_res_t start, rman_res_t end, rman_res_t count, u_int flags)
-{
- struct mca_device * m_dev = device_get_ivars(child);
- struct resource_list_entry * rle;
- int isdefault;
- int passthrough;
-
- isdefault = RMAN_IS_DEFAULT_RANGE(start, end);
- passthrough = (device_get_parent(child) != dev);
-
- if (!passthrough && !isdefault) {
- rle = resource_list_find(&(m_dev->rl), type, *rid);
- if (!rle) {
- resource_list_add(&(m_dev->rl), type, *rid,
- start, end, count);
- }
- }
-
- if (type == SYS_RES_IRQ) {
- flags |= RF_SHAREABLE;
- }
-
- return (resource_list_alloc(&(m_dev->rl), dev, child, type, rid,
- start, end, count, flags));
-}
-
-static struct resource_list *
-mca_get_resource_list (device_t dev, device_t child)
-{
- struct mca_device * m_dev = device_get_ivars(child);
- struct resource_list * rl = &m_dev->rl;
-
- if (!rl)
- return (NULL);
-
- return (rl);
-}
-
-static device_method_t mca_methods[] = {
- /* Device interface */
- DEVMETHOD(device_probe, mca_probe),
- DEVMETHOD(device_attach, bus_generic_attach),
- DEVMETHOD(device_shutdown, bus_generic_shutdown),
- DEVMETHOD(device_suspend, bus_generic_suspend),
- DEVMETHOD(device_resume, bus_generic_resume),
-
- /* Bus interface */
- DEVMETHOD(bus_print_child, mca_print_child),
- DEVMETHOD(bus_probe_nomatch, mca_probe_nomatch),
- DEVMETHOD(bus_read_ivar, mca_read_ivar),
- DEVMETHOD(bus_write_ivar, bus_generic_write_ivar),
- DEVMETHOD(bus_setup_intr, bus_generic_setup_intr),
- DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr),
-
- DEVMETHOD(bus_get_resource_list,mca_get_resource_list),
- DEVMETHOD(bus_alloc_resource, mca_alloc_resource),
- DEVMETHOD(bus_release_resource, bus_generic_rl_release_resource),
- DEVMETHOD(bus_set_resource, bus_generic_rl_set_resource),
- DEVMETHOD(bus_get_resource, bus_generic_rl_get_resource),
- DEVMETHOD(bus_delete_resource, bus_generic_rl_delete_resource),
- DEVMETHOD(bus_activate_resource,bus_generic_activate_resource),
- DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),
-
- DEVMETHOD_END
-};
-
-static driver_t mca_driver = {
- "mca",
- mca_methods,
- 1, /* no softc */
-};
-
-static devclass_t mca_devclass;
-
-DRIVER_MODULE(mca, legacy, mca_driver, mca_devclass, 0, 0);
diff --git a/sys/dev/mca/mca_busreg.h b/sys/dev/mca/mca_busreg.h
deleted file mode 100644
index e818b68b8023..000000000000
--- a/sys/dev/mca/mca_busreg.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*-
- * Copyright (c) 1999 Matthew N. Dodd <winter@jurai.net>
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- * $FreeBSD$
- */
-
-/*
- * Standardized MCA configuration information
- */
-
-#define MCA_MAX_SLOTS 8 /* max number of slots per bus */
-#define MCA_MB_SCSI_SLOT 8
-#define MCA_MB_VIDEO_SLOT 9
-#define MCA_MAX_ADAPTERS 9
-
-/*
- * When an ADF file talks about a POS register
- * its not talking about the same index we are
- * so provide this to convert ADF pos register
- * offsets to our register offsets. (Since
- * to us, POS0 and POS1 are just 2 more registers
- */
-
-#define MCA_ADP_POS(pos) (pos + 2)
-
-#define MCA_POS0 0 /* low byte of board ID */
-#define MCA_POS1 1 /* high byte of board ID */
-#define MCA_POS2 2
-# define MCA_POS2_ENABLE 0x01 /* POS2, hi => adapter enabled */
-#define MCA_POS3 3
-#define MCA_POS4 4
-#define MCA_POS5 5
-# define MCA_POS5_CHCK_STAT 0x40 /* lo => CHCK status available */
-# define MCA_POS5_CHCK 0x80 /* lo => adapter CHCK signal */
-#define MCA_POS6 6 /* low byte of CHCK status */
-#define MCA_POS7 7 /* high byte of CHCK status */
-
-/*
- * MCA register addresses for IBM PS/2
- */
-
-#define MCA_SYS_CTL_A_REG 0x92 /* PS/2 System Control Port A */
-#define MCA_SYS_CTL_B_REG 0x60 /* PS/2 System Control Port B */
-#define MCA_ARB_REG 0x90 /* MCA Arbitration port */
-#define MCA_CSF_REG 0x91 /* MCA Card Select Feedback */
-
-/*
- * 0x96, 0x97 POS Registers
- * 0x100 - 0x107 POS Registers
- */
-
-#define MCA_MB_SETUP_REG 0x94 /* Motherboard setup register */
-# define MCA_MB_SETUP_DIS 0xff /* Disable motherboard setup */
-# define MCA_MB_SETUP_VIDEO 0xdf
-# define MCA_MB_SETUP_SCSI 0xf7 /* Pri. SCSI setup reg */
-# define MCA_MB_SETUP_SCSI_ALT 0xfd /* Alt. SCSI setup reg */
-
-#define MCA_ADAP_SETUP_REG 0x96 /* Adapter setup register */
-# define MCA_ADAP_SETUP_DIS 0x0 /* Disable adapter setup */
-# define MCA_ADAP_SET 0x08 /* Adapter setup mode */
-# define MCA_ADAP_CHR 0x80 /* Adapter channel reset */
-#define MCA_POS_REG(n) (0x100+(n)) /* POS registers 0-7 */
diff --git a/sys/dev/mca/mca_busvar.h b/sys/dev/mca/mca_busvar.h
deleted file mode 100644
index db11d67699f6..000000000000
--- a/sys/dev/mca/mca_busvar.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*-
- * Copyright (c) 1999 Matthew N. Dodd <winter@jurai.net>
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- * $FreeBSD$
- */
-
-typedef u_int16_t mca_id_t;
-
-struct mca_ident {
- mca_id_t id;
- char *name;
-};
-
-const char * mca_match_id (u_int16_t, struct mca_ident *);
-
-/*
- * Simplified accessors for isa devices
- */
-
-enum mca_device_ivars {
- MCA_IVAR_SLOT,
- MCA_IVAR_ID,
- MCA_IVAR_ENABLED,
-};
-
-#define MCA_ACCESSOR(A, B, T) \
- \
-static __inline T mca_get_ ## A(device_t dev) \
-{ \
- uintptr_t v; \
- BUS_READ_IVAR(device_get_parent(dev), dev, MCA_IVAR_ ## B, &v); \
- return (T) v; \
-}
-
-MCA_ACCESSOR(slot, SLOT, int)
-MCA_ACCESSOR(id, ID, mca_id_t)
-MCA_ACCESSOR(enabled, ENABLED, int)
-
-/* don't use these! */
-void mca_pos_set (device_t, u_int8_t, u_int8_t);
-u_int8_t mca_pos_get (device_t, u_int8_t);
-
-u_int8_t mca_pos_read (device_t, u_int8_t);
-
-void mca_add_irq (device_t, int);
-void mca_add_drq (device_t, int);
-void mca_add_iospace (device_t, u_long, u_long);
-void mca_add_mspace (device_t, u_long, u_long);
diff --git a/sys/i386/bios/mca_machdep.c b/sys/i386/bios/mca_machdep.c
deleted file mode 100644
index e511f3ff786c..000000000000
--- a/sys/i386/bios/mca_machdep.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/*-
- * Copyright (c) 1999 Matthew N. Dodd <winter@jurai.net>
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <vm/vm.h>
-#include <vm/vm_param.h>
-#include <vm/pmap.h>
-#include <machine/md_var.h>
-#include <machine/vm86.h>
-#include <machine/pc/bios.h>
-#include <machine/cpufunc.h>
-
-#include <dev/mca/mca_busreg.h>
-#include <i386/bios/mca_machdep.h>
-
-/* Global MCA bus flag */
-int MCA_system = 0;
-
-/* System Configuration Block */
-struct sys_config {
- u_int16_t count;
- u_int8_t model;
- u_int8_t submodel;
- u_int8_t bios_rev;
- u_int8_t feature;
-#define FEATURE_MCAISA 0x01 /* Machine contains both MCA and ISA bus*/
-#define FEATURE_MCABUS 0x02 /* MicroChannel Architecture */
-#define FEATURE_EBDA 0x04 /* Extended BIOS data area allocated */
-#define FEATURE_WAITEV 0x08 /* Wait for external event is supported */
-#define FEATURE_KBDINT 0x10 /* Keyboard intercept called by Int 09h */
-#define FEATURE_RTC 0x20 /* Real-time clock present */
-#define FEATURE_IC2 0x40 /* Second interrupt chip present */
-#define FEATURE_DMA3 0x80 /* DMA channel 3 used by hard disk BIOS */
- u_int8_t pad[3];
-} __packed;
-
-/* Function Prototypes */
-static void bios_mcabus_present (void *);
-SYSINIT(mca_present, SI_SUB_CPU, SI_ORDER_ANY, bios_mcabus_present, NULL);
-
-/* Functions */
-static void
-bios_mcabus_present(void * dummy)
-{
- struct vm86frame vmf;
- struct sys_config * scp;
- vm_offset_t paddr;
-
- bzero(&vmf, sizeof(struct vm86frame));
-
- vmf.vmf_ah = 0xc0;
- if (vm86_intcall(0x15, &vmf)) {
- if (bootverbose) {
- printf("BIOS SDT: INT call failed.\n");
- }
- return;
- }
-
- if ((vmf.vmf_ah != 0) && (vmf.vmf_flags & 0x01)) {
- if (bootverbose) {
- printf("BIOS SDT: Not supported. Not PS/2?\n");
- printf("BIOS SDT: AH 0x%02x, Flags 0x%04x\n",
- vmf.vmf_ah, vmf.vmf_flags);
- }
- return;
- }
-
- paddr = vmf.vmf_es;
- paddr = (paddr << 4) + vmf.vmf_bx;
- scp = (struct sys_config *)BIOS_PADDRTOVADDR(paddr);
-
- if (bootverbose) {
- printf("BIOS SDT: model 0x%02x, submodel 0x%02x, bios_rev 0x%02x\n",
- scp->model, scp->submodel, scp->bios_rev);
- printf("BIOS SDT: features 0x%b\n", scp->feature,
- "\20"
- "\01MCA+ISA"
- "\02MCA"
- "\03EBDA"
- "\04WAITEV"
- "\05KBDINT"
- "\06RTC"
- "\07IC2"
- "\08DMA3"
- "\n");
- }
-
- MCA_system = ((scp->feature & FEATURE_MCABUS) ? 1 : 0);
-
- if (MCA_system)
- printf("MicroChannel Architecture System detected.\n");
-
- return;
-}
-
-int
-mca_bus_nmi (void)
-{
- int slot;
- int retval = 0;
- int pos5 = 0;
-
- /* Disable motherboard setup */
- outb(MCA_MB_SETUP_REG, MCA_MB_SETUP_DIS);
-
- /* For each slot */
- for (slot = 0; slot < MCA_MAX_SLOTS; slot++) {
-
- /* Select the slot */
- outb(MCA_ADAP_SETUP_REG, slot | MCA_ADAP_SET);
- pos5 = inb(MCA_POS_REG(MCA_POS5));
-
- /* If Adapter Check is low */
- if ((pos5 & MCA_POS5_CHCK) == 0) {
- retval++;
-
- /* If Adapter Check Status is available */
- if ((pos5 & MCA_POS5_CHCK_STAT) == 0) {
- printf("MCA NMI: slot %d, POS6=0x%02x, POS7=0x%02x\n",
- slot+1,
- inb( MCA_POS_REG(MCA_POS6) ),
- inb( MCA_POS_REG(MCA_POS7) ));
- } else {
- printf("MCA NMI: slot %d\n", slot+1);
- }
- }
- /* Disable adapter setup */
- outb(MCA_ADAP_SETUP_REG, MCA_ADAP_SETUP_DIS);
- }
-
- return (retval);
-}
diff --git a/sys/i386/bios/mca_machdep.h b/sys/i386/bios/mca_machdep.h
deleted file mode 100644
index c639b5b74044..000000000000
--- a/sys/i386/bios/mca_machdep.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*-
- * Copyright (c) 1999 Matthew N. Dodd <winter@jurai.net>
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- * $FreeBSD$
- */
-
-extern int MCA_system;
-
-extern int mca_bus_nmi (void);
diff --git a/sys/i386/conf/NOTES b/sys/i386/conf/NOTES
index ff2495d1e4c7..1c5e876d19b2 100644
--- a/sys/i386/conf/NOTES
+++ b/sys/i386/conf/NOTES
@@ -353,15 +353,6 @@ device eisa
options EISA_SLOTS=12
#
-# MCA bus:
-#
-# The MCA bus device is `mca'. It provides auto-detection and
-# configuration support for all devices on the MCA bus.
-# No hints are required for MCA.
-
-device mca
-
-#
# AGP GART support
device agp
diff --git a/sys/x86/isa/atpic.c b/sys/x86/isa/atpic.c
index fc1d2dcdd391..ea8c3e2786a6 100644
--- a/sys/x86/isa/atpic.c
+++ b/sys/x86/isa/atpic.c
@@ -33,7 +33,6 @@ __FBSDID("$FreeBSD$");
#include "opt_auto_eoi.h"
#include "opt_isa.h"
-#include "opt_mca.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -54,9 +53,6 @@ __FBSDID("$FreeBSD$");
#include <x86/isa/icu.h>
#include <isa/isareg.h>
#include <isa/isavar.h>
-#ifdef DEV_MCA
-#include <i386/bios/mca_machdep.h>
-#endif
#ifdef __amd64__
#define SDT_ATPIC SDT_SYSIGT
@@ -356,13 +352,7 @@ i8259_init(struct atpic *pic, int slave)
/* Reset the PIC and program with next four bytes. */
spinlock_enter();
-#ifdef DEV_MCA
- /* MCA uses level triggered interrupts. */
- if (MCA_system)
- outb(pic->at_ioaddr, ICW1_RESET | ICW1_IC4 | ICW1_LTIM);
- else
-#endif
- outb(pic->at_ioaddr, ICW1_RESET | ICW1_IC4);
+ outb(pic->at_ioaddr, ICW1_RESET | ICW1_IC4);
imr_addr = pic->at_ioaddr + ICU_IMR_OFFSET;
/* Start vector. */
@@ -419,14 +409,6 @@ atpic_startup(void)
ai->at_irq, ai->at_intr, SDT_ATPIC, SEL_KPL, GSEL_ATPIC);
}
-#ifdef DEV_MCA
- /* For MCA systems, all interrupts are level triggered. */
- if (MCA_system)
- for (i = 0, ai = atintrs; i < NUM_ISA_IRQS; i++, ai++)
- ai->at_trigger = INTR_TRIGGER_LEVEL;
- else
-#endif
-
/*
* Look for an ELCR. If we find one, update the trigger modes.
* If we don't find one, assume that IRQs 0, 1, 2, and 13 are
diff --git a/sys/x86/isa/clock.c b/sys/x86/isa/clock.c
index 778481fb73c9..039dda1f1a3d 100644
--- a/sys/x86/isa/clock.c
+++ b/sys/x86/isa/clock.c
@@ -42,7 +42,6 @@ __FBSDID("$FreeBSD$");
#include "opt_clock.h"
#include "opt_isa.h"
-#include "opt_mca.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -73,10 +72,6 @@ __FBSDID("$FreeBSD$");
#include <isa/isavar.h>
#endif
-#ifdef DEV_MCA
-#include <i386/bios/mca_machdep.h>
-#endif
-
int clkintr_pending;
#ifndef TIMER_FREQ
#define TIMER_FREQ 1193182
@@ -153,11 +148,6 @@ clkintr(void *arg)
if (sc->et.et_active && sc->mode != MODE_STOP)
sc->et.et_event_cb(&sc->et, sc->et.et_arg);
-#ifdef DEV_MCA
- /* Reset clock interrupt by asserting bit 7 of port 0x61 */
- if (MCA_system)
- outb(0x61, inb(0x61) | 0x80);
-#endif
return (FILTER_HANDLED);
}
diff --git a/sys/x86/isa/nmi.c b/sys/x86/isa/nmi.c
index db5550c63423..fd6943029a51 100644
--- a/sys/x86/isa/nmi.c
+++ b/sys/x86/isa/nmi.c
@@ -35,18 +35,12 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include "opt_mca.h"
-
#include <sys/types.h>
#include <sys/syslog.h>
#include <sys/systm.h>
#include <machine/md_var.h>
-#ifdef DEV_MCA
-#include <i386/bios/mca_machdep.h>
-#endif
-
#define NMI_PARITY (1 << 7)
#define NMI_IOCHAN (1 << 6)
#define ENMI_WATCHDOG (1 << 7)
@@ -65,10 +59,6 @@ isa_nmi(int cd)
int eisa_port = inb(0x461);
log(LOG_CRIT, "NMI ISA %x, EISA %x\n", isa_port, eisa_port);
-#ifdef DEV_MCA
- if (MCA_system && mca_bus_nmi())
- return(0);
-#endif
if (isa_port & NMI_PARITY) {
log(LOG_CRIT, "RAM parity error, likely hardware failure.");
diff --git a/sys/x86/x86/legacy.c b/sys/x86/x86/legacy.c
index e7a101fe06b5..6450fe0d80af 100644
--- a/sys/x86/x86/legacy.c
+++ b/sys/x86/x86/legacy.c
@@ -29,7 +29,6 @@
#ifdef __i386__
#include "opt_eisa.h"
-#include "opt_mca.h"
#endif
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
@@ -51,10 +50,6 @@ __FBSDID("$FreeBSD$");
#include <sys/rman.h>
#include <sys/smp.h>
-#ifdef DEV_MCA
-#include <i386/bios/mca_machdep.h>
-#endif
-
#include <machine/clock.h>
#include <machine/resource.h>
#include <x86/legacyvar.h>
@@ -144,14 +139,6 @@ legacy_attach(device_t dev)
device_probe_and_attach(child);
}
#endif
-#ifdef DEV_MCA
- if (MCA_system && !devclass_get_device(devclass_find("mca"), 0)) {
- child = BUS_ADD_CHILD(dev, 0, "mca", 0);
- if (child == 0)
- panic("legacy_probe mca");
- device_probe_and_attach(child);
- }
-#endif
if (!devclass_get_device(devclass_find("isa"), 0)) {
child = BUS_ADD_CHILD(dev, 0, "isa", 0);
if (child == NULL)
diff --git a/tools/kerneldoc/subsys/Doxyfile-dev_mca b/tools/kerneldoc/subsys/Doxyfile-dev_mca
deleted file mode 100644
index 732ab4b12cf4..000000000000
--- a/tools/kerneldoc/subsys/Doxyfile-dev_mca
+++ /dev/null
@@ -1,21 +0,0 @@
-# Doxyfile 1.5.2
-
-# $FreeBSD$
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME = "FreeBSD kernel MCA device code"
-OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/dev_mca/
-EXTRACT_ALL = YES # for undocumented src, no warnings enabled
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT = $(DOXYGEN_SRC_PATH)/dev/mca/ \
- $(NOTREVIEWED)
-
-GENERATE_TAGFILE = dev_mca/dev_mca.tag
-
-@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH)
-@INCLUDE = common-Doxyfile
-