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