1*c5937f2dSJun Nie/* 2*c5937f2dSJun Nie * Copyright (c) Linaro 2018-2019 Limited and Contributors. All rights reserved. 3*c5937f2dSJun Nie * 4*c5937f2dSJun Nie * SPDX-License-Identifier: BSD-3-Clause 5*c5937f2dSJun Nie */ 6*c5937f2dSJun Nie 7*c5937f2dSJun Nie#include <arch.h> 8*c5937f2dSJun Nie#include <asm_macros.S> 9*c5937f2dSJun Nie#include <assert_macros.S> 10*c5937f2dSJun Nie#include <platform_def.h> 11*c5937f2dSJun Nie#include <imx_hab.h> 12*c5937f2dSJun Nie 13*c5937f2dSJun Nie .globl platform_mem_init 14*c5937f2dSJun Nie .globl plat_get_my_entrypoint 15*c5937f2dSJun Nie .globl plat_crash_console_init 16*c5937f2dSJun Nie .globl plat_crash_console_putc 17*c5937f2dSJun Nie .globl plat_crash_console_flush 18*c5937f2dSJun Nie .globl plat_panic_handler 19*c5937f2dSJun Nie 20*c5937f2dSJun Nie /* --------------------------------------------- 21*c5937f2dSJun Nie * int plat_mem_init(void) 22*c5937f2dSJun Nie * Function to initialize memory. 23*c5937f2dSJun Nie * The HAB hands off the DDR controller already 24*c5937f2dSJun Nie * setup and ready to use. 25*c5937f2dSJun Nie * Implement the mandatory function as a NOP 26*c5937f2dSJun Nie * --------------------------------------------- 27*c5937f2dSJun Nie */ 28*c5937f2dSJun Niefunc platform_mem_init 29*c5937f2dSJun Nie bx lr 30*c5937f2dSJun Nieendfunc platform_mem_init 31*c5937f2dSJun Nie 32*c5937f2dSJun Niefunc plat_get_my_entrypoint 33*c5937f2dSJun Nie mov r0, #0 34*c5937f2dSJun Nie bx lr 35*c5937f2dSJun Nieendfunc plat_get_my_entrypoint 36*c5937f2dSJun Nie 37*c5937f2dSJun Niefunc plat_crash_console_init 38*c5937f2dSJun Nie mov_imm r0, PLAT_IMX7_BOOT_UART_BASE 39*c5937f2dSJun Nie mov_imm r1, PLAT_IMX7_BOOT_UART_CLK_IN_HZ 40*c5937f2dSJun Nie mov_imm r2, PLAT_IMX7_CONSOLE_BAUDRATE 41*c5937f2dSJun Nie b imx_crash_uart_init 42*c5937f2dSJun Nieendfunc plat_crash_console_init 43*c5937f2dSJun Nie 44*c5937f2dSJun Niefunc plat_crash_console_putc 45*c5937f2dSJun Nie mov_imm r1, PLAT_IMX7_BOOT_UART_BASE 46*c5937f2dSJun Nie b imx_crash_uart_putc 47*c5937f2dSJun Nieendfunc plat_crash_console_putc 48*c5937f2dSJun Nie 49*c5937f2dSJun Niefunc plat_crash_console_flush 50*c5937f2dSJun Nie /* Placeholder */ 51*c5937f2dSJun Nie mov r0, #0 52*c5937f2dSJun Nie bx lr 53*c5937f2dSJun Nieendfunc plat_crash_console_flush 54*c5937f2dSJun Nie 55*c5937f2dSJun Niefunc plat_panic_handler 56*c5937f2dSJun Nie mov r3, #HAB_ROM_VECTOR_TABLE_FAILSAFE 57*c5937f2dSJun Nie ldr r3, [r3, #0] 58*c5937f2dSJun Nie blx r3 59*c5937f2dSJun Nieendfunc plat_panic_handler 60