The programmable AXI performance monitors (APM) collect real-time transaction metrics at multiple points on the PS AXI interconnect to help system software profile real-time activity. In our platform we have it in PL and also some of the hardened instances in PS. Perf is a profiler tool for Linux 2.6+ based systems that abstracts away CPU hardware differences in Linux performance measurements and presents a simple commandline interface. Perf is based on the perf_events interface exported by recent versions of the Linux kernel. Therefore we register to the framework for the APM. The IP has support for multiple slots and ranges that we are supporting by extending the sysfs interface. Datasheet: https://docs.xilinx.com/v/u/en-US/pg037_axi_perf_mon Also the Hardened instances described in AXI Performance Monitor of ug1085. Changes since RFC: - Use boolean for the values xlnx,enable-profile , xlnx,enable-trace and xlnx,enable-event-count - Update the file name - use generic node name pmu - Fix a warn Shubhrajyoti Datta (2): dt-bindings: Add the binding doc for xilinx APM perf: Add xilinx APM support .../bindings/perf/xlnx,axi-perf-monitor.yaml | 133 +++++ drivers/perf/Kconfig | 11 + drivers/perf/Makefile | 1 + drivers/perf/xilinx_apm.c | 517 ++++++++++++++++++ 4 files changed, 662 insertions(+) create mode 100644 Documentation/devicetree/bindings/perf/xlnx,axi-perf-monitor.yaml create mode 100644 drivers/perf/xilinx_apm.c -- 2.17.1