mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 17:44:19 +00:00
feat(tc): port BL2-BL31 interface to firmware handoff framework
Adding support for this framework at the handoff boundary between firmware stage BL2 and BL31 on TC. Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> Change-Id: I8e29b859e57a732e53f7532a5869ed4c8665b161
This commit is contained in:
parent
93c50ae67f
commit
2a36dee8f1
2 changed files with 20 additions and 7 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2016-2020, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2016-2025, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -45,8 +45,11 @@ int css_scp_boot_ready(void);
|
|||
CASSERT(SCP_BL2_LIMIT <= BL2_BASE, assert_scp_bl2_overwrite_bl2);
|
||||
CASSERT(SCP_BL2U_LIMIT <= BL2_BASE, assert_scp_bl2u_overwrite_bl2);
|
||||
|
||||
#if !TRANSFER_LIST
|
||||
CASSERT(SCP_BL2_BASE >= ARM_FW_CONFIG_LIMIT, assert_scp_bl2_overflow);
|
||||
CASSERT(SCP_BL2U_BASE >= ARM_FW_CONFIG_LIMIT, assert_scp_bl2u_overflow);
|
||||
#endif /* !TRANSFER_LIST */
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* CSS_SCP_H */
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2021, ARM Limited. All rights reserved.
|
||||
* Copyright (c) 2021-2025, ARM Limited. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -18,17 +18,26 @@
|
|||
******************************************************************************/
|
||||
struct bl_params *plat_get_next_bl_params(void)
|
||||
{
|
||||
struct bl_params *arm_bl_params = arm_get_next_bl_params();
|
||||
|
||||
const struct dyn_cfg_dtb_info_t *fw_config_info;
|
||||
struct bl_params *arm_bl_params;
|
||||
bl_mem_params_node_t *param_node;
|
||||
uintptr_t fw_config_base = 0U;
|
||||
entry_point_info_t *ep_info;
|
||||
const struct dyn_cfg_dtb_info_t *fw_config_info __maybe_unused;
|
||||
uintptr_t fw_config_base __maybe_unused;
|
||||
entry_point_info_t *ep_info __maybe_unused;
|
||||
|
||||
arm_bl_params = arm_get_next_bl_params();
|
||||
|
||||
/* Get BL31 image node */
|
||||
param_node = get_bl_mem_params_node(BL31_IMAGE_ID);
|
||||
assert(param_node != NULL);
|
||||
#if TRANSFER_LIST
|
||||
assert(arm_bl_params != NULL);
|
||||
|
||||
arm_bl_params->head = ¶m_node->params_node_mem;
|
||||
arm_bl_params->head->ep_info = ¶m_node->ep_info;
|
||||
arm_bl_params->head->image_id = param_node->image_id;
|
||||
|
||||
arm_bl2_setup_next_ep_info(param_node);
|
||||
#else
|
||||
/* Get fw_config load address */
|
||||
fw_config_info = FCONF_GET_PROPERTY(dyn_cfg, dtb, FW_CONFIG_ID);
|
||||
assert(fw_config_info != NULL);
|
||||
|
@ -42,6 +51,7 @@ struct bl_params *plat_get_next_bl_params(void)
|
|||
*/
|
||||
ep_info = ¶m_node->ep_info;
|
||||
ep_info->args.arg1 = (uint32_t)fw_config_base;
|
||||
#endif /* TRANSFER_LIST */
|
||||
|
||||
return arm_bl_params;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue