PSS Agilex FPGA firmware programming
Prerequisites:
The
ska_collections.pss.agilexAnsible role should be applied to the nodeFirmware tarball, e.g. https://artefact.skao.int/#browse/browse:raw-internal:ska-pss-fdas-agilex-2.1.0.tar.gz
Start by finding the JTAG interface of the FPGA:
ubuntu@ds-psi-pss-01:~$ jtagquery
1) AGF FPGA Development Kit [7-1]
C341A0DD AGFB014R24(A|B)
020D10DD VTAP10
To program the periphery firmware image onto the FPGA using its JTAG interface:
ubuntu@ds-psi-pss-01:~$ quartus_pgm -c 1 -m JTAG -o "p;FDAS_TOP.periph.jic@1"
Info: *******************************************************************
Info: Running Quartus Prime Programmer
Info: Version 22.4.0 Build 94 12/07/2022 SC Pro Edition
Info: Copyright (C) 2022 Intel Corporation. All rights reserved.
Info: Your use of Intel Corporation's design tools, logic functions
Info: and other software and tools, and any partner logic
Info: functions, and any output files from any of the foregoing
Info: (including device programming or simulation files), and any
Info: associated documentation or information are expressly subject
Info: to the terms and conditions of the Intel Program License
Info: Subscription Agreement, the Intel Quartus Prime License Agreement,
Info: the Intel FPGA IP License Agreement, or other applicable license
Info: agreement, including, without limitation, that your use is for
Info: the sole purpose of programming logic devices manufactured by
Info: Intel and sold by Intel or its authorized distributors. Please
Info: refer to the applicable agreement for further details, at
Info: https://fpgasoftware.intel.com/eula.
Info: Processing started: Mon Jul 14 12:06:07 2025
Info: System process ID: 3790
Info: Command: quartus_pgm -c 1 -m JTAG -o p;FDAS_TOP.periph.jic@1
Info (213045): Using programming cable "AGF FPGA Development Kit [7-1]"
Info (213011): Using programming file FDAS_TOP.periph.jic with checksum 0xE1CDEDF8 for device AGFB014R24B@1
Info (209060): Started Programmer operation at Mon Jul 14 12:06:12 2025
Info (19094): Erasing flash 1 at device index 1
Info (19096): Programming flash 1 at device index 1
Info (209011): Successfully performed operation(s)
Info (209061): Ended Programmer operation at Mon Jul 14 12:08:54 2025
Info: Quartus Prime Programmer was successful. 0 errors, 0 warnings
Info: Peak virtual memory: 1348 megabytes
Info: Processing ended: Mon Jul 14 12:08:54 2025
Info: Elapsed time: 00:02:47
Info: System process ID: 3790
After programming the periphery firmware, completely power-cycle the machine:
ubuntu@ds-psi-pss-01:~$ sudo ipmitool chassis power cycle
After reboot, the device should show up:
ubuntu@ds-psi-pss-01:~$ sudo lspci -d 1172:000 -v
e1:00.0 Unassigned class [ff00]: Altera Corporation Device 0000 (rev 01)
Flags: bus master, fast devsel, latency 0, NUMA node 1, IOMMU group 50
Memory at b84de000000 (64-bit, prefetchable) [size=4M]
Memory at b84dc000000 (64-bit, prefetchable) [size=32M]
Capabilities: [40] Power Management version 3
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [b0] MSI-X: Enable- Count=16 Masked-
Capabilities: [100] Advanced Error Reporting
Capabilities: [148] Virtual Channel
Capabilities: [178] Alternative Routing-ID Interpretation (ARI)
Capabilities: [188] Secondary PCI Express
Capabilities: [1b8] Physical Layer 16.0 GT/s <?>
Capabilities: [1e8] Lane Margining at the Receiver <?>
Capabilities: [470] Data Link Feature <?>
Capabilities: [d00] Vendor Specific Information: ID=1172 Rev=0 Len=05c <?>
Kernel driver in use: ifc_uio_cvp
Kernel modules: ifc_uio_cvp