-
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.