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
|
@ -6,16 +6,14 @@ if { [info exists CHIPNAME] } {
|
||||||
set _CHIPNAME am335x
|
set _CHIPNAME am335x
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
# set the taps to be enabled by default. this can be overridden
|
||||||
# M3 DAP
|
# by setting DEFAULT_TAPS in a separate configuration file
|
||||||
#
|
# or directly on the command line.
|
||||||
if { [info exists M3_DAP_TAPID] } {
|
if { [info exists DEFAULT_TAPS] } {
|
||||||
set _M3_DAP_TAPID $M3_DAP_TAPID
|
set _DEFAULT_TAPS "$DEFAULT_TAPS"
|
||||||
} else {
|
} else {
|
||||||
set _M3_DAP_TAPID 0x4b6b902f
|
set _DEFAULT_TAPS "$_CHIPNAME.dap"
|
||||||
}
|
}
|
||||||
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
|
# Main DAP
|
||||||
|
@ -28,6 +26,17 @@ if { [info exists DAP_TAPID] } {
|
||||||
jtag newtap $_CHIPNAME dap -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_DAP_TAPID -disable
|
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"
|
jtag configure $_CHIPNAME.dap -event tap-enable "icepick_d_tapenable $_CHIPNAME.jrc 12 0"
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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 0"
|
||||||
|
|
||||||
#
|
#
|
||||||
# ICEpick-D (JTAG route controller)
|
# ICEpick-D (JTAG route controller)
|
||||||
#
|
#
|
||||||
|
@ -37,10 +46,28 @@ if { [info exists JRC_TAPID] } {
|
||||||
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 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
|
# some TCK tycles are required to activate the DEBUG power domain
|
||||||
jtag configure $_CHIPNAME.jrc -event post-reset "runtest 100"
|
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
|
# Cortex A8 target
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in New Issue