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

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