On Sat, 7 Mar 2009, Peter Denison wrote:

> This write to DCSR should then let the target run (the debug code just 
> loaded into the cache), and then the next read is from TX, which the 
> debug handler should have written to. However, the 3 guard bits in 
> fields[0].in_value[3] should be 010 or 011 (from the hardware), and they 
> aren't, which is why I think it's an extra bit clocked somewhere.

I've been looking more closely at the TAP state transtition table in 
src/jtag/jtag.c, in tap_get_tms_path(), and first of all there are some 
assumptions I must query:

1) Should a transition from one {DR,IR}SHIFT or {DR,IR}PAUSE to another 
always make the transtion through {DR,IR}CAPTURE?

Currently some do and some don't

2) Should a transition into {DR,IR}SHIFT always guarantee to arrive at 
that state on the last clock of the fixed 7?

Currently most do, but some don't.

3) At the end of a known number of bits in {DR,IR}SHIFT, are the adapter 
codes expected to exit into {DR,IR}EXIT1, or to stay in SHIFT? This 
assumption is crucial to the subsequent transitions required to update the 
register. Is this up to the adapter specific code to know and compensate 
for?

At least one adapter implementation automatically comes out into EXIT1.


Of the 36 transitions in the table, I think that 8 are suspect, and of 
those, 2 plain wrong:

DRSHIFT -> DRSHIFT: is 00, depends on answer to 1), but could be 13 or 1D
DRPAUSE -> DRSHIFT: is 20, depends on answer to 1), but could be 13,16,1C
IRSHIFT -> DRSHIFT: is 07, which clocks DR twice, should be 13 or 1D

DRSHIFT -> DRPAUSE: is 01, depends on answer to 1), but could be 17 or 2B

DRSHIFT -> IRSHIFT: is 0F, which clocks IR once, should be 1B
IRSHIFT -> IRSHIFT: is 00, depends on answer to 1), but could be 1B
IRPAUSE -> IRSHIFT: is 20, depends on answer to 1), but could be 1B or 1E

IRSHIFT -> IRPAUSE: is 01, depends on answer to 1), but could be 2F

It's the IRSHIFT->DRSHIFT and vice versa that are definitely wrong.

This may not be a real issue, but it's worth correcting.
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to