Hello,

I noticed a problem in following configuration : 2 cortex_a8 on the same tap 
"or dap".

jtag newtap $_CHIPNAME dap -irlen 4 -ircapture 0xe -irmask 0xf -expected-id 
$_CPUTAPID

target create $_TARGETNAME_1 cortex_a8 -chain-position $_CHIPNAME.dap -dbgbase 
$_DAP_DBG1 -coreid 0

target create $_TARGETNAME_2 cortex_a8 -chain-position $_CHIPNAME.dap -dbgbase 
$_DAP_DBG2 -coreid 1


Currently  2 instances of (struct adiv5_dap ) are created (each instance is 
part of struct cortex_a8_common)
While the access is performed , the latest values present in the dap instance 
performing the access are used (unless dap_ap_select triggered the reset of 
these value following a reselection of ap bank)

When access from different target are interleaved ,  a wrongly configured 
access is attempted...

Therefore , I propose 2 corrections the 1st one is the attached patch.
The second one is not yet available and has a larger impact.
but the principle is as follow :
a single dap instance is created inside the tap instance (struct jtag_tap)  , 
and this dap instance is retrieved
for cortex_a8  initialization, any other devices connected to this dap.

Best Regards

michel





Attachment: 0001-arm_adi_v5-solve-dap-instance-conflict-access-on-sam.patch
Description: 0001-arm_adi_v5-solve-dap-instance-conflict-access-on-sam.patch

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

Reply via email to