The firmware "J-Link ARM-OB SAM7 compiled Jun  1 2012 09:33:42"
sometimes times out on reading the serial number and does not seem to
provide the real serial number in the USB descriptor anyway ("123456").

It appears that Segger handle this by ignoring the timeout, so let's do
the same, to avoid OpenOCD regressions in case no serial number was
specified by the user.

In case it cannot be read, treat the serial number as zero.

Signed-off-by: Andreas Färber <afaer...@suse.de>
---
 libjaylink/discovery.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/libjaylink/discovery.c b/libjaylink/discovery.c
index 5919359..8b31955 100644
--- a/libjaylink/discovery.c
+++ b/libjaylink/discovery.c
@@ -191,6 +191,7 @@ static struct jaylink_device *probe_device(struct 
jaylink_context *ctx,
                return NULL;
        }
 
+       buf[0] = 0;
        ret = libusb_get_string_descriptor_ascii(usb_devh, desc.iSerialNumber,
                (unsigned char *)buf, USB_SERIAL_NUMBER_LENGTH + 1);
 
@@ -199,10 +200,8 @@ static struct jaylink_device *probe_device(struct 
jaylink_context *ctx,
        if (ret < 0) {
                log_warn(ctx, "Failed to retrieve serial number: %s.",
                        libusb_error_name(ret));
-               return NULL;
-       }
-
-       if (!parse_serial_number(buf, &serial_number)) {
+               serial_number = 0;
+       } else if (!parse_serial_number(buf, &serial_number)) {
                log_warn(ctx, "Failed to parse serial number.");
                return NULL;
        }
-- 
2.6.0


------------------------------------------------------------------------------
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to