Why does a standard PC BIOS take so long to boot? Because it's a one-size-fits-all solution that supports a wide range of system configurations, legacy interfaces and other bells and whistles. The BIOS is one of the features that drove the remarkable plug-and-play PC environment. Yet, this universal approach isn't needed for some embedded devices that have a well bounded set of peripherals and run a limited number of applications, such as a network appliance whose only I/O are Ethernet ports and status LEDs - It boots from FLASH and doesn't have storage, a display, a keyboard or a mouse, etc. In these cases, you can implement a slimmed-down BIOS that's platform-specific and delivers sub-second boot times.
Slimming down the BIOS.
For a good starting point, see how Intel engineers carved up a BIOS written for the Intel® AtomTM processor. They cut 10 seconds off the boot time by making ten straightforward modifications to the BIOS code, bringing it down from nearly 12 to under 2 seconds. The biggest bang for the buck came from turning off debugging and removing BIOS setup (i.e., hot keys that terminate the boot process), which saved over 5 seconds. Those ten changes are listed in the table below, and all the details are in a white paper at http://download.intel.com/design/intarch/papers/320497.pdf.
A BIOS alternative?
A commercial alternative to the BIOS is available from QNX Software Systems, an Associate member of the Intel® Embedded and Communications Alliance (Intel® ECA). QNX trains engineers to boot IA-based systems in as little as 200 milliseconds using their QNX® fastboot technology. It's based on the QNX IPL (Initial Program Loader) that replaces a traditional BIOS to achieve an "instant-on" capability. QNX claims that a fastboot-based system will boot significantly faster than a BIOS-based system because designers select or discard boot steps based on their particular hardware configuration. Engineers tailor the platform initialization sequence using a QNX IPL start-up kit and a board support package (BSP) for the Intel Atom processor and the QNX Neutrino® RTOS. David Green, software developer at QNX, shows how this was done in a video and explains what the IPL does and doesn't do at http://www.youtube.com/watch?v=yTUweJKAUfk.
The fastboot approach does require some amount of developer time unless it has already been implemented by the board supplier or operating system vendor. If becoming a BIOS engineer isn't your ambition, QNX can provide services to customize an IPL specifically for your device.
When boot times greater than one second are still too long, why not avoid booting altogether and just put the system in sleep mode when not in use? Kontron, a Premier member of Intel ECA, and QNX have shown how they can wake up an Intel Atom processor from a zero power sleep state to full operation in milliseconds. This approach uses the S5 sleep state (off) instead of power consuming sleep modes (S1 - S4) as described in http://edc.intel.com/Download.aspx?id=2140.
"The versatility of BIOS-based systems is not required in the embedded applications targeted by the Intel Atom based platforms, so it seems a waste to incur the boot time cost when no benefit is gained," says Christine Van De Graaf, Product Marketing Manager at Kontron.
Before ditching a full featured BIOS, consider the time and engineering effort it saves, especially if you have various hardware configurations and devices to support. Moreover, the do-it-yourself approach may necessitate poking into some special function registers in order to turn on processor and chipset features. Removing the BIOS isn't for everyone, but for those who need to make booting nearly imperceptible, there are workable options.
Will it be long before most board vendors offer quick boot software as part of their standard offering? Anyone care to offer an opinion?