1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3  * Copyright (c) 2017, Linaro Limited
4  */
5 
6 #ifndef __PTA_INVOKE_TESTS_H
7 #define __PTA_INVOKE_TESTS_H
8 
9 #define PTA_INVOKE_TESTS_UUID \
10 		{ 0xd96a5b40, 0xc3e5, 0x21e3, \
11 			{ 0x87, 0x94, 0x10, 0x02, 0xa5, 0xd5, 0xc6, 0x1b } }
12 
13 /* Trace some hello string. Parameters are not used/checked. */
14 #define PTA_INVOKE_TESTS_CMD_TRACE		0
15 
16 /*
17  * Types of parameter drives the test sequences:
18  * - test on value parameters
19  * - test on SHM memory reference parameters
20  * - test on SDP memory reference parameters
21  */
22 #define PTA_INVOKE_TESTS_CMD_PARAMS		1
23 
24 /* Run some core internal tests. Parameters are not used/checked. */
25 #define PTA_INVOKE_TESTS_CMD_SELF_TESTS		2
26 
27 /*
28  * Secure data path: check that PTA can copy data from non-secure shared memory
29  * to SDP secure memory
30  *
31  * [in]     memref[0]        source (non-secure shared memory)
32  * [out]    memref[1]        destination (SDP secure memory)
33  */
34 #define PTA_INVOKE_TESTS_CMD_COPY_NSEC_TO_SEC	3
35 
36 /*
37  * Secure data path: check that PTA can read data from SDP secure memory and
38  * write it back. Data are processed so that client check the expected
39  * read/write sequence succeed.
40  *
41  * [in/out]     memref[0]        SDP secure buffer to read from and write to
42  */
43 #define PTA_INVOKE_TESTS_CMD_READ_MODIFY_SEC	4
44 
45 /*
46  * Secure data path: check that PTA can copy data from SDP secure memory to
47  * non-secure shared memory
48  *
49  * [in]     memref[0]        source (SDP secure memory)
50  * [out]    memref[1]        destination (non-secure shared memory)
51  */
52 #define PTA_INVOKE_TESTS_CMD_COPY_SEC_TO_NSEC	5
53 
54 /*
55  * Tests FS hash-tree corner cases in error handling
56  */
57 #define PTA_INVOKE_TESTS_CMD_FS_HTREE		6
58 
59 /*
60  * Tests mutex
61  *
62  * [in]  value[0].a	Test function PTA_MUTEX_TEST_*
63  * [in]  value[0].b	delay number
64  * [out] value[1].a	before lock concurency
65  * [out] value[1].b	during lock concurency
66  */
67 #define PTA_MUTEX_TEST_WRITER			0
68 #define PTA_MUTEX_TEST_READER			1
69 #define PTA_INVOKE_TESTS_CMD_MUTEX		7
70 
71 /*
72  * Tests lock dependency checking algorithm
73  */
74 #define PTA_INVOKE_TESTS_CMD_LOCKDEP		8
75 
76 /*
77  * These values should match the ones in
78  * optee_test/ta/aes_perf/include/ta_aes_perf.h
79  */
80 #define PTA_INVOKE_TESTS_AES_ECB		0
81 #define PTA_INVOKE_TESTS_AES_CBC		1
82 #define PTA_INVOKE_TESTS_AES_CTR		2
83 #define PTA_INVOKE_TESTS_AES_XTS		3
84 #define PTA_INVOKE_TESTS_AES_GCM		4
85 
86 /*
87  * AES performance tests
88  *
89  * [in]     value[0].a	Top 16 bits Decrypt, low 16 bits key size in bits
90  * [in]     value[0].b	AES mode, one of
91  *			PTA_INVOKE_TESTS_AES_{ECB_NOPAD,CBC_NOPAD,CTR,XTS,GCM}
92  * [in]     value[1].a	repetition count
93  * [in]     value[1].b	unit size
94  * [in]     memref[2]	In buffer
95  * [in]     memref[3]	Out buffer
96  */
97 #define PTA_INVOKE_TEST_CMD_AES_PERF		9
98 
99 /*
100  * NULL memory reference parameter
101  *
102  * [in/out] memref[0]	NULL memory reference of size zero
103  */
104 #define PTA_INVOKE_TESTS_CMD_MEMREF_NULL	10
105 
106 /*
107  * Retrieve results of the dt_driver framework internal test
108  */
109 #define PTA_INVOKE_TESTS_CMD_DT_DRIVER_TESTS	11
110 
111 #endif /*__PTA_INVOKE_TESTS_H*/
112 
113