News Archive (1999-2012) | 2013-current at LinuxGizmos | Current Tech News Portal |    About   

Evolution of BIOS: EFI, the Framework, and beyond

Sep 17, 2004 — by LinuxDevices Staff — from the LinuxDevices Archive — 12 views

Technophiles, especially visitors to LinuxDevices.com, have seen Intel talk a lot about “firmware” [definition] over the past few years. Intel is normally associated with processors and chipsets, but its introduction of the Extensible Firmware Interface (EFI) and the Intel Platform Innovation Framework for EFI… (“the Framework”) [whitepaper] shows that it has a growing interest in shaping the firmware market.

Customers ask me why Intel has put so much time into developing EFI and the Framework — more importantly, why Intel cares about changing the model. With the announcement of Aptio, AMI's firmware solution based on the Framework, I get these questions a lot more often. In an attempt to make firmware actually sound interesting, I need to tell the story of the BIOS — more the “why” than the “how”.

A short history of the PC BIOS

The Basic Input-Output System (BIOS) of the original IBM PC/XT and PC/AT, while being a very small part of the entire system package, is actually key to the success of the PC. Before 1981, a computer programmer could count the number of platforms with a documented OS-independent firmware interface on one hand and still have enough fingers leftover to play a good game of PONG.

The clean definition of the PC/AT BIOS gave COMPAQ the ability to properly create PC “clone” systems. The availability of MS-DOS outside of IBM allowed applications to run equally well across different brands of beige-box “PC clones”. More companies entered the PC market, prices went down, and basic economics took over. Software portability, enabled by the ubiquitous BIOS interface, even allowed open-source hobbyists to develop operating systems that ran on the same hardware as commercial operating systems (something that would have been nearly impossible in the days of the mainframe).

So the firmware interface IBM designed for 250,000 IBM PC/XT systems helped spark an industry. Now I'm at the point of the story where I have to explain why developers need to shift away from legacy BIOS to a more modern firmware model.

The quest for something more modern

While BIOS is an OS-independent firmware model, it is not a platform independent model. At the heart of the BIOS is the Intel 8086 software interrupt model, which as the name implies, relies heavily on compatibility the Intel 8086. This is why all of Intel's super-scalar HyperThreading multi-stage-pipelined processors still boot and run in 8086 “real mode” — 16-bit register access, no memory addressing above 1MB.

The need for systems to be compatible with the BIOS interface now dictates how companies like Intel design their processors and chipsets. This problem became apparent to Intel when developing the Itanium processor — Intel saw no need to create a 64-bit processor that pretended to be a 16-bit 8MHz CPU during the boot process, or tell OS developers that they had to drop back to a 16-bit compatibility mode every time they wanted to call the firmware.

I recall one Intel employee describing it as designing a Porsche with a hand-crank starter.

The dawn of EFI and “the Framework”

This is where the Extensible Firmware Interface (EFI) was born, out of the necessity to keep a true OS-independent firmware interface that did not have ties to a specific system architecture. The Framework followed soon after, pushing the idea of a modern firmware model all the way down to the reset vector. This gives birth to Aptio, AMI's product solution based on the Framework.

At AMI this isn't seen as a threat to the BIOS, but as an evolution. Previous AMIBIOS products introduced modern development concepts such as graphical development tools and modular components — but the BIOS interface dictated that our product stay within the confines of x86 processor architecture. Combine these advantages with a documented interface for pre-OS drivers and applications, and EFI introduces a number of new opportunities for the firmware.

This new development model within the Framework allows AMI's engineers to work more on feature support and less on nagging compatibility issues. A good example of this is booting from USB. An OS or OS-loader that has no native support for USB devices, such as FreeDOS or most Linux installers, relies on the standard INT 13h interface provided by the BIOS. In this scenario, USB devices are emulated as floppy disks or hard disks. For BIOS to support boot from the myriad of USB storage devices, some of which take liberties with the USB Mass Storage specification, AMI employs a number of engineers who do nothing but make new storage technology look like old storage technology.

Think about that for a second. Think of all the time it takes to morph the latest and greatest technology to act like storage circa-1981. Moving forward with Aptio [whitepaper] and the Framework allows AMI to focus on actual product functionality. Product features can be ported cross-platform using the Framework's architecture independent model (x86, Itanium, XScale, etc.).

That architecture independence is key if PCs want to take the next big step. If BIOS does not change, the PC market will never move beyond the old x86 model. Compatibility with the BIOS and legacy operating systems actually dictates how PC hardware is designed. This means companies like Intel cannot provide new features if the BIOS cannot support them, which is why Intel has invested so much time into EFI and the Framework. Firmware that limits hardware design is not good for the industry as a whole.

The EFI model offers a lot of advantages for AMI and its customer base — common boot loader and runtime interface across architectures, features than can be ported cross-platform and cross-architecture, moving away from an older firmware model that is gated by a twenty year old design. EFI and the Framework allow firmware products like Aptio to move the market forward.


About the author


Brian Richardson has worked for American Megatrends Inc. (AMI) since 1996. After years of writing BIOS code, test programs, and technical documentation, Brian currently works as the EFI Product Manager at AMI. Brian is often distracted from work by his wife, cats, horses, goats, house, drums, dragoncontv.com, and the large number of hours he spends in airports traveling to trade conferences.


Articles and whitepapers about EFI and the Framework



Other related stories


 
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.



Comments are closed.