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 "~/.migen", "/usr/local/share/migen", "/usr/share/migen",
9 "~/.mlabs", "/usr/local/share/mlabs", "/usr/share/mlabs"]
11 def set_flash_proxy_dir(self
, flash_proxy_dir
):
12 if flash_proxy_dir
is not None:
13 self
.flash_proxy_dirs
= [flash_proxy_dir
]
15 def find_flash_proxy(self
):
16 for d
in self
.flash_proxy_dirs
:
17 fulldir
= os
.path
.abspath(os
.path
.expanduser(d
))
18 fullname
= os
.path
.join(fulldir
, self
.flash_proxy_basename
)
19 if os
.path
.exists(fullname
):
21 raise OSError("Failed to find flash proxy bitstream")
23 # must be overloaded by specific programmer
24 def load_bitstream(self
, bitstream_file
):
25 raise NotImplementedError
27 # must be overloaded by specific programmer
28 def flash(self
, address
, data_file
):
29 raise NotImplementedError