Skip site navigation (1)Skip section navigation (2)
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>