feat(tc): port BL1-BL2 interface to firmware handoff framework

The firmware handoff framework, is a light weight mechanism for
sharing information between bootloader stages.
Adding support for this framework at the handoff boundary between
firmware stage BL1 and BL2 on TC.

Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
Change-Id: Iae13adbcdd6ebbdcc61d04e017655c6b8d715ea0
This commit is contained in:
Jayanth Dodderi Chidanand 2025-03-01 17:15:03 +00:00
parent 0c9b38b61b
commit 93c50ae67f
2 changed files with 24 additions and 2 deletions

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2020-2024, Arm Limited. All rights reserved. * Copyright (c) 2020-2025, Arm Limited. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -34,6 +34,22 @@
#define PLAT_ARM_TRUSTED_SRAM_SIZE 0x00080000 /* 512 KB */ #define PLAT_ARM_TRUSTED_SRAM_SIZE 0x00080000 /* 512 KB */
#if TRANSFER_LIST
/*
* Summation of data size of all Transfer Entries included in the Transfer list.
* Note: Update this field whenever new Transfer Entries are added in future.
*/
#define PLAT_ARM_FW_HANDOFF_SIZE U(0x9000)
#define PLAT_ARM_EL3_FW_HANDOFF_BASE ARM_BL_RAM_BASE
#define PLAT_ARM_EL3_FW_HANDOFF_LIMIT PLAT_ARM_EL3_FW_HANDOFF_BASE + PLAT_ARM_FW_HANDOFF_SIZE
/* Mappings for Secure and Non-secure Transfer_list */
#define TC_MAP_EL3_FW_HANDOFF MAP_REGION_FLAT( \
PLAT_ARM_EL3_FW_HANDOFF_BASE, \
PLAT_ARM_FW_HANDOFF_SIZE, \
MT_MEMORY | MT_RW | EL3_PAS)
#endif /* TRANSFER_LIST */
/* /*
* The top 16MB of ARM_DRAM1 is configured as secure access only using the TZC, * The top 16MB of ARM_DRAM1 is configured as secure access only using the TZC,
* its base is ARM_AP_TZC_DRAM1_BASE. * its base is ARM_AP_TZC_DRAM1_BASE.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2020-2024, Arm Limited and Contributors. All rights reserved. * Copyright (c) 2020-2025, Arm Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -33,6 +33,9 @@ const mmap_region_t plat_arm_mmap[] = {
TC_MAP_NS_DRAM1, TC_MAP_NS_DRAM1,
TC_FLASH0_RO, TC_FLASH0_RO,
TC_MAP_DEVICE, TC_MAP_DEVICE,
#if TRANSFER_LIST
TC_MAP_EL3_FW_HANDOFF,
#endif
{0} {0}
}; };
#endif #endif
@ -58,6 +61,9 @@ const mmap_region_t plat_arm_mmap[] = {
#ifdef SPD_opteed #ifdef SPD_opteed
ARM_MAP_OPTEE_CORE_MEM, ARM_MAP_OPTEE_CORE_MEM,
ARM_OPTEE_PAGEABLE_LOAD_MEM, ARM_OPTEE_PAGEABLE_LOAD_MEM,
#endif
#if TRANSFER_LIST
TC_MAP_EL3_FW_HANDOFF,
#endif #endif
{0} {0}
}; };