Firmware updates for the Turaco SBC will not be complicated. You will simply put an updated firmware.bin file on your SD card, and boot it. The machine will do the rest -- writing the firmware.bin to the internal ROM of the EZ80F91 CPU, which includes the bitstream for the FPGA, which in this implementation is an SPI slave, programmed at boot time by the CPU over SPI.
The maximum bitstream size for the iCE40UP5K, according to the documentation, is 104,161 bytes, or ~102KB; that is how much of the on-chip 256KB of flash ROM on the EZ80F91 must be devoted to holding the VERA bitstream. That leaves 154KB for a system ROM. The code that lives in there has to know how to do several things:
- Load a file from SD to RAM
- Run a program from RAM
- Contain system-specific ROM functions for talking to the various bits of hardware, including programming the FPGA over SPI
- Check the SD card for an auto-boot program, and boot it if found
- Boot to a serial monitor if all else fails