xref: /rk3399_ARM-atf/plat/imx/imx7/common/imx7_helpers.S (revision df7a906f8803640b23294a4e41ef177a1e6607b3)
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