spi: Kconfig: Add help text
[oweals/u-boot.git] / drivers / tee / optee / optee_msg_supplicant.h
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3  * Copyright (c) 2016-2018, Linaro Limited
4  */
5
6 #ifndef __OPTEE_MSG_SUPPLICANT_H
7 #define __OPTEE_MSG_SUPPLICANT_H
8
9 /*
10  * This file is based on
11  * https://github.com/OP-TEE/optee_os/blob/master/core/include/optee_msg_supplicant.h
12  * and may need to be updated when introducing new features.
13  */
14
15 /*
16  * Load a TA into memory
17  */
18 #define OPTEE_MSG_RPC_CMD_LOAD_TA       0
19
20 /*
21  * Replay Protected Memory Block access
22  */
23 #define OPTEE_MSG_RPC_CMD_RPMB          1
24
25 /*
26  * File system access
27  */
28 #define OPTEE_MSG_RPC_CMD_FS            2
29
30 /*
31  * Define protocol for messages with .cmd == OPTEE_MSG_RPC_CMD_FS and first
32  * parameter has the attribute OPTEE_MSG_ATTR_TYPE_VALUE_INPUT.
33  */
34
35 /*
36  * Open a file
37  *
38  * [in]     param[0].u.value.a  OPTEE_MRF_OPEN
39  * [in]     param[1].u.tmem     a string holding the file name
40  * [out]    param[2].u.value.a  file descriptor of open file
41  */
42 #define OPTEE_MRF_OPEN                  0
43
44 /*
45  * Create a file
46  *
47  * [in]     param[0].u.value.a  OPTEE_MRF_CREATE
48  * [in]     param[1].u.tmem     a string holding the file name
49  * [out]    param[2].u.value.a  file descriptor of open file
50  */
51 #define OPTEE_MRF_CREATE                1
52
53 /*
54  * Close a file
55  *
56  * [in]     param[0].u.value.a  OPTEE_MRF_CLOSE
57  * [in]     param[0].u.value.b  file descriptor of open file.
58  */
59 #define OPTEE_MRF_CLOSE                 2
60
61 /*
62  * Read from a file
63  *
64  * [in]     param[0].u.value.a  OPTEE_MRF_READ
65  * [in]     param[0].u.value.b  file descriptor of open file
66  * [in]     param[0].u.value.c  offset into file
67  * [out]    param[1].u.tmem     buffer to hold returned data
68  */
69 #define OPTEE_MRF_READ                  3
70
71 /*
72  * Write to a file
73  *
74  * [in]     param[0].u.value.a  OPTEE_MRF_WRITE
75  * [in]     param[0].u.value.b  file descriptor of open file
76  * [in]     param[0].u.value.c  offset into file
77  * [in]     param[1].u.tmem     buffer holding data to be written
78  */
79 #define OPTEE_MRF_WRITE                 4
80
81 /*
82  * Truncate a file
83  *
84  * [in]     param[0].u.value.a  OPTEE_MRF_TRUNCATE
85  * [in]     param[0].u.value.b  file descriptor of open file
86  * [in]     param[0].u.value.c  length of file.
87  */
88 #define OPTEE_MRF_TRUNCATE              5
89
90 /*
91  * Remove a file
92  *
93  * [in]  param[0].u.value.a     OPTEE_MRF_REMOVE
94  * [in]  param[1].u.tmem        a string holding the file name
95  */
96 #define OPTEE_MRF_REMOVE                6
97
98 /*
99  * Rename a file
100  *
101  * [in]  param[0].u.value.a     OPTEE_MRF_RENAME
102  * [in]  param[0].u.value.b     true if existing target should be removed
103  * [in]  param[1].u.tmem        a string holding the old file name
104  * [in]  param[2].u.tmem        a string holding the new file name
105  */
106 #define OPTEE_MRF_RENAME                7
107
108 /*
109  * Opens a directory for file listing
110  *
111  * [in]  param[0].u.value.a     OPTEE_MRF_OPENDIR
112  * [in]  param[1].u.tmem        a string holding the name of the directory
113  * [out] param[2].u.value.a     handle to open directory
114  */
115 #define OPTEE_MRF_OPENDIR               8
116
117 /*
118  * Closes a directory handle
119  *
120  * [in]  param[0].u.value.a     OPTEE_MRF_CLOSEDIR
121  * [in]  param[0].u.value.b     handle to open directory
122  */
123 #define OPTEE_MRF_CLOSEDIR              9
124
125 /*
126  * Read next file name of directory
127  *
128  *
129  * [in]  param[0].u.value.a     OPTEE_MRF_READDIR
130  * [in]  param[0].u.value.b     handle to open directory
131  * [out] param[1].u.tmem        a string holding the file name
132  */
133 #define OPTEE_MRF_READDIR               10
134
135 /*
136  * End of definitions for messages with .cmd == OPTEE_MSG_RPC_CMD_FS
137  */
138
139 /*
140  * Command Ids 3, 4 and 5 of OPTEE_MSG_RPC_CMD_xxx macros are reserved for use
141  * by the kernel driver.
142  */
143
144 /*
145  * Shared memory allocation
146  */
147 #define OPTEE_MSG_RPC_CMD_SHM_ALLOC     6
148 #define OPTEE_MSG_RPC_CMD_SHM_FREE      7
149
150 /*
151  * Was OPTEE_MSG_RPC_CMD_SQL_FS, which isn't supported any longer
152  */
153 #define OPTEE_MSG_RPC_CMD_SQL_FS_RESERVED       8
154
155 /*
156  * GPROF support management commands
157  */
158 #define OPTEE_MSG_RPC_CMD_GPROF         9
159
160 /*
161  * Socket commands
162  */
163 #define OPTEE_MSG_RPC_CMD_SOCKET        10
164
165 /*
166  * Define protocol for messages with .cmd == OPTEE_MSG_RPC_CMD_SOCKET
167  */
168
169 #define OPTEE_MRC_SOCKET_TIMEOUT_NONBLOCKING    0
170 #define OPTEE_MRC_SOCKET_TIMEOUT_BLOCKING       0xffffffff
171
172 /*
173  * Open socket
174  *
175  * [in]     param[0].u.value.a  OPTEE_MRC_SOCKET_OPEN
176  * [in]     param[0].u.value.b  TA instance id
177  * [in]     param[1].u.value.a  server port number
178  * [in]     param[1].u.value.b  protocol, TEE_ISOCKET_PROTOCOLID_*
179  * [in]     param[1].u.value.c  ip version TEE_IP_VERSION_* from tee_ipsocket.h
180  * [in]     param[2].u.tmem     server address
181  * [out]    param[3].u.value.a  socket handle (32-bit)
182  */
183 #define OPTEE_MRC_SOCKET_OPEN   0
184
185 /*
186  * Close socket
187  *
188  * [in]     param[0].u.value.a  OPTEE_MRC_SOCKET_CLOSE
189  * [in]     param[0].u.value.b  TA instance id
190  * [in]     param[0].u.value.c  socket handle
191  */
192 #define OPTEE_MRC_SOCKET_CLOSE  1
193
194 /*
195  * Close all sockets
196  *
197  * [in]     param[0].u.value.a  OPTEE_MRC_SOCKET_CLOSE_ALL
198  * [in]     param[0].u.value.b  TA instance id
199  */
200 #define OPTEE_MRC_SOCKET_CLOSE_ALL 2
201
202 /*
203  * Send data on socket
204  *
205  * [in]     param[0].u.value.a  OPTEE_MRC_SOCKET_SEND
206  * [in]     param[0].u.value.b  TA instance id
207  * [in]     param[0].u.value.c  socket handle
208  * [in]     param[1].u.tmem     buffer to transmit
209  * [in]     param[2].u.value.a  timeout ms or OPTEE_MRC_SOCKET_TIMEOUT_*
210  * [out]    param[2].u.value.b  number of transmitted bytes
211  */
212 #define OPTEE_MRC_SOCKET_SEND   3
213
214 /*
215  * Receive data on socket
216  *
217  * [in]     param[0].u.value.a  OPTEE_MRC_SOCKET_RECV
218  * [in]     param[0].u.value.b  TA instance id
219  * [in]     param[0].u.value.c  socket handle
220  * [out]    param[1].u.tmem     buffer to receive
221  * [in]     param[2].u.value.a  timeout ms or OPTEE_MRC_SOCKET_TIMEOUT_*
222  */
223 #define OPTEE_MRC_SOCKET_RECV   4
224
225 /*
226  * Perform IOCTL on socket
227  *
228  * [in]     param[0].u.value.a  OPTEE_MRC_SOCKET_IOCTL
229  * [in]     param[0].u.value.b  TA instance id
230  * [in]     param[0].u.value.c  socket handle
231  * [in/out] param[1].u.tmem     buffer
232  * [in]     param[2].u.value.a  ioctl command
233  */
234 #define OPTEE_MRC_SOCKET_IOCTL  5
235
236 /*
237  * End of definitions for messages with .cmd == OPTEE_MSG_RPC_CMD_SOCKET
238  */
239
240 #endif /* __OPTEE_MSG_SUPPLICANT_H */