If you've looked at anything related to the Basic Input/Output System (BIOS) in the past few months, you’ve seen the acronym “UEFI” a lot. Not only are the major BIOS vendors offering UEFI solutions, but Intel uses UEFI for embedded development platforms and customer reference boards.
There’s piles of technical nonsense we can discuss here for firmware developers … documented protocols, drivers that replace legacy Option ROMs, C programming interfaces, support for IA32 and x64 architectures. But in this jargon it’s important to understand the benefits UEFI has for system users. I believe we know them better as “customers”.
BIOS in the Intel® Ecosystem
In Intel® Architecture, BIOS provides low-level hardware initialization, software portability and easy migration to different operating systems on the same platform. This is why the motherboard you buy at the store can run everything from Microsoft Windows 7 to Ubuntu out of the box … or why a single embedded system can run everything from MeeGo to Microsoft Windows Embedded without altering the firmware. It’s a huge advantage in the Intel ecosystem.
But the legacy 16-bit BIOS architecture has limitations, which is why the industry developed the Unified Extensible Firmware Interface (UEFI). This new level of standardization opens up an architecture-independent set of interfaces, going beyond the original BIOS. Let’s look at three areas where UEFI brings clear advantages … drive size limits, pre-boot networking and pre-boot applications.
Drive Size Limits
The issue facing most customers this year is booting to a drive over two terabytes (2TB) in size. This doesn’t sound like a problem for most embedded developers, until you think about the storage requirements of digital surveillance or medical imaging systems. The master boot record (MBR) partitioning scheme uses 32-bit values to describe partition offsets and length, which limits the largest disk partition to around 2.2TB. It’s not just a BIOS limit, since the OS uses the same MBR data in the boot loader.
The UEFI alternative to MBR is the GUID Partition Table (GPT). GPT disks use 64-bit values to describe partitions, handling disk sizes up to 9.4 zettabytes (go look that up, it’s way bigger than any Wall Street bonus paid out last year). GPT also fixes other issues related to MBR (data integrity, backup tables and maximum number of partitions). The UEFI Forum has a FAQ on Drive Partition Limits with more details.
Next is networking and the coming day when our various connected devices use up every IP address on the planet. My IT manager insists this is a big deal, making it sound like the plot to one of those end-of-the-world disaster films. But before you go building an ark or stocking up on canned goods, you should know the industry has already been working on a solution.
The IPv6 specification has been in development for years, overcoming the limitations of the current IPv4 specification (to be fair, four billion IP addresses sounded like a lot in the 1980’s). UEFI incorporates IPv6 as well, so network booting and remote management capabilities integrate seamlessly as the industry migrates to this new networking standard.
Finally we look at pre-boot applications … programs designed to run in between the end of the BIOS but prior to the operating system. These applications have been around for years, usually embedded in the flash part with the system BIOS or tucked away on a hidden disk partition.
The problem with most pre-boot applications is making them platform independent. UEFI’s documented interfaces for boot and runtime services give developers a clean method of accessing essential routines without the need for an OS kernel or driver stack. Even graphical interfaces are possible, relying on the new UEFI Graphics Output Protocol (GOP) instead of older VESA VGA interfaces.
One real-world example is Dell’s Unified Server Configurator (USC), designed by Dell and AMI to simplify server deployment. This UEFI graphical application eliminates the need for the “system DVD” and has been shown to speed up bare-metal provisioning. It’s just one example of using native UEFI applications to provide value-add services. Embedded diagnostics, network-based BIOS update utilities and system recovery can be part of a COTS platform, no matter what OS the customer deploys.
More to UEFI Than Meets The Eye
Since I’m a “BIOS Guy” I could ramble on for pages about UEFI … but the important thing to understand is that the benefits aren’t just for BIOS developers. UEFI enables features that trickle down to a better customer experience, and are already being seen in today’s platforms. If you need BIOS for an upcoming Intel platform, it’s best to learn more about UEFI.
American Megatrends, Inc. (AMI) is an Affiliate member of the Intel® Embedded Alliance.
Got a question about BIOS? … then it’s time to Ask a BIOS Guy! Find Brian on Twitter (@askabiosguy) or leave your question in the comments. Your BIOS question may be featured in an upcoming ‘Ask a BIOS Guy’ article.