潮声隔雨深 · 2020年04月05日

OP-TEE相关的问题

刚接触optee,对其不是很了解。想问下:在optee_os源码中lib/libutee下实现了许多GP TEE的规范接口。这些API如TEE_WriteObjectData通过调用系统服务函数utee_storage_obj_write转到内核层中的syscall_storage_obj_write来实现的。这中间是怎么跳转的,即utee_storage_obj_write是怎么连接到syscall_storage_obj_write的?以这个API为例帮忙分析下这些API从用户层被调用具体是怎么一步步实现其功能的?

1 个回答 得票排序 · 时间排序
一知半解 · 2020年04月05日

通过系统调用(SVC)指令,切换到特权模式,以AArch32为例,请参考下面的链接

optee_os/utee_syscalls_asm.S at master · OP-TEE/optee_os · GitHub

optee_os/utee_syscalls.h at master · OP-TEE/optee_os · GitHub

optee_os/utee_syscalls_a32.S at master · OP-TEE/optee_os · GitHub

thread_svc_handler

optee_os/thread_a32.S at master · OP-TEE/optee_os · GitHub

tee_svc_handler

optee_os/arch_svc.c at 194d0ae8f7a20e06bd722f43ef5892638b2d249a · OP-TEE/optee_os · GitHub

你的回答