/linux/drivers/crypto/ccp/ |
H A D | tee-dev.c | 3 * AMD Trusted Execution Environment (TEE) interface 18 #include <linux/psp-tee.h> 21 #include "tee-dev.h" 25 static int tee_alloc_ring(struct psp_tee_device *tee, int ring_size) in tee_alloc_ring() argument 27 struct ring_buf_manager *rb_mgr = &tee->rb_mgr; in tee_alloc_ring() 49 static void tee_free_ring(struct psp_tee_device *tee) in tee_free_ring() argument 51 struct ring_buf_manager *rb_mgr = &tee->rb_mgr; in tee_free_ring() 66 struct tee_init_ring_cmd *tee_alloc_cmd_buffer(struct psp_tee_device *tee) in tee_alloc_cmd_buffer() argument 74 cmd->hi_addr = upper_32_bits(tee->rb_mgr.ring_pa); in tee_alloc_cmd_buffer() 75 cmd->low_addr = lower_32_bits(tee->rb_mgr.ring_pa); in tee_alloc_cmd_buffer() [all …]
|
H A D | tee-dev.h | 10 /* This file describes the TEE communication interface between host and AMD 25 * struct tee_init_ring_cmd - Command to init TEE ring buffer 62 * enum tee_cmd_state - TEE command states for the ring buffer interface 64 * @TEE_CMD_STATE_PROCESS: command being processed by TEE environment 74 * enum cmd_resp_state - TEE command's response status maintained by driver 76 * @CMD_WAITING_FOR_RESPONSE: driver waiting for response from TEE 77 * @CMD_RESPONSE_TIMEDOUT: failed to get response from TEE 78 * @CMD_RESPONSE_COPIED: driver has copied response from TEE 88 * struct tee_ring_cmd - Structure of the command buffer in TEE ring 92 * @status: status of TEE command execution [all …]
|
/linux/Documentation/tee/ |
H A D | op-tee.rst | 4 OP-TEE (Open Portable Trusted Execution Environment) 7 The OP-TEE driver handles OP-TEE [1] based TEEs. Currently it is only the ARM 8 TrustZone based OP-TEE solution that is supported. 10 Lowest level of communication with OP-TEE builds on ARM SMC Calling 11 Convention (SMCCC) [2], which is the foundation for OP-TEE's SMC interface 12 [3] used internally by the driver. Stacked on top of that is OP-TEE Message 15 OP-TEE SMC interface provides the basic functions required by SMCCC and some 16 additional functions specific for OP-TEE. The most interesting functions are: 21 - OPTEE_SMC_CALL_GET_OS_UUID returns the particular OP-TEE implementation, used 22 to tell, for instance, a TrustZone OP-TEE apart from an OP-TEE running on a [all …]
|
H A D | amd-tee.rst | 4 AMD-TEE (AMD's Trusted Execution Environment) 7 The AMD-TEE driver handles the communication with AMD's TEE environment. The 8 TEE environment is provided by AMD Secure Processor. 12 software-based Trusted Execution Environment (TEE) designed to enable 16 The following picture shows a high level overview of AMD-TEE:: 32 || | | TEE | 36 | TEE | | TEE | AMD-TEE | | AMD-TEE | 40 | Generic TEE API | | ASP | Mailbox | 47 the secure processor and return results to AMD-TEE driver. The interface 48 between AMD-TEE driver and AMD Secure Processor driver can be found in [1]. [all …]
|
H A D | tee.rst | 4 TEE (Trusted Execution Environment) 7 This document describes the TEE subsystem in Linux. 12 A TEE is a trusted OS running in some secure environment, for example, 13 TrustZone on ARM CPUs, or a separate secure co-processor etc. A TEE driver 14 handles the details needed to communicate with the TEE. 18 - Registration of TEE drivers 20 - Managing shared memory between Linux and the TEE 22 - Providing a generic API to the TEE
|
H A D | index.rst | 4 TEE Subsystem 10 tee 11 op-tee 12 amd-tee 13 ts-tee
|
/linux/include/linux/ |
H A D | psp-tee.h | 3 * AMD Trusted Execution Environment (TEE) interface 17 /* This file defines the Trusted Execution Environment (TEE) interface commands 19 * AMD-TEE Trusted OS. 23 * enum tee_cmd_id - TEE Interface Command IDs 25 * TEE environment 26 * @TEE_CMD_ID_UNLOAD_TA: Unload TA binary from TEE environment 46 * @cmd_id: TEE command ID (&enum tee_cmd_id) 47 * @buf: Command buffer for TEE processing. On success, is updated 50 * @status: On success, holds the TEE command execution status 53 * TEE environment and waits for a response or until the command times out. [all …]
|
H A D | tee_drv.h | 13 #include <linux/tee.h> 17 * The file describes the API provided by the TEE subsystem to the 18 * TEE client drivers. 32 * wait for tee-supplicant daemon to be started if not present 34 * that arises from TEE based kernel drivers that should be 36 * @cap_memref_null: flag indicating if the TEE Client support shared 101 * particular TEE client driver 102 * @ctx: The TEE context for shared memory allocation 110 * particular TEE client driver 111 * @ctx: The TEE context for shared memory registration [all …]
|
/linux/tools/testing/selftests/rcutorture/bin/ |
H A D | kvm-remote.sh | 79 echo | tee -a "$oldrun/remote-log" 80 echo " ----" kvm.sh output: "(`date`)" | tee -a "$oldrun/remote-log" 81 cat $T/kvm.sh.out | tee -a "$oldrun/remote-log" 88 echo $scriptname: kvm-again.sh failed exit code $? | tee -a "$oldrun/remote-log" 89 cat $T/kvm-again.sh.out | tee -a "$oldrun/remote-log" 106 echo $scriptname: kvm-again.sh failed exit code $? | tee -a "$oldrun/remote-log" 107 cat $T/kvm-again.sh.out | tee -a "$oldrun/remote-log" 113 echo | tee -a "$oldrun/remote-log" 114 echo " ----" kvm-again.sh output: "(`date`)" | tee -a "$oldrun/remote-log" 116 echo | tee -a "$oldrun/remote-log" [all …]
|
H A D | torture.sh | 242 echo " --- " $scriptname $args | tee -a $T/log 243 echo " --- Results directory: " $ds | tee -a $T/log 253 echo " --- Zero time for rcutorture, disabling" | tee -a $T/log 265 echo " --- Zero time for locktorture, disabling" | tee -a $T/log 277 echo " --- Zero time for scftorture, disabling" | tee -a $T/log 297 echo " --- $curflavor:" Start `date` | tee -a $T/log 308 cat $T/$curflavor.out | tee -a $T/log 309 echo retcode=$retcode | tee -a $T/log 360 echo " --- allmodconfig:" Start `date` | tee -a $T/log 363 echo " --- make clean" | tee $amcdir/log > "$amcdir/Make.out" 2>&1 [all …]
|
H A D | kvm-end-run-stats.sh | 30 echo | tee -a "$rundir/log" 31 echo | tee -a "$rundir/log" 32 echo " --- `date` Test summary:" | tee -a "$rundir/log" 33 echo Results directory: $rundir | tee -a "$rundir/log" 34 kcsan-collapse.sh "$rundir" | tee -a "$rundir/log" 37 cat $T/kvm-recheck.sh.out | tee -a "$rundir/log" 38 echo " --- Done at `date` (`get_starttime_duration $starttime`) exitcode $ret" | tee -a "$rundir/lo…
|
/linux/Documentation/driver-api/ |
H A D | tee.rst | 4 TEE (Trusted Execution Environment) driver API 7 Kernel provides a TEE bus infrastructure where a Trusted Application is 11 TEE bus infrastructure registers following APIs: 17 process happens whenever a device or a client driver is registered with TEE 22 TEE bus for auto-loading of modularized client drivers. 24 TEE bus device enumeration is specific to underlying TEE implementation, so it 25 is left open for TEE drivers to provide corresponding implementation. 27 Then TEE client driver can talk to a matched Trusted Application using APIs 30 TEE client driver example 33 Suppose a TEE client driver needs to communicate with a Trusted Application [all …]
|
/linux/Documentation/userspace-api/ |
H A D | tee.rst | 2 .. tee: 5 TEE (Trusted Execution Environment) Userspace API 8 include/uapi/linux/tee.h defines the generic interface to a TEE. 10 User space (the client) connects to the driver by opening /dev/tee[0-9]* or 19 - TEE_IOC_VERSION lets user space know which TEE this driver handles and 31 a helper process for the TEE to access resources in Linux, for example file 32 system access. A normal client opens /dev/tee[0-9]* and a supplicant opens 35 Much of the communication between clients and the TEE is opaque to the 37 clients, forward them to the TEE and send back the results. In the case of 38 supplicants the communication goes in the other direction, the TEE sends
|
/linux/Documentation/ABI/testing/ |
H A D | sysfs-bus-optee-devices | 1 What: /sys/bus/tee/devices/optee-ta-<uuid>/ 4 Contact: op-tee@lists.trustedfirmware.org 6 OP-TEE bus provides reference to registered drivers under this directory. The <uuid> 10 What: /sys/bus/tee/devices/optee-ta-<uuid>/need_supplicant 13 Contact: op-tee@lists.trustedfirmware.org 15 Allows to distinguish whether an OP-TEE based TA/device requires user-space 16 tee-supplicant to function properly or not. This attribute will be present for 17 devices which depend on tee-supplicant to be running.
|
H A D | sysfs-class-tee | 1 What: /sys/class/tee/tee{,priv}X/rpmb_routing_model 4 Contact: op-tee@lists.trustedfirmware.org 7 user-space daemon tee-supplicant or the RPMB subsystem 11 subsystem without assistance from tee-supplicant. It 15 tee-supplicant is needed in the early boot with initramfs.
|
/linux/drivers/tee/optee/ |
H A D | Kconfig | 2 # OP-TEE Trusted Execution Environment Configuration 4 tristate "OP-TEE" 9 This implements the OP-TEE Trusted Execution Environment (TEE) 13 bool "Load OP-TEE image as firmware" 17 This loads the BL32 image for OP-TEE as firmware when the driver is 27 Documentation/tee/op-tee.rst.
|
H A D | optee_private.h | 32 /* API Return Codes are from the GP TEE Internal Core API Specification */ 51 * struct optee_call_waiter - TEE entry may need to wait for a free TEE thread 63 * struct optee_call_queue - OP-TEE call queue management 65 * @waiters List of threads waiting to enter OP-TEE 66 * @total_thread_count Overall number of thread context in OP-TEE or 0 67 * @free_thread_count Number of threads context free in OP-TEE 136 * @notif_irq interrupt used as async notification by OP-TEE or 0 156 * OP-TEE in secure world 173 * struct optee_ops - OP-TEE driver internal operations 174 * @do_call_with_arg: enters OP-TEE in secure world [all …]
|
/linux/tools/testing/selftests/amd-pstate/ |
H A D | gitsource.sh | 31 echo "$1, $2, $3, $4, $5, $6, $7, $8" | tee -a $OUTFILE_GIT.csv > /dev/null 2>&1 106 printf "Gitsource-$1-#$2 avg des perf: $avg_des_perf\n" | tee -a $OUTFILE_GIT.result 110 printf "Gitsource-$1-#$2 avg freq: $avg_freq\n" | tee -a $OUTFILE_GIT.result 114 printf "Gitsource-$1-#$2 avg load: $avg_load\n" | tee -a $OUTFILE_GIT.result 118 printf "Gitsource-$1-#$2 user time(s): $time_sum\n" | tee -a $OUTFILE_GIT.result 122 printf "Gitsource-$1-#$2 power consumption(J): $en_sum\n" | tee -a $OUTFILE_GIT.result 132 printf "Gitsource-$1-#$2 performance per watt(1/J): $ppw\n" | tee -a $OUTFILE_GIT.result 133 printf "\n" | tee -a $OUTFILE_GIT.result 153 printf "Gitsource test result for $1 (loops:$LOOP_TIMES)" | tee -a $OUTFILE_GIT.result 154 printf "\n--------------------------------------------------\n" | tee -a $OUTFILE_GIT.result [all …]
|
H A D | tbench.sh | 26 echo "$1, $2, $3, $4, $5, $6, $7, $8" | tee -a $OUTFILE_TBENCH.csv > /dev/null 2>&1 88 printf "Tbench-$1-#$2 avg des perf: $avg_des_perf\n" | tee -a $OUTFILE_TBENCH.result 92 printf "Tbench-$1-#$2 avg freq: $avg_freq\n" | tee -a $OUTFILE_TBENCH.result 96 printf "Tbench-$1-#$2 avg load: $avg_load\n" | tee -a $OUTFILE_TBENCH.result 100 printf "Tbench-$1-#$2 throughput(MB/s): $tp_sum\n" | tee -a $OUTFILE_TBENCH.result 104 printf "Tbench-$1-#$2 power consumption(J): $en_sum\n" | tee -a $OUTFILE_TBENCH.result 114 printf "Tbench-$1-#$2 performance per watt(MB/J): $ppw\n" | tee -a $OUTFILE_TBENCH.result 115 printf "\n" | tee -a $OUTFILE_TBENCH.result 135 printf "Tbench test result for $1 (loops:$LOOP_TIMES)" | tee -a $OUTFILE_TBENCH.result 136 printf "\n--------------------------------------------------\n" | tee -a $OUTFILE_TBENCH.result [all …]
|
/linux/drivers/tee/amdtee/ |
H A D | call.c | 7 #include <linux/tee.h> 9 #include <linux/psp-tee.h> 15 static int tee_params_to_amd_params(struct tee_param *tee, u32 count, in tee_params_to_amd_params() argument 24 if (!tee || !amd || count > TEE_MAX_PARAMS) in tee_params_to_amd_params() 29 /* AMD TEE does not support meta parameter */ in tee_params_to_amd_params() 30 if (tee[i].attr > TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT) in tee_params_to_amd_params() 33 amd->param_types |= ((tee[i].attr & 0xF) << i * 4); in tee_params_to_amd_params() 48 u32 buf_id = get_buffer_id(tee[i].u.memref.shm); in tee_params_to_amd_params() 51 amd->params[i].mref.offset = tee[i].u.memref.shm_offs; in tee_params_to_amd_params() 52 amd->params[i].mref.size = tee[i].u.memref.size; in tee_params_to_amd_params() [all …]
|
H A D | amdtee_if.h | 8 * This file has definitions related to Host and AMD-TEE Trusted OS interface. 9 * These definitions must match the definitions on the TEE side. 18 ** TEE Param 52 /* Must be same as in GP TEE specification */ 67 ** TEE Commands 120 * struct tee_cmd_load_ta - load Trusted Application (TA) binary into TEE 125 * @return_origin: [out] origin of return code after TEE processing 136 * struct tee_cmd_unload_ta - command to unload TA binary from TEE environment 148 * @return_origin: [out] origin of return code after TEE processing 175 * @return_origin: [out] origin of return code after TEE processing
|
/linux/include/uapi/linux/ |
H A D | tee.h | 35 * This file describes the API provided by a TEE driver to user space. 37 * Each TEE driver defines a TEE specific protocol which is used for the 47 #define TEE_GEN_CAP_GP (1 << 0)/* GlobalPlatform compliant TEE */ 55 * TEE Implementation ID 62 * OP-TEE specific capabilities 67 * struct tee_ioctl_version_data - TEE version 68 * @impl_id: [out] TEE implementation id 72 * Identifies the TEE implementation, @impl_id is one of TEE_IMPL_ID_* above. 83 * TEE_IOC_VERSION - query version of TEE 85 * Takes a tee_ioctl_version_data struct and returns with the TEE version [all …]
|
/linux/drivers/tee/ |
H A D | Kconfig | 3 menuconfig TEE config 12 Environment (TEE). 14 if TEE 16 source "drivers/tee/optee/Kconfig" 17 source "drivers/tee/amdtee/Kconfig" 18 source "drivers/tee/tstee/Kconfig"
|
/linux/drivers/firmware/arm_scmi/transports/ |
H A D | optee.c | 16 #include <uapi/linux/tee.h> 38 * and SCMI server (OP-TEE) parts. 61 * SCMI shm information are 0 if agent expects to use OP-TEE regular SHM 87 * OP-TEE SCMI service capabilities bit flags (32bit) 90 * When set, OP-TEE supports command using SMT header protocol (SCMI shmem) in 94 * When set, OP-TEE supports command using MSG header protocol in an OP-TEE 105 * struct scmi_optee_channel - Description of an OP-TEE SCMI channel 107 * @channel_id: OP-TEE channel ID used for this transport 108 * @tee_session: TEE session identifier 109 * @caps: OP-TEE SCMI channel capabilities [all …]
|
/linux/drivers/crypto/ccree/ |
H A D | cc_fips.c | 20 * whether TEE FIPS error occurred. 27 /* Did the TEE report status? */ in cc_get_tee_fips_status() 37 * This function should push the FIPS REE library status towards the TEE library 52 /* Push REE side FIPS test failure to TEE side */ 62 dev_info(dev, "Notifying TEE of FIPS test failure...\n"); in cc_ree_fips_failure() 94 panic("ccree: TEE reported cryptographic error in fips mode!\n"); in tee_fips_error() 96 dev_err(dev, "TEE reported error!\n"); in tee_fips_error() 100 * This function check if cryptocell tee fips error occurred
|