#------------------------------------------------------------------------------- # Copyright (c) 2020-2022, Arm Limited. All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause # #------------------------------------------------------------------------------- cmake_policy(SET CMP0076 NEW) set(CMAKE_CURRENT_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}) #========================= Platform region defs ===============================# target_include_directories(platform_region_defs INTERFACE partition ) #========================= Platform common defs ===============================# if (${CMAKE_C_COMPILER_ID} STREQUAL ARMClang) if (${CMAKE_C_COMPILER_VERSION} VERSION_LESS "6.14") message(FATAL_ERROR "CPU (Cortex-M55) is only supported in ARMCLANG version 6.14 or newer.") endif() endif() # Specify the location of platform specific build dependencies. target_sources(tfm_s PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/device/source/startup_an552.c ) target_add_scatter_file(tfm_s $<$:${CMAKE_SOURCE_DIR}/platform/ext/common/armclang/tfm_common_s.sct> $<$:${CMAKE_SOURCE_DIR}/platform/ext/common/gcc/tfm_common_s.ld> $<$:${CMAKE_SOURCE_DIR}/platform/ext/common/iar/tfm_common_s.icf> ) if(NS) target_sources(tfm_ns PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/device/source/startup_an552.c ) target_add_scatter_file(tfm_ns $<$:${CMAKE_SOURCE_DIR}/platform/ext/common/armclang/tfm_common_ns.sct> $<$:${CMAKE_SOURCE_DIR}/platform/ext/common/gcc/tfm_common_ns.ld> $<$:${CMAKE_SOURCE_DIR}/platform/ext/common/iar/tfm_common_ns.icf> ) target_link_libraries(CMSIS_5_tfm_ns INTERFACE $<$:CMSIS_5_RTX_V8MMN> $<$,$,$>>:CMSIS_5_RTX_V8MMFN> $<$,$,$>>>:CMSIS_5_RTX_V8MMN> $<$:CMSIS_5_RTX_V81MMN> ) target_compile_options(tfm_ns PUBLIC ${COMPILER_CP_FLAG} ) target_link_options(tfm_ns PUBLIC ${LINKER_CP_OPTION} ) endif() if(BL2) target_sources(bl2 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/device/source/startup_an552.c ) target_add_scatter_file(bl2 $<$:${CMAKE_SOURCE_DIR}/platform/ext/common/armclang/tfm_common_bl2.sct> $<$:${CMAKE_SOURCE_DIR}/platform/ext/common/gcc/tfm_common_bl2.ld> $<$:${CMAKE_SOURCE_DIR}/platform/ext/common/iar/tfm_common_bl2.icf> ) endif() #========================= Platform Secure ====================================# target_include_directories(platform_s PUBLIC . ../common cmsis_drivers cmsis_drivers/config device device/config device/include device/source/armclang native_drivers partition services/src ${PLATFORM_DIR}/.. ) target_sources(platform_s PRIVATE cmsis_drivers/Driver_Flash.c cmsis_drivers/Driver_AN552_MPC.c cmsis_drivers/Driver_SSE300_PPC.c cmsis_drivers/Driver_USART.c device/source/device_definition.c device/source/system_core_init.c native_drivers/mpc_sie_drv.c native_drivers/mpu_armv8m_drv.c native_drivers/ppc_sse300_drv.c native_drivers/emulated_flash_drv.c native_drivers/syscounter_armv8-m_cntrl_drv.c native_drivers/uart_cmsdk_drv.c tfm_peripherals_def.c $<$,$>:${CMAKE_CURRENT_SOURCE_DIR}/plat_test.c> $<$:${CMAKE_CURRENT_SOURCE_DIR}/services/src/tfm_platform_system.c> ) target_sources(tfm_sprt PRIVATE # SLIH test Partition and FLIH test Partition access the timer as ARoT Partitions. # Put the driver to SPRT so that both SLIH and FLIH tests can access it. $<$,$>:${CMAKE_CURRENT_SOURCE_DIR}/native_drivers/systimer_armv8-m_drv.c> ) target_compile_options(platform_s PUBLIC ${COMPILER_CMSE_FLAG} ) # To configure S and NS timer in S side for FP interrupt test target_compile_definitions(platform_s PUBLIC $<$:TEST_NS_FPU> $<$:TEST_S_FPU> ) #========================= Platform Non-Secure ================================# target_sources(platform_ns PRIVATE cmsis_drivers/Driver_Flash.c cmsis_drivers/Driver_USART.c device/source/device_definition.c device/source/system_core_init.c native_drivers/uart_cmsdk_drv.c native_drivers/systimer_armv8-m_drv.c INTERFACE $<$:${CMAKE_CURRENT_SOURCE_DIR}/device/source/an552_ns_init.c> ) target_include_directories(platform_ns PUBLIC . ../common ${PLATFORM_DIR}/.. cmsis_drivers cmsis_drivers/config device device/config device/include device/source/armclang native_drivers partition ${CMAKE_SOURCE_DIR}/platform/ext/cmsis ) #========================= Platform BL2 =======================================# if(BL2) target_sources(platform_bl2 PRIVATE cmsis_drivers/Driver_Flash.c cmsis_drivers/Driver_USART.c device/source/device_definition.c device/source/system_core_init.c native_drivers/uart_cmsdk_drv.c native_drivers/emulated_flash_drv.c boot_hal_bl2.c ) target_include_directories(platform_bl2 PUBLIC cmsis_drivers cmsis_drivers/config device device/config device/include device/source/armclang native_drivers partition services/src PRIVATE . ${PLATFORM_DIR}/.. native_drivers ) endif() #========================= tfm_spm ============================================# target_sources(tfm_spm PRIVATE target_cfg.c tfm_hal_isolation.c tfm_hal_platform.c faults.c ${CMAKE_CURRENT_SOURCE_DIR}/tfm_interrupts.c )