mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
75568f8094
Create convenience symlinks in sysfs, linking slots to device functions, and vice versa. These links make it easier for users to figure out which devices actually live in what slots. For example: sapphire:/sys/bus/pci/slots # ls 1 10 2 3 4 5 6 7 8 9 sapphire:/sys/bus/pci/slots # ls -l 3 total 0 -r--r--r-- 1 root root 65536 Aug 18 14:10 address lrwxrwxrwx 1 root root 0 Aug 18 14:10 function0 -> ../../../../devices/pci0000:23/0000:23:01.0 lrwxrwxrwx 1 root root 0 Aug 18 14:10 function1 -> ../../../../devices/pci0000:23/0000:23:01.1 sapphire:/sys/bus/pci/slots # ls -l 3/function0/slot lrwxrwxrwx 1 root root 0 Aug 18 14:13 3/function0/slot -> ../../../bus/pci/slots/3 The original form of this patch was written by Matthew Wilcox, and was enhanced to include links from the sysfs slots/ directory pointing back at the device functions. Cc: willy@linux.intel.com Signed-off-by: Alex Chiang <achiang@hp.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
182 lines
6.8 KiB
Plaintext
182 lines
6.8 KiB
Plaintext
What: /sys/bus/pci/drivers/.../bind
|
|
Date: December 2003
|
|
Contact: linux-pci@vger.kernel.org
|
|
Description:
|
|
Writing a device location to this file will cause
|
|
the driver to attempt to bind to the device found at
|
|
this location. This is useful for overriding default
|
|
bindings. The format for the location is: DDDD:BB:DD.F.
|
|
That is Domain:Bus:Device.Function and is the same as
|
|
found in /sys/bus/pci/devices/. For example:
|
|
# echo 0000:00:19.0 > /sys/bus/pci/drivers/foo/bind
|
|
(Note: kernels before 2.6.28 may require echo -n).
|
|
|
|
What: /sys/bus/pci/drivers/.../unbind
|
|
Date: December 2003
|
|
Contact: linux-pci@vger.kernel.org
|
|
Description:
|
|
Writing a device location to this file will cause the
|
|
driver to attempt to unbind from the device found at
|
|
this location. This may be useful when overriding default
|
|
bindings. The format for the location is: DDDD:BB:DD.F.
|
|
That is Domain:Bus:Device.Function and is the same as
|
|
found in /sys/bus/pci/devices/. For example:
|
|
# echo 0000:00:19.0 > /sys/bus/pci/drivers/foo/unbind
|
|
(Note: kernels before 2.6.28 may require echo -n).
|
|
|
|
What: /sys/bus/pci/drivers/.../new_id
|
|
Date: December 2003
|
|
Contact: linux-pci@vger.kernel.org
|
|
Description:
|
|
Writing a device ID to this file will attempt to
|
|
dynamically add a new device ID to a PCI device driver.
|
|
This may allow the driver to support more hardware than
|
|
was included in the driver's static device ID support
|
|
table at compile time. The format for the device ID is:
|
|
VVVV DDDD SVVV SDDD CCCC MMMM PPPP. That is Vendor ID,
|
|
Device ID, Subsystem Vendor ID, Subsystem Device ID,
|
|
Class, Class Mask, and Private Driver Data. The Vendor ID
|
|
and Device ID fields are required, the rest are optional.
|
|
Upon successfully adding an ID, the driver will probe
|
|
for the device and attempt to bind to it. For example:
|
|
# echo "8086 10f5" > /sys/bus/pci/drivers/foo/new_id
|
|
|
|
What: /sys/bus/pci/drivers/.../remove_id
|
|
Date: February 2009
|
|
Contact: Chris Wright <chrisw@sous-sol.org>
|
|
Description:
|
|
Writing a device ID to this file will remove an ID
|
|
that was dynamically added via the new_id sysfs entry.
|
|
The format for the device ID is:
|
|
VVVV DDDD SVVV SDDD CCCC MMMM. That is Vendor ID, Device
|
|
ID, Subsystem Vendor ID, Subsystem Device ID, Class,
|
|
and Class Mask. The Vendor ID and Device ID fields are
|
|
required, the rest are optional. After successfully
|
|
removing an ID, the driver will no longer support the
|
|
device. This is useful to ensure auto probing won't
|
|
match the driver to the device. For example:
|
|
# echo "8086 10f5" > /sys/bus/pci/drivers/foo/remove_id
|
|
|
|
What: /sys/bus/pci/rescan
|
|
Date: January 2009
|
|
Contact: Linux PCI developers <linux-pci@vger.kernel.org>
|
|
Description:
|
|
Writing a non-zero value to this attribute will
|
|
force a rescan of all PCI buses in the system, and
|
|
re-discover previously removed devices.
|
|
Depends on CONFIG_HOTPLUG.
|
|
|
|
What: /sys/bus/pci/devices/.../remove
|
|
Date: January 2009
|
|
Contact: Linux PCI developers <linux-pci@vger.kernel.org>
|
|
Description:
|
|
Writing a non-zero value to this attribute will
|
|
hot-remove the PCI device and any of its children.
|
|
Depends on CONFIG_HOTPLUG.
|
|
|
|
What: /sys/bus/pci/devices/.../rescan
|
|
Date: January 2009
|
|
Contact: Linux PCI developers <linux-pci@vger.kernel.org>
|
|
Description:
|
|
Writing a non-zero value to this attribute will
|
|
force a rescan of the device's parent bus and all
|
|
child buses, and re-discover devices removed earlier
|
|
from this part of the device tree.
|
|
Depends on CONFIG_HOTPLUG.
|
|
|
|
What: /sys/bus/pci/devices/.../reset
|
|
Date: July 2009
|
|
Contact: Michael S. Tsirkin <mst@redhat.com>
|
|
Description:
|
|
Some devices allow an individual function to be reset
|
|
without affecting other functions in the same device.
|
|
For devices that have this support, a file named reset
|
|
will be present in sysfs. Writing 1 to this file
|
|
will perform reset.
|
|
|
|
What: /sys/bus/pci/devices/.../vpd
|
|
Date: February 2008
|
|
Contact: Ben Hutchings <bhutchings@solarflare.com>
|
|
Description:
|
|
A file named vpd in a device directory will be a
|
|
binary file containing the Vital Product Data for the
|
|
device. It should follow the VPD format defined in
|
|
PCI Specification 2.1 or 2.2, but users should consider
|
|
that some devices may have malformatted data. If the
|
|
underlying VPD has a writable section then the
|
|
corresponding section of this file will be writable.
|
|
|
|
What: /sys/bus/pci/devices/.../virtfnN
|
|
Date: March 2009
|
|
Contact: Yu Zhao <yu.zhao@intel.com>
|
|
Description:
|
|
This symbolic link appears when hardware supports the SR-IOV
|
|
capability and the Physical Function driver has enabled it.
|
|
The symbolic link points to the PCI device sysfs entry of the
|
|
Virtual Function whose index is N (0...MaxVFs-1).
|
|
|
|
What: /sys/bus/pci/devices/.../dep_link
|
|
Date: March 2009
|
|
Contact: Yu Zhao <yu.zhao@intel.com>
|
|
Description:
|
|
This symbolic link appears when hardware supports the SR-IOV
|
|
capability and the Physical Function driver has enabled it,
|
|
and this device has vendor specific dependencies with others.
|
|
The symbolic link points to the PCI device sysfs entry of
|
|
Physical Function this device depends on.
|
|
|
|
What: /sys/bus/pci/devices/.../physfn
|
|
Date: March 2009
|
|
Contact: Yu Zhao <yu.zhao@intel.com>
|
|
Description:
|
|
This symbolic link appears when a device is a Virtual Function.
|
|
The symbolic link points to the PCI device sysfs entry of the
|
|
Physical Function this device associates with.
|
|
|
|
|
|
What: /sys/bus/pci/slots/...
|
|
Date: April 2005 (possibly older)
|
|
KernelVersion: 2.6.12 (possibly older)
|
|
Contact: linux-pci@vger.kernel.org
|
|
Description:
|
|
When the appropriate driver is loaded, it will create a
|
|
directory per claimed physical PCI slot in
|
|
/sys/bus/pci/slots/. The names of these directories are
|
|
specific to the driver, which in turn, are specific to the
|
|
platform, but in general, should match the label on the
|
|
machine's physical chassis.
|
|
|
|
The drivers that can create slot directories include the
|
|
PCI hotplug drivers, and as of 2.6.27, the pci_slot driver.
|
|
|
|
The slot directories contain, at a minimum, a file named
|
|
'address' which contains the PCI bus:device:function tuple.
|
|
Other files may appear as well, but are specific to the
|
|
driver.
|
|
|
|
What: /sys/bus/pci/slots/.../function[0-7]
|
|
Date: March 2010
|
|
KernelVersion: 2.6.35
|
|
Contact: linux-pci@vger.kernel.org
|
|
Description:
|
|
If PCI slot directories (as described above) are created,
|
|
and the physical slot is actually populated with a device,
|
|
symbolic links in the slot directory pointing to the
|
|
device's PCI functions are created as well.
|
|
|
|
What: /sys/bus/pci/devices/.../slot
|
|
Date: March 2010
|
|
KernelVersion: 2.6.35
|
|
Contact: linux-pci@vger.kernel.org
|
|
Description:
|
|
If PCI slot directories (as described above) are created,
|
|
a symbolic link pointing to the slot directory will be
|
|
created as well.
|
|
|
|
What: /sys/bus/pci/slots/.../module
|
|
Date: June 2009
|
|
Contact: linux-pci@vger.kernel.org
|
|
Description:
|
|
This symbolic link points to the PCI hotplug controller driver
|
|
module that manages the hotplug slot.
|