[PATCH 0/3] Add support for RAS DES feature in PCIe DW controller

From: Shradha Todi
Date: Tue May 18 2021 - 23:53:54 EST


DesignWare controller provides a vendor specific extended capability called
RASDES as an IP feature. This extended capability provides hardware
information like:
- Debug registers to know the state of the link or controller.
- Error injection mechanisms to inject various PCIe errors
including sequence number, CRC
- Statistical counters to know how many times a particular event occurred

However, in Linux we do not have any generic or custom support to be able to
use this feature in an efficient manner. This is the reason we are proposing
this framework. Debug and bring up time of high-speed IPs are highly dependent
on costlier hardware analyzers and this solution will in some ways help to
reduce the HW analyzer usage.

The debugfs entries can be used to get information about underlying hardware
and can be shared with user space. Separate debugfs entries has been created to
cater to all the DES hooks provided by the controller. The debugfs entries
interacts with the RASDES registers in the required sequence and provides the
meaningful data to the user. This eases the effort to understand and use the
register information for debugging.

Shradha Todi (3):
PCI: dwc: Add support for vendor specific capability search
PCI: debugfs: Add support for RAS framework in DWC
PCI: dwc: Create debugfs files in DWC driver

drivers/pci/controller/dwc/Kconfig | 9 +
drivers/pci/controller/dwc/Makefile | 1 +
.../controller/dwc/pcie-designware-debugfs.c | 544 ++++++++++++++++++
.../controller/dwc/pcie-designware-debugfs.h | 133 +++++
drivers/pci/controller/dwc/pcie-designware.c | 21 +
drivers/pci/controller/dwc/pcie-designware.h | 5 +
6 files changed, 713 insertions(+)
create mode 100644 drivers/pci/controller/dwc/pcie-designware-debugfs.c
create mode 100644 drivers/pci/controller/dwc/pcie-designware-debugfs.h

--
2.17.1