INCOMPLETE ... I noticed this issue while trying to understand what changed to make the interactive "reset" stop working right on some ARM926 boards. Works OK on server startup, but when it kicks in later it only sees one of the three TAPs, and complains about bogus data.
Any objection to finishing and merging this? --- openocd.orig/src/jtag/core.c 2009-09-16 10:40:54.000000000 -0700 +++ openocd/src/jtag/core.c 2009-09-16 10:39:26.000000000 -0700 @@ -645,6 +645,15 @@ void jtag_add_reset(int req_tlr_or_trst, if (jtag_srst != new_srst || jtag_trst != new_trst) { int retval; + /* changing SRST and TRST together leads to unordered + * behavior at the adapter level: which happens first? + */ + if (((RESET_SRST_PULLS_TRST |RESET_TRST_PULLS_SRST) + & jtag_reset_config) == 0 + && jtag_srst != new_srst + && jtag_trst != new_trst) + LOG_WARNING("changing SRST and TRST together!"); + retval = interface_jtag_add_reset(new_trst, new_srst); if (retval != ERROR_OK) jtag_set_error(retval); @@ -1272,6 +1281,7 @@ int jtag_init_reset(struct command_conte jtag_add_reset(1, 1); if ((jtag_reset_config & RESET_SRST_PULLS_TRST) == 0) jtag_add_reset(0, 1); +else jtag_add_reset(1, 0); } jtag_add_reset(0, 0); if ((retval = jtag_execute_queue()) != ERROR_OK) _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development