Add PCI IDs for the aic7860 (basically an aic7850 Ultra) and the aic7855
(HP motherboard aic7850 controllers). Properly handle 4 bit controller SCSI IDs. Update my copyright.
This commit is contained in:
parent
62413c04e3
commit
a51d69965b
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Product specific probe and attach routines for:
|
||||
* 3940, 2940, aic7870, and aic7850 SCSI controllers
|
||||
* 3940, 2940, aic7880, aic7870, aic7860 and aic7850 SCSI controllers
|
||||
*
|
||||
* Copyright (c) 1995, 1996 Justin T. Gibbs
|
||||
* Copyright (c) 1995, 1996 Justin T. Gibbs.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -14,12 +14,22 @@
|
||||
* 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. Absolutely no warranty of function or purpose is made by the author
|
||||
* Justin T. Gibbs.
|
||||
* 4. Modifications may be freely made to this file if the above conditions
|
||||
* are met.
|
||||
* 3. The name of the author may not be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* $Id: aic7870.c,v 1.27 1996/03/11 02:49:48 gibbs Exp $
|
||||
* 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.
|
||||
*
|
||||
* $Id: aic7870.c,v 1.28 1996/03/31 03:17:46 gibbs Exp $
|
||||
*/
|
||||
|
||||
#include <pci.h>
|
||||
@ -52,6 +62,8 @@
|
||||
#define PCI_DEVICE_ID_ADAPTEC_2940 0x71789004ul
|
||||
#define PCI_DEVICE_ID_ADAPTEC_AIC7880 0x80789004ul
|
||||
#define PCI_DEVICE_ID_ADAPTEC_AIC7870 0x70789004ul
|
||||
#define PCI_DEVICE_ID_ADAPTEC_AIC7860 0x60789004ul
|
||||
#define PCI_DEVICE_ID_ADAPTEC_AIC7855 0x55789004ul
|
||||
#define PCI_DEVICE_ID_ADAPTEC_AIC7850 0x50789004ul
|
||||
|
||||
#define DEVCONFIG 0x40
|
||||
@ -188,6 +200,12 @@ aic7870_probe (pcici_t tag, pcidi_t type)
|
||||
case PCI_DEVICE_ID_ADAPTEC_AIC7870:
|
||||
return ("Adaptec aic7870 SCSI host adapter");
|
||||
break;
|
||||
case PCI_DEVICE_ID_ADAPTEC_AIC7860:
|
||||
return ("Adaptec aic7860 SCSI host adapter");
|
||||
break;
|
||||
case PCI_DEVICE_ID_ADAPTEC_AIC7855:
|
||||
return ("Adaptec aic7855 SCSI host adapter");
|
||||
break;
|
||||
case PCI_DEVICE_ID_ADAPTEC_AIC7850:
|
||||
return ("Adaptec aic7850 SCSI host adapter");
|
||||
break;
|
||||
@ -244,6 +262,10 @@ aic7870_attach(config_id, unit)
|
||||
case PCI_DEVICE_ID_ADAPTEC_AIC7870:
|
||||
ahc_t = AHC_AIC7870;
|
||||
break;
|
||||
case PCI_DEVICE_ID_ADAPTEC_AIC7860:
|
||||
ahc_t = AHC_AIC7860;
|
||||
break;
|
||||
case PCI_DEVICE_ID_ADAPTEC_AIC7855:
|
||||
case PCI_DEVICE_ID_ADAPTEC_AIC7850:
|
||||
ahc_t = AHC_AIC7850;
|
||||
break;
|
||||
@ -251,6 +273,9 @@ aic7870_attach(config_id, unit)
|
||||
break;
|
||||
}
|
||||
|
||||
/* On all PCI adapters, we allow SCB paging */
|
||||
ahc_f |= AHC_PAGESCBS;
|
||||
|
||||
ahc_reset(io_port);
|
||||
|
||||
if(ahc_t & AHC_AIC7870){
|
||||
@ -296,8 +321,8 @@ aic7870_attach(config_id, unit)
|
||||
csize_lattime |= (64 << 8);
|
||||
}
|
||||
if(bootverbose)
|
||||
printf("ahc%d: BurstLen = %dDWDs, "
|
||||
"Latency Timer = %dPCLKS\n",
|
||||
printf("ahc%d: BurstLen = %ldDWDs, "
|
||||
"Latency Timer = %ldPCLKS\n",
|
||||
unit,
|
||||
csize_lattime & CACHESIZE,
|
||||
(csize_lattime >> 8) & 0xff);
|
||||
@ -343,6 +368,13 @@ aic7870_attach(config_id, unit)
|
||||
load_seeprom(ahc);
|
||||
break;
|
||||
}
|
||||
case AHC_AIC7860:
|
||||
{
|
||||
id_string = "aic7860 ";
|
||||
/* Assume there is no BIOS for these cards? */
|
||||
ahc->flags |= AHC_USEDEFAULTS;
|
||||
break;
|
||||
}
|
||||
case AHC_AIC7850:
|
||||
{
|
||||
id_string = "aic7850 ";
|
||||
@ -489,7 +521,7 @@ load_seeprom(ahc)
|
||||
/* Set the host ID */
|
||||
outb(SCSICONF + iobase, scsi_conf);
|
||||
/* In case we are a wide card */
|
||||
outb(SCSICONF + 1 + iobase, scsi_conf);
|
||||
outb(SCSICONF + 1 + iobase, host_id);
|
||||
|
||||
return(retval);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user