aboutsummaryrefslogtreecommitdiff
path: root/tcl
diff options
context:
space:
mode:
authorNeil Jensen <neil30al@gmail.com>2012-02-24 16:49:07 -0600
committerSpencer Oliver <spen@spen-soft.co.uk>2012-02-27 10:01:44 +0000
commit21a0f9b48b1694425244b1540012767c443dc16f (patch)
treed1b38cffab308d14993be61d84101db10391200b /tcl
parent3a7ca6a6212304dbc794e1f6935e72571d198595 (diff)
downloadriscv-openocd-21a0f9b48b1694425244b1540012767c443dc16f.zip
riscv-openocd-21a0f9b48b1694425244b1540012767c443dc16f.tar.gz
riscv-openocd-21a0f9b48b1694425244b1540012767c443dc16f.tar.bz2
cfg: Beaglebone/AM335x refactor
Split out functions specific to the AM335x SOC into the target directory and simplified the board config file. This should allow one to quickly create new configs for boards based on the TI processor family. Change-Id: I0c3db97950dfa832f1f1918fc10c180f068bba74 Signed-off-by: Neil Jensen <neil30al@gmail.com> Reviewed-on: http://openocd.zylin.com/489 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Diffstat (limited to 'tcl')
-rw-r--r--tcl/board/ti_beaglebone.cfg80
-rw-r--r--tcl/target/am335x.cfg76
2 files changed, 82 insertions, 74 deletions
diff --git a/tcl/board/ti_beaglebone.cfg b/tcl/board/ti_beaglebone.cfg
index dffb07f..be4da20 100644
--- a/tcl/board/ti_beaglebone.cfg
+++ b/tcl/board/ti_beaglebone.cfg
@@ -1,3 +1,7 @@
+# AM335x Beaglebone
+# http://beagleboard.org/bone
+
+# The JTAG interface is built directly on the board.
interface ft2232
#ft2232_device_desc "BeagleBone A"
ft2232_layout xds100v2
@@ -5,80 +9,8 @@ ft2232_vid_pid 0x0403 0xa6d0
adapter_khz 16000
-reset_config trst_and_srst
-
-
-
-
-if { [info exists CHIPNAME] } {
- set _CHIPNAME $CHIPNAME
-} else {
- set _CHIPNAME am335x
-}
-
-proc icepick_d_tapenable {jrc port} {
- # select router
- irscan $jrc 7 -endstate IRPAUSE
- drscan $jrc 8 0x89 -endstate DRPAUSE
-
- # set ip control
- irscan $jrc 2 -endstate IRPAUSE
- drscan $jrc 32 [expr 0xa0002108 + ($port << 24)] -endstate DRPAUSE
+source [find target/am335x.cfg]
- # for icepick_D
- irscan $jrc 2 -endstate IRPAUSE
- drscan $jrc 32 0xe0002008 -endstate DRPAUSE
-
- irscan $jrc 0x3F -endstate RUN/IDLE
- runtest 10
-}
-
-#
-# M3 DAP
-#
-if { [info exists M3_DAP_TAPID] } {
- set _M3_DAP_TAPID $M3_DAP_TAPID
-} else {
- set _M3_DAP_TAPID 0x4b6b902f
-}
-jtag newtap $_CHIPNAME m3_dap -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_M3_DAP_TAPID -disable
-jtag configure $_CHIPNAME.m3_dap -event tap-enable "icepick_d_tapenable $_CHIPNAME.jrc 11"
-
-#
-# Main DAP
-#
-if { [info exists DAP_TAPID ] } {
- set _DAP_TAPID $DAP_TAPID
-} else {
- set _DAP_TAPID 0x4b6b902f
-}
-jtag newtap $_CHIPNAME dap -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_DAP_TAPID -disable
-jtag configure $_CHIPNAME.dap -event tap-enable "icepick_d_tapenable $_CHIPNAME.jrc 12"
-
-#
-# ICEpick-D (JTAG route controller)
-#
-if { [info exists JRC_TAPID ] } {
- set _JRC_TAPID $JRC_TAPID
-} else {
- set _JRC_TAPID 0x0b94402f
-}
-jtag newtap $_CHIPNAME jrc -irlen 6 -ircapture 0x1 -irmask 0x3f -expected-id $_JRC_TAPID
-jtag configure $_CHIPNAME.jrc -event setup "jtag tapenable $_CHIPNAME.dap"
-# some TCK tycles are required to activate the DEBUG power domain
-jtag configure $_CHIPNAME.jrc -event post-reset "runtest 100"
-
-#
-# Cortex A8 target
-#
-set _TARGETNAME $_CHIPNAME.cpu
-target create $_TARGETNAME cortex_a8 -chain-position $_CHIPNAME.dap -dbgbase 0x80001000
-
-# SRAM: 64K at 0x4030.0000; use the first 16K
-$_TARGETNAME configure -work-area-phys 0x40300000 -work-area-size 0x4000
+reset_config trst_and_srst
-$_TARGETNAME configure -event gdb-attach {
- cortex_a8 dbginit
- halt
-}
diff --git a/tcl/target/am335x.cfg b/tcl/target/am335x.cfg
new file mode 100644
index 0000000..99693dc
--- /dev/null
+++ b/tcl/target/am335x.cfg
@@ -0,0 +1,76 @@
+
+if { [info exists CHIPNAME] } {
+ set _CHIPNAME $CHIPNAME
+} else {
+ set _CHIPNAME am335x
+}
+
+# This chip contains an IcePick-D JTAG router. The IcePick-C configuration is almost
+# compatible, but it doesn't work. For now, we will just embed the IcePick-D
+# routines here.
+proc icepick_d_tapenable {jrc port} {
+ # select router
+ irscan $jrc 7 -endstate IRPAUSE
+ drscan $jrc 8 0x89 -endstate DRPAUSE
+
+ # set ip control
+ irscan $jrc 2 -endstate IRPAUSE
+ drscan $jrc 32 [expr 0xa0002108 + ($port << 24)] -endstate DRPAUSE
+
+ # for icepick_D
+ irscan $jrc 2 -endstate IRPAUSE
+ drscan $jrc 32 0xe0002008 -endstate DRPAUSE
+
+ irscan $jrc 0x3F -endstate RUN/IDLE
+ runtest 10
+}
+
+#
+# M3 DAP
+#
+if { [info exists M3_DAP_TAPID] } {
+ set _M3_DAP_TAPID $M3_DAP_TAPID
+} else {
+ set _M3_DAP_TAPID 0x4b6b902f
+}
+jtag newtap $_CHIPNAME m3_dap -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_M3_DAP_TAPID -disable
+jtag configure $_CHIPNAME.m3_dap -event tap-enable "icepick_d_tapenable $_CHIPNAME.jrc 11"
+
+#
+# Main DAP
+#
+if { [info exists DAP_TAPID ] } {
+ set _DAP_TAPID $DAP_TAPID
+} else {
+ set _DAP_TAPID 0x4b6b902f
+}
+jtag newtap $_CHIPNAME dap -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_DAP_TAPID -disable
+jtag configure $_CHIPNAME.dap -event tap-enable "icepick_d_tapenable $_CHIPNAME.jrc 12"
+
+#
+# ICEpick-D (JTAG route controller)
+#
+if { [info exists JRC_TAPID ] } {
+ set _JRC_TAPID $JRC_TAPID
+} else {
+ set _JRC_TAPID 0x0b94402f
+}
+jtag newtap $_CHIPNAME jrc -irlen 6 -ircapture 0x1 -irmask 0x3f -expected-id $_JRC_TAPID
+jtag configure $_CHIPNAME.jrc -event setup "jtag tapenable $_CHIPNAME.dap"
+# some TCK tycles are required to activate the DEBUG power domain
+jtag configure $_CHIPNAME.jrc -event post-reset "runtest 100"
+
+#
+# Cortex A8 target
+#
+set _TARGETNAME $_CHIPNAME.cpu
+target create $_TARGETNAME cortex_a8 -chain-position $_CHIPNAME.dap -dbgbase 0x80001000
+
+# SRAM: 64K at 0x4030.0000; use the first 16K
+$_TARGETNAME configure -work-area-phys 0x40300000 -work-area-size 0x4000
+
+$_TARGETNAME configure -event gdb-attach {
+ cortex_a8 dbginit
+ halt
+}
+