RISC-V PMP寄存器介绍

描述

每个 PMP 区域都由一个 8 位 pmpXcfg 字段描述,与一个 64 位 pmpaddrX寄存器结合使用,该寄存器保存受保护区域的基地址。每个区域的范围取决于下一节中描述的寻址 (A) 模式。pmpXcfg 字段位于 64 位 pmpcfgY CSR中。

每个 8 位 pmpXcfg 字段包括一个读、写和执行位,外加一个两位地址匹配字段 A 和一个锁定位 L。允许重叠区域,其中编号最小的 PMP条目胜出该区域。

PMP 配置寄存器

对于 RV64 架构,未实现 pmpcfg1 和 pmpcfg3。这减少了占用空间,因为 pmpcfg2 已经包含 RV32 和 pmp11cfg的配置字段 pmp8cfg 和 RV64。

内核

pmpcfgY 和 pmpaddrX 寄存器只能通过 CSR 特定指令访问,例如用于读取的 csrr 和用于写入的 csrw。

内核

复位后,PMP 寄存器字段 A 和 L 设置为 0。RISC‑V 指令集手册第 II 卷:特权架构版本 1.10 未指定所有其他 hart状态。

下面是一些使用 NAPOT 地址模式的例子。

内核

PMP 地址寄存器

PMP 有 8 个地址寄存器。每个地址寄存器 pmpaddrX 都与相应的 pmpXcfg字段相关联。每个地址寄存器都包含右移两位的受保护区域的基地址,以实现最小 4 字节对齐。

根据 RISC‑V 指令集手册,第二卷:特权架构,版本 1.10,最大编码地址位为 [55:2]

内核

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分