Re: Locks up with CURRENT

From: Sam Leffler <sam_at_errno.com>
Date: Sat, 11 Oct 2003 10:31:19 -0700
On Saturday 11 October 2003 03:20 am, Antony T Curtis wrote:
> On Sat, 2003-10-11 at 10:36, Antony T Curtis wrote:
> > Hi, I cvsuped at about 10/10/03 11PM GMT and rebuilt world and kernel.
> >
> > It locks up after displaying:
> >
> > GEOM: create disk ad0 dp=0xc456d370
> > ad0: 28615MB <TOSHIBA MK3021GAS> [58140/16/63] at ata0-master UDMA100
> > ata1: resetting devices ..
> > done
> >
> > System is a Toshiba Satellite 2455 notebook.
>
> Removing the CDRW drive allowed it to boot

I suspect this is the same problem I've encountered with a Toshiba DVD/CDRW 
drive on a ServerWorks CSB5 controller.  The following change re-enables some 
code to workaround a missed interrupt and allows my system to boot::

diff ./ata-queue.c /data/devel/netperf/dev/ata/ata-queue.c
319c319
< #if 0
---
> #if 1

However the Toshiba drive is not recognized.  If after booting I do:

atacontrol reinit 1

I sometimes get the drive properly probed.  sos sent me the following change 
to try but I still haven't gotten to it.  Beware that it's probably out of 
date wrt current source:

Index: ata-lowlevel.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/ata-lowlevel.c,v
retrieving revision 1.16
diff -u -r1.16 ata-lowlevel.c
--- ata-lowlevel.c      20 Sep 2003 08:38:33 -0000      1.16
+++ ata-lowlevel.c      26 Sep 2003 06:50:29 -0000
_at__at_ -527,7 +527,8 _at__at_
     ATA_IDX_OUTB(ch, ATA_ALTSTAT, ATA_A_IDS | ATA_A_RESET);
     DELAY(10000); 
     ATA_IDX_OUTB(ch, ATA_ALTSTAT, ATA_A_IDS);
-    DELAY(10000);
+    DELAY(100000);
+    ATA_IDX_INB(ch, ATA_ERROR);
 
     /* wait for BUSY to go inactive */
     for (timeout = 0; timeout < 310; timeout++) {

	Sam
Received on Sat Oct 11 2003 - 08:30:17 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:25 UTC