All,
I'm pretty new to writing a device driver for Linux, so I come to you
and hope to get some tips, pointers and such.
I've been contracted to write a driver for a high speed data aquisition
interface. High-speed, in this case, means that it will (almost)
saturate half of the PCI bus (I don't know the exact data rate for this
application, but the interface has a advertised 130Mbyte/s maximum
throughput) with incoming data. The data is supposed to go out on an
gigabyte ethernet card, using the second half of the PCI bandwidth.
Sometimes the direction will be reversed, but not very often and (as far
as I understand) not so very-high-speed.
The interface is a bus-mastering PCI thing, currently for a 33Mhz, 32bit
bus. The technical req. are that it has to be a zero-copy driver and the
interface will use DMA to deliver the data. So I'm faced with writing a
driver that can do DMA to directly to userland.
The PCI device is already in the pci.h file, so it'll be recognized. For
the actual application specific hardware there is quite some example
code/driver available. So that part is mostly covered.
So, the basic question is, what does a zero-copy driver look like in
Linux? Any comments/suggestions are welcome!
The more mundane questions (interrupt routine, communication between
driver/user, etc.) I'll simply copy/paste from existing drivers.
Thanks,
Jan Evert van Grootheest
PS: normally my emails get signed. I've seen that nobody uses that
around here. If it bothers you, or is considered as bad practice here,
please let me know.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Sun Apr 23 2000 - 21:00:16 EST