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