Subject: Re: Hard drive light constantly on
To: Daniel Carosone <dan@geek.com.au>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: port-i386
Date: 07/07/2003 23:12:03
On Mon, Jul 07, 2003 at 07:54:06AM +1000, Daniel Carosone wrote:
> 
> I have this problem. It started after I added a cheap cdrw to a
> machine with some SiS allinone-for-amd chipset, and is caused by
> that device. 
> 
> It looks to me like the last probe-time transaction never completes,
> and the bus stays active.  There's nothing else on that ide channel.

Yes, this is probably the problem. I had one box showing this
problem, and it got fixed with this commit:
RCS file: /cvsroot/src/sys/dev/ic/wdc.c,v
Working file: wdc.c
[...]
----------------------------
revision 1.114
date: 2002/04/09 21:17:54;  author: bouyer;  state: Exp;  lines: +34 -2
branches:  1.114.2;  1.114.4;
In wdc_exec_command(), for data commands, read the status register after
the data transfer. This is mandatory for data out commands (although none are
used for now), and not forbiddend for data in commands. Also record if we
did transfers any data.
May solve kern/16159 by making the probe more robust in face of fake identify.

After this change, the problem doesn't show up any more on the boxes I
have access to.
There may be a similar problem somewhere else, but I didn't find where.

Anyway, I have some changes pending to make the probe use kernel threads
and interrupts, as a side effect this may fix this problem too.

-- 
Manuel Bouyer <bouyer@antioche.eu.org>
     NetBSD: 24 ans d'experience feront toujours la difference
--