Using CDBGRSTREQ and CDBGRSTACK
Article ID: 103490330
Published date: 24 Jul 2017
Last updated: -
Applies to: Debug Access Port (DAP)
How are CDBGRSTREQ and CDBGRSTACK used?
CDBGRSTREQ and CDBGRSTACK are:
Boundary signal ports on a CoreSight DAP, of interest to the chip designer.
Bits in the Debug Port's Control/Status Register, of interest to the creator or the user of debug tools.
The CDBGRSTREQ and CDBGRSTACK handshakes are intended to allow the debugger to attempt to reset the debug logic in a CoreSight system without affecting the functional behavior of the target system. If used, the handshake would be connected to a reset controller on the chip, which would respond to a CDBGRSTREQ by resetting all of the debug-only logic in the CoreSight system and then asserting CDBGRSTACK.
In a general CoreSight system, the reset controller is expected to reset the DAP and the Debug APB when it receives this request. It is expected that DAPRESETn, PRESETDBGn, and ATRESETn (or equivalent signals) would all be reset by the chip's reset controller if this feature is implemented.
In a system containing only a Cortex-M3 or Cortex-M4 processor, there is very little in the debug logic that can be independently reset, so the available reset is limited to the DAP bus including the AHB-AP inside the core. The individual debug functions in the core, such as DWT and ITM, do not have a debug-only reset capability. Therefore it is unlikely that the CDBGRSTREQ/ACK function would be very useful in a simple Cortex-M system. It is very unlikely that the DAP bus itself would ever to lock up in a way that would benefit from having this reset available in such a system.
If this feature is not implemented in a chip, then CDBGRSTACK should simply be tied LOW, indicating that a reset has not taken place.
It is unlikely that debug tools would automatically attempt to use this feature. However, if they do and if CDBGRSTACK is tied LOW, the tools can then recognize that no reset had taken place, by timing out on the CDBGRSTREQ/ACK handshake. Where tools do not support automatic use of this feature, a user who experiences an apparent hang of the debug system could manually set the CDBGRSTREQ bit and read back the CDBGRSTACK bit before attempting to continue the debug session.