<?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>
!Earch/powerpc/sysdev/fsl_rio.c
!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>
