Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / Documentation / ABI / testing / sysfs-bus-pci
diff --git a/kernel/Documentation/ABI/testing/sysfs-bus-pci b/kernel/Documentation/ABI/testing/sysfs-bus-pci
new file mode 100644 (file)
index 0000000..b3bc50f
--- /dev/null
@@ -0,0 +1,296 @@
+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.
+
+What:          /sys/bus/pci/devices/.../msi_bus
+Date:          September 2014
+Contact:       Linux PCI developers <linux-pci@vger.kernel.org>
+Description:
+               Writing a zero value to this attribute disallows MSI and
+               MSI-X for any future drivers of the device.  If the device
+               is a bridge, MSI and MSI-X will be disallowed for future
+               drivers of all child devices under the bridge.  Drivers
+               must be reloaded for the new setting to take effect.
+
+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.
+
+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.
+
+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.
+
+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 <bwh@kernel.org>
+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.
+
+What:          /sys/bus/pci/devices/.../driver_override
+Date:          April 2014
+Contact:       Alex Williamson <alex.williamson@redhat.com>
+Description:
+               This file allows the driver for a device to be specified which
+               will override standard static and dynamic ID matching.  When
+               specified, only a driver with a name matching the value written
+               to driver_override will have an opportunity to bind to the
+               device.  The override is specified by writing a string to the
+               driver_override file (echo pci-stub > driver_override) and
+               may be cleared with an empty string (echo > driver_override).
+               This returns the device to standard matching rules binding.
+               Writing to driver_override does not automatically unbind the
+               device from its current driver or make any attempt to
+               automatically load the specified driver.  If no driver with a
+               matching name is currently loaded in the kernel, the device
+               will not bind to any driver.  This also allows devices to
+               opt-out of driver binding using a driver_override name such as
+               "none".  Only a single driver may be specified in the override,
+               there is no support for parsing delimiters.
+
+What:          /sys/bus/pci/devices/.../numa_node
+Date:          Oct 2014
+Contact:       Prarit Bhargava <prarit@redhat.com>
+Description:
+               This file contains the NUMA node to which the PCI device is
+               attached, or -1 if the node is unknown.  The initial value
+               comes from an ACPI _PXM method or a similar firmware
+               source.  If that is missing or incorrect, this file can be
+               written to override the node.  In that case, please report
+               a firmware bug to the system vendor.  Writing to this file
+               taints the kernel with TAINT_FIRMWARE_WORKAROUND, which
+               reduces the supportability of your system.