Date: Wed, 13 Jan 1999 15:03:13 -0500 (EST) From: "Andrew Atrens" <atrens@nortelnetworks.com> To: lcremean@tidalwave.net Cc: "Joseph T. Lee" <nugundam@la.best.com>, freebsd-current@FreeBSD.ORG Subject: Re: potential ide_pci.c bugster Message-ID: <Pine.BSF.4.05.9901131330050.4255-100000@hcarp00g.ca.nortel.com> In-Reply-To: <19990113105152.A5109@tidalwave.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 13 Jan 1999, Lee Cremeans wrote:
> Date: Wed, 13 Jan 1999 10:51:52 -0500
> From: Lee Cremeans <lee@st-lcremean.tidalwave.net>
> Reply-To: lcremean@tidalwave.net
> To: Joseph T. Lee <nugundam@la.best.com>,
"Atrens, Andrew (A.B.) [EXCHANGE:SKY:1V45:BNR]" <atrens@americasm01.nt.com>,
freebsd-current@FreeBSD.ORG
> Subject: Re: potential ide_pci.c bugster
>
> > wdc1 at 0x170-0x177 irq 15 flags 0xa0ffa0ff on isa
> > wdc1: unit 0 (wd2): <QUANTUM MAVERICK 270A>, LBA, 32-bit, multi-block-8, sleep-hack
> > wd2: 258MB (528640 sectors), 524 cyls, 16 heads, 63 S/T, 512 B/S
> >
> > wd2: interrupt timeout (status 58<rdy,seekdone,drq> error 1<no_dam>)
> > wd2: wdtimeout() DMA status 4
> >
> > -current as of 10th. Error pops up once in a while with or without
> > softupdates. I use it for /usr/src so nothing vital on it..yet.
>
> This drive is too old to support even multiword 2 DMA. If you're getting
> timeouts, and they seem to only happen when accessing certain files or
> areas, then your drive has some bad-but-not-totally-dead sectors on it, and
> the drive electronics are being slow about correcting the error.
>
If this is the case you'll hear an audible `clicking' from the drive as it
attempts to re-read the bad data block.
I'm curious, why is the controller reporting that sleep-hack is enabled
when the wdc flags indicate that it shouldn't be?
you asked for:
> wdc1 at 0x170-0x177 irq 15 flags 0xa0ffa0ff on isa
~
inputted options `0xa' == `1010' ( DMA + 32-bit transfers )
you got:
> wdc1: unit 0 (wd2): <QUANTUM MAVERICK 270A>, LBA, 32-bit, multi-block-8,
sleep-hack
translates to options `0xd' == `1101' ( LBA, 32-bit, Sleep hack )
or,
wdc1 at 0x170-0x177 irq 15 flags 0xd0ffd0ff on isa
~
So you didn't get the options you asked for :)
--
This translation is taken from man wd(4) (and /sys/i386/isa/wd.c) which
describes the flag bitset is mapped like so:
0000 0000 0000 0000 0000 0000 0000 0000
||||
|||+------ 0x1000 Use LBA addressing
||+------- 0x2000 Probe for and use DMA
|+-------- 0x4000 APM Sleep hack
+--------- 0x8000 Test and use the 32bit transfers
Since the `flags' seems to be an `|' of device flags + controller flags,
stored in isa_biotab_wdc[] and isa_devtab_bio[] in ioconf.c, the only way
that I can see that sleep hack _could_ be `enabled' is if something is
trashing those tables.
Andrew.
--
+----------------------------------------------------+
= Andrew Atrens - Nortel Networks (atrens@nortel.ca) =
= P.O. Box 3511, Station C Ottawa, Canada =
= =
= All opinions expressed are mine, not Nortel's. =
+----------------------------------------------------+
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9901131330050.4255-100000>
