Avatar
Utkarsh is a software engineer and hobbyist kernel developer currently based in India. He occasionally blogs about software development, startups, and kernel development. Hey, if you'd like to connect, feel free to set up a meeting using the links above!

Reading Coreboot Codebase

Hello hello, I am back after ghosting this project for over about 2 months ig. Why am I doing this idk, well lets start…

Well we will start by knowing about Coreboot (like what is this and why the hell do we need this).

Coreboot

“coreboot is an extended firmware platform that delivers a lightning fast and secure boot experience on modern computers and embedded systems. As an Open Source project it provides auditability and maximum control over technology.”

And what do I understand by the above statement :D is:

  • Coreboot is a firmware which is used to deploy payload
  • Its opensource
  • works with modern computers and extended systems
  • because its opensource I can do whatever I want it.

Now what is firmware??

Well, Firmware is specialized software designed to provide low-level control for a device’s specific hardware. It serves as a bridge between hardware components and higher-level software, ensuring that each part of the system functions as intended.

Where Can We Find Firmware?

  • CPU Microcode: Inside the processor, firmware, referred to as microcode, runs to handle various instructions and optimize performance. Sometimes, even within the CPU, there are other internal chips that run their own firmware to manage specific tasks.

  • PCI Devices: Many peripheral devices connected via PCI (Peripheral Component Interconnect) slots, such as graphic cards or network adapters, contain their own firmware to handle their functions effectively.

  • Network Controllers: These also contain firmware, responsible for managing the communication between your computer and the network.

  • Platform Controller Hub (PCH): This southbridge component connects the CPU to other devices. It has a Management Engine running its own real-time operating system (RTOS), another example of firmware in action.

  • Hard Drives and USB Devices: These storage devices contain firmware that manages how data is read, written, and transferred.

  • Trusted Platform Module (TPM): TPM contains firmware to ensure the secure functioning of cryptographic processes, providing a safeguard for encryption keys and authentication mechanisms.

  • BIOS and BMC: BIOS (Basic Input/Output System) is one of the earliest examples of firmware in computers, while modern systems use Baseboard Management Controller (BMC) firmware to provide system management and monitoring.

The Importance of Understanding Firmware

With firmware present in so many components, understanding how it works is essential for modern computing. It plays a crucial role in ensuring that hardware components function as expected, and in many cases, updates to firmware can resolve issues or enhance system performance.

The fact that firmware is embedded in so many places within the system makes it critical for developers, IT professionals, and security experts to have a deep understanding of it. Whether you’re dealing with CPU microcode, network controllers, or storage devices, firmware is at the heart of the operations.

In future blog sections, we will dive deeper into specific types of firmware, starting with the BIOS and exploring how OpenBMC is revolutionizing system management. Stay tuned!

all tags