miselect

Machine Indirect Register Select

The CSRs listed in the table above provide a window for accessing register state indirectly. The value of miselect determines which register is accessed upon read or write of each of the machine indirect alias CSRs (mireg*). miselect value ranges are allocated to dependent extensions, which specify the register state accessible via each miregi register, for each miselect value. miselect is a WARL register.

The miselect register implements at least enough bits to support all implemented miselect values (corresponding to the implemented extensions that utilize miselect/mireg* to indirectly access register state). The miselect register may be read-only zero if there are no extensions implemented that utilize it.

Values of miselect with the most-significant bit set (bit XLEN - 1 = 1) are designated only for custom use, presumably for accessing custom registers through the alias CSRs. Values of miselect with the most-significant bit clear are designated only for standard use and are reserved until allocated to a standard architecture extension.

If XLEN is changed, the most-significant bit of miselect moves to the new position, retaining its value from before.

An implementation is not required to support any custom values for miselect.

Attributes

CSR Address

0x350

Defining extension

Length

64-bit

Privilege Mode

M

Format

miselect format
Figure 1. miselect format

Field Summary

Name Location Type Reset Value

VALUE

63:0

RW

UNDEFINED_LEGAL

Fields

VALUE

Location

miselect[63:0]

Description

Selects which indirect register is accessed via mireg*.

Type

RW

Read-Write

Field is writable by software. Any value that fits in the field is acceptable and shall be retained for subsequent reads.

Reset value

UNDEFINED_LEGAL