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