Re: [PATCH 00/10] Add support for TPDM and TPDA

From: Tao Zhang
Date: Fri Oct 29 2021 - 11:11:21 EST


On Thu, Oct 28, 2021 at 11:16:15AM -0600, Mathieu Poirier wrote:
> I have started to review this set. It is substantial in size and as such will
> take me several days, most likely weeks.
>
> Did you run checkpatch before sending this set out? If so, any reason why there
> are still errors?
>
> Thanks,
> Mathieu
>
> On Thu, Oct 21, 2021 at 03:38:46PM +0800, Tao Zhang wrote:
Hi Mathieu,

Sorry, Mathieu, I didn't run checkpatch script after adding DT binding docs to the
patches. We will check the errors and fix them in the next version.

Thanks,
Tao
> > 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
> >