xref: /rk3399_ARM-atf/drivers/arm/rse/rse_comms_protocol_embed.h (revision 955116982f5bfb6803b1961eda5fa24ab7886419)
1*95511698STamas Ban /*
2*95511698STamas Ban  * Copyright (c) 2022, Arm Limited. All rights reserved.
3*95511698STamas Ban  *
4*95511698STamas Ban  * SPDX-License-Identifier: BSD-3-Clause
5*95511698STamas Ban  *
6*95511698STamas Ban  */
7*95511698STamas Ban 
8*95511698STamas Ban #ifndef __RSS_COMMS_PROTOCOL_EMBED_H__
9*95511698STamas Ban #define __RSS_COMMS_PROTOCOL_EMBED_H__
10*95511698STamas Ban 
11*95511698STamas Ban #include <cdefs.h>
12*95511698STamas Ban 
13*95511698STamas Ban #include <psa/client.h>
14*95511698STamas Ban 
15*95511698STamas Ban #include <platform_def.h>
16*95511698STamas Ban 
17*95511698STamas Ban 
18*95511698STamas Ban 
19*95511698STamas Ban struct __packed rss_embed_msg_t {
20*95511698STamas Ban 	psa_handle_t handle;
21*95511698STamas Ban 	uint32_t ctrl_param; /* type, in_len, out_len */
22*95511698STamas Ban 	uint16_t io_size[PSA_MAX_IOVEC];
23*95511698STamas Ban 	uint8_t trailer[PLAT_RSS_COMMS_PAYLOAD_MAX_SIZE];
24*95511698STamas Ban };
25*95511698STamas Ban 
26*95511698STamas Ban struct __packed rss_embed_reply_t {
27*95511698STamas Ban 	int32_t return_val;
28*95511698STamas Ban 	uint16_t out_size[PSA_MAX_IOVEC];
29*95511698STamas Ban 	uint8_t trailer[PLAT_RSS_COMMS_PAYLOAD_MAX_SIZE];
30*95511698STamas Ban };
31*95511698STamas Ban 
32*95511698STamas Ban psa_status_t rss_protocol_embed_serialize_msg(psa_handle_t handle,
33*95511698STamas Ban 					      int16_t type,
34*95511698STamas Ban 					      const psa_invec *in_vec,
35*95511698STamas Ban 					      uint8_t in_len,
36*95511698STamas Ban 					      const psa_outvec *out_vec,
37*95511698STamas Ban 					      uint8_t out_len,
38*95511698STamas Ban 					      struct rss_embed_msg_t *msg,
39*95511698STamas Ban 					      size_t *msg_len);
40*95511698STamas Ban 
41*95511698STamas Ban psa_status_t rss_protocol_embed_deserialize_reply(psa_outvec *out_vec,
42*95511698STamas Ban 						  uint8_t out_len,
43*95511698STamas Ban 						  psa_status_t *return_val,
44*95511698STamas Ban 						  const struct rss_embed_reply_t *reply,
45*95511698STamas Ban 						  size_t reply_size);
46*95511698STamas Ban 
47*95511698STamas Ban #endif /* __RSS_COMMS_PROTOCOL_EMBED_H__ */
48