C
读写RV32 hstateen0[63],控制 VM 对 custom state 的访问。
这个字段控制什么
- - RV32 hstateen0[63],控制 VM 对 custom state 的访问。
常见取值
hstateen0h.C
对应 custom state不可访问;相关访问按 state-enable 规则 trap。
允许访问对应 custom state,前提是其他访问规则也允许。
hstateen0h 是 Hypervisor state-enable CSR 的 RV32 高半。
RV32 hstateen0[63],控制 VM 对 custom state 的访问。
对应 custom state不可访问;相关访问按 state-enable 规则 trap。
允许访问对应 custom state,前提是其他访问规则也允许。
RV32 hstateen0[60],控制 VM 对 VS indirect CSR alias 状态的访问。
VS indirect CSR alias 状态不可访问;相关访问按 state-enable 规则 trap。
允许访问VS indirect CSR alias 状态,前提是其他访问规则也允许。
RV32 hstateen0[59],控制 VM 对非 CSRIND/IMSIC AIA 状态的访问。
该位控制的 AIA 状态不可访问;相关访问按 state-enable 规则 trap。
允许访问该位控制的 AIA 状态,前提是其他访问规则也允许。
RV32 hstateen0[58],控制 VM 对 guest IMSIC 状态的访问。
guest IMSIC 状态不可访问;相关访问按 state-enable 规则 trap。
允许访问guest IMSIC 状态,前提是其他访问规则也允许。
RV32 hstateen0[57],控制 VM 对 context 状态的访问。
scontext 等 context 状态不可访问;相关访问按 state-enable 规则 trap。
允许访问scontext 等 context 状态,前提是其他访问规则也允许。
RV32 hstateen0[56],Privileged 1.13 相关高半状态使能位;Hypervisor 侧可移植含义需按当前官方扩展和实现确认。
RV32 hstateen0[55],控制 VM 对环境配置状态的访问。
senvcfg 等环境配置状态不可访问;相关访问按 state-enable 规则 trap。
允许访问senvcfg 等环境配置状态,前提是其他访问规则也允许。
RV32 hstateen0[54:32] 中未在本页列出的位不获得可移植 0/1 含义;按当前官方扩展定义、保留或 WPRI/WARL 规则处理。
hstateen0h 是 Hypervisor state-enable CSR。它是 HS/M 侧的 Hypervisor 状态,不是 VS supervisor CSR 副本;guest 访问是否允许由 H 扩展和相关 state-enable/AIA/Sstc/Smcsrind 规则决定。
确认当前软件运行在可访问 Hypervisor CSR 的 M/HS 上下文。
确认定义该 CSR 的 H/AIA/Sstc/Smstateen/Smcsrind 等扩展已经实现。
按官方字段读写;guest 相关访问是否通过或 trap 由对应扩展规则和 state-enable 控制。
不能把 hstateen0h 当作 VS CSR 副本。它是 H-level CSR;guest/VS 访问相关功能时是否 trap 由 H 扩展和对应可选扩展规则决定。
它们分别控制 VM 对 AIA、guest IMSIC 和间接 CSR alias 状态的访问。