]> git.gag.com Git - fw/openocd/commitdiff
stlink: always use a valid endpoint
authorTarek BOCHKATI <tarek.bouchkati@gmail.com>
Mon, 30 Mar 2020 11:06:18 +0000 (13:06 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sun, 12 Apr 2020 21:06:02 +0000 (22:06 +0100)
In order to extend the driver to support stlink-server over TCP,
we should always use a valid endpoint, as stlink-server is not permissive
and do not accept the invalid STLINK_NULL_EP.

STLINK_NULL_EP value was used for commands without an expected reply,
this value could be replaced with a valid endpoint without any impact
when the size is set to zero.

Change-Id: I003ad364e03d3a10bc036772db86310d996cbe81
Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@gmail.com>
Reviewed-on: http://openocd.zylin.com/5455
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
src/jtag/drivers/stlink_usb.c

index f4992daa65b38f59b7ca664d1f2246cd84f0626b..45bb5019f95fefaac71d93caa845ed7abd8f08a2 100644 (file)
@@ -55,7 +55,6 @@
 #define STLINK_WRITE_TIMEOUT 1000
 #define STLINK_READ_TIMEOUT 1000
 
-#define STLINK_NULL_EP        0
 #define STLINK_RX_EP          (1|ENDPOINT_IN)
 #define STLINK_TX_EP          (2|ENDPOINT_OUT)
 #define STLINK_TRACE_EP       (3|ENDPOINT_IN)
@@ -1251,7 +1250,8 @@ static int stlink_usb_mode_leave(void *handle, enum stlink_mode type)
 
        assert(handle != NULL);
 
-       stlink_usb_init_buffer(handle, STLINK_NULL_EP, 0);
+       /* command with no reply, use a valid endpoint but zero size */
+       stlink_usb_init_buffer(handle, h->rx_ep, 0);
 
        switch (type) {
                case STLINK_MODE_DEBUG_JTAG:
@@ -1272,7 +1272,7 @@ static int stlink_usb_mode_leave(void *handle, enum stlink_mode type)
                        return ERROR_FAIL;
        }
 
-       res = stlink_usb_xfer_noerrcheck(handle, 0, 0);
+       res = stlink_usb_xfer_noerrcheck(handle, h->databuf, 0);
 
        if (res != ERROR_OK)
                return res;