aboutsummaryrefslogtreecommitdiff
path: root/src/jtag/drivers/cmsis_dap_usb.c
AgeCommit message (Collapse)Author
2014-03-17CMSIS-DAP: print a debug message when the USB product string cannot be readJörg Wunsch
As suggested by Stian Skjelstad in a comment in: http://openocd.zylin.com/#/c/2044/ if the USB product string cannot be read, provide a debug message so users might get aware of a potential permission problem when looking at the debug output. Fix style bug found by Jenkins. Change-Id: I6acb1c6261fec6f2bee80e4be513a5c5e29eff79 Signed-off-by: Jörg Wunsch <openocd@uriah.heep.sax.de> Reviewed-on: http://openocd.zylin.com/2048 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2014-03-17All Atmel-provided CMSIS-DAP devices use 512 byte packet sizeJörg Wunsch
The existing CMSIS-DAP driver matches the USB VID/PID against 0x3eb (Atmel VID) and 0x2111 (Atmel EDBG embedded CMSIS-DAP debugger), and then bumps the packet size from its default of 64 to 512. However, it turned out that *all* Atmel-provided CMSIS-DAP devices (EDBG with PID 0x2111; JTAGICE3 with firmware version 3.x, PID 0x2140; new Atmel-ICE [successor of JTAGICE3], PID 0x2141) require a 512-byte packet size. Obviously, all run the same USB implementation inside their custom microcontroller. Thus, it seems best to simply assume that *all* Atmel CMSIS-DAP devices use this packet size, and don't check the PID at all. This has also been filed as Trac bug #68: https://sourceforge.net/apps/trac/openocd/ticket/68 Change-Id: I942af93060fdf265fca3961841638caa6182f877 Signed-off-by: Jörg Wunsch <openocd@uriah.heep.sax.de> Reviewed-on: http://openocd.zylin.com/2045 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-by: Andrey Yurovsky <yurovsky@gmail.com>
2014-03-17Prevent segfault when the USB product string cannot be retrievedJörg Wunsch
In the CMSIS-DAP driver, if nothing has been specified by the user, an attempt is made to find the first device with the (mandatory) substring "CMSIS-DAP" in any USB device's product string. However, while (usually) all devices can be traversed, devices the user does not have permission for cannot be read the product string from, resulting in a NULL pointer. Trying to find the substring "CMSIS-DAP" causes a segementation fault then. This has also been filed as Trac bug #67: https://sourceforge.net/apps/trac/openocd/ticket/67 Change-Id: Idfc9f072e34152e9af99fe1c8ec88c99dea4624c Signed-off-by: Jörg Wunsch <openocd@uriah.heep.sax.de> Reviewed-on: http://openocd.zylin.com/2044 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2014-03-04CMSIS-DAP: Fix build errors on Mac OS XJens Bauer
Rename the argument variable 'wait' to 'delay', as 'wait' conflicts with an API function declared in system header /usr/include/sys/wait.h on Mac OS X. Change-Id: I5742da6e5def6e5ec197e774c3844e4bf0424569 Signed-off-by: Jens Bauer <jens@gpio.dk> Reviewed-on: http://openocd.zylin.com/1973 Tested-by: jenkins Reviewed-by: Andrey Yurovsky <yurovsky@gmail.com> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2014-01-23CMSIS-DAP: auto-detect CMSIS-DAP USB VID:PIDPeter Lawrence
The current OpenOCD implementation requires CMSIS-DAP adapter USB VID:PID values to either be hard-coded in the source or manually supplied by the user's configuration files. The CMSIS-DAP specification stipulates that all compliant adapters should have "CMSIS-DAP" in the product string. This should obviate the need for hard-coding. This patch was previously submitted as changes 1882, 1883, and 1886 but amendments failed to be registered by the server. The functionality was changed from 1886 in response to comments so that user-supplied VID:PID values overrided the CMSIS-DAP auto-detect. Change-Id: Ifb2dc217248359f448e0a42bd1527dd744c434b0 Signed-off-by: Peter Lawrence <majbthrd@gmail.com> Reviewed-on: http://openocd.zylin.com/1888 Tested-by: jenkins Reviewed-by: Xiaofan <xiaofanc@gmail.com> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2014-01-09cmsis-dap: add initial cmsis-dap supportSpencer Oliver
This is based on work from: https://github.com/TheShed/OpenOCD-CMSIS-DAP/tree/cmsis-dap Main changes include moving over to using HIDAPI rather than libusb-1.0 and cleaning up to merge into master. Support for reset using srst has also been added. It has been tested on all the mbed boards as well as the Freedom board from Freescale. These boards only implement SWD mode, however JTAG mode has been tested with a Keil ULINK2 and a stm32 target - but requires a lot more work. Change-Id: I96d5ee1993bc9c0526219ab754c5aad3b55d812d Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Signed-off-by: Andrey Yurovsky <yurovsky@gmail.com> Reviewed-on: http://openocd.zylin.com/1542 Tested-by: jenkins