fpgas-verify: installing it¶
You have a Raspberry Pi with an FPGA board attached and want to install fpgas-verify for that board.
Every fpgas-verify page is listed in fpgas-verify.
Installing¶
What you need¶
a Raspberry Pi, or another host running Debian or Raspberry Pi OS bookworm or trixie, with the board attached
sudoandcurlon it, and a network that reachesapt.fpgas.onlineandfpgas.online
grep VERSION_CODENAME /etc/os-release says which release the host runs.
Steps¶
1. Add the fpgas.online apt repository. Each line replaces the file it writes, so the step is safe to run again.
The curl line downloads the repository’s key. If the download fails, curl prints why and writes nothing. The
last line lists the key: apt.gpg is about 1.2 kB (1164 bytes). If ls says No such file or directory, or the
size is far from that, run the curl line again.
# The fpgas.online apt repository (bookworm or trixie).
sudo install -d -m0755 /etc/apt/keyrings
sudo curl -fsSL --remove-on-error -o /etc/apt/keyrings/apt.gpg https://apt.fpgas.online/apt.gpg
echo "deb [signed-by=/etc/apt/keyrings/apt.gpg] https://apt.fpgas.online/$(. /etc/os-release; echo $VERSION_CODENAME)/ ./" \
| sudo tee /etc/apt/sources.list.d/apt.list
ls -l /etc/apt/keyrings/apt.gpg
2. Add the fpgas.online-fpga-tools repository, before installing. On bookworm every board but the TT FPGA board
needs it: Debian bookworm’s openFPGALoader cannot read the device DNA. A NeTV2 on a Raspberry Pi 5 needs it
on any release: only its build has the rp1pio cable. On 32-bit Raspberry Pi OS (ID=raspbian) the suite is
raspbian-<release>, which is built for every Pi down to the Pi 1 and Zero.
As in step 1, the step is safe to run again. Its last line lists the key: fpgas.online-fpga-tools.gpg is about
1.2 kB (1174 bytes). If it is missing or its size is far from that, run the curl line again.
# fpgas.online's openFPGALoader; add it before installing. A NeTV2 on a Pi 5 needs it. Elsewhere Debian's own
# works from 0.13.0 on (trixie), but bookworm's (0.10.0) is too old: it cannot read the device DNA.
sudo curl -fsSL --remove-on-error -o /etc/apt/keyrings/fpgas.online-fpga-tools.gpg \
https://fpgas.online/fpgas.online-fpga-tools/fpgas.online-fpga-tools.gpg
echo "deb [signed-by=/etc/apt/keyrings/fpgas.online-fpga-tools.gpg] https://fpgas.online/fpgas.online-fpga-tools/$(. /etc/os-release; if [ "$ID" = raspbian ]; then echo "raspbian-$VERSION_CODENAME"; else echo "$VERSION_CODENAME"; fi)/ ./" \
| sudo tee /etc/apt/sources.list.d/fpgas.online-fpga-tools.list
ls -l /etc/apt/keyrings/fpgas.online-fpga-tools.gpg
3. Read the new repositories’ package lists.
sudo apt update
4. Install the package for your board, one of the table below. They conflict, so a host is never set up for two boards by accident.
sudo apt install fpgas-online-arty # the package for your board
Package |
Installs |
|---|---|
|
everything to check a Sqrl Acorn CLE-215+ / CLE-101 (and LiteFury), and turns the boot check on for it |
|
everything to check a Digilent Arty A7-35T, and turns the boot check on for it |
|
everything to check a Kosagi NeTV2 (XC7A35T or XC7A100T), and turns the boot check on for it |
|
everything to check a Fomu EVT, and turns the boot check on for it |
|
everything to check a TT FPGA Demo Board, and turns the boot check on for it |
|
everything to check any of the boards, and turns the boot check on for whichever is found |
|
turns the boot check on for whichever board is found, of those whose |
5. If you want the debug tool for when the check fails, install the board’s -debug package too.
sudo apt install fpgas-online-arty-debug # fpgas-arty-debug
Check¶
fpgas-verify --list lists the installed boards and the one this host is set up for.
Where step 2 applies, dpkg -l 'openfpgaloader*' lists openfpgaloader-fpgasonline or
openfpgaloader-fpgasonline-git (the repository’s release and git builds), not Debian’s openfpgaloader.
If it fails¶
apt updatesays the repositoryis not signed: its key is missing, empty or wrong. On trixie a missing key givesFailed to parse keyring "/etc/apt/keyrings/apt.gpg"andNo such file or directory. An empty or wrong one givesMissing key 878EC72910E22EA0E989EAA9BEB0EC3124E538E4, which is needed to verify signature.Both endThe repository 'https://apt.fpgas.online/trixie ./ InRelease' is not signed.On bookworm it saysNO_PUBKEYand the key’s ID (BEB0EC3124E538E4forapt.fpgas.online). Run the step that adds that repository again (step 1 forapt.fpgas.online, step 2 forfpgas.online-fpga-tools), check itslsline, then run step 3.aptcannot find a package: the repository line of step 1 is missing, or step 3 was not run after it.On bookworm,
aptreports an unmet dependency onopenfpgaloader (>= 0.13.0): step 2 was not done. Do steps 2 and 3, then step 4 again.On trixie, Debian’s own openFPGALoader was installed because step 2 came after step 4; it does not have the
rp1piocable a NeTV2 on a Raspberry Pi 5 needs. Run step 3, thensudo apt install openfpgaloader-fpgasonlineto switch to the repository’s build.
Next¶
Running it: run the check now, without waiting for a boot.
The packages of each board, below.
Notes¶
fpgas-online-<board>-debugaddsfpgas-<board>-debugand the tools for the tests the boot check skips.Installing does not run the check. It runs at the next boot, or when you run it.
The packages are
Architecture: all. On bookworm, every board’s packages but the TT FPGA board’s need openFPGALoader from the fpga-tools repository. It is built for arm64 and armhf only, so on bookworm those packages do not install on x86. The NeTV2 and the Acorn need a Pi’s GPIO header, and so does the Fomu EVT, which sits on it; the Arty and TT FPGA board need only USB.Versions are
0.0.postNfromgit describe. Each package depends on the others’ exact version, sosudo apt upgrademoves them together.What each board’s packages pull in is listed below.
What the packages of each board install¶
Acorn packages¶
Package |
Version scheme |
Installs |
|---|---|---|
|
|
installs everything below to check an Acorn, and turns the boot check ( |
|
|
the Acorn’s module of |
|
pinned release date + commit (e.g. |
|
|
|
|
The tools package depends on one exact bitstreams version. Which release that is comes from packaging/acorn-pcie/release.toml, and a new release reaches hosts only when a reviewed PR moves that pin. Every package is built, and its install rules are checked in clean Debian bookworm and trixie, by collect-bitstreams.yml.
fpgas-online-acorn-debug adds fpgas-acorn-debug. It brings openFPGALoader for loading the .bit over GPIO JTAG, which is how a card still on the image it was sold with is converted, and python3-serial for fpgas-acorn-flash --uart.
The fpgas.online-fpga-tools repository has the fpgas.online openFPGALoader build, with the RP1 PIO JTAG cable and SPI flash info. Add it before installing. Otherwise apt installs Debian’s own package (bookworm 0.10.0, trixie 0.13.1). Adding the repository afterwards does not replace it: run sudo apt install openfpgaloader-fpgasonline to switch.
Arty A7 packages¶
Package |
Installs |
|---|---|
|
installs everything below to check an Arty, and turns the boot check ( |
|
the Arty’s module of |
|
the Arty A7-35T test bitstreams built by the same commit’s CI, in |
|
|
Without the fpgas.online-fpga-tools repository apt installs Debian’s openfpgaloader. That works for the Arty from 0.13.0 on (trixie’s), because the check reads the device DNA with --read-dna. Bookworm’s (0.10.0) is too old, so on bookworm fpgas-online-arty installs only with the repository added.
NeTV2 packages¶
Package |
Installs |
|---|---|
|
installs everything below to check a NeTV2, and turns the boot check ( |
|
the NeTV2’s module of |
|
the XC7A35T and XC7A100T test bitstreams built by the same commit’s CI, in |
|
|
On a Raspberry Pi 5 the fpgas.online-fpga-tools repository is needed: only its openFPGALoader builds have the rp1pio cable. They also have the SPI-over-JTAG bridge for the XC7A35T-FGG484, which Debian bookworm’s openfpgaloader lacks, so on bookworm the flash readback of an XC7A35T board fails without them.
Fomu EVT packages¶
Package |
Installs |
|---|---|
|
installs everything below to check a Fomu, and turns the boot check ( |
|
the Fomu’s module of |
|
the test bitstreams built by the same commit’s CI, in |
|
|
TT FPGA packages¶
Package |
Installs |
|---|---|
|
installs everything below to check a TT FPGA Demo Board, and turns the boot check ( |
|
the board’s module of |
|
the test bitstreams built by the same commit’s CI, in |
|
|
fpgas-online-tt is a different package: the TT site’s own.