psphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget!/translations/zh_CN/arch/s390/pcimodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/zh_TW/arch/s390/pcimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/it_IT/arch/s390/pcimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/ja_JP/arch/s390/pcimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/ko_KR/arch/s390/pcimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/pt_BR/arch/s390/pcimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/sp_SP/arch/s390/pcimodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh;/var/lib/git/docbuild/linux/Documentation/arch/s390/pci.rsthKubhsection)}(hhh](htitle)}(h S/390 PCIh]h S/390 PCI}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhdefinition_list)}(hhh]hdefinition_list_item)}(h*Authors: - Pierre Morel - Niklas Schnelle h](hterm)}(hAuthors:h]hAuthors:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhubh definition)}(hhh]h bullet_list)}(hhh](h list_item)}(h Pierre Morelh]h paragraph)}(hjh]h Pierre Morel}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhhubj)}(hNiklas Schnelle h]j )}(hNiklas Schnelleh]hNiklas Schnelle}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK hjubah}(h]h ]h"]h$]h&]uh1jhhubeh}(h]h ]h"]h$]h&]bullet-uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhK hhubah}(h]h ]h"]h$]h&]uh1hhhhhhNhNubj )}(hCopyright, IBM Corp. 2020h]hCopyright, IBM Corp. 2020}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK hhhhubh)}(hhh](h)}(h+Command line parameters and debugfs entriesh]h+Command line parameters and debugfs entries}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hhhhhKubh)}(hhh](h)}(hCommand line parametersh]hCommand line parameters}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhhhhhKubh)}(hhh](j)}(h5nomio Do not use PCI Mapped I/O (MIO) instructions. h](j )}(hnomioh]hnomio}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubj )}(h-Do not use PCI Mapped I/O (MIO) instructions.h]h-Do not use PCI Mapped I/O (MIO) instructions.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hNnorid Ignore the RID field and force use of one PCI domain per PCI function. h](j )}(hnoridh]hnorid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubj )}(hFIgnore the RID field and force use of one PCI domain per PCI function.h]hFIgnore the RID field and force use of one PCI domain per PCI function.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]j;*uh1hhhhKhjnhhubeh}(h]command-line-parametersah ]h"]command line parametersah$]h&]uh1hhj]hhhhhKubh)}(hhh](h)}(hdebugfs entriesh]hdebugfs entries}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj )}(hqThe S/390 debug feature (s390dbf) generates views to hold various debug results in sysfs directories of the form:h]hqThe S/390 debug feature (s390dbf) generates views to hold various debug results in sysfs directories of the form:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjhhubh block_quote)}(h#* /sys/kernel/debug/s390dbf/pci_*/ h]h)}(hhh]j)}(h!/sys/kernel/debug/s390dbf/pci_*/ h]j )}(h /sys/kernel/debug/s390dbf/pci_*/h]h /sys/kernel/debug/s390dbf/pci_*/}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK"hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]j;juh1hhhhK"hjubah}(h]h ]h"]h$]h&]uh1jhhhK"hjhhubj )}(h For example:h]h For example:}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK$hjhhubj)}(hX- /sys/kernel/debug/s390dbf/pci_msg/sprintf holds messages from the processing of PCI events, like machine check handling and setting of global functionality, like UID checking. Change the level of logging to be more or less verbose by piping a number between 0 and 6 to /sys/kernel/debug/s390dbf/pci_*/level. For details, see the documentation on the S/390 debug feature at Documentation/arch/s390/s390dbf.rst. h](h)}(hhh]j)}(h/sys/kernel/debug/s390dbf/pci_msg/sprintf holds messages from the processing of PCI events, like machine check handling and setting of global functionality, like UID checking. h](j )}(h)/sys/kernel/debug/s390dbf/pci_msg/sprintfh]h)/sys/kernel/debug/s390dbf/pci_msg/sprintf}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK&hj>ubj )}(hholds messages from the processing of PCI events, like machine check handling and setting of global functionality, like UID checking.h]hholds messages from the processing of PCI events, like machine check handling and setting of global functionality, like UID checking.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK(hj>ubeh}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]j;j<uh1hhhhK&hj7ubj )}(hChange the level of logging to be more or less verbose by piping a number between 0 and 6 to /sys/kernel/debug/s390dbf/pci_*/level. For details, see the documentation on the S/390 debug feature at Documentation/arch/s390/s390dbf.rst.h]hChange the level of logging to be more or less verbose by piping a number between 0 and 6 to /sys/kernel/debug/s390dbf/pci_*/level. For details, see the documentation on the S/390 debug feature at Documentation/arch/s390/s390dbf.rst.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK+hj7ubeh}(h]h ]h"]h$]h&]uh1jhhhK&hjhhubeh}(h]debugfs-entriesah ]h"]debugfs entriesah$]h&]uh1hhj]hhhhhKubeh}(h]+command-line-parameters-and-debugfs-entriesah ]h"]+command line parameters and debugfs entriesah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Sysfs entriesh]h Sysfs entries}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK1ubj )}(hJEntries specific to zPCI functions and entries that hold zPCI information.h]hJEntries specific to zPCI functions and entries that hold zPCI information.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK3hjhhubh)}(hhh](j)}(hX/sys/bus/pci/slots/XXXXXXXX: The slot entries are set up using the function identifier (FID) of the PCI function as slot name. The format depicted as XXXXXXXX above is 8 hexadecimal digits with 0 padding and lower case hexadecimal digits. - /sys/bus/pci/slots/XXXXXXXX/power In addition to using the FID as the name of the slot, the slot directory also contains the following s390-specific slot attributes. - uid: The User-defined identifier (UID) of the function which may be configured by this slot. See also the corresponding attribute of the device. A physical function that currently supports a virtual function cannot be powered off until all virtual functions are removed with: echo 0 > /sys/bus/pci/devices/DDDD:BB:dd.f/sriov_numvf h](j )}(h/sys/bus/pci/slots/XXXXXXXX:h]h/sys/bus/pci/slots/XXXXXXXX:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK5hjubj )}(hThe slot entries are set up using the function identifier (FID) of the PCI function as slot name. The format depicted as XXXXXXXX above is 8 hexadecimal digits with 0 padding and lower case hexadecimal digits.h]hThe slot entries are set up using the function identifier (FID) of the PCI function as slot name. The format depicted as XXXXXXXX above is 8 hexadecimal digits with 0 padding and lower case hexadecimal digits.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK7hjubh)}(hhh]j)}(h"/sys/bus/pci/slots/XXXXXXXX/power h]j )}(h!/sys/bus/pci/slots/XXXXXXXX/powerh]h!/sys/bus/pci/slots/XXXXXXXX/power}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK;hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]j;j<uh1hhhhK;hjubj )}(hIn addition to using the FID as the name of the slot, the slot directory also contains the following s390-specific slot attributes.h]hIn addition to using the FID as the name of the slot, the slot directory also contains the following s390-specific slot attributes.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK=hjubh)}(hhh]j)}(huid: The User-defined identifier (UID) of the function which may be configured by this slot. See also the corresponding attribute of the device. h]j )}(huid: The User-defined identifier (UID) of the function which may be configured by this slot. See also the corresponding attribute of the device.h]huid: The User-defined identifier (UID) of the function which may be configured by this slot. See also the corresponding attribute of the device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK@hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]j;j<uh1hhhhK@hjubj )}(hA physical function that currently supports a virtual function cannot be powered off until all virtual functions are removed with: echo 0 > /sys/bus/pci/devices/DDDD:BB:dd.f/sriov_numvfh]hA physical function that currently supports a virtual function cannot be powered off until all virtual functions are removed with: echo 0 > /sys/bus/pci/devices/DDDD:BB:dd.f/sriov_numvf}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKDhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hX /sys/bus/pci/devices/DDDD:BB:dd.f/: - function_id: The zPCI function identifier (FID) is a 32-bit hexadecimal value that uniquely identifies the PCI function. Unless the hypervisor provides a virtual FID e.g. on KVM this identifier is unique across the machine even between different partitions. - function_handle: This 32-bit hexadecimal value is a low-level identifier used for a PCI function. Note that the function handle may be changed and become invalid on PCI events and when enabling/disabling the PCI function. - pchid: This 16-bit hexadecimal value encodes a model-dependent location for the PCI function. - pfgid: PCI function group ID; functions that share identical functionality use a common identifier. A PCI group defines interrupts, IOMMU, IOTLB, and DMA specifics. - vfn: The virtual function number, from 1 to N for virtual functions, 0 for physical functions. - pft: The PCI function type is an s390-specific type attribute. It indicates a more general, usage oriented, type than PCI Specification class/vendor/device identifiers. That is PCI functions with the same pft value may be backed by different hardware implementations. At the same time apart from unclassified functions (pft is 0x00) the same pft value generally implies a similar usage model. At the same time the same PCI hardware device may appear with different pft values when in a different usage model. For example NETD and NETH VFs may be implemented by the same PCI hardware device but in NETD the parent Physical Function is user managed while with NETH it is platform managed. Currently the following PFT values are defined: - 0x00 (UNC): Unclassified - 0x02 (ROCE): RoCE Express - 0x05 (ISM): Internal Shared Memory - 0x0a (ROC2): RoCE Express 2 - 0x0b (NVMe): NVMe - 0x0c (NETH): Network Express hybrid - 0x0d (CNW): Cloud Network Adapter - 0x0f (NETD): Network Express direct - port: The port is a decimal value corresponding to the physical port the function is attached to. Virtual Functions (VFs) share the port with their parent Physical Function (PF). A value of 0 indicates that the port attribute is not applicable for that PCI function type. - uid: The user-defined identifier (UID) for a PCI function is a 32-bit hexadecimal value. It is defined on a per instance basis as part of the partition, KVM guest, or z/VM guest configuration. If UID Checking is enabled the platform ensures that the UID is unique within that instance and no two PCI functions with the same UID will be visible to the instance. Independent of this guarantee and unlike the function ID (FID) the UID may be the same in different partitions within the same machine. This allows to create PCI configurations in multiple partitions to be identical in the UID-namespace. - uid_is_unique: A 0 or 1 flag indicating whether the user-defined identifier (UID) is guaranteed to be and remain unique within this Linux instance. This platform feature is called UID Checking. - pfip/segmentX: The segments determine the isolation of a function. They correspond to the physical path to the function. The more the segments are different, the more the functions are isolated. - fidparm: Contains an 8-bit-per-PCI function parameter field in hexadecimal provided by the platform. The meaning of this field is PCI function type specific. For NETH VFs a value of 0x01 indicates that the function supports promiscuous mode. h](j )}(h#/sys/bus/pci/devices/DDDD:BB:dd.f/:h]h#/sys/bus/pci/devices/DDDD:BB:dd.f/:}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKHhj4ubh)}(hhh](j)}(hXfunction_id: The zPCI function identifier (FID) is a 32-bit hexadecimal value that uniquely identifies the PCI function. Unless the hypervisor provides a virtual FID e.g. on KVM this identifier is unique across the machine even between different partitions. h]j )}(hXfunction_id: The zPCI function identifier (FID) is a 32-bit hexadecimal value that uniquely identifies the PCI function. Unless the hypervisor provides a virtual FID e.g. on KVM this identifier is unique across the machine even between different partitions.h]hXfunction_id: The zPCI function identifier (FID) is a 32-bit hexadecimal value that uniquely identifies the PCI function. Unless the hypervisor provides a virtual FID e.g. on KVM this identifier is unique across the machine even between different partitions.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKJhjIubah}(h]h ]h"]h$]h&]uh1jhjFubj)}(hfunction_handle: This 32-bit hexadecimal value is a low-level identifier used for a PCI function. Note that the function handle may be changed and become invalid on PCI events and when enabling/disabling the PCI function. h]j )}(hfunction_handle: This 32-bit hexadecimal value is a low-level identifier used for a PCI function. Note that the function handle may be changed and become invalid on PCI events and when enabling/disabling the PCI function.h]hfunction_handle: This 32-bit hexadecimal value is a low-level identifier used for a PCI function. Note that the function handle may be changed and become invalid on PCI events and when enabling/disabling the PCI function.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKPhjaubah}(h]h ]h"]h$]h&]uh1jhjFubj)}(h^pchid: This 16-bit hexadecimal value encodes a model-dependent location for the PCI function. h]j )}(h]pchid: This 16-bit hexadecimal value encodes a model-dependent location for the PCI function.h]h]pchid: This 16-bit hexadecimal value encodes a model-dependent location for the PCI function.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKUhjyubah}(h]h ]h"]h$]h&]uh1jhjFubj)}(hpfgid: PCI function group ID; functions that share identical functionality use a common identifier. A PCI group defines interrupts, IOMMU, IOTLB, and DMA specifics. h]j )}(hpfgid: PCI function group ID; functions that share identical functionality use a common identifier. A PCI group defines interrupts, IOMMU, IOTLB, and DMA specifics.h]hpfgid: PCI function group ID; functions that share identical functionality use a common identifier. A PCI group defines interrupts, IOMMU, IOTLB, and DMA specifics.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKYhjubah}(h]h ]h"]h$]h&]uh1jhjFubj)}(h_vfn: The virtual function number, from 1 to N for virtual functions, 0 for physical functions. h]j )}(h^vfn: The virtual function number, from 1 to N for virtual functions, 0 for physical functions.h]h^vfn: The virtual function number, from 1 to N for virtual functions, 0 for physical functions.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK^hjubah}(h]h ]h"]h$]h&]uh1jhjFubj)}(hXpft: The PCI function type is an s390-specific type attribute. It indicates a more general, usage oriented, type than PCI Specification class/vendor/device identifiers. That is PCI functions with the same pft value may be backed by different hardware implementations. At the same time apart from unclassified functions (pft is 0x00) the same pft value generally implies a similar usage model. At the same time the same PCI hardware device may appear with different pft values when in a different usage model. For example NETD and NETH VFs may be implemented by the same PCI hardware device but in NETD the parent Physical Function is user managed while with NETH it is platform managed. Currently the following PFT values are defined: - 0x00 (UNC): Unclassified - 0x02 (ROCE): RoCE Express - 0x05 (ISM): Internal Shared Memory - 0x0a (ROC2): RoCE Express 2 - 0x0b (NVMe): NVMe - 0x0c (NETH): Network Express hybrid - 0x0d (CNW): Cloud Network Adapter - 0x0f (NETD): Network Express direct h](j )}(hXpft: The PCI function type is an s390-specific type attribute. It indicates a more general, usage oriented, type than PCI Specification class/vendor/device identifiers. That is PCI functions with the same pft value may be backed by different hardware implementations. At the same time apart from unclassified functions (pft is 0x00) the same pft value generally implies a similar usage model. At the same time the same PCI hardware device may appear with different pft values when in a different usage model. For example NETD and NETH VFs may be implemented by the same PCI hardware device but in NETD the parent Physical Function is user managed while with NETH it is platform managed.h]hXpft: The PCI function type is an s390-specific type attribute. It indicates a more general, usage oriented, type than PCI Specification class/vendor/device identifiers. That is PCI functions with the same pft value may be backed by different hardware implementations. At the same time apart from unclassified functions (pft is 0x00) the same pft value generally implies a similar usage model. At the same time the same PCI hardware device may appear with different pft values when in a different usage model. For example NETD and NETH VFs may be implemented by the same PCI hardware device but in NETD the parent Physical Function is user managed while with NETH it is platform managed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKbhjubj )}(h/Currently the following PFT values are defined:h]h/Currently the following PFT values are defined:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKnhjubh)}(hhh](j)}(h0x00 (UNC): Unclassifiedh]j )}(hjh]h0x00 (UNC): Unclassified}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKphjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h0x02 (ROCE): RoCE Expressh]j )}(hjh]h0x02 (ROCE): RoCE Express}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKqhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h"0x05 (ISM): Internal Shared Memoryh]j )}(hjh]h"0x05 (ISM): Internal Shared Memory}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKrhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h0x0a (ROC2): RoCE Express 2h]j )}(hj+h]h0x0a (ROC2): RoCE Express 2}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKshj)ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h0x0b (NVMe): NVMeh]j )}(hjBh]h0x0b (NVMe): NVMe}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKthj@ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h#0x0c (NETH): Network Express hybridh]j )}(hjYh]h#0x0c (NETH): Network Express hybrid}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKuhjWubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h!0x0d (CNW): Cloud Network Adapterh]j )}(hjph]h!0x0d (CNW): Cloud Network Adapter}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKvhjnubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h$0x0f (NETD): Network Express direct h]j )}(h#0x0f (NETD): Network Express directh]h#0x0f (NETD): Network Express direct}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKwhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]j;j<uh1hhhhKphjubeh}(h]h ]h"]h$]h&]uh1jhjFubj)}(hXport: The port is a decimal value corresponding to the physical port the function is attached to. Virtual Functions (VFs) share the port with their parent Physical Function (PF). A value of 0 indicates that the port attribute is not applicable for that PCI function type. h]j )}(hXport: The port is a decimal value corresponding to the physical port the function is attached to. Virtual Functions (VFs) share the port with their parent Physical Function (PF). A value of 0 indicates that the port attribute is not applicable for that PCI function type.h]hXport: The port is a decimal value corresponding to the physical port the function is attached to. Virtual Functions (VFs) share the port with their parent Physical Function (PF). A value of 0 indicates that the port attribute is not applicable for that PCI function type.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKyhjubah}(h]h ]h"]h$]h&]uh1jhjFubj)}(hXXuid: The user-defined identifier (UID) for a PCI function is a 32-bit hexadecimal value. It is defined on a per instance basis as part of the partition, KVM guest, or z/VM guest configuration. If UID Checking is enabled the platform ensures that the UID is unique within that instance and no two PCI functions with the same UID will be visible to the instance. Independent of this guarantee and unlike the function ID (FID) the UID may be the same in different partitions within the same machine. This allows to create PCI configurations in multiple partitions to be identical in the UID-namespace. h](j )}(hXhuid: The user-defined identifier (UID) for a PCI function is a 32-bit hexadecimal value. It is defined on a per instance basis as part of the partition, KVM guest, or z/VM guest configuration. If UID Checking is enabled the platform ensures that the UID is unique within that instance and no two PCI functions with the same UID will be visible to the instance.h]hXhuid: The user-defined identifier (UID) for a PCI function is a 32-bit hexadecimal value. It is defined on a per instance basis as part of the partition, KVM guest, or z/VM guest configuration. If UID Checking is enabled the platform ensures that the UID is unique within that instance and no two PCI functions with the same UID will be visible to the instance.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubj )}(hIndependent of this guarantee and unlike the function ID (FID) the UID may be the same in different partitions within the same machine. This allows to create PCI configurations in multiple partitions to be identical in the UID-namespace.h]hIndependent of this guarantee and unlike the function ID (FID) the UID may be the same in different partitions within the same machine. This allows to create PCI configurations in multiple partitions to be identical in the UID-namespace.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjFubj)}(huid_is_unique: A 0 or 1 flag indicating whether the user-defined identifier (UID) is guaranteed to be and remain unique within this Linux instance. This platform feature is called UID Checking. h]j )}(huid_is_unique: A 0 or 1 flag indicating whether the user-defined identifier (UID) is guaranteed to be and remain unique within this Linux instance. This platform feature is called UID Checking.h]huid_is_unique: A 0 or 1 flag indicating whether the user-defined identifier (UID) is guaranteed to be and remain unique within this Linux instance. This platform feature is called UID Checking.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjFubj)}(hpfip/segmentX: The segments determine the isolation of a function. They correspond to the physical path to the function. The more the segments are different, the more the functions are isolated. h]j )}(hpfip/segmentX: The segments determine the isolation of a function. They correspond to the physical path to the function. The more the segments are different, the more the functions are isolated.h]hpfip/segmentX: The segments determine the isolation of a function. They correspond to the physical path to the function. The more the segments are different, the more the functions are isolated.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjFubj)}(hfidparm: Contains an 8-bit-per-PCI function parameter field in hexadecimal provided by the platform. The meaning of this field is PCI function type specific. For NETH VFs a value of 0x01 indicates that the function supports promiscuous mode. h]j )}(hfidparm: Contains an 8-bit-per-PCI function parameter field in hexadecimal provided by the platform. The meaning of this field is PCI function type specific. For NETH VFs a value of 0x01 indicates that the function supports promiscuous mode.h]hfidparm: Contains an 8-bit-per-PCI function parameter field in hexadecimal provided by the platform. The meaning of this field is PCI function type specific. For NETH VFs a value of 0x01 indicates that the function supports promiscuous mode.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]j;j<uh1hhhhKJhj4ubeh}(h]h ]h"]h$]h&]uh1jhjhhhNhNubj)}(h/sys/firmware/clp/uid_checking: In addition to the per-device uid_is_unique attribute this presents a global indication of whether UID Checking is enabled. This allows users to check for UID Checking even when no PCI functions are configured. h](j )}(h/sys/firmware/clp/uid_checking:h]h/sys/firmware/clp/uid_checking:}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj;ubj )}(hIn addition to the per-device uid_is_unique attribute this presents a global indication of whether UID Checking is enabled. This allows users to check for UID Checking even when no PCI functions are configured.h]hIn addition to the per-device uid_is_unique attribute this presents a global indication of whether UID Checking is enabled. This allows users to check for UID Checking even when no PCI functions are configured.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj;ubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]j;juh1hhhhK5hjhhubeh}(h] sysfs-entriesah ]h"] sysfs entriesah$]h&]uh1hhhhhhhhK1ubh)}(hhh](h)}(hEnumeration and hotplugh]hEnumeration and hotplug}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohhhhhKubj )}(hlThe PCI address consists of four parts: domain, bus, device and function, and is of this form: DDDD:BB:dd.f.h]hlThe PCI address consists of four parts: domain, bus, device and function, and is of this form: DDDD:BB:dd.f.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjohhubh)}(hhh](j)}(hXFor a PCI function for which the platform does not expose the RID, the pci=norid kernel parameter is used, or a so-called isolated Virtual Function which does have RID information but is used without its parent Physical Function being part of the same PCI configuration: - There is only one function per domain. - The domain is set from the zPCI function's UID if UID Checking is on; otherwise the domain ID is generated dynamically and is not stable across reboots or hot plug. h](j )}(hXFor a PCI function for which the platform does not expose the RID, the pci=norid kernel parameter is used, or a so-called isolated Virtual Function which does have RID information but is used without its parent Physical Function being part of the same PCI configuration:h]hXFor a PCI function for which the platform does not expose the RID, the pci=norid kernel parameter is used, or a so-called isolated Virtual Function which does have RID information but is used without its parent Physical Function being part of the same PCI configuration:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubh)}(hhh](j)}(h'There is only one function per domain. h]j )}(h&There is only one function per domain.h]h&There is only one function per domain.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hThe domain is set from the zPCI function's UID if UID Checking is on; otherwise the domain ID is generated dynamically and is not stable across reboots or hot plug. h]j )}(hThe domain is set from the zPCI function's UID if UID Checking is on; otherwise the domain ID is generated dynamically and is not stable across reboots or hot plug.h]hThe domain is set from the zPCI function’s UID if UID Checking is on; otherwise the domain ID is generated dynamically and is not stable across reboots or hot plug.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]j;j<uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhNhNubj)}(hXFor a PCI function for which the platform exposes the RID and which is not an Isolated Virtual Function: - There is still only one bus per domain. - There can be up to 256 PCI functions per bus. - The domain part of the address of all functions within the same topology is that of the configured PCI function with the lowest devfn within that topology. - Virtual Functions generated by an SR-IOV capable Physical Function only become visible once SR-IOV is enabled.h](j )}(hhFor a PCI function for which the platform exposes the RID and which is not an Isolated Virtual Function:h]hhFor a PCI function for which the platform exposes the RID and which is not an Isolated Virtual Function:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubh)}(hhh](j)}(h(There is still only one bus per domain. h]j )}(h'There is still only one bus per domain.h]h'There is still only one bus per domain.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h.There can be up to 256 PCI functions per bus. h]j )}(h-There can be up to 256 PCI functions per bus.h]h-There can be up to 256 PCI functions per bus.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hThe domain part of the address of all functions within the same topology is that of the configured PCI function with the lowest devfn within that topology. h]j )}(hThe domain part of the address of all functions within the same topology is that of the configured PCI function with the lowest devfn within that topology.h]hThe domain part of the address of all functions within the same topology is that of the configured PCI function with the lowest devfn within that topology.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj'ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hnVirtual Functions generated by an SR-IOV capable Physical Function only become visible once SR-IOV is enabled.h]j )}(hnVirtual Functions generated by an SR-IOV capable Physical Function only become visible once SR-IOV is enabled.h]hnVirtual Functions generated by an SR-IOV capable Physical Function only become visible once SR-IOV is enabled.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj?ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]j;j<uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhNhNubeh}(h]h ]h"]h$]h&]j;juh1hhhhKhjohhubeh}(h]enumeration-and-hotplugah ]h"]enumeration and hotplugah$]h&]uh1hhhhhhhhKubeh}(h] s-390-pciah ]h"] s/390 pciah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jvjsjjjjjjjljijnjku nametypes}(jvjjjjljnuh}(jshjj]jjnjjjijjkjou footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.