PCI Express support

Red Hat Enterprise Linux 9.2 LPAR mode z/VM guest KVM guest

The Peripheral Component Interconnect Express (PCIe) device driver supports various PCI devices, including but not limited to devices that implement the SMC network protocol.

For more information about ISM, see Internal shared memory device driver.

PCIe functions are seen by Linux as devices, hence devices is used here synonymously. You can assign PCIe devices to LPARs in the IOCDS.

PCIe function addresses

The function addresses uniquely identifies a PCIe function within a Linux® instance. Function addresses adhere to this format: <domain>:<bus>:<device>.<function>. For Linux on IBM Z, the address components have the following values:
<domain>
UID as specified for the PCI function in the hardware configuration (IOCDS). UIDs are unique hexadecimal values in the range 1 - FFFF. For example, with a UID of 0x318, <domain> would be: 0318.

UIDs are available only if supported by the hardware and if the LPAR is enabled for UID uniqueness checking. If your environment does not support UIDs for PCIe functions, consecutive numbers, starting from 0000, are assigned to the functions. The mapping of assigned numbers and physical functions does not persist across reboots.

<bus>
Two zeros: 00.
<device>.<function>
If your environment supports the Alternative Routing-ID Interpretation (ARI) compatible address format, <device>.<function> might represent the PCIe Routing-ID (RID) . The previous constant value, 00.0, continues to be used by some device types, for example by NVMe devices. It is also used as a fallback for environments that do not support the ARI compatible address format. You can force this previous value with the pci=norid kernel parameter (see Setting up the PCIe support).