Date: Wed, 20 Feb 2002 22:54:19 +0100 (CET) From: Søren Schmidt <sos@freebsd.dk> To: Terry Lambert <tlambert2@mindspring.com> Cc: Andrew Gallatin <gallatin@cs.duke.edu>, freebsd-hackers@FreeBSD.ORG Subject: Re: Serverworks ATA controller & data corruption Message-ID: <200202202154.g1KLsJ207746@freebsd.dk> In-Reply-To: <3C74129F.D8A12732@mindspring.com>
next in thread | previous in thread | raw e-mail | index | archive | help
It seems Terry Lambert wrote: > Andrew Gallatin wrote: > > Terry Lambert writes: > > > > So.. Is PIO safe? Is there any sort of CRC being done on PIO data? > > > > > > He just said: if your chipset is programmed correctly > > > by the BIOS, then there will not be a problem, but > > > apparently, there is a very narrow band of "correctly" > > > (perhaps even only a single state), and the vendor > > > apparently does not default the chip into that state. > > > > I was asking a more general question about ATA -- I know that UDMA has > > has some sort of CRC protection because (on other machines) I've seen > > the occasional error about a bad CRC, retrying. But what I don't know > > is if PIO offers the same protection. > > PIO is safe. The problem with ATA DMA needing the CRC is > to recover from the case where the DMA is aborted in the > middle, which is not signalled (this was the problem with > the CMD640B ATA chipset interface on Intel). Wrong, PIO is not safe, there is no checks whatsoever on the data, only UDMA modes have CRC performed. > Actually, now that I think about it, using the main CPU and > doinf PIO might be better anyway, given the speed difference > between the main CPU and the DMA engine on the ATA chip; the > overall performance may even be up to 2x better using the > host CPU to do the work, particularly if you special case > the transfer alignment, the way bcopy does. PIO is always slower than DMA... -Søren To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200202202154.g1KLsJ207746>