From owner-freebsd-hackers Wed Feb 20 13:54:27 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from freebsd.dk (fw-rl0.freebsd.dk [212.242.86.114]) by hub.freebsd.org (Postfix) with ESMTP id 5988E37B400 for ; Wed, 20 Feb 2002 13:54:23 -0800 (PST) Received: (from sos@localhost) by freebsd.dk (8.11.6/8.11.6) id g1KLsJ207746; Wed, 20 Feb 2002 22:54:19 +0100 (CET) (envelope-from sos) From: Søren Schmidt Message-Id: <200202202154.g1KLsJ207746@freebsd.dk> Subject: Re: Serverworks ATA controller & data corruption In-Reply-To: <3C74129F.D8A12732@mindspring.com> To: Terry Lambert Date: Wed, 20 Feb 2002 22:54:19 +0100 (CET) Cc: Andrew Gallatin , freebsd-hackers@FreeBSD.ORG Reply-To: sos@freebsd.dk X-Mailer: ELM [version 2.4ME+ PL94b (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=ISO-8859-1 Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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