1*91f16700Schasinglulu/* 2*91f16700Schasinglulu * Copyright (c) 2021, Arm Limited. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu#include <platform_def.h> 8*91f16700Schasinglulu 9*91f16700Schasinglulu#include <arch.h> 10*91f16700Schasinglulu#include <asm_macros.S> 11*91f16700Schasinglulu#include <common/bl_common.h> 12*91f16700Schasinglulu#include <el3_common_macros.S> 13*91f16700Schasinglulu 14*91f16700Schasinglulu .globl bl2_entrypoint 15*91f16700Schasinglulu 16*91f16700Schasinglulu 17*91f16700Schasinglulufunc bl2_entrypoint 18*91f16700Schasinglulu /* Save arguments x0-x3 from previous Boot loader */ 19*91f16700Schasinglulu mov x20, x0 20*91f16700Schasinglulu mov x21, x1 21*91f16700Schasinglulu mov x22, x2 22*91f16700Schasinglulu mov x23, x3 23*91f16700Schasinglulu 24*91f16700Schasinglulu el3_entrypoint_common \ 25*91f16700Schasinglulu _init_sctlr=0 \ 26*91f16700Schasinglulu _warm_boot_mailbox=0 \ 27*91f16700Schasinglulu _secondary_cold_boot=0 \ 28*91f16700Schasinglulu _init_memory=0 \ 29*91f16700Schasinglulu _init_c_runtime=1 \ 30*91f16700Schasinglulu _exception_vectors=bl2_el3_exceptions \ 31*91f16700Schasinglulu _pie_fixup_size=0 32*91f16700Schasinglulu 33*91f16700Schasinglulu /* --------------------------------------------- 34*91f16700Schasinglulu * Restore parameters of boot rom 35*91f16700Schasinglulu * --------------------------------------------- 36*91f16700Schasinglulu */ 37*91f16700Schasinglulu mov x0, x20 38*91f16700Schasinglulu mov x1, x21 39*91f16700Schasinglulu mov x2, x22 40*91f16700Schasinglulu mov x3, x23 41*91f16700Schasinglulu 42*91f16700Schasinglulu /* --------------------------------------------- 43*91f16700Schasinglulu * Perform BL2 setup 44*91f16700Schasinglulu * --------------------------------------------- 45*91f16700Schasinglulu */ 46*91f16700Schasinglulu bl bl2_setup 47*91f16700Schasinglulu 48*91f16700Schasinglulu#if ENABLE_PAUTH 49*91f16700Schasinglulu /* --------------------------------------------- 50*91f16700Schasinglulu * Program APIAKey_EL1 and enable pointer authentication. 51*91f16700Schasinglulu * --------------------------------------------- 52*91f16700Schasinglulu */ 53*91f16700Schasinglulu bl pauth_init_enable_el3 54*91f16700Schasinglulu#endif /* ENABLE_PAUTH */ 55*91f16700Schasinglulu 56*91f16700Schasinglulu /* --------------------------------------------- 57*91f16700Schasinglulu * Jump to main function. 58*91f16700Schasinglulu * --------------------------------------------- 59*91f16700Schasinglulu */ 60*91f16700Schasinglulu bl bl2_main 61*91f16700Schasinglulu 62*91f16700Schasinglulu /* --------------------------------------------- 63*91f16700Schasinglulu * Should never reach this point. 64*91f16700Schasinglulu * --------------------------------------------- 65*91f16700Schasinglulu */ 66*91f16700Schasinglulu no_ret plat_panic_handler 67*91f16700Schasingluluendfunc bl2_entrypoint 68