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