Hands-on courses for your engineering team.
Fast Boot
Boot Time Optimization.
Fast and Reliable Booting
Fast boot times and a reliable bootloader are foundational requirements for embedded Linux systems. The bootloader’s influence on system behavior — and on the user’s first impression of a product — is often underestimated, and boot time is frequently the last thing optimized, yet can be the hardest to recover once the architecture is set.
11 s → 656 ms
Measured on an Atmel AT91 ARM9: a 94% reduction across bootloader, kernel, and userspace — with no changes to the application or target hardware.
A bootloader does more than initializing hardware and handing off to the operating system. It directly influences boot time, is an essential part of the secure boot chain, and often includes watchdog monitoring and factory reset logic as well.
Many of these requirements can be addressed with well-established bootloaders such as U-Boot, coreboot, or Redboot. We use these in customer projects regularly and adapt them to the specific hardware and requirements of each system.
When demands become more complex — tighter boot time targets, more sophisticated update concepts, or stricter security requirements — an Initial Program Loader (IPL) approach can be applied: the bootloader itself is kept as small and simple as possible, while the logic that would otherwise live there is moved into the operating system.
This offers two concrete advantages:
- The bootloader codebase is significantly smaller, which reduces maintenance effort and makes the component easier to verify and certify.
- Update logic and other system management tasks can be implemented with standard Linux tools, rather than in a constrained bootloader environment.
Fast Boot
Modern embedded devices are complex — in terms of their own capabilities and in terms of their integration into larger systems. IoT and Industry 4.0 contexts add further requirements around connectivity, remote management, and availability.
Boot time becomes a critical factor especially when a project moves from a microcontroller to a more capable SoC. The new hardware is significantly more powerful, but the introduction of a full operating system can make boot times feel like a step backward. Managing this trade-off is a core part of embedded Linux engineering.
The Boot Process
A Linux system boots in different phases. Each one is a lever, and each one can be measured independently:
Results from 11 Seconds to under 700 msec
Boot-time optimization is usually approached from several angles simultaneously. The chart below shows the cumulative reduction in boot time after each optimization step, measured on an Atmel AT91 ARM9.
lpj= (skip calibration)
1.06 s
The first two optimizations tackle the bootloader: removing unused U-Boot features such as networking and USB support cuts the boot time to 8.75 s, and skipping the per-boot image verification check brings it to 8.39 s.
Trimming the kernel configuration to what the hardware actually needs drops the time to 8.1 s, and streamlining the userspace init scripts by cutting sequential waits and services not required at startup takes it to 7.38 s.
Switching to an initramfs with direct application launch cuts the time nearly in half, from 7.38 s to 4.16 s. Replacing U-Boot with a custom Initial Program Loader brings it down to 1.26 s: a purpose-built loader that does only what this specific hardware requires is faster than a general-purpose bootloader.
The final three steps are smaller but visible. Pre-setting the lpj= kernel parameter skips the delay loop calibration that normally runs on every boot (1.06 s). Suppressing serial console output removes the blocking UART I/O behind every kernel log line (736 ms). Switching kernel compression from gzip to LZO which decompresses faster on low-power CPUs brings the bar to its final length: 656 ms.
The result is a system that boots 94% faster than the baseline, with no changes to the application or target hardware.
Work with us on your next Boot up
We work with you on security architecture, integration, and certification for your embedded project. If you have specific requirements around CRA compliance, IEC 62443, or a particular hardware platform, get in touch.
Consulting
Boot time analyses, Boot Security and more.
Implementation
Boottime optimization and bootloader development.