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>
54 lines
1.5 KiB
CMake
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()
|