X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=tcl%2Ftarget%2Fem357.cfg;h=5720071343e51132fddec6689d6390b1db84fe49;hb=3605cb96252efb4644924f1c1357a1ea122c6390;hp=f44b2985aa6a745447aee8c9d278242d3ecd9ac6;hpb=18d6c0b02bf5e1318d5f5484b5ba68b476a418f0;p=openocd.git diff --git a/tcl/target/em357.cfg b/tcl/target/em357.cfg index f44b2985aa..5720071343 100644 --- a/tcl/target/em357.cfg +++ b/tcl/target/em357.cfg @@ -34,7 +34,7 @@ if { [info exists CPUTAPID] } { if { [info exists BSTAPID] } { set _BSTAPID $BSTAPID } else { - set _BSTAPID 0x069aa62b + set _BSTAPID 0x069a962b } if { [info exists CHIPNAME] } { @@ -50,12 +50,13 @@ if { [info exists FLASHSIZE] } { } swj_newdap $_CHIPNAME cpu -irlen 4 -expected-id $_CPUTAPID +dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu if { [using_jtag] } { swj_newdap $_CHIPNAME bs -irlen 4 -expected-id $_BSTAPID -ircapture 0xe -irmask 0xf } set _TARGETNAME $_CHIPNAME.cpu -target create $_TARGETNAME cortex_m -endian little -chain-position $_TARGETNAME +target create $_TARGETNAME cortex_m -endian little -dap $_CHIPNAME.dap $_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0 @@ -63,5 +64,14 @@ set _FLASHNAME $_CHIPNAME.flash flash bank $_FLASHNAME em357 0x08000000 $_FLASHSIZE 0 0 $_TARGETNAME if { ![using_hla]} { - cortex_m reset_config sysresetreq +# according to errata, we need to use vectreset rather than sysresetreq to avoid lockup +# There is a bug in the chip, which means that when using external debuggers the chip +# may lock up in certain CPU clock modes. Affected modes are operating the CPU at +# 24MHz derived from the 24MHz crystal, or 12MHz derived from the high frequency RC +# oscillator. If an external debugger tool asserts SYSRESETREQ, the chip will lock up and +# require a pin reset or power cycle. +# +# for details, refer to: +# http://www.silabs.com/Support%20Documents/TechnicalDocs/EM35x-Errata.pdf + cortex_m reset_config vectreset }