Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 05 Dec 1997 10:58:02 -0800 (PST)
From:      Steven Schwarz <schwarz@cx25450-a.dt1.sdca.home.com>
To:        freebsd-hackers@freebsd.org, freebsd-hardware@freebsd.org
Subject:   FW: support for AIC 7895
Message-ID:  <XFMail.971205105932.schwarz@cx25450-a.dt1.sdca.home.com>
Resent-Message-ID: <XFMail.971205094537.schwarz@cx25450-a.dt1.sdca.home.com>

next in thread | raw e-mail | index | archive | help
I recently put together a system based upon the Tyan Thunder 2
motherboard, which has on-board an Adaptec AIC 7895 SCSI controller.
(This is supposed to be "equivalent to a 3940-AUW", to quote the
motherboard documentation.  Strangely, the Adaptec web site seems to
contain no info on the AIC 7895.)

I am attempting to get this SCSI controller to play with FreeBSD,
starting from 3.0-971022-SNAP.

By adding some printf's to the code for aic7870_probe() in aic7870.c,
I was able to determine an appropriate PCI ID for the card, and then I
added a new constant for that file:

        #define PCI_DEVICE_ID_ADAPTEC_AIC7895 0x78959004ul

I added a new case to aic7870_probe():

        case PCI_DEVICE_ID_ADAPTEC_AIC7895:
                return ("Adaptec aic7895 Ultra SCSI host adapter");
                break;

And I added a new case to ahc_pci_attach():

        case PCI_DEVICE_ID_ADAPTEC_AIC7895:
                ahc_t = AHC_394U;
                if ((aic3940_count & 0x01) != 0) {
                        /* Odd count implies second channel */
                        ahc_f |= AHC_CHNLB;
                }
                aic3940_count++;
                break;

This is not enough to get the card working.

Here is the dmesg output from a boot with -v:

ahc0: <Adaptec aic7895 Ultra SCSI host adapter> rev 0x03 int a irq 19 on pci0.15
.0
ahc0: Reading SEEPROM...checksum error
ahc0: No SEEPROM available
ahc0: Using left over BIOS settings
ahc0: aic7880 Wide Channel A, SCSI Id=7, 16/255 SCBs
ahc0: hardware scb 32 bytes; kernel scb 28 bytes; ahc_dma 8 bytes
ahc0: Resetting Channel A
NEEDSDTR == 0x11
NEEDWDTR == 0x0
DISCENABLE == 0xffff
ahc0: Downloading Sequencer Program...ahc0: 409 instructions downloaded
Done
ahc0: Probing channel A
Choosing drivers for scbus configured at 0
ahc0: waiting for scsi devices to settle
scbus0 at ahc0 bus 0
scb:0xf066ff20 control:0xc0 tcl:0x0 cmdlen:6 cmdpointer:0x9bed8
        datlen:-16777216 data:0x0 segs:0x0 segp:0x0
ahc0: board is not responding
scbus0 target 0 lun 0: SCB 0x0 - timed out in command phase, SCSISIGI
== 0x86 SEQADDR = 0x14b SCSISEQ = 0x12 SSTAT0 = 0x5 SSTAT1 = 0x3
scbus0 target 0 lun 0: abort message in message buffer
...

>From this point on, there is much more of the same, and it appears to
be recognizing a device uk#N at every lun of every target of the bus,
though the timeouts are so long I have not had the patience to
actually let the thing go all the way.

Any advice as to what is going wrong and possible next steps would be
mightily appreciated.... 

Thanks,
sts



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.971205105932.schwarz>