blob: 4550b7e4baebf02a41673c219d2807cf3278ec78 [file] [log] [blame]
source [find target/swj-dp.tcl]
set _CHIPNAME Sydney
set _ENDIAN little
# JTAG IDCODE register
set _CPUTAPID 0x0BA01477
swj_newdap $_CHIPNAME cpu -expected-id $_CPUTAPID -irlen 4
set _TARGETNAME $_CHIPNAME.cpu
dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu
target create $_TARGETNAME cortex_m -dap $_CHIPNAME.dap
$_TARGETNAME configure -work-area-backup 1 -work-area-phys 0x20010000 -work-area-size 128
set _RESET_HARD_ON_EXIT 0
set _RESET_HARD_TIME 2000
if {[info exists ::env(FTDI_RESET_HARD_TIME)]} {
set _RESET_HARD_TIME $::env(FTDI_RESET_HARD_TIME)
puts "_RESET_HARD_TIME set to $_RESET_HARD_TIME"
}
rename exit orig_exit
proc exit {} {
poll off
# Deassert syspwrupreq and dbgpwrupreq
$::_CHIPNAME.dap dpreg 4 0x00000041
if {$::_RESET_HARD_ON_EXIT} {
set_reset
sleep $::_RESET_HARD_TIME
release_reset
}
orig_exit
}
reset_config none
cortex_m reset_config sysresetreq
proc reset_hard [list [list reset_time $_RESET_HARD_TIME] ] {
poll off
set_reset
sleep $reset_time
release_reset
sleep 100
poll on
}
proc polloff_n_reset_hard {} {
poll off
$::_CHIPNAME.dap dpreg 4 0x00000041
set_reset
sleep $::_RESET_HARD_TIME
release_reset
}