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,cci-400.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
    2 %YAML 1.2
    3 ---
    4 $id: http://devicetree.org/schemas/arm/arm,cci-400.yaml#
    5 $schema: http://devicetree.org/meta-schemas/core.yaml#
    6 
    7 title: ARM CCI Cache Coherent Interconnect Device Tree Binding
    8 
    9 maintainers:
   10   - Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
   11 
   12 description: >
   13   ARM multi-cluster systems maintain intra-cluster coherency through a cache
   14   coherent interconnect (CCI) that is capable of monitoring bus transactions
   15   and manage coherency, TLB invalidations and memory barriers.
   16 
   17   It allows snooping and distributed virtual memory message broadcast across
   18   clusters, through memory mapped interface, with a global control register
   19   space and multiple sets of interface control registers, one per slave
   20   interface.
   21 
   22 properties:
   23   $nodename:
   24     pattern: "^cci(@[0-9a-f]+)?$"
   25 
   26   compatible:
   27     enum:
   28       - arm,cci-400
   29       - arm,cci-500
   30       - arm,cci-550
   31 
   32   reg:
   33     maxItems: 1
   34     description: >
   35       Specifies base physical address of CCI control registers common to all
   36       interfaces.
   37 
   38   "#address-cells": true
   39   "#size-cells": true
   40   ranges: true
   41 
   42 patternProperties:
   43   "^slave-if@[0-9a-f]+$":
   44     type: object
   45 
   46     properties:
   47       compatible:
   48         const: arm,cci-400-ctrl-if
   49 
   50       interface-type:
   51         enum:
   52           - ace
   53           - ace-lite
   54 
   55       reg:
   56         maxItems: 1
   57 
   58     required:
   59       - compatible
   60       - interface-type
   61       - reg
   62 
   63     additionalProperties: false
   64 
   65   "^pmu@[0-9a-f]+$":
   66     type: object
   67 
   68     properties:
   69       compatible:
   70         oneOf:
   71           - const: arm,cci-400-pmu,r0
   72           - const: arm,cci-400-pmu,r1
   73           - const: arm,cci-400-pmu
   74             deprecated: true
   75             description: >
   76               Permitted only where OS has secure access to CCI registers
   77           - const: arm,cci-500-pmu,r0
   78           - const: arm,cci-550-pmu,r0
   79 
   80       interrupts:
   81         minItems: 1
   82         maxItems: 8
   83         description: >
   84           List of counter overflow interrupts, one per counter. The interrupts
   85           must be specified starting with the cycle counter overflow interrupt,
   86           followed by counter0 overflow interrupt, counter1 overflow
   87           interrupt,...  ,counterN overflow interrupt.
   88 
   89           The CCI PMU has an interrupt signal for each counter. The number of
   90           interrupts must be equal to the number of counters.
   91 
   92       reg:
   93         maxItems: 1
   94 
   95     required:
   96       - compatible
   97       - interrupts
   98       - reg
   99 
  100     additionalProperties: false
  101 
  102 required:
  103   - "#address-cells"
  104   - "#size-cells"
  105   - compatible
  106   - ranges
  107   - reg
  108 
  109 additionalProperties: false
  110 
  111 examples:
  112   - |
  113       / {
  114           #address-cells = <2>;
  115           #size-cells = <2>;
  116 
  117           compatible = "arm,vexpress,v2p-ca15_a7", "arm,vexpress";
  118           model = "V2P-CA15_CA7";
  119           arm,hbi = <0x249>;
  120           interrupt-parent = <&gic>;
  121 
  122           gic: interrupt-controller {
  123               interrupt-controller;
  124               #interrupt-cells = <3>;
  125           };
  126 
  127           /*
  128            * This CCI node corresponds to a CCI component whose control
  129            * registers sits at address 0x000000002c090000.
  130            *
  131            * CCI slave interface @0x000000002c091000 is connected to dma
  132            * controller dma0.
  133            *
  134            * CCI slave interface @0x000000002c094000 is connected to CPUs
  135            * {CPU0, CPU1};
  136            *
  137            * CCI slave interface @0x000000002c095000 is connected to CPUs
  138            * {CPU2, CPU3};
  139            */
  140 
  141           cpus {
  142               #size-cells = <0>;
  143               #address-cells = <1>;
  144 
  145               CPU0: cpu@0 {
  146                   device_type = "cpu";
  147                   compatible = "arm,cortex-a15";
  148                   cci-control-port = <&cci_control1>;
  149                   reg = <0x0>;
  150               };
  151 
  152               CPU1: cpu@1 {
  153                   device_type = "cpu";
  154                   compatible = "arm,cortex-a15";
  155                   cci-control-port = <&cci_control1>;
  156                   reg = <0x1>;
  157               };
  158 
  159               CPU2: cpu@100 {
  160                   device_type = "cpu";
  161                   compatible = "arm,cortex-a7";
  162                   cci-control-port = <&cci_control2>;
  163                   reg = <0x100>;
  164               };
  165 
  166               CPU3: cpu@101 {
  167                   device_type = "cpu";
  168                   compatible = "arm,cortex-a7";
  169                   cci-control-port = <&cci_control2>;
  170                   reg = <0x101>;
  171               };
  172           };
  173 
  174           cci@2c090000 {
  175               compatible = "arm,cci-400";
  176               #address-cells = <1>;
  177               #size-cells = <1>;
  178               reg = <0x0 0x2c090000 0 0x1000>;
  179               ranges = <0x0 0x0 0x2c090000 0x10000>;
  180 
  181               cci_control0: slave-if@1000 {
  182                   compatible = "arm,cci-400-ctrl-if";
  183                   interface-type = "ace-lite";
  184                   reg = <0x1000 0x1000>;
  185               };
  186 
  187               cci_control1: slave-if@4000 {
  188                   compatible = "arm,cci-400-ctrl-if";
  189                   interface-type = "ace";
  190                   reg = <0x4000 0x1000>;
  191               };
  192 
  193               cci_control2: slave-if@5000 {
  194                   compatible = "arm,cci-400-ctrl-if";
  195                   interface-type = "ace";
  196                   reg = <0x5000 0x1000>;
  197               };
  198 
  199               pmu@9000 {
  200                   compatible = "arm,cci-400-pmu";
  201                   reg = <0x9000 0x5000>;
  202                   interrupts = <0 101 4>,
  203                     <0 102 4>,
  204                     <0 103 4>,
  205                     <0 104 4>,
  206                     <0 105 4>;
  207               };
  208           };
  209       };
  210 
  211 ...

Cache object: e8c3a6d516e531d628cdf080b309214f


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