~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/arm/arm,cci-400.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php