1*91f16700Schasinglulu/* 2*91f16700Schasinglulu * Copyright (c) 2017-2021, Arm Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu#include <arch.h> 8*91f16700Schasinglulu#include <asm_macros.S> 9*91f16700Schasinglulu#include <common/bl_common.h> 10*91f16700Schasinglulu#include <el3_common_macros.S> 11*91f16700Schasinglulu 12*91f16700Schasinglulu .globl bl2_entrypoint 13*91f16700Schasinglulu 14*91f16700Schasinglulu 15*91f16700Schasinglulufunc bl2_entrypoint 16*91f16700Schasinglulu /* Save arguments x0-x3 from previous Boot loader */ 17*91f16700Schasinglulu mov r9, r0 18*91f16700Schasinglulu mov r10, r1 19*91f16700Schasinglulu mov r11, r2 20*91f16700Schasinglulu mov r12, r3 21*91f16700Schasinglulu 22*91f16700Schasinglulu el3_entrypoint_common \ 23*91f16700Schasinglulu _init_sctlr=1 \ 24*91f16700Schasinglulu _warm_boot_mailbox=!PROGRAMMABLE_RESET_ADDRESS \ 25*91f16700Schasinglulu _secondary_cold_boot=!COLD_BOOT_SINGLE_CPU \ 26*91f16700Schasinglulu _init_memory=1 \ 27*91f16700Schasinglulu _init_c_runtime=1 \ 28*91f16700Schasinglulu _exception_vectors=bl2_vector_table \ 29*91f16700Schasinglulu _pie_fixup_size=0 30*91f16700Schasinglulu 31*91f16700Schasinglulu /* 32*91f16700Schasinglulu * Restore parameters of boot rom 33*91f16700Schasinglulu */ 34*91f16700Schasinglulu mov r0, r9 35*91f16700Schasinglulu mov r1, r10 36*91f16700Schasinglulu mov r2, r11 37*91f16700Schasinglulu mov r3, r12 38*91f16700Schasinglulu 39*91f16700Schasinglulu /* --------------------------------------------- 40*91f16700Schasinglulu * Perform BL2 setup 41*91f16700Schasinglulu * --------------------------------------------- 42*91f16700Schasinglulu */ 43*91f16700Schasinglulu bl bl2_el3_setup 44*91f16700Schasinglulu 45*91f16700Schasinglulu /* --------------------------------------------- 46*91f16700Schasinglulu * Jump to main function. 47*91f16700Schasinglulu * --------------------------------------------- 48*91f16700Schasinglulu */ 49*91f16700Schasinglulu bl bl2_main 50*91f16700Schasinglulu 51*91f16700Schasinglulu /* --------------------------------------------- 52*91f16700Schasinglulu * Should never reach this point. 53*91f16700Schasinglulu * --------------------------------------------- 54*91f16700Schasinglulu */ 55*91f16700Schasinglulu no_ret plat_panic_handler 56*91f16700Schasinglulu 57*91f16700Schasingluluendfunc bl2_entrypoint 58