Magnus Lundin wrote:
> Hi, here are som thoughts after looking throuh some parts of the jtag 
> subsystem.
>
> What is a stable state ?  A state that is unchanged or a state that is 
> unchanged and has no sideeffects ?  Only RESET and PAUSE ?
>   

A stable state is one that can persist with subsequent clocks.   Most 
states are such that they persist for only one clock cycle.  In all 
cases a stable state can only persist with a subsequent clock cycle if 
the TMS line is in a specific value.  That is only of the two possible 
TMS values allows the stable state to persist.  A stable state is any in 
the TAP state diagram which has an arrow looping back to itself.  I see 
6 of them in the state diagram.


I would go blind looking at these arrays.   You talk about using states, 
but then I see a table of numbers.  Numbers don't mean anything to me.  
I am not a computer.  The code has to be readable, as a human.  Maybe I 
mis-understand you.

We already have the jtag_add_pathmove() function.  Its API is elegant 
and in theory it can do anything we need anywhere.   Why do we need 
other?  What is more readable than an array of states through which you 
wish to travel, specified in a human readable #define TAP_<state> ?  See 
here from xsvf.c:


                        static tap_state_t exception_path[] = {
                            TAP_DREXIT2,
                            TAP_DRSHIFT,
                            TAP_DREXIT1,
                            TAP_DRUPDATE,
                            TAP_IDLE,
                        };

                        jtag_add_pathmove( 
sizeof(exception_path)/sizeof(exception_path[0]), exception_path);


It is like connecting the dots for me, I understand it.   This function 
can handle any use case that I can think of.


Dick

_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to