mtval
Machine Trap Value
Holds trap-specific information
Fields
VALUE
- Location
-
mtval[63:0]
- Description
-
Written with trap-specific information when a trap is taken into M-mode.
The values are:
Exception type
Value +
[0] Instruction address misaligned
The misaligned virtual PC (same as the value written to mepc).
[1] Instruction access fault
The portion of the virtual PC causing the access fault .
[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 or VU-mode
Zero
[9] Environment call from (H)S-mode
Zero
[10] Environment call from VS-mode
Zero
[11] Environment call from M-mode
Zero
[12] Instruction page fault
The portion of the virtual PC causing the page fault .
[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).
[20] Instruction guest-page fault
The portion of the virtual PC causing the fault . + The guest physical address is reported in mtval2.
[21] Load guest-page fault
The part of the virtual address causing the 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). + The guest physical address is reported in mtval2.
[22] Virutal instruction
The encoding of the faulting virtual instruction.
[23] Store/AMO guest-page fault
The part of the virtual address causing the 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). + The guest physical address is reported in mtval2.
- Type
RW-H |
Read-Write with Hardware update Field is writable by software. Any value that fits in the field is acceptable. Hardware also updates the field without an explicit software write. |
- Reset value
-
0