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