1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-05-31 12:50:02 +00:00

arm/trusted-firmware-a: add v2.14.0 support

Add support for v2.14.0, and update corstone1000 config and patches to
use it.  TF-A seems to have changed their poetry settings from POETRY to
host-poetry (when specifying an alternative location/disabling).  So, it
is necessary to modify that for all platforms using COT and v2.14.0

NOTE: sbsa-ref is having issues with fip.bin being too large.  So, set
the version to the LTS until that is resolved.

Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
Jon Mason
2025-12-02 11:47:20 -05:00
parent 341a0fd976
commit a95040828c
19 changed files with 73 additions and 216 deletions
@@ -9,8 +9,8 @@ PREFERRED_VERSION_trusted-firmware-m ?= "2.2.%"
# TF-A # TF-A
TFA_PLATFORM = "corstone1000" TFA_PLATFORM = "corstone1000"
PREFERRED_VERSION_trusted-firmware-a ?= "2.13.%" PREFERRED_VERSION_trusted-firmware-a ?= "2.14.%"
PREFERRED_VERSION_tf-a-tests ?= "2.13.%" PREFERRED_VERSION_tf-a-tests ?= "2.14.%"
TFA_BL2_BINARY = "bl2-corstone1000.bin" TFA_BL2_BINARY = "bl2-corstone1000.bin"
TFA_FIP_BINARY = "fip-corstone1000.bin" TFA_FIP_BINARY = "fip-corstone1000.bin"
+4
View File
@@ -25,6 +25,10 @@ EFI_PROVIDER ?= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd-boo
SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0" SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0"
# FIXME - when compiling edk2, we're seeing an error of fip.bin being larger than the region size.
# Pin the version back until this can be resolved
PREFERRED_VERSION_trusted-firmware-a ?= "2.12.%"
EXTRA_IMAGEDEPENDS += "edk2-firmware" EXTRA_IMAGEDEPENDS += "edk2-firmware"
# FIXME - Currently seeing a kernel warning for the CPU topology when bumping # FIXME - Currently seeing a kernel warning for the CPU topology when bumping
# the version past this. The issue is being tracked in # the version past this. The issue is being tracked in
@@ -6,3 +6,4 @@ psci: failed to boot CPU3 (-95)
CPU3: failed to boot: -95 CPU3: failed to boot: -95
ARM FF-A: Notification setup failed -95, not enabled ARM FF-A: Notification setup failed -95, not enabled
ARM FF-A: Failed to register driver sched callback -95 ARM FF-A: Failed to register driver sched callback -95
basic-mmio-gpio: Failed to locate of_node [id: -2]
@@ -1,4 +1,4 @@
From adaa22bc2f529bb34e9d4fe89ff5c65f0c83ca0c Mon Sep 17 00:00:00 2001 From efce372dfac4ccef239b67abb4ec1cc450096329 Mon Sep 17 00:00:00 2001
From: emeara01 <emekcan.aras@arm.com> From: emeara01 <emekcan.aras@arm.com>
Date: Wed, 11 May 2022 14:37:06 +0100 Date: Wed, 11 May 2022 14:37:06 +0100
Subject: [PATCH] Fix FF-A version in SPMC manifest Subject: [PATCH] Fix FF-A version in SPMC manifest
@@ -1,4 +1,4 @@
From 977f06e10e549d01a641a62a1d4850a06d6f0df4 Mon Sep 17 00:00:00 2001 From 4e23e72e65481fe917d8a0af355b3b7669d5acb6 Mon Sep 17 00:00:00 2001
From: Harsimran Singh Tungal <harsimransingh.tungal@arm.com> From: Harsimran Singh Tungal <harsimransingh.tungal@arm.com>
Date: Thu, 7 Aug 2025 10:05:02 +0000 Date: Thu, 7 Aug 2025 10:05:02 +0000
Subject: [PATCH] plat: corstone1000: add Cortex-A320 support Subject: [PATCH] plat: corstone1000: add Cortex-A320 support
@@ -41,12 +41,12 @@ Signed-off-by: Michael Safwat <michael.safwat@arm.com>
.../common/corstone1000_helpers.S | 35 ++++++++++++++++++- .../common/corstone1000_helpers.S | 35 ++++++++++++++++++-
.../corstone1000/common/corstone1000_plat.c | 4 +++ .../corstone1000/common/corstone1000_plat.c | 4 +++
.../corstone1000/common/corstone1000_pm.c | 8 +++++ .../corstone1000/common/corstone1000_pm.c | 8 +++++
.../common/include/platform_def.h | 28 ++++++++++++++- .../common/include/platform_def.h | 26 ++++++++++++++
plat/arm/board/corstone1000/platform.mk | 11 ++++++ plat/arm/board/corstone1000/platform.mk | 11 ++++++
5 files changed, 84 insertions(+), 2 deletions(-) 5 files changed, 83 insertions(+), 1 deletion(-)
diff --git a/plat/arm/board/corstone1000/common/corstone1000_helpers.S b/plat/arm/board/corstone1000/common/corstone1000_helpers.S diff --git a/plat/arm/board/corstone1000/common/corstone1000_helpers.S b/plat/arm/board/corstone1000/common/corstone1000_helpers.S
index a4ca9fe98..665dbc61a 100644 index a4ca9fe98223..665dbc61a92e 100644
--- a/plat/arm/board/corstone1000/common/corstone1000_helpers.S --- a/plat/arm/board/corstone1000/common/corstone1000_helpers.S
+++ b/plat/arm/board/corstone1000/common/corstone1000_helpers.S +++ b/plat/arm/board/corstone1000/common/corstone1000_helpers.S
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
@@ -97,7 +97,7 @@ index a4ca9fe98..665dbc61a 100644
* void plat_secondary_cold_boot_setup (void); * void plat_secondary_cold_boot_setup (void);
* *
diff --git a/plat/arm/board/corstone1000/common/corstone1000_plat.c b/plat/arm/board/corstone1000/common/corstone1000_plat.c diff --git a/plat/arm/board/corstone1000/common/corstone1000_plat.c b/plat/arm/board/corstone1000/common/corstone1000_plat.c
index e388c82f3..d34e80b29 100644 index e388c82f311b..d34e80b29bb0 100644
--- a/plat/arm/board/corstone1000/common/corstone1000_plat.c --- a/plat/arm/board/corstone1000/common/corstone1000_plat.c
+++ b/plat/arm/board/corstone1000/common/corstone1000_plat.c +++ b/plat/arm/board/corstone1000/common/corstone1000_plat.c
@@ -26,6 +26,10 @@ const mmap_region_t plat_arm_mmap[] = { @@ -26,6 +26,10 @@ const mmap_region_t plat_arm_mmap[] = {
@@ -112,7 +112,7 @@ index e388c82f3..d34e80b29 100644
}; };
diff --git a/plat/arm/board/corstone1000/common/corstone1000_pm.c b/plat/arm/board/corstone1000/common/corstone1000_pm.c diff --git a/plat/arm/board/corstone1000/common/corstone1000_pm.c b/plat/arm/board/corstone1000/common/corstone1000_pm.c
index ac808873b..a87697e97 100644 index ac808873b9e7..a87697e97f11 100644
--- a/plat/arm/board/corstone1000/common/corstone1000_pm.c --- a/plat/arm/board/corstone1000/common/corstone1000_pm.c
+++ b/plat/arm/board/corstone1000/common/corstone1000_pm.c +++ b/plat/arm/board/corstone1000/common/corstone1000_pm.c
@@ -8,7 +8,11 @@ @@ -8,7 +8,11 @@
@@ -140,16 +140,9 @@ index ac808873b..a87697e97 100644
/* Flush and invalidate data cache */ /* Flush and invalidate data cache */
dcsw_op_all(DCCISW); dcsw_op_all(DCCISW);
diff --git a/plat/arm/board/corstone1000/common/include/platform_def.h b/plat/arm/board/corstone1000/common/include/platform_def.h diff --git a/plat/arm/board/corstone1000/common/include/platform_def.h b/plat/arm/board/corstone1000/common/include/platform_def.h
index caf3d462f..ee0babbf8 100644 index 200383475c80..ffb1e2dec0e1 100644
--- a/plat/arm/board/corstone1000/common/include/platform_def.h --- a/plat/arm/board/corstone1000/common/include/platform_def.h
+++ b/plat/arm/board/corstone1000/common/include/platform_def.h +++ b/plat/arm/board/corstone1000/common/include/platform_def.h
@@ -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
*/
@@ -112,12 +112,19 @@ @@ -112,12 +112,19 @@
#define ARM_SHARED_RAM_SIZE (SZ_8K) /* 8 KB */ #define ARM_SHARED_RAM_SIZE (SZ_8K) /* 8 KB */
#define ARM_SHARED_RAM_BASE ARM_TRUSTED_SRAM_BASE #define ARM_SHARED_RAM_BASE ARM_TRUSTED_SRAM_BASE
@@ -170,7 +163,7 @@ index caf3d462f..ee0babbf8 100644
#define PLAT_ARM_MAX_BL2_SIZE (180 * SZ_1K) /* 180 KB */ #define PLAT_ARM_MAX_BL2_SIZE (180 * SZ_1K) /* 180 KB */
@@ -209,8 +216,13 @@ @@ -208,8 +215,13 @@
#define MAX_IO_BLOCK_DEVICES 1 #define MAX_IO_BLOCK_DEVICES 1
/* GIC related constants */ /* GIC related constants */
@@ -184,7 +177,7 @@ index caf3d462f..ee0babbf8 100644
/* MHUv2 Secure Channel receiver and sender */ /* MHUv2 Secure Channel receiver and sender */
#define PLAT_SDK700_MHU0_SEND 0x1B800000 #define PLAT_SDK700_MHU0_SEND 0x1B800000
@@ -335,6 +347,20 @@ @@ -334,6 +346,20 @@
CORSTONE1000_DEVICE_BASE, \ CORSTONE1000_DEVICE_BASE, \
CORSTONE1000_DEVICE_SIZE, \ CORSTONE1000_DEVICE_SIZE, \
MT_DEVICE | MT_RW | MT_SECURE) MT_DEVICE | MT_RW | MT_SECURE)
@@ -206,7 +199,7 @@ index caf3d462f..ee0babbf8 100644
#define ARM_IRQ_SEC_PHY_TIMER 29 #define ARM_IRQ_SEC_PHY_TIMER 29
diff --git a/plat/arm/board/corstone1000/platform.mk b/plat/arm/board/corstone1000/platform.mk diff --git a/plat/arm/board/corstone1000/platform.mk b/plat/arm/board/corstone1000/platform.mk
index 65be9c1f5..fe3e94865 100644 index 65be9c1f5ad7..fe3e94865fca 100644
--- a/plat/arm/board/corstone1000/platform.mk --- a/plat/arm/board/corstone1000/platform.mk
+++ b/plat/arm/board/corstone1000/platform.mk +++ b/plat/arm/board/corstone1000/platform.mk
@@ -9,7 +9,14 @@ ifeq ($(filter ${TARGET_PLATFORM}, fpga fvp),) @@ -9,7 +9,14 @@ ifeq ($(filter ${TARGET_PLATFORM}, fpga fvp),)
@@ -236,6 +229,3 @@ index 65be9c1f5..fe3e94865 100644
BL2_SOURCES += plat/arm/board/corstone1000/common/corstone1000_security.c \ BL2_SOURCES += plat/arm/board/corstone1000/common/corstone1000_security.c \
plat/arm/board/corstone1000/common/corstone1000_err.c \ plat/arm/board/corstone1000/common/corstone1000_err.c \
--
2.50.1
@@ -1,33 +0,0 @@
From 328bfd8cd95bb0973e4966dcb4e3efa05d62f3f9 Mon Sep 17 00:00:00 2001
From: Christophe Thiblot <christophe.thiblot@arm.com>
Date: Wed, 2 Jul 2025 15:03:55 +0000
Subject: [PATCH] fix: exclude Boot requirement tests for Corstone-1000
A test compares the value of the Generic Timer register CNTFRQ visible in
two frames CNTBaseN and CNTCTLBase that are linked in Armv8-A and reflect
the same value.
An issue in Corstone-1000 (errata 2142118) makes the CNTFRQ views
inconsistents and the then test fails. There is no workaround and
the test is skipped.
Errata: https://developer.arm.com/documentation/sden2142076/0002/?lang=en
Signed-off-by: Christophe Thiblot <christophe.thiblot@arm.com>
Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-A/tf-a-tests/+/40810]
---
plat/arm/corstone1000/tests_to_skip.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/plat/arm/corstone1000/tests_to_skip.txt b/plat/arm/corstone1000/tests_to_skip.txt
index d937e42..afa3992 100644
--- a/plat/arm/corstone1000/tests_to_skip.txt
+++ b/plat/arm/corstone1000/tests_to_skip.txt
@@ -16,3 +16,4 @@ PSCI CPU Suspend in OSI mode
PSCI STAT/for valid composite state CPU suspend
FF-A Setup and Discovery/FF-A RXTX remap unmapped region success
FF-A Memory Sharing/Normal World VM retrieve request into SPMC
+Boot requirement tests
--
2.43.0
@@ -1,4 +1,4 @@
From 82ca3fcf5c323aec4ce8191c349fd7e00a840e02 Mon Sep 17 00:00:00 2001 From ff4bb404474a3310654827c36c4ac882eb0344b5 Mon Sep 17 00:00:00 2001
From: Michael Safwat <michael.safwat@arm.com> From: Michael Safwat <michael.safwat@arm.com>
Date: Tue, 26 Aug 2025 11:20:01 +0000 Date: Tue, 26 Aug 2025 11:20:01 +0000
Subject: [PATCH] plat: corstone1000: Add Cortex-A320 support Subject: [PATCH] plat: corstone1000: Add Cortex-A320 support
@@ -24,15 +24,15 @@ Signed-off-by: Michael Safwat <michael.safwat@arm.com>
Signed-off-by: Harsimran Singh Tungal <harsimransingh.tungal@arm.com> Signed-off-by: Harsimran Singh Tungal <harsimransingh.tungal@arm.com>
Upstream-Status: Submitted (https://review.trustedfirmware.org/c/TF-A/tf-a-tests/+/42352) Upstream-Status: Submitted (https://review.trustedfirmware.org/c/TF-A/tf-a-tests/+/42352)
--- ---
plat/arm/corstone1000/corstone1000_def.h | 12 +++++++++- plat/arm/corstone1000/corstone1000_def.h | 12 ++++++++++-
plat/arm/corstone1000/include/platform_def.h | 11 +++++---- plat/arm/corstone1000/include/platform_def.h | 11 +++++-----
plat/arm/corstone1000/platform.mk | 23 +++++++++++++++++++ plat/arm/corstone1000/platform.mk | 20 ++++++++++++++++++
.../tests_to_skip_cortex_a320.txt | 21 +++++++++++++++++ .../tests_to_skip_cortex_a320.txt | 21 +++++++++++++++++++
4 files changed, 61 insertions(+), 6 deletions(-) 4 files changed, 58 insertions(+), 6 deletions(-)
create mode 100644 plat/arm/corstone1000/tests_to_skip_cortex_a320.txt create mode 100644 plat/arm/corstone1000/tests_to_skip_cortex_a320.txt
diff --git a/plat/arm/corstone1000/corstone1000_def.h b/plat/arm/corstone1000/corstone1000_def.h diff --git a/plat/arm/corstone1000/corstone1000_def.h b/plat/arm/corstone1000/corstone1000_def.h
index 3e6f036a..c4fa9a3b 100644 index 3e6f036acc9a..c4fa9a3b5f68 100644
--- a/plat/arm/corstone1000/corstone1000_def.h --- a/plat/arm/corstone1000/corstone1000_def.h
+++ b/plat/arm/corstone1000/corstone1000_def.h +++ b/plat/arm/corstone1000/corstone1000_def.h
@@ -26,13 +26,23 @@ @@ -26,13 +26,23 @@
@@ -61,7 +61,7 @@ index 3e6f036a..c4fa9a3b 100644
* PL011 related constants * PL011 related constants
******************************************************************************/ ******************************************************************************/
diff --git a/plat/arm/corstone1000/include/platform_def.h b/plat/arm/corstone1000/include/platform_def.h diff --git a/plat/arm/corstone1000/include/platform_def.h b/plat/arm/corstone1000/include/platform_def.h
index a0d6f7b3..1fc505d0 100644 index 91f4cda19a90..2a9e5c4c35bb 100644
--- a/plat/arm/corstone1000/include/platform_def.h --- a/plat/arm/corstone1000/include/platform_def.h
+++ b/plat/arm/corstone1000/include/platform_def.h +++ b/plat/arm/corstone1000/include/platform_def.h
@@ -98,12 +98,13 @@ @@ -98,12 +98,13 @@
@@ -84,30 +84,27 @@ index a0d6f7b3..1fc505d0 100644
/******************************************************************************* /*******************************************************************************
diff --git a/plat/arm/corstone1000/platform.mk b/plat/arm/corstone1000/platform.mk diff --git a/plat/arm/corstone1000/platform.mk b/plat/arm/corstone1000/platform.mk
index a5a011d5..fd98724a 100644 index cd7a19162bcf..dfdd27abd897 100644
--- a/plat/arm/corstone1000/platform.mk --- a/plat/arm/corstone1000/platform.mk
+++ b/plat/arm/corstone1000/platform.mk +++ b/plat/arm/corstone1000/platform.mk
@@ -6,6 +6,19 @@ @@ -6,6 +6,16 @@
PLAT_INCLUDES := -Iplat/arm/corstone1000/include/ PLAT_INCLUDES := -Iplat/arm/corstone1000/include/
+CORSTONE1000_CORTEX_A320 := 0 +CORSTONE1000_CORTEX_A320 := 0
+ifeq (${CORSTONE1000_CORTEX_A320},1) +ifeq (${CORSTONE1000_CORTEX_A320},1)
+PLAT_SOURCES := drivers/arm/gic/arm_gic_v2v3.c \ +PLAT_SOURCES := drivers/arm/timer/private_timer.c \
+ drivers/arm/gic/gic_v2.c \ + drivers/arm/timer/system_timer.c \
+ drivers/arm/gic/gic_v3.c \ + plat/arm/corstone1000/plat_helpers.S \
+ drivers/arm/timer/private_timer.c \ + plat/arm/corstone1000/corstone1000_pwr_state.c \
+ drivers/arm/timer/system_timer.c \ + plat/arm/corstone1000/corstone1000_topology.c \
+ plat/arm/corstone1000/plat_helpers.S \ + plat/arm/corstone1000/corstone1000_mem_prot.c \
+ plat/arm/corstone1000/corstone1000_pwr_state.c \ + plat/arm/corstone1000/plat_setup.c
+ plat/arm/corstone1000/corstone1000_topology.c \
+ plat/arm/corstone1000/corstone1000_mem_prot.c \
+ plat/arm/corstone1000/plat_setup.c
+else +else
PLAT_SOURCES := drivers/arm/gic/arm_gic_v2.c \ PLAT_SOURCES := drivers/arm/timer/private_timer.c \
drivers/arm/gic/gic_v2.c \ drivers/arm/timer/system_timer.c \
drivers/arm/timer/private_timer.c \ plat/arm/corstone1000/plat_helpers.S \
@@ -15,6 +28,7 @@ PLAT_SOURCES := drivers/arm/gic/arm_gic_v2.c \ @@ -13,6 +23,7 @@ PLAT_SOURCES := drivers/arm/timer/private_timer.c \
plat/arm/corstone1000/corstone1000_topology.c \ plat/arm/corstone1000/corstone1000_topology.c \
plat/arm/corstone1000/corstone1000_mem_prot.c \ plat/arm/corstone1000/corstone1000_mem_prot.c \
plat/arm/corstone1000/plat_setup.c plat/arm/corstone1000/plat_setup.c
@@ -115,7 +112,7 @@ index a5a011d5..fd98724a 100644
PLAT_SUPPORTS_NS_RESET := 1 PLAT_SUPPORTS_NS_RESET := 1
@@ -23,6 +37,15 @@ $(eval $(call assert_boolean,PLAT_SUPPORTS_NS_RESET)) @@ -21,6 +32,15 @@ $(eval $(call assert_boolean,PLAT_SUPPORTS_NS_RESET))
$(eval $(call add_define,TFTF_DEFINES,PLAT_SUPPORTS_NS_RESET)) $(eval $(call add_define,TFTF_DEFINES,PLAT_SUPPORTS_NS_RESET))
FIRMWARE_UPDATE := 0 FIRMWARE_UPDATE := 0
@@ -133,7 +130,7 @@ index a5a011d5..fd98724a 100644
include plat/arm/common/arm_common.mk include plat/arm/common/arm_common.mk
diff --git a/plat/arm/corstone1000/tests_to_skip_cortex_a320.txt b/plat/arm/corstone1000/tests_to_skip_cortex_a320.txt diff --git a/plat/arm/corstone1000/tests_to_skip_cortex_a320.txt b/plat/arm/corstone1000/tests_to_skip_cortex_a320.txt
new file mode 100644 new file mode 100644
index 00000000..87b9241d index 000000000000..87b9241daba0
--- /dev/null --- /dev/null
+++ b/plat/arm/corstone1000/tests_to_skip_cortex_a320.txt +++ b/plat/arm/corstone1000/tests_to_skip_cortex_a320.txt
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
@@ -158,6 +155,3 @@ index 00000000..87b9241d
+Boot requirement tests +Boot requirement tests
+CPU extensions/AMUv1 suspend/resume +CPU extensions/AMUv1 suspend/resume
+CPU extensions/Use trace buffer control Registers +CPU extensions/Use trace buffer control Registers
--
2.43.0
@@ -12,9 +12,5 @@ TFTF_MODE:corstone1000 = "release"
FILESEXTRAPATHS:prepend:corstone1000 := "${THISDIR}/files/corstone1000/tf-a-tests:" FILESEXTRAPATHS:prepend:corstone1000 := "${THISDIR}/files/corstone1000/tf-a-tests:"
SRC_URI:append:corstone1000 = " \ SRC_URI:append:corstone1000 = " \
file://0001-fix-exclude-Boot-requirement-tests-for-Corstone-1000.patch \ file://0001-plat-corstone1000-Add-Cortex-A320-support.patch \
"
SRC_URI:append:corstone1000 = " \
file://0002-plat-corstone1000-Add-Cortex-A320-support.patch \
" "
@@ -79,5 +79,5 @@ EXTRA_OEMAKE:append:cortexa320 = " \
# If GENERATE_COT is set, then TF-A will try to use local poetry install # If GENERATE_COT is set, then TF-A will try to use local poetry install
# to run the python cot-dt2c command. Disable the local poetry and use # to run the python cot-dt2c command. Disable the local poetry and use
# the provided cot-dt2c. # the provided cot-dt2c.
EXTRA_OEMAKE += "POETRY=''" EXTRA_OEMAKE += "host-poetry=''"
DEPENDS += "cot-dt2c-native" DEPENDS += "cot-dt2c-native"
@@ -69,5 +69,5 @@ EXTRA_OEMAKE += "ARM_ARCH_MAJOR=${ARM_ISA_MAJOR} ARM_ARCH_MINOR=${ARM_ISA_MINOR}
# If GENERATE_COT is set, then tf-a will try to use local poetry install # If GENERATE_COT is set, then tf-a will try to use local poetry install
# to run the python cot-dt2c command. Disable the local poetry and use # to run the python cot-dt2c command. Disable the local poetry and use
# the provided cot-dt2c. # the provided cot-dt2c.
EXTRA_OEMAKE += "POETRY=''" EXTRA_OEMAKE += "host-poetry=''"
DEPENDS += "cot-dt2c-native" DEPENDS += "cot-dt2c-native"
@@ -4,10 +4,10 @@ LICENSE = "BSD-3-Clause"
SRC_URI_TRUSTED_FIRMWARE_A ?= "git://review.trustedfirmware.org/TF-A/trusted-firmware-a;protocol=https" SRC_URI_TRUSTED_FIRMWARE_A ?= "git://review.trustedfirmware.org/TF-A/trusted-firmware-a;protocol=https"
SRC_URI = "${SRC_URI_TRUSTED_FIRMWARE_A};branch=${SRCBRANCH}" SRC_URI = "${SRC_URI_TRUSTED_FIRMWARE_A};branch=${SRCBRANCH}"
LIC_FILES_CHKSUM = "file://docs/license.rst;md5=83b7626b8c7a37263c6a58af8d19bee1" LIC_FILES_CHKSUM = "file://docs/license.rst;md5=6ed7bace7b0bc63021c6eba7b524039e"
# Use cot-dt2c from TF-A v2.12.0 # Use cot-dt2c from TF-A v2.14.0
SRCREV = "4ec2948fe3f65dba2f19e691e702f7de2949179c" SRCREV = "1d5aa939bc8d3d892e2ed9945fa50e36a1a924cc"
SRCBRANCH = "master" SRCBRANCH = "master"
inherit python_poetry_core inherit python_poetry_core
@@ -1,46 +0,0 @@
From de4640579c5318ba08ec57531ef87d63f5574557 Mon Sep 17 00:00:00 2001
From: Chris Kay <chris.kay@arm.com>
Date: Thu, 21 Aug 2025 14:16:25 +0100
Subject: [PATCH] fix(arm): re-enable console by default in BL31
In c997a8d, the common `arm_bl31_early_platform_setup` function
underwent a consolidation of two large preprocessor branches that were
conditional on whether or not Transfer List support is enabled.
This function would initialise the console via `arm_console_boot_init`
*only* if Transfer List support was disabled. During the consolidation,
this call was removed, such that the behaviour was the same for both
branches.
However, the common `bl31_early_platform_setup2` implementation was not
updated to reflect this change, and so platforms that a) relied on this
common implementation and b) did not enable Transfer List support no
longer initialise the console in BL31.
This change ensures that the common implementation correctly initialises
the console during early BL31 boot.
Change-Id: I332af3932ac70382fbf7a5434c0008807f38f86c
Signed-off-by: Chris Kay <chris.kay@arm.com>
Upstream-Status: Backport [de4640579c5318ba08ec57531ef87d63f5574557]
---
plat/arm/common/arm_bl31_setup.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/plat/arm/common/arm_bl31_setup.c b/plat/arm/common/arm_bl31_setup.c
index 8ac984fd1..e7dc70bdb 100644
--- a/plat/arm/common/arm_bl31_setup.c
+++ b/plat/arm/common/arm_bl31_setup.c
@@ -343,6 +343,9 @@ void __init arm_bl31_early_platform_setup(u_register_t arg0, u_register_t arg1,
void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1,
u_register_t arg2, u_register_t arg3)
{
+ /* Initialize the console to provide early debug support */
+ arm_console_boot_init();
+
arm_bl31_early_platform_setup(arg0, arg1, arg2, arg3);
/*
--
2.43.0
@@ -1,45 +0,0 @@
From 60d103759b0835d61d90c8f2fbc7cf55f37e61a0 Mon Sep 17 00:00:00 2001
From: Boyan Karatotev <boyan.karatotev@arm.com>
Date: Wed, 22 Oct 2025 13:52:28 +0100
Subject: [PATCH] fix(css): don't require the GICC frame to be defined on GICv3
It's used for GICv2 operation, which won't happen with v3. CSS will
always use USE_GIC_DRIVER with the correct version so we can rely on
that to skip passing the GICC frame.
Upstream-Status: Backport [e3c36e35f8f92f817e537064d97a3816c339c704]
Change-Id: I358b99646f98bd7c6ea398bc8d8900cc80ca15bb
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
---
include/plat/arm/css/common/aarch64/css_macros.S | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/include/plat/arm/css/common/aarch64/css_macros.S b/include/plat/arm/css/common/aarch64/css_macros.S
index 85a7044d7..8a687d582 100644
--- a/include/plat/arm/css/common/aarch64/css_macros.S
+++ b/include/plat/arm/css/common/aarch64/css_macros.S
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2015-2025, Arm Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -18,7 +18,14 @@
*/
.macro css_print_gic_regs
mov_imm x16, PLAT_ARM_GICD_BASE
+ /*
+ * The ID registers will show GIC version, so it can safely be assumed
+ * that no v2 operation will be attempted on v3. Don't require the
+ * macro.
+ */
+#if USE_GIC_DRIVER == 2
mov_imm x17, PLAT_ARM_GICC_BASE
+#endif
arm_print_gic_regs
.endm
--
2.43.0
@@ -7,10 +7,10 @@ LICENSE = "BSD-3-Clause"
SRC_URI_TRUSTED_FIRMWARE_A ?= "git://review.trustedfirmware.org/TF-A/trusted-firmware-a;protocol=https" SRC_URI_TRUSTED_FIRMWARE_A ?= "git://review.trustedfirmware.org/TF-A/trusted-firmware-a;protocol=https"
SRC_URI = "${SRC_URI_TRUSTED_FIRMWARE_A};destsuffix=fiptool-${PV};branch=${SRCBRANCH}" SRC_URI = "${SRC_URI_TRUSTED_FIRMWARE_A};destsuffix=fiptool-${PV};branch=${SRCBRANCH}"
LIC_FILES_CHKSUM = "file://docs/license.rst;md5=1118e32884721c0be33267bd7ae11130" LIC_FILES_CHKSUM = "file://docs/license.rst;md5=6ed7bace7b0bc63021c6eba7b524039e"
# Use fiptool from TF-A v2.13.0 # Use fiptool from TF-A v2.14.0
SRCREV = "c17351450c8a513ca3f30f936e26a71db693a145" SRCREV = "1d5aa939bc8d3d892e2ed9945fa50e36a1a924cc"
SRCBRANCH = "master" SRCBRANCH = "master"
DEPENDS += "openssl-native" DEPENDS += "openssl-native"
@@ -10,7 +10,7 @@ COMPATIBLE_MACHINE ?= "invalid"
SRC_URI_TRUSTED_FIRMWARE_A_TESTS ?= "git://review.trustedfirmware.org/TF-A/tf-a-tests;protocol=https" SRC_URI_TRUSTED_FIRMWARE_A_TESTS ?= "git://review.trustedfirmware.org/TF-A/tf-a-tests;protocol=https"
SRC_URI = "${SRC_URI_TRUSTED_FIRMWARE_A_TESTS};branch=${SRCBRANCH}" SRC_URI = "${SRC_URI_TRUSTED_FIRMWARE_A_TESTS};branch=${SRCBRANCH}"
SRCBRANCH = "master" SRCBRANCH = "master"
SRCREV = "fa267c12f9aa790b43b38d171273cf63892e8d51" SRCREV = "3b3d800133081b48482b1205a32671b82bc2b640"
EXTRA_OEMAKE += "USE_NVM=0" EXTRA_OEMAKE += "USE_NVM=0"
EXTRA_OEMAKE += "SHELL_COLOR=1" EXTRA_OEMAKE += "SHELL_COLOR=1"
@@ -4,7 +4,7 @@ LICENSE = "BSD-2-Clause & BSD-3-Clause & MIT & Apache-2.0"
inherit firmware inherit firmware
SRC_URI_TRUSTED_FIRMWARE_A ?= "git://review.trustedfirmware.org/TF-A/trusted-firmware-a;protocol=https" SRC_URI_TRUSTED_FIRMWARE_A ?= "gitsm://review.trustedfirmware.org/TF-A/trusted-firmware-a;protocol=https"
SRCBRANCH = "master" SRCBRANCH = "master"
SRC_URI = "${SRC_URI_TRUSTED_FIRMWARE_A};name=tfa;branch=${SRCBRANCH}" SRC_URI = "${SRC_URI_TRUSTED_FIRMWARE_A};name=tfa;branch=${SRCBRANCH}"
@@ -1,20 +0,0 @@
require recipes-bsp/trusted-firmware-a/trusted-firmware-a.inc
# TF-A v2.13.0
SRCREV_tfa = "c17351450c8a513ca3f30f936e26a71db693a145"
SRCBRANCH = "master"
LIC_FILES_CHKSUM += "file://docs/license.rst;md5=1118e32884721c0be33267bd7ae11130"
# in TF-A src, docs/getting_started/prerequisites.rst lists the expected version mbedtls
# mbedtls-3.6.3
SRCBRANCH_MBEDTLS = "mbedtls-3.6"
SRC_URI_MBEDTLS = "git://github.com/Mbed-TLS/mbedtls;name=mbedtls;protocol=https;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/mbedtls;branch=${SRCBRANCH_MBEDTLS}"
SRCREV_mbedtls = "22098d41c6620ce07cf8a0134d37302355e1e5ef"
LIC_FILES_CHKSUM_MBEDTLS = "file://mbedtls/LICENSE;md5=379d5819937a6c2f1ef1630d341e026d"
SRC_URI += "\
file://0001-fix-arm-re-enable-console-by-default-in-BL31.patch \
file://0002-fix-css-don-t-require-the-GICC-frame-to-be-defined-o.patch \
"
@@ -0,0 +1,16 @@
require recipes-bsp/trusted-firmware-a/trusted-firmware-a.inc
# TF-A v2.14.0
SRC_URI_TRUSTED_FIRMWARE_A = "gitsm://review.trustedfirmware.org/TF-A/trusted-firmware-a;protocol=https"
SRCREV_tfa = "1d5aa939bc8d3d892e2ed9945fa50e36a1a924cc"
SRCBRANCH = "master"
LIC_FILES_CHKSUM += "file://docs/license.rst;md5=6ed7bace7b0bc63021c6eba7b524039e"
# in TF-A src, docs/getting_started/prerequisites.rst lists the expected version mbedtls
# mbedtls-3.6.5
SRCBRANCH_MBEDTLS = "mbedtls-3.6"
SRC_URI_MBEDTLS = "gitsm://github.com/Mbed-TLS/mbedtls;name=mbedtls;protocol=https;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/mbedtls;branch=${SRCBRANCH_MBEDTLS}"
SRCREV_mbedtls = "e185d7fd85499c8ce5ca2a54f5cf8fe7dbe3f8df"
LIC_FILES_CHKSUM_MBEDTLS = "file://mbedtls/LICENSE;md5=379d5819937a6c2f1ef1630d341e026d"
@@ -1,16 +1,16 @@
require recipes-bsp/trusted-firmware-a/trusted-firmware-a.inc require recipes-bsp/trusted-firmware-a/trusted-firmware-a.inc
# TF-A master, tag: v2.14-rc1 # TF-A master, tag: v2.14
SRCREV_tfa = "96147cc84b7dd8b4f53c9fed553b0c61af060898" SRCREV_tfa = "1d5aa939bc8d3d892e2ed9945fa50e36a1a924cc"
SRCBRANCH = "master" SRCBRANCH = "master"
LIC_FILES_CHKSUM += "file://docs/license.rst;md5=6ed7bace7b0bc63021c6eba7b524039e" LIC_FILES_CHKSUM += "file://docs/license.rst;md5=6ed7bace7b0bc63021c6eba7b524039e"
# in TF-A src, docs/getting_started/prerequisites.rst lists the expected version mbedtls # in TF-A src, docs/getting_started/prerequisites.rst lists the expected version mbedtls
# mbedtls-3.6.3 # mbedtls-3.6.5
SRCBRANCH_MBEDTLS = "mbedtls-3.6" SRCBRANCH_MBEDTLS = "mbedtls-3.6"
SRC_URI_MBEDTLS = "git://github.com/Mbed-TLS/mbedtls;name=mbedtls;protocol=https;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/mbedtls;branch=${SRCBRANCH_MBEDTLS}" SRC_URI_MBEDTLS = "gitsm://github.com/Mbed-TLS/mbedtls;name=mbedtls;protocol=https;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/mbedtls;branch=${SRCBRANCH_MBEDTLS}"
SRCREV_mbedtls = "22098d41c6620ce07cf8a0134d37302355e1e5ef" SRCREV_mbedtls = "e185d7fd85499c8ce5ca2a54f5cf8fe7dbe3f8df"
LIC_FILES_CHKSUM_MBEDTLS = "file://mbedtls/LICENSE;md5=379d5819937a6c2f1ef1630d341e026d" LIC_FILES_CHKSUM_MBEDTLS = "file://mbedtls/LICENSE;md5=379d5819937a6c2f1ef1630d341e026d"