UEFI x64 Architecture eLearning Course

View all eLearning Courses

PCI Express Courses
PCIe6 Update eLearning Course
PCIe Security eLearning Course
Comprehensive PCIe 5.0 eLearning Course
Advanced PCIe eLearning Course
Core PCIe eLearning Course
Fundamentals of PCI Express eLearning Course
PIPE 6.0 - PHY Interface for PCI Express and more
CXL Courses
CXL Fundamentals eLearning Course
Comprehensive CXL 2.0 eLearning Course
CXL 3.1 Update eLearning Course
USB Courses
USB4 Architecture eLearning Course
USB Type-C and Power Delivery eLearning Course
USB 3.2 Update
Comprehensive USB 3.1 eLearning Course
xHCI eLearning Course
x86 Architecture Courses
Intel x86 Processor and Platform Architecture eLearning Course
Thunderbolt 3 Fundamentals
x86 Architecture eLearning Course
ARM Courses
Fundamentals of ARM Architecture
ARMv8-M and v8.1-M eLearning Course
ARM 64-bit Architecture (ARM v8-A) eLearning Course
ARM v8-A Registers and Instruction Set eLearning Course
ARM v8-A Memory Management eLearning Course
ARM v8-A Exceptions and Interrupts eLearning Course
Comprehensive ARM Architecture eLearning Course
ARM v7 Registers and Instruction Set eLearning Course
ARM v7 Memory Management eLearning Course
ARM v7 Exceptions and Interrupts eLearning Course
Fundamentals of AMBA eLearning Course
ARM 32-bit Architecture (ARM v7) eLearning Course
ARM v8-A Porting and Software Optimization eLearning Course
ARM v8-A (64-bit) Pipelines eLearning Course
ARM MCU Architecture eLearning Course
ARM Cortex-M7 Processor eLearning Course
Fundamentals of ARMv8-A eLearning Course
Memory Courses
DRAM Class PRE-WORK
DRAM Class Supplementary Material
Modern DRAM (DDR5 / DDR4 / LPDDR5 / LPDDR4) eLearning Course
I3C Architecture eLearning Course
Fundamentals of DRAM
Storage Courses
SAS 3.0 Storage Technology eLearning Course
Advanced Host Controller Interface (AHCI) eLearning Course
NVM Express 1.4 eLearning Course
NVMe-oF eLearning Course
SATA 3.2 Technology eLearning Course
Universal Flash Storage (UFS) eLearning Course
Virtualization Courses
PC Virtualization eLearning Course
IO Virtualization for Intel Platforms eLearning Course
Firmware Courses
UEFI x64 Architecture eLearning Course



UEFI x64 Architecture eLearning Course

Instructor(s): Paul Devriendt
Number of Modules: 47
Subscription Length: 90 days

Course Price
$995.00



UEFI x64 eLearning Course

What's Included?

UEFI eLearning modules
(unlimited access for 90 days)
PDF of Course Slides
(yours to keep, does not expire)

Benefits of eLearning:

  • Access to the Instructor - Ask questions to the MindShare Instructor that taught the course
  • Cost Effective - Get the same information delivered in a live MindShare class at a fraction of the cost
  • Available 24/7 - MindShare eLearning courses are available when and where you need them
  • Learn at Your Pace - MindShare eLearning courses are self-paced, so you can proceed when you're ready

Who Should View?

This in-depth course is designed with Firmware / Driver / Software engineers in mind. Anyone looking to understand the computer boot process from power-on until OS load will benefit from this course.

Course Outline:

  • Module 1: Introduction To The Class
    - Class introduction and coverage of the outline
  • Module 2a: Platform Basics
    - Provides background info about x86 addressing modes: Real Mode segmentation, Protected Mode segmentation, paging
  • Module 2b: Platform Basics
    - Provides background info about operating modes, memory map, reset vector
  • Module 3: Firmware Basics
    - Purpose of boot firmware, original BIOS info, memory map and vector table, original BIOS shortcomings
  • Module 4: UEFI Overview
    - Covers terminology and UEFI restrictions, clarifies difference between Platform Initialization (PI) phases vs UEFI phases, differences between legacy BIOS and UEFI PI
  • Module 5: Booting an x86_64 Platform
    - High-level boot sequence, cache as RAM (CAR), x86-64 physical memory map
  • Module 6a: Firmware Structure and Storage
    - Firmware organization and storage, firmware volumes, firmware volume header and fields
  • Module 6b: Firmware Structure and Storage
    - Exercise: firmware volumes in action
  • Module 6c: Firmware Structure and Storage
    - Firmware File System (FFS), PI firmware files and format, Exercise: PI firmware file format in action
  • Module 6d: Firmware Structure and Storage
    - PI firmware file image format and section format, encapsulation section types, leaf section types
  • Module 7: UEFI + PI And The Phases
    - Specification concepts, UEFI vs PI, UEFI concepts, PI concepts
  • Module 8a: SEC - Security Phase
    - SEC phase's role and responsibilities, cache as RAM, platform restart events, root of trust, SEC hand-off information
  • Module 8b: SEC - Security Phase
    - Exercise: SEC hand-off information in action
  • Module 9: MM - Management Mode
    - Management Mode (aka system management mode SMM), software/firmware handler
  • Module 10: PEI - Pre-EFI Initialization
    - PEI terminology, PEI role and resposibilities, PEI architectural dependence, PEI prerequisites, PEI core/foundation, PEI architecture, PEI service table
  • Module 11: PEI Modules (PEIM)
    - PEIM layout, PE32 -> TE, dependencies, authentication information
  • Module 12: PEIM Descriptors and PPIs
    - PEIM-to-PEIM interfaces (PPIs), PEIM descriptors and PPI database, descriptor flags, EFI_PEI_PPI_DESCRIPTOR example, PPI types, required vs optional PPIs
  • Module 13: PEIM Essentials
    - Directory structure, hello world example: source file, PEIM.INF, DSC file, FDF file, building and running
  • Module 14: Project 1
    - NotifyPpi() PEIM project description and hints, solution
  • Module 15: PEI Services
    - PEI Core classes of service, PPI services, reset and status code, boot mode services, HOB services, memory services, firmware volume services
  • Module 16a: PEI Dispatcher
    - Dependency expression, PEIM entry point, state machine, dependencies and ordering example, PEI to DXE hand-off, PEI unload
  • Module 16b: PEI Dispatcher
    - Exercise: Dispatcher PEIM loading
  • Module 17a: Hand Off Blocks (HOBs)
    - Rules, header, PHIT HOB, memory map, Memory Allocation HOB, BSP Stack HOB, Resource Descriptor HOB, GUID Extension HOB, Firmware Volume HOBs, CPU HOB, UEFI Capsule HOB, HOB list
  • Module 17b: Hand Off Blocks (HOBs)
    - Exercise: Inspect HOBs
  • Module 18: Project 2
    - Write a PEIM, description, hints and solution
  • Module 19: DXE - Driver Execution Environment
    - Terminology, why DXE, core design, responsibilities, DXE phase high-level flow, DXE overview, prerequisites and environment
  • Module 20: DXE Core
    - DXE core entry point, HOB list initialization, core components, data structures, data structure initialization, Exercise: DXE initialization
  • Module 21: DXE Driver Essentials
    - Objective, Non-UEFI driver model, boot service vs runtime UEFI drivers
  • Module 22: Project 3
    - Exercise: write a DXE driver, description, hints, solution
  • Module 23: DXE Architectural Protocols (APs)
    - Structure, types, UEFI system table
  • Module 24: UEFI Boot, Runtime and DXE Services Tables
    - UEFI system services, boot services table, image types, image services, UEFI runtime services table, DXE services table, Global Coherency Domain (GCD) memory resources, GCD memory resources services, GCD memory state transitions, GCD/IO resources, GCD/IO state transitions
  • Module 25: DXE Dispatcher
    - Intro, requirements, dependency expression instruction set, DXE dispatcher state machine
  • Module 26: DXE Handle Database and Protocols
    - Handle database + protocols, protocol handler services
  • Module 27: DXE Drivers
    - Early DXE drivers, UEFI Driver Model DXE drivers, developer guide
  • Module 28a: Events, Timers and Task Priority Levels
    - Polled timers, timer events, task priority levels (TPLs), TPL types, DXE event types, asynchronous vs synchronous, event examples
  • Module 28b: Events, Timers and Task Priority Levels
    - Exercise: Analyze events in real environment
  • Module 29: Project 4
    - Write a UEFI Moedl driver, description, hints and solution
  • Module 30: BDS - Boot Device Selection
    - BDS phase, roles, lifecycle, boot manager
  • Module 31a: Device Paths
    - Purpose, device path types, sub-types, examples
  • Module 31b: Device Paths
    - Boot manager load options, Exercise: inspect global NVRAM variables from boot dump, globally defined variables, Exercise: dmpstore, boot mechanisms
  • Module 32: PCD - Platform Configuration Database
    - Introduction, coding with #ifdef, PCD types, PCD declarations
  • Module 33a: ACPI - Advanced Configuration and Power Interface
    - ACPI history and UEFI, overview, structure, initialization, AcpiTables.inf
  • Module 33b: ACPI - Advanced Configuration and Power Interface
    - AcpiTableDxe, AcpiPlatformDxe, example following the trail through files
  • Module 34a: GPT - GUID Partition Table
    - Master Boot Record (MBR) and GPT background, Cylinder Head Sector (CHS) and Logical Block Address (LBA) background, protective MBR
  • Module 34b: GPT - GUID Partition Table
    - GPT disk layout, GPT header, GPT partition entry array
  • Module 35: Secure Boot
    - Purpose, authenticated variables, platform key, key exchange key, DB database, DBX database, driver signing, driver verification, system defined variables, secure boot flow
  • Module 36: Update Capsule
    - Updating firmware, distribution of firmware updates, ESRT (EFI System Resource Table), system boot phases, update flow
Course Modules
ModuleLength
Module 1: Introduction To The Class8 minutes
Module 2a: Platform Basics23 minutes
Module 2b: Platform Basics25 minutes
Module 3: Firmware Basics23 minutes
Module 4: UEFI Overview19 minutes
Module 5: Booting an x86_64 Platform21 minutes
Module 6a: Firmware Structure and Storage22 minutes
Module 6b: Firmware Structure and Storage5 minutes
Module 6c: Firmware Structure and Storage17 minutes
Module 6d: Firmware Structure and Storage9 minutes
Module 7: UEFI + PI And The Phases18 minutes
Module 8a: SEC - Security Phase13 minutes
Module 8b: SEC - Security Phase7 minutes
Module 9: MM - Management Mode9 minutes
Module 10: PEI - Pre-EFI Initialization30 minutes
Module 11: PEI Modules (PEIM)11 minutes
Module 12: PEIM Descriptors and PPIs23 minutes
Module 13: PEIM Essentials15 minutes
Module 14: Project 14 minutes
Module 15: PEI Services8 minutes
Module 16a: PEI Dispatcher17 minutes
Module 16b: PEI Dispatcher8 minutes
Module 17a: Hand Off Blocks (HOBs)21 minutes
Module 17b: Hand Off Blocks (HOBs)6 minutes
Module 18: Project27 minutes
Module 19: DXE - Driver Execution Environment13 minutes
Module 20: DXE Core19 minutes
Module 21: DXE Driver Essentials14 minutes
Module 22: Project 34 minutes
Module 23: DXE Architectural Profiles7 minutes
Module 24: UEFI Boot, Runtime and DXE Services Tables22 minutes
Module 25: DXE Dispatcher12 minutes
Module 26: DXE Handle Database and Protocols7 minutes
Module 27: DXE Drivers14 minutes
Module 28a: Events, Timers and Task Priority Levels11 minutes
Module 28b: Events, Timers and Task Priority Levels6 minutes
Module 29: Project 43 minutes
Module 30: BDS - Boot Device Selection13 minutes
Module 31a: Device Paths13 minutes
Module 31b: Device Paths16 minutes
Module 32: PCD - Platform Configuration Database8 minutes
Module 33a: ACPI - Advanced Configuration and Power Interface17 minutes
Module 33b: ACPI - Advanced Configuration and Power Interface10 minutes
Module 34a: GPT - GUID Partition Table17 minutes
Module 34b: GPT - GUID Partition Table15 minutes
Module 35: Secure Boot23 minutes
Module 36: Update Capsule19 minutes