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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

optee3.14中MMU页表查询的所需配置--深入解读

發(fā)布時(shí)間:2025/3/21 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 optee3.14中MMU页表查询的所需配置--深入解读 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

從arm官方文檔來看,物理地址的有效位支持32、36、40、42、44、48,最大為48,如果開啟了ARMv8.2-LPA,則也支持52

而對(duì)應(yīng)的虛擬地址的有效位,是沒用規(guī)定的,但是有一條潛規(guī)則,虛擬地址的有效位需要大于等于物理地址的有效位(一般情況下,虛擬地址有效位=物理地址有效位)

下圖展示了"General view of VMSAv8-64 stage 1 address translation, 4KB granule", 然后我們可以找出如下規(guī)律:

  • 除了第一級(jí)index(這里是leve 0 table中的index),每一個(gè)查找table/page的index都是9個(gè)bit,也就是說除了第一級(jí)頁表,后面的每一級(jí)table都是有512個(gè)offset
  • 如果VA_BIT = 39,那么leve 0 table用BIT[39:39]表示,只有1個(gè)offset
  • 如果VA_BIT = 48,那么leve 0 table用BIT[48:39]表示,有512個(gè)offset
  • 如果VA_BIT > 48,那是不存在的,因?yàn)閍rm規(guī)定,大于48的,只有一個(gè),那就是VA_BIT=52,并且規(guī)定該情況下的最小granue size=64KB,而我們這里講述的是granue size=4KB的情況
  • 如果VA_BIT = 32,那么leve 0 table就不用了,TTBR_ELx指向Level 1 table
  • 另外我們還需注意一點(diǎn),在Level 0 table中,他只能指向D_Table,不能指向D_Block


    接著,我們?cè)倏匆粋€(gè)示例,optee os中是一個(gè)怎樣的情況?它怎么使用的?
    配置了:VA_BIT=32, PA_BIT=32, graule_size=4KB

    所以對(duì)于optee os,顯然是下面的這種情況:

    代碼也印證了這個(gè)觀點(diǎn):

顯然官網(wǎng)的那張圖是不正確的

總結(jié):當(dāng)前的optee os的配置如下:
32位有效虛擬地址、32位有效物理地址,3級(jí)頁表查詢(L1、L2、L3),顆粒的位4KB

總結(jié)

以上是生活随笔為你收集整理的optee3.14中MMU页表查询的所需配置--深入解读的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。