Muntjac privileged specification

December 15, 2020 ยท View on GitHub

Much of the RISC-V privileged specification (version 1.11) is optional. This page details the parts implemented by Muntjac.

Control and status registers

NameDescription
MVENDORIDVendor ID
MARCHIDArchitecture ID
MIMPIDImplementation ID
MHARTIDHardware thread ID
MSTATUSMachine status
MISAISA and extensions
MEDELEGMachine exception delegation register
MIDELEGMachine interrupt delegation register
MIEMachine interrupt-enable register
MTVECMachine trap-handler base address
MCOUNTERENMachine counter enable
MSCRATCHScratch register for machine trap handlers
MEPCMachine exception program counter
MCAUSEMachine trap cause
MTVALMachine bad address or instruction
MIPMachine interrupt pending
SSTATUSSupervisor status
SIESupervisor interrupt-enable register
STVECSupervisor trap-handler base address
SCOUNTERENSupervisor counter enable
SSCRATCHScratch register for supervisor trap handlers
SEPCSupervisor exception program counter
SCAUSESupervisor trap cause
STVALSupervisor bad address or instruction
SIPSupervisor interrupt pending
SATPSupervisor address translation and protection

Interrupts

Name
S_SOFTWARE_INTR
M_SOFTWARE_INTR
S_TIMER_INTR
M_TIMER_INTR
S_EXTERNAL_INTR
M_EXTERNAL_INTR

Exceptions

Name
INSTRUCTION_ACCESS_FAULT
ILLEGAL_INSTRUCTION
BREAKPOINT
LOAD_ADDRESS_MISALIGNED
LOAD_ACCESS_FAULT
STORE_AMO_ADDRESS_MISALIGNED
STORE_AMO_ACCESS_FAULT
ECALL_UMODE
ECALL_SMODE
ECALL_MMODE
INSTRUCTION_PAGE_FAULT
LOAD_PAGE_FAULT
STORE_AMO_PAGE_FAULT