]> git.sur5r.net Git - openocd/blobdiff - src/target/arm_adi_v5.c
target/arm_adi_v5: fix sync CSW cache on apreg write
[openocd] / src / target / arm_adi_v5.c
index b4e252bb495a7f927eaa4f0f1f6b0c7677d08548..e62ac07577acce79c56af03dcd8b04764a5b0ffe 100644 (file)
@@ -1515,7 +1515,7 @@ int adiv5_jim_configure(struct target *target, Jim_GetOptInfo *goi)
                                        Jim_SetResultString(goi->interp, "AP number not configured", -1);
                                        return JIM_ERR;
                                }
-                               Jim_SetResult(goi->interp, Jim_NewIntObj(goi->interp, (int)pc->ap_num));
+                               Jim_SetResult(goi->interp, Jim_NewIntObj(goi->interp, pc->ap_num));
                        }
                        break;
                }
@@ -1738,8 +1738,10 @@ COMMAND_HANDLER(dap_apreg_command)
                COMMAND_PARSE_NUMBER(u32, CMD_ARGV[2], value);
                switch (reg) {
                case MEM_AP_REG_CSW:
-                       ap->csw_default = 0;  /* invalid, force write */
-                       retval = mem_ap_setup_csw(ap, value);
+                       ap->csw_value = 0;  /* invalid, in case write fails */
+                       retval = dap_queue_ap_write(ap, reg, value);
+                       if (retval == ERROR_OK)
+                               ap->csw_value = value;
                        break;
                case MEM_AP_REG_TAR:
                        ap->tar_valid = false;  /* invalid, force write */