Duane,

>  Can we get confirmation about how the JRC works in OMAP?
>
> Is the following assertion true?
>
> When a TAP is enabled, it is always enabled at a FIXED
> position within the chain?
>

i've done some tests comparing the davinci dm-355 board(it has basically the 
same ICEPick as the OMAP35xx) with the openocd config and bdi2000 configs. it 
does appear that the taps are in a fixed position.

> To describe it another way - Assume there are 3 taps.
>
>    (1) ICE Pick - the JRC
>    (2) An ARM CPU Tap
>    (3) A DSP CPU Tap
>
> The ARM CPU - if it is enabled is ALWAYS after the JRC and
> ALWAYS before the DSP (if it is enabled).
>
> The JRC can *NEVER* swap the order of any two taps.
>

for the davinci, the order is:

1) ARM
2) ETB
3) ICEPick

when EMU0/EMU1 are pulled low, the ICEPick TAP is on and is forced to default 
with the two TAPS enabled. when EMU0/EMU1 are pulled high, the ICEPick has to 
be programmed in the same manner as the OMAP35xx's ICEPick.



> It sure seems like this is true.
>
> Today - OpenOCD - and most other JTAG programs assume the
> following:
>
>    1) The tap is IN BYPASS (and has length 1)
> or
>    2) The tap is *NOT* in BYPASS (and has length N)
>
> It seems, all we must do is introduce a 3rd state.
>
>    3) The tap is Disabled and has Length 0.
>

this sounds completely reasonable. if you compare the bdi config files for the 
davinci and the omap35xx there are some differences:

davinci

; Configure ICEPick module to make ARM926 TAP visible
SCANINIT    r0:w10000:
SCANINIT    r1:t1:w1000:t0:w1000:  ;assert reset and toggle TRST
SCANINIT    i6=07:d8=89:i6=02:     ;connect and select router
SCANINIT    d32=81000082:          ;set IP control
SCANINIT    d32=a018206f:          ;configure TAP0
SCANINIT    d32=a018216f:cl5:      ;enable TAP0, clock 5 times in RTI
SCANINIT    i10=ffff               ;scan bypass


omap35xx

; Configure ICEPick module to make Cortex-A8 DAP-TAP visible
SCANINIT    t1:w1000:t0:w1000:  ;toggle TRST,
SCANINIT    ch10:w1000:         ;clock TCK with TMS high and wait
SCANINIT    i6=07:d8=89:i6=02:  ;connect and select router
SCANINIT    d32=81000080:       ;IP control: KeepPowered
SCANINIT    d32=a3002048:       ;TAP3: DebugConnect, ForcePower, ForceActive
SCANINIT    d32=81000081:       ;IP control: KeepPowered, SysReset
SCANINIT    d32=a3002148:       ;enable TAP3
SCANINIT    cl10:i10=ffff       ;clock 10 times in RTI, scan bypass



notice the arm core on the davinci is at TAP0 and the arm core on the omap is 
at TAP3. based on the documents that have been posted for the OMAP35xx combined 
with the information from the BDI config, the OMAP35xx tap looks like this:

1) DSP
2) ETB
3) ARM
4) ICEPick


any changes/development we do to support JRC's can be tested currently with the 
DM-355 and related davinci boards, as they already have debug support in the 
main tree of openocd. this gives you a reference for testing.


Dave Anders
TinCanTools




      
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to