UEFI x64 Architecture eLearning Course HOW eLEARNING WORKS eLEARNING FAQ View all eLearning Courses PCI Express Courses Comprehensive PCIe 5.0 eLearning Course Advanced PCIe eLearning Course Core PCIe eLearning Course Fundamentals of PCI Express eLearning Course Intro to PCI Express IO Virtualization eLearning Course PIPE 6.0 - PHY Interface for PCI Express and more 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 Modern DRAM (DDR4 / DDR3 / LPDDR3 / LPDDR2) eLearning Course DRAM Class PRE-WORK DRAM Class Supplementary Material Storage Courses SAS 3.0 Storage Technology eLearning Course Advanced Host Controller Interface (AHCI) eLearning Course NVM Express 1.4 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 Module Length Module 1: Introduction To The Class 8 minutes Module 2a: Platform Basics 23 minutes Module 2b: Platform Basics 25 minutes Module 3: Firmware Basics 23 minutes Module 4: UEFI Overview 19 minutes Module 5: Booting an x86_64 Platform 21 minutes Module 6a: Firmware Structure and Storage 22 minutes Module 6b: Firmware Structure and Storage 5 minutes Module 6c: Firmware Structure and Storage 17 minutes Module 6d: Firmware Structure and Storage 9 minutes Module 7: UEFI + PI And The Phases 18 minutes Module 8a: SEC - Security Phase 13 minutes Module 8b: SEC - Security Phase 7 minutes Module 9: MM - Management Mode 9 minutes Module 10: PEI - Pre-EFI Initialization 30 minutes Module 11: PEI Modules (PEIM) 11 minutes Module 12: PEIM Descriptors and PPIs 23 minutes Module 13: PEIM Essentials 15 minutes Module 14: Project 1 4 minutes Module 15: PEI Services 8 minutes Module 16a: PEI Dispatcher 17 minutes Module 16b: PEI Dispatcher 8 minutes Module 17a: Hand Off Blocks (HOBs) 21 minutes Module 17b: Hand Off Blocks (HOBs) 6 minutes Module 18: Project2 7 minutes Module 19: DXE - Driver Execution Environment 13 minutes Module 20: DXE Core 19 minutes Module 21: DXE Driver Essentials 14 minutes Module 22: Project 3 4 minutes Module 23: DXE Architectural Profiles 7 minutes Module 24: UEFI Boot, Runtime and DXE Services Tables 22 minutes Module 25: DXE Dispatcher 12 minutes Module 26: DXE Handle Database and Protocols 7 minutes Module 27: DXE Drivers 14 minutes Module 28a: Events, Timers and Task Priority Levels 11 minutes Module 28b: Events, Timers and Task Priority Levels 6 minutes Module 29: Project 4 3 minutes Module 30: BDS - Boot Device Selection 13 minutes Module 31a: Device Paths 13 minutes Module 31b: Device Paths 16 minutes Module 32: PCD - Platform Configuration Database 8 minutes Module 33a: ACPI - Advanced Configuration and Power Interface 17 minutes Module 33b: ACPI - Advanced Configuration and Power Interface 10 minutes Module 34a: GPT - GUID Partition Table 17 minutes Module 34b: GPT - GUID Partition Table 15 minutes Module 35: Secure Boot 23 minutes Module 36: Update Capsule 19 minutes © MindShare, Inc. All rights reserved. Full Course List | About MindShare | Careers with MindShare Contact Us | Privacy Policy | Terms of Use