From owner-freebsd-current@FreeBSD.ORG Sat Feb 7 18:37:20 2009 Return-Path: Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4661E106567F for ; Sat, 7 Feb 2009 18:37:20 +0000 (UTC) (envelope-from sos@FreeBSD.ORG) Received: from deepcore.dk (adsl.deepcore.dk [87.63.29.106]) by mx1.freebsd.org (Postfix) with ESMTP id C58418FC08 for ; Sat, 7 Feb 2009 18:37:19 +0000 (UTC) (envelope-from sos@FreeBSD.ORG) Received: from [192.168.0.138] ([192.168.0.138]) by deepcore.dk (8.14.3/8.14.2) with ESMTP id n17IbEZs083873; Sat, 7 Feb 2009 19:37:15 +0100 (CET) (envelope-from sos@FreeBSD.ORG) Message-Id: From: =?ISO-8859-1?Q?S=F8ren_Schmidt?= To: Mikulas Patocka In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed; delsp=yes Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Apple Message framework v930.3) Date: Sat, 7 Feb 2009 19:37:14 +0100 References: X-Mailer: Apple Mail (2.930.3) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.0 (deepcore.dk [217.20.59.72]); Sat, 07 Feb 2009 19:37:15 +0100 (CET) Cc: bofh@terranova.net, freebsd-current@FreeBSD.ORG Subject: Re: HT 1000 SATA suggestion X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Feb 2009 18:37:20 -0000 On 7Feb, 2009, at 11:27 , Mikulas Patocka wrote: > Hi > > I found that you have problems with HT1000 SATA in FreeBSD. > > The problem is actually explained in the comments in the Linux driver. > > For normal IDE & legacy SATA cards, the sequence to perform DMA is =20 > this: > > - load register file > - submit the command to the disk > - setup dma sg table address and start dma > > But for ServerWorks SATA chips this sequence is wrong. If there is =20 > some > CPU latency and data from the disk arrive BEFORE you start the dma =20 > engine, > the controller will hang or corrupt the data. > > The correct sequence is to first start dma and then write the =20 > command to > the taskfile. (Linux does this on serverworks SATA chips for both =20 > read and > write commands, likely it doesn't cause problems with write commands) Just for the record this (amongst lots of other things) was tried long =20= ago and does *not* solve the problem we were having. I'm not sure what to make out of their reasoning though, as the result =20= from the problem they describe would be that the amount of data =20 transfered would be wrong, in that case the transaction will either =20 fail or hang the controller, which in both cases should trigger error =20= handling. -S=F8ren