Programming the Silicom-fb4CGg3 FPGA
Download the bitstream for your FPGA
The bitstream is available on the Github Release page alongside the Vollo SDK. For example to
download the bitstream for the Silicom fb4CGg3@VU09P-3
board with the c3b32
configuration of
Vollo:
curl -LO https://github.com/MyrtleSoftware/vollo-sdk/releases/download/v25.0.0/vollo-silicom-fb4CGg3@VU09P-3-c3b32-25.0.tar.gz
mkdir -p $VOLLO_SDK/bitstream
tar -xzf vollo-silicom-fb4CGg3@VU09P-3-c3b32-25.0.tar.gz -C $VOLLO_SDK/bitstream
Programming the FPGA over PCIe
Unless something has gone wrong, you should always be able to program the FPGA over PCIe.
You can check if the device is programmed with a Myrtle.ai Vollo bitstream by running:
$ lspci -d 1ed9:
01:00.0 Processing accelerators: Myrtle.ai Device 000a
If the device has not been programmed with the Vollo bitstream then it likely has the factory image which is also suitable for programming over PCIe:
$ lspci -d 1c2c:
01:00.0 Ethernet controller: Silicom Denmark Device 0001
If the device is not enumerating at all please contact us.
The following instructions will program the Vollo bitstream over PCIe:
-
First load the kernel driver.
sudo ./load-kernel-driver.sh vfio
There may be compilation issues with your version of Linux. This has been checked with Rocky Linux 8.10. If there is an issue with your system, please contact us.
-
Once the kernel driver is loaded you can program the flash with
vollo-tool
:sudo $VOLLO_SDK/bin/vollo-tool fpga-config overwrite-partition ${device_index:?} $VOLLO_SDK/bitstream/vollo-silicom-fb4CGg3@VU09P-3-c3b32.bit USER_IMAGE
The progress will be displayed and it should take around 5 minutes to program the flash. You will need to power cycle the host for the new bitstream to be loaded.
-
If successful the device should now enumerate as a Myrtle.ai Vollo device:
$ lspci -d 1ed9: 01:00.0 Processing accelerators: Myrtle.ai Device 000a