2 from litex
.build
import tools
5 class GenericProgrammer
:
6 def __init__(self
, flash_proxy_basename
=None):
7 self
.flash_proxy_basename
= flash_proxy_basename
8 self
.flash_proxy_dirs
= [
9 "~/.migen", "/usr/local/share/migen", "/usr/share/migen",
10 "~/.mlabs", "/usr/local/share/mlabs", "/usr/share/mlabs",
11 "~/.litex", "/usr/local/share/litex", "/usr/share/litex"]
13 def set_flash_proxy_dir(self
, flash_proxy_dir
):
14 if flash_proxy_dir
is not None:
15 self
.flash_proxy_dirs
= [flash_proxy_dir
]
17 def find_flash_proxy(self
):
18 for d
in self
.flash_proxy_dirs
:
19 fulldir
= os
.path
.abspath(os
.path
.expanduser(d
))
20 fullname
= tools
.cygpath(os
.path
.join(fulldir
, self
.flash_proxy_basename
))
21 if os
.path
.exists(fullname
):
23 raise OSError("Failed to find flash proxy bitstream")
25 # must be overloaded by specific programmer
26 def load_bitstream(self
, bitstream_file
):
27 raise NotImplementedError
29 # must be overloaded by specific programmer
30 def flash(self
, address
, data_file
):
31 raise NotImplementedError