Subject: ADIv5: fix more diagnostics
If the MEM-AP cache is invalid, don't display it; just report that invalidity as an error. (This bug has been observed with "mdw 0 32" after just a "reset halt". Some code is being wrongly bypassed...) If it's valid, display that cache at DEBUG level, not ERROR. Also, don't assume it's an AHB-AP; it could be another flavor of MEM-AP. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
This commit is contained in:
parent
695666d294
commit
e11ce3e6b0
|
@ -321,27 +321,34 @@ int jtagdp_transaction_endcheck(struct swjdp_common *swjdp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* REVISIT also STICKYCMP, for pushed comparisons (nyet used) */
|
||||||
|
|
||||||
/* Check for STICKYERR and STICKYORUN */
|
/* Check for STICKYERR and STICKYORUN */
|
||||||
if (ctrlstat & (SSTICKYORUN | SSTICKYERR))
|
if (ctrlstat & (SSTICKYORUN | SSTICKYERR))
|
||||||
{
|
{
|
||||||
LOG_DEBUG("jtag-dp: CTRL/STAT error, 0x%" PRIx32, ctrlstat);
|
LOG_DEBUG("jtag-dp: CTRL/STAT error, 0x%" PRIx32, ctrlstat);
|
||||||
/* Check power to debug regions */
|
/* Check power to debug regions */
|
||||||
if ((ctrlstat & 0xf0000000) != 0xf0000000)
|
if ((ctrlstat & 0xf0000000) != 0xf0000000)
|
||||||
{
|
|
||||||
ahbap_debugport_init(swjdp);
|
ahbap_debugport_init(swjdp);
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uint32_t mem_ap_csw, mem_ap_tar;
|
uint32_t mem_ap_csw, mem_ap_tar;
|
||||||
|
|
||||||
/* Print information about last AHBAP access */
|
/* Maybe print information about last MEM-AP access */
|
||||||
LOG_ERROR("AHBAP Cached values: dp_select 0x%" PRIx32
|
if (swjdp->ap_tar_value != (uint32_t) -1)
|
||||||
", ap_csw 0x%" PRIx32 ", ap_tar 0x%" PRIx32,
|
LOG_DEBUG("MEM-AP Cached values: "
|
||||||
swjdp->dp_select_value, swjdp->ap_csw_value,
|
"ap_bank 0x%" PRIx32
|
||||||
|
", ap_csw 0x%" PRIx32
|
||||||
|
", ap_tar 0x%" PRIx32,
|
||||||
|
swjdp->dp_select_value,
|
||||||
|
swjdp->ap_csw_value,
|
||||||
swjdp->ap_tar_value);
|
swjdp->ap_tar_value);
|
||||||
|
else
|
||||||
|
LOG_ERROR("Invalid MEM-AP TAR cache!");
|
||||||
|
|
||||||
if (ctrlstat & SSTICKYORUN)
|
if (ctrlstat & SSTICKYORUN)
|
||||||
LOG_ERROR("JTAG-DP OVERRUN - "
|
LOG_ERROR("JTAG-DP OVERRUN - check clock, "
|
||||||
"check clock or reduce jtag speed");
|
"memaccess, or reduce jtag speed");
|
||||||
|
|
||||||
if (ctrlstat & SSTICKYERR)
|
if (ctrlstat & SSTICKYERR)
|
||||||
LOG_ERROR("JTAG-DP STICKY ERROR");
|
LOG_ERROR("JTAG-DP STICKY ERROR");
|
||||||
|
|
Loading…
Reference in New Issue