I am going to take a stab at answering my own question, and may update the answer in the future with additional details about OpenOCD.
There are some things that I did not understand about the Bus Blaster and there are some things that I did not understand about OpenOCD, and in both cases reading the documentation better would have helped. I ended up compiling OpenOCD from source under Ubuntu.
The user documentation for OpenOCD is available on the OpenOCD website, and the instructions for creating configuration files are located here. There are three types of configuration files:
- Interface. This is the configuration file which describes the device OpenOCD is connecting with - in my case, a Bus Blaster. The configuration file
busblaster.cfg
is located in the openocd-0.7.0/tcl/interface/
folder. Also, someone described the configuration file online on the BusBlaster OpenOCD guide. OpenOCD version 0.5.0 and older don't include the configuration file for the Bus Blaster.
- Board. This is a configuration file which describes setup particular to the PCB you are connecting to - for example, details about external flash go in this file.
- Target. These are details about the target processor, in my case a MIPS32 processor. MIPS32 is a variant of MIPS M4K. OpenOCD supports both of these, and the documentation says that MIPS32 is the only supported variant of MIPS M4K. If you allow OpenOCD to autoprobe, which it does if no target is specified, OpenOCD will produce lines like the ones below that describe a new TAP that could be created.
Warn : AUTO auto0.tap - use "jtag newtap auto0 tap -expected-id 0x???????? ..."
Warn : AUTO auto0.tap - use "... -irlen ?"
You can use the autoprobed TAP lines to create a new target file in openocd-0.7.0/tcl/target
. In addition to those lines, add a line declaring a new target (I borrowed this from another target configuration) specifying which architecture and variant it is when creating the TAP.