CSR 位字段

RISC-V mnstatus CSR 寄存器详解

地址 0x744特权级 M 模式访问 读写 / MXLEN机器安全配置 CSR

Smrnmi 的 MXLEN 位 RNMI 状态 CSR,保存被中断上下文并包含 NMIE。

字段映射

按 bit 字段理解 mnstatus

9 个关键字段
XLEN-1:13

Reserved

RO0

保留;软件写零,硬件返回零。

这个字段控制什么

  • - 保留;软件写零,硬件返回零。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

12:11

MNPP

WARL/硬件更新

RNMI 入口保存的前一特权模式,编码同 mstatus.MPP。

这个字段控制什么

  • - RNMI 入口保存的前一特权模式,编码同 mstatus.MPP。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

10

Reserved

RO0

保留并读零。

这个字段控制什么

  • - 保留并读零。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

9

MNPELP

硬件更新(Zicfilp)

仅 Zicfilp 实现时保存先前 ELP;RNMI 入口将其设为 ELP 并清 ELP。

这个字段控制什么

  • - 仅 Zicfilp 实现时保存先前 ELP;RNMI 入口将其设为 ELP 并清 ELP。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

8

Reserved

RO0

保留并读零。

这个字段控制什么

  • - 保留并读零。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

7

MNPV

WARL/硬件更新

RNMI 入口保存的虚拟化模式,编码同 mstatus.MPV。

这个字段控制什么

  • - RNMI 入口保存的虚拟化模式,编码同 mstatus.MPV。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

6:4

Reserved

RO0

保留并读零。

这个字段控制什么

  • - 保留并读零。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

3

NMIE

置位/硬件更新

复位为 0;软件可置 1,清零无效;RNMI 入口清零,MNRET 置位。

这个字段控制什么

  • - 复位为 0;软件可置 1,清零无效;RNMI 入口清零,MNRET 置位。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

2:0

Reserved

RO0

保留并读零。

这个字段控制什么

  • - 保留并读零。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

官方依据与检索要点

Smrnmi 的 MXLEN 位 RNMI 状态 CSR,保存被中断上下文并包含 NMIE。

RNMI 入口保存特权、虚拟化和可选 ELP 状态;MNRET 使用这些状态恢复执行。

读这个 CSR 时先看什么

  • - mnstatus 仅在 Smrnmi 实现时存在。
  • - NMIE=0 时,hart 的行为如同 mstatus.MPRV 为 0。

写入前的风险检查

  • - 不要尝试通过写 0 清 NMIE;该操作无效。
  • - 保留位必须写零。

放回真实流程里理解

1

确认 Smrnmi 已实现。

2

由 RNMI 入口保存状态,并以 MNRET 恢复。