Remove support for the GPL incompatible FTDI D2XX library
[openocd.git] / src / jtag / drivers / osbdm.c
index 66dbf3de1d61bc08797f6a59ea02686caa53081d..5db36a122ae943089d54656e57f1f8c9ff102da4 100644 (file)
@@ -13,9 +13,7 @@
  *   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, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
  ***************************************************************************/
 #ifdef HAVE_CONFIG_H
 #      include "config.h"
@@ -48,7 +46,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 +96,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 +105,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 +128,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 +148,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 +163,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 +217,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 +269,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 +373,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 +429,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 +676,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 +688,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
 };

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)