optee的共享内存的介绍
共享內(nèi)存
- 1、共享內(nèi)存的介紹
- 2、共享內(nèi)存的使用
★★★ 友情鏈接 : 個(gè)人博客導(dǎo)讀首頁(yè)—點(diǎn)擊此處 ★★★
1、共享內(nèi)存的介紹
share memory是一塊內(nèi)存區(qū)域, 用于non-secure world和secure world的通信.
optee支持兩種share memory: 連續(xù)的buffer,非連續(xù)的buffer
optee是按照buffer來管理共享內(nèi)存的,而不是按照pool來管理的. 每一個(gè)buf需要配置如下屬性:
buffer的起始地址和size
該buffer的cache屬性
如果是被map到非連續(xù)的buf,則列出它所有的塊(chunk)
配置成連續(xù)的share buffer
CFG_CORE_RESERVED_SHM=y
CFG_SHMEM_START and CFG_SHMEM_SIZE 定義起始地址和size
該memory的type是MEM_AREA_NSEC_SHM
在non-secure world需要調(diào)用OPTEE_SMC_GET_SHM_CONFIG來獲取:
share memory的物理地址和size
share memory的cached屬性
非連續(xù)的share memory(動(dòng)態(tài)注冊(cè)的)
CFG_CORE_DYN_SHM=y
在使用share memory之前,REE需要調(diào)用OPTEE_MSG_CMD_REGISTER_SHM注冊(cè)share memroy, 在optee中share memroy最小的chunk單位是4k bytes;
共享內(nèi)存是在linux driver中分配的,linux kernel需支持CONFIG_GENERIC_ALLOCATION 來分配/釋放內(nèi)存物理塊. optee的linux driver依賴于linux內(nèi)核dma-buf支持(CONFIG_DMA_SHARED_BUFFER)來跟蹤共享內(nèi)存緩沖區(qū)引用
2、共享內(nèi)存的使用
TEEC_AllocateSharedMemory(…) 在linux中分配內(nèi)存
TEEC_RegisterSharedMemory(…) 到optee中注冊(cè)該內(nèi)存
(還會(huì)繼續(xù)更😁😁😁😁😁😁😁😁😁)
總結(jié)
以上是生活随笔為你收集整理的optee的共享内存的介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [architecture]-AMBA
- 下一篇: optee中core_init_mmu_