ULX3S bootloader support


I’ve added support for the ULX3S FPGA board from Radiona as a WIP pull reques #54. There is also a patch to allow the security pages in the SPI flash to be written by tinyprog so that it is easier to boot-strap a new board.

The bootloader seems to work fairly well and is much faster than the ujprog FTDI interface (both because the CDC is 1 MiB/s versus FTDI 300 KiB/s, and because the bitbanging JTAG on FTDI sends 16 bytes for each byte in the bitstream).

Things that don’t work yet:

  • Auto boot? It seems to stay in the bootloader forever if the USB is plugged in
  • Returning to the bootloader? Currently requires unplugging and replugging the USB port.
  • desc.tgz is not present. Does anything use it?
  • Load directly into SRAM? The JTAG interface can skip writing to the flash, which would be even faster for the tinyfpga bootloader.

If you have one of the boards and try it out, I’d appreciate any feedback or patches!


Very cool! I will try and give it a go this weekend. :smiley:



Nice work @hudson! Is there a way to connect a GPIO pin to the PROGRAMN pin on the ULXS3 board? That’s the only way to support “multiboot” on the ECP5 FPGAs. You have to use an external GPIO to toggle the PROGRAMN pin.