docs: rapidio: convert to ReST
Rename the rapidio documentation files to ReST, add an index for them and adjust in order to produce a nice html output via the Sphinx build system. At its new index.rst, let's add a :orphan: while this is not linked to the main index.rst file, in order to avoid build warnings. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
5c04dceaa1
commit
e0ae154404
|
@ -0,0 +1,15 @@
|
||||||
|
:orphan:
|
||||||
|
|
||||||
|
===========================
|
||||||
|
The Linux RapidIO Subsystem
|
||||||
|
===========================
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
rapidio
|
||||||
|
sysfs
|
||||||
|
|
||||||
|
tsi721
|
||||||
|
mport_cdev
|
||||||
|
rio_cm
|
|
@ -1,13 +1,9 @@
|
||||||
|
==================================================================
|
||||||
RapidIO subsystem mport character device driver (rio_mport_cdev.c)
|
RapidIO subsystem mport character device driver (rio_mport_cdev.c)
|
||||||
==================================================================
|
==================================================================
|
||||||
|
|
||||||
Version History:
|
1. Overview
|
||||||
----------------
|
===========
|
||||||
1.0.0 - Initial driver release.
|
|
||||||
|
|
||||||
==================================================================
|
|
||||||
|
|
||||||
I. Overview
|
|
||||||
|
|
||||||
This device driver is the result of collaboration within the RapidIO.org
|
This device driver is the result of collaboration within the RapidIO.org
|
||||||
Software Task Group (STG) between Texas Instruments, Freescale,
|
Software Task Group (STG) between Texas Instruments, Freescale,
|
||||||
|
@ -29,40 +25,41 @@ Using available set of ioctl commands user-space applications can perform
|
||||||
following RapidIO bus and subsystem operations:
|
following RapidIO bus and subsystem operations:
|
||||||
|
|
||||||
- Reads and writes from/to configuration registers of mport devices
|
- Reads and writes from/to configuration registers of mport devices
|
||||||
(RIO_MPORT_MAINT_READ_LOCAL/RIO_MPORT_MAINT_WRITE_LOCAL)
|
(RIO_MPORT_MAINT_READ_LOCAL/RIO_MPORT_MAINT_WRITE_LOCAL)
|
||||||
- Reads and writes from/to configuration registers of remote RapidIO devices.
|
- Reads and writes from/to configuration registers of remote RapidIO devices.
|
||||||
This operations are defined as RapidIO Maintenance reads/writes in RIO spec.
|
This operations are defined as RapidIO Maintenance reads/writes in RIO spec.
|
||||||
(RIO_MPORT_MAINT_READ_REMOTE/RIO_MPORT_MAINT_WRITE_REMOTE)
|
(RIO_MPORT_MAINT_READ_REMOTE/RIO_MPORT_MAINT_WRITE_REMOTE)
|
||||||
- Set RapidIO Destination ID for mport devices (RIO_MPORT_MAINT_HDID_SET)
|
- Set RapidIO Destination ID for mport devices (RIO_MPORT_MAINT_HDID_SET)
|
||||||
- Set RapidIO Component Tag for mport devices (RIO_MPORT_MAINT_COMPTAG_SET)
|
- Set RapidIO Component Tag for mport devices (RIO_MPORT_MAINT_COMPTAG_SET)
|
||||||
- Query logical index of mport devices (RIO_MPORT_MAINT_PORT_IDX_GET)
|
- Query logical index of mport devices (RIO_MPORT_MAINT_PORT_IDX_GET)
|
||||||
- Query capabilities and RapidIO link configuration of mport devices
|
- Query capabilities and RapidIO link configuration of mport devices
|
||||||
(RIO_MPORT_GET_PROPERTIES)
|
(RIO_MPORT_GET_PROPERTIES)
|
||||||
- Enable/Disable reporting of RapidIO doorbell events to user-space applications
|
- Enable/Disable reporting of RapidIO doorbell events to user-space applications
|
||||||
(RIO_ENABLE_DOORBELL_RANGE/RIO_DISABLE_DOORBELL_RANGE)
|
(RIO_ENABLE_DOORBELL_RANGE/RIO_DISABLE_DOORBELL_RANGE)
|
||||||
- Enable/Disable reporting of RIO port-write events to user-space applications
|
- Enable/Disable reporting of RIO port-write events to user-space applications
|
||||||
(RIO_ENABLE_PORTWRITE_RANGE/RIO_DISABLE_PORTWRITE_RANGE)
|
(RIO_ENABLE_PORTWRITE_RANGE/RIO_DISABLE_PORTWRITE_RANGE)
|
||||||
- Query/Control type of events reported through this driver: doorbells,
|
- Query/Control type of events reported through this driver: doorbells,
|
||||||
port-writes or both (RIO_SET_EVENT_MASK/RIO_GET_EVENT_MASK)
|
port-writes or both (RIO_SET_EVENT_MASK/RIO_GET_EVENT_MASK)
|
||||||
- Configure/Map mport's outbound requests window(s) for specific size,
|
- Configure/Map mport's outbound requests window(s) for specific size,
|
||||||
RapidIO destination ID, hopcount and request type
|
RapidIO destination ID, hopcount and request type
|
||||||
(RIO_MAP_OUTBOUND/RIO_UNMAP_OUTBOUND)
|
(RIO_MAP_OUTBOUND/RIO_UNMAP_OUTBOUND)
|
||||||
- Configure/Map mport's inbound requests window(s) for specific size,
|
- Configure/Map mport's inbound requests window(s) for specific size,
|
||||||
RapidIO base address and local memory base address
|
RapidIO base address and local memory base address
|
||||||
(RIO_MAP_INBOUND/RIO_UNMAP_INBOUND)
|
(RIO_MAP_INBOUND/RIO_UNMAP_INBOUND)
|
||||||
- Allocate/Free contiguous DMA coherent memory buffer for DMA data transfers
|
- Allocate/Free contiguous DMA coherent memory buffer for DMA data transfers
|
||||||
to/from remote RapidIO devices (RIO_ALLOC_DMA/RIO_FREE_DMA)
|
to/from remote RapidIO devices (RIO_ALLOC_DMA/RIO_FREE_DMA)
|
||||||
- Initiate DMA data transfers to/from remote RapidIO devices (RIO_TRANSFER).
|
- Initiate DMA data transfers to/from remote RapidIO devices (RIO_TRANSFER).
|
||||||
Supports blocking, asynchronous and posted (a.k.a 'fire-and-forget') data
|
Supports blocking, asynchronous and posted (a.k.a 'fire-and-forget') data
|
||||||
transfer modes.
|
transfer modes.
|
||||||
- Check/Wait for completion of asynchronous DMA data transfer
|
- Check/Wait for completion of asynchronous DMA data transfer
|
||||||
(RIO_WAIT_FOR_ASYNC)
|
(RIO_WAIT_FOR_ASYNC)
|
||||||
- Manage device objects supported by RapidIO subsystem (RIO_DEV_ADD/RIO_DEV_DEL).
|
- Manage device objects supported by RapidIO subsystem (RIO_DEV_ADD/RIO_DEV_DEL).
|
||||||
This allows implementation of various RapidIO fabric enumeration algorithms
|
This allows implementation of various RapidIO fabric enumeration algorithms
|
||||||
as user-space applications while using remaining functionality provided by
|
as user-space applications while using remaining functionality provided by
|
||||||
kernel RapidIO subsystem.
|
kernel RapidIO subsystem.
|
||||||
|
|
||||||
II. Hardware Compatibility
|
2. Hardware Compatibility
|
||||||
|
=========================
|
||||||
|
|
||||||
This device driver uses standard interfaces defined by kernel RapidIO subsystem
|
This device driver uses standard interfaces defined by kernel RapidIO subsystem
|
||||||
and therefore it can be used with any mport device driver registered by RapidIO
|
and therefore it can be used with any mport device driver registered by RapidIO
|
||||||
|
@ -78,29 +75,35 @@ functionality of their platform when planning to use this driver:
|
||||||
specific DMA engine support and therefore DMA data transfers mport_cdev driver
|
specific DMA engine support and therefore DMA data transfers mport_cdev driver
|
||||||
are not available.
|
are not available.
|
||||||
|
|
||||||
III. Module parameters
|
3. Module parameters
|
||||||
|
====================
|
||||||
|
|
||||||
- 'dma_timeout' - DMA transfer completion timeout (in msec, default value 3000).
|
- 'dma_timeout'
|
||||||
|
- DMA transfer completion timeout (in msec, default value 3000).
|
||||||
This parameter set a maximum completion wait time for SYNC mode DMA
|
This parameter set a maximum completion wait time for SYNC mode DMA
|
||||||
transfer requests and for RIO_WAIT_FOR_ASYNC ioctl requests.
|
transfer requests and for RIO_WAIT_FOR_ASYNC ioctl requests.
|
||||||
|
|
||||||
- 'dbg_level' - This parameter allows to control amount of debug information
|
- 'dbg_level'
|
||||||
|
- This parameter allows to control amount of debug information
|
||||||
generated by this device driver. This parameter is formed by set of
|
generated by this device driver. This parameter is formed by set of
|
||||||
bit masks that correspond to the specific functional blocks.
|
bit masks that correspond to the specific functional blocks.
|
||||||
For mask definitions see 'drivers/rapidio/devices/rio_mport_cdev.c'
|
For mask definitions see 'drivers/rapidio/devices/rio_mport_cdev.c'
|
||||||
This parameter can be changed dynamically.
|
This parameter can be changed dynamically.
|
||||||
Use CONFIG_RAPIDIO_DEBUG=y to enable debug output at the top level.
|
Use CONFIG_RAPIDIO_DEBUG=y to enable debug output at the top level.
|
||||||
|
|
||||||
IV. Known problems
|
4. Known problems
|
||||||
|
=================
|
||||||
|
|
||||||
None.
|
None.
|
||||||
|
|
||||||
V. User-space Applications and API
|
5. User-space Applications and API
|
||||||
|
==================================
|
||||||
|
|
||||||
API library and applications that use this device driver are available from
|
API library and applications that use this device driver are available from
|
||||||
RapidIO.org.
|
RapidIO.org.
|
||||||
|
|
||||||
VI. TODO List
|
6. TODO List
|
||||||
|
============
|
||||||
|
|
||||||
- Add support for sending/receiving "raw" RapidIO messaging packets.
|
- Add support for sending/receiving "raw" RapidIO messaging packets.
|
||||||
- Add memory mapped DMA data transfers as an option when RapidIO-specific DMA
|
- Add memory mapped DMA data transfers as an option when RapidIO-specific DMA
|
|
@ -1,6 +1,6 @@
|
||||||
The Linux RapidIO Subsystem
|
============
|
||||||
|
Introduction
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
============
|
||||||
|
|
||||||
The RapidIO standard is a packet-based fabric interconnect standard designed for
|
The RapidIO standard is a packet-based fabric interconnect standard designed for
|
||||||
use in embedded systems. Development of the RapidIO standard is directed by the
|
use in embedded systems. Development of the RapidIO standard is directed by the
|
||||||
|
@ -11,7 +11,7 @@ This document describes the basics of the Linux RapidIO subsystem and provides
|
||||||
information on its major components.
|
information on its major components.
|
||||||
|
|
||||||
1 Overview
|
1 Overview
|
||||||
----------
|
==========
|
||||||
|
|
||||||
Because the RapidIO subsystem follows the Linux device model it is integrated
|
Because the RapidIO subsystem follows the Linux device model it is integrated
|
||||||
into the kernel similarly to other buses by defining RapidIO-specific device and
|
into the kernel similarly to other buses by defining RapidIO-specific device and
|
||||||
|
@ -22,7 +22,7 @@ architecture-specific interfaces that provide support for common RapidIO
|
||||||
subsystem operations.
|
subsystem operations.
|
||||||
|
|
||||||
2. Core Components
|
2. Core Components
|
||||||
------------------
|
==================
|
||||||
|
|
||||||
A typical RapidIO network is a combination of endpoints and switches.
|
A typical RapidIO network is a combination of endpoints and switches.
|
||||||
Each of these components is represented in the subsystem by an associated data
|
Each of these components is represented in the subsystem by an associated data
|
||||||
|
@ -30,6 +30,7 @@ structure. The core logical components of the RapidIO subsystem are defined
|
||||||
in include/linux/rio.h file.
|
in include/linux/rio.h file.
|
||||||
|
|
||||||
2.1 Master Port
|
2.1 Master Port
|
||||||
|
---------------
|
||||||
|
|
||||||
A master port (or mport) is a RapidIO interface controller that is local to the
|
A master port (or mport) is a RapidIO interface controller that is local to the
|
||||||
processor executing the Linux code. A master port generates and receives RapidIO
|
processor executing the Linux code. A master port generates and receives RapidIO
|
||||||
|
@ -46,6 +47,7 @@ includes rio_ops data structure which contains pointers to hardware specific
|
||||||
implementations of RapidIO functions.
|
implementations of RapidIO functions.
|
||||||
|
|
||||||
2.2 Device
|
2.2 Device
|
||||||
|
----------
|
||||||
|
|
||||||
A RapidIO device is any endpoint (other than mport) or switch in the network.
|
A RapidIO device is any endpoint (other than mport) or switch in the network.
|
||||||
All devices are presented in the RapidIO subsystem by corresponding rio_dev data
|
All devices are presented in the RapidIO subsystem by corresponding rio_dev data
|
||||||
|
@ -53,6 +55,7 @@ structure. Devices form one global device list and per-network device lists
|
||||||
(depending on number of available mports and networks).
|
(depending on number of available mports and networks).
|
||||||
|
|
||||||
2.3 Switch
|
2.3 Switch
|
||||||
|
----------
|
||||||
|
|
||||||
A RapidIO switch is a special class of device that routes packets between its
|
A RapidIO switch is a special class of device that routes packets between its
|
||||||
ports towards their final destination. The packet destination port within a
|
ports towards their final destination. The packet destination port within a
|
||||||
|
@ -66,6 +69,7 @@ specific switch drivers that are designed to provide hardware-specific
|
||||||
implementation of common switch management routines.
|
implementation of common switch management routines.
|
||||||
|
|
||||||
2.4 Network
|
2.4 Network
|
||||||
|
-----------
|
||||||
|
|
||||||
A RapidIO network is a combination of interconnected endpoint and switch devices.
|
A RapidIO network is a combination of interconnected endpoint and switch devices.
|
||||||
Each RapidIO network known to the system is represented by corresponding rio_net
|
Each RapidIO network known to the system is represented by corresponding rio_net
|
||||||
|
@ -74,11 +78,13 @@ ports that form the same network. It also contains a pointer to the default
|
||||||
master port that is used to communicate with devices within the network.
|
master port that is used to communicate with devices within the network.
|
||||||
|
|
||||||
2.5 Device Drivers
|
2.5 Device Drivers
|
||||||
|
------------------
|
||||||
|
|
||||||
RapidIO device-specific drivers follow Linux Kernel Driver Model and are
|
RapidIO device-specific drivers follow Linux Kernel Driver Model and are
|
||||||
intended to support specific RapidIO devices attached to the RapidIO network.
|
intended to support specific RapidIO devices attached to the RapidIO network.
|
||||||
|
|
||||||
2.6 Subsystem Interfaces
|
2.6 Subsystem Interfaces
|
||||||
|
------------------------
|
||||||
|
|
||||||
RapidIO interconnect specification defines features that may be used to provide
|
RapidIO interconnect specification defines features that may be used to provide
|
||||||
one or more common service layers for all participating RapidIO devices. These
|
one or more common service layers for all participating RapidIO devices. These
|
||||||
|
@ -90,7 +96,7 @@ subsystem interfaces. This allows to have multiple common services attached to
|
||||||
the same device without blocking attachment of a device-specific driver.
|
the same device without blocking attachment of a device-specific driver.
|
||||||
|
|
||||||
3. Subsystem Initialization
|
3. Subsystem Initialization
|
||||||
---------------------------
|
===========================
|
||||||
|
|
||||||
In order to initialize the RapidIO subsystem, a platform must initialize and
|
In order to initialize the RapidIO subsystem, a platform must initialize and
|
||||||
register at least one master port within the RapidIO network. To register mport
|
register at least one master port within the RapidIO network. To register mport
|
||||||
|
@ -105,7 +111,7 @@ RapidIO subsystem can be configured to be built as a statically linked or
|
||||||
modular component of the kernel (see details below).
|
modular component of the kernel (see details below).
|
||||||
|
|
||||||
4. Enumeration and Discovery
|
4. Enumeration and Discovery
|
||||||
----------------------------
|
============================
|
||||||
|
|
||||||
4.1 Overview
|
4.1 Overview
|
||||||
------------
|
------------
|
||||||
|
@ -168,14 +174,16 @@ on RapidIO subsystem build configuration:
|
||||||
(b) If the RapidIO subsystem core is built as a loadable module, in addition
|
(b) If the RapidIO subsystem core is built as a loadable module, in addition
|
||||||
to the method shown above, the host destination ID(s) can be specified using
|
to the method shown above, the host destination ID(s) can be specified using
|
||||||
traditional methods of passing module parameter "hdid=" during its loading:
|
traditional methods of passing module parameter "hdid=" during its loading:
|
||||||
|
|
||||||
- from command line: "modprobe rapidio hdid=-1,7", or
|
- from command line: "modprobe rapidio hdid=-1,7", or
|
||||||
- from modprobe configuration file using configuration command "options",
|
- from modprobe configuration file using configuration command "options",
|
||||||
like in this example: "options rapidio hdid=-1,7". An example of modprobe
|
like in this example: "options rapidio hdid=-1,7". An example of modprobe
|
||||||
configuration file is provided in the section below.
|
configuration file is provided in the section below.
|
||||||
|
|
||||||
NOTES:
|
NOTES:
|
||||||
(i) if "hdid=" parameter is omitted all available mport will be assigned
|
(i) if "hdid=" parameter is omitted all available mport will be assigned
|
||||||
destination ID = -1;
|
destination ID = -1;
|
||||||
|
|
||||||
(ii) the "hdid=" parameter in systems with multiple mports can have
|
(ii) the "hdid=" parameter in systems with multiple mports can have
|
||||||
destination ID assignments omitted from the end of list (default = -1).
|
destination ID assignments omitted from the end of list (default = -1).
|
||||||
|
|
||||||
|
@ -317,8 +325,7 @@ must ensure that they are loaded before the enumeration/discovery starts.
|
||||||
This process can be automated by specifying pre- or post- dependencies in the
|
This process can be automated by specifying pre- or post- dependencies in the
|
||||||
RapidIO-specific modprobe configuration file as shown in the example below.
|
RapidIO-specific modprobe configuration file as shown in the example below.
|
||||||
|
|
||||||
File /etc/modprobe.d/rapidio.conf:
|
File /etc/modprobe.d/rapidio.conf::
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
# Configure RapidIO subsystem modules
|
# Configure RapidIO subsystem modules
|
||||||
|
|
||||||
|
@ -335,17 +342,21 @@ RapidIO-specific modprobe configuration file as shown in the example below.
|
||||||
|
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
NOTE: In the example above, one of "softdep" commands must be removed or
|
NOTE:
|
||||||
commented out to keep required module loading sequence.
|
In the example above, one of "softdep" commands must be removed or
|
||||||
|
commented out to keep required module loading sequence.
|
||||||
|
|
||||||
A. References
|
5. References
|
||||||
-------------
|
=============
|
||||||
|
|
||||||
[1] RapidIO Trade Association. RapidIO Interconnect Specifications.
|
[1] RapidIO Trade Association. RapidIO Interconnect Specifications.
|
||||||
http://www.rapidio.org.
|
http://www.rapidio.org.
|
||||||
|
|
||||||
[2] Rapidio TA. Technology Comparisons.
|
[2] Rapidio TA. Technology Comparisons.
|
||||||
http://www.rapidio.org/education/technology_comparisons/
|
http://www.rapidio.org/education/technology_comparisons/
|
||||||
|
|
||||||
[3] RapidIO support for Linux.
|
[3] RapidIO support for Linux.
|
||||||
http://lwn.net/Articles/139118/
|
http://lwn.net/Articles/139118/
|
||||||
|
|
||||||
[4] Matt Porter. RapidIO for Linux. Ottawa Linux Symposium, 2005
|
[4] Matt Porter. RapidIO for Linux. Ottawa Linux Symposium, 2005
|
||||||
http://www.kernel.org/doc/ols/2005/ols2005v2-pages-43-56.pdf
|
http://www.kernel.org/doc/ols/2005/ols2005v2-pages-43-56.pdf
|
|
@ -1,13 +1,10 @@
|
||||||
|
==========================================================================
|
||||||
RapidIO subsystem Channelized Messaging character device driver (rio_cm.c)
|
RapidIO subsystem Channelized Messaging character device driver (rio_cm.c)
|
||||||
==========================================================================
|
==========================================================================
|
||||||
|
|
||||||
Version History:
|
|
||||||
----------------
|
|
||||||
1.0.0 - Initial driver release.
|
|
||||||
|
|
||||||
==========================================================================
|
1. Overview
|
||||||
|
===========
|
||||||
I. Overview
|
|
||||||
|
|
||||||
This device driver is the result of collaboration within the RapidIO.org
|
This device driver is the result of collaboration within the RapidIO.org
|
||||||
Software Task Group (STG) between Texas Instruments, Prodrive Technologies,
|
Software Task Group (STG) between Texas Instruments, Prodrive Technologies,
|
||||||
|
@ -41,79 +38,98 @@ in /dev directory common for all registered RapidIO mport devices.
|
||||||
|
|
||||||
Following ioctl commands are available to user-space applications:
|
Following ioctl commands are available to user-space applications:
|
||||||
|
|
||||||
- RIO_CM_MPORT_GET_LIST : Returns to caller list of local mport devices that
|
- RIO_CM_MPORT_GET_LIST:
|
||||||
|
Returns to caller list of local mport devices that
|
||||||
support messaging operations (number of entries up to RIO_MAX_MPORTS).
|
support messaging operations (number of entries up to RIO_MAX_MPORTS).
|
||||||
Each list entry is combination of mport's index in the system and RapidIO
|
Each list entry is combination of mport's index in the system and RapidIO
|
||||||
destination ID assigned to the port.
|
destination ID assigned to the port.
|
||||||
- RIO_CM_EP_GET_LIST_SIZE : Returns number of messaging capable remote endpoints
|
- RIO_CM_EP_GET_LIST_SIZE:
|
||||||
|
Returns number of messaging capable remote endpoints
|
||||||
in a RapidIO network associated with the specified mport device.
|
in a RapidIO network associated with the specified mport device.
|
||||||
- RIO_CM_EP_GET_LIST : Returns list of RapidIO destination IDs for messaging
|
- RIO_CM_EP_GET_LIST:
|
||||||
|
Returns list of RapidIO destination IDs for messaging
|
||||||
capable remote endpoints (peers) available in a RapidIO network associated
|
capable remote endpoints (peers) available in a RapidIO network associated
|
||||||
with the specified mport device.
|
with the specified mport device.
|
||||||
- RIO_CM_CHAN_CREATE : Creates RapidIO message exchange channel data structure
|
- RIO_CM_CHAN_CREATE:
|
||||||
|
Creates RapidIO message exchange channel data structure
|
||||||
with channel ID assigned automatically or as requested by a caller.
|
with channel ID assigned automatically or as requested by a caller.
|
||||||
- RIO_CM_CHAN_BIND : Binds the specified channel data structure to the specified
|
- RIO_CM_CHAN_BIND:
|
||||||
|
Binds the specified channel data structure to the specified
|
||||||
mport device.
|
mport device.
|
||||||
- RIO_CM_CHAN_LISTEN : Enables listening for connection requests on the specified
|
- RIO_CM_CHAN_LISTEN:
|
||||||
|
Enables listening for connection requests on the specified
|
||||||
channel.
|
channel.
|
||||||
- RIO_CM_CHAN_ACCEPT : Accepts a connection request from peer on the specified
|
- RIO_CM_CHAN_ACCEPT:
|
||||||
|
Accepts a connection request from peer on the specified
|
||||||
channel. If wait timeout for this request is specified by a caller it is
|
channel. If wait timeout for this request is specified by a caller it is
|
||||||
a blocking call. If timeout set to 0 this is non-blocking call - ioctl
|
a blocking call. If timeout set to 0 this is non-blocking call - ioctl
|
||||||
handler checks for a pending connection request and if one is not available
|
handler checks for a pending connection request and if one is not available
|
||||||
exits with -EGAIN error status immediately.
|
exits with -EGAIN error status immediately.
|
||||||
- RIO_CM_CHAN_CONNECT : Sends a connection request to a remote peer/channel.
|
- RIO_CM_CHAN_CONNECT:
|
||||||
- RIO_CM_CHAN_SEND : Sends a data message through the specified channel.
|
Sends a connection request to a remote peer/channel.
|
||||||
|
- RIO_CM_CHAN_SEND:
|
||||||
|
Sends a data message through the specified channel.
|
||||||
The handler for this request assumes that message buffer specified by
|
The handler for this request assumes that message buffer specified by
|
||||||
a caller includes the reserved space for a packet header required by
|
a caller includes the reserved space for a packet header required by
|
||||||
this driver.
|
this driver.
|
||||||
- RIO_CM_CHAN_RECEIVE : Receives a data message through a connected channel.
|
- RIO_CM_CHAN_RECEIVE:
|
||||||
|
Receives a data message through a connected channel.
|
||||||
If the channel does not have an incoming message ready to return this ioctl
|
If the channel does not have an incoming message ready to return this ioctl
|
||||||
handler will wait for new message until timeout specified by a caller
|
handler will wait for new message until timeout specified by a caller
|
||||||
expires. If timeout value is set to 0, ioctl handler uses a default value
|
expires. If timeout value is set to 0, ioctl handler uses a default value
|
||||||
defined by MAX_SCHEDULE_TIMEOUT.
|
defined by MAX_SCHEDULE_TIMEOUT.
|
||||||
- RIO_CM_CHAN_CLOSE : Closes a specified channel and frees associated buffers.
|
- RIO_CM_CHAN_CLOSE:
|
||||||
|
Closes a specified channel and frees associated buffers.
|
||||||
If the specified channel is in the CONNECTED state, sends close notification
|
If the specified channel is in the CONNECTED state, sends close notification
|
||||||
to the remote peer.
|
to the remote peer.
|
||||||
|
|
||||||
The ioctl command codes and corresponding data structures intended for use by
|
The ioctl command codes and corresponding data structures intended for use by
|
||||||
user-space applications are defined in 'include/uapi/linux/rio_cm_cdev.h'.
|
user-space applications are defined in 'include/uapi/linux/rio_cm_cdev.h'.
|
||||||
|
|
||||||
II. Hardware Compatibility
|
2. Hardware Compatibility
|
||||||
|
=========================
|
||||||
|
|
||||||
This device driver uses standard interfaces defined by kernel RapidIO subsystem
|
This device driver uses standard interfaces defined by kernel RapidIO subsystem
|
||||||
and therefore it can be used with any mport device driver registered by RapidIO
|
and therefore it can be used with any mport device driver registered by RapidIO
|
||||||
subsystem with limitations set by available mport HW implementation of messaging
|
subsystem with limitations set by available mport HW implementation of messaging
|
||||||
mailboxes.
|
mailboxes.
|
||||||
|
|
||||||
III. Module parameters
|
3. Module parameters
|
||||||
|
====================
|
||||||
|
|
||||||
- 'dbg_level' - This parameter allows to control amount of debug information
|
- 'dbg_level'
|
||||||
|
- This parameter allows to control amount of debug information
|
||||||
generated by this device driver. This parameter is formed by set of
|
generated by this device driver. This parameter is formed by set of
|
||||||
bit masks that correspond to the specific functional block.
|
bit masks that correspond to the specific functional block.
|
||||||
For mask definitions see 'drivers/rapidio/devices/rio_cm.c'
|
For mask definitions see 'drivers/rapidio/devices/rio_cm.c'
|
||||||
This parameter can be changed dynamically.
|
This parameter can be changed dynamically.
|
||||||
Use CONFIG_RAPIDIO_DEBUG=y to enable debug output at the top level.
|
Use CONFIG_RAPIDIO_DEBUG=y to enable debug output at the top level.
|
||||||
|
|
||||||
- 'cmbox' - Number of RapidIO mailbox to use (default value is 1).
|
- 'cmbox'
|
||||||
|
- Number of RapidIO mailbox to use (default value is 1).
|
||||||
This parameter allows to set messaging mailbox number that will be used
|
This parameter allows to set messaging mailbox number that will be used
|
||||||
within entire RapidIO network. It can be used when default mailbox is
|
within entire RapidIO network. It can be used when default mailbox is
|
||||||
used by other device drivers or is not supported by some nodes in the
|
used by other device drivers or is not supported by some nodes in the
|
||||||
RapidIO network.
|
RapidIO network.
|
||||||
|
|
||||||
- 'chstart' - Start channel number for dynamic assignment. Default value - 256.
|
- 'chstart'
|
||||||
|
- Start channel number for dynamic assignment. Default value - 256.
|
||||||
Allows to exclude channel numbers below this parameter from dynamic
|
Allows to exclude channel numbers below this parameter from dynamic
|
||||||
allocation to avoid conflicts with software components that use
|
allocation to avoid conflicts with software components that use
|
||||||
reserved predefined channel numbers.
|
reserved predefined channel numbers.
|
||||||
|
|
||||||
IV. Known problems
|
4. Known problems
|
||||||
|
=================
|
||||||
|
|
||||||
None.
|
None.
|
||||||
|
|
||||||
V. User-space Applications and API Library
|
5. User-space Applications and API Library
|
||||||
|
==========================================
|
||||||
|
|
||||||
Messaging API library and applications that use this device driver are available
|
Messaging API library and applications that use this device driver are available
|
||||||
from RapidIO.org.
|
from RapidIO.org.
|
||||||
|
|
||||||
VI. TODO List
|
6. TODO List
|
||||||
|
============
|
||||||
|
|
||||||
- Add support for system notification messages (reserved channel 0).
|
- Add support for system notification messages (reserved channel 0).
|
|
@ -1,3 +1,7 @@
|
||||||
|
=============
|
||||||
|
Sysfs entries
|
||||||
|
=============
|
||||||
|
|
||||||
The RapidIO sysfs files have moved to:
|
The RapidIO sysfs files have moved to:
|
||||||
Documentation/ABI/testing/sysfs-bus-rapidio and
|
Documentation/ABI/testing/sysfs-bus-rapidio and
|
||||||
Documentation/ABI/testing/sysfs-class-rapidio
|
Documentation/ABI/testing/sysfs-class-rapidio
|
|
@ -1,7 +1,9 @@
|
||||||
|
=========================================================================
|
||||||
RapidIO subsystem mport driver for IDT Tsi721 PCI Express-to-SRIO bridge.
|
RapidIO subsystem mport driver for IDT Tsi721 PCI Express-to-SRIO bridge.
|
||||||
=========================================================================
|
=========================================================================
|
||||||
|
|
||||||
I. Overview
|
1. Overview
|
||||||
|
===========
|
||||||
|
|
||||||
This driver implements all currently defined RapidIO mport callback functions.
|
This driver implements all currently defined RapidIO mport callback functions.
|
||||||
It supports maintenance read and write operations, inbound and outbound RapidIO
|
It supports maintenance read and write operations, inbound and outbound RapidIO
|
||||||
|
@ -17,7 +19,9 @@ into the corresponding message queue. Messaging callbacks are implemented to be
|
||||||
fully compatible with RIONET driver (Ethernet over RapidIO messaging services).
|
fully compatible with RIONET driver (Ethernet over RapidIO messaging services).
|
||||||
|
|
||||||
1. Module parameters:
|
1. Module parameters:
|
||||||
- 'dbg_level' - This parameter allows to control amount of debug information
|
|
||||||
|
- 'dbg_level'
|
||||||
|
- This parameter allows to control amount of debug information
|
||||||
generated by this device driver. This parameter is formed by set of
|
generated by this device driver. This parameter is formed by set of
|
||||||
This parameter can be changed bit masks that correspond to the specific
|
This parameter can be changed bit masks that correspond to the specific
|
||||||
functional block.
|
functional block.
|
||||||
|
@ -25,37 +29,44 @@ fully compatible with RIONET driver (Ethernet over RapidIO messaging services).
|
||||||
This parameter can be changed dynamically.
|
This parameter can be changed dynamically.
|
||||||
Use CONFIG_RAPIDIO_DEBUG=y to enable debug output at the top level.
|
Use CONFIG_RAPIDIO_DEBUG=y to enable debug output at the top level.
|
||||||
|
|
||||||
- 'dma_desc_per_channel' - This parameter defines number of hardware buffer
|
- 'dma_desc_per_channel'
|
||||||
|
- This parameter defines number of hardware buffer
|
||||||
descriptors allocated for each registered Tsi721 DMA channel.
|
descriptors allocated for each registered Tsi721 DMA channel.
|
||||||
Its default value is 128.
|
Its default value is 128.
|
||||||
|
|
||||||
- 'dma_txqueue_sz' - DMA transactions queue size. Defines number of pending
|
- 'dma_txqueue_sz'
|
||||||
|
- DMA transactions queue size. Defines number of pending
|
||||||
transaction requests that can be accepted by each DMA channel.
|
transaction requests that can be accepted by each DMA channel.
|
||||||
Default value is 16.
|
Default value is 16.
|
||||||
|
|
||||||
- 'dma_sel' - DMA channel selection mask. Bitmask that defines which hardware
|
- 'dma_sel'
|
||||||
|
- DMA channel selection mask. Bitmask that defines which hardware
|
||||||
DMA channels (0 ... 6) will be registered with DmaEngine core.
|
DMA channels (0 ... 6) will be registered with DmaEngine core.
|
||||||
If bit is set to 1, the corresponding DMA channel will be registered.
|
If bit is set to 1, the corresponding DMA channel will be registered.
|
||||||
DMA channels not selected by this mask will not be used by this device
|
DMA channels not selected by this mask will not be used by this device
|
||||||
driver. Default value is 0x7f (use all channels).
|
driver. Default value is 0x7f (use all channels).
|
||||||
|
|
||||||
- 'pcie_mrrs' - override value for PCIe Maximum Read Request Size (MRRS).
|
- 'pcie_mrrs'
|
||||||
|
- override value for PCIe Maximum Read Request Size (MRRS).
|
||||||
This parameter gives an ability to override MRRS value set during PCIe
|
This parameter gives an ability to override MRRS value set during PCIe
|
||||||
configuration process. Tsi721 supports read request sizes up to 4096B.
|
configuration process. Tsi721 supports read request sizes up to 4096B.
|
||||||
Value for this parameter must be set as defined by PCIe specification:
|
Value for this parameter must be set as defined by PCIe specification:
|
||||||
0 = 128B, 1 = 256B, 2 = 512B, 3 = 1024B, 4 = 2048B and 5 = 4096B.
|
0 = 128B, 1 = 256B, 2 = 512B, 3 = 1024B, 4 = 2048B and 5 = 4096B.
|
||||||
Default value is '-1' (= keep platform setting).
|
Default value is '-1' (= keep platform setting).
|
||||||
|
|
||||||
- 'mbox_sel' - RIO messaging MBOX selection mask. This is a bitmask that defines
|
- 'mbox_sel'
|
||||||
|
- RIO messaging MBOX selection mask. This is a bitmask that defines
|
||||||
messaging MBOXes are managed by this device driver. Mask bits 0 - 3
|
messaging MBOXes are managed by this device driver. Mask bits 0 - 3
|
||||||
correspond to MBOX0 - MBOX3. MBOX is under driver's control if the
|
correspond to MBOX0 - MBOX3. MBOX is under driver's control if the
|
||||||
corresponding bit is set to '1'. Default value is 0x0f (= all).
|
corresponding bit is set to '1'. Default value is 0x0f (= all).
|
||||||
|
|
||||||
II. Known problems
|
2. Known problems
|
||||||
|
=================
|
||||||
|
|
||||||
None.
|
None.
|
||||||
|
|
||||||
III. DMA Engine Support
|
3. DMA Engine Support
|
||||||
|
=====================
|
||||||
|
|
||||||
Tsi721 mport driver supports DMA data transfers between local system memory and
|
Tsi721 mport driver supports DMA data transfers between local system memory and
|
||||||
remote RapidIO devices. This functionality is implemented according to SLAVE
|
remote RapidIO devices. This functionality is implemented according to SLAVE
|
||||||
|
@ -68,17 +79,21 @@ One BDMA channel is reserved for generation of maintenance read/write requests.
|
||||||
|
|
||||||
If Tsi721 mport driver have been built with RAPIDIO_DMA_ENGINE support included,
|
If Tsi721 mport driver have been built with RAPIDIO_DMA_ENGINE support included,
|
||||||
this driver will accept DMA-specific module parameter:
|
this driver will accept DMA-specific module parameter:
|
||||||
"dma_desc_per_channel" - defines number of hardware buffer descriptors used by
|
|
||||||
|
"dma_desc_per_channel"
|
||||||
|
- defines number of hardware buffer descriptors used by
|
||||||
each BDMA channel of Tsi721 (by default - 128).
|
each BDMA channel of Tsi721 (by default - 128).
|
||||||
|
|
||||||
IV. Version History
|
4. Version History
|
||||||
|
|
||||||
1.1.0 - DMA operations re-worked to support data scatter/gather lists larger
|
===== ====================================================================
|
||||||
|
1.1.0 DMA operations re-worked to support data scatter/gather lists larger
|
||||||
than hardware buffer descriptors ring.
|
than hardware buffer descriptors ring.
|
||||||
1.0.0 - Initial driver release.
|
1.0.0 Initial driver release.
|
||||||
|
===== ====================================================================
|
||||||
|
|
||||||
V. License
|
5. License
|
||||||
-----------------------------------------------
|
===========
|
||||||
|
|
||||||
Copyright(c) 2011 Integrated Device Technology, Inc. All rights reserved.
|
Copyright(c) 2011 Integrated Device Technology, Inc. All rights reserved.
|
||||||
|
|
|
@ -86,7 +86,7 @@ config RAPIDIO_CHMAN
|
||||||
This option includes RapidIO channelized messaging driver which
|
This option includes RapidIO channelized messaging driver which
|
||||||
provides socket-like interface to allow sharing of single RapidIO
|
provides socket-like interface to allow sharing of single RapidIO
|
||||||
messaging mailbox between multiple user-space applications.
|
messaging mailbox between multiple user-space applications.
|
||||||
See "Documentation/rapidio/rio_cm.txt" for driver description.
|
See "Documentation/rapidio/rio_cm.rst" for driver description.
|
||||||
|
|
||||||
config RAPIDIO_MPORT_CDEV
|
config RAPIDIO_MPORT_CDEV
|
||||||
tristate "RapidIO /dev mport device driver"
|
tristate "RapidIO /dev mport device driver"
|
||||||
|
|
Loading…
Reference in New Issue