1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-06-05 02:20:30 +00:00

arm/trusted-services:corstone1000: Pass Corstone-1000 target type

Trusted Services requires knowledge of the Corstone-1000 platform type to
select the correct set of FWU image UUIDs at compile time.

This change introduces a CORSTONE_1000_TYPE variable in both BitBake
and CMake code to differentiate between Corstone-1000 platform types.
Its value is determined by the selected Corstone-1000 target machine
configuration file:
* `CORSTONE_1000_TYPE_CORTEX_A35_FVP`
* `CORSTONE_1000_TYPE_CORTEX_A35_MPS3`

Signed-off-by: Hugues KAMBA MPIANA <hugues.kambampiana@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
Hugues KAMBA MPIANA
2025-09-16 16:00:10 +01:00
committed by Jon Mason
parent 7800703ba5
commit c4ce6a426d
5 changed files with 80 additions and 83 deletions
@@ -7,7 +7,7 @@ TFA_TARGET_PLATFORM = "fvp"
TFM_PLATFORM_IS_FVP = "TRUE"
TS_PLATFORM = "arm/corstone1000-fvp"
CORSTONE_1000_TYPE = "CORSTONE_1000_TYPE_CORTEX_A35_FVP"
# testimage config
TEST_TARGET = "OEFVPTarget"
@@ -6,9 +6,7 @@ require conf/machine/include/corstone1000.inc
TFA_TARGET_PLATFORM = "fpga"
PLATFORM_IS_FVP = "FALSE"
TS_PLATFORM = "arm/corstone1000-mps3"
# Unlike the FVP, MPS3 supports CoreSight
MACHINE_FEATURES += "coresight"
CORSTONE_1000_TYPE = "CORSTONE_1000_TYPE_CORTEX_A35_MPS3"
@@ -1,77 +0,0 @@
From 00cbde17d3e38de385a6f0897cdd6d9bfe8250c7 Mon Sep 17 00:00:00 2001
From: Ali Can Ozaslan <ali.oezaslan@arm.com>
Date: Thu, 27 Feb 2025 14:06:07 +0000
Subject: [PATCH 03/10] Platform: Corstone1000: Add PLATFORM_IS_FVP toggle for
FVP/FPGA builds
Introduces PLATFORM_IS_FVP to differentiate between FVP and FPGA builds.
Adds platform-specific CMake files for corstone1000-fvp and corstone1000-mps3,
and updates platform.cmake to use this toggle.
Upstream-Status: Pending
Signed-off-by: Ali Can Ozaslan <ali.oezaslan@arm.com>
Signed-off-by: Harsimran Singh Tungal <harsimransingh.tungal@arm.com>
---
.../providers/arm/corstone1000-fvp/platform.cmake | 11 +++++++++++
.../providers/arm/corstone1000-mps3/platform.cmake | 11 +++++++++++
platform/providers/arm/corstone1000/platform.cmake | 3 ++-
3 files changed, 24 insertions(+), 1 deletion(-)
create mode 100644 platform/providers/arm/corstone1000-fvp/platform.cmake
create mode 100644 platform/providers/arm/corstone1000-mps3/platform.cmake
diff --git a/platform/providers/arm/corstone1000-fvp/platform.cmake b/platform/providers/arm/corstone1000-fvp/platform.cmake
new file mode 100644
index 00000000..9a281e7a
--- /dev/null
+++ b/platform/providers/arm/corstone1000-fvp/platform.cmake
@@ -0,0 +1,11 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2025, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+# Platform definition for the Corstone-1000-MPS3 platform.
+#-------------------------------------------------------------------------------
+
+set(PLATFORM_IS_FVP 1 CACHE BOOL "Whether to enable FVP or FPGA build of the platform.")
+
+include(${TS_PLATFORM_ROOT}/arm/corstone1000/platform.cmake)
diff --git a/platform/providers/arm/corstone1000-mps3/platform.cmake b/platform/providers/arm/corstone1000-mps3/platform.cmake
new file mode 100644
index 00000000..ec92d1e5
--- /dev/null
+++ b/platform/providers/arm/corstone1000-mps3/platform.cmake
@@ -0,0 +1,11 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2025, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+# Platform definition for the Corstone-1000-FVP platform.
+#-------------------------------------------------------------------------------
+
+set(PLATFORM_IS_FVP 0 CACHE BOOL "Whether to enable FVP or FPGA build of the platform.")
+
+include(${TS_PLATFORM_ROOT}/arm/corstone1000/platform.cmake)
diff --git a/platform/providers/arm/corstone1000/platform.cmake b/platform/providers/arm/corstone1000/platform.cmake
index 04c8138f..60bc208b 100644
--- a/platform/providers/arm/corstone1000/platform.cmake
+++ b/platform/providers/arm/corstone1000/platform.cmake
@@ -1,5 +1,5 @@
#-------------------------------------------------------------------------------
-# Copyright (c) 2021-2024, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2021-2025, Arm Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
@@ -17,6 +17,7 @@ target_compile_definitions(${TGT} PRIVATE
PLAT_RSE_COMMS_PAYLOAD_MAX_SIZE=${PLAT_RSE_COMMS_PAYLOAD_MAX_SIZE}
COMMS_MHU_MSG_SIZE=${COMMS_MHU_MSG_SIZE}
MBEDTLS_ECP_DP_SECP521R1_ENABLED
+ PLATFORM_IS_FVP=${PLATFORM_IS_FVP}
)
get_property(_platform_driver_dependencies TARGET ${TGT}
--
2.34.1
@@ -0,0 +1,72 @@
From a644191e6f184e39fbe60a8fd79bf34a9a88eb17 Mon Sep 17 00:00:00 2001
From: Hugues KAMBA MPIANA <hugues.kambampiana@arm.com>
Date: Thu, 11 Sep 2025 14:25:04 +0100
Subject: [PATCH] platform: corstone1000: Add CORSTONE_1000_TYPE variable for
platform selection
This change introduces a CORSTONE_1000_TYPE variable in both CMake
and C code to differentiate between Corstone-1000 platform types:
* `CORSTONE_1000_TYPE_CORTEX_A35_FVP`
* `CORSTONE_1000_TYPE_CORTEX_A35_MPS3`
The default platform type (`CORSTONE_1000_TYPE_CORTEX_A35_FVP`) is
set in CMake and can be overridden via the `-DCORSTONE_1000_TYPE`
option at configure time.
This variable will be used to select the correct FWU image UUIDs at
compile time, as the UUIDs differ depending on the target platform.
Upstream-Status: Backport [2cd4db9828f244de77e402ad31c52d9c4ba3c600]
Signed-off-by: Hugues KAMBA MPIANA <hugues.kambampiana@arm.com>
Signed-off-by: Ali Can Ozaslan <ali.oezaslan@arm.com>
Signed-off-by: Harsimran Singh Tungal <harsimransingh.tungal@arm.com>
---
.../providers/arm/corstone1000/platform.cmake | 21 ++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/platform/providers/arm/corstone1000/platform.cmake b/platform/providers/arm/corstone1000/platform.cmake
index d39b7903..478a394d 100644
--- a/platform/providers/arm/corstone1000/platform.cmake
+++ b/platform/providers/arm/corstone1000/platform.cmake
@@ -1,11 +1,29 @@
#-------------------------------------------------------------------------------
-# Copyright (c) 2021-2024, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2021-2025, Arm Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
# Platform definition for the Corstone-1000 platform.
#-------------------------------------------------------------------------------
+# Important: The order and index of values must match C code expectations
+set(_corstone_1000_valid_types
+ CORSTONE_1000_TYPE_CORTEX_A35_FVP
+ CORSTONE_1000_TYPE_CORTEX_A35_MPS3
+)
+set(CORSTONE_1000_TYPE "CORSTONE_1000_TYPE_CORTEX_A35_FVP" CACHE STRING
+ "Corstone-1000 platform type. Valid values are: ${_corstone_1000_valid_types}"
+)
+set_property(CACHE CORSTONE_1000_TYPE PROPERTY STRINGS ${_corstone_1000_valid_types})
+list(FIND _corstone_1000_valid_types "${CORSTONE_1000_TYPE}" CORSTONE_1000_TYPE_INT)
+if(CORSTONE_1000_TYPE_INT EQUAL -1)
+ message(FATAL_ERROR
+ "Invalid CORSTONE_1000_TYPE: ${CORSTONE_1000_TYPE}.
+ Valid values are: ${_corstone_1000_valid_types}"
+ )
+endif()
+unset(_corstone_1000_valid_types)
+
set(SMM_GATEWAY_MAX_UEFI_VARIABLES 80 CACHE STRING "Maximum UEFI variable count")
set(SMM_RPC_CALLER_SESSION_SHARED_MEMORY_SIZE 4*4096 CACHE STRING "RPC caller buffer size in SMMGW")
set(SMM_SP_HEAP_SIZE 80*1024 CACHE STRING "SMM gateway SP heap size")
@@ -14,6 +32,7 @@ target_compile_definitions(${TGT} PRIVATE
SMM_VARIABLE_INDEX_STORAGE_UID=0x787
PLAT_RSE_COMMS_PAYLOAD_MAX_SIZE=0x2080
COMMS_MHU_MSG_SIZE=0x3500
+ CORSTONE_1000_TYPE=${CORSTONE_1000_TYPE_INT}
)
get_property(_platform_driver_dependencies TARGET ${TGT}
--
2.43.0
@@ -10,7 +10,7 @@ SRC_URI:append:corstone1000 = " \
file://0006-Align-PSA-Crypto-with-TF-Mv2.1.patch \
file://0007-Revert-Load-and-store-UEFI-variable-index-in-chunks.patch \
file://0008-se-proxy-protobuf-change.patch \
file://0009-Platform-Corstone1000-Add-PLATFORM_IS_FVP-toggle-for.patch \
file://0009-platform-corstone1000-Add-CORSTONE_1000_TYPE-variabl.patch \
file://0010-Integrate-PSA-FWU-IPC-framework-for-Corstone-1000.patch \
file://0011-Load-initial-image-state-in-PSA-FWU-M-update-agent.patch \
file://0012-Corstone1000-Define-PSA-FWU-image-mapping-structure.patch \
@@ -27,3 +27,7 @@ CFLAGS:append:corstone1000 = " -Wno-int-conversion -Wno-implicit-function-declar
COMPATIBLE_MACHINE:fvp-base = "fvp-base"
TS_PLATFORM:fvp-base = "arm/fvp/fvp_base_revc-2xaemv8a"
EXTRA_OECMAKE:append:corstone1000 = " \
-DCORSTONE_1000_TYPE=${CORSTONE_1000_TYPE} \
"