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