-
Notifications
You must be signed in to change notification settings - Fork 344
UEFI EDKII Learning Dev
Welcome to UEFI and EDK II Learning and Development. The self paced courses below are provided to help you increase your knowledge of UEFI and EDK II and to aid you in performing UEFI- and EDK II-related tasks. These courses are provided and produced as a courtesy of Intel Corporation and Contributed-under: TianoCore Contribution Agreement 1.1 (License Agreement )
Before you begin a course, review the course objectives and intended audience to determine if the course is right for you. Enjoy learning more about UEFI and EDK II!
How to download: Download each lesson’s '''Zip file**''' into your local directory. Then unzip each one and run each of the .htm files locally. Double click on the index.html file for each lesson to open with your default browser.
Intended Audience:Firmware/Software Engineers
Course Goal:Initialize the boot process by following the UEFI specifications
Defining Specifications' Role in Firmware & Initializing the Boot Process Lessons 0 - 5 | |||
---|---|---|---|
Download | Launch Training | Description | |
Zip file**
|
Launch |
Lesson 0: Defining Specifications' Role in Firmware |
|
Launch |
Lesson 1: Course Introduction and Pre-EFI (PEI) and Security (SEC) Phases |
||
Launch |
Lesson 2: Driver Execution Environment (DXE) |
||
Zip File** | Launch |
Lesson 3: UEFI Drivers |
|
Zip File** | Launch |
Lesson 4: Firmware and Data Storage |
|
Zip File** | Launch |
Lesson 5: Boot Device Selection (BDS) and Human Interface Infrastructure (HII) |
(downloads below are the same as above)
'''Lesson 0: Defining Specifications' Role in Firmware'''
Intended Audience: Firmware/Software Engineers
Course Goal: Briefly explore the history and role of specifications in firmware
Download Lesson 0 Zip file** or Launch
Lesson 0:
Course Objectives: When you complete the course, you will be able to:
- Identify and define the Legacy BIOS and UEFI specifications
- Compare the similarities and differences of Legacy BIOS and UEFI
- Define Platform Initialization and explain its evolution from “The Framework” to “Platform Initialization”
- Explain the benefits of Platform Initialization
- Define EDK I and II and their purposes
Initializing the Boot Process Lessons 1 - 5
Intended Audience:Firmware/Software Engineers
Course Goal:Initialize the boot process by following the UEFI specifications
Download Lesson 1 Zip File** or Launch
Lesson 1: Course Introduction and Pre-EFI (PEI) and Security (SEC) Phases
When you complete this lesson, you will be able to:
- Access EDK II to assist you in in using commercial compilers, providing for self-hosted development, and supplying libraries to assist in managing common tasks.
- Use tools to assist you in Platform Initialization
- Define and implement types of debugging allowed with EDK II
- Identify the responsibilities of the Security phase
- Define PEI and its purpose, functions, attributes, and components
- Describe PEI’s relationship to memory
- Explain HOBs, their purpose, and contribution to the PEI phase
- Transition from the PEI phase to the DXE phase.
Download Lesson 2 Zip File** or Launch
Lesson 2: Driver Execution Environment (DXE)
When you complete this lesson, you will be able to:
- Summarize the DXE phase and its purpose, functions, properties, attributes, and components * Identify the responsibilities of the DXE phase
- Describe events and their role in the DXE phase
- Define architectural protocols and their role in the DXE phase
- Compare and contrast the two types of DXE drivers: Early DXE Phase Drivers and UEFI Drivers
- Explain System Management Mode Services’ characteristics, services, and role in PI.
Download Lesson 3 Zip File** or Launch
Lesson 3: UEFI Driver
When you complete this lesson, you will be able to:
- Summarize UEFI drivers’ attribute, functions, and contents
- Compare and contrast drivers and applications
- Define UEFI protocols and explain their properties
- Outline the UEFI driver design process
- Identify and define the types of UEFI drivers
- Describe the necessary and recommended protocols for writing UEFI drivers
Download Lesson 4 Zip File** or Launch
Lesson 4: Firmware and Data Storage*
When you complete this lesson, you will be able to:
- Define Firmware Storage, Firmware Files, Firmware File Systems, and Firmware Volumes and explain their hierarchical relationship.
- Define Terse Image
- Explain why using a Terse Image is more beneficial than using a UEFI Image
- Locate firmware storage in a physical memory map
- Load drivers from a non-flash location
Download Lesson 5 Zip File** Or Launch
Lesson 5: Boot Device Selection (BDS) and Human Interface Infrastructure (HII)
When you complete this lesson, you will be able to:
- Explain the primary steps of the BDS Phase
- Define BDS’s goals
- Identify BDS’ functions and components
- Define global defined variables
- Identify a UEFI device path
- Search for handles in the handle database
- Define HII and identify its components
- Explain how data communicates with HII, the user, and UEFI drivers
- Identify the functions of the HII database
- Define Visual Forms Representation (VFR)
- Define Internal Forms Representation (IFR)
- Select Data from Forms Using HII
Home
Getting Started with EDK II
Build Instructions
EDK II Platforms
EDK II Documents
EDK II Release Planning
Reporting Issues
Reporting Security Issues
Community Information
Inclusive Language
Additional Projects & Tasks
Training
Community Support
Community Virtual Meetings
GHSA GitHub Security Advisories Proceess (Draft)