Skip site navigation (1)Skip section navigation (2)
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>