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