ECN Affected Document
PCIe Base Spec 4.0
Specification Type
This ECR updates several areas related to hot-plug functionality, mostly related to async hot-plug, which is now growing in importance due to its widespread use with NVMe SSDs. All new functionality is optional.
- Key problems with the existing Hot-Plug Surprise (HPS) mechanism are fixed for OS use, primarily by enabling presence detect (PD) control mechanisms to be driven exclusively by out-of-band PD, and using existing DLL Link Active control mechanisms in lieu of in-band PD.
- Downstream Port Containment (DPC) is documented as the preferred mechanism for supporting the async hot-plug model, and the existing HPS mechanism is deprecated. Both mechanisms are still fully supported, and are documented with Implementation Notes using a common async hot-plug reference model.
- A mechanism is added where a slot can support both HPS and DPC for async hot-plug, with the default being HPS. An OS desiring to use DPC can negotiate with system firmware to disable HPS so DPC can be used instead.
- A new System Firmware Intermediary (SFI) Capability structure is defined, which system firmware can use to:
- Fix some key HPS problems transparently for existing OSs.
- Fix problems with “rogue Configuration Reads” not being blocked by OSs during certain critical periods (e.g., immediately following reset release during a hot add), resulting in undefined HW behavior. These can be fixed transparently for existing OSs.
- Support “Firmware First” functionality for system firmware to be notified of an async hot add, and be allowed to configure the newly added device before notifying the OS of it being added.
- A subclass field is added to ERR_COR Messages, enabling Downstream Ports that send ERR_COR Messages to signal system firmware (“SIG_SFW”) to distinguish them from ERR_COR Messages used for other purposes. This restores the ability for ERR_COR Messages to be used for higher frequency purposes like reporting individual correctable Link errors while still using them to signal system firmware for relatively rare but high overhead firmware first services.