Index . 블로그창고 . Any comments?

\cat software cat: freebsd

atapicam more forgiving than atapicd?

atapicam more forgiving than atapicd?

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?



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?

All the works in this site except software and copyrighted materials by others (e.g., 문학) are licensed under a Creative Commons License. 소프트웨어 및 문학과 같이 다른 이에게 저작권이 있는 작품을 제외하고 모두 크리에이티브 커먼즈 라이센스를 따른다.
Fri Oct 30 21:31:32 2020 . XHTML . CSS (lightbox.css is not part of Uniqki. ;-) . Powered by Uniqki!
refresh . edit . loginout . index