+// SPDX-License-Identifier: GPL-2.0-or-later
+
/***************************************************************************
* Copyright (C) 2009-2010 by Simon Qian <SimonQian@SimonQian.com> *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program. If not, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
/* Versaloon is a programming tool for multiple MCUs.
#include "config.h"
#endif
+#include <jtag/adapter.h>
#include <jtag/interface.h>
#include <jtag/commands.h>
#include <jtag/swd.h>
static struct vsllink *vsllink_handle;
-static int vsllink_execute_queue(void)
+static int vsllink_execute_queue(struct jtag_command *cmd_queue)
{
- struct jtag_command *cmd = jtag_command_queue;
+ struct jtag_command *cmd = cmd_queue;
int scan_size;
enum scan_type type;
uint8_t *buffer;
vsllink_free_buffer();
vsllink_usb_close(vsllink_handle);
+ libusb_exit(vsllink_handle->libusb_ctx);
free(vsllink_handle);
return ERROR_OK;
versaloon_interface.adaptors.gpio.config(0, GPIO_TRST, 0,
GPIO_TRST, GPIO_TRST);
versaloon_interface.adaptors.swd.init(0);
- vsllink_swd_frequency(jtag_get_speed_khz() * 1000);
+ vsllink_swd_frequency(adapter_get_speed_khz() * 1000);
vsllink_swd_switch_seq(JTAG_TO_SWD);
} else {
}
versaloon_interface.adaptors.jtag_raw.init(0);
- versaloon_interface.adaptors.jtag_raw.config(0, jtag_get_speed_khz());
+ versaloon_interface.adaptors.jtag_raw.config(0, adapter_get_speed_khz());
versaloon_interface.adaptors.gpio.config(0, GPIO_SRST | GPIO_TRST,
GPIO_TRST, GPIO_SRST, GPIO_SRST);
}
return ERROR_OK;
}
-COMMAND_HANDLER(vsllink_handle_usb_serial_command)
-{
- if (CMD_ARGC > 1)
- return ERROR_COMMAND_SYNTAX_ERROR;
-
- free(versaloon_interface.usb_setting.serialstring);
-
- if (CMD_ARGC == 1)
- versaloon_interface.usb_setting.serialstring = strdup(CMD_ARGV[0]);
- else
- versaloon_interface.usb_setting.serialstring = NULL;
-
- return ERROR_OK;
-}
-
COMMAND_HANDLER(vsllink_handle_usb_bulkin_command)
{
if (CMD_ARGC != 1)
char desc_string[256];
int retval;
- if (versaloon_interface.usb_setting.serialstring) {
+ if (adapter_get_required_serial()) {
retval = libusb_get_string_descriptor_ascii(usb_device_handle,
usb_desc->iSerialNumber, (unsigned char *)desc_string,
sizeof(desc_string));
if (retval < 0)
return ERROR_FAIL;
- if (strncmp(desc_string, versaloon_interface.usb_setting.serialstring,
+ if (strncmp(desc_string, adapter_get_required_serial(),
sizeof(desc_string)))
return ERROR_FAIL;
}
.help = "Set USB PID",
.usage = "<pid>",
},
- {
- .name = "usb_serial",
- .handler = &vsllink_handle_usb_serial_command,
- .mode = COMMAND_CONFIG,
- .help = "Set or disable check for USB serial",
- .usage = "[<serial>]",
- },
{
.name = "usb_bulkin",
.handler = &vsllink_handle_usb_bulkin_command,