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
):
20 raise OSError("Failed to find flash proxy bitstream")
22 # must be overloaded by specific programmer
23 def load_bitstream(self
, bitstream_file
):
24 raise NotImplementedError
26 # must be overloaded by specific programmer
27 def flash(self
, address
, data_file
):
28 raise NotImplementedError