07 Boot sequence on FPGA based SoC. - alex-aleyan/xilinx GitHub Wiki

References:

Overview:

  • Boot Sequence on FPGA based SoC (see hdl/linux/u-boot-xlnx-include/configs/zynq-common.h):
    • Load Boot Loader.
    • PL Bitstream (system.bit.bin file).
    • U-Boot.
    • KERNEL image (uImage).
    • Device Tree image (devicetree.dtb file).
    • ROOT File System (uramdisk.image.gz file).
    • Device Tree Addresses.
  • Boot Sequence on FPGA based SoC
      Power on
         || 
         \/ 
        FSBL 
 (PS init; ps7_init)
         || 
         \/ 
        FSBL 
(program PL; bit stream)
         || 
         \/ 
       U-BOOT 
     (System V)
         || 
         \/ 
     Linux KERNEL 
    (Kernel Image)
         || 
         \/  
Device tree image here?
         || 
         \/ 
 Linux Root File System
(Root File System Image)
         || 
         \/ 
  Linux KERNEL Drivers 
         || 
         \/ 
 User Level Applications
  • FSBL - First Stage Boot Loader.
  • Booting options:
    • over JTAG (slow)
    • from an SD Card (faster that JTAG)
    • over a network (PXE; fastest)

JTAG Booting:

SD Card Booting:

  • Create BOOT.bin file containing:
    • FSBL Boot Loader.
    • PL Bitstream (can be excluded from BOOT.bin to program the PL after the PS is booted).
    • U-Boot.
    • Device Tree image.
    • KERNEL image.
    • ROOT File System.

Booting from TFTP server over Ethernet port: