stlink: deprecate HLA support

The STLink API that supports dap-direct is available from STLink
firmware v2j24, published in early 2015.
We can reasonably expect that any old STLink still in use today
has got at least one firmware update during the last 10 years.

Most of the board files in upstream OpenOCD still use the STLink
in HLA mode. This limits the test coverage of the dap-direct code,
which was introduced in OpenOCD v0.11.0.

- Rename interface/stlink.cfg as interface/stlink-hla.cfg to still
  provide support for HLA, adding a deprecated message.

- Rename interface/stlink-dap.cfg as interface/stlink.cfg to make
  dap-direct the default trasport.

- Add a redirect file interface/stlink-dap.cfg for users that have
  out-of-tree custom board files.

- Update all the board files to the new setup.

- Remove STLink HLA mentions from the documentation, while adding
  a reference to interface/stlink-hla.cfg

Checkpatch-ignore: LONG_LINE
Change-Id: I99366bb03cd3b83f8f408514e657f30e59813063
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/8523
Tested-by: jenkins
Reviewed-by: Andrzej Sierżęga <asier70@gmail.com>
This commit is contained in:
Antonio Borneo 2024-10-12 11:48:05 +02:00
parent 3ce0962f2c
commit 34ec5536c0
55 changed files with 94 additions and 92 deletions

View File

@ -2489,7 +2489,7 @@ This command is only available if your libusb1 is at least version 1.0.16.
Specifies the @var{serial_string} of the adapter to use.
If this command is not specified, serial strings are not checked.
Only the following adapter drivers use the serial string from this command:
arm-jtag-ew, cmsis_dap, esp_usb_jtag, ft232r, ftdi, hla (stlink, ti-icdi), jlink, kitprog, opendus,
arm-jtag-ew, cmsis_dap, esp_usb_jtag, ft232r, ftdi, hla (ti-icdi), jlink, kitprog, opendus,
openjtag, osbdm, presto, rlink, st-link, usb_blaster (ublast2), usbprog, vsllink, xds110.
@end deffn
@ -3206,7 +3206,7 @@ version reported is V2.J21.S4.
Currently Not Supported.
@end deffn
@deffn {Config Command} {hla layout} (@option{stlink}|@option{icdi}|@option{nulink})
@deffn {Config Command} {hla layout} (@option{icdi}|@option{nulink})
Specifies the adapter layout to use.
@end deffn
@ -3214,15 +3214,6 @@ Specifies the adapter layout to use.
Pairs of vendor IDs and product IDs of the device.
@end deffn
@deffn {Config Command} {hla stlink_backend} (usb | tcp [port])
@emph{ST-Link only:} Choose between 'exclusive' USB communication (the default backend) or
'shared' mode using ST-Link TCP server (the default port is 7184).
@emph{Note:} ST-Link TCP server is a binary application provided by ST
available from @url{https://www.st.com/en/development-tools/st-link-server.html,
ST-LINK server software module}.
@end deffn
@deffn {Command} {hla command} command
Execute a custom adapter-specific command. The @var{command} string is
passed as is to the underlying adapter layout handler.
@ -3232,9 +3223,12 @@ passed as is to the underlying adapter layout handler.
@anchor{st_link_dap_interface}
@deffn {Interface Driver} {st-link}
This is a driver that supports STMicroelectronics adapters ST-LINK/V2
(from firmware V2J24), STLINK-V3 and STLINK-V3PWR, thanks to a new API that provides
(from 2015 firmware V2J24), STLINK-V3 and STLINK-V3PWR, thanks to a new API that provides
directly access the arm ADIv5 DAP.
The older API that requires HLA transport is deprecated and will be dropped
from OpenOCD. In mean time it's still available by using @file{interface/stlink-hla.cfg}.
The new API provide access to multiple AP on the same DAP, but the
maximum number of the AP port is limited by the specific firmware version
(e.g. firmware V2J29 has 3 as maximum AP number, while V2J32 has 8).
@ -10677,7 +10671,7 @@ baud with our custom divisor to get 12MHz)
@item OpenOCD invocation line:
@example
openocd -f interface/stlink.cfg \
-c "transport select hla_swd" \
-c "transport select dapdirect_swd" \
-f target/stm32l1.cfg \
-c "stm32l1.tpiu configure -protocol uart" \
-c "stm32l1.tpiu configure -traceclk 24000000 -pin-freq 12000000" \

View File

@ -6,7 +6,7 @@
# This is for using the onboard STLINK
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 96KB
set WORKAREASIZE 0x18000

View File

@ -3,7 +3,7 @@
# This is a ST NUCLEO 8L152R8 board with a single STM8L152R8T6 chip.
# http://www.st.com/en/evaluation-tools/nucleo-8l152r8.html
source [find interface/stlink-dap.cfg]
source [find interface/stlink.cfg]
transport select swim

View File

@ -3,7 +3,7 @@
# This is a ST NUCLEO 8S208RB board with a single STM8S208RBT6 chip.
# https://www.st.com/en/evaluation-tools/nucleo-8s208rb.html
source [find interface/stlink-dap.cfg]
source [find interface/stlink.cfg]
transport select swim

View File

@ -10,7 +10,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
source [find target/stm32f0x.cfg]

View File

@ -5,7 +5,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
source [find target/stm32f1x.cfg]

View File

@ -5,7 +5,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
source [find target/stm32f3x.cfg]

View File

@ -8,7 +8,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
source [find target/stm32f4x.cfg]

View File

@ -5,7 +5,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
source [find target/stm32f7x.cfg]

View File

@ -12,7 +12,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
source [find target/stm32g0x.cfg]

View File

@ -12,7 +12,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
source [find target/stm32g4x.cfg]

View File

@ -5,7 +5,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
source [find target/stm32h7x_dual_bank.cfg]

View File

@ -2,7 +2,7 @@
# This is an ST NUCLEO-H745ZI-Q board with single STM32H745ZITx chip.
source [find interface/stlink-dap.cfg]
source [find interface/stlink.cfg]
transport select dapdirect_swd
# STM32H745xx devices are dual core (Cortex-M7 and Cortex-M4)

View File

@ -4,7 +4,7 @@
# http://www.st.com/en/evaluation-tools/nucleo-l073rz.html
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
set WORKAREASIZE 0x2000

View File

@ -5,7 +5,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
source [find target/stm32l1x_dual_bank.cfg]

View File

@ -5,7 +5,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
source [find target/stm32l4x.cfg]

View File

@ -3,7 +3,7 @@
# This is for STM32L5 Nucleo Dev Boards.
# http://www.st.com/en/evaluation-tools/stm32-mcu-nucleo.html
source [find interface/stlink-dap.cfg]
source [find interface/stlink.cfg]
transport select dapdirect_swd

View File

@ -6,7 +6,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
source [find target/stm32wbx.cfg]

View File

@ -8,7 +8,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 8KB
set WORKAREASIZE 0x2000

View File

@ -8,7 +8,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 128KB
set WORKAREASIZE 0x20000

View File

@ -8,7 +8,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 128KB
set WORKAREASIZE 0x20000

View File

@ -8,7 +8,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 128KB
set WORKAREASIZE 0x20000

View File

@ -8,7 +8,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 128KB
set WORKAREASIZE 0x20000

View File

@ -5,7 +5,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
set WORKAREASIZE 0x2000
source [find target/stm32f0x.cfg]

View File

@ -5,7 +5,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
source [find target/stm32f3x.cfg]

View File

@ -6,7 +6,7 @@
# This is for using the onboard STLINK
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 128KB
set WORKAREASIZE 0x20000

View File

@ -10,7 +10,7 @@
# This is for using the onboard STLINK
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 128KB
set WORKAREASIZE 0x20000

View File

@ -7,7 +7,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
source [find target/stm32f4x.cfg]

View File

@ -7,7 +7,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 128KB
set WORKAREASIZE 0x20000

View File

@ -7,7 +7,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 128KB
set WORKAREASIZE 0x20000

View File

@ -6,7 +6,7 @@
# This is for using the onboard STLINK
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 128KB
set WORKAREASIZE 0x20000

View File

@ -5,7 +5,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 64KB
set WORKAREASIZE 0x10000

View File

@ -6,7 +6,7 @@
# This is for using the onboard STLINK
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 128KB
set WORKAREASIZE 0x20000

View File

@ -6,7 +6,7 @@
# This is for using the onboard STLINK
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 256KB
set WORKAREASIZE 0x40000

View File

@ -6,7 +6,7 @@
# This is for using the onboard STLINK
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 256KB
set WORKAREASIZE 0x40000

View File

@ -6,7 +6,7 @@
# This is for using the onboard STLINK/V2-1
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 256KB
set WORKAREASIZE 0x40000

View File

@ -7,7 +7,7 @@
# This is for using the onboard STLINK
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
set CHIPNAME stm32h735igk6

View File

@ -7,7 +7,7 @@
# This is for using the onboard STLINK
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
set CHIPNAME stm32h745xih6

View File

@ -7,7 +7,7 @@
# This is for using the onboard STLINK
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
set CHIPNAME stm32h747xih6

View File

@ -7,7 +7,7 @@
# This is for using the onboard STLINK
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
set CHIPNAME stm32h750xbh6

View File

@ -7,7 +7,7 @@
# This is for using the onboard STLINK
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
set CHIPNAME stm32h7b3lih6q

View File

@ -8,7 +8,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
source [find target/stm32h7x_dual_bank.cfg]

View File

@ -5,7 +5,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
set WORKAREASIZE 0x2000
source [find target/stm32l0.cfg]

View File

@ -6,7 +6,7 @@
# This is for using the onboard STLINK
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 96KB
set WORKAREASIZE 0x18000

View File

@ -6,7 +6,7 @@
# This is for using the onboard STLINK
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 96KB
set WORKAREASIZE 0x18000

View File

@ -8,7 +8,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
source [find target/stm32l4x.cfg]

View File

@ -6,7 +6,7 @@
# This is for using the onboard STLINK
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 96KB
set WORKAREASIZE 0x18000

View File

@ -6,7 +6,7 @@
# This is for using the onboard STLINK
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
# increase working area to 96KB
set WORKAREASIZE 0x18000

View File

@ -5,7 +5,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
set WORKAREASIZE 0x4000
source [find target/stm32l1.cfg]

View File

@ -3,7 +3,7 @@
# board MB1635x
# http://www.st.com/en/evaluation-tools/stm32mp135f-dk.html
source [find interface/stlink-dap.cfg]
source [find interface/stlink.cfg]
transport select dapdirect_swd

View File

@ -4,7 +4,7 @@
# http://www.st.com/en/evaluation-tools/stm32mp157a-dk1.html
# http://www.st.com/en/evaluation-tools/stm32mp157c-dk2.html
source [find interface/stlink-dap.cfg]
source [find interface/stlink.cfg]
transport select dapdirect_swd

View File

@ -5,7 +5,7 @@
source [find interface/stlink.cfg]
transport select hla_swd
transport select dapdirect_swd
set WORKAREASIZE 0x2000
source [find target/stm32f1x.cfg]

View File

@ -1,22 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-or-later
#
# STMicroelectronics ST-LINK/V1, ST-LINK/V2, ST-LINK/V2-1, STLINK-V3 in-circuit
# debugger/programmer
#
# This new interface driver creates a ST-Link wrapper for ARM-DAP named "dapdirect"
# Old ST-LINK/V1 and ST-LINK/V2 pre version V2J24 don't support "dapdirect"
#
# SWIM transport is natively supported
#
echo "WARNING: interface/stlink-dap.cfg is deprecated, please switch to interface/stlink.cfg"
source [find interface/stlink.cfg]
adapter driver st-link
st-link vid_pid 0x0483 0x3744 0x0483 0x3748 0x0483 0x374b 0x0483 0x374d 0x0483 0x374e 0x0483 0x374f 0x0483 0x3752 0x0483 0x3753 0x0483 0x3754 0x0483 0x3755 0x0483 0x3757
# transport select dapdirect_jtag
# transport select dapdirect_swd
# transport select swim
# Optionally specify the serial number of usb device
# e.g.
# adapter serial "\xaa\xbc\x6e\x06\x50\x75\xff\x55\x17\x42\x19\x3f"

View File

@ -0,0 +1,21 @@
# SPDX-License-Identifier: GPL-2.0-or-later
#
# STMicroelectronics ST-LINK/V1, ST-LINK/V2, ST-LINK/V2-1, STLINK-V3 in-circuit
# debugger/programmer
#
echo "DEPRECATED: OpenOCD support for ST-Link HLA transport will be dropped soon!"
echo "Consider updating your ST-Link firmware to a version >= V2J24 (2015)"
adapter driver hla
hla layout stlink
hla device_desc "ST-LINK"
hla vid_pid 0x0483 0x3744 0x0483 0x3748 0x0483 0x374b 0x0483 0x374d 0x0483 0x374e 0x0483 0x374f 0x0483 0x3752 0x0483 0x3753 0x0483 0x3754 0x0483 0x3755 0x0483 0x3757
# Optionally specify the serial number of ST-LINK/V2 usb device. ST-LINK/V2
# devices seem to have serial numbers with unreadable characters. ST-LINK/V2
# firmware version >= V2.J21.S4 recommended to avoid issues with adapter serial
# number reset issues.
# eg.
# adapter serial "\xaa\xbc\x6e\x06\x50\x75\xff\x55\x17\x42\x19\x3f"

View File

@ -4,15 +4,19 @@
# STMicroelectronics ST-LINK/V1, ST-LINK/V2, ST-LINK/V2-1, STLINK-V3 in-circuit
# debugger/programmer
#
# This new interface driver creates a ST-Link wrapper for ARM-DAP named "dapdirect"
# Old ST-LINK/V1 and ST-LINK/V2 pre version V2J24 don't support "dapdirect"
#
# SWIM transport is natively supported
#
adapter driver hla
hla layout stlink
hla device_desc "ST-LINK"
hla vid_pid 0x0483 0x3744 0x0483 0x3748 0x0483 0x374b 0x0483 0x374d 0x0483 0x374e 0x0483 0x374f 0x0483 0x3752 0x0483 0x3753 0x0483 0x3754 0x0483 0x3755 0x0483 0x3757
adapter driver st-link
st-link vid_pid 0x0483 0x3744 0x0483 0x3748 0x0483 0x374b 0x0483 0x374d 0x0483 0x374e 0x0483 0x374f 0x0483 0x3752 0x0483 0x3753 0x0483 0x3754 0x0483 0x3755 0x0483 0x3757
# Optionally specify the serial number of ST-LINK/V2 usb device. ST-LINK/V2
# devices seem to have serial numbers with unreadable characters. ST-LINK/V2
# firmware version >= V2.J21.S4 recommended to avoid issues with adapter serial
# number reset issues.
# eg.
# transport select dapdirect_jtag
# transport select dapdirect_swd
# transport select swim
# Optionally specify the serial number of usb device
# e.g.
# adapter serial "\xaa\xbc\x6e\x06\x50\x75\xff\x55\x17\x42\x19\x3f"