4 class GenericProgrammer
:
5 def __init__(self
, flash_proxy_basename
=None):
6 self
.flash_proxy_basename
= flash_proxy_basename
7 self
.flash_proxy_dirs
= [
8 "~/.litex", "/usr/local/share/litex", "/usr/share/litex"]
10 def set_flash_proxy_dir(self
, flash_proxy_dir
):
11 if flash_proxy_dir
is not None:
12 self
.flash_proxy_dirs
= [flash_proxy_dir
]
14 def find_flash_proxy(self
):
15 for d
in self
.flash_proxy_dirs
:
16 fulldir
= os
.path
.abspath(os
.path
.expanduser(d
))
17 fullname
= os
.path
.join(fulldir
, self
.flash_proxy_basename
)
18 if os
.path
.exists(fullname
):
21 "Failed to find flash proxy bitstream %s, searched:\n %s\n" % (
22 self
.flash_proxy_basename
,
23 "\n ".join(self
.flash_proxy_dirs
)))
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