CSR Bit Fields

RISC-V mhpmevent3h CSR Register

Address 0x723Privilege MachineAccess RW / RV32 high-half / 32-bitMachine counters and performance-monitoring CSRs

mhpmevent3h at 0x723 exists only when Sscofpmf is implemented on RV32 and is the high-half CSR for bits 63:32 of mhpmevent3.

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

Understand mhpmevent3h By Bit Fields

0 key fields
Official Basis & Search Notes

mhpmevent3h is not an independent event selector; it is the RV32 access window for the upper 32 bits of mhpmevent3. It carries Sscofpmf OF and mode-filtering fields.

Sscofpmf standardizes mhpmevent3[63:58] as OF and xINH fields.
mhpmevent3h[31:26] correspond to those standardized upper bits.
The upper event-selector bits remain part of the platform-defined event encoding.

What To Check First When Reading This CSR

  • - mhpmevent3h is an RV32-only high-half CSR provided with Sscofpmf.
  • - Reading it is equivalent to reading bits 63:32 of mhpmevent3.
  • - When Supervisor mode is implemented, the OF bit can also be observed through the corresponding read-only shadow bit in scountovf.

Risk Checks Before Writing

  • - Preserve WPRI bits, and do not change EVENT_HI without knowing the platform event encoding.
  • - Writing mhpmevent3h changes the upper 32 bits of mhpmevent3, including OF and xINH controls.

Put It Back Into A Real Flow

1

On RV32, read mhpmevent3h to inspect the upper-half state of mhpmevent3.

2

Handle OF or mode-filtering bits as needed.

3

Check overflow state together with mhpmcounter3 readings and scountovf.

FAQ

Can mhpmevent3h be accessed from any privilege level?

No. The official CSR table lists mhpmevent3h as a Machine mode CSR. Lower-privilege software may access the corresponding state only when a relevant standard extension provides an explicit delegation or permission mechanism. Direct CSR access with insufficient privilege, or to an unimplemented CSR, raises an illegal-instruction exception.

Should mhpmevent3h and mhpmevent3 be written together?

On RV32, handle them as halves of one 64-bit CSR and avoid one path changing the high half while another path changes the low half inconsistently.