UEFI Architecture


Let MindShare Bring "Hands-On x86 UEFI Architecture" to Life for You

Microsoft's announcement that all systems shipping with a desktop version of Windows 8 and later have to use UEFI (Unified Extensible Firmware Interface) and Secure Boot has transitioned the industry from legacy BIOS to firmware producing the UEFI.

This change will impact you, whether you run Windows or not. Depending on the security policies implemented by the OEM, you may have difficulty installing the OS of your choice, even if it is UEFI based.

This course will give you a thorough understanding of how x86 UEFI firmware takes control of the system and prepares to hand control to an OS boot loader, starting from the reset vector. On the first day of training, we will give you a quick overview of legacy BIOS (and its inherent limitations) and review how UEFI and its architecture addresses legacy BIOS shortcomings.
The other two days are dedicated to walking and working through the UEFI Forum's PI (Platform Initialization) spec's seven phases and explain how modules are discovered and dependencies are resolved as system hardware is initialized. We will wrap up with Secure Boot to get a better idea about Microsoft's boot requirements.

This course is designed to be hands-on, allowing you to experiment with code that you will write to get a better handle on the various PI phases. At the end of the course, you will be able to write a DXE driver for a simple hardware device. You will also be able to write UEFI applications that run at the UEFI shell.

MindShare Courses Related to x86 Architecture:

Course Name

Virtual Classroom

Hands-On x86 UEFI Architecture
4 days
4 days

Show Me
Hands-On Intel 32/64-bit x86 Architecture
5 days

5 days

Show Me
Comprehensive x86 APIC Architecture Course
1 day

1 day

All of MindShare's classroom and virtual classroom courses can be customized to fit the needs of your group.

Hands-On x86 UEFI Architecture Course Info

You Will Learn:

  • The order and relevance of UEFI PI/Tiano's phases.
  • When and *how* key subsystems and devices are detected, initialized, and configured.
  • How to leverage Platform Configuration Database to simplify the coding process.
  • How to write a PEI or DXE device driver.
  • How to effectively debug PEI and DXE PI phases.
  • Where device configuration and management information is collected, stored, and communicated between the phases and to an operating system, including ACPI info.
  • Process of handing over system control from Firmware to OS.

Course Length: 4 Days

Who Should Attend?

Firmware/Driver/Software engineers and managers looking to understand the computer boot process from power-on until OS load

Course Outline:

Firmware Fundamentals

  • What, why, and where is “firmware?”
  • BIOS – The x86 legacy firmware architecture
  • Limitations Legacy BIOS places on modern systems
  • UEFI Forum’s Platform Initialization, Intel’s Framework, and UEFI (Unified Extensible Firmware
  • Interface)
  • x86 platform essentials
    • CPU capabilities in real- and protected-mode.
    • Real- and protected mode memory maps.

The UEFI PI and Tiano’s phases

  • SEC – Security phase
    • Available system resources
    • Authenticating firmware boot code
    • Hand-off information.
    • Lab - Inspect transfer from SEC to PEI
  • PEI – Pre-EFI Initialization phase
    • Key PEI tasks
    • PEI Foundation code
    • PEIM – PEI Modules
      • Detection
      • Authentication
      • Dependency resolution
      • Execution
    • Lab: Inspect HOBs
    • Lab: Inspect Dispatcher Handoff.
    • Lab: Inspect DEPEX evaluation.
    • Lab: Detect and Trace DXE IPL handoff
    • Lab: Review Data Structures
      • Flash File System
  • PPI – The PEIM-to-PEIM Interface.
  • Lab - Review PEIM-2-PEIM communication
  • Creating HOBs – Hand-Off Blocks.
  • DXE – Driver Execution Environment phase
    • Key DXE tasks
    • DXE Foundation code
    • DXE Dispatcher
      • The A Priori file
      • Driver authentication
    • DXE and EFI drivers
      • DXE driver model
      • EFI driver model
    • Creation of the EFI System Table and other descriptor tables.
    • Lab: Inspect DXE Core Entry
    • Lab: Inspect DXE driver load
    • Lab: Inspect PHIT
    • Lab: Review Events and Task Priority Levels
    • Lab: DXE driver implementation
    • Lab: Review Data Structures
      • Handle Database
      • EFI System Table
        • Boot Services Table
        • System Configuration Table
  • BDS – Boot Device Selection phase
    • BDS and UEFI
    • Console services
    • Running EFI applications
    • Boot paths
    • Selecting a boot option
      • Custom system configuration for selected operating system
      • Operating system hand-off.
    • Lab: UEFI memory application.
    • Lab: Trace Shell Loading

ACPI Implementation in Tiano

  • ACPI Support driver
  • ACPI Platform driver
  • ACPI table storage

Firmware structure

  • Firmware devices
  • Firmware volumes
  • FFS – the Firmware File System
  • Different firmware file types
  • Firmware file components
    • Header
    • Different sections
  • Lab: Inspect Firmware Volume Structure.

EFI disk organization

  • GUID partition advantages
  • MBR preservation
  • GPT (GUID Partition Table) disk architecture
  • The System partition

Secure Boot

  • Exactly what is Secure Boot?
  • How Secure Boot works
  • OS vendors and Secure Boot
  • Industry concerns

Recommended Prerequisites:

Attendees are expected to have a technical background. Basic knowledge of assembly language programming, microprocessor technology, memory, and standard peripherals is expected.

Supplied Materials:

  • Presentation PDF handout
  • Lab exercises
  • Hands-on virtual environment