-
Notifications
You must be signed in to change notification settings - Fork 99
Description
The Debug Spec states that
{dmcontrol-ndmreset} resets all the harts in the hardware platform, as well as all other parts of the hardware platform except for the Debug Modules, Debug Transport Modules, and Debug Module Interface.
Link here:
riscv-debug-spec/debug_module.adoc
Lines 69 to 72 in 22a7576
| There are two methods that allow a debugger to reset harts. {dmcontrol-ndmreset} resets all | |
| the harts in the hardware platform, as well as all other parts of the | |
| hardware platform except for the Debug Modules, Debug Transport Modules, | |
| and Debug Module Interface. Exactly what is affected by this reset is |
In SoCs that integrate multiple RISC-V CPU clusters, each with its own Debug Module and Debug Transport Module (e.g., two separate JTAG debug chains for CPU-A and CPU-B), the term “hardware platform” becomes ambiguous.
For example:
CPU-A has its own DM/DTM connected via JTAG chain A.
CPU-B has its own DM/DTM connected via JTAG chain B.
If a debugger issues ndmreset through CPU-A’s DTM, should this reset also affect CPU-B’s harts and debug module?
Or is ndmreset only expected to reset the harts visible to the DM receiving the command (i.e., within that DM’s reset domain)?
It would be helpful if the spec explicitly clarified whether ndmreset is scoped per Debug Module instance, or if any global system-wide coordination is expected.