blob: 760d6c46d9f36823464c3a3af70229ae92f53d52 [file] [log] [blame]
Antonio Nino Diaz7298c1f2018-12-05 00:09:30 +00001/*
2 * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#include <arch.h>
8#include <asm_macros.S>
9#include <assert_macros.S>
10#include <platform_def.h>
11
12 .globl plat_crash_console_flush
13 .globl plat_crash_console_init
14 .globl plat_crash_console_putc
15 .globl platform_mem_init
16 .globl plat_is_my_cpu_primary
17 .globl plat_my_core_pos
18 .globl plat_reset_handler
19 .globl plat_gxbb_calc_core_pos
20
21 /* -----------------------------------------------------
22 * unsigned int plat_my_core_pos(void);
23 * -----------------------------------------------------
24 */
25func plat_my_core_pos
26 mrs x0, mpidr_el1
27 b plat_gxbb_calc_core_pos
28endfunc plat_my_core_pos
29
30 /* -----------------------------------------------------
31 * unsigned int plat_gxbb_calc_core_pos(u_register_t mpidr);
32 * -----------------------------------------------------
33 */
34func plat_gxbb_calc_core_pos
35 and x0, x0, #MPIDR_CPU_MASK
36 ret
37endfunc plat_gxbb_calc_core_pos
38
39 /* -----------------------------------------------------
40 * unsigned int plat_is_my_cpu_primary(void);
41 * -----------------------------------------------------
42 */
43func plat_is_my_cpu_primary
44 mrs x0, mpidr_el1
45 and x0, x0, #(MPIDR_CLUSTER_MASK | MPIDR_CPU_MASK)
46 cmp x0, #GXBB_PRIMARY_CPU
47 cset w0, eq
48 ret
49endfunc plat_is_my_cpu_primary
50
51 /* ---------------------------------------------
52 * void platform_mem_init(void);
53 * ---------------------------------------------
54 */
55func platform_mem_init
56 ret
57endfunc platform_mem_init
58
59 /* ---------------------------------------------
60 * int plat_crash_console_init(void)
61 * ---------------------------------------------
62 */
63func plat_crash_console_init
64 mov_imm x0, GXBB_UART0_AO_BASE
65 mov_imm x1, GXBB_UART0_AO_CLK_IN_HZ
66 mov_imm x2, GXBB_UART_BAUDRATE
67 b console_meson_init
68endfunc plat_crash_console_init
69
70 /* ---------------------------------------------
71 * int plat_crash_console_putc(int c)
72 * Clobber list : x1, x2
73 * ---------------------------------------------
74 */
75func plat_crash_console_putc
76 mov_imm x1, GXBB_UART0_AO_BASE
77 b console_meson_core_putc
78endfunc plat_crash_console_putc
79
80 /* ---------------------------------------------
81 * int plat_crash_console_flush()
82 * Out : return -1 on error else return 0.
83 * Clobber list : x0, x1
84 * ---------------------------------------------
85 */
86func plat_crash_console_flush
87 mov_imm x0, GXBB_UART0_AO_BASE
88 b console_meson_core_flush
89endfunc plat_crash_console_flush
90
91 /* ---------------------------------------------
92 * void plat_reset_handler(void);
93 * ---------------------------------------------
94 */
95func plat_reset_handler
96 ret
97endfunc plat_reset_handler