| # SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause |
| # Copyright 2021, Arm Ltd |
| %YAML 1.2 |
| --- |
| $id: "http://devicetree.org/schemas/arm/ete.yaml#" |
| $schema: "http://devicetree.org/meta-schemas/core.yaml#" |
| |
| title: ARM Embedded Trace Extensions |
| |
| maintainers: |
| - Suzuki K Poulose <suzuki.poulose@arm.com> |
| - Mathieu Poirier <mathieu.poirier@linaro.org> |
| |
| description: | |
| Arm Embedded Trace Extension(ETE) is a per CPU trace component that |
| allows tracing the CPU execution. It overlaps with the CoreSight ETMv4 |
| architecture and has extended support for future architecture changes. |
| The trace generated by the ETE could be stored via legacy CoreSight |
| components (e.g, TMC-ETR) or other means (e.g, using a per CPU buffer |
| Arm Trace Buffer Extension (TRBE)). Since the ETE can be connected to |
| legacy CoreSight components, a node must be listed per instance, along |
| with any optional connection graph as per the coresight bindings. |
| See bindings/arm/coresight.txt. |
| |
| properties: |
| $nodename: |
| pattern: "^ete([0-9a-f]+)$" |
| compatible: |
| items: |
| - const: arm,embedded-trace-extension |
| |
| cpu: |
| description: | |
| Handle to the cpu this ETE is bound to. |
| $ref: /schemas/types.yaml#/definitions/phandle |
| |
| out-ports: |
| description: | |
| Output connections from the ETE to legacy CoreSight trace bus. |
| $ref: /schemas/graph.yaml#/properties/ports |
| properties: |
| port: |
| description: Output connection from the ETE to legacy CoreSight Trace bus. |
| $ref: /schemas/graph.yaml#/properties/port |
| |
| required: |
| - compatible |
| - cpu |
| |
| additionalProperties: false |
| |
| examples: |
| |
| # An ETE node without legacy CoreSight connections |
| - | |
| ete0 { |
| compatible = "arm,embedded-trace-extension"; |
| cpu = <&cpu_0>; |
| }; |
| # An ETE node with legacy CoreSight connections |
| - | |
| ete1 { |
| compatible = "arm,embedded-trace-extension"; |
| cpu = <&cpu_1>; |
| |
| out-ports { /* legacy coresight connection */ |
| port { |
| ete1_out_port: endpoint { |
| remote-endpoint = <&funnel_in_port0>; |
| }; |
| }; |
| }; |
| }; |
| |
| ... |