aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-10-08 17:40:02 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-10-08 17:40:02 -0400
commitd5935b07da53f74726e2a65dd4281d0f2c70e5d4 (patch)
treeb9c1b63504d65fbd79a2260afedd3d62fedb419c
parentf86dc4b04dd5292cae3708c16ca6e46dbb5c95fa (diff)
parent18ef9fefd3ef73279cd144bdb24cfd2683ff0492 (diff)
Merge tag 'arm64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM64 SoC changes from Arnd Bergmann: "Starting with 3.18, we are merging SoC-specific changes for arm64 through the arm-soc tree, like we have been doing for arm32. This time, there is only one set of changes, adding support for the Cavium "Thunder" Soc family. Since the changes are relatively small, this includes Kconfig, defconfig and DT changes. If all goes well, we will never require adding actual C source code for platform support in arm64, given that the architecture is more clearly defined and we have moved out a lot of the platform specifics into device drivers for arm32 already" * tag 'arm64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: arm64, defconfig: Enable Cavium Thunder SoC in defconfig arm64, thunder: Add Kconfig option for Cavium Thunder SoC Family arm64, thunder: Document devicetree bindings for Cavium Thunder SoC arm64, thunder: Add initial dts for Cavium Thunder SoC
-rw-r--r--Documentation/devicetree/bindings/arm/cavium-thunder.txt10
-rw-r--r--Documentation/devicetree/bindings/arm/cpus.txt1
-rw-r--r--arch/arm64/Kconfig5
-rw-r--r--arch/arm64/boot/dts/Makefile1
-rw-r--r--arch/arm64/boot/dts/thunder-88xx.dts67
-rw-r--r--arch/arm64/boot/dts/thunder-88xx.dtsi401
-rw-r--r--arch/arm64/configs/defconfig1
7 files changed, 486 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/arm/cavium-thunder.txt b/Documentation/devicetree/bindings/arm/cavium-thunder.txt
new file mode 100644
index 000000000000..6f63a5866902
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/cavium-thunder.txt
@@ -0,0 +1,10 @@
1Cavium Thunder platform device tree bindings
2--------------------------------------------
3
4Boards with Cavium's Thunder SoC shall have following properties.
5
6Root Node
7---------
8Required root node properties:
9
10 - compatible = "cavium,thunder-88xx";
diff --git a/Documentation/devicetree/bindings/arm/cpus.txt b/Documentation/devicetree/bindings/arm/cpus.txt
index 6fd0f15e899a..fc446347ab6d 100644
--- a/Documentation/devicetree/bindings/arm/cpus.txt
+++ b/Documentation/devicetree/bindings/arm/cpus.txt
@@ -166,6 +166,7 @@ nodes to be present and contain the properties described below.
166 "arm,cortex-r5" 166 "arm,cortex-r5"
167 "arm,cortex-r7" 167 "arm,cortex-r7"
168 "brcm,brahma-b15" 168 "brcm,brahma-b15"
169 "cavium,thunder"
169 "faraday,fa526" 170 "faraday,fa526"
170 "intel,sa110" 171 "intel,sa110"
171 "intel,sa1100" 172 "intel,sa1100"
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index f0d3a2d85a5b..d0543d90db8d 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -135,6 +135,11 @@ source "kernel/Kconfig.freezer"
135 135
136menu "Platform selection" 136menu "Platform selection"
137 137
138config ARCH_THUNDER
139 bool "Cavium Inc. Thunder SoC Family"
140 help
141 This enables support for Cavium's Thunder Family of SoCs.
142
138config ARCH_VEXPRESS 143config ARCH_VEXPRESS
139 bool "ARMv8 software model (Versatile Express)" 144 bool "ARMv8 software model (Versatile Express)"
140 select ARCH_REQUIRE_GPIOLIB 145 select ARCH_REQUIRE_GPIOLIB
diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile
index c52bdb051f66..f8001a62029c 100644
--- a/arch/arm64/boot/dts/Makefile
+++ b/arch/arm64/boot/dts/Makefile
@@ -1,3 +1,4 @@
1dtb-$(CONFIG_ARCH_THUNDER) += thunder-88xx.dtb
1dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb foundation-v8.dtb 2dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb foundation-v8.dtb
2dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb 3dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb
3 4
diff --git a/arch/arm64/boot/dts/thunder-88xx.dts b/arch/arm64/boot/dts/thunder-88xx.dts
new file mode 100644
index 000000000000..800ba65991f7
--- /dev/null
+++ b/arch/arm64/boot/dts/thunder-88xx.dts
@@ -0,0 +1,67 @@
1/*
2 * Cavium Thunder DTS file - Thunder board description
3 *
4 * Copyright (C) 2014, Cavium Inc.
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This library is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This library is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public
22 * License along with this library; if not, write to the Free
23 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
24 * MA 02110-1301 USA
25 *
26 * Or, alternatively,
27 *
28 * b) Permission is hereby granted, free of charge, to any person
29 * obtaining a copy of this software and associated documentation
30 * files (the "Software"), to deal in the Software without
31 * restriction, including without limitation the rights to use,
32 * copy, modify, merge, publish, distribute, sublicense, and/or
33 * sell copies of the Software, and to permit persons to whom the
34 * Software is furnished to do so, subject to the following
35 * conditions:
36 *
37 * The above copyright notice and this permission notice shall be
38 * included in all copies or substantial portions of the Software.
39 *
40 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
41 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
42 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
43 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
44 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
45 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
46 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
47 * OTHER DEALINGS IN THE SOFTWARE.
48 */
49
50/dts-v1/;
51
52/include/ "thunder-88xx.dtsi"
53
54/ {
55 model = "Cavium ThunderX CN88XX board";
56 compatible = "cavium,thunder-88xx";
57
58 aliases {
59 serial0 = &uaa0;
60 serial1 = &uaa1;
61 };
62
63 memory@00000000 {
64 device_type = "memory";
65 reg = <0x0 0x00000000 0x0 0x80000000>;
66 };
67};
diff --git a/arch/arm64/boot/dts/thunder-88xx.dtsi b/arch/arm64/boot/dts/thunder-88xx.dtsi
new file mode 100644
index 000000000000..d8c0bdc51882
--- /dev/null
+++ b/arch/arm64/boot/dts/thunder-88xx.dtsi
@@ -0,0 +1,401 @@
1/*
2 * Cavium Thunder DTS file - Thunder SoC description
3 *
4 * Copyright (C) 2014, Cavium Inc.
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This library is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This library is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public
22 * License along with this library; if not, write to the Free
23 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
24 * MA 02110-1301 USA
25 *
26 * Or, alternatively,
27 *
28 * b) Permission is hereby granted, free of charge, to any person
29 * obtaining a copy of this software and associated documentation
30 * files (the "Software"), to deal in the Software without
31 * restriction, including without limitation the rights to use,
32 * copy, modify, merge, publish, distribute, sublicense, and/or
33 * sell copies of the Software, and to permit persons to whom the
34 * Software is furnished to do so, subject to the following
35 * conditions:
36 *
37 * The above copyright notice and this permission notice shall be
38 * included in all copies or substantial portions of the Software.
39 *
40 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
41 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
42 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
43 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
44 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
45 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
46 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
47 * OTHER DEALINGS IN THE SOFTWARE.
48 */
49
50/ {
51 compatible = "cavium,thunder-88xx";
52 interrupt-parent = <&gic0>;
53 #address-cells = <2>;
54 #size-cells = <2>;
55
56 psci {
57 compatible = "arm,psci-0.2";
58 method = "smc";
59 };
60
61 cpus {
62 #address-cells = <2>;
63 #size-cells = <0>;
64
65 cpu@000 {
66 device_type = "cpu";
67 compatible = "cavium,thunder", "arm,armv8";
68 reg = <0x0 0x000>;
69 enable-method = "psci";
70 };
71 cpu@001 {
72 device_type = "cpu";
73 compatible = "cavium,thunder", "arm,armv8";
74 reg = <0x0 0x001>;
75 enable-method = "psci";
76 };
77 cpu@002 {
78 device_type = "cpu";
79 compatible = "cavium,thunder", "arm,armv8";
80 reg = <0x0 0x002>;
81 enable-method = "psci";
82 };
83 cpu@003 {
84 device_type = "cpu";
85 compatible = "cavium,thunder", "arm,armv8";
86 reg = <0x0 0x003>;
87 enable-method = "psci";
88 };
89 cpu@004 {
90 device_type = "cpu";
91 compatible = "cavium,thunder", "arm,armv8";
92 reg = <0x0 0x004>;
93 enable-method = "psci";
94 };
95 cpu@005 {
96 device_type = "cpu";
97 compatible = "cavium,thunder", "arm,armv8";
98 reg = <0x0 0x005>;
99 enable-method = "psci";
100 };
101 cpu@006 {
102 device_type = "cpu";
103 compatible = "cavium,thunder", "arm,armv8";
104 reg = <0x0 0x006>;
105 enable-method = "psci";
106 };
107 cpu@007 {
108 device_type = "cpu";
109 compatible = "cavium,thunder", "arm,armv8";
110 reg = <0x0 0x007>;
111 enable-method = "psci";
112 };
113 cpu@008 {
114 device_type = "cpu";
115 compatible = "cavium,thunder", "arm,armv8";
116 reg = <0x0 0x008>;
117 enable-method = "psci";
118 };
119 cpu@009 {
120 device_type = "cpu";
121 compatible = "cavium,thunder", "arm,armv8";
122 reg = <0x0 0x009>;
123 enable-method = "psci";
124 };
125 cpu@00a {
126 device_type = "cpu";
127 compatible = "cavium,thunder", "arm,armv8";
128 reg = <0x0 0x00a>;
129 enable-method = "psci";
130 };
131 cpu@00b {
132 device_type = "cpu";
133 compatible = "cavium,thunder", "arm,armv8";
134 reg = <0x0 0x00b>;
135 enable-method = "psci";
136 };
137 cpu@00c {
138 device_type = "cpu";
139 compatible = "cavium,thunder", "arm,armv8";
140 reg = <0x0 0x00c>;
141 enable-method = "psci";
142 };
143 cpu@00d {
144 device_type = "cpu";
145 compatible = "cavium,thunder", "arm,armv8";
146 reg = <0x0 0x00d>;
147 enable-method = "psci";
148 };
149 cpu@00e {
150 device_type = "cpu";
151 compatible = "cavium,thunder", "arm,armv8";
152 reg = <0x0 0x00e>;
153 enable-method = "psci";
154 };
155 cpu@00f {
156 device_type = "cpu";
157 compatible = "cavium,thunder", "arm,armv8";
158 reg = <0x0 0x00f>;
159 enable-method = "psci";
160 };
161 cpu@100 {
162 device_type = "cpu";
163 compatible = "cavium,thunder", "arm,armv8";
164 reg = <0x0 0x100>;
165 enable-method = "psci";
166 };
167 cpu@101 {
168 device_type = "cpu";
169 compatible = "cavium,thunder", "arm,armv8";
170 reg = <0x0 0x101>;
171 enable-method = "psci";
172 };
173 cpu@102 {
174 device_type = "cpu";
175 compatible = "cavium,thunder", "arm,armv8";
176 reg = <0x0 0x102>;
177 enable-method = "psci";
178 };
179 cpu@103 {
180 device_type = "cpu";
181 compatible = "cavium,thunder", "arm,armv8";
182 reg = <0x0 0x103>;
183 enable-method = "psci";
184 };
185 cpu@104 {
186 device_type = "cpu";
187 compatible = "cavium,thunder", "arm,armv8";
188 reg = <0x0 0x104>;
189 enable-method = "psci";
190 };
191 cpu@105 {
192 device_type = "cpu";
193 compatible = "cavium,thunder", "arm,armv8";
194 reg = <0x0 0x105>;
195 enable-method = "psci";
196 };
197 cpu@106 {
198 device_type = "cpu";
199 compatible = "cavium,thunder", "arm,armv8";
200 reg = <0x0 0x106>;
201 enable-method = "psci";
202 };
203 cpu@107 {
204 device_type = "cpu";
205 compatible = "cavium,thunder", "arm,armv8";
206 reg = <0x0 0x107>;
207 enable-method = "psci";
208 };
209 cpu@108 {
210 device_type = "cpu";
211 compatible = "cavium,thunder", "arm,armv8";
212 reg = <0x0 0x108>;
213 enable-method = "psci";
214 };
215 cpu@109 {
216 device_type = "cpu";
217 compatible = "cavium,thunder", "arm,armv8";
218 reg = <0x0 0x109>;
219 enable-method = "psci";
220 };
221 cpu@10a {
222 device_type = "cpu";
223 compatible = "cavium,thunder", "arm,armv8";
224 reg = <0x0 0x10a>;
225 enable-method = "psci";
226 };
227 cpu@10b {
228 device_type = "cpu";
229 compatible = "cavium,thunder", "arm,armv8";
230 reg = <0x0 0x10b>;
231 enable-method = "psci";
232 };
233 cpu@10c {
234 device_type = "cpu";
235 compatible = "cavium,thunder", "arm,armv8";
236 reg = <0x0 0x10c>;
237 enable-method = "psci";
238 };
239 cpu@10d {
240 device_type = "cpu";
241 compatible = "cavium,thunder", "arm,armv8";
242 reg = <0x0 0x10d>;
243 enable-method = "psci";
244 };
245 cpu@10e {
246 device_type = "cpu";
247 compatible = "cavium,thunder", "arm,armv8";
248 reg = <0x0 0x10e>;
249 enable-method = "psci";
250 };
251 cpu@10f {
252 device_type = "cpu";
253 compatible = "cavium,thunder", "arm,armv8";
254 reg = <0x0 0x10f>;
255 enable-method = "psci";
256 };
257 cpu@200 {
258 device_type = "cpu";
259 compatible = "cavium,thunder", "arm,armv8";
260 reg = <0x0 0x200>;
261 enable-method = "psci";
262 };
263 cpu@201 {
264 device_type = "cpu";
265 compatible = "cavium,thunder", "arm,armv8";
266 reg = <0x0 0x201>;
267 enable-method = "psci";
268 };
269 cpu@202 {
270 device_type = "cpu";
271 compatible = "cavium,thunder", "arm,armv8";
272 reg = <0x0 0x202>;
273 enable-method = "psci";
274 };
275 cpu@203 {
276 device_type = "cpu";
277 compatible = "cavium,thunder", "arm,armv8";
278 reg = <0x0 0x203>;
279 enable-method = "psci";
280 };
281 cpu@204 {
282 device_type = "cpu";
283 compatible = "cavium,thunder", "arm,armv8";
284 reg = <0x0 0x204>;
285 enable-method = "psci";
286 };
287 cpu@205 {
288 device_type = "cpu";
289 compatible = "cavium,thunder", "arm,armv8";
290 reg = <0x0 0x205>;
291 enable-method = "psci";
292 };
293 cpu@206 {
294 device_type = "cpu";
295 compatible = "cavium,thunder", "arm,armv8";
296 reg = <0x0 0x206>;
297 enable-method = "psci";
298 };
299 cpu@207 {
300 device_type = "cpu";
301 compatible = "cavium,thunder", "arm,armv8";
302 reg = <0x0 0x207>;
303 enable-method = "psci";
304 };
305 cpu@208 {
306 device_type = "cpu";
307 compatible = "cavium,thunder", "arm,armv8";
308 reg = <0x0 0x208>;
309 enable-method = "psci";
310 };
311 cpu@209 {
312 device_type = "cpu";
313 compatible = "cavium,thunder", "arm,armv8";
314 reg = <0x0 0x209>;
315 enable-method = "psci";
316 };
317 cpu@20a {
318 device_type = "cpu";
319 compatible = "cavium,thunder", "arm,armv8";
320 reg = <0x0 0x20a>;
321 enable-method = "psci";
322 };
323 cpu@20b {
324 device_type = "cpu";
325 compatible = "cavium,thunder", "arm,armv8";
326 reg = <0x0 0x20b>;
327 enable-method = "psci";
328 };
329 cpu@20c {
330 device_type = "cpu";
331 compatible = "cavium,thunder", "arm,armv8";
332 reg = <0x0 0x20c>;
333 enable-method = "psci";
334 };
335 cpu@20d {
336 device_type = "cpu";
337 compatible = "cavium,thunder", "arm,armv8";
338 reg = <0x0 0x20d>;
339 enable-method = "psci";
340 };
341 cpu@20e {
342 device_type = "cpu";
343 compatible = "cavium,thunder", "arm,armv8";
344 reg = <0x0 0x20e>;
345 enable-method = "psci";
346 };
347 cpu@20f {
348 device_type = "cpu";
349 compatible = "cavium,thunder", "arm,armv8";
350 reg = <0x0 0x20f>;
351 enable-method = "psci";
352 };
353 };
354
355 timer {
356 compatible = "arm,armv8-timer";
357 interrupts = <1 13 0xff01>,
358 <1 14 0xff01>,
359 <1 11 0xff01>,
360 <1 10 0xff01>;
361 };
362
363 soc {
364 compatible = "simple-bus";
365 #address-cells = <2>;
366 #size-cells = <2>;
367 ranges;
368
369 refclk50mhz: refclk50mhz {
370 compatible = "fixed-clock";
371 #clock-cells = <0>;
372 clock-frequency = <50000000>;
373 clock-output-names = "refclk50mhz";
374 };
375
376 gic0: interrupt-controller@8010,00000000 {
377 compatible = "arm,gic-v3";
378 #interrupt-cells = <3>;
379 interrupt-controller;
380 reg = <0x8010 0x00000000 0x0 0x010000>, /* GICD */
381 <0x8010 0x80000000 0x0 0x600000>; /* GICR */
382 interrupts = <1 9 0xf04>;
383 };
384
385 uaa0: serial@87e0,24000000 {
386 compatible = "arm,pl011", "arm,primecell";
387 reg = <0x87e0 0x24000000 0x0 0x1000>;
388 interrupts = <1 21 4>;
389 clocks = <&refclk50mhz>;
390 clock-names = "apb_pclk";
391 };
392
393 uaa1: serial@87e0,25000000 {
394 compatible = "arm,pl011", "arm,primecell";
395 reg = <0x87e0 0x25000000 0x0 0x1000>;
396 interrupts = <1 22 4>;
397 clocks = <&refclk50mhz>;
398 clock-names = "apb_pclk";
399 };
400 };
401};
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index d92ef3c54161..9cd37de9aa8d 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -32,6 +32,7 @@ CONFIG_MODULES=y
32CONFIG_MODULE_UNLOAD=y 32CONFIG_MODULE_UNLOAD=y
33# CONFIG_BLK_DEV_BSG is not set 33# CONFIG_BLK_DEV_BSG is not set
34# CONFIG_IOSCHED_DEADLINE is not set 34# CONFIG_IOSCHED_DEADLINE is not set
35CONFIG_ARCH_THUNDER=y
35CONFIG_ARCH_VEXPRESS=y 36CONFIG_ARCH_VEXPRESS=y
36CONFIG_ARCH_XGENE=y 37CONFIG_ARCH_XGENE=y
37CONFIG_SMP=y 38CONFIG_SMP=y