struct jaylink_hardware_status hwstatus;
enum jaylink_usb_address address;
size_t length;
+ size_t num_devices;
+ uint32_t host_interfaces;
LOG_DEBUG("Using libjaylink %s (compiled with %s).",
jaylink_version_package_get_string(), JAYLINK_VERSION_PACKAGE_STRING);
return ERROR_JTAG_INIT_FAILED;
}
- ret = jaylink_discovery_scan(jayctx, 0);
+ host_interfaces = JAYLINK_HIF_USB;
+
+ if (use_serial_number)
+ host_interfaces |= JAYLINK_HIF_TCP;
+
+ ret = jaylink_discovery_scan(jayctx, host_interfaces);
if (ret != JAYLINK_OK) {
LOG_ERROR("jaylink_discovery_scan() failed: %s.",
return ERROR_JTAG_INIT_FAILED;
}
- ret = jaylink_get_devices(jayctx, &devs, NULL);
+ ret = jaylink_get_devices(jayctx, &devs, &num_devices);
if (ret != JAYLINK_OK) {
LOG_ERROR("jaylink_get_devices() failed: %s.", jaylink_strerror(ret));
return ERROR_JTAG_INIT_FAILED;
}
- found_device = false;
+ if (!use_serial_number && !use_usb_address && num_devices > 1) {
+ LOG_ERROR("Multiple devices found, specify the desired device.");
+ jaylink_free_devices(devs, true);
+ jaylink_exit(jayctx);
+ return ERROR_JTAG_INIT_FAILED;
+ }
- if (!use_serial_number && !use_usb_address)
- LOG_INFO("No device selected, using first device.");
+ found_device = false;
for (i = 0; devs[i]; i++) {
if (use_serial_number) {
return false;
}
-static int config_trace(bool enabled, enum tpio_pin_protocol pin_protocol,
+static int config_trace(bool enabled, enum tpiu_pin_protocol pin_protocol,
uint32_t port_size, unsigned int *trace_freq)
{
int ret;
return ERROR_FAIL;
}
- if (pin_protocol != ASYNC_UART) {
+ if (pin_protocol != TPIU_PIN_PROTOCOL_ASYNC_UART) {
LOG_ERROR("Selected pin protocol is not supported.");
return ERROR_FAIL;
}
static void jlink_swd_queue_cmd(uint8_t cmd, uint32_t *dst, uint32_t data, uint32_t ap_delay_clk)
{
uint8_t data_parity_trn[DIV_ROUND_UP(32 + 1, 8)];
- if (tap_length + 46 + 8 + ap_delay_clk >= sizeof(tdi_buffer) * 8 ||
+ if (tap_length + 46 + 8 + ap_delay_clk >= swd_buffer_size * 8 ||
pending_scan_results_length == MAX_PENDING_SCAN_RESULTS) {
/* Not enough room in the queue. Run the queue. */
queued_retval = jlink_swd_run_queue();