build: remove MAKE_BUILD_STRINGS function

This function causes the build message to be generated and compiled in
two different ways, with one way done inside `build_macros.mk` and the
other done inside `windows.mk`, mostly because it's done by generating
the C file on the command line.

We can instead replace this whole build message generation sequence with
a simple standard C compilation command and a normal C file.

Change-Id: I8bc136380c9585ddeec9a11154ee39ef70526f81
Signed-off-by: Chris Kay <chris.kay@arm.com>
This commit is contained in:
Chris Kay 2024-03-08 16:08:31 +00:00
parent 93a7a6d0ea
commit 758ccb802d
17 changed files with 59 additions and 56 deletions

View file

@ -372,6 +372,15 @@ endif
################################################################################ ################################################################################
include lib/compiler-rt/compiler-rt.mk include lib/compiler-rt/compiler-rt.mk
# Allow overriding the timestamp, for example for reproducible builds, or to
# synchronize timestamps across multiple projects.
# This must be set to a C string (including quotes where applicable).
BUILD_MESSAGE_TIMESTAMP ?= __TIME__", "__DATE__
DEFINES += -DBUILD_MESSAGE_TIMESTAMP='$(BUILD_MESSAGE_TIMESTAMP)'
DEFINES += -DBUILD_MESSAGE_VERSION_STRING='"$(VERSION_STRING)"'
DEFINES += -DBUILD_MESSAGE_VERSION='"$(VERSION)"'
BL_COMMON_SOURCES += common/bl_common.c \ BL_COMMON_SOURCES += common/bl_common.c \
common/tf_log.c \ common/tf_log.c \
common/${ARCH}/debug.S \ common/${ARCH}/debug.S \
@ -1682,7 +1691,7 @@ else
endif #(UNIX_MK) endif #(UNIX_MK)
romlib.bin: libraries FORCE romlib.bin: libraries FORCE
${Q}${MAKE} PLAT_DIR=${PLAT_DIR} BUILD_PLAT=${BUILD_PLAT} ENABLE_BTI=${ENABLE_BTI} ARM_ARCH_MINOR=${ARM_ARCH_MINOR} INCLUDES='${INCLUDES}' DEFINES='${DEFINES}' --no-print-directory -C ${ROMLIBPATH} all ${Q}${MAKE} PLAT_DIR=${PLAT_DIR} BUILD_PLAT=${BUILD_PLAT} ENABLE_BTI=${ENABLE_BTI} ARM_ARCH_MINOR=${ARM_ARCH_MINOR} INCLUDES=$(call escape-shell,$(INCLUDES)) DEFINES=$(call escape-shell,$(DEFINES)) --no-print-directory -C ${ROMLIBPATH} all
memmap: all memmap: all
ifdef UNIX_MK ifdef UNIX_MK

View file

@ -13,6 +13,7 @@
#include <arch_helpers.h> #include <arch_helpers.h>
#include <bl1/bl1.h> #include <bl1/bl1.h>
#include <common/bl_common.h> #include <common/bl_common.h>
#include <common/build_message.h>
#include <common/debug.h> #include <common/debug.h>
#include <drivers/auth/auth_mod.h> #include <drivers/auth/auth_mod.h>
#include <drivers/auth/crypto_mod.h> #include <drivers/auth/crypto_mod.h>
@ -73,7 +74,7 @@ void bl1_main(void)
/* Announce our arrival */ /* Announce our arrival */
NOTICE(FIRMWARE_WELCOME_STR); NOTICE(FIRMWARE_WELCOME_STR);
NOTICE("BL1: %s\n", version_string); NOTICE("BL1: %s\n", build_version_string);
NOTICE("BL1: %s\n", build_message); NOTICE("BL1: %s\n", build_message);
INFO("BL1: RAM %p - %p\n", (void *)BL1_RAM_BASE, (void *)BL1_RAM_LIMIT); INFO("BL1: RAM %p - %p\n", (void *)BL1_RAM_BASE, (void *)BL1_RAM_LIMIT);

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013-2023, Arm Limited and Contributors. All rights reserved. * Copyright (c) 2013-2024, Arm Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -11,6 +11,7 @@
#include <bl1/bl1.h> #include <bl1/bl1.h>
#include <bl2/bl2.h> #include <bl2/bl2.h>
#include <common/bl_common.h> #include <common/bl_common.h>
#include <common/build_message.h>
#include <common/debug.h> #include <common/debug.h>
#include <drivers/auth/auth_mod.h> #include <drivers/auth/auth_mod.h>
#include <drivers/auth/crypto_mod.h> #include <drivers/auth/crypto_mod.h>
@ -92,7 +93,7 @@ void bl2_main(void)
PMF_CAPTURE_TIMESTAMP(bl_svc, BL2_ENTRY, PMF_CACHE_MAINT); PMF_CAPTURE_TIMESTAMP(bl_svc, BL2_ENTRY, PMF_CACHE_MAINT);
#endif #endif
NOTICE("BL2: %s\n", version_string); NOTICE("BL2: %s\n", build_version_string);
NOTICE("BL2: %s\n", build_message); NOTICE("BL2: %s\n", build_message);
/* Perform remaining generic architectural setup in S-EL1 */ /* Perform remaining generic architectural setup in S-EL1 */

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2020, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2015-2024, Arm Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -14,6 +14,7 @@
#include <bl1/bl1.h> #include <bl1/bl1.h>
#include <bl2u/bl2u.h> #include <bl2u/bl2u.h>
#include <common/bl_common.h> #include <common/bl_common.h>
#include <common/build_message.h>
#include <common/debug.h> #include <common/debug.h>
#include <drivers/auth/auth_mod.h> #include <drivers/auth/auth_mod.h>
#include <drivers/console.h> #include <drivers/console.h>
@ -27,7 +28,7 @@
******************************************************************************/ ******************************************************************************/
void bl2u_main(void) void bl2u_main(void)
{ {
NOTICE("BL2U: %s\n", version_string); NOTICE("BL2U: %s\n", build_version_string);
NOTICE("BL2U: %s\n", build_message); NOTICE("BL2U: %s\n", build_message);
#if SCP_BL2U_BASE #if SCP_BL2U_BASE

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013-2023, Arm Limited and Contributors. All rights reserved. * Copyright (c) 2013-2024, Arm Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -13,6 +13,7 @@
#include <bl31/bl31.h> #include <bl31/bl31.h>
#include <bl31/ehf.h> #include <bl31/ehf.h>
#include <common/bl_common.h> #include <common/bl_common.h>
#include <common/build_message.h>
#include <common/debug.h> #include <common/debug.h>
#include <common/feat_detect.h> #include <common/feat_detect.h>
#include <common/runtime_svc.h> #include <common/runtime_svc.h>
@ -128,7 +129,7 @@ void bl31_main(void)
/* Init per-world context registers for non-secure world */ /* Init per-world context registers for non-secure world */
manage_extensions_nonsecure_per_world(); manage_extensions_nonsecure_per_world();
NOTICE("BL31: %s\n", version_string); NOTICE("BL31: %s\n", build_version_string);
NOTICE("BL31: %s\n", build_message); NOTICE("BL31: %s\n", build_message);
#if FEATURE_DETECTION #if FEATURE_DETECTION

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2016-2023, Arm Limited and Contributors. All rights reserved. * Copyright (c) 2016-2024, Arm Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -14,6 +14,7 @@
#include <arch.h> #include <arch.h>
#include <arch_helpers.h> #include <arch_helpers.h>
#include <common/bl_common.h> #include <common/bl_common.h>
#include <common/build_message.h>
#include <common/debug.h> #include <common/debug.h>
#include <common/runtime_svc.h> #include <common/runtime_svc.h>
#include <context.h> #include <context.h>
@ -175,7 +176,7 @@ uintptr_t get_arm_std_svc_args(unsigned int svc_mask)
*****************************************************************************/ *****************************************************************************/
void sp_min_main(void) void sp_min_main(void)
{ {
NOTICE("SP_MIN: %s\n", version_string); NOTICE("SP_MIN: %s\n", build_version_string);
NOTICE("SP_MIN: %s\n", build_message); NOTICE("SP_MIN: %s\n", build_message);
/* Perform the SP_MIN platform setup */ /* Perform the SP_MIN platform setup */

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013-2022, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2013-2024, Arm Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -14,6 +14,7 @@
#include <arch_helpers.h> #include <arch_helpers.h>
#include <bl32/tsp/tsp.h> #include <bl32/tsp/tsp.h>
#include <common/bl_common.h> #include <common/bl_common.h>
#include <common/build_message.h>
#include <common/debug.h> #include <common/debug.h>
#include "ffa_helpers.h" #include "ffa_helpers.h"
#include <lib/psci/psci.h> #include <lib/psci/psci.h>
@ -554,7 +555,7 @@ uint64_t tsp_main(void)
{ {
smc_args_t smc_args = {0}; smc_args_t smc_args = {0};
NOTICE("TSP: %s\n", version_string); NOTICE("TSP: %s\n", build_version_string);
NOTICE("TSP: %s\n", build_message); NOTICE("TSP: %s\n", build_message);
INFO("TSP: Total memory base : 0x%lx\n", (unsigned long) BL32_BASE); INFO("TSP: Total memory base : 0x%lx\n", (unsigned long) BL32_BASE);
INFO("TSP: Total memory size : 0x%lx bytes\n", BL32_TOTAL_SIZE); INFO("TSP: Total memory size : 0x%lx bytes\n", BL32_TOTAL_SIZE);

View file

@ -12,6 +12,7 @@
#include <arch_helpers.h> #include <arch_helpers.h>
#include <bl32/tsp/tsp.h> #include <bl32/tsp/tsp.h>
#include <common/bl_common.h> #include <common/bl_common.h>
#include <common/build_message.h>
#include <common/debug.h> #include <common/debug.h>
#include <lib/spinlock.h> #include <lib/spinlock.h>
#include <plat/common/platform.h> #include <plat/common/platform.h>
@ -27,7 +28,7 @@
******************************************************************************/ ******************************************************************************/
uint64_t tsp_main(void) uint64_t tsp_main(void)
{ {
NOTICE("TSP: %s\n", version_string); NOTICE("TSP: %s\n", build_version_string);
NOTICE("TSP: %s\n", build_message); NOTICE("TSP: %s\n", build_message);
INFO("TSP: Total memory base : 0x%lx\n", (unsigned long) BL32_BASE); INFO("TSP: Total memory base : 0x%lx\n", (unsigned long) BL32_BASE);
INFO("TSP: Total memory size : 0x%lx bytes\n", BL32_TOTAL_SIZE); INFO("TSP: Total memory size : 0x%lx bytes\n", BL32_TOTAL_SIZE);

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013-2022, Arm Limited and Contributors. All rights reserved. * Copyright (c) 2013-2024, Arm Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -12,6 +12,7 @@
#include <arch_features.h> #include <arch_features.h>
#include <arch_helpers.h> #include <arch_helpers.h>
#include <common/bl_common.h> #include <common/bl_common.h>
#include <common/build_message.h>
#include <common/debug.h> #include <common/debug.h>
#include <drivers/auth/auth_mod.h> #include <drivers/auth/auth_mod.h>
#include <drivers/io/io_storage.h> #include <drivers/io/io_storage.h>
@ -275,6 +276,5 @@ void print_entry_point_info(const entry_point_info_t *ep_info)
*/ */
const char *get_version(void) const char *get_version(void)
{ {
extern const char version[]; return build_version;
return version;
} }

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013-2022, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2013-2024, Arm Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -180,8 +180,6 @@ int load_auth_image(unsigned int image_id, image_info_t *image_data);
void dyn_disable_auth(void); void dyn_disable_auth(void);
#endif #endif
extern const char build_message[];
extern const char version_string[];
const char *get_version(void); const char *get_version(void);
void print_entry_point_info(const entry_point_info_t *ep_info); void print_entry_point_info(const entry_point_info_t *ep_info);

View file

@ -0,0 +1,14 @@
/*
* Copyright (c) 2024, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef BUILD_MESSAGE_H
#define BUILD_MESSAGE_H
static const char build_message[] = "Built : " BUILD_MESSAGE_TIMESTAMP;
static const char build_version_string[] = BUILD_MESSAGE_VERSION_STRING;
static const char build_version[] = BUILD_MESSAGE_VERSION;
#endif /* BUILD_MESSAGE_H */

View file

@ -438,11 +438,6 @@ define SOURCES_TO_OBJS
$(notdir $(patsubst %.S,%.o,$(filter %.S,$(1)))) $(notdir $(patsubst %.S,%.o,$(filter %.S,$(1))))
endef endef
# Allow overriding the timestamp, for example for reproducible builds, or to
# synchronize timestamps across multiple projects.
# This must be set to a C string (including quotes where applicable).
BUILD_MESSAGE_TIMESTAMP ?= __TIME__", "__DATE__
.PHONY: libraries .PHONY: libraries
# MAKE_LIB_DIRS macro defines the target for the directory where # MAKE_LIB_DIRS macro defines the target for the directory where
@ -562,30 +557,19 @@ $(eval OBJS += $(MODULE_OBJS))
$(ELF): $(OBJS) $(DEFAULT_LINKER_SCRIPT) $(LINKER_SCRIPTS) | $(1)_dirs libraries $(BL_LIBS) $(ELF): $(OBJS) $(DEFAULT_LINKER_SCRIPT) $(LINKER_SCRIPTS) | $(1)_dirs libraries $(BL_LIBS)
$$(ECHO) " LD $$@" $$(ECHO) " LD $$@"
ifdef MAKE_BUILD_STRINGS
$(call MAKE_BUILD_STRINGS,$(BUILD_DIR)/build_message.o)
else
@echo 'const char build_message[] = "Built : "$(BUILD_MESSAGE_TIMESTAMP); \
const char version_string[] = "${VERSION_STRING}"; \
const char version[] = "${VERSION}";' | \
$($(ARCH)-cc) $$(TF_CFLAGS) $$(CFLAGS) -xc -c - -o $(BUILD_DIR)/build_message.o
endif
ifeq ($($(ARCH)-ld-id),arm-link) ifeq ($($(ARCH)-ld-id),arm-link)
$$(Q)$($(ARCH)-ld) -o $$@ $$(TF_LDFLAGS) $$(LDFLAGS) $(BL_LDFLAGS) --entry=${1}_entrypoint \ $$(Q)$($(ARCH)-ld) -o $$@ $$(TF_LDFLAGS) $$(LDFLAGS) $(BL_LDFLAGS) --entry=${1}_entrypoint \
--predefine="-D__LINKER__=$(__LINKER__)" \ --predefine="-D__LINKER__=$(__LINKER__)" \
--predefine="-DTF_CFLAGS=$(TF_CFLAGS)" \ --predefine="-DTF_CFLAGS=$(TF_CFLAGS)" \
--map --list="$(MAPFILE)" --scatter=${PLAT_DIR}/scat/${1}.scat \ --map --list="$(MAPFILE)" --scatter=${PLAT_DIR}/scat/${1}.scat \
$(LDPATHS) $(LIBWRAPPER) $(LDLIBS) $(BL_LIBS) \ $(LDPATHS) $(LIBWRAPPER) $(LDLIBS) $(BL_LIBS) $(OBJS)
$(BUILD_DIR)/build_message.o $(OBJS)
else ifeq ($($(ARCH)-ld-id),gnu-gcc) else ifeq ($($(ARCH)-ld-id),gnu-gcc)
$$(Q)$($(ARCH)-ld) -o $$@ $$(TF_LDFLAGS) $$(LDFLAGS) $(BL_LDFLAGS) -Wl,-Map=$(MAPFILE) \ $$(Q)$($(ARCH)-ld) -o $$@ $$(TF_LDFLAGS) $$(LDFLAGS) $(BL_LDFLAGS) -Wl,-Map=$(MAPFILE) \
$(addprefix -Wl$(comma)--script$(comma),$(LINKER_SCRIPTS)) -Wl,--script,$(DEFAULT_LINKER_SCRIPT) \ $(addprefix -Wl$(comma)--script$(comma),$(LINKER_SCRIPTS)) -Wl,--script,$(DEFAULT_LINKER_SCRIPT) \
$(BUILD_DIR)/build_message.o \
$(OBJS) $(LDPATHS) $(LIBWRAPPER) $(LDLIBS) $(BL_LIBS) $(OBJS) $(LDPATHS) $(LIBWRAPPER) $(LDLIBS) $(BL_LIBS)
else else
$$(Q)$($(ARCH)-ld) -o $$@ $$(TF_LDFLAGS) $$(LDFLAGS) $(BL_LDFLAGS) -Map=$(MAPFILE) \ $$(Q)$($(ARCH)-ld) -o $$@ $$(TF_LDFLAGS) $$(LDFLAGS) $(BL_LDFLAGS) -Map=$(MAPFILE) \
$(addprefix -T ,$(LINKER_SCRIPTS)) --script $(DEFAULT_LINKER_SCRIPT) \ $(addprefix -T ,$(LINKER_SCRIPTS)) --script $(DEFAULT_LINKER_SCRIPT) \
$(BUILD_DIR)/build_message.o \
$(OBJS) $(LDPATHS) $(LIBWRAPPER) $(LDLIBS) $(BL_LIBS) $(OBJS) $(LDPATHS) $(LIBWRAPPER) $(LDLIBS) $(BL_LIBS)
endif endif
ifeq ($(DISABLE_BIN_GENERATION),1) ifeq ($(DISABLE_BIN_GENERATION),1)

View file

@ -79,16 +79,4 @@ endif
# This can be overridden from the command line or environment. # This can be overridden from the command line or environment.
BUILD_STRING ?= development build BUILD_STRING ?= development build
# The DOS echo shell command does not strip ' characters from the command
# parameters before printing. We therefore use an alternative method invoked
# by defining the MAKE_BUILD_STRINGS macro.
BUILT_TIME_DATE_STRING = const char build_message[] = "Built : "${BUILD_MESSAGE_TIMESTAMP};
VERSION_STRING_MESSAGE = const char version_string[] = "${VERSION_STRING}";
VERSION_MESSAGE = const char version[] = "${VERSION}";
define MAKE_BUILD_STRINGS
$$(file >$1.in,$$(TF_CFLAGS) $$(CFLAGS))
@echo $$(BUILT_TIME_DATE_STRING) $$(VERSION_STRING_MESSAGE) $$(VERSION_MESSAGE) | \
$($(ARCH)-cc) @$1.in -x c -c - -o $1
endef
MSVC_NMAKE := nmake.exe MSVC_NMAKE := nmake.exe

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2021, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2021-2024, Arm Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -12,6 +12,7 @@
#include <arch_helpers.h> #include <arch_helpers.h>
#include <bl1/bl1.h> #include <bl1/bl1.h>
#include <common/bl_common.h> #include <common/bl_common.h>
#include <common/build_message.h>
#include <common/debug.h> #include <common/debug.h>
#include <drivers/auth/auth_mod.h> #include <drivers/auth/auth_mod.h>
#include <drivers/console.h> #include <drivers/console.h>
@ -161,7 +162,7 @@ void bl1_main(void)
/* Announce our arrival */ /* Announce our arrival */
NOTICE(FIRMWARE_WELCOME_STR); NOTICE(FIRMWARE_WELCOME_STR);
NOTICE("BL1: %s\n", version_string); NOTICE("BL1: %s\n", build_version_string);
NOTICE("BL1: %s\n", build_message); NOTICE("BL1: %s\n", build_message);
INFO("BL1: RAM %p - %p\n", (void *)BL1_RAM_BASE, (void *)BL1_RAM_LIMIT); INFO("BL1: RAM %p - %p\n", (void *)BL1_RAM_BASE, (void *)BL1_RAM_LIMIT);
@ -244,4 +245,3 @@ void print_debug_loop_message(void)
NOTICE("BL1: Please connect the debugger to continue\n"); NOTICE("BL1: Please connect the debugger to continue\n");
} }
#endif #endif

View file

@ -5,6 +5,7 @@
*/ */
#include <arch_helpers.h> #include <arch_helpers.h>
#include <common/build_message.h>
#include <common/debug.h> #include <common/debug.h>
#include <common/desc_image_load.h> #include <common/desc_image_load.h>
#include <drivers/arm/css/sds.h> #include <drivers/arm/css/sds.h>
@ -142,7 +143,7 @@ static int plat_morello_append_config_node(struct morello_plat_info *plat_info,
return -1; return -1;
} }
err = fdt_setprop_string(fdt, nodeoffset_fw, "tfa-fw-version", version_string); err = fdt_setprop_string(fdt, nodeoffset_fw, "tfa-fw-version", build_version_string);
if (err < 0) { if (err < 0) {
WARN("NT_FW_CONFIG: Unable to set tfa-fw-version\n"); WARN("NT_FW_CONFIG: Unable to set tfa-fw-version\n");
} }

View file

@ -9,9 +9,10 @@
#include <stdint.h> #include <stdint.h>
#include <services/std_svc.h> #include <services/std_svc.h>
#include <string.h> #include <string.h>
#include <platform_def.h> #include <common/build_message.h>
#include <common/debug.h> #include <common/debug.h>
#include <common/runtime_svc.h> #include <common/runtime_svc.h>
#include <platform_def.h>
#include <imx_sip_svc.h> #include <imx_sip_svc.h>
#include <lib/el3_runtime/context_mgmt.h> #include <lib/el3_runtime/context_mgmt.h>
#include <lib/mmio.h> #include <lib/mmio.h>
@ -261,7 +262,7 @@ static uint64_t imx_get_commit_hash(u_register_t x2,
u_register_t x4) u_register_t x4)
{ {
/* Parse the version_string */ /* Parse the version_string */
char *parse = (char *)version_string; char *parse = (char *)build_version_string;
uint64_t hash = 0; uint64_t hash = 0;
do { do {

View file

@ -1,9 +1,10 @@
/* /*
* Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved. * Copyright (c) 2021-2024, Arm Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
#include <common/build_message.h>
#include <common/debug.h> #include <common/debug.h>
#include <plat/common/platform.h> #include <plat/common/platform.h>
#include <services/rmm_core_manifest.h> #include <services/rmm_core_manifest.h>
@ -86,7 +87,7 @@ int trp_validate_warmboot_args(uint64_t x0, uint64_t x1,
/* Main function for TRP */ /* Main function for TRP */
void trp_main(void) void trp_main(void)
{ {
NOTICE("TRP: %s\n", version_string); NOTICE("TRP: %s\n", build_version_string);
NOTICE("TRP: %s\n", build_message); NOTICE("TRP: %s\n", build_message);
NOTICE("TRP: Supported RMM-EL3 Interface ABI: v.%u.%u\n", NOTICE("TRP: Supported RMM-EL3 Interface ABI: v.%u.%u\n",
TRP_RMM_EL3_ABI_VERS_MAJOR, TRP_RMM_EL3_ABI_VERS_MINOR); TRP_RMM_EL3_ABI_VERS_MAJOR, TRP_RMM_EL3_ABI_VERS_MINOR);