PMP 是 RISC-V 中用于实现物理内存保护的机制。它允许配置多个内存保护区域,并对每个区域设置访问权限,以防止未授权的访问。 PMP 的功能 访问控制:PMP 可以限制对内存区域的读、写和执行访问。 区域配置:PMP 支持定义多个内存区域,每个区域可以有不同的访问权限。 特权级别:PMP 可以根据特权级别(用户模式、超级模式...
PMP用于保护物理内存,例如在opensbi启动时,会将自己所占内存部分用PMP保护起来,不让其他程序访问。 PMP简介 机器模式是最高权限级别,默认情况下在设备的整个内存映射中具有读取、写入和执行权限。 但是,机器模式以下的特权级别对设备内存映射的任何区域没有读、写或执行权限,除非 PMP 特别允许。 对于较低的权限级别,P...
这样做是为了使得在RV32和RV64两种情况下,pmp8cfg~pmp11cfg均保存在pmpcfg2中,这样可以减少对于64位支持的开销。 在RISC-V设计的Sv32分页虚拟内存模式下,RV32拥有34位物理地址空间,故对于RV32来说,PMP必须支持34位的物理内存访问管理。故在32位地址寄存器中,保存33~2位的地址数据。而对于RV64,保存第55~2位,...
RISC-V Priv 1.10标准引入了物理内存保护(PMP)功能,这是一个强大的原语,允许在M模式下从较低的权限(U-/S模式)来控制物理内存的访问。 PMP通过一组控制和状态寄存器(CSR)来实现。这些寄存器可以配置为允许或禁止对特定物理内存区域的访问。 在U模式下,只能访问那些由PMP配置为允许访问的物理内存区域。 在S模式下...
RISC-V架构本身是一个开源的ISA,已经包含了特权机制、安全中断和物理内存保护机制(PMP)。而ISA到商用的具体实现还需要进一步的安全包装设计。 2019年,RISC-V处理器的首个可信执行环境(TEE)——MultiZone Security for RISC-V由HEX-Five Security发布。
PMP(Physical Memory Protection)是 RISC-V 架构中的一种硬件机制,用于控制不同内存区域的读、写和执行权限,主要提供对物理内存的保护和隔离,本文对PMP相关寄存器的说明以及PMP功能接口的实现与使用进行介绍。 2.PMP寄存器说明 PMP的使用是通过设置一对PMP寄存器操作的,包括一个是地址寄存器pmpaddr,用于设置受保护的地...
PMP(物理内存保护)共有8个地址寄存器。每个地址寄存器pmpaddrX与相应的pmpXcfg字段相关联。每个地址寄存器都包含保护区域的基地址右移两位(即除以4),以确保最小的4字节对齐。 The maximum encoded address bits per The RISC‑V Instruction Set Manual, Volume II: Privileged Architecture, Version 1.10 are [55...
在Sv32分页虚拟内存模式下,RV32有34位物理地址空间。因此,PMP支持34位物理内存访问管理。在32位地址寄存器中,保留33~2位存储地址数据,而RV64则保留第55~2位。这意味着,对于34位地址,需要将数据右移两位后存储。对于56位地址,需要将55~2位存储在PMP地址寄存器的53~0位。配置寄存器包含权限位,...
PMP代表物理内存保护,是RISC-V架构的一部分。该机制定义了一组PMP寄存器,这些寄存器记录了处理器可以访问的内存区域。每个PMP寄存器包含了一个物理地址范围和对应的访问权限。 在RISC-V中,每个内存访问都会被PMP机制审核以确保其访问范围被允许。如果访问超出了允许范围,PMP机制将会阻止此次访问。这种机制可以有效地保护...
虽然RISC-V架构的处理器具备物理内存保护、多层权限模型、内存管理单元等技术来支持可信执行环境功能的实现,但处理器仍然需要支持其他安全规范才能创建完全可用的安全执行环境。 为了满足TEE的隔离要求,玄铁C系列处理器在RISC-V架构基础上进行了安全扩展。 该系列处理器在软件的协调下可以虚拟出多个执行域(Zone),每个Zone...