tinyfpga / TinyFPGA-Bootloader

An open source USB bootloader for FPGAs
Apache License 2.0
352 stars 94 forks source link

tinyprog security page writing and other features #53

Closed osresearch closed 5 years ago

osresearch commented 5 years ago

When bootstrapping an FPGA dev board it is handy to have a way to write to the SFDP security pages. The tinyprog class had the program_security_register_page methods; this patch adds a command line argument to allow it to be called.

If there is no meta data in the SPI flash, it is still sometimes desirable to flash at a specific address with -a. This patch allows -a to force the address even if there is no meta data.

To speed up re-writing similar bitstreams, tinyprog now pre-reads the current contents and only does a sector erase if necessary. Pages of entirely 0xFF are also not re-written after a sector erase.

Also updates the README with the new format for the bootmeta-addrmap struct.

osresearch commented 5 years ago

With the partial update a full cycle of edit Verilog file, synth/pnr and program the ecp5 FPGA can be 5-6 seconds since much of the bitstream does not change for minor changes in the input verilog.