aboutsummaryrefslogtreecommitdiff
path: root/src/jtag
AgeCommit message (Collapse)Author
2014-02-24ft2232: warn about lack of TRST on "turtle" adapterPaul Fertser
This patch fixes a build error (assigning a variable to itself) with clang. Since this adapter lacks trst, trying to use it in reset_config will fail silently. Warn the user accordingly. Change-Id: I16fd20936f00d7ff82962f4fcc629ff434aa4dce Reported-by: Rainer Müller <raimue@codingfarm.de> Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/1946 Tested-by: jenkins 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-20Retire jtag_add_dr_outAndreas Fritiofson
The out only version of jtag_add_dr_scan smells like a bogus optimization that complicates the minidriver API for questionable gain. The function was only used by four old ARM targets. Rewrite the callers to use the generic function and remove all implementations. Change-Id: I13b643687ee8ed6bc9b6336e7096c34f40ea96af Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1801 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2014-01-20jtag/drivers: add USB-Blaster IIFranck Jullien
This patchs adds a new access driver for the existing USB-Blaster interface driver. This interface (as it is build-in on the sockit development board) is composed of a Cypress EZ-USB plus a CPLD. The Cypress chip as an embedded 8051 microcontroller. When it's powered up, the firmware is downloaded to the chip then the device is disconnected and reconnected with the new firmware. The USB-Blaster II protocol is almost identicial to the old one. The only difference is that you need to send a 0x5F before read TDO back. This command seems to copy TDO buffer datas to the endpoint buffer. Driver will be auto enabled if libusb-1.0 is detected. Change-Id: I562a720a68cb4dcabeab791947d5d38776cb70fa Signed-off-by: Franck Jullien <franck.jullien@gmail.com> Reviewed-on: http://openocd.zylin.com/1791 Tested-by: jenkins Reviewed-by: Robert Jarzmik <robert.jarzmik@free.fr> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2014-01-15Conform to C99 integer types format specifiersHsiangkai Wang
Review and modify to conform to C99 integer types format specifiers. Use arm-none-eabi toolchain to build successfully. Change-Id: If855072a8f88886809309155ac6d031dcfcbc4b2 Signed-off-by: Hsiangkai Wang <hsiangkai@gmail.com> Signed-off-by: Hsiangkai <hsiangkai@gmail.com> Reviewed-on: http://openocd.zylin.com/1794 Tested-by: jenkins 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
2013-12-31jtag_vpi: make the server address configurableFranck Jullien
Change-Id: I58e89c789b79ffb0b54ef94d208be876c271ddf7 Signed-off-by: Franck Jullien <franck.jullien@gmail.com> Reviewed-on: http://openocd.zylin.com/1840 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-12-22stlink: remove stlink_api commandMathias K
Remove stlink_api command. Change-Id: I8f7885d3756fec462f9ebbee2ed285a98a51366c Signed-off-by: Mathias K <kesmtp@freenet.de> Reviewed-on: http://openocd.zylin.com/1760 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-12-22jtag_vpi: fix build errors under MinGWFranck Jullien
Change-Id: Ic13f9982014ead811e2f2d737ca1621e0e85577e Signed-off-by: Franck Jullien <franck.jullien@gmail.com> Reviewed-on: http://openocd.zylin.com/1839 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-12-17versaloon: Finish support for serial number matchingAndreas Fritiofson
Add a command to specify the serial string and pass it to the find helper. Actual matching was already supported for both serial and product but was using hard coded string indices. Instead use the indices from the device descriptor. Change-Id: I17c7538e5ad301ef41eace1ee70a202adab23bb4 Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1816 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-11-07hla: Make consistent parameter namingMathias K
Rename fd to handle. Change-Id: I98615aed1546976d00b0f20856d4e8e75f83c575 Signed-off-by: Mathias K <kesmtp@freenet.de> Reviewed-on: http://openocd.zylin.com/1761 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-11-06ulink: Fix libusb include changed since pkg-config mergeAndreas Fritiofson
Change-Id: I1556aaf117f99de046e3c16d5386faaaefdfefd8 Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1795 Reviewed-by: Peter Stuge <peter@stuge.se> Tested-by: jenkins
2013-11-06jtag: fix support for really long scansPaul Fertser
When programming large FPGAs the generated SVF files might contain really long SDR scans. They won't fit in the 1MiB jtag scan page at all, so in this case the allocated page needs to be bigger. The current code was silently corrupting memory. One particular example was sent by Volter targetting XC3S4000. It has an SDR 11316992 bits long, that is 1414624 bytes. Change-Id: I39f18d7e0654f2dbdf37df58c837c9ec1fb2aa2a Reported-by: "Voltner, Jiří" <j.voltner@era.aero> Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/1792 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-11-06Correct argument numbering in trace commandAlan Bowman
The trace command was opening a file named with the source frequency. This change correctly passes the filename that is specified. Change-Id: Ia2eb8eda0e1e0f4f44b05c3a0ce7bef3bda51446 Signed-off-by: Alan Bowman <alan.michael.bowman@gmail.com> Reviewed-on: http://openocd.zylin.com/1800 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-10-31ti_icdi_usb: Remove unnecessary casts and fix byte order bugsAndreas Fritiofson
Found by grepping for pointer casts. Some additional cast can be removed if hexify/unhexify arguments are changed to a more suitable type. Change-Id: I13796b056f00976979bf0e754de3aa7648f7f321 Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1778 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-10-31ftdi: Remove unnecessary castAndreas Fritiofson
Also make sure future growth of the tap_get_tms_path() return value will get noticed. Change-Id: Id859b463e5fdc819a4bc3b4845bf4363fbe713af Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1768 Tested-by: jenkins Reviewed-by: Mathias Küster <kesmtp@freenet.de> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-10-31Remove unnecessary castsAndreas Fritiofson
Change-Id: Ia97283707282ccccdc707c969f59337313b4e291 Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1767 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-10-31Clean up const usage to avoid excessive castingAndreas Fritiofson
Don't use const on pointers that hold heap allocated data, because that means functions that free them must cast away the const. Do use const on pointer parameters or fields that needn't be modified. Remove pointer casts that are no longer needed after fixing the constness. Change-Id: I5d206f5019982fd1950bc6d6d07b6062dc24e886 Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1668 Tested-by: jenkins Reviewed-by: Mathias Küster <kesmtp@freenet.de> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-10-29hla/stlink: Re-order trace parameters to allow trace output file to be optionalJames G. Smith
Re-order the "trace" parameters to allow the raw capture (log) file to be an optional feature. The clock frequency for calculating the "Async Clock Prescalar" is always required when enabling trace processing and is now the first "required" parameter. The ST-Link driver is updated to use the (required parameter) "trace_source_hz" non-zero value as the indicator of trace being required, rather than the now optional output file descriptor being non-NULL. Background: This patch is groundwork for extending the OpenOCD SWO capture to implement other (OpenOCD built-in) ITM/DWT processing where the core trace support is required, but there is no requirement to store raw trace data to a configured host file. By itself this patch is almost a functional NOP, since without the other processing in place there is no reason NOT to specify a capture file. Change-Id: Ibc385dd0a7adaf9bd652bceded27262fef35fd59 Signed-off-by: James G. Smith <jsmith@ecoscentric.com> Reviewed-on: http://openocd.zylin.com/1660 Tested-by: jenkins Reviewed-by: Mathias Küster <kesmtp@freenet.de> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-10-29hla_interface: init trst, srst variables.Sergey A. Borshch
There is an remark in jtag_srst and jtag_trst variables declaration: /* * JTAG adapters must initialize with TRST and SRST de-asserted * (they're negative logic, so that means *high*). But some * hardware doesn't necessarily work that way ... so set things * up so that jtag_init() always forces that state. */ but in hla_target such forsing is missed and both variables remains uninitialized until "reset" command issued, It prevents target polling when connecting to running target. Change-Id: Ia620d8794cca8ba1403f5c5f24767e730033748a Signed-off-by: Sergey A. Borshch <sb-sf@users.sourceforge.net> Reviewed-on: http://openocd.zylin.com/1698 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-by: Mathias Küster <kesmtp@freenet.de>
2013-10-15jtag_vpi: use DIV_ROUND_UPFranck Jullien
Change-Id: I31d315a79a1587d7873c5b8713daf8276fa146d0 Signed-off-by: Franck Jullien <franck.jullien@gmail.com> Reviewed-on: http://openocd.zylin.com/1683 Tested-by: jenkins Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
2013-10-15jtag_vpi: fix path move functionFranck Jullien
Change-Id: I82bf6f733e0d9cb5c86553d0827c558fa98aa247 Signed-off-by: Franck Jullien <franck.jullien@gmail.com> Reviewed-on: http://openocd.zylin.com/1672 Tested-by: jenkins Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
2013-10-15bcm2835gpio: use maximum drive strengthPaul Fertser
According to the docs, the default drive strength for the GPIO pads is 8mA but they're capable of 16mA. Configure GPIO 0-27 to use the maximum (as they might be used on high enough frequency with JTAG). Change-Id: I621737a1b0a855bb97b56ce2cc46c0e385b74f5d Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/1633 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-10-07jtag/tcl: Avoid casting away constAndreas Fritiofson
Here, in_value == out_value, so free the non-const one. Change-Id: I017ad9e7519711ac0c9da79265be7daaa846f356 Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1667 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-10-07jtag/tcl: Remove no-op freeAndreas Fritiofson
And use calloc instead of malloc+memset. Change-Id: Icc1ed6e34904972bb5d3728307dcae5c55b32fc3 Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1666 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-10-07jtag/tcl: Fix double free in jtag newtap argument parsingAndreas Fritiofson
Found when grepping for void* casts. I'm pretty sure there are about *picking a number out of the blue* 0.31 bugs per pointer cast in OpenOCD. Verified by valgrind, i.e.: valgrind openocd -f interface/jtagkey.cfg -c "jtag newtap dummy cpu -irlen foo" Change-Id: Idc12e8f18036cc908fdb572828fa46563be14242 Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1665 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-10-03hla: if the idcode callback returns 0, treat as a wildcardPaul Fertser
Also document the callback accordingly. Change-Id: I7e8ef481e8b5391b763b7f7187fac023e9fe04df Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/1673 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-09-25jlink: improve USB read during jlink_tap_executePhilip Craig
Previously, when doing EMU_CMD_HW_JTAG3 commands we would do two reads, one to read the data, and one to read the result. However, we can just do a single larger read instead. The motivation for this change is a weird problem. If I run the Segger software before running OpenOCD, then the first read always fails: Error: usb_bulk_read failed (requested=1, result=0) Error: jlink_tap_execute, wrong result -107 (expected 1) Sniffing the USB traffic shows that the J-Link is returning an overflow error, meaning it is expecting to return the full result in a single read. Change-Id: I75e020d3b3732c9a74ee3d31838fdf17a7fac24c Signed-off-by: Philip Craig <phil@blackmoth.com.au> Reviewed-on: http://openocd.zylin.com/1447 Tested-by: jenkins Reviewed-by: Xiaofan <xiaofanc@gmail.com> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-09-25jlink: Replace crazy home cooked assertion with a real oneAndreas Fritiofson
Change-Id: I83d66ddef34965dd94a0ff76aa1367cc9d19f2df Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1644 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-09-25bus_blaster: do not fail on missing get_latency_timerSøren Jørvang
Patch submitted from Trac #64 Seems certain clones do not correctly emulate the ftdi chip, if the call to read the latency timer fails then do not treat this as a failure. Change-Id: Iae671b926d101adf1010639d11ca46c58d0af524 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/1627 Tested-by: jenkins Reviewed-by: Xiaofan <xiaofanc@gmail.com>
2013-09-25hla: move memory read/write functionality to driverSpencer Oliver
Due to issues reported when using the jtag mode of the stlink (see Trac #61), the functionality/checking has been moved to the driver. This change also fixes unaligned 32bit memory read/write for the stlink. From testing this change also brings a 3KiB/s speed increase, this is due to the larger read/write packets. Change-Id: I8234110e7e49a683f4dadd54c442ecdc3c47b320 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/1632 Tested-by: jenkins Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
2013-09-25stlink: remove usb timeout magic numbersSpencer Oliver
Change-Id: I4ec4cb0bc344c4c1de9113fa12ed84e5e2e87b31 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/1631 Tested-by: jenkins Reviewed-by: Xiaofan <xiaofanc@gmail.com> Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
2013-09-25hla: cleanup read/write apiSpencer Oliver
This is the first part in moving the adapter specific api back into the driver. The next task is to also move the hla read/write buffer size handling. Change-Id: I86a19144b50b6de18659bfcd05b3729b2cafc051 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/1621 Tested-by: jenkins Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
2013-09-13configure: auto-enable USB adapters based on libusb availabilityPaul Fertser
This unifies the way the USB adapters are handled, and enables them automatically whenever possible (until explicitly disabled). If an adapter is explicitly enabled but can't be built, abort the configure. Also add infrastructure for generic handling of adapter drivers in configure and print a summary of the configuration results after finishing. The m4 quoting is as conservative as I could get it, and seems appropriate. Change-Id: I1655691e5ea0d8eb9e3f67830b96992ffe33640a Signed-off-by: Paul Fertser <fercerpav@gmail.com> Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1475 Reviewed-by: Xiaofan <xiaofanc@gmail.com> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk> Tested-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-09-13libusb: require pkg-config supportPaul Fertser
An alternative approach to show how much cleaner the pure pkg-config way is. This changes the discovery procedures for libusb-1.0 and libusb-0.1, making them depend on pkg-config being properly installed and configured, including the necessary build host configuration for the cross-builds (see http://www.flameeyes.eu/autotools-mythbuster/pkgconfig/cross-compiling.html) It should make it possible to compile OpenOCD without changes and extra effort on GNU/Linux, FreeBSD users would need to supply a .pc file for their libusb implementation or add LIBUSB1_LIBS and LIBUSB1_CFLAGS to the configure environment. Change-Id: I826e378dd1e0d101a549a573b2c63212a7e00b64 Signed-off-by: Paul Fertser <fercerpav@gmail.com> Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1467 Reviewed-by: Xiaofan <xiaofanc@gmail.com> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk> Tested-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-09-13nds32: support multi-target debuggingHsiangkai Wang
Change-Id: If767f646b234dbcdb01946e5d13a3a6a29df2d78 Signed-off-by: Hsiangkai Wang <hsiangkai@gmail.com> Reviewed-on: http://openocd.zylin.com/1581 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-09-13nds32: change default valueHsiangkai Wang
Change-Id: I0505bdc0e75543a3b205981339c5b9fa78a080ca Signed-off-by: Hsiangkai Wang <hsiangkai@gmail.com> Reviewed-on: http://openocd.zylin.com/1575 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-09-13nds32: support Andes profiling functionHsiangkai Wang
Change-Id: Ibc45ec5777d6841956c02de6b4ae8e74c2a6de37 Signed-off-by: Hsiangkai Wang <hsiangkai@gmail.com> Reviewed-on: http://openocd.zylin.com/1585 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-09-13aice: support batch commandsHsiangkai Wang
Change-Id: I6846362d98374c93f45f339fb1279fc71721e696 Signed-off-by: Hsiangkai Wang <hsiangkai@gmail.com> Reviewed-on: http://openocd.zylin.com/1584 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-09-13aice: Always setup SDP basic modeHsiangkai Wang
Change-Id: I1c0c11c2b9097b25324da0591edf036af207dbe9 Signed-off-by: Hsiangkai Wang <hsiangkai@gmail.com> Reviewed-on: http://openocd.zylin.com/1567 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-09-13aice: use keep_alive() to avoid timeout warning messagesHsiangkai Wang
As polling $dbger, call keep_alive() to avoid timeout messages. Change-Id: Ia03d90535c2bd6049763209194c21f70fd8b7e8b Signed-off-by: Hsiangkai Wang <hsiangkai@gmail.com> Reviewed-on: http://openocd.zylin.com/1566 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-09-10sysfsgpio: fix a typo in the informational outputPaul Fertser
Change-Id: I0c9bc281e4e913f9eacba3b8b60585217a1caf2e Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/1616 Tested-by: jenkins Reviewed-by: Peter Stuge <peter@stuge.se>
2013-09-08jtag: drivers: Add JTAP VPI client driverFranck Jullien
This patch adds a driver for the jtag_vpi server [1]. This server is now part of the ORPSoC version 3 (OpenRISC Reference Platform SoC). The jtag_vpi server provides an interface between OpenOCD and a simulated core. [1] http://github.com/fjullien/jtag_vpi Change-Id: I717b72cace4845f66c878581345074f99002e21a Signed-off-by: Franck Jullien <franck.jullien@gmail.com> Reviewed-on: http://openocd.zylin.com/1609 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-08-29stlink: Add workaround for intermittent FW info retrieval failureAndrey Smirnov
It appears that on some host USB configurations(2012 MacBook Air) multiple restarts of openocd tool cause the FW on STLINKv2 dongle to go into a weird state in which it will no longer respond to STLINK_GET_VERSION command. This patch adds code that, if said request fails for the first time, attempts to reset the device and retry to initialize it and obtain FW information one more time. Change-Id: I7227fc972adb49d52ae700ad48ab9f66b2aaa72c Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Reviewed-on: http://openocd.zylin.com/1561 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
2013-08-29stlink_usb: remove gcc-specific constantAndrey Yurovsky
Replace 0b10 with 0x02, 0b is a GCC extension and isn't supported by clang, for instance, so compiling on OS X will fail. No functional changes. Change-Id: Ie882be1563df03e7ad3da0bc9aee65a907a29549 Signed-off-by: Andrey Yurovsky <yurovsky@gmail.com> Reviewed-on: http://openocd.zylin.com/1560 Tested-by: jenkins Reviewed-by: Xiaofan <xiaofanc@gmail.com> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-08-07stlink: add SWO tracing supportAndrey Yurovsky
Enable reading the SWO trace output via STLinkv2 dongles that support it. This adds an optional initialization parameter "trace" with which the user specifies a destination file where SWO trace output is appended as it comes in as well as the trace module's source clock rate. STLink will be configured for a 2MHz SWO data rate (STLink's highest supported rate) if the source clock is > 2MHz, otherwise the source clock is used as the data rate directly. For example: trace swo.log 168000000 If "trace" is specified with a usable file path, the stlink_usb driver will attempt to configure and read SWO trace data as follows: - on _run(), the target's TPI and TMI are configured and the STLinkv2 is told to enable tracing. Only generic ARM TPI and TMI registers are configured, any MCU-specific settings (ex: pin routing) are the responsibility of the target firmware. The configuration applied is based on the STLinkv2's capabilities (UART emulation). - on _v2_get_status(), the trace data (if any) is fetched from the STLink after the target status is checked and the target is found to be running. - on _halt(), the STLink is told to disable tracing. When fetching trace data, the entire trace frame is written to the output file and that data is flushed. An external tool may be used to parse the trace data into a more human-readable format. Tested on ARM Cortex M4F and M3 MCUs (STM32F407 and STM32L152). Change-Id: Ic3983d46c82ba77010c23b0e18ce7b275d917f12 Signed-off-by: Andrey Yurovsky <yurovsky@gmail.com> Reviewed-on: http://openocd.zylin.com/1524 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
2013-08-05jtag/drivers: usb_blaster cheap clone documentationRobert Jarzmik
Add documentation about the cheap clone based on the Cypress chip. The documentation has schematics data, and throughtput mesures. Change-Id: I51bf19ff9229565e178dd4c1231682bd9b4b7a8b Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Reviewed-on: http://openocd.zylin.com/1520 Tested-by: jenkins Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
2013-08-01mpsse: Add missing read buffer checksAndreas Fritiofson
These two unused functions added reads without checking for available space. Change-Id: I17dbbe9988b057e5a3a1768f405fc9d1027d1c01 Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1500 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-08-01mpsse: Defer errors until flushAndreas Fritiofson
Simplify the API by making all MPSSE command functions return void instead of an error code. If there is an error during an implicit flush in a command call, further commands are ignored until an explicit flush is performed. The flush function returns and clears any error code set. The only command functions that still return an error code are those that can fail directly based on the type of the FTDI chip, i.e. when trying to enable RCLK or divide-by-5 on a non-high-speed chip. Adapt the ftdi adapter driver to the new API. Change-Id: I12979c723c81f7fd022c25821b029112f02b3f95 Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1499 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-07-17OpenULINK firmware: update firmware hex imageMartin Schmölzer
This image has been re-compiled with SDCC 3.3.0 and achieves slightly better performance (50-100 Byte/s for STM32F103 flash write) due to new/improved compiler optimizations. Successfully tested with ULINK probe and STM32F103 (debug, erase and write flash). Change-Id: I4329aa42f50461fa3719fd63d0054d8e86982727 Signed-off-by: Martin Schmölzer <martin.schmoelzer@student.tuwien.ac.at> Reviewed-on: http://openocd.zylin.com/1486 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>