~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/driver-api/rapidio/mport_cdev.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 ==================================================================
  2 RapidIO subsystem mport character device driver (rio_mport_cdev.c)
  3 ==================================================================
  4 
  5 1. Overview
  6 ===========
  7 
  8 This device driver is the result of collaboration within the RapidIO.org
  9 Software Task Group (STG) between Texas Instruments, Freescale,
 10 Prodrive Technologies, Nokia Networks, BAE and IDT.  Additional input was
 11 received from other members of RapidIO.org. The objective was to create a
 12 character mode driver interface which exposes the capabilities of RapidIO
 13 devices directly to applications, in a manner that allows the numerous and
 14 varied RapidIO implementations to interoperate.
 15 
 16 This driver (MPORT_CDEV) provides access to basic RapidIO subsystem operations
 17 for user-space applications. Most of RapidIO operations are supported through
 18 'ioctl' system calls.
 19 
 20 When loaded this device driver creates filesystem nodes named rio_mportX in /dev
 21 directory for each registered RapidIO mport device. 'X' in the node name matches
 22 to unique port ID assigned to each local mport device.
 23 
 24 Using available set of ioctl commands user-space applications can perform
 25 following RapidIO bus and subsystem operations:
 26 
 27 - Reads and writes from/to configuration registers of mport devices
 28   (RIO_MPORT_MAINT_READ_LOCAL/RIO_MPORT_MAINT_WRITE_LOCAL)
 29 - Reads and writes from/to configuration registers of remote RapidIO devices.
 30   This operations are defined as RapidIO Maintenance reads/writes in RIO spec.
 31   (RIO_MPORT_MAINT_READ_REMOTE/RIO_MPORT_MAINT_WRITE_REMOTE)
 32 - Set RapidIO Destination ID for mport devices (RIO_MPORT_MAINT_HDID_SET)
 33 - Set RapidIO Component Tag for mport devices (RIO_MPORT_MAINT_COMPTAG_SET)
 34 - Query logical index of mport devices (RIO_MPORT_MAINT_PORT_IDX_GET)
 35 - Query capabilities and RapidIO link configuration of mport devices
 36   (RIO_MPORT_GET_PROPERTIES)
 37 - Enable/Disable reporting of RapidIO doorbell events to user-space applications
 38   (RIO_ENABLE_DOORBELL_RANGE/RIO_DISABLE_DOORBELL_RANGE)
 39 - Enable/Disable reporting of RIO port-write events to user-space applications
 40   (RIO_ENABLE_PORTWRITE_RANGE/RIO_DISABLE_PORTWRITE_RANGE)
 41 - Query/Control type of events reported through this driver: doorbells,
 42   port-writes or both (RIO_SET_EVENT_MASK/RIO_GET_EVENT_MASK)
 43 - Configure/Map mport's outbound requests window(s) for specific size,
 44   RapidIO destination ID, hopcount and request type
 45   (RIO_MAP_OUTBOUND/RIO_UNMAP_OUTBOUND)
 46 - Configure/Map mport's inbound requests window(s) for specific size,
 47   RapidIO base address and local memory base address
 48   (RIO_MAP_INBOUND/RIO_UNMAP_INBOUND)
 49 - Allocate/Free contiguous DMA coherent memory buffer for DMA data transfers
 50   to/from remote RapidIO devices (RIO_ALLOC_DMA/RIO_FREE_DMA)
 51 - Initiate DMA data transfers to/from remote RapidIO devices (RIO_TRANSFER).
 52   Supports blocking, asynchronous and posted (a.k.a 'fire-and-forget') data
 53   transfer modes.
 54 - Check/Wait for completion of asynchronous DMA data transfer
 55   (RIO_WAIT_FOR_ASYNC)
 56 - Manage device objects supported by RapidIO subsystem (RIO_DEV_ADD/RIO_DEV_DEL).
 57   This allows implementation of various RapidIO fabric enumeration algorithms
 58   as user-space applications while using remaining functionality provided by
 59   kernel RapidIO subsystem.
 60 
 61 2. Hardware Compatibility
 62 =========================
 63 
 64 This device driver uses standard interfaces defined by kernel RapidIO subsystem
 65 and therefore it can be used with any mport device driver registered by RapidIO
 66 subsystem with limitations set by available mport implementation.
 67 
 68 At this moment the most common limitation is availability of RapidIO-specific
 69 DMA engine framework for specific mport device. Users should verify available
 70 functionality of their platform when planning to use this driver:
 71 
 72 - IDT Tsi721 PCIe-to-RapidIO bridge device and its mport device driver are fully
 73   compatible with this driver.
 74 - Freescale SoCs 'fsl_rio' mport driver does not have implementation for RapidIO
 75   specific DMA engine support and therefore DMA data transfers mport_cdev driver
 76   are not available.
 77 
 78 3. Module parameters
 79 ====================
 80 
 81 - 'dma_timeout'
 82       - DMA transfer completion timeout (in msec, default value 3000).
 83         This parameter set a maximum completion wait time for SYNC mode DMA
 84         transfer requests and for RIO_WAIT_FOR_ASYNC ioctl requests.
 85 
 86 - 'dbg_level'
 87       - This parameter allows to control amount of debug information
 88         generated by this device driver. This parameter is formed by set of
 89         bit masks that correspond to the specific functional blocks.
 90         For mask definitions see 'drivers/rapidio/devices/rio_mport_cdev.c'
 91         This parameter can be changed dynamically.
 92         Use CONFIG_RAPIDIO_DEBUG=y to enable debug output at the top level.
 93 
 94 4. Known problems
 95 =================
 96 
 97   None.
 98 
 99 5. User-space Applications and API
100 ==================================
101 
102 API library and applications that use this device driver are available from
103 RapidIO.org.
104 
105 6. TODO List
106 ============
107 
108 - Add support for sending/receiving "raw" RapidIO messaging packets.
109 - Add memory mapped DMA data transfers as an option when RapidIO-specific DMA
110   is not available.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php