xref: /arm-trusted-firmware/bl2/aarch32/bl2_el3_entrypoint.S (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
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