Subject: Re: hangs while trying to record a CD
To: Nathan J. Williams <nathanw@wasabisystems.com>
From: Manuel Bouyer <bouyer@antioche.lip6.fr>
List: port-i386
Date: 05/15/2002 16:50:29
On Tue, May 14, 2002 at 03:08:18PM -0400, Nathan J. Williams wrote:
> Steve Woodford <steve@mctavish.co.uk> writes:
>
> > Try disabling DMA (both regular and Ultra-) for cd* in the kernel config
> > file:
> >
> > cd* at atapibus? drive ? flags 0x0ff0
>
> Interesting. This worked (and only disabling ultra-DMA did not),
> although I still got some console spew:
>
> cd0(pciide0:1:0): illegal request, data = 00 00 00 00 64 00 00 00 00 00
> cd0: dos partition I/O error
This one is harmless, I think. It's trying to read a disklabel from the
blank CD
> wdc_atapi_intr: warning: reading only 1 of 2 bytes
> wdc_atapi_intr: warning: reading only 1 of 2 bytes
>
> Perhaps the first two messages are irrelevant, and the DMA version of
> whatever is triggering the latter two was the problem?
This, however, can be a problem. The DMA engine may be confused by the drive
trying to transfer more than it think should be transfered.
A byte count of 1 (or not multiple of 2 in general) is strange for a ATAPI
device, too.
Would be interesting to know what the command is. This patch should show it,
can you try it ?
--- atapi_wdc.c Sat Apr 27 14:52:38 2002
+++ /tmp/atapi_wdc.c Wed May 15 16:49:37 2002
@@ -696,6 +696,7 @@
if (xfer->c_bcount < len) {
printf("wdc_atapi_intr: warning: reading only "
"%d of %d bytes\n", xfer->c_bcount, len);
+ show_scsipi_xs(sc_xfer);
if ((chp->wdc->cap & WDC_CAPABILITY_ATAPI_NOSTREAM)) {
bus_space_read_multi_2(chp->cmd_iot,
chp->cmd_ioh, wd_data,
--
Manuel Bouyer, LIP6, Universite Paris VI. Manuel.Bouyer@lip6.fr
--