doc updates to match "help" better
This makes the documentation a closer match to "help" output: - "pathmove" somehow was not documented in the User's Guide - "jtag_nsrst_assert_width" and "jtag_ntrst_assert_width" are new; both needed descriptions. - Removed two undocumented and fairly useless script mechanisms: * production/production_info/production_test ... using it, requires replacing everything; so having it adds no value. * cpu ... way out of date; hopeless to keep that current Note that anyone using that "production" stuff already defines their own procedures, and can keep using them with no change. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>__archive__
parent
dd54981702
commit
bc792857a5
|
@ -2221,6 +2221,12 @@ needing to cope with both architecture and board specific constraints.
|
|||
|
||||
@section Commands for Handling Resets
|
||||
|
||||
@deffn {Command} jtag_nsrst_assert_width milliseconds
|
||||
Minimum amount of time (in milliseconds) OpenOCD should wait
|
||||
after asserting nSRST (active-low system reset) before
|
||||
allowing it to be deasserted.
|
||||
@end deffn
|
||||
|
||||
@deffn {Command} jtag_nsrst_delay milliseconds
|
||||
How long (in milliseconds) OpenOCD should wait after deasserting
|
||||
nSRST (active-low system reset) before starting new JTAG operations.
|
||||
|
@ -2228,6 +2234,12 @@ When a board has a reset button connected to SRST line it will
|
|||
probably have hardware debouncing, implying you should use this.
|
||||
@end deffn
|
||||
|
||||
@deffn {Command} jtag_ntrst_assert_width milliseconds
|
||||
Minimum amount of time (in milliseconds) OpenOCD should wait
|
||||
after asserting nTRST (active-low JTAG TAP reset) before
|
||||
allowing it to be deasserted.
|
||||
@end deffn
|
||||
|
||||
@deffn {Command} jtag_ntrst_delay milliseconds
|
||||
How long (in milliseconds) OpenOCD should wait after deasserting
|
||||
nTRST (active-low JTAG TAP reset) before starting new JTAG operations.
|
||||
|
@ -6075,6 +6087,15 @@ TAP @code{post-reset} events are delivered to all TAPs
|
|||
with handlers for that event.
|
||||
@end deffn
|
||||
|
||||
@deffn Command {pathmove} start_state [next_state ...]
|
||||
Start by moving to @var{start_state}, which
|
||||
must be one of the @emph{stable} states.
|
||||
Then, in a series of single state transitions
|
||||
(conforming to the JTAG state machine) shift to
|
||||
each @var{next_state} in sequence, one per TCK cycle.
|
||||
The final state must also be stable.
|
||||
@end deffn
|
||||
|
||||
@deffn Command {runtest} @var{num_cycles}
|
||||
Move to the @sc{run/idle} state, and execute at least
|
||||
@var{num_cycles} of the JTAG clock (TCK).
|
||||
|
@ -6102,23 +6123,30 @@ Default is enabled.
|
|||
@cindex TAP state names
|
||||
|
||||
The @var{tap_state} names used by OpenOCD in the @command{drscan},
|
||||
and @command{irscan} commands are:
|
||||
@command{irscan}, and @command{pathmove} commands are the same
|
||||
as those used in SVF boundary scan documents, except that some
|
||||
versions of SVF use @sc{idle} instead of @sc{run/idle}.
|
||||
|
||||
@itemize @bullet
|
||||
@item @b{RESET} ... acts as if TRST were pulsed
|
||||
@item @b{RUN/IDLE} ... don't assume this always means IDLE
|
||||
@item @b{RESET} ... @emph{stable} (with TMS high);
|
||||
acts as if TRST were pulsed
|
||||
@item @b{RUN/IDLE} ... @emph{stable}; don't assume this always means IDLE
|
||||
@item @b{DRSELECT}
|
||||
@item @b{DRCAPTURE}
|
||||
@item @b{DRSHIFT} ... TDI/TDO shifting through the data register
|
||||
@item @b{DRSHIFT} ... @emph{stable}; TDI/TDO shifting
|
||||
through the data register
|
||||
@item @b{DREXIT1}
|
||||
@item @b{DRPAUSE} ... data register ready for update or more shifting
|
||||
@item @b{DRPAUSE} ... @emph{stable}; data register ready
|
||||
for update or more shifting
|
||||
@item @b{DREXIT2}
|
||||
@item @b{DRUPDATE}
|
||||
@item @b{IRSELECT}
|
||||
@item @b{IRCAPTURE}
|
||||
@item @b{IRSHIFT} ... TDI/TDO shifting through the instruction register
|
||||
@item @b{IRSHIFT} ... @emph{stable}; TDI/TDO shifting
|
||||
through the instruction register
|
||||
@item @b{IREXIT1}
|
||||
@item @b{IRPAUSE} ... instruction register ready for update or more shifting
|
||||
@item @b{IRPAUSE} ... @emph{stable}; instruction register ready
|
||||
for update or more shifting
|
||||
@item @b{IREXIT2}
|
||||
@item @b{IRUPDATE}
|
||||
@end itemize
|
||||
|
|
|
@ -291,59 +291,10 @@ proc ocd_process_reset_inner { MODE } {
|
|||
}
|
||||
}
|
||||
|
||||
# stubs for targets scripts that do not have production procedure
|
||||
proc production_info {} {
|
||||
return "Imagine an explanation here..."
|
||||
}
|
||||
add_help_text production_info "Displays information on production procedure for target script. Implement this procedure in target script."
|
||||
#########
|
||||
|
||||
proc production {firmwarefile serialnumber} {
|
||||
puts "Imagine production procedure running successfully. Programmed $firmwarefile with serial number $serialnumber"
|
||||
}
|
||||
|
||||
add_help_text production "<serialnumber> - Runs production procedure. Throws exception if procedure failed. Prints progress messages. Implement this procedure in the target script."
|
||||
|
||||
proc production_test {} {
|
||||
puts "Imagine nifty test procedure having run to completion here."
|
||||
}
|
||||
add_help_text production_test "Runs test procedure. Throws exception if procedure failed. Prints progress messages. Implement in target script."
|
||||
|
||||
add_help_text cpu "<name> - prints out target options and a comment on CPU which matches name"
|
||||
|
||||
# A list of names of CPU and options required
|
||||
set ocd_cpu_list {
|
||||
{
|
||||
name IXP42x
|
||||
options {xscale -variant IXP42x}
|
||||
comment {IXP42x cpu}
|
||||
}
|
||||
{
|
||||
name arm7
|
||||
options {arm7tdmi -variant arm7tdmi}
|
||||
comment {vanilla ARM7}
|
||||
}
|
||||
}
|
||||
|
||||
# Invoked from Tcl code
|
||||
proc ocd_cpu {args} {
|
||||
set name $args
|
||||
set result ""
|
||||
global ocd_cpu_list
|
||||
foreach a [lsort $ocd_cpu_list] {
|
||||
if {[string length $args]==0||[string first [string toupper $name] [string toupper "$a(name)$a(options)$a(comment)"]]!=-1} {
|
||||
lappend result $a
|
||||
}
|
||||
}
|
||||
return $result
|
||||
}
|
||||
|
||||
proc cpu {args} {
|
||||
# 0123456789012345678901234567890123456789012345678901234567890123456789
|
||||
puts "CPU Options Comment"
|
||||
foreach a [lsort [ocd_cpu $args]] {
|
||||
puts [format "%-20s%-40s%s" $a(name) $a(options) $a(comment)]
|
||||
}
|
||||
}
|
||||
# REVISIT power_restore, power_dropout, srst_deasserted, srst_asserted
|
||||
# are currently neither documented nor supported except on ZY1000.
|
||||
|
||||
proc power_restore {} {
|
||||
puts "Sensed power restore."
|
||||
|
@ -366,6 +317,8 @@ proc srst_asserted {} {
|
|||
puts "Sensed nSRST asserted."
|
||||
}
|
||||
|
||||
#########
|
||||
|
||||
# catch any exceptions, capture output and return output
|
||||
proc capture_catch {a} {
|
||||
catch {
|
||||
|
|
Loading…
Reference in New Issue