Allow using non-milkymist cables with UrJTAG.
authorTim 'mithro' Ansell <mithro@mithis.com>
Sun, 5 Jul 2015 08:43:40 +0000 (18:43 +1000)
committerSebastien Bourdeauducq <sb@m-labs.hk>
Sun, 5 Jul 2015 08:53:09 +0000 (10:53 +0200)
mibuild/platforms/m1.py
mibuild/xilinx/programmer.py

index 93e213b2a90d1423881a65c6262e8d70d83e9b62..01b9e866ef4dddc1128f7f1788161e199bafdfaf 100644 (file)
@@ -127,7 +127,7 @@ class Platform(XilinxPlatform):
         XilinxPlatform.__init__(self, "xc6slx45-fgg484-2", _io)
 
     def create_programmer(self):
-        return UrJTAG("fjmem-m1.bit")
+        return UrJTAG(cable="milkymist", flash_proxy_basename="fjmem-m1.bit")
 
     def do_finalize(self, fragment):
         XilinxPlatform.do_finalize(self, fragment)
index ac3d0cfffbe595be0a58bf7bcb8d838630a93f3d..6ea7f4bca5a682d677dabc0764714d31199e777b 100644 (file)
@@ -14,17 +14,21 @@ def _run_urjtag(cmds):
 class UrJTAG(GenericProgrammer):
     needs_bitreverse = True
 
+    def __init__(self, cable, flash_proxy_basename=None):
+        GenericProgrammer.__init__(self, flash_proxy_basename)
+        self.cable = cable
+
     def load_bitstream(self, bitstream_file):
-        cmds = """cable milkymist
+        cmds = """cable {cable}
 detect
 pld load {bitstream}
 quit
-""".format(bitstream=bitstream_file)
+""".format(bitstream=bitstream_file, cable=self.cable)
         _run_urjtag(cmds)
 
     def flash(self, address, data_file):
         flash_proxy = self.find_flash_proxy()
-        cmds = """cable milkymist
+        cmds = """cable {cable}
 detect
 pld load "{flash_proxy}"
 initbus fjmem opcode=000010
@@ -32,7 +36,8 @@ frequency 6000000
 detectflash 0
 endian big
 flashmem "{address}" "{data_file}" noverify
-""".format(flash_proxy=flash_proxy, address=address, data_file=data_file)
+""".format(flash_proxy=flash_proxy, address=address, data_file=data_file,
+           cable=self.cable)
         _run_urjtag(cmds)