blob: 0747e15f6722bc7881e1f36df242e2985beca489 [file] [log] [blame]
Achin Gupta375f5382014-02-18 18:12:48 +00001#
Jeenu Viswambharan2f40f322018-01-11 14:30:22 +00002# Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
Achin Gupta375f5382014-02-18 18:12:48 +00003#
dp-armfa3cf0b2017-05-03 09:38:09 +01004# SPDX-License-Identifier: BSD-3-Clause
Achin Gupta375f5382014-02-18 18:12:48 +00005#
6
7TSPD_DIR := services/spd/tspd
Dan Handley4fd2f5c2014-08-04 11:41:20 +01008SPD_INCLUDES := -Iinclude/bl32/tsp
Achin Gupta375f5382014-02-18 18:12:48 +00009
Dan Handley176e7b42014-04-15 18:20:09 +010010SPD_SOURCES := services/spd/tspd/tspd_common.c \
11 services/spd/tspd/tspd_helpers.S \
12 services/spd/tspd/tspd_main.c \
13 services/spd/tspd/tspd_pm.c
Achin Gupta375f5382014-02-18 18:12:48 +000014
15# This dispatcher is paired with a Test Secure Payload source and we intend to
16# build the Test Secure Payload along with this dispatcher.
17#
18# In cases where an associated Secure Payload lies outside this build
19# system/source tree, the the dispatcher Makefile can either invoke an external
20# build command or assume it pre-built
21
22BL32_ROOT := bl32/tsp
23
24# Include SP's Makefile. The assumption is that the TSP's build system is
25# compatible with that of Trusted Firmware, and it'll add and populate necessary
26# build targets and variables
27include ${BL32_ROOT}/tsp.mk
28
29# Let the top-level Makefile know that we intend to build the SP from source
30NEED_BL32 := yes
Soby Mathew47903c02015-01-13 15:48:26 +000031
32# Flag used to enable routing of non-secure interrupts to EL3 when they are
33# generated while the code is executing in S-EL1/0.
Soby Mathewbec98512015-09-03 18:29:38 +010034TSP_NS_INTR_ASYNC_PREEMPT := 0
35
36# If TSPD_ROUTE_IRQ_TO_EL3 build flag is defined, use it to define value for
37# TSP_NS_INTR_ASYNC_PREEMPT for backward compatibility.
38ifdef TSPD_ROUTE_IRQ_TO_EL3
39ifeq (${ERROR_DEPRECATED},1)
40$(error "TSPD_ROUTE_IRQ_TO_EL3 is deprecated. Please use the new build flag TSP_NS_INTR_ASYNC_PREEMPT")
41endif
42$(warning "TSPD_ROUTE_IRQ_TO_EL3 is deprecated. Please use the new build flag TSP_NS_INTR_ASYNC_PREEMPT")
43TSP_NS_INTR_ASYNC_PREEMPT := ${TSPD_ROUTE_IRQ_TO_EL3}
44endif
Soby Mathew47903c02015-01-13 15:48:26 +000045
Jeenu Viswambharan2f40f322018-01-11 14:30:22 +000046ifeq ($(EL3_EXCEPTION_HANDLING),1)
47ifeq ($(TSP_NS_INTR_ASYNC_PREEMPT),0)
48$(error When EL3_EXCEPTION_HANDLING=1, TSP_NS_INTR_ASYNC_PREEMPT must also be 1)
49endif
50endif
51
Soby Mathewbec98512015-09-03 18:29:38 +010052$(eval $(call assert_boolean,TSP_NS_INTR_ASYNC_PREEMPT))
53$(eval $(call add_define,TSP_NS_INTR_ASYNC_PREEMPT))