repo sync 取下的代码目录如下,(如果取不下或者编不过可私信我,可把我的虚拟机百度网盘地方发你)

openbravo 架构 optee架构_openbravo 架构

1、bios_qemu_tz_arm

可以理解为BootLoader,用来加载Linux内核, OP-TEE 系统, 文件系统,并启动linux kernel和OP-TEE OS,但在qemu_V8下不需要这个目录,在这个阶段kernel是还没起来的,所以它需要实现一些基本驱动比如串口,还有一些基本的库函数如memset.c;

2、build

这个目录包含各种硬件平台下的编译脚本,有海思、MTK、树莓派等平台的编译脚本。MTK基本就没用OP-TEE,它的脚本也没维护,MTK现在主要使用豆荚科技和Trustonic这两家的TEE OS;

3、busybox

享有瑞士军刀之称,它提供各种shell命令,集成了三百多个最常用Linux命令和工具的软件,例如ls、cat和echo等等;

4、gen_rootfs

该目录主要实现将编译好的文件复制到rootfs_dir,并修改文件属性,建立linux文件设备节点,安装内核模块等等;

5、linux

linux内核代码,在./driver/tee目录下存放的是tee对应的驱动程序,已经关键的数据结构文件./include/linux/tee_drv.h;

6、optee_client

包含了CA程序调用的userspace层面的接口库的源代码。其中tee_supplicant目录是用于 TEE 请求 REE 的资源,整体上是一个循环流程: 其首先通过 ioctl 接口查询是否有来自 TEE的请求,如果没有,则进入睡眠等待状态,等待 TEEDriver 的唤醒信号,当 TEE Driver 收到来自 TEE 的请求后,会唤醒 tee-supplicant 辅助进程,然后根据请求号进行相应处理(读写数据文件,读写 EMMC 设备分区等),最后返回结果到TEE Driver,完成一次循环;

7、optee-examples

Optee 的使用示例,有hello_wold和random两个,hello_world只要实现一个整数的自加和自减操作,random主要是生成UUID号;

8、optee-os

optee系统源码

9、optee_test

opentee的测试程序xtest的源代码,主要用来测试TEE中提供的各种算法逻辑和提供的其他功能;

10、qemu

qemu源代码用来跑Linux嵌入式系统;

11、soc_term

在启动时与gnome-terminal命令一起启动终端,用于建立启动的两个终端的端口监听,一个终端时输出Normal world 的log, 一个终端时输出secure world的log。