]>
Commit | Line | Data |
---|---|---|
d65b78f1 SG |
1 | /** @file\r |
2 | OP-TEE specific header file.\r | |
3 | \r | |
4 | Copyright (c) 2018, Linaro Ltd. All rights reserved.<BR>\r | |
60e49aac | 5 | Copyright (c) 2021, Arm Limited. All rights reserved.<BR>\r |
d65b78f1 | 6 | \r |
4059386c | 7 | SPDX-License-Identifier: BSD-2-Clause-Patent\r |
d65b78f1 SG |
8 | \r |
9 | **/\r | |
10 | \r | |
cc15a619 PG |
11 | #ifndef OPTEE_LIB_H_\r |
12 | #define OPTEE_LIB_H_\r | |
d65b78f1 SG |
13 | \r |
14 | /*\r | |
15 | * The 'Trusted OS Call UID' is supposed to return the following UUID for\r | |
16 | * OP-TEE OS. This is a 128-bit value.\r | |
17 | */\r | |
429309e0 MK |
18 | #define OPTEE_OS_UID0 0x384fb3e0\r |
19 | #define OPTEE_OS_UID1 0xe7f811e3\r | |
20 | #define OPTEE_OS_UID2 0xaf630002\r | |
21 | #define OPTEE_OS_UID3 0xa5d5c51b\r | |
d65b78f1 | 22 | \r |
429309e0 MK |
23 | #define OPTEE_MESSAGE_ATTRIBUTE_TYPE_NONE 0x0\r |
24 | #define OPTEE_MESSAGE_ATTRIBUTE_TYPE_VALUE_INPUT 0x1\r | |
25 | #define OPTEE_MESSAGE_ATTRIBUTE_TYPE_VALUE_OUTPUT 0x2\r | |
26 | #define OPTEE_MESSAGE_ATTRIBUTE_TYPE_VALUE_INOUT 0x3\r | |
27 | #define OPTEE_MESSAGE_ATTRIBUTE_TYPE_MEMORY_INPUT 0x9\r | |
28 | #define OPTEE_MESSAGE_ATTRIBUTE_TYPE_MEMORY_OUTPUT 0xa\r | |
29 | #define OPTEE_MESSAGE_ATTRIBUTE_TYPE_MEMORY_INOUT 0xb\r | |
a0f01e8a | 30 | \r |
429309e0 | 31 | #define OPTEE_MESSAGE_ATTRIBUTE_TYPE_MASK 0xff\r |
a0f01e8a | 32 | \r |
429309e0 MK |
33 | #define OPTEE_SUCCESS 0x00000000\r |
34 | #define OPTEE_ORIGIN_COMMUNICATION 0x00000002\r | |
35 | #define OPTEE_ERROR_COMMUNICATION 0xFFFF000E\r | |
a0f01e8a SG |
36 | \r |
37 | typedef struct {\r | |
38 | UINT64 BufferAddress;\r | |
39 | UINT64 Size;\r | |
40 | UINT64 SharedMemoryReference;\r | |
41 | } OPTEE_MESSAGE_PARAM_MEMORY;\r | |
42 | \r | |
43 | typedef struct {\r | |
44 | UINT64 A;\r | |
45 | UINT64 B;\r | |
46 | UINT64 C;\r | |
47 | } OPTEE_MESSAGE_PARAM_VALUE;\r | |
48 | \r | |
60e49aac | 49 | typedef union {\r |
429309e0 MK |
50 | OPTEE_MESSAGE_PARAM_MEMORY Memory;\r |
51 | OPTEE_MESSAGE_PARAM_VALUE Value;\r | |
60e49aac PG |
52 | } OPTEE_MESSAGE_PARAM_UNION;\r |
53 | \r | |
a0f01e8a | 54 | typedef struct {\r |
429309e0 MK |
55 | UINT64 Attribute;\r |
56 | OPTEE_MESSAGE_PARAM_UNION Union;\r | |
a0f01e8a SG |
57 | } OPTEE_MESSAGE_PARAM;\r |
58 | \r | |
429309e0 | 59 | #define OPTEE_MAX_CALL_PARAMS 4\r |
a0f01e8a SG |
60 | \r |
61 | typedef struct {\r | |
429309e0 MK |
62 | UINT32 Command;\r |
63 | UINT32 Function;\r | |
64 | UINT32 Session;\r | |
65 | UINT32 CancelId;\r | |
66 | UINT32 Pad;\r | |
67 | UINT32 Return;\r | |
68 | UINT32 ReturnOrigin;\r | |
69 | UINT32 NumParams;\r | |
a0f01e8a SG |
70 | \r |
71 | // NumParams tells the actual number of element in Params\r | |
429309e0 | 72 | OPTEE_MESSAGE_PARAM Params[OPTEE_MAX_CALL_PARAMS];\r |
a0f01e8a SG |
73 | } OPTEE_MESSAGE_ARG;\r |
74 | \r | |
75 | typedef struct {\r | |
429309e0 MK |
76 | EFI_GUID Uuid; // [in] GUID/UUID of the Trusted Application\r |
77 | UINT32 Session; // [out] Session id\r | |
78 | UINT32 Return; // [out] Return value\r | |
79 | UINT32 ReturnOrigin; // [out] Origin of the return value\r | |
a0f01e8a SG |
80 | } OPTEE_OPEN_SESSION_ARG;\r |
81 | \r | |
82 | typedef struct {\r | |
429309e0 MK |
83 | UINT32 Function; // [in] Trusted Application function, specific to the TA\r |
84 | UINT32 Session; // [in] Session id\r | |
85 | UINT32 Return; // [out] Return value\r | |
86 | UINT32 ReturnOrigin; // [out] Origin of the return value\r | |
87 | OPTEE_MESSAGE_PARAM Params[OPTEE_MAX_CALL_PARAMS]; // Params for function to be invoked\r | |
a0f01e8a SG |
88 | } OPTEE_INVOKE_FUNCTION_ARG;\r |
89 | \r | |
d65b78f1 SG |
90 | BOOLEAN\r |
91 | EFIAPI\r | |
92 | IsOpteePresent (\r | |
93 | VOID\r | |
94 | );\r | |
95 | \r | |
a0f01e8a SG |
96 | EFI_STATUS\r |
97 | EFIAPI\r | |
98 | OpteeInit (\r | |
99 | VOID\r | |
100 | );\r | |
101 | \r | |
102 | EFI_STATUS\r | |
103 | EFIAPI\r | |
104 | OpteeOpenSession (\r | |
429309e0 | 105 | IN OUT OPTEE_OPEN_SESSION_ARG *OpenSessionArg\r |
a0f01e8a SG |
106 | );\r |
107 | \r | |
108 | EFI_STATUS\r | |
109 | EFIAPI\r | |
110 | OpteeCloseSession (\r | |
429309e0 | 111 | IN UINT32 Session\r |
a0f01e8a SG |
112 | );\r |
113 | \r | |
114 | EFI_STATUS\r | |
115 | EFIAPI\r | |
116 | OpteeInvokeFunction (\r | |
429309e0 | 117 | IN OUT OPTEE_INVOKE_FUNCTION_ARG *InvokeFunctionArg\r |
a0f01e8a SG |
118 | );\r |
119 | \r | |
cc15a619 | 120 | #endif // OPTEE_LIB_H_\r |