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

Reply via email to