From owner-freebsd-stable Mon Sep 25 8: 1:29 2000 Delivered-To: freebsd-stable@freebsd.org Received: from pluto.plutotech.com (mail.plutotech.com [206.168.67.137]) by hub.freebsd.org (Postfix) with ESMTP id 31B8C37B42C for ; Mon, 25 Sep 2000 08:01:19 -0700 (PDT) Received: from caspian.plutotech.com (root@mail.plutotech.com [206.168.67.137]) by pluto.plutotech.com (8.9.2/8.9.1) with ESMTP id JAA44574; Mon, 25 Sep 2000 09:01:16 -0600 (MDT) (envelope-from gibbs@plutotech.com) Message-Id: <200009251501.JAA44574@pluto.plutotech.com> X-Mailer: exmh version 2.1.1 10/15/1999 To: "Jonel Rienton" Cc: stable@FreeBSD.org Subject: Re: MFC of ahc driver updates (long-ish) In-Reply-To: Your message of "Mon, 25 Sep 2000 09:37:21 CDT." <009201c026fe$1ce9b1c0$17161d0a@jonelrienton.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 25 Sep 2000 09:02:28 -0600 From: "Justin T. Gibbs" Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG >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