PMP是什么 PMP功能描述

描述

  机器模式是最高权限级别,默认情况下在设备的整个内存映射中具有读取、写入和执行权限。但是,机器模式以下的特权级别对设备内存映射的任何区域没有读、写或执行权限,除非 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 模式。

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

全部0条评论

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

×
20
完善资料,
赚取积分