Commit 5911ff45 authored by Hao Zhang's avatar Hao Zhang Committed by Suzuki K Poulose
Browse files

dt-bindings: arm: Add support for Coresight dummy trace



This patch add support for Coresight dummy source and dummy sink trace.

Signed-off-by: default avatarHao Zhang <quic_hazha@quicinc.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20230602084149.40031-3-quic_hazha@quicinc.com
parent 9d3ba0b6
Loading
Loading
Loading
Loading
+73 −0
Original line number Diff line number Diff line
# 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@linaro.org>
  - Suzuki K Poulose <suzuki.poulose@arm.com>
  - James Clark <james.clark@arm.com>
  - Mao Jinlong <quic_jinlmao@quicinc.com>
  - Hao Zhang <quic_hazha@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>;
          };
        };
      };
    };

...
+71 −0
Original line number Diff line number Diff line
# 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@linaro.org>
  - Suzuki K Poulose <suzuki.poulose@arm.com>
  - James Clark <james.clark@arm.com>
  - Mao Jinlong <quic_jinlmao@quicinc.com>
  - Hao Zhang <quic_hazha@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>;
          };
        };
      };
    };

...