Regression in TF-A installed/deployed artifacts

Quentin Schulz <[email protected]> Fri, 9 Jan 2026 16:27:43 +0100
Newsgroups org.yoctoproject.lists.meta-arm
Message-ID <[email protected]>
Hi,

I believe there's been a regression since commit 7bce36a2c64b 
("arm/trusted-firmware-a: Use firmware.bbclass") where the installed 
name isn't bl31-<platform>.elf anymore, but simply bl31.elf.

This commit removed -${TFA_PLATFORM} from the installed firmware 
filename (and the symlink). The commit log seems to hint that this was 
intended "Drop the redundant ${TFA_PLATFORM} suffixes."... which isn't?

Changing TFA_INSTALL_SUFFIX to the value of TFA_PLATFORM (it currently 
is the empty string) would help with that but then you either have 
bl31.elf or bl31-rk3399.elf (for example). I don't mind about that, but 
still odd to remove a symlink.

meta-rockchip has support for TF-A binary blobs from Rockchip, which we 
do name bl31-rk3399.elf and since this filename needs to be consistent 
between upstream tf-a and blob tf-a (and we cannot modify U-Boot's BL31 
variable from TF-A's recipe due to variable scope), this broke builds of 
meta-rockchip and forced the following (yet incomplete) band-aid patch 
https://git.yoctoproject.org/meta-rockchip/commit/?id=2a13a49da4af4487ee71db6aff19364220da694a. 
I'm now trying to figure out how to properly fix that.

Additionally, the binaries are now forced into a subdirectory named 
after the recipe (see do_deploy in firmware.bbclass) and cannot be 
modified. So I need to patch our TF-A blob recipe to install in the 
identically named directory (that is, trusted-firmware-a/) so that 
U-Boot can find the binary named the same in the same location 
regardless of the kind of TF-A we're building. It does feel kinda wrong 
doing that.

Maybe you can explain the rationale behind those choices? And what's the 
best course of action for meta-rockchip?

Thanks!
Quentin