What causes a STICKYERR in a CoreSight Debug Access Port?
Article ID: 103488363
Published date: 01 Dec 2017
Last updated: -
Applies to: Debug Access Port (DAP)
What causes a STICKYERR in a CoreSight Debug Access Port (DAP)?
The Stick Error flag, STICKYERR, as defined in the ARM Debug Interface v5 Architecture Specification, can come from either:
Error signals returned from the Debug Bus or slave debug component to the Access Port (AP).
The Debug Port (DP) trying to access an AP that is not present. For example, it is powered down or is not present at that address, or from protocol errors in Serial Wire.
To investigate unexpected assertion of STICKYERR, you must consider the following:
If the processor in the SoC design was delivered with a CoreSight Design Kit, you must ensure that any portable tests in the Integration Kit (IK) have been successfully ported to the SoC level and run in simulation. This is a good test of the basic intergration of the DP to the external pins of the SoC.
Check that the correct handshake protocol has been performed for CDBPWRUPREQ/CDBGPWRUPACK and CSYSPWRUPREQ/CSYSPWRUPACK, and that these signals have not subsequently been illegally deasserted while debug is in progress.
Check that power and clocks have been restored to the Debug and System domains before the corresponding *ACK signal was asserted.
Check that power or clock have not been illegally removed from the domain (or domains) being accessed during the debug session.
Check that the DP was accessing an existing AP when the error occurred.
Check the documentation of the processor or CoreSight component being accessed when the problem occurs. Some components (such as Cortex-A8 processors) document specific conditions under which an error is returned on the Debug APB bus for an access to a debug register.
Check for general issues with the target processor coming out of reset or power-down.
Check whether all such signals are timed correctly with regard to the clock and with regard to each other, and if they are asserted for any relevant minimum duration.
By default, different variants of the DAP might have APs present at different positions on the DAP bus. Implementations might have their own unique combination of APs on the DAP bus at arbitrary positions within the possible range of 0 - 255.