Subject: Re: sync negotiation with drives
To: Riccardo Mottola <rollei@tiscalinet.it>
From: Michael <macallan18@earthlink.net>
List: port-macppc
Date: 10/29/2004 12:02:13
Hello,

> I have an Ultrastar XP drive, at the time a quite high-end drive. (So
> crippling its sync transfers is a bad idea anyway). 
Sure it is, but asynchronous is still better than no transfers at all, I have a Barracuda SCA in the S900 connected to mesh, get about 6MB/s which is less than half of what the drive could do, so sure, getting sync to work is the best option. 
Unfortunately there don't seem to be freely accessible docs about the mesh.

So I had a look at the Linux driver which apparently works in synchronous mode, this comment looks interesting:

        /*
          * There appears to be a race with reselection sometimes,
          * where a target reselects us just as we issue the
          * arbitrate command.  It seems that then the arbitrate
          * command just hangs waiting for the bus to be free
          * without giving us a reselection exception.
          * The only way I have found to get it to respond correctly
          * is this: disable reselection before issuing the arbitrate
          * command, then after issuing it, if it looks like a target
          * is trying to reselect us, reset the mesh and then enable
          * reselection.
          */

Since the bus hangs after a few seconds and NetBSD's driver doesn't do what the comment describes it might be something to try.

have fun
Michael