Intel® Quartus® Prime Pro Edition User Guide: Programmer

ID 683039
Date 4/03/2023

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

4. Using the HPS Flash Programmer

The Intel® Quartus® Prime software and Intel® Quartus® Prime Programmer include the hard processor system (HPS) flash programmer. Hardware designs, such as HPS, incorporate flash memory on the board to store FPGA configuration data or HPS program data. The HPS flash programmer programs the data into a flash memory device connected to an Intel® FPGA SoC. The programmer sends file contents over an Intel® download cable, such as the Intel® FPGA Download Cable II, to the HPS and instructs the HPS to write the data to the flash memory.

The HPS flash programmer programs the following content types to flash memory:

  • HPS software executable files — Many systems use flash memory to store non-volatile program code or firmware. HPS systems can boot from flash memory.
    Note: The HPS Flash Programmer is mainly intended to be used for programming the Preloader image to QSPI or NAND flash. Because of the low speed of operation, it is not recommended to be used for programming large files.
  • FPGA configuration data — At system power-up, the FPGA configuration controller on the board or HPS read FPGA configuration data from the flash memory to program the FPGA. The configuration controller or HPS may be able to choose between multiple FPGA configuration files stored in flash memory.
  • Other arbitrary data files — The HPS flash programmer programs a binary file to any location in a flash memory for any purpose. For example, a HPS program can use this data as a coefficient table or a sine lookup table.
The HPS flash programmer programs the following memory types:
  • Quad serial peripheral interface (QSPI) Flash
  • Open NAND Flash Interface (ONFI) compliant NAND Flash
Note: The HPS Flash Programmer does not support Intel® Stratix® 10 SoC or Intel® Agilex™ 7 devices. It is your responsibility to program the flash connected to HPS. Several options are possible:
  • Use a bus switch to route the QSPI signals to an external master that does the programming.
  • Use software running on HPS to do the programming. For example, U-Boot can be loaded with an Arm* debugger or System Console, and then used to program the flash.
Note: On Intel® Stratix® 10 SoC or Intel® Agilex™ 7 devices, the HPS can have access to the QSPI flash memory connected to SDM. This flash is programmed using the Intel® Quartus® Prime Programmer tool that is part Intel® Quartus® Prime Pro Edition.