<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
        "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
	<!ENTITY rapidio SYSTEM "rapidio.xml">
	]>

<book id="RapidIO-Guide">
 <bookinfo>
  <title>RapidIO Subsystem Guide</title>

  <authorgroup>
   <author>
    <firstname>Matt</firstname>
    <surname>Porter</surname>
    <affiliation>
     <address>
      <email>mporter@kernel.crashing.org</email>
      <email>mporter@mvista.com</email>
     </address>
    </affiliation>
   </author>
  </authorgroup>

  <copyright>
   <year>2005</year>
   <holder>MontaVista Software, Inc.</holder>
  </copyright>

  <legalnotice>
   <para>
     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.
   </para>

   <para>
     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.
   </para>

   <para>
     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
   </para>

   <para>
     For more details see the file COPYING in the source
     distribution of Linux.
   </para>
  </legalnotice>
 </bookinfo>

<toc></toc>

  <chapter id="intro">
      <title>Introduction</title>
  <para>
	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.
  </para>
  <para>
  	This documentation is provided for developers intending
	to support RapidIO on new architectures, write new drivers,
	or to understand the subsystem internals.
  </para>
  </chapter>

  <chapter id="bugs">
     <title>Known Bugs and Limitations</title>

     <sect1 id="known_bugs">
     	<title>Bugs</title>
	  <para>None. ;)</para>
     </sect1>
     <sect1 id="Limitations">
     	<title>Limitations</title>
	  <para>
	    <orderedlist>
	      <listitem><para>Access/management of RapidIO memory regions is not supported</para></listitem>
	      <listitem><para>Multiple host enumeration is not supported</para></listitem>
	    </orderedlist>
	 </para>
     </sect1>
  </chapter>

  <chapter id="drivers">
     	<title>RapidIO driver interface</title>
	<para>
		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.
	</para>
	<sect1 id="Functions">
		<title>Functions</title>
!Iinclude/linux/rio_drv.h
!Edrivers/rapidio/rio-driver.c
!Edrivers/rapidio/rio.c
	</sect1>
  </chapter>

  <chapter id="internals">
     <title>Internals</title>

     <para>
     This chapter contains the autogenerated documentation of the RapidIO
     subsystem.
     </para>

     <sect1 id="Structures"><title>Structures</title>
!Iinclude/linux/rio.h
     </sect1>
     <sect1 id="Enumeration_and_Discovery"><title>Enumeration and Discovery</title>
!Idrivers/rapidio/rio-scan.c
     </sect1>
     <sect1 id="Driver_functionality"><title>Driver functionality</title>
!Idrivers/rapidio/rio.c
!Idrivers/rapidio/rio-access.c
     </sect1>
     <sect1 id="Device_model_support"><title>Device model support</title>
!Idrivers/rapidio/rio-driver.c
     </sect1>
     <sect1 id="Sysfs_support"><title>Sysfs support</title>
!Idrivers/rapidio/rio-sysfs.c
     </sect1>
     <sect1 id="PPC32_support"><title>PPC32 support</title>
!Iarch/powerpc/sysdev/fsl_rio.c
     </sect1>
  </chapter>

  <chapter id="credits">
     <title>Credits</title>
	<para>
		The following people have contributed to the RapidIO
		subsystem directly or indirectly:
		<orderedlist>
			<listitem><para>Matt Porter<email>mporter@kernel.crashing.org</email></para></listitem>
			<listitem><para>Randy Vinson<email>rvinson@mvista.com</email></para></listitem>
			<listitem><para>Dan Malek<email>dan@embeddedalley.com</email></para></listitem>
		</orderedlist>
	</para>
	<para>
		The following people have contributed to this document:
		<orderedlist>
			<listitem><para>Matt Porter<email>mporter@kernel.crashing.org</email></para></listitem>
		</orderedlist>
	</para>
  </chapter>
</book>
