xref: /freebsd-src/sys/contrib/device-tree/Bindings/arm/arm,coresight-etm.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1b97ee269SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2b97ee269SEmmanuel Vadot%YAML 1.2
3b97ee269SEmmanuel Vadot---
4b97ee269SEmmanuel Vadot$id: http://devicetree.org/schemas/arm/arm,coresight-etm.yaml#
5b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6b97ee269SEmmanuel Vadot
7b97ee269SEmmanuel Vadottitle: Arm CoreSight Embedded Trace MacroCell
8b97ee269SEmmanuel Vadot
9b97ee269SEmmanuel Vadotmaintainers:
10b97ee269SEmmanuel Vadot  - Mathieu Poirier <mathieu.poirier@linaro.org>
11b97ee269SEmmanuel Vadot  - Mike Leach <mike.leach@linaro.org>
12b97ee269SEmmanuel Vadot  - Leo Yan <leo.yan@linaro.org>
13b97ee269SEmmanuel Vadot  - Suzuki K Poulose <suzuki.poulose@arm.com>
14b97ee269SEmmanuel Vadot
15b97ee269SEmmanuel Vadotdescription: |
16b97ee269SEmmanuel Vadot  CoreSight components are compliant with the ARM CoreSight architecture
17b97ee269SEmmanuel Vadot  specification and can be connected in various topologies to suit a particular
18b97ee269SEmmanuel Vadot  SoCs tracing needs. These trace components can generally be classified as
19b97ee269SEmmanuel Vadot  sinks, links and sources. Trace data produced by one or more sources flows
20b97ee269SEmmanuel Vadot  through the intermediate links connecting the source to the currently selected
21b97ee269SEmmanuel Vadot  sink.
22b97ee269SEmmanuel Vadot
23b97ee269SEmmanuel Vadot  The Embedded Trace Macrocell (ETM) is a real-time trace module providing
24b97ee269SEmmanuel Vadot  instruction and data tracing of a processor.
25b97ee269SEmmanuel Vadot
26b97ee269SEmmanuel Vadotselect:
27b97ee269SEmmanuel Vadot  properties:
28b97ee269SEmmanuel Vadot    compatible:
29b97ee269SEmmanuel Vadot      contains:
30b97ee269SEmmanuel Vadot        enum:
31b97ee269SEmmanuel Vadot          - arm,coresight-etm3x
32b97ee269SEmmanuel Vadot          - arm,coresight-etm4x
33b97ee269SEmmanuel Vadot          - arm,coresight-etm4x-sysreg
34b97ee269SEmmanuel Vadot  required:
35b97ee269SEmmanuel Vadot    - compatible
36b97ee269SEmmanuel Vadot
37b97ee269SEmmanuel VadotallOf:
38b97ee269SEmmanuel Vadot  - if:
39b97ee269SEmmanuel Vadot      not:
40b97ee269SEmmanuel Vadot        properties:
41b97ee269SEmmanuel Vadot          compatible:
42b97ee269SEmmanuel Vadot            contains:
43b97ee269SEmmanuel Vadot              const: arm,coresight-etm4x-sysreg
44b97ee269SEmmanuel Vadot    then:
45b97ee269SEmmanuel Vadot      $ref: /schemas/arm/primecell.yaml#
46b97ee269SEmmanuel Vadot      required:
47b97ee269SEmmanuel Vadot        - reg
48b97ee269SEmmanuel Vadot
49b97ee269SEmmanuel Vadotproperties:
50b97ee269SEmmanuel Vadot  compatible:
51b97ee269SEmmanuel Vadot    oneOf:
52b97ee269SEmmanuel Vadot      - description:
53b97ee269SEmmanuel Vadot          Embedded Trace Macrocell with memory mapped access.
54b97ee269SEmmanuel Vadot        items:
55b97ee269SEmmanuel Vadot          - enum:
56b97ee269SEmmanuel Vadot              - arm,coresight-etm3x
57b97ee269SEmmanuel Vadot              - arm,coresight-etm4x
58b97ee269SEmmanuel Vadot          - const: arm,primecell
59b97ee269SEmmanuel Vadot      - description:
60b97ee269SEmmanuel Vadot          Embedded Trace Macrocell (version 4.x), with system register access only
61b97ee269SEmmanuel Vadot        const: arm,coresight-etm4x-sysreg
62b97ee269SEmmanuel Vadot
63b97ee269SEmmanuel Vadot  reg:
64b97ee269SEmmanuel Vadot    maxItems: 1
65b97ee269SEmmanuel Vadot
66b97ee269SEmmanuel Vadot  clocks:
67b97ee269SEmmanuel Vadot    minItems: 1
68b97ee269SEmmanuel Vadot    maxItems: 2
69b97ee269SEmmanuel Vadot
70b97ee269SEmmanuel Vadot  clock-names:
71b97ee269SEmmanuel Vadot    minItems: 1
72b97ee269SEmmanuel Vadot    items:
73b97ee269SEmmanuel Vadot      - const: apb_pclk
74b97ee269SEmmanuel Vadot      - const: atclk
75b97ee269SEmmanuel Vadot
76*7ef62cebSEmmanuel Vadot  power-domains:
77*7ef62cebSEmmanuel Vadot    maxItems: 1
78*7ef62cebSEmmanuel Vadot
79b97ee269SEmmanuel Vadot  arm,coresight-loses-context-with-cpu:
80b97ee269SEmmanuel Vadot    type: boolean
81b97ee269SEmmanuel Vadot    description:
82b97ee269SEmmanuel Vadot      Indicates that the hardware will lose register context on CPU power down
83b97ee269SEmmanuel Vadot      (e.g. CPUIdle). An example of where this may be needed are systems which
84b97ee269SEmmanuel Vadot      contain a coresight component and CPU in the same power domain. When the
85b97ee269SEmmanuel Vadot      CPU powers down the coresight component also powers down and loses its
86b97ee269SEmmanuel Vadot      context.
87b97ee269SEmmanuel Vadot
88b97ee269SEmmanuel Vadot  arm,cp14:
89b97ee269SEmmanuel Vadot    type: boolean
90b97ee269SEmmanuel Vadot    description:
91b97ee269SEmmanuel Vadot      Must be present if the system accesses ETM/PTM management registers via
92b97ee269SEmmanuel Vadot      co-processor 14.
93b97ee269SEmmanuel Vadot
94b97ee269SEmmanuel Vadot  qcom,skip-power-up:
95b97ee269SEmmanuel Vadot    type: boolean
96b97ee269SEmmanuel Vadot    description:
97b97ee269SEmmanuel Vadot      Indicates that an implementation can skip powering up the trace unit.
98b97ee269SEmmanuel Vadot      TRCPDCR.PU does not have to be set on Qualcomm Technologies Inc. systems
99b97ee269SEmmanuel Vadot      since ETMs are in the same power domain as their CPU cores. This property
100b97ee269SEmmanuel Vadot      is required to identify such systems with hardware errata where the CPU
101b97ee269SEmmanuel Vadot      watchdog counter is stopped when TRCPDCR.PU is set.
102b97ee269SEmmanuel Vadot
103b97ee269SEmmanuel Vadot  cpu:
104b97ee269SEmmanuel Vadot    description:
105b97ee269SEmmanuel Vadot      phandle to the cpu this ETM is bound to.
106b97ee269SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
107b97ee269SEmmanuel Vadot
108b97ee269SEmmanuel Vadot  out-ports:
109b97ee269SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
110b97ee269SEmmanuel Vadot    additionalProperties: false
111b97ee269SEmmanuel Vadot
112b97ee269SEmmanuel Vadot    properties:
113b97ee269SEmmanuel Vadot      port:
114b97ee269SEmmanuel Vadot        description: Output connection from the ETM to CoreSight Trace bus.
115b97ee269SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
116b97ee269SEmmanuel Vadot
117b97ee269SEmmanuel Vadotrequired:
118b97ee269SEmmanuel Vadot  - compatible
119b97ee269SEmmanuel Vadot  - clocks
120b97ee269SEmmanuel Vadot  - clock-names
121b97ee269SEmmanuel Vadot  - cpu
122b97ee269SEmmanuel Vadot  - out-ports
123b97ee269SEmmanuel Vadot
124b97ee269SEmmanuel VadotunevaluatedProperties: false
125b97ee269SEmmanuel Vadot
126b97ee269SEmmanuel Vadotexamples:
127b97ee269SEmmanuel Vadot  - |
128b97ee269SEmmanuel Vadot    ptm@2201c000 {
129b97ee269SEmmanuel Vadot        compatible = "arm,coresight-etm3x", "arm,primecell";
130b97ee269SEmmanuel Vadot        reg = <0x2201c000 0x1000>;
131b97ee269SEmmanuel Vadot
132b97ee269SEmmanuel Vadot        cpu = <&cpu0>;
133b97ee269SEmmanuel Vadot        clocks = <&oscclk6a>;
134b97ee269SEmmanuel Vadot        clock-names = "apb_pclk";
135b97ee269SEmmanuel Vadot        out-ports {
136b97ee269SEmmanuel Vadot            port {
137b97ee269SEmmanuel Vadot                ptm0_out_port: endpoint {
138b97ee269SEmmanuel Vadot                    remote-endpoint = <&funnel_in_port0>;
139b97ee269SEmmanuel Vadot                };
140b97ee269SEmmanuel Vadot            };
141b97ee269SEmmanuel Vadot        };
142b97ee269SEmmanuel Vadot    };
143b97ee269SEmmanuel Vadot
144b97ee269SEmmanuel Vadot    ptm@2201d000 {
145b97ee269SEmmanuel Vadot        compatible = "arm,coresight-etm3x", "arm,primecell";
146b97ee269SEmmanuel Vadot        reg = <0x2201d000 0x1000>;
147b97ee269SEmmanuel Vadot
148b97ee269SEmmanuel Vadot        cpu = <&cpu1>;
149b97ee269SEmmanuel Vadot        clocks = <&oscclk6a>;
150b97ee269SEmmanuel Vadot        clock-names = "apb_pclk";
151b97ee269SEmmanuel Vadot        out-ports {
152b97ee269SEmmanuel Vadot            port {
153b97ee269SEmmanuel Vadot                ptm1_out_port: endpoint {
154b97ee269SEmmanuel Vadot                    remote-endpoint = <&funnel_in_port1>;
155b97ee269SEmmanuel Vadot                };
156b97ee269SEmmanuel Vadot            };
157b97ee269SEmmanuel Vadot        };
158b97ee269SEmmanuel Vadot    };
159b97ee269SEmmanuel Vadot...
160