03 Aug, 2016

1 commit

  • Add channelized messaging driver to support native RapidIO messaging
    exchange between multiple senders/recipients on devices that use kernel
    RapidIO subsystem services.

    This device driver is the result of collaboration within the RapidIO.org
    Software Task Group (STG) between Texas Instruments, Prodrive
    Technologies, Nokia Networks, BAE and IDT. Additional input was
    received from other members of RapidIO.org.

    The objective was to create a character mode driver interface which
    exposes messaging capabilities of RapidIO endpoint devices (mports)
    directly to applications, in a manner that allows the numerous and
    varied RapidIO implementations to interoperate.

    This char mode device driver allows user-space applications to setup
    messaging communication channels using single shared RapidIO messaging
    mailbox.

    By default this driver uses RapidIO MBOX_1 (MBOX_0 is reserved for use by
    RIONET Ethernet emulation driver).

    [weiyj.lk@gmail.com: rapidio/rio_cm: fix return value check in riocm_init()]
    Link: http://lkml.kernel.org/r/1469198221-21970-1-git-send-email-alexandre.bounine@idt.com
    Link: http://lkml.kernel.org/r/1468952862-18056-1-git-send-email-alexandre.bounine@idt.com
    Signed-off-by: Alexandre Bounine
    Tested-by: Barry Wood
    Cc: Matt Porter
    Cc: Aurelien Jacquiot
    Cc: Andre van Herk
    Cc: Barry Wood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

23 Mar, 2016

1 commit

  • Add mport character device driver to provide user space interface to
    basic RapidIO subsystem operations.

    See included Documentation/rapidio/mport_cdev.txt for more details.

    [akpm@linux-foundation.org: fix printk warning on i386]
    [dan.carpenter@oracle.com: mport_cdev: fix some error codes]
    Signed-off-by: Alexandre Bounine
    Signed-off-by: Dan Carpenter
    Tested-by: Barry Wood
    Cc: Matt Porter
    Cc: Aurelien Jacquiot
    Cc: Andre van Herk
    Cc: Barry Wood
    Cc: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

04 Jul, 2013

1 commit

  • Rework RapidIO switch drivers to add an option to build them as loadable
    kernel modules.

    This patch removes RapidIO-specific vmlinux section and converts switch
    drivers to be compatible with LDM driver registration method. To simplify
    registration of device-specific callback routines this patch introduces
    rio_switch_ops data structure. The sw_sysfs() callback is removed from
    the list of device-specific operations because under the new structure its
    functions can be handled by switch driver's probe() and remove() routines.

    If a specific switch device driver is not loaded the RapidIO subsystem
    core will use default standard-based operations to configure a switch.
    Because the current implementation of RapidIO enumeration/discovery method
    relies on availability of device-specific operations for error management,
    switch device drivers must be loaded before the RapidIO
    enumeration/discovery starts.

    This patch also moves several common routines from enumeration/discovery
    module into the RapidIO core code to make switch-specific operations
    accessible to all components of RapidIO subsystem.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Kumar Gala
    Cc: Andre van Herk
    Cc: Micha Nelissen
    Cc: Stef van Os
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

25 May, 2013

1 commit

  • Systems that use RapidIO fabric may need to implement their own
    enumeration and discovery methods which are better suitable for needs of
    a target application.

    The following set of patches is intended to simplify process of
    introduction of new RapidIO fabric enumeration/discovery methods.

    The first patch offers ability to add new RapidIO enumeration/discovery
    methods using kernel configuration options. This new configuration
    option mechanism allows to select statically linked or modular
    enumeration/discovery method(s) from the list of existing methods or use
    external module(s).

    This patch also updates the currently existing enumeration/discovery
    code to be used as a statically linked or modular method.

    The corresponding configuration option is named "Basic
    enumeration/discovery" method. This is the only one configuration
    option available today but new methods are expected to be introduced
    after adoption of provided patches.

    The second patch address a long time complaint of RapidIO subsystem
    users regarding fabric enumeration/discovery start sequence. Existing
    implementation offers only a boot-time enumeration/discovery start which
    requires synchronized boot of all endpoints in RapidIO network. While
    it works for small closed configurations with limited number of
    endpoints, using this approach in systems with large number of endpoints
    is quite challenging.

    To eliminate requirement for synchronized start the second patch
    introduces RapidIO enumeration/discovery start from user space.

    For compatibility with the existing RapidIO subsystem implementation,
    automatic boot time enumeration/discovery start can be configured in by
    specifying "rio-scan.scan=1" command line parameter if statically linked
    basic enumeration method is selected.

    This patch:

    Rework to implement RapidIO enumeration/discovery method selection
    combined with ability to use enumeration/discovery as a kernel module.

    This patch adds ability to introduce new RapidIO enumeration/discovery
    methods using kernel configuration options. Configuration option
    mechanism allows to select statically linked or modular
    enumeration/discovery method from the list of existing methods or use
    external modules. If a modular enumeration/discovery is selected each
    RapidIO mport device can have its own method attached to it.

    The existing enumeration/discovery code was updated to be used as
    statically linked or modular method. This configuration option is named
    "Basic enumeration/discovery" method.

    Several common routines have been moved from rio-scan.c to make them
    available to other enumeration methods and reduce number of exported
    symbols.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Kumar Gala
    Cc: Andre van Herk
    Cc: Micha Nelissen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

01 Jun, 2012

1 commit

  • Adds DMA Engine framework support into RapidIO subsystem.

    Uses DMA Engine DMA_SLAVE interface to generate data transfers to/from
    remote RapidIO target devices.

    Introduces RapidIO-specific wrapper for prep_slave_sg() interface with an
    extra parameter to pass target specific information.

    Uses scatterlist to describe local data buffer. Address flat data buffer
    on a remote side.

    Signed-off-by: Alexandre Bounine
    Cc: Dan Williams
    Acked-by: Vinod Koul
    Cc: Li Yang
    Cc: Matt Porter
    Cc: Paul Gortmaker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

03 Nov, 2011

1 commit

  • Add RapidIO mport driver for IDT TSI721 PCI Express-to-SRIO bridge device.
    The driver provides full set of callback functions defined for mport
    devices in RapidIO subsystem. It also is compatible with current version
    of RIONET driver (Ethernet over RapidIO messaging services).

    This patch is applicable to kernel versions starting from 2.6.39.

    Signed-off-by: Alexandre Bounine
    Signed-off-by: Chul Kim
    Cc: Kumar Gala
    Cc: Matt Porter
    Cc: Li Yang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

28 May, 2010

3 commits

  • Add debug configuration option for RapidIO subsystem.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Kumar Gala
    Cc: Thomas Moll
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Add the functionality to enable Input receiver and Output transmitter of
    every port, to allow non-maintenance traffic.

    Signed-off-by: Thomas Moll
    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Kumar Gala
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Moll
     
  • Extentions to RapidIO switch support:

    1. modify switch route operation declarations to allow using single
    switch-specific file for family of switches that share the same route
    table operations.

    2. add standard route table operations for switches that that support
    route table manipulation registers as defined in the Rev.1.3 of RapidIO
    specification.

    3. add clear-route-table operation for switches

    4. add CPSxx and TSIxxx families of RapidIO switches

    Signed-off-by: Alexandre Bounine
    Tested-by: Thomas Moll
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Kumar Gala
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

29 Apr, 2008

1 commit

  • The RapidIO system size will auto probe in RIO setup. The route table
    and rionet_active in rionet.c are changed to be allocated dynamically
    according to the size of the system.

    Signed-off-by: Zhang Wei
    Signed-off-by: Andrew Morton
    Signed-off-by: Paul Mackerras

    Zhang Wei
     

04 Oct, 2006

1 commit


07 Nov, 2005

1 commit

  • Adds a RapidIO subsystem to the kernel. RIO is a switched fabric interconnect
    used in higher-end embedded applications. The curious can look at the specs
    over at http://www.rapidio.org

    The core code implements enumeration/discovery, management of
    devices/resources, and interfaces for RIO drivers.

    There's a lot more to do to take advantages of all the hardware features.
    However, this should provide a good base for folks with RIO hardware to start
    contributing.

    Signed-off-by: Matt Porter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Porter