xref: /freebsd/sys/contrib/device-tree/Bindings/arm/arm,coresight-tmc.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-tmc.yaml#
5b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6b97ee269SEmmanuel Vadot
7b97ee269SEmmanuel Vadottitle: Arm CoreSight Trace Memory Controller
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  Trace Memory Controller is used for Embedded Trace Buffer(ETB), Embedded Trace
24b97ee269SEmmanuel Vadot  FIFO(ETF) and Embedded Trace Router(ETR) configurations. The configuration
25b97ee269SEmmanuel Vadot  mode (ETB, ETF, ETR) is discovered at boot time when the device is probed.
26b97ee269SEmmanuel Vadot
27b97ee269SEmmanuel Vadot# Need a custom select here or 'arm,primecell' will match on lots of nodes
28b97ee269SEmmanuel Vadotselect:
29b97ee269SEmmanuel Vadot  properties:
30b97ee269SEmmanuel Vadot    compatible:
31b97ee269SEmmanuel Vadot      contains:
32b97ee269SEmmanuel Vadot        const: arm,coresight-tmc
33b97ee269SEmmanuel Vadot  required:
34b97ee269SEmmanuel Vadot    - compatible
35b97ee269SEmmanuel Vadot
36b97ee269SEmmanuel VadotallOf:
37b97ee269SEmmanuel Vadot  - $ref: /schemas/arm/primecell.yaml#
38b97ee269SEmmanuel Vadot
39b97ee269SEmmanuel Vadotproperties:
40b97ee269SEmmanuel Vadot  compatible:
41b97ee269SEmmanuel Vadot    items:
42b97ee269SEmmanuel Vadot      - const: arm,coresight-tmc
43b97ee269SEmmanuel Vadot      - const: arm,primecell
44b97ee269SEmmanuel Vadot
45b97ee269SEmmanuel Vadot  reg:
46b97ee269SEmmanuel Vadot    maxItems: 1
47b97ee269SEmmanuel Vadot
48b97ee269SEmmanuel Vadot  clocks:
49b97ee269SEmmanuel Vadot    minItems: 1
50b97ee269SEmmanuel Vadot    maxItems: 2
51b97ee269SEmmanuel Vadot
52b97ee269SEmmanuel Vadot  clock-names:
53b97ee269SEmmanuel Vadot    minItems: 1
54b97ee269SEmmanuel Vadot    items:
55b97ee269SEmmanuel Vadot      - const: apb_pclk
56b97ee269SEmmanuel Vadot      - const: atclk
57b97ee269SEmmanuel Vadot
58*7ef62cebSEmmanuel Vadot  iommus:
59*7ef62cebSEmmanuel Vadot    maxItems: 1
60*7ef62cebSEmmanuel Vadot
61*7ef62cebSEmmanuel Vadot  power-domains:
62*7ef62cebSEmmanuel Vadot    maxItems: 1
63*7ef62cebSEmmanuel Vadot
64b97ee269SEmmanuel Vadot  arm,buffer-size:
65b97ee269SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
66b97ee269SEmmanuel Vadot    deprecated: true
67b97ee269SEmmanuel Vadot    description:
68b97ee269SEmmanuel Vadot      Size of contiguous buffer space for TMC ETR (embedded trace router). The
69b97ee269SEmmanuel Vadot      buffer size can be configured dynamically via buffer_size property in
70b97ee269SEmmanuel Vadot      sysfs instead.
71b97ee269SEmmanuel Vadot
72b97ee269SEmmanuel Vadot  arm,scatter-gather:
73b97ee269SEmmanuel Vadot    type: boolean
74b97ee269SEmmanuel Vadot    description:
75b97ee269SEmmanuel Vadot      Indicates that the TMC-ETR can safely use the SG mode on this system.
76b97ee269SEmmanuel Vadot
77b97ee269SEmmanuel Vadot  arm,max-burst-size:
78b97ee269SEmmanuel Vadot    description:
79b97ee269SEmmanuel Vadot      The maximum burst size initiated by TMC on the AXI master interface. The
80b97ee269SEmmanuel Vadot      burst size can be in the range [0..15], the setting supports one data
81b97ee269SEmmanuel Vadot      transfer per burst up to a maximum of 16 data transfers per burst.
82b97ee269SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
83b97ee269SEmmanuel Vadot    maximum: 15
84b97ee269SEmmanuel Vadot
85b97ee269SEmmanuel Vadot  in-ports:
86b97ee269SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
87b97ee269SEmmanuel Vadot    additionalProperties: false
88b97ee269SEmmanuel Vadot
89b97ee269SEmmanuel Vadot    properties:
90b97ee269SEmmanuel Vadot      port:
91b97ee269SEmmanuel Vadot        description: Input connection from the CoreSight Trace bus.
92b97ee269SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
93b97ee269SEmmanuel Vadot
94b97ee269SEmmanuel Vadot  out-ports:
95b97ee269SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
96b97ee269SEmmanuel Vadot    additionalProperties: false
97b97ee269SEmmanuel Vadot
98b97ee269SEmmanuel Vadot    properties:
99b97ee269SEmmanuel Vadot      port:
100b97ee269SEmmanuel Vadot        description: AXI or ATB Master output connection. Used for ETR
101b97ee269SEmmanuel Vadot          and ETF configurations.
102b97ee269SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
103b97ee269SEmmanuel Vadot
104b97ee269SEmmanuel Vadotrequired:
105b97ee269SEmmanuel Vadot  - compatible
106b97ee269SEmmanuel Vadot  - reg
107b97ee269SEmmanuel Vadot  - clocks
108b97ee269SEmmanuel Vadot  - clock-names
109b97ee269SEmmanuel Vadot  - in-ports
110b97ee269SEmmanuel Vadot
111b97ee269SEmmanuel VadotunevaluatedProperties: false
112b97ee269SEmmanuel Vadot
113b97ee269SEmmanuel Vadotexamples:
114b97ee269SEmmanuel Vadot  - |
115b97ee269SEmmanuel Vadot    etr@20070000 {
116b97ee269SEmmanuel Vadot        compatible = "arm,coresight-tmc", "arm,primecell";
117b97ee269SEmmanuel Vadot        reg = <0x20070000 0x1000>;
118b97ee269SEmmanuel Vadot
119b97ee269SEmmanuel Vadot        clocks = <&oscclk6a>;
120b97ee269SEmmanuel Vadot        clock-names = "apb_pclk";
121b97ee269SEmmanuel Vadot        in-ports {
122b97ee269SEmmanuel Vadot            port {
123b97ee269SEmmanuel Vadot                etr_in_port: endpoint {
124b97ee269SEmmanuel Vadot                    remote-endpoint = <&replicator2_out_port0>;
125b97ee269SEmmanuel Vadot                };
126b97ee269SEmmanuel Vadot            };
127b97ee269SEmmanuel Vadot        };
128b97ee269SEmmanuel Vadot
129b97ee269SEmmanuel Vadot        out-ports {
130b97ee269SEmmanuel Vadot            port {
131b97ee269SEmmanuel Vadot                etr_out_port: endpoint {
132b97ee269SEmmanuel Vadot                    remote-endpoint = <&catu_in_port>;
133b97ee269SEmmanuel Vadot                };
134b97ee269SEmmanuel Vadot            };
135b97ee269SEmmanuel Vadot        };
136b97ee269SEmmanuel Vadot    };
137b97ee269SEmmanuel Vadot...
138