1ARM Integrator/AP (Application Platform) and Integrator/CP (Compact Platform)
2-----------------------------------------------------------------------------
3ARM's oldest Linux-supported platform with connectors for different core
4tiles of ARMv4, ARMv5 and ARMv6 type.
5
6Required properties (in root node):
7	compatible = "arm,integrator-ap";  /* Application Platform */
8	compatible = "arm,integrator-cp";  /* Compact Platform */
9
10FPGA type interrupt controllers, see the versatile-fpga-irq binding doc.
11
12Required nodes:
13
14- core-module: the root node to the Integrator platforms must have
15  a core-module with regs and the compatible string
16  "arm,core-module-integrator"
17- external-bus-interface: the root node to the Integrator platforms
18  must have an external bus interface with regs and the
19  compatible-string "arm,external-bus-interface"
20
21  Required properties for the core module:
22  - regs: the location and size of the core module registers, one
23    range of 0x200 bytes.
24
25- syscon: the root node of the Integrator platforms must have a
26  system controller node pointing to the control registers,
27  with the compatible string
28  "arm,integrator-ap-syscon"
29  "arm,integrator-cp-syscon"
30  respectively.
31
32  Required properties for the system controller:
33  - regs: the location and size of the system controller registers,
34    one range of 0x100 bytes.
35
36  Required properties for the AP system controller:
37  - interrupts: the AP syscon node must include the logical module
38    interrupts, stated in order of module instance <module 0>,
39    <module 1>, <module 2> ... for the CP system controller this
40    is not required not of any use.
41
42/dts-v1/;
43/include/ "integrator.dtsi"
44
45/ {
46	model = "ARM Integrator/AP";
47	compatible = "arm,integrator-ap";
48
49	core-module@10000000 {
50		compatible = "arm,core-module-integrator";
51		reg = <0x10000000 0x200>;
52	};
53
54	ebi@12000000 {
55		compatible = "arm,external-bus-interface";
56		reg = <0x12000000 0x100>;
57	};
58
59	syscon {
60		compatible = "arm,integrator-ap-syscon";
61		reg = <0x11000000 0x100>;
62		interrupt-parent = <&pic>;
63		/* These are the logic module IRQs */
64		interrupts = <9>, <10>, <11>, <12>;
65	};
66};
67
68
69ARM Versatile Application and Platform Baseboards
70-------------------------------------------------
71ARM's development hardware platform with connectors for customizable
72core tiles.  The hardware configuration of the Versatile boards is
73highly customizable.
74
75Required properties (in root node):
76	compatible = "arm,versatile-ab";  /* Application baseboard */
77	compatible = "arm,versatile-pb";  /* Platform baseboard */
78
79Interrupt controllers:
80- VIC required properties:
81	compatible = "arm,versatile-vic";
82	interrupt-controller;
83	#interrupt-cells = <1>;
84
85- SIC required properties:
86	compatible = "arm,versatile-sic";
87	interrupt-controller;
88	#interrupt-cells = <1>;
89
90Required nodes:
91
92- core-module: the root node to the Versatile platforms must have
93  a core-module with regs and the compatible strings
94  "arm,core-module-versatile", "syscon"
95
96Optional nodes:
97
98- arm,versatile-ib2-syscon : if the Versatile has an IB2 interface
99  board mounted, this has a separate system controller that is
100  defined in this node.
101  Required properties:
102  compatible = "arm,versatile-ib2-syscon", "syscon"
103
104ARM RealView Boards
105-------------------
106The RealView boards cover tailored evaluation boards that are used to explore
107the ARM11 and Cortex A-8 and Cortex A-9 processors.
108
109Required properties (in root node):
110	/* RealView Emulation Baseboard */
111	compatible = "arm,realview-eb";
112	 /* RealView Platform Baseboard for ARM1176JZF-S */
113	compatible = "arm,realview-pb1176";
114	/* RealView Platform Baseboard for ARM11 MPCore */
115	compatible = "arm,realview-pb11mp";
116	/* RealView Platform Baseboard for Cortex A-8 */
117	compatible = "arm,realview-pba8";
118	/* RealView Platform Baseboard Explore for Cortex A-9 */
119	compatible = "arm,realview-pbx";
120
121Required nodes:
122
123- soc: some node of the RealView platforms must be the SoC
124  node that contain the SoC-specific devices, withe the compatible
125  string set to one of these tuples:
126   "arm,realview-eb-soc", "simple-bus"
127   "arm,realview-pb1176-soc", "simple-bus"
128   "arm,realview-pb11mp-soc", "simple-bus"
129   "arm,realview-pba8-soc", "simple-bus"
130   "arm,realview-pbx-soc", "simple-bus"
131
132- syscon: some subnode of the RealView SoC node must be a
133  system controller node pointing to the control registers,
134  with the compatible string set to one of these:
135   "arm,realview-eb11mp-revb-syscon", "arm,realview-eb-syscon", "syscon"
136   "arm,realview-eb11mp-revc-syscon", "arm,realview-eb-syscon", "syscon"
137   "arm,realview-eb-syscon", "syscon"
138   "arm,realview-pb1176-syscon", "syscon"
139   "arm,realview-pb11mp-syscon", "syscon"
140   "arm,realview-pba8-syscon", "syscon"
141   "arm,realview-pbx-syscon", "syscon"
142
143  Required properties for the system controller:
144  - regs: the location and size of the system controller registers,
145    one range of 0x1000 bytes.
146
147Example:
148
149/dts-v1/;
150#include <dt-bindings/interrupt-controller/irq.h>
151
152/ {
153	model = "ARM RealView PB1176 with device tree";
154	compatible = "arm,realview-pb1176";
155	#address-cells = <1>;
156	#size-cells = <1>;
157
158	soc {
159		#address-cells = <1>;
160		#size-cells = <1>;
161		compatible = "arm,realview-pb1176-soc", "simple-bus";
162		ranges;
163
164		syscon: syscon@10000000 {
165			compatible = "arm,realview-syscon", "syscon";
166			reg = <0x10000000 0x1000>;
167		};
168
169	};
170};
171
172ARM Versatile Express Boards
173-----------------------------
174For details on the device tree bindings for ARM Versatile Express boards
175please consult the vexpress.txt file in the same directory as this file.
176
177ARM Juno Boards
178----------------
179The Juno boards are targeting development for AArch64 systems. The first
180iteration, Juno r0, is a vehicle for evaluating big.LITTLE on AArch64,
181with the second iteration, Juno r1, mainly aimed at development of PCIe
182based systems. Juno r1 also has support for AXI masters placed on the TLX
183connectors to join the coherency domain.
184
185Juno boards are described in a similar way to ARM Versatile Express boards,
186with the motherboard part of the hardware being described in a separate file
187to highlight the fact that is part of the support infrastructure for the SoC.
188Juno device tree bindings also share the Versatile Express bindings as
189described under the RS1 memory mapping.
190
191Required properties (in root node):
192	compatible = "arm,juno";	/* For Juno r0 board */
193	compatible = "arm,juno-r1";	/* For Juno r1 board */
194	compatible = "arm,juno-r2";	/* For Juno r2 board */
195
196Required nodes:
197The description for the board must include:
198   - a "psci" node describing the boot method used for the secondary CPUs.
199     A detailed description of the bindings used for "psci" nodes is present
200     in the psci.yaml file.
201   - a "cpus" node describing the available cores and their associated
202     "enable-method"s. For more details see cpus.yaml file.
203
204Example:
205
206/dts-v1/;
207/ {
208	model = "ARM Juno development board (r0)";
209	compatible = "arm,juno", "arm,vexpress";
210	interrupt-parent = <&gic>;
211	#address-cells = <2>;
212	#size-cells = <2>;
213
214	cpus {
215		#address-cells = <2>;
216		#size-cells = <0>;
217
218		A57_0: cpu@0 {
219			compatible = "arm,cortex-a57";
220			reg = <0x0 0x0>;
221			device_type = "cpu";
222			enable-method = "psci";
223		};
224
225		.....
226
227		A53_0: cpu@100 {
228			compatible = "arm,cortex-a53";
229			reg = <0x0 0x100>;
230			device_type = "cpu";
231			enable-method = "psci";
232		};
233
234		.....
235	};
236
237};
238