Toybrick

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

008kai

注册会员

积分
115
楼主
发表于 2022-1-17 16:14:11    查看: 15071|回复: 31 | [复制链接]    打印 | 显示全部楼层
本帖最后由 008kai 于 2022-1-17 16:18 编辑

rk3399pro支持optee,optee的镜像被打包进了trust.img,为什么在dev目录下找不到tee的驱动结点/dev/tee0和/dev/teepriv0?
回复

使用道具 举报

008kai

注册会员

积分
115
沙发
 楼主| 发表于 2022-1-19 11:04:44 | 显示全部楼层
zhangzj 发表于 2022-1-18 11:25
全部开机串口发出来看下。
kernel config把CONFIG_TEE_SUPPORT开起来应该就可以了。 ...

可以啦,谢谢
在linux/arch/arm64/configs/rockchip_linux_deconfig添加如下内容:
CONFIG_OPTEE=y
CONFIG_TEE=y
CONFIG_TEE_SUPPORT=y
重新编译内核./make.sh linux prod
开机就可以看到/dev/opteearmtz00结点啦
回复

使用道具 举报

008kai

注册会员

积分
115
板凳
 楼主| 发表于 2022-1-19 11:38:56 | 显示全部楼层
zhangzj 发表于 2022-1-18 11:25
全部开机串口发出来看下。
kernel config把CONFIG_TEE_SUPPORT开起来应该就可以了。 ...

toybrick@debian10:~$ dmesg|grep "tee"
[    1.118416] tz_tee_probe: name="armv7sec", id=0, pdev_name="armv7sec.0"
[    1.119027] TEE core: Alloc the misc device "opteearmtz00" (id=0)
[    1.119755] TEE Core: Register the misc device "opteearmtz00" (id=0,minor=62)
我还有一个疑问,name="armv7sec",指的是使用了32位的optee吗?
回复

使用道具 举报

008kai

注册会员

积分
115
地板
 楼主| 发表于 2022-1-29 20:59:30 | 显示全部楼层

据我所知道的optee的版本号有3.7  3.10等,1.1.0是不是过于古老了?还是命名规范不同造成的?我可不可以使用官方提供的optee os,然后编译自己的3.7或者3.8版本的optee client 和optee xtest?
回复

使用道具 举报

008kai

注册会员

积分
115
5#
 楼主| 发表于 2022-2-3 18:12:39 | 显示全部楼层

我想编译3.7版本的optee test、optee example,optee example依赖optee os,我该使用哪个版本的optee os?我没找到有1.1版本的optee os
回复

使用道具 举报

008kai

注册会员

积分
115
6#
 楼主| 发表于 2022-2-8 17:23:00 | 显示全部楼层
zhangzj 发表于 2022-2-8 09:32
由于兼容性问题,3399pro的optee一直没升级,因此就是官方的V1.1.0。

如果想用mainline的版本也可以,op ...

toybrick提供的linux版本是4.4.139,我编译了optee os,并且生成了自己的trust.img,但是系统不能正常启动,这和Linux版本有关系吗?我需不需要使用更高版本的linux内核?
回复

使用道具 举报

008kai

注册会员

积分
115
7#
 楼主| 发表于 2022-2-9 21:36:27 | 显示全部楼层
zhangzj 发表于 2022-2-8 09:32
由于兼容性问题,3399pro的optee一直没升级,因此就是官方的V1.1.0。

如果想用mainline的版本也可以,op ...

不好意思,我对如何在u-boot或者Linux设置预留地址不太明白,您可以告诉我如何设置吗?我使用的是RB-RK3399ProD开发板,我尝试在u-boot中的rk3399pro-npu-evb.dts中添加如下结点:
reserved-memory {
      #address-cells = <2>;
      #size-cells = <2>;
      ranges;

      reserved: optee@0x00800000 {
         reg = <0x0 0x00800000 0x0 0x00400000>;
      };
   };
以上做法有哪里不对吗?此外optee os v3.8.0的编译选项中没有rk3399pro,只有rk3399,这对编译出来的tee-pager.bin有影响吗?最后,如果我使用optee os v3.8.0,atf需不需要也升级到更高的版本来将rkbin中的rk3399pro_bl31_v*.elf替换掉?
回复

使用道具 举报

008kai

注册会员

积分
115
8#
 楼主| 发表于 2022-2-9 22:49:23 | 显示全部楼层
本帖最后由 008kai 于 2022-4-25 11:36 编辑
zhangzj 发表于 2022-2-9 09:02
如果是用V3.8.0及以上的optee os,则linux kernel驱动也需要用新版本的,toybrick  4.4 kernel应该已经支 ...

下面是我的启动信息,初始化bl32就被挂起了:
GPT part:  0, name:            uboot, start:0x2000, size:0x2000
GPT part:  1, name:            trust, start:0x4000, size:0x2000
GPT part:  2, name:       boot_linux, start:0x6000, size:0x30000
GPT part:  3, name:           rootfs, start:0x36000, size:0x3a07fdf
find part:uboot OK. first_lba:0x2000.
find part:trust OK. first_lba:0x4000.
LoadTrust Addr:0x4000
No find bl30.bin
Load uboot, ReadLba = 2000
Load OK, addr=0x200000, size=0xf48c4
RunBL31 0x40000
NOTICE:  BL31: v1.3(debug):42583b6
NOTICE:  BL31: Built : 07:55:13, Oct 15 2019
NOTICE:  BL31: Rockchip release version: v1.1
INFO:    GICv3 with legacy support detected. ARM GICV3 driver initialized in EL3
INFO:    Using opteed sec cpu_context!
INFO:    boot cpu mask: 0
INFO:    plat_rockchip_pmu_init(1190): pd status 3e
INFO:    BL31: Initializing runtime services
INFO:    BL31: Initializing BL32


回复

使用道具 举报

008kai

注册会员

积分
115
9#
 楼主| 发表于 2022-2-12 18:50:35 | 显示全部楼层
zhangzj 发表于 2022-2-8 09:32
由于兼容性问题,3399pro的optee一直没升级,因此就是官方的V1.1.0。

如果想用mainline的版本也可以,op ...

optee os V3.8以上的版本已经加入了对rk3399平台的支持,将PLATFORM设置为rk3399,这样编译出来的tee.pager.bin适合在tk3399pro平台上使用吗?
回复

使用道具 举报

008kai

注册会员

积分
115
10#
 楼主| 发表于 2022-2-17 20:29:41 | 显示全部楼层
本帖最后由 008kai 于 2022-2-17 20:30 编辑
zhangzj 发表于 2022-2-16 09:02
你这个bl32都没跑起来,暂时跟reserved memory没关系。先把bl32跑起来再解决reserved memory。

3399pro和3 ...

我将optee os中的plat-rockchip/conf.mk文件做出如下修改:

ifeq ($(PLATFORM_FLAVOR),rk3399)
include core/arch/arm/cpu/cortex-armv8-0.mk
$(call force,CFG_TEE_CORE_NB_CORE,6)
$(call force,CFG_ARM_GICV3,y)

CFG_TZDRAM_START ?= 0x08400000
CFG_TZDRAM_SIZE  ?= 0x02000000
CFG_SHMEM_START  ?= 0x0a4000000
CFG_SHMEM_SIZE   ?= 0x00400000

rkbin/RKTRUST/RK3399PROTRUST.ini中的BL32的ADDR
[BL32_OPTION]
SEC=1
PATH=bin/rk33/rk3399pro_bl32_v1.21.bin
ADDR=0x08400000

打包生成trust.img并烧写进开发板,但是此时开发板会一直停在烧写模式,无法reset进入系统
回复

使用道具 举报

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

本版积分规则

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


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