123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- /*
- * Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- #include <arch.h>
- #include <asm_macros.S>
- #include <drivers/console.h>
- #include <platform_def.h>
- .weak plat_report_exception
- .weak plat_reset_handler
- .weak plat_disable_acp
- .weak bl1_plat_prepare_exit
- .weak plat_panic_handler
- .weak bl31_plat_enable_mmu
- .weak bl32_plat_enable_mmu
- .weak plat_handle_uncontainable_ea
- .weak plat_handle_double_fault
- .weak plat_handle_el3_ea
- #define MPIDR_RES_BIT_MASK 0xff000000
- /* -----------------------------------------------------
- * Placeholder function which should be redefined by
- * each platform.
- * -----------------------------------------------------
- */
- func plat_report_exception
- ret
- endfunc plat_report_exception
- /* -----------------------------------------------------
- * Placeholder function which should be redefined by
- * each platform. This function should preserve x19 - x29.
- * -----------------------------------------------------
- */
- func plat_reset_handler
- ret
- endfunc plat_reset_handler
- /* -----------------------------------------------------
- * Placeholder function which should be redefined by
- * each platform. This function is allowed to use
- * registers x0 - x17.
- * -----------------------------------------------------
- */
- func plat_disable_acp
- ret
- endfunc plat_disable_acp
- /* -----------------------------------------------------
- * void bl1_plat_prepare_exit(entry_point_info_t *ep_info);
- * Called before exiting BL1. Default: do nothing
- * -----------------------------------------------------
- */
- func bl1_plat_prepare_exit
- ret
- endfunc bl1_plat_prepare_exit
- /* -----------------------------------------------------
- * void plat_panic_handler(void) __dead2;
- * Endless loop by default.
- * -----------------------------------------------------
- */
- func plat_panic_handler
- wfi
- b plat_panic_handler
- endfunc plat_panic_handler
- /* -----------------------------------------------------
- * void bl31_plat_enable_mmu(uint32_t flags);
- *
- * Enable MMU in BL31.
- * -----------------------------------------------------
- */
- func bl31_plat_enable_mmu
- b enable_mmu_direct_el3
- endfunc bl31_plat_enable_mmu
- /* -----------------------------------------------------
- * void bl32_plat_enable_mmu(uint32_t flags);
- *
- * Enable MMU in BL32.
- * -----------------------------------------------------
- */
- func bl32_plat_enable_mmu
- b enable_mmu_direct_el1
- endfunc bl32_plat_enable_mmu
- /* -----------------------------------------------------
- * Platform handler for Uncontainable External Abort.
- *
- * x0: EA reason
- * x1: EA syndrome
- * -----------------------------------------------------
- */
- func plat_handle_uncontainable_ea
- b report_unhandled_exception
- endfunc plat_handle_uncontainable_ea
- /* -----------------------------------------------------
- * Platform handler for Double Fault.
- *
- * x0: EA reason
- * x1: EA syndrome
- * -----------------------------------------------------
- */
- func plat_handle_double_fault
- b report_unhandled_exception
- endfunc plat_handle_double_fault
- /* -----------------------------------------------------
- * Platform handler for EL3 External Abort.
- * -----------------------------------------------------
- */
- func plat_handle_el3_ea
- b report_unhandled_exception
- endfunc plat_handle_el3_ea
|