vscause
Virtual Supervisor Cause
Reports the cause of the latest exception taken in VS-mode.
Attributes
Defining Extension |
|
||||
---|---|---|---|---|---|
CSR Address |
0x242 |
||||
Virtual CSR Address |
0x142 |
||||
Length |
|
||||
Privilege Mode |
VS |
Software write
This CSR may store a value that is different from what software attempts to write.
When a software write occurs (e.g., through csrrw), the following determines the written value:
INT = # the write only holds if the INT/CODE combination is valid # otherwise, the old value is retained if (csr_value.INT == 1) { if (valid_interrupt_code?(csr_value.CODE)) { return 1; } return ILLEGAL_WLRL; } else { if (valid_exception_code?(csr_value.CODE)) { return 1; } return ILLEGAL_WLRL; } CODE = # the write only holds if the INT/CODE combination is valid # otherwise, the old value is retained if (csr_value.INT == 1) { if (valid_interrupt_code?(csr_value.CODE)) { return csr_value.CODE; } return ILLEGAL_WLRL; } else { if (valid_exception_code?(csr_value.CODE)) { return csr_value.CODE; } return ILLEGAL_WLRL; }