Skip to content

Clarify scope of {dmcontrol.ndmreset} when multiple Debug Modules exist in one SoC #1163

@xiaoweish

Description

@xiaoweish

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:

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions