xref: /optee_os/core/pta/imx/digprog.c (revision e91fa6a02047c6f9367921bba06932f7b60a714c)
1 // SPDX-License-Identifier: BSD-2-Clause
2 /*
3  * Copyright 2021 NXP
4  */
5 #include <imx.h>
6 #include <kernel/pseudo_ta.h>
7 #include <pta_imx_digprog.h>
8 
9 #define DIGPROG_PTA_NAME "digprog.pta"
10 
invokeCommandEntryPoint(void * sess_ctx __unused,uint32_t cmd_id __unused,uint32_t param_types,TEE_Param params[TEE_NUM_PARAMS])11 static TEE_Result invokeCommandEntryPoint(void *sess_ctx __unused,
12 					  uint32_t cmd_id __unused,
13 					  uint32_t param_types,
14 					  TEE_Param params[TEE_NUM_PARAMS])
15 {
16 	uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_VALUE_OUTPUT,
17 						   TEE_PARAM_TYPE_NONE,
18 						   TEE_PARAM_TYPE_NONE,
19 						   TEE_PARAM_TYPE_NONE);
20 
21 	if (param_types != exp_param_types)
22 		return TEE_ERROR_BAD_PARAMETERS;
23 
24 	params[0].value.a = imx_get_digprog();
25 	params[0].value.b = 0;
26 
27 	return TEE_SUCCESS;
28 }
29 
30 pseudo_ta_register(.uuid = PTA_DIGPROG_UUID, .name = DIGPROG_PTA_NAME,
31 		   .flags = PTA_DEFAULT_FLAGS,
32 		   .invoke_command_entry_point = invokeCommandEntryPoint);
33