diff --git a/docs/opentrustee-guidelines/opentrustee-compatibility-test-suite-introduction.md b/docs/opentrustee-guidelines/opentrustee-compatibility-test-suite-introduction.md index df95f88c63f82f864558b8ce6d9b9d5192352f3d..cb44a571c2ede5fdabe7894ce9998162dbcad64e 100644 --- a/docs/opentrustee-guidelines/opentrustee-compatibility-test-suite-introduction.md +++ b/docs/opentrustee-guidelines/opentrustee-compatibility-test-suite-introduction.md @@ -1,5 +1,5 @@ ## OpenTrustee的验证测试套件说明 -OpenTrustee提供了acts兼容性测试套件,CA的具体目录在`test/xts/acts/tee`下,TA以签名后的二进制存放在`https://gitee.com/openharmony-sig/compatibility/tree/master/test_suite/resource/tee`资源目录下。 +OpenTrustee提供了acts兼容性测试套件,CA的具体目录在`test/xts/acts/tee`下,TA以签名后的二进制存放在[兼容性测试套件标准系统资源目录](https://gitee.com/openharmony-sig/compatibility/tree/master/test_suite/resource/master/standard%20system/acts/resource)的tee路径下。 | 测试CA | 测试TA | 说明 | | ------------ | ------------------------------------------------------------ | --- | | tee_test_client_api | 534d4152-542d-4353-b919-d3016a171fc5.sec | CA与TA通信API | @@ -8,10 +8,11 @@ OpenTrustee提供了acts兼容性测试套件,CA的具体目录在`test/xts/ac - 进入openharmony根目录,在test/xts/acts目录下执行编译命令,编译CA测试用例。 ```Bash +cd test/xts/acts ./build.sh product_name=rk3568 system_size=standard target_subsystem=tee ``` -- 参考`https://www.openharmony.cn/certification/document/guid`中的《标准系统应用兼容性测试指导》章节,在Windows工作台上搭建运行环境 +- 参考[《openharmony兼容性测评服务》](https://www.openharmony.cn/certification/document/guid)中的《标准系统应用兼容性测试指导》章节,在Windows工作台上搭建运行环境 - 从 `https://gitee.com/openharmony-sig/compatibility` 下载资源文件,将`test_suite/resource/master/standard system/acts`目录下的文件拷贝到`acts/resource`目录下 - 进入acts目录,直接执行run.bat,然后在命令框里输入以下命令运行用例 diff --git a/docs/opentrustee-guidelines/opentrustee-debug-mechanism-introduction.md b/docs/opentrustee-guidelines/opentrustee-debug-mechanism-introduction.md index 7708ad4d3e9bbd714380186a10fbae971ef678b8..0ef4db39e46094c2950ebbba3786dc03685988d8 100644 --- a/docs/opentrustee-guidelines/opentrustee-debug-mechanism-introduction.md +++ b/docs/opentrustee-guidelines/opentrustee-debug-mechanism-introduction.md @@ -1,11 +1,9 @@ # OpenTrustee调试机制介绍 -## TEE侧日志查看 +## 日志 +当前OpenTrustee支持TEE侧日志系统,在TEEOS中提供LIB接口供TA和OpenTrustee Framework调用记录日志。 -当前OpenTrustee支持TEE侧日志系统,在TEE中提供LIB接口供TA和OpenTrustee Framework调用记录日志。使用维测接口获取TEE侧信息的说明如下: -通过`hdc shell`打开命令行窗口,输入tlogcat即可查看日志。 - -## 日志级别 +### 日志级别 当前TEE中日志分为以下5个级别。 @@ -56,15 +54,7 @@ ->![](public_sys-resources/icon-note.gif) **说明:** ->新开发TA推荐用上述日志接口,不建议使用其他接口。 - -### 日志使用限制 - -1. 日志内存大小是有限的,当日志写入比较快时,会出现日志被覆盖的情况,日志内存采用的是内核申请的PAGES内存,大小是256K。 -2. 增加TA日志时,要符合安全规范,不能打印用户隐私信息、内存地址等,不打印调试日志,且一条日志内容要做到字符精简。 - -### 使用方法 +### 使用方法 在源代码文件中包含tee\_log.h,使用与日志级别对应的日志打印接口打印日志。 @@ -110,4 +100,13 @@ tee\_log.h中默认使用的日志级别为INFO,即默认打印使用tloge、t 2. 直接修改tee\_log.h中定义的TA\_LOG\_LEVEL\_DEFAULT为期望的级别。多个TA共用同一个tee\_log.h文件且期望打印的日志级别不一致时,不能选用此方式。 -3. 直接修改tee\_log.h中定义的TA\_LOG\_LEVEL为期望的级别。多个TA共用同一个tee\_log.h文件且期望打印的日志级别不一致时,不能选用此方式。 \ No newline at end of file +3. 直接修改tee\_log.h中定义的TA\_LOG\_LEVEL为期望的级别。多个TA共用同一个tee\_log.h文件且期望打印的日志级别不一致时,不能选用此方式。 + +### 日志使用限制 + +1. 日志内存大小是有限的,当日志写入比较快时,会出现日志被覆盖的情况,日志内存采用的是内核申请的PAGES内存,大小是256K。 +2. 增加TA日志时,要符合安全规范,不能打印用户隐私信息、内存地址等,不打印调试日志,且一条日志内容要做到字符精简。 + +### TEE侧日志查看 + +通过`hdc shell`打开命令行窗口,输入tlogcat即可查看日志。 \ No newline at end of file diff --git a/docs/opentrustee-guidelines/opentrustee-enable-new-platform-adaptation-guidelines.md b/docs/opentrustee-guidelines/opentrustee-enable-new-platform-adaptation-guidelines.md index bf4a2bc657da1c88ba53c1f9c786e6e74326e41a..24fc603fe5d939478b9a8bcc15e9cabf73b8c3ff 100644 --- a/docs/opentrustee-guidelines/opentrustee-enable-new-platform-adaptation-guidelines.md +++ b/docs/opentrustee-guidelines/opentrustee-enable-new-platform-adaptation-guidelines.md @@ -41,7 +41,7 @@ hdc file send tlogcat /system/bin/ ## Tzdriver的适配和构建 -tzdriver是TEE的内核驱动,主要功能是在整个TEE子系统中起连接作用,是使用TEE OS服务的桥梁,tzdriver处理来自于tee\_client的ioctl命令,并通过smc指令从REE切换到TEE。 +tzdriver是TEE的内核驱动,主要功能是在整个TEE子系统中起连接作用,是使用TEEOS服务的桥梁,tzdriver处理来自于tee\_client的ioctl命令,并通过smc指令从REE切换到TEE。 ### 适配指导以及适配实例 @@ -112,7 +112,7 @@ tzdriver有一些特性或者选项,可以选择配置,控制这些选项的 ``` # - # TEE OS + # TEEOS # CONFIG_TZDRIVER=y CONFIG_CPU_AFF_NR=1 @@ -177,7 +177,7 @@ tzdriver部件跟随kernel一起编译,以rk3568为例,可以重编boot_linu 芯片使能TEE时,需要对Loader和ATF进行适配。 ### TEE Loader的适配 -TEE Loader主要负责加载安全镜像并将启动参数传递给TEE OS的功能。启动参数包含TEE OS用到的安全内存地址和大小,串口的地址,gic寄存器配置,以及其它拓展参数。 +TEE Loader主要负责加载安全镜像并将启动参数传递给TEEOS的功能。启动参数包含TEEOS用到的安全内存地址和大小,串口的地址,gic寄存器配置,以及其它拓展参数。 **表 2** 启动参数列表 @@ -199,14 +199,14 @@ TEE Loader主要负责加载安全镜像并将启动参数传递给TEE OS的功

phys_region_size

-

TEE OS内存大小

+

TEEOS内存大小

2MB的整数倍。

phys_region_start

-

TEE OS内存起始物理地址

+

TEEOS内存起始物理地址

2MB的整数倍。

@@ -229,7 +229,7 @@ TEE Loader主要负责加载安全镜像并将启动参数传递给TEE OS的功

其它参数

-

格式需要和TEE OS核对。

+

格式需要和TEEOS核对。

@@ -257,7 +257,7 @@ static struct platform_info g_teeos_cfg; static uintptr_t g_teeos_base_addr = 0; -/* 设置TEE OS的起始地址size的大小 */ +/* 设置TEEOS的起始地址size的大小 */ int32_t set_teeos_mem(uintptr_t teeos_base_addr, uint64_t size) { g_teeos_base_addr = teeos_base_addr; @@ -270,7 +270,7 @@ int32_t set_teeos_mem(uintptr_t teeos_base_addr, uint64_t size) return 0; } -/* 设置TEE OS的串口地址和类型 */ +/* 设置TEEOS的串口地址和类型 */ void set_teeos_uart(uint64_t uart_addr) { g_teeos_cfg.uart_addr = uart_addr; @@ -299,7 +299,7 @@ bool copy_extend_datas(void *extend_datas, uint64_t extend_length) return true; } -/* 拷贝启动参数到目标位置,配置TEE OS属性后调用此接口 */ +/* 拷贝启动参数到目标位置,配置TEEOS属性后调用此接口 */ bool copy_teeos_cfg(void) { if (g_teeos_cfg.phys_region_start == 0) @@ -337,16 +337,16 @@ uint64_t get_teeos_size(void) CHCORE_PLAT=new_plat ``` >![](public_sys-resources/icon-caution.gif) **注意:** -启动参数的适配方法可以按照产品的习惯要求采用不同的方法,例如结构体中直接填写相应的参数,或者增加配置文件的方法。启动参数也可以直接配置在TEE OS 中,以 RK3568 平台为例(详见 `base/tee/tee_os_kernel/kernel/arch/aarch64/plat/rk3568/machine.c`)。 +启动参数的适配方法可以按照产品的习惯要求采用不同的方法,例如结构体中直接填写相应的参数,或者增加配置文件的方法。启动参数也可以直接配置在TEEOS 中,以 RK3568 平台为例(详见 `base/tee/tee_os_kernel/kernel/arch/aarch64/plat/rk3568/machine.c`)。 ### TEE ATF适配指导 -- ARM从v6架构开始就引入了TrustZone技术,将AMR核的工作状态分为安全态和非安全态两种,在芯片级别对硬件资源提供保护和隔离。在实现了BL32(即安全OS)的平台,需要在ATF中添加SPD模块来实现安全世界和非安全世界的切换,对于teeos,我们提供了teed模块,位于 `base/tee/tee_os_framework/sample/teed`。**按照ATF的编译框架,在ATF根目录下的Makefile里面添加如下选项可以使能teed**。 +- ARM从v6架构开始就引入了TrustZone技术,将AMR核的工作状态分为安全态和非安全态两种,在芯片级别对硬件资源提供保护和隔离。在实现了BL32(即安全OS)的平台,需要在ATF中添加SPD模块来实现安全世界和非安全世界的切换,对于TEEOS,我们提供了teed模块,位于 `base/tee/tee_os_framework/sample/teed`。**按照ATF的编译框架,在ATF根目录下的Makefile里面添加如下选项可以使能teed**。 ```makefile SPD := teed ``` -- 同时,TEE OS 需要适配 ATF 中的 teed,适配代码位于`base/tee/tee_os_kernel/kernel/arch/aarch64/trustzone/spd/teed`目录中,此代码开发者适配新平台时无需修改。 -- 另外,SMC在TEEOS中负责CA和TA的交互、ATF和TEE的交互,TEE OS的适配需要关注SMC通信参数。下表进行了具体介绍。 +- 同时,TEEOS 需要适配 ATF 中的 teed,适配代码位于`base/tee/tee_os_kernel/kernel/arch/aarch64/trustzone/spd/teed`目录中,此代码开发者适配新平台时无需修改。 +- 另外,SMC在TEEOS中负责CA和TA的交互、ATF和TEE的交互,TEEOS的适配需要关注SMC通信参数。下表进行了具体介绍。 **表 3** teed smc id管理列表 @@ -433,14 +433,14 @@ uint64_t get_teeos_size(void) #### 兼容opteed -对于无法修改ATF的单板,TEE OS提供了兼容opteed的方案,具体适配代码位于 `base/tee/tee_os_kernel/kernel/arch/aarch64/trustzone/spd/opteed` 目录中。 +对于无法修改ATF的单板,TEEOS提供了兼容opteed的方案,具体适配代码位于 `base/tee/tee_os_kernel/kernel/arch/aarch64/trustzone/spd/opteed` 目录中。 另外,若需要使能新的 TEED,可以在`spd`目录下添加相应 TEED 的适配代码,并且在 `base/tee/tee_os_kernel/config.mk` 中更新 CHCORE_SPD 配置. ```makefile CHCORE_SPD=new_teed ``` -## TEE OS镜像的构建指导 +## TEEOS镜像的构建指导 以RK3568芯片为例,TEEOS的二进制文件(bl32.bin)被打包在uboot.img中,以下是构建TEEOS镜像的指导。