From owner-freebsd-bugs Sat Jan 13 1:57:27 2001 Delivered-To: freebsd-bugs@freebsd.org Received: from freebsd.dk (freebsd.dk [212.242.42.178]) by hub.freebsd.org (Postfix) with ESMTP id 8211D37B400 for ; Sat, 13 Jan 2001 01:57:07 -0800 (PST) Received: (from sos@localhost) by freebsd.dk (8.9.3/8.9.1) id KAA17494; Sat, 13 Jan 2001 10:56:54 +0100 (CET) (envelope-from sos) From: Soren Schmidt Message-Id: <200101130956.KAA17494@freebsd.dk> Subject: Re: kern/23913: UDMA 66 Drive forced to PIO4 on DFI AK-74EC (VIA 686B) motherboard In-Reply-To: <200101130200.f0D202H46182@freefall.freebsd.org> from John Merryweather Cooper at "Jan 12, 2001 06:00:02 pm" To: jmcoopr@webmail.bmi.net (John Merryweather Cooper) Date: Sat, 13 Jan 2001 10:56:54 +0100 (CET) Cc: freebsd-bugs@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL54 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org 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 > 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