xref: /optee_os/core/drivers/crypto/ele/include/ele.h (revision 06f66bf902321218cbc441af14110f7551c176b6)
1*06f66bf9SSahil Malhotra /* SPDX-License-Identifier: BSD-2-Clause */
2*06f66bf9SSahil Malhotra /*
3*06f66bf9SSahil Malhotra  * Copyright NXP 2025
4*06f66bf9SSahil Malhotra  */
5*06f66bf9SSahil Malhotra 
6*06f66bf9SSahil Malhotra #ifndef __ELE_H_
7*06f66bf9SSahil Malhotra #define __ELE_H_
8*06f66bf9SSahil Malhotra 
9*06f66bf9SSahil Malhotra #include <drivers/imx_mu.h>
10*06f66bf9SSahil Malhotra #include <tee_api_types.h>
11*06f66bf9SSahil Malhotra #include <trace.h>
12*06f66bf9SSahil Malhotra 
13*06f66bf9SSahil Malhotra /* Definitions for communication protocol */
14*06f66bf9SSahil Malhotra #define ELE_VERSION_HSM 0x07
15*06f66bf9SSahil Malhotra #define ELE_REQUEST_TAG 0x17
16*06f66bf9SSahil Malhotra 
size_msg(size_t cmd)17*06f66bf9SSahil Malhotra static inline size_t size_msg(size_t cmd)
18*06f66bf9SSahil Malhotra {
19*06f66bf9SSahil Malhotra 	size_t words = ROUNDUP(cmd, sizeof(uint32_t)) / sizeof(uint32_t);
20*06f66bf9SSahil Malhotra 
21*06f66bf9SSahil Malhotra 	/* Add the header size */
22*06f66bf9SSahil Malhotra 	words = words + 1;
23*06f66bf9SSahil Malhotra 
24*06f66bf9SSahil Malhotra 	return words;
25*06f66bf9SSahil Malhotra }
26*06f66bf9SSahil Malhotra 
27*06f66bf9SSahil Malhotra #define SIZE_MSG_32(_msg) size_msg(sizeof(_msg))
28*06f66bf9SSahil Malhotra 
29*06f66bf9SSahil Malhotra /*
30*06f66bf9SSahil Malhotra  * The CRC is the last word of the message
31*06f66bf9SSahil Malhotra  *
32*06f66bf9SSahil Malhotra  * msg: MU message to hash
33*06f66bf9SSahil Malhotra  */
34*06f66bf9SSahil Malhotra void update_crc(struct imx_mu_msg *msg);
35*06f66bf9SSahil Malhotra 
36*06f66bf9SSahil Malhotra /*
37*06f66bf9SSahil Malhotra  * Initiate a communication with the EdgeLock Enclave. It sends a message
38*06f66bf9SSahil Malhotra  * and expects an answer.
39*06f66bf9SSahil Malhotra  *
40*06f66bf9SSahil Malhotra  * @msg MU message
41*06f66bf9SSahil Malhotra  */
42*06f66bf9SSahil Malhotra TEE_Result imx_ele_call(struct imx_mu_msg *msg);
43*06f66bf9SSahil Malhotra 
44*06f66bf9SSahil Malhotra #endif /* __ELE_H_ */
45