This is an automated email from Gerrit. Matthew Trescott (matthewtresc...@gmail.com) just uploaded a new patch set to Gerrit, which you can find at http://openocd.zylin.com/5852
-- gerrit commit 9b42469dbef66369bb0be4eb5047f5653f308e23 Author: Matthew Trescott <matthewtresc...@gmail.com> Date: Sun Oct 11 02:43:04 2020 -0400 Enable hla_serial for TI ICDI devices Formerly patchset 3 of change 2527 and patchset 3 of change 2528 by John Pham. Used jtag_libusb_open from libusb_helper.h instead of libusb_open_device_with_vid_pid to get device handle, as well as managing context, i.e. similar to stlink_usb. Direct calls to libusb1 are left in. Tested w/ a TM4C123GXL board Change-Id: Ib3d7848cb5ab3c4461a199da4e9df3c7f7584775 Signed-off-by: Matthew Trescott <matthewtresc...@gmail.com> Signed-off-by: John Pham <jhn...@gmail.com> diff --git a/src/jtag/drivers/ti_icdi_usb.c b/src/jtag/drivers/ti_icdi_usb.c index d276e58..e00a917 100644 --- a/src/jtag/drivers/ti_icdi_usb.c +++ b/src/jtag/drivers/ti_icdi_usb.c @@ -31,7 +31,7 @@ #include <target/cortex_m.h> -#include <libusb.h> +#include "libusb_helper.h" #define ICDI_WRITE_ENDPOINT 0x02 #define ICDI_READ_ENDPOINT 0x83 @@ -44,8 +44,7 @@ #define PACKET_END "#" struct icdi_usb_handle_s { - libusb_context *usb_ctx; - libusb_device_handle *usb_dev; + struct libusb_device_handle *usb_dev; char *read_buffer; char *write_buffer; @@ -657,10 +656,7 @@ static int icdi_usb_close(void *handle) return ERROR_OK; if (h->usb_dev) - libusb_close(h->usb_dev); - - if (h->usb_ctx) - libusb_exit(h->usb_ctx); + jtag_libusb_close(h->usb_dev); free(h->read_buffer); free(h->write_buffer); @@ -682,19 +678,16 @@ static int icdi_usb_open(struct hl_interface_param_s *param, void **fd) return ERROR_FAIL; } - LOG_DEBUG("transport: %d vid: 0x%04x pid: 0x%04x", param->transport, - param->vid[0], param->pid[0]); + LOG_DEBUG("transport: %d vid: 0x%04x pid: 0x%04x serial: %s", param->transport, + param->vid[0], param->pid[0], param->serial ? param->serial : ""); /* TODO: convert libusb_ calls to jtag_libusb_ */ if (param->vid[1]) LOG_WARNING("Bad configuration: 'hla_vid_pid' command does not accept more than one VID PID pair on ti-icdi!"); - if (libusb_init(&h->usb_ctx) != 0) { - LOG_ERROR("libusb init failed"); - goto error_open; - } + /* The debugger provides its serial number in the USB descriptor; no need to provide a callback here. */ + jtag_libusb_open(param->vid, param->pid, param->serial, &h->usb_dev, NULL); - h->usb_dev = libusb_open_device_with_vid_pid(h->usb_ctx, param->vid[0], param->pid[0]); if (!h->usb_dev) { LOG_ERROR("open failed"); goto error_open; diff --git a/tcl/interface/ti-icdi.cfg b/tcl/interface/ti-icdi.cfg index 9b46b43..8561a31 100644 --- a/tcl/interface/ti-icdi.cfg +++ b/tcl/interface/ti-icdi.cfg @@ -11,3 +11,7 @@ adapter driver hla hla_layout ti-icdi hla_vid_pid 0x1cbe 0x00fd +# Optionally specify the serial number of TI-ICDI devices, for when using +# multiple devices. Serial numbers can be obtained using lsusb -v +# Ex. +#hla_serial "0F003065" -- _______________________________________________ OpenOCD-devel mailing list OpenOCD-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openocd-devel