From: Manish V Badarkhe Date: Mon, 12 Dec 2022 10:14:25 +0000 (+0000) Subject: feat(arm): carveout DRAM1 area for Event Log X-Git-Tag: baikal/aarch64/sdk5.10~1^2~153^2~1 X-Git-Url: https://git.baikalelectronics.ru/?a=commitdiff_plain;h=6b2e961fb1428c3fe213c524164a00fcaee495c4;p=arm-tf.git feat(arm): carveout DRAM1 area for Event Log Reserved 4KB area for Event Log in DRAM1. This area is used by BL2 to copy Event Log from internal SRAM to this carved out DRAM region in the subsequent patch. Change-Id: I7b405775c66d249e31edf7688d95770e6c05c175 Signed-off-by: Manish V Badarkhe --- diff --git a/include/plat/arm/common/arm_def.h b/include/plat/arm/common/arm_def.h index 38793cd73..456145577 100644 --- a/include/plat/arm/common/arm_def.h +++ b/include/plat/arm/common/arm_def.h @@ -82,6 +82,7 @@ * - L1 GPT DRAM: Reserved for L1 GPT if RME is enabled * - REALM DRAM: Reserved for Realm world if RME is enabled * - TF-A <-> RMM SHARED: Area shared for communication between TF-A and RMM + * - Event Log: Area for Event Log if MEASURED_BOOT feature is enabled * - AP TZC DRAM: The remaining TZC secured DRAM reserved for AP use * * RME enabled(64MB) RME not enabled(16MB) @@ -89,13 +90,15 @@ * | | | | * | AP TZC (~28MB) | | AP TZC (~14MB) | * -------------------- ------------------- + * | Event Log | | Event Log | + * | (4KB) | | (4KB) | + * -------------------- ------------------- + * | REALM (RMM) | | | + * | (32MB - 4KB) | | EL3 TZC (2MB) | + * -------------------- ------------------- * | | | | - * | REALM (RMM) | | EL3 TZC (2MB) | - * | (32MB - 4KB) | ------------------- - * -------------------- | | - * | | | SCP TZC | - * | TF-A <-> RMM | 0xFFFF_FFFF------------------- - * | SHARED (4KB) | + * | TF-A <-> RMM | | SCP TZC | + * | SHARED (4KB) | 0xFFFF_FFFF------------------- * -------------------- * | | * | EL3 TZC (3MB) | @@ -114,7 +117,6 @@ */ #define ARM_EL3_TZC_DRAM1_SIZE UL(0x00300000) /* 3MB */ #define ARM_L1_GPT_SIZE UL(0x00100000) /* 1MB */ - /* 32MB - ARM_EL3_RMM_SHARED_SIZE */ #define ARM_REALM_SIZE (UL(0x02000000) - \ ARM_EL3_RMM_SHARED_SIZE) @@ -134,6 +136,25 @@ #define ARM_SCP_TZC_DRAM1_SIZE PLAT_ARM_SCP_TZC_DRAM1_SIZE #define ARM_SCP_TZC_DRAM1_END (ARM_SCP_TZC_DRAM1_BASE + \ ARM_SCP_TZC_DRAM1_SIZE - 1U) + +# if (defined(SPD_tspd) || defined(SPD_opteed) || defined(SPD_spmd)) && \ +MEASURED_BOOT +#define ARM_EVENT_LOG_DRAM1_SIZE UL(0x00001000) /* 4KB */ + +#if ENABLE_RME +#define ARM_EVENT_LOG_DRAM1_BASE (ARM_REALM_BASE - \ + ARM_EVENT_LOG_DRAM1_SIZE) +#else +#define ARM_EVENT_LOG_DRAM1_BASE (ARM_EL3_TZC_DRAM1_BASE - \ + ARM_EVENT_LOG_DRAM1_SIZE) +#endif /* ENABLE_RME */ +#define ARM_EVENT_LOG_DRAM1_END (ARM_EVENT_LOG_DRAM1_BASE + \ + ARM_EVENT_LOG_DRAM1_SIZE - \ + 1U) +#else +#define ARM_EVENT_LOG_DRAM1_SIZE UL(0) +#endif /* (SPD_tspd || SPD_opteed || SPD_spmd) && MEASURED_BOOT */ + #if ENABLE_RME #define ARM_L1_GPT_ADDR_BASE (ARM_DRAM1_BASE + \ ARM_DRAM1_SIZE - \ @@ -170,7 +191,9 @@ ARM_EL3_TZC_DRAM1_SIZE + \ ARM_EL3_RMM_SHARED_SIZE + \ ARM_REALM_SIZE + \ - ARM_L1_GPT_SIZE)) + ARM_L1_GPT_SIZE + \ + ARM_EVENT_LOG_DRAM1_SIZE)) + #define ARM_AP_TZC_DRAM1_END (ARM_AP_TZC_DRAM1_BASE + \ ARM_AP_TZC_DRAM1_SIZE - 1U) @@ -313,6 +336,15 @@ PLAT_ARM_TRUSTED_DRAM_SIZE, \ MT_MEMORY | MT_RW | MT_SECURE) +# if (defined(SPD_tspd) || defined(SPD_opteed) || defined(SPD_spmd)) && \ +MEASURED_BOOT +#define ARM_MAP_EVENT_LOG_DRAM1 \ + MAP_REGION_FLAT( \ + ARM_EVENT_LOG_DRAM1_BASE, \ + ARM_EVENT_LOG_DRAM1_SIZE, \ + MT_MEMORY | MT_RW | MT_SECURE) +#endif /* (SPD_tspd || SPD_opteed || SPD_spmd) && MEASURED_BOOT */ + #if ENABLE_RME /* * We add the EL3_RMM_SHARED size to RMM mapping to map the region as a block. diff --git a/plat/arm/board/fvp/fvp_common.c b/plat/arm/board/fvp/fvp_common.c index c7bf93e60..24230656e 100644 --- a/plat/arm/board/fvp/fvp_common.c +++ b/plat/arm/board/fvp/fvp_common.c @@ -111,6 +111,15 @@ const mmap_region_t plat_arm_mmap[] = { * Required to load HW_CONFIG, SPMC and SPs to trusted DRAM. */ ARM_MAP_TRUSTED_DRAM, + + /* + * Required to load Event Log in TZC secured memory + */ +#if MEASURED_BOOT && (defined(SPD_tspd) || defined(SPD_opteed) || \ +defined(SPD_spmd)) + ARM_MAP_EVENT_LOG_DRAM1, +#endif /* MEASURED_BOOT && (SPD_tspd || SPD_opteed || SPD_spmd) */ + #if ENABLE_RME ARM_MAP_RMM_DRAM, ARM_MAP_GPT_L1_DRAM, diff --git a/plat/arm/board/fvp/include/platform_def.h b/plat/arm/board/fvp/include/platform_def.h index 52146a3b6..039f8e299 100644 --- a/plat/arm/board/fvp/include/platform_def.h +++ b/plat/arm/board/fvp/include/platform_def.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2022, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2014-2023, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -168,7 +168,12 @@ # define MAX_XLAT_TABLES 5 #else # define PLAT_ARM_MMAP_ENTRIES 12 -# define MAX_XLAT_TABLES 6 +# if (defined(SPD_tspd) || defined(SPD_opteed) || defined(SPD_spmd)) && \ +defined(IMAGE_BL2) && MEASURED_BOOT +# define MAX_XLAT_TABLES 7 +# else +# define MAX_XLAT_TABLES 6 +# endif /* (SPD_tspd || SPD_opteed || SPD_spmd) && IMAGE_BL2 && MEASURED_BOOT */ #endif /*