assembly/src/sw_sup/artiq_legacy.md

1.9 KiB

Building ARTIQ-6 and earlier

Pre-flake ARTIQ (that is 6 and earlier) requires slightly different steps for building.

Initial setup

The following steps need to be done only once.

First we will need to specify older nixpkg version - 21.05. Open ~/.nix-channels with your favorite text editor.

If there are any nixpkgs present already, comment them out with #.

Then add the following line:

https://nixos.org/channels/nixos-21.05 nixpkgs

Save and exit.

Now, we need special nix-scripts to configure building environment, and a local copy of the artiq repository, in legacy release.

mkdir artiq-legacy
cd artiq-legacy
git clone https://git.m-labs.hk/M-Labs/nix-scripts
git clone https://github.com/m-labs/artiq/
cd artiq
git checkout release-6  # or release-5...
cd ..

Setting up the environment and building firmware

Within fish shell (others may not work correctly), set up the ARTIQ build environment:

nix-shell -I artiqSrc=<full path to artiq repo in legacy branch> nix-scripts/artiq-fast/shell-dev.nix

Then build the required firmware as usual:

python -m artiq.gateware.targets.kasli_generic <variant>.json

If you are building legacy ARTIQ for local use and you want to flash it, use:

artiq_flash -V <variant> -d artiq_kasli --srcbuild

There's a slight discrepancy from usual command - -V <variant> option is not present in ARTIQ-7+, but it is necessary here.

If you want to send the binaries to a customer, there's no need packing up the whole build directory - only top.bit, bootloader.bin and runtime.elf/fbi or satman.elf/fbi are necessary. You can use the prep_pkg.py script from extras to package them up neatly into a zip file for distributions:

python prep_pkg.py -v <variant> -d artiq_kasli/

Then the customer can use artiq_flash easily, after extracting the contents:

artiq_flash -V <variant> -d .