CSR Bit Fields

RISC-V vsireg3 CSR Register

Address 0x253Privilege Hypervisor direct / VS aliasAccess HRW / current XLEN, not VSXLENHypervisor and virtualization CSRs

vsireg3 is the Sscsrind/H virtual-supervisor indirect CSR data window 3, with access semantics selected by vsiselect.

Field Map

Understand vsireg3 By Bit Fields

1 key fields
XLEN-1:0

DATA / ctrdata

Defined by selected value; commonly RW, RO0, or exception

When vsiselect=0x200..0x2FF, accesses ctrdata analogous to sireg3, including TYPE, CCV, and CC metadata; other select values are defined by the allocating extension. The vsireg3 CSR itself is always current XLEN, and CTR entry register state has no separate V=1 copy.

DATA / ctrdata (bits XLEN-1:0) — When vsiselect=0x200..0x2FF, accesses ctrdata analogous to sireg3, including TYPE, CCV, and CC metadata; other select values are defined by the allocating extension. The vsireg3 CSR itself is always current XLEN, and CTR entry register state has no separate V=1 copy.

What This Field Controls

  • - When vsiselect=0x200..0x2FF, accesses ctrdata analogous to sireg3, including TYPE, CCV, and CC metadata; other select values are defined by the allocating extension. The vsireg3 CSR itself is always current XLEN, and CTR entry register state has no separate V=1 copy.

Common Values

This field is better understood together with surrounding context than as a fixed memorized enumeration.

Open Official Manual
Official Basis & Search Notes

vsireg3 is a VS indirect CSR data window 3 selected by vsiselect. Its separate address is for direct M/HS access; a V=1 guest normally reaches VS state through the siselect/sireg* aliases.

vsireg3 address/access/width: 0x253, HRW, current XLEN, not VSXLEN.
vsiselect supports at least 0..0xFFF; select values with the MSB set are only for custom use, and the MSB moves with XLEN.
Direct VS/VU access to vsiselect/vsireg* raises a virtual-instruction exception; VS access through siselect/sireg* aliases uses these rules.
CTR range 0x200..0x2FF selects logical entries 0..255; vsireg3 accesses ctrdata, including TYPE, CCV, and CC metadata fields.

What To Check First When Reading This CSR

  • - vsireg3's separate CSR address is HRW in the official table; this VS CSR is required when H is implemented.
  • - Direct VS/VU access to vsiselect or vsireg* raises a virtual-instruction exception; a guest normally uses the siselect/sireg* aliases to reach the same VS state.
  • - If vsiselect selects a value not implemented at HS level, M/HS access to vsireg* or VS access through the sireg* alias is UNSPECIFIED.
  • - mstateen0.CSRIND/hstateen0.CSRIND can first restrict indirect-CSR access; when selecting CTR state at 0x200..0x2FF, mstateen0.CTR/hstateen0.CTR can also restrict access.

Risk Checks Before Writing

  • - Do not treat vsireg* as a memory window; read/write, RO0, or exception behavior for each select value and alias CSR is defined by the extension that allocated the range.
  • - CTR entry state has no separate V=1 copy; when vsiselect=0x200..0x2FF, accesses reach the same CTR entry-register state as the analogous sireg*.

Put It Back Into A Real Flow

1

Confirm that H and Sscsrind are implemented, and check CSRIND state-enable gates.

2

Write or confirm vsiselect; the standard select space supports at least 0..0xFFF, while values with the MSB set are only for custom use.

3

Use vsireg3 to access state defined by the selected extension; CTR entries use 0x200..0x2FF to select logical entries 0..255.

FAQ

What selector range does vsiselect support?

vsiselect supports at least 0..0xFFF; values with the MSB set are only for custom use, and MSB-clear values are standard space reserved until allocated to standard extensions.

Can VS-mode directly access vsireg3?

No. Direct VS/VU access to vsiselect or vsireg* raises a virtual-instruction exception; a guest should use the siselect/sireg* aliases.