# RapidIO Subsystem Guide

Matt
Porter

          mporter@kernel.crashing.org
          mporter@mvista.com

2005
MontaVista Software, Inc.

This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

For more details see the file COPYING in the source distribution of Linux.

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

!Iarch/ppc/kernel/rio.c !Earch/ppc/syslib/ppc85xx_rio.c !Iarch/ppc/syslib/ppc85xx_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