UEFI EDKII Learning Dev - jljusten/tianocore GitHub Wiki

UEFI and EDK II Learning and Development

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.

Courses

Defining Specifications' Role in Firmware & Initializing the Boot Process Lessons 0 - 5
Intended Audience:Firmware/Software Engineers
Course Goal:Initialize the boot process by following the UEFI specifications
Download Description
Zip file**
Lesson 0: Defining Specifications' Role in Firmware
Zip File**
Lesson 1: Course Introduction and Pre-EFI (PEI) and Security (SEC) Phases
Zip File** Lesson 2: Driver Execution Environment (DXE)
Zip File** Lesson 3: UEFI Drivers
Zip File** Lesson 4: Firmware and Data Storage
Zip File** Lesson 5: Boot Device Selection (BDS) and Human Interface Infrastructure (HII)

Training Course Detailed Descriptions

(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

Lesson 0 Zip file**

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

Lesson 1 Zip File**

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.  
Lesson 2 Zip File**

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.
Lesson 3 Zip File**

Lesson 3: UEFI Drivers
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
Lesson 4 Zip File**

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
Lesson 5 Zip File**

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
⚠️ **GitHub.com Fallback** ⚠️