|ARM Technical Support Knowledge Articles|
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 handshake is intended to allow the debugger to attempt to reset the debug logic in a CoreSight system without affecting the functional behaviour of the target system. If used, it 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 would be 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, there is very little in the debug logic which can be independently reset, so the available reset would be 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 considered to be unlikely that the CDBGRTREQ/ACK function would be very useful in a simple Cortex-M system. The DAP bus itself should be very unlikely ever to lock up in a way which 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 to LOW, indicating that a reset has not taken place.
It is considered unlikely that debug tools would automatically attempt to use this feature, but if they do, and if CDBGRSTACK is tied LOW, the tools can then recognize that no reset had taken place, by means of 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.
Did you find this article helpful? Yes No
How can we improve this article?