fpgas-verify: checking the wiring of an Acorn

You have built the cables between an Acorn and its host and want to find the page that checks them, and to know what the check does to the card and the host, how the packages survive a reboot and which bitstreams it needs. Every fpgas-verify page is listed in fpgas-verify.

Checking the wiring of an Acorn

The Acorn’s check doubles as a wiring test: each of its tests uses a known set of wires between the card and the host, so which tests pass and what a failing one says point at the wire. That is a page of its own for each carrier, from installing after a boot to which wire a failing line means:

What the Acorn’s check does to the card and the host:

  • The check never writes the card’s flash and never loads a design into the FPGA. It does drive the P1 and P2 wires, which is how it tests them, and puts the Pi’s pins back as it found them; on a converted card it writes the design’s scratch register and puts the old value back (with the opt-in power-cycle check on, it leaves a marker there); and it records what it found on this host (/var/lib/fpgas-online/verify-state.json).

  • It exits 0 only for a pass. The summary is on the terminal; the same as JSON is in /run/fpgas-online/verify.json.

  • To keep the packages across boots, they have to go into the image the host boots from; that is the host owner’s root image, not something these packages do.

  • The check needs no bitstream file of yours. The images it compares the card’s flash with, and the design that converts a card, are installed with it by fpgas-online-acorn-bitstreams, in /usr/share/fpgas-online/acorn-pcie/images/ (for a CLE-101: acorn-cle-101-sqrl_acorn.bit and the two flash images). To convert a card, follow How to install the fpgas.online images on an Acorn. No package installs a pin-id or loopback design for the Acorn; the check does not use one.

Both are generated by docs/wiring/acorn/check.py from the words in docs/wiring/acorn/check/, the wiring table wiring.toml, and the Acorn transcripts of Reading the result and rows of Common failures.