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