PCI Express Gen4 and Gen5 support

QNX SDP8.0PCI Server User's GuideAPIConfiguration

The QNX PCIe subsystem supports operation at PCI Express Gen4 (16.0 GT/s per lane) and Gen5 (32.0 GT/s per lane) link speeds, in addition to legacy Gen1–Gen3 speeds.

PCI Express Gen4 and Gen5 support covers the following areas:

  • Capability detection — identifying controllers and devices that are capable of Gen4 or Gen5 operation.
  • Link configuration — configuring link parameters and initiating link training to bring the link up at the highest commonly supported speed.
  • Backward compatibility (fallback) — falling back to a lower generation when high-speed negotiation fails or is unsupported by the link partner.
  • Link state reporting — reporting the negotiated link generation, speed, and status to upper-layer (client) software.

Application impact

No application changes are required to take advantage of Gen4 or Gen5 link speeds. The negotiated speed is established automatically during device enumeration and PCIe link training.

Applications that need to query the negotiated link speed or read high-speed diagnostic registers can do so through the libpci API; refer to the API Reference for more information on this library.

PCIe extended capability modules

Support for Gen4 and Gen5 functionality is provided through the following PCIe extended capability modules:

Module Extended Capability ID Registers decoded Used by
pcie_xcap-0x0019.so 0x0019 – Secondary PCI Express Extended Capability
  • Link control 3 register
  • Lane error status register
  • Lane equalization control registers
Gen4, Gen5
pcie_xcap-0x0026.so 0x0026 – Physical layer 16.0 GT/s Extended Capability 16.0 GT/s status register Gen4, Gen5
pcie_xcap-0x0027.so 0x0027 – Lane margining at the receiver Extended Capability
  • Margining port status register
  • Margining lane status register
Gen4, Gen5
pcie_xcap-0x002A.so 0x002A – Physical layer 32.0 GT/s Extended Capability 32.0 GT/s status register Gen5 only
Note:
The 16.0 GT/s capability (pcie_xcap-0x0026.so) is present on both Gen4 and Gen5 links because Gen5-capable ports also implement the 16.0 GT/s physical layer.

For more information on capability modules, refer to the Capability modules section.

Page updated: