AM335x: allow simultaneous debugging of A8 and M3 cores
This patch fixes the tap order so that it matches the actual jtag chain when all taps are enabled. It also introduces a variable DEFAULT_TAPS that can be set outside of this script, e.g. on the command line, to specify which taps are to be enabled on init. Lastly, a new debug target "am335x.m3" is added so that the Wakeup-M3 can be selected for debugging. Change-Id: Iccf177fda8d5e3737b1b2bb8fd1eaa7d3262ed9f Signed-off-by: Matthias Welwarsky <matthias@welwarsky.de> Reviewed-on: http://openocd.zylin.com/3013 Tested-by: jenkins Reviewed-by: Paul Fertser <fercerpav@gmail.com>
This commit is contained in:
parent
b8be5de75d
commit
0627bc3b43
|
@ -1,11 +1,31 @@
|
|||
source [find target/icepick.cfg]
|
||||
|
||||
if { [info exists CHIPNAME] } {
|
||||
set _CHIPNAME $CHIPNAME
|
||||
set _CHIPNAME $CHIPNAME
|
||||
} else {
|
||||
set _CHIPNAME am335x
|
||||
set _CHIPNAME am335x
|
||||
}
|
||||
|
||||
# set the taps to be enabled by default. this can be overridden
|
||||
# by setting DEFAULT_TAPS in a separate configuration file
|
||||
# or directly on the command line.
|
||||
if { [info exists DEFAULT_TAPS] } {
|
||||
set _DEFAULT_TAPS "$DEFAULT_TAPS"
|
||||
} else {
|
||||
set _DEFAULT_TAPS "$_CHIPNAME.dap"
|
||||
}
|
||||
|
||||
#
|
||||
# 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 0"
|
||||
|
||||
#
|
||||
# M3 DAP
|
||||
#
|
||||
|
@ -17,30 +37,37 @@ if { [info exists M3_DAP_TAPID] } {
|
|||
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 0"
|
||||
|
||||
#
|
||||
# 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 0"
|
||||
|
||||
#
|
||||
# ICEpick-D (JTAG route controller)
|
||||
#
|
||||
if { [info exists JRC_TAPID] } {
|
||||
set _JRC_TAPID $JRC_TAPID
|
||||
set _JRC_TAPID $JRC_TAPID
|
||||
} else {
|
||||
set _JRC_TAPID 0x0b94402f
|
||||
set _JRC_TAPID 0x0b94402f
|
||||
}
|
||||
jtag newtap $_CHIPNAME jrc -irlen 6 -ircapture 0x1 -irmask 0x3f -expected-id $_JRC_TAPID -ignore-version
|
||||
jtag configure $_CHIPNAME.jrc -event setup "jtag tapenable $_CHIPNAME.dap"
|
||||
jtag configure $_CHIPNAME.jrc -event setup {
|
||||
global _DEFAULT_TAPS
|
||||
enable_default_taps $_DEFAULT_TAPS
|
||||
}
|
||||
# some TCK tycles are required to activate the DEBUG power domain
|
||||
jtag configure $_CHIPNAME.jrc -event post-reset "runtest 100"
|
||||
|
||||
#
|
||||
# helper function that enables all taps passed as argument
|
||||
#
|
||||
proc enable_default_taps { taps } {
|
||||
foreach tap $taps {
|
||||
jtag tapenable $tap
|
||||
}
|
||||
}
|
||||
|
||||
#
|
||||
# Cortex M3 target
|
||||
#
|
||||
set _TARGETNAME_2 $_CHIPNAME.m3
|
||||
target create $_TARGETNAME_2 cortex_m -chain-position $_CHIPNAME.m3_dap
|
||||
|
||||
#
|
||||
# Cortex A8 target
|
||||
#
|
||||
|
|
Loading…
Reference in New Issue