From 93c50ae67fbdefd0fa2457a1b44fc538265b8fe0 Mon Sep 17 00:00:00 2001 From: Jayanth Dodderi Chidanand Date: Sat, 1 Mar 2025 17:15:03 +0000 Subject: [PATCH] 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 Change-Id: Iae13adbcdd6ebbdcc61d04e017655c6b8d715ea0 --- plat/arm/board/tc/include/platform_def.h | 18 +++++++++++++++++- plat/arm/board/tc/tc_plat.c | 8 +++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/plat/arm/board/tc/include/platform_def.h b/plat/arm/board/tc/include/platform_def.h index 71f7bb32d..6ad263de1 100644 --- a/plat/arm/board/tc/include/platform_def.h +++ b/plat/arm/board/tc/include/platform_def.h @@ -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 */ @@ -34,6 +34,22 @@ #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, * its base is ARM_AP_TZC_DRAM1_BASE. diff --git a/plat/arm/board/tc/tc_plat.c b/plat/arm/board/tc/tc_plat.c index 1ecfdb90e..b5d100836 100644 --- a/plat/arm/board/tc/tc_plat.c +++ b/plat/arm/board/tc/tc_plat.c @@ -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 */ @@ -33,6 +33,9 @@ const mmap_region_t plat_arm_mmap[] = { TC_MAP_NS_DRAM1, TC_FLASH0_RO, TC_MAP_DEVICE, +#if TRANSFER_LIST + TC_MAP_EL3_FW_HANDOFF, +#endif {0} }; #endif @@ -58,6 +61,9 @@ const mmap_region_t plat_arm_mmap[] = { #ifdef SPD_opteed ARM_MAP_OPTEE_CORE_MEM, ARM_OPTEE_PAGEABLE_LOAD_MEM, +#endif +#if TRANSFER_LIST + TC_MAP_EL3_FW_HANDOFF, #endif {0} };