Archive for the ‘Progress’ Category

OpenOCD 0.2.0 Released

Wednesday, July 15th, 2009

The OpenOCD Project has produced its 0.2.0 source code release. The summary of changes since the last release may be found in the NEWS file. You may download the source archives from the BerliOS website.

Beyond some new features and numerous bug fixes, this release reflects significant work by the community to clean up the code, documentation, and processes. Significantly, the 0.2.0 release served to test a nearly automated release process. That tool will help project maintainers deliver improvements and fixes to the user community more frequently and robustly.

Because the project will be producing regular releases, the maintainers hope that most users will avoid the potential build problems and instabilities that can be associated with the Subversion repository trunk. A regular cycle should encourage packaging of OpenOCD releases on more platforms and distributions, providing binaries for users on all supported systems.

Finally, the OpenOCD project will no longer distribute binary packages or installers. The OpenOCD 0.1.0 installer was removed due to licensing violations that were exposed while improving the documentation for the 0.2.0 release. These issues were discussed in depth on the mailing list, and the Software Freedom Law Center provided guidance and support for the OpenOCD community. Future GPL violations should be reported to the developer mailing list, the maintainers, or the SFLC.

New OpenOCD binaries available at

Saturday, January 27th, 2007

Michael Fischer just put up a new version of the OpenOCD at his Yagarto webpage. This release includes the new support for ARM926EJ-S based targets, as well as numerous other fixes and improvements. Release 128 from Michael Fischer’s website is considered the current official version for the Windows platform, and the recommended version for all users of OpenOCD.

Best regards,


ARM926EJ-S Support

Friday, January 26th, 2007

I’ve checked in support for ARM926EJ-S based cores. This has only been tested with a LPC3180 yet, and the cache/MMU handling isn’t tested at all, but basically it should work. Accessing CP15 registers works, and can be verified with the command “arm926ejs cp15 0 0 0 0″ which does a CP15 read with opcode_1, opcode_2, Rn and Rm all set to zero, reading the ID code from CP15 c0. Information about the cache can also be retrieved using the command “arm926ejs cache_info”.

Lots of people have asked for ARM926EJ-S support, and several parties wanted to get me a board to work with, but unfortunately none of them were able to make that happen.
Finally, my university bought a board with a LPC3180, and I would like to thank the University Of Applied Sciences Augsburg (FHA) and Prof. Dr. Hubert Högl for their continued support for the OpenOCD.

Windows binaries of the new OpenOCD release (currently SVN revision 128) will be available shortly on Michael Fischer’s Yagarto webpage.

Best Regards,

Dominic Rath

Greetings from endianness hell

Thursday, August 31st, 2006

Revision 90 just got committed to the SVN.

I’ve spent the last two weeks cleaning up the handling of different target/host endianness. So far, all the generic code should be endianness safe, but the flash writing code is definitely not. Please report back if the OpenOCD still doesn’t work on your big-endian target and/or host. I only have little endian targets and hosts to test with. If your target is big-endian, make sure you’ve configured the OpenOCD accordingly (target line in the .cfg file).

For those of you running OpenOCD on little-endian boxes with little-endian targets, the endianness fixes offer noticeable improvements to the memory reading code. The “arm7_9 fast_writes [enable|disable]” command was renamed to “arm7_9 fast_memory_access [enable|disable]” to reflect the changed behaviour, but the old name is still available (but deprecated, so change your init files).

While working with a EP9301 based board, I stumbled accross a problem on ARM920T targets with the data cache enabled. The current workaround for this problem is to keep linefills to the cache enabled, to ensure correct operation. If you happen to know more about this problem (see Google Groups for a longer explanation).

See the changelog for other fixes and enhancements.

Status update

Monday, July 17th, 2006

I’ve spent the last days integrating a patch from Spencer Oliver that allows native Windows builds of OpenOCD using MinGW, which is now available as SVN revision 78. There’s one minor issue causing OpenOCD to quit when a GDB session is detached. This will be fixed in the next SVN commit.

Michael Fischer has added a new page to his website explaining how OpenOCD has to be installed. You can find his page at Thanks a lot Michael.

The xscale support is still going to take some time, as I’m still busy with some exams, but all the major parts are already working.

OpenOCD forum moved, and some updates

Monday, June 12th, 2006

The forum system at Berlios is a bit unhandy to use – at least when you’re used to the features offered by other systems. Tsvetan from Olimex has been kind enough to ask Sparkfun to host the OpenOCD forum, and they’ve just set up a new section at their forum. Thanks to both Tsvetan and Sparkfun. The new place to ask for help with OpenOCD, to discuss new features you’d like to have, or just to let everyone know what you think about OpenOCD is

The support for Intel XScale based devices is coming along nicely. So far uploading the debug handler, entry into debug, core register handling and memory access works. Working with the XScale requires the ability to identify some ARM instructions, to be able to calculate the next address that’s going to be executed. I decided to add a complete disassembler to the OpenOCD, which is now (trunk, revision 68) available from the telnet interface:

> armv4_5 disassemble 0x0 11
0x00000000 0xe59ff018 LDR r15, [r15, #0x18]
0x00000004 0xe59ff018 LDR r15, [r15, #0x18]
0x00000008 0xe59ff018 LDR r15, [r15, #0x18]
0x0000000c 0xe59ff018 LDR r15, [r15, #0x18]
0x00000010 0xe59ff018 LDR r15, [r15, #0x18]
0x00000014 0xb9205f84 STMLTDB r0!, {r2, r7, r8, r9, r10, r11, r12, r14}
0x00000018 0xe51ffff0 LDR r15, [r15, #-0xff0]
0x0000001c 0xe59ff014 LDR r15, [r15, #0x14]

FTDI FT2232C support for Cygwin

Monday, January 23rd, 2006

The FTDI FT2232C is now supported on Cygwin, too. The configure script accepts –with-ftd2xx=PATH to specify which directory should be searched for the content of the FTD2XX driver package (available from ftdi). This configure option is ignored for non-Cygwin builds.

CFI Flash support

Monday, January 23rd, 2006

Support for CFI compliant flashes has been added to OpenOCD. Currently, only flashes compatible with the Intel command sets (0×0001 and 0×0003) are supported. Flash writing is possible both using memory writes (slow) and using flash writing code running on the target (faster). Using the Amontec JTAG Accelerator, about 30 kByte/s can be flashed. The CFI flash code has been tested with an Intel 28F640J3 and an Intel TE28F320C3, both in x16 configuration on a 16-bit bus, but support is included for any combination of up to 32-bit busses.

Stability issue fixed

Wednesday, January 4th, 2006

There was a stability issue where the target would fail to cleanly enter debug state. The reason for this is still unclear, but using a watchpoint unit to break on any instruction fetch instead of the DBGRQ bit solved the problem.
See the SVN history page for a list of changes.

GDB Improvements and a preliminary documentation

Monday, January 2nd, 2006

OpenOCD is at SVN revision 16, containing several improvements on the GDB connection handling and several other fixes. The docs section has a first version of the documentation that will be reworked to reflect the new codebase. Chapters 5 and 6 document the available command line switches and the available configuration and user commands.