Programming via xbflash2

Alveo U45N Data Center Accelerator Card User Guide (UG1636)

Document ID
UG1636
Release Date
2023-06-23
Revision
1.0 English

This section details how to flash the Alveo data center accelerator card FPGA using the AMD board flash utility (xbflash2). Xbflash2 is a standalone command line utility used to flash a custom Vivado flow MCS image onto an Alveo card or to revert a card running a Vivado design back to its golden image over PCIe. Because it communicates directly with the card through the PCIe BAR, it does not require Xilinx Runtime (XRT) drivers (xocl/xclmgmt) to be installed or a programming cable. For xbflash2 command details, refer to the xbflash2 command documentation.

To program the card via the xbflash2 utility, a flashed and running design must have a flash controller (via the AXI Quad SPI IP) with proper configurations and mapping to the PCIe BAR.

Tip: The manufacturing image (sometimes referred to as the golden image) comes pre-installed on new cards with the flash controller incorporated.

Use the following to flash a card with xbflash2.

Note: The following steps assume the U45N card has the original manufacturing image installed.

When flashing a card with xbflash2 command, it is necessary to include the base address (BAR offset of the QUAD SPI IP/flash controller.

The Alveo data center accelerator card manufacturing image base address offset is 0x50000.

To flash a card, use the following command:

sudo xbflash2 program --spi --image <MCS_FILE> --bar-offset <BAR_OFFSET> -d <MGMT_BDF>

Where:

  • MCS_FILE - MCS file to flash to the card.
  • MGMT_BDF - Management Bus:Device.Function assigned to the card being programmed.
  • BAR_OFFSET - QUAD SPI IP/Flash controller base address offset. This address is dependent on current image flashed on the card

After running this command, the new image will be flashed to your card.

Perform a cold reboot on the host machine to complete the card update.

See Updating Vivado images via PCIe with xbflash for how to incorporate a flash controller in your design to enable xbflash.