diff options
| author | Justin T. Gibbs <gibbs@FreeBSD.org> | 2000-01-14 03:33:38 +0000 |
|---|---|---|
| committer | Justin T. Gibbs <gibbs@FreeBSD.org> | 2000-01-14 03:33:38 +0000 |
| commit | 9c0b8410b8e0ba1b2bfb7902b1737b14d8a68fe4 (patch) | |
| tree | 466b58478a195571fb1568926068da7f8fa3882b /sys/dev/advansys/adv_pci.c | |
| parent | 01779872245462cd3d3ed68618775e77c321d06b (diff) | |
Notes
Diffstat (limited to 'sys/dev/advansys/adv_pci.c')
| -rw-r--r-- | sys/dev/advansys/adv_pci.c | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/sys/dev/advansys/adv_pci.c b/sys/dev/advansys/adv_pci.c index 8f8fc58f374b..5e145281819b 100644 --- a/sys/dev/advansys/adv_pci.c +++ b/sys/dev/advansys/adv_pci.c @@ -3,12 +3,20 @@ * Advanced Systems Inc. SCSI controllers: * * Connectivity Products: - * ABP920 - Bus-Master PCI (16 CDB) - * ABP930 - Bus-Master PCI (16 CDB) * - * ABP930U - Bus-Master PCI Ultra (16 CDB) - * ABP930UA - Bus-Master PCI Ultra (16 CDB) - * ABP960 - Bus-Master PCI MAC/PC (16 CDB) ** - * ABP960U - Bus-Master PCI MAC/PC Ultra (16 CDB) + * ABP902/3902 - Bus-Master PCI (16 CDB) + * ABP3905 - Bus-Master PCI (16 CDB) + * ABP915 - Bus-Master PCI (16 CDB) + * ABP920 - Bus-Master PCI (16 CDB) + * ABP3922 - Bus-Master PCI (16 CDB) + * ABP3925 - Bus-Master PCI (16 CDB) + * ABP930 - Bus-Master PCI (16 CDB) * + * ABP930U - Bus-Master PCI Ultra (16 CDB) + * ABP930UA - Bus-Master PCI Ultra (16 CDB) + * ABP940UA/3940UA - Bus-Master PCI Ultra (240 CDB) + * ABP960 - Bus-Master PCI MAC/PC (16 CDB) ** + * ABP960U - Bus-Master PCI MAC/PC Ultra (16 CDB) + * ABP970U - Bus-Master PCI MAC/PC Ultra (240 CDB) + * ABP3960UA - Bus-Master PCI MAC/PC (240 CDB) * * Single Channel Products: * ABP940 - Bus-Master PCI (240 CDB) @@ -18,6 +26,7 @@ * * Dual Channel Products: * ABP950 - Dual Channel Bus-Master PCI (240 CDB Per Channel) + * ABP980UA/3980UA - Four Channel Bus-Master PCI Ultra (16 CDB Per Chan.) * * Footnotes: * * This board has been sold by SIIG as the Fast SCSI Pro PCI. @@ -31,7 +40,7 @@ * 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. + * without modification. * 2. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * @@ -67,7 +76,7 @@ #define PCI_DEVICE_ID_ADVANSYS_1200A 0x110010CD #define PCI_DEVICE_ID_ADVANSYS_1200B 0x120010CD -#define PCI_DEVICE_ID_ADVANSYS_ULTRA 0x130010CD +#define PCI_DEVICE_ID_ADVANSYS_3000 0x130010CD #define PCI_DEVICE_REV_ADVANSYS_3150 0x02 #define PCI_DEVICE_REV_ADVANSYS_3050 0x03 @@ -98,17 +107,21 @@ COMPAT_PCI_DRIVER (adv_pci, adv_pci_driver); static const char* advpciprobe(pcici_t tag, pcidi_t type) { - int rev = pci_conf_read(tag, PCI_CLASS_REG) & 0xff; + int rev; + + rev = pci_conf_read(tag, PCI_CLASS_REG) & PCI_REVISION_MASK; switch (type) { case PCI_DEVICE_ID_ADVANSYS_1200A: return ("AdvanSys ASC1200A SCSI controller"); case PCI_DEVICE_ID_ADVANSYS_1200B: return ("AdvanSys ASC1200B SCSI controller"); - case PCI_DEVICE_ID_ADVANSYS_ULTRA: + case PCI_DEVICE_ID_ADVANSYS_3000: if (rev == PCI_DEVICE_REV_ADVANSYS_3150) - return ("AdvanSys ASC3150 Ultra SCSI controller"); - else - return ("AdvanSys ASC3050 Ultra SCSI controller"); + return ("AdvanSys ASC3150 SCSI controller"); + else if (rev == PCI_DEVICE_REV_ADVANSYS_3050) + return ("AdvanSys ASC3030/50 SCSI controller"); + else if (rev >= PCI_DEVICE_REV_ADVANSYS_3150) + return ("Unknown AdvanSys controller"); break; default: break; @@ -231,9 +244,7 @@ advpciattach(pcici_t config_id, int unit) if (adv->chip_version >= ADV_CHIP_VER_PCI_ULTRA_3150) adv->type |= ADV_ULTRA; - if (adv->chip_version == ADV_CHIP_VER_PCI_ULTRA_3150) - extra_cfg = ADV_IFC_ACT_NEG | ADV_IFC_SLEW_RATE; - else if (adv->chip_version == ADV_CHIP_VER_PCI_ULTRA_3050) + if (adv->chip_version == ADV_CHIP_VER_PCI_ULTRA_3050) extra_cfg = ADV_IFC_ACT_NEG | ADV_IFC_WR_EN_FILTER; else extra_cfg = ADV_IFC_ACT_NEG | ADV_IFC_SLEW_RATE; |
