Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Jul 2003 00:38:54 +1000
From:      Stephen McKay <smckay@internode.on.net>
To:        sos@freebsd.org
Cc:        freebsd-hardware@freebsd.org
Subject:   atapicam more forgiving than atapicd?
Message-ID:  <200307091438.h69EcsZu009485@dungeon.home>

next in thread | raw e-mail | index | archive | help
Hi!  In my neverending series of "IDE is hurting me plenty", I ask the
following question: "Is using the very same CDROM drive through atapicam
more reliable than using it with straight atapicd?"

The answer, experimentally at least, is a resounding, "Yes!"

With my hardware (VIA 82C686 ATA66 controller, Liteon 24x burner, but
the rest is SCSI), running FreeBSD 4.8, I get occasional errors running
the burner at UDMA33:

    acd0: READ_BIG - HARDWARE ERROR asc=0x08 ascq=0x03 error=0x00

Interestingly, when I use the burner via the scsi device node, I never
get errors.

I've just done some mind numbing test reads of (just at random) disk one
of the FreeBSD 4.0 install cds.  The cam driver read the disk with no
errors 10 times.  The atapi driver read the disk successfully 5 times and
failed 5 times.  Just remember, it's the same hardware in the same
machine.

My copy of the ATAPI standard says the driver should retry when it
receives the asc/ascq 0x08/0x03 (logical unit communication crc error).
As far as I can tell, the atapi cd driver does not do this.  The scsi
cd driver retries 4 times, I believe.  I think this makes all the difference.

Is there any reason why the atapi cd driver does not retry in this case?

Cheers,

Stephen.

PS The standard also suggests falling back 1 step at a time on persistent
DMA CRC errors, ie 100 -> 66 -> 33 etc before dropping back to PIO.  This
shouldn't be too hard either, eh?



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200307091438.h69EcsZu009485>