Study Guides by Role

Not sure where to start? Pick the role closest to yours and follow the recommended learning path.


Every chapter in this guide is self-contained, so you can jump to any topic that interests you. But if you want a focused path, these role-based guides highlight the chapters most relevant to your work.

Chapters are categorized as:

  • Essential — core material for this role, read these first
  • Recommended — valuable follow-ups that deepen your skills
  • Optional — useful reference material when needed

UEFI Application Developer

You write UEFI applications, shell commands, or pre-boot tools. You need to understand UEFI services, protocols, and how to interact with hardware through standardized interfaces.

Prerequisites: Basic C programming, comfort with command-line tools.

Essential Chapters

Chapter Topic Why
Ch 1 Introduction to UEFI and Project Mu Understand what UEFI is and how it works
Ch 2 Environment Setup Get your build environment running
Ch 3 Hello World Write and run your first UEFI application
Ch 9 Driver Model Understand how UEFI loads and manages code
Ch 10 Protocols and Handles The core pattern for all UEFI programming
Ch 11 Memory Services Allocate and manage memory correctly
Ch 12 Boot and Runtime Services The full service API available to your code
Ch 13 Console I/O Text input/output for interactive apps
Ch 14 Graphics Output (GOP) Framebuffer access for graphical apps
Ch 15 File System Access Read/write files on FAT volumes
Ch 16 Block I/O Raw disk access and partition detection
Ch 17 Network Stack TCP/IP, HTTP, DNS for network apps
Ch 18 UEFI Variables Persistent storage across boots
Chapter Topic Why
Ch 28 Custom Shell Command Build a real shell utility end-to-end
Ch 29 Graphical Boot Menu Combine GOP + console + variables
Ch 30 Network Application Build a real network client
Ch 31 Custom Boot Loader Understand ExitBootServices and OS handoff

Optional Chapters

Chapter Topic
Ch 4-8 Project Mu structure and tooling (if using Mu for builds)
App A EDK2 build system reference (INF/DEC/DSC/FDF)
App C Debugging techniques

Platform / Firmware Engineer

You bring up, maintain, or customize platform firmware. You need to understand boot phases, silicon initialization, platform description files, CI/CD, and testing.

Prerequisites: C programming, familiarity with hardware initialization concepts, comfort with build systems.

Essential Chapters

Chapter Topic Why
Ch 1 Introduction to UEFI and Project Mu UEFI architecture and Project Mu’s role
Ch 2 Environment Setup Set up the full Mu toolchain
Ch 3 Hello World Verify your build environment works
Ch 4 Repository Architecture How Mu splits firmware across repos
Ch 5 Stuart Build System The build system you will use daily
Ch 6 Dependency Management NuGet, pip, submodule dependencies
Ch 7 Platform DSC/FDF Platform description and flash layout
Ch 8 CI/CD Pipeline Automated build and test validation
Ch 19 PEI Phase Early init: CAR, memory training, HOBs
Ch 20 DXE Phase Driver dispatch, architectural protocols
Ch 23 ACPI Integration Platform tables for the OS
Ch 27 Platform Testing CI test infrastructure and validation
Chapter Topic Why
Ch 9 Driver Model Writing platform drivers
Ch 10 Protocols and Handles Protocol installation and consumption
Ch 11 Memory Services Memory map and allocation patterns
Ch 12 Boot and Runtime Services Service lifecycle across phases
Ch 21 System Management Mode SMM handlers and SMRAM protection
Ch 22 Security and Secure Boot Chain of trust, key management
Ch 24 Capsule Updates Firmware update workflows

Optional Chapters

Chapter Topic
Ch 13-18 UEFI services (reference as needed for driver work)
Ch 25 DFCI (if managing device fleets)
Ch 26 Rust in Firmware (if adopting Rust modules)
App B EDK2 to Mu migration guide

Security Engineer

You focus on firmware security: Secure Boot, Measured Boot, SMM hardening, DFCI, and firmware update integrity. You need to understand the trust chain from power-on through OS handoff.

Prerequisites: C programming, basic understanding of cryptography (PKI, hashing, signing), familiarity with UEFI concepts.

Essential Chapters

Chapter Topic Why
Ch 1 Introduction to UEFI and Project Mu Boot phases and attack surface overview
Ch 2 Environment Setup Build environment for security testing
Ch 3 Hello World Baseline for building test modules
Ch 21 System Management Mode SMM isolation, SMRAM protection, attack surface
Ch 22 Security and Secure Boot PK/KEK/db/dbx, Measured Boot, TPM
Ch 24 Capsule Updates Signed update verification and delivery
Ch 25 DFCI Remote configuration with certificate trust
Chapter Topic Why
Ch 9 Driver Model How drivers are authenticated and loaded
Ch 10 Protocols and Handles Protocol security implications
Ch 11 Memory Services Memory protection and isolation
Ch 12 Boot and Runtime Services ExitBootServices security boundary
Ch 18 UEFI Variables Authenticated variables, Secure Boot vars
Ch 19 PEI Phase Early boot trust establishment
Ch 20 DXE Phase Driver dispatch and security policy
Ch 26 Rust in Firmware Memory-safe firmware for security-critical code

Optional Chapters

Chapter Topic
Ch 4-8 Mu structure and CI (if working on Mu platforms)
Ch 27 Platform testing (security test automation)
App C Debugging techniques

EDK2-to-Project Mu Migrator

You are an experienced EDK2 developer adopting Project Mu. You already know UEFI concepts — you need to understand what Mu does differently: multi-repo architecture, stuart, dependency management, CI/CD, and Mu-specific features.

Prerequisites: Working EDK2 experience, familiarity with INF/DEC/DSC/FDF files, existing platform firmware.

Essential Chapters

Chapter Topic Why
Ch 4 Repository Architecture Mu’s multi-repo model vs EDK2 monorepo
Ch 5 Stuart Build System Replace your build scripts with stuart
Ch 6 Dependency Management NuGet, ext_dep, pip — new dependency model
Ch 7 Platform DSC/FDF Multi-repo DSC layering and includes
Ch 8 CI/CD Pipeline Mu’s CI plugins and GitHub Actions
App B EDK2 to Project Mu Migration Step-by-step migration guide
Chapter Topic Why
Ch 1 Introduction Project Mu’s philosophy and architecture
Ch 27 Platform Testing Mu’s test infrastructure
Ch 25 DFCI Mu-specific device management feature
Ch 26 Rust in Firmware Mu’s Rust integration

Optional Chapters

Chapter Topic
Ch 24 Capsule updates (Mu’s FmpDevicePkg approach)
App A EDK2 build system reference (for comparison)

Not Sure Which Role Fits?

If none of these roles match exactly, start with the UEFI Application Developer path — it covers the broadest set of fundamental concepts. You can always branch into platform engineering or security topics from there.

For a complete sequential learning experience, simply follow the guide from Chapter 1 through Chapter 31.