This is an automated email from Gerrit. "Marc Schink <[email protected]>" just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/9712
-- gerrit commit 2cc14fd83acbdebb106e93929bc812c186851cb0 Author: Marc Schink <[email protected]> Date: Tue May 12 21:39:23 2026 +0200 adapter/vdebug: Use adapter core for remote address handling Use the remote address handling provided by the adapter core instead of implementing it directly in the driver. Additionally, raise an error when no address is provided. Previously, an empty address and port 0 were used by default. Keep the legacy 'vdebug server' command for backwards compatibility, but mark it as deprecated. Change-Id: Idffb1ff1bd093c247f1849ed4d77eb97442cb5f4 Signed-off-by: Marc Schink <[email protected]> diff --git a/doc/openocd.texi b/doc/openocd.texi index b4bf01b57b..c446fd2a22 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -3694,9 +3694,14 @@ Currently valid @var{variant} values include: @deffn {Interface Driver} {vdebug} Cadence Virtual Debug Interface driver. -@deffn {Config Command} {vdebug server} host:port -Specifies the host and TCP port number where the vdebug server runs. -@end deffn +To connect to the server on @t{192.168.1.10} and port @t{9810}, use: + +@example +adapter driver vdebug +adapter remote 192.168.1.10:9010 +@end example + +The adapter does not support Unix domain sockets. @deffn {Config Command} {vdebug batching} value Specifies the batching method for the vdebug request. Possible values are diff --git a/src/jtag/drivers/vdebug.c b/src/jtag/drivers/vdebug.c index 29bfa8360d..f588b90718 100644 --- a/src/jtag/drivers/vdebug.c +++ b/src/jtag/drivers/vdebug.c @@ -44,6 +44,7 @@ #include <string.h> #include <errno.h> +#include "jtag/adapter.h" #include "jtag/interface.h" #include "jtag/commands.h" #include "transport/transport.h" @@ -207,7 +208,7 @@ struct vd_client { uint32_t targ_time; int hsocket; int64_t poll_ts; - char server_name[32]; + char *server_name; char bfm_path[128]; char mem_path[VD_MAX_MEMORIES][128]; struct vd_rdata rdataq; @@ -872,6 +873,24 @@ static int vdebug_poll(void *priv) static int vdebug_init(void) { + const struct adapter_remote *remote = adapter_get_remote(); + + if (!remote->address) { + LOG_ERROR("Adapter address not specified, use 'adapter remote'"); + return ERROR_FAIL; + } else if (remote->type == ADAPTER_REMOTE_TYPE_UNIX) { + LOG_ERROR("Unix domain socket is not supported by this adapter"); + return ERROR_FAIL; + } + + if (!remote->port) { + LOG_ERROR("A port number must be specified"); + return ERROR_FAIL; + } + + vdc.server_name = remote->address; + vdc.server_port = remote->port; + vdc.hsocket = vdebug_socket_open(vdc.server_name, vdc.server_port); pbuf = calloc(1, sizeof(struct vd_shm)); if (!pbuf) { @@ -1213,25 +1232,6 @@ static int vdebug_dap_run(struct adiv5_dap *dap) return ERROR_OK; } -COMMAND_HANDLER(vdebug_set_server) -{ - if ((CMD_ARGC != 1) || !strchr(CMD_ARGV[0], ':')) - return ERROR_COMMAND_SYNTAX_ERROR; - - char *pchar = strchr(CMD_ARGV[0], ':'); - *pchar = '\0'; - strncpy(vdc.server_name, CMD_ARGV[0], sizeof(vdc.server_name) - 1); - int port = atoi(++pchar); - if (port < 0 || port > UINT16_MAX) { - LOG_ERROR("invalid port number %d specified", port); - return ERROR_COMMAND_SYNTAX_ERROR; - } - vdc.server_port = port; - LOG_DEBUG("server: %s port %u", vdc.server_name, vdc.server_port); - - return ERROR_OK; -} - COMMAND_HANDLER(vdebug_set_bfm) { char prefix; @@ -1311,13 +1311,6 @@ COMMAND_HANDLER(vdebug_set_polling) } static const struct command_registration vdebug_command_handlers[] = { - { - .name = "server", - .handler = &vdebug_set_server, - .mode = COMMAND_CONFIG, - .help = "set the vdebug server name or address", - .usage = "<host:port>", - }, { .name = "bfm_path", .handler = &vdebug_set_bfm, diff --git a/src/jtag/startup.tcl b/src/jtag/startup.tcl index 78b8ac8e35..cd2515e9a1 100644 --- a/src/jtag/startup.tcl +++ b/src/jtag/startup.tcl @@ -471,6 +471,12 @@ proc ulink_download_firmware args { eval ulink download_firmware $args } +lappend _telnet_autocomplete_skip "vdebug server" +proc "vdebug server" args { + echo "DEPRECATED! use 'adapter remote' not 'vdebug server'" + eval adapter remote $args +} + lappend _telnet_autocomplete_skip vsllink_usb_vid proc vsllink_usb_vid args { echo "DEPRECATED! use 'vsllink usb_vid' not 'vsllink_usb_vid'" --
