1 /* SPDX-License-Identifier: BSD-2-Clause */ 2 /* 3 * Copyright (C) 2023, STMicroelectronics 4 */ 5 6 #ifndef TA_REMOTEPROC_H 7 #define TA_REMOTEPROC_H 8 9 /* 10 * This UUID is generated with uuidgen 11 * the ITU-T UUID generator at http://www.itu.int/ITU-T/asn1/uuid.html 12 */ 13 #define TA_REMOTEPROC_UUID { 0x80a4c275, 0x0a47, 0x4905, \ 14 { 0x82, 0x85, 0x14, 0x86, 0xa9, 0x77, 0x1a, 0x08} } 15 16 /* The command IDs implemented in this TA */ 17 18 /* 19 * Authentication of the firmware and load in the remote processor memory. 20 * 21 * [in] params[0].value.a: Unique 32bit remote processor identifier 22 * [in] params[1].memref: buffer containing the image of the firmware 23 */ 24 #define TA_RPROC_CMD_LOAD_FW 1 25 26 /* 27 * Start the remote processor. 28 * 29 * [in] params[0].value.a: Unique 32bit remote processor identifier 30 */ 31 #define TA_RPROC_CMD_START_FW 2 32 33 /* 34 * Stop the remote processor. 35 * 36 * [in] params[0].value.a: Unique 32bit remote processor identifier 37 */ 38 #define TA_RPROC_CMD_STOP_FW 3 39 40 /* 41 * Return the physical address of the resource table, or 0 if not found 42 * No check is done to verify that the address returned is accessible by the 43 * non-secure world. If the resource table is loaded in a protected memory, 44 * then accesses from non-secure world will likely fail. 45 * 46 * [in] params[0].value.a: Unique 32bit remote processor identifier 47 * [out] params[1].value.a: 32bit LSB resource table memory address 48 * [out] params[1].value.b: 32bit MSB resource table memory address 49 * [out] params[2].value.a: 32bit LSB resource table memory size 50 * [out] params[2].value.b: 32bit MSB resource table memory size 51 */ 52 #define TA_RPROC_CMD_GET_RSC_TABLE 4 53 54 /* 55 * Get remote processor firmware core dump. If found, return either 56 * TEE_SUCCESS on successful completion or TEE_ERROR_SHORT_BUFFER if output 57 * buffer is too short to store the core dump. 58 * 59 * [in] params[0].value.a: Unique 32bit remote processor identifier 60 * [out] params[1].memref: Core dump, if found 61 */ 62 #define TA_RPROC_CMD_GET_COREDUMP 5 63 64 /* 65 * Release remote processor firmware images and associated resources. 66 * This command should be used in case an error occurs between the loading of 67 * the firmware images (TA_RPROC_CMD_LOAD_FW) and the starting of the remote 68 * processor (TA_RPROC_CMD_START_FW) or after stopping the remote processor 69 * to release associated resources (TA_RPROC_CMD_STOP_FW). 70 * 71 * [in] params[0].value.a: Unique 32-bit remote processor identifier 72 */ 73 #define TA_RPROC_CMD_RELEASE_FW 6 74 #endif /*TA_REMOTEPROC_H*/ 75