From 8d6aa820823fa8493d71addc053e26856b3afe29 Mon Sep 17 00:00:00 2001 From: Robert Jordens Date: Thu, 2 Jul 2015 22:04:04 -0600 Subject: [PATCH] mibuild/openocd.py: add support Tested with pipistrello and kc705. Needs patches from https://github.com/jordens/openocd/tree/bscan_spi waiting to be merged in the openocd queue. --- mibuild/openocd.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 mibuild/openocd.py diff --git a/mibuild/openocd.py b/mibuild/openocd.py new file mode 100644 index 000000000..47e51c7e5 --- /dev/null +++ b/mibuild/openocd.py @@ -0,0 +1,30 @@ +import subprocess + +from mibuild.generic_programmer import GenericProgrammer + + +class OpenOCD(GenericProgrammer): + needs_bitreverse = False + + def __init__(self, config, flash_proxy_basename=None): + GenericProgrammer.__init__(self, flash_proxy_basename) + self.config = config + + def load_bitstream(self, bitstream): + script = "; ".join([ + "init", + "pld load 0 {}".format(bitstream), + "exit", + ]) + subprocess.call(["openocd", "-f", self.config, "-c", script]) + + def flash(self, address, data): + flash_proxy = self.find_flash_proxy() + script = "; ".join([ + "init", + "jtagspi_init 0 {}".format(flash_proxy), + "jtagspi_program {} 0x{:x}".format(data, address), + "fpga_program", + "exit" + ]) + subprocess.call(["openocd", "-f", self.config, "-c", script])