1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyunmenuconfig UIO 3*4882a593Smuzhiyun tristate "Userspace I/O drivers" 4*4882a593Smuzhiyun depends on MMU 5*4882a593Smuzhiyun help 6*4882a593Smuzhiyun Enable this to allow the userspace driver core code to be 7*4882a593Smuzhiyun built. This code allows userspace programs easy access to 8*4882a593Smuzhiyun kernel interrupts and memory locations, allowing some drivers 9*4882a593Smuzhiyun to be written in userspace. Note that a small kernel driver 10*4882a593Smuzhiyun is also required for interrupt handling to work properly. 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun If you don't know what to do here, say N. 13*4882a593Smuzhiyun 14*4882a593Smuzhiyunif UIO 15*4882a593Smuzhiyun 16*4882a593Smuzhiyunconfig UIO_CIF 17*4882a593Smuzhiyun tristate "generic Hilscher CIF Card driver" 18*4882a593Smuzhiyun depends on PCI 19*4882a593Smuzhiyun help 20*4882a593Smuzhiyun Driver for Hilscher CIF DeviceNet and Profibus cards. This 21*4882a593Smuzhiyun driver requires a userspace component called cif that handles 22*4882a593Smuzhiyun all of the heavy lifting and can be found at: 23*4882a593Smuzhiyun <http://www.osadl.org/projects/downloads/UIO/user/> 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 26*4882a593Smuzhiyun will be called uio_cif. 27*4882a593Smuzhiyun 28*4882a593Smuzhiyunconfig UIO_PDRV_GENIRQ 29*4882a593Smuzhiyun tristate "Userspace I/O platform driver with generic IRQ handling" 30*4882a593Smuzhiyun help 31*4882a593Smuzhiyun Platform driver for Userspace I/O devices, including generic 32*4882a593Smuzhiyun interrupt handling code. Shared interrupts are not supported. 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun This kernel driver requires that the matching userspace driver 35*4882a593Smuzhiyun handles interrupts in a special way. Userspace is responsible 36*4882a593Smuzhiyun for acknowledging the hardware device if needed, and re-enabling 37*4882a593Smuzhiyun interrupts in the interrupt controller using the write() syscall. 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun If you don't know what to do here, say N. 40*4882a593Smuzhiyun 41*4882a593Smuzhiyunconfig UIO_DMEM_GENIRQ 42*4882a593Smuzhiyun tristate "Userspace platform driver with generic irq and dynamic memory" 43*4882a593Smuzhiyun depends on HAS_DMA 44*4882a593Smuzhiyun help 45*4882a593Smuzhiyun Platform driver for Userspace I/O devices, including generic 46*4882a593Smuzhiyun interrupt handling code. Shared interrupts are not supported. 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun Memory regions can be specified with the same platform device 49*4882a593Smuzhiyun resources as the UIO_PDRV drivers, but dynamic regions can also 50*4882a593Smuzhiyun be specified. 51*4882a593Smuzhiyun The number and size of these regions is static, 52*4882a593Smuzhiyun but the memory allocation is not performed until 53*4882a593Smuzhiyun the associated device file is opened. The 54*4882a593Smuzhiyun memory is freed once the uio device is closed. 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun If you don't know what to do here, say N. 57*4882a593Smuzhiyun 58*4882a593Smuzhiyunconfig UIO_AEC 59*4882a593Smuzhiyun tristate "AEC video timestamp device" 60*4882a593Smuzhiyun depends on PCI 61*4882a593Smuzhiyun help 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun UIO driver for the Adrienne Electronics Corporation PCI time 64*4882a593Smuzhiyun code device. 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun This device differs from other UIO devices since it uses I/O 67*4882a593Smuzhiyun ports instead of memory mapped I/O. In order to make it 68*4882a593Smuzhiyun possible for UIO to work with this device a utility, uioport, 69*4882a593Smuzhiyun can be used to read and write the ports: 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun git clone git://ifup.org/philips/uioport.git 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun If you compile this as a module, it will be called uio_aec. 74*4882a593Smuzhiyun 75*4882a593Smuzhiyunconfig UIO_SERCOS3 76*4882a593Smuzhiyun tristate "Automata Sercos III PCI card driver" 77*4882a593Smuzhiyun depends on PCI 78*4882a593Smuzhiyun help 79*4882a593Smuzhiyun Userspace I/O interface for the Sercos III PCI card from 80*4882a593Smuzhiyun Automata GmbH. The userspace part of this driver will be 81*4882a593Smuzhiyun available for download from the Automata GmbH web site. 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun Automata GmbH: http://www.automataweb.com 84*4882a593Smuzhiyun Sercos III interface: http://www.sercos.com 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun If you compile this as a module, it will be called uio_sercos3. 87*4882a593Smuzhiyun 88*4882a593Smuzhiyunconfig UIO_PCI_GENERIC 89*4882a593Smuzhiyun tristate "Generic driver for PCI 2.3 and PCI Express cards" 90*4882a593Smuzhiyun depends on PCI 91*4882a593Smuzhiyun help 92*4882a593Smuzhiyun Generic driver that you can bind, dynamically, to any 93*4882a593Smuzhiyun PCI 2.3 compliant and PCI Express card. It is useful, 94*4882a593Smuzhiyun primarily, for virtualization scenarios. 95*4882a593Smuzhiyun If you compile this as a module, it will be called uio_pci_generic. 96*4882a593Smuzhiyun 97*4882a593Smuzhiyunconfig UIO_NETX 98*4882a593Smuzhiyun tristate "Hilscher NetX Card driver" 99*4882a593Smuzhiyun depends on PCI 100*4882a593Smuzhiyun help 101*4882a593Smuzhiyun Driver for Hilscher NetX based fieldbus cards (cifX, comX). 102*4882a593Smuzhiyun This driver requires a userspace component that comes with the card 103*4882a593Smuzhiyun or is available from Hilscher (http://www.hilscher.com). 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun To compile this driver as a module, choose M here; the module 106*4882a593Smuzhiyun will be called uio_netx. 107*4882a593Smuzhiyun 108*4882a593Smuzhiyunconfig UIO_FSL_ELBC_GPCM 109*4882a593Smuzhiyun tristate "eLBC/GPCM driver" 110*4882a593Smuzhiyun depends on FSL_LBC 111*4882a593Smuzhiyun help 112*4882a593Smuzhiyun Generic driver for accessing a peripheral connected to an eLBC port 113*4882a593Smuzhiyun that is running in GPCM mode. GPCM is an interface for simple lower 114*4882a593Smuzhiyun performance memories and memory-mapped devices. For devices using 115*4882a593Smuzhiyun FCM or UPM eLBC modes, other device-specific drivers are available. 116*4882a593Smuzhiyun 117*4882a593Smuzhiyunconfig UIO_FSL_ELBC_GPCM_NETX5152 118*4882a593Smuzhiyun bool "eLBC/GPCM netX 51/52 support" 119*4882a593Smuzhiyun depends on UIO_FSL_ELBC_GPCM 120*4882a593Smuzhiyun help 121*4882a593Smuzhiyun This will add support for netX 51/52 devices connected via eLBC/GPCM. 122*4882a593Smuzhiyun In particular, it implements interrupt handling. This can be used 123*4882a593Smuzhiyun together with the userspace netX stack from Hilscher. 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun Information about this hardware can be found at: 126*4882a593Smuzhiyun http://www.hilscher.com/netx 127*4882a593Smuzhiyun 128*4882a593Smuzhiyunconfig UIO_PRUSS 129*4882a593Smuzhiyun tristate "Texas Instruments PRUSS driver" 130*4882a593Smuzhiyun select GENERIC_ALLOCATOR 131*4882a593Smuzhiyun depends on HAS_IOMEM && HAS_DMA 132*4882a593Smuzhiyun help 133*4882a593Smuzhiyun PRUSS driver for OMAPL138/DA850/AM18XX devices 134*4882a593Smuzhiyun PRUSS driver requires user space components, examples and user space 135*4882a593Smuzhiyun driver is available from below SVN repo - you may use anonymous login 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun https://gforge.ti.com/gf/project/pru_sw/ 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun More info on API is available at below wiki 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun http://processors.wiki.ti.com/index.php/PRU_Linux_Application_Loader 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 144*4882a593Smuzhiyun will be called uio_pruss. 145*4882a593Smuzhiyun 146*4882a593Smuzhiyunconfig UIO_MF624 147*4882a593Smuzhiyun tristate "Humusoft MF624 DAQ PCI card driver" 148*4882a593Smuzhiyun depends on PCI 149*4882a593Smuzhiyun help 150*4882a593Smuzhiyun Userspace I/O interface for the Humusoft MF624 PCI card. 151*4882a593Smuzhiyun A sample userspace application using this driver is available 152*4882a593Smuzhiyun (among other MF624 related information and software components) 153*4882a593Smuzhiyun for download in a git repository: 154*4882a593Smuzhiyun 155*4882a593Smuzhiyun git clone git://rtime.felk.cvut.cz/mf6xx.git 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun If you compile this as a module, it will be called uio_mf624. 158*4882a593Smuzhiyun 159*4882a593Smuzhiyunconfig UIO_HV_GENERIC 160*4882a593Smuzhiyun tristate "Generic driver for Hyper-V VMBus" 161*4882a593Smuzhiyun depends on HYPERV 162*4882a593Smuzhiyun help 163*4882a593Smuzhiyun Generic driver that you can bind, dynamically, to any 164*4882a593Smuzhiyun Hyper-V VMBus device. It is useful to provide direct access 165*4882a593Smuzhiyun to network and storage devices from userspace. 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun If you compile this as a module, it will be called uio_hv_generic. 168*4882a593Smuzhiyunendif 169