機(jī)器模式是最高權(quán)限級別,默認(rèn)情況下在設(shè)備的整個內(nèi)存映射中具有讀取、寫入和執(zhí)行權(quán)限。但是,機(jī)器模式以下的特權(quán)級別對設(shè)備內(nèi)存映射的任何區(qū)域沒有讀、寫或執(zhí)行權(quán)限,除非 PMP 特別允許。對于較低的權(quán)限級別,PMP 可以授予對設(shè)備內(nèi)存映射的特定區(qū)域的權(quán)限,但它也可以在機(jī)器模式下撤銷權(quán)限。
當(dāng)進(jìn)行相應(yīng)編程時,PMP 將在 hart 以管理員或用戶模式運行時檢查每次訪問。對于機(jī)器模式,除非在特定區(qū)域的 pmpcfgY CSR 中設(shè)置鎖定位 (L),否則不會發(fā)生 PMP 檢查。
當(dāng)機(jī)器先前的權(quán)限級別是管理員或用戶(mstatus.MPP=0x1 或 mstatus.MPP=0x0)并且設(shè)置了修改權(quán)限位時,PMP 檢查也會發(fā)生在加載和存儲上 (mstatus.MPRV=1)。對于虛擬地址轉(zhuǎn)換,PMP 檢查也適用于管理模式下的頁表訪問。
U54內(nèi)核 PMP 支持 8 個區(qū)域,最小區(qū)域大小為 4 字節(jié)。
本期介紹 RISC?V 架構(gòu)中的 PMP 概念如何應(yīng)用于 U54。有關(guān) PMP 的更多信息,請參閱 RISC?V 指令集手冊,第 II 卷:特權(quán)架構(gòu),版本 1.10。
PMP 功能描述U54 PMP 單元有 8 個區(qū)域,最小粒度為 4 個字節(jié)。對每個區(qū)域的訪問由 8 位 pmpXcfg 字段和相應(yīng)的 pmpaddrX 寄存器控制。重疊區(qū)域 允許,其中較低編號的 pmpXcfg 和 pmpaddrX 寄存器優(yōu)先于較高編號的區(qū)域。U54 PMP 單元實現(xiàn)架構(gòu)定義的 pmpcfgY CSR pmpcfg0,支持 8 個區(qū)域。
pmpcfg2 已實現(xiàn),但硬連線為零。訪問 pmpcfg1 或 pmpcfg3 會導(dǎo)致非法指令異常。
PMP 寄存器只能在 M 模式下編程。通常,PMP 單元強(qiáng)制執(zhí)行對 S 模式和 U 模式訪問的許可。
PMP 區(qū)域鎖定PMP 允許區(qū)域鎖定,一旦區(qū)域被鎖定,對配置和地址寄存器的進(jìn)一步寫入將被忽略。鎖定的 PMP 條目只能通過系統(tǒng)重置解鎖。可以通過設(shè)置 pmpXcfg 寄存器中的 L 位來鎖定一個區(qū)域。
除了鎖定 PMP 條目外,L 位指示是否對機(jī)器模式訪問強(qiáng)制執(zhí)行 R/W/X 權(quán)限。當(dāng) L 位清零時,R/W/X 權(quán)限適用于 S 模式和 U 模式。
-
寄存器
+關(guān)注
關(guān)注
31文章
5361瀏覽量
120873 -
內(nèi)核
+關(guān)注
關(guān)注
3文章
1379瀏覽量
40353 -
PMP
+關(guān)注
關(guān)注
0文章
45瀏覽量
18176 -
RISC
+關(guān)注
關(guān)注
6文章
463瀏覽量
83801 -
sifive
+關(guān)注
關(guān)注
0文章
36瀏覽量
9464
發(fā)布評論請先 登錄
相關(guān)推薦
評論