=======================
RapidIO Subsystem Guide
=======================

:Author: Matt Porter

Introduction
============

RapidIO is a high speed switched fabric interconnect with features aimed
at the embedded market. RapidIO provides support for memory-mapped I/O
as well as message-based transactions over the switched fabric network.
RapidIO has a standardized discovery mechanism not unlike the PCI bus
standard that allows simple detection of devices in a network.

This documentation is provided for developers intending to support
RapidIO on new architectures, write new drivers, or to understand the
subsystem internals.

Known Bugs and Limitations
==========================

Bugs
----

None. ;)

Limitations
-----------

1. Access/management of RapidIO memory regions is not supported

2. Multiple host enumeration is not supported

RapidIO driver interface
========================

Drivers are provided a set of calls in order to interface with the
subsystem to gather info on devices, request/map memory region
resources, and manage mailboxes/doorbells.

Functions
---------

.. kernel-doc:: include/linux/rio_drv.h
   :internal:

.. kernel-doc:: drivers/rapidio/rio-driver.c
   :export:

.. kernel-doc:: drivers/rapidio/rio.c
   :export:

Internals
=========

This chapter contains the autogenerated documentation of the RapidIO
subsystem.

Structures
----------

.. kernel-doc:: include/linux/rio.h
   :internal:

Enumeration and Discovery
-------------------------

.. kernel-doc:: drivers/rapidio/rio-scan.c
   :internal:

Driver functionality
--------------------

.. kernel-doc:: drivers/rapidio/rio.c
   :internal:

.. kernel-doc:: drivers/rapidio/rio-access.c
   :internal:

Device model support
--------------------

.. kernel-doc:: drivers/rapidio/rio-driver.c
   :internal:

PPC32 support
-------------

.. kernel-doc:: arch/powerpc/sysdev/fsl_rio.c
   :internal:

Credits
=======

The following people have contributed to the RapidIO subsystem directly
or indirectly:

1. Matt Porter\ mporter@kernel.crashing.org

2. Randy Vinson\ rvinson@mvista.com

3. Dan Malek\ dan@embeddedalley.com

The following people have contributed to this document:

1. Matt Porter\ mporter@kernel.crashing.org