The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/arm/arm,coresight-cti.yaml

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 # SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
    2 # Copyright 2019 Linaro Ltd.
    3 %YAML 1.2
    4 ---
    5 $id: http://devicetree.org/schemas/arm/arm,coresight-cti.yaml#
    6 $schema: http://devicetree.org/meta-schemas/core.yaml#
    7 
    8 title: ARM Coresight Cross Trigger Interface (CTI) device.
    9 
   10 description: |
   11   The CoreSight Embedded Cross Trigger (ECT) consists of CTI devices connected
   12   to one or more CoreSight components and/or a CPU, with CTIs interconnected in
   13   a star topology via the Cross Trigger Matrix (CTM), which is not programmable.
   14   The ECT components are not part of the trace generation data path and are thus
   15   not part of the CoreSight graph.
   16 
   17   The CTI component properties define the connections between the individual
   18   CTI and the components it is directly connected to, consisting of input and
   19   output hardware trigger signals. CTIs can have a maximum number of input and
   20   output hardware trigger signals (8 each for v1 CTI, 32 each for v2 CTI). The
   21   number is defined at design time, the maximum of each defined in the DEVID
   22   register.
   23 
   24   CTIs are interconnected in a star topology via the CTM, using a number of
   25   programmable channels, usually 4, but again implementation defined and
   26   described in the DEVID register. The star topology is not required to be
   27   described in the bindings as the actual connections are software
   28   programmable.
   29 
   30   In general the connections between CTI and components via the trigger signals
   31   are implementation defined, except when the CTI is connected to an ARM v8
   32   architecture core and optional ETM.
   33 
   34   In this case the ARM v8 architecture defines the required signal connections
   35   between CTI and the CPU core and ETM if present. In the case of a v8
   36   architecturally connected CTI an additional compatible string is used to
   37   indicate this feature (arm,coresight-cti-v8-arch).
   38 
   39   When CTI trigger connection information is unavailable then a minimal driver
   40   binding can be declared with no explicit trigger signals. This will result
   41   the driver detecting the maximum available triggers and channels from the
   42   DEVID register and make them all available for use as a single default
   43   connection. Any user / client application will require additional information
   44   on the connections between the CTI and other components for correct operation.
   45   This information might be found by enabling the Integration Test registers in
   46   the driver (set CONFIG_CORESIGHT_CTI_INTEGRATION_TEST in Kernel
   47   configuration). These registers may be used to explore the trigger connections
   48   between CTI and other CoreSight components.
   49 
   50   Certain triggers between CoreSight devices and the CTI have specific types
   51   and usages. These can be defined along with the signal indexes with the
   52   constants defined in <dt-bindings/arm/coresight-cti-dt.h>
   53 
   54   For example a CTI connected to a core will usually have a DBGREQ signal. This
   55   is defined in the binding as type PE_EDBGREQ. These types will appear in an
   56   optional array alongside the signal indexes. Omitting types will default all
   57   signals to GEN_IO.
   58 
   59   Note that some hardware trigger signals can be connected to non-CoreSight
   60   components (e.g. UART etc) depending on hardware implementation.
   61 
   62 maintainers:
   63   - Mike Leach <mike.leach@linaro.org>
   64 
   65 allOf:
   66   - $ref: /schemas/arm/primecell.yaml#
   67 
   68 # Need a custom select here or 'arm,primecell' will match on lots of nodes
   69 select:
   70   properties:
   71     compatible:
   72       contains:
   73         enum:
   74           - arm,coresight-cti
   75   required:
   76     - compatible
   77 
   78 properties:
   79   $nodename:
   80     pattern: "^cti(@[0-9a-f]+)$"
   81   compatible:
   82     oneOf:
   83       - items:
   84           - const: arm,coresight-cti
   85           - const: arm,primecell
   86       - items:
   87           - const: arm,coresight-cti-v8-arch
   88           - const: arm,coresight-cti
   89           - const: arm,primecell
   90 
   91   reg:
   92     maxItems: 1
   93 
   94   cpu:
   95     $ref: /schemas/types.yaml#/definitions/phandle
   96     description:
   97       Handle to cpu this device is associated with. This must appear in the
   98       base cti node if compatible string arm,coresight-cti-v8-arch is used,
   99       or may appear in a trig-conns child node when appropriate.
  100 
  101   arm,cti-ctm-id:
  102     $ref: /schemas/types.yaml#/definitions/uint32
  103     description:
  104       Defines the CTM this CTI is connected to, in large systems with multiple
  105       separate CTI/CTM nets. Typically multi-socket systems where the CTM is
  106       propagated between sockets.
  107 
  108   arm,cs-dev-assoc:
  109     $ref: /schemas/types.yaml#/definitions/phandle
  110     description:
  111       defines a phandle reference to an associated CoreSight trace device.
  112       When the associated trace device is enabled, then the respective CTI
  113       will be enabled. Use in a trig-conns node, or in CTI base node when
  114       compatible string arm,coresight-cti-v8-arch used. If the associated
  115       device has not been registered then the node name will be stored as
  116       the connection name for later resolution. If the associated device is
  117       not a CoreSight device or not registered then the node name will remain
  118       the connection name and automatic enabling will not occur.
  119 
  120   # size cells and address cells required if trig-conns node present.
  121   "#size-cells":
  122     const: 0
  123 
  124   "#address-cells":
  125     const: 1
  126 
  127 patternProperties:
  128   '^trig-conns@([0-9]+)$':
  129     type: object
  130     description:
  131       A trigger connections child node which describes the trigger signals
  132       between this CTI and another hardware device. This device may be a CPU,
  133       CoreSight device, any other hardware device or simple external IO lines.
  134       The connection may have both input and output triggers, or only one or the
  135       other.
  136 
  137     properties:
  138       reg:
  139         maxItems: 1
  140 
  141       arm,trig-in-sigs:
  142         $ref: /schemas/types.yaml#/definitions/uint32-array
  143         minItems: 1
  144         maxItems: 32
  145         description:
  146           List of CTI trigger in signal numbers in use by a trig-conns node.
  147 
  148       arm,trig-in-types:
  149         $ref: /schemas/types.yaml#/definitions/uint32-array
  150         minItems: 1
  151         maxItems: 32
  152         description:
  153           List of constants representing the types for the CTI trigger in
  154           signals. Types in this array match to the corresponding signal in the
  155           arm,trig-in-sigs array. If the -types array is smaller, or omitted
  156           completely, then the types will default to GEN_IO.
  157 
  158       arm,trig-out-sigs:
  159         $ref: /schemas/types.yaml#/definitions/uint32-array
  160         minItems: 1
  161         maxItems: 32
  162         description:
  163           List of CTI trigger out signal numbers in use by a trig-conns node.
  164 
  165       arm,trig-out-types:
  166         $ref: /schemas/types.yaml#/definitions/uint32-array
  167         minItems: 1
  168         maxItems: 32
  169         description:
  170           List of constants representing the types for the CTI trigger out
  171           signals. Types in this array match to the corresponding signal
  172           in the arm,trig-out-sigs array. If the "-types" array is smaller,
  173           or omitted completely, then the types will default to GEN_IO.
  174 
  175       arm,trig-filters:
  176         $ref: /schemas/types.yaml#/definitions/uint32-array
  177         minItems: 1
  178         maxItems: 32
  179         description:
  180           List of CTI trigger out signals that will be blocked from becoming
  181           active, unless filtering is disabled on the driver.
  182 
  183       arm,trig-conn-name:
  184         $ref: /schemas/types.yaml#/definitions/string
  185         description:
  186           Defines a connection name that will be displayed, if the cpu or
  187           arm,cs-dev-assoc properties are not being used in this connection.
  188           Principle use for CTI that are connected to non-CoreSight devices, or
  189           external IO.
  190 
  191     anyOf:
  192       - required:
  193           - arm,trig-in-sigs
  194       - required:
  195           - arm,trig-out-sigs
  196     oneOf:
  197       - required:
  198           - arm,trig-conn-name
  199       - required:
  200           - cpu
  201       - required:
  202           - arm,cs-dev-assoc
  203     required:
  204       - reg
  205 
  206 required:
  207   - compatible
  208   - reg
  209   - clocks
  210   - clock-names
  211 
  212 if:
  213   properties:
  214     compatible:
  215       contains:
  216         const: arm,coresight-cti-v8-arch
  217 
  218 then:
  219   required:
  220     - cpu
  221 
  222 unevaluatedProperties: false
  223 
  224 examples:
  225   # minimum CTI definition. DEVID register used to set number of triggers.
  226   - |
  227     cti@20020000 {
  228       compatible = "arm,coresight-cti", "arm,primecell";
  229       reg = <0x20020000 0x1000>;
  230 
  231       clocks = <&soc_smc50mhz>;
  232       clock-names = "apb_pclk";
  233     };
  234   #  v8 architecturally defined CTI - CPU + ETM connections generated by the
  235   #  driver according to the v8 architecture specification.
  236   - |
  237     cti@859000 {
  238       compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
  239                    "arm,primecell";
  240       reg = <0x859000 0x1000>;
  241 
  242       clocks = <&soc_smc50mhz>;
  243       clock-names = "apb_pclk";
  244 
  245       cpu = <&CPU1>;
  246       arm,cs-dev-assoc = <&etm1>;
  247     };
  248   # Implementation defined CTI - CPU + ETM connections explicitly defined..
  249   # Shows use of type constants from dt-bindings/arm/coresight-cti-dt.h
  250   # #size-cells and #address-cells are required if trig-conns@ nodes present.
  251   - |
  252     #include <dt-bindings/arm/coresight-cti-dt.h>
  253 
  254     cti@858000 {
  255       compatible = "arm,coresight-cti", "arm,primecell";
  256       reg = <0x858000 0x1000>;
  257 
  258       clocks = <&soc_smc50mhz>;
  259       clock-names = "apb_pclk";
  260 
  261       arm,cti-ctm-id = <1>;
  262 
  263       #address-cells = <1>;
  264       #size-cells = <0>;
  265 
  266       trig-conns@0 {
  267             reg = <0>;
  268             arm,trig-in-sigs = <4 5 6 7>;
  269             arm,trig-in-types = <ETM_EXTOUT
  270                                  ETM_EXTOUT
  271                                  ETM_EXTOUT
  272                                  ETM_EXTOUT>;
  273             arm,trig-out-sigs = <4 5 6 7>;
  274             arm,trig-out-types = <ETM_EXTIN
  275                                   ETM_EXTIN
  276                                   ETM_EXTIN
  277                                   ETM_EXTIN>;
  278             arm,cs-dev-assoc = <&etm0>;
  279       };
  280 
  281       trig-conns@1 {
  282             reg = <1>;
  283             cpu = <&CPU0>;
  284             arm,trig-in-sigs = <0 1>;
  285             arm,trig-in-types = <PE_DBGTRIGGER
  286                                  PE_PMUIRQ>;
  287             arm,trig-out-sigs=<0 1 2 >;
  288             arm,trig-out-types = <PE_EDBGREQ
  289                                   PE_DBGRESTART
  290                                   PE_CTIIRQ>;
  291 
  292             arm,trig-filters = <0>;
  293       };
  294     };
  295   # Implementation defined CTI - non CoreSight component connections.
  296   - |
  297     cti@20110000 {
  298       compatible = "arm,coresight-cti", "arm,primecell";
  299       reg = <0x20110000 0x1000>;
  300 
  301       clocks = <&soc_smc50mhz>;
  302       clock-names = "apb_pclk";
  303 
  304       #address-cells = <1>;
  305       #size-cells = <0>;
  306 
  307       trig-conns@0 {
  308         reg = <0>;
  309         arm,trig-in-sigs=<0>;
  310         arm,trig-in-types=<GEN_INTREQ>;
  311         arm,trig-out-sigs=<0>;
  312         arm,trig-out-types=<GEN_HALTREQ>;
  313         arm,trig-conn-name = "sys_profiler";
  314       };
  315 
  316       trig-conns@1 {
  317         reg = <1>;
  318         arm,trig-out-sigs=<2 3>;
  319         arm,trig-out-types=<GEN_HALTREQ GEN_RESTARTREQ>;
  320         arm,trig-conn-name = "watchdog";
  321       };
  322 
  323       trig-conns@2 {
  324         reg = <2>;
  325         arm,trig-in-sigs=<1 6>;
  326         arm,trig-in-types=<GEN_HALTREQ GEN_RESTARTREQ>;
  327         arm,trig-conn-name = "g_counter";
  328       };
  329     };
  330 
  331 ...

Cache object: 668d877695c44ba46db144a2bcdf2b89


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.