Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.15-rc3 142 lines 4.4 kB view raw
1/* SPDX-License-Identifier: BSD-2-Clause */ 2/* 3 * Copyright (c) 2016-2021, Linaro Limited 4 */ 5 6#ifndef __OPTEE_RPC_CMD_H 7#define __OPTEE_RPC_CMD_H 8 9/* 10 * All RPC is done with a struct optee_msg_arg as bearer of information, 11 * struct optee_msg_arg::arg holds values defined by OPTEE_RPC_CMD_* below. 12 * Only the commands handled by the kernel driver are defined here. 13 * 14 * RPC communication with tee-supplicant is reversed compared to normal 15 * client communication described above. The supplicant receives requests 16 * and sends responses. 17 */ 18 19/* 20 * Get time 21 * 22 * Returns number of seconds and nano seconds since the Epoch, 23 * 1970-01-01 00:00:00 +0000 (UTC). 24 * 25 * [out] value[0].a Number of seconds 26 * [out] value[0].b Number of nano seconds. 27 */ 28#define OPTEE_RPC_CMD_GET_TIME 3 29 30/* 31 * Notification from/to secure world. 32 * 33 * If secure world needs to wait for something, for instance a mutex, it 34 * does a notification wait request instead of spinning in secure world. 35 * Conversely can a synchronous notification can be sent when a secure 36 * world mutex with a thread waiting thread is unlocked. 37 * 38 * This interface can also be used to wait for a asynchronous notification 39 * which instead is sent via a non-secure interrupt. 40 * 41 * Waiting on notification 42 * [in] value[0].a OPTEE_RPC_NOTIFICATION_WAIT 43 * [in] value[0].b notification value 44 * [in] value[0].c timeout in milliseconds or 0 if no timeout 45 * 46 * Sending a synchronous notification 47 * [in] value[0].a OPTEE_RPC_NOTIFICATION_SEND 48 * [in] value[0].b notification value 49 */ 50#define OPTEE_RPC_CMD_NOTIFICATION 4 51#define OPTEE_RPC_NOTIFICATION_WAIT 0 52#define OPTEE_RPC_NOTIFICATION_SEND 1 53 54/* 55 * Suspend execution 56 * 57 * [in] value[0].a Number of milliseconds to suspend 58 */ 59#define OPTEE_RPC_CMD_SUSPEND 5 60 61/* 62 * Allocate a piece of shared memory 63 * 64 * [in] value[0].a Type of memory one of 65 * OPTEE_RPC_SHM_TYPE_* below 66 * [in] value[0].b Requested size 67 * [in] value[0].c Required alignment 68 * [out] memref[0] Buffer 69 */ 70#define OPTEE_RPC_CMD_SHM_ALLOC 6 71/* Memory that can be shared with a non-secure user space application */ 72#define OPTEE_RPC_SHM_TYPE_APPL 0 73/* Memory only shared with non-secure kernel */ 74#define OPTEE_RPC_SHM_TYPE_KERNEL 1 75 76/* 77 * Free shared memory previously allocated with OPTEE_RPC_CMD_SHM_ALLOC 78 * 79 * [in] value[0].a Type of memory one of 80 * OPTEE_RPC_SHM_TYPE_* above 81 * [in] value[0].b Value of shared memory reference or cookie 82 */ 83#define OPTEE_RPC_CMD_SHM_FREE 7 84 85/* 86 * Issue master requests (read and write operations) to an I2C chip. 87 * 88 * [in] value[0].a Transfer mode (OPTEE_RPC_I2C_TRANSFER_*) 89 * [in] value[0].b The I2C bus (a.k.a adapter). 90 * 16 bit field. 91 * [in] value[0].c The I2C chip (a.k.a address). 92 * 16 bit field (either 7 or 10 bit effective). 93 * [in] value[1].a The I2C master control flags (ie, 10 bit address). 94 * 16 bit field. 95 * [in/out] memref[2] Buffer used for data transfers. 96 * [out] value[3].a Number of bytes transferred by the REE. 97 */ 98#define OPTEE_RPC_CMD_I2C_TRANSFER 21 99 100/* I2C master transfer modes */ 101#define OPTEE_RPC_I2C_TRANSFER_RD 0 102#define OPTEE_RPC_I2C_TRANSFER_WR 1 103 104/* I2C master control flags */ 105#define OPTEE_RPC_I2C_FLAGS_TEN_BIT BIT(0) 106 107/* 108 * Reset RPMB probing 109 * 110 * Releases an eventually already used RPMB devices and starts over searching 111 * for RPMB devices. Returns the kind of shared memory to use in subsequent 112 * OPTEE_RPC_CMD_RPMB_PROBE_NEXT and OPTEE_RPC_CMD_RPMB calls. 113 * 114 * [out] value[0].a OPTEE_RPC_SHM_TYPE_*, the parameter for 115 * OPTEE_RPC_CMD_SHM_ALLOC 116 */ 117#define OPTEE_RPC_CMD_RPMB_PROBE_RESET 22 118 119/* 120 * Probe next RPMB device 121 * 122 * [out] value[0].a Type of RPMB device, OPTEE_RPC_RPMB_* 123 * [out] value[0].b EXT CSD-slice 168 "RPMB Size" 124 * [out] value[0].c EXT CSD-slice 222 "Reliable Write Sector Count" 125 * [out] memref[1] Buffer with the raw CID 126 */ 127#define OPTEE_RPC_CMD_RPMB_PROBE_NEXT 23 128 129/* Type of RPMB device */ 130#define OPTEE_RPC_RPMB_EMMC 0 131#define OPTEE_RPC_RPMB_UFS 1 132#define OPTEE_RPC_RPMB_NVME 2 133 134/* 135 * Replay Protected Memory Block access 136 * 137 * [in] memref[0] Frames to device 138 * [out] memref[1] Frames from device 139 */ 140#define OPTEE_RPC_CMD_RPMB_FRAMES 24 141 142#endif /*__OPTEE_RPC_CMD_H*/