Boot Flow
Boot Flow
The GSRD boot flow includes the following stages:
The BootROM and the Preloader stages are needed for all the applications in which the Cyclone V or Arria V SoC are used. They are shown in blue in the above figure. The U-boot and Linux are used by the GSRD, but a custom application may have the Preloader loading a bare-metal application directly for example.
The following table presents a short description of the different boot stages:
Stage | Description |
---|---|
BootROM | Performs minimal configuration and loads Preloader into 64KB OCRAM |
Preloader | Configures clocking, IOCSR, pinmuxing, DDRAM and loads U-boot into DDRAM |
U-boot | Configures FPGA, loads Linux kernel |
Linux | Runs the end application |
BootROM
Upon power on, the processor executes the BootROM code which resides inside on-chip ROM.
The main role of the BootROM is to initialize all required hardware components in order to boot up the next stage boot software, the Preloader.
The BootROM fetches the Preloader binaries from serial NOR flash, NAND flash or SD/MMC flash memory based on the BSEL pins.
Instead of running the Preloader from Flash, the BootROM can:
The BootROM uses the CSEL pins to determine the clocks to be used.
Preloader
The Preloader used by the GSRD is based on the SPL (Second Program Loader) framework, which is part of the U-Boot. Because of this, the Preloader and U-Boot share most of the source code, such as drivers. This gives the Preloader access to the variety of well tested drivers available for U-Boot.
The main functions of the Preloader are:
In addition to the above, the Preloader:
Bootloader
The bootloader used by GSRD is U-Boot.
U-Boot is an open source, primary boot loader used in embedded devices. U-Boot is licensed under GPL as it is an open source framework.
For more details about U-Boot, please refer to http://www.denx.de/wiki/U-Boot/Documentation.
The main functions of U-Boot are: