- LOG_DEBUG("vsllink found on %04X:%04X",
- vsllink_usb_vid, vsllink_usb_pid);
-
- to_tmp = VSLLINK_USB_TIMEOUT;
- VSLLINK_USB_TIMEOUT = 100;
- check_cnt = 0;
- while (check_cnt < 5) {
- vsllink_simple_command(VERSALOON_GET_INFO);
- result = vsllink_usb_read(vsllink_handle);
-
- if (result > 2) {
- vsllink_usb_in_buffer[result] = 0;
- vsllink_buffer_size = vsllink_usb_in_buffer[0]
- + (vsllink_usb_in_buffer[1] << 8);
- strncpy(version_str, (char *)vsllink_usb_in_buffer + 2,
- sizeof(version_str));
- LOG_INFO("%s", version_str);
-
- /* free the pre-allocated memory */
- free(vsllink_usb_in_buffer);
- free(vsllink_usb_out_buffer);
- vsllink_usb_in_buffer = NULL;
- vsllink_usb_out_buffer = NULL;
-
- /* alloc new memory */
- vsllink_usb_in_buffer = malloc(vsllink_buffer_size);
- vsllink_usb_out_buffer = malloc(vsllink_buffer_size);
- if ((vsllink_usb_in_buffer == NULL) ||
- (vsllink_usb_out_buffer == NULL)) {
- LOG_ERROR("Not enough memory");
- exit(-1);
- } else
- LOG_INFO("buffer size for USB is %d bytes",
- vsllink_buffer_size);
-
- /* alloc tms/tdi/tdo buffer */
- tap_buffer_size = (vsllink_buffer_size - 3) / 2;
- tms_buffer = (uint8_t *)malloc(tap_buffer_size);
- tdi_buffer = (uint8_t *)malloc(tap_buffer_size);
- tdo_buffer = (uint8_t *)malloc(tap_buffer_size);
- if ((tms_buffer == NULL) || (tdi_buffer == NULL) ||
- (tdo_buffer == NULL)) {
- LOG_ERROR("Not enough memory");
- exit(-1);
- }
- break;
- }
- vsllink_simple_command(VSLLINK_CMD_DISCONN);
- check_cnt++;