|
|
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 | |
|