Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update debug.rst #675

Merged
merged 2 commits into from
Dec 3, 2021
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions docs/source/debug.rst
Original file line number Diff line number Diff line change
Expand Up @@ -178,3 +178,15 @@ Execuitng the EBREAK instruction when the core is in Debug Mode shall result in

- The core remains in Debug Mode and execution jumps back to the beginning of the debug code located at ``dm_halt_addr_i``
- none of the CSRs are modified


.. _interrupts_single-stepping:

Interrupts during Single-Step Behavior
--------------------------------------

The CV32E40P CPU is compliant with the 0.13.2 RISC-V Debug spec.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is a bit too strong. I would say that the 40P is not compliant to the intended interpretation of the 0.13.2 specification, but that this intended behavior was only clarified in version 1.0.0.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

agree and fixed

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's wait for @strichmo before merging in

The RISC-V Debug spec specified what the behavior of interrupts occurring during Single-Step must be only in version 1.0.0, after the implementation of the CV32E40P core.
See https://github.com/riscv/riscv-debug-spec/issues/510.
The CV32E40P executes the first instruction of the interrupt handler and retires it before re-entering in Debug Mode, which is prohibited in version 1.0.0 but not specified in 0.13.2. For details about the specific use-case, please refer to https://github.com/openhwgroup/core-v-verif/issues/904.