mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-20 11:34:20 +00:00

BL2: Update BL2 init flow, Timer base address, avoid cache flush of BL2 image descriptors BL31: Remove re-init of CCU and other misc updates Change-Id: I5f04901cc455c306209c83aad2377bbf7d8a1789 Signed-off-by: Girisha Dengi <girisha.dengi@intel.com> Signed-off-by: Sieu Mun Tang <sieu.mun.tang@intel.com>
65 lines
2.1 KiB
C
65 lines
2.1 KiB
C
/*
|
|
* Copyright (c) 2019, ARM Limited and Contributors. All rights reserved.
|
|
* Copyright (c) 2024, Altera Corporation. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#include <common/desc_image_load.h>
|
|
|
|
/*******************************************************************************
|
|
* This function flushes the data structures so that they are visible
|
|
* in memory for the next BL image.
|
|
******************************************************************************/
|
|
void plat_flush_next_bl_params(void)
|
|
{
|
|
/*
|
|
* We cannot flush these descriptors on the Agilex5 platform,
|
|
* since the BL2 runs on the OCRAM and this OCRAM is not cache coherent.
|
|
*/
|
|
#if PLATFORM_MODEL != PLAT_SOCFPGA_AGILEX5
|
|
flush_bl_params_desc();
|
|
#endif
|
|
}
|
|
|
|
/*******************************************************************************
|
|
* This function returns the list of loadable images.
|
|
******************************************************************************/
|
|
bl_load_info_t *plat_get_bl_image_load_info(void)
|
|
{
|
|
return get_bl_load_info_from_mem_params_desc();
|
|
}
|
|
|
|
/*******************************************************************************
|
|
* This function returns the list of executable images.
|
|
******************************************************************************/
|
|
bl_params_t *plat_get_next_bl_params(void)
|
|
{
|
|
unsigned int count;
|
|
unsigned int img_id = 0U;
|
|
unsigned int link_index = 0U;
|
|
bl_params_node_t *bl_exec_node = NULL;
|
|
bl_mem_params_node_t *desc_ptr;
|
|
|
|
/* If there is no image to start with, return NULL */
|
|
if (bl_mem_params_desc_num == 0U)
|
|
return NULL;
|
|
|
|
/* Clean next_params_info in BL image node */
|
|
for (count = 0U; count < bl_mem_params_desc_num; count++) {
|
|
|
|
desc_ptr = &bl_mem_params_desc_ptr[link_index];
|
|
bl_exec_node = &desc_ptr->params_node_mem;
|
|
bl_exec_node->next_params_info = NULL;
|
|
|
|
/* If no next hand-off image then break out */
|
|
img_id = desc_ptr->next_handoff_image_id;
|
|
if (img_id == INVALID_IMAGE_ID)
|
|
break;
|
|
|
|
/* Get the index for the next hand-off image */
|
|
link_index = get_bl_params_node_index(img_id);
|
|
}
|
|
|
|
return get_next_bl_params_from_mem_params_desc();
|
|
}
|