How To Boot Linux In Under One Second

Fast boot is important for applications where a system is not running continuously.
Linux is often used in embedded applications where this is the case so getting Linux to boot quickly can be very useful.

One alternative used by operating systems such as Linux and Windows is the hibernate mode where the state of a currently running system
is save in non-volatile storage that can be quickly restored.
Logic PD takes another approach that speeds up the boot process so the system can respond more quickly.
This has the advantage of reducing storage requirements as well as allowing the boot process to select the drivers necessary for proper operation.

Logic PD’s new technology is named Zip.
I spoke with Kurt Larson, Director of Product Management, about their new boot optimization technology and how it works.

I hear that Logic PD has cut boot time on their Lunux-based modules from almost 50 seconds to under 1 second. What Logic PD modules does this technology work with?

We call the boot technology Zip.
It is available on all of our DM3730 and AM3703 products including the Torpedo + Wireless (Fig. 1), Torpedo, and SOM-LV form factors.

The DM3730 and AM3703 are based on
Texas Instruments’ DaVinci DM3730 and Sitara AM3703 system-on-chip (SoC) processors respectively.
They employ TI’s WiLink 7.0 wireless solution as well.
The SoCs run Linux and Zip helps them get up and running faster.


Figure 1. Logic PD’s DM3730 module supports the Zip fast boot technology that allows Linux to start up in under one second.

How did you manage to cut the boot time by almost two orders of magnitude?

We do a number of things.
This includes optimization of the bootloader and linux kernel.
We prioritize mission-critical drivers so they are loaded first.
We also deploy the application GUI as soon as possible.
In the process, we delay all non-essential tasks until after the target application is fully running.
This allows the system to respond within a second with less critical operations available later in the sequence.

So reordering the boot and load sequence provided the performance gains. How did you come up with the optimum sequence and how many non-essential tasks wind up starting later?

The approach is to identify which features the user of the product considers essential, focus on loading all the predecessors to those, and postpone everything else. For example, if the customer wants the GUI up and running, the system needs to load the LCD drivers, touch drivers, and everything in the kernel to support those. The number of non-essential tasks is different on every application, but you can count them up quickly, USB drivers, Ethernet drivers, stacks to support communication over the top of these drivers, etc.

What happens when the system is modified such as adding drivers or changing the GUI or other applications? Does the process need to be repeated?

There can be heavy design re-use if customer A and customer B both want GUI up right away, but may have different communication port requirements that can be postponed. If customer A wants camera capture first and customer B wants wireless connectivity first, there is small reuse of bootloader and kernel modifications, but larger differences in the order in which drivers load creating very different user experiences between the two applications.

What kind of changes can be made to the system without affecting or requiring reoptimization?

The standard Zip offering prioritizes the GUI so users can start interacting right away. If the application requires a different mission critical feature first, USB stack for example, the order of boot time events in the system will need to be re-organized, some of these changes may require a review of the entire system to reoptimize

Wong: Can this approach be applied to other platforms?

Larson: Yes, today it works on our DM3730 and AM3703 Linux based products, but it can be adapted for Android and other embedded platforms. Zip can be used with any embedded product that desires an “instant on” function.

What are the implications of boot time reduction?

Zip offers “instant on” functionality for portable products that provide time-critical, life-saving actions.
For example, emergency medical professionals can help people faster, saving more lives and soldiers can get real-time battlefield information faster, saving more lives.
The technology works equally well for consumer applications where faster response time provides a better user experience.

Will we see this technology being employed in other products from Logic PD?

Yes, we plan on including Zip support for future products.