# RapidIO Subsystem Guide

## 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

!Iinclude/linux/rio_drv.h !Edrivers/rapidio/rio-driver.c !Edrivers/rapidio/rio.c

## Internals

This chapter contains the autogenerated documentation of the RapidIO subsystem.

### Structures

!Iinclude/linux/rio.h

### Enumeration and Discovery

!Idrivers/rapidio/rio-scan.c

### Driver functionality

!Idrivers/rapidio/rio.c !Idrivers/rapidio/rio-access.c

### Device model support

!Idrivers/rapidio/rio-driver.c

### Sysfs support

!Idrivers/rapidio/rio-sysfs.c

### PPC32 support

!Earch/powerpc/sysdev/fsl_rio.c !Iarch/powerpc/sysdev/fsl_rio.c

## Credits

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

1. Matt Portermporter@kernel.crashing.org

2. Randy Vinsonrvinson@mvista.com

3. Dan Malekdan@embeddedalley.com

The following people have contributed to this document:

1. Matt Portermporter@kernel.crashing.org