14 Dec, 2020

1 commit

  • This adds a UIO driver the ivshmem device, found in QEMU and the
    Jailhouse hypervisor. It exposes the MMIO register region and all shared
    memory section to userspace. Interrupts are configured in one-shot mode
    so that userspace needs to re-enable them after each event via the
    Interrupt Control register. The driver registers all possible MSI-X
    vectors, coalescing them into the single notifier UIO provides.

    Note: Specification work for the interface is ongoing, so details may
    still change.

    Signed-off-by: Jan Kiszka

    Jan Kiszka
     

21 May, 2019

1 commit


06 Dec, 2016

1 commit


06 Aug, 2015

1 commit


13 Jun, 2015

2 commits


12 Jan, 2015

1 commit

  • This driver provides UIO access to memory of a peripheral connected
    to the Freescale enhanced local bus controller (eLBC) interface
    using the general purpose chip-select mode (GPCM).

    Signed-off-by: John Ogness
    Signed-off-by: Greg Kroah-Hartman

    John Ogness
     

31 Aug, 2013

2 commits

  • The User space I/O drivers are useful, only when user space meaningful
    (MMU must be enabled).

    So need let it depend on MMU, or can not pass compiling, the related
    error (allmodconfig for H8300):

    CC [M] drivers/uio/uio.o
    drivers/uio/uio.c: In function 'uio_mmap_physical':
    drivers/uio/uio.c:650:2: error: implicit declaration of function 'pgprot_noncached' [-Werror=implicit-function-declaration]
    drivers/uio/uio.c:650:20: error: incompatible types when assigning to type 'pgprot_t' from type 'int'

    Signed-off-by: Chen Gang
    Signed-off-by: Greg Kroah-Hartman

    Chen Gang
     
  • Signed-off-by: Rostislav Lisovy
    Signed-off-by: Greg Kroah-Hartman

    Rostislav Lisovy
     

27 Jul, 2013

1 commit

  • The patch "UIO: fix uio_pdrv_genirq with device tree but no interrupt"
    (sha1: e3a3c3a205554e564751cd9c0276b2af813d7a92)
    add support to use this driver with no interrupts.
    uio_pdrv_genirq also supports device-tree binding
    which is not available in uio_pdrv.

    That's why this uio_pdrv driver can be just removed.

    Signed-off-by: Michal Simek
    Reviewed-by: Vitalii Demianets
    Reviewed-by: Pavel Machek
    Signed-off-by: Greg Kroah-Hartman

    Michal Simek
     

22 May, 2013

1 commit

  • If NO_DMA=y:

    drivers/built-in.o: In function `uio_dmem_genirq_release':
    drivers/uio/uio_dmem_genirq.c:95: undefined reference to `dma_free_coherent'
    drivers/built-in.o: In function `uio_dmem_genirq_open':
    drivers/uio/uio_dmem_genirq.c:61: undefined reference to `dma_alloc_coherent'

    Signed-off-by: Geert Uytterhoeven
    Cc: Hans J. Koch
    Cc: Greg Kroah-Hartman
    Signed-off-by: Greg Kroah-Hartman

    Geert Uytterhoeven
     

14 Feb, 2013

1 commit


13 Dec, 2012

1 commit

  • Pull ARM SoC updates from Olof Johansson:
    "This contains the bulk of new SoC development for this merge window.

    Two new platforms have been added, the sunxi platforms (Allwinner A1x
    SoCs) by Maxime Ripard, and a generic Broadcom platform for a new
    series of ARMv7 platforms from them, where the hope is that we can
    keep the platform code generic enough to have them all share one mach
    directory. The new Broadcom platform is contributed by Christian
    Daudt.

    Highbank has grown support for Calxeda's next generation of hardware,
    ECX-2000.

    clps711x has seen a lot of cleanup from Alexander Shiyan, and he's
    also taken on maintainership of the platform.

    Beyond this there has been a bunch of work from a number of people on
    converting more platforms to IRQ domains, pinctrl conversion, cleanup
    and general feature enablement across most of the active platforms."

    Fix up trivial conflicts as per Olof.

    * tag 'soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (174 commits)
    mfd: vexpress-sysreg: Remove LEDs code
    irqchip: irq-sunxi: Add terminating entry for sunxi_irq_dt_ids
    clocksource: sunxi_timer: Add terminating entry for sunxi_timer_dt_ids
    irq: versatile: delete dangling variable
    ARM: sunxi: add missing include for mdelay()
    ARM: EXYNOS: Avoid early use of of_machine_is_compatible()
    ARM: dts: add node for PL330 MDMA1 controller for exynos4
    ARM: EXYNOS: Add support for secondary CPU bring-up on Exynos4412
    ARM: EXYNOS: add UART3 to DEBUG_LL ports
    ARM: S3C24XX: Add clkdev entry for camif-upll clock
    ARM: SAMSUNG: Add s3c24xx/s3c64xx CAMIF GPIO setup helpers
    ARM: sunxi: Add missing sun4i.dtsi file
    pinctrl: samsung: Do not initialise statics to 0
    ARM i.MX6: remove gate_mask from pllv3
    ARM i.MX6: Fix ethernet PLL clocks
    ARM i.MX6: rename PLLs according to datasheet
    ARM i.MX6: Add pwm support
    ARM i.MX51: Add pwm support
    ARM i.MX53: Add pwm support
    ARM: mx5: Replace clk_register_clkdev with clock DT lookup
    ...

    Linus Torvalds
     

27 Oct, 2012

1 commit


25 Oct, 2012

1 commit

  • This device extends the uio_pdrv_genirq driver to provide limited
    dynamic memory allocation for UIO devices. This allows UIO devices
    to use CMA and IOMMU allocated memory regions. This driver is based
    on the uio_pdrv_genirq driver and provides the same generic interrupt
    handling capabilities. Like uio_prdv_genirq,
    a fixed number of memory regions, defined in the platform device's
    .resources field are exported to userpace. This driver adds the ability
    to export additional regions whose number and size are known at boot time,
    but whose memory is not allocated until the uio device file is opened for
    the first time. When the device file is closed, the allocated memory block
    is freed. Physical (DMA) addresses for the dynamic regions are provided to
    the userspace via /sys/class/uio/uioX/maps/mapY/addr in the same way as
    static addresses are when the uio device file is open, when no processes
    are holding the device file open, the address returned to userspace is
    DMA_ERROR_CODE.

    Signed-off-by: Damian Hobson-Garcia
    Signed-off-by: "Hans J. Koch"
    Signed-off-by: Greg Kroah-Hartman

    Damian Hobson-Garcia
     

08 Mar, 2011

1 commit

  • This patch implements PRUSS (Programmable Real-time Unit Sub System)
    UIO driver which exports SOC resources associated with PRUSS like
    I/O, memories and IRQs to user space. PRUSS is dual 32-bit RISC
    processors which is efficient in performing embedded tasks that
    require manipulation of packed memory mapped data structures and
    handling system events that have tight real time constraints. This
    driver is currently supported on Texas Instruments DA850, AM18xx and
    OMAP-L138 devices.
    For example, PRUSS runs firmware for real-time critical industrial
    communication data link layer and communicates with application stack
    running in user space via shared memory and IRQs.

    Signed-off-by: Pratheesh Gangadhar
    Reviewed-by: Thomas Gleixner
    Reviewed-by: Arnd Bergmann
    Signed-off-by: Hans J. Koch
    Signed-off-by: Greg Kroah-Hartman

    Pratheesh Gangadhar
     

18 Oct, 2010

1 commit

  • The patch below updates broken web addresses in the kernel

    Signed-off-by: Justin P. Mattock
    Cc: Maciej W. Rozycki
    Cc: Geert Uytterhoeven
    Cc: Finn Thain
    Cc: Randy Dunlap
    Cc: Matt Turner
    Cc: Dimitry Torokhov
    Cc: Mike Frysinger
    Acked-by: Ben Pfaff
    Acked-by: Hans J. Koch
    Reviewed-by: Finn Thain
    Signed-off-by: Jiri Kosina

    Justin P. Mattock
     

08 Mar, 2010

3 commits

  • Ben Nizette, the author of this driver, told me in a private mail that this
    project has been cancelled. He suggested to remove the driver for now, and
    will come back with a new version should the hardware really exist.
    This patch completely removes the driver.

    Signed-off-by: Hans J. Koch
    Acked-by: Ben Nizette
    Signed-off-by: Greg Kroah-Hartman

    Hans J. Koch
     
  • Two trivial fixes for the Userspace IO Kconfig file:
    1) uio_sercos3 is a PCI driver, so let it depend on PCI.
    2) "default n" under UIO_PCI_GENERIC is luxury since it is already the default.

    Acked-by: John Ogness
    Signed-off-by: Hans J. Koch
    Signed-off-by: Greg Kroah-Hartman

    John Ogness
     
  • This patch adds a Userspace IO driver for netX-based fieldbus cards by
    Hilscher (see http://www.hilscher.com). ATM, cifX and comX cards are
    supported. The userspace part for this driver is provided by Hilscher
    and should come with the card.
    The driver is in use for several months now and has been tested by
    people at Hilscher and Linutronix.

    Signed-off-by: Hans J. Koch
    Signed-off-by: Greg Kroah-Hartman

    Hans J. Koch
     

16 Sep, 2009

2 commits

  • This adds a generic uio driver that can bind to any PCI device. First
    user will be virtualization where a qemu userspace process needs to give
    guest OS access to the device.

    Interrupts are handled using the Interrupt Disable bit in the PCI
    command register and Interrupt Status bit in the PCI status register.
    All devices compliant to PCI 2.3 (circa 2002) and all compliant PCI
    Express devices should support these bits. Driver detects this support,
    and won't bind to devices which do not support the Interrupt Disable Bit
    in the command register.

    It's expected that more features of interest to virtualization will be
    added to this driver in the future. Possibilities are: mmap for device
    resources, MSI/MSI-X, eventfd (to interface with kvm), iommu.

    Signed-off-by: Michael S. Tsirkin
    Acked-by: Chris Wright
    Signed-off-by: Hans J. Koch
    Acked-by: Jesse Barnes
    Signed-off-by: Greg Kroah-Hartman

    Michael S. Tsirkin
     
  • 'default n' is the default, there is no need for these lines.

    Signed-off-by: Daniel Mack
    Cc: Hans J. Koch
    Signed-off-by: Greg Kroah-Hartman

    Daniel Mack
     

25 Mar, 2009

1 commit

  • 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.

    uioport is designed to be a setuid program and checks the permissions of
    the /dev/uio* node and if the user has write permissions it will use
    iopl and out*/in* to access the device.

    [1] git clone git://ifup.org/philips/uioport.git

    Signed-off-by: Brandon Philips
    Signed-off-by: Hans J. Koch
    Signed-off-by: Greg Kroah-Hartman

    Brandon Philips
     

17 Oct, 2008

1 commit

  • Here is a new version of the patch to support the Automata Sercos III
    PCI card driver. I now check that the IRQ is enabled before accepting
    the interrupt.

    I still use a logical OR to store the enabled interrupts and I've
    added a second use of a logical OR when restoring the enabled
    interrupts. I added an explanation of why I do this in comments at the
    top of the source file.

    Since I use a logical OR, I also removed the extra checks if the
    Interrupt Enable Register and ier0_cache are 0.

    Signed-off-by: John Ogness
    Signed-off-by: Hans J. Koch
    Signed-off-by: Greg Kroah-Hartman

    John Ogness
     

22 Aug, 2008

1 commit

  • This is V3 of uio_pdrv_genirq.c, a platform driver for UIO with
    generic IRQ handling code. This driver is very similar to the regular
    UIO platform driver, but is only suitable for devices that are
    connected to the interrupt controller using unique interrupt lines.

    The uio_pdrv_genirq driver includes generic interrupt handling code
    which disables the serviced interrupt in the interrupt controller
    and makes the user space driver responsible for acknowledging the
    interrupt in the device and reenabling the interrupt in the interrupt
    controller.

    Shared interrupts are not supported since the in-kernel interrupt
    handler will disable the interrupt line in the interrupt controller,
    and in a shared interrupt configuration this will stop other devices
    from delivering interrupts.

    Signed-off-by: Magnus Damm
    Signed-off-by: Hans J. Koch
    Signed-off-by: Greg Kroah-Hartman

    Magnus Damm
     

22 Jul, 2008

2 commits

  • This patch adds a generic UIO platform driver. It eliminates the need for a
    dedicated kernel module for simple platform devices. Users only need to
    implement their irq handler in platform code and fill a struct uio_info
    there. This helps avoiding code duplication as UIO platform drivers often
    share a lot of common code.

    Signed-off-by: Uwe Kleine-König
    Signed-off-by: Hans J. Koch
    Signed-off-by: Greg Kroah-Hartman

    Uwe Kleine-König
     
  • ae210f188614bb3d1ee3f19c64e28e3cdd44877c introduced a big "if UIO"/"endif"
    where all uio drivers are defined. So know there is no need for them to
    depend explicitly on UIO.

    Signed-off-by: Uwe Kleine-König
    Signed-off-by: Hans J. Koch
    Signed-off-by: Greg Kroah-Hartman

    Uwe Kleine-König
     

20 Apr, 2008

2 commits

  • This patch implements a UIO interface for the SMX Cryptengine.

    The Cryptengine found on the Nias Digital SMX board is best suited
    for a UIO interface. It is not wired in to the cryptographic API
    as the engine handles it's own keys, algorithms, everything. All
    that we know about is that if there's room in the buffer, you can
    write data to it and when there's data ready, you read it out again.

    There isn't necessarily even any direct correlation between data
    going in and data coming out again, the engine may consume or
    generate data all on its own.

    This driver is for proprietary hardware but we're always told to
    submit the drivers anyway; here you are. :-)

    This is version 4 of this patch and addresses all issues raised by
    Hans-Jürgen Koch and Paul Mundt in their reviews. Slightly altered
    is Paul's suggestion to use DRV_NAME and DRV_VERSION as the UIO
    version and name. While at the moment they are the same, there
    is no reason for them to stay that way. Nevertheless we now at
    least provide a MODULE_VERSION macro to keep modinfo happy.

    Signed-off-by: Ben Nizette
    Acked-by: Paul Mundt
    Signed-off-by: Hans J Koch
    Signed-off-by: Greg Kroah-Hartman

    Ben Nizette
     
  • Signed-off-by: Denis Cheng
    Signed-off-by: Hans J. Koch
    Signed-off-by: Greg Kroah-Hartman

    Denis Cheng
     

19 Jul, 2007

2 commits

  • this is a patch that adds support for Hilscher CIF DeviceNet and
    Profibus cards. I tested it on a Kontron CPX board, and Thomas reviewed
    it.

    You can find the user space part here:

    http://www.osadl.org/projects/downloads/UIO/user/cif-0.1.0.tar.gz

    Notes: cif_api.c is the main file you want to look at. It contains the
    functions to open, close, mmap and so on. cif_dps.c adds functions
    specific to Profibus cards, and cif_dn.c contains functions for
    DeviceNet cards. cif.c is a universal playground, it's just a small
    test program. The user space part of this UIO driver is still work in
    progress, and not everything is tested yet. At the moment, the thread in
    cif_api.c contains some code that artificially makes the card generate
    interrupts, this was added for testing and will be removed later. But
    the driver already contains all the functions needed for useful
    operation, so it gives a good idea of how such a thing looks like.

    For comparison, here's what you get from the manufacturer
    (www.hilscher.com) when you ask for a Linux 2.6 driver:

    http://www.tglx.de/private/hjk/cif-orig-2.6.tar.bz2

    WARNING: Don't look at the code for too long, you might become sick :-)

    Signed-off-by: Hans-Jürgen Koch
    Signed-off-by: Greg Kroah-Hartman

    Hans-Jürgen Koch
     
  • This interface allows the ability to write the majority of a driver in
    userspace with only a very small shell of a driver in the kernel itself.
    It uses a char device and sysfs to interact with a userspace process to
    process interrupts and control memory accesses.

    See the docbook documentation for more details on how to use this
    interface.

    From: Hans J. Koch
    Cc: Thomas Gleixner
    Cc: Benedikt Spranger
    Signed-off-by: Greg Kroah-Hartman

    Hans J. Koch