targets/sipeed_tang_nano_4k: Directly integrate flashing of EMCU flash.

Ex to build/flash bitstream + firmware with EMCU:
./sipeed_tang_nano_4k.py --cpu-type=gowin_emcu --build --flash
This commit is contained in:
Florent Kermarrec 2024-01-03 13:06:55 +01:00
parent 55ade3b2df
commit c0a98a6b9d
1 changed files with 16 additions and 15 deletions

View File

@ -171,21 +171,22 @@ def main():
if args.flash: if args.flash:
prog = soc.platform.create_programmer() prog = soc.platform.create_programmer()
prog.flash(0, builder.get_bitstream_filename(mode="flash", ext=".fs")) # FIXME bitstream_filename = builder.get_bitstream_filename(mode="flash", ext=".fs") # FIXME
if args.cpu_type != "gowin_emcu":
prog.flash(0, builder.get_bios_filename(), external=True)
if args.cpu_type == "gowin_emcu":
import time
bios_filename = builder.get_bios_filename() bios_filename = builder.get_bios_filename()
msg = "\n" if args.cpu_type != "gowin_emcu":
msg += "Gowin EMCU firmware must be written in flash with:\n" prog.flash(address=0, data_file=bitstream_filename)
msg += f"openFPGALoader -b tangnano4k --mcufw {bios_filename}\n" prog.flash(address=0, data_file=bios_filename, external=True)
msg += "Warning: this will erase ALL the internal flash" else:
msg += "\n" prog.flash(
print(msg) address = 0,
time.sleep(2) data_file = bitstream_filename,
mcufw = bios_filename,
)
# Note: Recommend using v0.11.0 version of openFPGALoader since probable regression with
# commit f71858f96a75c7c0a96f31a4ed3f167e4b914ef0.
# With recent version, in case of CRC check error, erase device with Gowin's programmer:
# sudo modprobe -r ftdi_sio
# ./programmer_cli -d GW1NSR-4C -r 7
if __name__ == "__main__": if __name__ == "__main__":
main() main()