---

** [tickets:#118] jlink.c: Bug in jlink_usb_io()**

**Status:** new
**Milestone:** 0.9.0
**Created:** Thu Feb 04, 2016 10:33 AM UTC by Alex Gruener, CTO SEGGER
**Last Updated:** Thu Feb 04, 2016 10:33 AM UTC
**Owner:** nobody


Hi,

I am writing here as an official SEGGER J-Link employee.
There is a bug in jlink_usb_io() in jlink.c that comes up with J-Link models 
that incorporate USB Hi-Speed.
It does not occur with older USB Full-Speed models:

~~~~
static int jlink_usb_io(struct jlink *jlink, int out_length, int in_length)
{
    [...]
        /*
         * Section 4.2.4 IN-transaction:
         * read dummy 0-byte packet if transaction size is
         * multiple of 64 bytes but not max. size of 0x8000
         */
        if ((in_length % 64) == 0 && in_length != 0x8000) {
                char dummy_buffer;
                result = usb_bulk_read_ex(jlink->usb_handle, jlink_read_ep,
                        &dummy_buffer, 1, JLINK_USB_TIMEOUT);
                if (result != 0) {
                        LOG_ERROR("dummy byte read failed");
                        return ERROR_JTAG_DEVICE_ERROR;
                }
        }
        return ERROR_OK;
}
~~~~


A dummy byte request should only be done if:
in_length == multiple of MaxPacketSize and not a multiple of 2 KB
MaxPacketSize for Full-Speed: 64 bytes
MaxPacketSize for Hi-Speed: 512 bytes

Correct pseudo-code:

~~~~
MaxPacketSize = _GetEPMaxPacketSize(iEP);
if ((in_length % MaxPacketSize) == 0) {
  if ((in_length % 0x800) != 0) {  // Needed for compatibility with J-Link 
Windows driver behavior
    _ReadDummyByte();
  }
}
~~~~

In case if additional information is needed etc., please to do not hesitate to 
contact me or SEGGER directly.


---

Sent from sourceforge.net because openocd-devel@lists.sourceforge.net is 
subscribed to https://sourceforge.net/p/openocd/tickets/

To unsubscribe from further messages, a project admin can change settings at 
https://sourceforge.net/p/openocd/admin/tickets/options.  Or, if this is a 
mailing list, you can unsubscribe from the mailing list.
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to