Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Sep 2000 09:02:28 -0600
From:      "Justin T. Gibbs" <gibbs@plutotech.com>
To:        "Jonel Rienton" <jmr@freebsduser.org>
Cc:        stable@FreeBSD.org
Subject:   Re: MFC of ahc driver updates (long-ish) 
Message-ID:  <200009251501.JAA44574@pluto.plutotech.com>
In-Reply-To: Your message of "Mon, 25 Sep 2000 09:37:21 CDT." <009201c026fe$1ce9b1c0$17161d0a@jonelrienton.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
>Justin,
>
>i've attached the log today.  thanks.

In the future, send text as text.  Using uudecode is a pain.

I believe the your problem is caused by a firmware bug in
the Seagate drive and perhaps the aic7xxx driver being
overly strict in its conformance to the SPI-3 spec.  If
you search for this code in aic7xxx.c:

                        /*
                         * According to the spec, a DT only
                         * period factor with no DT option
                         * set implies async.
                         */
                        if ((ppr_options & MSG_EXT_PPR_DT_REQ) == 0
                         && period == 9)
                                offset = 0;

And add braces and a printf to where offset is set to 0, I would
bet money that your printf will get hit.  The code might look like
this:

                        if ((ppr_options & MSG_EXT_PPR_DT_REQ) == 0
                         && period == 9) {
				printf("%s: target %d returned DT sync period "
				       "without specifying DT transfers. "
				       "Async transfers implied.\n",
                                       ahc_name(ahc), devinfo->target);
                                offset = 0;
			}

I can't see any other way for the driver to drop all the way to async
like this.  The funny thing is that the drive seems to be agreeing that
transfers are now async since you are not getting parity errors for later
I/O.  Very odd.

If the printf does get hit, you should be able to run the drive at 40MHz
sync.  Just lower the negotiated rate using SCSI-Select.  I'm going to
see if I can dig up one of these drives at work and see if I can get
similar behavior out of it.

--
Justin



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




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