lock_lfvx/bk_idk/components/tfm/CMakeLists.txt

131 lines
3.9 KiB
CMake
Raw Normal View History

2025-10-10 16:07:00 +08:00
armino_build_get_property(target ARMINO_SOC)
if(NOT "${target}" STREQUAL "bk7236")
return()
endif()
set(incs)
set(srcs)
if (CONFIG_TFM)
list(APPEND srcs
tfm_ns_interface.c
tfm/interface/src/tfm_psa_ns_api.c
)
list(APPEND incs
tfm/interface/include
tfm/secure_fw/include
${CMAKE_BINARY_DIR}/armino/tfm/generated/interface/include
)
endif()
if (CONFIG_TFM_SYSTEM_CLOCK)
list(APPEND srcs
tfm/interface/src/tfm_system_clock_ipc_api.c
)
endif()
if (CONFIG_TFM_FWU)
list(APPEND srcs
tfm/interface/src/tfm_firmware_update_ipc_api.c
)
endif()
if (CONFIG_TFM_CRYPTO)
list(APPEND srcs
tfm/interface/src/tfm_crypto_ipc_api.c
)
endif()
if (CONFIG_TFM_PS)
list(APPEND srcs
tfm/interface/src/tfm_ps_ipc_api.c
)
endif()
armino_component_register(SRCS "${srcs}"
INCLUDE_DIRS "${incs}"
REQUIRES partitions)
if (CONFIG_TFM)
armino_build_get_property(partition_hdr_dir PARTITIONS_HDR_DIR)
set(armino_dir ${COMPONENT_DIR}/../..)
set(tfm_dir ${COMPONENT_DIR}/tfm)
set(tfm_platform beken/${target})
set(tfm_toolchain_path ${CONFIG_TOOLCHAIN_PATH})
set(tfm_build_dir ${CMAKE_BINARY_DIR}/armino/tfm)
set(tfm_install_dir ${CMAKE_BINARY_DIR}/tfm_install)
include(ExternalProject)
ExternalProject_Add(tfm_project
SOURCE_DIR ${tfm_dir}
CONFIGURE_COMMAND ""
BUILD_IN_SOURCE 1
CMAKE_ARGS
BUILD_COMMAND
cmake
-G Ninja
-B ${tfm_build_dir}
-DCMAKE_PREFIX_PATH=${tfm_toolchain_path}
-DCMAKE_INSTALL_PREFIX=${tfm_install_dir}
-DARMINO_SDK_PATH=${armino_path}
-DTFM_PLATFORM=${tfm_platform}
-DTFM_TOOLCHAIN_FILE=toolchain_GNUARM.cmake
-DCMAKE_BUILD_TYPE=${CONFIG_TFM_BUILD_TYPE}
-DTEST_S=${CONFIG_TFM_TEST_S}
-DTEST_NS=${CONFIG_TFM_TEST_NS}
-DUSER=$ENV{USER}
-DBL2=${CONFIG_TFM_BL2}
-DTFM_PROFILE=profile_medium
-DFPGA=${CONFIG_TFM_FPGA}
-DOTP_NV_COUNTERS_RAM_EMULATION=${CONFIG_OTP_NV_COUNTERS_RAM_EMULATION}
-DPLATFORM_DEFAULT_OTP_WRITEABLE=${CONFIG_PLATFORM_DEFAULT_OTP_WRITEABLE}
-DMCUBOOT_LOG_LEVEL=${CONFIG_TFM_BL2_LOG_LEVEL}
-DPARTITION_HDR_DIR=${partition_hdr_dir}
-DMCUBOOT_UPGRADE_STRATEGY=${CONFIG_BL2_UPGRADE_STRATEGY}
-DTFM_AON_PMU_LL_NSC=${CONFIG_TFM_AON_PMU_LL_NSC}
-DTFM_SYS_LL_NSC=${CONFIG_TFM_SYS_LL_NSC}
-DCONFIG_TFM_BK7236_V5=${CONFIG_TFM_BK7236_V5}
-DBL2_DOWNLOAD=${CONFIG_TFM_BL2_DOWNLOAD}
-DBL2_SECURE_DEBUG=${CONFIG_TFM_SECURE_DEBUG}
-DCONFIG_REG_ACCESS_NSC=${CONFIG_TFM_REG_ACCESS_NSC}
-DCONFIG_MPC_NSC=${CONFIG_TFM_MPC_NSC}
-DCONFIG_FLASH_NSC=${CONFIG_TFM_FLASH_NSC}
-DCONFIG_DUBHE_KEY_LADDER_NSC=${CONFIG_TFM_DUBHE_KEY_LADDER_NSC}
-DCONFIG_OTP_NSC=${CONFIG_TFM_OTP_NSC}
-DCONFIG_INT_TARGET_NSC=${CONFIG_TFM_INT_TARGET_NSC}
-DCONFIG_TFM_MPU=${CONFIG_TFM_MPU}
-DCONFIG_TFM_PANIC_DEAD_LOOP=${CONFIG_TFM_PANIC_DEAD_LOOP}
-DCONFIG_XIP_NO_VERSION=${CONFIG_XIP_NO_VERSION}
-DCONFIG_BL2_VALIDATE_ENABLED_BY_EFUSE=${CONFIG_BL2_VALIDATE_ENABLED_BY_EFUSE}
-DCONFIG_BL2_SKIP_VALIDATE=${CONFIG_BL2_SKIP_VALIDATE}
-DCONFIG_BL2_WDT=${CONFIG_BL2_WDT}
-DCONFIG_PM_NSC=${CONFIG_PM_NSC}
-DCONFIG_AES_GCM_NSC=${CONFIG_TFM_AES_GCM_NSC}
-DCONFIG_STARTUP_PERFORMANCE=${CONFIG_STARTUP_PERFORMANCE}
-DCONFIG_TFM_RAM_SIZE=${CONFIG_CPU0_SPE_RAM_SIZE}
-DCONFIG_TFM_HEAP_SIZE=${CONFIG_TFM_HEAP_SIZE}
-DCONFIG_BL2_WDT_PERIOD=${CONFIG_BL2_WDT_PERIOD}
-DCONFIG_INITIAL_ATTESTATION=${CONFIG_INITIAL_ATTESTATION}
-DCONFIG_TFM_CRYPTO_IOVEC_BUFFER_SIZE=${CONFIG_TFM_CRYPTO_IOVEC_BUFFER_SIZE}
&& cd ${tfm_build_dir}
&& ninja -- install
BUILD_BYPRODUCTS ${tfm_build_dir}/secure_fw/libtfm_s_veneers.a
BUILD_ALWAYS 1
INSTALL_COMMAND ""
)
add_dependencies(${COMPONENT_LIB} tfm_project)
add_library(lib_tfm STATIC IMPORTED GLOBAL)
add_dependencies(lib_tfm tfm_project)
if (CONFIG_TFM_SYSTEM_CLOCK OR CONFIG_TFM_FWU)
set_target_properties(lib_tfm PROPERTIES IMPORTED_LOCATION ${tfm_build_dir}/secure_fw/libtfm_s_veneers.a)
target_link_libraries(${COMPONENT_LIB} PUBLIC lib_tfm)
target_compile_definitions(${COMPONENT_LIB}
PRIVATE
TFM_PSA_API
)
endif()
endif()