1 =======================================================
2 ARM CCI cache coherent interconnect binding description
3 =======================================================
5 ARM multi-cluster systems maintain intra-cluster coherency through a
6 cache coherent interconnect (CCI) that is capable of monitoring bus
7 transactions and manage coherency, TLB invalidations and memory barriers.
9 It allows snooping and distributed virtual memory message broadcast across
10 clusters, through memory mapped interface, with a global control register
11 space and multiple sets of interface control registers, one per slave
14 Bindings for the CCI node follow the ePAPR standard, available from:
16 www.power.org/documentation/epapr-version-1-1/
18 with the addition of the bindings described in this document which are
21 * CCI interconnect node
23 Description: Describes a CCI cache coherent Interconnect component
25 Node name must be "cci".
26 Node's parent must be the root node /, and the address space visible
27 through the CCI interconnect is the same as the one seen from the
28 root node (ie from CPUs perspective as per DT standard).
29 Every CCI node has to define the following properties:
34 Definition: must be set to
39 Value type: <prop-encoded-array>
40 Definition: A standard property. Specifies base physical
41 address of CCI control registers common to all
46 Value type: <prop-encoded-array>
47 Definition: A standard property. Follow rules in the ePAPR for
48 hierarchical bus addressing. CCI interfaces
49 addresses refer to the parent node addressing
50 scheme to declare their register bases.
52 CCI interconnect node can define the following child nodes:
54 - CCI control interface nodes
56 Node name must be "slave-if".
57 Parent node must be CCI interconnect node.
59 A CCI control interface node must contain the following
65 Definition: must be set to
71 Definition: must be set to one of {"ace", "ace-lite"}
72 depending on the interface type the node
77 Value type: <prop-encoded-array>
78 Definition: the base address and size of the
79 corresponding interface programming
82 * CCI interconnect bus masters
84 Description: masters in the device tree connected to a CCI port
85 (inclusive of CPUs and their cpu nodes).
87 A CCI interconnect bus master node must contain the following
93 Definition: a phandle containing the CCI control interface node
94 the master is connected to.
100 #address-cells = <1>;
104 compatible = "arm,cortex-a15";
105 cci-control-port = <&cci_control1>;
111 compatible = "arm,cortex-a15";
112 cci-control-port = <&cci_control1>;
118 compatible = "arm,cortex-a7";
119 cci-control-port = <&cci_control2>;
125 compatible = "arm,cortex-a7";
126 cci-control-port = <&cci_control2>;
133 compatible = "arm,pl330", "arm,primecell";
134 cci-control-port = <&cci_control0>;
135 reg = <0x0 0x3000000 0x0 0x1000>;
139 #dma-requests = <32>;
143 compatible = "arm,cci-400";
144 #address-cells = <1>;
146 reg = <0x0 0x2c090000 0 0x1000>;
147 ranges = <0x0 0x0 0x2c090000 0x6000>;
149 cci_control0: slave-if@1000 {
150 compatible = "arm,cci-400-ctrl-if";
151 interface-type = "ace-lite";
152 reg = <0x1000 0x1000>;
155 cci_control1: slave-if@4000 {
156 compatible = "arm,cci-400-ctrl-if";
157 interface-type = "ace";
158 reg = <0x4000 0x1000>;
161 cci_control2: slave-if@5000 {
162 compatible = "arm,cci-400-ctrl-if";
163 interface-type = "ace";
164 reg = <0x5000 0x1000>;
168 This CCI node corresponds to a CCI component whose control registers sits
169 at address 0x000000002c090000.
170 CCI slave interface @0x000000002c091000 is connected to dma controller dma0.
171 CCI slave interface @0x000000002c094000 is connected to CPUs {CPU0, CPU1};
172 CCI slave interface @0x000000002c095000 is connected to CPUs {CPU2, CPU3};