The Basic Input Output System, BIOS is a separation layer between the operating system and the hardware in an X86-processor based computer. BIOS has existed for a couple of decades now. UEFI is a specification of a firmware to replace BIOS. The two have co-existed since 2005.
UEFI firmware is now beginning to take over completely at the expense of BIOS, at least in new processor platforms, for X86 processors anyhow and definitely in the years to come. Let’s take a closer look at the driving forces behind the shift and the consequences to you as an embedded PC user.
BIOS is sometimes called legacy BIOS due to the requirements for backwards compatibility with IBM PC computers. These requirements have involved limitations and obstacles over the years when BIOS for new processor platforms have been developed.
Challenges to BIOS developers are there today as well. These are a couple of examples:
• On BIOS start only 1 MB memory is accessible.
• It’s not possible to boot from hard disk drives larger than 2.2 TB.
• Legacy BIOS initially runs in 16-bit operating mode even on today’s 32-bit and 64-bit processor platforms.
Workarounds and adaptations have solved problems in the past and could in a similar way address the issues in BIOS of today, according to Gerard Duynisveld, President of Eltan, distributor of Phoenix products and Hectronic’s partner within legacy BIOS and UEFI firmware. He points out though that we’re getting closer to the point in time when the extra work from legacy support just is too much to handle. One of the driving forces behind the shift from BIOS towards UEFI is to liberate firmware development from legacy requirements.
EFI becomes UEFI
The UEFI specification has been around a couple of years now. Intel released the first version of the Extensible Firmware Interface, EFI specification in 1998. The Unified Extensible Firmware Interface, UEFI was founded in 2005. UEFI is a community effort by companies like for instance AMD, Intel, Phoenix and Microsoft, to mention a few major ones. UEFI used the EFI version 1.10, adjusted and improved it to define the first version of the UEFI specification. The first widely accepted version of the UEFI specification was 2.1. It was released in 2007. UEFI is manufacturer independent unlike EFI which is owned by Intel.
UEFI is a processor independent standard on how to write firmware for computer platforms. The X86 architecture is in focus but ARM processors are in no way excluded. UEFI allows device manufacturers to write generic device drivers to be used as is in a variety of systems.
Standardizing the input to BIOS vendors
BIOS firmware has been developed by a number of large vendors (AMI, Phoenix, Insyde) over the years. Manufacturers of devices such as processors, chipsets and components have been supplying the source code needed to develop support for the respective devices in BIOS. The format and structure of the source code haven’t been standardized. Device manufacturers have had to supply the code in more than one format. The BIOS vendors have all required the source code in their own unique shape.
UEFI on the other hand standardizes how drivers initialize the various hardware components. Thereby only one version of these drivers is needed. One format of the source code is delivered to the firmware vendors to be included in their respective UEFI firmware.
In this way UEFI simplifies the launch of components on the market. The support needed to integrate the components in computer systems are developed more rapidly with support from the UEFI standard. Yet another advantage is that the framework offered by UEFI and the fact that the C programming language is used makes it easier to reuse firmware source code. Support for new versions of processors and components in firmware are introduced rapidly when the existing code easily is adapted and reused.
Compatibility Support Modules bridge the gap
As described before, BIOS firmware is a separation layer between hardware and operating system and consequently there are dependencies between BIOS and operating system. Many existing operating systems depend on legacy BIOS to work. This may sound like a limitation to UEFIs disadvantage, but UEFI firmware most often contains a so-called Compatibility Support Module, CSM. This CSM emulates the legacy support found in BIOS and thereby “legacy-BIOS-only” operating systems in fact work with UEFI firmware. Hectronic has developed legacy BIOS since the founding of the company and UEFI firmware since a couple of years. Usually we adapt firmware (BIOS or UEFI) from one of the third party suppliers to support the hardware we have developed. Adaptations are also one of the strategies to offer added value to our customers in the form of for instance saving power in a design or simplifying generation shift. The shift on the market from BIOS towards UEFI will be reflected in the Hectronic embedded product portfolio. New embedded products will in most cases be developed with UEFI firmware and not legacy BIOS. The deep technical control that our software engineers always have had on legacy BIOS development, adaptation and functionality will continue into development of UEFI firmware.
Greater access to functionality in pre-boot environment
Custom development of UEFI firmware is part of the custom design offer to our customers in the same way that BIOS adaptations has been for many years. UEFI allows new possibilities to run applications prior to booting and handing over to the operating system. BIOS has offered that possibility but with limitations. The UEFI pre-boot environment grants access to a full-blown network stack, each and every device in the system, the complete memory space and high resolution graphics.
The pre-boot environment may well be used for running diagnostic tools, troubleshooting utilities and programs to upgrade and repair the system, or to download software to the products and perform configuration during production.
To sum up, the shift from BIOS to UEFI is a continuous and quite slow process. It’s clear that the future belongs to UEFI. The short-term consequences to users of embedded computers are not that drastic. The shift may not even be noticeable. In the long run there is room for new and useful applications and tools drawing advantage from the full-fledged pre-boot environment in UEFI. To Hectronic the deep technical control over UEFI firmware comes as natural as it has for legacy BIOS.