feat(handoff): add support for RESET_TO_BL2

When BL2 is enabled as the entrypoint in the reset vector, none of the
TL initialisation ordinarily performed in BL1 will have been done. This
change ensures that BL2 has a secure TL to pass information onto BL31
through.

Change-Id: I553b0b7aac9390cd6a2d63471b81ddc72cc40a60
Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
This commit is contained in:
Harrison Mutai 2024-04-23 10:31:36 +00:00
parent 9c11ed7e3e
commit f019c8013e
2 changed files with 12 additions and 1 deletions

View file

@ -127,6 +127,17 @@ void bl2_early_platform_setup2(u_register_t arg0, u_register_t arg1, u_register_
void bl2_plat_preload_setup(void)
{
#if TRANSFER_LIST
/* Assume the secure TL hasn't been initialised if BL2 is running at EL3. */
#if RESET_TO_BL2
secure_tl = transfer_list_init((void *)PLAT_ARM_EL3_FW_HANDOFF_BASE,
PLAT_ARM_FW_HANDOFF_SIZE);
if (secure_tl == NULL) {
ERROR("Secure transfer list initialisation failed!\n");
panic();
}
#endif
arm_transfer_list_dyn_cfg_init(secure_tl);
#else
arm_bl2_dyn_cfg_init();

View file

@ -504,7 +504,7 @@ void __init bl31_plat_arch_setup(void)
arm_bl31_plat_arch_setup();
#if TRANSFER_LIST
#if TRANSFER_LIST && !RESET_TO_BL2
te = transfer_list_find(secure_tl, TL_TAG_FDT);
assert(te != NULL);