xref: /optee_os/lib/libutee/include/rng_pta_client.h (revision b2ac1d0fa34ca28382fcedb30d938ccd4e8a5316)
1*b2ac1d0fSSergiy Kibrik /* SPDX-License-Identifier: BSD-2-Clause */
2*b2ac1d0fSSergiy Kibrik /*
3*b2ac1d0fSSergiy Kibrik  * Copyright (C) 2018, Linaro Limited
4*b2ac1d0fSSergiy Kibrik  */
5*b2ac1d0fSSergiy Kibrik 
6*b2ac1d0fSSergiy Kibrik #ifndef __RNG_PTA_CLIENT_H
7*b2ac1d0fSSergiy Kibrik #define __RNG_PTA_CLIENT_H
8*b2ac1d0fSSergiy Kibrik 
9*b2ac1d0fSSergiy Kibrik #define PTA_RNG_UUID { 0xab7a617c, 0xb8e7, 0x4d8f, \
10*b2ac1d0fSSergiy Kibrik 		{ 0x83, 0x01, 0xd0, 0x9b, 0x61, 0x03, 0x6b, 0x64 } }
11*b2ac1d0fSSergiy Kibrik 
12*b2ac1d0fSSergiy Kibrik #define TEE_ERROR_HEALTH_TEST_FAIL	0x00000001
13*b2ac1d0fSSergiy Kibrik 
14*b2ac1d0fSSergiy Kibrik /*
15*b2ac1d0fSSergiy Kibrik  * PTA_CMD_GET_ENTROPY - Get Entropy from RNG using Thermal Sensor
16*b2ac1d0fSSergiy Kibrik  *
17*b2ac1d0fSSergiy Kibrik  * param[0] (inout memref) - Entropy buffer memory reference
18*b2ac1d0fSSergiy Kibrik  * param[1] unused
19*b2ac1d0fSSergiy Kibrik  * param[2] unused
20*b2ac1d0fSSergiy Kibrik  * param[3] unused
21*b2ac1d0fSSergiy Kibrik  *
22*b2ac1d0fSSergiy Kibrik  * Result:
23*b2ac1d0fSSergiy Kibrik  * TEE_SUCCESS - Invoke command success
24*b2ac1d0fSSergiy Kibrik  * TEE_ERROR_BAD_PARAMETERS - Incorrect input param
25*b2ac1d0fSSergiy Kibrik  * TEE_ERROR_NOT_SUPPORTED - Requested entropy size greater than size of pool
26*b2ac1d0fSSergiy Kibrik  * TEE_ERROR_HEALTH_TEST_FAIL - Continuous health testing failed
27*b2ac1d0fSSergiy Kibrik  */
28*b2ac1d0fSSergiy Kibrik #define PTA_CMD_GET_ENTROPY		0x0
29*b2ac1d0fSSergiy Kibrik 
30*b2ac1d0fSSergiy Kibrik /*
31*b2ac1d0fSSergiy Kibrik  * PTA_CMD_GET_RNG_INFO - Get RNG information
32*b2ac1d0fSSergiy Kibrik  *
33*b2ac1d0fSSergiy Kibrik  * param[0] (out value) - value.a: RNG data-rate in bytes per second
34*b2ac1d0fSSergiy Kibrik  *                        value.b: Quality/Entropy per 1024 bit of data
35*b2ac1d0fSSergiy Kibrik  * param[1] unused
36*b2ac1d0fSSergiy Kibrik  * param[2] unused
37*b2ac1d0fSSergiy Kibrik  * param[3] unused
38*b2ac1d0fSSergiy Kibrik  *
39*b2ac1d0fSSergiy Kibrik  * Result:
40*b2ac1d0fSSergiy Kibrik  * TEE_SUCCESS - Invoke command success
41*b2ac1d0fSSergiy Kibrik  * TEE_ERROR_BAD_PARAMETERS - Incorrect input param
42*b2ac1d0fSSergiy Kibrik  */
43*b2ac1d0fSSergiy Kibrik #define PTA_CMD_GET_RNG_INFO		0x1
44*b2ac1d0fSSergiy Kibrik 
45*b2ac1d0fSSergiy Kibrik #endif /* __RNG_PTA_CLIENT_H */
46