Subject: Re: Ancient disk no longer probes correctly
To: Dave Huang <khym@bga.com>
From: Charles M. Hannum <mycroft@mit.edu>
List: port-i386
Date: 05/09/1998 00:40:34
> wd1 at wdc0 drive 1: <MICROSCIENCE>
> wd1: using 1-sector 16-bit pio transfers, lba mode
> wd1: 13348MB, 27337054 sec, 512 bytes/sec
What this means is that there's an error in the ATA/ATAPI-4 spec.
*sigh*
Could I get you to boot a kernel with the following additional change
on the same machine, and tell me what it outputs? It would help a lot
in determining which way to work around this problem.
Index: wd.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ata/wd.c,v
retrieving revision 1.173
diff -c -2 -r1.173 wd.c
*** wd.c 1998/04/26 06:03:23 1.173
--- wd.c 1998/05/09 04:41:49
***************
*** 223,233 ****
--- 223,241 ----
WDC_CAPABILITY_DATA32) == 0 ? 16 : 32);
+ printf("XXX config=%04x, capabilities=%04x,%04x, ataversion=%04x\n",
+ d_link->sc_params.wdp_config,
+ d_link->sc_params.wdp_capabilities1,
+ d_link->sc_params.wdp_capabilities2,
+ d_link->sc_params.wdp_ataversion);
+
/* Prior to ATA-4, LBA was optional. */
if ((d_link->sc_params.wdp_capabilities1 & WD_CAP_LBA) != 0)
d_link->sc_flags |= WDF_LBA;
+ #if 0
/* ATA-4 requires LBA. */
if (d_link->sc_params.wdp_ataversion != 0xffff &&
d_link->sc_params.wdp_ataversion >= WD_VER_ATA4)
d_link->sc_flags |= WDF_LBA;
+ #endif
if ((d_link->sc_flags & WDF_LBA) != 0) {