OP-TEE driver(六):tee_supplicant接口在驱动中的实现

本文详细阐述了tee_supplicant与OP-TEE驱动的交互过程,包括驱动如何接收和处理OP-TEE的RPC请求,tee_supplicant如何获取并执行这些请求,以及RPC请求的返回流程。整个交互模式类似生产者-消费者模型,涉及libteec库、驱动和tee_supplicant的协同工作。
摘要由CSDN通过智能技术生成

REE侧就两个,CA通过libteec库访问TA,以及TA通过tee_supplicant访问REE侧资源,这两个都是通过OP-TEE驱动,上文看了libteec,这里来看看tee_supplicant。

tee_supplicant与OP-TEE之间的交互模式类似于生产者与消费者的关系。完成上述需求的整个过程包含驱动接收来自OP-TEE的请求、tee_supplicant从驱动中获取OP-TEE的请求并处理、驱动返回请求操作结果给OP-TEE三部分。其整个过程如图9-4所示。

在这里插入图片描述
当libteec库调用驱动来与OP-TEE进行数据的交互时,最终会调用optee_do_call_with_arg函数完成安全监控模式调用(smc)的操作,该函数中有一个无限循环,每次触发安全监控模式调用后会从安全世界状态(SWS)中返回的参数res.a0中获取到返回值,以此来判定当前从安全世界状态返回的数据是要执行RPC操作还是直接返回到CA。

如果是来自OP-TEE的RPC请求,则会将请求存放到请求队列req中,然后block住,直到tee_supplicant处理完请求并将req->c标记为完成状态后才会进入下一个loop,重新触发安全监控模式调用,将处理结果返回给OP-TEE。

1 接收OP-TEE的RPC请求(OP-TEE驱动)

当libteec库触发安全监控模式调用后,最终会调用OP-TEE驱动的optee_do_call_with_arg函数,该函数会进入到死循环,第一条语句会采用安全监控模式调用࿰

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TrustZone_Hcoco

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值