From df301c22fef92cb1370475459ed9cf804a87e0de Mon Sep 17 00:00:00 2001 From: mdodd Date: Sat, 9 Oct 1999 03:51:18 +0000 Subject: Remove these files as they now live in sys/dev/dpt/ --- sys/i386/eisa/dpt_eisa.c | 261 ----------------------------------------------- sys/i386/eisa/dpt_eisa.h | 66 ------------ sys/pci/dpt_pci.c | 186 --------------------------------- sys/pci/dpt_pci.h | 207 ------------------------------------- 4 files changed, 720 deletions(-) delete mode 100644 sys/i386/eisa/dpt_eisa.c delete mode 100644 sys/i386/eisa/dpt_eisa.h delete mode 100644 sys/pci/dpt_pci.c delete mode 100644 sys/pci/dpt_pci.h diff --git a/sys/i386/eisa/dpt_eisa.c b/sys/i386/eisa/dpt_eisa.c deleted file mode 100644 index 8518214..0000000 --- a/sys/i386/eisa/dpt_eisa.c +++ /dev/null @@ -1,261 +0,0 @@ -/* - * Copyright (c) 1997 by Matthew N. Dodd - * 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, - * without modification, immediately at the beginning of the file. - * 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. 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 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. - */ - -/* - * Credits: Based on and part of the DPT driver for FreeBSD written and - * maintained by Simon Shapiro - */ - -/* - * $FreeBSD$ - */ - -#include "eisa.h" -#if NEISA > 0 -#include "opt_dpt.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include - -#include -#include - -#include - -#include -#include -#include - -/* Function Prototypes */ - -static const char *dpt_eisa_match(eisa_id_t); - -static int -dpt_eisa_probe(device_t dev) -{ - const char *desc; - u_int32_t io_base; - u_int intdef; - u_int irq; - int shared; - - 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; - - eisa_add_iospace(dev, io_base, DPT_EISA_IOSIZE, RESVADDR_NONE); - - outb((DPT_EISA_CFENABLE + io_base), 0xf8); - - intdef = inb(DPT_EISA_INTDEF + io_base); - - irq = intdef & DPT_EISA_INT_NUM_MASK; - shared = (intdef & DPT_EISA_INT_LEVEL) - ? EISA_TRIGGER_LEVEL : EISA_TRIGGER_EDGE; - switch (irq) { - case DPT_EISA_INT_NUM_11: - irq = 11; - break; - case DPT_EISA_INT_NUM_15: - irq = 15; - break; - case DPT_EISA_INT_NUM_14: - irq = 14; - break; - default: - device_printf(dev, "dpt at slot %d: illegal irq setting %d\n", - eisa_get_slot(dev), irq); - irq = 0; - break; - } - if (irq == 0) - return (ENXIO); - - eisa_add_intr(dev, irq, shared); - - return 0; -} - -static int -dpt_eisa_attach(device_t dev) -{ - dpt_softc_t *dpt; - struct resource *io = 0; - struct resource *irq = 0; - int unit = device_get_unit(dev); - int s; - int rid; - void *ih; - - rid = 0; - io = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid, - 0, ~0, 1, RF_ACTIVE); - if (!io) { - device_printf(dev, "No I/O space?!\n"); - return ENOMEM; - } - - dpt = dpt_alloc(unit, rman_get_bustag(io), - rman_get_bushandle(io) + DPT_EISA_EATA_REG_OFFSET); - if (dpt == NULL) - goto bad; - - /* Allocate a dmatag representing the capabilities of this attachment */ - /* XXX Should be a child of the EISA bus dma tag */ - if (bus_dma_tag_create(/*parent*/NULL, /*alignemnt*/1, /*boundary*/0, - /*lowaddr*/BUS_SPACE_MAXADDR_32BIT, - /*highaddr*/BUS_SPACE_MAXADDR, - /*filter*/NULL, /*filterarg*/NULL, - /*maxsize*/BUS_SPACE_MAXSIZE_32BIT, - /*nsegments*/BUS_SPACE_UNRESTRICTED, - /*maxsegsz*/BUS_SPACE_MAXSIZE_32BIT, - /*flags*/0, &dpt->parent_dmat) != 0) { - dpt_free(dpt); - goto bad; - } - - rid = 0; - irq = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, - 0, ~0, 1, RF_ACTIVE); - if (!irq) { - device_printf(dev, "No irq?!\n"); - goto bad; - } - - s = splcam(); - if (dpt_init(dpt) != 0) { - dpt_free(dpt); - goto bad; - } - - /* Register with the XPT */ - dpt_attach(dpt); - bus_setup_intr(dev, irq, INTR_TYPE_CAM, dpt_intr, dpt, &ih); - - splx(s); - - return 0; - - bad: - if (io) - bus_release_resource(dev, SYS_RES_IOPORT, 0, io); - if (irq) - bus_release_resource(dev, SYS_RES_IRQ, 0, irq); - return -1; -} - -static const char * -dpt_eisa_match(type) - eisa_id_t type; -{ - switch (type) { - case DPT_EISA_DPT2402 : - return ("DPT PM2012A/9X"); - break; - case DPT_EISA_DPTA401 : - return ("DPT PM2012B/9X"); - break; - case DPT_EISA_DPTA402 : - return ("DPT PM2012B2/9X"); - break; - case DPT_EISA_DPTA410 : - return ("DPT PM2x22A/9X"); - break; - case DPT_EISA_DPTA411 : - return ("DPT Spectre"); - break; - case DPT_EISA_DPTA412 : - return ("DPT PM2021A/9X"); - break; - case DPT_EISA_DPTA420 : - return ("DPT Smart Cache IV (PM2042)"); - break; - case DPT_EISA_DPTA501 : - return ("DPT PM2012B1/9X"); - break; - case DPT_EISA_DPTA502 : - return ("DPT PM2012Bx/9X"); - break; - case DPT_EISA_DPTA701 : - return ("DPT PM2011B1/9X"); - break; - case DPT_EISA_DPTBC01 : - return ("DPT PM3011/7X ESDI"); - break; - case DPT_EISA_NEC8200 : - return ("NEC EATA SCSI"); - break; - case DPT_EISA_ATT2408 : - return ("ATT EATA SCSI"); - 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), - - { 0, 0 } -}; - -static driver_t dpt_eisa_driver = { - "dpt", - dpt_eisa_methods, - 1, /* unused */ -}; - -static devclass_t dpt_devclass; - -DRIVER_MODULE(dpt, eisa, dpt_eisa_driver, dpt_devclass, 0, 0); - -#endif /* NEISA > 0 */ diff --git a/sys/i386/eisa/dpt_eisa.h b/sys/i386/eisa/dpt_eisa.h deleted file mode 100644 index 683ff65..0000000 --- a/sys/i386/eisa/dpt_eisa.h +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Copyright (c) 1997 by Matthew N. Dodd - * 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, - * without modification, immediately at the beginning of the file. - * 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. 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 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. - */ - -/* Credits: Based on and part of the DPT driver for FreeBSD written and - * maintained by Simon Shapiro - */ - -/* - * $FreeBSD$ - */ - -#define DPT_EISA_SLOT_OFFSET 0xc00 -#define DPT_EISA_IOSIZE 0x100 - -#define DPT_EISA_CFENABLE 0x8f - -#define DPT_EISA_INTDEF 0x90 -#define DPT_EISA_INT_LEVEL 0x04 -#define DPT_EISA_INT_NUM_MASK 0x38 -#define DPT_EISA_INT_NUM_11 0x08 -#define DPT_EISA_INT_NUM_15 0x10 -#define DPT_EISA_INT_NUM_14 0x20 - -#define DPT_EISA_EATA_REG_OFFSET 0x88 - -#define ISA_PRIMARY_WD_ADDRESS 0x1f8 - -#define DPT_EISA_DPT2402 0x12142402 -#define DPT_EISA_DPTA401 0x1214A401 -#define DPT_EISA_DPTA402 0x1214A402 -#define DPT_EISA_DPTA410 0x1214A410 -#define DPT_EISA_DPTA411 0x1214A411 -#define DPT_EISA_DPTA412 0x1214A412 -#define DPT_EISA_DPTA420 0x1214A420 -#define DPT_EISA_DPTA501 0x1214A501 -#define DPT_EISA_DPTA502 0x1214A502 -#define DPT_EISA_DPTA701 0x1214A701 -#define DPT_EISA_DPTBC01 0x1214BC01 -#define DPT_EISA_NEC8200 0x12148200 -#define DPT_EISA_ATT2408 0x12142408 diff --git a/sys/pci/dpt_pci.c b/sys/pci/dpt_pci.c deleted file mode 100644 index 9df90db..0000000 --- a/sys/pci/dpt_pci.c +++ /dev/null @@ -1,186 +0,0 @@ -/* - * Copyright (c) 1997 by Simon Shapiro - * 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, - * without modification, immediately at the beginning of the file. - * 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. 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 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. - * - */ - -/* - * dptpci.c: PCI Bus Attachment for DPT SCSI HBAs - */ - -#ident "$FreeBSD$" - -#include "opt_dpt.h" - -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include - -#include - -#include -#include - -#define PCI_BASEADR0 PCI_MAP_REG_START /* I/O Address */ -#define PCI_BASEADR1 PCI_MAP_REG_START + 4 /* Mem I/O Address */ - -#define ISA_PRIMARY_WD_ADDRESS 0x1f8 - -/* Global variables */ - -/* Function Prototypes */ - -static const char *dpt_pci_probe(pcici_t tag, pcidi_t type); -static void dpt_pci_attach(pcici_t config_id, int unit); - -extern struct cdevsw dpt_cdevsw; - -static struct pci_device dpt_pci_driver = -{ - "dpt", - dpt_pci_probe, - dpt_pci_attach, - &dpt_unit, - NULL -}; - -COMPAT_PCI_DRIVER(dpt_pci, dpt_pci_driver); - -/* - * Probe the PCI device. - * Some of this work will have to be duplicated in _attach - * because we do not know for sure how the two relate. - */ - -static const char * -dpt_pci_probe(pcici_t tag, pcidi_t type) -{ - u_int32_t class; - -#ifndef PCI_COMMAND_MASTER_ENABLE -#define PCI_COMMAND_MASTER_ENABLE 0x00000004 -#endif - -#ifndef PCI_SUBCLASS_MASS_STORAGE_SCSI -#define PCI_SUBCLASS_MASS_STORAGE_SCSI 0x00000000 -#endif - - class = pci_conf_read(tag, PCI_CLASS_REG); - if (((type & 0xffff0000) >> 16) == DPT_DEVICE_ID - && (class & PCI_CLASS_MASK) == PCI_CLASS_MASS_STORAGE - && (class & PCI_SUBCLASS_MASK) == PCI_SUBCLASS_MASS_STORAGE_SCSI) - return ("DPT Caching SCSI RAID Controller"); - return (NULL); -} - -static void -dpt_pci_attach(pcici_t config_id, int unit) -{ - dpt_softc_t *dpt; - vm_offset_t vaddr; -#ifdef DPT_ALLOW_MEMIO - vm_offset_t paddr; -#endif - u_int16_t io_base; - bus_space_tag_t tag; - bus_space_handle_t bsh; - u_int32_t command; - int s; - - vaddr = NULL; - command = pci_conf_read(config_id, PCI_COMMAND_STATUS_REG); -#ifdef DPT_ALLOW_MEMIO - if ((command & PCI_COMMAND_MEM_ENABLE) == 0 - || (pci_map_mem(config_id, PCI_BASEADR1, &vaddr, &paddr)) == 0) -#endif - if ((command & PCI_COMMAND_IO_ENABLE) == 0 - || (pci_map_port(config_id, PCI_BASEADR0, &io_base)) == 0) - return; - - /* - * If the DPT is mapped as an IDE controller, - * let it be IDE controller - */ - if (io_base == ISA_PRIMARY_WD_ADDRESS - 0x10) { -#ifdef DPT_DEBUG_WARN - printf("dpt%d: Mapped as an IDE controller. " - "Disabling SCSI setup\n", unit); -#endif - return; - } - - /* XXX Should be passed in by parent bus */ - /* XXX Why isn't the 0x10 offset incorporated into the reg defs? */ - if (vaddr != 0) { - tag = I386_BUS_SPACE_MEM; - bsh = vaddr + 0x10; - } else { - tag = I386_BUS_SPACE_IO; - bsh = io_base + 0x10; - } - - if ((dpt = dpt_alloc(unit, tag, bsh)) == NULL) - return; /* XXX PCI code should take return status */ - - /* Allocate a dmatag representing the capabilities of this attachment */ - /* XXX Should be a child of the PCI bus dma tag */ - if (bus_dma_tag_create(/*parent*/NULL, /*alignemnt*/1, /*boundary*/0, - /*lowaddr*/BUS_SPACE_MAXADDR_32BIT, - /*highaddr*/BUS_SPACE_MAXADDR, - /*filter*/NULL, /*filterarg*/NULL, - /*maxsize*/BUS_SPACE_MAXSIZE_32BIT, - /*nsegments*/BUS_SPACE_UNRESTRICTED, - /*maxsegsz*/BUS_SPACE_MAXSIZE_32BIT, - /*flags*/0, &dpt->parent_dmat) != 0) { - dpt_free(dpt); - return; - } - - if (pci_map_int(config_id, dpt_intr, (void *)dpt, &cam_imask) == 0) { - dpt_free(dpt); - return; - } - - s = splcam(); - if (dpt_init(dpt) != 0) { - dpt_free(dpt); - return; - } - - /* Register with the XPT */ - dpt_attach(dpt); - splx(s); -} diff --git a/sys/pci/dpt_pci.h b/sys/pci/dpt_pci.h deleted file mode 100644 index fe7206a..0000000 --- a/sys/pci/dpt_pci.h +++ /dev/null @@ -1,207 +0,0 @@ -/* - * Copyright (c) 1997 by Simon Shapiro - * 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, - * without modification, immediately at the beginning of the file. - * 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. 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 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. - * - */ - -#ident "$FreeBSD$" - -#define DPT_VENDOR_ID 0x00001044 -#define DPT_DEVICE_ID 0x0000a400 - -/* The following are taken, shamelessly from Linux include/linux/pci.h */ - -/* - * Under PCI, each device has 256 bytes of configuration address space, - * of which the first 64 bytes are standardized as follows: - */ -#define PCI_VENDOR_ID 0x00 /* 16 bits */ -#define PCI_DEVICE_ID 0x02 /* 16 bits */ -#define PCI_COMMAND 0x04 /* 16 bits */ -#define PCI_COMMAND_IO 0x1 /* Enable response in I/O space */ -#define PCI_COMMAND_MEMORY 0x2 /* Enable response in Memory space */ -#define PCI_COMMAND_MASTER 0x4 /* Enable bus mastering */ -#define PCI_COMMAND_SPECIAL 0x8 /* Enable response to special cycles */ -#define PCI_COMMAND_INVALIDATE 0x10 /* Use memory write and invalidate */ -#define PCI_COMMAND_VGA_PALETTE 0x20 /* Enable palette snooping */ -#define PCI_COMMAND_PARITY 0x40 /* Enable parity checking */ -#define PCI_COMMAND_WAIT 0x80 /* Enable address/data stepping */ -#define PCI_COMMAND_SERR 0x100 /* Enable SERR */ -#define PCI_COMMAND_FAST_BACK 0x200 /* Enable back-to-back writes */ - -#define PCI_STATUS 0x06 /* 16 bits */ -#define PCI_STATUS_66MHZ 0x20 /* Support 66 Mhz PCI 2.1 bus */ -#define PCI_STATUS_UDF 0x40 /* Support User Definable Features */ - -#define PCI_STATUS_FAST_BACK 0x80 /* Accept fast-back to back */ -#define PCI_STATUS_PARITY 0x100 /* Detected parity error */ -#ifndef PCI_STATUS_DEVSEL_MASK -#define PCI_STATUS_DEVSEL_MASK 0x600 /* DEVSEL timing */ -#define PCI_STATUS_DEVSEL_FAST 0x000 -#define PCI_STATUS_DEVSEL_MEDIUM 0x200 -#define PCI_STATUS_DEVSEL_SLOW 0x400 -#endif -#define PCI_STATUS_SIG_TARGET_ABORT 0x800 /* Set on target abort */ -#define PCI_STATUS_REC_TARGET_ABORT 0x1000 /* Master ack of " */ -#define PCI_STATUS_REC_MASTER_ABORT 0x2000 /* Set on master abort */ -#define PCI_STATUS_SIG_SYSTEM_ERROR 0x4000 /* Set when we drive SERR */ -#define PCI_STATUS_DETECTED_PARITY 0x8000 /* Set on parity error */ - -#define PCI_CLASS_REVISION 0x08 /* High 24 bits are class, low 8 - * revision */ -#define PCI_REVISION_ID 0x08 /* Revision ID */ -#define PCI_CLASS_PROG 0x09 /* Reg. Level Programming Interface */ -#define PCI_CLASS_DEVICE 0x0a /* Device class */ - -#define PCI_CACHE_LINE_SIZE 0x0c /* 8 bits */ -#define PCI_LATENCY_TIMER 0x0d /* 8 bits */ -#define PCI_HEADER_TYPE 0x0e /* 8 bits */ -#define PCI_BIST 0x0f /* 8 bits */ -#define PCI_BIST_CODE_MASK 0x0f /* Return result */ -#define PCI_BIST_START 0x40 /* 1 to start BIST, 2 secs or less */ -#define PCI_BIST_CAPABLE 0x80 /* 1 if BIST capable */ - -/* - * Base addresses specify locations in memory or I/O space. - * Decoded size can be determined by writing a value of - * 0xffffffff to the register, and reading it back. Only - * 1 bits are decoded. - */ -#define PCI_BASE_ADDRESS_0 0x10 /* 32 bits */ -#define PCI_BASE_ADDRESS_1 0x14 /* 32 bits */ -#define PCI_BASE_ADDRESS_2 0x18 /* 32 bits */ -#define PCI_BASE_ADDRESS_3 0x1c /* 32 bits */ -#define PCI_BASE_ADDRESS_4 0x20 /* 32 bits */ -#define PCI_BASE_ADDRESS_5 0x24 /* 32 bits */ -#define PCI_BASE_ADDRESS_SPACE 0x01 /* 0 = memory, 1 = I/O */ -#define PCI_BASE_ADDRESS_SPACE_IO 0x01 -#define PCI_BASE_ADDRESS_SPACE_MEMORY 0x00 -#define PCI_BASE_ADDRESS_MEM_TYPE_MASK 0x06 -#define PCI_BASE_ADDRESS_MEM_TYPE_32 0x00 /* 32 bit address */ -#define PCI_BASE_ADDRESS_MEM_TYPE_1M 0x02 /* Below 1M */ -#define PCI_BASE_ADDRESS_MEM_TYPE_64 0x04 /* 64 bit address */ -#define PCI_BASE_ADDRESS_MEM_PREFETCH 0x08 /* prefetchable? */ -#define PCI_BASE_ADDRESS_MEM_MASK (~0x0f) -#define PCI_BASE_ADDRESS_IO_MASK (~0x03) -/* bit 1 is reserved if address_space = 1 */ - -#define PCI_CARDBUS_CIS 0x28 -#define PCI_SUBSYSTEM_ID 0x2c -#define PCI_SUBSYSTEM_VENDOR_ID 0x2e -#define PCI_ROM_ADDRESS 0x30 /* 32 bits */ -#define PCI_ROM_ADDRESS_ENABLE 0x01 /* Write 1 to enable ROM, bits 31..11 - * are address, 10..2 are reserved */ - -/* 0x34-0x3b are reserved */ -#define PCI_INTERRUPT_LINE 0x3c /* 8 bits */ -#define PCI_INTERRUPT_PIN 0x3d /* 8 bits */ -#define PCI_MIN_GNT 0x3e /* 8 bits */ -#define PCI_MAX_LAT 0x3f /* 8 bits */ - -#define PCI_CLASS_NOT_DEFINED 0x0000 -#define PCI_CLASS_NOT_DEFINED_VGA 0x0001 - -#define PCI_BASE_CLASS_STORAGE 0x01 -#define PCI_CLASS_STORAGE_SCSI 0x0100 -#define PCI_CLASS_STORAGE_IDE 0x0101 -#define PCI_CLASS_STORAGE_FLOPPY 0x0102 -#define PCI_CLASS_STORAGE_IPI 0x0103 -#define PCI_CLASS_STORAGE_RAID 0x0104 -#define PCI_CLASS_STORAGE_OTHER 0x0180 - -#define PCI_BASE_CLASS_NETWORK 0x02 -#define PCI_CLASS_NETWORK_ETHERNET 0x0200 -#define PCI_CLASS_NETWORK_TOKEN_RING 0x0201 -#define PCI_CLASS_NETWORK_FDDI 0x0202 -#define PCI_CLASS_NETWORK_ATM 0x0203 -#define PCI_CLASS_NETWORK_OTHER 0x0280 - -#define PCI_BASE_CLASS_DISPLAY 0x03 -#define PCI_CLASS_DISPLAY_VGA 0x0300 -#define PCI_CLASS_DISPLAY_XGA 0x0301 -#define PCI_CLASS_DISPLAY_OTHER 0x0380 - -#define PCI_BASE_CLASS_MULTIMEDIA 0x04 -#define PCI_CLASS_MULTIMEDIA_VIDEO 0x0400 -#define PCI_CLASS_MULTIMEDIA_AUDIO 0x0401 -#define PCI_CLASS_MULTIMEDIA_OTHER 0x0480 - -#define PCI_BASE_CLASS_MEMORY 0x05 -#define PCI_CLASS_MEMORY_RAM 0x0500 -#define PCI_CLASS_MEMORY_FLASH 0x0501 -#define PCI_CLASS_MEMORY_OTHER 0x0580 - -#define PCI_BASE_CLASS_BRIDGE 0x06 -#define PCI_CLASS_BRIDGE_HOST 0x0600 -#define PCI_CLASS_BRIDGE_ISA 0x0601 -#define PCI_CLASS_BRIDGE_EISA 0x0602 -#define PCI_CLASS_BRIDGE_MC 0x0603 -#define PCI_CLASS_BRIDGE_PCI 0x0604 -#define PCI_CLASS_BRIDGE_PCMCIA 0x0605 -#define PCI_CLASS_BRIDGE_NUBUS 0x0606 -#define PCI_CLASS_BRIDGE_CARDBUS 0x0607 -#define PCI_CLASS_BRIDGE_OTHER 0x0680 - - -#define PCI_BASE_CLASS_COMMUNICATION 0x07 -#define PCI_CLASS_COMMUNICATION_SERIAL 0x0700 -#define PCI_CLASS_COMMUNICATION_PARALLEL 0x0701 -#define PCI_CLASS_COMMUNICATION_OTHER 0x0780 - -#define PCI_BASE_CLASS_SYSTEM 0x08 -#define PCI_CLASS_SYSTEM_PIC 0x0800 -#define PCI_CLASS_SYSTEM_DMA 0x0801 -#define PCI_CLASS_SYSTEM_TIMER 0x0802 -#define PCI_CLASS_SYSTEM_RTC 0x0803 -#define PCI_CLASS_SYSTEM_OTHER 0x0880 - -#define PCI_BASE_CLASS_INPUT 0x09 -#define PCI_CLASS_INPUT_KEYBOARD 0x0900 -#define PCI_CLASS_INPUT_PEN 0x0901 -#define PCI_CLASS_INPUT_MOUSE 0x0902 -#define PCI_CLASS_INPUT_OTHER 0x0980 - -#define PCI_BASE_CLASS_DOCKING 0x0a -#define PCI_CLASS_DOCKING_GENERIC 0x0a00 -#define PCI_CLASS_DOCKING_OTHER 0x0a01 - -#define PCI_BASE_CLASS_PROCESSOR 0x0b -#define PCI_CLASS_PROCESSOR_386 0x0b00 -#define PCI_CLASS_PROCESSOR_486 0x0b01 -#define PCI_CLASS_PROCESSOR_PENTIUM 0x0b02 -#define PCI_CLASS_PROCESSOR_ALPHA 0x0b10 -#define PCI_CLASS_PROCESSOR_POWERPC 0x0b20 -#define PCI_CLASS_PROCESSOR_CO 0x0b40 - -#define PCI_BASE_CLASS_SERIAL 0x0c -#define PCI_CLASS_SERIAL_FIREWIRE 0x0c00 -#define PCI_CLASS_SERIAL_ACCESS 0x0c01 -#define PCI_CLASS_SERIAL_SSA 0x0c02 -#define PCI_CLASS_SERIAL_USB 0x0c03 -#define PCI_CLASS_SERIAL_FIBER 0x0c04 - -#define PCI_CLASS_OTHERS 0xff -- cgit v1.1