On 2/7/2025 4:12 PM, Sumit Garg wrote: > On Fri, 7 Feb 2025 at 01:25, Amirreza Zarrabi <quic_azarrabi@xxxxxxxxxxx> wrote: >> >> >> >> On 2/5/2025 4:38 PM, Sumit Garg wrote: >>> Hi Amirreza, >>> >>> On Mon, 3 Feb 2025 at 08:14, Amirreza Zarrabi <quic_azarrabi@xxxxxxxxxxx> wrote: >>>> >>>> This patch series introduces a Trusted Execution Environment (TEE) >>>> driver for Qualcomm TEE (QTEE). QTEE enables Trusted Applications (TAs) >>>> and services to run securely. It uses an object-based interface, where >>>> each service is an object with sets of operations. Clients can invoke >>>> these operations on objects, which can generate results, including other >>>> objects. For example, an object can load a TA and return another object >>>> that represents the loaded TA, allowing access to its services. >>>> >>>> Kernel and userspace services are also available to QTEE through a >>>> similar approach. QTEE makes callback requests that are converted into >>>> object invocations. These objects can represent services within the >>>> kernel or userspace process. >>>> >>>> Note: This patch series focuses on QTEE objects and userspace services. >>>> >>>> Linux already provides a TEE subsystem, which is described in [1]. The >>>> tee subsystem provides a generic ioctl interface, TEE_IOC_INVOKE, which >>>> can be used by userspace to talk to a TEE backend driver. We extend the >>>> Linux TEE subsystem to understand object parameters and an ioctl call so >>>> client can invoke objects in QTEE: >>>> >>>> - TEE_IOCTL_PARAM_ATTR_TYPE_OBJREF_* >>>> - TEE_IOC_OBJECT_INVOKE >>>> >>>> The existing ioctl calls TEE_IOC_SUPPL_RECV and TEE_IOC_SUPPL_SEND are >>>> used for invoking services in the userspace process by QTEE. >>>> >>>> The TEE backend driver uses the QTEE Transport Message to communicate >>>> with QTEE. Interactions through the object INVOKE interface are >>>> translated into QTEE messages. Likewise, object invocations from QTEE >>>> for userspace objects are converted into SEND/RECV ioctl calls to >>>> supplicants. >>>> >>>> The details of QTEE Transport Message to communicate with QTEE is >>>> available in [PATCH 10/10] Documentation: tee: Add Qualcomm TEE driver. >>>> >>>> You can run basic tests with following steps: >>>> git clone https://github.com/quic/quic-teec.git >>>> cd quic-teec >>>> mkdir build >>>> cmake .. -DCMAKE_TOOLCHAIN_FILE=CMakeToolchain.txt -DBUILD_UNITTEST=ON >>>> >>>> https://github.com/quic/quic-teec/blob/main/README.md lists dependancies >>>> needed to build the above. >>>> >>>> This series has been tested for basic QTEE object invocations and >>>> callback requests, including loading a TA and requesting services form >>>> the TA. >>> >>> Thanks for sharing these test user-space applications/libraries. Can I >>> know which platforms are currently supported by this QTEE driver? I >>> would like to run and understand the overall stack on a real device. I >>> do have rb3, rb5 and db410c on my desk to test with. >>> >>> Also, platform support is important information you should put in the >>> cover letter as well as the QTEE documentation. >>> >>> -Sumit >>> >> >> I have tested it with sm8650-mtp. But would expect it to work with any platform. > > Good to know that I will try to test it by next week on one of the > available platforms on my desk. > >> I'll update the cover letter with the details :). > > Also, put it in QTEE documentation too such that people are aware > about supported platforms. > Ack. > -Sumit