Subject: Re: Questions about NCR53C9X driver
To: Markus Baeurle <emw4maba@gp.fht-esslingen.de>
From: Michael L. Hitch <osymh@terra.oscs.montana.edu>
List: tech-kern
Date: 08/03/1998 19:36:59
On Aug  1,  1:34pm, Markus Baeurle wrote:
> Mark, what do you mean with "this can be implemented within the DMA frame
> work of the driver"?
> 
> Michael, you said you had a driver using the MI driver that only does PIO.
> Can you tell me how to set this up?  

  A couple of things to note:

    The 53c9x can only do synchronous transfers using DMA mode, so you
    have to disable synchronous negotiations by setting sc_minsync to 0.

    The DMA transfer command that the MI driver writes to the 53c9x command
    register needs to be converted to a non-DMA command.

  The mac68k has a PIO-only driver in mac68k/obio/esp.c, which I used
as the starting point for the Amiga driver.

  The current Amiga driver does a combination of PIO and DMA transfers.  The
flsc driver was particularly nasty because I could not get DMA transfers to
work when the driver was running a polled operation (during autoconf and
when dumping).  I had to do some trickery to delay the actual synchronous
negotion until the driver started a non-polled operation.  Even more fun
and games was when the driver switches back to polled mode when writing
a kernel dump.  The target had to be switched back to asynchronous mode
so it could use PIO transfers.

Michael