1b1d27b48SRoberto Vargas/* 2*04cf04c7SBoyan Karatotev * Copyright (c) 2017-2025, Arm Limited and Contributors. All rights reserved. 3b1d27b48SRoberto Vargas * 4b1d27b48SRoberto Vargas * SPDX-License-Identifier: BSD-3-Clause 5b1d27b48SRoberto Vargas */ 6b1d27b48SRoberto Vargas 769af7fcfSMasahiro Yamada#include <platform_def.h> 869af7fcfSMasahiro Yamada 9b1d27b48SRoberto Vargas#include <arch.h> 10b1d27b48SRoberto Vargas#include <asm_macros.S> 1109d40e0eSAntonio Nino Diaz#include <common/bl_common.h> 12b1d27b48SRoberto Vargas#include <el3_common_macros.S> 13b1d27b48SRoberto Vargas 14b1d27b48SRoberto Vargas .globl bl2_entrypoint 15b1d27b48SRoberto Vargas 16*04cf04c7SBoyan Karatotev#if BL2_IN_XIP_MEM || ENABLE_RME 1769af7fcfSMasahiro Yamada#define FIXUP_SIZE 0 1869af7fcfSMasahiro Yamada#else 1969af7fcfSMasahiro Yamada#define FIXUP_SIZE ((BL2_LIMIT) - (BL2_BASE)) 2069af7fcfSMasahiro Yamada#endif 2169af7fcfSMasahiro Yamada 22b1d27b48SRoberto Vargasfunc bl2_entrypoint 23b1d27b48SRoberto Vargas /* Save arguments x0-x3 from previous Boot loader */ 24b1d27b48SRoberto Vargas mov x20, x0 25b1d27b48SRoberto Vargas mov x21, x1 26b1d27b48SRoberto Vargas mov x22, x2 27b1d27b48SRoberto Vargas mov x23, x3 28b1d27b48SRoberto Vargas 29b1d27b48SRoberto Vargas el3_entrypoint_common \ 30*04cf04c7SBoyan Karatotev _init_sctlr=RESET_TO_BL2 \ 31*04cf04c7SBoyan Karatotev _warm_boot_mailbox=!PROGRAMMABLE_RESET_ADDRESS && RESET_TO_BL2 \ 32*04cf04c7SBoyan Karatotev _secondary_cold_boot=!COLD_BOOT_SINGLE_CPU && RESET_TO_BL2 \ 33*04cf04c7SBoyan Karatotev _init_memory=RESET_TO_BL2 \ 34b1d27b48SRoberto Vargas _init_c_runtime=1 \ 35da90359bSManish Pandey _exception_vectors=bl2_el3_exceptions \ 3669af7fcfSMasahiro Yamada _pie_fixup_size=FIXUP_SIZE 37b1d27b48SRoberto Vargas 38dcbfa11bSAntonio Nino Diaz /* --------------------------------------------- 39b1d27b48SRoberto Vargas * Restore parameters of boot rom 40dcbfa11bSAntonio Nino Diaz * --------------------------------------------- 41b1d27b48SRoberto Vargas */ 42b1d27b48SRoberto Vargas mov x0, x20 43b1d27b48SRoberto Vargas mov x1, x21 44b1d27b48SRoberto Vargas mov x2, x22 45b1d27b48SRoberto Vargas mov x3, x23 46b1d27b48SRoberto Vargas 47dcbfa11bSAntonio Nino Diaz /* --------------------------------------------- 48b1d27b48SRoberto Vargas * Jump to main function. 49b1d27b48SRoberto Vargas * --------------------------------------------- 50b1d27b48SRoberto Vargas */ 51b1d27b48SRoberto Vargas bl bl2_main 52b1d27b48SRoberto Vargas 53b1d27b48SRoberto Vargas /* --------------------------------------------- 54b1d27b48SRoberto Vargas * Should never reach this point. 55b1d27b48SRoberto Vargas * --------------------------------------------- 56b1d27b48SRoberto Vargas */ 57b1d27b48SRoberto Vargas no_ret plat_panic_handler 58b1d27b48SRoberto Vargasendfunc bl2_entrypoint 59