可实现 Vela tee 与 optee os 间的适配,让 optee_os 运行于 Vela tee 系统,TA 和 CA 程序可直接运行。核心功能含 compat 系统模块、server 请求处理及 wasm TA 支持。【此简介由AI生成】
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 |
optee_vela
项目概览
optee_vela本身是用于实现Vela tee和optee os之间的适配层,让optee_os可以运行在Vela tee系统当中。
因此optee_os当中的TA,CA程序都是可以直接在vela系统当中运行的。
借助于optee_vela,使得我们不需要对optee_os工程本身做任何修改,就可以使得optee_os在vela当中完整运行。
下面是optee_vela本身在整个Vela tee系统当中的位置:
+-------------------------------------------------------+
| optee os |
+-------------------------------------------------------+
| optee_vela |
+-------------------------------------------------------+
| vela kernel |
+-------------------------------------------------------+
项目描述
optee_vela当中主要是包含3部分功能:
compat: 用于支持optee os上层framework在vela当中运行的系统模块,例如atomic,fs,mem操作等基础模块server: 用于接收和处理所有来自vela ap发起的对vela tee的请求,例如打开open TA,invoke TA cmd等操作wasm: 用于支持vela特有的wasm TA在optee os当中运行
下面分别介绍:
1. compat
compat适配层主要是将optee os上层framework需要用到的系统API使用vela的系统API进行实现,例如atomic,mem,fs等基础API.
下面介绍一下主要的被替换的API模块:
- fs
fs模块当中主要是包含了2部分:
-
host_fshost_fs主要是用于实现optee os当中需要的ree fs操作.在optee os当中,ree fs的实现是将所有的和fs相关的操作都转发到ree当中进行处理. 这是因为optee os当中本身对fs的操作支持有限,所以复杂的fs操作都需要跨核传递到ree当中来处理. 但是由于vela tee是一个全功能的os,在tee当中也支持复杂的fs操作,因此vela tee当中的ree fs可以直接在vela tee侧来完成. 而host_fs就是用于实现该功能.
-
rpmb_fsrpmb_fs主要是用于实现optee os当中需要的操作rpmb驱动的实现.vela tee本身支持rpmb驱动,然后通过rpmb_fs就可以在optee os当中直接使用rpmb驱动.
atomic
这个API模块主要是将optee os运行需要的atomic,spinlock替换成vela系统支持的atomic和spinlock接口实现。
2. server
在vela当中,vela ap和vela tee之间的通信过程是通过rpmsg socket来进行的。
在这个过程当中,我们可以将vela ap作为客户端,然后vela tee作为服务端。
vela tee当中的server就是实现为rpmsg socket server,用于接收和处理rpmsg socket client发起的请求.
server部分本身用于完成vela ap发起的对vela tee的请求处理.
server部分会创建一个opteed的task出来.
然后在系统启动的时候,会在后台启动opteed:
opteed &
3. wasm
vela tee本身支持wasm TA, wasm TA是指的TA程序本身是以wasm字节码的格式来编译链接,然后在运行的时候,由vela tee内置的wamr framework来
加载和运行该wasm TA.