Skip to content

Debug Module Inner's Reset Logic #3747

@EmJunaid

Description

@EmJunaid

According to the Debug Spec Version 0.13.2,
The Debug Module’s own state and registers should only be reset at power-up and while dmactive in dmcontrol is 0.
But in Current rocket-chip Debug Module Implementation, there is a debug_reset as a separate Reset input to TLDebugInner. In issue 1359 @mwachs5 you said that the Debug Module Registers are not on this debug_reset, and Debug Module Registers are gonna reset on dmactive bit of dmcontrol , but what is the reasoning behind doing this like if debug_reset is global reset to reset everything other than Debug Module then this debug_reset is only gonna reset some part of TLDebugInner and Debug Module Registers gonna maintain their state during this debug_reset, even though it does not make any sense to me, it also contradicts the Debug Spec statement where it says this external reset (debug_reset) should not reset the Debug Module’s state as well, not only the Debug Module’s Registers but state as well, and it's very much possible that by asserting debug_reset we gonna mess with the state of TLDebugInner because there's a huge logic on debug_reset, no? Can anyone explain this Reset logic to me? If this is a bug or my understanding is not correct? Any response is appreciated, thanks.

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