Ultra-Fast Boot Overview
Boot Sequence Components
The boot process starts with the microprocessor's (MPU's) Power-On Reset (POR) and proceeds through multiple stages, loading and reading binary files from external Non-Volatile Memory (NVM) into volatile memory, including internal Static Random-Access Memory (SRAM) and external Dynamic Random-Access Memory (DRAM).
- Read-Only Memory (ROM) code (First-stage bootloader)
- at91bootstrap (second-level bootloader)
- The Universal Boot Loader (U-Boot)
- Loading Kernel and Rootfs

The ROM code, also known as Boot ROM, is stored in on-chip mask ROM and runs automatically after power-on or reset. It is responsible for loading the user application or a second-stage bootloader from an external NVM into internal SRAM.
at91bootstrap is the second-level bootloader for MPU Systems-on-Chip (SoCs). It provides a set of algorithms to manage hardware initialization, such as clock speed configuration, Parallel Input/Output (PIO) settings and DRAM initialization, to download your main application from the selected boot media into system memory and start execution.
U-Boot is used in the Linux® demo as a third-stage bootloader. It is responsible for configuring main interfaces and booting a Linux system. However, it is possible to avoid this step and to directly boot Linux from at91bootstrap in a production phase.
Embedded Linux is a popular choice for MPU development. It is more than just an operating system; it is a large collection of software libraries, device drivers, networking stacks, software applications and tools to choose from. Many developers are contributing to its open-source model, and a large online community provides tutorials and answers questions in forums to aid the developer.
Ultra-Fast Boot
Microchip's Ultra-Fast Boot solution for embedded Linux brings embedded Linux to life in under five seconds (best case is two seconds). By restoring a pre-saved Linux snapshot directly from flash, it enables true cold starts with a faster, smoother user experience.

Boot Time
Boot time is a key feature in embedded systems, especially for developers coming from the MCU world.
A standard, non-optimized Linux application can take more than 22 seconds to boot.

With Ultra-Fast Boot support, the system can achieve a cold-start boot time of less than two seconds.
