Skip to content

Latest commit

 

History

History
446 lines (333 loc) · 15.7 KB

PITCHME.md

File metadata and controls

446 lines (333 loc) · 15.7 KB

---?image=assets/images/gitpitch-audience.jpg @title[Title-UEFI Overview]

UEFI & EDK II Training

Using class=slide-title

UEFI and Platform Initialization (PI) Overview


tianocore.org Note: PITCHME.md for UEFI / EDK II Training

Copyright (c) 2018, Intel Corporation. All rights reserved.

Redistribution and use in source (original document form) and 'compiled' forms (converted to PDF, epub, HTML and other formats) with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code (original document form) must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified.

  2. Redistributions in compiled form (transformed to other DTDs, converted to PDF, epub, HTML and other formats) must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL TIANOCORE PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


@title[Lesson Objective]

<p align="center"Lesson Objective


@fa[certificate gp-bullet-green]  Review PI and UEFI Boot Process

@fa[certificate gp-bullet-cyan]   Answer web-based training related questions

@fa[certificate gp-bullet-yellow]   Answer: Where does Intel® FSP Fit?

@fa[certificate gp-bullet-magenta]   What’s new in UEFI.org

---?image=assets/images/binary-strings-black2.jpg @title[UEFI Boot Flow Section]

UEFI Boot Execution Flow

Starting at the processor reset vector

@title[UEFI Boot Flow]

UEFI - PI & EDK II Boot Flow

Press "S" to see Speaker notes. Speaker notes are added using key word "Note:" at the ende of the slide and before the next slide

UEFI and Platform Initialziation (PI) Boot Execution Flow

UEFI Boot Execution Flow

UEFI and Platform Initialziation (PI) Boot Execution Flow

Note: The next set of slides will detail the phases of the boot execution flow for UEFI


@title[UEFI Boot Flow Sec]

UEFI - PI & EDK II Boot Flow     - SEC

![UEFI Boot Execution Flow](/assets/images/bgpages/bg4.png =10x)

Note: SEC Function
Consumes the Reset vector on IA Serving as the root of trust in the system Initial code that takes control of the system May choose to authenticate the PEI Foundation

+++ @title[SEC - characteristics ]

Processor Executes SEC starting at the reset vector

  • SEC Consumes the Reset vector
  • Serving as the root of trust
  • May choose to authenticate the PEI Foundation
  • Init the APs waking stub
  • Early microcode update
  • Collect BIST (Built-in Self Test)
  • Other charactistics of SEC
    • Executed in place from flash
    • Written in assembly (16-bit & 32-bit) on Intel Architecuture - Note: SEC Function
      Consumes the Reset vector on IA Serving as the root of trust in the system Initial code that takes control of the system May choose to authenticate the PEI Foundation

Switch to 32-bit flat mode Initialize the Boot strap processor BSP Initialize PEI temporary memory NEM / CAR Transfer control to PEI Core

SEC will have Platform specific functions

  • AP waking stub
  • Early microcode update
  • Collect BIST (Built-in Self Test)
  • Other charactistics of SEC
    • Executed in place from flash
    • Written in assembly (16-bit & 32-bit) +++ @title[SEC - Firmware Terms ]

Terms to know about the Flash Device

  • Firmware Volume (FV)
    • The basic storage with a firmware device
  • Firmware File System (FFS)
    • Describes the organization of files within a FV

Note: -A Firmware Volume (FV) is a logical firmware device. The basic storage
repository for data and/or code is the firmware volume. Each firmware volume is organized into a file system. As such, the file is the base unit of storage for firmware

-Firmware Volume (FV)
A firmware file system (FFS) describes the organization of files and (optionally) free space within the firmware volume. Each firmware file system has a unique GUID, which is used by the firmware to associate a driver with a newly exposed firmware volume


@title[UEFI Boot Flow PEI]

UEFI - PI & EDK II Boot Flow     - PEI

![UEFI Boot Execution Flow](/assets/images/bgpages/bg4_1.png =10x)

Note: PEI Function

  • PEI Primary goals:

    • Discover boot mode (Normal, S3, Recovery)
    • Discover and initialize some RAM that won’t be reconfigured
    • Discover location of FV(s) containing DXE Core & Architecture Protocols and Launch DXE core
  • PEI Phases –

    • Pre – memory Init
    • Memory reference code (MRC)
    • Post Memory Init

Components:

  • Binaries: PEI Core and PEI Modules (PEIMs) PEIMs are modules scheduled by the PEI core in the early phase of platform initialization. PEIMs are typically executed in place before system memory is available.
  • On IA running in No Eviction mode (NEM) aka. Cache as RAM

Interfaces: Methods of Inter-PEIM communication Core set of services (PeiServices), PEIM to PEIM Interfaces (PPIs), and simple Notifies (no timer in PEI)


@title[UEFI Boot Flow PEI-DXEIPL & Hobs ]

UEFI - PI & EDK II Boot Flow Hobs DXEIPL

![UEFI Boot Execution Flow](/assets/images/bgpages/bg5.png =10x)

Note: PEI - Hobs
Transition to DXE :

  • HOBS – a series of data structures in memory, created during PEI, that describe platform features, configuration, or data. HOBs are produced during PEI, and read-only during DXE (consumer). +++ @title[UEFI Boot Flow PEI-DXEIPL ]

DXE IPL Characteristics

  • No hard coded addresses allowed
  • Find Largest Physical Memory HOB
    • Ideally this should be near Top Of Memory (TOM)
    • Allocate DXE Stack from Top of Memory
  • Build HOB that describes DXE Stack
  • Search FVs from HOB List for DXE Core
  • Load DXE Core into Memory (PE/COFF)
  • Build HOB that describes DXE Core
  • Switch Stacks and Handoff to DXE Core

@title[UEFI Boot Flow DXE]

UEFI - PI & EDK II Boot Flow     - DXE

![UEFI Boot Execution Flow](/assets/images/bgpages/bg5_1.png =10x)

Note: DXE

Works after system memory has been discovered and initialized DXE drivers are typically stored in flash in compressed form and must be decompressed into memory before execution +++ @title[DXE Characteristics]

DXE Characteristics & Responsibilities

  • Consumes HOB List from PEI
  • Builds UEFI and DXE Service Tables
  • EFI System Table
  • UEFI Boot Services Table & UEFI Runtime Services Table
  • Hands off control to the DXE Dispatcher
  • and more . . .

Note: DXE Characteristics

  • Consumes HOB List from PEI

  • Builds UEFI and DXE Service Tables

  • EFI System Table

  • UEFI Boot Services Table & UEFI Runtime Services Table

  • DXE Services Table

  • Makes Memory-Only Boot Services Available that will be in memory until ExitBootServices()

  • Hands off control to the DXE Dispatcher

  • Requires access to Firmware Volumes

  • Requires LoadImage(), StartImage(), Exit()

  • DXE Drivers will build the Architectural Protocols

  • May require decompression service

  • DXE FOUNDATION Theory of Operation

  • The First goal is to Initialize the Platform – Initialize the Chipset and the platform

  • We want to Load Drivers to construct an environment that can support boot manager and boot the OS


START of EXAMPLE

The next slides show examples for templates

Tips!


@fa[arrows gp-tip](Press F to go Fullscreen)

@fa[microphone gp-tip](Press S for Speaker Notes)


Template Features

  • Code Presenting |
  • Repo Source, Static Blocks, GIST |
  • Custom CSS Styling |
  • Slideshow Background Image |
  • Slide-specific Background Images |
  • Custom Logo, TOC, and Footnotes |

---?code=sample/SampleApp/SampleApp.c&lang=c++&title=C File

@[30,32-36](Present code found within any repo source file.) @[38-48](Without ever leaving your slideshow.) @[53-60](Using GitPitch code-presenting with (optional) annotations.)

Note: example of a UEFI application in C

---?code=sample/go/server.go&lang=golang&title=Golang File

@[1,3-6](Present code found within any repo source file.) @[8-18](Without ever leaving your slideshow.) @[19-28](Using GitPitch code-presenting with (optional) annotations.)


@title[JavaScript Block]

JavaScript Block

// Include http module.
var http = require("http");

// Create the server. Function passed as parameter
// is called on every request made.
http.createServer(function (request, response) {
  // Attach listener on end event.  This event is
  // called when client sent, awaiting response.
  request.on("end", function () {
    // Write headers to the response.
    // HTTP 200 status, Content-Type text/plain.
    response.writeHead(200, {
      'Content-Type': 'text/plain'
    });
    // Send data and end response.
    response.end('Hello HTTP!');
  });

// Listen on the 8080 port.
}).listen(8080);

@[1,2](You can present code inlined within your slide markdown too.) @[9-17](Displayed using code-syntax highlighting just like your IDE.) @[19-20](Again, all of this without ever leaving your slideshow.)

---?gist=onetapbeyond/494e0fecaf0d6a2aa2acadfb8eb9d6e8&lang=scala&title=Scala GIST

@[23](You can even present code found within any GitHub GIST.) @[41-53](GIST source code is beautifully rendered on any slide.) @[57-62](And code-presenting works seamlessly for GIST too, both online and offline.)


Template Help


Go GitPitch Pro!


  • Private Repos
  • Private URLs
  • Password-Protection
  • Image Opacity
  • SVG Image Support

Questions?


@fatwitter gp-contact

@fagithub gp-contact

@famedium gp-contact

---?image=assets/images/gitpitch-audience.jpg&opacity=100

@title[Download this Template!]

Get your presentation started!


@title[lastslide]

Last Slide to use

END OF SLIDES
  • Summary
  • Q & A
  • Tianocore Logo
  • Acknowledgements

Use the next slide as the last example in the slide deck.

@title[Summary]

<p align="center"Summary


@fa[certificate gp-bullet-green]  Review PI and UEFI Boot Process

@fa[certificate gp-bullet-cyan]   Answer web-based training related questions

@fa[certificate gp-bullet-yellow]   Answer: Where does Intel® FSP Fit?

@fa[certificate gp-bullet-magenta]   What’s new in UEFI.org

---?image=assets/images/gitpitch-audience.jpg @title[Questions] ![Questions](/assets/images/Questions.png =10x)

---?image=assets/images/gitpitch-audience.jpg @title[Logo Slide]

![Logo Slide](/assets/images/TianocoreLogo.png =10x)


@title[Backup]

<p align="center"Backup


@title[Acknowledgements]

<p align="center"Acknowledgements

/**
Redistribution and use in source (original document form) and 'compiled' forms (converted
to PDF, epub, HTML and other formats) with or without modification, are permitted provided
that the following conditions are met:

Redistributions of source code (original document form) must retain the above copyright 
notice, this list of conditions and the following disclaimer as the first lines of this 
file unmodified.

Redistributions in compiled form (transformed to other DTDs, converted to PDF, epub, HTML
and other formats) must reproduce the above copyright notice, this list of conditions and 
the following disclaimer in the documentation and/or other materials provided with the 
distribution.

THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED 
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL TIANOCORE PROJECT BE 
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY 
OF SUCH DAMAGE.

Copyright (c) 2018, Intel Corporation. All rights reserved.
**/