2 * Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
4 * SPDX-License-Identifier: BSD-3-Clause
8 #include <el3_common_macros.S>
13 /* -----------------------------------------------------
14 * bl1_entrypoint() is the entry point into the trusted
15 * firmware code when a cpu is released from warm or
17 * -----------------------------------------------------
21 /* ---------------------------------------------------------------------
22 * If the reset address is programmable then bl1_entrypoint() is
23 * executed only on the cold boot path. Therefore, we can skip the warm
24 * boot mailbox mechanism.
25 * ---------------------------------------------------------------------
27 el3_entrypoint_common \
29 _warm_boot_mailbox=!PROGRAMMABLE_RESET_ADDRESS \
30 _secondary_cold_boot=!COLD_BOOT_SINGLE_CPU \
33 _exception_vectors=bl1_exceptions
35 /* --------------------------------------------------------------------
37 * --------------------------------------------------------------------
41 /* --------------------------------------------------------------------
42 * Enable pointer authentication
43 * --------------------------------------------------------------------
47 orr x0, x0, #SCTLR_EnIA_BIT
50 #endif /* ENABLE_PAUTH */
52 /* --------------------------------------------------------------------
53 * Initialize platform and jump to our c-entry point
54 * for this type of reset.
55 * --------------------------------------------------------------------
59 /* --------------------------------------------------------------------
60 * Disable pointer authentication before jumping to BL31 or that will
61 * cause an authentication failure during the early platform init.
62 * --------------------------------------------------------------------
66 bic x0, x0, #SCTLR_EnIA_BIT
69 #endif /* ENABLE_PAUTH */
71 /* --------------------------------------------------
72 * Do the transition to next boot image.
73 * --------------------------------------------------
76 endfunc bl1_entrypoint