[PATCH v6 2/3] dt-bindings: arm: Add support for Coresight dummy trace
Hao Zhang
quic_hazha at quicinc.com
Thu Jun 8 00:45:36 PDT 2023
Hi Reviewers,
Could you please help to review this patch?
Thanks
Hao
On 6/2/2023 4:41 PM, Hao Zhang wrote:
> This patch add support for Coresight dummy source and dummy sink trace.
>
> Signed-off-by: Hao Zhang <quic_hazha at quicinc.com>
> ---
> .../arm/arm,coresight-dummy-sink.yaml | 73 +++++++++++++++++++
> .../arm/arm,coresight-dummy-source.yaml | 71 ++++++++++++++++++
> 2 files changed, 144 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dummy-sink.yaml
> create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dummy-source.yaml
>
> diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-dummy-sink.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-dummy-sink.yaml
> new file mode 100644
> index 000000000000..cb78cfa56702
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/arm/arm,coresight-dummy-sink.yaml
> @@ -0,0 +1,73 @@
> +# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/arm/arm,coresight-dummy-sink.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: ARM Coresight Dummy sink component
> +
> +description: |
> + CoreSight components are compliant with the ARM CoreSight architecture
> + specification and can be connected in various topologies to suit a particular
> + SoCs tracing needs. These trace components can generally be classified as
> + sinks, links and sources. Trace data produced by one or more sources flows
> + through the intermediate links connecting the source to the currently selected
> + sink.
> +
> + The Coresight dummy sink component is for the specific coresight sink devices
> + kernel don't have permission to access or configure, e.g., CoreSight EUD on
> + Qualcomm platforms. It is a mini-USB hub implemented to support the USB-based
> + debug and trace capabilities. For this device, a dummy driver is needed to
> + register it as Coresight sink device in kernel side, so that path can be
> + created in the driver. Then the trace flow would be transferred to EUD via
> + coresight link of AP processor. It provides Coresight API for operations on
> + dummy source devices, such as enabling and disabling them. It also provides
> + the Coresight dummy source paths for debugging.
> +
> + The primary use case of the coresight dummy sink is to build path in kernel
> + side for dummy sink component.
> +
> +maintainers:
> + - Mike Leach <mike.leach at linaro.org>
> + - Suzuki K Poulose <suzuki.poulose at arm.com>
> + - James Clark <james.clark at arm.com>
> + - Mao Jinlong <quic_jinlmao at quicinc.com>
> + - Hao Zhang <quic_hazha at quicinc.com>
> +
> +properties:
> + compatible:
> + enum:
> + - arm,coresight-dummy-sink
> +
> + in-ports:
> + $ref: /schemas/graph.yaml#/properties/ports
> +
> + properties:
> + port:
> + description: Input connection from the Coresight Trace bus to
> + dummy sink, such as Embedded USB debugger(EUD).
> +
> + $ref: /schemas/graph.yaml#/properties/port
> +
> +required:
> + - compatible
> + - in-ports
> +
> +additionalProperties: false
> +
> +examples:
> + # Minimum dummy sink definition. Dummy sink connect to coresight replicator.
> + - |
> + sink {
> + compatible = "arm,coresight-dummy-sink";
> +
> + in-ports {
> + port {
> + eud_in_replicator_swao: endpoint {
> + remote-endpoint = <&replicator_swao_out_eud>;
> + };
> + };
> + };
> + };
> +
> +...
> diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-dummy-source.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-dummy-source.yaml
> new file mode 100644
> index 000000000000..5fedaed49a1f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/arm/arm,coresight-dummy-source.yaml
> @@ -0,0 +1,71 @@
> +# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/arm/arm,coresight-dummy-source.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: ARM Coresight Dummy source component
> +
> +description: |
> + CoreSight components are compliant with the ARM CoreSight architecture
> + specification and can be connected in various topologies to suit a particular
> + SoCs tracing needs. These trace components can generally be classified as
> + sinks, links and sources. Trace data produced by one or more sources flows
> + through the intermediate links connecting the source to the currently selected
> + sink.
> +
> + The Coresight dummy source component is for the specific coresight source
> + devices kernel don't have permission to access or configure. For some SOCs,
> + there would be Coresight source trace components on sub-processor which
> + are conneted to AP processor via debug bus. For these devices, a dummy driver
> + is needed to register them as Coresight source devices, so that paths can be
> + created in the driver. It provides Coresight API for operations on dummy
> + source devices, such as enabling and disabling them. It also provides the
> + Coresight dummy source paths for debugging.
> +
> + The primary use case of the coresight dummy source is to build path in kernel
> + side for dummy source component.
> +
> +maintainers:
> + - Mike Leach <mike.leach at linaro.org>
> + - Suzuki K Poulose <suzuki.poulose at arm.com>
> + - James Clark <james.clark at arm.com>
> + - Mao Jinlong <quic_jinlmao at quicinc.com>
> + - Hao Zhang <quic_hazha at quicinc.com>
> +
> +properties:
> + compatible:
> + enum:
> + - arm,coresight-dummy-source
> +
> + out-ports:
> + $ref: /schemas/graph.yaml#/properties/ports
> +
> + properties:
> + port:
> + description: Output connection from the source to Coresight
> + Trace bus.
> + $ref: /schemas/graph.yaml#/properties/port
> +
> +required:
> + - compatible
> + - out-ports
> +
> +additionalProperties: false
> +
> +examples:
> + # Minimum dummy source definition. Dummy source connect to coresight funnel.
> + - |
> + source {
> + compatible = "arm,coresight-dummy-source";
> +
> + out-ports {
> + port {
> + dummy_riscv_out_funnel_swao: endpoint {
> + remote-endpoint = <&funnel_swao_in_dummy_riscv>;
> + };
> + };
> + };
> + };
> +
> +...
More information about the linux-arm-kernel
mailing list