xref: /arm-trusted-firmware/plat/allwinner/common/plat_helpers.S (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu/*
2*91f16700Schasinglulu * Copyright (c) 2017-2018, ARM 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 <sunxi_def.h>
10*91f16700Schasinglulu#include <sunxi_mmap.h>
11*91f16700Schasinglulu
12*91f16700Schasinglulu	.globl	plat_crash_console_init
13*91f16700Schasinglulu	.globl	plat_crash_console_putc
14*91f16700Schasinglulu	.globl	plat_crash_console_flush
15*91f16700Schasinglulu	.globl	plat_my_core_pos
16*91f16700Schasinglulu	.globl	platform_mem_init
17*91f16700Schasinglulu	.globl	plat_report_exception
18*91f16700Schasinglulu
19*91f16700Schasinglulufunc plat_crash_console_init
20*91f16700Schasinglulu	mov_imm x0, SUNXI_UART0_BASE
21*91f16700Schasinglulu	mov_imm x1, SUNXI_UART0_CLK_IN_HZ
22*91f16700Schasinglulu	mov_imm x2, SUNXI_UART0_BAUDRATE
23*91f16700Schasinglulu	b	console_16550_core_init
24*91f16700Schasingluluendfunc plat_crash_console_init
25*91f16700Schasinglulu
26*91f16700Schasinglulufunc plat_crash_console_putc
27*91f16700Schasinglulu	mov_imm x1, SUNXI_UART0_BASE
28*91f16700Schasinglulu	b	console_16550_core_putc
29*91f16700Schasingluluendfunc plat_crash_console_putc
30*91f16700Schasinglulu
31*91f16700Schasinglulufunc plat_crash_console_flush
32*91f16700Schasinglulu	ret
33*91f16700Schasingluluendfunc plat_crash_console_flush
34*91f16700Schasinglulu
35*91f16700Schasinglulufunc plat_my_core_pos
36*91f16700Schasinglulu	mrs	x0, mpidr_el1
37*91f16700Schasinglulu	and	x1, x0, #MPIDR_CLUSTER_MASK
38*91f16700Schasinglulu	and	x0, x0, #MPIDR_CPU_MASK
39*91f16700Schasinglulu	add	x0, x0, x1, LSR #6
40*91f16700Schasinglulu	ret
41*91f16700Schasingluluendfunc plat_my_core_pos
42*91f16700Schasinglulu
43*91f16700Schasinglulufunc platform_mem_init
44*91f16700Schasinglulu	ret
45*91f16700Schasingluluendfunc platform_mem_init
46*91f16700Schasinglulu
47*91f16700Schasinglulufunc plat_report_exception
48*91f16700Schasinglulu	ret
49*91f16700Schasingluluendfunc plat_report_exception
50