日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

optee中MMU内存管理模型-页表的建立模型

發布時間:2025/3/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 optee中MMU内存管理模型-页表的建立模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

思考:
1、__identity_map_init_start 的干啥的,作用? ----看起來是給ALSR用的,暫且不研究

MMU頁表的創建模型,在optee os系統中,有很多種類型的memory,詳見teecore_memtypes,每一種內存類型(或者說每一塊內存)都可以使用tee_mmap_region結構體來描述。而在系統啟動的時候,需要先map一些內存,表示這些內存的結構體,又是放在一個名為static_memory_map的靜態全局數組中的(固定大小的,如MAX index = 23)

在開機啟動階段,事實上就填充了一個結構體,表示__nozi_start - __nozi_end 區間.

總結在開機階段就map了一小塊內存 : __nozi_start - __nozi_end 區間 ,并且是一一映射哦!!

(1)、teecore_memtypes 和 tee_mmap_region 結構體原型

非常重要的兩個結構體teecore_memtypestee_mmap_region

(optee_os/core/include/mm/tee_mmu_types.h)struct tee_mmap_region {unsigned int type; /* enum teecore_memtypes */unsigned int region_size;paddr_t pa;vaddr_t va;size_t size;uint32_t attr; /* TEE_MATTR_* above */ }; (optee_os/core/arch/arm/include/mm/core_mmu.h)enum teecore_memtypes {MEM_AREA_END = 0,MEM_AREA_TEE_RAM,MEM_AREA_TEE_RAM_RX,MEM_AREA_TEE_RAM_RO,MEM_AREA_TEE_RAM_RW,MEM_AREA_NEX_RAM_RW,MEM_AREA_TEE_COHERENT,MEM_AREA_TEE_ASAN,MEM_AREA_IDENTITY_MAP_RX,MEM_AREA_TA_RAM,MEM_AREA_NSEC_SHM,MEM_AREA_RAM_NSEC,MEM_AREA_RAM_SEC,MEM_AREA_IO_NSEC,MEM_AREA_IO_SEC,MEM_AREA_EXT_DT,MEM_AREA_RES_VASPACE,MEM_AREA_SHM_VASPACE,MEM_AREA_TA_VASPACE,MEM_AREA_PAGER_VASPACE,MEM_AREA_SDP_MEM,MEM_AREA_DDR_OVERALL,MEM_AREA_SEC_RAM_OVERALL,MEM_AREA_MAXTYPE };

(2)、static_memory_map 靜態全局數組的定義

static struct tee_mmap_region static_memory_map[CFG_MMAP_REGIONS];

CFG_MMAP_REGIONS為平臺的配置,如配置 CFG_MMAP_REGIONS = 23

(3)、init_mem_map() 創建頁表

在構造好static_memory_map結構體數組之后,調用init_mem_map() 即可遍歷數組去創建L1 L2 L3頁表, init_mem_map()的原型如下:

static unsigned long init_mem_map(struct tee_mmap_region *memory_map, size_t num_elems, unsigned long seed)

其中memory_map為數組的首地址, num_elems為結構體的個數, seed是ALSR(地址隨機)用的種子.

(3)、static_memory_map 數組的填充

總結

以上是生活随笔為你收集整理的optee中MMU内存管理模型-页表的建立模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。