UEFI Developer Tools

Interactive visualization tools for UEFI/EDK2 development

📊

Memory Management Visualizer

Interactive visualization of UEFI EDK2 memory management concepts including data structures, memory layout, allocation and deallocation processes.

LIST_ENTRY Memory Map AllocatePages FreePages
⌨️

USB HID Key Code Viewer

Interactive keyboard viewer showing USB HID Usage IDs and their corresponding UEFI EDK2 EFI key codes. Supports US ANSI, European ISO, and Japanese JIS layouts.

HID Usage ID EFI Key Code Keyboard Layouts
🏗️

EDK2 Build Infrastructure Visualizer

Visual walkthrough of EDK2 BaseTools build flow, showing how DSC/INF/FDF metadata are parsed and assembled into FV/FD firmware images.

BaseTools DSC/INF/FDF GenFds Firmware Volume
🔄

PEI Shadow Process Visualizer

Interactive visualization of the PEI Core shadow process: how PEI migrates from Flash (XIP) to permanent memory (DRAM) after memory initialization, including stack migration, HOB relocation, and pointer fixup.

PEI Shadow XIP → DRAM CAR Pointer Fixup
🔐

SMM/MM Communication Visualizer

Interactive visualization of how DXE triggers and communicates with SMM (System Management Mode) or Standalone MM, including communication protocol internals, SMRAM memory layout, SMI trigger mechanism, and handler registration.

SMM / SMI Communicate() SMRAM Standalone MM
🔌

Driver Binding Mechanism Visualizer

Interactive step-by-step visualization of the UEFI EDK2 Driver Binding Protocol lifecycle: ConnectController, Supported(), Start(), Stop(), internal IHANDLE/PROTOCOL_INTERFACE/PROTOCOL_ENTRY data structures, and how the handle database changes at each step.

Driver Binding ConnectController IHANDLE Protocol Database
📡

PCI Subsystem Visualizer

Interactive visualization of the UEFI EDK2 PCI subsystem: PCI/PCIe configuration space register map, config space access mechanisms (CF8/CFC vs ECAM), full PCI enumeration flow, PCI IO Protocol and Root Bridge IO Protocol architecture, with x86_64 vs ARM64 comparison.

Config Space PCI Enumeration PCI IO Protocol x86 vs ARM