Files
zephyr/modules/trusted-firmware-a/CMakeLists.txt
Appana Durga Kedareswara rao 927584b773 modules: tf-a: Add extensible board-specific build parameter support
Enhance the TF-A build system to support board-specific build parameters
through TFA_EXTRA_ARGS mechanism.

Changes:
- Add TFA_EXTRA_ARGS variable support for board-specific parameters
- Implement proper string-to-list conversion for make argument expansion

This allows individual board configurations to specify platform-specific
TF-A build parameters without modifying the core TF-A build logic.

Signed-off-by: Appana Durga Kedareswara rao <appana.durga.kedareswara.rao@amd.com>
2025-12-03 09:10:37 -05:00

54 lines
1.5 KiB
CMake

# Copyright (c) 2022 Arm Limited (or its affiliates). All rights reserved.
# SPDX-License-Identifier: Apache-2.0
if(CONFIG_BUILD_WITH_TFA)
set(TFA_BINARY_DIR ${CMAKE_BINARY_DIR}/tfa)
file(MAKE_DIRECTORY ${TFA_BINARY_DIR})
include(ExternalProject)
set(tfa_image_info MAP "name: tfa, source-dir: ${ZEPHYR_TRUSTED_FIRMWARE_A_MODULE_DIR}")
build_info(images VALUE ${tfa_image_info})
ExternalProject_Add(
tfa
SOURCE_DIR ${ZEPHYR_TRUSTED_FIRMWARE_A_MODULE_DIR}
BINARY_DIR ${TFA_BINARY_DIR}
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
BUILD_ALWAYS True
USES_TERMINAL_BUILD True
)
if(CONFIG_TFA_MAKE_BUILD_TYPE_DEBUG)
set(TFA_BUILD_DEBUG "1")
else()
set(TFA_BUILD_DEBUG "0")
endif()
# ARMv9-A is AArch64-only, disable AArch32 register context
if(CONFIG_ARMV9_A)
set(TFA_AARCH32_REGS "CTX_INCLUDE_AARCH32_REGS=0")
else()
set(TFA_AARCH32_REGS "")
endif()
# Set default TF-A build parameters that can be overridden by boards
if(NOT DEFINED TFA_EXTRA_ARGS)
set(TFA_EXTRA_ARGS "")
endif()
set_property(GLOBAL APPEND PROPERTY extra_post_build_commands
COMMAND make -C ${ZEPHYR_TRUSTED_FIRMWARE_A_MODULE_DIR}
DEBUG=${TFA_BUILD_DEBUG}
CROSS_COMPILE=${CROSS_COMPILE}
BUILD_BASE=${TFA_BINARY_DIR} PLAT=${TFA_PLAT}
BL33=${CMAKE_BINARY_DIR}/zephyr/${KERNEL_BIN_NAME}
${TFA_AARCH32_REGS}
${TFA_EXTRA_ARGS}
all fip
)
endif()