mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 17:44:19 +00:00

Add required code to support FCONF on STM32MP1 platform. The new FW_CONFIG DT file will be inside the FIP, and loaded by BL2. It will be used to configure the addresses where to load other binaries. BL2 should be agnostic of which BL32 is in the FIP (OP-TEE or SP_min), so optee_utils.c is always compiled, and some OP-TEE flags are removed. Change-Id: Id957b49b0117864136250bfc416664f815043ada Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
132 lines
3.8 KiB
C
132 lines
3.8 KiB
C
/*
|
|
* Copyright (c) 2016-2021, ARM Limited and Contributors. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#include <common/bl_common.h>
|
|
#include <common/desc_image_load.h>
|
|
#include <plat/common/platform.h>
|
|
|
|
#include <platform_def.h>
|
|
|
|
/*******************************************************************************
|
|
* Following descriptor provides BL image/ep information that gets used
|
|
* by BL2 to load the images and also subset of this information is
|
|
* passed to next BL image. The image loading sequence is managed by
|
|
* populating the images in required loading order. The image execution
|
|
* sequence is managed by populating the `next_handoff_image_id` with
|
|
* the next executable image id.
|
|
******************************************************************************/
|
|
static bl_mem_params_node_t bl2_mem_params_descs[] = {
|
|
/* Fill FW_CONFIG related information if it exists */
|
|
{
|
|
.image_id = FW_CONFIG_ID,
|
|
SET_STATIC_PARAM_HEAD(ep_info, PARAM_IMAGE_BINARY,
|
|
VERSION_2, entry_point_info_t,
|
|
SECURE | NON_EXECUTABLE),
|
|
SET_STATIC_PARAM_HEAD(image_info, PARAM_IMAGE_BINARY,
|
|
VERSION_2, image_info_t,
|
|
IMAGE_ATTRIB_PLAT_SETUP),
|
|
|
|
.image_info.image_base = STM32MP_FW_CONFIG_BASE,
|
|
.image_info.image_max_size = STM32MP_FW_CONFIG_MAX_SIZE,
|
|
|
|
.next_handoff_image_id = INVALID_IMAGE_ID,
|
|
},
|
|
|
|
/* Fill BL32 related information */
|
|
{
|
|
.image_id = BL32_IMAGE_ID,
|
|
|
|
SET_STATIC_PARAM_HEAD(ep_info, PARAM_EP,
|
|
VERSION_2, entry_point_info_t,
|
|
SECURE | EXECUTABLE | EP_FIRST_EXE),
|
|
|
|
.ep_info.spsr = SPSR_MODE32(MODE32_svc, SPSR_T_ARM,
|
|
SPSR_E_LITTLE,
|
|
DISABLE_ALL_EXCEPTIONS),
|
|
|
|
SET_STATIC_PARAM_HEAD(image_info, PARAM_EP,
|
|
VERSION_2, image_info_t,
|
|
IMAGE_ATTRIB_SKIP_LOADING),
|
|
|
|
.next_handoff_image_id = BL33_IMAGE_ID,
|
|
},
|
|
|
|
/* Fill BL32 external 1 image related information */
|
|
{
|
|
.image_id = BL32_EXTRA1_IMAGE_ID,
|
|
|
|
SET_STATIC_PARAM_HEAD(ep_info, PARAM_EP,
|
|
VERSION_2, entry_point_info_t,
|
|
SECURE | NON_EXECUTABLE),
|
|
|
|
SET_STATIC_PARAM_HEAD(image_info, PARAM_EP,
|
|
VERSION_2, image_info_t,
|
|
IMAGE_ATTRIB_SKIP_LOADING),
|
|
|
|
.next_handoff_image_id = INVALID_IMAGE_ID,
|
|
},
|
|
/* Fill BL32 external 2 image related information */
|
|
{
|
|
.image_id = BL32_EXTRA2_IMAGE_ID,
|
|
|
|
SET_STATIC_PARAM_HEAD(ep_info, PARAM_EP,
|
|
VERSION_2, entry_point_info_t,
|
|
SECURE | NON_EXECUTABLE),
|
|
|
|
SET_STATIC_PARAM_HEAD(image_info, PARAM_EP,
|
|
VERSION_2, image_info_t,
|
|
IMAGE_ATTRIB_SKIP_LOADING),
|
|
|
|
.next_handoff_image_id = INVALID_IMAGE_ID,
|
|
},
|
|
|
|
/* Fill HW_CONFIG related information if it exists */
|
|
{
|
|
.image_id = HW_CONFIG_ID,
|
|
SET_STATIC_PARAM_HEAD(ep_info, PARAM_IMAGE_BINARY,
|
|
VERSION_2, entry_point_info_t,
|
|
NON_SECURE | NON_EXECUTABLE),
|
|
SET_STATIC_PARAM_HEAD(image_info, PARAM_IMAGE_BINARY,
|
|
VERSION_2, image_info_t,
|
|
IMAGE_ATTRIB_SKIP_LOADING),
|
|
|
|
.next_handoff_image_id = INVALID_IMAGE_ID,
|
|
},
|
|
|
|
/* Fill TOS_FW_CONFIG related information if it exists */
|
|
{
|
|
.image_id = TOS_FW_CONFIG_ID,
|
|
SET_STATIC_PARAM_HEAD(ep_info, PARAM_IMAGE_BINARY,
|
|
VERSION_2, entry_point_info_t,
|
|
SECURE | NON_EXECUTABLE),
|
|
SET_STATIC_PARAM_HEAD(image_info, PARAM_IMAGE_BINARY,
|
|
VERSION_2, image_info_t,
|
|
IMAGE_ATTRIB_SKIP_LOADING),
|
|
|
|
.next_handoff_image_id = INVALID_IMAGE_ID,
|
|
},
|
|
|
|
/* Fill BL33 related information */
|
|
{
|
|
.image_id = BL33_IMAGE_ID,
|
|
|
|
SET_STATIC_PARAM_HEAD(ep_info, PARAM_EP,
|
|
VERSION_2, entry_point_info_t,
|
|
NON_SECURE | EXECUTABLE),
|
|
|
|
.ep_info.spsr = SPSR_MODE32(MODE32_svc, SPSR_T_ARM,
|
|
SPSR_E_LITTLE,
|
|
DISABLE_ALL_EXCEPTIONS),
|
|
|
|
SET_STATIC_PARAM_HEAD(image_info, PARAM_EP,
|
|
VERSION_2, image_info_t,
|
|
IMAGE_ATTRIB_SKIP_LOADING),
|
|
|
|
.next_handoff_image_id = INVALID_IMAGE_ID,
|
|
}
|
|
};
|
|
|
|
REGISTER_BL_IMAGE_DESCS(bl2_mem_params_descs)
|