PetaLinux Bootloader Solutions

A bootloader is required to bring up an FPGA-based Linux system from a power-on or reset.

PetaLinux offers a pre-packaged, dual-phase bootloader solution, specially developed and customised for FPGA-based embedded Linux systems.

The first phase is handled by a small-footprint application called First Stage Boot (FS-Boot). At runtime, FS-Boot's job is to start the main bootloader. During the development phase, FS-Boot is also used to download an initial bootloader image, for board bringup.

For the main bootloader solution, PetaLinux uses the open source U-Boot bootloader. Originally developed for the PowerPC architecture by Wolfgang Denx, U-Boot has grown to support a large number of boards and CPU architectures, and is now the defacto bootloader for embedded Linux deployments.

PetaLogix has applied it's AutoConfig technology to U-Boot, to take the hassle out of porting the bootloader. The U-Boot source code is integrated into the main petalinux-dist source code tree, and is configured and compiled automatically as part of the overall embedded system build process.

Why two bootloaders?

When a MicroBlaze system is first powered on, it begins executing instruction code from the start of memory (address 0x00000000). Typically, this is mapped to an on-chip memory resource (BRAM).

While it is possible to put a large, fully featured bootloader in this on-chip memory, to do so is quite wasteful. Instead, a small footprint bootloader is used to bootstrap the main, larger feature rich bootloader, which typically is stored in flash or non-volatile memory on the board.

This dual-phase boot allows the best of both worlds - a small footprint BRAM-based bootstrap, with a fully featured boot loader and monitor.