Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

NOSYNC/NOWIDE/NOTAG & ansii rev

2 views
Skip to first unread message

Manuel Bouyer

unread,
Jul 24, 2000, 3:00:00 AM7/24/00
to
Hi,
In scsiconf.c we actually do the following:
if ((inqbuf.version & SID_ANSII) >= 2) {
if ((inqbuf.flags & SID_CmdQue) == 0)
sc_link->quirks |= SDEV_NOTAG;
if ((inqbuf.flags & SID_Sync) == 0)
sc_link->quirks |= SDEV_NOSYNC;
if ((inqbuf.flags & SID_WBus16) == 0)
sc_link->quirks |= SDEV_NOWIDE;
}

This save some negotiation in the driver if we already know a feature
isn't supported. Shoudl't we always set SDEV_NOWIDE | SDEV_NOTAG for
SID_ANSII < 2 ?

--
Manuel Bouyer, LIP6, Universite Paris VI. Manuel...@lip6.fr
--

Matthew Jacob

unread,
Jul 24, 2000, 3:00:00 AM7/24/00
to
On Mon, 24 Jul 2000, Manuel Bouyer wrote:

> Hi,
> In scsiconf.c we actually do the following:
> if ((inqbuf.version & SID_ANSII) >= 2) {
> if ((inqbuf.flags & SID_CmdQue) == 0)
> sc_link->quirks |= SDEV_NOTAG;
> if ((inqbuf.flags & SID_Sync) == 0)
> sc_link->quirks |= SDEV_NOSYNC;
> if ((inqbuf.flags & SID_WBus16) == 0)
> sc_link->quirks |= SDEV_NOWIDE;
> }
>
> This save some negotiation in the driver if we already know a feature
> isn't supported. Shoudl't we always set SDEV_NOWIDE | SDEV_NOTAG for
> SID_ANSII < 2 ?

No. SYNC was was supported for SID_ANSII == 0.


Manuel Bouyer

unread,
Jul 24, 2000, 3:00:00 AM7/24/00
to
On Mon, Jul 24, 2000 at 08:55:37AM -0700, Matthew Jacob wrote:
> > This save some negotiation in the driver if we already know a feature
> > isn't supported. Shoudl't we always set SDEV_NOWIDE | SDEV_NOTAG for
> > SID_ANSII < 2 ?
>
> No. SYNC was was supported for SID_ANSII == 0.

Yes, but I was only talking about WIDE and TAG, not SYNC.

Matthew Jacob

unread,
Jul 24, 2000, 3:00:00 AM7/24/00
to

> On Mon, Jul 24, 2000 at 08:55:37AM -0700, Matthew Jacob wrote:
> > > This save some negotiation in the driver if we already know a feature
> > > isn't supported. Shoudl't we always set SDEV_NOWIDE | SDEV_NOTAG for
> > > SID_ANSII < 2 ?
> >
> > No. SYNC was was supported for SID_ANSII == 0.
>
> Yes, but I was only talking about WIDE and TAG, not SYNC.

Sorry- you're right-. Just woke up. Still, I'm reluctant to set NOWIDE/NOTAG
for for some CCS devices- they probably work. But this is all rapidly getting
to be an edge case.

I think I could see a case be made for SDEV_NOWIDE | SDEV_NOTAG set
for SID_ANSII == 0.

This whole midlayer needs some work so that the HBA doesn't do negotiations
until the midlayer says to do so anyway. I think I'll try and fix this for
1.5.

-matt

Manuel Bouyer

unread,
Jul 24, 2000, 3:00:00 AM7/24/00
to
On Mon, Jul 24, 2000 at 09:14:19AM -0700, Matthew Jacob wrote:
> Sorry- you're right-. Just woke up. Still, I'm reluctant to set NOWIDE/NOTAG
> for for some CCS devices- they probably work. But this is all rapidly getting
> to be an edge case.

Ok, it seems most drivers ignore these flags anyway. A grep in sys/dev/*
shows that aic7xxx.c handles only SDEV_NOTAG. Only isp_netbsd.c, and siop since
a few minutes sees to DTRT with SDEV_NOTAG, SDEV_NOSYNC and SDEV_NOWIDE :)

>
> I think I could see a case be made for SDEV_NOWIDE | SDEV_NOTAG set
> for SID_ANSII == 0.

Ok, I'll do so unless someone objects.

>
> This whole midlayer needs some work so that the HBA doesn't do negotiations
> until the midlayer says to do so anyway. I think I'll try and fix this for
> 1.5.

Great, thanks !

Ignatios Souvatzis

unread,
Jul 24, 2000, 3:00:00 AM7/24/00
to
On Mon, Jul 24, 2000 at 03:30:32PM +0200, Manuel Bouyer wrote:
> Hi,
> In scsiconf.c we actually do the following:
> if ((inqbuf.version & SID_ANSII) >= 2) {
> if ((inqbuf.flags & SID_CmdQue) == 0)

Where do those flags originate?
-is

Martin J. Laubach

unread,
Jul 24, 2000, 3:00:00 AM7/24/00
to
| > I think I could see a case be made for SDEV_NOWIDE | SDEV_NOTAG set
| > for SID_ANSII == 0.
|
| Ok, I'll do so unless someone objects.

This might even help for PR/9646, where an old CD-Rom drive
is not probed right. In a variation, I had another version of
the ahc driver loop endlessly (well, I reset the machine after
15 hours or so :) trying to ascertain the CD-Rom's capabilities
-- turning off "Do wide negociation" in the Adaptec's BIOS
cured the problem.

mjl

Manuel Bouyer

unread,
Jul 24, 2000, 3:00:00 AM7/24/00
to

From the inquiry buffer, returned by the device. That is, the device tell
us what it can do and we translate this for the controller.

0 new messages