Smstateen Extension

Versions

Version 1.0.0

State

ratified

Ratification date

2024-03

Synopsis

Machine-mode view of the state-enable extension. The Smstateen extension specification comprises the mstateen*, sstateen*, and hstateen* CSRs and their functionality.

The Smstateen extension specification is an M-mode extension as it includes M-mode features, but the supervisor-mode visible components of the extension are named as the Ssstateen extension. Only Ssstateen is mandated in the RVA22S64 profile when the hypervisor extension is implemented. These registers are not mandated or supported options without the hypervisor extension, as there are no RVA22S64 supported options with relevant state to control in the absence of the hypervisor extension.

Parameters

This extension has the following implementation options (AKA parameters):

MSTATEEN0_C_TYPE

Type

string

Valid Values

[rw, read-only-0, read-only-1]

Description

Behavior of the mstateen0.C bit, which controls access to any and all custom state:

  • 'rw': read-write

  • 'read-only-0': read-only, fixed to 0

  • 'read-only-1': read-only, fixed to 1

An implementation with no custom state must set this to 'read-only-0'.

MSTATEEN0_SE0_TYPE

Type

string

Valid Values

[rw, read-only-0, read-only-1]

Description

Behavior of the mstateen0.SE0, which controls access to hstateen0, hstateen0h, and sstateen0:

  • 'rw': read-write

  • 'read-only-0': read-only, fixed to 0

  • 'read-only-1': read-only, fixed to 1

mstateen0.SE0 may be read-only zero only if the hypervisor extension is not implemented and sstateen0 is all read-only zeros.

MSTATEEN1_SE0_TYPE

Type

string

Valid Values

[rw, read-only-0, read-only-1]

Description

Behavior of the mstateen1.SE0, which controls access to hstateen1, hstateen1h, and sstateen1:

  • 'rw': read-write

  • 'read-only-0': read-only, fixed to 0

  • 'read-only-1': read-only, fixed to 1

mstateen1.SE0 may be read-only zero only if the hypervisor extension is not implemented and sstateen1 is all read-only zeros. No bits of sstateen1 are currently defined, so only the hypervisor condition applies.

MSTATEEN2_SE0_TYPE

Type

string

Valid Values

[rw, read-only-0, read-only-1]

Description

Behavior of the mstateen2.SE0, which controls access to hstateen2, hstateen2h, and sstateen2:

  • 'rw': read-write

  • 'read-only-0': read-only, fixed to 0

  • 'read-only-1': read-only, fixed to 1

mstateen2.SE0 may be read-only zero only if the hypervisor extension is not implemented and sstateen2 is all read-only zeros. No bits of sstateen2 are currently defined, so only the hypervisor condition applies.

MSTATEEN3_SE0_TYPE

Type

string

Valid Values

[rw, read-only-0, read-only-1]

Description

Behavior of the mstateen3.SE0, which controls access to hstateen3, hstateen3h, and sstateen3:

  • 'rw': read-write

  • 'read-only-0': read-only, fixed to 0

  • 'read-only-1': read-only, fixed to 1

mstateen3.SE0 may be read-only zero only if the hypervisor extension is not implemented and sstateen3 is all read-only zeros. No bits of sstateen3 are currently defined, so only the hypervisor condition applies.