mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
Current name of coresight component's folder consists of prefix of the device and the id in the device list. When run 'ls' command, we can get the register address of the device. Take CTI for example, if we want to set the config for modem CTI, but we can't know which CTI is modem CTI from all current information. cti_sys0 -> ../../../devices/platform/soc@0/138f0000.cti/cti_sys0 cti_sys1 -> ../../../devices/platform/soc@0/13900000.cti/cti_sys1 Add label to show hardware context information of each coresight device. There will be a sysfs node label in each device folder. cat /sys/bus/coresight/devices/cti_sys0/label Signed-off-by: Mao Jinlong <quic_jinlmao@quicinc.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Reviewed-by: Mike Leach <mike.leach@linaro.org> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> Link: https://lore.kernel.org/r/20250816072529.3716968-2-quic_jinlmao@quicinc.com
129 lines
3.3 KiB
YAML
129 lines
3.3 KiB
YAML
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
|
# Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/arm/qcom,coresight-tpda.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Trace, Profiling and Diagnostics Aggregator - TPDA
|
|
|
|
description: |
|
|
TPDAs are responsible for packetization and timestamping of data sets
|
|
utilizing the MIPI STPv2 packet protocol. Pulling data sets from one or
|
|
more attached TPDM and pushing the resultant (packetized) data out a
|
|
master ATB interface. Performing an arbitrated ATB interleaving (funneling)
|
|
task for free-flowing data from TPDM (i.e. CMB and DSB data set flows).
|
|
|
|
There is no strict binding between TPDM and TPDA. TPDA can have multiple
|
|
TPDMs connect to it. But There must be only one TPDA in the path from the
|
|
TPDM source to TMC sink. TPDM can directly connect to TPDA's inport or
|
|
connect to funnel which will connect to TPDA's inport.
|
|
|
|
We can use the commands are similar to the below to validate TPDMs.
|
|
Enable coresight sink first.
|
|
|
|
echo 1 > /sys/bus/coresight/devices/tmc_etf0/enable_sink
|
|
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.
|
|
If rwp register of the sink is keeping updating when do integration_test
|
|
(by cat tmc_etf0/mgmt/rwp), it means there is data generated from TPDM
|
|
to sink.
|
|
|
|
maintainers:
|
|
- Mao Jinlong <quic_jinlmao@quicinc.com>
|
|
- Tao Zhang <quic_taozha@quicinc.com>
|
|
|
|
# Need a custom select here or 'arm,primecell' will match on lots of nodes
|
|
select:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- qcom,coresight-tpda
|
|
required:
|
|
- compatible
|
|
|
|
properties:
|
|
$nodename:
|
|
pattern: "^tpda(@[0-9a-f]+)$"
|
|
compatible:
|
|
items:
|
|
- const: qcom,coresight-tpda
|
|
- const: arm,primecell
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
maxItems: 1
|
|
|
|
clock-names:
|
|
items:
|
|
- const: apb_pclk
|
|
|
|
label:
|
|
description:
|
|
Description of a coresight device.
|
|
|
|
in-ports:
|
|
description: |
|
|
Input connections from TPDM to TPDA
|
|
$ref: /schemas/graph.yaml#/properties/ports
|
|
|
|
out-ports:
|
|
description: |
|
|
Output connections from the TPDA to legacy CoreSight trace bus.
|
|
$ref: /schemas/graph.yaml#/properties/ports
|
|
|
|
properties:
|
|
port:
|
|
description:
|
|
Output connection from the TPDA to legacy CoreSight Trace bus.
|
|
$ref: /schemas/graph.yaml#/properties/port
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- clocks
|
|
- clock-names
|
|
- in-ports
|
|
- out-ports
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
# minimum tpda definition.
|
|
- |
|
|
tpda@6004000 {
|
|
compatible = "qcom,coresight-tpda", "arm,primecell";
|
|
reg = <0x6004000 0x1000>;
|
|
|
|
clocks = <&aoss_qmp>;
|
|
clock-names = "apb_pclk";
|
|
|
|
in-ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
tpda_qdss_0_in_tpdm_dcc: endpoint {
|
|
remote-endpoint = <&tpdm_dcc_out_tpda_qdss_0>;
|
|
};
|
|
};
|
|
};
|
|
|
|
out-ports {
|
|
port {
|
|
tpda_qdss_out_funnel_in0: endpoint {
|
|
remote-endpoint = <&funnel_in0_in_tpda_qdss>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
...
|