The Secure Partition Manager (SPM) is responsible for isolating software in partitions,
managing the execution of software within partitions and providing IPC between partitions.  
More...
| Modules | |
| RoT-Service-API | |
| The C interface for a root of trust (RoT) Service in a partition. | |
| Client-API | |
| The C interface for connecting to a Root of Trust Service and calling it. | |
| Data Structures | |
| struct | psa_msg | 
| Structure containing the PSA IPC message sent from a client partition to an RoT Service.  More... | |
| struct | psa_invec | 
| Structure that describes a scatter-gather input buffer.  More... | |
| struct | psa_outvec | 
| Structure which describes a scatter-gather output buffer.  More... | |
| Macros | |
| #define | SPM_PANIC(format, ...) error("%s %u: " format, __func__, __LINE__, ##__VA_ARGS__) | 
| Generate a system panic.  More... | |
| #define | SPM_ASSERT(expr) MBED_ASSERT(expr) | 
| Assert on condition (debug build only)  More... | |
| #define | PSA_FRAMEWORK_VERSION (0x0100) | 
| Version of the PSA Framework API.  More... | |
| #define | PSA_VERSION_NONE (0L) | 
| Identifier for an unimplemented Root of Trust (RoT) Service.  More... | |
| #define | PSA_NSPE_IDENTIFIER (-1L) | 
| "Partition" identifier of the NSPE.  More... | |
| #define | PSA_NULL_HANDLE ((psa_handle_t)0) | 
| Denotes an invalid handle.  More... | |
| #define | PSA_MAX_IOVEC (4UL) | 
| Maximum number of psa_invec and psa_outvec structures allowed for psa_call().  More... | |
| #define | PSA_POLL (0x00000000UL) | 
| Returns immediately even if none of the requested signals is asserted.  More... | |
| #define | PSA_BLOCK (0x80000000UL) | 
| Block the caller until one of the requested signals is asserted.  More... | |
| #define | PSA_WAIT_ANY (0xFFFFFFFFUL) | 
| A mask value that includes all Secure Partition signals.  More... | |
| #define | PSA_MINOR_VERSION_POLICY_RELAXED (0UL) | 
| Don't perform minor version check during psa_connect().  More... | |
| #define | PSA_MINOR_VERSION_POLICY_STRICT (1UL) | 
| Force minor version check during psa_connect().  More... | |
| #define | PSA_DOORBELL (0x00000008UL) | 
| Mask for PSA_DOORBELL signal.  More... | |
| #define | PSA_IPC_CONNECT (1) | 
| The IPC message type that indicates a new connection.  More... | |
| #define | PSA_IPC_CALL (2) | 
| The IPC message type that indicates a client request.  More... | |
| #define | PSA_IPC_DISCONNECT (3) | 
| The IPC message type that indicates the end of a connection.  More... | |
| #define | PSA_IPC_VERSION (4) | 
| The IPC message type that indicates a client query for a specific sid.  More... | |
| #define | PSA_DROP_CONNECTION (INT32_MIN) | 
| The result code in a call to psa_reply() to indicate a nonrecoverable error in the client.  More... | |
| #define | PSA_CONNECTION_REFUSED (INT32_MIN + 1) | 
| The return value from psa_connect() if the RoT Service or SPM was unable to establish a connection.  More... | |
| #define | PSA_CONNECTION_BUSY (INT32_MIN + 2) | 
| The return value from psa_connect() if the RoT Service rejects the connection for a transient reason.  More... | |
| Typedefs | |
| typedef struct psa_msg | psa_msg_t | 
| Structure containing the PSA IPC message sent from a client partition to an RoT Service.  More... | |
| typedef struct psa_invec | psa_invec | 
| Structure that describes a scatter-gather input buffer.  More... | |
| typedef struct psa_outvec | psa_outvec | 
| Structure which describes a scatter-gather output buffer.  More... | |
The Secure Partition Manager (SPM) is responsible for isolating software in partitions,
managing the execution of software within partitions and providing IPC between partitions. 
| #define PSA_BLOCK (0x80000000UL) | 
Block the caller until one of the requested signals is asserted.
Definition at line 57 of file psa_defs.h.
| #define PSA_CONNECTION_BUSY (INT32_MIN + 2) | 
The return value from psa_connect() if the RoT Service rejects the connection for a transient reason.
Definition at line 73 of file psa_defs.h.
| #define PSA_CONNECTION_REFUSED (INT32_MIN + 1) | 
The return value from psa_connect() if the RoT Service or SPM was unable to establish a connection.
Definition at line 72 of file psa_defs.h.
| #define PSA_DOORBELL (0x00000008UL) | 
Mask for PSA_DOORBELL signal.
Definition at line 63 of file psa_defs.h.
| #define PSA_DROP_CONNECTION (INT32_MIN) | 
The result code in a call to psa_reply() to indicate a nonrecoverable error in the client.
Definition at line 71 of file psa_defs.h.
| #define PSA_FRAMEWORK_VERSION (0x0100) | 
Version of the PSA Framework API.
Definition at line 47 of file psa_defs.h.
| #define PSA_IPC_CALL (2) | 
The IPC message type that indicates a client request.
Definition at line 66 of file psa_defs.h.
| #define PSA_IPC_CONNECT (1) | 
The IPC message type that indicates a new connection.
Definition at line 65 of file psa_defs.h.
| #define PSA_IPC_DISCONNECT (3) | 
The IPC message type that indicates the end of a connection.
Definition at line 67 of file psa_defs.h.
| #define PSA_IPC_VERSION (4) | 
The IPC message type that indicates a client query for a specific sid.
Definition at line 68 of file psa_defs.h.
| #define PSA_MAX_IOVEC (4UL) | 
Maximum number of psa_invec and psa_outvec structures allowed for psa_call().
Definition at line 54 of file psa_defs.h.
| #define PSA_MINOR_VERSION_POLICY_RELAXED (0UL) | 
Don't perform minor version check during psa_connect().
Definition at line 60 of file psa_defs.h.
| #define PSA_MINOR_VERSION_POLICY_STRICT (1UL) | 
Force minor version check during psa_connect().
Definition at line 61 of file psa_defs.h.
| #define PSA_NSPE_IDENTIFIER (-1L) | 
"Partition" identifier of the NSPE.
Definition at line 50 of file psa_defs.h.
| #define PSA_NULL_HANDLE ((psa_handle_t)0) | 
Denotes an invalid handle.
Definition at line 52 of file psa_defs.h.
| #define PSA_POLL (0x00000000UL) | 
Returns immediately even if none of the requested signals is asserted.
Definition at line 56 of file psa_defs.h.
| #define PSA_VERSION_NONE (0L) | 
Identifier for an unimplemented Root of Trust (RoT) Service.
Definition at line 48 of file psa_defs.h.
| #define PSA_WAIT_ANY (0xFFFFFFFFUL) | 
A mask value that includes all Secure Partition signals.
Definition at line 58 of file psa_defs.h.
| #define SPM_ASSERT | ( | expr | ) | MBED_ASSERT(expr) | 
Assert on condition (debug build only)
| [in] | expr | Condition to be asserted | 
Definition at line 55 of file spm_panic.h.
| #define SPM_PANIC | ( | format, | |
| ... | |||
| ) | error("%s %u: " format, __func__, __LINE__, ##__VA_ARGS__) | 
Generate a system panic.
| [in] | format | The format string to output on panic | 
| [in] | ... | (Additional arguments) Depending on the format string | 
Definition at line 47 of file spm_panic.h.
Structure containing the PSA IPC message sent from a client partition to an RoT Service.
| typedef struct psa_outvec psa_outvec | 
Structure which describes a scatter-gather output buffer.