Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Jan 2001 18:00:02 -0800 (PST)
From:      John Merryweather Cooper <jmcoopr@webmail.bmi.net>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/23913: UDMA 66 Drive forced to PIO4 on DFI AK-74EC (VIA 686B)  motherboard
Message-ID:  <200101130200.f0D202H46182@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/23913; it has been noted by GNATS.

From: John Merryweather Cooper <jmcoopr@webmail.bmi.net>
To: freebsd-gnats-submit@FreeBSD.org, jmcoopr@webmail.bmi.net
Cc:  
Subject: Re: kern/23913: UDMA 66 Drive forced to PIO4 on DFI AK-74EC (VIA 686B) 
 motherboard
Date: Fri, 12 Jan 2001 17:55:55 -0800

 Looking at ata-all.c and ata-disk.c, I believe the problem is two-fold:
 
 1) the VIA 686B is NOT a VIA 686A -- in particular, the 686B supports
 UDMA Mode 5.  However, no prevision is made to identify it based on the
 different revision number--appears to Rev. 0x40 on my machine as opposed
 to Rev. 0x0 for a 686A.  Code needs to be added to ata-all to detect and
 properly initialize the 686B.
 
 2) I believe the fallback logic -- going from UDMA mode straight to PIO
 4 is a poor choice.  Going to PIO 4 masks the existence of hardware
 errors (all PIO modes lack any sort of hardware error detection; whereas
 UDMA modes have CRC error detection).  Particularly when initializing to
 UDMA modes 4 or 5, I believe the correct fallback should be to the next
 lower UDMA mode to preserve CRC error detection (and the reliability
 that it helps ensure) as long as possible.
 
 On the contrary for PIO devices though, the fallback should be PIO 0.
 In fact, I would appreciate a kernel option that allows me to force
 ATAPI devices like my ZIP drive to PIO 0 for this reason.
 
 YMMV.
 
 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




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