Skip to content

Merge up to afbd01b0a46f3a81fe6076c002ad66973dcfb64c from upstream #1267

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 56 commits into
base: riscv
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
339763e
command: rewrite command 'command mode' as COMMAND_HANDLER
borneoa Dec 2, 2023
16c5c1b
command: rewrite command 'capture' as COMMAND_HANDLER
borneoa Dec 2, 2023
cfed1f7
list: silent scan-build false positive
borneoa Apr 5, 2025
a1ecf0a
target: don't free working areas during 'configure -chain-position'
borneoa Apr 5, 2025
4a616ca
target: rewrite command 'invoke-event' as COMMAND_HANDLER
borneoa Dec 2, 2023
29e4a36
target: rewrite command 'target create' as COMMAND_HANDLER
borneoa Dec 2, 2023
1d9b34b
target: rewrite commands 'configure' and 'cget' as COMMAND_HANDLER
borneoa Dec 2, 2023
61890e3
target: rewrite function target_configure() as COMMAND_HELPER
borneoa Dec 3, 2023
9a09d38
target: drop unused parameter to target_create()
borneoa Apr 6, 2025
797dc7a
flash/stm32l4x: support STM32C05/09x devices
ahmed-haoues Mar 25, 2025
498e559
tcl/target: Add RCPU support for Spacemit K1
pigmoral Mar 26, 2025
2aa0592
flash: stellaris: fix deprecated command
borneoa Apr 6, 2025
ea775d4
flash/nor/rp2040: add RP2350 support
kilograham Nov 3, 2023
1ed49ad
flash/nor/rp2040: Add RISC-V ROM algorithm batch call support
Wren6991 Jul 14, 2021
eb4a634
flash/nor/rp2040: RP2350 A1 changes
kilograham Mar 24, 2024
2e8e1a3
flash/nor/rp2040: Fix up ROM table lookup for RP2350 A2
Wren6991 Jun 28, 2024
ca966d3
flash/nor/rp2040: Avoid ROM call timeout on long erases by splitting …
Wren6991 Jul 25, 2024
8f92e52
flash/nor/rp2040: Fix incorrect erase bounds calculation
Wren6991 Aug 6, 2024
ba03d13
flash/nor/rp2040: allow flash size override from cfg
tom-van Aug 6, 2024
15d9207
flash/nor/rp2040: allow arbitrary ROM API call from Tcl
tom-van Jul 17, 2024
2e49c99
flash/nor/rp2040: flash bank target switching for RP2350
tom-van Aug 10, 2024
69ee445
tcl/target/rp2350: universal config for any combination of CM/RV cores
tom-van Aug 11, 2024
22dfd0e
tcl/target/rp2350: workarounds for ROM API issues
tom-van Aug 13, 2024
2e1a763
flash/nor/rp2040: detect flash size including SFDP
tom-van Aug 14, 2024
20d1d44
flash/nor/rp2040: add missing TARGET_HALTED checks
tom-van Aug 14, 2024
26729aa
flash/nor/rp2040: improve flash write buffer size computation
tom-van Aug 14, 2024
c914cfc
flash/nor/rp2040: refactor finalizing calls and use them after erase
tom-van Aug 14, 2024
63f94bb
flash/nor/rp2040: refactoring: change rp2040 to rp2xxx
tom-van Aug 14, 2024
9fce121
doc: document changes in rp2xxx flash driver
tom-van Aug 14, 2024
d29c1c6
flash/nor/rp2xxx: minor code improvements
tom-van Aug 14, 2024
a960887
flash/nor/rp2xxx: drop couple of Java-like const
tom-van Aug 16, 2024
f039fe7
flash/nor/rp2xxx: fix endianness error
tom-van Aug 16, 2024
376d11c
tcl/target/rp2040: add flash size override and reset init event
tom-van Aug 17, 2024
5bb7dbc
flash/nor/rp2xxx: fix flash operation after halt in RISC-V bootsel
Wren6991 Dec 13, 2024
bf66d95
flash/nor/rp2xxx: fix LOG_xxx messages
tom-van Mar 21, 2025
4d4c45c
flash/nor/rp2xxx: define macro BOOTROM_MAGIC_MASK
tom-van Mar 21, 2025
cbd7987
target: stm8: drop include file stm8.h
borneoa Apr 19, 2025
c3fae34
adapter: replace 'interface' with 'adapter driver'
borneoa Mar 16, 2025
da50873
adapter: list supported transports beside adapter name
borneoa Jan 4, 2025
9a5de74
transport: deprecate auto-selection of transport
borneoa Jan 4, 2025
236208a
transport: use a bitmask for the transport
borneoa Dec 22, 2024
a500b2c
adapter: use bitmask for driver's transports
borneoa Feb 12, 2025
8485eb1
transport: validate the transport id's from the driver
borneoa Dec 22, 2024
9643379
transport: use helper/list.h for the list of transports
borneoa Dec 31, 2024
98c09dc
transport: store the transports sorted by alphabetic name order
borneoa Dec 31, 2024
c1c4d48
transport: allow transport name jtag/swd for hla and dapdirect
borneoa Feb 12, 2025
ad53fe6
tcl: convert transport select to jtag and swd
borneoa Dec 23, 2024
420f637
stlink: simplify the use of deprecated HLA transport
borneoa Dec 23, 2024
d8a2f6d
configure.ac: show the Amontec JTAG-Accelerator driver in the config …
Apr 11, 2025
fdd76c8
configure.ac: show the sysfsgpio adapter in the config summary
Apr 10, 2025
639b743
tcl/board: Add config for NUCLEO-U083RC
zapb-0 Dec 13, 2024
98c95df
doc/openocd: Fix Tcl spelling
zapb-0 Apr 14, 2025
efafdd3
doc/manual: Fix Tcl spelling
zapb-0 Apr 14, 2025
d567824
doc/manual: Add guideline for configuration files
zapb-0 Aug 17, 2024
afbd01b
github/workflow: fix warnings for github actions
sobuch Feb 13, 2025
517c40b
Merge up to afbd01b0a46f3a81fe6076c002ad66973dcfb64c from upstream
en-sc May 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions .github/workflows/snapshot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ name: OpenOCD Snapshot

jobs:
package:
runs-on: [ubuntu-20.04]
runs-on: [ubuntu-latest]
env:
DL_DIR: ../downloads
BUILD_DIR: ../build
Expand Down Expand Up @@ -105,8 +105,8 @@ jobs:
# add missing dlls
cd $HOST-root/usr
cp `$HOST-gcc --print-file-name=libwinpthread-1.dll` ./bin/
# required by libftdi1.dll. For the gcc-mingw-10.3.x or later "libgcc_s_dw2-1.dll" will need to be copied.
cp `$HOST-gcc --print-file-name=libgcc_s_sjlj-1.dll` ./bin/
# required by libftdi1.dll
cp `$HOST-gcc --print-file-name=libgcc_s_dw2-1.dll` ./bin/
# prepare the artifact
ARTIFACT="openocd-${OPENOCD_TAG}-${HOST}.tar.gz"
tar -czf $ARTIFACT *
Expand All @@ -122,8 +122,7 @@ jobs:
with:
delete_release: true
tag_name: ${{ env.RELEASE_NAME }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Create Release
uses: ncipollo/release-action@v1
with:
Expand Down
6 changes: 3 additions & 3 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ layered architecture of JTAG interface and TAP support including:
- debug target support (e.g. ARM, MIPS): single-stepping,
breakpoints/watchpoints, gprof profiling, etc;
- flash chip drivers (e.g. CFI, NAND, internal flash);
- embedded TCL interpreter for easy scripting.
- embedded Tcl interpreter for easy scripting.

Several network interfaces are available for interacting with OpenOCD:
telnet, TCL, and GDB. The GDB server enables OpenOCD to function as a
telnet, Tcl, and GDB. The GDB server enables OpenOCD to function as a
"remote target" for source-level debugging of embedded systems using
the GNU GDB program (and the others who talk GDB protocol, e.g. IDA
Pro).
Expand Down Expand Up @@ -42,7 +42,7 @@ openocd -f interface/ftdi/jtagkey2.cfg -c "transport select jtag" \
```

```
openocd -f interface/stlink.cfg -c "transport select hla_swd" \
openocd -f interface/stlink.cfg -c "transport select swd" \
-f target/stm32l0.cfg
```

Expand Down
20 changes: 9 additions & 11 deletions TODO
Original file line number Diff line number Diff line change
Expand Up @@ -12,30 +12,30 @@ may have evolved an idea since it was added here.

Feel free to send patches to add or clarify items on this list, too.

@section thelisttcl TCL
@section thelisttcl Tcl

This section provides possible things to improve with OpenOCD's TCL support.
This section provides possible things to improve with OpenOCD's Tcl support.

- Fix problem with incorrect line numbers reported for a syntax
error in a reset init event.

- organize the TCL configurations:
- organize the Tcl configurations:
- provide more directory structure for boards/targets?
- factor configurations into layers (encapsulation and re-use)

- Fix handling of variables between multiple command line "-c" and "-f"
parameters. Currently variables assigned through one such parameter
command/script are unset before the next one is invoked.

- Isolate all TCL command support:
- Isolate all Tcl command support:
- Pure C CLI implementations using --disable-builtin-tcl.
- Allow developers to build new dongles using OpenOCD's JTAG core.
- At first, provide only low-level JTAG support; target layer and
above rely heavily on scripting event mechanisms.
- Allow full TCL support? add --with-tcl=/path/to/installed/tcl
- Move TCL support out of foo.[ch] and into foo_tcl.[ch] (other ideas?)
- Allow full Tcl support? add --with-tcl=/path/to/installed/tcl
- Move Tcl support out of foo.[ch] and into foo_tcl.[ch] (other ideas?)
- See src/jtag/core.c and src/jtag/tcl.c for an example.
- allow some of these TCL command modules to be dynamically loadable?
- allow some of these Tcl command modules to be dynamically loadable?

@section thelistadapter Adapter

Expand All @@ -60,8 +60,6 @@ changes pending in gerrit.
to replicate it in the drivers, apart in case the driver sets TRST
independently
- add .hla_ops to "adapter"
- HLA is a API level (.hla_ops). Transport should simply be {jtag,swd},
not {hla_jtag,hla_swd}.

@subsection thelistadapterjtagcore JTAG Core

Expand All @@ -77,7 +75,7 @@ directly in minidriver API for better embedded host performance.

The following tasks have been suggested for adding new core JTAG support:

- Improve autodetection of TAPs by supporting tcl escape procedures that
- Improve autodetection of TAPs by supporting Tcl escape procedures that
can configure discovered TAPs based on IDCODE value ... they could:
- Remove guessing for irlen
- Allow non-default irmask/ircapture values
Expand Down Expand Up @@ -135,7 +133,7 @@ TCP/IP packets handled by the server.
- add BSDL support?

A few possible options for the above:
-# Fake a TCL equivalent?
-# Fake a Tcl equivalent?
-# Integrate an existing library?
-# Write a new C implementation a la Jim?

Expand Down
43 changes: 16 additions & 27 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,9 @@ m4_define([LIBFTDI_USB1_ADAPTERS],
m4_define([LIBGPIOD_ADAPTERS],
[[[linuxgpiod], [Linux GPIO bitbang through libgpiod], [LINUXGPIOD]]])

m4_define([SYSFSGPIO_ADAPTER],
[[[sysfsgpio], [Linux GPIO bitbang through sysfs], [SYSFSGPIO]]])

m4_define([REMOTE_BITBANG_ADAPTER],
[[[remote_bitbang], [Remote Bitbang driver], [REMOTE_BITBANG]]])

Expand All @@ -191,6 +194,9 @@ m4_define([JTAG_VPI_ADAPTER],
m4_define([RSHIM_ADAPTER],
[[[rshim], [BlueField SoC via rshim], [RSHIM]]])

m4_define([AMTJTAGACCEL_ADAPTER],
[[[amtjtagaccel], [Amontec JTAG-Accelerator driver], [AMTJTAGACCEL]]])

# The word 'Adapter' in "Dummy Adapter" below must begin with a capital letter
# because there is an M4 macro called 'adapter'.
m4_define([DUMMY_ADAPTER],
Expand Down Expand Up @@ -313,6 +319,7 @@ AC_ARG_ADAPTERS([
LIBFTDI_ADAPTERS,
LIBFTDI_USB1_ADAPTERS,
LIBGPIOD_ADAPTERS,
SYSFSGPIO_ADAPTER,
REMOTE_BITBANG_ADAPTER,
LINUXSPIDEV_ADAPTER,
SERIAL_PORT_ADAPTERS,
Expand All @@ -321,6 +328,7 @@ AC_ARG_ADAPTERS([
JTAG_DPI_ADAPTER,
JTAG_VPI_ADAPTER,
RSHIM_ADAPTER,
AMTJTAGACCEL_ADAPTER,
PCIE_ADAPTERS,
LIBJAYLINK_ADAPTERS
],[auto])
Expand All @@ -339,10 +347,6 @@ AC_ARG_ENABLE([parport_giveio],
[Enable use of giveio for parport (for CygWin only)]),
[parport_use_giveio=$enableval], [parport_use_giveio=])

AC_ARG_ENABLE([amtjtagaccel],
AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
[build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])

AS_CASE(["${host_cpu}"],
[arm*|aarch64], [
AC_ARG_ENABLE([bcm2835gpio],
Expand Down Expand Up @@ -380,10 +384,6 @@ AC_ARG_ENABLE([gw16012],
AS_HELP_STRING([--enable-gw16012], [Enable building support for the Gateworks GW16012 JTAG Programmer]),
[build_gw16012=$enableval], [build_gw16012=no])

AC_ARG_ENABLE([sysfsgpio],
AS_HELP_STRING([--enable-sysfsgpio], [Enable building support for programming driven via sysfs gpios.]),
[build_sysfsgpio=$enableval], [build_sysfsgpio=no])

can_build_rshim=no

AS_CASE([$host_os],
Expand All @@ -392,10 +392,6 @@ AS_CASE([$host_os],
can_build_rshim=yes
],
[
AS_IF([test "x$build_sysfsgpio" = "xyes"], [
AC_MSG_ERROR([sysfsgpio is only available on linux])
])

AS_CASE([$host_os], [freebsd*], [
can_build_rshim=yes
],
Expand Down Expand Up @@ -577,12 +573,6 @@ AS_IF([test "x$parport_use_giveio" = "xyes"], [
AC_DEFINE([PARPORT_USE_GIVEIO], [0], [0 if you don't want parport to use giveio.])
])

AS_IF([test "x$build_amtjtagaccel" = "xyes"], [
AC_DEFINE([BUILD_AMTJTAGACCEL], [1], [1 if you want the Amontec JTAG-Accelerator driver.])
], [
AC_DEFINE([BUILD_AMTJTAGACCEL], [0], [0 if you don't want the Amontec JTAG-Accelerator driver.])
])

AS_IF([test "x$build_gw16012" = "xyes"], [
AC_DEFINE([BUILD_GW16012], [1], [1 if you want the Gateworks GW16012 driver.])
], [
Expand Down Expand Up @@ -611,13 +601,6 @@ AS_IF([test "x$use_internal_jimtcl" = "xyes"], [
])
])

AS_IF([test "x$build_sysfsgpio" = "xyes"], [
build_bitbang=yes
AC_DEFINE([BUILD_SYSFSGPIO], [1], [1 if you want the SysfsGPIO driver.])
], [
AC_DEFINE([BUILD_SYSFSGPIO], [0], [0 if you don't want SysfsGPIO driver.])
])

PKG_CHECK_MODULES([LIBUSB1], [libusb-1.0], [
use_libusb1=yes
AC_DEFINE([HAVE_LIBUSB1], [1], [Define if you have libusb-1.x])
Expand Down Expand Up @@ -709,6 +692,7 @@ PROCESS_ADAPTERS([HIDAPI_USB1_ADAPTERS], ["x$use_hidapi" = "xyes" -a "x$use_libu
PROCESS_ADAPTERS([LIBFTDI_ADAPTERS], ["x$use_libftdi" = "xyes"], [libftdi])
PROCESS_ADAPTERS([LIBFTDI_USB1_ADAPTERS], ["x$use_libftdi" = "xyes" -a "x$use_libusb1" = "xyes"], [libftdi and libusb-1.x])
PROCESS_ADAPTERS([LIBGPIOD_ADAPTERS], ["x$use_libgpiod" = "xyes"], [Linux libgpiod])
PROCESS_ADAPTERS([SYSFSGPIO_ADAPTER], ["x$is_linux" = "xyes"], [Linux sysfs])
PROCESS_ADAPTERS([REMOTE_BITBANG_ADAPTER], [true], [unused])
PROCESS_ADAPTERS([LIBJAYLINK_ADAPTERS], ["x$use_internal_libjaylink" = "xyes" -o "x$use_libjaylink" = "xyes"], [libjaylink-0.2])
PROCESS_ADAPTERS([PCIE_ADAPTERS], ["x$is_linux" = "xyes"], [Linux build])
Expand All @@ -720,12 +704,17 @@ PROCESS_ADAPTERS([JTAG_DPI_ADAPTER], [true], [unused])
PROCESS_ADAPTERS([JTAG_VPI_ADAPTER], [true], [unused])
PROCESS_ADAPTERS([RSHIM_ADAPTER], ["x$can_build_rshim" = "xyes"],
[internal error: validation should happen beforehand])
PROCESS_ADAPTERS([AMTJTAGACCEL_ADAPTER], [true], [unused])
PROCESS_ADAPTERS([DUMMY_ADAPTER], [true], [unused])

AS_IF([test "x$enable_linuxgpiod" != "xno"], [
build_bitbang=yes
])

AS_IF([test "x$enable_sysfsgpio" != "xno"], [
build_bitbang=yes
])

AS_IF([test "x$enable_remote_bitbang" != "xno"], [
build_bitbang=yes
])
Expand Down Expand Up @@ -772,9 +761,7 @@ AM_CONDITIONAL([IMX_GPIO], [test "x$build_imx_gpio" = "xyes"])
AM_CONDITIONAL([AM335XGPIO], [test "x$build_am335xgpio" = "xyes"])
AM_CONDITIONAL([BITBANG], [test "x$build_bitbang" = "xyes"])
AM_CONDITIONAL([USB_BLASTER_DRIVER], [test "x$enable_usb_blaster" != "xno" -o "x$enable_usb_blaster_2" != "xno"])
AM_CONDITIONAL([AMTJTAGACCEL], [test "x$build_amtjtagaccel" = "xyes"])
AM_CONDITIONAL([GW16012], [test "x$build_gw16012" = "xyes"])
AM_CONDITIONAL([SYSFSGPIO], [test "x$build_sysfsgpio" = "xyes"])
AM_CONDITIONAL([USE_LIBUSB1], [test "x$use_libusb1" = "xyes"])
AM_CONDITIONAL([IS_CYGWIN], [test "x$is_cygwin" = "xyes"])
AM_CONDITIONAL([IS_MINGW], [test "x$is_mingw" = "xyes"])
Expand Down Expand Up @@ -871,13 +858,15 @@ m4_foreach([adapter], [USB1_ADAPTERS,
HIDAPI_ADAPTERS, HIDAPI_USB1_ADAPTERS, LIBFTDI_ADAPTERS,
LIBFTDI_USB1_ADAPTERS,
LIBGPIOD_ADAPTERS,
SYSFSGPIO_ADAPTER,
REMOTE_BITBANG_ADAPTER,
LIBJAYLINK_ADAPTERS, PCIE_ADAPTERS, SERIAL_PORT_ADAPTERS,
LINUXSPIDEV_ADAPTER,
VDEBUG_ADAPTER,
JTAG_DPI_ADAPTER,
JTAG_VPI_ADAPTER,
RSHIM_ADAPTER,
AMTJTAGACCEL_ADAPTER,
DUMMY_ADAPTER,
OPTIONAL_LIBRARIES,
COVERAGE],
Expand Down
117 changes: 117 additions & 0 deletions doc/manual/config_files.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
/** @page config_files Configuration Files

This page gives an overview of the different configuration files, what purpose they serve and how they are structured.
The goal of this guide is to ensure well-structured and consistent configuration files.

All configuration files are stored in the @c tcl directory of the project directory.
These files must follow the @ref styletcl and @ref naming_convention.
There are different types of configuration files:

- @ref interface_configs
- @ref target_configs
- @ref board_configs

@note This guideline must be followed for new configuration files.
There may be configuration files that do not comply with this guide for legacy reasons.


@section interface_configs Interface

This configuration file represents a debug (interface) adapter.
This is usually a USB device that provides an interface to one or more transports such as JTAG or SWD.
Other interfaces like ethernet or parallel port are also represented.

A debug adapter configuration file must use the following scheme:

@verbatim
tcl/interface/[vendor]/<adapter name>.cfg
@endverbatim

The `vendor` directory for debug adapters is often omitted because multiple adapters from the same vendor can be represented by a common configuration file.
One counter example are FTDI-based debug adapters.
There are various devices, either standalone or development boards which use FTDI chips but use different chip models or settings.
Their corresponding configuration files are stored in the `ftdi` folder.

The name of the `vendor` folder can also be a more generic term such as `parport` as it is used for parallel port based debug adapters.

If it is foreseeable that new configuration files will be added in the future, create a `vendor` directory even if there is only a single file at the moment.
This prevents that files have to be moved in the future.

@section target_configs Target

This configuration file represents an actual chip.
For example, a microcontroller, FPGA, CPLD, or system on chip (SoC).
A target configuration file always represents an entire device series or family.

A target configuration file must use the following scheme:

@verbatim
tcl/target/<vendor>/<target name>.cfg
@endverbatim

Use the device series or family as `target name`.
For example, the configuration file for the nRF54L series from Nordic Semiconductor is located here:

@verbatim
tcl/target/nordic/nrf54l.cfg
@endverbatim

If there are many similarities between different targets, use a common file to share large pieces of code.
Do not use a single file to represent multiple device series or families.

@section board_configs Board

This configuration file represents a circuit board, for example, a development board.
A board may also contain an on-board debug adapter.

A board configuration file includes existing target and, if available, interface configuration files, since a target is used on many boards.

Reuse existing target and interface configuration files whenever possible.
If a board needs an external debug adapter, do @b not write adapter specific configuration files.


A board configuration file must use the following scheme:

@verbatim
tcl/board/<vendor>/<board name>[-suffix].cfg
@endverbatim

For example, the board configuration file for the NUCLEO-U083RC from STMicroelectronics is located here:

@verbatim
tcl/board/st/nucleo-u083rc.cfg
@endverbatim

In case a board supports different features, a `suffix` can be used to indicate this.
Make sure that the suffix is short and meaningful.

For example, the on-board debug adapter of the FRDM-KV11Z development board can be flashed with a SEGGER J-Link compatible firmware.
Hence, there is the following configuration file:

@verbatim
tcl/board/nxp/frdm-kv11z-jlink.cfg
@endverbatim

The use of a suffix should be chosen carefully.
In many cases it is sufficient to make a certain feature accessible via a variable.

Use a single configuration file for each board.
If there are many similarities between different boards, use a common file to share large pieces of code.


@section naming_convention Naming Convention


The following naming conventions for configuration files and directories must be used:

- Use only lower-case letters and digits for directory and filenames
- Use hyphen characters between consecutive words in identifiers (e.g. `more-than-one-word`)

- Use a common abbreviation for the vendor name, such as
- @c ti for Texas Instruments
- @c st for STMicroelectronics
- @c silabs for Silicon Labs

An extensive list of abbreviations for vendor names can be found [here](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/vendor-prefixes.yaml).

*/
2 changes: 1 addition & 1 deletion doc/manual/helper.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ portability API.

/** @page helperjim OpenOCD Jim API

The Jim API provides access to a small-footprint TCL implementation.
The Jim API provides access to a small-footprint Tcl implementation.

Visit http://jim.tcl.tk/ for more information on Jim.

Expand Down
Loading
Loading