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