Intel® SoC FPGA Embedded Development Suite (SoC EDS) User Guide

ID 683187
Date 3/12/2021
Public
Document Table of Contents

8. HPS Flash Programmer User Guide

The Intel® Quartus® Prime software and Intel® Quartus® Prime Programmer include the 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 the Intel® Stratix® 10 SoC devices. It is your responsibility to program the flash connected to HPS. Several options are possible:
  • Use a bus switch to route the EPCQ-L/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, 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 of both the Intel® Quartus® Prime Pro Edition and Intel® SoC FPGA Embedded Development Suite.