linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] Add support for TPDM and TPDA
@ 2021-10-21  7:38 Tao Zhang
  2021-10-21  7:38 ` [PATCH 01/10] coresight: add support to enable more coresight paths Tao Zhang
                   ` (10 more replies)
  0 siblings, 11 replies; 37+ messages in thread
From: Tao Zhang @ 2021-10-21  7:38 UTC (permalink / raw)
  To: Mathieu Poirier, Suzuki K Poulose, Alexander Shishkin
  Cc: Tao Zhang, Mike Leach, Leo Yan, Greg Kroah-Hartman, coresight,
	linux-arm-kernel, linux-kernel, Tingwei Zhang, Mao Jinlong,
	Yuanfang Zhang, Trilok Soni

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="UTF-8", Size: 5070 bytes --]

This series adds support for the trace performance monitoring and
diagnostics hardware (TPDM and TPDA). It is composed of two major
elements.
a) Changes for original coresight framework to support for TPDM and TPDA.
b) Add driver code for TPDM and TPDA.

Introduction of changes for original coresight framework
a) Support TPDM as new coresight source.
Since only STM and ETM are supported as coresight source originally.
TPDM is a newly added coresight source. We need to change
the original way of saving coresight path to support more types source
for coresight driver.
The following patch is to add support more coresight sources.
coresight: add support to enable more coresight paths

b) To support multi-port input and multi-port output for funnels
In some cases, different TPDM hardware will be connected to the same
funnel, but eventually they need to be linked to different TPDAs or
funnels. This requires funnel to support multi-port input and multi-port
output, and can specify which input port corresponds to which output port.
Use property “label” in the funnel’s configuration to point out from
which input port to which output port.
The following patch is to support multi-port input and multi-port output
for funnels.
coresight: funnel: add support for multiple output ports

Introduction of TPDM and TPDA
TPDM - The trace performance monitoring and diagnostics monitor or TPDM in
short serves as data collection component for various dataset types
specified in the QPMDA(Qualcomm performance monitoring and diagnostics
architecture) spec. The primary use case of the TPDM is to collect data
from different data sources and send it to a TPDA for packetization,
timestamping and funneling.
The following patch is to add driver for TPDM.
Coresight: Add driver to support Coresight device TPDM
Coresight: Enable BC and GPR for TPDM driver
Coresight: Add interface for TPDM BC subunit
Coresight: Enable and add interface for TPDM TC subunit
Coresight: Enable DSB subunit for TPDM
Coresight: Enable CMB subunit for TPDM

TPDA - The trace performance monitoring and diagnostics aggregator or
TPDA in short serves as an arbitration and packetization engine for the
performance monitoring and diagnostics network as specified in the QPMDA
(Qualcomm performance monitoring and diagnostics architecture)
specification. The primary use case of the TPDA is to provide
packetization, funneling and timestamping of Monitor data as specified
in the QPMDA specification.
The following patch is to add driver for TPDA.
coresight: Add driver to support Coresight device TPDA

The last patch of this series is a device tree modification, which add
the TPDM and TPDA configuration to device tree for validating.
ARM: dts: msm: Add TPDA and TPDM configuration to device

Once this series patches are applied properly, the tpdm and tpda nodes
should be observed at the coresight path /sys/bus/coresight/devices
e.g.
/sys/bus/coresight/devices # ls -l | grep tpd
tpda0 -> ../../../devices/platform/soc@0/6004000.tpda/tpda0
tpdm0 -> ../../../devices/platform/soc@0/6844000.lpass.tpdm/tpdm0

We can use the commands are similar to the below to validate TPDMs.
Enable coresight sink first.
echo 1 > /sys/bus/coresight/devices/tpdm0/enable_source
echo 1 > /sys/bus/coresight/devices/tpdm0/integration_test
echo 2 > /sys/bus/coresight/devices/tpdm0/integration_test
The test data will be collected in the coresight sink which is enabled.

This series applies to coresight/next
https://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux.git?h=next

Tao Zhang (10):
  coresight: add support to enable more coresight paths
  coresight: funnel: add support for multiple output ports
  Coresight: Add driver to support Coresight device TPDM
  Coresight: Enable BC and GPR for TPDM driver
  Coresight: Add interface for TPDM BC subunit
  Coresight: Enable and add interface for TPDM TC subunit
  Coresight: Enable DSB subunit for TPDM
  Coresight: Enable CMB subunit for TPDM
  coresight: Add driver to support Coresight device TPDA
  ARM: dts: msm: Add TPDA and TPDM support to DTS for RB5

 .../bindings/arm/coresight-tpda.yaml          |  169 +
 .../bindings/arm/coresight-tpdm.yaml          |   86 +
 MAINTAINERS                                   |    6 +
 arch/arm64/boot/dts/qcom/qrb5165-rb5.dts      |  439 ++
 drivers/hwtracing/coresight/Kconfig           |   18 +
 drivers/hwtracing/coresight/Makefile          |    2 +
 drivers/hwtracing/coresight/coresight-core.c  |  175 +-
 .../hwtracing/coresight/coresight-platform.c  |    8 +
 drivers/hwtracing/coresight/coresight-tpda.c  |  828 ++++
 drivers/hwtracing/coresight/coresight-tpdm.c  | 4253 +++++++++++++++++
 include/linux/coresight.h                     |    2 +
 11 files changed, 5928 insertions(+), 58 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/coresight-tpda.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/coresight-tpdm.yaml
 create mode 100644 drivers/hwtracing/coresight/coresight-tpda.c
 create mode 100644 drivers/hwtracing/coresight/coresight-tpdm.c

-- 
2.17.1


^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2021-11-22 16:51 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-21  7:38 [PATCH 00/10] Add support for TPDM and TPDA Tao Zhang
2021-10-21  7:38 ` [PATCH 01/10] coresight: add support to enable more coresight paths Tao Zhang
2021-10-28 18:06   ` Mathieu Poirier
2021-11-22 15:12     ` Jinlong Mao
2021-11-22 16:51       ` Mathieu Poirier
2021-10-21  7:38 ` [PATCH 02/10] coresight: funnel: add support for multiple output ports Tao Zhang
2021-10-29 17:48   ` Mathieu Poirier
2021-10-21  7:38 ` [PATCH 03/10] Coresight: Add driver to support Coresight device TPDM Tao Zhang
2021-11-02 17:59   ` Mathieu Poirier
2021-11-04  8:56     ` Jinlong
2021-11-04 16:55       ` Mathieu Poirier
2021-11-05  8:15         ` Jinlong
2021-11-04  9:37     ` Suzuki K Poulose
2021-11-05  8:12       ` Jinlong
2021-10-21  7:38 ` [PATCH 04/10] Coresight: Enable BC and GPR for TPDM driver Tao Zhang
2021-11-03 19:43   ` Mathieu Poirier
2021-11-04 11:13     ` Jinlong
2021-11-04 17:02       ` Mathieu Poirier
2021-11-05  8:17         ` Jinlong
2021-11-05 15:14           ` Mathieu Poirier
2021-10-21  7:38 ` [PATCH 05/10] Coresight: Add interface for TPDM BC subunit Tao Zhang
2021-11-04 18:01   ` Mathieu Poirier
2021-11-05  8:26     ` Jinlong
2021-11-12  8:42       ` Jinlong
2021-11-12  9:10         ` Jinlong
2021-11-12 16:37           ` Mathieu Poirier
2021-10-21  7:38 ` [PATCH 06/10] Coresight: Enable and add interface for TPDM TC subunit Tao Zhang
2021-10-21  7:38 ` [PATCH 07/10] Coresight: Enable DSB subunit for TPDM Tao Zhang
2021-10-21  7:38 ` [PATCH 08/10] Coresight: Enable CMB " Tao Zhang
2021-10-21  7:38 ` [PATCH 09/10] coresight: Add driver to support Coresight device TPDA Tao Zhang
2021-10-21  7:38 ` [PATCH 10/10] ARM: dts: msm: Add TPDA and TPDM support to DTS for RB5 Tao Zhang
2021-11-02 18:02   ` Mathieu Poirier
2021-11-03  8:14     ` Tao Zhang
2021-11-04  9:45   ` Suzuki K Poulose
2021-11-05  8:07     ` Jinlong
2021-10-28 17:16 ` [PATCH 00/10] Add support for TPDM and TPDA Mathieu Poirier
2021-10-29 15:11   ` Tao Zhang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).