New reset_config options for SRST gating the JTAG clock (or not)
TAP declaration no longer requires ircapture and mask attributes
New "post-reset" event handler for TAP-invariant setup code
+ Overridable Tcl "init_reset" and "jtag_init" procedures
Target Layer:
New commands for use with Cortex-M3 processors:
reset halt
}
+
+# This reset logic may be overridden by board/target/... scripts as needed
+# to provide a reset that, if possible, is close to a power-up reset.
+#
+# Exit requirements include: (a) JTAG must be working, (b) the scan
+# chain was validated with "jtag arp_init" (or equivalent), (c) nothing
+# stays in reset. No TAP-specific scans were performed. It's OK if
+# some targets haven't been reset yet; they may need TAP-specific scans.
+#
+# The "mode" values include: halt, init, run (from "reset" command);
+# startup (at OpenOCD server startup, when JTAG may not yet work); and
+# potentially more (for reset types like cold, warm, etc)
+proc init_reset { mode } {
+ jtag arp_init-reset
+}
+
+
global in_process_reset
set in_process_reset 0
# Use TRST or TMS/TCK operations to reset all the tap controllers.
# TAP reset events get reported; they might enable some taps.
- #
- # REVISIT arp_init-reset pulses SRST (if it can) with TRST active;
- # but SRST events aren't reported (unlike "jtag arp_reset", below)
- jtag arp_init-reset
+ init_reset $MODE
# Examine all targets on enabled taps.
foreach t $targets {
}
-# Executed during "init". Can be implemented by target script
-# tar
+# Executed during "init". Can be overridden
+# by board/target/... scripts
proc jtag_init {} {
if {[catch {jtag arp_init} err]!=0} {
# try resetting additionally
- jtag arp_init-reset
+ init_reset startup
}
-}
\ No newline at end of file
+}