OpenOCD
|
Go to the source code of this file.
Macros | |
#define | MAX_USB_PORTS 7 |
Enumerations | |
enum | { DEV_MEM_NOT_YET_DECIDED , DEV_MEM_AVAILABLE , DEV_MEM_FALLBACK_MALLOC } |
Functions | |
int | jtag_libusb_bulk_read (struct libusb_device_handle *dev, int ep, char *bytes, int size, int timeout, int *transferred) |
int | jtag_libusb_bulk_write (struct libusb_device_handle *dev, int ep, char *bytes, int size, int timeout, int *transferred) |
int | jtag_libusb_choose_interface (struct libusb_device_handle *devh, unsigned int *usb_read_ep, unsigned int *usb_write_ep, int bclass, int subclass, int protocol, int trans_type) |
Find the first interface optionally matching class, subclass and protocol and claim it. More... | |
void | jtag_libusb_close (struct libusb_device_handle *dev) |
int | jtag_libusb_control_transfer (struct libusb_device_handle *dev, uint8_t request_type, uint8_t request, uint16_t value, uint16_t index, char *bytes, uint16_t size, unsigned int timeout, int *transferred) |
static int | jtag_libusb_error (int err) |
int | jtag_libusb_get_pid (struct libusb_device *dev, uint16_t *pid) |
int | jtag_libusb_handle_events_completed (int *completed) |
static bool | jtag_libusb_location_equal (struct libusb_device *device) |
bool | jtag_libusb_match_ids (struct libusb_device_descriptor *dev_desc, const uint16_t vids[], const uint16_t pids[]) |
static bool | jtag_libusb_match_serial (struct libusb_device_handle *device, struct libusb_device_descriptor *dev_desc, const char *serial, adapter_get_alternate_serial_fn adapter_get_alternate_serial) |
int | jtag_libusb_open (const uint16_t vids[], const uint16_t pids[], const char *product, struct libusb_device_handle **out, adapter_get_alternate_serial_fn adapter_get_alternate_serial) |
int | jtag_libusb_set_configuration (struct libusb_device_handle *devh, int configuration) |
static uint8_t * | libusb_dev_mem_alloc (libusb_device_handle *devh, size_t length) |
static int | libusb_dev_mem_free (libusb_device_handle *devh, uint8_t *buffer, size_t length) |
uint8_t * | oocd_libusb_dev_mem_alloc (libusb_device_handle *devh, size_t length) |
Attempts to allocate a block of persistent DMA memory suitable for transfers against the USB device. More... | |
int | oocd_libusb_dev_mem_free (libusb_device_handle *devh, uint8_t *buffer, size_t length) |
Free device memory allocated with oocd_libusb_dev_mem_alloc(). More... | |
static bool | string_descriptor_equal (struct libusb_device_handle *device, uint8_t str_index, const char *string) |
Variables | |
static enum { ... } | dev_mem_allocation |
static struct libusb_device ** | devs |
The usb device list. More... | |
static struct libusb_context * | jtag_libusb_context |
Libusb context. More... | |
#define MAX_USB_PORTS 7 |
Definition at line 23 of file libusb_helper.c.
anonymous enum |
Enumerator | |
---|---|
DEV_MEM_NOT_YET_DECIDED | |
DEV_MEM_AVAILABLE | |
DEV_MEM_FALLBACK_MALLOC |
Definition at line 381 of file libusb_helper.c.
int jtag_libusb_bulk_read | ( | struct libusb_device_handle * | dev, |
int | ep, | ||
char * | bytes, | ||
int | size, | ||
int | timeout, | ||
int * | transferred | ||
) |
Definition at line 266 of file libusb_helper.c.
References ERROR_OK, jtag_libusb_error(), LOG_ERROR, and size.
Referenced by armjtagew_usb_read(), dtc_run_download(), dtc_start_download(), esp_usb_jtag_recv_buf(), ft232r_send_recv(), kitprog_swd_run_queue(), opendous_usb_read(), openjtag_buf_read_cy7c65215(), osbdm_send_and_recv(), rlink_init(), rlink_reset(), stlink_usb_usb_read_trace(), stlink_usb_xfer_rw(), stlink_usb_xfer_v1_get_status(), ublast2_libusb_read(), usbprog_jtag_message(), usbprog_jtag_read_tdo(), and usbprog_jtag_write_and_read().
int jtag_libusb_bulk_write | ( | struct libusb_device_handle * | dev, |
int | ep, | ||
char * | bytes, | ||
int | size, | ||
int | timeout, | ||
int * | transferred | ||
) |
Definition at line 249 of file libusb_helper.c.
References ERROR_OK, jtag_libusb_error(), LOG_ERROR, and size.
Referenced by angie_execute_queued_commands(), angie_i2c_write(), angie_init(), angie_load_bitstream(), armjtagew_usb_write(), dtc_run_download(), ep1_generic_commandl(), ep1_memory_write(), esp_usb_jtag_send_buf(), ft232r_send_recv(), kitprog_swd_run_queue(), opendous_usb_write(), openjtag_buf_write_cy7c65215(), osbdm_send_and_recv(), stlink_usb_xfer_rw(), ublast2_libusb_write(), usbprog_jtag_message(), usbprog_jtag_read_tdo(), usbprog_jtag_write_and_read(), and usbprog_jtag_write_tdi().
int jtag_libusb_choose_interface | ( | struct libusb_device_handle * | devh, |
unsigned int * | usb_read_ep, | ||
unsigned int * | usb_write_ep, | ||
int | bclass, | ||
int | subclass, | ||
int | protocol, | ||
int | trans_type | ||
) |
Find the first interface optionally matching class, subclass and protocol and claim it.
devh | libusb device handle. |
usb_read_ep | A pointer to a variable where the IN endpoint number will be stored. |
usb_write_ep | A pointer to a variable where the OUT endpoint number will be stored. |
bclass | bInterfaceClass to match, or -1 to ignore this field. |
subclass | bInterfaceSubClass to match, or -1 to ignore this field. |
protocol | bInterfaceProtocol to match, or -1 to ignore this field. |
trans_type | bmAttributes Bits 0..1 Transfer type to match, or -1 to ignore this field. |
Definition at line 311 of file libusb_helper.c.
References config, devh, ERROR_FAIL, ERROR_OK, and LOG_DEBUG.
Referenced by angie_init(), esp_usb_jtag_init(), openjtag_init_cy7c65215(), and ulink_init().
void jtag_libusb_close | ( | struct libusb_device_handle * | dev | ) |
Definition at line 221 of file libusb_helper.c.
References jtag_libusb_context.
Referenced by angie_usb_close(), esp_usb_jtag_init(), esp_usb_jtag_quit(), ft232r_quit(), icdi_usb_close(), kitprog_usb_close(), opendous_usb_close(), openjtag_init_cy7c65215(), openjtag_quit_cy7c65215(), osbdm_quit(), stlink_usb_usb_close(), stlink_usb_usb_open(), and ublast2_libusb_init().
int jtag_libusb_control_transfer | ( | struct libusb_device_handle * | dev, |
uint8_t | request_type, | ||
uint8_t | request, | ||
uint16_t | value, | ||
uint16_t | index, | ||
char * | bytes, | ||
uint16_t | size, | ||
unsigned int | timeout, | ||
int * | transferred | ||
) |
Definition at line 229 of file libusb_helper.c.
References ERROR_OK, jtag_libusb_error(), LOG_ERROR, and size.
Referenced by angie_cpu_reset(), angie_load_bitstream(), angie_write_firmware_section(), COMMAND_HANDLER(), esp_usb_jtag_init(), esp_usb_jtag_speed(), ft232r_init(), ft232r_quit(), ft232r_speed(), kitprog_acquire_psoc(), kitprog_get_status(), kitprog_reset_target(), kitprog_set_protocol(), kitprog_set_unknown(), kitprog_swd_seq(), kitprog_swd_sync(), load_usb_blaster_firmware(), opendous_usb_read(), opendous_usb_write(), openjtag_buf_read_cy7c65215(), openjtag_buf_write_cy7c65215(), openjtag_init_cy7c65215(), openjtag_quit_cy7c65215(), ublast2_libusb_init(), and ublast2_write_firmware_section().
|
static |
Definition at line 28 of file libusb_helper.c.
References ERROR_FAIL, ERROR_OK, and ERROR_TIMEOUT_REACHED.
Referenced by jtag_libusb_bulk_read(), jtag_libusb_bulk_write(), jtag_libusb_control_transfer(), and oocd_libusb_dev_mem_free().
int jtag_libusb_get_pid | ( | struct libusb_device * | dev, |
uint16_t * | pid | ||
) |
Definition at line 363 of file libusb_helper.c.
References ERROR_FAIL, and ERROR_OK.
Referenced by stlink_usb_usb_open().
int jtag_libusb_handle_events_completed | ( | int * | completed | ) |
Definition at line 376 of file libusb_helper.c.
References jtag_libusb_context.
|
static |
Definition at line 83 of file libusb_helper.c.
Referenced by jtag_libusb_open().
bool jtag_libusb_match_ids | ( | struct libusb_device_descriptor * | dev_desc, |
const uint16_t | vids[], | ||
const uint16_t | pids[] | ||
) |
Definition at line 53 of file libusb_helper.c.
Referenced by jtag_libusb_open(), and open_matching_device().
|
static |
Definition at line 118 of file libusb_helper.c.
References device, LOG_DEBUG, serial, and string_descriptor_equal().
Referenced by jtag_libusb_open().
int jtag_libusb_open | ( | const uint16_t | vids[], |
const uint16_t | pids[], | ||
const char * | product, | ||
struct libusb_device_handle ** | out, | ||
adapter_get_alternate_serial_fn | adapter_get_alternate_serial | ||
) |
Definition at line 148 of file libusb_helper.c.
References adapter_get_required_serial(), adapter_usb_get_location(), devs, ERROR_FAIL, ERROR_OK, jtag_libusb_context, jtag_libusb_location_equal(), jtag_libusb_match_ids(), jtag_libusb_match_serial(), LOG_ERROR, LOG_INFO, NULL, serial, and string_descriptor_equal().
Referenced by angie_usb_open(), armjtagew_usb_open(), esp_usb_jtag_init(), ft232r_init(), kitprog_usb_open(), opendous_usb_open(), openjtag_init_cy7c65215(), osbdm_open(), rlink_init(), stlink_usb_usb_open(), ublast2_libusb_init(), and usbprog_jtag_open().
int jtag_libusb_set_configuration | ( | struct libusb_device_handle * | devh, |
int | configuration | ||
) |
Definition at line 283 of file libusb_helper.c.
References config, devh, and NULL.
Referenced by esp_usb_jtag_init(), opendous_usb_open(), and stlink_usb_usb_open().
|
static |
Definition at line 389 of file libusb_helper.c.
References NULL.
Referenced by oocd_libusb_dev_mem_alloc().
|
static |
Definition at line 394 of file libusb_helper.c.
Referenced by oocd_libusb_dev_mem_free().
uint8_t* oocd_libusb_dev_mem_alloc | ( | libusb_device_handle * | devh, |
size_t | length | ||
) |
Attempts to allocate a block of persistent DMA memory suitable for transfers against the USB device.
Fall-back to the ordinary heap malloc() if the first libusb_dev_mem_alloc() call fails.
devh | libusb device handle. |
length | size of desired data buffer |
Definition at line 401 of file libusb_helper.c.
References buffer, dev_mem_allocation, DEV_MEM_AVAILABLE, DEV_MEM_FALLBACK_MALLOC, DEV_MEM_NOT_YET_DECIDED, devh, length, libusb_dev_mem_alloc(), and NULL.
Referenced by cmsis_dap_usb_alloc().
int oocd_libusb_dev_mem_free | ( | libusb_device_handle * | devh, |
uint8_t * | buffer, | ||
size_t | length | ||
) |
Free device memory allocated with oocd_libusb_dev_mem_alloc().
Uses either libusb_dev_mem_free() or free() consistently with the used method of allocation.
devh | libusb device handle. |
buffer | pointer to the previously allocated memory |
length | size of desired data buffer |
Definition at line 417 of file libusb_helper.c.
References buffer, dev_mem_allocation, DEV_MEM_AVAILABLE, DEV_MEM_FALLBACK_MALLOC, DEV_MEM_NOT_YET_DECIDED, devh, ERROR_FAIL, ERROR_OK, jtag_libusb_error(), length, and libusb_dev_mem_free().
Referenced by cmsis_dap_usb_free().
|
static |
Definition at line 91 of file libusb_helper.c.
References device, LOG_DEBUG, and LOG_ERROR.
Referenced by jtag_libusb_match_serial(), and jtag_libusb_open().
enum { ... } dev_mem_allocation |
Referenced by oocd_libusb_dev_mem_alloc(), and oocd_libusb_dev_mem_free().
|
static |
The usb device list.
Definition at line 26 of file libusb_helper.c.
Referenced by cmsis_dap_hid_open(), jlink_open_device(), and jtag_libusb_open().
|
static |
Libusb context.
Definition at line 25 of file libusb_helper.c.
Referenced by jtag_libusb_close(), jtag_libusb_handle_events_completed(), and jtag_libusb_open().