xref: /arm-trusted-firmware/plat/imx/imx7/common/imx7_helpers.S (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
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