1#-------------------------------------------------------------------------------
2# Copyright (c) 2022-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#========================= Platform region defs ===============================#
14
15target_include_directories(platform_region_defs
16    INTERFACE
17        .
18)
19
20#========================= Platform_s =========================================#
21
22target_sources(platform_s
23    PRIVATE
24        cmsis_drivers/Driver_Flash.c
25        device/host_device_definition.c
26        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi/cfi_drv.c
27        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata/spi_strataflashj3_flash_lib.c
28        $<$<NOT:$<BOOL:${RSE_DEBUG_UART}>>:${CMAKE_CURRENT_SOURCE_DIR}/cmsis_drivers/Driver_USART.c>
29        $<$<NOT:$<BOOL:${RSE_DEBUG_UART}>>:${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011/uart_pl011_drv.c>
30        rse_comms/rse_comms_permissions_hal.c
31)
32
33target_include_directories(platform_s
34    PUBLIC
35        ./cmsis_drivers
36        ./device
37        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/common
38        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi
39        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata
40        $<$<NOT:$<BOOL:${RSE_DEBUG_UART}>>:${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011>
41)
42
43#========================= Platform BL2 =======================================#
44
45target_sources(platform_bl2
46    PRIVATE
47        bl2/boot_hal_bl2.c
48        bl2/flash_map_bl2.c
49        cmsis_drivers/Driver_Flash.c
50        cmsis_drivers/Driver_Flash.c
51        device/host_device_definition.c
52        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi/cfi_drv.c
53        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata/spi_strataflashj3_flash_lib.c
54        $<$<NOT:$<BOOL:${RSE_DEBUG_UART}>>:${CMAKE_CURRENT_SOURCE_DIR}/cmsis_drivers/Driver_USART.c>
55        $<$<NOT:$<BOOL:${RSE_DEBUG_UART}>>:${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011/uart_pl011_drv.c>
56)
57
58target_include_directories(platform_bl2
59    PUBLIC
60        ./cmsis_drivers
61        ./device
62        ./bl2
63        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/common
64        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi
65        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata
66        $<$<NOT:$<BOOL:${RSE_DEBUG_UART}>>:${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011>
67)
68
69#========================= Platform BL1 =======================================#
70
71target_sources(platform_bl1_1
72    PRIVATE
73        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi/cfi_drv.c
74        cmsis_drivers/Driver_Flash.c
75        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata/spi_strataflashj3_flash_lib.c
76        $<$<NOT:$<BOOL:${RSE_DEBUG_UART}>>:${CMAKE_CURRENT_SOURCE_DIR}/cmsis_drivers/Driver_USART.c>
77        $<$<NOT:$<BOOL:${RSE_DEBUG_UART}>>:${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011/uart_pl011_drv.c>
78        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata/spi_strataflashj3_flash_lib.c
79        device/host_device_definition.c
80        $<$<BOOL:${RSE_ENABLE_BRINGUP_HELPERS}>:${CMAKE_CURRENT_SOURCE_DIR}/bl1/rse_bringup_helpers_hal.c>
81)
82
83target_include_directories(platform_bl1_1_interface
84    INTERFACE
85        ./cmsis_drivers
86        ./device
87        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/common
88        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi
89        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata
90        $<$<NOT:$<BOOL:${RSE_DEBUG_UART}>>:${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011>
91)
92
93target_include_directories(platform_bl1_2
94    PUBLIC
95        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/common
96        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi
97        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata
98        $<$<NOT:$<BOOL:${RSE_DEBUG_UART}>>:${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011>
99)
100
101#========================= Files for building NS side platform ================#
102
103install(FILES       $<$<NOT:$<BOOL:${RSE_DEBUG_UART}>>:${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011/uart_pl011_drv.c>
104                    $<$<NOT:$<BOOL:${RSE_DEBUG_UART}>>:${PLATFORM_DIR}/ext/target/arm/drivers/usart/pl011/uart_pl011_drv.h>
105                    ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata/spi_strataflashj3_flash_lib.c
106                    ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata/spi_strataflashj3_flash_lib.h
107                    ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi/cfi_drv.c
108                    ${PLATFORM_DIR}/ext/target/arm/drivers/flash/cfi/cfi_drv.h
109        DESTINATION ${INSTALL_PLATFORM_NS_DIR}/native_drivers
110)
111
112install(DIRECTORY   cmsis_drivers
113        DESTINATION ${INSTALL_PLATFORM_NS_DIR}
114)
115
116install(DIRECTORY   device
117        DESTINATION ${INSTALL_PLATFORM_NS_DIR}
118)
119
120install(FILES       rse_memory_sizes.h
121                    flash_layout.h
122                    host_base_address.h
123        DESTINATION ${INSTALL_PLATFORM_NS_DIR}/partition)
124
125install(DIRECTORY   ns/
126        DESTINATION ${INSTALL_PLATFORM_NS_DIR})
127
128install(FILES       cpuarch.cmake
129                    config.cmake
130        DESTINATION ${INSTALL_PLATFORM_NS_DIR}/config/subplatform/)
131
132install(FILES       tests/tfm_tests_ns_config.cmake
133        DESTINATION ${INSTALL_PLATFORM_NS_DIR}/tests
134        RENAME      tfm_tests_config.cmake)
135