FMADIO Gen4 200G
In cases where the FPGA can not be recovered from the AMD/Xilinx golden image, updating the FPGA via JTAG is the next process. The following steps is a guide on how to update the FPGA image.
Step 1) Connect a Micro USB cable to the FPGA
Install a Micro USB to USB A cable with the following mapping.
NOTE: the MicroUSB port might require nudging in, as its very close to the top of the PCI Bracket
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
Step 2) Confirm the USB JTAG can be seen
Run the following command
lsusbThe USB JTAG shows up as the following device
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
If the device does not show up, it may be cause the MicroUSB is not fully connected due to the edge of the PCI bracket. Try reseat it / push the connector in further.
Step 3) Install the remote JTAG Software
Download the JTAG install package (contact support for the URL) and copy to the following directory
cp vivado_lab_2023.2.tar.gz /mnt/store0/tmp2/Extract the tarball
cd /mnt/store0/tmp2
tar xfzv vivado_lab_2023.2.tar.gzTotal disk space is about 3.6GB
Step 4) Run the remote JTAG software
Using the Vivado Lab remote hardware device allows a base JTAG device to be controlled remotely over the network. This enables Vivado Lab to run on a windows PC or on a desktop system with minimal install on the FMADIO device.
in the directory
cd /mnt/store0/tmp2/2023.3/binRun the jtag software
./hw_serverThe output should look similar to below
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
Here the JTAG software is listening on TCP port 3121, if a firewall port needs to be opened or SSH tunnel is required this is the port to use.
Step 5) Download the recovery image
Please download the bitstream provided from the support team, this is the recovery image and save it to where Vivado is
Step 6) Connect Vivado Lab
Open Vivado Lab Hardware Manager per below
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
Open target
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
Open New target
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
Next
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
Remote server
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
Expected to find a device as highlighted below
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
Next
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
Finish
GUI should look like the following
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
Step 7) Program the bitstream
Using the right mouse button , select Program Device
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
Select the bitstream file provided by support
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
It may ask about a debug file, Cancel is ok
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
Finally program the device
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
When completed it displays
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
The FPGA is now programmed with a new image, it requires a reboot for the image to become active.
Step 8) Warm reboot the system
Issue a WARM reboot (a cold reboot will loose the just programed image)
sudo rebootStep 9) Confirm the FPGA image is present
Now the FPGA has been programed and the system rebooted, confirm the FPGA is present on the PCIe bus
lspci | grep e1The device shows up at bus address e1:00 as shown below
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
Step 10) Program a new FPGA image in the NAND
Program a new FPGA image, as recommended by FMADIO Support. To do this use the fnic_flash utility example shown below.
sudo fnic_flash --write fNICBoard_U55C_2x40G.binExample output looks as below, this writes the image into the non-volatile NAND memory on the FPGA.
It will take about 5min to complete
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
When complete it looks per below
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
Step 11) Cold power cycle
A cold power cycle is required to activate the new FPGA image.
Run the following command
sudo ipmitool power cycleStep 12) Confirm new FPGA
Confirm the new FPGA image is present using
lspci| grep e1Depending on the FPGA image the expected output looks similar to below.
If no entries are found please contact support for further assistance
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
And confirm the FPGA version, support will provide the expected version output
cat /opt/fmadio/status/fpga_versionExample shown below
.png?sv=2022-11-02&spr=https&st=2026-05-17T05%3A35%3A15Z&se=2026-05-17T05%3A47%3A15Z&sr=c&sp=r&sig=9NH6vvRNyFLDy9XmN73o65TRc1FfvSvb%2F1jmr%2BYA%2BvU%3D)
Step 13) Finished
Recovery completed.