5eeb929390
Update RapidIO documentation to reflect changes made to enumeration/discovery build configuration and user space triggering mechanism. Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com> Cc: Matt Porter <mporter@kernel.crashing.org> Cc: Li Yang <leoli@freescale.com> Cc: Kumar Gala <galak@kernel.crashing.org> Cc: Andre van Herk <andre.van.herk@Prodrive.nl> Cc: Micha Nelissen <micha.nelissen@Prodrive.nl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
108 lines
4.6 KiB
Plaintext
108 lines
4.6 KiB
Plaintext
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
|
|
|
|
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.
|