1/*
2 * Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 */
6
7/ {
8	chosen {
9		seL4,elfloader-devices =
10		    "serial1";
11
12		seL4,kernel-devices =
13		    "serial1",
14		    &{/soc/interrupt-controller@7e00b200},
15		    &{/soc/local_intc@40000000},
16		    &{/timer};
17	};
18
19	memory {
20		/* This is configurable in the Pi's config.txt, but we use 128MiB of RAM by default. */
21		reg = <0x00 0x08000000>;
22	};
23
24	reserved-memory {
25		#address-cells = <0x01>;
26		#size-cells = <0x01>;
27		ranges;
28		/* Keep the first page of physical memory is reserved for the initial
29		 * bootloader (e.g. armstub). It has parked the secondary cores there,
30		 * they spin until they get released. When SMP is enabled, the kernel
31		 * will release them during boot and this memory can be reused.
32		 * However, we still have to ensure the kernel image itself is not
33		 * placed here. In non-SMP configurations, the cores must keep spinning
34		 * forever. Re-using this memory will cause the secondary cores to
35		 * execute whatever content is placed there, which likely makes them
36		 * run amok.
37		 * See also https://leiradel.github.io/2019/01/20/Raspberry-Pi-Stubs.html#armstub8s
38		 */
39		reserved-memory@0{
40			reg = <0x0 0x1000>;
41			no-map;
42		};
43	};
44};
45