1d22157b3SChris WrightWhat: /sys/bus/pci/drivers/.../bind 2d22157b3SChris WrightDate: December 2003 3d22157b3SChris WrightContact: linux-pci@vger.kernel.org 4d22157b3SChris WrightDescription: 5d22157b3SChris Wright Writing a device location to this file will cause 6d22157b3SChris Wright the driver to attempt to bind to the device found at 7d22157b3SChris Wright this location. This is useful for overriding default 8d22157b3SChris Wright bindings. The format for the location is: DDDD:BB:DD.F. 9d22157b3SChris Wright That is Domain:Bus:Device.Function and is the same as 1054a19b4dSMauro Carvalho Chehab found in /sys/bus/pci/devices/. For example:: 1154a19b4dSMauro Carvalho Chehab 12d22157b3SChris Wright # echo 0000:00:19.0 > /sys/bus/pci/drivers/foo/bind 1354a19b4dSMauro Carvalho Chehab 14d22157b3SChris Wright (Note: kernels before 2.6.28 may require echo -n). 15d22157b3SChris Wright 16d22157b3SChris WrightWhat: /sys/bus/pci/drivers/.../unbind 17d22157b3SChris WrightDate: December 2003 18d22157b3SChris WrightContact: linux-pci@vger.kernel.org 19d22157b3SChris WrightDescription: 20d22157b3SChris Wright Writing a device location to this file will cause the 21d22157b3SChris Wright driver to attempt to unbind from the device found at 22d22157b3SChris Wright this location. This may be useful when overriding default 23d22157b3SChris Wright bindings. The format for the location is: DDDD:BB:DD.F. 24d22157b3SChris Wright That is Domain:Bus:Device.Function and is the same as 2554a19b4dSMauro Carvalho Chehab found in /sys/bus/pci/devices/. For example:: 2654a19b4dSMauro Carvalho Chehab 27d22157b3SChris Wright # echo 0000:00:19.0 > /sys/bus/pci/drivers/foo/unbind 2854a19b4dSMauro Carvalho Chehab 29d22157b3SChris Wright (Note: kernels before 2.6.28 may require echo -n). 30d22157b3SChris Wright 31d22157b3SChris WrightWhat: /sys/bus/pci/drivers/.../new_id 32d22157b3SChris WrightDate: December 2003 33d22157b3SChris WrightContact: linux-pci@vger.kernel.org 34d22157b3SChris WrightDescription: 35d22157b3SChris Wright Writing a device ID to this file will attempt to 36d22157b3SChris Wright dynamically add a new device ID to a PCI device driver. 37d22157b3SChris Wright This may allow the driver to support more hardware than 38d22157b3SChris Wright was included in the driver's static device ID support 39d22157b3SChris Wright table at compile time. The format for the device ID is: 40d22157b3SChris Wright VVVV DDDD SVVV SDDD CCCC MMMM PPPP. That is Vendor ID, 41d22157b3SChris Wright Device ID, Subsystem Vendor ID, Subsystem Device ID, 42d22157b3SChris Wright Class, Class Mask, and Private Driver Data. The Vendor ID 43d22157b3SChris Wright and Device ID fields are required, the rest are optional. 44d22157b3SChris Wright Upon successfully adding an ID, the driver will probe 4554a19b4dSMauro Carvalho Chehab for the device and attempt to bind to it. For example:: 4654a19b4dSMauro Carvalho Chehab 47d22157b3SChris Wright # echo "8086 10f5" > /sys/bus/pci/drivers/foo/new_id 48d22157b3SChris Wright 490994375eSChris WrightWhat: /sys/bus/pci/drivers/.../remove_id 500994375eSChris WrightDate: February 2009 510994375eSChris WrightContact: Chris Wright <chrisw@sous-sol.org> 520994375eSChris WrightDescription: 530994375eSChris Wright Writing a device ID to this file will remove an ID 540994375eSChris Wright that was dynamically added via the new_id sysfs entry. 550994375eSChris Wright The format for the device ID is: 560994375eSChris Wright VVVV DDDD SVVV SDDD CCCC MMMM. That is Vendor ID, Device 570994375eSChris Wright ID, Subsystem Vendor ID, Subsystem Device ID, Class, 580994375eSChris Wright and Class Mask. The Vendor ID and Device ID fields are 590994375eSChris Wright required, the rest are optional. After successfully 600994375eSChris Wright removing an ID, the driver will no longer support the 610994375eSChris Wright device. This is useful to ensure auto probing won't 6254a19b4dSMauro Carvalho Chehab match the driver to the device. For example:: 6354a19b4dSMauro Carvalho Chehab 640994375eSChris Wright # echo "8086 10f5" > /sys/bus/pci/drivers/foo/remove_id 650994375eSChris Wright 66705b1aaaSAlex ChiangWhat: /sys/bus/pci/rescan 67705b1aaaSAlex ChiangDate: January 2009 68705b1aaaSAlex ChiangContact: Linux PCI developers <linux-pci@vger.kernel.org> 69705b1aaaSAlex ChiangDescription: 70705b1aaaSAlex Chiang Writing a non-zero value to this attribute will 71705b1aaaSAlex Chiang force a rescan of all PCI buses in the system, and 72705b1aaaSAlex Chiang re-discover previously removed devices. 73705b1aaaSAlex Chiang 74468ff15aSYijing WangWhat: /sys/bus/pci/devices/.../msi_bus 75468ff15aSYijing WangDate: September 2014 76468ff15aSYijing WangContact: Linux PCI developers <linux-pci@vger.kernel.org> 77468ff15aSYijing WangDescription: 78468ff15aSYijing Wang Writing a zero value to this attribute disallows MSI and 79468ff15aSYijing Wang MSI-X for any future drivers of the device. If the device 80468ff15aSYijing Wang is a bridge, MSI and MSI-X will be disallowed for future 81468ff15aSYijing Wang drivers of all child devices under the bridge. Drivers 82468ff15aSYijing Wang must be reloaded for the new setting to take effect. 83468ff15aSYijing Wang 84b50cac55SNeil HormanWhat: /sys/bus/pci/devices/.../msi_irqs/ 85b50cac55SNeil HormanDate: September, 2011 86b50cac55SNeil HormanContact: Neil Horman <nhorman@tuxdriver.com> 87b50cac55SNeil HormanDescription: 88b50cac55SNeil Horman The /sys/devices/.../msi_irqs directory contains a variable set 891c51b50cSGreg Kroah-Hartman of files, with each file being named after a corresponding msi 901c51b50cSGreg Kroah-Hartman irq vector allocated to that device. 91b50cac55SNeil Horman 921c51b50cSGreg Kroah-HartmanWhat: /sys/bus/pci/devices/.../msi_irqs/<N> 93b50cac55SNeil HormanDate: September 2011 94b50cac55SNeil HormanContact: Neil Horman <nhorman@tuxdriver.com> 95b50cac55SNeil HormanDescription: 96b50cac55SNeil Horman This attribute indicates the mode that the irq vector named by 971c51b50cSGreg Kroah-Hartman the file is in (msi vs. msix) 98b50cac55SNeil Horman 9977c27c7bSAlex ChiangWhat: /sys/bus/pci/devices/.../remove 10077c27c7bSAlex ChiangDate: January 2009 10177c27c7bSAlex ChiangContact: Linux PCI developers <linux-pci@vger.kernel.org> 10277c27c7bSAlex ChiangDescription: 10377c27c7bSAlex Chiang Writing a non-zero value to this attribute will 10477c27c7bSAlex Chiang hot-remove the PCI device and any of its children. 10577c27c7bSAlex Chiang 106b9d320fcSYinghai LuWhat: /sys/bus/pci/devices/.../pci_bus/.../rescan 107b9d320fcSYinghai LuDate: May 2011 108b9d320fcSYinghai LuContact: Linux PCI developers <linux-pci@vger.kernel.org> 109b9d320fcSYinghai LuDescription: 110b9d320fcSYinghai Lu Writing a non-zero value to this attribute will 111b9d320fcSYinghai Lu force a rescan of the bus and all child buses, 112b9d320fcSYinghai Lu and re-discover devices removed earlier from this 11340b31360SStephen Rothwell part of the device tree. 114b9d320fcSYinghai Lu 115738a6396SAlex ChiangWhat: /sys/bus/pci/devices/.../rescan 116738a6396SAlex ChiangDate: January 2009 117738a6396SAlex ChiangContact: Linux PCI developers <linux-pci@vger.kernel.org> 118738a6396SAlex ChiangDescription: 119738a6396SAlex Chiang Writing a non-zero value to this attribute will 120738a6396SAlex Chiang force a rescan of the device's parent bus and all 121738a6396SAlex Chiang child buses, and re-discover devices removed earlier 122738a6396SAlex Chiang from this part of the device tree. 123738a6396SAlex Chiang 124d88f521dSAmey NarkhedeWhat: /sys/bus/pci/devices/.../reset_method 125d88f521dSAmey NarkhedeDate: August 2021 126d88f521dSAmey NarkhedeContact: Amey Narkhede <ameynarkhede03@gmail.com> 127d88f521dSAmey NarkhedeDescription: 128d88f521dSAmey Narkhede Some devices allow an individual function to be reset 129d88f521dSAmey Narkhede without affecting other functions in the same slot. 130d88f521dSAmey Narkhede 131d88f521dSAmey Narkhede For devices that have this support, a file named 132d88f521dSAmey Narkhede reset_method is present in sysfs. Reading this file 133d88f521dSAmey Narkhede gives names of the supported and enabled reset methods and 134d88f521dSAmey Narkhede their ordering. Writing a space-separated list of names of 135d88f521dSAmey Narkhede reset methods sets the reset methods and ordering to be 136d88f521dSAmey Narkhede used when resetting the device. Writing an empty string 137d88f521dSAmey Narkhede disables the ability to reset the device. Writing 138d88f521dSAmey Narkhede "default" enables all supported reset methods in the 139d88f521dSAmey Narkhede default ordering. 140d88f521dSAmey Narkhede 141711d5779SMichael S. TsirkinWhat: /sys/bus/pci/devices/.../reset 142711d5779SMichael S. TsirkinDate: July 2009 143711d5779SMichael S. TsirkinContact: Michael S. Tsirkin <mst@redhat.com> 144711d5779SMichael S. TsirkinDescription: 145711d5779SMichael S. Tsirkin Some devices allow an individual function to be reset 146711d5779SMichael S. Tsirkin without affecting other functions in the same device. 147711d5779SMichael S. Tsirkin For devices that have this support, a file named reset 148711d5779SMichael S. Tsirkin will be present in sysfs. Writing 1 to this file 149711d5779SMichael S. Tsirkin will perform reset. 150711d5779SMichael S. Tsirkin 15194e61088SBen HutchingsWhat: /sys/bus/pci/devices/.../vpd 15294e61088SBen HutchingsDate: February 2008 153473153afSBen HutchingsContact: Ben Hutchings <bwh@kernel.org> 15494e61088SBen HutchingsDescription: 15594e61088SBen Hutchings A file named vpd in a device directory will be a 15694e61088SBen Hutchings binary file containing the Vital Product Data for the 15794e61088SBen Hutchings device. It should follow the VPD format defined in 15894e61088SBen Hutchings PCI Specification 2.1 or 2.2, but users should consider 1593e42d1deSCarlos Bilbao that some devices may have incorrectly formatted data. 1603e42d1deSCarlos Bilbao If the underlying VPD has a writable section then the 16194e61088SBen Hutchings corresponding section of this file will be writable. 16201db4957SYu Zhao 16324d732a9SMauro Carvalho ChehabWhat: /sys/bus/pci/devices/.../virtfn<N> 16401db4957SYu ZhaoDate: March 2009 16501db4957SYu ZhaoContact: Yu Zhao <yu.zhao@intel.com> 16601db4957SYu ZhaoDescription: 16701db4957SYu Zhao This symbolic link appears when hardware supports the SR-IOV 16801db4957SYu Zhao capability and the Physical Function driver has enabled it. 16901db4957SYu Zhao The symbolic link points to the PCI device sysfs entry of the 17001db4957SYu Zhao Virtual Function whose index is N (0...MaxVFs-1). 17101db4957SYu Zhao 17201db4957SYu ZhaoWhat: /sys/bus/pci/devices/.../dep_link 17301db4957SYu ZhaoDate: March 2009 17401db4957SYu ZhaoContact: Yu Zhao <yu.zhao@intel.com> 17501db4957SYu ZhaoDescription: 17601db4957SYu Zhao This symbolic link appears when hardware supports the SR-IOV 17701db4957SYu Zhao capability and the Physical Function driver has enabled it, 17801db4957SYu Zhao and this device has vendor specific dependencies with others. 17901db4957SYu Zhao The symbolic link points to the PCI device sysfs entry of 18001db4957SYu Zhao Physical Function this device depends on. 18101db4957SYu Zhao 18201db4957SYu ZhaoWhat: /sys/bus/pci/devices/.../physfn 18301db4957SYu ZhaoDate: March 2009 18401db4957SYu ZhaoContact: Yu Zhao <yu.zhao@intel.com> 18501db4957SYu ZhaoDescription: 18601db4957SYu Zhao This symbolic link appears when a device is a Virtual Function. 18701db4957SYu Zhao The symbolic link points to the PCI device sysfs entry of the 18801db4957SYu Zhao Physical Function this device associates with. 189c825bc94SKenji Kaneshige 190*9919c339SMauro Carvalho ChehabWhat: /sys/bus/pci/devices/.../modalias 191*9919c339SMauro Carvalho ChehabDate: May 2005 192*9919c339SMauro Carvalho ChehabContact: Greg Kroah-Hartman <gregkh@linuxfoundation.org> 193*9919c339SMauro Carvalho ChehabDescription: 194*9919c339SMauro Carvalho Chehab This attribute indicates the PCI ID of the device object. 195*9919c339SMauro Carvalho Chehab 196*9919c339SMauro Carvalho Chehab That is in the format: 197*9919c339SMauro Carvalho Chehab pci:vXXXXXXXXdXXXXXXXXsvXXXXXXXXsdXXXXXXXXbcXXscXXiXX, 198*9919c339SMauro Carvalho Chehab where: 199*9919c339SMauro Carvalho Chehab 200*9919c339SMauro Carvalho Chehab - vXXXXXXXX contains the vendor ID; 201*9919c339SMauro Carvalho Chehab - dXXXXXXXX contains the device ID; 202*9919c339SMauro Carvalho Chehab - svXXXXXXXX contains the sub-vendor ID; 203*9919c339SMauro Carvalho Chehab - sdXXXXXXXX contains the subsystem device ID; 204*9919c339SMauro Carvalho Chehab - bcXX contains the device class; 205*9919c339SMauro Carvalho Chehab - scXX contains the device subclass; 206*9919c339SMauro Carvalho Chehab - iXX contains the device class programming interface. 207*9919c339SMauro Carvalho Chehab 208c825bc94SKenji KaneshigeWhat: /sys/bus/pci/slots/.../module 209c825bc94SKenji KaneshigeDate: June 2009 210c825bc94SKenji KaneshigeContact: linux-pci@vger.kernel.org 211c825bc94SKenji KaneshigeDescription: 212c825bc94SKenji Kaneshige This symbolic link points to the PCI hotplug controller driver 213c825bc94SKenji Kaneshige module that manages the hotplug slot. 214911e1c9bSNarendra K 215911e1c9bSNarendra KWhat: /sys/bus/pci/devices/.../label 216911e1c9bSNarendra KDate: July 2010 217911e1c9bSNarendra KContact: Narendra K <narendra_k@dell.com>, linux-bugs@dell.com 218911e1c9bSNarendra KDescription: 219911e1c9bSNarendra K Reading this attribute will provide the firmware 2206058989bSNarendra_K@Dell.com given name (SMBIOS type 41 string or ACPI _DSM string) of 2216058989bSNarendra_K@Dell.com the PCI device. The attribute will be created only 2226058989bSNarendra_K@Dell.com if the firmware has given a name to the PCI device. 2236058989bSNarendra_K@Dell.com ACPI _DSM string name will be given priority if the 2246058989bSNarendra_K@Dell.com system firmware provides SMBIOS type 41 string also. 225911e1c9bSNarendra KUsers: 226911e1c9bSNarendra K Userspace applications interested in knowing the 227911e1c9bSNarendra K firmware assigned name of the PCI device. 228911e1c9bSNarendra K 229911e1c9bSNarendra KWhat: /sys/bus/pci/devices/.../index 230911e1c9bSNarendra KDate: July 2010 231911e1c9bSNarendra KContact: Narendra K <narendra_k@dell.com>, linux-bugs@dell.com 232911e1c9bSNarendra KDescription: 23381bbf039SNiklas Schnelle Reading this attribute will provide the firmware given instance 23481bbf039SNiklas Schnelle number of the PCI device. Depending on the platform this can 23581bbf039SNiklas Schnelle be for example the SMBIOS type 41 device type instance or the 23681bbf039SNiklas Schnelle user-defined ID (UID) on s390. The attribute will be created 23781bbf039SNiklas Schnelle only if the firmware has given an instance number to the PCI 23881bbf039SNiklas Schnelle device and that number is guaranteed to uniquely identify the 23981bbf039SNiklas Schnelle device in the system. 240911e1c9bSNarendra KUsers: 241911e1c9bSNarendra K Userspace applications interested in knowing the 242911e1c9bSNarendra K firmware assigned device type instance of the PCI 243911e1c9bSNarendra K device that can help in understanding the firmware 244911e1c9bSNarendra K intended order of the PCI device. 2456058989bSNarendra_K@Dell.com 2466058989bSNarendra_K@Dell.comWhat: /sys/bus/pci/devices/.../acpi_index 2476058989bSNarendra_K@Dell.comDate: July 2010 2486058989bSNarendra_K@Dell.comContact: Narendra K <narendra_k@dell.com>, linux-bugs@dell.com 2496058989bSNarendra_K@Dell.comDescription: 2506058989bSNarendra_K@Dell.com Reading this attribute will provide the firmware 2516058989bSNarendra_K@Dell.com given instance (ACPI _DSM instance number) of the PCI device. 2526058989bSNarendra_K@Dell.com The attribute will be created only if the firmware has given 2536058989bSNarendra_K@Dell.com an instance number to the PCI device. ACPI _DSM instance number 2546058989bSNarendra_K@Dell.com will be given priority if the system firmware provides SMBIOS 2556058989bSNarendra_K@Dell.com type 41 device type instance also. 2566058989bSNarendra_K@Dell.comUsers: 2576058989bSNarendra_K@Dell.com Userspace applications interested in knowing the 2586058989bSNarendra_K@Dell.com firmware assigned instance number of the PCI 2596058989bSNarendra_K@Dell.com device that can help in understanding the firmware 2606058989bSNarendra_K@Dell.com intended order of the PCI device. 261046c6531SHuang Ying 262046c6531SHuang YingWhat: /sys/bus/pci/devices/.../d3cold_allowed 263046c6531SHuang YingDate: July 2012 264046c6531SHuang YingContact: Huang Ying <ying.huang@intel.com> 265046c6531SHuang YingDescription: 266046c6531SHuang Ying d3cold_allowed is bit to control whether the corresponding PCI 267046c6531SHuang Ying device can be put into D3Cold state. If it is cleared, the 268046c6531SHuang Ying device will never be put into D3Cold state. If it is set, the 269046c6531SHuang Ying device may be put into D3Cold state if other requirements are 270046c6531SHuang Ying satisfied too. Reading this attribute will show the current 271046c6531SHuang Ying value of d3cold_allowed bit. Writing this attribute will set 272046c6531SHuang Ying the value of d3cold_allowed bit. 2732597ba76SDonald Dutile 2742597ba76SDonald DutileWhat: /sys/bus/pci/devices/.../sriov_totalvfs 2752597ba76SDonald DutileDate: November 2012 2762597ba76SDonald DutileContact: Donald Dutile <ddutile@redhat.com> 2772597ba76SDonald DutileDescription: 2782597ba76SDonald Dutile This file appears when a physical PCIe device supports SR-IOV. 2792597ba76SDonald Dutile Userspace applications can read this file to determine the 2802597ba76SDonald Dutile maximum number of Virtual Functions (VFs) a PCIe physical 2812597ba76SDonald Dutile function (PF) can support. Typically, this is the value reported 2822597ba76SDonald Dutile in the PF's SR-IOV extended capability structure's TotalVFs 2832597ba76SDonald Dutile element. Drivers have the ability at probe time to reduce the 2842597ba76SDonald Dutile value read from this file via the pci_sriov_set_totalvfs() 2852597ba76SDonald Dutile function. 2862597ba76SDonald Dutile 2872597ba76SDonald DutileWhat: /sys/bus/pci/devices/.../sriov_numvfs 2882597ba76SDonald DutileDate: November 2012 2892597ba76SDonald DutileContact: Donald Dutile <ddutile@redhat.com> 2902597ba76SDonald DutileDescription: 2912597ba76SDonald Dutile This file appears when a physical PCIe device supports SR-IOV. 2922597ba76SDonald Dutile Userspace applications can read and write to this file to 2932597ba76SDonald Dutile determine and control the enablement or disablement of Virtual 2942597ba76SDonald Dutile Functions (VFs) on the physical function (PF). A read of this 2952597ba76SDonald Dutile file will return the number of VFs that are enabled on this PF. 2962597ba76SDonald Dutile A number written to this file will enable the specified 2972597ba76SDonald Dutile number of VFs. A userspace application would typically read the 2982597ba76SDonald Dutile file and check that the value is zero, and then write the number 2992597ba76SDonald Dutile of VFs that should be enabled on the PF; the value written 3002597ba76SDonald Dutile should be less than or equal to the value in the sriov_totalvfs 3012597ba76SDonald Dutile file. A userspace application wanting to disable the VFs would 3022597ba76SDonald Dutile write a zero to this file. The core ensures that valid values 3032597ba76SDonald Dutile are written to this file, and returns errors when values are not 3042597ba76SDonald Dutile valid. For example, writing a 2 to this file when sriov_numvfs 3052597ba76SDonald Dutile is not 0 and not 2 already will return an error. Writing a 10 3062597ba76SDonald Dutile when the value of sriov_totalvfs is 8 will return an error. 307782a985dSAlex Williamson 308782a985dSAlex WilliamsonWhat: /sys/bus/pci/devices/.../driver_override 309782a985dSAlex WilliamsonDate: April 2014 310782a985dSAlex WilliamsonContact: Alex Williamson <alex.williamson@redhat.com> 311782a985dSAlex WilliamsonDescription: 312782a985dSAlex Williamson This file allows the driver for a device to be specified which 313782a985dSAlex Williamson will override standard static and dynamic ID matching. When 314782a985dSAlex Williamson specified, only a driver with a name matching the value written 315782a985dSAlex Williamson to driver_override will have an opportunity to bind to the 316782a985dSAlex Williamson device. The override is specified by writing a string to the 317782a985dSAlex Williamson driver_override file (echo pci-stub > driver_override) and 318782a985dSAlex Williamson may be cleared with an empty string (echo > driver_override). 319782a985dSAlex Williamson This returns the device to standard matching rules binding. 320782a985dSAlex Williamson Writing to driver_override does not automatically unbind the 321782a985dSAlex Williamson device from its current driver or make any attempt to 322782a985dSAlex Williamson automatically load the specified driver. If no driver with a 323782a985dSAlex Williamson matching name is currently loaded in the kernel, the device 324782a985dSAlex Williamson will not bind to any driver. This also allows devices to 325782a985dSAlex Williamson opt-out of driver binding using a driver_override name such as 326782a985dSAlex Williamson "none". Only a single driver may be specified in the override, 327782a985dSAlex Williamson there is no support for parsing delimiters. 32863692df1SPrarit Bhargava 32963692df1SPrarit BhargavaWhat: /sys/bus/pci/devices/.../numa_node 33063692df1SPrarit BhargavaDate: Oct 2014 33163692df1SPrarit BhargavaContact: Prarit Bhargava <prarit@redhat.com> 33263692df1SPrarit BhargavaDescription: 33363692df1SPrarit Bhargava This file contains the NUMA node to which the PCI device is 33463692df1SPrarit Bhargava attached, or -1 if the node is unknown. The initial value 33563692df1SPrarit Bhargava comes from an ACPI _PXM method or a similar firmware 33663692df1SPrarit Bhargava source. If that is missing or incorrect, this file can be 33763692df1SPrarit Bhargava written to override the node. In that case, please report 33863692df1SPrarit Bhargava a firmware bug to the system vendor. Writing to this file 33963692df1SPrarit Bhargava taints the kernel with TAINT_FIRMWARE_WORKAROUND, which 34063692df1SPrarit Bhargava reduces the supportability of your system. 341702ed3beSEmil Velikov 342702ed3beSEmil VelikovWhat: /sys/bus/pci/devices/.../revision 343702ed3beSEmil VelikovDate: November 2016 344702ed3beSEmil VelikovContact: Emil Velikov <emil.l.velikov@gmail.com> 345702ed3beSEmil VelikovDescription: 34688486beeSsayli karnik This file contains the revision field of the PCI device. 347702ed3beSEmil Velikov The value comes from device config space. The file is read only. 3480e7df224SBodong Wang 3490e7df224SBodong WangWhat: /sys/bus/pci/devices/.../sriov_drivers_autoprobe 3500e7df224SBodong WangDate: April 2017 3510e7df224SBodong WangContact: Bodong Wang<bodong@mellanox.com> 3520e7df224SBodong WangDescription: 3530e7df224SBodong Wang This file is associated with the PF of a device that 3540e7df224SBodong Wang supports SR-IOV. It determines whether newly-enabled VFs 3550e7df224SBodong Wang are immediately bound to a driver. It initially contains 3560e7df224SBodong Wang 1, which means the kernel automatically binds VFs to a 3570e7df224SBodong Wang compatible driver immediately after they are enabled. If 3580e7df224SBodong Wang an application writes 0 to the file before enabling VFs, 3590e7df224SBodong Wang the kernel will not bind VFs to a driver. 3600e7df224SBodong Wang 3610e7df224SBodong Wang A typical use case is to write 0 to this file, then enable 3620e7df224SBodong Wang VFs, then assign the newly-created VFs to virtual machines. 3630e7df224SBodong Wang Note that changing this file does not affect already- 3640e7df224SBodong Wang enabled VFs. In this scenario, the user must first disable 3650e7df224SBodong Wang the VFs, write 0 to sriov_drivers_autoprobe, then re-enable 3660e7df224SBodong Wang the VFs. 3670e7df224SBodong Wang 3680e7df224SBodong Wang This is similar to /sys/bus/pci/drivers_autoprobe, but 3690e7df224SBodong Wang affects only the VFs associated with a specific PF. 370cbb8ca69SLogan Gunthorpe 371cbb8ca69SLogan GunthorpeWhat: /sys/bus/pci/devices/.../p2pmem/size 372cbb8ca69SLogan GunthorpeDate: November 2017 373cbb8ca69SLogan GunthorpeContact: Logan Gunthorpe <logang@deltatee.com> 374cbb8ca69SLogan GunthorpeDescription: 375cbb8ca69SLogan Gunthorpe If the device has any Peer-to-Peer memory registered, this 376cbb8ca69SLogan Gunthorpe file contains the total amount of memory that the device 377cbb8ca69SLogan Gunthorpe provides (in decimal). 378cbb8ca69SLogan Gunthorpe 379cbb8ca69SLogan GunthorpeWhat: /sys/bus/pci/devices/.../p2pmem/available 380cbb8ca69SLogan GunthorpeDate: November 2017 381cbb8ca69SLogan GunthorpeContact: Logan Gunthorpe <logang@deltatee.com> 382cbb8ca69SLogan GunthorpeDescription: 383cbb8ca69SLogan Gunthorpe If the device has any Peer-to-Peer memory registered, this 384cbb8ca69SLogan Gunthorpe file contains the amount of memory that has not been 385cbb8ca69SLogan Gunthorpe allocated (in decimal). 386cbb8ca69SLogan Gunthorpe 387cbb8ca69SLogan GunthorpeWhat: /sys/bus/pci/devices/.../p2pmem/published 388cbb8ca69SLogan GunthorpeDate: November 2017 389cbb8ca69SLogan GunthorpeContact: Logan Gunthorpe <logang@deltatee.com> 390cbb8ca69SLogan GunthorpeDescription: 391cbb8ca69SLogan Gunthorpe If the device has any Peer-to-Peer memory registered, this 392cbb8ca69SLogan Gunthorpe file contains a '1' if the memory has been published for 393cbb8ca69SLogan Gunthorpe use outside the driver that owns the device. 39472ea91afSHeiner Kallweit 39572ea91afSHeiner KallweitWhat: /sys/bus/pci/devices/.../link/clkpm 39672ea91afSHeiner Kallweit /sys/bus/pci/devices/.../link/l0s_aspm 39772ea91afSHeiner Kallweit /sys/bus/pci/devices/.../link/l1_aspm 39872ea91afSHeiner Kallweit /sys/bus/pci/devices/.../link/l1_1_aspm 39972ea91afSHeiner Kallweit /sys/bus/pci/devices/.../link/l1_2_aspm 40072ea91afSHeiner Kallweit /sys/bus/pci/devices/.../link/l1_1_pcipm 40172ea91afSHeiner Kallweit /sys/bus/pci/devices/.../link/l1_2_pcipm 40272ea91afSHeiner KallweitDate: October 2019 40372ea91afSHeiner KallweitContact: Heiner Kallweit <hkallweit1@gmail.com> 40472ea91afSHeiner KallweitDescription: If ASPM is supported for an endpoint, these files can be 40572ea91afSHeiner Kallweit used to disable or enable the individual power management 40672ea91afSHeiner Kallweit states. Write y/1/on to enable, n/0/off to disable. 40780a129afSMaximilian Luz 40880a129afSMaximilian LuzWhat: /sys/bus/pci/devices/.../power_state 40980a129afSMaximilian LuzDate: November 2020 41080a129afSMaximilian LuzContact: Linux PCI developers <linux-pci@vger.kernel.org> 41180a129afSMaximilian LuzDescription: 41280a129afSMaximilian Luz This file contains the current PCI power state of the device. 41380a129afSMaximilian Luz The value comes from the PCI kernel device state and can be one 41480a129afSMaximilian Luz of: "unknown", "error", "D0", D1", "D2", "D3hot", "D3cold". 41580a129afSMaximilian Luz The file is read only. 416c3d5c2d9SLeon Romanovsky 417c3d5c2d9SLeon RomanovskyWhat: /sys/bus/pci/devices/.../sriov_vf_total_msix 418c3d5c2d9SLeon RomanovskyDate: January 2021 419c3d5c2d9SLeon RomanovskyContact: Leon Romanovsky <leonro@nvidia.com> 420c3d5c2d9SLeon RomanovskyDescription: 421c3d5c2d9SLeon Romanovsky This file is associated with a SR-IOV physical function (PF). 422c3d5c2d9SLeon Romanovsky It contains the total number of MSI-X vectors available for 423c3d5c2d9SLeon Romanovsky assignment to all virtual functions (VFs) associated with PF. 424c3d5c2d9SLeon Romanovsky The value will be zero if the device doesn't support this 425c3d5c2d9SLeon Romanovsky functionality. For supported devices, the value will be 426c3d5c2d9SLeon Romanovsky constant and won't be changed after MSI-X vectors assignment. 427c3d5c2d9SLeon Romanovsky 428c3d5c2d9SLeon RomanovskyWhat: /sys/bus/pci/devices/.../sriov_vf_msix_count 429c3d5c2d9SLeon RomanovskyDate: January 2021 430c3d5c2d9SLeon RomanovskyContact: Leon Romanovsky <leonro@nvidia.com> 431c3d5c2d9SLeon RomanovskyDescription: 432c3d5c2d9SLeon Romanovsky This file is associated with a SR-IOV virtual function (VF). 433c3d5c2d9SLeon Romanovsky It allows configuration of the number of MSI-X vectors for 434c3d5c2d9SLeon Romanovsky the VF. This allows devices that have a global pool of MSI-X 435c3d5c2d9SLeon Romanovsky vectors to optimally divide them between VFs based on VF usage. 436c3d5c2d9SLeon Romanovsky 437c3d5c2d9SLeon Romanovsky The values accepted are: 438c3d5c2d9SLeon Romanovsky * > 0 - this number will be reported as the Table Size in the 439c3d5c2d9SLeon Romanovsky VF's MSI-X capability 440c3d5c2d9SLeon Romanovsky * < 0 - not valid 441c3d5c2d9SLeon Romanovsky * = 0 - will reset to the device default value 442c3d5c2d9SLeon Romanovsky 443c3d5c2d9SLeon Romanovsky The file is writable if the PF is bound to a driver that 444c3d5c2d9SLeon Romanovsky implements ->sriov_set_msix_vec_count(). 445