i386/109200: READ_UDMA UDMA ICRC error cause not detecting cable type

Joris Dobbelsteen joris at familiedobbelsteen.nl
Thu Feb 15 11:10:07 UTC 2007


>Number:         109200
>Category:       i386
>Synopsis:       READ_UDMA UDMA ICRC error cause not detecting cable type
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-i386
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Feb 15 11:10:06 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Joris Dobbelsteen
>Release:        6.2-RELEASE
>Organization:
>Environment:
FreeBSD 6.2-RELEASE FreeBSD 6.2-RELEASE #0 Fri Jan 12 10:40:27 UTC 2007 root at dessler.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
>Description:
Several:
ad0: WARNING - READ_DMA UDMA ICRC error (retrying request) LBA=XXXXXX
repeatedly, eventually you will see
ad0: FAILURE - READ_DMA status=51<READY,DSC,ERROR> error=84<ICRC,ABORTED> LBA=XXXXXX

The cable is not suited for UDMA66 mode, but it is for UDMA33 mode.


System is AMD-K6 3D (500 MHz)
some things from the dmesg (for identification purposes)
atapci0: <VIA 82C596B UDMA66 controller> port .. at device 7.1 on pci0

>How-To-Repeat:
Just wait, it will fail...
>Fix:
Do like everybody else:
The BIOS detects: 40-conductor cable instead of 80-conductor cable...
Linux sets the mode to UDMA33 at most, automatically...
Windows sets the mode to UDMA33 at most, automatically...

FreeBSD won't, except in safe mode it default to PIO4 (which works).
Otherwise you need to manually instruct it "/sbin/atacontrol mode ad0 UDMA33".
So please detect it and go into UDMA33 mode.
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-i386 mailing list