(PCI Device Resource Access & Configuration)
This post is about how can we access and configure PCI Device using a different kind of filesystems available in Linux. The two different kinds of filesystems are procfs (legacy) and sysfs (the new type which provides more details than procfs). Both of these provide information about System, Device or, CPU, etc. The procfs is limited in providing the information than sysfs for PCI as well as other devices.
PCI Device Representation:
- [[[[<domain>]:]<bus>]:][<slot / device][.[<function>]]
- domain (16Bit value) => 0000 - FFFF
- bus (8Bit value) => 00 - FF
- slot / device (5Bit value) => 00 - 1F
- function (3Bit value) => 0 - 7
PCI procfs interface:
|
|
|
|
|
|
Example 1: Accessing pci devices with different type of data (device id, vendor id, etc). -- Human readable and easily accessible format.
Example 2: Accessing Ethernet controller.
Linux pci sysfs interface:
|
|
|
|
|
|
|
|
Example 3: acessing sysfs.
Example 4: Enabling - Disabling Ethernet port (e1000) in sysfs.
sysfs files ( /sys/bus/pci/devices/<domain>:<bus>:<slot>:<func> )
RO: Read Only
Comments
Post a Comment