162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci#include <stddef.h>
462306a36Sopenharmony_ci#include "stdio.h"
562306a36Sopenharmony_ci#include "types.h"
662306a36Sopenharmony_ci#include "io.h"
762306a36Sopenharmony_ci#include "ops.h"
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciBSS_STACK(8192);
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_civoid platform_init(unsigned long r3, unsigned long r4, unsigned long r5)
1262306a36Sopenharmony_ci{
1362306a36Sopenharmony_ci	unsigned long heapsize = 16*1024*1024 - (unsigned long)_end;
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci	/*
1662306a36Sopenharmony_ci	 * Disable interrupts and turn off MSR_RI, since we'll
1762306a36Sopenharmony_ci	 * shortly be overwriting the interrupt vectors.
1862306a36Sopenharmony_ci	 */
1962306a36Sopenharmony_ci	__asm__ volatile("mtmsrd %0,1" : : "r" (0));
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci	simple_alloc_init(_end, heapsize, 32, 64);
2262306a36Sopenharmony_ci	fdt_init(_dtb_start);
2362306a36Sopenharmony_ci	serial_console_init();
2462306a36Sopenharmony_ci}
25