blob: 59981bc2607d599d1e05af6a430d2bfa38772eb9 [file] [log] [blame]
Olivier Deprezabcac2e2023-01-17 10:27:20 +01001/dts-v1/;
2
3/memreserve/ 0x0000000080000000 0x0000000000010000;
4/ {
5 model = "FVP Base";
6 compatible = "arm,fvp-base\0arm,vexpress";
7 interrupt-parent = <0x01>;
8 #address-cells = <0x02>;
9 #size-cells = <0x02>;
10
11 interrupt-controller@2f000000 {
12 compatible = "arm,gic-v3";
13 #interrupt-cells = <0x03>;
14 #address-cells = <0x01>;
15 #size-cells = <0x01>;
16 ranges = <0x00 0x00 0x2f000000 0x100000>;
17 interrupt-controller;
18 reg = <0x00 0x2f000000 0x00 0x10000 0x00 0x2f100000 0x00 0x200000 0x00 0x2c000000 0x00 0x2000 0x00 0x2c010000 0x00 0x2000 0x00 0x2c02f000 0x00 0x2000>;
19 interrupts = <0x01 0x09 0x04>;
20 phandle = <0x01>;
21
22 msi-controller@2f020000 {
23 compatible = "arm,gic-v3-its";
24 msi-controller;
25 #msi-cells = <0x01>;
26 reg = <0x20000 0x20000>;
27 };
28 };
29
30 clk24mhz {
31 compatible = "fixed-clock";
32 #clock-cells = <0x00>;
33 clock-frequency = <0x16e3600>;
34 clock-output-names = "v2m:clk24mhz";
35 phandle = <0x05>;
36 };
37
38 refclk1mhz {
39 compatible = "fixed-clock";
40 #clock-cells = <0x00>;
41 clock-frequency = <0xf4240>;
42 clock-output-names = "v2m:refclk1mhz";
43 phandle = <0x04>;
44 };
45
46 refclk32khz {
47 compatible = "fixed-clock";
48 #clock-cells = <0x00>;
49 clock-frequency = <0x8000>;
50 clock-output-names = "v2m:refclk32khz";
51 phandle = <0x03>;
52 };
53
54 v2m-3v3 {
55 compatible = "regulator-fixed";
56 regulator-name = "3V3";
57 regulator-min-microvolt = <0x325aa0>;
58 regulator-max-microvolt = <0x325aa0>;
59 regulator-always-on;
60 phandle = <0x07>;
61 };
62
63 mcc {
64 compatible = "arm,vexpress,config-bus";
65 arm,vexpress,config-bridge = <0x02>;
66
67 oscclk1 {
68 compatible = "arm,vexpress-osc";
69 arm,vexpress-sysreg,func = <0x01 0x01>;
70 freq-range = <0x16a6570 0x3c8eee0>;
71 #clock-cells = <0x00>;
72 clock-output-names = "v2m:oscclk1";
73 phandle = <0x08>;
74 };
75
76 reset {
77 compatible = "arm,vexpress-reset";
78 arm,vexpress-sysreg,func = <0x05 0x00>;
79 };
80
81 muxfpga {
82 compatible = "arm,vexpress-muxfpga";
83 arm,vexpress-sysreg,func = <0x07 0x00>;
84 };
85
86 shutdown {
87 compatible = "arm,vexpress-shutdown";
88 arm,vexpress-sysreg,func = <0x08 0x00>;
89 };
90
91 reboot {
92 compatible = "arm,vexpress-reboot";
93 arm,vexpress-sysreg,func = <0x09 0x00>;
94 };
95
96 dvimode {
97 compatible = "arm,vexpress-dvimode";
98 arm,vexpress-sysreg,func = <0x0b 0x00>;
99 };
100 };
101
102 bus@8000000 {
103 compatible = "simple-bus";
104 #address-cells = <0x02>;
105 #size-cells = <0x01>;
106 ranges = <0x00 0x8000000 0x00 0x8000000 0x18000000>;
107 #interrupt-cells = <0x01>;
108 interrupt-map-mask = <0x00 0x00 0x3f>;
109 interrupt-map = <0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01 0x01 0x00 0x00 0x01 0x04 0x00 0x00 0x02 0x01 0x00 0x00 0x02 0x04 0x00 0x00 0x03 0x01 0x00 0x00 0x03 0x04 0x00 0x00 0x04 0x01 0x00 0x00 0x04 0x04 0x00 0x00 0x05 0x01 0x00 0x00 0x05 0x04 0x00 0x00 0x06 0x01 0x00 0x00 0x06 0x04 0x00 0x00 0x07 0x01 0x00 0x00 0x07 0x04 0x00 0x00 0x08 0x01 0x00 0x00 0x08 0x04 0x00 0x00 0x09 0x01 0x00 0x00 0x09 0x04 0x00 0x00 0x0a 0x01 0x00 0x00 0x0a 0x04 0x00 0x00 0x0b 0x01 0x00 0x00 0x0b 0x04 0x00 0x00 0x0c 0x01 0x00 0x00 0x0c 0x04 0x00 0x00 0x0d 0x01 0x00 0x00 0x0d 0x04 0x00 0x00 0x0e 0x01 0x00 0x00 0x0e 0x04 0x00 0x00 0x0f 0x01 0x00 0x00 0x0f 0x04 0x00 0x00 0x10 0x01 0x00 0x00 0x10 0x04 0x00 0x00 0x11 0x01 0x00 0x00 0x11 0x04 0x00 0x00 0x12 0x01 0x00 0x00 0x12 0x04 0x00 0x00 0x13 0x01 0x00 0x00 0x13 0x04 0x00 0x00 0x14 0x01 0x00 0x00 0x14 0x04 0x00 0x00 0x15 0x01 0x00 0x00 0x15 0x04 0x00 0x00 0x16 0x01 0x00 0x00 0x16 0x04 0x00 0x00 0x17 0x01 0x00 0x00 0x17 0x04 0x00 0x00 0x18 0x01 0x00 0x00 0x18 0x04 0x00 0x00 0x19 0x01 0x00 0x00 0x19 0x04 0x00 0x00 0x1a 0x01 0x00 0x00 0x1a 0x04 0x00 0x00 0x1b 0x01 0x00 0x00 0x1b 0x04 0x00 0x00 0x1c 0x01 0x00 0x00 0x1c 0x04 0x00 0x00 0x1d 0x01 0x00 0x00 0x1d 0x04 0x00 0x00 0x1e 0x01 0x00 0x00 0x1e 0x04 0x00 0x00 0x1f 0x01 0x00 0x00 0x1f 0x04 0x00 0x00 0x20 0x01 0x00 0x00 0x20 0x04 0x00 0x00 0x21 0x01 0x00 0x00 0x21 0x04 0x00 0x00 0x22 0x01 0x00 0x00 0x22 0x04 0x00 0x00 0x23 0x01 0x00 0x00 0x23 0x04 0x00 0x00 0x24 0x01 0x00 0x00 0x24 0x04 0x00 0x00 0x25 0x01 0x00 0x00 0x25 0x04 0x00 0x00 0x26 0x01 0x00 0x00 0x26 0x04 0x00 0x00 0x27 0x01 0x00 0x00 0x27 0x04 0x00 0x00 0x28 0x01 0x00 0x00 0x28 0x04 0x00 0x00 0x29 0x01 0x00 0x00 0x29 0x04 0x00 0x00 0x2a 0x01 0x00 0x00 0x2a 0x04>;
110
111 motherboard-bus@8000000 {
112 compatible = "arm,vexpress,v2m-p1\0simple-bus";
113 #address-cells = <0x02>;
114 #size-cells = <0x01>;
115 ranges = <0x00 0x00 0x00 0x8000000 0x4000000 0x01 0x00 0x00 0x14000000 0x4000000 0x02 0x00 0x00 0x18000000 0x4000000 0x03 0x00 0x00 0x1c000000 0x4000000 0x04 0x00 0x00 0xc000000 0x4000000 0x05 0x00 0x00 0x10000000 0x4000000>;
116
117 flash@0 {
118 compatible = "arm,vexpress-flash\0cfi-flash";
119 reg = <0x00 0x00 0x4000000 0x04 0x00 0x4000000>;
120 bank-width = <0x04>;
121 };
122
123 ethernet@202000000 {
124 compatible = "smsc,lan91c111";
125 reg = <0x02 0x2000000 0x10000>;
126 interrupts = <0x0f>;
127 };
128
129 iofpga-bus@300000000 {
130 compatible = "simple-bus";
131 #address-cells = <0x01>;
132 #size-cells = <0x01>;
133 ranges = <0x00 0x03 0x00 0x210000>;
134
135 sysreg@10000 {
136 compatible = "arm,vexpress-sysreg";
137 reg = <0x10000 0x1000>;
138 gpio-controller;
139 #gpio-cells = <0x02>;
140 phandle = <0x02>;
141 };
142
143 sysctl@20000 {
144 compatible = "arm,sp810\0arm,primecell";
145 reg = <0x20000 0x1000>;
146 clocks = <0x03 0x04 0x05>;
147 clock-names = "refclk\0timclk\0apb_pclk";
148 #clock-cells = <0x01>;
149 clock-output-names = "timerclken0\0timerclken1\0timerclken2\0timerclken3";
150 assigned-clocks = <0x06 0x00 0x06 0x01 0x06 0x03 0x06 0x03>;
151 assigned-clock-parents = <0x04 0x04 0x04 0x04>;
152 phandle = <0x06>;
153 };
154
155 aaci@40000 {
156 compatible = "arm,pl041\0arm,primecell";
157 reg = <0x40000 0x1000>;
158 interrupts = <0x0b>;
159 clocks = <0x05>;
160 clock-names = "apb_pclk";
161 };
162
163 mmc@50000 {
164 compatible = "arm,pl180\0arm,primecell";
165 reg = <0x50000 0x1000>;
166 interrupts = <0x09 0x0a>;
167 cd-gpios = <0x02 0x00 0x00>;
168 wp-gpios = <0x02 0x01 0x00>;
169 max-frequency = <0xb71b00>;
170 vmmc-supply = <0x07>;
171 clocks = <0x05 0x05>;
172 clock-names = "mclk\0apb_pclk";
173 };
174
175 kmi@60000 {
176 compatible = "arm,pl050\0arm,primecell";
177 reg = <0x60000 0x1000>;
178 interrupts = <0x0c>;
179 clocks = <0x05 0x05>;
180 clock-names = "KMIREFCLK\0apb_pclk";
181 };
182
183 kmi@70000 {
184 compatible = "arm,pl050\0arm,primecell";
185 reg = <0x70000 0x1000>;
186 interrupts = <0x0d>;
187 clocks = <0x05 0x05>;
188 clock-names = "KMIREFCLK\0apb_pclk";
189 };
190
191 serial@90000 {
192 compatible = "arm,pl011\0arm,primecell";
193 reg = <0x90000 0x1000>;
194 interrupts = <0x05>;
195 clocks = <0x05 0x05>;
196 clock-names = "uartclk\0apb_pclk";
197 };
198
199 serial@a0000 {
200 compatible = "arm,pl011\0arm,primecell";
201 reg = <0xa0000 0x1000>;
202 interrupts = <0x06>;
203 clocks = <0x05 0x05>;
204 clock-names = "uartclk\0apb_pclk";
205 };
206
207 serial@b0000 {
208 compatible = "arm,pl011\0arm,primecell";
209 reg = <0xb0000 0x1000>;
210 interrupts = <0x07>;
211 clocks = <0x05 0x05>;
212 clock-names = "uartclk\0apb_pclk";
213 };
214
215 serial@c0000 {
216 compatible = "arm,pl011\0arm,primecell";
217 reg = <0xc0000 0x1000>;
218 interrupts = <0x08>;
219 clocks = <0x05 0x05>;
220 clock-names = "uartclk\0apb_pclk";
221 };
222
223 watchdog@f0000 {
224 compatible = "arm,sp805\0arm,primecell";
225 reg = <0xf0000 0x1000>;
226 interrupts = <0x00>;
227 clocks = <0x03 0x05>;
228 clock-names = "wdog_clk\0apb_pclk";
229 };
230
231 timer@110000 {
232 compatible = "arm,sp804\0arm,primecell";
233 reg = <0x110000 0x1000>;
234 interrupts = <0x02>;
235 clocks = <0x06 0x00 0x06 0x01 0x05>;
236 clock-names = "timclken1\0timclken2\0apb_pclk";
237 };
238
239 timer@120000 {
240 compatible = "arm,sp804\0arm,primecell";
241 reg = <0x120000 0x1000>;
242 interrupts = <0x03>;
243 clocks = <0x06 0x02 0x06 0x03 0x05>;
244 clock-names = "timclken1\0timclken2\0apb_pclk";
245 };
246
247 virtio@130000 {
248 compatible = "virtio,mmio";
249 reg = <0x130000 0x200>;
250 interrupts = <0x2a>;
251 };
252
253 rtc@170000 {
254 compatible = "arm,pl031\0arm,primecell";
255 reg = <0x170000 0x1000>;
256 interrupts = <0x04>;
257 clocks = <0x05>;
258 clock-names = "apb_pclk";
259 };
260
261 clcd@1f0000 {
262 compatible = "arm,pl111\0arm,primecell";
263 reg = <0x1f0000 0x1000>;
264 interrupt-names = "combined";
265 interrupts = <0x0e>;
266 clocks = <0x08 0x05>;
267 clock-names = "clcdclk\0apb_pclk";
268 memory-region = <0x09>;
269
270 port {
271
272 endpoint {
273 remote-endpoint = <0x0a>;
274 arm,pl11x,tft-r0g0b0-pads = <0x00 0x08 0x10>;
275 phandle = <0x16>;
276 };
277 };
278 };
279 };
280 };
281 };
282
283 chosen {
284 };
285
286 aliases {
287 serial0 = "/bus@8000000/motherboard-bus@8000000/iofpga-bus@300000000/serial@90000";
288 serial1 = "/bus@8000000/motherboard-bus@8000000/iofpga-bus@300000000/serial@a0000";
289 serial2 = "/bus@8000000/motherboard-bus@8000000/iofpga-bus@300000000/serial@b0000";
290 serial3 = "/bus@8000000/motherboard-bus@8000000/iofpga-bus@300000000/serial@c0000";
291 };
292
293 psci {
294 compatible = "arm,psci-1.0\0arm,psci-0.2";
295 method = "smc";
296 max-pwr-lvl = <0x02>;
297 };
298
299 cpus {
300 #address-cells = <0x02>;
301 #size-cells = <0x00>;
302
303 cpu-map {
304
305 cluster0 {
306
307 core0 {
308 cpu = <0x0b>;
309 };
310
311 core1 {
312 cpu = <0x0c>;
313 };
314
315 core2 {
316 cpu = <0x0d>;
317 };
318
319 core3 {
320 cpu = <0x0e>;
321 };
322 };
323
324 cluster1 {
325
326 core0 {
327 cpu = <0x0f>;
328 };
329
330 core1 {
331 cpu = <0x10>;
332 };
333
334 core2 {
335 cpu = <0x11>;
336 };
337
338 core3 {
339 cpu = <0x12>;
340 };
341 };
342 };
343
344 idle-states {
345 entry-method = "psci";
346
347 cpu-sleep-0 {
348 compatible = "arm,idle-state";
349 local-timer-stop;
350 arm,psci-suspend-param = <0x10000>;
351 entry-latency-us = <0x28>;
352 exit-latency-us = <0x64>;
353 min-residency-us = <0x96>;
354 phandle = <0x13>;
355 };
356
357 cluster-sleep-0 {
358 compatible = "arm,idle-state";
359 local-timer-stop;
360 arm,psci-suspend-param = <0x1010000>;
361 entry-latency-us = <0x1f4>;
362 exit-latency-us = <0x3e8>;
363 min-residency-us = <0x9c4>;
364 phandle = <0x14>;
365 };
366 };
367
368 cpu@0 {
369 device_type = "cpu";
370 compatible = "arm,armv8";
371 reg = <0x00 0x00>;
372 enable-method = "psci";
373 cpu-idle-states = <0x13 0x14>;
374 next-level-cache = <0x15>;
375 phandle = <0x0b>;
376 };
377
378 cpu@10300 {
379 device_type = "cpu";
380 compatible = "arm,armv8";
381 reg = <0x00 0x10300>;
382 enable-method = "psci";
383 cpu-idle-states = <0x13 0x14>;
384 next-level-cache = <0x15>;
385 phandle = <0x12>;
386 };
387
388 cpu@10200 {
389 device_type = "cpu";
390 compatible = "arm,armv8";
391 reg = <0x00 0x10200>;
392 enable-method = "psci";
393 cpu-idle-states = <0x13 0x14>;
394 next-level-cache = <0x15>;
395 phandle = <0x11>;
396 };
397
398 cpu@10100 {
399 device_type = "cpu";
400 compatible = "arm,armv8";
401 reg = <0x00 0x10100>;
402 enable-method = "psci";
403 cpu-idle-states = <0x13 0x14>;
404 next-level-cache = <0x15>;
405 phandle = <0x10>;
406 };
407
408 cpu@10000 {
409 device_type = "cpu";
410 compatible = "arm,armv8";
411 reg = <0x00 0x10000>;
412 enable-method = "psci";
413 cpu-idle-states = <0x13 0x14>;
414 next-level-cache = <0x15>;
415 phandle = <0x0f>;
416 };
417
418 cpu@300 {
419 device_type = "cpu";
420 compatible = "arm,armv8";
421 reg = <0x00 0x300>;
422 enable-method = "psci";
423 cpu-idle-states = <0x13 0x14>;
424 next-level-cache = <0x15>;
425 phandle = <0x0e>;
426 };
427
428 cpu@200 {
429 device_type = "cpu";
430 compatible = "arm,armv8";
431 reg = <0x00 0x200>;
432 enable-method = "psci";
433 cpu-idle-states = <0x13 0x14>;
434 next-level-cache = <0x15>;
435 phandle = <0x0d>;
436 };
437
438 cpu@100 {
439 device_type = "cpu";
440 compatible = "arm,armv8";
441 reg = <0x00 0x100>;
442 enable-method = "psci";
443 cpu-idle-states = <0x13 0x14>;
444 next-level-cache = <0x15>;
445 phandle = <0x0c>;
446 };
447
448 l2-cache0 {
449 compatible = "cache";
450 phandle = <0x15>;
451 };
452 };
453
454 memory@80000000 {
455 device_type = "memory";
456 reg = <0x00 0x80000000 0x00 0x7f000000 0x08 0x80000000 0x00 0x80000000>;
457 };
458
459 reserved-memory {
460 #address-cells = <0x02>;
461 #size-cells = <0x02>;
462 ranges;
463
464 vram@18000000 {
465 compatible = "shared-dma-pool";
466 reg = <0x00 0x18000000 0x00 0x800000>;
467 no-map;
468 phandle = <0x09>;
469 };
470 };
471
472 timer {
473 compatible = "arm,armv8-timer";
474 interrupts = <0x01 0x0d 0xff08 0x01 0x0e 0xff08 0x01 0x0b 0xff08 0x01 0x0a 0xff08>;
475 clock-frequency = <0x5f5e100>;
476 };
477
478 timer@2a810000 {
479 compatible = "arm,armv7-timer-mem";
480 reg = <0x00 0x2a810000 0x00 0x10000>;
481 clock-frequency = <0x5f5e100>;
482 #address-cells = <0x01>;
483 #size-cells = <0x01>;
484 ranges = <0x00 0x00 0x2a810000 0x100000>;
485
486 frame@2a830000 {
487 frame-number = <0x01>;
488 interrupts = <0x00 0x1a 0x04>;
489 reg = <0x20000 0x10000>;
490 };
491 };
492
493 pmu {
494 compatible = "arm,armv8-pmuv3";
495 interrupts = <0x00 0x3c 0x04 0x00 0x3d 0x04 0x00 0x3e 0x04 0x00 0x3f 0x04>;
496 };
497
498 panel {
499 compatible = "arm,rtsm-display";
500
501 port {
502
503 endpoint {
504 remote-endpoint = <0x16>;
505 phandle = <0x0a>;
506 };
507 };
508 };
509};