xref: /arm-trusted-firmware/bl32/tsp/tsp.mk (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu#
2*91f16700Schasinglulu# Copyright (c) 2013-2023, Arm Limited and Contributors. All rights reserved.
3*91f16700Schasinglulu#
4*91f16700Schasinglulu# SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu#
6*91f16700Schasinglulu
7*91f16700SchasingluluINCLUDES		+=	-Iinclude/bl32/tsp
8*91f16700Schasinglulu
9*91f16700Schasingluluifeq (${SPMC_AT_EL3},1)
10*91f16700Schasinglulu   BL32_SOURCES            +=      bl32/tsp/tsp_ffa_main.c                    \
11*91f16700Schasinglulu				   bl32/tsp/ffa_helpers.c
12*91f16700Schasingluluelse
13*91f16700Schasinglulu   BL32_SOURCES            +=      bl32/tsp/tsp_main.c
14*91f16700Schasingluluendif
15*91f16700Schasinglulu
16*91f16700SchasingluluBL32_SOURCES		+=	bl32/tsp/aarch64/tsp_entrypoint.S	\
17*91f16700Schasinglulu				bl32/tsp/aarch64/tsp_exceptions.S	\
18*91f16700Schasinglulu				bl32/tsp/aarch64/tsp_request.S		\
19*91f16700Schasinglulu				bl32/tsp/tsp_interrupt.c		\
20*91f16700Schasinglulu				bl32/tsp/tsp_timer.c			\
21*91f16700Schasinglulu				bl32/tsp/tsp_common.c			\
22*91f16700Schasinglulu				common/aarch64/early_exceptions.S	\
23*91f16700Schasinglulu				lib/locks/exclusive/aarch64/spinlock.S
24*91f16700Schasinglulu
25*91f16700SchasingluluBL32_DEFAULT_LINKER_SCRIPT_SOURCE := bl32/tsp/tsp.ld.S
26*91f16700Schasinglulu
27*91f16700Schasingluluifneq ($(findstring gcc,$(notdir $(LD))),)
28*91f16700Schasinglulu        BL32_LDFLAGS	+=	-Wl,--sort-section=alignment
29*91f16700Schasingluluelse ifneq ($(findstring ld,$(notdir $(LD))),)
30*91f16700Schasinglulu        BL32_LDFLAGS	+=	--sort-section=alignment
31*91f16700Schasingluluendif
32*91f16700Schasinglulu
33*91f16700Schasinglulu# This flag determines if the TSPD initializes BL32 in tspd_init() (synchronous
34*91f16700Schasinglulu# method) or configures BL31 to pass control to BL32 instead of BL33
35*91f16700Schasinglulu# (asynchronous method).
36*91f16700SchasingluluTSP_INIT_ASYNC         :=      0
37*91f16700Schasinglulu
38*91f16700Schasinglulu$(eval $(call assert_boolean,TSP_INIT_ASYNC))
39*91f16700Schasinglulu$(eval $(call add_define,TSP_INIT_ASYNC))
40*91f16700Schasinglulu
41*91f16700Schasinglulu# Include the platform-specific TSP Makefile
42*91f16700Schasinglulu# If no platform-specific TSP Makefile exists, it means TSP is not supported
43*91f16700Schasinglulu# on this platform.
44*91f16700SchasingluluTSP_PLAT_MAKEFILE := $(wildcard ${PLAT_DIR}/tsp/tsp-${PLAT}.mk)
45*91f16700Schasingluluifeq (,${TSP_PLAT_MAKEFILE})
46*91f16700Schasinglulu  $(error TSP is not supported on platform ${PLAT})
47*91f16700Schasingluluelse
48*91f16700Schasinglulu  include ${TSP_PLAT_MAKEFILE}
49*91f16700Schasingluluendif
50