CSR Bit Fields

RISC-V siselect CSR Register

Address 0x150Privilege SupervisorAccess RW / XLENSupervisor AIA, timer, and indirect interrupt CSRs

siselect (0x150) is the Sscsrind Supervisor indirect-register select CSR that chooses which indirect register is accessed through sireg* aliases.

Field Map

Understand siselect By Bit Fields

1 key fields
XLEN-1:0

SELECT

RW

Selects the supervisor indirect register accessed through sireg*; supports at least 0..0xFFF, with values whose most-significant bit is 1 designated for custom use.

SELECT (bits XLEN-1:0) — Selects the supervisor indirect register accessed through sireg*; supports at least 0..0xFFF, with values whose most-significant bit is 1 designated for custom use.

What This Field Controls

  • - Selects the supervisor indirect register accessed through sireg*; supports at least 0..0xFFF, with values whose most-significant bit is 1 designated for custom use.

Common Values

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

Open Official Manual
Official Basis & Search Notes

siselect only selects; actual data is accessed through sireg* aliases. Behavior for unimplemented select values cannot be inferred from the name and is extension-defined or UNSPECIFIED.

The Sscsrind table lists siselect/sireg/sireg2/sireg3/sireg4/sireg5/sireg6 as supervisor-level CSRs.
siselect supports at least 0..0xFFF; values with the most-significant bit set are for custom use.
mstateen0[60] and hstateen0[60] can restrict lower-privilege or virtual-machine access to siselect+sireg* state.

What To Check First When Reading This CSR

  • - First confirm that the hart implements the extension containing siselect; unimplemented or insufficiently privileged CSR accesses raise an illegal-instruction exception.
  • - Use address 0x150, the lowest access privilege, and the official access class to decide whether software may access it directly.
  • - Do not assume fixed values for reserved, WPRI, WARL, or WLRL fields; interpret them according to the specification and implementation.

Risk Checks Before Writing

  • - When writing siselect, modify only the officially defined target fields and preserve unchanged bits.
  • - Handle WARL, WLRL, WPRI, and reserved fields according to the official specification; do not overwrite the whole CSR as an ordinary integer.

Put It Back Into A Real Flow

1

Write siselect to choose a supervisor indirect-register number.

2

Read or write selected state through the matching sireg/sireg2/sireg3/sireg4/sireg5/sireg6 alias.

3

If the selected value is not implemented, M/S-mode access to sireg* is UNSPECIFIED; implementations are recommended to raise illegal-instruction exceptions for emulation.

FAQ

Does siselect hold the accessed data?

No. It is the selector; data is accessed through the sireg* alias windows.

What happens when sireg is accessed after an unimplemented select value?

In M/S-mode the behavior is UNSPECIFIED; the specification recommends illegal-instruction exceptions to support emulation.