X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fjtag%2Fdrivers%2Fosbdm.c;h=d1eeedb3377564907d9d04664d2cd00c32b268c0;hp=66dbf3de1d61bc08797f6a59ea02686caa53081d;hb=7568a91c8e2398a113f0b40a2a24a1b91ed12c95;hpb=f9014455241ff908200a7dd903e7aed4a90b665e diff --git a/src/jtag/drivers/osbdm.c b/src/jtag/drivers/osbdm.c index 66dbf3de1d..d1eeedb337 100644 --- a/src/jtag/drivers/osbdm.c +++ b/src/jtag/drivers/osbdm.c @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * ***************************************************************************/ #ifdef HAVE_CONFIG_H # include "config.h" @@ -48,7 +48,7 @@ static struct sequence *queue_add_tail(struct queue *queue, int len) } struct sequence *next; - next = (struct sequence *)malloc(sizeof(*next)); + next = malloc(sizeof(*next)); if (next) { next->tms = calloc(1, DIV_ROUND_UP(len, 8)); if (next->tms) { @@ -98,7 +98,7 @@ static void queue_free(struct queue *queue) static struct queue *queue_alloc(void) { - struct queue *queue = (struct queue *)malloc(sizeof(struct queue)); + struct queue *queue = malloc(sizeof(*queue)); if (queue) queue->head = NULL; else @@ -107,7 +107,7 @@ static struct queue *queue_alloc(void) return queue; } -/* Size of usb communnication buffer */ +/* Size of usb communication buffer */ #define OSBDM_USB_BUFSIZE 64 /* Timeout for USB transfer, ms */ #define OSBDM_USB_TIMEOUT 1000 @@ -130,8 +130,8 @@ static struct queue *queue_alloc(void) /* Lists of valid VID/PID pairs */ -static const uint16_t osbdm_vid[] = { 0x15a2, 0x15a2, 0 }; -static const uint16_t osbdm_pid[] = { 0x0042, 0x0058, 0 }; +static const uint16_t osbdm_vid[] = { 0x15a2, 0x15a2, 0x15a2, 0 }; +static const uint16_t osbdm_pid[] = { 0x0042, 0x0058, 0x005e, 0 }; struct osbdm { struct jtag_libusb_device_handle *devh; /* USB handle */ @@ -150,7 +150,7 @@ static int osbdm_send_and_recv(struct osbdm *osbdm) (char *)osbdm->buffer, osbdm->count, OSBDM_USB_TIMEOUT); if (count != osbdm->count) { - LOG_ERROR("OSBDM communnication error: can't write"); + LOG_ERROR("OSBDM communication error: can't write"); return ERROR_FAIL; } @@ -165,22 +165,22 @@ static int osbdm_send_and_recv(struct osbdm *osbdm) */ if (osbdm->count < 0) { - LOG_ERROR("OSBDM communnication error: can't read"); + LOG_ERROR("OSBDM communication error: can't read"); return ERROR_FAIL; } if (osbdm->count < 2) { - LOG_ERROR("OSBDM communnication error: answer too small"); + LOG_ERROR("OSBDM communication error: reply too small"); return ERROR_FAIL; } if (osbdm->count != osbdm->buffer[1]) { - LOG_ERROR("OSBDM communnication error: answer size mismatch"); + LOG_ERROR("OSBDM communication error: reply size mismatch"); return ERROR_FAIL; } if (cmd_saved != osbdm->buffer[0]) { - LOG_ERROR("OSBDM communnication error: answer command mismatch"); + LOG_ERROR("OSBDM communication error: reply command mismatch"); return ERROR_FAIL; } @@ -219,7 +219,7 @@ static int osbdm_swap(struct osbdm *osbdm, void *tms, void *tdi, } if (length <= 0) { - LOG_ERROR("BUG: bit sequence equal or less to 0"); + LOG_ERROR("BUG: bit sequence equal or less than 0"); return ERROR_FAIL; } @@ -271,13 +271,13 @@ static int osbdm_swap(struct osbdm *osbdm, void *tms, void *tdi, /* Extra check */ if (((osbdm->buffer[2] << 8) | osbdm->buffer[3]) != 2 * swap_count) { - LOG_ERROR("OSBDM communnication error: not proper answer to swap command"); + LOG_ERROR("OSBDM communication error: invalid swap command reply"); return ERROR_FAIL; } /* Copy TDO responce */ - uint8_t *buffer = (uint8_t *)osbdm->buffer + 4; + uint8_t *buffer = osbdm->buffer + 4; for (int bit_idx = 0; bit_idx < length; ) { int bit_count = length - bit_idx; if (bit_count > 16) @@ -375,7 +375,7 @@ static int osbdm_flush(struct osbdm *osbdm, struct queue* queue) static int osbdm_open(struct osbdm *osbdm) { (void)memset(osbdm, 0, sizeof(*osbdm)); - if (jtag_libusb_open(osbdm_vid, osbdm_pid, &osbdm->devh) != ERROR_OK) + if (jtag_libusb_open(osbdm_vid, osbdm_pid, NULL, &osbdm->devh) != ERROR_OK) return ERROR_FAIL; if (jtag_libusb_claim_interface(osbdm->devh, 0) != ERROR_OK) @@ -431,7 +431,7 @@ static int osbdm_add_statemove( int skip_first) { int len = 0; - int tms; + int tms = 0; tap_set_end_state(new_state); if (tap_get_end_state() == TAP_RESET) { @@ -678,7 +678,7 @@ static int osbdm_init(void) return ERROR_FAIL; } else { /* Device successfully opened */ - LOG_INFO("OSBDM has opened"); + LOG_DEBUG("OSBDM init"); } /* Perform initialize command */ @@ -690,33 +690,12 @@ static int osbdm_init(void) return ERROR_OK; } -static int osbdm_khz(int khz, int *speed) -{ - *speed = khz; - return ERROR_OK; -} - -static int osbdm_speed(int speed) -{ - return ERROR_OK; -} - -static int osbdm_speed_div(int speed, int *khz) -{ - *khz = speed; - return ERROR_OK; -} - struct jtag_interface osbdm_interface = { .name = "osbdm", .transports = jtag_only, .execute_queue = osbdm_execute_queue, - .khz = osbdm_khz, - .speed = osbdm_speed, - .speed_div = osbdm_speed_div, - .init = osbdm_init, .quit = osbdm_quit };