U Extension

Implemented Version

1.0.0

Versions

1.0.0
Ratification date

2019-12

Synopsis

User-mode privilege level is supported by an implementation if the U extension is present. Note that the RISC-V ISA doesn’t formally define a U extension and it is only discussed in the Privileged ISA manual.

Parameters

This extension has the following implementation options:

MUTABLE_MISA_U

Indicates whether or not the U extension can be disabled with the misa.U bit.

TRAP_ON_ECALL_FROM_U

Whether or not an ECALL-from-U-mode causes a synchronous exception.

The spec states that implementations may handle ECALLs transparently without raising a trap, in which case the EEI must provide a builtin.

UXLEN

Set of XLENs supported in U-mode. Can be one of:

  • 32: SXLEN is always 32

  • 64: SXLEN is always 64

  • 3264: SXLEN can be changed (via mstatus.UXL) between 32 and 64

U_MODE_ENDIANESS

Endianness of data in U-mode. Can be one of:

  • little: U-mode data is always little endian

  • big: U-mode data is always big endian

  • dynamic: U-mode data can be either little or big endian, depending on the CSR field mstatus.UBE