1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2ae210f18SDenis Chengmenuconfig UIO 3beafc54cSHans J. Koch tristate "Userspace I/O drivers" 43cc1f952SChen Gang depends on MMU 5beafc54cSHans J. Koch help 6beafc54cSHans J. Koch Enable this to allow the userspace driver core code to be 7beafc54cSHans J. Koch built. This code allows userspace programs easy access to 8beafc54cSHans J. Koch kernel interrupts and memory locations, allowing some drivers 9beafc54cSHans J. Koch to be written in userspace. Note that a small kernel driver 10beafc54cSHans J. Koch is also required for interrupt handling to work properly. 11beafc54cSHans J. Koch 12beafc54cSHans J. Koch If you don't know what to do here, say N. 13beafc54cSHans J. Koch 14ae210f18SDenis Chengif UIO 15ae210f18SDenis Cheng 16bc4c4f45SHans-Jürgen Kochconfig UIO_CIF 17bc4c4f45SHans-Jürgen Koch tristate "generic Hilscher CIF Card driver" 18934da476SUwe Kleine-König depends on PCI 19bc4c4f45SHans-Jürgen Koch help 20bc4c4f45SHans-Jürgen Koch Driver for Hilscher CIF DeviceNet and Profibus cards. This 21631dd1a8SJustin P. Mattock driver requires a userspace component called cif that handles 22631dd1a8SJustin P. Mattock all of the heavy lifting and can be found at: 23631dd1a8SJustin P. Mattock <http://www.osadl.org/projects/downloads/UIO/user/> 24bc4c4f45SHans-Jürgen Koch 25bc4c4f45SHans-Jürgen Koch To compile this driver as a module, choose M here: the module 26bc4c4f45SHans-Jürgen Koch will be called uio_cif. 27bc4c4f45SHans-Jürgen Koch 28c767db0aSMagnus Dammconfig UIO_PDRV_GENIRQ 29c767db0aSMagnus Damm tristate "Userspace I/O platform driver with generic IRQ handling" 30c767db0aSMagnus Damm help 31c767db0aSMagnus Damm Platform driver for Userspace I/O devices, including generic 32c767db0aSMagnus Damm interrupt handling code. Shared interrupts are not supported. 33c767db0aSMagnus Damm 34c767db0aSMagnus Damm This kernel driver requires that the matching userspace driver 35c767db0aSMagnus Damm handles interrupts in a special way. Userspace is responsible 36c767db0aSMagnus Damm for acknowledging the hardware device if needed, and re-enabling 37c767db0aSMagnus Damm interrupts in the interrupt controller using the write() syscall. 38c767db0aSMagnus Damm 39c767db0aSMagnus Damm If you don't know what to do here, say N. 40c767db0aSMagnus Damm 410a0c3b5aSDamian Hobson-Garciaconfig UIO_DMEM_GENIRQ 420a0c3b5aSDamian Hobson-Garcia tristate "Userspace platform driver with generic irq and dynamic memory" 4389fb9e7cSGeert Uytterhoeven depends on HAS_DMA 440a0c3b5aSDamian Hobson-Garcia help 450a0c3b5aSDamian Hobson-Garcia Platform driver for Userspace I/O devices, including generic 460a0c3b5aSDamian Hobson-Garcia interrupt handling code. Shared interrupts are not supported. 470a0c3b5aSDamian Hobson-Garcia 480a0c3b5aSDamian Hobson-Garcia Memory regions can be specified with the same platform device 490a0c3b5aSDamian Hobson-Garcia resources as the UIO_PDRV drivers, but dynamic regions can also 500a0c3b5aSDamian Hobson-Garcia be specified. 510a0c3b5aSDamian Hobson-Garcia The number and size of these regions is static, 520a0c3b5aSDamian Hobson-Garcia but the memory allocation is not performed until 530a0c3b5aSDamian Hobson-Garcia the associated device file is opened. The 540a0c3b5aSDamian Hobson-Garcia memory is freed once the uio device is closed. 550a0c3b5aSDamian Hobson-Garcia 560a0c3b5aSDamian Hobson-Garcia If you don't know what to do here, say N. 570a0c3b5aSDamian Hobson-Garcia 581bafeb37SBrandon Philipsconfig UIO_AEC 591bafeb37SBrandon Philips tristate "AEC video timestamp device" 601bafeb37SBrandon Philips depends on PCI 611bafeb37SBrandon Philips help 621bafeb37SBrandon Philips 631bafeb37SBrandon Philips UIO driver for the Adrienne Electronics Corporation PCI time 641bafeb37SBrandon Philips code device. 651bafeb37SBrandon Philips 661bafeb37SBrandon Philips This device differs from other UIO devices since it uses I/O 671bafeb37SBrandon Philips ports instead of memory mapped I/O. In order to make it 681bafeb37SBrandon Philips possible for UIO to work with this device a utility, uioport, 691bafeb37SBrandon Philips can be used to read and write the ports: 701bafeb37SBrandon Philips 711bafeb37SBrandon Philips git clone git://ifup.org/philips/uioport.git 721bafeb37SBrandon Philips 731bafeb37SBrandon Philips If you compile this as a module, it will be called uio_aec. 741bafeb37SBrandon Philips 75a6030fccSJohn Ognessconfig UIO_SERCOS3 76a6030fccSJohn Ogness tristate "Automata Sercos III PCI card driver" 770a965eb9SJohn Ogness depends on PCI 78a6030fccSJohn Ogness help 79a6030fccSJohn Ogness Userspace I/O interface for the Sercos III PCI card from 80a6030fccSJohn Ogness Automata GmbH. The userspace part of this driver will be 81a6030fccSJohn Ogness available for download from the Automata GmbH web site. 82a6030fccSJohn Ogness 83a6030fccSJohn Ogness Automata GmbH: http://www.automataweb.com 84a6030fccSJohn Ogness Sercos III interface: http://www.sercos.com 85a6030fccSJohn Ogness 86a6030fccSJohn Ogness If you compile this as a module, it will be called uio_sercos3. 87a6030fccSJohn Ogness 88ccb86a69SMichael S. Tsirkinconfig UIO_PCI_GENERIC 89ccb86a69SMichael S. Tsirkin tristate "Generic driver for PCI 2.3 and PCI Express cards" 90ccb86a69SMichael S. Tsirkin depends on PCI 91ccb86a69SMichael S. Tsirkin help 92ccb86a69SMichael S. Tsirkin Generic driver that you can bind, dynamically, to any 93ccb86a69SMichael S. Tsirkin PCI 2.3 compliant and PCI Express card. It is useful, 94ccb86a69SMichael S. Tsirkin primarily, for virtualization scenarios. 95ccb86a69SMichael S. Tsirkin If you compile this as a module, it will be called uio_pci_generic. 96ccb86a69SMichael S. Tsirkin 978f314cfcSHans J. Kochconfig UIO_NETX 988f314cfcSHans J. Koch tristate "Hilscher NetX Card driver" 998f314cfcSHans J. Koch depends on PCI 1008f314cfcSHans J. Koch help 1018f314cfcSHans J. Koch Driver for Hilscher NetX based fieldbus cards (cifX, comX). 1028f314cfcSHans J. Koch This driver requires a userspace component that comes with the card 1038f314cfcSHans J. Koch or is available from Hilscher (http://www.hilscher.com). 1048f314cfcSHans J. Koch 1058f314cfcSHans J. Koch To compile this driver as a module, choose M here; the module 1068f314cfcSHans J. Koch will be called uio_netx. 1078f314cfcSHans J. Koch 108fbc4a8a8SJohn Ognessconfig UIO_FSL_ELBC_GPCM 109fbc4a8a8SJohn Ogness tristate "eLBC/GPCM driver" 110fbc4a8a8SJohn Ogness depends on FSL_LBC 111fbc4a8a8SJohn Ogness help 112fbc4a8a8SJohn Ogness Generic driver for accessing a peripheral connected to an eLBC port 113fbc4a8a8SJohn Ogness that is running in GPCM mode. GPCM is an interface for simple lower 114fbc4a8a8SJohn Ogness performance memories and memory-mapped devices. For devices using 115fbc4a8a8SJohn Ogness FCM or UPM eLBC modes, other device-specific drivers are available. 116fbc4a8a8SJohn Ogness 117fbc4a8a8SJohn Ognessconfig UIO_FSL_ELBC_GPCM_NETX5152 118fbc4a8a8SJohn Ogness bool "eLBC/GPCM netX 51/52 support" 119fbc4a8a8SJohn Ogness depends on UIO_FSL_ELBC_GPCM 120fbc4a8a8SJohn Ogness help 121fbc4a8a8SJohn Ogness This will add support for netX 51/52 devices connected via eLBC/GPCM. 122fbc4a8a8SJohn Ogness In particular, it implements interrupt handling. This can be used 123fbc4a8a8SJohn Ogness together with the userspace netX stack from Hilscher. 124fbc4a8a8SJohn Ogness 125fbc4a8a8SJohn Ogness Information about this hardware can be found at: 126fbc4a8a8SJohn Ogness http://www.hilscher.com/netx 127fbc4a8a8SJohn Ogness 128f1a304e7SPratheesh Gangadharconfig UIO_PRUSS 129f1a304e7SPratheesh Gangadhar tristate "Texas Instruments PRUSS driver" 1302eb2478dSMatt Porter select GENERIC_ALLOCATOR 131686079c9SGeert Uytterhoeven depends on HAS_IOMEM && HAS_DMA 132f1a304e7SPratheesh Gangadhar help 133f1a304e7SPratheesh Gangadhar PRUSS driver for OMAPL138/DA850/AM18XX devices 134f1a304e7SPratheesh Gangadhar PRUSS driver requires user space components, examples and user space 135f1a304e7SPratheesh Gangadhar driver is available from below SVN repo - you may use anonymous login 136f1a304e7SPratheesh Gangadhar 137f1a304e7SPratheesh Gangadhar https://gforge.ti.com/gf/project/pru_sw/ 138f1a304e7SPratheesh Gangadhar 139f1a304e7SPratheesh Gangadhar More info on API is available at below wiki 140f1a304e7SPratheesh Gangadhar 141f1a304e7SPratheesh Gangadhar http://processors.wiki.ti.com/index.php/PRU_Linux_Application_Loader 142f1a304e7SPratheesh Gangadhar 143f1a304e7SPratheesh Gangadhar To compile this driver as a module, choose M here: the module 144f1a304e7SPratheesh Gangadhar will be called uio_pruss. 145f1a304e7SPratheesh Gangadhar 14606849faaSRostislav Lisovyconfig UIO_MF624 14706849faaSRostislav Lisovy tristate "Humusoft MF624 DAQ PCI card driver" 14806849faaSRostislav Lisovy depends on PCI 14906849faaSRostislav Lisovy help 15006849faaSRostislav Lisovy Userspace I/O interface for the Humusoft MF624 PCI card. 15106849faaSRostislav Lisovy A sample userspace application using this driver is available 15206849faaSRostislav Lisovy (among other MF624 related information and software components) 15306849faaSRostislav Lisovy for download in a git repository: 15406849faaSRostislav Lisovy 15506849faaSRostislav Lisovy git clone git://rtime.felk.cvut.cz/mf6xx.git 15606849faaSRostislav Lisovy 15706849faaSRostislav Lisovy If you compile this as a module, it will be called uio_mf624. 15806849faaSRostislav Lisovy 15995096f2fSStephen Hemmingerconfig UIO_HV_GENERIC 16095096f2fSStephen Hemminger tristate "Generic driver for Hyper-V VMBus" 16195096f2fSStephen Hemminger depends on HYPERV 16295096f2fSStephen Hemminger help 16395096f2fSStephen Hemminger Generic driver that you can bind, dynamically, to any 16495096f2fSStephen Hemminger Hyper-V VMBus device. It is useful to provide direct access 16595096f2fSStephen Hemminger to network and storage devices from userspace. 16695096f2fSStephen Hemminger 16795096f2fSStephen Hemminger If you compile this as a module, it will be called uio_hv_generic. 168*bbfb54e7SXu Yilun 169*bbfb54e7SXu Yilunconfig UIO_DFL 170*bbfb54e7SXu Yilun tristate "Generic driver for DFL (Device Feature List) bus" 171*bbfb54e7SXu Yilun depends on FPGA_DFL 172*bbfb54e7SXu Yilun help 173*bbfb54e7SXu Yilun Generic DFL (Device Feature List) driver for Userspace I/O devices. 174*bbfb54e7SXu Yilun It is useful to provide direct access to DFL devices from userspace. 175*bbfb54e7SXu Yilun A sample userspace application using this driver is available for 176*bbfb54e7SXu Yilun download in a git repository: 177*bbfb54e7SXu Yilun 178*bbfb54e7SXu Yilun git clone https://github.com/OPAE/opae-sdk.git 179*bbfb54e7SXu Yilun 180*bbfb54e7SXu Yilun It could be found at: 181*bbfb54e7SXu Yilun 182*bbfb54e7SXu Yilun opae-sdk/tools/libopaeuio/ 183*bbfb54e7SXu Yilun 184*bbfb54e7SXu Yilun If you compile this as a module, it will be called uio_dfl. 185ae210f18SDenis Chengendif 186