Date: Sat, 13 Jan 2001 10:56:54 +0100 (CET) From: Soren Schmidt <sos@freebsd.dk> To: jmcoopr@webmail.bmi.net (John Merryweather Cooper) Cc: freebsd-bugs@FreeBSD.ORG Subject: Re: kern/23913: UDMA 66 Drive forced to PIO4 on DFI AK-74EC (VIA 686B) motherboard Message-ID: <200101130956.KAA17494@freebsd.dk> In-Reply-To: <200101130200.f0D202H46182@freefall.freebsd.org> from John Merryweather Cooper at "Jan 12, 2001 06:00:02 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
It seems John Merryweather Cooper wrote: > 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. Could you mail me a pciconf -l from you system please, and also a dmesg from a verbose boot ? Are you interested in helping getting the ATA100 going on that chipset, the reason I ask is that I dont have that chipset in my lab yet, and need a crash dummy to get this done :) > 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. Regrettably its not that easy, some chipsets doesn't allow for a downgrade in DMA speed unless they are hard reset inbetween, some chipsets get their DMA engine so screwed up you also need a hard reset to get back to sanity. Thats why I've chosen to fold back to PIO mode when DMA fails, everything else is just as error prone, sad but true... -Søren 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?200101130956.KAA17494>