mtval
Machine Trap Value
Holds trap-specific information
Attributes
Defining Extension |
|
||||
---|---|---|---|---|---|
CSR Address |
0x343 |
||||
Length |
|
||||
Privilege Mode |
M |
Fields
VALUE
- Location
-
63:0
- Description
-
Written with trap-specific information when a trap is taken into M-mode.
The values are:
[separator="!"]
!===
! Exception type ! Value
! [0] Instruction address misaligned ! The misaligned virtual PC (same as the value written to mepc).
! [1] Instruction access fault ! The virtual PC causing the access fault (same as the value written to mepc).
! [2] Illegal Instruction ! The encoding of the illegal instruction.
! [3] Breakpoint
! [when,"REPORT_VA_IN_MTVAL_ON_BREAKPOINT == true"]
When caused by an EBREAK instruction, the virtual PC of the breakpoint instruction.
[when,"REPORT_VA_IN_MTVAL_ON_BREAKPOINT == false"]
When caused by an EBREAK instruction, zero.
When caused by a data address (i.e., watchpoint) breakpoint, the faulting virtual address.
When caused by an instruction address breakpoint, the faulting virtual PC.
! [4] Load address misaligned ! The misaligned virtual load address.
! [5] Load access fault
! The part of virtual load address causing in the access fault.
When the load is misaligned, the reported value is the smallest address on the page causing a fault
(e.g., if an 8-byte load is equally split across a page and the fault occurs on the second page,
address + 4 is reported).
(Even though the access fault arises on a physical address, the virtual address is reported)
! [6] Store/AMO address misaligned ! The misaligned virtual store/AMO address.
! [7] Store/AMO access fault
! The virtual store/AMO address causing the access fault.
When the store/AMO is misaligned, the reported value is the smallest address on the page causing a fault
(e.g., if an 8-byte store is equally split across a page and the fault occurs on the second page,
address + 4 is reported).
(Even though the access fault arises on a physical address, the virtual address is reported)
! [8] Environment call from U-mode ! Zero
! [9] Environment call from (H)S-mode ! Zero
! [11] Environment call from M-mode ! Zero
! [12] Instruction page fault
! The virtual PC causing the page fault
(same as the value written to mepc).
! [13] Load page fault
! The part of the virtual load address causing in the page fault.
When the load is misaligned, the reported value is the smallest address on the page causing a fault
(e.g., if an 8-byte load is equally split across a page and the fault occurs on the second page, address + 4 is reported).
! [15] Store/AMO page fault
! The virtual store/AMO address causing in the page fault.
When the store/AMO is misaligned, the reported value is the smallest address on the page causing a fault
(e.g., if an 8-byte store is equally split across a page and the fault occurs on the second page, address + 4 is reported).
!=== - Type
-
RW-H
- Reset value
-
0