0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RISC-V PMP寄存器介绍

麦辣鸡腿堡 来源:嵌入式Linux充电站 作者: Vincent 2023-10-07 17:39 次阅读

每个 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]

图片

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

    关注

    31

    文章

    5328

    浏览量

    120116
  • 内核
    +关注

    关注

    3

    文章

    1367

    浏览量

    40252
  • PMP
    PMP
    +关注

    关注

    0

    文章

    45

    浏览量

    18144
  • RISC
    +关注

    关注

    6

    文章

    461

    浏览量

    83665
  • 架构
    +关注

    关注

    1

    文章

    511

    浏览量

    25457
  • sifive
    +关注

    关注

    0

    文章

    35

    浏览量

    9455
收藏 人收藏

    评论

    相关推荐

    RISC-V PMP调试

    RISC-V PMP调试
    的头像 发表于 06-08 11:52 1862次阅读
    <b class='flag-5'>RISC-V</b> <b class='flag-5'>PMP</b>调试

    RISC-V开放架构设计之道|阅读体验】RISC-V基础整数指令集

    第2章 RV32I:RISC-V基础整数指令集 本章重点讲解构成RISC-V基础整数指令集的基本指令和指令格式。主要包含寄存器间操作的R型,用于短立即数和取数操作的I型,用于存数操作的S型,用于条件
    发表于 01-31 21:10

    RISC-V 基础学习:RISC-V 基础介绍

    缩写 [###] 用于标识处理位宽,取值[32, 64,128],也就是处理寄存器位宽 [abc...xyz] 标识该处理支持的指令模块集合 比如:RV64IMAC, 表示6
    发表于 03-12 10:25

    RISC-V工作模式及寄存器基本知识

    RISC-V Linux为例,Linux应用程序处于U模式,Linux内核/uboot处于S模式,M模式则是OpenSBI。M模式拥有最高访问权限,Linux内核如果要访问CSR寄存器,则必须由S模式切换
    发表于 04-12 14:06

    如何在RISC-V处理上使用FreeRTOS?

    RISC-V实现共有的寄存器的基本移植,以及一组macros,实现硬件特定的特性和扩展。1. 快速入门为RISC-V内核构建FreeRTOS,步骤如下:1包含FreeRTOS内核源代码及RIS
    发表于 11-29 15:54

    RISC-V开源处理介绍

    本期文章目录一个小型RISC-V开源处理介绍!#SOC#FPGA#RISC-V点击阅读数字积木从零开始写RISC-V处理
    发表于 07-23 09:42

    玄铁VirtualZone:基于RISC-V架构的安全扩展

    (PMP)RISC-V架构提供了一种PMP物理内存保护机制,用于隔离M模式与S/U模式下的内存访问。只有M模式才有权限配置PMPPMP包含
    发表于 09-01 14:38

    初探RISC-V—《RISC-V体系结构编程与实践》

    最近有幸读了一本介绍RISC-V的书籍《RISC-V体系结构编程与实践》,这是一本非常有价值的书籍,它介绍RISC-V体系结构的各个方面,
    发表于 03-28 11:41

    RISC-V 发展

    通用寄存器,每个通用寄存器都有各自的用途。例如x2是作为sp栈指针、a0-a1用来保存函数参数或返回值。x0寄存器被硬编码为了0,就是个0值寄存器。ABI名称相当于这些通用
    发表于 04-14 10:18

    RISC-V gp全局指针寄存器说明

    RISC-V 32个寄存器之一,为了优化±2KB内全局变量的访问。 gp寄存器在启动代码中加载为__global_pointer$的地址,并且之后不能被改变。 linker时使用__global_pointer
    发表于 09-11 16:57

    AArch64寄存器介绍

    作为 RISC 架构,AArch64 提供了大量的通用寄存器。除通用寄存器之外,本节还会介绍特殊寄存器、系统控制
    的头像 发表于 08-24 09:57 6000次阅读

    RISC-V MCU gp全局指针说明

    gp ,g lobal pointer,全局指针寄存器RISC-V 32个寄存器之一,为了优化±2KB内全局变量的访问。
    的头像 发表于 02-15 11:55 1665次阅读

    用于RISC-V处理的三重模块化冗余ALU和寄存器文件的设计示

    用于RISC-V处理的三重模块化冗余ALU和寄存器文件的设计示例 演讲ppt分享
    发表于 07-17 16:34 2次下载

    RISC-V特权架构和通用寄存器

    RISC-V特权架构 ARM有7种工作模式,而RISC-V也有不同的模式,这些模式在RISC-V中也被称为特权架构。 RISC-V总共有四种模式,分别是U、S、H和M模式: U模式被编
    的头像 发表于 10-08 14:48 1395次阅读
    <b class='flag-5'>RISC-V</b>特权架构和通用<b class='flag-5'>寄存器</b>

    RISC-V CSR寄存器介绍

    RISC-V CSR寄存器 CSR是控制状态寄存器RISC-V中CSR寄存器,需要使用csrr、csrw、csrrw等特定指令进行访问。
    的头像 发表于 10-08 14:53 5352次阅读
    <b class='flag-5'>RISC-V</b> CSR<b class='flag-5'>寄存器</b><b class='flag-5'>介绍</b>