                         RapidIO sysfs Files

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. Device Subdirectories
------------------------

For each RapidIO device, the RapidIO subsystem creates files in an individual
subdirectory with the following name, /sys/bus/rapidio/devices/<device_name>.

The format of device_name is "nn:d:iiii", where:

nn - two-digit hexadecimal ID of RapidIO network where the device resides
d  - device typr: 'e' - for endpoint or 's' - for switch
iiii - four-digit device destID for endpoints, or switchID for switches

For example, below is a list of device directories that represents a typical
RapidIO network with one switch, one host, and two agent endpoints, as it is
seen by the enumerating host (destID = 1):

/sys/bus/rapidio/devices/00:e:0000
/sys/bus/rapidio/devices/00:e:0002
/sys/bus/rapidio/devices/00:s:0001

NOTE: An enumerating or discovering endpoint does not create a sysfs entry for
itself, this is why an endpoint with destID=1 is not shown in the list.

2. Attributes Common for All Devices
------------------------------------

Each device subdirectory contains the following informational read-only files:

       did - returns the device identifier
       vid - returns the device vendor identifier
device_rev - returns the device revision level
   asm_did - returns identifier for the assembly containing the device
   asm_rev - returns revision level of the assembly containing the device
   asm_vid - returns vendor identifier of the assembly containing the device
   destid  - returns device destination ID assigned by the enumeration routine
             (see 4.1 for switch specific details)
   lprev   - returns name of previous device (switch) on the path to the device
             that that owns this attribute
  modalias - returns the device modalias

In addition to the files listed above, each device has a binary attribute file
that allows read/write access to the device configuration registers using
the RapidIO maintenance transactions:

 config - reads from and writes to the device configuration registers.

This attribute is similar in behavior to the "config" attribute of PCI devices
and provides an access to the RapidIO device registers using standard file read
and write operations.

3. Endpoint Device Attributes
-----------------------------

Currently Linux RapidIO subsystem does not create any endpoint specific sysfs
attributes. It is possible that RapidIO master port drivers and endpoint device
drivers will add their device-specific sysfs attributes but such attributes are
outside the scope of this document.

4. Switch Device Attributes
---------------------------

RapidIO switches have additional attributes in sysfs. RapidIO subsystem supports
common and device-specific sysfs attributes for switches. Because switches are
integrated into the RapidIO subsystem, it offers a method to create
device-specific sysfs attributes by specifying a callback function that may be
set by the switch initialization routine during enumeration or discovery process.

4.1 Common Switch Attributes

   routes - reports switch routing information in "destID port" format. This
            attribute reports only valid routing table entries, one line for
            each entry.
   destid - device destination ID that defines a route to the switch
 hopcount - number of hops on the path to the switch
    lnext - returns names of devices linked to the switch except one of a device
            linked to the ingress port (reported as "lprev"). This is an array
            names with number of lines equal to number of ports in switch. If
            a switch port has no attached device, returns "null" instead of
            a device name.

4.2 Device-specific Switch Attributes

Device-specific switch attributes are listed for each RapidIO switch driver
that exports additional attributes.

IDT_GEN2:
 errlog - reads contents of device error log until it is empty.


5. RapidIO Bus Attributes
-------------------------

RapidIO bus subdirectory /sys/bus/rapidio implements the following bus-specific
attribute:

  scan - allows to trigger enumeration discovery process from user space. This
	 is a write-only attribute. To initiate an enumeration or discovery
	 process on specific mport device, a user needs to write mport_ID (not
	 RapidIO destination ID) into this file. The mport_ID is a sequential
	 number (0 ... RIO_MAX_MPORTS) assigned to the mport device.
	 For example, for a machine with a single RapidIO controller, mport_ID
	 for that controller always will be 0.
	 To initiate RapidIO enumeration/discovery on all available mports
	 a user must write '-1' (or RIO_MPORT_ANY) into this attribute file.
