vsiselect

Virtual Supervisor Indirect Register Select

The vsiselect register will support the value range 0..0xFFF at a minimum. A future extension may define a value range outside of this minimum range. Only if such an extension is implemented will vsiselect be required to support larger values.

Requiring a range of 0-0xFFF for vsiselect, even though most or all of the space may be reserved or inaccessible, permits a hypervisor to emulate indirectly accessed registers in this implemented range, including registers that may be standardized in the future.

It is recommended that vsiselect and siselect be implemented with the same number of bits. This avoids the creation of a virtualization hole due to observable differences between their widths.

Values of vsiselect 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 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 vsiselect moves to the new position, retaining its value from before.

Attributes

Defining Extension

  • Smcsrind, version >= Smcsrind@1.0.0

CSR Address

0x250

Virtual CSR Address

0x250

Length

32 when CSR[hstatus].VSXL == 0 64 when CSR[hstatus].VSXL == 1

Privilege Mode

VS

Format

This CSR format changes dynamically.

vsiselect Format when CSR[hstatus].VSXL == 0
Figure 1. vsiselect Format when CSR[hstatus].VSXL == 0
vsiselect Format when CSR[hstatus].VSXL == 1
Figure 2. vsiselect Format when CSR[hstatus].VSXL == 1

Field Summary

Name Location Type Reset Value

vsiselect.VALUE

* 31:0 when CSR[hstatus].VSXL == 0 * 63:0 when CSR[hstatus].VSXL == 1

RW

UNDEFINED_LEGAL

Fields

VALUE

Location
  • 31:0 when CSR[hstatus].VSXL == 0

  • 63:0 when CSR[hstatus].VSXL == 1

Description

The index value selecting the register accessed through the vsireg* alias registers.

Type

RW

Reset value

UNDEFINED_LEGAL