diff mbox series

boot/arm-trusted-firmware: set BUILD_STRING to package version

Message ID 20231102111447.2163334-1-peter@korsgaard.com
State Accepted
Headers show
Series boot/arm-trusted-firmware: set BUILD_STRING to package version | expand

Commit Message

Peter Korsgaard Nov. 2, 2023, 11:14 a.m. UTC
TF-A prints a version string at boot which includes the version number as
specified in the Makefile and additional "build" information, specified by
the BUILD_STRING parameter:

https://trustedfirmware-a.readthedocs.io/en/v2.9/getting_started/build-options.html

BUILD_STRING: Input string for VERSION_STRING, which allows the TF-A build
to be uniquely identified.  Defaults to the current git commit id.

This is implemented as:

 # Default build string (git branch and commit)
 ifeq (${BUILD_STRING},)
	BUILD_STRING  :=  $(shell git describe --always --dirty --tags 2> /dev/null)
 endif

https://github.com/ARM-software/arm-trusted-firmware/blob/master/Makefile#L225-L228

Which is never correct in the context of Buildroot, as the TF-A build
directory is never a git repo, and git will move up the directory tree and
possibly and (possibly) pick up the git version of Buildroot instead.

To fix that, explicitly set BUILD_STRING to the version of the package.
Pass it before BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES so it
can still be overridden by the user if needed.

strings images/tf-a-* | egrep '^v2\.'
v2.9(debug):2023.08-859-g99d78b52a0
v2.9(debug):v2.9

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
 boot/arm-trusted-firmware/arm-trusted-firmware.mk | 1 +
 1 file changed, 1 insertion(+)

Comments

Peter Korsgaard Nov. 8, 2023, 1:38 p.m. UTC | #1
>>>>> "Peter" == Peter Korsgaard <peter@korsgaard.com> writes:

 > TF-A prints a version string at boot which includes the version number as
 > specified in the Makefile and additional "build" information, specified by
 > the BUILD_STRING parameter:

 > https://trustedfirmware-a.readthedocs.io/en/v2.9/getting_started/build-options.html

 > BUILD_STRING: Input string for VERSION_STRING, which allows the TF-A build
 > to be uniquely identified.  Defaults to the current git commit id.

 > This is implemented as:

 >  # Default build string (git branch and commit)
 >  ifeq (${BUILD_STRING},)
 > 	BUILD_STRING  :=  $(shell git describe --always --dirty --tags 2> /dev/null)
 >  endif

 > https://github.com/ARM-software/arm-trusted-firmware/blob/master/Makefile#L225-L228

 > Which is never correct in the context of Buildroot, as the TF-A build
 > directory is never a git repo, and git will move up the directory tree and
 > possibly and (possibly) pick up the git version of Buildroot instead.

 > To fix that, explicitly set BUILD_STRING to the version of the package.
 > Pass it before BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES so it
 > can still be overridden by the user if needed.

 > strings images/tf-a-* | egrep '^v2\.'
 > v2.9(debug):2023.08-859-g99d78b52a0
 > v2.9(debug):v2.9

 > Signed-off-by: Peter Korsgaard <peter@korsgaard.com>

Committed to 2023.02.x and 2023.08.x, thanks.
diff mbox series

Patch

diff --git a/boot/arm-trusted-firmware/arm-trusted-firmware.mk b/boot/arm-trusted-firmware/arm-trusted-firmware.mk
index 648f62ed85..049beed36a 100644
--- a/boot/arm-trusted-firmware/arm-trusted-firmware.mk
+++ b/boot/arm-trusted-firmware/arm-trusted-firmware.mk
@@ -60,6 +60,7 @@  endif
 
 ARM_TRUSTED_FIRMWARE_MAKE_OPTS += \
 	CROSS_COMPILE="$(TARGET_CROSS)" \
+	BUILD_STRING=$(ARM_TRUSTED_FIRMWARE_VERSION) \
 	$(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES)) \
 	PLAT=$(ARM_TRUSTED_FIRMWARE_PLATFORM) \
 	TARGET_BOARD=$(ARM_TRUSTED_FIRMWARE_TARGET_BOARD)