Subject: port-i386/2336: WD dump routines fail recalibrating some drives
To: None <gnats-bugs@NetBSD.ORG>
From: None <pete@demon.net>
List: netbsd-bugs
Date: 04/16/1996 13:27:26
>Number: 2336
>Category: port-i386
>Synopsis: WD dump routines fail recalibrating some drives
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: gnats-admin (GNATS administrator)
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Apr 16 08:50:01 1996
>Last-Modified:
>Originator: Pete Bentley
>Organization:
Demon Internet
>Release: NetBSD-1.1 through Current-16Apr96
>Environment:
System: NetBSD chico.eng.demon.net 1.1 NetBSD 1.1 (PETE) #68: Sat Apr 13 14:18:08 BST 1996 pete@chico.eng.demon.net:/src/NetBSD/1.1/src/sys/arch/i386/compile/PETE i386
>Description:
Before actually writing data, wddump() attempts to recalibrate the drive
by sending a WDCC_RECAL command to it and waiting for it to some ready
again. With some drives (eg ST51080A) the calibrate operation appears to
fail and so no dump gets written
>How-To-Repeat:
reboot -d on a machine with a suitable IDE drive
>Fix:
No idea on the fix (longer timeout, maybe?) I work around it with this
cheesey patch which allows me to disable the recalibrate operation from
the kernel config file:-
--- /src/NetBSD/current/src/sys/dev/isa/wd.c Mon Apr 15 15:02:01 1996
+++ wd.c Tue Apr 16 13:18:03 1996
@@ -1499,6 +1499,7 @@
blkno += lp->d_partitions[part].p_offset;
/* Recalibrate, if first dump transfer. */
+#ifndef WD_DUMP_NORECAL
if (wddumprecalibrated == 0) {
wddumprecalibrated = 1;
if (wdcommandshort(wdc, wd->sc_drive, WDCC_RECAL) != 0 ||
@@ -1508,6 +1509,7 @@
return EIO;
}
}
+#endif
while (nblks > 0) {
daddr_t xlt_blkno = blkno;
>Audit-Trail:
>Unformatted: