This is an automated email from Gerrit.

"Jacek Wuwer <jacek...@gmail.com>" just uploaded a new patch set to Gerrit, 
which you can find at https://review.openocd.org/c/openocd/+/8068

-- gerrit

commit 545ace3a3078d975e46a8e2f330cee615ca28d33
Author: Jacek Wuwer <jacek...@gmail.com>
Date:   Wed Jan 10 11:11:34 2024 +0100

    target/adi_v5_jtag: debug register access
    
    Updated register list and removed ifdef DEBUG_WAIT to log DAP
    register accesses when DEBUG log level or higher is selected.
    This was necessary to debug responses from slow targets.
    
    Change-Id: I7da3538354adf408ce17448cfd009217fd62213c
    Signed-off-by: Jacek Wuwer <jacek...@gmail.com>

diff --git a/src/target/adi_v5_jtag.c b/src/target/adi_v5_jtag.c
index 8d54a50fb0..f52d2b4063 100644
--- a/src/target/adi_v5_jtag.c
+++ b/src/target/adi_v5_jtag.c
@@ -31,8 +31,6 @@
 #include <helper/list.h>
 #include <jtag/swd.h>
 
-/*#define DEBUG_WAIT*/
-
 /* JTAG instructions/registers for JTAG-DP and SWJ-DP */
 #define JTAG_DP_ABORT          0xF8
 #define JTAG_DP_DPACC          0xFA
@@ -47,66 +45,115 @@
 
 static int jtag_ap_q_abort(struct adiv5_dap *dap, uint8_t *ack);
 
-#ifdef DEBUG_WAIT
 static const char *dap_reg_name(struct adiv5_dap *dap, uint8_t instr, uint16_t 
reg_addr)
 {
        char *reg_name = "UNK";
 
        if (instr == JTAG_DP_DPACC) {
                switch (reg_addr) {
-               case DP_ABORT:
-                       reg_name =  "ABORT";
+               case DP_DPIDR:
+                       reg_name =  "DPIDR";
+                       break;
+               case DP_DPIDR1:
+                       reg_name =  "DPIDR1";
+                       break;
+               case DP_BASEPTR0:
+                       reg_name =  "BASEPTR0";
+                       break;
+               case DP_BASEPTR1:
+                       reg_name =  "BASEPTR1";
                        break;
                case DP_CTRL_STAT:
                        reg_name =  "CTRL/STAT";
                        break;
+               case DP_DLCR:
+                       reg_name =  "DLCR";
+                       break;
+               case DP_TARGETID:
+                       reg_name =  "TARGETID";
+                       break;
+               case DP_DLPIDR:
+                       reg_name =  "DLPIDR";
+                       break;
+               case DP_EVENTSTAT:
+                       reg_name =  "EVENTSTAT";
+                       break;
+               case DP_SELECT1:
+                       reg_name =  "SELECT1";
+                       break;
                case DP_SELECT:
                        reg_name = "SELECT";
                        break;
                case DP_RDBUFF:
                        reg_name =  "RDBUFF";
                        break;
-               case DP_DLCR:
-                       reg_name =  "DLCR";
-                       break;
                default:
-                       reg_name = "UNK";
                        break;
                }
-       }
-
-       if (instr == JTAG_DP_APACC) {
-               if (reg_addr == MEM_AP_REG_CSW(dap))
+       } else if (instr == JTAG_DP_APACC) {
+               switch (reg_addr) {
+               case ADIV5_MEM_AP_REG_CSW:
+               case ADIV6_MEM_AP_REG_CSW:
                        reg_name = "CSW";
-               else if (reg_addr == MEM_AP_REG_TAR(dap))
+                       break;
+               case ADIV5_MEM_AP_REG_TAR:
+               case ADIV6_MEM_AP_REG_TAR:
                        reg_name = "TAR";
-               else if (reg_addr == MEM_AP_REG_TAR64(dap))
+                       break;
+               case ADIV5_MEM_AP_REG_TAR64:
+               case ADIV6_MEM_AP_REG_TAR64:
                        reg_name = "TAR64";
-               else if (reg_addr == MEM_AP_REG_DRW(dap))
+                       break;
+               case ADIV5_MEM_AP_REG_DRW:
+               case ADIV6_MEM_AP_REG_DRW:
                        reg_name = "DRW";
-               else if (reg_addr == MEM_AP_REG_BD0(dap))
+                       break;
+               case ADIV5_MEM_AP_REG_BD0:
+               case ADIV6_MEM_AP_REG_BD0:
                        reg_name = "BD0";
-               else if (reg_addr == MEM_AP_REG_BD1(dap))
+                       break;
+               case ADIV5_MEM_AP_REG_BD1:
+               case ADIV6_MEM_AP_REG_BD1:
                        reg_name = "BD1";
-               else if (reg_addr == MEM_AP_REG_BD2(dap))
+                       break;
+               case ADIV5_MEM_AP_REG_BD2:
+               case ADIV6_MEM_AP_REG_BD2:
                        reg_name = "BD2";
-               else if (reg_addr == MEM_AP_REG_BD3(dap))
+                       break;
+               case ADIV5_MEM_AP_REG_BD3:
+               case ADIV6_MEM_AP_REG_BD3:
                        reg_name = "BD3";
-               else if (reg_addr == MEM_AP_REG_CFG(dap))
+                       break;
+               case ADIV5_MEM_AP_REG_MBT:
+               case ADIV6_MEM_AP_REG_MBT:
+                       reg_name = "MBT";
+                       break;
+               case ADIV5_MEM_AP_REG_BASE64:
+               case ADIV6_MEM_AP_REG_BASE64:
+                       reg_name = "BASE64";
+                       break;
+               case ADIV5_MEM_AP_REG_CFG:
+               case ADIV6_MEM_AP_REG_CFG:
                        reg_name = "CFG";
-               else if (reg_addr == MEM_AP_REG_BASE(dap))
+                       break;
+               case ADIV5_MEM_AP_REG_BASE:
+               case ADIV6_MEM_AP_REG_BASE:
                        reg_name = "BASE";
-               else if (reg_addr == MEM_AP_REG_BASE64(dap))
-                       reg_name = "BASE64";
-               else if (reg_addr == AP_REG_IDR(dap))
+                       break;
+               case ADIV5_AP_REG_IDR:
+               case ADIV6_AP_REG_IDR:
                        reg_name = "IDR";
-               else
-                       reg_name = "UNK";
+                       break;
+               default:
+                       break;
+               }
+       } else if (instr == JTAG_DP_IDCODE) {
+               reg_name = "DPIDR";
+       } else if (instr == JTAG_DP_ABORT) {
+               reg_name = "ABORT";
        }
-
        return reg_name;
 }
-#endif
 
 struct dap_cmd {
        struct list_head lh;
@@ -133,7 +180,6 @@ struct dap_cmd_pool {
 
 static void log_dap_cmd(struct adiv5_dap *dap, const char *header, struct 
dap_cmd *el)
 {
-#ifdef DEBUG_WAIT
        const char *ack;
        switch (el->ack) {
        case JTAG_ACK_WAIT:         /* ADIv5 and ADIv6 */
@@ -163,7 +209,6 @@ static void log_dap_cmd(struct adiv5_dap *dap, const char 
*header, struct dap_cm
                buf_get_u32(el->outvalue_buf, 0, 32),
                buf_get_u32(el->invalue, 0, 32),
                ack);
-#endif
 }
 
 static int jtag_limit_queue_size(struct adiv5_dap *dap)

-- 

Reply via email to