diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 15:20:36 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 15:20:36 -0700 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /drivers/eisa |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'drivers/eisa')
-rw-r--r-- | drivers/eisa/Kconfig | 56 | ||||
-rw-r--r-- | drivers/eisa/Makefile | 21 | ||||
-rw-r--r-- | drivers/eisa/eisa-bus.c | 430 | ||||
-rw-r--r-- | drivers/eisa/eisa.ids | 1278 | ||||
-rw-r--r-- | drivers/eisa/pci_eisa.c | 66 | ||||
-rw-r--r-- | drivers/eisa/virtual_root.c | 75 |
6 files changed, 1926 insertions, 0 deletions
diff --git a/drivers/eisa/Kconfig b/drivers/eisa/Kconfig new file mode 100644 index 00000000000..c0646576cf4 --- /dev/null +++ b/drivers/eisa/Kconfig @@ -0,0 +1,56 @@ +# +# EISA configuration +# +config EISA_VLB_PRIMING + bool "Vesa Local Bus priming" + depends on X86_PC && EISA + default n + ---help--- + Activate this option if your system contains a Vesa Local + Bus (VLB) card that identify itself as an EISA card (such as + the Adaptec AHA-284x). + + When in doubt, say N. + +config EISA_PCI_EISA + bool "Generic PCI/EISA bridge" + depends on !PARISC && PCI && EISA + default y + ---help--- + Activate this option if your system contains a PCI to EISA + bridge. If your system have both PCI and EISA slots, you + certainly need this option. + + When in doubt, say Y. + +# Using EISA_VIRTUAL_ROOT on something other than an Alpha or +# an X86_PC may lead to crashes... + +config EISA_VIRTUAL_ROOT + bool "EISA virtual root device" + depends on EISA && (ALPHA || X86_PC) + default y + ---help--- + Activate this option if your system only have EISA bus + (no PCI slots). The Alpha Jensen is an example of such + a system. + + When in doubt, say Y. + +config EISA_NAMES + bool "EISA device name database" + depends on EISA + default y + ---help--- + By default, the kernel contains a database of all known EISA + device names to make the information in sysfs comprehensible + to the user. This database increases size of the kernel + image by about 40KB, but it gets freed after the system + boots up, so it doesn't take up kernel memory. Anyway, if + you are building an installation floppy or kernel for an + embedded system where kernel image size really matters, you + can disable this feature and you'll get device ID instead of + names. + + When in doubt, say Y. + diff --git a/drivers/eisa/Makefile b/drivers/eisa/Makefile new file mode 100644 index 00000000000..70abf93fe6b --- /dev/null +++ b/drivers/eisa/Makefile @@ -0,0 +1,21 @@ +# Makefile for the Linux device tree + +obj-$(CONFIG_EISA) += eisa-bus.o +obj-${CONFIG_EISA_PCI_EISA} += pci_eisa.o + +# virtual_root.o should be the last EISA root device to initialize, +# so leave it at the end of the list. +obj-${CONFIG_EISA_VIRTUAL_ROOT} += virtual_root.o + + +# Ugly hack to get DEVICE_NAME_SIZE value... +DEVICE_NAME_SIZE =$(shell awk '$$1=="\#define" && $$2=="DEVICE_NAME_SIZE" {print $$3-1}' $(srctree)/include/linux/device.h) + +$(obj)/eisa-bus.o: $(obj)/devlist.h + +quiet_cmd_eisaid = GEN $@ + cmd_eisaid = sed -e '/^\#/D' -e 's/^\([[:alnum:]]\{7\}\) \+"\([^"]\{1,$(DEVICE_NAME_SIZE)\}\).*"/EISA_DEVINFO ("\1", "\2"),/' $< > $@ + +clean-files := devlist.h +$(obj)/devlist.h: $(src)/eisa.ids include/linux/device.h + $(call cmd,eisaid) diff --git a/drivers/eisa/eisa-bus.c b/drivers/eisa/eisa-bus.c new file mode 100644 index 00000000000..6381ba53853 --- /dev/null +++ b/drivers/eisa/eisa-bus.c @@ -0,0 +1,430 @@ +/* + * EISA bus support functions for sysfs. + * + * (C) 2002, 2003 Marc Zyngier <maz@wild-wind.fr.eu.org> + * + * This code is released under the GPL version 2. + */ + +#include <linux/kernel.h> +#include <linux/device.h> +#include <linux/eisa.h> +#include <linux/module.h> +#include <linux/moduleparam.h> +#include <linux/init.h> +#include <linux/slab.h> +#include <linux/ioport.h> +#include <asm/io.h> + +#define SLOT_ADDRESS(r,n) (r->bus_base_addr + (0x1000 * n)) + +#define EISA_DEVINFO(i,s) { .id = { .sig = i }, .name = s } + +struct eisa_device_info { + struct eisa_device_id id; + char name[DEVICE_NAME_SIZE]; +}; + +#ifdef CONFIG_EISA_NAMES +static struct eisa_device_info __initdata eisa_table[] = { +#include "devlist.h" +}; +#define EISA_INFOS (sizeof (eisa_table) / (sizeof (struct eisa_device_info))) +#endif + +#define EISA_MAX_FORCED_DEV 16 + +static int enable_dev[EISA_MAX_FORCED_DEV]; +static int enable_dev_count; +static int disable_dev[EISA_MAX_FORCED_DEV]; +static int disable_dev_count; + +static int is_forced_dev (int *forced_tab, + int forced_count, + struct eisa_root_device *root, + struct eisa_device *edev) +{ + int i, x; + + for (i = 0; i < forced_count; i++) { + x = (root->bus_nr << 8) | edev->slot; + if (forced_tab[i] == x) + return 1; + } + + return 0; +} + +static void __init eisa_name_device (struct eisa_device *edev) +{ +#ifdef CONFIG_EISA_NAMES + int i; + for (i = 0; i < EISA_INFOS; i++) { + if (!strcmp (edev->id.sig, eisa_table[i].id.sig)) { + strlcpy (edev->pretty_name, + eisa_table[i].name, + DEVICE_NAME_SIZE); + return; + } + } + + /* No name was found */ + sprintf (edev->pretty_name, "EISA device %.7s", edev->id.sig); +#endif +} + +static char __init *decode_eisa_sig(unsigned long addr) +{ + static char sig_str[EISA_SIG_LEN]; + u8 sig[4]; + u16 rev; + int i; + + for (i = 0; i < 4; i++) { +#ifdef CONFIG_EISA_VLB_PRIMING + /* + * This ugly stuff is used to wake up VL-bus cards + * (AHA-284x is the only known example), so we can + * read the EISA id. + * + * Thankfully, this only exists on x86... + */ + outb(0x80 + i, addr); +#endif + sig[i] = inb (addr + i); + + if (!i && (sig[0] & 0x80)) + return NULL; + } + + sig_str[0] = ((sig[0] >> 2) & 0x1f) + ('A' - 1); + sig_str[1] = (((sig[0] & 3) << 3) | (sig[1] >> 5)) + ('A' - 1); + sig_str[2] = (sig[1] & 0x1f) + ('A' - 1); + rev = (sig[2] << 8) | sig[3]; + sprintf(sig_str + 3, "%04X", rev); + + return sig_str; +} + +static int eisa_bus_match (struct device *dev, struct device_driver *drv) +{ + struct eisa_device *edev = to_eisa_device (dev); + struct eisa_driver *edrv = to_eisa_driver (drv); + const struct eisa_device_id *eids = edrv->id_table; + + if (!eids) + return 0; + + while (strlen (eids->sig)) { + if (!strcmp (eids->sig, edev->id.sig) && + edev->state & EISA_CONFIG_ENABLED) { + edev->id.driver_data = eids->driver_data; + return 1; + } + + eids++; + } + + return 0; +} + +struct bus_type eisa_bus_type = { + .name = "eisa", + .match = eisa_bus_match, +}; + +int eisa_driver_register (struct eisa_driver *edrv) +{ + int r; + + edrv->driver.bus = &eisa_bus_type; + if ((r = driver_register (&edrv->driver)) < 0) + return r; + + return 0; +} + +void eisa_driver_unregister (struct eisa_driver *edrv) +{ + driver_unregister (&edrv->driver); +} + +static ssize_t eisa_show_sig (struct device *dev, char *buf) +{ + struct eisa_device *edev = to_eisa_device (dev); + return sprintf (buf,"%s\n", edev->id.sig); +} + +static DEVICE_ATTR(signature, S_IRUGO, eisa_show_sig, NULL); + +static ssize_t eisa_show_state (struct device *dev, char *buf) +{ + struct eisa_device *edev = to_eisa_device (dev); + return sprintf (buf,"%d\n", edev->state & EISA_CONFIG_ENABLED); +} + +static DEVICE_ATTR(enabled, S_IRUGO, eisa_show_state, NULL); + +static int __init eisa_init_device (struct eisa_root_device *root, + struct eisa_device *edev, + int slot) +{ + char *sig; + unsigned long sig_addr; + int i; + + sig_addr = SLOT_ADDRESS (root, slot) + EISA_VENDOR_ID_OFFSET; + + if (!(sig = decode_eisa_sig (sig_addr))) + return -1; /* No EISA device here */ + + memcpy (edev->id.sig, sig, EISA_SIG_LEN); + edev->slot = slot; + edev->state = inb (SLOT_ADDRESS (root, slot) + EISA_CONFIG_OFFSET) & EISA_CONFIG_ENABLED; + edev->base_addr = SLOT_ADDRESS (root, slot); + edev->dma_mask = root->dma_mask; /* Default DMA mask */ + eisa_name_device (edev); + edev->dev.parent = root->dev; + edev->dev.bus = &eisa_bus_type; + edev->dev.dma_mask = &edev->dma_mask; + edev->dev.coherent_dma_mask = edev->dma_mask; + sprintf (edev->dev.bus_id, "%02X:%02X", root->bus_nr, slot); + + for (i = 0; i < EISA_MAX_RESOURCES; i++) { +#ifdef CONFIG_EISA_NAMES + edev->res[i].name = edev->pretty_name; +#else + edev->res[i].name = edev->id.sig; +#endif + } + + if (is_forced_dev (enable_dev, enable_dev_count, root, edev)) + edev->state = EISA_CONFIG_ENABLED | EISA_CONFIG_FORCED; + + if (is_forced_dev (disable_dev, disable_dev_count, root, edev)) + edev->state = EISA_CONFIG_FORCED; + + return 0; +} + +static int __init eisa_register_device (struct eisa_device *edev) +{ + if (device_register (&edev->dev)) + return -1; + + device_create_file (&edev->dev, &dev_attr_signature); + device_create_file (&edev->dev, &dev_attr_enabled); + + return 0; +} + +static int __init eisa_request_resources (struct eisa_root_device *root, + struct eisa_device *edev, + int slot) +{ + int i; + + for (i = 0; i < EISA_MAX_RESOURCES; i++) { + /* Don't register resource for slot 0, since this is + * very likely to fail... :-( Instead, grab the EISA + * id, now we can display something in /proc/ioports. + */ + + /* Only one region for mainboard */ + if (!slot && i > 0) { + edev->res[i].start = edev->res[i].end = 0; + continue; + } + + if (slot) { + edev->res[i].name = NULL; + edev->res[i].start = SLOT_ADDRESS (root, slot) + (i * 0x400); + edev->res[i].end = edev->res[i].start + 0xff; + edev->res[i].flags = IORESOURCE_IO; + } else { + edev->res[i].name = NULL; + edev->res[i].start = SLOT_ADDRESS (root, slot) + EISA_VENDOR_ID_OFFSET; + edev->res[i].end = edev->res[i].start + 3; + edev->res[i].flags = IORESOURCE_BUSY; + } + + if (request_resource (root->res, &edev->res[i])) + goto failed; + } + + return 0; + + failed: + while (--i >= 0) + release_resource (&edev->res[i]); + + return -1; +} + +static void __init eisa_release_resources (struct eisa_device *edev) +{ + int i; + + for (i = 0; i < EISA_MAX_RESOURCES; i++) + if (edev->res[i].start || edev->res[i].end) + release_resource (&edev->res[i]); +} + +static int __init eisa_probe (struct eisa_root_device *root) +{ + int i, c; + struct eisa_device *edev; + + printk (KERN_INFO "EISA: Probing bus %d at %s\n", + root->bus_nr, root->dev->bus_id); + + /* First try to get hold of slot 0. If there is no device + * here, simply fail, unless root->force_probe is set. */ + + if (!(edev = kmalloc (sizeof (*edev), GFP_KERNEL))) { + printk (KERN_ERR "EISA: Couldn't allocate mainboard slot\n"); + return -ENOMEM; + } + + memset (edev, 0, sizeof (*edev)); + + if (eisa_request_resources (root, edev, 0)) { + printk (KERN_WARNING \ + "EISA: Cannot allocate resource for mainboard\n"); + kfree (edev); + if (!root->force_probe) + return -EBUSY; + goto force_probe; + } + + if (eisa_init_device (root, edev, 0)) { + eisa_release_resources (edev); + kfree (edev); + if (!root->force_probe) + return -ENODEV; + goto force_probe; + } + + printk (KERN_INFO "EISA: Mainboard %s detected.\n", edev->id.sig); + + if (eisa_register_device (edev)) { + printk (KERN_ERR "EISA: Failed to register %s\n", + edev->id.sig); + eisa_release_resources (edev); + kfree (edev); + } + + force_probe: + + for (c = 0, i = 1; i <= root->slots; i++) { + if (!(edev = kmalloc (sizeof (*edev), GFP_KERNEL))) { + printk (KERN_ERR "EISA: Out of memory for slot %d\n", + i); + continue; + } + + memset (edev, 0, sizeof (*edev)); + + if (eisa_request_resources (root, edev, i)) { + printk (KERN_WARNING \ + "Cannot allocate resource for EISA slot %d\n", + i); + kfree (edev); + continue; + } + + if (eisa_init_device (root, edev, i)) { + eisa_release_resources (edev); + kfree (edev); + continue; + } + + printk (KERN_INFO "EISA: slot %d : %s detected", + i, edev->id.sig); + + switch (edev->state) { + case EISA_CONFIG_ENABLED | EISA_CONFIG_FORCED: + printk (" (forced enabled)"); + break; + + case EISA_CONFIG_FORCED: + printk (" (forced disabled)"); + break; + + case 0: + printk (" (disabled)"); + break; + } + + printk (".\n"); + + c++; + + if (eisa_register_device (edev)) { + printk (KERN_ERR "EISA: Failed to register %s\n", + edev->id.sig); + eisa_release_resources (edev); + kfree (edev); + } + } + + printk (KERN_INFO "EISA: Detected %d card%s.\n", c, c == 1 ? "" : "s"); + + return 0; +} + +static struct resource eisa_root_res = { + .name = "EISA root resource", + .start = 0, + .end = 0xffffffff, + .flags = IORESOURCE_IO, +}; + +static int eisa_bus_count; + +int __init eisa_root_register (struct eisa_root_device *root) +{ + int err; + + /* Use our own resources to check if this bus base address has + * been already registered. This prevents the virtual root + * device from registering after the real one has, for + * example... */ + + root->eisa_root_res.name = eisa_root_res.name; + root->eisa_root_res.start = root->res->start; + root->eisa_root_res.end = root->res->end; + root->eisa_root_res.flags = IORESOURCE_BUSY; + + if ((err = request_resource (&eisa_root_res, &root->eisa_root_res))) + return err; + + root->bus_nr = eisa_bus_count++; + + if ((err = eisa_probe (root))) + release_resource (&root->eisa_root_res); + + return err; +} + +static int __init eisa_init (void) +{ + int r; + + if ((r = bus_register (&eisa_bus_type))) + return r; + + printk (KERN_INFO "EISA bus registered\n"); + return 0; +} + +module_param_array(enable_dev, int, &enable_dev_count, 0444); +module_param_array(disable_dev, int, &disable_dev_count, 0444); + +postcore_initcall (eisa_init); + +int EISA_bus; /* for legacy drivers */ +EXPORT_SYMBOL (EISA_bus); +EXPORT_SYMBOL (eisa_bus_type); +EXPORT_SYMBOL (eisa_driver_register); +EXPORT_SYMBOL (eisa_driver_unregister); diff --git a/drivers/eisa/eisa.ids b/drivers/eisa/eisa.ids new file mode 100644 index 00000000000..ed69837d8b7 --- /dev/null +++ b/drivers/eisa/eisa.ids @@ -0,0 +1,1278 @@ +# This list is a compilation of EISA ids. +# It also includes numerous ISA cards for which an EISA id +# has been allocated. +# +# Please send any patch/addition/correction to +# Marc Zyngier <maz@wild-wind.fr.eu.org> +# +# Many entries were contributed by Andries.Brouwer@cwi.nl + +ABP0510 "Advansys ABP-510 ISA SCSI Host Adapter" +ABP0540 "Advansys ABP-540/542 ISA SCSI Host Adapter" +ABP7401 "AdvanSys ABP-740/742 EISA Single Channel SCSI Host Adapter" +ABP7501 "AdvanSys ABP-750/752 EISA Dual Channel SCSI Host Adapter" +ACC1200 "ACCTON EtherCombo-32 Ethernet Adapter" +ACC120A "ACCTON EtherCombo-32 Ethernet Adapter" +ACC1650 "Accton MPX Ethernet Adapter (EN165x)" +ACC1660 "Accton MPX Ethernet Adapter (EN166x)" +ACE1010 "ACME Super Fast System Board" +ACE2010 "ACME PC Network" +ACE3010 "ACME Arcnet Plan" +ACE3030 "ACME Sample VS Board 1" +ACE4010 "ACME Tape Controller" +ACE5010 "ACME VDU Video Board" +ACE6010 "ACME Disk Controller" +ACE7010 "ACME Multi-Function Board" +ACR1201 "Acer 1200 486/25 EISA System Board" +ACR1211 "AcerFrame 3000SP33 486/33 EISA System Board" +ACR1341 "M1 486SX/20 CPU Board" +ACR1351 "M1 486SX/20 CPU Board" +ACR1361 "M1 487/20 CPU Board" +ACR1371 "M1 487/20 CPU Board" +ACR1381 "M1 486/20 CPU Board" +ACR1391 "M1 486/20 CPU Board" +ACR1581 "M1 486/33 CPU Board" +ACR1591 "M1 486/33 CPU Board" +ACR15A1 "M1 486/33 CPU Board" +ACR15B1 "M1 486/33 CPU Board" +ACR1701 "AcerFrame 1000" +ACR1711 "AcerFrame 1000 486/33 SYSTEM-2" +ACR1801 "Acer P43WE EISA System Board" +ACR3211 "AcerFrame 3000MP 486 SYSTEM-1" +ACR3221 "AcerFrame 486 Series SYSTEM-2" +ACR3231 "AcerFrame 486 Series SYSTEM-3" +ACR3241 "AcerFrame 486 Series SYSTEM-4" +ACR3261 "AcerFrame 3000MP 486 SYSTEM-1" +ACR3271 "AcerFrame 486 Series SYSTEM-2" +ACR3281 "AcerFrame 486 Series SYSTEM-3" +ACR3291 "AcerFrame 486 Series SYSTEM-4" +ACR4509 "ACER/Altos M1 System Board" +ADI0001 "Lightning Networks 32-Bit EISA Ethernet LAN Adapter" +ADP0000 "Adaptec AHA-1740 SCSI" +ADP0001 "Adaptec AHA-1740A SCSI" +ADP0002 "Adaptec AHA-1742A SCSI" +ADP0100 "Adaptec AHA-1540/1542 ISA SCSI Host Adapter" +AIM0002 "AUVA OPTi/EISA 32-Bit 486 All-in-One System Board" +ADP0200 "Adaptec AHA-1520/1522 ISA SCSI Host Adapter" +ADP0400 "Adaptec AHA-1744 SCSI" +ADP7756 "Adaptec AHA-284x SCSI (BIOS enabled)" +ADP7757 "Adaptec AHA-284x SCSI (BIOS disabled)" +ADP7770 "Adaptec AIC-7770 SCSI (on motherboard)" +ADP7771 "Adaptec AHA-274x SCSI" +AEI0401 "486EI EISA System Board" +AEO0301 "486EO EISA System Board" +AIR0101 "AIR486SE/25/33 EISA Baby AT-foot print motherboard." +AIR0103 "AIR486SE/25/33/50" +AIR0201 "AIR486LE/25/33/50" +AIR0301 "AIR 486EO EISA System Board" +AIR0401 "486EI EISA System Board" +AIR0501 "AIR 586EP PCI/EISA System Board" +AIR0601 "AIR 54CEP PCI/EISA System Board" +AIR0701 "AIR 54CDP PCI/EISA System Board" +AIR0702 "AIR 54CDP PCI/EISA Dual-Processors System Board" +AIR0901 "AIR 54TDP PCI/EISA Dual-Processors System Board" +AIR1001 "AIR P6NDP PCI/EISA Dual-Pentium Processor System Board" +AIR2001 "AIR SCSI-2E" +AIR2101 "AIR SCSI-2V" +AIR3001 "ENET2E EISA BUS MASTER ETHERNET ADAPTER" +AIR3101 "ENET-2V LOCAL BUS MASTER ETHERNET ADAPTER" +ALR0001 "Power/Business VEISA System Board" +ALR0041 "PowerPro System Board" +ALR0181 "PowerPro System Board" +ALR0241 "Evolution V Pentium Tower System Board" +ALR0341 "EISA PCI base System Board" +ALR3000 "80486 Processor Module" +ALR3010 "Pentium Processor Board" +ALR3023 "ALR 16-bit VGA without Parallel port" +ALR8580 "Advanced Disk Array Caching EISA Controller" +ALRA0C1 "System Board" +ALRA301 "Revolution Q-SMP System Board" +ALRA311 "Revolution Q-2SMP System Board" +ALRB0A0 "Primary System Processor Board - 80486DX2/66" +ALRB0B0 "Secondary System Processor Board - 80486DX2/66" +AMI44C1 "AMI SCSI Host Adapter - Series 44" +AMI15C1 "AMI SCSI Host Adapter" +AMI15D1 "AMI SCSI Host Adapter - Rev 2" +AMI15E1 "AMI Normal Single Ended EISA SCSI CACHING Controller-Ver 1.22" +AMI16B1 "AMI ENTERPRISE EISA system board" +AMI2509 "AMI ENTERPRISE EISA system board" +AMI25B1 "AMI ENTERPRISE EISA system board" +AMI28A1 "AMI EZ-FLEX EISA System Board" +AMI44D2 "AMI Fast Single Ended EISA SCSI CACHING Controller" +AMI4801 "AMI Series 48 EISA Fast SCSI Host Adapter" +AMI68B1 "AMI Enterprise III 486 EISA System Board" +APS0101 "EISA PIP INTERFACE" +APS0102 "EISA PIP INTERFACE" +APS0103 "EISA PIP INTERFACE" +ARC0010 "Alta EtherTPI/Combo" +ARC0020 "Alta TokenCombo-16 S/U" +ASU0100 "ASUS EISA-SC100 SCSI Cache Host Adapter (CFG file V2.0)" +ASU0500 "ASUS EISA-L500 Ethernet LAN ADAPTER" +ASU4001 "EISA-486C Main Board" +ASU4101 "EISA-486E Main Board" +ASU4201 "EISA-486A Main Board" +ASU4301 "EISA-486SI Main Board" +ASU4501 "Mini EISA-486H Main Board" +ASU4701 "Mini EISA-486AS Main Board" +ASU4901 "VL/EISA-486SV1 Main Board" +ASU5101 "PCI/E-P5MP4 or PCI/E-P54NP4 Main Board V2.3" +ASU5201 "P/E-P55T2P4D Main Board (CFG File V1.2)" +ATI1500 "ATI AT-1500 Ethernet Adapter Card" +ATI1700 "ATI AT-1700 Ethernet Adapter Card" +ATI4400 "mach32 EISA Video Accelerator Card" +ATI4402 "mach32 EISA Video Accelerator Card" +ATI4410 "mach32 Video Accelerator Card" +ATI4420 "mach32 Video Accelerator Card" +ATI4430 "mach32 VLB Video Accelerator Card" +ATT2402 "AT&T SCSI Host Adapter A (StarServer E)" +ATT2404 "DPT SCSI Host Bus Adapter (PM2012B/9X)" +AVI2E01 "AVIEW2E EISA SVGA Adapter" +AVM0001 "AVM ISDN-Controller A1" +BAN0440 "Banyan ICA" +BAN0670 "Banyan ICAplus" +BAN0680 "Banyan ICA/RM" +BUS4201 "BusTek/BusLogic Bt74xB 32-Bit Bus Master EISA-to-SCSI Host Adapter" +BUS4202 "BusTek/BusLogic Bt74xC 32-Bit Bus Master EISA-to-SCSI Host Adapter" +BUS6001 "BusTek/BusLogic Bt760 32-Bit Bus Master EISA-to-Ethernet Controller" +BUS6301 "BusTek/BusLogic Bt763E EISA 32-Bit 82596-based Ethernet Controller" +CCI0000 "Cache Computers, Inc. Memory Refresh Controller" +CCI1001 "Cache Computers Inc. 486/25 EISA System Board" +CCI2001 "Cache Computers Inc. 486/33 EISA System Board" +CCI3001 "Cache Computers, Inc. Modular EISA System Board" +CCI3009 "Cache Computers Inc. Modular EISA System Board" +CCI4000 "Cache Computers, Inc. 486/33 CPU Board" +CCI4001 "Cache Computers, Inc. 486/33 CPU Board" +CCI5001 "Cache Computers, Inc. 486/50 CPU Board" +CCI6001 "Cache Computer EISA Ethernet LAN Adapter" +CCI7001 "Cache Computers, Inc. EISA System Board" +CCI8001 "Cache Computers, Inc. EISA System Board" +CHAA041 "Chase AT4 Intelligent Serial Controller" +CHAA081 "Chase AT8 Intelligent Serial Controller" +CHAA091 "Chase AT8+ Intelligent Serial Controller" +CHAA161 "Chase AT16 Intelligent Serial Controller" +CHAA171 "Chase AT16+ Intelligent Serial Controller" +CMD0003 "CMD Technology, Inc. EISA SCSI Host Adapter" +CNT2000 "900E/950E EISA Bus 32-bit Ethernet LAN Adapter" +COG5000 "Cogent eMASTER+ AT Combo 16-Bit Workstation Ethernet Adapter" +COG7002 "Cogent eMASTER+ ATS Combo Bus-Mastering Ethernet Adapter" +COG9002 "Cogent eMASTER+ EISA XL 32-Bit Burst-mode Ethernet Adapter" +CPQ0101 "Compaq SYSTEMPRO System Board" +CPQ0109 "Compaq SYSTEMPRO System Board (ASSY # 001981)" +CPQ0401 "Compaq DESKPRO 486/33L or 386/33L System Board" +CPQ0501 "Compaq DESKPRO/M System Board" +CPQ0509 "Compaq DESKPRO/M System Board with Audio" +CPQ0511 "Compaq SYSTEMPRO/LT System Board" +CPQ0521 "Compaq DESKPRO XL System Board" +CPQ0531 "Compaq ProSignia 500 System Board" +CPQ0541 "Compaq ProSignia 300 System Board" +CPQ0551 "Compaq ProLiant 2500 Server" +CPQ0552 "Compaq ProLiant 2500 System Board" +CPQ0553 "Compaq ProLiant 1600 System Board" +CPQ0559 "Compaq ProLiant 1500 System Board" +CPQ0561 "Compaq ProLiant 3000 System Board" +CPQ0571 "Compaq ProSignia 200 Server" +CPQ0579 "Compaq ProLiant 800 Server" +CPQ0589 "Compaq ProLiant 850R" +CPQ0601 "Compaq ProSignia Server" +CPQ0609 "Compaq ProSignia Server" +CPQ0611 "Compaq ProSignia Server" +CPQ0621 "Compaq ProSignia Server (ASSY # 3154)" +CPQ0629 "Compaq ProSignia Server (ASSY # 3154)" +CPQ0631 "Compaq ProLiant 1000 Server" +CPQ0639 "Compaq ProLiant 1000 Server" +CPQ0671 "Compaq ProSignia 200" +CPQ0679 "Compaq ProLiant 1850R" +CPQ0680 "Compaq ProLiant CL1850 System Board" +CPQ0681 "ProLiant CL380" +CPQ0685 "Compaq ProLiant DL360" +CPQ0686 "Compaq ProSignia 780" +CPQ0687 "Compaq ProSignia 740" +CPQ0688 "Compaq ProLiant 800 System Board" +CPQ0689 "Compaq ProLiant 1600 System Board" +CPQ0690 "Compaq ProLiant ML370" +CPQ0691 "Compaq ProLiant 800" +CPQ0692 "Compaq ProLiant DL380" +CPQ0701 "Compaq ProSignia VS" +CPQ0709 "Compaq ProLiant 3000 System Board" +CPQ0711 "Compaq ProSignia VS" +CPQ0712 "Compaq ProLiant ML530" +CPQ0714 "Compaq ProLiant ML570" +CPQ0715 "Compaq ProLiant DL580" +CPQ0718 "Compaq TaskSmart N2400" +CPQ071D "Compaq TaskSmart C2500" +CPQ0808 "Compaq ProLiant 5500" +CPQ0809 "Compaq ProLiant 6500 System Board" +CPQ0810 "Compaq ProLiant 6400R System Board" +CPQ0811 "Compaq ProLiant 1500 System Board" +CPQ1001 "Compaq Portable 486" +CPQ1009 "Compaq Portable 486/66" +CPQ1201 "Compaq DESKPRO 486/25" +CPQ1301 "Compaq DESKPRO 486/50L" +CPQ1401 "Compaq Portable 486c" +CPQ1409 "Compaq Portable 486c/66" +CPQ1501 "Compaq SYSTEMPRO/XL Server" +CPQ1509 "Compaq ProLiant 4000 Server" +CPQ1519 "Compaq ProLiant 2000 Server" +CPQ1529 "Compaq ProLiant 4500 Server" +CPQ1561 "Compaq ProLiant 5000 System Board" +CPQ1563 "Compaq ProLiant 6000 System Board" +CPQ1565 "Compaq ProLiant 6500 System Board" +CPQ1601 "Compaq ProLiant 7000" +CPQ1602 "Compaq ProLiant 6000" +CPQ1603 "Compaq Standard Peripherals Board" +CPQ1608 "Compaq ProLiant 8500" +CPQ1609 "Compaq ProLiant 8000" +CPQ1669 "Compaq ProLiant 7000 System Board" +CPQ3001 "Compaq Advanced VGA" +CPQ3011 "Compaq QVision 1024/E Video Controller" +CPQ3021 "Compaq QVision 1024/I Video Controller" +CPQ3111 "Compaq QVision 1024/E Graphics Controller" +CPQ3112 "Compaq QVision 1280/E Graphics Controller" +CPQ3121 "Compaq QVision 1024/I Graphics Controller" +CPQ3122 "Compaq QVision 1280/I Graphics Controller" +CPQ4001 "Compaq 32-Bit Intelligent Drive Array Controller" +CPQ4002 "Compaq Intelligent Drive Array Controller-2" +CPQ4010 "Compaq 32-Bit Intelligent Drive Array Expansion Controller" +CPQ4020 "Compaq SMART Array Controller" +CPQ4030 "Compaq SMART-2/E Array Controller" +CPQ4300 "Compaq Advanced ESDI Fixed Disk Controller" +CPQ4401 "Compaq Integrated SCSI-2 Options Port" +CPQ4410 "Compaq Integrated 32-Bit Fast-SCSI-2 Controller" +CPQ4411 "Compaq 32-Bit Fast-SCSI-2 Controller" +CPQ4420 "Compaq 6260 SCSI-2 Controller" +CPQ4430 "Compaq 32-Bit Fast-Wide SCSI-2/E Controller" +CPQ4431 "Compaq 32-Bit Fast-Wide SCSI-2/E Controller" +CPQ5000 "Compaq 386/33 System Processor Board used as Secondary" +CPQ5251 "Compaq 5/133 System Processor Board-2MB" +CPQ5253 "Compaq 5/166 System Processor Board-2MB" +CPQ5255 "Compaq 5/133 System Processor Board-1MB" +CPQ525D "Compaq 5/100 System Processor Board-1MB" +CPQ5281 "Compaq 486/50 System Processor Board used as Secondary" +CPQ5282 "Compaq 486/50 System Processor Board used as Secondary" +CPQ5287 "Compaq 5/66 System Processor Board used as Secondary" +CPQ528A "Compaq 5/100 System Processor Board w/ Transaction Blaster" +CPQ528B "Compaq 5/100 System Processor Board" +CPQ528F "Compaq 486DX2/66 System Processor Board used as Secondary" +CPQ529B "Compaq 5/90 System Processor Board" +CPQ529F "Compaq 5/133 System Processor Board" +CPQ52A0 "Compaq System Processor" +CPQ5900 "Compaq 486/33 System Processor Board used as Secondary" +CPQ5A00 "Compaq 486/33 System Processor Board (ASSY # 002013) used as Secondary" +CPQ5B00 "Compaq 486DX2/66 System Processor Board used as Secondary" +CPQ5C00 "Compaq 486/33 System Processor Board used as Secondary" +CPQ6000 "Compaq 32-Bit DualSpeed Token Ring Controller" +CPQ6001 "Compaq 32-Bit DualSpeed Token Ring Controller" +CPQ6002 "Compaq NetFlex-2 TR" +CPQ6100 "Compaq NetFlex ENET-TR" +CPQ6101 "Compaq NetFlex-2 Controller" +CPQ6200 "Compaq DualPort Ethernet Controller" +CPQ6300 "Compaq NetFlex-2 DualPort TR" +CPQ7000 "Compaq 32-Bit Server Manager/R Board" +CPQ7001 "Compaq 32-Bit Server Manager/R Board" +CPQ7100 "Compaq Remote Insight Board" +CPQ7200 "Compaq StorageWorks Fibre Channel Host Bus Adapter/E" +CPQ9004 "Compaq 386/33 Processor Board" +CPQ9005 "Compaq 386/25 Processor Board" +CPQ9013 "Compaq 486DX2/66 System Processor Board used as Primary" +CPQ9014 "Compaq 486/33 System Processor Board used as Primary" +CPQ9015 "Compaq 486/33 Processor Board" +CPQ9016 "Compaq 486DX2/66 Processor Board" +CPQ9017 "Compaq 486DX2/50 Processor Board" +CPQ9018 "Compaq 486/33 Processor Board (8 MB)" +CPQ9034 "Compaq 486SX/25 Processor Board" +CPQ9035 "Compaq 486SX/16 Processor Board" +CPQ9036 "Compaq 486SX/25 Processor Board (8 MB)" +CPQ9037 "Compaq 486SX/16 Processor Board (8 MB)" +CPQ9038 "Compaq 486SX/33 Processor Board (8 MB)" +CPQ903C "Compaq 486SX/33 Processor Board (4 MB)" +CPQ9040 "Compaq 5/66 Processor Board" +CPQ9041 "Compaq 5/66 Processor Board" +CPQ9042 "Compaq 5/66 Processor Board" +CPQ9043 "Compaq 5/66 Processor Board" +CPQ9044 "Compaq 5/60 Processor Board" +CPQ9045 "Compaq 5/60 Processor Board" +CPQ9046 "Compaq 5/60 Processor Board" +CPQ9047 "Compaq 5/60 Processor Board" +CPQ9251 "Compaq 5/133 System Processor Board-2MB" +CPQ9253 "Compaq 5/166 System Processor Board-2MB" +CPQ9255 "Compaq 5/133 System Processor Board-1MB" +CPQ925D "Compaq 5/100 System Processor Board-1MB" +CPQ925F "ProLiant 2500 Dual Pentium Pro Processor Board" +CPQ9267 "Compaq Pentium II Processor Board" +CPQ9278 "Compaq Processor Board" +CPQ9279 "Compaq Processor Board" +CPQ9280 "Compaq Processor Board" +CPQ9281 "Compaq 486/50 System Processor Board used as Primary" +CPQ9282 "Compaq 486/50 System Processor Board used as Primary" +CPQ9283 "Processor Modules" +CPQ9285 "Processor Modules" +CPQ9286 "Compaq Slot-1 Terminator Board" +CPQ9287 "Compaq 5/66 System Processor Board used as Primary" +CPQ928A "Compaq 5/100 System Processor Board w/ Transaction Blaster" +CPQ928B "Compaq 5/100 System Processor Board" +CPQ928F "Compaq 486DX2/66 System Processor Board used as Primary" +CPQ929B "Compaq 5/90 System Processor Board" +CPQ929F "Compaq 5/133 System Processor Board" +CPQ92A0 "Compaq ProLiant 1500 Processor Board" +CPQ92A4 "Compaq System Processor Board" +CPQ92B0 "Compaq Processor Board" +CPQ92B1 "Compaq FRC Processor Board" +CPQ92B2 "Compaq Terminator Board" +CPQ92B3 "6/200 FlexSMP Dual Processor Board" +CPQ92B4 "Compaq Processor Board" +CPQ92B5 "Compaq Terminator Board" +CPQ92B6 "Compaq Processor Board" +CPQ92B7 "Compaq Processor(s)" +CPQ92B8 "Compaq Terminator Board" +CPQ92B9 "Compaq Terminator Board" +CPQ9351 "Compaq 5/133 System Processor Board-2MB" +CPQ9353 "Compaq 5/166 System Processor Board-2MB" +CPQ9355 "Compaq 5/133 System Processor Board-1MB" +CPQ935D "Compaq 5/100 System Processor Board-1MB" +CPQ9381 "Compaq 486/50 System Processor Board" +CPQ9382 "Compaq 486/50 System Processor Board" +CPQ9387 "Compaq 5/66 System Processor Board" +CPQ938A "Compaq 5/100 System Processor Board w/ Transaction Blaster" +CPQ938B "Compaq 5/100 System Processor Board" +CPQ939B "Compaq 5/90 System Processor Board" +CPQ939F "Compaq 5/133 System Processor Board" +CPQ9451 "Compaq 5/133 System Processor Board-2MB" +CPQ9453 "Compaq 5/166 System Processor Board-2MB" +CPQ9455 "Compaq 5/133 System Processor Board-1MB" +CPQ945D "Compaq 5/100 System Processor Board-1MB" +CPQ9481 "Compaq 486/50 System Processor Board" +CPQ9482 "Compaq 486/50 System Processor Board" +CPQ9487 "Compaq 5/66 System Processor Board" +CPQ948A "Compaq 5/100 System Processor Board w/ Transaction Blaster" +CPQ948B "Compaq 5/100 System Processor Board" +CPQ949B "Compaq 5/90 System Processor Board" +CPQ949F "Compaq 5/133 System Processor Board" +CPQ9901 "Compaq 486SX/16 Processor Board" +CPQ9902 "Compaq 486SX/16 Processor Board" +CPQ9903 "Compaq 486SX/25 Processor Board" +CPQ9904 "Compaq 486SX/25 Processor Board" +CPQ9905 "Compaq 486SX/25 Processor Board" +CPQ9906 "Compaq 486/33 Processor Board" +CPQ9907 "Compaq 486DX2/66 Processor Board" +CPQ9908 "Compaq 486SX/16 Processor Board" +CPQ9909 "Compaq 486SX/16 Processor Board" +CPQ990A "Compaq 486SX/25 Processor Board" +CPQ990B "Compaq 486SX/25 Processor Board" +CPQ990C "Compaq 486SX/25 Processor Board" +CPQ990D "Compaq 486/33 Processor Board" +CPQ990E "Compaq 486SX/33 Processor Board (8 MB)" +CPQ990F "Compaq 486SX/33 Processor Board (8 MB)" +CPQ9990 "Compaq 386/33 System Processor Board used as Primary" +CPQ9991 "Compaq 386/33 Desktop Processor Board" +CPQ9999 "Compaq 486/33 System Processor Board used as Primary" +CPQ999A "Compaq 486/33 Desktop Processor Board" +CPQ9A83 "Compaq DESKPRO XL Processor Board" +CPQ9AA1 "Compaq ProSignia 500 Processor Board" +CPQ9AA2 "Compaq ProSignia 300 Processor Board" +CPQA000 "Compaq Enhanced Option Slot Serial Board" +CPQA010 "Compaq Enhanced Option Slot Modem Board" +CPQA015 "Compaq Integrated Remote Console (IRC)" +CPQA020 "Compaq Integrated CD Rom Adapter" +CPQA030 "Compaq Integrated CD Rom Adapter" +CPQA040 "Compaq Automatic Server Recovery (ASR)" +CPQA045 "Compaq Integrated Management Display Information" +CPQF000 "Compaq Fixed Disk Drive Feature" +CPQF100 "Compaq Ethernet 16TP Controller" +CPQF110 "Compaq Token Ring 16TR Controller" +CPQF120 "Compaq NetFlex-3/E Controller" +CPQF140 "Compaq NetFlex-3/E Controller" +CPQFA0D "Compaq SYSTEMPRO 4-Socket System Memory Board" +CPQFA0E "Compaq SYSTEMPRO 6-Socket System Memory Board" +CPQFA0F "Compaq DESKPRO 486/25 System Memory Board" +CPQFA1A "Compaq DESKPRO 3-Socket System Memory Board" +CPQFA1B "Compaq DESKPRO 486/50 System Memory Board" +CPQFA1C "Compaq System Memory Expansion Board" +CPQFA1D "Compaq SYSTEMPRO/XL Memory Expansion Board" +CPQFA1E "Compaq Memory Expansion Board" +CPQFB03 "Compaq Async/Parallel Printer Intf Assy 000990" +CPQFB07 "Compaq DESKPRO 2400 Baud Modem" +CPQFB09 "Compaq SpeedPaq 144/I Modem" +CPQFB11 "Compaq Internal 28.8/33.6 Data+Fax Modem" +CPQFC0B "Compaq Advanced Graphics 1024 Board" +CPQFD08 "Compaq 135Mb, 150/250Mb Tape Adapter" +CPQFD13 "Compaq 15MHz ESDI Fixed Disk Controller 001283" +CPQFD17 "Compaq SCSI Tape Adapter" +CPX0301 "Universal 10/100VG Selectable EISA LAN Adapter" +CRS3203 "Crescendo 320 FDDI/CDDI EISA Adapter" +CRS3204 "Cisco CDDI/FDDI EISA Adapter" +CSI0690 "CSI F70X9 EISA FDDI DNI adapter card" +CUI0000 "CUI Examples -- Virtual Board" +DBI0101 "Digi C/X Host Adapter - EISA" +DBI0102 "Digi C/X Host Adapter - EISA" +DBI0201 "Digi EISA/Xem Host Adapter" +DBI0301 "Digi EPC/X Host Adapter - EISA" +DBI0501 "Digi Ports/Xem Host Adapter - ISA" +DBI0601 "Digi EPC/X Host Adapter - ISA" +DBI0701 "Digi C/X Host Adapter - ISA" +DBI0801 "Digi PC/Xr - ISA" +DBI0901 "Digi PC/Xt - ISA" +DBI0C01 "Digi DataFire - ISA" +DBI0D01 "Digi DataFire/4 - ISA" +DBI0E01 "Digi PC IMAC - ISA" +DBI0F01 "Digi PC IMAC/4 - ISA" +DBI1001 "Digi PC/Xe - ISA" +DBI1101 "Digi ES/4 Host Adapter - EISA" +DBI1201 "Digi Acceleport Xr 920 - ISA" +DEC1011 "Digital EISA Video Controller (EVC-1)" +DEC1021 "Digital EISA SCSI Controller (ESC-1)" +DEC1031 "DECpc MTE Series System Board" +DEC2030 "Digital Ethernet Controller (DE203)" +DEC2040 "Digital Ethernet Controller (DE204)" +DEC2050 "Digital Ethernet Controller (DE205)" +DEC2400 "DECpc AXP/150 System Board" +DEC2500 "DEC EISA NVRAM for Alpha AXP" +DEC2A01 "Digital AlphaServer 2100 Family System Board" +DEC2E00 "Digital KFESA DSSI EISA Host Adapter" +DEC2F00 "Digital WANcontroller/EISA (DNSES)" +DEC3001 "DEC FDDIcontroller/EISA Adapter" +DEC3002 "DEC FDDIcontroller/EISA Adapter" +DEC3003 "DEC FDDIcontroller/EISA Adapter" +DEC3004 "DEC FDDI Controller" +DEC4220 "Digital EISA Ethernet Controller (DE422-SA)" +DEC4250 "Digital EtherWORKS Turbo EISA (DE425-AA)" +DEC5000 "Digital AlphaServer 1000, 1000A and AlphaStation 600A System Board" +DEC5100 "Digital AlphaStation 600 Family System Board" +DEC5301 "Digital 800 AlphaServer Family System Board" +DEC6000 "Digital AlphaServer 8200 and 8400 Family System Board" +DEC6400 "Digital AlphaServer 4100 System Board" +DEC8101 "DEC VGA 1024 Graphics Adapter" +DEC8102 "DEC 8514/A-Compatible Graphics Adapter" +DEC8103 "DECpc VGA 1024 NI Graphics Adapter" +DEC8300 "DEC DEPCA LC Ethernet Controller" +DEC8301 "DEC DEPCA TURBO Ethernet Controller" +DEL0000 "Generic ISA Board" +DEL0001 "Dell System(R) 425E(TM) System Board" +DEL0002 "Dell System(R) 433E(TM) System Board" +DEL0003 "Dell System(R) 425TE(TM) System Board" +DEL0004 "Dell System(R) 433TE(TM) System Board" +DEL0005 "Dell Powerline(TM) Workstation 433DE(TM) System Board" +DEL0006 "Dell Powerline(TM) Workstation 420DE(TM) System Board" +DEL0007 "Dell Powerline(TM) Workstation 450DE(TM) System Board" +DEL0008 "Dell Powerline(TM) Server 433SE(TM) System Board" +DEL0009 "Dell Powerline(TM) Server 420SE(TM) System Board" +DEL000A "Dell Powerline(TM) Server 450SE(TM) System Board" +DEL000B "Dell PowerLine(TM) Workstation 425DE(TM) System Board" +DEL000C "Dell PowerLine(TM) Server 425SE(TM) System Board" +DEL0011 "Dell Powerline(TM) Server 450SE/2(TM) |