| # SPDX-License-Identifier: GPL-2.0-only |
| menuconfig UIO |
| tristate "Userspace I/O drivers" |
| depends on MMU |
| help |
| Enable this to allow the userspace driver core code to be |
| built. This code allows userspace programs easy access to |
| kernel interrupts and memory locations, allowing some drivers |
| to be written in userspace. Note that a small kernel driver |
| is also required for interrupt handling to work properly. |
| |
| If you don't know what to do here, say N. |
| |
| if UIO |
| |
| config UIO_CIF |
| tristate "generic Hilscher CIF Card driver" |
| depends on PCI |
| help |
| Driver for Hilscher CIF DeviceNet and Profibus cards. This |
| driver requires a userspace component called cif that handles |
| all of the heavy lifting and can be found at: |
| <http://www.osadl.org/projects/downloads/UIO/user/> |
| |
| To compile this driver as a module, choose M here: the module |
| will be called uio_cif. |
| |
| config UIO_PDRV_GENIRQ |
| tristate "Userspace I/O platform driver with generic IRQ handling" |
| help |
| Platform driver for Userspace I/O devices, including generic |
| interrupt handling code. Shared interrupts are not supported. |
| |
| This kernel driver requires that the matching userspace driver |
| handles interrupts in a special way. Userspace is responsible |
| for acknowledging the hardware device if needed, and re-enabling |
| interrupts in the interrupt controller using the write() syscall. |
| |
| If you don't know what to do here, say N. |
| |
| config UIO_DMEM_GENIRQ |
| tristate "Userspace platform driver with generic irq and dynamic memory" |
| depends on HAS_DMA |
| help |
| Platform driver for Userspace I/O devices, including generic |
| interrupt handling code. Shared interrupts are not supported. |
| |
| Memory regions can be specified with the same platform device |
| resources as the UIO_PDRV drivers, but dynamic regions can also |
| be specified. |
| The number and size of these regions is static, |
| but the memory allocation is not performed until |
| the associated device file is opened. The |
| memory is freed once the uio device is closed. |
| |
| If you don't know what to do here, say N. |
| |
| config UIO_AEC |
| tristate "AEC video timestamp device" |
| depends on PCI |
| help |
| |
| UIO driver for the Adrienne Electronics Corporation PCI time |
| code device. |
| |
| This device differs from other UIO devices since it uses I/O |
| ports instead of memory mapped I/O. In order to make it |
| possible for UIO to work with this device a utility, uioport, |
| can be used to read and write the ports: |
| |
| git clone git://ifup.org/philips/uioport.git |
| |
| If you compile this as a module, it will be called uio_aec. |
| |
| config UIO_SERCOS3 |
| tristate "Automata Sercos III PCI card driver" |
| depends on PCI |
| help |
| Userspace I/O interface for the Sercos III PCI card from |
| Automata GmbH. The userspace part of this driver will be |
| available for download from the Automata GmbH web site. |
| |
| Automata GmbH: http://www.automataweb.com |
| Sercos III interface: http://www.sercos.com |
| |
| If you compile this as a module, it will be called uio_sercos3. |
| |
| config UIO_PCI_GENERIC |
| tristate "Generic driver for PCI 2.3 and PCI Express cards" |
| depends on PCI |
| help |
| Generic driver that you can bind, dynamically, to any |
| PCI 2.3 compliant and PCI Express card. It is useful, |
| primarily, for virtualization scenarios. |
| If you compile this as a module, it will be called uio_pci_generic. |
| |
| config UIO_NETX |
| tristate "Hilscher NetX Card driver" |
| depends on PCI |
| help |
| Driver for Hilscher NetX based fieldbus cards (cifX, comX). |
| This driver requires a userspace component that comes with the card |
| or is available from Hilscher (http://www.hilscher.com). |
| |
| To compile this driver as a module, choose M here; the module |
| will be called uio_netx. |
| |
| config UIO_FSL_ELBC_GPCM |
| tristate "eLBC/GPCM driver" |
| depends on FSL_LBC |
| help |
| Generic driver for accessing a peripheral connected to an eLBC port |
| that is running in GPCM mode. GPCM is an interface for simple lower |
| performance memories and memory-mapped devices. For devices using |
| FCM or UPM eLBC modes, other device-specific drivers are available. |
| |
| config UIO_FSL_ELBC_GPCM_NETX5152 |
| bool "eLBC/GPCM netX 51/52 support" |
| depends on UIO_FSL_ELBC_GPCM |
| help |
| This will add support for netX 51/52 devices connected via eLBC/GPCM. |
| In particular, it implements interrupt handling. This can be used |
| together with the userspace netX stack from Hilscher. |
| |
| Information about this hardware can be found at: |
| http://www.hilscher.com/netx |
| |
| config UIO_MF624 |
| tristate "Humusoft MF624 DAQ PCI card driver" |
| depends on PCI |
| help |
| Userspace I/O interface for the Humusoft MF624 PCI card. |
| A sample userspace application using this driver is available |
| (among other MF624 related information and software components) |
| for download in a git repository: |
| |
| git clone git://rtime.felk.cvut.cz/mf6xx.git |
| |
| If you compile this as a module, it will be called uio_mf624. |
| |
| config UIO_HV_GENERIC |
| tristate "Generic driver for Hyper-V VMBus" |
| depends on HYPERV |
| help |
| Generic driver that you can bind, dynamically, to any |
| Hyper-V VMBus device. It is useful to provide direct access |
| to network and storage devices from userspace. |
| |
| If you compile this as a module, it will be called uio_hv_generic. |
| |
| config UIO_DFL |
| tristate "Generic driver for DFL (Device Feature List) bus" |
| depends on FPGA_DFL |
| help |
| Generic DFL (Device Feature List) driver for Userspace I/O devices. |
| It is useful to provide direct access to DFL devices from userspace. |
| A sample userspace application using this driver is available for |
| download in a git repository: |
| |
| git clone https://github.com/OPAE/opae-sdk.git |
| |
| It could be found at: |
| |
| opae-sdk/tools/libopaeuio/ |
| |
| If you compile this as a module, it will be called uio_dfl. |
| endif |