每个 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]
全部0条评论
快来发表一下你的评论吧 !