Program Flash is a tool used to program flash memories in the design. Various types of flash support 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. You can use QSPI in different configurations such as QSPI SINGLE, QSPI DUAL PARALLEL, and QSPI DUAL STACKED.
- For Versal devices – QSPI, emmc, and OSPI. You can use QSPI in different configurations such as QSPI SINGLE, QSPI DUAL PARALLEL, and QSPI DUAL STACKED.
Go to 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:
- Project
- Select the system project you plan to use. The Vitis tool automatically selects the Component View.
- Connection
- 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.
-
Zynq devices:
- Offset
- Specify the offset relative to the Flash Base Address. The Vitis tool programs the file in this offset location.Note: You do not need offset 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 populates with information from the
connected FPGA. Based on the device detected, the dialog
populates all the flash parts supported for the device. If the
connection to the hardware server does not exist, the following
error message displays on the page.
"Could not retrieve Flash Part information. Please check hardware server connection"
- The flash type drop-down list populates with information from the
connected FPGA. Based on the device detected, the dialog
populates all the flash parts supported for the device. If the
connection to the hardware server does not exist, the following
error message displays on the page.
Note: You can select the appropriate part can on the design. For AMD boards, the part name can be found from the respective board’s user guide. -
Zynq devices:
- Init File
- Provide the initialization file path.
- Blank check after erase
- The blank check verifies the erase operation and whether the erased region is blank.
- Verify after Flash
- The Vitis tool reads back and cross-checks the flash contents against the programmed data.