The demonstration is based on the Intel Crown Bay Reference Board and Atom microprocessor. It will showcase three platforms with three levels of optimization: a typical, general purpose netbook, a tablet that will run a fixed application set with a full display, and a fully embedded platform with a very limited user interface that runs without any video display or USB human interface.
This reference board supports an Intel Atom E6xx processor, code named Tunnel Creek and an EG20T SCH, code named Top Cliff. The platform is capable of 3D graphics, video encode and video decode. It implements SATA mass storage interfaces, master and target USB interfaces, MMC and SD small form factor devices and simple digital I/O, UARTs and I2C buses.All three platforms will be running the fully functional, Intel Framework based, InsydeH2O UEFI BIOS.
This photo shows the Little Bay board mounted on the Shell Bay base board using an industry standard COM Express connector. The Little Bay is in the lower center part of the picture.
The Crown Bay platform supports only two video interfaces: an LVDS connector and an SDVO slot that requires an SDVO to VGA adapter should a VGA monitor interface be required.And since many embedded platforms use an SDHC card as the primary boot device for both performance and cost reasons, InsydeH2O supports booting directly from an SDHC card using the EG20T’s built in SDHC controller.This slide lists the hardware interfaces used in the comparison of the boot times.For the boot time measurements, we will use a test utility developed by Insyde for this purpose internally, the Insyde IRU Tool. Besides its other functions, it can extract the boot time stamp data stored by a special build of the BIOS during the boot process.
Smart Boot is an element of the InsydeH2O setup browser menus, created specifically to allow a user to skip over certain drivers not required for booting, for example, USB drivers.Even if the InsydeH2O drivers are not loaded and initialized, the devices are still available for the OS to configure and use. For example, if USB is disabled in the Smart Boot menu, InsydeH2O will not enumerate any USB devices, but Windows will find, enumerate and be able to use them.
This menu shows the default setting of the Smart Boot configuration.Notice that the UEFI drivers for all the hardware devices except the network controller (the PXE boot driver, that is) are enabled during POST.
This shows Smart Boot configuration where all drivers except the ISA interface driver, which supports the PS/2 keyboard, and the SDHC interface driver have been disabled.
The SETUP browser configuration page permits a certain limited amount of fine tuning to optimize boot times.ISA controls the initialization of any LPC attached devices.SATA and SDHC control initialization of the SATA and SDHC mass storage devices in the system.And MISC controls the logo display and PCI-e initialization among a few other things.
An examination of the performance log shows that the BIOS video driver takes about 2.5 seconds to provide graphics support.This includes the time taken by the VBIOS to initialize the video hardware interfaces.Many embedded platforms: for example, printers, routers, machinery controllers, etc., do not require video at all, and even more may not require it prior to OS initialization. Removing video support from InsydeH2O is as simple as editing the Build.dsc descriptor file to remove the video driver and VGA BIOS from the built firmware volumes.Removing the video support and enabling only the SDHC and ISA drivers, we can achieve a 2.3 second boot time – this is the time from the first instruction executed by the BIOS to the BIOS executing an INT 19h launch the OS boot loader.
InsydeH2O has a build time option to enable performance logging during the boot process.The performance data is stored in the BIOS flash for each boot and it can be extracted using the IRU tool after booting to DOS or Windows. The CSV file created by the IRU tool can be imported into a spreadsheet for easier analysis of the captured data.Like any profiling data, it can be examined by the BIOS engineer to isolate bottlenecks and potentially unnecessary code.
Here is a very simple example of part of a performance log file as presented by the IRU tool.
This chart shows the three different platform boot times.The original, or “Normal” boot time in the first column has non-zero execution times for all the UEFI drivers affected by our fine tuning. And the total boot time for the full function BIOS is almost 8.8 seconds.Disabling USB and SATA eliminated the execution of seven of the UEFI drivers, saving over 3.7 seconds.Finally, disabling loading and executing the video BIOS saved another 2.7 seconds giving an optimized boot time of only 2.3 seconds for the final tuned platform.
In summary, it is clear that InsydeH2O for the Crown Bay reference board can be quickly and easily configured to improve boot times.By profiling, an engineer can identify drivers not needed that take significant time during the boot and by skipping them, reduce the boot time even further.This demonstration was done with a standard Intel Crown Bay platform booting to MSDOS.A customized OEM platform with more extensive profiling, removal of additional unneeded drivers and code optimization can achieve a boot time of well under two seconds.