Introduction
Welcome to the Mu Tiano Platforms book. This book documents the two virtual platforms maintained in the
mu_tiano_platforms repository and the workflows used to build,
debug, and validate them.
The primary purpose of mu_tiano_platforms is to provide readily available, free, and feature-rich reference platforms
built with Project Mu that target the open-source QEMU
processor emulator. These platforms serve as an example for feature enablement and validation — demonstrating how a
single firmware codebase can be shared across multiple products and architectures, promoting serviceable, maintainable,
up-to-date, and secure firmware. A goal of this repository is to reduce the overhead of testing and evaluating common
functionality before deployment to physical hardware.
QemuQ35Pkg in this repository was originally derived from
OvmfPkg in TianoCore. The package is considered stable, so
regular syncing is not performed with the upstream; select changes are cherry-picked based on functional or security
importance.
Platforms:
- QEMU Q35 - an IA32/X64 platform based on the Intel Q35 chipset.
- QEMU Arm Virt - an AArch64 platform based on the QEMU ARM Virtual Machine.
What is in this book
This book is organized into the following sections:
- Building and Debugging - Setting up your environment, compiling the firmware, running it in QEMU, and connecting a debugger to inspect the boot flow.
- Common Features - Project Mu features enabled across both QEMU platforms:
DFCI, Front Page, memory protection, telemetry (WHEA), TPM, the platform testing framework, and the shared
QemuRunnerplugin. - Q35 Features - Q35-specific features including CodeQL static analysis, the Color Bar device-state indicator, the configuration (setup data) framework, Platform Runtime Mechanism (PRM), and TPM Replay.
- Trusted Platform Module (TPM) - Deep dives on the TPM 2.0 stack for each platform, including
the FF-A based dual-CRB architecture on Arm Virt and the direct CRB/TIS path on Q35, plus guidance for running
TpmShellAppon both. - Templates - Reusable templates for feature-branch documentation.
Related Documentation
- Project Mu - the main Project Mu documentation site.
- Project Mu on GitHub - hosts all Project Mu repositories, including
this one,
mu_basecore,mu_plus,mu_oem_sample, and the feature repos consumed as submodules here. - QEMU - the open-source processor emulator these platforms target.
- How to Build in EDK II with Stuart - background on the Stuart build system used throughout this repository.
- Releases, Discussions, Issues, and the security policy for this repository.