[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Windows-NT PCI driver examples (PLX-9060)



> chefren wrote:
>
> Does anyone know of sample sources for Windows-NT for the
> PLX-9060? PLX supplies yet only samples for DOS and W'95.
> I've heard from PLX distributors other people have asked
> for this before. Of course it doesn't matter if sources are 
> for other but quite similar chips.
>
>
> I'm interested in any remarks/warnings/idea's and even 
> questions about this...
> 

I've written one for Cyclone's line of 960-based Intelligent I/O
Controllers. I can't give you the source code, but I'll describe it a
bit. I hope some of this is helpful.

Cyclone's boards have daughter card connectors for I/O modules, so our
driver has no class-specific features built into it. I optimized for
large data transfers by using direct I/O (meaning that the data is
transferred directly to or from the calling application's buffer space),
and the scatter-gather DMA feature on the PCI 9060 (PLX calls it DMA
chaining). Each entry in the chain table or scatter-gather list tends to
be one page (4K on x86) of system memory, sometimes two. The NT driver
builds the chain table and passes it to the adapter in a one-page common
buffer allocated when the driver is started. The adapter performs the
data transfer and interrupts the host when it's done.

The 960 processor on our boards does the work of setting up the DMA
transfer on the 9060; it sounds like you won't have a local processor to
do this with. If you want to do DMA chaining with the PLX device the
chain table has to be in local memory on your board, so you've got to do
an extra copy to get it there. If you're only after simple non-chaining
DMA, you can configure the DMA control registers from the host side, but
this isn't well documented (at least in the manual I have), because PLX
added this feature late in their design.

Our driver gets up to 70 Mbytes/sec on a fast Pentium system, but of
course this number will vary greatly depending on how large the chunks
of data are and what else is going on in the system.

--> Geoff Hickey
    Software Engineer
    Cyclone Microsystems
àdR