Memory and Artix service firmware¶
Memory Devices¶
The Artix PROM is the folllowing:
Master SPI (x4)
Spansion S25FL256SAGBHBA0
The X0/X1 PROMs are the folllowing:
Master SPI (dual x4 - i.e. x8)
Spansion S25FL256SAGBHBA0 (S25FL512S in future)
Appears as S25FL256Sxxxxxx0 in vivado (Spansion part with a 256 Mb size)
Create memory file¶
To make a memory (.mcs
) file from a bitfile in Vivado there is a tool (under tools->create memory file) that should be configured with the above devices.
This can then be loaded using program memory device after attaching it to the relevant FPGA.
Programming the Artix¶
In order to program the Artix (either PROM or FPGA directly) the PCIe connection should be removed from the ComExpress otherwise a reboot will be required to recover the CPU.
The serenitybutler
script’s pcie disconnect
command should be explicitly run prior to programming the Artix or it’s associated PROM:
serenitybutler pcie disconnect artix
If you program only the Artix (bit-file) then serenitybutler pcie reconnect artix
can be
run in order to bring back the PCIe connection to the Artix and then
program the DC FPGAs if required. However, if you only program the PROM then
the PCIe will remain disconnected until you reboot the card.
Bitfiles for Artix firmware¶
Currently two different versions of the ARTIX FPGA have been deployed on SERENITY base boards: the a35 and a50 variants. This requires different bit files and associated MCS memory configurations.
First to check which firmware you have loaded on a SERENITY board, access
the ComX and then run the following command (NB: you need to have a
serenity.xml
config file set as described here - Artix TTC):
serenitybutler artix info
The release notes for the Artix firmware can be found here, and the latest (v0.3. 1) release can be downloaded using the following links:
a35 Memory file (right click to save locally)
a35 compressed bit file (right click to save locally)
Note that loading the bitfiles into the artix FPGA will only be persistent until the next power cycle. Therefore it is recommended that you also program the memory part. Also, before programming the Artix or its PROM via the JTAG header, remember to disconnect the PCIe bus by running:
serenitybutler pcie disconnect artix
Otherwise, if this command is not run, the operating system will crash, and the board will have to be power cycled to restore access to the ComX.