Hopefully this will save someone some pain:
***** Download and OpenOCD from Git
git clone http://repo.or.cz/r/openocd.git
Ensure you have this patch: http://openocd.zylin.com/#/c/3018/)
./bootstrap && ./configure && make && make install
***** Flash new F/W onto BusBlaster to enable SWD
git clone https://github.com/bharrisau/busblaster.git
cd busblaster/synthesis
openocd -f board/dp_busblaster_v3.cfg -c “adapter_khz 1000; init; svf system.svf; shutdown”
***** Create config file
cat >openocd-swd.cfg <<EOF
reset_config srst_only connect_assert_srst
source [find interface/ftdi/dp_busblaster_kt-link.cfg]
transport select swd
source [find target/stm32f4x.cfg]
EOF
***** Connect Bus Blaster to Carbon
BusBlaster Carbon
┊
TCK ──────────────────────── CLK
┊
TMS ──────────────────────── DIO
┊
STRST ────────────────────── RST
┊
VTG ──────────────────────── V3.3
┊
GND ──────────────────────── GND
┊
NB: STRST is a typo on the BB’s silk screen – should read SRST
***** Fire it up
****** Start OpenOCD
openocd -f openocd-swd.cfg
****** Telnet to OpenOCD’s interface
telnet localhost 4444
Open On-Chip Debugger
> reset halt
****** Start GDB and connect to OpenOCD
arm*-gdb <program>
(gdb) target remote :3333