mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00

This patch provides an option to specify a interrupt routing model where non-secure interrupts (IRQs) are routed to EL3 instead of S-EL1. When such an interrupt occurs, the TSPD arranges a return to the normal world after saving any necessary context. The interrupt routing model to route IRQs to EL3 is enabled only during STD SMC processing. Thus the pre-emption of S-EL1 is disabled during Fast SMC and Secure Interrupt processing. A new build option TSPD_ROUTE_NS_INT_EL3 is introduced to change the non secure interrupt target execution level to EL3. Fixes ARM-software/tf-issues#225 Change-Id: Ia1e779fbbb6d627091e665c73fa6315637cfdd32
61 lines
2.6 KiB
Makefile
61 lines
2.6 KiB
Makefile
#
|
|
# Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions are met:
|
|
#
|
|
# Redistributions of source code must retain the above copyright notice, this
|
|
# list of conditions and the following disclaimer.
|
|
#
|
|
# Redistributions in binary form must reproduce the above copyright notice,
|
|
# this list of conditions and the following disclaimer in the documentation
|
|
# and/or other materials provided with the distribution.
|
|
#
|
|
# Neither the name of ARM nor the names of its contributors may be used
|
|
# to endorse or promote products derived from this software without specific
|
|
# prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
# POSSIBILITY OF SUCH DAMAGE.
|
|
#
|
|
|
|
TSPD_DIR := services/spd/tspd
|
|
SPD_INCLUDES := -Iinclude/bl32/tsp
|
|
|
|
SPD_SOURCES := services/spd/tspd/tspd_common.c \
|
|
services/spd/tspd/tspd_helpers.S \
|
|
services/spd/tspd/tspd_main.c \
|
|
services/spd/tspd/tspd_pm.c
|
|
|
|
# This dispatcher is paired with a Test Secure Payload source and we intend to
|
|
# build the Test Secure Payload along with this dispatcher.
|
|
#
|
|
# In cases where an associated Secure Payload lies outside this build
|
|
# system/source tree, the the dispatcher Makefile can either invoke an external
|
|
# build command or assume it pre-built
|
|
|
|
BL32_ROOT := bl32/tsp
|
|
|
|
# Include SP's Makefile. The assumption is that the TSP's build system is
|
|
# compatible with that of Trusted Firmware, and it'll add and populate necessary
|
|
# build targets and variables
|
|
include ${BL32_ROOT}/tsp.mk
|
|
|
|
# Let the top-level Makefile know that we intend to build the SP from source
|
|
NEED_BL32 := yes
|
|
|
|
# Flag used to enable routing of non-secure interrupts to EL3 when they are
|
|
# generated while the code is executing in S-EL1/0.
|
|
TSPD_ROUTE_IRQ_TO_EL3 := 0
|
|
|
|
$(eval $(call assert_boolean,TSPD_ROUTE_IRQ_TO_EL3))
|
|
$(eval $(call add_define,TSPD_ROUTE_IRQ_TO_EL3))
|