1#------------------------------------------------------------------------------- 2# Copyright (c) 2023-2024, Arm Limited. All rights reserved. 3# 4# SPDX-License-Identifier: BSD-3-Clause 5# 6#------------------------------------------------------------------------------- 7 8cmake_policy(SET CMP0076 NEW) 9set(CMAKE_CURRENT_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}) 10 11add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../common common) 12 13# TFM_PLATFORM_VARIANT value for supported RD-Fremont platform variants: 14# - '0' for RD-Fremont platform 15# - '1' for RD-Fremont-Cfg1 platform 16# - '2' for RD-Fremont-Cfg2 platform 17 18if (TFM_PLATFORM_VARIANT STREQUAL "0") 19 target_compile_definitions(platform_common_interface 20 INTERFACE PLATFORM_VARIANT=0) 21elseif (TFM_PLATFORM_VARIANT STREQUAL "1") 22 target_compile_definitions(platform_common_interface 23 INTERFACE PLATFORM_VARIANT=1) 24elseif (TFM_PLATFORM_VARIANT STREQUAL "2") 25 target_compile_definitions(platform_common_interface 26 INTERFACE PLATFORM_VARIANT=2) 27else() 28 message(FATAL_ERROR "Please set TFM_PLATFORM_VARIANT to \n" 29 "'0' for RD-Fremont\n" 30 "'1' for RD-Fremont-Cfg1\n" 31 "'2' for RD-Fremont-Cfg2\n") 32endif() 33 34#========================= Platform Region Defs ===============================# 35 36target_include_directories(platform_region_defs 37 INTERFACE 38 . 39) 40 41#========================= Platform Secure ====================================# 42 43target_include_directories(platform_s 44 PUBLIC 45 cmsis_drivers 46 device 47 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/common 48 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi 49 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata 50 ${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011 51) 52 53target_sources(platform_s 54 PRIVATE 55 host_system.c 56 cmsis_drivers/Driver_Flash.c 57 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi/cfi_drv.c 58 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata/spi_strataflashj3_flash_lib.c 59 cmsis_drivers/Driver_USART.c 60 device/host_device_definition.c 61 device/rse_expansion_device_definition.c 62 ${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011/uart_pl011_drv.c 63 rse_expansion_peripherals_def.c 64 rse_comms/rse_comms_permissions_hal.c 65 $<$<EQUAL:${PLAT_MHU_VERSION},0>:${CMAKE_CURRENT_SOURCE_DIR}/../common/native_drivers/mhu_v3_x.c> 66 $<$<EQUAL:${PLAT_MHU_VERSION},0>:${CMAKE_CURRENT_SOURCE_DIR}/../common/native_drivers/mhu_wrapper_v3_x.c> 67) 68 69#========================= Platform BL2 =======================================# 70 71target_sources(platform_bl2 72 PRIVATE 73 bl2/boot_hal_bl2.c 74 bl2/flash_map_bl2.c 75 bl2/interrupts_bl2.c 76 host_system.c 77 cmsis_drivers/Driver_Flash.c 78 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi/cfi_drv.c 79 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata/spi_strataflashj3_flash_lib.c 80 cmsis_drivers/Driver_USART.c 81 device/host_device_definition.c 82 device/rse_expansion_device_definition.c 83 host_drivers/mscp_drv.c 84 ${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011/uart_pl011_drv.c 85 ni_tower_periph_lib.c 86 ni_tower_sysctrl_lib.c 87 $<$<EQUAL:${PLAT_MHU_VERSION},0>:${CMAKE_CURRENT_SOURCE_DIR}/../common/native_drivers/mhu_v3_x.c> 88 $<$<EQUAL:${PLAT_MHU_VERSION},0>:${CMAKE_CURRENT_SOURCE_DIR}/../common/native_drivers/mhu_wrapper_v3_x.c> 89) 90 91target_compile_definitions(platform_bl2 92 PRIVATE 93 MEASURED_BOOT_HASH_ALG=${MEASURED_BOOT_HASH_ALG} 94) 95 96target_include_directories(platform_bl2 97 PUBLIC 98 bl2 99 cmsis_drivers 100 device 101 host_drivers 102 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/common 103 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi 104 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata 105 ${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011 106) 107 108target_compile_definitions(platform_bl2 109 PRIVATE 110 PLAT_LCP_COUNT=${PLAT_LCP_COUNT} 111 PLATFORM_HOST_HAS_SCP 112 PLATFORM_HOST_HAS_MCP 113) 114 115#========================= Platform BL1_1 =====================================# 116 117target_sources(platform_bl1_1 118 PRIVATE 119 cmsis_drivers/Driver_Flash.c 120 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi/cfi_drv.c 121 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata/spi_strataflashj3_flash_lib.c 122 cmsis_drivers/Driver_USART.c 123 device/host_device_definition.c 124 device/rse_expansion_device_definition.c 125 ${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011/uart_pl011_drv.c 126 $<$<EQUAL:${PLAT_MHU_VERSION},0>:${CMAKE_CURRENT_SOURCE_DIR}/../common/native_drivers/mhu_v2_x.c> 127 $<$<EQUAL:${PLAT_MHU_VERSION},0>:${CMAKE_CURRENT_SOURCE_DIR}/../common/native_drivers/mhu_wrapper_v2_x.c> 128 $<$<BOOL:${RSE_ENABLE_BRINGUP_HELPERS}>:${CMAKE_CURRENT_SOURCE_DIR}/bl1/rse_bringup_helpers_hal.c> 129) 130 131target_include_directories(platform_bl1_1_interface 132 INTERFACE 133 cmsis_drivers 134 device 135 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/common 136 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi 137 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata 138 ${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011 139) 140 141#========================= Platform BL1_2 =====================================# 142 143target_include_directories(platform_bl1_2 144 PUBLIC 145 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/common 146 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi 147 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata 148 ${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011 149 cmsis_drivers 150 device 151) 152 153#==================== Files for building NS side platform =====================# 154 155install(FILES ${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011/uart_pl011_drv.c 156 ${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011/uart_pl011_drv.h 157 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata/spi_strataflashj3_flash_lib.c 158 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata/spi_strataflashj3_flash_lib.h 159 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi/cfi_drv.c 160 ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi/cfi_drv.h 161 DESTINATION ${INSTALL_PLATFORM_NS_DIR}/native_drivers 162) 163 164install(DIRECTORY cmsis_drivers 165 DESTINATION ${INSTALL_PLATFORM_NS_DIR} 166) 167 168install(DIRECTORY device 169 DESTINATION ${INSTALL_PLATFORM_NS_DIR} 170) 171 172install(DIRECTORY ns/ 173 DESTINATION ${INSTALL_PLATFORM_NS_DIR}) 174 175install(FILES cpuarch.cmake 176 config.cmake 177 DESTINATION ${INSTALL_PLATFORM_NS_DIR}/config/subplatform/) 178 179install(FILES tests/tfm_tests_ns_config.cmake 180 DESTINATION ${INSTALL_PLATFORM_NS_DIR}/tests 181 RENAME tfm_tests_config.cmake) 182