aboutsummaryrefslogtreecommitdiff
path: root/tcl
diff options
context:
space:
mode:
authorPeter Lawrence <majbthrd@gmail.com>2015-11-27 17:28:16 -0600
committerPaul Fertser <fercerpav@gmail.com>2016-12-08 12:22:07 +0000
commitab9d92490cf37fb4cbb394f85d7c8385474dff3f (patch)
treeda8a94e92ddeb10cf6021021e7435f273443800a /tcl
parent4732471b2e122357403fbcaa53fb712db0d8235e (diff)
tcl: Support for Analog Devices ADSP-SC58x
target tcl to enable debugging of ARM Cortex-A5 on ADSP-SC58x Change-Id: I378f8b94b7d6d6b9d0567985abc0e36aea7c8dea Signed-off-by: Peter Lawrence <majbthrd@gmail.com> Reviewed-on: http://openocd.zylin.com/3125 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
Diffstat (limited to 'tcl')
-rw-r--r--tcl/target/adsp-sc58x.cfg45
1 files changed, 45 insertions, 0 deletions
diff --git a/tcl/target/adsp-sc58x.cfg b/tcl/target/adsp-sc58x.cfg
new file mode 100644
index 00000000..369137ed
--- /dev/null
+++ b/tcl/target/adsp-sc58x.cfg
@@ -0,0 +1,45 @@
+# Analog Devices ADSP-SC58x (ARM Cortex-A5 plus one or two SHARC+ DSPs)
+
+# evaluation boards by Analog Devices (and designs derived from them) use a non-standard 10-pin 0.05" ARM Cortex Debug Connector
+# pin 9 (GND or GNDDetect) has been usurped with JTAG /TRST
+# as a result, a standards-compliant debug pod will only force the processor's debug interface into reset, preventing usage
+# so, a connector adapter must be employed on these boards to isolate or otherwise prevent /TRST from being asserted
+
+transport select swd
+source [find target/swj-dp.tcl]
+
+if { [info exists CHIPNAME] } {
+ set _CHIPNAME $CHIPNAME
+} else {
+ set _CHIPNAME ADSP-SC58x
+}
+
+if { [info exists ENDIAN] } {
+ set _ENDIAN $ENDIAN
+} else {
+ set _ENDIAN little
+}
+
+if { [info exists CPUTAPID] } {
+ set _CPUTAPID $CPUTAPID
+} else {
+ set _CPUTAPID 0x3BA02477
+}
+
+swj_newdap $_CHIPNAME cpu -expected-id $_CPUTAPID
+
+set _TARGETNAME $_CHIPNAME.cpu
+target create $_TARGETNAME cortex_a -endian $_ENDIAN -chain-position $_TARGETNAME
+
+$_TARGETNAME configure -event examine-end {
+ global _TARGETNAME
+ sc58x_enabledebug $_TARGETNAME
+}
+
+proc sc58x_enabledebug {target} {
+ # Enable debugging functionality by setting relevant bits in the TAPC_DBGCTL register
+ # the "phys" option is critical; the OpenOCD Cortex-A target code prevents normal mww when the target is not halted
+ # however, it is not possible to halt the target unless these register bits have been set
+ $target mww phys 0x31131000 0xFFFF
+}
+