Skip to content

TF-A/Hafnium v2.15.0 release updates (FVP)#862

Open
odeprez wants to merge 3 commits into
OP-TEE:masterfrom
odeprez:od/tfa_v2.15_fvp
Open

TF-A/Hafnium v2.15.0 release updates (FVP)#862
odeprez wants to merge 3 commits into
OP-TEE:masterfrom
odeprez:od/tfa_v2.15_fvp

Conversation

@odeprez
Copy link
Copy Markdown
Contributor

@odeprez odeprez commented May 28, 2026

No description provided.

odeprez added 2 commits May 28, 2026 12:36
As per [1], mbedTLS is hosted as a TF-A project submodule and it is no
longer required to provide the path to the library through MBEDTLS_DIR.

[1] https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/38136

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Latest FVP models renamed has_branch_target_exception to
bti_support_level and former is now a deprecated option.

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
@odeprez odeprez changed the title TF-A/Hafnium v2.15.0 release updates TF-A/Hafnium v2.15.0 release updates (FVP) May 28, 2026
@odeprez
Copy link
Copy Markdown
Contributor Author

odeprez commented May 28, 2026

OP-TEE/manifest#346

Comment thread fvp.mk
-C cluster0.has_generic_authentication=1 \
-C cluster0.has_pointer_authentication=2 \
-C cluster0.has_branch_target_exception=1 \
-C cluster0.bti_support_level=1 \
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might require bumping the model version if it exists in a CI.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems the OP-TEE CI runs validation only in QEMU and the CI concern is not valid.

I think running tests on the AEM base FVP in the CI could be enabled now as it has became freely available from here. But this is out of scope for this change.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems the OP-TEE CI runs validation only in QEMU and the CI concern is not valid.

Correct.

I think running tests on the AEM base FVP in the CI could be enabled now as it has became freely available from here. But this is out of scope for this change.

+1. That's interesting.

@odeprez
Copy link
Copy Markdown
Contributor Author

odeprez commented May 28, 2026

About measured boot:

MEASURED_BOOT=y requires cmake needed to build libeventlog hosted as a TF-A submodule. It may require a docker file update if built in a CI.

MEASURED_BOOT=y MEASURED_BOOT_FTPM=y breaks linux build with

GEN     out/arm/core/tee-raw.bin
make[1]: Leaving directory '/data_nvme0n1/olidep01/optee_fvp/linux'
make -C /data_nvme0n1/olidep01/optee_fvp/build/../linux LOCALVERSION= CROSS_COMPILE="/usr/bin/ccache /data_nvme0n1/olidep01/optee_fvp/build/../toolchains/aarch64/bin/aarch64-linux-gnu-" ARCH=arm64 M=drivers/char/tpm  \
	modules_install INSTALL_MOD_PATH=/data_nvme0n1/olidep01/optee_fvp/build/../linux
make[1]: Entering directory '/data_nvme0n1/olidep01/optee_fvp/linux'
make[2]: Entering directory '/data_nvme0n1/olidep01/optee_fvp/linux/drivers/char/tpm'
make[4]: *** No rule to make target '/data_nvme0n1/olidep01/optee_fvp/build/../linux/lib/modules/6.18.0-gcf6e3218c251/updates/drivers/char/tpm/tpm_tis_core.ko', needed by 'depmod'.  Stop.
make[3]: *** [/data_nvme0n1/olidep01/optee_fvp/linux/Makefile:1916: modules_install] Error 2
make[2]: *** [/data_nvme0n1/olidep01/optee_fvp/linux/Makefile:248: __sub-make] Error 2
make[2]: Leaving directory '/data_nvme0n1/olidep01/optee_fvp/linux/drivers/char/tpm'
make[1]: *** [Makefile:248: __sub-make] Error 2
make[1]: Leaving directory '/data_nvme0n1/olidep01/optee_fvp/linux'
make: *** [Makefile:198: linux-ftpm-module] Error 2
make: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/data_nvme0n1/olidep01/optee_fvp/optee_os'
nonroot@56c3f4401d25:/data_nvme0n1/olidep01/optee_fvp/build$ 

MEASURED_BOOT=y MEASURED_BOOT_FTPM=n crashes at boot time

NOTICE:  Booting Trusted Firmware
NOTICE:  BL1: v2.14.0(release):v2.14.0
NOTICE:  BL1: Built : 12:00:29, Jun  1 2026
NOTICE:  BL1: Booting BL2
NOTICE:  BL2: v2.14.0(release):v2.14.0
NOTICE:  BL2: Built : 12:00:34, Jun  1 2026
ERROR:   Unable to write Event Log data to TOS_FW_CONFIG
ERROR:   bl2_plat_mboot_finish(): Unable to update TOS_FW_CONFIG

PANIC at PC : 0x000000000402c94c

Command lines above assume SPMC_AT_EL=2
This happens already with upstream without this change.

@odeprez
Copy link
Copy Markdown
Contributor Author

odeprez commented May 28, 2026

I observe this while booting linux

[ 6.056193] optee: probing for conduit method.
[ 6.056233] optee: api uid mismatch
[ 6.056279] optee firmware:optee: probe with driver optee failed with error -22
[ 6.056857] optee: revision 4.10 (a067036f)
[ 6.078576] optee: initialized driver

This happens already with upstream without this change.

@jenswikl
Copy link
Copy Markdown
Contributor

jenswikl commented Jun 1, 2026

Does this break upstream, or is upstream already broken?

@odeprez
Copy link
Copy Markdown
Contributor Author

odeprez commented Jun 1, 2026

Does this break upstream, or is upstream already broken?

Hi, I retried current v2.14 based integration and it already exhibits both the issues from above.

I fixed MEASURED_BOOT=y MEASURED_BOOT_FTPM=n with an additional change adding a tpm event log node to the SPMC manifest.

When SPD=spmd SPMD_SPM_AT_SEL2=1, TOS_FW_CONFIG is the S-EL2 SPMC
manifest. When used along with MEASURED_BOOT=1 the event log logic
within BL2 treats the SPMC manifest DTB as TOS_FW_CONFIG and tries
to write measured-boot event log fields into it. That write path
works if the DTB contains an arm,tpm_event_log node with the expected
properties.

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants