CSR Bit Fields

RISC-V mhpmcounter12h CSR Register

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

mhpmcounter12h at 0xB8C is the RV32 machine high-half CSR for bits 63:32 of mhpmcounter12.

Bit Overview
bit 3 = only bit 3; bits 12..11 = bits 12 down to 11
MSBLSB
Reserved63:32COUNT_HI31:0RW
Field Map

Understand mhpmcounter12h By Bit Fields

1 key fields
31:0

COUNT_HI

RW

Upper 32 bits of the HPM count, corresponding to mhpmcounter12[63:32].

COUNT_HI (bits 31:0) — Upper 32 bits of the HPM count, corresponding to mhpmcounter12[63:32].

What This Field Controls

  • - Upper 32 bits of the HPM count, corresponding to mhpmcounter12[63:32].

Common Values

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

Official Basis & Search Notes

mhpmcounter12h is the RV32 high-half access CSR for bits 63:32 of mhpmcounter12; its event meaning is still determined by mhpmevent12.

The official counter is 64 bits; RV32 accesses it through low/high halves mhpmcounter12/mhpmcounter12h.
When reading an incrementing counter, avoid high/low half inconsistency across a carry.
mhpmcounter12h does not select the event; event selection is in mhpmevent12.

What To Check First When Reading This CSR

  • - mhpmcounter12h is an RV32-only high-half CSR; when XLEN=64, read the full count through mhpmcounter12.
  • - When reading a 64-bit incrementing counter, use a stable high-low-high style sequence to avoid inconsistency across a 32-bit carry.
  • - The event source for mhpmcounter12 is still determined by mhpmevent12.

Risk Checks Before Writing

  • - Writing mhpmcounter12h changes only the upper 32 bits of mhpmcounter12; it is usually used only during initialization or sample reset.
  • - Avoid writing the high half independently while the low half mhpmcounter12 is being updated in a conflicting path.

Put It Back Into A Real Flow

1

On RV32, read mhpmcounter12h and mhpmcounter12 using a stable sequence.

2

Combine the high and low halves to form the 64-bit mhpmcounter12 count.

3

Use mhpmevent12 to interpret which event the count represents.

FAQ

Can mhpmcounter12h be accessed from any privilege level?

No. The official CSR table lists mhpmcounter12h 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.

Is mhpmcounter12h a separate counter?

No. It is only the RV32 access CSR for the upper 32 bits of mhpmcounter12.