xref: /rk3399_ARM-atf/drivers/arm/rse/rse_comms_protocol_embed.h (revision a1901c7d0d05ac02b254bf215fb889b9c0a9bc7d)
195511698STamas Ban /*
295511698STamas Ban  * Copyright (c) 2022, Arm Limited. All rights reserved.
395511698STamas Ban  *
495511698STamas Ban  * SPDX-License-Identifier: BSD-3-Clause
595511698STamas Ban  *
695511698STamas Ban  */
795511698STamas Ban 
8*e249e569STamas Ban #ifndef __RSE_COMMS_PROTOCOL_EMBED_H__
9*e249e569STamas Ban #define __RSE_COMMS_PROTOCOL_EMBED_H__
1095511698STamas Ban 
1195511698STamas Ban #include <cdefs.h>
1295511698STamas Ban 
1395511698STamas Ban #include <psa/client.h>
1495511698STamas Ban 
1595511698STamas Ban #include <platform_def.h>
1695511698STamas Ban 
1795511698STamas Ban 
1895511698STamas Ban 
19*e249e569STamas Ban struct __packed rse_embed_msg_t {
2095511698STamas Ban 	psa_handle_t handle;
2195511698STamas Ban 	uint32_t ctrl_param; /* type, in_len, out_len */
2295511698STamas Ban 	uint16_t io_size[PSA_MAX_IOVEC];
23*e249e569STamas Ban 	uint8_t trailer[PLAT_RSE_COMMS_PAYLOAD_MAX_SIZE];
2495511698STamas Ban };
2595511698STamas Ban 
26*e249e569STamas Ban struct __packed rse_embed_reply_t {
2795511698STamas Ban 	int32_t return_val;
2895511698STamas Ban 	uint16_t out_size[PSA_MAX_IOVEC];
29*e249e569STamas Ban 	uint8_t trailer[PLAT_RSE_COMMS_PAYLOAD_MAX_SIZE];
3095511698STamas Ban };
3195511698STamas Ban 
32*e249e569STamas Ban psa_status_t rse_protocol_embed_serialize_msg(psa_handle_t handle,
3395511698STamas Ban 					      int16_t type,
3495511698STamas Ban 					      const psa_invec *in_vec,
3595511698STamas Ban 					      uint8_t in_len,
3695511698STamas Ban 					      const psa_outvec *out_vec,
3795511698STamas Ban 					      uint8_t out_len,
38*e249e569STamas Ban 					      struct rse_embed_msg_t *msg,
3995511698STamas Ban 					      size_t *msg_len);
4095511698STamas Ban 
41*e249e569STamas Ban psa_status_t rse_protocol_embed_deserialize_reply(psa_outvec *out_vec,
4295511698STamas Ban 						  uint8_t out_len,
4395511698STamas Ban 						  psa_status_t *return_val,
44*e249e569STamas Ban 						  const struct rse_embed_reply_t *reply,
4595511698STamas Ban 						  size_t reply_size);
4695511698STamas Ban 
47*e249e569STamas Ban #endif /* __RSE_COMMS_PROTOCOL_EMBED_H__ */
48