1d22157b3SChris WrightWhat:		/sys/bus/pci/drivers/.../bind
2*bab2f3c1SMauro Carvalho ChehabWhat:		/sys/devices/pciX/.../bind
3d22157b3SChris WrightDate:		December 2003
4d22157b3SChris WrightContact:	linux-pci@vger.kernel.org
5d22157b3SChris WrightDescription:
6d22157b3SChris Wright		Writing a device location to this file will cause
7d22157b3SChris Wright		the driver to attempt to bind to the device found at
8d22157b3SChris Wright		this location.	This is useful for overriding default
9d22157b3SChris Wright		bindings.  The format for the location is: DDDD:BB:DD.F.
10d22157b3SChris Wright		That is Domain:Bus:Device.Function and is the same as
1154a19b4dSMauro Carvalho Chehab		found in /sys/bus/pci/devices/.  For example::
1254a19b4dSMauro Carvalho Chehab
13d22157b3SChris Wright		  # echo 0000:00:19.0 > /sys/bus/pci/drivers/foo/bind
1454a19b4dSMauro Carvalho Chehab
15d22157b3SChris Wright		(Note: kernels before 2.6.28 may require echo -n).
16d22157b3SChris Wright
17d22157b3SChris WrightWhat:		/sys/bus/pci/drivers/.../unbind
18*bab2f3c1SMauro Carvalho ChehabWhat:		/sys/devices/pciX/.../unbind
19d22157b3SChris WrightDate:		December 2003
20d22157b3SChris WrightContact:	linux-pci@vger.kernel.org
21d22157b3SChris WrightDescription:
22d22157b3SChris Wright		Writing a device location to this file will cause the
23d22157b3SChris Wright		driver to attempt to unbind from the device found at
24d22157b3SChris Wright		this location.	This may be useful when overriding default
25d22157b3SChris Wright		bindings.  The format for the location is: DDDD:BB:DD.F.
26d22157b3SChris Wright		That is Domain:Bus:Device.Function and is the same as
2754a19b4dSMauro Carvalho Chehab		found in /sys/bus/pci/devices/. For example::
2854a19b4dSMauro Carvalho Chehab
29d22157b3SChris Wright		  # echo 0000:00:19.0 > /sys/bus/pci/drivers/foo/unbind
3054a19b4dSMauro Carvalho Chehab
31d22157b3SChris Wright		(Note: kernels before 2.6.28 may require echo -n).
32d22157b3SChris Wright
33d22157b3SChris WrightWhat:		/sys/bus/pci/drivers/.../new_id
34*bab2f3c1SMauro Carvalho ChehabWhat:		/sys/devices/pciX/.../new_id
35d22157b3SChris WrightDate:		December 2003
36d22157b3SChris WrightContact:	linux-pci@vger.kernel.org
37d22157b3SChris WrightDescription:
38d22157b3SChris Wright		Writing a device ID to this file will attempt to
39d22157b3SChris Wright		dynamically add a new device ID to a PCI device driver.
40d22157b3SChris Wright		This may allow the driver to support more hardware than
41d22157b3SChris Wright		was included in the driver's static device ID support
42d22157b3SChris Wright		table at compile time.  The format for the device ID is:
43d22157b3SChris Wright		VVVV DDDD SVVV SDDD CCCC MMMM PPPP.  That is Vendor ID,
44d22157b3SChris Wright		Device ID, Subsystem Vendor ID, Subsystem Device ID,
45d22157b3SChris Wright		Class, Class Mask, and Private Driver Data.  The Vendor ID
46d22157b3SChris Wright		and Device ID fields are required, the rest are optional.
47d22157b3SChris Wright		Upon successfully adding an ID, the driver will probe
4854a19b4dSMauro Carvalho Chehab		for the device and attempt to bind to it.  For example::
4954a19b4dSMauro Carvalho Chehab
50d22157b3SChris Wright		  # echo "8086 10f5" > /sys/bus/pci/drivers/foo/new_id
51d22157b3SChris Wright
520994375eSChris WrightWhat:		/sys/bus/pci/drivers/.../remove_id
53*bab2f3c1SMauro Carvalho ChehabWhat:		/sys/devices/pciX/.../remove_id
540994375eSChris WrightDate:		February 2009
550994375eSChris WrightContact:	Chris Wright <chrisw@sous-sol.org>
560994375eSChris WrightDescription:
570994375eSChris Wright		Writing a device ID to this file will remove an ID
580994375eSChris Wright		that was dynamically added via the new_id sysfs entry.
590994375eSChris Wright		The format for the device ID is:
600994375eSChris Wright		VVVV DDDD SVVV SDDD CCCC MMMM.	That is Vendor ID, Device
610994375eSChris Wright		ID, Subsystem Vendor ID, Subsystem Device ID, Class,
620994375eSChris Wright		and Class Mask.  The Vendor ID and Device ID fields are
630994375eSChris Wright		required, the rest are optional.  After successfully
640994375eSChris Wright		removing an ID, the driver will no longer support the
650994375eSChris Wright		device.  This is useful to ensure auto probing won't
6654a19b4dSMauro Carvalho Chehab		match the driver to the device.  For example::
6754a19b4dSMauro Carvalho Chehab
680994375eSChris Wright		  # echo "8086 10f5" > /sys/bus/pci/drivers/foo/remove_id
690994375eSChris Wright
70705b1aaaSAlex ChiangWhat:		/sys/bus/pci/rescan
71705b1aaaSAlex ChiangDate:		January 2009
72705b1aaaSAlex ChiangContact:	Linux PCI developers <linux-pci@vger.kernel.org>
73705b1aaaSAlex ChiangDescription:
74705b1aaaSAlex Chiang		Writing a non-zero value to this attribute will
75705b1aaaSAlex Chiang		force a rescan of all PCI buses in the system, and
76705b1aaaSAlex Chiang		re-discover previously removed devices.
77705b1aaaSAlex Chiang
78468ff15aSYijing WangWhat:		/sys/bus/pci/devices/.../msi_bus
79468ff15aSYijing WangDate:		September 2014
80468ff15aSYijing WangContact:	Linux PCI developers <linux-pci@vger.kernel.org>
81468ff15aSYijing WangDescription:
82468ff15aSYijing Wang		Writing a zero value to this attribute disallows MSI and
83468ff15aSYijing Wang		MSI-X for any future drivers of the device.  If the device
84468ff15aSYijing Wang		is a bridge, MSI and MSI-X will be disallowed for future
85468ff15aSYijing Wang		drivers of all child devices under the bridge.  Drivers
86468ff15aSYijing Wang		must be reloaded for the new setting to take effect.
87468ff15aSYijing Wang
88b50cac55SNeil HormanWhat:		/sys/bus/pci/devices/.../msi_irqs/
89b50cac55SNeil HormanDate:		September, 2011
90b50cac55SNeil HormanContact:	Neil Horman <nhorman@tuxdriver.com>
91b50cac55SNeil HormanDescription:
92b50cac55SNeil Horman		The /sys/devices/.../msi_irqs directory contains a variable set
931c51b50cSGreg Kroah-Hartman		of files, with each file being named after a corresponding msi
941c51b50cSGreg Kroah-Hartman		irq vector allocated to that device.
95b50cac55SNeil Horman
961c51b50cSGreg Kroah-HartmanWhat:		/sys/bus/pci/devices/.../msi_irqs/<N>
97b50cac55SNeil HormanDate:		September 2011
98b50cac55SNeil HormanContact:	Neil Horman <nhorman@tuxdriver.com>
99b50cac55SNeil HormanDescription:
100b50cac55SNeil Horman		This attribute indicates the mode that the irq vector named by
1011c51b50cSGreg Kroah-Hartman		the file is in (msi vs. msix)
102b50cac55SNeil Horman
10377c27c7bSAlex ChiangWhat:		/sys/bus/pci/devices/.../remove
10477c27c7bSAlex ChiangDate:		January 2009
10577c27c7bSAlex ChiangContact:	Linux PCI developers <linux-pci@vger.kernel.org>
10677c27c7bSAlex ChiangDescription:
10777c27c7bSAlex Chiang		Writing a non-zero value to this attribute will
10877c27c7bSAlex Chiang		hot-remove the PCI device and any of its children.
10977c27c7bSAlex Chiang
110b9d320fcSYinghai LuWhat:		/sys/bus/pci/devices/.../pci_bus/.../rescan
111b9d320fcSYinghai LuDate:		May 2011
112b9d320fcSYinghai LuContact:	Linux PCI developers <linux-pci@vger.kernel.org>
113b9d320fcSYinghai LuDescription:
114b9d320fcSYinghai Lu		Writing a non-zero value to this attribute will
115b9d320fcSYinghai Lu		force a rescan of the bus and all child buses,
116b9d320fcSYinghai Lu		and re-discover devices removed earlier from this
11740b31360SStephen Rothwell		part of the device tree.
118b9d320fcSYinghai Lu
119738a6396SAlex ChiangWhat:		/sys/bus/pci/devices/.../rescan
120738a6396SAlex ChiangDate:		January 2009
121738a6396SAlex ChiangContact:	Linux PCI developers <linux-pci@vger.kernel.org>
122738a6396SAlex ChiangDescription:
123738a6396SAlex Chiang		Writing a non-zero value to this attribute will
124738a6396SAlex Chiang		force a rescan of the device's parent bus and all
125738a6396SAlex Chiang		child buses, and re-discover devices removed earlier
126738a6396SAlex Chiang		from this part of the device tree.
127738a6396SAlex Chiang
128d88f521dSAmey NarkhedeWhat:		/sys/bus/pci/devices/.../reset_method
129d88f521dSAmey NarkhedeDate:		August 2021
130d88f521dSAmey NarkhedeContact:	Amey Narkhede <ameynarkhede03@gmail.com>
131d88f521dSAmey NarkhedeDescription:
132d88f521dSAmey Narkhede		Some devices allow an individual function to be reset
133d88f521dSAmey Narkhede		without affecting other functions in the same slot.
134d88f521dSAmey Narkhede
135d88f521dSAmey Narkhede		For devices that have this support, a file named
136d88f521dSAmey Narkhede		reset_method is present in sysfs.  Reading this file
137d88f521dSAmey Narkhede		gives names of the supported and enabled reset methods and
138d88f521dSAmey Narkhede		their ordering.  Writing a space-separated list of names of
139d88f521dSAmey Narkhede		reset methods sets the reset methods and ordering to be
140d88f521dSAmey Narkhede		used when resetting the device.  Writing an empty string
141d88f521dSAmey Narkhede		disables the ability to reset the device.  Writing
142d88f521dSAmey Narkhede		"default" enables all supported reset methods in the
143d88f521dSAmey Narkhede		default ordering.
144d88f521dSAmey Narkhede
145711d5779SMichael S. TsirkinWhat:		/sys/bus/pci/devices/.../reset
146711d5779SMichael S. TsirkinDate:		July 2009
147711d5779SMichael S. TsirkinContact:	Michael S. Tsirkin <mst@redhat.com>
148711d5779SMichael S. TsirkinDescription:
149711d5779SMichael S. Tsirkin		Some devices allow an individual function to be reset
150711d5779SMichael S. Tsirkin		without affecting other functions in the same device.
151711d5779SMichael S. Tsirkin		For devices that have this support, a file named reset
152711d5779SMichael S. Tsirkin		will be present in sysfs.  Writing 1 to this file
153711d5779SMichael S. Tsirkin		will perform reset.
154711d5779SMichael S. Tsirkin
15594e61088SBen HutchingsWhat:		/sys/bus/pci/devices/.../vpd
15694e61088SBen HutchingsDate:		February 2008
157473153afSBen HutchingsContact:	Ben Hutchings <bwh@kernel.org>
15894e61088SBen HutchingsDescription:
15994e61088SBen Hutchings		A file named vpd in a device directory will be a
16094e61088SBen Hutchings		binary file containing the Vital Product Data for the
16194e61088SBen Hutchings		device.  It should follow the VPD format defined in
16294e61088SBen Hutchings		PCI Specification 2.1 or 2.2, but users should consider
1633e42d1deSCarlos Bilbao		that some devices may have incorrectly formatted data.
1643e42d1deSCarlos Bilbao		If the underlying VPD has a writable section then the
16594e61088SBen Hutchings		corresponding section of this file will be writable.
16601db4957SYu Zhao
16724d732a9SMauro Carvalho ChehabWhat:		/sys/bus/pci/devices/.../virtfn<N>
16801db4957SYu ZhaoDate:		March 2009
16901db4957SYu ZhaoContact:	Yu Zhao <yu.zhao@intel.com>
17001db4957SYu ZhaoDescription:
17101db4957SYu Zhao		This symbolic link appears when hardware supports the SR-IOV
17201db4957SYu Zhao		capability and the Physical Function driver has enabled it.
17301db4957SYu Zhao		The symbolic link points to the PCI device sysfs entry of the
17401db4957SYu Zhao		Virtual Function whose index is N (0...MaxVFs-1).
17501db4957SYu Zhao
17601db4957SYu ZhaoWhat:		/sys/bus/pci/devices/.../dep_link
17701db4957SYu ZhaoDate:		March 2009
17801db4957SYu ZhaoContact:	Yu Zhao <yu.zhao@intel.com>
17901db4957SYu ZhaoDescription:
18001db4957SYu Zhao		This symbolic link appears when hardware supports the SR-IOV
18101db4957SYu Zhao		capability and the Physical Function driver has enabled it,
18201db4957SYu Zhao		and this device has vendor specific dependencies with others.
18301db4957SYu Zhao		The symbolic link points to the PCI device sysfs entry of
18401db4957SYu Zhao		Physical Function this device depends on.
18501db4957SYu Zhao
18601db4957SYu ZhaoWhat:		/sys/bus/pci/devices/.../physfn
18701db4957SYu ZhaoDate:		March 2009
18801db4957SYu ZhaoContact:	Yu Zhao <yu.zhao@intel.com>
18901db4957SYu ZhaoDescription:
19001db4957SYu Zhao		This symbolic link appears when a device is a Virtual Function.
19101db4957SYu Zhao		The symbolic link points to the PCI device sysfs entry of the
19201db4957SYu Zhao		Physical Function this device associates with.
193c825bc94SKenji Kaneshige
1949919c339SMauro Carvalho ChehabWhat:		/sys/bus/pci/devices/.../modalias
1959919c339SMauro Carvalho ChehabDate:		May 2005
1969919c339SMauro Carvalho ChehabContact:	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1979919c339SMauro Carvalho ChehabDescription:
1989919c339SMauro Carvalho Chehab		This attribute indicates the PCI ID of the device object.
1999919c339SMauro Carvalho Chehab
2009919c339SMauro Carvalho Chehab		That is in the format:
2019919c339SMauro Carvalho Chehab		pci:vXXXXXXXXdXXXXXXXXsvXXXXXXXXsdXXXXXXXXbcXXscXXiXX,
2029919c339SMauro Carvalho Chehab		where:
2039919c339SMauro Carvalho Chehab
2049919c339SMauro Carvalho Chehab		    - vXXXXXXXX contains the vendor ID;
2059919c339SMauro Carvalho Chehab		    - dXXXXXXXX contains the device ID;
2069919c339SMauro Carvalho Chehab		    - svXXXXXXXX contains the sub-vendor ID;
2079919c339SMauro Carvalho Chehab		    - sdXXXXXXXX contains the subsystem device ID;
2089919c339SMauro Carvalho Chehab		    - bcXX contains the device class;
2099919c339SMauro Carvalho Chehab		    - scXX contains the device subclass;
2109919c339SMauro Carvalho Chehab		    - iXX contains the device class programming interface.
2119919c339SMauro Carvalho Chehab
212c825bc94SKenji KaneshigeWhat:		/sys/bus/pci/slots/.../module
213c825bc94SKenji KaneshigeDate:		June 2009
214c825bc94SKenji KaneshigeContact:	linux-pci@vger.kernel.org
215c825bc94SKenji KaneshigeDescription:
216c825bc94SKenji Kaneshige		This symbolic link points to the PCI hotplug controller driver
217c825bc94SKenji Kaneshige		module that manages the hotplug slot.
218911e1c9bSNarendra K
219911e1c9bSNarendra KWhat:		/sys/bus/pci/devices/.../label
220911e1c9bSNarendra KDate:		July 2010
221911e1c9bSNarendra KContact:	Narendra K <narendra_k@dell.com>, linux-bugs@dell.com
222911e1c9bSNarendra KDescription:
223911e1c9bSNarendra K		Reading this attribute will provide the firmware
2246058989bSNarendra_K@Dell.com		given name (SMBIOS type 41 string or ACPI _DSM string) of
2256058989bSNarendra_K@Dell.com		the PCI device.	The attribute will be created only
2266058989bSNarendra_K@Dell.com		if the firmware	has given a name to the PCI device.
2276058989bSNarendra_K@Dell.com		ACPI _DSM string name will be given priority if the
2286058989bSNarendra_K@Dell.com		system firmware provides SMBIOS type 41 string also.
229911e1c9bSNarendra KUsers:
230911e1c9bSNarendra K		Userspace applications interested in knowing the
231911e1c9bSNarendra K		firmware assigned name of the PCI device.
232911e1c9bSNarendra K
233911e1c9bSNarendra KWhat:		/sys/bus/pci/devices/.../index
234911e1c9bSNarendra KDate:		July 2010
235911e1c9bSNarendra KContact:	Narendra K <narendra_k@dell.com>, linux-bugs@dell.com
236911e1c9bSNarendra KDescription:
23781bbf039SNiklas Schnelle		Reading this attribute will provide the firmware given instance
23881bbf039SNiklas Schnelle		number of the PCI device.  Depending on the platform this can
23981bbf039SNiklas Schnelle		be for example the SMBIOS type 41 device type instance or the
24081bbf039SNiklas Schnelle		user-defined ID (UID) on s390. The attribute will be created
24181bbf039SNiklas Schnelle		only if the firmware has given an instance number to the PCI
24281bbf039SNiklas Schnelle		device and that number is guaranteed to uniquely identify the
24381bbf039SNiklas Schnelle		device in the system.
244911e1c9bSNarendra KUsers:
245911e1c9bSNarendra K		Userspace applications interested in knowing the
246911e1c9bSNarendra K		firmware assigned device type instance of the PCI
247911e1c9bSNarendra K		device that can help in understanding the firmware
248911e1c9bSNarendra K		intended order of the PCI device.
2496058989bSNarendra_K@Dell.com
2506058989bSNarendra_K@Dell.comWhat:		/sys/bus/pci/devices/.../acpi_index
2516058989bSNarendra_K@Dell.comDate:		July 2010
2526058989bSNarendra_K@Dell.comContact:	Narendra K <narendra_k@dell.com>, linux-bugs@dell.com
2536058989bSNarendra_K@Dell.comDescription:
2546058989bSNarendra_K@Dell.com		Reading this attribute will provide the firmware
2556058989bSNarendra_K@Dell.com		given instance (ACPI _DSM instance number) of the PCI device.
2566058989bSNarendra_K@Dell.com		The attribute will be created only if the firmware has given
2576058989bSNarendra_K@Dell.com		an instance number to the PCI device. ACPI _DSM instance number
2586058989bSNarendra_K@Dell.com		will be given priority if the system firmware provides SMBIOS
2596058989bSNarendra_K@Dell.com		type 41 device type instance also.
2606058989bSNarendra_K@Dell.comUsers:
2616058989bSNarendra_K@Dell.com		Userspace applications interested in knowing the
2626058989bSNarendra_K@Dell.com		firmware assigned instance number of the PCI
2636058989bSNarendra_K@Dell.com		device that can help in understanding the firmware
2646058989bSNarendra_K@Dell.com		intended order of the PCI device.
265046c6531SHuang Ying
266046c6531SHuang YingWhat:		/sys/bus/pci/devices/.../d3cold_allowed
267046c6531SHuang YingDate:		July 2012
268046c6531SHuang YingContact:	Huang Ying <ying.huang@intel.com>
269046c6531SHuang YingDescription:
270046c6531SHuang Ying		d3cold_allowed is bit to control whether the corresponding PCI
271046c6531SHuang Ying		device can be put into D3Cold state.  If it is cleared, the
272046c6531SHuang Ying		device will never be put into D3Cold state.  If it is set, the
273046c6531SHuang Ying		device may be put into D3Cold state if other requirements are
274046c6531SHuang Ying		satisfied too.  Reading this attribute will show the current
275046c6531SHuang Ying		value of d3cold_allowed bit.  Writing this attribute will set
276046c6531SHuang Ying		the value of d3cold_allowed bit.
2772597ba76SDonald Dutile
2782597ba76SDonald DutileWhat:		/sys/bus/pci/devices/.../sriov_totalvfs
2792597ba76SDonald DutileDate:		November 2012
2802597ba76SDonald DutileContact:	Donald Dutile <ddutile@redhat.com>
2812597ba76SDonald DutileDescription:
2822597ba76SDonald Dutile		This file appears when a physical PCIe device supports SR-IOV.
2832597ba76SDonald Dutile		Userspace applications can read this file to determine the
2842597ba76SDonald Dutile		maximum number of Virtual Functions (VFs) a PCIe physical
2852597ba76SDonald Dutile		function (PF) can support. Typically, this is the value reported
2862597ba76SDonald Dutile		in the PF's SR-IOV extended capability structure's TotalVFs
2872597ba76SDonald Dutile		element.  Drivers have the ability at probe time to reduce the
2882597ba76SDonald Dutile		value read from this file via the pci_sriov_set_totalvfs()
2892597ba76SDonald Dutile		function.
2902597ba76SDonald Dutile
2912597ba76SDonald DutileWhat:		/sys/bus/pci/devices/.../sriov_numvfs
2922597ba76SDonald DutileDate:		November 2012
2932597ba76SDonald DutileContact:	Donald Dutile <ddutile@redhat.com>
2942597ba76SDonald DutileDescription:
2952597ba76SDonald Dutile		This file appears when a physical PCIe device supports SR-IOV.
2962597ba76SDonald Dutile		Userspace applications can read and write to this file to
2972597ba76SDonald Dutile		determine and control the enablement or disablement of Virtual
2982597ba76SDonald Dutile		Functions (VFs) on the physical function (PF). A read of this
2992597ba76SDonald Dutile		file will return the number of VFs that are enabled on this PF.
3002597ba76SDonald Dutile		A number written to this file will enable the specified
3012597ba76SDonald Dutile		number of VFs. A userspace application would typically read the
3022597ba76SDonald Dutile		file and check that the value is zero, and then write the number
3032597ba76SDonald Dutile		of VFs that should be enabled on the PF; the value written
3042597ba76SDonald Dutile		should be less than or equal to the value in the sriov_totalvfs
3052597ba76SDonald Dutile		file. A userspace application wanting to disable the VFs would
3062597ba76SDonald Dutile		write a zero to this file. The core ensures that valid values
3072597ba76SDonald Dutile		are written to this file, and returns errors when values are not
3082597ba76SDonald Dutile		valid.  For example, writing a 2 to this file when sriov_numvfs
3092597ba76SDonald Dutile		is not 0 and not 2 already will return an error. Writing a 10
3102597ba76SDonald Dutile		when the value of sriov_totalvfs is 8 will return an error.
311782a985dSAlex Williamson
312782a985dSAlex WilliamsonWhat:		/sys/bus/pci/devices/.../driver_override
313782a985dSAlex WilliamsonDate:		April 2014
314782a985dSAlex WilliamsonContact:	Alex Williamson <alex.williamson@redhat.com>
315782a985dSAlex WilliamsonDescription:
316782a985dSAlex Williamson		This file allows the driver for a device to be specified which
317782a985dSAlex Williamson		will override standard static and dynamic ID matching.  When
318782a985dSAlex Williamson		specified, only a driver with a name matching the value written
319782a985dSAlex Williamson		to driver_override will have an opportunity to bind to the
320782a985dSAlex Williamson		device.  The override is specified by writing a string to the
321782a985dSAlex Williamson		driver_override file (echo pci-stub > driver_override) and
322782a985dSAlex Williamson		may be cleared with an empty string (echo > driver_override).
323782a985dSAlex Williamson		This returns the device to standard matching rules binding.
324782a985dSAlex Williamson		Writing to driver_override does not automatically unbind the
325782a985dSAlex Williamson		device from its current driver or make any attempt to
326782a985dSAlex Williamson		automatically load the specified driver.  If no driver with a
327782a985dSAlex Williamson		matching name is currently loaded in the kernel, the device
328782a985dSAlex Williamson		will not bind to any driver.  This also allows devices to
329782a985dSAlex Williamson		opt-out of driver binding using a driver_override name such as
330782a985dSAlex Williamson		"none".  Only a single driver may be specified in the override,
331782a985dSAlex Williamson		there is no support for parsing delimiters.
33263692df1SPrarit Bhargava
33363692df1SPrarit BhargavaWhat:		/sys/bus/pci/devices/.../numa_node
33463692df1SPrarit BhargavaDate:		Oct 2014
33563692df1SPrarit BhargavaContact:	Prarit Bhargava <prarit@redhat.com>
33663692df1SPrarit BhargavaDescription:
33763692df1SPrarit Bhargava		This file contains the NUMA node to which the PCI device is
33863692df1SPrarit Bhargava		attached, or -1 if the node is unknown.  The initial value
33963692df1SPrarit Bhargava		comes from an ACPI _PXM method or a similar firmware
34063692df1SPrarit Bhargava		source.  If that is missing or incorrect, this file can be
34163692df1SPrarit Bhargava		written to override the node.  In that case, please report
34263692df1SPrarit Bhargava		a firmware bug to the system vendor.  Writing to this file
34363692df1SPrarit Bhargava		taints the kernel with TAINT_FIRMWARE_WORKAROUND, which
34463692df1SPrarit Bhargava		reduces the supportability of your system.
345702ed3beSEmil Velikov
346702ed3beSEmil VelikovWhat:		/sys/bus/pci/devices/.../revision
347702ed3beSEmil VelikovDate:		November 2016
348702ed3beSEmil VelikovContact:	Emil Velikov <emil.l.velikov@gmail.com>
349702ed3beSEmil VelikovDescription:
35088486beeSsayli karnik		This file contains the revision field of the PCI device.
351702ed3beSEmil Velikov		The value comes from device config space. The file is read only.
3520e7df224SBodong Wang
3530e7df224SBodong WangWhat:		/sys/bus/pci/devices/.../sriov_drivers_autoprobe
3540e7df224SBodong WangDate:		April 2017
3550e7df224SBodong WangContact:	Bodong Wang<bodong@mellanox.com>
3560e7df224SBodong WangDescription:
3570e7df224SBodong Wang		This file is associated with the PF of a device that
3580e7df224SBodong Wang		supports SR-IOV.  It determines whether newly-enabled VFs
3590e7df224SBodong Wang		are immediately bound to a driver.  It initially contains
3600e7df224SBodong Wang		1, which means the kernel automatically binds VFs to a
3610e7df224SBodong Wang		compatible driver immediately after they are enabled.  If
3620e7df224SBodong Wang		an application writes 0 to the file before enabling VFs,
3630e7df224SBodong Wang		the kernel will not bind VFs to a driver.
3640e7df224SBodong Wang
3650e7df224SBodong Wang		A typical use case is to write 0 to this file, then enable
3660e7df224SBodong Wang		VFs, then assign the newly-created VFs to virtual machines.
3670e7df224SBodong Wang		Note that changing this file does not affect already-
3680e7df224SBodong Wang		enabled VFs.  In this scenario, the user must first disable
3690e7df224SBodong Wang		the VFs, write 0 to sriov_drivers_autoprobe, then re-enable
3700e7df224SBodong Wang		the VFs.
3710e7df224SBodong Wang
3720e7df224SBodong Wang		This is similar to /sys/bus/pci/drivers_autoprobe, but
3730e7df224SBodong Wang		affects only the VFs associated with a specific PF.
374cbb8ca69SLogan Gunthorpe
375cbb8ca69SLogan GunthorpeWhat:		/sys/bus/pci/devices/.../p2pmem/size
376cbb8ca69SLogan GunthorpeDate:		November 2017
377cbb8ca69SLogan GunthorpeContact:	Logan Gunthorpe <logang@deltatee.com>
378cbb8ca69SLogan GunthorpeDescription:
379cbb8ca69SLogan Gunthorpe		If the device has any Peer-to-Peer memory registered, this
380cbb8ca69SLogan Gunthorpe	        file contains the total amount of memory that the device
381cbb8ca69SLogan Gunthorpe		provides (in decimal).
382cbb8ca69SLogan Gunthorpe
383cbb8ca69SLogan GunthorpeWhat:		/sys/bus/pci/devices/.../p2pmem/available
384cbb8ca69SLogan GunthorpeDate:		November 2017
385cbb8ca69SLogan GunthorpeContact:	Logan Gunthorpe <logang@deltatee.com>
386cbb8ca69SLogan GunthorpeDescription:
387cbb8ca69SLogan Gunthorpe		If the device has any Peer-to-Peer memory registered, this
388cbb8ca69SLogan Gunthorpe	        file contains the amount of memory that has not been
389cbb8ca69SLogan Gunthorpe		allocated (in decimal).
390cbb8ca69SLogan Gunthorpe
391cbb8ca69SLogan GunthorpeWhat:		/sys/bus/pci/devices/.../p2pmem/published
392cbb8ca69SLogan GunthorpeDate:		November 2017
393cbb8ca69SLogan GunthorpeContact:	Logan Gunthorpe <logang@deltatee.com>
394cbb8ca69SLogan GunthorpeDescription:
395cbb8ca69SLogan Gunthorpe		If the device has any Peer-to-Peer memory registered, this
396cbb8ca69SLogan Gunthorpe	        file contains a '1' if the memory has been published for
397cbb8ca69SLogan Gunthorpe		use outside the driver that owns the device.
39872ea91afSHeiner Kallweit
39972ea91afSHeiner KallweitWhat:		/sys/bus/pci/devices/.../link/clkpm
40072ea91afSHeiner Kallweit		/sys/bus/pci/devices/.../link/l0s_aspm
40172ea91afSHeiner Kallweit		/sys/bus/pci/devices/.../link/l1_aspm
40272ea91afSHeiner Kallweit		/sys/bus/pci/devices/.../link/l1_1_aspm
40372ea91afSHeiner Kallweit		/sys/bus/pci/devices/.../link/l1_2_aspm
40472ea91afSHeiner Kallweit		/sys/bus/pci/devices/.../link/l1_1_pcipm
40572ea91afSHeiner Kallweit		/sys/bus/pci/devices/.../link/l1_2_pcipm
40672ea91afSHeiner KallweitDate:		October 2019
40772ea91afSHeiner KallweitContact:	Heiner Kallweit <hkallweit1@gmail.com>
40872ea91afSHeiner KallweitDescription:	If ASPM is supported for an endpoint, these files can be
40972ea91afSHeiner Kallweit		used to disable or enable the individual power management
41072ea91afSHeiner Kallweit		states. Write y/1/on to enable, n/0/off to disable.
41180a129afSMaximilian Luz
41280a129afSMaximilian LuzWhat:		/sys/bus/pci/devices/.../power_state
41380a129afSMaximilian LuzDate:		November 2020
41480a129afSMaximilian LuzContact:	Linux PCI developers <linux-pci@vger.kernel.org>
41580a129afSMaximilian LuzDescription:
41680a129afSMaximilian Luz		This file contains the current PCI power state of the device.
41780a129afSMaximilian Luz		The value comes from the PCI kernel device state and can be one
41880a129afSMaximilian Luz		of: "unknown", "error", "D0", D1", "D2", "D3hot", "D3cold".
41980a129afSMaximilian Luz		The file is read only.
420c3d5c2d9SLeon Romanovsky
421c3d5c2d9SLeon RomanovskyWhat:		/sys/bus/pci/devices/.../sriov_vf_total_msix
422c3d5c2d9SLeon RomanovskyDate:		January 2021
423c3d5c2d9SLeon RomanovskyContact:	Leon Romanovsky <leonro@nvidia.com>
424c3d5c2d9SLeon RomanovskyDescription:
425c3d5c2d9SLeon Romanovsky		This file is associated with a SR-IOV physical function (PF).
426c3d5c2d9SLeon Romanovsky		It contains the total number of MSI-X vectors available for
427c3d5c2d9SLeon Romanovsky		assignment to all virtual functions (VFs) associated with PF.
428c3d5c2d9SLeon Romanovsky		The value will be zero if the device doesn't support this
429c3d5c2d9SLeon Romanovsky		functionality. For supported devices, the value will be
430c3d5c2d9SLeon Romanovsky		constant and won't be changed after MSI-X vectors assignment.
431c3d5c2d9SLeon Romanovsky
432c3d5c2d9SLeon RomanovskyWhat:		/sys/bus/pci/devices/.../sriov_vf_msix_count
433c3d5c2d9SLeon RomanovskyDate:		January 2021
434c3d5c2d9SLeon RomanovskyContact:	Leon Romanovsky <leonro@nvidia.com>
435c3d5c2d9SLeon RomanovskyDescription:
436c3d5c2d9SLeon Romanovsky		This file is associated with a SR-IOV virtual function (VF).
437c3d5c2d9SLeon Romanovsky		It allows configuration of the number of MSI-X vectors for
438c3d5c2d9SLeon Romanovsky		the VF. This allows devices that have a global pool of MSI-X
439c3d5c2d9SLeon Romanovsky		vectors to optimally divide them between VFs based on VF usage.
440c3d5c2d9SLeon Romanovsky
441c3d5c2d9SLeon Romanovsky		The values accepted are:
442c3d5c2d9SLeon Romanovsky		 * > 0 - this number will be reported as the Table Size in the
443c3d5c2d9SLeon Romanovsky			 VF's MSI-X capability
444c3d5c2d9SLeon Romanovsky		 * < 0 - not valid
445c3d5c2d9SLeon Romanovsky		 * = 0 - will reset to the device default value
446c3d5c2d9SLeon Romanovsky
447c3d5c2d9SLeon Romanovsky		The file is writable if the PF is bound to a driver that
448c3d5c2d9SLeon Romanovsky		implements ->sriov_set_msix_vec_count().
449