Copyright and license information
This specification is licensed under the Creative Commons Attribution 4.0 International License (CC-BY 4.0). The full license text is available at creativecommons.org/licenses/by/4.0/.
Copyright 2025 by RISC-V International.
Preface to Version 20250616
Clarifications only - no changes to normative behaviour.
- Updated Section 7 and Section 13 to reference the Unformatted Trace & Diagnostic Data Packet Encapsulation for RISC-V Specification;
- Removed ambiguity between 'last' and 'final'. Last was previously used to mean both the instruction before the current one, and the final instruction traced;
- Clarified behaviour when trace-on and trace-off triggers occur both occur in the same cycle (see Section 4.2.4);
- Clarified that full synchronization also takes place on a privilege change (see Section 3.1.5 and Section 7.3.1);
- Reworded jump classifications in jump classifications in Section 4.1 to align with terminology used in other specifications;
- Clarified when to issue sync-support packet when trace is enabled (see Section 7.5);
- Clarified that branch_map can be set to 31 any time an address needs to be reported and the branch map is full (see Section 7.7);
- Updated reference encoding algorithm to generalize resync behaviour and add missing trap conditions (see Section 9);
- Clarified that implicit returns are not stored in the jump target cache (see Section 3.2.7);
- Updated decoder to remove ECALL, EBREAK and C.EBREAK from is_uninferrable_jump function. Including them is harmless but unnecessary, as these instrucitons don’t retire (see Section 11);
- Corrected description of why the EPC is not always reported (see Section 7.3.1).
- Minor clarifications, formatting and typo fixes.
Preface to Version 20240419
Formatting and typo fixes.
Preface to Version 20240305
First version in AsciiDoc format.
Preface to Version 20231215
Clarifications only - no changes to normative behaviour.
- Control field definitions removed from section 2, which now references the RISC-V Trace Control Interface Specification
- Added detail on handling of multi-load/store instructions for data trace to Section 4.3.
- Removed references to tail-calls in jump classifications in Section 4.1.
- Corrected typos where
lridwas inadvertently refered to by an earlier name (index) in Section 8.1. - Corrected reference decoder in Section 11 to cover a corner-case related to trap returns.
Preface to Version 2.0
Ratified version of the Efficient Trace for RISC-V specification.