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

Cache object: 1832dbddd9baca6a369b0f86de59f154


[ 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.