7 from migen
.util
.misc
import autotype
9 from misoc_import
import misoc_import
11 if __name__
== "__main__":
12 parser
= argparse
.ArgumentParser(description
="Program extra data to flash memory.")
13 parser
.add_argument("-f", "--flash-proxy-dir", default
=None, help="set search directory for flash proxy bitstreams")
14 parser
.add_argument("-X", "--external", default
="", help="use external directory for platforms and imports")
15 parser
.add_argument("-Op", "--platform-option", default
=[], nargs
=2, action
="append", help="set platform-specific option")
16 parser
.add_argument("platform", help="target platform")
17 parser
.add_argument("file", help="file to flash")
18 parser
.add_argument("address", help="flash address to write")
19 args
= parser
.parse_args()
21 external_platform
= ""
23 external_platform
= os
.path
.join(args
.external
, "platforms")
24 sys
.path
.insert(1, os
.path
.abspath(args
.external
))
26 platform_module
= misoc_import("mibuild.platforms", external_platform
, args
.platform
)
27 platform_kwargs
= dict((k
, autotype(v
)) for k
, v
in args
.platform_option
)
28 platform
= platform_module
.Platform(**platform_kwargs
)
30 prog
= platform
.create_programmer()
31 prog
.set_flash_proxy_dir(args
.flash_proxy_dir
)
32 prog
.flash(int(args
.address
, 0), args
.file)