Skip to content

An Introduction To Coreboot and LinuxBoot: Building Modern Open Boo... Manish Baing & Arun Mahendran

Manish BaingArun MahendranRon Minnich

Blue TeamThe Linux Foundation49 minOpen on YouTube ↗

Outlines an Introduction To Coreboot and LinuxBoot: Building Modern Open Boo... Manish Baing & Arun Mahendran and evaluates key implications for security practitioners.

Summary

### Overview In this presentation, Manish Baing and Arun Mahendran from Lenovo provide an introductory deep dive into modern open-source boot firmware stacks, specifically focusing on Coreboot and LinuxBoot. The session addresses the historical progression from legacy, proprietary BIOS systems and modern UEFI implementations toward open-source firmware alternatives designed to improve boot speed, reliability, auditability, and vendor independence.

### Key Topics - **Evolution of Boot Firmware**: The transition from proprietary BIOS implementations—plagued by vendor lock-in, text-only interfaces, and reliance on silicon vendors—to the Unified Extensible Firmware Interface (UEFI) standard. The speakers outline UEFI specifications (ACPI, Shell, Platform Specification) and its multi-phase boot sequence (SEC, PEI, DXE, BDS, TSL, and RT). - **Limitations of UEFI**: While open-source reference implementations like TianoCore (EDK II) exist, they are released under permissive BSD licensing. Consequently, hardware vendors often consume the code, apply proprietary patches, and fail to upstream security bug fixes or improvements. Additionally, UEFI relies on a heavy Driver Execution Environment (DXE) containing numerous pre-boot drivers, which significantly increases platform boot times. - **Coreboot Architecture**: Originally created in 1999 by Ron Minnich as LinuxBIOS for supercomputers, Coreboot separates low-level hardware bring-up from high-level boot policies. It minimizes code footprint, enhances transparency, and relies on modular payloads. - **Firmware Support Packages (FSP)**: Explanation of vendor-provided silicon initialization blobs (FSP-T for temporary cache-as-RAM setup, FSP-M for memory training and DRAM initialization, and FSP-S for wider silicon bring-up). - **LinuxBoot (formerly NERF)**: Initiated by Google in 2017 as Non-Extensible Reduced Firmware, LinuxBoot replaces the bloated DXE phase of UEFI with a minimal Linux kernel and an initramfs (such as u-root), using `kexec` to boot into production operating systems.

### Technical Details - **Coreboot Boot Stages**: Coreboot moves systematically across staged phases: 1. *Bootblock*: Performs basic CPU initialization and configures Cache-as-RAM (CAR) before main memory is available. 2. *Root of Trust / Security*: Validates firmware image integrity and handles recovery states if corruption is detected. 3. *ROM Stage*: Executes silicon-level code via FSP APIs, conducting memory training across connected DIMMs. 4. *Post-CAR Stage*: Transitions execution from cache memory to initialized system DRAM. 5. *RAM Stage*: Conducts PCI enumeration, initializes on-chip peripherals, constructs system hardware tables (e.g., ACPI, SMBIOS), enables register lock protection, and hands execution over to the configured payload. - Coreboot utilizes a dedicated file system (CBFS) where stage binaries are kept compressed and decompressed on demand, and boot logs can be preserved and accessed after OS boot. - **LinuxBoot and u-root Operation**: Instead of maintaining duplicative hardware drivers across UEFI DXE, bootloader, and OS layers, LinuxBoot utilizes standard Linux drivers embedded within a lightweight kernel image. The accompanying userland, often `u-root`, provides a Go-based shell and CLI tool suite compiled into a CPIO-archived initramfs. When the target boot device or production OS is identified, LinuxBoot leverages `kexec -l -e` to directly load and execute the target production kernel without undergoing an entire hardware reset.

### Takeaways Combining Coreboot with LinuxBoot yields considerable operational benefits: warm boot times on desktops can drop to seconds, while servers can experience up to a 70% boot-time reduction compared to OEM BIOS firmware. By moving toward GPL-v2 licensed firmware and established Linux kernel codebases, organizations reduce their pre-boot attack surface, streamline hardware driver maintenance, and eliminate dependence on opaque vendor-supplied firmware implementations. While Coreboot supports diverse payloads (SeaBIOS, GRUB, Depthcharge, EDK II payloads) and specialized distributions (Skulls, Libreboot, Heads), LinuxBoot specifically optimizes Linux-centric environments, offering a reproducible, developer-friendly build workflow built upon standard tools like `make menuconfig` and QEMU emulation.

Related talks