• Achin Gupta's avatar
    Add Test Secure Payload Dispatcher (TSPD) service · 375f538a
    Achin Gupta authored
    
    
    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: default avatarJeenu Viswambharan <jeenu.viswambharan@arm.com>
    375f538a
tspd_helpers.S 4.05 KB