Merge pull request #664 from Dasharo/blobs-faq

introduction.md: blobs FAQ
This commit is contained in:
Michał Żygowski
2023-10-02 12:35:18 +02:00
committed by GitHub
+47
View File
@@ -22,3 +22,50 @@ TODO: Explain how wrong is this question and why often there is no answer to it
on mailing list.
-->
## `[OSFTQL0003]` Binary blobs - what are they? What do we need them for?
Binary blobs are a term referring to proprietary, closed-source software
components. They are called "blobs" because, unlike open-source code, you can't
see their internal structure, nor verify their security; they are an
undifferentiated mass (or "blob") of binary data. While often frowned upon in
the Open Source community for being inauditable and suspicious, some are
required by coreboot for most of the recent platforms.
Here are some common types of binary blobs you might encounter when working
with coreboot:
* **CPU Microcode:**
- Modern CPUs often require microcode updates to fix bugs or security
vulnerabilities. These microcode updates are usually distributed as binary
blobs.
* **Memory Initialization:**
- Some platforms require binary blobs for memory initialization. The code
that sets up the RAM is sometimes provided only in binary form by the
hardware manufacturer.
* **Video BIOS:**
- The video BIOS (VBIOS) is a piece of firmware that initializes the
graphics hardware. In some cases, the VBIOS might be required to get
graphical output during the boot process.
* **Management Engine (ME) Firmware (Intel platforms):**
- Intel's Management Engine is a controversial component required for
Intel systems to boot. It requires a binary blob.
* **Platform Security Processor (PSP) Firmware (AMD platforms):**
- Similar to Intel's ME, AMD's Platform Security Processor (PSP) requires
binary firmware to function.
* **Firmware Support Package (FSP) (Intel platforms):**
- Intel provides a Firmware Support Package (FSP) which is a binary blob
used to initialize the processor, memory, and chipset on some Intel
platforms.
* **Embedded Controller (EC) Firmware:**
- The firmware for the embedded controller (which handles things like
power management, fan control, etc.) may also be a binary blob.
To see in fine detail which are required for your platform of interest,
please refer to
[this coreboot wiki page](https://www.coreboot.org/Binary_situation).