Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 394b701c authored by Matt Porter's avatar Matt Porter Committed by Linus Torvalds
Browse files

[PATCH] RapidIO support: core base

Adds a RapidIO subsystem to the kernel.  RIO is a switched fabric interconnect
used in higher-end embedded applications.  The curious can look at the specs
over at http://www.rapidio.org



The core code implements enumeration/discovery, management of
devices/resources, and interfaces for RIO drivers.

There's a lot more to do to take advantages of all the hardware features.
However, this should provide a good base for folks with RIO hardware to start
contributing.

Signed-off-by: default avatarMatt Porter <mporter@kernel.crashing.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent d217d545
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml videobook.xml \
	    kernel-hacking.xml kernel-locking.xml deviceiobook.xml \
	    procfs-guide.xml writing_usb_driver.xml \
	    sis900.xml kernel-api.xml journal-api.xml lsm.xml usb.xml \
	    gadget.xml libata.xml mtdnand.xml librs.xml
	    gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml

###
# The build process is as follows (targets):
+160 −0
Original line number Diff line number Diff line
<?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>
     	<title>Bugs</title>
	  <para>None. ;)</para>
     </sect1>
     <sect1>
     	<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>
		<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><title>Structures</title>
!Iinclude/linux/rio.h
     </sect1>
     <sect1><title>Enumeration and Discovery</title>
!Idrivers/rapidio/rio-scan.c
     </sect1>
     <sect1><title>Driver functionality</title>
!Idrivers/rapidio/rio.c
!Idrivers/rapidio/rio-access.c
     </sect1>
     <sect1><title>Device model support</title>
!Idrivers/rapidio/rio-driver.c
     </sect1>
     <sect1><title>Sysfs support</title>
!Idrivers/rapidio/rio-sysfs.c
     </sect1>
     <sect1><title>PPC32 support</title>
!Iarch/ppc/kernel/rio.c
!Earch/ppc/syslib/ppc85xx_rio.c
!Iarch/ppc/syslib/ppc85xx_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>
+6 −0
Original line number Diff line number Diff line
@@ -2071,6 +2071,12 @@ P: Matt Mackall
M:	mpm@selenic.com
S:	Maintained

RAPIDIO SUBSYSTEM
P:	Matt Porter
M:	mporter@kernel.crashing.org
L:	linux-kernel@vger.kernel.org
S:	Maintained

REAL TIME CLOCK DRIVER
P:	Paul Gortmaker
M:	p_gortmaker@yahoo.com
+1 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@

obj-$(CONFIG_PCI)		+= pci/ usb/
obj-$(CONFIG_PARISC)		+= parisc/
obj-$(CONFIG_RAPIDIO)		+= rapidio/
obj-y				+= video/
obj-$(CONFIG_ACPI)		+= acpi/
# PnP must come after ACPI since it will eventually need to check if acpi
+18 −0
Original line number Diff line number Diff line
#
# RapidIO configuration
#
config RAPIDIO_8_BIT_TRANSPORT
	bool "8-bit transport addressing"
	depends on RAPIDIO
	---help---
	  By default, the kernel assumes a 16-bit addressed RapidIO
	  network. By selecting this option, the kernel will support
	  an 8-bit addressed network.

config RAPIDIO_DISC_TIMEOUT
	int "Discovery timeout duration (seconds)"
	depends on RAPIDIO
	default "30"
	---help---
	  Amount of time a discovery node waits for a host to complete
	  enumeration beforing giving up.
Loading