Skip to content

Clarify that halt/resume groups configuration is reset by DM reset #1146

@en-sc

Description

@en-sc

Looking at [3.14.17. Debug Module Control and Status 2 (dmcs2, at 0x32)] it seems like halt groups should be reset when DM is reset, since:

  1. The reset value for dtmcs2.group is preset.
  2. dmcs2.grouptype resets to 0 (halt).
  3. dmcontrol.hartsel resets to 0.
  4. dtmcs2.group represents the halt group of the hart corresponding to dmcontrol.hartsel
  5. Throughout the spec there is nothing special about the hart that corresponds to dmcontrol.hartsel = 0.

Therefore, resetting the DM will change the halt group of the hart that corresponds to dmcontrol.hartsel = 0 to some preset, and it seems logical that this will also be the case for other harts and for resume groups as well.

Nevertheless it seems like an explicit statement that DM reset resets the halt and resume groups configuration could be quite helpful.
I'd like to suggest adding this statement to [3.6. Halt Groups, Resume Groups, and External Triggers].

Moreover, it seems like there is confusion about whether DM reset should reset halt/resume groups configuration. E.g. it seems like this is not the case for the Spike simulator.

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