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

Reply via email to