You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
7.0 KiB
158 lines
7.0 KiB
RapidIO sysfs Files |
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
1. RapidIO 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 RapidIO 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. RapidIO 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. RapidIO 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. |
|
|
|
|
|
6. RapidIO Bus Controllers/Ports |
|
-------------------------------- |
|
|
|
On-chip RapidIO controllers and PCIe-to-RapidIO bridges (referenced as |
|
"Master Port" or "mport") are presented in sysfs as the special class of |
|
devices: "rapidio_port". |
|
|
|
The /sys/class/rapidio_port subdirectory contains individual subdirectories |
|
named as "rapidioN" where N = mport ID registered with RapidIO subsystem. |
|
|
|
NOTE: An mport ID is not a RapidIO destination ID assigned to a given local |
|
mport device. |
|
|
|
Each mport device subdirectory in addition to standard entries contains the |
|
following device-specific attributes: |
|
|
|
port_destid - reports RapidIO destination ID assigned to the given RapidIO |
|
mport device. If value 0xFFFFFFFF is returned this means that |
|
no valid destination ID have been assigned to the mport (yet). |
|
Normally, before enumeration/discovery have been executed only |
|
fabric enumerating mports have a valid destination ID assigned |
|
to them using "hdid=..." rapidio module parameter. |
|
sys_size - reports RapidIO common transport system size: |
|
0 = small (8-bit destination ID, max. 256 devices), |
|
1 = large (16-bit destination ID, max. 65536 devices). |
|
|
|
After enumeration or discovery was performed for a given mport device, |
|
the corresponding subdirectory will also contain subdirectories for each |
|
child RapidIO device connected to the mport. Naming conventions for RapidIO |
|
devices are described in Section 1 above. |
|
|
|
The example below shows mport device subdirectory with several child RapidIO |
|
devices attached to it. |
|
|
|
[rio@rapidio ~]$ ls /sys/class/rapidio_port/rapidio0/ -l |
|
total 0 |
|
drwxr-xr-x 3 root root 0 Feb 11 15:10 00:e:0001 |
|
drwxr-xr-x 3 root root 0 Feb 11 15:10 00:e:0004 |
|
drwxr-xr-x 3 root root 0 Feb 11 15:10 00:e:0007 |
|
drwxr-xr-x 3 root root 0 Feb 11 15:10 00:s:0002 |
|
drwxr-xr-x 3 root root 0 Feb 11 15:10 00:s:0003 |
|
drwxr-xr-x 3 root root 0 Feb 11 15:10 00:s:0005 |
|
lrwxrwxrwx 1 root root 0 Feb 11 15:11 device -> ../../../0000:01:00.0 |
|
-r--r--r-- 1 root root 4096 Feb 11 15:11 port_destid |
|
drwxr-xr-x 2 root root 0 Feb 11 15:11 power |
|
lrwxrwxrwx 1 root root 0 Feb 11 15:04 subsystem -> ../../../../../../class/rapidio_port |
|
-r--r--r-- 1 root root 4096 Feb 11 15:11 sys_size |
|
-rw-r--r-- 1 root root 4096 Feb 11 15:04 uevent
|
|
|