Duane Ellis wrote:
Dirk/Rick,
I know the two of you have been messing with Beagle board more then I...
Dust has settled here and I'm in a position to start messing with it...
:)
Help from the experts is always welcome. Great!
While Rick already answered most of your questions, here my style of
the answers, maybe they help you, too:
Some questions:
1) Is there anything pending - SVN wise? or is that up to date?
SVN top is fine. I'm using 1285 from yesterday.
2) A copy of a recent config file you guys are using would be helpful.
Please find them in attachment. In omap3530.txt there are some
different options to try:
Regarding jtag newtap:
For jrc the -ircapture 0x1 -irmask 0xf one we started with. Then we
found that jrc ID code is at 0x4 and I switched to -ircapture 0x4
-irmask 0x0 as proposed by Rick. Maybe you like to review this.
Regarding cpu tap-enable:
There are three versions. The first one is the 'original' one which
circulated here at the mailing list, nobody can remember where it
comes from. I then compared this 'original' one with
http://elinux.org/BeagleBoardJTAG#BDI_config
and found to replace 0x81002148 at the third drscan with 0x81000081.
We don't know what these commands are doing, though.
Then looking at
http://elinux.org/OMAP3530_ICEPICK
what is from TI's document resulted in the third configuration. There,
I'm not sure about the "Embed the port address 0x0f000000 value 3" in
TI's documentation.
3) A short summary - of the *LONG* chain of emails would be helpful.
Where are you, what is known, unknown, etc.
Independent of which of the above configurations you use, the status
is always the same for me (see log below, too):
* starting OpenOCD, doing a
irscan omap3530.jrc 4
drscan omap3530.jrc 32 0x0
returns jrc IdCode.
* Doing then a
jtag tapenable omap3530.cpu
and afterwards jrc IdCode isn't acessible any more with above commands.
* Doing a hack in OpenOCD in jtag.c in JTAG_CMD_TAPENABLE by disabling
"t->enabled":
case JTAG_CMD_TAPENABLE:
jtag_tap_handle_event( t, JTAG_TAP_EVENT_ENABLE);
e = 1;
//t->enabled = e; // <====== !!
break;
results in jrc IdCode readable even after tapenable (not in the log
below, see mail history from yesterday).
* In TI doc
http://elinux.org/OMAP3530_ICEPICK
there is a
## Function : Wait for a minimum number of TCLK pulses.
Parameter : The count of TCLK pulses is '10'.
At the moment we 'emulate' this by runtest 10. As I understand it, we
are not sure if this correct as it touches state machine while it
isn't ready yet. What I understand we might need a new OpenOCD
function "wait 10 TCKs without touching anything".
* Once we have omap3530.cpu working correctly, we assume IdCode at IR
0xE. So we assume
irscan omap3530.cpu 0xe
drscan omap3530.cpu 32 0x0
returning a Coresight ID should be the final goal to prove that we can
access it.
* At the moment we discuss to get an better idea how the scan chain
might be configured after tapenable (didn't read last mail from Rick
yet). This is the discussion with 0x55aa55aa.
That's it for the moment.
Best regards
Dirk
-- cut --
> scan_chain
TapName | Enabled | IdCode Expected IrLen
IrCap IrMask Instr
---|--------------------|---------|------------|------------|------|------|------|--------
-
0 | omap3530.jrc | Y | 0x0b7ae02f | 0x0b7ae02f | 0x06 |
0x04 | 0x00 | 0x3f
1 | omap3530.cpu | n | 0x00000000 | 0xffffffff | 0x04 |
0x01 | 0x00 | 0x0f
> irscan omap3530.jrc 0
> drscan omap3530.jrc 32 0x0
00000000
> irscan omap3530.jrc 4
> drscan omap3530.jrc 32 0x0
0b7ae02f
> irscan omap3530.jrc 4
> drscan omap3530.jrc 32 0x55aa55aa
0b7ae02f
> jtag tapenable omap3530.cpu
Enabling Cortex-A8 @ OMAP3
Cortex-A8 @ OMAP3 enabled
1
> irscan omap3530.jrc 4
> drscan omap3530.jrc 32 0x0
00000000
> irscan omap3530.jrc 4
> drscan omap3530.jrc 32 0x55aa55aa
00000000
-- cut --
#TI OMAP3530 processor - http://www.ti.com
if { [info exists CHIPNAME] } {
set _CHIPNAME $CHIPNAME
} else {
set _CHIPNAME omap3530
}
if { [info exists ENDIAN] } {
set _ENDIAN $ENDIAN
} else {
# this defaults to a little endianness
set _ENDIAN little
}
if { [info exists CPUTAPID ] } {
set _CPUTAPID $CPUTAPID
} else {
# force an error till we get a good number
set _CPUTAPID 0xffffffff
}
#jtag scan chain
#jtag newtap $_CHIPNAME jrc -irlen 6 -ircapture 0x1 -irmask 0xf -expected-id
0x0b7ae02f
jtag newtap $_CHIPNAME jrc -irlen 6 -ircapture 0x4 -irmask 0x0 -expected-id
0x0b7ae02f
jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0x0 -expected-id
$_CPUTAPID -disable
#jtag configure $_CHIPNAME.cpu -event tap-enable {
# puts "Enabling Cortex-A8 @ OMAP3"
# irscan omap3530.jrc 7
# drscan omap3530.jrc 8 0x89
# irscan omap3530.jrc 2
# drscan omap3530.jrc 32 0x81000080
# drscan omap3530.jrc 32 0xa3002048
# drscan omap3530.jrc 32 0x81000081
# drscan omap3530.jrc 32 0xa3002148
# runtest 10
# puts "Cortex-A8 @ OMAP3 enabled"
#}
#jtag configure $_CHIPNAME.cpu -event tap-enable {
# puts "Enabling Cortex-A8 @ OMAP3"
# irscan omap3530.jrc 7
# drscan omap3530.jrc 8 0x89
# irscan omap3530.jrc 2
# drscan omap3530.jrc 32 0x81000080
# drscan omap3530.jrc 32 0xa3002048
# drscan omap3530.jrc 32 0x81002148
# drscan omap3530.jrc 32 0xa3002148
# runtest 10
# puts "Cortex-A8 @ OMAP3 enabled"
#}
jtag configure $_CHIPNAME.cpu -event tap-enable {
puts "Enabling Cortex-A8 @ OMAP3"
irscan omap3530.jrc 7
drscan omap3530.jrc 8 0x89
irscan omap3530.jrc 2
# Embed the port address 0x0f000000 value 3 ?
drscan omap3530.jrc 32 0xa3002108
runtest 10
puts "Cortex-A8 @ OMAP3 enabled"
}
#Basic configuration
telnet_port 4444
gdb_port 3333
#Interface
source [find interface/flyswatter.cfg]
#jtag scan chain
source [find target/omap3530.cfg]
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development