Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/arm/arm,coresight-etm.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Arm CoreSight Embedded Trace MacroCell
0008 
0009 maintainers:
0010   - Mathieu Poirier <mathieu.poirier@linaro.org>
0011   - Mike Leach <mike.leach@linaro.org>
0012   - Leo Yan <leo.yan@linaro.org>
0013   - Suzuki K Poulose <suzuki.poulose@arm.com>
0014 
0015 description: |
0016   CoreSight components are compliant with the ARM CoreSight architecture
0017   specification and can be connected in various topologies to suit a particular
0018   SoCs tracing needs. These trace components can generally be classified as
0019   sinks, links and sources. Trace data produced by one or more sources flows
0020   through the intermediate links connecting the source to the currently selected
0021   sink.
0022 
0023   The Embedded Trace Macrocell (ETM) is a real-time trace module providing
0024   instruction and data tracing of a processor.
0025 
0026 select:
0027   properties:
0028     compatible:
0029       contains:
0030         enum:
0031           - arm,coresight-etm3x
0032           - arm,coresight-etm4x
0033           - arm,coresight-etm4x-sysreg
0034   required:
0035     - compatible
0036 
0037 allOf:
0038   - if:
0039       not:
0040         properties:
0041           compatible:
0042             contains:
0043               const: arm,coresight-etm4x-sysreg
0044     then:
0045       $ref: /schemas/arm/primecell.yaml#
0046       required:
0047         - reg
0048 
0049 properties:
0050   compatible:
0051     oneOf:
0052       - description:
0053           Embedded Trace Macrocell with memory mapped access.
0054         items:
0055           - enum:
0056               - arm,coresight-etm3x
0057               - arm,coresight-etm4x
0058           - const: arm,primecell
0059       - description:
0060           Embedded Trace Macrocell (version 4.x), with system register access only
0061         const: arm,coresight-etm4x-sysreg
0062 
0063   reg:
0064     maxItems: 1
0065 
0066   clocks:
0067     minItems: 1
0068     maxItems: 2
0069 
0070   clock-names:
0071     minItems: 1
0072     items:
0073       - const: apb_pclk
0074       - const: atclk
0075 
0076   arm,coresight-loses-context-with-cpu:
0077     type: boolean
0078     description:
0079       Indicates that the hardware will lose register context on CPU power down
0080       (e.g. CPUIdle). An example of where this may be needed are systems which
0081       contain a coresight component and CPU in the same power domain. When the
0082       CPU powers down the coresight component also powers down and loses its
0083       context.
0084 
0085   arm,cp14:
0086     type: boolean
0087     description:
0088       Must be present if the system accesses ETM/PTM management registers via
0089       co-processor 14.
0090 
0091   qcom,skip-power-up:
0092     type: boolean
0093     description:
0094       Indicates that an implementation can skip powering up the trace unit.
0095       TRCPDCR.PU does not have to be set on Qualcomm Technologies Inc. systems
0096       since ETMs are in the same power domain as their CPU cores. This property
0097       is required to identify such systems with hardware errata where the CPU
0098       watchdog counter is stopped when TRCPDCR.PU is set.
0099 
0100   cpu:
0101     description:
0102       phandle to the cpu this ETM is bound to.
0103     $ref: /schemas/types.yaml#/definitions/phandle
0104 
0105   out-ports:
0106     $ref: /schemas/graph.yaml#/properties/ports
0107     additionalProperties: false
0108 
0109     properties:
0110       port:
0111         description: Output connection from the ETM to CoreSight Trace bus.
0112         $ref: /schemas/graph.yaml#/properties/port
0113 
0114 required:
0115   - compatible
0116   - clocks
0117   - clock-names
0118   - cpu
0119   - out-ports
0120 
0121 unevaluatedProperties: false
0122 
0123 examples:
0124   - |
0125     ptm@2201c000 {
0126         compatible = "arm,coresight-etm3x", "arm,primecell";
0127         reg = <0x2201c000 0x1000>;
0128 
0129         cpu = <&cpu0>;
0130         clocks = <&oscclk6a>;
0131         clock-names = "apb_pclk";
0132         out-ports {
0133             port {
0134                 ptm0_out_port: endpoint {
0135                     remote-endpoint = <&funnel_in_port0>;
0136                 };
0137             };
0138         };
0139     };
0140 
0141     ptm@2201d000 {
0142         compatible = "arm,coresight-etm3x", "arm,primecell";
0143         reg = <0x2201d000 0x1000>;
0144 
0145         cpu = <&cpu1>;
0146         clocks = <&oscclk6a>;
0147         clock-names = "apb_pclk";
0148         out-ports {
0149             port {
0150                 ptm1_out_port: endpoint {
0151                     remote-endpoint = <&funnel_in_port1>;
0152                 };
0153             };
0154         };
0155     };
0156 ...