CSR 位字段

RISC-V vsireg2 CSR 寄存器详解

地址 0x252特权级 Hypervisor 直接访问 / VS 别名访问访问 HRW(Hypervisor 读写) / 当前 XLEN(不是 VSXLEN)Hypervisor 与虚拟化 CSR

vsireg2 是 VS 间接 CSR 的数据窗口,目标由 vsiselect 选择。

位作用速览
bit 3 = 只有第 3 位;bits 12..11 = 第 12 到第 11 位
高位 MSB低位 LSB
字段映射

按 bit 字段理解 vsireg2

1 个关键字段
XLEN-1:0

DATA

读写

被 vsiselect 选择的 VS 间接 CSR 数据窗口。

这个字段控制什么

  • - 被 vsiselect 选择的 VS 间接 CSR 数据窗口。

常见取值

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

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

vsireg2 是 VS 间接 CSR 访问 CSR。独立 CSR 地址用于 M/HS 侧管理;当 V=1 时,guest 对相应 supervisor CSR 的访问会替代到 VS 状态,除非官方扩展另有规定。

vsireg2 的地址、访问类和宽度按官方 CSR 表核对:0x252,HRW(Hypervisor 读写),当前 XLEN(不是 VSXLEN)。
vsiselect 至少支持 0..0xFFF 的标准 selector 范围;custom selector 使用最高位为 1 的空间。
VS/VU 直接访问 vsiselect/vsireg* 会触发 virtual-instruction exception;guest 通常通过 siselect/sireg* alias 访问。
写入时只修改官方定义字段;WARL/WLRL/WPRI 和保留字段按官方规范与实现行为处理。

读这个 CSR 时先看什么

  • - vsireg2 的独立 CSR 地址按官方表属于 HRW(Hypervisor 读写) 访问类;VS/VU guest 通常通过对应 supervisor CSR 别名访问 VS 状态。
  • - 读取前确认 H/AIA/Sstc/Smstateen/Smcsrind 等定义该 CSR 的扩展已经实现。

写入前的风险检查

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

放回真实流程里理解

1

先写入/确认 vsiselect selector。

2

通过对应 vsireg* 数据窗口访问被官方扩展定义的间接状态。

3

未实现 selector 的行为可能为异常或未指定;不要假设普通内存窗口语义。

常见问题

vsiselect 的选择值范围是什么?

官方 Smcsrind/Sscsrind 规则要求至少支持 0..0xFFF;最高位为 1 的值保留给 custom use。

vsireg2 能由 VS-mode 直接访问吗?

VS/VU 直接访问 vsiselect 或 vsireg* 会触发 virtual-instruction exception;guest 应经 siselect/sireg* alias。