forked from Minki/linux
bbfb54e7b3
This patch supports the DFL drivers be written in userspace. This is realized by exposing the userspace I/O device interfaces. The driver now only binds the ether group feature, which has no irq. So the irq support is not implemented yet. Reviewed-by: Tom Rix <trix@redhat.com> Signed-off-by: Xu Yilun <yilun.xu@intel.com> Link: https://lore.kernel.org/r/1615168776-8553-2-git-send-email-yilun.xu@intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
186 lines
6.2 KiB
Plaintext
186 lines
6.2 KiB
Plaintext
# 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_PRUSS
|
|
tristate "Texas Instruments PRUSS driver"
|
|
select GENERIC_ALLOCATOR
|
|
depends on HAS_IOMEM && HAS_DMA
|
|
help
|
|
PRUSS driver for OMAPL138/DA850/AM18XX devices
|
|
PRUSS driver requires user space components, examples and user space
|
|
driver is available from below SVN repo - you may use anonymous login
|
|
|
|
https://gforge.ti.com/gf/project/pru_sw/
|
|
|
|
More info on API is available at below wiki
|
|
|
|
http://processors.wiki.ti.com/index.php/PRU_Linux_Application_Loader
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called uio_pruss.
|
|
|
|
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
|