This is an automated email from Gerrit. "Tomas Vanek <van...@fbl.cz>" just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8157
-- gerrit commit d0765fd04e828b8b71cb1c0791ba6bed0d6c1a00 Author: Tomas Vanek <van...@fbl.cz> Date: Fri Feb 9 15:10:30 2024 +0100 target/arm_adi_v5: do not invalidate DAP cache before dp_init At least select_valid and select_dpbanksel_valid flags set by the transport specific part of dap_ops->connect() should be preserved to prevent unwanted write to SELECT register. Move dap_invalidate_cache() before connect wherever applicable. Signed-off-by: Tomas Vanek <van...@fbl.cz> Change-Id: I238c0a546b7451e4185a5895b777b8282ad996eb diff --git a/src/flash/nor/psoc6.c b/src/flash/nor/psoc6.c index b7ba1027ed..9de8c7c286 100644 --- a/src/flash/nor/psoc6.c +++ b/src/flash/nor/psoc6.c @@ -945,6 +945,7 @@ static int handle_reset_halt(struct target *target) /* Wait 100ms for bootcode and reinitialize DAP */ usleep(100000); + dap_invalidate_cache(cm->debug_ap->dap); dap_dp_init(cm->debug_ap->dap); target_wait_state(target, TARGET_HALTED, IPC_TIMEOUT_MS); diff --git a/src/jtag/drivers/vdebug.c b/src/jtag/drivers/vdebug.c index f1fc4535f3..dc52ab35df 100644 --- a/src/jtag/drivers/vdebug.c +++ b/src/jtag/drivers/vdebug.c @@ -1119,6 +1119,7 @@ static int vdebug_dap_bankselect(struct adiv5_ap *ap, unsigned int reg) static int vdebug_dap_connect(struct adiv5_dap *dap) { + dap_invalidate_cache(dap); return dap_dp_init(dap); } diff --git a/src/target/adi_v5_jtag.c b/src/target/adi_v5_jtag.c index 8d54a50fb0..c2fafc4c65 100644 --- a/src/target/adi_v5_jtag.c +++ b/src/target/adi_v5_jtag.c @@ -703,6 +703,8 @@ static int jtagdp_transaction_endcheck(struct adiv5_dap *dap) static int jtag_connect(struct adiv5_dap *dap) { dap->do_reconnect = false; + dap_invalidate_cache(dap); + return dap_dp_init(dap); } diff --git a/src/target/arm_adi_v5.c b/src/target/arm_adi_v5.c index ff12658c83..704a9c760c 100644 --- a/src/target/arm_adi_v5.c +++ b/src/target/arm_adi_v5.c @@ -783,7 +783,6 @@ int dap_dp_init(struct adiv5_dap *dap) LOG_DEBUG("%s", adiv5_dap_name(dap)); dap->do_reconnect = false; - dap_invalidate_cache(dap); /* * Early initialize dap->dp_ctrl_stat. @@ -873,6 +872,7 @@ int dap_dp_init_or_reconnect(struct adiv5_dap *dap) /* dap connect calls dap_dp_init() after transport dependent initialization */ return dap->ops->connect(dap); } else { + dap_invalidate_cache(dap); return dap_dp_init(dap); } } --