CSR Bit Fields

RISC-V mstateen3h CSR Register

Address 0x31FPrivilege MachineAccess RW / RV32-only high half / 32-bitMachine delegation, environment-configuration, and state-enable CSRs

mstateen3h (0x31F) is the RV32 M-mode high-half CSR for bits 63:32 of mstateen3.

Bit Overview
bit 3 = only bit 3; bits 12..11 = bits 12 down to 11
MSBLSB
Field Map

Understand mstateen3h By Bit Fields

0 key fields
Official Basis & Search Notes

mstateen3h exists only on RV32 as the access window for mstateen3 bits 63:32. Bit 31 maps mstateen3.SE3, letting M-mode control lower-privilege access to matching hstateen3/sstateen3 CSRs.

mstateen3h is the RV32 high-half alias of mstateen3; RV64 uses 64-bit mstateen3 and has no mstateen3h CSR.
A stateen CSR controls access below its own privilege level, not access by that same level.
SE3 is WARL and may be read-only zero only under the official conditions.

What To Check First When Reading This CSR

  • - Only RV32 uses mstateen3h to access bits 63:32 of mstateen3; this high-half CSR does not exist on RV64.
  • - Use address 0x31F and the lowest access privilege (Machine) to decide whether software may read it directly.
  • - Do not infer undefined functions from bit positions when reading WARL, RO0, or WPRI fields; interpret them through the matching full CSR and extension rules.

Risk Checks Before Writing

  • - Preserve WPRI bits and unchanged fields when writing; whether each writable bit is actually writable depends on the corresponding extension and implementation.
  • - Read back WARL fields after writes to confirm the value accepted by the implementation.

Put It Back Into A Real Flow

1

On RV32, read mstateen3h before initializing lower-privilege environment state to observe the upper 32 bits of mstateen3.

2

Modify only target fields and preserve all other bits.

3

When needed, read the CSR back and confirm the effect through later lower-privilege accesses, traps, or state updates.

FAQ

Does mstateen3h exist on RV64?

No. mstateen3h is the RV32 CSR for accessing the upper 32 bits of mstateen3.

Can the low 31 bits of mstateen3h be assigned private meanings?

No. In the current manual, these bits are reserved unless a future standard defines a stateen meaning; undefined reserved bits read as zero.