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