PetaLinux Bootloader Solutions
TracNav menu
-
User Guide
- Copyright Information
- Acknowledgements
- Terminology
- Introduction
-
PetaLinux Overview
- PetaLinux Directory Structure
-
Working with PetaLinux - The Basics
- Overview
- Loading the settings file
- Selecting a Platform
- PetaLinux Configuration
- Building your Hardware
- Working with AutoConfig
- Building PetaLinux
- Booting your System
-
Customising PetaLinux
- Overview
- Adding New Hardware Project
- Adding New Platforms
- Adding New Applications
- System Settings Configuration Menu
-
Advanced Topics
- Non-standard PetaLinux Installations
- Adding new device nodes to the filesystem
- Enabling Uncached Shadow Option
-
Debugging
- Debugging User Applications
- Debugging Multithreaded Applications
-
PetaLinux Bootloader Solutions
-
First Stage Boot (FS-Boot)
- Overview
- Adding FS-Boot
- Building FS-Boot
- Customizing FS-Boot
- Using FS-Boot
-
U-Boot
- Overview
- Adding U-Boot
- Building U-Boot
- Customizing U-Boot
-
Using U-Boot
- Booting U-Boot
- Downloading Files
- Programming Flash
- Platform Initialisation
- Erase U-Boot Environment
- Updating Ethernet MAC Address in U-Boot
-
Supported Reference Designs
- Xilinx Boards
- Avnet Boards?
- Other Manufacturers?
- PetaLinux Tools Reference
- Getting Help
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.
