Choosing a BIOS for an embedded x86 design

Bios for x86 design

Which BIOS you can use for your embedded X86 device depends on a number of interdependent factors:

  • Is this a one-time off design, or are you planning multiple designs and/or derivatives?
  • Are you expecting to switch to newer CPU SKU’s as they come available and are pin compatible?
  • Do you expect future changes to the design that will affect its functionality of feature set?
  • Is device security important and are you implementing security in hardware?
  • Is your device  required to boot a single operating system, or must it support multiple OSes?
  • Does the device need to support third party plug-in cards beyond your control? In other words, does it require to fully comply with the UEFI standards?
  • And last but not least: how experienced are you and your team in x86 architecture designs and firmware development?

Easy Open Source Bootloaders

Lets say that you are going to develop a one-time, black box device, with a single CPU SKU, running a mainstream Linux version, and you need some level of security like secure boot and perhaps secure flash update. Your team obviously has knowledge about Linux and programming in C. Most likely they know how to use open source software, find information and documentation, research feature implementations and resolve issues with the help of open source communities.

As the device and the BIOS specifications are well defined and limited, a cost effective solution can be an open source bootloader like Intel’s Slim Bootloader or Coreboot. Both are well documented, have the support of a large community and they are somewhat backed up by Intel and AMD. The latter sounds trivial but is very important because part of the required microcode encapsulated in the open source is only made available in object code format from the silicon manufacturers.

In other words, a black box within an open source project. These binaries contain the tweaks needed to support certain features within the processor, and also to correct errors in the silicon. Nothing wrong there: updates are released regularly with release notes that tell you what is new, but more importantly, what you need to modify in your code. If your design is very limited in feature set, and you are not an early adopter of new silicon, then the open source you are going to download will be mature, and most of the issues will be resolved by the community.

Open Source EDK

On the other side of the spectrum you have the open source EDK from the UEFI organization, an initiative originally founded by Intel to assure compatibility between x86 processors, peripherals and OSes, but today has evolved to promote interoperability between different silicon architectures too. The EDK therefore is maintained by companies that need high levels of compatibility,  extended feature sets and advanced security.

The open source EDK seems a good alternative if your design  is more than a black box system, requires multi OS support, remote management (BMC features), and up to date security. But after downloading and installing you will soon notice that this comes at a cost; it’s overwhelming and will require a firmware team to invest a significant amount of time in learning how to customize the UEFI code for their device.

BIOS EDK

BIOS Vendors

Independent BIOS vendors (IBV) such as Insyde Software Inc. are members of the UEFI organization. They use the EDK’s as a basis to develop and deliver feature rich and tested firmware bundles that fully support the Reference Validation Platforms (RVP) from Intel and AMD accompanied by matching documentation, training, support, and if you so wish, customization services to adapt their UEFI solution for you specific design. For you, asking the question about BIOS, this implies that your starting point for a demanding, feature rich device is a BIOS that is already running on a RVP. Since your hardware engineers hopefully have designed your device based on such RVP, you will have a working system to compare against the device you will need to bring up.

Using a commercial BIOS implies investing in acquiring a license for the source code, training and paying for support. But it will definitely give you a head start compared to using an open source project,.

Commercial BIOS Solutions

View all tools
development kits
Development Kits

Development Kits containing an Evaluation Board, a Board Support Package for a selected OS or RTOS and documentation; everything you need to get started with your project.

bootloader
Bootloaders, UEFI BIOS and OpenBMC

UEFI based firmware for Intel, AMD, Qualcomm and Arm client platforms complemented with a Board Management solution based on the OpenBMC standard.

Gilbert Gadet

Gilbert Gadet

UEFI | BIOS | General Information

Expert on BIOS

Contact me