Subject: kern/9577: fix for problems with Qlogic Ultra3 SCSI bus resets
To: None <gnats-bugs@gnats.netbsd.org>
From: Matthew Jacob <mjacob@feral.com>
List: netbsd-bugs
Date: 03/08/2000 11:57:44
>Number: 9577
>Category: kern
>Synopsis: fix for problems with Qlogic Ultra3 SCSI bus resets
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: kern-bug-people (Kernel Bug People)
>State: open
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Wed Mar 8 11:57:01 2000
>Last-Modified:
>Originator:
>Organization:
Recovering Ex-NetBSD developers
>Release: 03072000
>Environment:
System: NetBSD nobble 1.4U NetBSD 1.4U (ALPHA) #0: Sun Mar 5 16:15:02 PST 2000 mjacob@nobble:/space/syssrc/sys/arch/alpha/compile/ALPHA alpha
>Description:
During booting, the SCSI bus resets issued for the first time by the
driver for the Qlogic 12160 Ultra3 card seems to then report several
commands sent *after* this as having been destroyed by the SCSI bus
reset. Bad for probing.
>How-To-Repeat:
Boot a system with a Qlogic 12160 in it.
>Fix:
Skip resets for the Ultra3 card.
Index: isp_netbsd.c
===================================================================
RCS file: /cvsroot/syssrc/sys/dev/ic/isp_netbsd.c,v
retrieving revision 1.23
diff -u -r1.23 isp_netbsd.c
--- isp_netbsd.c 2000/02/12 02:25:28 1.23
+++ isp_netbsd.c 2000/03/08 19:53:18
@@ -102,9 +102,12 @@
/*
* Send a SCSI Bus Reset (used to be done as part of attach,
- * but now left to the OS outer layers).
+ * but now left to the OS outer layers). Don't do this for
+ * Ultra3 cards- there seems to be some kind of residual
+ * problem that causes the next several commands to be nuked
+ * by the Qlogic f/w (bad for consistent probing).
*/
- if (IS_SCSI(isp)) {
+ if (IS_SCSI(isp) && !IS_ULTRA3(isp)) {
int bus = 0;
(void) isp_control(isp, ISPCTL_RESET_BUS, &bus);
if (IS_DUALBUS(isp)) {
@@ -112,7 +115,7 @@
(void) isp_control(isp, ISPCTL_RESET_BUS, &bus);
}
SYS_DELAY(2*1000000);
- } else {
+ } else if (IS_FC(isp)) {
int i, j;
fcparam *fcp = isp->isp_param;
delay(2 * 1000000);
>Audit-Trail:
>Unformatted: