1 | // SPDX-License-Identifier: GPL-2.0-or-later |
2 | |
3 | #include <stddef.h> |
4 | #include "stdio.h" |
5 | #include "types.h" |
6 | #include "io.h" |
7 | #include "ops.h" |
8 | |
9 | BSS_STACK(8192); |
10 | |
11 | void platform_init(unsigned long r3, unsigned long r4, unsigned long r5) |
12 | { |
13 | unsigned long heapsize = 16*1024*1024 - (unsigned long)_end; |
14 | |
15 | /* |
16 | * Disable interrupts and turn off MSR_RI, since we'll |
17 | * shortly be overwriting the interrupt vectors. |
18 | */ |
19 | __asm__ volatile("mtmsrd %0,1" : : "r" (0)); |
20 | |
21 | simple_alloc_init(base: _end, heap_size: heapsize, granularity: 32, max_allocs: 64); |
22 | fdt_init(blob: _dtb_start); |
23 | serial_console_init(); |
24 | } |
25 | |