A large number of people have expressed interest recently in the userspace i/o driver core which allows userspace drivers to be written to handle some types of hardware.

Right now the UIO core is working and in the [-mm kernel releases][mm]. It's been rewritten from the last time patches were posted to lkml and is much simpler. It also includes full documentation and two example drivers and two example userspace programs that test those drivers.

This core allows for a very tiny kernel driver to be written to handle the interrupt generated by the hardware. Everything else can be done in userspace (direct memory access, interrupt processing, controller logic, etc.) In some instances, this framework has shown a noticable improvement over an all-in-kernel driver.

But in order to get this core into the kernel tree, we need to have some "real" drivers written that use it. So, for anyone that wants to see this go into the tree, now is the time to step forward and post your patches for hardware that this kind of driver interface is needed.

If no such drivers appear, then there is a very slim chance that this interface will be accepted into the tree.

The patches can be found in the -mm releases or at:

http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-01-driver/uio.patch - UIO core

http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-01-driver/uio-documentation.patch - UIO documentation

http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-01-driver/uio-dummy.patch http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-01-driver/uio-irq.patch - two example kernel modules and userspace programs showing how to use the UIO interface.

posted Wed, 13 Dec 2006 in [/linux]


My Linux Stuff