Skip to content

Commit

Permalink
artiq_flash/sayma: check for DONE after load
Browse files Browse the repository at this point in the history
  • Loading branch information
jordens committed Jun 12, 2018
1 parent b90a8fc commit 2de5b0c
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions artiq/frontend/artiq_flash.py
Expand Up @@ -114,6 +114,8 @@ def __init__(self, client, preinit_script):
self._loaded = defaultdict(lambda: None)
self._script = ["init"]

add_commands(self._script, "source xilinx-stat.cfg")

def _transfer_script(self, script):
if isinstance(self._client, LocalClient):
return "[find {}]".format(script)
Expand Down Expand Up @@ -144,6 +146,13 @@ def load(self, bitfile, pld):
"pld load {pld} {{{filename}}}",
pld=pld, filename=bitfile)

def check_done(self, tap):
add_commands(self._script,
"set stat [xilinx_get_stat {tap}]",
"echo [format {{{tap} stat: 0b%032b}} $stat]",
"if ![expr $stat & 0x1000] {{echo \"not DONE\"; exit 1;}}",
tap=tap)

def load_proxy(self):
raise NotImplementedError

Expand Down Expand Up @@ -355,8 +364,10 @@ def convert_gateware(bit_filename, header=False):
if args.target == "sayma":
rtm_gateware_bit = artifact_path("rtm_gateware", "rtm.bit")
programmer.load(rtm_gateware_bit, 0)
programmer.check_done("xc7.tap")
gateware_bit = artifact_path(variant, "gateware", "top.bit")
programmer.load(gateware_bit, 1)
programmer.check_done("xcu.tap")
else:
gateware_bit = artifact_path(variant, "gateware", "top.bit")
programmer.load(gateware_bit, 0)
Expand Down

0 comments on commit 2de5b0c

Please sign in to comment.