CSR 位字段

RISC-V hviprio1 CSR 寄存器详解

地址 0x646特权级 Hypervisor访问 HRW(Hypervisor 读写) / 64 位Hypervisor 与虚拟化 CSR

hviprio1 是第一组 VS 中断优先级 CSR。

字段映射

按 bit 字段理解 hviprio1

6 个关键字段
7:0,23:16,39:32

RESERVED

只读零

分别为中断 0、4 和 8 保留的优先级字节,读为零。

这个字段控制什么

  • - 分别为中断 0、4 和 8 保留的优先级字节,读为零。

常见取值

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

打开官方手册
15:8

IPRIO1

WARL/只读零

中断 1(supervisor software interrupt)的无符号优先级号。

这个字段控制什么

  • - 中断 1(supervisor software interrupt)的无符号优先级号。

常见取值

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

打开官方手册
31:24

IPRIO5

WARL/只读零

中断 5(supervisor timer interrupt)的无符号优先级号。

这个字段控制什么

  • - 中断 5(supervisor timer interrupt)的无符号优先级号。

常见取值

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

打开官方手册
47:40

IPRIO13

WARL/只读零

中断 13(counter overflow interrupt)的无符号优先级号。

这个字段控制什么

  • - 中断 13(counter overflow interrupt)的无符号优先级号。

常见取值

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

打开官方手册
55:48

IPRIO14

WARL/只读零

中断 14 的无符号优先级号。

这个字段控制什么

  • - 中断 14 的无符号优先级号。

常见取值

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

打开官方手册
63:56

IPRIO15

WARL/只读零

中断 15 的无符号优先级号。所有非只读零的 hviprio1/2 优先级字段实现相同的整数位数,至少为 IPRIOLEN 或 6 位(取较大者)。

这个字段控制什么

  • - 中断 15 的无符号优先级号。所有非只读零的 hviprio1/2 优先级字段实现相同的整数位数,至少为 IPRIOLEN 或 6 位(取较大者)。

常见取值

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

打开官方手册
官方依据与检索要点

hviprio1 是 AIA 虚拟中断 CSR。它是 HS/M 侧的 Hypervisor 状态,不是 VS supervisor CSR 副本;guest 访问是否允许由 H 扩展和相关 state-enable/AIA/Sstc/Smcsrind 规则决定。

hviprio1 的地址、访问类和宽度按官方 CSR 表核对:0x646,HRW(Hypervisor 读写),64 位。
AIA 定义 h 六组虚拟中断 CSR 来增强 hvip 对 VS-level 中断注入的控制。
具体字段和优先级编码按 AIA VS-level interrupt 规则解释。
写入时只修改官方定义字段;WARL/WLRL/WPRI 和保留字段按官方规范与实现行为处理。

读这个 CSR 时先看什么

  • - hviprio1 是 Hypervisor 级 CSR;独立地址按官方表属于 HRW(Hypervisor 读写) 访问类。
  • - guest/VS 软件不能通过 supervisor CSR alias 访问该 H-level CSR;相关访问由 H 扩展和可选扩展规则控制。

写入前的风险检查

  • - 写 hviprio1 时只修改官方定义的目标字段,并保留 WPRI、保留位和未修改字段。

放回真实流程里理解

1

确认当前软件运行在可访问 Hypervisor CSR 的 M/HS 上下文。

2

确认定义该 CSR 的 H/AIA/Sstc/Smstateen/Smcsrind 等扩展已经实现。

3

按官方字段读写;guest 相关访问是否通过或 trap 由对应扩展规则和 state-enable 控制。

常见问题

hviprio1 能通过 supervisor CSR alias 访问吗?

不能把 hviprio1 当作 VS CSR 副本。它是 H-level CSR;guest/VS 访问相关功能时是否 trap 由 H 扩展和对应可选扩展规则决定。

hviprio1 的访问受 state-enable 控制吗?

在实现 Smstateen 与 AIA 时,mstateen0/hstateen0 的 AIA、IMSIC 或 CSRIND 位可能控制较低特权级或 VM 对相关 AIA 状态的访问。