-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
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.