Add IPDBG JtagHost functionality to OpenOCD
[openocd.git] / doc / openocd.texi
index 247938fae684e92cd2f29b2ebd781d5c2f3b50bd..6614f4832fb5e57f91c4ab123fb5f27591170ede 100644 (file)
@@ -2063,7 +2063,7 @@ a target has been successfully instantiated.
 If you want to use those commands, you may need to force
 entry to the run stage.
 
-@deffn {Config Command} init
+@deffn {Config Command} {init}
 This command terminates the configuration stage and
 enters the run stage. This helps when you need to have
 the startup scripts manage tasks such as resetting the target,
@@ -2082,7 +2082,7 @@ read/write memory on your target, @command{init} must occur before
 the memory read/write commands. This includes @command{nand probe}.
 @end deffn
 
-@deffn {Overridable Procedure} jtag_init
+@deffn {Overridable Procedure} {jtag_init}
 This is invoked at server startup to verify that it can talk
 to the scan chain (list of TAPs) which has been configured.
 
@@ -2115,7 +2115,7 @@ If you disable all access through TCP/IP, you will need to
 use the command line @option{-pipe} option.
 
 @anchor{gdb_port}
-@deffn {Command} gdb_port [number]
+@deffn {Config Command} {gdb_port} [number]
 @cindex GDB server
 Normally gdb listens to a TCP/IP port, but GDB can also
 communicate via pipes(stdin/out or named pipes). The name
@@ -2148,7 +2148,7 @@ gdb (with 'set remotetimeout') is recommended. An insufficient timeout may
 cause initialization to fail with "Unknown remote qXfer reply: OK".
 @end deffn
 
-@deffn {Command} tcl_port [number]
+@deffn {Config Command} {tcl_port} [number]
 Specify or query the port used for a simplified RPC
 connection that can be used by clients to issue TCL commands and get the
 output from the Tcl engine.
@@ -2158,7 +2158,7 @@ the port @var{number} defaults to 6666.
 When specified as "disabled", this service is not activated.
 @end deffn
 
-@deffn {Command} telnet_port [number]
+@deffn {Config Command} {telnet_port} [number]
 Specify or query the
 port on which to listen for incoming telnet connections.
 This port is intended for interaction with one human through TCL commands.
@@ -2177,7 +2177,7 @@ The ones listed here are static and global.
 @xref{targetevents,,Target Events}, about configuring target-specific event handling.
 
 @anchor{gdbbreakpointoverride}
-@deffn {Command} gdb_breakpoint_override [@option{hard}|@option{soft}|@option{disable}]
+@deffn {Command} {gdb_breakpoint_override} [@option{hard}|@option{soft}|@option{disable}]
 Force breakpoint type for gdb @command{break} commands.
 This option supports GDB GUIs which don't
 distinguish hard versus soft breakpoints, if the default OpenOCD and
@@ -2186,13 +2186,13 @@ breakpoints if the memory map has been set up for flash regions.
 @end deffn
 
 @anchor{gdbflashprogram}
-@deffn {Config Command} gdb_flash_program (@option{enable}|@option{disable})
+@deffn {Config Command} {gdb_flash_program} (@option{enable}|@option{disable})
 Set to @option{enable} to cause OpenOCD to program the flash memory when a
 vFlash packet is received.
 The default behaviour is @option{enable}.
 @end deffn
 
-@deffn {Config Command} gdb_memory_map (@option{enable}|@option{disable})
+@deffn {Config Command} {gdb_memory_map} (@option{enable}|@option{disable})
 Set to @option{enable} to cause OpenOCD to send the memory configuration to GDB when
 requested. GDB will then know when to set hardware breakpoints, and program flash
 using the GDB load command. @command{gdb_flash_program enable} must also be enabled
@@ -2201,26 +2201,26 @@ Default behaviour is @option{enable}.
 @xref{gdbflashprogram,,gdb_flash_program}.
 @end deffn
 
-@deffn {Config Command} gdb_report_data_abort (@option{enable}|@option{disable})
+@deffn {Config Command} {gdb_report_data_abort} (@option{enable}|@option{disable})
 Specifies whether data aborts cause an error to be reported
 by GDB memory read packets.
 The default behaviour is @option{disable};
 use @option{enable} see these errors reported.
 @end deffn
 
-@deffn {Config Command} gdb_report_register_access_error (@option{enable}|@option{disable})
+@deffn {Config Command} {gdb_report_register_access_error} (@option{enable}|@option{disable})
 Specifies whether register accesses requested by GDB register read/write
 packets report errors or not.
 The default behaviour is @option{disable};
 use @option{enable} see these errors reported.
 @end deffn
 
-@deffn {Config Command} gdb_target_description (@option{enable}|@option{disable})
+@deffn {Config Command} {gdb_target_description} (@option{enable}|@option{disable})
 Set to @option{enable} to cause OpenOCD to send the target descriptions to gdb via qXfer:features:read packet.
 The default behaviour is @option{enable}.
 @end deffn
 
-@deffn {Command} gdb_save_tdesc
+@deffn {Command} {gdb_save_tdesc}
 Saves the target description file to the local file system.
 
 The file name is @i{target_name}.xml.
@@ -2265,7 +2265,7 @@ to the various active targets.
 There is a command to manage and monitor that polling,
 which is normally done in the background.
 
-@deffn {Command} poll [@option{on}|@option{off}]
+@deffn {Command} {poll} [@option{on}|@option{off}]
 Poll the current target for its current state.
 (Also, @pxref{targetcurstate,,target curstate}.)
 If that target is in debug mode, architecture
@@ -2343,7 +2343,7 @@ target.
 List the debug adapter drivers that have been built into
 the running copy of OpenOCD.
 @end deffn
-@deffn {Command} {adapter transports} transport_name+
+@deffn {Config Command} {adapter transports} transport_name+
 Specifies the transports supported by this debug adapter.
 The adapter driver builds-in similar knowledge; use this only
 when external configuration (such as jumpering) changes what
@@ -2357,7 +2357,7 @@ Returns the name of the debug adapter driver being used.
 @end deffn
 
 @anchor{adapter_usb_location}
-@deffn {Command} {adapter usb location} [<bus>-<port>[.<port>]...]
+@deffn {Config Command} {adapter usb location} [<bus>-<port>[.<port>]...]
 Displays or specifies the physical USB port of the adapter to use. The path
 roots at @var{bus} and walks down the physical ports, with each
 @var{port} option specifying a deeper level in the bus topology, the last
@@ -2383,7 +2383,7 @@ Specifies either the address of the I/O port (default: 0x378 for LPT1) or
 the number of the @file{/dev/parport} device.
 @end deffn
 
-@deffn {Config Command} rtck [@option{enable}|@option{disable}]
+@deffn {Config Command} {rtck} [@option{enable}|@option{disable}]
 Displays status of RTCK option.
 Optionally sets that option first.
 @end deffn
@@ -2517,19 +2517,6 @@ If not specified, serial numbers are not considered.
 and are not restricted to containing only decimal digits.)
 @end deffn
 
-@deffn {Config Command} {ftdi_location} <bus>-<port>[.<port>]...
-@emph{DEPRECATED -- avoid using this.
-Use the command @ref{adapter_usb_location,,adapter usb location} instead.}
-
-Specifies the physical USB port of the adapter to use. The path
-roots at @var{bus} and walks down the physical ports, with each
-@var{port} option specifying a deeper level in the bus topology, the last
-@var{port} denoting where the target adapter is actually plugged.
-The USB bus topology can be queried with the command @emph{lsusb -t}.
-
-This command is only available if your libusb1 is at least version 1.0.16.
-@end deffn
-
 @deffn {Config Command} {ftdi_channel} channel
 Selects the channel of the FTDI device to use for MPSSE operations. Most
 adapters use the default, channel 0, but there are exceptions.
@@ -2544,7 +2531,7 @@ minimal impact on the target system. Avoid floating inputs, conflicting outputs
 and initially asserted reset signals.
 @end deffn
 
-@deffn {Config Command} {ftdi_layout_signal} name [@option{-data}|@option{-ndata} data_mask] [@option{-input}|@option{-ninput} input_mask] [@option{-oe}|@option{-noe} oe_mask] [@option{-alias}|@option{-nalias} name]
+@deffn {Command} {ftdi_layout_signal} name [@option{-data}|@option{-ndata} data_mask] [@option{-input}|@option{-ninput} input_mask] [@option{-oe}|@option{-noe} oe_mask] [@option{-alias}|@option{-nalias} name]
 Creates a signal with the specified @var{name}, controlled by one or more FTDI
 GPIO pins via a range of possible buffer connections. The masks are FTDI GPIO
 register bitmasks to tell the driver the connection and type of the output
@@ -2775,13 +2762,13 @@ reset_config srst_only
 @end example
 @end deffn
 
-@deffn {Command} {usb_blaster_lowlevel_driver} (@option{ftdi}|@option{ublast2})
+@deffn {Config Command} {usb_blaster_lowlevel_driver} (@option{ftdi}|@option{ublast2})
 Chooses the low level access method for the adapter. If not specified,
 @option{ftdi} is selected unless it wasn't enabled during the
 configure stage. USB-Blaster II needs @option{ublast2}.
 @end deffn
 
-@deffn {Command} {usb_blaster_firmware} @var{path}
+@deffn {Config Command} {usb_blaster_firmware} @var{path}
 This command specifies @var{path} to access USB-Blaster II firmware
 image. To be used with USB-Blaster II only.
 @end deffn
@@ -2873,7 +2860,7 @@ The following example shows how to read 4 bytes from the EMUCOM channel 0x0:
 77a90000
 @end example
 @end deffn
-@deffn {Config} {jlink usb} <@option{0} to @option{3}>
+@deffn {Config Command} {jlink usb} <@option{0} to @option{3}>
 Set the USB address of the interface, in case more than one adapter is connected
 to the host. If not specified, USB addresses are not considered. Device
 selection via USB address is not always unambiguous. It is recommended to use
@@ -2881,7 +2868,7 @@ the serial number instead, if possible.
 
 As a configuration command, it can be used only before 'init'.
 @end deffn
-@deffn {Config} {jlink serial} <serial number>
+@deffn {Config Command} {jlink serial} <serial number>
 Set the serial number of the interface, in case more than one adapter is
 connected to the host. If not specified, serial numbers are not considered.
 
@@ -2992,7 +2979,7 @@ When using PPDEV to access the parallel port, use the number of the parallel por
 you may encounter a problem.
 @end deffn
 
-@deffn {Command} {parport_toggling_time} [nanoseconds]
+@deffn {Config Command} {parport_toggling_time} [nanoseconds]
 Displays how many nanoseconds the hardware needs to toggle TCK;
 the parport driver uses this value to obey the
 @command{adapter speed} configuration.
@@ -3335,7 +3322,7 @@ driver} (in which case the command is @command{transport select hla_swd})
 or @ref{st_link_dap_interface,the st-link interface driver} (in which case
 the command is @command{transport select dapdirect_swd}).
 
-@deffn {Command} {swd newdap} ...
+@deffn {Config Command} {swd newdap} ...
 Declares a single DAP which uses SWD transport.
 Parameters are currently the same as "jtag newtap" but this is
 expected to change.
@@ -3598,19 +3585,19 @@ 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
+@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
+@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.
 @end deffn
 
 @anchor{reset_config}
-@deffn {Command} reset_config mode_flag ...
+@deffn {Command} {reset_config} mode_flag ...
 This command displays or modifies the reset configuration
 of your combination of JTAG board and target in target
 configuration scripts.
@@ -3745,7 +3732,7 @@ schemes. For example, on a multi-target board the standard
 may need the ability to reset only one target at time and
 thus want to avoid using the board-wide SRST signal.
 
-@deffn {Overridable Procedure} init_reset mode
+@deffn {Overridable Procedure} {init_reset} mode
 This is invoked near the beginning of the @command{reset} command,
 usually to provide as much of a cold (power-up) reset as practical.
 By default it is also invoked from @command{jtag_init} if
@@ -3933,8 +3920,7 @@ and underscores are OK; while others (including dots!) are not.
 
 @section TAP Declaration Commands
 
-@c shouldn't this be(come) a {Config Command}?
-@deffn {Command} {jtag newtap} chipname tapname configparams...
+@deffn {Config Command} {jtag newtap} chipname tapname configparams...
 Declares a new TAP with the dotted name @var{chipname}.@var{tapname},
 and configured according to the various @var{configparams}.
 
@@ -4381,7 +4367,7 @@ xxx.dap apcsw default
 @end example
 @end deffn
 
-@deffn {Command} {$dap_name ti_be_32_quirks} [@option{enable}]
+@deffn {Config Command} {$dap_name ti_be_32_quirks} [@option{enable}]
 Set/get quirks mode for TI TMS450/TMS570 processors
 Disabled by default
 @end deffn
@@ -4446,7 +4432,7 @@ foreach t [target names] @{
 @c yep, "target list" would have been better.
 @c plus maybe "target setdefault".
 
-@deffn {Command} targets [name]
+@deffn {Command} {targets} [name]
 @emph{Note: the name of this command is plural. Other target
 command names are singular.}
 
@@ -4514,7 +4500,7 @@ a CPU, through which bus read and write cycles can be generated; it may be
 useful for working with non-CPU hardware behind an AP or during development of
 support for new CPUs.
 It's possible to connect a GDB client to this target (the GDB port has to be
-specified, @xref{gdbportoverride,,option -gdb-port}), and a fake ARM core will
+specified, @xref{gdbportoverride,,option -gdb-port}.), and a fake ARM core will
 be emulated to comply to GDB remote protocol.
 @item @code{mips_m4k} -- a MIPS core.
 @item @code{mips_mips64} -- a MIPS64 core.
@@ -4612,7 +4598,7 @@ That may be needed to let you write the boot loader into flash,
 in order to ``de-brick'' your board; or to load programs into
 external DDR memory without having run the boot loader.
 
-@deffn {Command} {target create} target_name type configparams...
+@deffn {Config Command} {target create} target_name type configparams...
 This command creates a GDB debug target that refers to a specific JTAG tap.
 It enters that target into a list, and creates a new
 command (@command{@var{target_name}}) which is used for various
@@ -5354,7 +5340,7 @@ As noted above, the @command{flash bank} command requires a driver name,
 and allows driver-specific options and behaviors.
 Some drivers also activate driver-specific commands.
 
-@deffn {Flash Driver} virtual
+@deffn {Flash Driver} {virtual}
 This is a special driver that maps a previously defined bank to another
 address. All bank settings will be copied from the master physical bank.
 
@@ -5378,7 +5364,7 @@ flash bank vbank1 virtual 0x9fc00000 0 0 0 \
 
 @subsection External Flash
 
-@deffn {Flash Driver} cfi
+@deffn {Flash Driver} {cfi}
 @cindex Common Flash Interface
 @cindex CFI
 The ``Common Flash Interface'' (CFI) is the main standard for
@@ -5423,7 +5409,7 @@ flash bank $_FLASHNAME cfi 0x00000000 0x02000000 2 4 $_TARGETNAME
 @c "cfi part_id" disabled
 @end deffn
 
-@deffn {Flash Driver} jtagspi
+@deffn {Flash Driver} {jtagspi}
 @cindex Generic JTAG2SPI driver
 @cindex SPI
 @cindex jtagspi
@@ -5464,7 +5450,7 @@ flash bank $_FLASHNAME spi 0x0 0 0 0 \
 @end example
 @end deffn
 
-@deffn {Flash Driver} xcf
+@deffn {Flash Driver} {xcf}
 @cindex Xilinx Platform flash driver
 @cindex xcf
 Xilinx FPGAs can be configured from specialized flash ICs named Platform Flash.
@@ -5510,7 +5496,7 @@ only "bin" (raw binary, do not confuse it with "bit") and "mcs"
 @end itemize
 @end deffn
 
-@deffn {Flash Driver} lpcspifi
+@deffn {Flash Driver} {lpcspifi}
 @cindex NXP SPI Flash Interface
 @cindex SPIFI
 @cindex lpcspifi
@@ -5534,7 +5520,7 @@ flash bank $_FLASHNAME lpcspifi 0x14000000 0 0 0 $_TARGETNAME
 
 @end deffn
 
-@deffn {Flash Driver} stmsmi
+@deffn {Flash Driver} {stmsmi}
 @cindex STMicroelectronics Serial Memory Interface
 @cindex SMI
 @cindex stmsmi
@@ -5562,7 +5548,7 @@ flash bank $_FLASHNAME stmsmi 0xf8000000 0 0 0 $_TARGETNAME
 
 @end deffn
 
-@deffn {Flash Driver} stmqspi
+@deffn {Flash Driver} {stmqspi}
 @cindex STMicroelectronics QuadSPI/OctoSPI Interface
 @cindex QuadSPI
 @cindex OctoSPI
@@ -5677,7 +5663,7 @@ should return the status register contents.
 
 @end deffn
 
-@deffn {Flash Driver} mrvlqspi
+@deffn {Flash Driver} {mrvlqspi}
 This driver supports QSPI flash controller of Marvell's Wireless
 Microcontroller platform.
 
@@ -5690,7 +5676,7 @@ flash bank $_FLASHNAME mrvlqspi 0x0 0 0 0 $_TARGETNAME 0x46010000
 
 @end deffn
 
-@deffn {Flash Driver} ath79
+@deffn {Flash Driver} {ath79}
 @cindex Atheros ath79 SPI driver
 @cindex ath79
 Members of ATH79 SoC family from Atheros include a SPI interface with 3
@@ -5729,7 +5715,7 @@ flash bank flash2 ath79 0x20000000 0 0 0 $_TARGETNAME cs2
 
 @end deffn
 
-@deffn {Flash Driver} fespi
+@deffn {Flash Driver} {fespi}
 @cindex Freedom E SPI
 @cindex fespi
 
@@ -5742,7 +5728,7 @@ flash bank $_FLASHNAME fespi 0x20000000 0 0 0 $_TARGETNAME
 
 @subsection Internal Flash (Microcontrollers)
 
-@deffn {Flash Driver} aduc702x
+@deffn {Flash Driver} {aduc702x}
 The ADUC702x analog microcontrollers from Analog Devices
 include internal flash and use ARM7TDMI cores.
 The aduc702x flash driver works with models ADUC7019 through ADUC7028.
@@ -5754,7 +5740,7 @@ flash bank $_FLASHNAME aduc702x 0 0 0 0 $_TARGETNAME
 @end example
 @end deffn
 
-@deffn {Flash Driver} ambiqmicro
+@deffn {Flash Driver} {ambiqmicro}
 @cindex ambiqmicro
 @cindex apollo
 All members of the Apollo microcontroller family from
@@ -5802,7 +5788,7 @@ the flash.
 @end deffn
 
 @anchor{at91samd}
-@deffn {Flash Driver} at91samd
+@deffn {Flash Driver} {at91samd}
 @cindex at91samd
 All members of the ATSAM D2x, D1x, D0x, ATSAMR, ATSAML and ATSAMC microcontroller
 families from Atmel include internal flash and use ARM's Cortex-M0+ core.
@@ -5891,7 +5877,7 @@ NVMUSERROW: 0xFFFFFC5DD8E0C788
 @end deffn
 
 @anchor{at91sam3}
-@deffn {Flash Driver} at91sam3
+@deffn {Flash Driver} {at91sam3}
 @cindex at91sam3
 All members of the AT91SAM3 microcontroller family from
 Atmel include internal flash and use ARM's Cortex-M3 core. The driver
@@ -5955,14 +5941,14 @@ This command shows/sets the slow clock frequency used in the
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} at91sam4
+@deffn {Flash Driver} {at91sam4}
 @cindex at91sam4
 All members of the AT91SAM4 microcontroller family from
 Atmel include internal flash and use ARM's Cortex-M4 core.
 This driver uses the same command names/syntax as @xref{at91sam3}.
 @end deffn
 
-@deffn {Flash Driver} at91sam4l
+@deffn {Flash Driver} {at91sam4l}
 @cindex at91sam4l
 All members of the AT91SAM4L microcontroller family from
 Atmel include internal flash and use ARM's Cortex-M4 core.
@@ -5977,7 +5963,7 @@ Command is used internally in event reset-deassert-post.
 @end deffn
 
 @anchor{atsame5}
-@deffn {Flash Driver} atsame5
+@deffn {Flash Driver} {atsame5}
 @cindex atsame5
 All members of the SAM E54, E53, E51 and D51 microcontroller
 families from Microchip (former Atmel) include internal flash
@@ -6040,14 +6026,14 @@ USER PAGE: 0xAEECFF80FE9A9239
 
 @end deffn
 
-@deffn {Flash Driver} atsamv
+@deffn {Flash Driver} {atsamv}
 @cindex atsamv
 All members of the ATSAMV7x, ATSAMS70, and ATSAME70 families from
 Atmel include internal flash and use ARM's Cortex-M7 core.
 This driver uses the same command names/syntax as @xref{at91sam3}.
 @end deffn
 
-@deffn {Flash Driver} at91sam7
+@deffn {Flash Driver} {at91sam7}
 All members of the AT91SAM7 microcontroller family from Atmel include
 internal flash and use ARM7TDMI cores. The driver automatically
 recognizes a number of these chips using the chip identification
@@ -6094,13 +6080,13 @@ the appropriate at91sam7 target.
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} avr
+@deffn {Flash Driver} {avr}
 The AVR 8-bit microcontrollers from Atmel integrate flash memory.
 @emph{The current implementation is incomplete.}
 @comment - defines mass_erase ... pointless given flash_erase_address
 @end deffn
 
-@deffn {Flash Driver} bluenrg-x
+@deffn {Flash Driver} {bluenrg-x}
 STMicroelectronics BlueNRG-1, BlueNRG-2 and BlueNRG-LP Bluetooth low energy wireless system-on-chip. They include ARM Cortex-M0/M0+ core and internal flash memory.
 The driver automatically recognizes these chips using
 the chip identification registers, and autoconfigures itself.
@@ -6119,7 +6105,7 @@ flash erase_sector 0 0 last # It will perform a mass erase
 Triggering a mass erase is also useful when users want to disable readout protection.
 @end deffn
 
-@deffn {Flash Driver} cc26xx
+@deffn {Flash Driver} {cc26xx}
 All versions of the SimpleLink CC13xx and CC26xx microcontrollers from Texas
 Instruments include internal flash. The cc26xx flash driver supports both the
 CC13xx and CC26xx family of devices. The driver automatically recognizes the
@@ -6131,7 +6117,7 @@ flash bank $_FLASHNAME cc26xx 0 0 0 0 $_TARGETNAME
 @end example
 @end deffn
 
-@deffn {Flash Driver} cc3220sf
+@deffn {Flash Driver} {cc3220sf}
 The CC3220SF version of the SimpleLink CC32xx microcontrollers from Texas
 Instruments includes 1MB of internal flash. The cc3220sf flash driver only
 supports the internal flash. The serial flash on SimpleLink boards is
@@ -6145,7 +6131,7 @@ flash bank $_FLASHNAME cc3220sf 0 0 0 0 $_TARGETNAME
 @end example
 @end deffn
 
-@deffn {Flash Driver} efm32
+@deffn {Flash Driver} {efm32}
 All members of the EFM32 microcontroller family from Energy Micro include
 internal flash and use ARM Cortex-M3 cores. The driver automatically recognizes
 a number of these chips using the chip identification register, and
@@ -6165,7 +6151,7 @@ Note that in order for this command to take effect, the target needs to be reset
 supported.}
 @end deffn
 
-@deffn {Flash Driver} esirisc
+@deffn {Flash Driver} {esirisc}
 Members of the eSi-RISC family may optionally include internal flash programmed
 via the eSi-TSMC Flash interface. Additional parameters are required to
 configure the driver: @option{cfg_address} is the base address of the
@@ -6187,7 +6173,7 @@ is an uncommon operation.}
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} fm3
+@deffn {Flash Driver} {fm3}
 All members of the FM3 microcontroller family from Fujitsu
 include internal flash and use ARM Cortex-M3 cores.
 The @var{fm3} driver uses the @var{target} parameter to select the
@@ -6200,7 +6186,7 @@ flash bank $_FLASHNAME fm3 0 0 0 0 $_TARGETNAME
 @end example
 @end deffn
 
-@deffn {Flash Driver} fm4
+@deffn {Flash Driver} {fm4}
 All members of the FM4 microcontroller family from Spansion (formerly Fujitsu)
 include internal flash and use ARM Cortex-M4 cores.
 The @var{fm4} driver uses a @var{family} parameter to select the
@@ -6220,7 +6206,7 @@ flash bank $@{_FLASHNAME@}1 fm4 0x00100000 0 0 0 \
 nor is Chip Erase (only Sector Erase is implemented).}
 @end deffn
 
-@deffn {Flash Driver} kinetis
+@deffn {Flash Driver} {kinetis}
 @cindex kinetis
 Kx, KLx, KVx and KE1x members of the Kinetis microcontroller family
 from NXP (former Freescale) include
@@ -6238,7 +6224,7 @@ The @var{kinetis} driver defines option:
 flash bank $_FLASHNAME kinetis 0 0 0 0 $_TARGETNAME
 @end example
 
-@deffn {Command} {kinetis create_banks}
+@deffn {Config Command} {kinetis create_banks}
 Configuration command enables automatic creation of additional flash banks
 based on real flash layout of device. Banks are created during device probe.
 Use 'flash probe 0' to force probe.
@@ -6319,7 +6305,7 @@ Command disables watchdog timer.
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} kinetis_ke
+@deffn {Flash Driver} {kinetis_ke}
 @cindex kinetis_ke
 KE0x and KEAx members of the Kinetis microcontroller family from NXP include
 internal flash and use ARM Cortex-M0+. The driver automatically recognizes
@@ -6347,7 +6333,7 @@ Command disables watchdog timer.
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} lpc2000
+@deffn {Flash Driver} {lpc2000}
 This is the driver to support internal flash of all members of the
 LPC11(x)00 and LPC1300 microcontroller families and most members of
 the LPC800, LPC1500, LPC1700, LPC1800, LPC2000, LPC4000, LPC54100,
@@ -6404,7 +6390,7 @@ the specified flash @var{bank}.
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} lpc288x
+@deffn {Flash Driver} {lpc288x}
 The LPC2888 microcontroller from NXP needs slightly different flash
 support from its lpc2000 siblings.
 The @var{lpc288x} driver defines one mandatory parameter,
@@ -6416,7 +6402,7 @@ flash bank $_FLASHNAME lpc288x 0 0 0 0 $_TARGETNAME 12000000
 @end example
 @end deffn
 
-@deffn {Flash Driver} lpc2900
+@deffn {Flash Driver} {lpc2900}
 This driver supports the LPC29xx ARM968E based microcontroller family
 from NXP.
 
@@ -6539,7 +6525,7 @@ lpc2900 secure_jtag 0
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} mdr
+@deffn {Flash Driver} {mdr}
 This drivers handles the integrated NOR flash on Milandr Cortex-M
 based controllers. A known limitation is that the Info memory can't be
 read or verified as it's not memory mapped.
@@ -6567,7 +6553,7 @@ if @{ [info exists IMEMORY] && [string equal $IMEMORY true] @} @{
 @end example
 @end deffn
 
-@deffn {Flash Driver} msp432
+@deffn {Flash Driver} {msp432}
 All versions of the SimpleLink MSP432 microcontrollers from Texas
 Instruments include internal flash. The msp432 flash driver automatically
 recognizes the specific version's flash parameters and autoconfigures itself.
@@ -6602,7 +6588,7 @@ msp432 bsl lock
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} niietcm4
+@deffn {Flash Driver} {niietcm4}
 This drivers handles the integrated NOR flash on NIIET Cortex-M4
 based controllers. Flash size and sector layout are auto-configured by the driver.
 Main flash memory is called "Bootflash" and has main region and info region.
@@ -6662,7 +6648,7 @@ Show information about flash driver.
 
 @end deffn
 
-@deffn {Flash Driver} nrf5
+@deffn {Flash Driver} {nrf5}
 All members of the nRF51 microcontroller families from Nordic Semiconductor
 include internal flash and use ARM Cortex-M0 core.
 Also, the nRF52832 microcontroller from Nordic Semiconductor, which include
@@ -6687,7 +6673,7 @@ Decodes and shows information from FICR and UICR registers.
 
 @end deffn
 
-@deffn {Flash Driver} ocl
+@deffn {Flash Driver} {ocl}
 This driver is an implementation of the ``on chip flash loader''
 protocol proposed by Pavel Chromy.
 
@@ -6701,7 +6687,7 @@ flash bank $_FLASHNAME ocl 0 0 0 0 $_TARGETNAME
 @end example
 @end deffn
 
-@deffn {Flash Driver} pic32mx
+@deffn {Flash Driver} {pic32mx}
 The PIC32MX microcontrollers are based on the MIPS 4K cores,
 and integrate flash memory.
 
@@ -6725,7 +6711,7 @@ This will remove any Code Protection.
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} psoc4
+@deffn {Flash Driver} {psoc4}
 All members of the PSoC 41xx/42xx microcontroller family from Cypress
 include internal flash and use ARM Cortex-M0 cores.
 The driver automatically recognizes a number of these chips using
@@ -6759,7 +6745,7 @@ The @var{num} parameter is a value shown by @command{flash banks}.
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} psoc5lp
+@deffn {Flash Driver} {psoc5lp}
 All members of the PSoC 5LP microcontroller family from Cypress
 include internal program flash and use ARM Cortex-M3 cores.
 The driver probes for a number of these chips and autoconfigures itself,
@@ -6785,7 +6771,7 @@ and all row latches in all flash arrays on the device.
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} psoc5lp_eeprom
+@deffn {Flash Driver} {psoc5lp_eeprom}
 All members of the PSoC 5LP microcontroller family from Cypress
 include internal EEPROM and use ARM Cortex-M3 cores.
 The driver probes for a number of these chips and autoconfigures itself,
@@ -6797,7 +6783,7 @@ flash bank $_CHIPNAME.eeprom psoc5lp_eeprom 0x40008000 0 0 0 \
 @end example
 @end deffn
 
-@deffn {Flash Driver} psoc5lp_nvl
+@deffn {Flash Driver} {psoc5lp_nvl}
 All members of the PSoC 5LP microcontroller family from Cypress
 include internal Nonvolatile Latches and use ARM Cortex-M3 cores.
 The driver probes for a number of these chips and autoconfigures itself.
@@ -6822,7 +6808,7 @@ after successful write.
 @end quotation
 @end deffn
 
-@deffn {Flash Driver} psoc6
+@deffn {Flash Driver} {psoc6}
 Supports PSoC6 (CY8C6xxx) family of Cypress microcontrollers.
 PSoC6 is a dual-core device with CM0+ and CM4 cores. Both cores share
 the same Flash/RAM/MMIO address space.
@@ -6890,7 +6876,18 @@ Note: only Main and Work flash regions support Erase operation.
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} sim3x
+@deffn {Flash Driver} {rp2040}
+Supports RP2040 "Raspberry Pi Pico" microcontroller.
+RP2040 is a dual-core device with two CM0+ cores. Both cores share the same
+Flash/RAM/MMIO address space.  Non-volatile storage is achieved with an
+external QSPI flash; a Boot ROM provides helper functions.
+
+@example
+flash bank $_FLASHNAME rp2040_flash $_FLASHBASE $_FLASHSIZE 1 32 $_TARGETNAME
+@end example
+@end deffn
+
+@deffn {Flash Driver} {sim3x}
 All members of the SiM3 microcontroller family from Silicon Laboratories
 include internal flash and use ARM Cortex-M3 cores. It supports both JTAG
 and SWD interface.
@@ -6913,7 +6910,7 @@ Lock the flash. To unlock use the @command{sim3x mass_erase} command.
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} stellaris
+@deffn {Flash Driver} {stellaris}
 All members of the Stellaris LM3Sxxx, LM4x and Tiva C microcontroller
 families from Texas Instruments include internal flash. The driver
 automatically recognizes a number of these chips using the chip
@@ -6939,9 +6936,10 @@ applied to all of them.
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} stm32f1x
+@deffn {Flash Driver} {stm32f1x}
 All members of the STM32F0, STM32F1 and STM32F3 microcontroller families
-from STMicroelectronics include internal flash and use ARM Cortex-M0/M3/M4 cores.
+from STMicroelectronics and all members of the GD32F1x0 and GD32F3x0 microcontroller
+families from GigaDevice include internal flash and use ARM Cortex-M0/M3/M4 cores.
 The driver automatically recognizes a number of these chips using
 the chip identification register, and autoconfigures itself.
 
@@ -7001,7 +6999,7 @@ The @var{num} parameter is a value shown by @command{flash banks}.
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} stm32f2x
+@deffn {Flash Driver} {stm32f2x}
 All members of the STM32F2, STM32F4 and STM32F7 microcontroller families from STMicroelectronics
 include internal flash and use ARM Cortex-M3/M4/M7 cores.
 The driver automatically recognizes a number of these chips using
@@ -7066,7 +7064,7 @@ The @var{num} parameter is a value shown by @command{flash banks}, @var{optcr2}
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} stm32h7x
+@deffn {Flash Driver} {stm32h7x}
 All members of the STM32H7 microcontroller families from STMicroelectronics
 include internal flash and use ARM Cortex-M7 core.
 The driver automatically recognizes a number of these chips using
@@ -7134,7 +7132,7 @@ stm32h7x option_write 0 0x20 0x8000000 0x8000000
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} stm32lx
+@deffn {Flash Driver} {stm32lx}
 All members of the STM32L0 and STM32L1 microcontroller families from STMicroelectronics
 include internal flash and use ARM Cortex-M3 and Cortex-M0+ cores.
 The driver automatically recognizes a number of these chips using
@@ -7174,7 +7172,7 @@ The @var{num} parameter is a value shown by @command{flash banks}.
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} stm32l4x
+@deffn {Flash Driver} {stm32l4x}
 All members of the STM32 G0, G4, L4, L4+, L5, WB and WL
 microcontroller families from STMicroelectronics include internal flash
 and use ARM Cortex-M0+, M4 and M33 cores.
@@ -7275,7 +7273,7 @@ The @var{num} parameter is a value shown by @command{flash banks}.
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} str7x
+@deffn {Flash Driver} {str7x}
 All members of the STR7 microcontroller family from STMicroelectronics
 include internal flash and use ARM7TDMI cores.
 The @var{str7x} driver defines one mandatory parameter, @var{variant},
@@ -7292,7 +7290,7 @@ for the specified flash bank.
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} str9x
+@deffn {Flash Driver} {str9x}
 Most members of the STR9 microcontroller family from STMicroelectronics
 include internal flash and use ARM966E cores.
 The str9 needs the flash controller to be configured using
@@ -7317,7 +7315,7 @@ The @var{num} parameter is a value shown by @command{flash banks}.
 
 @end deffn
 
-@deffn {Flash Driver} str9xpec
+@deffn {Flash Driver} {str9xpec}
 @cindex str9xpec
 
 Only use this driver for locking/unlocking the device or configuring the option bytes.
@@ -7412,7 +7410,7 @@ unlock str9 device.
 
 @end deffn
 
-@deffn {Flash Driver} swm050
+@deffn {Flash Driver} {swm050}
 @cindex swm050
 All members of the swm050 microcontroller family from Foshan Synwit Tech.
 
@@ -7429,7 +7427,7 @@ Erases the entire flash bank.
 @end deffn
 
 
-@deffn {Flash Driver} tms470
+@deffn {Flash Driver} {tms470}
 Most members of the TMS470 microcontroller family from Texas Instruments
 include internal flash and use ARM7TDMI cores.
 This driver doesn't require the chip and bus width to be specified.
@@ -7450,7 +7448,7 @@ the flash clock.
 @end deffn
 @end deffn
 
-@deffn {Flash Driver} w600
+@deffn {Flash Driver} {w600}
 W60x series Wi-Fi SoC from WinnerMicro
 are designed with ARM Cortex-M3 and have 1M Byte QFLASH inside.
 The @var{w600} driver uses the @var{target} parameter to select the
@@ -7461,12 +7459,12 @@ flash bank $_FLASHNAME w600 0x08000000 0 0 0 $_TARGETNAMEs
 @end example
 @end deffn
 
-@deffn {Flash Driver} xmc1xxx
+@deffn {Flash Driver} {xmc1xxx}
 All members of the XMC1xxx microcontroller family from Infineon.
 This driver does not require the chip and bus width to be specified.
 @end deffn
 
-@deffn {Flash Driver} xmc4xxx
+@deffn {Flash Driver} {xmc4xxx}
 All members of the XMC4xxx microcontroller family from Infineon.
 This driver does not require the chip and bus width to be specified.
 
@@ -7794,7 +7792,7 @@ As noted above, the @command{nand device} command allows
 driver-specific options and behaviors.
 Some controllers also activate controller-specific commands.
 
-@deffn {NAND Driver} at91sam9
+@deffn {NAND Driver} {at91sam9}
 This driver handles the NAND controllers found on AT91SAM9 family chips from
 Atmel. It takes two extra parameters: address of the NAND chip;
 address of the ECC controller.
@@ -7806,30 +7804,30 @@ AT91SAM9 chips support single-bit ECC hardware. The @code{write_page} and
 disabled by using the @command{nand raw_access} command. There are four
 additional commands that are needed to fully configure the AT91SAM9 NAND
 controller. Two are optional; most boards use the same wiring for ALE/CLE:
-@deffn {Command} {at91sam9 cle} num addr_line
+@deffn {Config Command} {at91sam9 cle} num addr_line
 Configure the address line used for latching commands. The @var{num}
 parameter is the value shown by @command{nand list}.
 @end deffn
-@deffn {Command} {at91sam9 ale} num addr_line
+@deffn {Config Command} {at91sam9 ale} num addr_line
 Configure the address line used for latching addresses. The @var{num}
 parameter is the value shown by @command{nand list}.
 @end deffn
 
 For the next two commands, it is assumed that the pins have already been
 properly configured for input or output.
-@deffn {Command} {at91sam9 rdy_busy} num pio_base_addr pin
+@deffn {Config Command} {at91sam9 rdy_busy} num pio_base_addr pin
 Configure the RDY/nBUSY input from the NAND device. The @var{num}
 parameter is the value shown by @command{nand list}. @var{pio_base_addr}
 is the base address of the PIO controller and @var{pin} is the pin number.
 @end deffn
-@deffn {Command} {at91sam9 ce} num pio_base_addr pin
+@deffn {Config Command} {at91sam9 ce} num pio_base_addr pin
 Configure the chip enable input to the NAND device. The @var{num}
 parameter is the value shown by @command{nand list}. @var{pio_base_addr}
 is the base address of the PIO controller and @var{pin} is the pin number.
 @end deffn
 @end deffn
 
-@deffn {NAND Driver} davinci
+@deffn {NAND Driver} {davinci}
 This driver handles the NAND controllers found on DaVinci family
 chips from Texas Instruments.
 It takes three extra parameters:
@@ -7847,7 +7845,7 @@ to implement those ECC modes, unless they are disabled using
 the @command{nand raw_access} command.
 @end deffn
 
-@deffn {NAND Driver} lpc3180
+@deffn {NAND Driver} {lpc3180}
 These controllers require an extra @command{nand device}
 parameter: the clock rate used by the controller.
 @deffn {Command} {lpc3180 select} num [mlc|slc]
@@ -7863,12 +7861,12 @@ in the MLC controller mode, but won't change SLC behavior.
 @end deffn
 @comment current lpc3180 code won't issue 5-byte address cycles
 
-@deffn {NAND Driver} mx3
+@deffn {NAND Driver} {mx3}
 This driver handles the NAND controller in i.MX31. The mxc driver
 should work for this chip as well.
 @end deffn
 
-@deffn {NAND Driver} mxc
+@deffn {NAND Driver} {mxc}
 This driver handles the NAND controller found in Freescale i.MX
 chips. It has support for v1 (i.MX27 and i.MX31) and v2 (i.MX35).
 The driver takes 3 extra arguments, chip (@option{mx27},
@@ -7884,7 +7882,7 @@ without parameter query status.
 @end deffn
 @end deffn
 
-@deffn {NAND Driver} orion
+@deffn {NAND Driver} {orion}
 These controllers require an extra @command{nand device}
 parameter: the address of the controller.
 @example
@@ -7896,11 +7894,11 @@ or @code{read_page} methods, so @command{nand raw_access} won't
 change any behavior.
 @end deffn
 
-@deffn {NAND Driver} s3c2410
-@deffnx {NAND Driver} s3c2412
-@deffnx {NAND Driver} s3c2440
-@deffnx {NAND Driver} s3c2443
-@deffnx {NAND Driver} s3c6400
+@deffn {NAND Driver} {s3c2410}
+@deffnx {NAND Driver} {s3c2412}
+@deffnx {NAND Driver} {s3c2440}
+@deffnx {NAND Driver} {s3c2443}
+@deffnx {NAND Driver} {s3c6400}
 These S3C family controllers don't have any special
 @command{nand device} options, and don't define any
 specialized commands.
@@ -7987,7 +7985,7 @@ Drivers may support PLD-specific options to the @command{pld device}
 definition command, and may also define commands usable only with
 that particular type of PLD.
 
-@deffn {FPGA Driver} virtex2 [no_jstart]
+@deffn {FPGA Driver} {virtex2} [no_jstart]
 Virtex-II is a family of FPGAs sold by Xilinx.
 It supports the IEEE 1532 standard for In-System Configuration (ISC).
 
@@ -8032,11 +8030,11 @@ port is 5555.
 
 @section Server Commands
 
-@deffn {Command} exit
+@deffn {Command} {exit}
 Exits the current telnet session.
 @end deffn
 
-@deffn {Command} help [string]
+@deffn {Command} {help} [string]
 With no parameters, prints help text for all commands.
 Otherwise, prints each helptext containing @var{string}.
 Not every command provides helptext.
@@ -8047,7 +8045,7 @@ In most cases, no such restriction is listed; this indicates commands
 which are only available after the configuration stage has completed.
 @end deffn
 
-@deffn {Command} sleep msec [@option{busy}]
+@deffn {Command} {sleep} msec [@option{busy}]
 Wait for at least @var{msec} milliseconds before resuming.
 If @option{busy} is passed, busy-wait instead of sleeping.
 (This option is strongly discouraged.)
@@ -8055,7 +8053,7 @@ Useful in connection with script files
 (@command{script} command and @command{target_name} configuration).
 @end deffn
 
-@deffn {Command} shutdown [@option{error}]
+@deffn {Command} {shutdown} [@option{error}]
 Close the OpenOCD server, disconnecting all clients (GDB, telnet,
 other). If option @option{error} is used, OpenOCD will return a
 non-zero exit code to the parent process.
@@ -8075,7 +8073,7 @@ or its replacement will be automatically executed before OpenOCD exits.
 @end deffn
 
 @anchor{debuglevel}
-@deffn {Command} debug_level [n]
+@deffn {Command} {debug_level} [n]
 @cindex message level
 Display debug level.
 If @var{n} (from 0..4) is provided, then set it to that level.
@@ -8091,7 +8089,7 @@ file (which is normally the server's standard output).
 @xref{Running}.
 @end deffn
 
-@deffn {Command} echo [-n] message
+@deffn {Command} {echo} [-n] message
 Logs a message at "user" priority.
 Output @var{message} to stdout.
 Option "-n" suppresses trailing newline.
@@ -8100,16 +8098,16 @@ echo "Downloading kernel -- please wait"
 @end example
 @end deffn
 
-@deffn {Command} log_output [filename | "default"]
+@deffn {Command} {log_output} [filename | "default"]
 Redirect logging to @var{filename} or set it back to default output;
 the default log output channel is stderr.
 @end deffn
 
-@deffn {Command} add_script_search_dir [directory]
+@deffn {Command} {add_script_search_dir} [directory]
 Add @var{directory} to the file/script search path.
 @end deffn
 
-@deffn {Command} bindto [@var{name}]
+@deffn {Config Command} {bindto} [@var{name}]
 Specify hostname or IPv4 address on which to listen for incoming
 TCP/IP connections. By default, OpenOCD will listen on the loopback
 interface only. If your network environment is safe, @code{bindto
@@ -8130,7 +8128,7 @@ various operations. The current target may be changed
 by using @command{targets} command with the name of the
 target which should become current.
 
-@deffn {Command} reg [(number|name) [(value|'force')]]
+@deffn {Command} {reg} [(number|name) [(value|'force')]]
 Access a single register by @var{number} or by its @var{name}.
 The target must generally be halted before access to CPU core
 registers is allowed. Depending on the hardware, some other
@@ -8169,8 +8167,8 @@ Debug and trace infrastructure:
 @end example
 @end deffn
 
-@deffn {Command} halt [ms]
-@deffnx {Command} wait_halt [ms]
+@deffn {Command} {halt} [ms]
+@deffnx {Command} {wait_halt} [ms]
 The @command{halt} command first sends a halt request to the target,
 which @command{wait_halt} doesn't.
 Otherwise these behave the same: wait up to @var{ms} milliseconds,
@@ -8204,19 +8202,19 @@ power consumption (because the CPU is needlessly clocked).
 
 @end deffn
 
-@deffn {Command} resume [address]
+@deffn {Command} {resume} [address]
 Resume the target at its current code position,
 or the optional @var{address} if it is provided.
 OpenOCD will wait 5 seconds for the target to resume.
 @end deffn
 
-@deffn {Command} step [address]
+@deffn {Command} {step} [address]
 Single-step the target at its current code position,
 or the optional @var{address} if it is provided.
 @end deffn
 
 @anchor{resetcommand}
-@deffn {Command} reset
+@deffn {Command} {reset}
 @deffnx {Command} {reset run}
 @deffnx {Command} {reset halt}
 @deffnx {Command} {reset init}
@@ -8237,7 +8235,7 @@ The other options will not work on all systems.
 @end itemize
 @end deffn
 
-@deffn {Command} soft_reset_halt
+@deffn {Command} {soft_reset_halt}
 Requesting target halt and executing a soft reset. This is often used
 when a target cannot be reset and halted. The target, after reset is
 released begins to execute code. OpenOCD attempts to stop the CPU and
@@ -8293,10 +8291,10 @@ Please use their TARGET object siblings to avoid making assumptions
 about what TAP is the current target, or about MMU configuration.
 @end enumerate
 
-@deffn {Command} mdd [phys] addr [count]
-@deffnx {Command} mdw [phys] addr [count]
-@deffnx {Command} mdh [phys] addr [count]
-@deffnx {Command} mdb [phys] addr [count]
+@deffn {Command} {mdd} [phys] addr [count]
+@deffnx {Command} {mdw} [phys] addr [count]
+@deffnx {Command} {mdh} [phys] addr [count]
+@deffnx {Command} {mdb} [phys] addr [count]
 Display contents of address @var{addr}, as
 64-bit doublewords (@command{mdd}),
 32-bit words (@command{mdw}), 16-bit halfwords (@command{mdh}),
@@ -8310,10 +8308,10 @@ If @var{count} is specified, displays that many units.
 see the @code{mem2array} primitives.)
 @end deffn
 
-@deffn {Command} mwd [phys] addr doubleword [count]
-@deffnx {Command} mww [phys] addr word [count]
-@deffnx {Command} mwh [phys] addr halfword [count]
-@deffnx {Command} mwb [phys] addr byte [count]
+@deffn {Command} {mwd} [phys] addr doubleword [count]
+@deffnx {Command} {mww} [phys] addr word [count]
+@deffnx {Command} {mwh} [phys] addr halfword [count]
+@deffnx {Command} {mwb} [phys] addr byte [count]
 Writes the specified @var{doubleword} (64 bits), @var{word} (32 bits),
 @var{halfword} (16 bits), or @var{byte} (8-bit) value,
 at the specified address @var{addr}.
@@ -8756,7 +8754,7 @@ Stops trace data collection.
 
 To use an ETM trace port it must be associated with a driver.
 
-@deffn {Trace Port Driver} dummy
+@deffn {Trace Port Driver} {dummy}
 Use the @option{dummy} driver if you are configuring an ETM that's
 not connected to anything (on-chip ETB or off-chip trace connector).
 @emph{This driver lets OpenOCD talk to the ETM, but it does not expose
@@ -8766,7 +8764,7 @@ Associates the ETM for @var{target} with a dummy driver.
 @end deffn
 @end deffn
 
-@deffn {Trace Port Driver} etb
+@deffn {Trace Port Driver} {etb}
 Use the @option{etb} driver if you are configuring an ETM
 to use on-chip ETB memory.
 @deffn {Config Command} {etb config} target etb_tap
@@ -10181,7 +10179,7 @@ startbit endbit}.
 
 @deffn {Command} {arc get-reg-field} reg-name field-name
 Returns value of bit-field in a register. Register must be ``struct'' register
-type, @xref{add-reg-type-struct} command definition.
+type, @xref{add-reg-type-struct}. command definition.
 @end deffn
 
 @deffn {Command} {arc set-reg-exists} reg-names...
@@ -10587,6 +10585,49 @@ If @emph{xsvfdump} shows a file is using those opcodes, it
 probably will not be usable with other XSVF tools.
 
 
+@section IPDBG: JTAG-Host server
+@cindex IPDBG JTAG-Host server
+@cindex IPDBG
+
+IPDBG is a set of tools to debug IP-Cores. It comprises, among others, a logic analyzer and an arbitrary
+waveform generator. These are synthesize-able hardware descriptions of
+logic circuits in addition to software for control, visualization and further analysis.
+In a session using JTAG for its transport protocol, OpenOCD supports the function
+of a JTAG-Host. The JTAG-Host is needed to connect the circuit over JTAG to the
+control-software. For more details see @url{http://ipdbg.org}.
+
+@deffn {Command} {ipdbg} [@option{-start|-stop}] @option{-tap @var{tapname}} @option{-hub @var{ir_value} [@var{dr_length}]} [@option{-port @var{number}}] [@option{-tool @var{number}}] [@option{-vir [@var{vir_value} [@var{length} [@var{instr_code}]]]}]
+Starts or stops a IPDBG JTAG-Host server. Arguments can be specified in any order.
+
+Command options:
+@itemize @bullet
+@item @option{-start|-stop} starts or stops a IPDBG JTAG-Host server (default: start).
+@item @option{-tap @var{tapname}} targeting the TAP @var{tapname}.
+@item @option{-hub @var{ir_value}} states that the JTAG hub is
+reachable with dr-scans while the JTAG instruction register has the value @var{ir_value}.
+@item @option{-port @var{number}} tcp port number where the JTAG-Host is listening.
+@item @option{-tool @var{number}} number of the tool/feature. These corresponds to the ports "data_(up/down)_(0..6)" at the JtagHub.
+@item @option{-vir [@var{vir_value} [@var{length} [@var{instr_code}]]]} On some devices, the user data-register is only reachable if there is a
+specific value in a second dr. This second dr is called vir (virtual ir). With this parameter given, the IPDBG satisfies this condition prior an
+access to the IPDBG-Hub. The value shifted into the vir is given by the first parameter @var{vir_value} (default: 0x11). The second
+parameter @var{length} is the length of the vir data register (default: 5). With the @var{instr_code} (default: 0x00e) parameter the ir value to
+shift data through vir can be configured.
+@end itemize
+@end deffn
+
+Examples:
+@example
+ipdbg -start -tap xc6s.tap -hub 0x02 -port 4242 -tool 4
+@end example
+Starts a server listening on tcp-port 4242 which connects to tool 4.
+The connection is through the TAP of a Xilinx Spartan 6 on USER1 instruction (tested with a papillion pro board).
+
+@example
+ipdbg -start -tap 10m50.tap -hub 0x00C -vir -port 60000 -tool 1
+@end example
+Starts a server listening on tcp-port 60000 which connects to tool 1 (data_up_1/data_down_1).
+The connection is through the TAP of a Intel MAX10 virtual jtag component (sld_instance_index is 0; sld_ir_width is smaller than 5).
+
 @node Utility Commands
 @chapter Utility Commands
 @cindex Utility Commands
@@ -11101,34 +11142,6 @@ OpenOCD commands can consist of two words, e.g. "flash banks". The
 @file{startup.tcl} "unknown" proc will translate this into a Tcl proc
 called "flash_banks".
 
-@section OpenOCD specific Global Variables
-
-Real Tcl has ::tcl_platform(), and platform::identify, and many other
-variables. JimTCL, as implemented in OpenOCD creates $ocd_HOSTOS which
-holds one of the following values:
-
-@itemize @bullet
-@item @b{cygwin}   Running under Cygwin
-@item @b{darwin}   Darwin (Mac-OS) is the underlying operating system.
-@item @b{freebsd}  Running under FreeBSD
-@item @b{openbsd}  Running under OpenBSD
-@item @b{netbsd}   Running under NetBSD
-@item @b{linux}    Linux is the underlying operating system
-@item @b{mingw32}  Running under MingW32
-@item @b{winxx}    Built using Microsoft Visual Studio
-@item @b{ecos}     Running under eCos
-@item @b{other}    Unknown, none of the above.
-@end itemize
-
-Note: 'winxx' was chosen because today (March-2009) no distinction is made between Win32 and Win64.
-
-@quotation Note
-We should add support for a variable like Tcl variable
-@code{tcl_platform(platform)}, it should be called
-@code{jim_platform} (because it
-is jim, not real tcl).
-@end quotation
-
 @section Tcl RPC server
 @cindex RPC
 
@@ -11162,7 +11175,7 @@ type target_state state [state-name]
 type target_reset mode [reset-mode]
 @end verbatim
 
-@deffn {Command} tcl_notifications [on/off]
+@deffn {Command} {tcl_notifications} [on/off]
 Toggle output of target notifications to the current Tcl RPC server.
 Only available from the Tcl RPC server.
 Defaults to off.
@@ -11181,7 +11194,7 @@ Target trace data is emitted as a Tcl associative array in the following format.
 type target_trace data [trace-data-hex-encoded]
 @end verbatim
 
-@deffn {Command} tcl_trace [on/off]
+@deffn {Command} {tcl_trace} [on/off]
 Toggle output of target trace data to the current Tcl RPC server.
 Only available from the Tcl RPC server.
 Defaults to off.

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)