aboutsummaryrefslogtreecommitdiff
path: root/bl32/tsp
diff options
context:
space:
mode:
authorAchin Gupta <achin.gupta@arm.com>2014-02-18 18:12:48 +0000
committerDan Handley <dan.handley@arm.com>2014-02-20 19:06:34 +0000
commit375f538a797a89a5f49aab1be70e86df4511c05a (patch)
tree1231b80be8f4a783f4967b873ad951b8ef062b7f /bl32/tsp
parentdd3dc32f1d2a263a3cb587f9593ab3822645e1d7 (diff)
downloadtrusted-firmware-a-375f538a797a89a5f49aab1be70e86df4511c05a.tar.gz
Add Test Secure Payload Dispatcher (TSPD) service
This patch adds the TSPD service which is responsible for managing communication between the non-secure state and the Test Secure Payload (TSP) executing in S-EL1. The TSPD does the following: 1. Determines the location of the TSP (BL3-2) image and passes control to it for initialization. This is done by exporting the 'bl32_init()' function. 2. Receives a structure containing the various entry points into the TSP image as a response to being initialized. The TSPD uses this information to determine how the TSP should be entered depending on the type of operation. 3. Implements a synchronous mechanism for entering into and returning from the TSP image. This mechanism saves the current C runtime context on top of the current stack and jumps to the TSP through an ERET instruction. The TSP issues an SMC to indicate completion of the previous request. The TSPD restores the saved C runtime context and resumes TSP execution. This patch also introduces a Make variable 'SPD' to choose the specific SPD to include in the build. By default, no SPDs are included in the build. Change-Id: I124da5695cdc510999b859a1bf007f4d049e04f3 Co-authored-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
Diffstat (limited to 'bl32/tsp')
-rw-r--r--bl32/tsp/tsp-fvp.mk1
-rw-r--r--bl32/tsp/tsp.mk3
2 files changed, 2 insertions, 2 deletions
diff --git a/bl32/tsp/tsp-fvp.mk b/bl32/tsp/tsp-fvp.mk
index c5bbd7fc6e..2bf748e531 100644
--- a/bl32/tsp/tsp-fvp.mk
+++ b/bl32/tsp/tsp-fvp.mk
@@ -36,5 +36,4 @@ vpath %.S ${PLAT_BL2_S_VPATH}
BL32_OBJS += bl32_plat_setup.o \
bl32_setup_xlat.o \
plat_common.o \
- ${BL_COMMON_OBJS} \
${PLAT_BL_COMMON_OBJS}
diff --git a/bl32/tsp/tsp.mk b/bl32/tsp/tsp.mk
index 923af5ca89..bc23315e43 100644
--- a/bl32/tsp/tsp.mk
+++ b/bl32/tsp/tsp.mk
@@ -42,7 +42,8 @@ BL32_OBJS += tsp_entrypoint.o \
tsp_main.o \
tsp_request.o \
spinlock.o \
- early_exceptions.o
+ early_exceptions.o \
+ ${BL_COMMON_OBJS}
BL32_ENTRY_POINT := tsp_entrypoint
BL32_MAPFILE := tsp.map