/** @file | |
Header file for FF-A ABI's that will be used for | |
communication between S-EL0 and the Secure Partition | |
Manager(SPM) | |
Copyright (c) 2020, ARM Limited. All rights reserved. | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
@par Revision Reference: | |
- FF-A Version 1.0 | |
**/ | |
#ifndef ARM_FFA_SVC_H_ | |
#define ARM_FFA_SVC_H_ | |
#define ARM_SVC_ID_FFA_VERSION_AARCH32 0x84000063 | |
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH32 0x8400006F | |
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH32 0x84000070 | |
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH64 0xC400006F | |
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH64 0xC4000070 | |
/* Generic IDs when using AArch32 or AArch64 execution state */ | |
#ifdef MDE_CPU_AARCH64 | |
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH64 | |
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH64 | |
#endif | |
#ifdef MDE_CPU_ARM | |
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH32 | |
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH32 | |
#endif | |
#define SPM_MAJOR_VERSION_FFA 1 | |
#define SPM_MINOR_VERSION_FFA 0 | |
#define ARM_FFA_SPM_RET_SUCCESS 0 | |
#define ARM_FFA_SPM_RET_NOT_SUPPORTED -1 | |
#define ARM_FFA_SPM_RET_INVALID_PARAMETERS -2 | |
#define ARM_FFA_SPM_RET_NO_MEMORY -3 | |
#define ARM_FFA_SPM_RET_BUSY -4 | |
#define ARM_FFA_SPM_RET_INTERRUPTED -5 | |
#define ARM_FFA_SPM_RET_DENIED -6 | |
#define ARM_FFA_SPM_RET_RETRY -7 | |
#define ARM_FFA_SPM_RET_ABORTED -8 | |
// For now, the destination id to be used in the FF-A calls | |
// is being hard-coded. Subsequently, support will be added | |
// to get the endpoint id's dynamically | |
// This is the endpoint id used by the optee os's implementation | |
// of the spmc. | |
// https://github.com/OP-TEE/optee_os/blob/master/core/arch/arm/kernel/stmm_sp.c#L66 | |
#define ARM_FFA_DESTINATION_ENDPOINT_ID 3 | |
#endif // ARM_FFA_SVC_H_ |