Dockstar Debricking - JTAG with BusPirate

I recently bricked my Seagate Dockstar, so I had to use JTAG to restore it...
At the time, I didn't have any JTAG adapter. I tried with a parport Wiggler, but without the correct chip (I only had 74HC244, instead of 74LS244) it didn't work. So I bought a BusPirate (from Sparkfun). And so, here's the story of the Dockstar...


By following these steps, you agree that I can't be held for responsible if your Dockstar happened to be really broken or if you break it during the process I describe. I'm just writing my experience in case it could help someone (or me later) but I'm not responsible if things go wrong. Don't screw up, read all the process first, don't try hazardous things, if you have questions, ask first...

Here we go !

There are some preliminary steps as the BusPirate received from Sparkfun didn't have OpenOCD JTAG capabilities. There shouldn't be any error or timeout during the JTAG steps. Check everything if you have any.

  • Upgrade the BusPirate Bootloader to v4 and Firmware to v4.1
    python2.7 ./ -s /dev/ttyUSB0 -i -v
    python2.7 ./ -s /dev/ttyUSB0 -i -v -a ./BPv3-v2blupdaterVa3-v4.1.hex 
    cu -l /dev/ttyUSB0 -s 115200
    ./pirate-loader_lnx --dev=/dev/ttyUSB0 --hex=/home/redox/v4firmware/BPv3-Firmware-v4.1.hex
  • Upgrade the BusPirate Bootloader to v4.3 and Firmware to v5.8 with the pirate_loader tool.
  • Now, the Buspirate is ready to be an OpenOCD adapter
  • Compile OpenOCD from GIT, with option --enable-bus-pirate
  • Configure OpenOCD buspirate.cfg. Here's mine:
    interface buspirate
    buspirate_port /dev/ttyUSB0
    buspirate_speed fast
    buspirate_vreg 0
    buspirate_mode open-drain
    buspirate_pullup 0
    reset_config srst_only
  • Do some changes in dockstar.cfg
    Here's mine (adapted from Kragorn's original file): dockstar.cfg
  • Connect the BusPirate and the Serial Adapter to the Dockstar's JTAG header
    Dockstar -- Bus Pirate (Wire colors from Sparkfun cable)
    01 - NC
    02 - Aux (Green)
    03 - TDI (Orange)
    04 - TMS (Red)
    05 - TCK (Yellow)
    06 - TDO (Brown)
    07 - NC
    08 - TXD of the Serial Adapter
    09 - RXD of the Serial Adapter
    10 - GND (Black)?
  • Plug the Dockstar power supply
  • Plug the BusPirate and the Serial Adapter
  • Start OpenOCD server
    openocd -f ./dockstar.cfg
  • Open an other Term and connect by telnet to the server
    telnet localhost 4444
  • Open an other Term and open the serial connection
    cu -s 115200 -l /dev/ttyUSB1
  • Download a valid uBoot mtd0 image, renamed in uboot.kwb (easier to type later). I used this one (from Jeff Doozan): Link
  • In the telnet term:
    • Type "init" then press Enter
    • Type "halt" then hold the Dockstar's reset button, then press Enter, then release the button
    • The Dockstar should be halted
    • Type "dockstar_init" then press Enter
    • Type "load_image uboot.kwb 0x800000" then press Enter and wait ~ 90sec
    • Type "resume 0x800200" then press Enter, the Dockstar should be booting now...
  • In the serial terminal:
    • Hit a key to stop the boot process
    • Type "nand write.e 0x800000 0x0 0x80000" then press Enter to restore uBoot in Nand
    • When it's done, type" reset", press Enter, you should see your dockstar booting correctly
  • You should now be able to recover/reinstall your Dockstar by Tftp as already well explained on the Internet