You can boot the HPS and HPS EMIF I/O first before configuring the FPGA core and periphery. The MSEL[2:0] settings determine the source for booting the HPS. In this mode, any of the I/O allocated to the FPGA remain tri-stated while the HPS is booting. The HPS subsequently configures the FPGA core and periphery excluding the HPS EMIF I/O. Software determines the configuration source for the FPGA core and periphery. In HPS boot first mode, you have the option of configuring the FPGA core during the SSBL stage or when the OS boots.
In the context of HPS Boot First mode, the initial configuration of HPS EMIF I/O and loading of HPS FSBL is called "Phase 1 configuration". The subsequent configuration of FPGA core and periphery by HPS is called "Phase 2 configuration". The Phase 1 and Phase 2 configuration files must be generated from the same Quartus® Prime Pro Edition software version, this includes patches installed if applicable.
A typical HPS Boot First flow may look like the following figure. You can use U-Boot, Unified Extensible Firmware Interface (UEFI) or a custom boot loader for your FSBL or SSBL. An example of an OS is Linux or an RTOS. The flow includes the time from power-on-reset (T
POR) to boot completion (T
Boot_Complete).
Table 231. HPS Boot First Stages
Time |
Boot Stage |
Device State |
TPOR |
POR |
Power-on reset |
T1 to T2 |
SDM- Boot ROM |
- SDM samples the MSEL pins to determine the configuration scheme and boot source.
- SDM establishes the device security level based on eFuse values.
- SDM initializes the device by reading the configuration firmware (initial part of the bitstream) from the boot source.
- SDM authenticates and decrypts the configuration firmware (this process occurs as necessary throughout the configuration).
- SDM starts executing the configuration firmware.
|
T2 to T3 |
SDM- Configuration Firmware |
- SDM configures the HPS EMIF I/O and the rest of the user-configured SDM I/O.
- SDM loads the FSBL from the bitstream into HPS on-chip RAM.
- SDM enables HPS SDRAM I/O and optionally enables HPS debug.
- HPS is released from reset.
|
T3 to T4 |
FSBL |
- The FSBL initializes the HPS, including the SDRAM.
- FSBL obtains the SSBL from HPS flash or by requesting flash access from the SDM.
- FSBL loads the SSBL into SDRAM.
- HPS peripheral I/O pin mux and buffers are configured. Clocks, resets and bridges are also configured.
- HPS I/O peripherals are available.
|
T4 to T5 |
SSBL |
After bootstrap completes, any of the following steps may occur:
- The FPGA core configuration loads into SDRAM from one of the following sources:
- SDM flash
- HPS alternate flash
- EMAC interface
- HPS requests SDM to configure the FPGA core.60
- FPGA enters user mode
- OS is loaded into SDRAM.
|
T5 to TBoot_Complete |
OS |
- OS boot occurs and applications are scheduled for runtime launch
- (Optional step) OS initiates FPGA configuration through a secure monitor call (SMC) to the SSBL, which then initiates the request to the SDM.
|
Note: The location of the source files for configuration, FSBL, SSBL and OS can vary.