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/.../msi_irqs/
Date:		September, 2011
Contact:	Neil Horman <nhorman@tuxdriver.com>
Description:
		The /sys/devices/.../msi_irqs directory contains a variable set
		of files, with each file being named after a corresponding msi
		irq vector allocated to that device.

What:		/sys/bus/pci/devices/.../msi_irqs/<N>
Date:		September 2011
Contact:	Neil Horman <nhorman@tuxdriver.com>
Description:
		This attribute indicates the mode that the irq vector named by
		the file is in (msi vs. msix)

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/.../pci_bus/.../rescan
Date:		May 2011
Contact:	Linux PCI developers <linux-pci@vger.kernel.org>
Description:
		Writing a non-zero value to this attribute will
		force a rescan of the 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/.../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/.../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.

What:		/sys/bus/pci/devices/.../label
Date:		July 2010
Contact:	Narendra K <narendra_k@dell.com>, linux-bugs@dell.com
Description:
		Reading this attribute will provide the firmware
		given name (SMBIOS type 41 string or ACPI _DSM string) of
		the PCI device.	The attribute will be created only
		if the firmware	has given a name to the PCI device.
		ACPI _DSM string name will be given priority if the
		system firmware provides SMBIOS type 41 string also.
Users:
		Userspace applications interested in knowing the
		firmware assigned name of the PCI device.

What:		/sys/bus/pci/devices/.../index
Date:		July 2010
Contact:	Narendra K <narendra_k@dell.com>, linux-bugs@dell.com
Description:
		Reading this attribute will provide the firmware
		given instance (SMBIOS type 41 device type instance) of the
		PCI device. The attribute will be created only if the firmware
		has given an instance number to the PCI device.
Users:
		Userspace applications interested in knowing the
		firmware assigned device type instance of the PCI
		device that can help in understanding the firmware
		intended order of the PCI device.

What:		/sys/bus/pci/devices/.../acpi_index
Date:		July 2010
Contact:	Narendra K <narendra_k@dell.com>, linux-bugs@dell.com
Description:
		Reading this attribute will provide the firmware
		given instance (ACPI _DSM instance number) of the PCI device.
		The attribute will be created only if the firmware has given
		an instance number to the PCI device. ACPI _DSM instance number
		will be given priority if the system firmware provides SMBIOS
		type 41 device type instance also.
Users:
		Userspace applications interested in knowing the
		firmware assigned instance number of the PCI
		device that can help in understanding the firmware
		intended order of the PCI device.

What:		/sys/bus/pci/devices/.../d3cold_allowed
Date:		July 2012
Contact:	Huang Ying <ying.huang@intel.com>
Description:
		d3cold_allowed is bit to control whether the corresponding PCI
		device can be put into D3Cold state.  If it is cleared, the
		device will never be put into D3Cold state.  If it is set, the
		device may be put into D3Cold state if other requirements are
		satisfied too.  Reading this attribute will show the current
		value of d3cold_allowed bit.  Writing this attribute will set
		the value of d3cold_allowed bit.

What:		/sys/bus/pci/devices/.../sriov_totalvfs
Date:		November 2012
Contact:	Donald Dutile <ddutile@redhat.com>
Description:
		This file appears when a physical PCIe device supports SR-IOV.
		Userspace applications can read this file to determine the
		maximum number of Virtual Functions (VFs) a PCIe physical
		function (PF) can support. Typically, this is the value reported
		in the PF's SR-IOV extended capability structure's TotalVFs
		element.  Drivers have the ability at probe time to reduce the
		value read from this file via the pci_sriov_set_totalvfs()
		function.

What:		/sys/bus/pci/devices/.../sriov_numvfs
Date:		November 2012
Contact:	Donald Dutile <ddutile@redhat.com>
Description:
		This file appears when a physical PCIe device supports SR-IOV.
		Userspace applications can read and write to this file to
		determine and control the enablement or disablement of Virtual
		Functions (VFs) on the physical function (PF). A read of this
		file will return the number of VFs that are enabled on this PF.
		A number written to this file will enable the specified
		number of VFs. A userspace application would typically read the
		file and check that the value is zero, and then write the number
		of VFs that should be enabled on the PF; the value written
		should be less than or equal to the value in the sriov_totalvfs
		file. A userspace application wanting to disable the VFs would
		write a zero to this file. The core ensures that valid values
		are written to this file, and returns errors when values are not
		valid.  For example, writing a 2 to this file when sriov_numvfs
		is not 0 and not 2 already will return an error. Writing a 10
		when the value of sriov_totalvfs is 8 will return an error.
