Subject: Re: sbic_wait TIMEO
To: None <Jarkko.Hietaniemi@hut.fi, amiga-dev@sun-lamp.cs.berkeley.edu>
From: Eduardo E. Horvath eeh@btr.com <eeh@btr.btr.com>
List: amiga-dev
Date: 06/05/1994 11:44:23
> On Fri, 3 Jun 1994, Jarkko Hietaniemi wrote:
>
> > My original whining on Sat May 14 12:57:37 +0300 1994 was:
> >
> > dma0: A3000 32bit DMA
> > scsi0: scsi id 7
> > a3000scsi0 [1/1]
> > scsi0: target 0 now asynchronous, period=208ns, offset=12
> > sbic_wait TIMEO @1210 with asr=x0 csr=x41
> > ---
> > Stephen Roznowski advised me to try newer kernels. Here are the results:
> > ---
> > netbsd a3000 0427 locks up after the "scsi0: target 0 now async..." *)
> > netbsd generic -"- 1/2 time the aforementioned timeout,
> > 1/2 time it gets past this but then hits swfree panic
> > netbsd a3000 0413 locks up
> > netbsd generic -"- 1/2 the time timeout, 1/2 the time boots ok
> > vmunix generic 0325 -"-
> > vmunix generic 0305 -"-
> >
I have been able to establish at least one problem with my Quantum P40S
drive and a suggested fix.
Apparently it sometimes goes to a msg-in phase, and then disconnects
before transfering any data. While IMHO this is a violation of the SCSI
spec, since we can't fix the drive, we need a workaround.
The solution I found is as follows:
diff -c -r1.1 /sys/arch/amiga/dev/sbic.c
*** 1.1 1994/05/26 10:17:34
--- /sys/arch/amiga/dev/sbic.c 1994/06/05 10:15:15
***************
*** 866,872 ****
case MESG_IN_PHASE:
if (sbicxfstart(regs, sizeof(dev->sc_msg), phase, wait) == 0)
break;
! dev->sc_msg[0] = 0xff;
sbicxfin(regs, sizeof(dev->sc_msg), dev->sc_msg);
/*
* get the command completion interrupt, or we
--- 866,872 ----
case MESG_IN_PHASE:
if (sbicxfstart(regs, sizeof(dev->sc_msg), phase, wait) == 0)
break;
! dev->sc_msg[0] = MSG_CMD_COMPLETE;
sbicxfin(regs, sizeof(dev->sc_msg), dev->sc_msg);
/*
* get the command completion interrupt, or we
=========================================================================
Eduardo Horvath eeh@btr.com
..!{decwrl,mips,fernwood}!btr!eeh
"Trust me, I am cognizant of what I am doing." - Hammeroid
------------------------------------------------------------------------------