Intel® Dynamic Application Loader (Intel® DAL) Developer Guide
ID
773482
Date
3/24/2023
Public
For API Level 1 - Intel® ME 7.x - Sandy Bridge
For API Level 1.1 - Intel® ME 8.x lite - Sandy Bridge
For API Level 2 - Intel® ME 8.0 - Ivy Bridge
For API Level 3 - Intel® ME 8.1 - Ivy Bridge
For API Level 3 - SEC1.0, SEC1.1, SEC1.2, SEC2.0
For API Level 4 - Intel® ME 9.5, Intel ME 9.5.55 - Haswell
For API Level 4 - Intel® ME 9.1, Intel ME 9.1.35 - Haswell
For API Level 5 - Intel® ME 10.0.0 - Haswell
For API Level 6 - Intel® ME 10.0.20 - Broadwell
For API Level 7 - ME 11.0 - Skylake_LP and Skylake_H
For API Level 8 - TXE3.0 - Broxton, ME 11.5/11.8 - Kabylake_LP, Kabylake_H
For API Level 9 - Intel® ME 12.0 - Cannon Lake
Trusted Application Validation Guidelines
Validating the Manifest
Memory and Performance
Error Handling and Recovery
Functional Validation and Multi-Instance Support
Pack and DALP Generation and Validation
Host-Side Software Validation Guidelines
Trusted Application Management Flows
Error Handling and Recovery Flows
Multi-Instance and Interoperability Testing of Trusted Application Management
General and Platform-Related Events
End-to-End and Setup Validation Guidelines
Cross Trusted Application Interoperability Functional Testing
Creating a New Project
Importing an Existing Project
Converting an Existing Project
Building and Packaging Your Project and Running in Emulated Environment
Running Your Project
Running and Testing on Emulation and on Silicon
Debugging Trusted Applications
Preparing and Submitting Your Project for Signing
Signing an Applet
Signing New Versions
Shared Session Removal
Shared session removal is handled differently in different versions of Intel® DAL:
Client Service API level 1.1 to 3
A shared session is removed when there are no session handles, i.e., when all opened handles have been closed. There is no application that the client service knows of which is using the shared session. This means that if an application is going to a shared session for a given trusted application, the client service will need to create a new shared session for it. The shared session loses any context and the application needs to re-initialize the session.
Client Service API level 4 and above
A shared session is not immediately removed from the virtual machine when there are no session handles. Instead, the shared session is kept alive as much as possible by the following methods:
- If the space is not needed for another session, i.e., the 5 session limit has not been reached, the session is not removed.
- When an unused shared session needs to be removed to allow for the creation of another session, only one unused session is removed. The shared session to be removed is chosen using a Least Recently Used (LRU) algorithm.
- An unused shared session may need to be removed when there is a need to install a new trusted application but there is no more space for one, i.e., the 5 loaded trusted applications limit has been reached. In this case, there is a search for a trusted application that has no session or has only one session which is an unused shared session, and that session is removed to enable the loading of the new trusted application.