Bootloader - ArrowElectronics/data-storm-daq GitHub Wiki

Complex application class processors, such as the Cortex-A9 found in the Cyclone V SoC FPGA, require a bootloader to boot from reset. The Hard Processor System (HPS) boot flow is described here. Instructions are provided below for creating a custom Preloader or Secondary Program Loader (SPL) and U-Boot bootloader.

As a prerequisite the hdl must be built and referenced when creating a custom version of U-Boot. A hardware to software handoff folder is created during the hdl build process. This folder is referenced during the bootloader build process and is used to convey specific HPS selections made in Platform Designer during the Bootloader build process. An example of this would be to indicate which peripherals (UART, USB, Ethernet etc) were enabled or how the HPS PLLs should be configured (based on the selected clock values).

Build the Bootloader

  1. Open a shell (Ctrl+Alt+T)

  2. Setup up the environment for the Bootloader build. Ignore the DS-5 installation warning. It will not be utilized here.

     $ ~/intelFPGA_lite/18.1/embedded/embedded_command_shell.sh  
    
  3. Launch bsp-editor

     $ bsp-editor 
    
  4. Create a new BSP

     File --> New HPS BSP  
    
  5. Reference the Preloader settings directory

     Navigate to the /home/soceds/datastorm_daq/hdl/projects/arrow_ghrd/tei0022/partial_source/hps_isw_handoff/system_bd_sys_hps directory. 
    
     Select "Open", then select "OK".
    
  6. Generate the Preloader

     Select "Generate" to create the Preloader project. Select "Exit" to close bsp-editor.
    
  7. Build Preloader

    Return to the Embedded Command Shell and enter the following:

     $ cd /home/soceds/datastorm_daq/hdl/projects/arrow_ghrd/tei0022/partial_source/software/spl_bsp
    
     $ make  
    
  8. The newly created preloader-mkpimage.bin is now located in the spl_bsp directory

  9. Build uboot

     $ make uboot
    
  10. The newly created u-boot.img is now located in the spl_bsp/uboot-socfpga directory


Next - Build Linux Kernel
Return to Golden Hardware Reference Design
Return - GSRD