2 * Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved.
4 * SPDX-License-Identifier: BSD-3-Clause
8 #include <desc_image_load.h>
10 #include <platform_def.h>
11 #include <xlat_tables_defs.h>
13 #if (RCAR_BL33_EXECUTION_EL != 0) && (RCAR_BL33_EXECUTION_EL != 1)
17 #if (RCAR_BL33_EXECUTION_EL == 0)
18 #define BL33_MODE MODE_EL1
20 #define BL33_MODE MODE_EL2
23 extern uint64_t fdt_blob
[PAGE_SIZE_4KB
/ sizeof(uint64_t)];
25 static bl_mem_params_node_t bl2_mem_params_descs
[] = {
27 .image_id
= BL31_IMAGE_ID
,
29 SET_STATIC_PARAM_HEAD(ep_info
, PARAM_EP
, VERSION_2
,
30 entry_point_info_t
, SECURE
| EXECUTABLE
| EP_FIRST_EXE
),
31 .ep_info
.spsr
= SPSR_64(MODE_EL3
,
32 MODE_SP_ELX
, DISABLE_ALL_EXCEPTIONS
),
33 .ep_info
.pc
= BL31_BASE
,
36 SET_STATIC_PARAM_HEAD(image_info
, PARAM_EP
, VERSION_2
,
37 image_info_t
, IMAGE_ATTRIB_PLAT_SETUP
),
38 .image_info
.image_max_size
= BL31_LIMIT
- BL31_BASE
,
39 .image_info
.image_base
= BL31_BASE
,
42 .next_handoff_image_id
= BL32_IMAGE_ID
,
44 .next_handoff_image_id
= BL33_IMAGE_ID
,
49 .image_id
= BL32_IMAGE_ID
,
51 SET_STATIC_PARAM_HEAD(ep_info
, PARAM_EP
, VERSION_2
,
52 entry_point_info_t
, SECURE
| EXECUTABLE
),
53 .ep_info
.pc
= BL32_BASE
,
56 SET_STATIC_PARAM_HEAD(image_info
, PARAM_EP
, VERSION_2
,
58 .image_info
.image_max_size
= BL32_LIMIT
- BL32_BASE
,
59 .image_info
.image_base
= BL32_BASE
,
61 .next_handoff_image_id
= BL33_IMAGE_ID
,
65 .image_id
= BL33_IMAGE_ID
,
67 SET_STATIC_PARAM_HEAD(ep_info
, PARAM_EP
, VERSION_2
,
68 entry_point_info_t
, NON_SECURE
| EXECUTABLE
),
69 .ep_info
.spsr
= SPSR_64(BL33_MODE
, MODE_SP_ELX
,
70 DISABLE_ALL_EXCEPTIONS
),
71 .ep_info
.pc
= BL33_BASE
,
73 .ep_info
.args
.arg0
= RCAR_BL33_ARG0
,
75 .ep_info
.args
.arg1
= (uintptr_t)fdt_blob
,
76 SET_STATIC_PARAM_HEAD(image_info
, PARAM_EP
, VERSION_2
,
78 .image_info
.image_max_size
=
79 (uint32_t) (DRAM_LIMIT
- BL33_BASE
),
80 .image_info
.image_base
= BL33_BASE
,
82 .next_handoff_image_id
= INVALID_IMAGE_ID
,
86 REGISTER_BL_IMAGE_DESCS(bl2_mem_params_descs
)