Найти в Дзене

Why is the X86 ecosystem not playing in the Internet of Things? What is Intel® FSP? What problems can it solve?

Оглавление

I described the role of BIOS in the X86 ecosystem in the previous article:

Old Wolf: what is the difference between UEFI boot and traditional BIOS booting in principle?What role does chip company play in this?

zhuanlan.zhihu.com

Icon

the x86 ecosystem has played an active role in the PC and server domains for many years.However, in the Internet of things, X86 promotion has encountered resistance, it is true that the X86 price is high, although the performance is strong, but in many areas do not need (over kill, kill the chicken with cattle knife) factors, but with the BIOS in the promotion of the Internet of things in the negative effect also has a greatFor this Intel introduced FSP (Intel Firmware Support Package) technology, after years of promotion, it helps Intel in the field of Internet of Things has accumulated a large number of fans.FSP technology is gaining popularity and has gradually spread to the server domain.Today we take a look at the problem of the X86 ecosystem, and why FSP can solve it.

X86 ecosphere

PC and server areas, major players chip manufacturers (Intel, AMD), and OEM/ODM manufacturers for many years of cooperation.Among them, BIOS suppliers (IBV, AMI / Insyde/Byosoft, etc.) played a key role in the lubricant and Binder, the relationship between the three of them is as follows:

Diagram of the X86 ecosystem

Here are three main lines, which I mark with three colors.Blue indicates the code and hardware, chip manufacturers equally, while providing to the BIOS vendor and OEM reference code and reference board (CRB, Custom Reference Board).But the reference code does not represent the product code, unless the customer completely copy the reference board.In fact, OEM / ODM often have a little modification on the reference board, which requires modification of the reference code.OEM because of the large product line, it requires a lot of BIOS staff to modify the reference code.BIOS personnel threshold is high, the cost is high.So OEM / ODM often only in the main product of self-study, and will be a lot of work outsourced to professional BIOS provider (IBV).BIOS vendors received Intel code, and early samples, began to develop related products.For many years steeped in BIOS, IBV often can quickly fix a motherboard, because at the same time for a number of OEM services, the code can be reused, but also flatten the pre-research costs, fix a motherboard is often cheaper than the OEM.

There is a saying that says "follow the money", if we follow the yellow money flow, it is even more interesting.BIOS manufacturers actually get the code for free, after their own processing, switched charges sold to the OEM.Chipmakers make no profit at all in the BIOS, and only make money by selling chips.But because you can avoid the Do-It-Yourself support many OEM / ODM, but also optimistic.

Chip manufacturers, IBV and OEM, decades of cooperation down very familiar with each other, forming a stable Triangle Construction, help PC and server areas stable and healthy development.But these new areas of the Internet of things have become less harmonious.

The challenge of the Internet of things

The Internet of things is filled with an extremely large number of players, mostly from the original embedded field.If you want to sum up their characteristics, it is small, thin and fast.

Small means that these guys tend to be quite small, a few dozen people can start to engage in Internet of Things devices."What, to sign with Intel NDA?""What, give money to the guy who sells the code?Isn't Bootloader free?"These unheard-of requests make them dumbfounded, and why uboot is so good, to pay money to IBV; sign NDA, no lawyer, want to go to the door of the mountain do not know where to open the door.All this seems to exclude the most innovative buddies.

  1. Thin refers to the bottom thin.Less money, less technology.Less money means that can not take care of a few full-time BIOS engineers, but also means do not want to give IBV money, technical bottom thin means no BIOS experience, do not have the possibility of self-developed BIOS.Even if the exclusion of difficulties, signed NDA, Intel to BIOS / UEFI code, from the above we know that the code is quite large, also cannot understand Ah.
  2. Fast, refers to the product cycle is quite short.Many products from Idea to products up to six months, or even 3 months.IBV does not guarantee this support frequency.
  3. Lost the IBV, stable iron triangle tilted:

There must be a simple and flexible way to make a multitude of IoT embedded models that they are familiar with:simple code, open bootloader, free chip initialization code.This allows them to focus on developing their own products without the need for BIOS experts.Intel's answer is: FSP!

What is Intel FSP?

The official explanation is that the Intel Firmware Support package (Intel Firmware Support Package, referred to as Intel FSP) is a binary format file released by Intel Corporation to support its x86 platform chips.

It seems very difficult to understand, in simple terms is Intel chip initial words Code packaged into binary files, customers do not need to know what to do inside, as long as the call on the line.Because it is binary Binary, will not disclose what trade secrets, so do not need to sign NDA, Intel can put it on Github for everyone to download for free.At the same time, this call interface is quite simple, how simple?Only 5 API!

5 API in, 1 group contains the results of the HOB.Simple enough!I will not expand the details of this, interested can go to see the reference 1[1] and reference 2[2].

Here A Brief History of the FSP.It was originally intended to support Chromebooks.At the beginning of Chromebooks, Google did not want to use UEFI.Among the reasons are the UEFI complex, which prefers Linux Style, as well as its inherent hostility to the Microsoft lineage that comes with UEFI.So born out of Linuxbios coreboot was it mentioned, with the corresponding, it wants Intel to use a simple thing package chip initialization code, only provide the necessary interface.And coreboot took over the function of UEFI to find and initialize the boot device.So Intel came up with the FSP, starting with just three APIs

This is FSP 1.1, and after years of improvement it is now FSP 2.1.The API was added to both and added The more user-friendly Dispatch mode for UEFI (the original mode is called API mode).

What are the benefits of FSP?

Do not look at the Chinese Chromebook sell Immobile (there is no reason to say), but in the United States, Chromebook sales are quite large.FSP is becoming more and more important, and now many of the BIOS of the PC and notebook are already based on the FSP.Although the BIOS or UEFI, but the chip initialization are changed to call FSP simple interface, so UEFI itself is only bootloader only.This is because FSP can make BIOS development faster:

The original development model

Development model based on FSP

FSP's open download also cleared the final hurdle for the use of Open Source's Bootloader, such as Coreboot, uboot, etc.So, things in the field of course began to use FSP.FSP is open so that it can support almost any bootloader:

Yes, you read it right, and also includes the latest LinuxBoot (pay attention to distinguish it from Linuxbios).In this way, the Internet of things buddies encountered three problems are solved, we can play together happily.

Postscript

Server domain, several large cloud server vendors have begun to try to get rid of the shackles of IBV, self-developed BIOS.They almost simultaneously fancy FSP, hope FSP fix chip initialization, they themselves with coreboot, or recently launched LinuxBoot, to start the server.Cost to not consider the focus, it is important to controllability and TTM.FSP in the future promising, but in the final analysis, FSP which contains a small EDKII system (including PeiCore and various PEIM), UEFI can also play as Bootloader.It appears, the IP-related code package into binary, will inevitably promote more open-source UEFI platform, this will also simplify UEFI code base, let UEFI also to simple.