xref: /optee_os/ta/qcom_pas/include/ta_qcom_pas.h (revision abca35a69f9bea0496cf05e025c3c36e6d5ea68b)
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3  * Copyright (c) 2026, Qualcomm Technologies, Inc. and/or its subsidiaries.
4  */
5 
6 #ifndef _TA_QCOM_PAS_H
7 #define _TA_QCOM_PAS_H
8 
9 #include <stdint.h>
10 #include <util.h>
11 
12 /*
13  * Interface to the TA which provides platform implementation of the
14  * Peripheral Authentication service.
15  */
16 
17 #define TA_PAS_UUID { 0xcff7d191, 0x7ca0, 0x4784, \
18 		{ 0xaf, 0x13, 0x48, 0x22, 0x3b, 0x9a, 0x4f, 0xbe} }
19 
20 /*
21  * Peripheral Authentication Service (PAS) supported.
22  *
23  * [in]  params[0].value.a:	Unique 32bit remote processor identifier
24  */
25 #define TA_QCOM_PAS_IS_SUPPORTED		1
26 
27 /*
28  * PAS capabilities.
29  *
30  * [in]  params[0].value.a:	Unique 32bit remote processor identifier
31  * [out] params[1].value.a:	PAS capability flags
32  */
33 #define TA_QCOM_PAS_CAPABILITIES		2
34 
35 /*
36  * PAS image initialization.
37  *
38  * [in]  params[0].value.a:	Unique 32bit remote processor identifier
39  * [in]  params[1].memref:	Loadable firmware metadata
40  */
41 #define TA_QCOM_PAS_INIT_IMAGE			3
42 
43 /*
44  * PAS memory setup.
45  *
46  * [in]  params[0].value.a:	Unique 32bit remote processor identifier
47  * [in]  params[0].value.b:	Relocatable firmware size
48  * [in]  params[1].value.a:	32bit LSB relocatable firmware memory address
49  * [in]  params[1].value.b:	32bit MSB relocatable firmware memory address
50  */
51 #define TA_QCOM_PAS_MEM_SETUP			4
52 
53 /*
54  * PAS get resource table.
55  *
56  * [in]     params[0].value.a:	Unique 32bit remote processor identifier
57  * [in/out] params[1].memref:	Resource table config
58  */
59 #define TA_QCOM_PAS_GET_RESOURCE_TABLE		5
60 
61 /*
62  * PAS image authentication and co-processor reset.
63  *
64  * [in]  params[0].value.a:	Unique 32bit remote processor identifier
65  * [in]  params[0].value.b:	Firmware size
66  * [in]  params[1].value.a:	32bit LSB firmware memory address
67  * [in]  params[1].value.b:	32bit MSB firmware memory address
68  * [in]  params[2].memref:	Optional fw memory space shared/lent
69  */
70 #define TA_QCOM_PAS_AUTH_AND_RESET		6
71 
72 /*
73  * PAS co-processor set suspend/resume state.
74  *
75  * [in]  params[0].value.a:	Unique 32bit remote processor identifier
76  * [in]  params[0].value.b:	Co-processor state identifier
77  */
78 #define TA_QCOM_PAS_SET_REMOTE_STATE		7
79 
80 /*
81  * PAS co-processor shutdown.
82  *
83  * [in]  params[0].value.a:	Unique 32bit remote processor identifier
84  */
85 #define TA_QCOM_PAS_SHUTDOWN			8
86 
87 #endif /* _TA_QCOM_PAS_H */
88