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