On Wed, Apr 6, 2011 at 3:33 PM, Laurent Gauch <laurent.ga...@amontec.com> wrote:
> Before.
> Reading "Figure 6-16 Write Processor Access Example", the PrACC must be
> checked first.

OK, then it is well implemented in my patch.

But I propose other method, based on my last thinking of SPrAcc -
PrAcc relation (if my assimption is right) :
SPrAcc basically holds the value of PrAcc from CONTROL register. They
are the same thing - a replica.
With the difference that you can affect SPrAcc with scan chain :
What you shift out is the current value of PrAcc. What you shift in is
the future value of PrAcc.

Because every "simple" write begins by waiting that PrAcc is "1" and
then putting it to "0", FASTDATA is no exception, but we put PrAcc to
zero by shifting "0" to SPrAcc. At the same time we shift out ex-value
of PrAcc - an if it was not "1" we are in trouble (that means that we
wanted to initiate access on PrAcc "0").

So, if these assumptions are correct, then finally current
implementation in the repo is quite fine. Except for the fact that it
does not shift out SPrAcc (i.e. it misses jtag_execute_queue() and
check at the end). We do not need to wait for PrAcc before (big loose
of time) - we will check it's ex-value anyway in the shifted-out
SPrAcc. If it was not "1" we can then wait and try again when it
becomes "1". But with Amontec probe that will never happen - as I
noted before in patch #3 which was rejected, as soon as we do
jtag_execute_queue() I see no more problems ( even without shifting
out bits, i.e. field.in_value=NULL; ). And because I have to do
jtag_execute_queue() to shift out SPrAcc, I will never see a problem
that PrAcc was not "1" (delay will be sufficient for it to become "1"
every time), so I can not test this implementation.

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

Reply via email to