Toybrick

TB-RK3399ProD optee---找不到tee的驱动结点/dev/tee0和/dev/teepriv0

zhangzj

超级版主

积分
1109
楼主
发表于 2022-1-18 08:47:49 | 显示全部楼层
3399pro上面的节点是:/dev/opteearmtz00
回复

使用道具 举报

zhangzj

超级版主

积分
1109
沙发
发表于 2022-1-18 11:25:15 | 显示全部楼层
008 发表于 2022-1-18 09:49
toybrick@debian10:/dev$ ls
block            loop3               rtc0    tty30  tty59        vcs4
b ...

全部开机串口发出来看下。
kernel config把CONFIG_TEE_SUPPORT开起来应该就可以了。
回复

使用道具 举报

zhangzj

超级版主

积分
1109
板凳
发表于 2022-1-20 08:39:56 | 显示全部楼层
008kai 发表于 2022-1-19 11:38
toybrick@debian10:~$ dmesg|grep "tee"
[    1.118416] tz_tee_probe: name="armv7sec", id=0, pdev_nam ...

这个log没关系,3399pro是64bit,optee也会是64bit
回复

使用道具 举报

zhangzj

超级版主

积分
1109
地板
发表于 2022-1-27 08:56:18 | 显示全部楼层
008 发表于 2022-1-20 17:39
官方提供 的trust.img,op-tee是哪个版本的?

3399Pro是V1.1.0
回复

使用道具 举报

zhangzj

超级版主

积分
1109
5#
发表于 2022-2-8 09:32:09 | 显示全部楼层
008kai 发表于 2022-1-29 20:59
据我所知道的optee的版本号有3.7  3.10等,1.1.0是不是过于古老了?还是命名规范不同造成的?我可不可以 ...

由于兼容性问题,3399pro的optee一直没升级,因此就是官方的V1.1.0。

如果想用mainline的版本也可以,optee os V3.8.0及以上的版本已经加入了3399平台的支持。如下提交:
de5333ed plat-rockchip: add rk3399 and px30 flavors

你需要做以下工作:
1.编译mainline optee os,生成tee pager bin,替换掉rkbin/bin/rk33/rk3399pro_bl32_V*.bin
2.rockchip平台采用atags传参,optee会将自己用的内存地址和大小传给uboot,uboot将这块内存reserved,对kernel是不可见的。但是mainline的optee os没有支持atags传参,因此你需要再uboot中指定reserved的内存,或者在kernel中reserved memory。
回复

使用道具 举报

zhangzj

超级版主

积分
1109
6#
发表于 2022-2-9 09:02:15 | 显示全部楼层
008kai 发表于 2022-2-8 17:23
toybrick提供的linux版本是4.4.139,我编译了optee os,并且生成了自己的trust.img,但是系统不能正常启动 ...

如果是用V3.8.0及以上的optee os,则linux kernel驱动也需要用新版本的,toybrick  4.4 kernel应该已经支持(驱动位于/drivers/tee),只需要使能起来即可。

1.config使能
CONFIG_OPTEE=y
CONFIG_TEE=y

2.dts使能,添加optee node
        firmware {
                optee: optee {
                        compatible = "linaro,optee-tz";
                        method = "smc";
                };  
        };  

3. 确认驱动是否加载成功
新版本驱动节点为/dev/tee0和/dev/teepriv0


以上是驱动的开启方法,你说起不来是启动到哪里,如果还没跑到uboot,那就是optee os编译出来的bin有问题
回复

使用道具 举报

zhangzj

超级版主

积分
1109
7#
发表于 2022-2-16 09:02:11 | 显示全部楼层
你这个bl32都没跑起来,暂时跟reserved memory没关系。先把bl32跑起来再解决reserved memory。

3399pro和3399的bl32是一样的。所以3399编译出来的tee_pager.bin可以在3399pro上面使用

1. mainline上面的更新可能会有问题,建议将commit点checkout到刚支持3399的那个commit。

2. rkbin中bl32的加载地址需要和optee os中的加载地址一样
rkbin/RKTRUST/RK3399PROTRUST.ini中的BL32的ADDR
10 [BL32_OPTION]
11 SEC=1
12 PATH=bin/rk33/rk3399pro_bl32_v2.10.bin
13 ADDR=0x08400000
回复

使用道具 举报

zhangzj

超级版主

积分
1109
8#
发表于 2022-2-18 08:57:59 | 显示全部楼层
008kai 发表于 2022-2-17 20:29
我将optee os中的plat-rockchip/conf.mk文件做出如下修改:

ifeq ($(PLATFORM_FLAVOR),rk3399)

log
回复

使用道具 举报

zhangzj

超级版主

积分
1109
9#
发表于 2022-2-22 08:47:26 | 显示全部楼层
008kai 发表于 2022-2-21 11:12
从打印的log来看,应该改是u-boot/lib/optee_client_Api中的代码出现了问题,u-boot中的关于optee client ...

可以去掉,因为client和optee os版本不匹配了。
1. 把uboot中optee相关的宏disable掉
CONFIG_OPTEE_CLIENT=y
CONFIG_OPTEE_V1=y
2. 把依赖optee client的这个代码去掉
arch/arm/mach-rockchip/boot_mode.c
toybrick_check_SnMacAc();
回复

使用道具 举报

zhangzj

超级版主

积分
1109
10#
发表于 2022-2-22 19:15:21 | 显示全部楼层
uboot崩溃打印出来的堆栈下面有提示如何debug,根据提示操作可以打印出调用函数堆栈,trace到哪个函数崩溃

Copy above stack info to a file(eg. dump.txt), and
execute command in your U-Boot project: ./scripts/stacktrace.sh dump.txt
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表