xref: /linux/Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
13c15fddfSRob Herring# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
23c15fddfSRob Herring%YAML 1.2
33c15fddfSRob Herring---
43c15fddfSRob Herring$id: http://devicetree.org/schemas/arm/arm,coresight-etm.yaml#
53c15fddfSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
63c15fddfSRob Herring
73c15fddfSRob Herringtitle: Arm CoreSight Embedded Trace MacroCell
83c15fddfSRob Herring
93c15fddfSRob Herringmaintainers:
103c15fddfSRob Herring  - Mathieu Poirier <mathieu.poirier@linaro.org>
113c15fddfSRob Herring  - Mike Leach <mike.leach@linaro.org>
123c15fddfSRob Herring  - Leo Yan <leo.yan@linaro.org>
133c15fddfSRob Herring  - Suzuki K Poulose <suzuki.poulose@arm.com>
143c15fddfSRob Herring
153c15fddfSRob Herringdescription: |
163c15fddfSRob Herring  CoreSight components are compliant with the ARM CoreSight architecture
173c15fddfSRob Herring  specification and can be connected in various topologies to suit a particular
183c15fddfSRob Herring  SoCs tracing needs. These trace components can generally be classified as
193c15fddfSRob Herring  sinks, links and sources. Trace data produced by one or more sources flows
203c15fddfSRob Herring  through the intermediate links connecting the source to the currently selected
213c15fddfSRob Herring  sink.
223c15fddfSRob Herring
233c15fddfSRob Herring  The Embedded Trace Macrocell (ETM) is a real-time trace module providing
243c15fddfSRob Herring  instruction and data tracing of a processor.
253c15fddfSRob Herring
263c15fddfSRob Herringselect:
273c15fddfSRob Herring  properties:
283c15fddfSRob Herring    compatible:
293c15fddfSRob Herring      contains:
303c15fddfSRob Herring        enum:
313c15fddfSRob Herring          - arm,coresight-etm3x
323c15fddfSRob Herring          - arm,coresight-etm4x
333c15fddfSRob Herring          - arm,coresight-etm4x-sysreg
343c15fddfSRob Herring  required:
353c15fddfSRob Herring    - compatible
363c15fddfSRob Herring
373c15fddfSRob HerringallOf:
383c15fddfSRob Herring  - if:
393c15fddfSRob Herring      not:
403c15fddfSRob Herring        properties:
413c15fddfSRob Herring          compatible:
423c15fddfSRob Herring            contains:
433c15fddfSRob Herring              const: arm,coresight-etm4x-sysreg
443c15fddfSRob Herring    then:
453c15fddfSRob Herring      $ref: /schemas/arm/primecell.yaml#
463c15fddfSRob Herring      required:
473c15fddfSRob Herring        - reg
483c15fddfSRob Herring
493c15fddfSRob Herringproperties:
503c15fddfSRob Herring  compatible:
513c15fddfSRob Herring    oneOf:
523c15fddfSRob Herring      - description:
533c15fddfSRob Herring          Embedded Trace Macrocell with memory mapped access.
543c15fddfSRob Herring        items:
553c15fddfSRob Herring          - enum:
563c15fddfSRob Herring              - arm,coresight-etm3x
573c15fddfSRob Herring              - arm,coresight-etm4x
583c15fddfSRob Herring          - const: arm,primecell
593c15fddfSRob Herring      - description:
603c15fddfSRob Herring          Embedded Trace Macrocell (version 4.x), with system register access only
613c15fddfSRob Herring        const: arm,coresight-etm4x-sysreg
623c15fddfSRob Herring
633c15fddfSRob Herring  reg:
643c15fddfSRob Herring    maxItems: 1
653c15fddfSRob Herring
663c15fddfSRob Herring  clocks:
673c15fddfSRob Herring    minItems: 1
683c15fddfSRob Herring    maxItems: 2
693c15fddfSRob Herring
703c15fddfSRob Herring  clock-names:
713c15fddfSRob Herring    minItems: 1
723c15fddfSRob Herring    items:
733c15fddfSRob Herring      - const: apb_pclk
743c15fddfSRob Herring      - const: atclk
753c15fddfSRob Herring
76*8559e62cSRob Herring  power-domains:
77*8559e62cSRob Herring    maxItems: 1
78*8559e62cSRob Herring
793c15fddfSRob Herring  arm,coresight-loses-context-with-cpu:
803c15fddfSRob Herring    type: boolean
813c15fddfSRob Herring    description:
823c15fddfSRob Herring      Indicates that the hardware will lose register context on CPU power down
833c15fddfSRob Herring      (e.g. CPUIdle). An example of where this may be needed are systems which
843c15fddfSRob Herring      contain a coresight component and CPU in the same power domain. When the
853c15fddfSRob Herring      CPU powers down the coresight component also powers down and loses its
863c15fddfSRob Herring      context.
873c15fddfSRob Herring
883c15fddfSRob Herring  arm,cp14:
893c15fddfSRob Herring    type: boolean
903c15fddfSRob Herring    description:
913c15fddfSRob Herring      Must be present if the system accesses ETM/PTM management registers via
923c15fddfSRob Herring      co-processor 14.
933c15fddfSRob Herring
943c15fddfSRob Herring  qcom,skip-power-up:
953c15fddfSRob Herring    type: boolean
963c15fddfSRob Herring    description:
973c15fddfSRob Herring      Indicates that an implementation can skip powering up the trace unit.
983c15fddfSRob Herring      TRCPDCR.PU does not have to be set on Qualcomm Technologies Inc. systems
993c15fddfSRob Herring      since ETMs are in the same power domain as their CPU cores. This property
1003c15fddfSRob Herring      is required to identify such systems with hardware errata where the CPU
1013c15fddfSRob Herring      watchdog counter is stopped when TRCPDCR.PU is set.
1023c15fddfSRob Herring
1033c15fddfSRob Herring  cpu:
1043c15fddfSRob Herring    description:
1053c15fddfSRob Herring      phandle to the cpu this ETM is bound to.
1063c15fddfSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle
1073c15fddfSRob Herring
1083c15fddfSRob Herring  out-ports:
1093c15fddfSRob Herring    $ref: /schemas/graph.yaml#/properties/ports
1103c15fddfSRob Herring    additionalProperties: false
1113c15fddfSRob Herring
1123c15fddfSRob Herring    properties:
1133c15fddfSRob Herring      port:
1143c15fddfSRob Herring        description: Output connection from the ETM to CoreSight Trace bus.
1153c15fddfSRob Herring        $ref: /schemas/graph.yaml#/properties/port
1163c15fddfSRob Herring
1173c15fddfSRob Herringrequired:
1183c15fddfSRob Herring  - compatible
1193c15fddfSRob Herring  - clocks
1203c15fddfSRob Herring  - clock-names
1213c15fddfSRob Herring  - cpu
1223c15fddfSRob Herring  - out-ports
1233c15fddfSRob Herring
1243c15fddfSRob HerringunevaluatedProperties: false
1253c15fddfSRob Herring
1263c15fddfSRob Herringexamples:
1273c15fddfSRob Herring  - |
1283c15fddfSRob Herring    ptm@2201c000 {
1293c15fddfSRob Herring        compatible = "arm,coresight-etm3x", "arm,primecell";
1303c15fddfSRob Herring        reg = <0x2201c000 0x1000>;
1313c15fddfSRob Herring
1323c15fddfSRob Herring        cpu = <&cpu0>;
1333c15fddfSRob Herring        clocks = <&oscclk6a>;
1343c15fddfSRob Herring        clock-names = "apb_pclk";
1353c15fddfSRob Herring        out-ports {
1363c15fddfSRob Herring            port {
1373c15fddfSRob Herring                ptm0_out_port: endpoint {
1383c15fddfSRob Herring                    remote-endpoint = <&funnel_in_port0>;
1393c15fddfSRob Herring                };
1403c15fddfSRob Herring            };
1413c15fddfSRob Herring        };
1423c15fddfSRob Herring    };
1433c15fddfSRob Herring
1443c15fddfSRob Herring    ptm@2201d000 {
1453c15fddfSRob Herring        compatible = "arm,coresight-etm3x", "arm,primecell";
1463c15fddfSRob Herring        reg = <0x2201d000 0x1000>;
1473c15fddfSRob Herring
1483c15fddfSRob Herring        cpu = <&cpu1>;
1493c15fddfSRob Herring        clocks = <&oscclk6a>;
1503c15fddfSRob Herring        clock-names = "apb_pclk";
1513c15fddfSRob Herring        out-ports {
1523c15fddfSRob Herring            port {
1533c15fddfSRob Herring                ptm1_out_port: endpoint {
1543c15fddfSRob Herring                    remote-endpoint = <&funnel_in_port1>;
1553c15fddfSRob Herring                };
1563c15fddfSRob Herring            };
1573c15fddfSRob Herring        };
1583c15fddfSRob Herring    };
1593c15fddfSRob Herring...
160