Ok,
I am trying to make the files described below. And have gotten along
fine, but have found the following problem.
The first time my script executes after a reset of the beagle:
dap apsel 1
openocd halts with an error, thus: (at -d 3)
Fails:
Debug: 166 1139 arm_adi_v5.c:242 swjdp_transaction_endcheck(): swjdp:
CTRL/STAT error 0x20
Debug: 167 1139 arm_adi_v5.c:951 ahbap_debugport_init():
Debug: 168 1146 arm_adi_v5.c:996 ahbap_debugport_init(): AHB-AP ID
Register 0x4770002, Debug ROM Address 0x80000000
User : 169 1146 command.c:383 command_print(): ap 1 selected,
identification register 0x00000000
Debug: 170 1146 command.c:427 run_command(): Command failed with error
code -107
The second time I execute:
dap apsel 1
it works, thus (also at - d 3):
Works:
Debug: 163 1134 command.c:91 script_command(): script_command - apsel
Debug: 164 1134 command.c:108 script_command(): script_command - apsel,
argv[0]=ocd_dap_apsel
Debug: 165 1134 command.c:108 script_command(): script_command - apsel,
argv[1]=1
User : 166 1139 command.c:383 command_print(): ap 1 selected,
identification register 0x04770002
I have tracked the fault to the processing that follows (lines 239 to
247 of arm_adi_v5.c:
/* Check for STICKYERR and STICKYORUN */
if (ctrlstat & (SSTICKYORUN | SSTICKYERR))
{
LOG_DEBUG("swjdp: CTRL/STAT error 0x%x", ctrlstat);
/* Check power to debug regions */
if ((ctrlstat & 0xf0000000) != 0xf0000000)
{
ahbap_debugport_init(swjdp);
That is the path it executes. If I change this code by simply returning
the status of the ahbap_debugport_init(... command, openocd doesnt
halt. but it prints the following (which is clearly still wrong):
Debug: 166 1134 arm_adi_v5.c:242 swjdp_transaction_endcheck(): swjdp:
CTRL/STAT error 0x20
Debug: 167 1134 arm_adi_v5.c:951 ahbap_debugport_init():
Debug: 168 1143 arm_adi_v5.c:996 ahbap_debugport_init(): AHB-AP ID
Register 0x4770002, Debug ROM Address 0x80000000
User : 169 1143 command.c:383 command_print(): ap 1 selected,
identification register 0x00000000
I then immediately execute dap apsel 1 again, which returns with the
expected result
Debug: 177 2143 command.c:91 script_command(): script_command - apsel
Debug: 178 2143 command.c:108 script_command(): script_command - apsel,
argv[0]=ocd_dap_apsel
Debug: 179 2143 command.c:108 script_command(): script_command - apsel,
argv[1]=1
User : 180 2150 command.c:383 command_print(): ap 1 selected,
identification register 0x04770002
So it would appear that the ahbap_debugport_init function is working
correctly, its just that its results do not get out, so that dap apsel 1
reports a correct result, the first time it is called.
any ideas?
Attached are my config script and tcl script for reference
Strontium
Magnus Lundin wrote:
Dirk Behme wrote:
Btw.: Is there an option or a possibility to run a script when I
connect e.g. by telnet?
I'm a little tired to always type the commands
jtag tapenable omap3.cpu
target create omap3.cpu cortex_a8 -endian little -chain-position
omap3.cpu
dap apsel 1
omap3.cpu mww 0x54011FB0 0xC5ACCE55 4
omap3.cpu mdw 0x54011314
omap3.cpu mdw 0x54011314
manually.
Yes, we will put this in the target support but for now I suggest to use
a Tcl script.
[ This is true, but not tested ]
- create a file omap.tcl
- put "source [ <path.../>omap.tcl" in your cfg file
Now define some handy procedures in the omap.tcl file:
proc dbginit { } {
dap apsel 1
omap3.cpu mww 0x54011FB0 0xC5ACCE55 4
omap3.cpu mdw 0x54011314
omap3.cpu mdw 0x54011314
}
Now just giving the command dbginit should do the trick.
If you edit the script you can rerun the source command without
restarting openocd
Then we can collect Tcl procedures for different debug activities before
we code into the C, we can actually test a large part of the A8 and OMAP
support just with tcl scripts.
Regards,
Magnus
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development
proc dbginit { } {
version
jtag tapenable omap3.cpu
target create omap3.cpu cortex_a8 -endian little -chain-position omap3.cpu
targets
sleep 1000
dap apsel 1
sleep 1000
dap apsel 1
dap info 1
omap3.cpu mww 0x54011FB0 0xC5ACCE55 4
omap3.cpu mdw 0x54011314
omap3.cpu mdw 0x54011314
omap3.cpu mdw 0x54011080 4
}
# Change this to point to your particular interface
source [find interface/flyswatter.cfg]
source [find board/ti_beagleboard.cfg]
source [find omap.tcl]
init
#reset halt
dbginit
shutdown
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development