1# 2# Arm SCP/MCP Software 3# Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved. 4# 5# SPDX-License-Identifier: BSD-3-Clause 6# 7 8# 9# Create the firmware target. 10# 11 12add_executable(rcar-bl2) 13 14target_include_directories( 15 rcar-bl2 16 PUBLIC 17 "${CMAKE_CURRENT_SOURCE_DIR}/../src/CMSIS-FreeRTOS/Source/include" 18 "${CMAKE_CURRENT_SOURCE_DIR}/../src/CMSIS-FreeRTOS/Source/portable/GCC/ARM_CA53_64_Rcar" 19 "${CMAKE_CURRENT_SOURCE_DIR}/../include" 20 "${CMAKE_CURRENT_SOURCE_DIR}") 21 22# cmake-lint: disable=E1122 23 24set(freertos_source "${CMAKE_CURRENT_SOURCE_DIR}/../src/CMSIS-FreeRTOS/Source") 25set(freertos2_source 26 "${CMAKE_CURRENT_SOURCE_DIR}/../src/CMSIS-FreeRTOS/CMSIS/RTOS2/FreeRTOS/Source") 27 28target_sources( 29 rcar-bl2 30 PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/config_rcar_scif.c" 31 "${CMAKE_CURRENT_SOURCE_DIR}/config_power_domain.c" 32 "${CMAKE_CURRENT_SOURCE_DIR}/config_rcar_pd_sysc.c" 33 "${CMAKE_CURRENT_SOURCE_DIR}/config_rcar_pd_core.c" 34 "${CMAKE_CURRENT_SOURCE_DIR}/config_rcar_pd_pmic_bd9571.c" 35 "${CMAKE_CURRENT_SOURCE_DIR}/config_sensor.c" 36 "${CMAKE_CURRENT_SOURCE_DIR}/config_clock.c" 37 "${CMAKE_CURRENT_SOURCE_DIR}/config_rcar_clock.c" 38 "${CMAKE_CURRENT_SOURCE_DIR}/config_rcar_sd_clock.c" 39 "${CMAKE_CURRENT_SOURCE_DIR}/config_rcar_mstp_clock.c" 40 "${CMAKE_CURRENT_SOURCE_DIR}/config_rcar_ext_clock.c" 41 "${CMAKE_CURRENT_SOURCE_DIR}/config_dvfs.c" 42 "${CMAKE_CURRENT_SOURCE_DIR}/config_psu.c" 43 "${CMAKE_CURRENT_SOURCE_DIR}/config_rcar_pmic.c" 44 "${CMAKE_CURRENT_SOURCE_DIR}/config_rcar_mock_pmic_bd9571.c" 45 "${CMAKE_CURRENT_SOURCE_DIR}/config_rcar_mfismh.c" 46 "${CMAKE_CURRENT_SOURCE_DIR}/config_timer.c" 47 "${CMAKE_CURRENT_SOURCE_DIR}/config_transport.c" 48 "${CMAKE_CURRENT_SOURCE_DIR}/config_scmi.c" 49 "${CMAKE_CURRENT_SOURCE_DIR}/config_scmi_perf.c" 50 "${CMAKE_CURRENT_SOURCE_DIR}/config_scmi_system_power.c" 51 "${CMAKE_CURRENT_SOURCE_DIR}/config_scmi_clock.c" 52 "${CMAKE_CURRENT_SOURCE_DIR}/config_scmi_apcore.c" 53 "${CMAKE_CURRENT_SOURCE_DIR}/config_scmi_power_domain.c" 54 "${CMAKE_CURRENT_SOURCE_DIR}/config_rcar_system_power.c" 55 "${CMAKE_CURRENT_SOURCE_DIR}/config_rcar_system.c" 56 "${CMAKE_CURRENT_SOURCE_DIR}/config_sds.c" 57 "${CMAKE_CURRENT_SOURCE_DIR}/../src/rcar_core.c" 58 "${freertos_source}/timers.c" 59 "${freertos_source}/list.c" 60 "${freertos_source}/queue.c" 61 "${freertos_source}/tasks.c" 62 "${freertos_source}/portable/MemMang/heap_1.c" 63 "${freertos_source}/portable/GCC/ARM_CA53_64_Rcar/portASM.S" 64 "${freertos_source}/portable/GCC/ARM_CA53_64_Rcar/port.c" 65 "${freertos2_source}/cmsis_os2_tiny4scp.c") 66 67if(SCP_ENABLE_RESOURCE_PERMISSIONS) 68 target_sources(rcar-bl2 69 PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/config_resource_perms.c") 70endif() 71 72if(SCP_ENABLE_SCMI_RESET) 73 target_sources(rcar-bl2 74 PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/config_rcar_reset.c" 75 "${CMAKE_CURRENT_SOURCE_DIR}/config_reset_domain.c" 76 "${CMAKE_CURRENT_SOURCE_DIR}/config_scmi_reset_domain.c") 77endif() 78 79# 80# We explicitly add the CMSIS include directories to our interfaceinclude 81# directories. Each module target adds these include directories totheir own, 82# allowing them to include any firmware includes we expose. 83# 84 85target_include_directories(rcar-bl2 86 PUBLIC $<TARGET_PROPERTY:cmsis::rtos2,INTERFACE_INCLUDE_DIRECTORIES>) 87 88target_include_directories(rcar-bl2 89 PUBLIC $<TARGET_PROPERTY:cmsis::core-m,INTERFACE_INCLUDE_DIRECTORIES>) 90 91if(SCP_ENABLE_SCMI_RESET) 92 list(APPEND SCP_MODULES "reset-domain") 93 list(APPEND SCP_MODULES "rcar-reset") 94 list(APPEND SCP_MODULES "scmi-reset-domain") 95endif() 96 97if(SCP_ENABLE_RESOURCE_PERMISSIONS) 98 list(APPEND SCP_MODULES "resource-perms") 99endif() 100 101set(SCP_MODULES ${SCP_MODULES} PARENT_SCOPE) 102set(SCP_MODULE_PATHS ${SCP_MODULE_PATHS} PARENT_SCOPE) 103