Loading Documentation/ABI/testing/sysfs-bus-coresight-devices-trbe 0 → 100644 +14 −0 Original line number Diff line number Diff line What: /sys/bus/coresight/devices/trbe<cpu>/align Date: March 2021 KernelVersion: 5.13 Contact: Anshuman Khandual <anshuman.khandual@arm.com> Description: (Read) Shows the TRBE write pointer alignment. This value is fetched from the TRBIDR register. What: /sys/bus/coresight/devices/trbe<cpu>/flag Date: March 2021 KernelVersion: 5.13 Contact: Anshuman Khandual <anshuman.khandual@arm.com> Description: (Read) Shows if TRBE updates in the memory are with access and dirty flag updates as well. This value is fetched from the TRBIDR register. Documentation/devicetree/bindings/arm/ete.yaml 0 → 100644 +75 −0 Original line number Diff line number Diff line # 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>; }; }; }; }; ... Documentation/devicetree/bindings/arm/trbe.yaml 0 → 100644 +49 −0 Original line number Diff line number Diff line # SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause # Copyright 2021, Arm Ltd %YAML 1.2 --- $id: "http://devicetree.org/schemas/arm/trbe.yaml#" $schema: "http://devicetree.org/meta-schemas/core.yaml#" title: ARM Trace Buffer Extensions maintainers: - Anshuman Khandual <anshuman.khandual@arm.com> description: | Arm Trace Buffer Extension (TRBE) is a per CPU component for storing trace generated on the CPU to memory. It is accessed via CPU system registers. The software can verify if it is permitted to use the component by checking the TRBIDR register. properties: $nodename: const: "trbe" compatible: items: - const: arm,trace-buffer-extension interrupts: description: | Exactly 1 PPI must be listed. For heterogeneous systems where TRBE is only supported on a subset of the CPUs, please consult the arm,gic-v3 binding for details on describing a PPI partition. maxItems: 1 required: - compatible - interrupts additionalProperties: false examples: - | #include <dt-bindings/interrupt-controller/arm-gic.h> trbe { compatible = "arm,trace-buffer-extension"; interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>; }; ... Documentation/trace/coresight/coresight-trbe.rst 0 → 100644 +38 −0 Original line number Diff line number Diff line .. SPDX-License-Identifier: GPL-2.0 ============================== Trace Buffer Extension (TRBE). ============================== :Author: Anshuman Khandual <anshuman.khandual@arm.com> :Date: November 2020 Hardware Description -------------------- Trace Buffer Extension (TRBE) is a percpu hardware which captures in system memory, CPU traces generated from a corresponding percpu tracing unit. This gets plugged in as a coresight sink device because the corresponding trace generators (ETE), are plugged in as source device. The TRBE is not compliant to CoreSight architecture specifications, but is driven via the CoreSight driver framework to support the ETE (which is CoreSight compliant) integration. Sysfs files and directories --------------------------- The TRBE devices appear on the existing coresight bus alongside the other coresight devices:: >$ ls /sys/bus/coresight/devices trbe0 trbe1 trbe2 trbe3 The ``trbe<N>`` named TRBEs are associated with a CPU.:: >$ ls /sys/bus/coresight/devices/trbe0/ align flag *Key file items are:-* * ``align``: TRBE write pointer alignment * ``flag``: TRBE updates memory with access and dirty flags MAINTAINERS +2 −0 Original line number Diff line number Diff line Loading @@ -1761,6 +1761,8 @@ F: Documentation/ABI/testing/sysfs-bus-coresight-devices-* F: Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt F: Documentation/devicetree/bindings/arm/coresight-cti.yaml F: Documentation/devicetree/bindings/arm/coresight.txt F: Documentation/devicetree/bindings/arm/ete.yaml F: Documentation/devicetree/bindings/arm/trbe.yaml F: Documentation/trace/coresight/* F: drivers/hwtracing/coresight/* F: include/dt-bindings/arm/coresight-cti-dt.h Loading Loading
Documentation/ABI/testing/sysfs-bus-coresight-devices-trbe 0 → 100644 +14 −0 Original line number Diff line number Diff line What: /sys/bus/coresight/devices/trbe<cpu>/align Date: March 2021 KernelVersion: 5.13 Contact: Anshuman Khandual <anshuman.khandual@arm.com> Description: (Read) Shows the TRBE write pointer alignment. This value is fetched from the TRBIDR register. What: /sys/bus/coresight/devices/trbe<cpu>/flag Date: March 2021 KernelVersion: 5.13 Contact: Anshuman Khandual <anshuman.khandual@arm.com> Description: (Read) Shows if TRBE updates in the memory are with access and dirty flag updates as well. This value is fetched from the TRBIDR register.
Documentation/devicetree/bindings/arm/ete.yaml 0 → 100644 +75 −0 Original line number Diff line number Diff line # 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>; }; }; }; }; ...
Documentation/devicetree/bindings/arm/trbe.yaml 0 → 100644 +49 −0 Original line number Diff line number Diff line # SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause # Copyright 2021, Arm Ltd %YAML 1.2 --- $id: "http://devicetree.org/schemas/arm/trbe.yaml#" $schema: "http://devicetree.org/meta-schemas/core.yaml#" title: ARM Trace Buffer Extensions maintainers: - Anshuman Khandual <anshuman.khandual@arm.com> description: | Arm Trace Buffer Extension (TRBE) is a per CPU component for storing trace generated on the CPU to memory. It is accessed via CPU system registers. The software can verify if it is permitted to use the component by checking the TRBIDR register. properties: $nodename: const: "trbe" compatible: items: - const: arm,trace-buffer-extension interrupts: description: | Exactly 1 PPI must be listed. For heterogeneous systems where TRBE is only supported on a subset of the CPUs, please consult the arm,gic-v3 binding for details on describing a PPI partition. maxItems: 1 required: - compatible - interrupts additionalProperties: false examples: - | #include <dt-bindings/interrupt-controller/arm-gic.h> trbe { compatible = "arm,trace-buffer-extension"; interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>; }; ...
Documentation/trace/coresight/coresight-trbe.rst 0 → 100644 +38 −0 Original line number Diff line number Diff line .. SPDX-License-Identifier: GPL-2.0 ============================== Trace Buffer Extension (TRBE). ============================== :Author: Anshuman Khandual <anshuman.khandual@arm.com> :Date: November 2020 Hardware Description -------------------- Trace Buffer Extension (TRBE) is a percpu hardware which captures in system memory, CPU traces generated from a corresponding percpu tracing unit. This gets plugged in as a coresight sink device because the corresponding trace generators (ETE), are plugged in as source device. The TRBE is not compliant to CoreSight architecture specifications, but is driven via the CoreSight driver framework to support the ETE (which is CoreSight compliant) integration. Sysfs files and directories --------------------------- The TRBE devices appear on the existing coresight bus alongside the other coresight devices:: >$ ls /sys/bus/coresight/devices trbe0 trbe1 trbe2 trbe3 The ``trbe<N>`` named TRBEs are associated with a CPU.:: >$ ls /sys/bus/coresight/devices/trbe0/ align flag *Key file items are:-* * ``align``: TRBE write pointer alignment * ``flag``: TRBE updates memory with access and dirty flags
MAINTAINERS +2 −0 Original line number Diff line number Diff line Loading @@ -1761,6 +1761,8 @@ F: Documentation/ABI/testing/sysfs-bus-coresight-devices-* F: Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt F: Documentation/devicetree/bindings/arm/coresight-cti.yaml F: Documentation/devicetree/bindings/arm/coresight.txt F: Documentation/devicetree/bindings/arm/ete.yaml F: Documentation/devicetree/bindings/arm/trbe.yaml F: Documentation/trace/coresight/* F: drivers/hwtracing/coresight/* F: include/dt-bindings/arm/coresight-cti-dt.h Loading