The preloader is allowed to load the next boot software stage from any device available to the HPS. Typical
sources include the same flash device that contains the preloader, a different flash device, or a communication
interface such as an EMAC.
Boot Loader
The boot loader loads the operating system and passes software control to the operating system.
Boot ROM
The function of the boot ROM code is to determine the boot source, initialize the HPS after a reset, and
jump to the preloader. In the case of indirect execution, the boot ROM code loads the preloader image from
the flash memory to on-chip RAM. The boot ROM performs the following actions to initialize the HPS:
• Enable instruction cache, branch predictor, floating point unit, NEON vector unit
• Sets up the level 4 (l4) watchdog 0 timer
• Configures the main PLL and peripheral PLL based on the CLKSEL value
• Configures I/O elements and pin multiplexing based on the BOOTSEL value
• Initializes the flash controller to default settings
When booting from flash memory, the boot ROM code uses the top 4 KB of the on-chip RAM as data
workspace. This area is reserved for the boot ROM code after a reset until the boot ROM code passes software
control to preloader. This limits the maximum size of the preloader for indirect execution to 60 KB. For a
warm boot or cold boot from FPGA, the boot ROM code does not reserve the top 4KB of the on-chip RAM,
and the user may place user data in this area without being overwritten by boot ROM.
Boot ROM Flow
This section describes the software flow from reset until the boot ROM code passes software control to the
preloader. The following figure illustrates that the boot ROM code can perform a warm boot from on-chip
RAM, a cold boot from the FPGA portion of the device, or a cold boot from flash memory.
Altera Corporation
Booting and Configuration Introduction
A-5
Boot Loader
cv_5400a
2013.12.30