Magnus Lundin wrote:
> Good observations, 
> 
> - The error reporting and handling for memory read/write errors is 
> incomplete, this ia general problem, well know but it only occurs when 
> things are broken anyway.
> 
> - The cortex-a 8 code is  incomplete, we know that,  you have found the 
> "missing target_examine" function where ahbap_debugport_init should be 
> called.

I would bet that the 'call first dap apsel 1 two times to work 
properly' issue is with using cortex m3, too. I.e. if I remember 
correctly it fails, too, when we use complete (?) cortex m3 code (like 
we did until yesterday).

Best regards

Dirk

> Strontium wrote:
>> 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
>>>
>>>   
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Openocd-development mailing list
>> Openocd-development@lists.berlios.de
>> https://lists.berlios.de/mailman/listinfo/openocd-development
>>   
> 
> _______________________________________________
> Openocd-development mailing list
> Openocd-development@lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/openocd-development
> 

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

Reply via email to