Re: HT 1000 SATA suggestion

From: Søren Schmidt <sos_at_FreeBSD.ORG>
Date: Sat, 7 Feb 2009 19:37:14 +0100
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  
> 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  
> some
> CPU latency and data from the disk arrive BEFORE you start the dma  
> engine,
> the controller will hang or corrupt the data.
>
> The correct sequence is to first start dma and then write the  
> command to
> the taskfile. (Linux does this on serverworks SATA chips for both  
> 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  
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  
from the problem they describe would be that the amount of data  
transfered would be wrong, in that case the transaction will either  
fail or hang the controller, which in both cases should trigger error  
handling.

-Søren
Received on Sat Feb 07 2009 - 17:37:20 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:41 UTC