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