0001 # SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
0002 # Copyright 2021, Arm Ltd
0003 %YAML 1.2
0004 ---
0005 $id: "http://devicetree.org/schemas/arm/arm,embedded-trace-extension.yaml#"
0006 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0007
0008 title: ARM Embedded Trace Extensions
0009
0010 maintainers:
0011 - Suzuki K Poulose <suzuki.poulose@arm.com>
0012 - Mathieu Poirier <mathieu.poirier@linaro.org>
0013
0014 description: |
0015 Arm Embedded Trace Extension(ETE) is a per CPU trace component that
0016 allows tracing the CPU execution. It overlaps with the CoreSight ETMv4
0017 architecture and has extended support for future architecture changes.
0018 The trace generated by the ETE could be stored via legacy CoreSight
0019 components (e.g, TMC-ETR) or other means (e.g, using a per CPU buffer
0020 Arm Trace Buffer Extension (TRBE)). Since the ETE can be connected to
0021 legacy CoreSight components, a node must be listed per instance, along
0022 with any optional connection graph as per the coresight bindings.
0023
0024 properties:
0025 $nodename:
0026 pattern: "^ete([0-9a-f]+)$"
0027 compatible:
0028 items:
0029 - const: arm,embedded-trace-extension
0030
0031 cpu:
0032 description: |
0033 Handle to the cpu this ETE is bound to.
0034 $ref: /schemas/types.yaml#/definitions/phandle
0035
0036 out-ports:
0037 description: |
0038 Output connections from the ETE to legacy CoreSight trace bus.
0039 $ref: /schemas/graph.yaml#/properties/ports
0040 properties:
0041 port:
0042 description: Output connection from the ETE to legacy CoreSight Trace bus.
0043 $ref: /schemas/graph.yaml#/properties/port
0044
0045 required:
0046 - compatible
0047 - cpu
0048
0049 additionalProperties: false
0050
0051 examples:
0052
0053 # An ETE node without legacy CoreSight connections
0054 - |
0055 ete0 {
0056 compatible = "arm,embedded-trace-extension";
0057 cpu = <&cpu_0>;
0058 };
0059 # An ETE node with legacy CoreSight connections
0060 - |
0061 ete1 {
0062 compatible = "arm,embedded-trace-extension";
0063 cpu = <&cpu_1>;
0064
0065 out-ports { /* legacy coresight connection */
0066 port {
0067 ete1_out_port: endpoint {
0068 remote-endpoint = <&funnel_in_port0>;
0069 };
0070 };
0071 };
0072 };
0073
0074 ...