Programming Flash - 2023.2 English

Vitis Unified Software Platform Documentation: Embedded Software Development (UG1400)

Document ID
Release Date
2023.2 English

Program Flash is a tool used to program flash memories in the design. Various types of flash are supported for programming.

  • For non-Zynq devices – Parallel Flash (BPI) and Serial Flash (SPI) from various makes such as Micron and Spansion.
  • For Zynq devices – QSPI, NAND, and NOR. QSPI can be used in different configurations such as QSPI SINGLE, QSPI DUAL PARALLEL, and QSPI DUAL STACKED.
  • For Versal devices – QSPI, emmc, and OSPI. QSPI can be used in different configurations such as QSPI SINGLE, QSPI DUAL PARALLEL, and QSPI DUAL STACKED.

Go to Vitis > Program Flash Vitis in the menu and open the program flash wizard.

Figure 1. Program Flash Window

The options available on the Program Flash Memory page are as follows:

Select the system project you plan to use. The application component will be automatically selected in the Component View.
Select the connection to the hardware server.
Image File
Select the file to write to the flash memory.
  • Zynq devices:
    • Supported file formats for qspi flash types are BIN or MCS formats.
    • Supported file formats for nor and nand types is BIN format.
  • Non-Zynq devices:
    • Supported types for flash parts in non Zynq devices are BIT, ELF, SREC, MCS, BIN.
Specify the offset relative to the Flash Base Address, where the file should be programmed.
Note: Offset is not required for MCS files.
Flash Type
Select a flash type.
  • Zynq devices:
    • qspi_single
    • qspi_dual_parallel
    • qspi_dual_stacked
    • nand_8
    • nand_16
    • nor
    • emmc
      Note: emmc flash type is applicable for Zynq UltraScale+ MPSoC and Versal devices only.
  • Non-Zynq devices:
    • The flash type drop-down list is populated based on the FPGA detected in the connection. If the connection to the hardware server does not exist, an error message stating "Could not retrieve Flash Part information. Please check hardware server connection" is displayed on the page. Based on the device detected, the dialog populates all the flash parts supported for the device.
Note: The appropriate part can be selected based on the design. For AMD boards, the part name can be found from the respective board’s user guide.
Init File
Provide the initialization file path.
Blank check after erase
The blank check is performed to verify if the erase operation was properly done. The contents are read back and checked if the region erased is blank.
Verify after Flash
The verify operation is cross-checked with the flash programming operation. The flash contents are read back and cross-checked against the programmed data.