On Mon, Jun 1, 2009 at 11:39 AM, Magnus Lundin <[email protected]> wrote: > I propose some changes to the jtag subsystem > > - Add jtag_add_statmove( endstate ) call, the code is already in > jtag_add_tlr() > > - Remove the JTAG_RUNTEST cmd type. > > - Implement jtag_add_runtest(n) as > jtag_add_statemovet(TAP_IDLE) > jtag_stableclocks(n) /* Should be n-1 if current tap state is not > TAP_IDLE ?? */ > > - Implement jtag_add_tlr() as > jtag_add_statemovet(TAP_RESET) > jtag_stableclocks(6) /* I am not 100% sure about this here */
It might work, but it obscures what is going on. Sometimes statemove would succeed and sometimes not but then stableclocks would do the job, because the JTAG driver uses the then false state information from the upper layer. Why would you add such obscure mechanisms to the code? statemove should be a move between two defined states, not a reset from an unknown state. Especially not as long as the engine does not allow even defining the state to be unknown. jtag_add_tlr() should be implemented as a distinct command in the driver layer and not mixed into statemove. Otherwise you get (exactly as it is now) inconsistent behavior between the lower layer implementations because every driver has its own collection of if's to deal with special cases (like TLR). Michael > - Make sure that JTAG_STABLECLOCKS is implemented in all drivers (we > will soon fingd out otherwise ) > > > Regards > Magnus > _______________________________________________ > Openocd-development mailing list > [email protected] > https://lists.berlios.de/mailman/listinfo/openocd-development > _______________________________________________ Openocd-development mailing list [email protected] https://lists.berlios.de/mailman/listinfo/openocd-development
