OpenOCD 0.9.0 release

May 18th, 2015

I’m happy to announce the release of OpenOCD version 0.9.0, finally!

It tooks us a bit more than a year but the list of changes isn’t a small one either. With 439 commits from 94 contributors, it’s an impressive example of how the community can drive the project forward. As an active OpenOCD user, I really appreciate all your patches, bugreports, discussions and friendly chat on IRC, thank you folks! Special mention goes to those who tirelessly review the patches and keep the project afloat as a whole: the core maintainers team.

We’ve also seen participation from the big semiconductor manufacturers, both nice and odd. Not everybody understands why it’s important to provide the customers with free software cross-platform tools, so please, even if you’re just a customer, you still have a voice, send your vendor an email explaining why it would be important for you to have support for their ICs in upstream OpenOCD (or if it’s already there, how happy you’re about it). The more examples they get, the more likely they’ll listen and learn; and I hope those who have already tried collaborating with the OpenOCD project enjoyed it as much as we did.

The release tarballs are available from the usual SF location: https://sourceforge.net/projects/openocd/files/openocd/0.9.0/ and the documentation can be easily reached from http://openocd.org/documentation/ .

Here follows a copy of the release NEWS for your convenience.

Enjoy, and happy hacking!

JTAG Layer:

  • SWD support with FTDI, Versaloon, J-Link, sysfsgpio
  • CMSIS-DAP massive speed and stability improvements
  • Versaloon driver ported to libusb-1.0
  • STLink can reestablish communication with a target that was disconnected or rebooted
  • STLink FAULT and WAIT SWD handling improved
  • New hla_serial command to distinguish between several HLA adapters attached to a single machine
  • Serial number support for CMSIS-DAP and J-Link adapters
  • Support for more J-Link adapters
  • TAP autoprobing improvements
  • Big speedup for SVF playback with USB Blaster

Boundary Scan:

Target Layer:

  • Stability improvements for targets that get disconnected or rebooted during a debug session
  • MIPS speed and reliability improvements
  • MIPS 1.5/2.0 fixes
  • ARMv7-R improvements
  • Cortex-A improvements, A7, A15 MPCores support
  • FPU support for ARMv7-M (Cortex-M4F)
  • TPIU/ITM support (including SWO/SWV tracing), can be captured with external tools or STLink
  • JTAG Serial Port (Advanced Debug System softcore) support
  • Profiling support for OpenRISC
  • ChibiOS/RT 3.0 support (with and without FPU)
  • FreeRTOS current versions support
  • Freescale MQX RTOS support
  • GDB target description support for MIPS
  • The last created target is auto-selected as the current

Flash Layer:

  • nRF51 async loader to improve flashing performance and stability
  • Cypress PSoC 41xx/42xx and CCG1 families flash driver
  • Silabs SiM3 family flash driver
  • Marvell Wireless Microcontroller SPI flash driver
  • Kinetis mass erase (part unsecuring) implemented
  • lpcspifi stability fixes
  • STM32 family sync with reference manuals, L0 support, bugfixes
  • LPC2000 driver automatically determines part and flash size
  • NXP LPC11(x)xx, LPC13xx, LPC15xx, LPC8xx, LPC5410x, LPC407x support
  • Atmel SAMD, SAMR, SAML21 devices support
  • Atmel SAM4E16 support
  • ZeroGecko family support
  • TI Tiva C Blizzard and Snowflake families support
  • Nuvoton NuMicro M051 support
  • EZR32 support in EFM32 driver

Board, Target, and Interface Configuration Scripts:

  • Normal target configs can work with HLA (STLink, ICDI) adapters
  • STM32 discovery and Nucleo boards configs
  • Gumstix AeroCore board config
  • General Plus GP326XXXA target config
  • Micrel KS869x target config
  • ASUS RT-N66U board config
  • Atmel SAM4E-EK board config
  • Atmel AT91SAM4L proper reset handling implemented
  • TI OMAP/AM 3505, 3517 target configs
  • nRF51822-mKIT board config
  • RC Module К1879ХБ1Я target config
  • TI TMDX570LS20SUSB board config
  • TI TMS570 USB Kit board config
  • TI CC2538, CC26xx target configs
  • TI AM437x major config improvements, DDR support
  • TI AM437X IDK board config
  • TI SimpleLink Wi-Fi CC3200 LaunchPad configs
  • Silicon Labs EM357, EM358 target configs
  • Infineon XMC1000, XMC4000 family targets and boards configs
  • Atheros AR9331 target config
  • TP-LINK TL-MR3020 board config
  • Alphascale asm9260t target and eval kit configs
  • Olimex SAM7-LA2 (AT91SAM7A2) board config
  • EFM32 Gecko boards configs
  • Spansion FM4 target and SK-FM4-176L-S6E2CC board configs
  • LPC1xxx target configs were restructured
  • IoT-LAB debug adapter config
  • DP BusBlaster KT-Link compatible config

Server Layer:

  • Polling period can be configured
  • “shutdown” command has an immediate effect
  • The “program” command doesn’t lead to a shutdown by default, use optional “exit” parameter for the old behaviour
  • Proper OS signal handling was implemented
  • Async target notifications for the Tcl RPC

Documentation:

Build and Release:

This release also contains a number of other important functional and cosmetic bugfixes. For more details about what has changed since the last release, see the git repository history: http://sourceforge.net/p/openocd/code/ci/v0.9.0/log/?path=

OpenOCD 0.8.0 in major repositories

May 16th, 2014

A quick update on distro adoption status:

Debian unstable, Gentoo, Fedora devel and Arch GNU/Linux distributions provide their users with an up-to-date 0.8.0 package.

OS X users are covered as well: with Gentoo Prefix you can easily have either 0.8.0 or the current git version (-9999); same about Homebrew: just update and brew install [--HEAD] openocd (where the optional –HEAD parameter tells it to build the current git version).

Thanks to everybody involved!

OpenOCD 0.8.0 release

April 27th, 2014

Today I’m happy to announce the availability of OpenOCD 0.8.0 release.

It’s been almost a year since v0.7.0, and the amount of changes is impressive. The project gained 458 commits from 78 contributors all around the world; added to that countless hours that were spent on reviewing, discussing, testing and bug-reporting. I’d like to take this opportunity to say “thank you” to everybody involved, your participation is sincerely appreciated.

Of specific interest here were contributions directly from hardware manufacturers. During this development cycle OpenOCD received support from Andes Technology Corporation and Intel Corporation, and in both cases it was a fine collaboration following the best practices as established in the free software world. To help other manufacturers join the trend I propose we all start demanding out-of-the-box OpenOCD support from the vendors, educating them about Intel’s experience.

Please find the updated sources in the git repository and on the SF.net download area:

http://sourceforge.net/projects/openocd/files/openocd/0.8.0/

Freddie Chopin has kindly provided windows binaries on his website:

http://www.freddiechopin.info/ > Download > Software > OpenOCD, see http://www.freddiechopin.info/en/articles/34-news/92-openocd-w-wersji-080 for details.

Good luck, and happy hacking!

The release highlights are listed below:

JTAG Layer:

  • New CMSIS-DAP driver.
  • Andes AICE debug adapter support.
  • New OpenJTAG driver.
  • New BCM2835 (RaspberryPi) driver.
  • JTAG VPI client driver (for OpenRISC Reference Platform SoC).
  • Xilinx BSCAN_* for OpenRISC support.
  • ST-LINKv2-1 support.
  • ST-LINKv2 SWO tracing support (UART emulation).
  • JLink-OB (onboard) support.
  • Altera USB Blaster driver rewrite, initial Blaster II support.
  • ULINK driver ported to libusb-1.0, OpenULINK build fixes.
  • Support up to 64 bit IR lengths.
  • SVF playback (FPGA programming) fixes.
  • “ftdi” interface driver got extensive testing and is now recommended over the old ft2232 implementation.

Boundary Scan:

Target Layer:

  • New target: Andes nds32.
  • New target: OpenRISC OR1K.
  • New target: Intel Quark X10xx.
  • MIPS EJTAG 1.5/2.0 support.
  • MIPS speed improvements.
  • Cortex-M, Cortex-A (MEM-AP, APB-AP) targets working with BE hosts now.
  • XScale vector_catch support, reset fixes.
  • dsp563xx ad-hoc breakpoint/watchpoint support.
  • RTOS support for embKernel.
  • Target profiling improvements.
  • Memory access functions testbench.

Flash Layer:

  • STM32 family sync with reference manuals, other bugfixes.
  • STM32F401, STM32F07x support.
  • Atmel SAM4L, SAMG5x support.
  • Atmel AT91SAM3SD8[a,b], AT91SAM3S8[a,b,c], AT91SAM4S, AT91SAM3N0[a,b,0a,0b] support, bugfixes.
  • Atmel SAMD support.
  • Milandr 1986ВЕ* support.
  • Kinetis KL, K21 support.
  • Nuvoton NuMicro MINI5{1,2,4} support.
  • Nuvoton NUC910 series support.
  • NXP LPC43xx, LPC2000 fixes.
  • NXP LPC800, LPC810 support.
  • More ATmega parts supported.
  • Fujitsu MB9Ax family support.
  • EFM32 Wonder Gecko family support.
  • Nordic nRF51 support.

Board, Target, and Interface Configuration Scripts:

  • STM32W108xx generic target config.
  • STM32F429 discovery board config.
  • STM32 Nucleo boards configs.
  • DENX M53EVK board config.
  • Altera Cyclone V SoC, SoCkit config.
  • New TI Launchpads board configs.
  • TI am43xx devices, AM437x GP EVM, AM438x ePOS EVM board configs.
  • Marvell Armada 370 family initial support.
  • TI TMDX570LS31USB (TMS570, Cortex-R4) support scripts.
  • Freescale FRDM-KL25Z, KL46Z board configs.
  • Digilent Zedboard config.
  • Asus RT-N16, Linksys WRT54GL, BT HomeHub board configs.
  • Atmel Xplained initial support.
  • Broadcom bcm28155_ap board config.
  • TUMPA, TUMPA Lite interface configs.
  • Digilent JTAG-SMT2 interface config.
  • New RAM testing functions.
  • Easy-to-use firmware recovery helpers targeting ordinary users with common equipment.

Server Layer:

  • Auto-generation of GDB target description for ARMv7-M (XML support in GDB is mandatory for this architecture now), ARM4, nds32, OR1K, Quark.
  • GDB File-I/O Remote Protocol extension support.
  • Default GDB flashing events handlers to initialise and reset the target automatically when “load” is used.

Documentation:

  • Extensive README* changes.
  • The official User’s Guide was proofread.
  • Example cross-build script.
  • RTOS documentation improvements.
  • Tcl RPC documentation and examples added.

Build and Release:

  • *BSD, OS X, clang, ARM, windows build fixes.
  • New pkg-config support changes the way libusb (and other dependencies) are handled. Many adapter drivers are now selected automatically during the configure stage.

PS: A next-release teaser: I know many people would like to see SWD support for FTDI-based adapters. It’s already working really good but not yet ready for merging, the patches are available from Gerrit and it’s likely they’ll be ready by the next release.

OpenOCD 0.8.0-rc1 release candidate is out

March 31st, 2014

We are pleased to announce the first release candidate of the upcoming OpenOCD version.

The source archives and release notes are available from the usual SF download locations.

Windows binary of OpenOCD 0.8.0-rc1 is kindly provided by Freddie Chopin and is available for download from his website: www.freddiechopin.info.

Please post all your feedback to the openocd-devel mailing list.

OpenOCD and GDB for OpenRISC – ORCONF 2013

January 16th, 2014

A talk by Franck Jullien on using OpenOCD and GDB for OpenRISC.

OpenOCD 0.7.0 released

May 5th, 2013

After almost 7 months since previous 0.6.1 version, new 0.7.0 release is out! Source packages are available to download from SourceForge. If you use Windows and don’t want to build the executable yourself, Freddie Chopin provides binaries on his personal website.

Here is the NEWS file for this release, which highlights the most important changes:

This file includes highlights of the changes made in the OpenOCD source archive release. See the repository history for details about what changed, including bug fixes and other issues not mentioned here.

JTAG Layer:

  • New TI ICDI adapter support.
  • Support Latest OSBDM firmware.
  • Improved MIPS EJTAG Support.

Boundary Scan:

Target Layer:

  • New ARMv7R and Cortex-R4 support.
  • Added ChibiOS/RT support.

Flash Layer:

  • New NXP LPC1850 support.
  • New NXP LPC4300 support.
  • New NXP SPIFI support.
  • New Energy Micro EFM32 support.
  • New ST STM32W support.
  • New ST STM32f2 write protection and lock/unlock support.
  • Ability to override STM32 flash bank size.

Board, Target, and Interface Configuration Scripts:

  • Support Freescale i.MX6 series targets.

Documentation:

  • New MIPS debugging info.

Build and Release:

For more details about what has changed since the last release, see the git repository history. With gitweb, you can browse that in various levels of detail.

For older NEWS, see the NEWS files associated with each release (i.e. NEWS-<version>).

For more information about contributing test reports, bug fixes, or new features and device support, please read the new Developer Manual (or the BUGS and PATCHES.txt files in the source archive).

OpenOCD: Hardware Debugging and More – ELCE 2012

January 28th, 2013

A talk from Peter Stuge on using OpenOCD to debug embedded systems.

SourceForge Upgrade

November 16th, 2012

We have upgraded OpenOCD to the new SourceForge platform(Allura), part of that change is a move in the git repo url.

https://sourceforge.net/p/openocd/code/

original url is:
git://openocd.git.sourceforge.net/gitroot/openocd/openocd
and this has changed to:
git://git.code.sf.net/p/openocd/code

So you will either need to re-clone or manually update your .git/config
git config remote.origin.url git://git.code.sf.net/p/openocd/code should do the trick

Hopefully nothing has broken in the update.

OpenOCD 0.6.1 bugfix release

October 7th, 2012

Today OpenOCD 0.6.1 bugfix release was published on project’s download area on SourceForge. Appropriate changes were also committed to GIT repository.

This release addresses serious regression in 0.6.0 and 0.6.0-rc2 releases which caused some functionalities to work correctly only on the first run – all following operations would fail until OpenOCD would be restarted. Some of affected modules:

  • lpc2000 flash driver (for LPC2xxx and LPC17xx chips),
  • mips_m4k fast data (for MIPS M4k chips),
  • feroceon DCC,
  • arm_io NAND flash driver,
  • arm7_9 DCC.

Last unaffected release (of course excluding 0.6.1) is 0.6.0-rc1. All users of affected releases are encouraged to update their version of OpenOCD.

Additionally this release includes following fixes:

  • fix of handling Hi-Z state in direct connections in new ftdi driver,
  • fix of handling RCLK in new ftdi driver,
  • improvements to config files using new ftdi driver,
  • fix for sector erase for AT91SAM4S chips,
  • fix of TAPID in STM32F3 config script,
  • support for STM32F3 Rev 2 flash,
  • support for STM32F3-DISCOVERY board.

As usual, Freddie Chopin has provided Window’s binaries on his site.

hackaday – ARM On-Chip Debugging demonstration

October 2nd, 2012

Full article here – http://hackaday.com/2012/09/27/beginners-look-at-on-chip-debugging/