Date: Thu, 27 Sep 2001 17:53:51 -0400 (EDT) From: Michael Giovinco <gio@actuality-systems.com> To: aic7xxx@FreeBSD.ORG Subject: Re: Wide and Synchronous transfers in Linux Message-ID: <Pine.LNX.4.10.10109271749490.28022-100000@jigglypuff.actuality-systems.com> In-Reply-To: <Pine.LNX.4.10.10109271659120.27895-100000@jigglypuff.actuality-systems.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, Nevermind about the message I sent a little earlier. I figured out what was wrong. For those of you who are curious, I had been setting the "Additional data length" field in the inquiry structure to be "0", because I had assumed it meant the additional data beyond the standard 96 byte length. A much better SCSI book clarified it for me, and now I realize that its the amount of data past byte 4 - in my case it should be "92". Windows didn't seem to care and read the data anyways, but Linux took that to mean that the data past byte 4 was not valid and it believe the device was not capable of the functionality I told it about in byte 7. Setting it to "92" made the driver recognize the device appropriately. Thanks. Mike On Thu, 27 Sep 2001, Michael Giovinco wrote: > > Hello, > > I have a external (target) SCSI device that I've built and I've > been trying to get it to work under Linux using the generic (sg) driver. > The host computer that I am using has a Adaptec 29160 SCSI card in it so I > am using the AIC7XXX driver in a 2.4.9 version kernel (slackware, if > anyone cares). The device uses a LSI SYM875 chip if anyone cares. So far > everything is going great - except that I am unable to get wide or > synchronous transfers to work. Thus, my transfers are very slow (both the > "goal" and "current" are listed as 3.30 MB/s according to > /proc/scsi/aic7xxx/0). > The device had previously been running under Windows NT where I > learned that NT will negotiate wide and synchronous transfer if the > inquiry data it receives affirms that the target device is capable of > them. I have yet to see the Linux driver attempt to negotiate a wide or > synchronous transaction so I took it upon myself to try - namely, have my > target device do the negotiation. The host computer responds with the > correct protocol, except it always responds with "narrow" when I ask for > "wide", and it responds with zero for the period and offset when I request > specific values (80ns offset and 16 offset is what I'd like to use). It > appears to know that my host adaptor is capable of this (it says > Ultra160 Wide Channel A etc in /proc/scsi/aic7xxx/0). What do I have to > do, or have my target device do, to convince it to perform wide and > synchronous transfers? I've been digging through the aic7xxx driver code > and I can't figure out where it is going wrong. Is there something special > I need to put in the inquiry data returned? Or is the some boot parameter > I need to give the driver? > I'd appreciate any help anyone could give me on this matter. > Thanks. > > > > Mike > gio@actuality-systems.com > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe aic7xxx" in the body of the message > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe aic7xxx" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.10.10109271749490.28022-100000>