From 34fb2b35b9996d2afe40ad52f3a004bb90bf95f2 Mon Sep 17 00:00:00 2001 From: Ghennadi Procopciuc Date: Tue, 26 Nov 2024 16:45:36 +0200 Subject: [PATCH] feat(s32g274a): map each image before its loading The regions used by the stages loaded by BL2 must be mapped before they can be used. Change-Id: Ia70f8c5f35d7930e2b20f1a26be0ad2cdfea2b1a Signed-off-by: Khristine Andreea Barbulescu Signed-off-by: Ghennadi Procopciuc --- .../nxp/s32/s32g274ardb2/plat_bl2_el3_setup.c | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/plat/nxp/s32/s32g274ardb2/plat_bl2_el3_setup.c b/plat/nxp/s32/s32g274ardb2/plat_bl2_el3_setup.c index 4645f01ed..7977a031d 100644 --- a/plat/nxp/s32/s32g274ardb2/plat_bl2_el3_setup.c +++ b/plat/nxp/s32/s32g274ardb2/plat_bl2_el3_setup.c @@ -4,9 +4,11 @@ * SPDX-License-Identifier: BSD-3-Clause */ +#include #include #include #include +#include #include #include #include @@ -78,3 +80,26 @@ void bl2_el3_plat_arch_setup(void) { } +int bl2_plat_handle_pre_image_load(unsigned int image_id) +{ + const struct bl_mem_params_node *desc = get_bl_mem_params_node(image_id); + const struct image_info *img_info; + size_t size; + + if (desc == NULL) { + return -EINVAL; + } + + img_info = &desc->image_info; + + if ((img_info == NULL) || (img_info->image_max_size == 0U)) { + return -EINVAL; + } + + size = page_align(img_info->image_max_size, UP); + + return mmap_add_dynamic_region(img_info->image_base, + img_info->image_base, + size, + MT_MEMORY | MT_RW | MT_SECURE); +}