| 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. |