當前位置:
首頁 >
optee3.14中MMU页表查询的所需配置--深入解读
發布時間:2025/3/21
38
豆豆
生活随笔
收集整理的這篇文章主要介紹了
optee3.14中MMU页表查询的所需配置--深入解读
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
從arm官方文檔來看,物理地址的有效位支持32、36、40、42、44、48,最大為48,如果開啟了ARMv8.2-LPA,則也支持52
而對應的虛擬地址的有效位,是沒用規定的,但是有一條潛規則,虛擬地址的有效位需要大于等于物理地址的有效位(一般情況下,虛擬地址有效位=物理地址有效位)
下圖展示了"General view of VMSAv8-64 stage 1 address translation, 4KB granule", 然后我們可以找出如下規律:
- 除了第一級index(這里是leve 0 table中的index),每一個查找table/page的index都是9個bit,也就是說除了第一級頁表,后面的每一級table都是有512個offset
- 如果VA_BIT = 39,那么leve 0 table用BIT[39:39]表示,只有1個offset
- 如果VA_BIT = 48,那么leve 0 table用BIT[48:39]表示,有512個offset
- 如果VA_BIT > 48,那是不存在的,因為arm規定,大于48的,只有一個,那就是VA_BIT=52,并且規定該情況下的最小granue size=64KB,而我們這里講述的是granue size=4KB的情況
- 如果VA_BIT = 32,那么leve 0 table就不用了,TTBR_ELx指向Level 1 table
- 另外我們還需注意一點,在Level 0 table中,他只能指向D_Table,不能指向D_Block
接著,我們再看一個示例,optee os中是一個怎樣的情況?它怎么使用的?
配置了:VA_BIT=32, PA_BIT=32, graule_size=4KB
所以對于optee os,顯然是下面的這種情況:
代碼也印證了這個觀點:
顯然官網的那張圖是不正確的
總結:當前的optee os的配置如下:
32位有效虛擬地址、32位有效物理地址,3級頁表查詢(L1、L2、L3),顆粒的位4KB
總結
以上是生活随笔為你收集整理的optee3.14中MMU页表查询的所需配置--深入解读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ARMV8虚拟中断的介绍
- 下一篇: C语言中compile time ass