From bcb3c3b5eb55eb4418bb18e171fa1861f48afac3 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Thu, 16 Feb 2017 21:57:13 +0000 Subject: [PATCH] Remove EISA support from dpt. Remove known EISA models from dpt.4. Remove EISA-only bits from dpt_scsi.c. --- share/man/man4/dpt.4 | 9 +- sys/conf/files | 1 - sys/dev/dpt/dpt.h | 27 +---- sys/dev/dpt/dpt_eisa.c | 211 --------------------------------------- sys/dev/dpt/dpt_scsi.c | 116 +-------------------- sys/modules/dpt/Makefile | 4 +- 6 files changed, 7 insertions(+), 361 deletions(-) delete mode 100644 sys/dev/dpt/dpt_eisa.c diff --git a/share/man/man4/dpt.4 b/share/man/man4/dpt.4 index eddba6cc4e7..c687d185c01 100644 --- a/share/man/man4/dpt.4 +++ b/share/man/man4/dpt.4 @@ -37,9 +37,6 @@ kernel configuration file: .Cd "device scbus" .Cd "device dpt" .Pp -For one or more EISA cards: -.Cd "device eisa" -.Pp For one or more PCI cards: .Cd "device pci" .Pp @@ -78,15 +75,15 @@ driver provides support for the following RAID adapters: .It DPT Smart Cache Plus .It -Smart Cache II (PM2?2?, PM2022 [EISA], PM2024/PM2124 [PCI]) (Gen2) +Smart Cache II (PM2?2?, PM2024/PM2124 [PCI]) (Gen2) .It Smart RAID II (PM3?2?, PM3021, PM3222) .It Smart Cache III (PM2?3?) .It -Smart RAID III (PM3?3?, PM3332 [EISA], PM3334UW [PCI]) (Gen3) +Smart RAID III (PM3?3?, PM3334UW [PCI]) (Gen3) .It -Smart Cache IV (PM2?4?, PM2042 [EISA], PM2044/PM2144 [PCI]) (Gen4) +Smart Cache IV (PM2?4?, PM2044/PM2144 [PCI]) (Gen4) .It Smart RAID IV .El diff --git a/sys/conf/files b/sys/conf/files index d307eb75887..9c5caf09c45 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -1439,7 +1439,6 @@ dev/dcons/dcons_crom.c optional dcons_crom dev/dcons/dcons_os.c optional dcons dev/de/if_de.c optional de pci dev/dme/if_dme.c optional dme -dev/dpt/dpt_eisa.c optional dpt eisa dev/dpt/dpt_pci.c optional dpt pci dev/dpt/dpt_scsi.c optional dpt dev/drm/ati_pcigart.c optional drm diff --git a/sys/dev/dpt/dpt.h b/sys/dev/dpt/dpt.h index 6c0e341db47..e337f09a120 100644 --- a/sys/dev/dpt/dpt.h +++ b/sys/dev/dpt/dpt.h @@ -147,17 +147,13 @@ typedef void *physaddr; #define min(a,b) ((a - * 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 -__FBSDID("$FreeBSD$"); - -#include "opt_eisa.h" - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include - -#include - -#include - -#define DPT_EISA_IOSIZE 0x9 -#define DPT_EISA_SLOT_OFFSET 0x0c00 -#define DPT_EISA_EATA_REG_OFFSET 0x0088 - -#define DPT_EISA_DPT2402 0x12142402 /* DPT PM2012A/9X */ -#define DPT_EISA_DPTA401 0x1214A401 /* DPT PM2012B/9X */ -#define DPT_EISA_DPTA402 0x1214A402 /* DPT PM2012B2/9X */ -#define DPT_EISA_DPTA410 0x1214A410 /* DPT PM2x22A/9X */ -#define DPT_EISA_DPTA411 0x1214A411 /* DPT Spectre */ -#define DPT_EISA_DPTA412 0x1214A412 /* DPT PM2021A/9X */ -#define DPT_EISA_DPTA420 0x1214A420 /* DPT Smart Cache IV (PM2042) */ -#define DPT_EISA_DPTA501 0x1214A501 /* DPT PM2012B1/9X" */ -#define DPT_EISA_DPTA502 0x1214A502 /* DPT PM2012Bx/9X */ -#define DPT_EISA_DPTA701 0x1214A701 /* DPT PM2011B1/9X */ -#define DPT_EISA_DPTBC01 0x1214BC01 /* DPT PM3011/7X ESDI */ -#define DPT_EISA_DPT8200 0x12148200 /* NEC EATA SCSI */ -#define DPT_EISA_DPT2408 0x12142408 /* ATT EATA SCSI */ - -/* Function Prototypes */ - -static const char * dpt_eisa_match (eisa_id_t); -static int dpt_eisa_probe (device_t); -static int dpt_eisa_attach (device_t); - -static int -dpt_eisa_probe (device_t dev) -{ - const char * desc; - u_int32_t io_base; - dpt_conf_t * conf; - - desc = dpt_eisa_match(eisa_get_id(dev)); - if (!desc) - return (ENXIO); - device_set_desc(dev, desc); - - io_base = (eisa_get_slot(dev) * EISA_SLOT_SIZE) + - DPT_EISA_SLOT_OFFSET + - DPT_EISA_EATA_REG_OFFSET; - - conf = dpt_pio_get_conf(io_base); - if (!conf) { - printf("dpt: dpt_pio_get_conf() failed.\n"); - return (ENXIO); - } - - eisa_add_iospace(dev, io_base, DPT_EISA_IOSIZE, RESVADDR_NONE); - eisa_add_intr(dev, conf->IRQ, - (conf->IRQ_TR ? EISA_TRIGGER_LEVEL : EISA_TRIGGER_EDGE)); - - return 0; -} - -static int -dpt_eisa_attach (device_t dev) -{ - dpt_softc_t * dpt; - int error = 0; - - dpt = device_get_softc(dev); - dpt->dev = dev; - dpt_alloc(dev); - - dpt->io_rid = 0; - dpt->io_type = SYS_RES_IOPORT; - dpt->irq_rid = 0; - - error = dpt_alloc_resources(dev); - if (error) { - goto bad; - } - - /* Allocate a dmatag representing the capabilities of this attachment */ - if (bus_dma_tag_create( /* parent */ bus_get_dma_tag(dev), - /* alignemnt */ 1, - /* boundary */ 0, - /* lowaddr */ BUS_SPACE_MAXADDR_32BIT, - /* highaddr */ BUS_SPACE_MAXADDR, - /* filter */ NULL, - /* filterarg */ NULL, - /* maxsize */ BUS_SPACE_MAXSIZE_32BIT, - /* nsegments */ ~0, - /* maxsegsz */ BUS_SPACE_MAXSIZE_32BIT, - /* flags */ 0, - /* lockfunc */ NULL, - /* lockarg */ NULL, - &dpt->parent_dmat) != 0) { - error = ENXIO; - goto bad; - } - - if (dpt_init(dpt) != 0) { - error = ENXIO; - goto bad; - } - - /* Register with the XPT */ - dpt_attach(dpt); - - if (bus_setup_intr(dev, dpt->irq_res, INTR_TYPE_CAM | INTR_ENTROPY | - INTR_MPSAFE, NULL, dpt_intr, dpt, &dpt->ih)) { - device_printf(dev, "Unable to register interrupt handler\n"); - error = ENXIO; - goto bad; - } - - return (error); - - bad: - dpt_release_resources(dev); - - dpt_free(dpt); - - return (error); -} - -static const char * -dpt_eisa_match(type) - eisa_id_t type; -{ - switch (type) { - case DPT_EISA_DPT2402: - case DPT_EISA_DPTA401: - case DPT_EISA_DPTA402: - case DPT_EISA_DPTA410: - case DPT_EISA_DPTA411: - case DPT_EISA_DPTA412: - case DPT_EISA_DPTA420: - case DPT_EISA_DPTA501: - case DPT_EISA_DPTA502: - case DPT_EISA_DPTA701: - case DPT_EISA_DPTBC01: - case DPT_EISA_DPT8200: - case DPT_EISA_DPT2408: - return ("DPT SCSI Host Bus Adapter"); - break; - default: - break; - } - - return (NULL); -} - -static device_method_t dpt_eisa_methods[] = { - /* Device interface */ - DEVMETHOD(device_probe, dpt_eisa_probe), - DEVMETHOD(device_attach, dpt_eisa_attach), - DEVMETHOD(device_detach, dpt_detach), - - { 0, 0 } -}; - -static driver_t dpt_eisa_driver = { - "dpt", - dpt_eisa_methods, - sizeof(dpt_softc_t), -}; - -DRIVER_MODULE(dpt, eisa, dpt_eisa_driver, dpt_devclass, 0, 0); -MODULE_DEPEND(dpt, eisa, 1, 1, 1); -MODULE_DEPEND(dpt, cam, 1, 1, 1); diff --git a/sys/dev/dpt/dpt_scsi.c b/sys/dev/dpt/dpt_scsi.c index f960dc9ccaf..541b58665cf 100644 --- a/sys/dev/dpt/dpt_scsi.c +++ b/sys/dev/dpt/dpt_scsi.c @@ -49,7 +49,6 @@ __FBSDID("$FreeBSD$"); #define _DPT_C_ #include "opt_dpt.h" -#include "opt_eisa.h" #include #include @@ -79,7 +78,7 @@ __FBSDID("$FreeBSD$"); #include -/* dpt_isa.c, dpt_eisa.c, and dpt_pci.c need this in a central place */ +/* dpt_isa.c, and dpt_pci.c need this in a central place */ devclass_t dpt_devclass; #define microtime_now dpt_time_now() @@ -107,9 +106,6 @@ devclass_t dpt_devclass; /* ================= Private Inline Function declarations ===================*/ static __inline int dpt_just_reset(dpt_softc_t * dpt); static __inline int dpt_raid_busy(dpt_softc_t * dpt); -#ifdef DEV_EISA -static __inline int dpt_pio_wait (u_int32_t, u_int, u_int, u_int); -#endif static __inline int dpt_wait(dpt_softc_t *dpt, u_int bits, u_int state); static __inline struct dpt_ccb* dptgetccb(struct dpt_softc *dpt); @@ -185,24 +181,6 @@ dpt_raid_busy(dpt_softc_t * dpt) return (0); } -#ifdef DEV_EISA -static __inline int -dpt_pio_wait (u_int32_t base, u_int reg, u_int bits, u_int state) -{ - int i; - u_int c; - - for (i = 0; i < 20000; i++) { /* wait 20ms for not busy */ - c = inb(base + reg) & bits; - if (!(c == state)) - return (0); - else - DELAY(50); - } - return (-1); -} -#endif - static __inline int dpt_wait(dpt_softc_t *dpt, u_int bits, u_int state) { @@ -392,96 +370,6 @@ dptallocccbs(dpt_softc_t *dpt) return (i); } -#ifdef DEV_EISA -dpt_conf_t * -dpt_pio_get_conf (u_int32_t base) -{ - static dpt_conf_t * conf; - u_int16_t * p; - int i; - - /* - * Allocate a dpt_conf_t - */ - if (!conf) { - conf = (dpt_conf_t *)malloc(sizeof(dpt_conf_t), - M_DEVBUF, M_NOWAIT | M_ZERO); - } - - /* - * If we didn't get one then we probably won't ever get one. - */ - if (!conf) { - printf("dpt: unable to allocate dpt_conf_t\n"); - return (NULL); - } - - /* - * Reset the controller. - */ - outb((base + HA_WCOMMAND), EATA_CMD_RESET); - - /* - * Wait for the controller to become ready. - * For some reason there can be -no- delays after calling reset - * before we wait on ready status. - */ - if (dpt_pio_wait(base, HA_RSTATUS, HA_SBUSY, 0)) { - printf("dpt: timeout waiting for controller to become ready\n"); - return (NULL); - } - - if (dpt_pio_wait(base, HA_RAUXSTAT, HA_ABUSY, 0)) { - printf("dpt: timetout waiting for adapter ready.\n"); - return (NULL); - } - - /* - * Send the PIO_READ_CONFIG command. - */ - outb((base + HA_WCOMMAND), EATA_CMD_PIO_READ_CONFIG); - - /* - * Read the data into the struct. - */ - p = (u_int16_t *)conf; - for (i = 0; i < (sizeof(dpt_conf_t) / 2); i++) { - - if (dpt_pio_wait(base, HA_RSTATUS, HA_SDRQ, 0)) { - if (bootverbose) - printf("dpt: timeout in data read.\n"); - return (NULL); - } - - (*p) = inw(base + HA_RDATA); - p++; - } - - if (inb(base + HA_RSTATUS) & HA_SERROR) { - if (bootverbose) - printf("dpt: error reading configuration data.\n"); - return (NULL); - } - -#define BE_EATA_SIGNATURE 0x45415441 -#define LE_EATA_SIGNATURE 0x41544145 - - /* - * Test to see if we have a valid card. - */ - if ((conf->signature == BE_EATA_SIGNATURE) || - (conf->signature == LE_EATA_SIGNATURE)) { - - while (inb(base + HA_RSTATUS) & HA_SDRQ) { - inw(base + HA_RDATA); - } - - return (conf); - } - return (NULL); -} -#endif - /* * Read a configuration page into the supplied dpt_cont_t buffer. */ @@ -1352,8 +1240,6 @@ dpt_init(struct dpt_softc *dpt) else dpt->immediate_support = 0; - dpt->broken_INQUIRY = FALSE; - dpt->cplen = ntohl(conf.cplen); dpt->cppadlen = ntohs(conf.cppadlen); dpt->max_dccbs = ntohs(conf.queuesiz); diff --git a/sys/modules/dpt/Makefile b/sys/modules/dpt/Makefile index ee588adb829..7b4f9cc5bc3 100644 --- a/sys/modules/dpt/Makefile +++ b/sys/modules/dpt/Makefile @@ -7,10 +7,8 @@ SYSDIR?=${.CURDIR}/../.. KMOD= dpt SRCS= dpt_scsi.c dpt.h \ dpt_pci.c pci_if.h \ - opt_dpt.h opt_eisa.h \ + opt_dpt.h \ opt_cam.h opt_scsi.h \ device_if.h bus_if.h -SRCS.DEV_EISA= dpt_eisa.c eisa_if.h - .include