---
 src/target/arm11_dbgtap.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/target/arm11_dbgtap.c b/src/target/arm11_dbgtap.c
index 5c671cc..c6c5a50 100644
--- a/src/target/arm11_dbgtap.c
+++ b/src/target/arm11_dbgtap.c
@@ -199,11 +199,15 @@ int arm11_add_debug_SCAN_N(struct arm11_common *arm11,
         * NOTE:  the ITRSEL instruction fakes SCREG changing;
         * but leaves its actual value unchanged.
         */
-       if (arm11->jtag_info.cur_scan_chain == chain) {
-               JTAG_DEBUG("SCREG <= %d SKIPPED", chain);
-               return jtag_add_statemove((state == ARM11_TAP_DEFAULT)
-                                       ? TAP_DRPAUSE : state);
-       }
+       // FIX!!! the optimization below is broken because we do not
+       // invalidate the cur_scan_chain upon a TRST/TMS. See arm_jtag.c
+       // for example on how to invlidate cur_scan_chain. Tested patches gladly
+       // accepted!
+//     if (arm11->jtag_info.cur_scan_chain == chain) {
+//             JTAG_DEBUG("SCREG <= %d SKIPPED", chain);
+//             return jtag_add_statemove((state == ARM11_TAP_DEFAULT)
+//                                     ? TAP_DRPAUSE : state);
+//     }
        JTAG_DEBUG("SCREG <= %d", chain);
 
        arm11_add_IR(arm11, ARM11_SCAN_N, ARM11_TAP_DEFAULT);
-- 
1.7.2.3

_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to