Memory and Artix service firmware

[edit this page]

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:

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.