• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2013-2017, 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 <platform_def.h>
10
11	.weak	plat_report_exception
12	.weak	plat_crash_console_init
13	.weak	plat_crash_console_putc
14	.weak	plat_crash_console_flush
15	.weak	plat_reset_handler
16	.weak	plat_disable_acp
17	.weak	bl1_plat_prepare_exit
18	.weak	plat_error_handler
19	.weak	plat_panic_handler
20	.weak	bl2_plat_preload_setup
21	.weak	plat_try_next_boot_source
22
23#if !ENABLE_PLAT_COMPAT
24	.globl	platform_get_core_pos
25
26#define MPIDR_RES_BIT_MASK	0xff000000
27
28	/* ------------------------------------------------------------------
29	 *  int platform_get_core_pos(int mpidr)
30	 *  Returns the CPU index of the CPU specified by mpidr. This is
31	 *  defined when platform compatibility is disabled to enable Trusted
32	 *  Firmware components like SPD using the old  platform API to work.
33	 *  This API is deprecated and it assumes that the mpidr specified is
34	 *  that of a valid and present CPU. Instead, plat_my_core_pos()
35	 *  should be used for CPU index of the current CPU and
36	 *  plat_core_pos_by_mpidr() should be used for CPU index of a
37	 *  CPU specified by its mpidr.
38	 * ------------------------------------------------------------------
39	 */
40func_deprecated platform_get_core_pos
41	bic	x0, x0, #MPIDR_RES_BIT_MASK
42	mrs	x1, mpidr_el1
43	bic	x1, x1, #MPIDR_RES_BIT_MASK
44	cmp	x0, x1
45	beq	plat_my_core_pos
46	b	platform_core_pos_helper
47endfunc_deprecated platform_get_core_pos
48#endif
49
50	/* -----------------------------------------------------
51	 * Placeholder function which should be redefined by
52	 * each platform.
53	 * -----------------------------------------------------
54	 */
55func plat_report_exception
56	ret
57endfunc plat_report_exception
58
59	/* -----------------------------------------------------
60	 * Placeholder function which should be redefined by
61	 * each platform.
62	 * -----------------------------------------------------
63	 */
64func plat_crash_console_init
65	mov	x0, #0
66	ret
67endfunc plat_crash_console_init
68
69	/* -----------------------------------------------------
70	 * Placeholder function which should be redefined by
71	 * each platform.
72	 * -----------------------------------------------------
73	 */
74func plat_crash_console_putc
75	ret
76endfunc plat_crash_console_putc
77
78	/* -----------------------------------------------------
79	 * Placeholder function which should be redefined by
80	 * each platform.
81	 * -----------------------------------------------------
82	 */
83func plat_crash_console_flush
84	ret
85endfunc plat_crash_console_flush
86
87	/* -----------------------------------------------------
88	 * Placeholder function which should be redefined by
89	 * each platform. This function should preserve x19 - x29.
90	 * -----------------------------------------------------
91	 */
92func plat_reset_handler
93	ret
94endfunc plat_reset_handler
95
96	/* -----------------------------------------------------
97	 * Placeholder function which should be redefined by
98	 * each platform. This function is allowed to use
99	 * registers x0 - x17.
100	 * -----------------------------------------------------
101	 */
102func plat_disable_acp
103	ret
104endfunc plat_disable_acp
105
106	/* -----------------------------------------------------
107	 * void bl1_plat_prepare_exit(entry_point_info_t *ep_info);
108	 * Called before exiting BL1. Default: do nothing
109	 * -----------------------------------------------------
110	 */
111func bl1_plat_prepare_exit
112	ret
113endfunc bl1_plat_prepare_exit
114
115	/* -----------------------------------------------------
116	 * void plat_error_handler(int err) __dead2;
117	 * Endless loop by default.
118	 * -----------------------------------------------------
119	 */
120func plat_error_handler
121	wfi
122	b	plat_error_handler
123endfunc plat_error_handler
124
125	/* -----------------------------------------------------
126	 * void plat_panic_handler(void) __dead2;
127	 * Endless loop by default.
128	 * -----------------------------------------------------
129	 */
130func plat_panic_handler
131	wfi
132	b	plat_panic_handler
133endfunc plat_panic_handler
134
135	/* -----------------------------------------------------
136	 * Placeholder function which should be redefined by
137	 * each platfrom.
138	 * -----------------------------------------------------
139	 */
140func bl2_plat_preload_setup
141	ret
142endfunc bl2_plat_preload_setup
143
144	/* -----------------------------------------------------
145	 * Placeholder function which should be redefined by
146	 * each platfrom.
147	 * -----------------------------------------------------
148	 */
149func plat_try_next_boot_source
150	mov	x0, #0
151	ret
152endfunc plat_try_next_boot_source
153