Configuration Request Retry Status (CRS) handling


One Line Summary

Configuration Request Retry Status (CRS)


An endpoint is allowed to issue Configuration Request Retry Status (CRS) following a FLR request to indicate that it is not ready to accept new requests. CRS is defined in PCIe r3.1, sec 2.3.1. Request Handling Rules and CRS usage in FLR context is mentioned in PCIe r3.1, sec 6.6.2. Function-Level Reset.

A CRS indication will only be given if the address to be read is vendor ID register. pci_bus_read_dev_vendor_id() knows how to deal with CRS returned 0xFFFF0001 value and will continue polling until a value other than 0xFFFF0001 is returned within a given timeout.

Kernel is handling CRS in some cases but there are holes that we need to fill in.

Presentation Materials



  • Biography

    Sinan Kaya is a Linux kernel developer at Qualcomm Datacenter Technologies (QDT). Sinan earned 15 years of embedded systems and real time operating systems experience before joining QDT as a kernel developer in 2013.

    He has been an active kernel contributor since 2015. His main kernel contributions are in PCIe, ACPI and DMA Engine areas.

    He seeks feedback and looks for ways to make Linux standards compliant.