CSR 位字段

RISC-V hgeip CSR 寄存器详解

地址 0xE12特权级 Hypervisor访问 HRO(Hypervisor 只读) / HSXLENHypervisor 与虚拟化 CSR

hgeip 是Hypervisor guest external 中断待定 CSR。

字段映射

按 bit 字段理解 hgeip

2 个关键字段
HSXLEN-1:1

GUEST_EXTERNAL_INTERRUPT-PENDING_BITS

只读

hgeip 的guest external 中断挂起位。

这个字段控制什么

  • - hgeip 的guest external 中断挂起位。

常见取值

implemented GEILEN source bit
0未挂起

仅对实现的 hgeip[GEILEN:1] 位:相应 virtual hart 的 guest external interrupt 未挂起;其余位读为零。

1挂起

仅对实现的 hgeip[GEILEN:1] 位:相应 virtual hart 有待定的 guest external interrupt;每一位汇总中断控制器报告给该 virtual hart 的所有待定中断。

打开官方手册
0

RESERVED_ZERO

只读零

保留位;无论 GEILEN 是否为零均读为零。

这个字段控制什么

  • - 保留位;无论 GEILEN 是否为零均读为零。

常见取值

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

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

hgeip 是 HSXLEN 宽的只读 CSR,报告本 hart 的 guest external interrupt 待定状态。GEILEN 可为零,且 bit 0 与所有未实现位读为零。

hgeip 的地址、访问类和宽度按官方 CSR 表核对:0xE12,HRO(Hypervisor 只读),HSXLEN。
GEILEN 是 UNSPECIFIED 且可为零;若非零,GEILEN:1 为实现位,其他位读为零。
每一个实现位汇总指向一台 virtual hart 的待定 guest external interrupts;查询中断控制器可区分具体中断。

读这个 CSR 时先看什么

  • - hgeip 是 Hypervisor 级 CSR;独立地址按官方表属于 HRO(Hypervisor 只读) 访问类。
  • - GEILEN(实现的 guest external interrupt 位数)是 UNSPECIFIED,且可为零;除 bit 0 外,低位优先实现。

写入前的风险检查

  • - hgeip 是只读 CSR;软件不应写入。

放回真实流程里理解

1

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

2

确认 H 扩展以及该 hart 的 GEILEN 实现范围。

3

读取 hgeip 以观察待定状态;要区分同一 virtual hart 的具体中断,查询中断控制器。

常见问题

hgeip 能通过 supervisor CSR alias 访问吗?

不能。hgeip 是 H-level 的只读 CSR;它报告由中断控制器收集并报告给本 hart 的 guest external interrupt 待定状态。