xref: /rk3399_ARM-atf/plat/common/aarch32/platform_helpers.S (revision ceada2b57e9706cca0a6faedbcc0f000200eb6f6)
1877cf3ffSSoby Mathew/*
2801cf93cSAntonio Nino Diaz * Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved.
3877cf3ffSSoby Mathew *
482cb2c1aSdp-arm * SPDX-License-Identifier: BSD-3-Clause
5877cf3ffSSoby Mathew */
6877cf3ffSSoby Mathew
7877cf3ffSSoby Mathew#include <arch.h>
8877cf3ffSSoby Mathew#include <asm_macros.S>
9877cf3ffSSoby Mathew
10*ceada2b5SEtienne Carriere	.weak	plat_report_exception
11801cf93cSAntonio Nino Diaz	.weak	plat_crash_console_init
12801cf93cSAntonio Nino Diaz	.weak	plat_crash_console_putc
13801cf93cSAntonio Nino Diaz	.weak	plat_crash_console_flush
14877cf3ffSSoby Mathew	.weak	plat_reset_handler
151a0a3f06SYatharth Kochar	.weak	plat_disable_acp
16*ceada2b5SEtienne Carriere	.weak	bl1_plat_prepare_exit
17877cf3ffSSoby Mathew	.weak	platform_mem_init
18*ceada2b5SEtienne Carriere	.weak	plat_error_handler
19877cf3ffSSoby Mathew	.weak	plat_panic_handler
2001f62b6dSRoberto Vargas	.weak	bl2_plat_preload_setup
2101f62b6dSRoberto Vargas	.weak	plat_try_next_boot_source
22877cf3ffSSoby Mathew
23877cf3ffSSoby Mathew	/* -----------------------------------------------------
24877cf3ffSSoby Mathew	 * Placeholder function which should be redefined by
25877cf3ffSSoby Mathew	 * each platform.
26877cf3ffSSoby Mathew	 * -----------------------------------------------------
27877cf3ffSSoby Mathew	 */
28*ceada2b5SEtienne Carrierefunc plat_report_exception
29*ceada2b5SEtienne Carriere	bx	lr
30*ceada2b5SEtienne Carriereendfunc plat_report_exception
31*ceada2b5SEtienne Carriere
32*ceada2b5SEtienne Carriere	/* -----------------------------------------------------
33*ceada2b5SEtienne Carriere	 * Placeholder function which should be redefined by
34*ceada2b5SEtienne Carriere	 * each platform.
35*ceada2b5SEtienne Carriere	 * -----------------------------------------------------
36*ceada2b5SEtienne Carriere	 */
37801cf93cSAntonio Nino Diazfunc plat_crash_console_init
38801cf93cSAntonio Nino Diaz	mov	r0, #0
39801cf93cSAntonio Nino Diaz	bx	lr
40801cf93cSAntonio Nino Diazendfunc plat_crash_console_init
41801cf93cSAntonio Nino Diaz
42801cf93cSAntonio Nino Diaz	/* -----------------------------------------------------
43801cf93cSAntonio Nino Diaz	 * Placeholder function which should be redefined by
44801cf93cSAntonio Nino Diaz	 * each platform.
45801cf93cSAntonio Nino Diaz	 * -----------------------------------------------------
46801cf93cSAntonio Nino Diaz	 */
47801cf93cSAntonio Nino Diazfunc plat_crash_console_putc
48801cf93cSAntonio Nino Diaz	bx	lr
49801cf93cSAntonio Nino Diazendfunc plat_crash_console_putc
50801cf93cSAntonio Nino Diaz
51801cf93cSAntonio Nino Diaz	/* -----------------------------------------------------
52801cf93cSAntonio Nino Diaz	 * Placeholder function which should be redefined by
53801cf93cSAntonio Nino Diaz	 * each platform.
54801cf93cSAntonio Nino Diaz	 * -----------------------------------------------------
55801cf93cSAntonio Nino Diaz	 */
56801cf93cSAntonio Nino Diazfunc plat_crash_console_flush
57801cf93cSAntonio Nino Diaz	mov	r0, #0
58801cf93cSAntonio Nino Diaz	bx	lr
59801cf93cSAntonio Nino Diazendfunc plat_crash_console_flush
60801cf93cSAntonio Nino Diaz
61801cf93cSAntonio Nino Diaz	/* -----------------------------------------------------
62801cf93cSAntonio Nino Diaz	 * Placeholder function which should be redefined by
63801cf93cSAntonio Nino Diaz	 * each platform.
64801cf93cSAntonio Nino Diaz	 * -----------------------------------------------------
65801cf93cSAntonio Nino Diaz	 */
66877cf3ffSSoby Mathewfunc plat_reset_handler
67877cf3ffSSoby Mathew	bx	lr
68877cf3ffSSoby Mathewendfunc plat_reset_handler
69877cf3ffSSoby Mathew
701a0a3f06SYatharth Kochar	/* -----------------------------------------------------
711a0a3f06SYatharth Kochar	 * Placeholder function which should be redefined by
721a0a3f06SYatharth Kochar	 * each platform.
731a0a3f06SYatharth Kochar	 * -----------------------------------------------------
741a0a3f06SYatharth Kochar	 */
751a0a3f06SYatharth Kocharfunc plat_disable_acp
761a0a3f06SYatharth Kochar	bx	lr
771a0a3f06SYatharth Kocharendfunc plat_disable_acp
781a0a3f06SYatharth Kochar
79877cf3ffSSoby Mathew	/* ---------------------------------------------------------------------
80877cf3ffSSoby Mathew	 * Placeholder function which should be redefined by
81877cf3ffSSoby Mathew	 * each platform.
82877cf3ffSSoby Mathew	 * ---------------------------------------------------------------------
83877cf3ffSSoby Mathew	 */
84877cf3ffSSoby Mathewfunc platform_mem_init
85877cf3ffSSoby Mathew	bx	lr
86877cf3ffSSoby Mathewendfunc platform_mem_init
87877cf3ffSSoby Mathew
88877cf3ffSSoby Mathew	/* -----------------------------------------------------
89*ceada2b5SEtienne Carriere	 * void bl1_plat_prepare_exit(entry_point_info_t *ep_info);
90*ceada2b5SEtienne Carriere	 * Called before exiting BL1. Default: do nothing
91*ceada2b5SEtienne Carriere	 * -----------------------------------------------------
92*ceada2b5SEtienne Carriere	 */
93*ceada2b5SEtienne Carrierefunc bl1_plat_prepare_exit
94*ceada2b5SEtienne Carriere	bx	lr
95*ceada2b5SEtienne Carriereendfunc bl1_plat_prepare_exit
96*ceada2b5SEtienne Carriere
97*ceada2b5SEtienne Carriere	/* -----------------------------------------------------
98*ceada2b5SEtienne Carriere	 * void plat_error_handler(int err) __dead2;
99*ceada2b5SEtienne Carriere	 * Endless loop by default.
100*ceada2b5SEtienne Carriere	 * -----------------------------------------------------
101*ceada2b5SEtienne Carriere	 */
102*ceada2b5SEtienne Carrierefunc plat_error_handler
103*ceada2b5SEtienne Carriere	wfi
104*ceada2b5SEtienne Carriere	b	plat_error_handler
105*ceada2b5SEtienne Carriereendfunc plat_error_handler
106*ceada2b5SEtienne Carriere
107*ceada2b5SEtienne Carriere	/* -----------------------------------------------------
108877cf3ffSSoby Mathew	 * void plat_panic_handler(void) __dead2;
109877cf3ffSSoby Mathew	 * Endless loop by default.
110877cf3ffSSoby Mathew	 * -----------------------------------------------------
111877cf3ffSSoby Mathew	 */
112877cf3ffSSoby Mathewfunc plat_panic_handler
113877cf3ffSSoby Mathew	b	plat_panic_handler
114877cf3ffSSoby Mathewendfunc plat_panic_handler
11501f62b6dSRoberto Vargas
11601f62b6dSRoberto Vargas
11701f62b6dSRoberto Vargas	/* -----------------------------------------------------
11801f62b6dSRoberto Vargas	 * Placeholder function which should be redefined by
11901f62b6dSRoberto Vargas	 * each platfrom.
12001f62b6dSRoberto Vargas	 * -----------------------------------------------------
12101f62b6dSRoberto Vargas	 */
12201f62b6dSRoberto Vargasfunc bl2_plat_preload_setup
12301f62b6dSRoberto Vargas	bx	lr
12401f62b6dSRoberto Vargasendfunc bl2_plat_preload_setup
12501f62b6dSRoberto Vargas
12601f62b6dSRoberto Vargas	/* -----------------------------------------------------
12701f62b6dSRoberto Vargas	 * Placeholder function which should be redefined by
12801f62b6dSRoberto Vargas	 * each platfrom.
12901f62b6dSRoberto Vargas	 * -----------------------------------------------------
13001f62b6dSRoberto Vargas	 */
13101f62b6dSRoberto Vargasfunc plat_try_next_boot_source
13201f62b6dSRoberto Vargas	mov	r0, #0
13301f62b6dSRoberto Vargas	bx	lr
13401f62b6dSRoberto Vargasendfunc plat_try_next_boot_source
135