Free to use, installable python package: https://github.com/dimitsev/sinara-firmware-compiler

Summary: You write a few python lists that specify what Sinara crates you have and how they are connected into Sinara systems and then https://github.com/dimitsev/sinara-firmware-compiler generates:

  • For all crates: system_description.json, boot.bin, the Vivado build logs, an extended build_info.json
  • For all systems: device_db.py, dev_map.bin, dev_map.txt

This python package gives you more freedom than M-Labs' firmware subscription service because you choose every single thing by yourself:

  • All parameters of the system description files.
  • What exact commit numbers to use in your local artiq/artiq-zynq repos.

If you don't need that much freedom, then M-Labs' firmware subscription service is obviously superior because you don't need to sink time into installing Vivado and into getting used to this python package.

    dtsevas What exact commit numbers to use in your local artiq/artiq-zynq repos.

    afws_client --rev also lets you select a commit ID. Not for Zynq currently but this will be fixed after the firmware merge.